'Composite Application'에 해당되는 글 3건

  1. 2009/02/26 PRISM 2.0 정식 출시 (3)
  2. 2008/07/04 Composite Application Guidance for WPF - June 2008 Release (2)
  3. 2008/02/13 OBA (Office Business Application) 아키텍처 기초 (6)

마이크로소프트가 Composite Application Guidance 2.0 (“Prism 2.0”)을 정식 출시하였다. Prism은 사용자 경험을 중시하는 애플리케이션 개발에 있어서 모듈화와 유연성을 담보할 수 있는 설계 및 개발 방식을 지원하는 오픈 소스 기반 (Ms-PL)의 UI 프레임웍이다. Prism 1.0에서는 WPF 기반의 데스크탑 애플리케이션 개발에 촛점을 맞추어 제공되었던 기능들이 Prism 2.0에서는 WPF와 Silverlight를 모두 지원하는 방식으로 확대되었다.

아래 그림에서와 같이 비지니스 기능을 모듈화 시켜 별개의 dll로 구현하고 사용자 요구시에 이를 동적으로 로딩하여 쉘 영역에서 기능을 제공할 수 있도록 설계되었고, 모듈들에서 공통적으로 사용하는 기능들은 오른쪽에 서비스로 분리하여 제공하고 있으며 쉘과 모듈 사이에 연결 고리 역할을 하고 있다. 관련된 모듈과 서비스의 기동이나 라이프사이클 관리를 위해서 컨테이너를 사용하고 있는데, Unity Application block이 기본적으로 탑재되어 있고, Spring 등 원하는 다른 컨테이너가 있을 경우 사용할 수 있다. 

image

Prism과 같이 사용자 경험을 중시하는 애플리케이션을 효과적으로 구현하기 위한 프레임웍이 관심을 끄는 이유는 현재의 IT 흐름과 무관하지 않다. 이전 포스트에서도 잠시 언급했지만, 이 복잡한 세상살이에서 백엔드의 다양한 서비스들, 이 서비스들을 내가 제공하는 것이든, 남이 제공하는 것이든 상관없이 이들 서비스로부터 사용자가 원하는 정보 및 서비스를 사용자가 가장 바람직하다고 느끼는 방식으로, 사용자의 눈높이 맞도록 제공하는 것이 점차 중요시 되고 있다. 사용자에게 있어서 그 서비스가 어디서 왔는지가 중요한 것이 아니라 어떻게 나의 삶을 편하게 하고 어떻게 나의 비지니스에 기여하는 방식으로 제공되는 지가 중요하기 때문에 소위 Composite Application이라는 것이 주목을 받고 있다.

image

Prism은 아래와 같이 WPF와 Silvelight 기반 애플리케이션을 개발할 수 있는 라이브러리를 제공하고 있으며, WPF와 Silverlight의 구현의 차이로 인해 각각 다른 라이브러리를 제공하고 있다. 참고로 Silverlight용 라이브러리에는 얼마전 발표된 Silverlight용 Unity 컨테이너가  포함되어 있다. 또한 WPF와 Silverlight로 구현한 예제들이 포함되어 있어 양쪽 기술이 어떻게 공존하여 사용할 수 있는지 살펴볼 수 있으며, Reference Implementation으로 Stock Trader의 WPF 버전 및 Silverlight 버전이 들어 있다. 아울러 Hands-on lab을 통해 WPF 및 Silverlight용 애플리케이션 제작의 각 단계를 설명하고 있어 쉽게 따라할 수 있다.

image

Prism에 대한 상세한 설명은 아래 싸이트에서 찾을 수 있다. 또한 설치후 함께 포함되어 있는 문서에도 상세히 기술되어 있다.
http://msdn.microsoft.com/en-us/library/cc707819.aspx
http://www.codeplex.com/CompositeWPF

아래 싸이트에서 직접 다운로드 받아 사용해 볼 수 있다.
Composite Application Guidance for WPF and Silverlight – February 2009

Posted by 장현춘

Composite Application은 다양한 리소스로부터 얻은 각기 다른 정보를 최종 사용자에게 가장 바람직한 방식으로, 사용자가 원하는 방식으로 전달하기 위해 화면 구성을 모듈화하고 사용자의 권한과 역할에 따라 화면 구성 및 화면 전환을 달리할 수 있도록 하는 등 사용자 경험을 최적화시키기 위한 만들어지는 애플리케이션이다. 몇 년전까지는 Composite Smart Client라는 이름으로 많은 기업들에 제공되던 방식이기도 하다.
image

현재 Composite Application을 쉽게 구축할 수 있도록 마이크로소프트가 제공하는 Application Block들은 다음과 같다.
-. Composite UI Application Block (CAB) - Windows Form 기반의 composite application을 만들때 유용하다.
-. Smart Client Software Factory (SCSF) - CAB을 핵심으로 관련 application block들을 조합하고 각종 아키텍처 및 개발에 관련된 가이드 및 레시피, How-to 등을 제공하며 Visual Studio에 템플릿 형태로 제공되어 역시 Windows Form 기반의 composite application을 쉽게 개발할 수 있다.
-. Composite Application Guidance for WPF - CAB의 아키텍처적인 장점 및 동작 방식의 장점을 수용하였지만, WPF 기반에서 바닥부터 다시 만든 WPF 기반 composite application 개발 프레임웍이다.

Composite Application Guidance for WPF는 미국 시간 기준 7월 4일 정식 발표되며, 아래 싸이트에서 정보를 확인할 수 있다.
MSDN : http://msdn.microsoft.com/compositewpf
(use http://msdn.microsoft.com/en-us/library/cc707819.aspx for now)
Community : http://www.codeplex.com/compositewpf

이번에 출시되는 Composite Application Guidance for WPF에는 다음과 같은 유용한 자산이 담겨 있다.
-. Stock Trader Reference Implemtation
-. Composite Application Library for WPF
-. Quick Starts (4개 샘플)
-. Hands on Lab (1개)
-. 문서 (300페이지 이상)
   -. Composite Baseline Architecture
   -. UI Designer Guidance
   -. Design Concepts (3가지)
   -. Technical Concepts (8가지)
   -. Patterns (6가지) + Patterns Overview
   -. How-to (20가지)

Acropolis의 중도 포기 이후, CAB과 같이 확장성 있고 모듈화가 잘 되어 있지만, Windows Form 기반이 아닌 WPF 기반 composite UI application block을 원하던 개발자들에게는 그간의 갈증을 해소시켜줄 수 있는 단비가 아닐까 싶다.

참고로 현재까지 나와 있는 Composite Application 구축에 활용할 수 있는 프레임웍을 용도에 따라 구분하면 다음과 같다.
image

Posted by 장현춘

  Office Business Application (OBA)라 함은 지난 시간에 살펴본 바와 같이, 마이크로소프트의 오피스를 클라이언트 접점으로 하고 백엔드의 기업전용(LOB) 애플리케이션(ERP, CRM, SCM 등)을 연동하여 사용케함으로써 복잡하고 정형화된 LOB 애플리케이션을 익숙한 오피스 인터페이스를 통해 접근하도록 함으로써 생산성을 향상시키고 사용자 경험을 극대화할 수 있는 새로운 애플리케이션 개발 방식이다.
  이번 시간부터는 OBA의 기술적인 특징과 차별화된 점을 살펴보도록 한다.
전통적인 LOB 애플리케이션들은 구조적이고 정형화된 비지니스 프로세스를 모델링하여 처리하는 데 최적의 솔루션을 제공해왔다. 하지만, 실제 비지니스는 이러한 잘 구조화된 비지니스 프로세스보다는 비구조적인, 사람과 사람사이의 소통을 통해 이루어지는 프로세스가 훨씬 많으며 이러한 것들은 전통적인 LOB 솔루션이 제공할 수 없는 영역이었고, 바로 이러한 부분을 마이크로소프트의 오피스를 통해 엮음으로써 효과적인 비지니스가 이루어지도록 하는 것이 바로 OBA인 것이다.
  아래 그림은 이를 형상화한 것이다. LOB 솔루션이 제공하는 구조적인 프로세스 진행 와중에 우리의 비지니스는 이처럼 많은 사람과 사람사이의 소통을 필요로하며, 이러한 소통은 단순 문서의 전달만이 아닌 비정형화된 형태의 메시지 통신을 포함할 수도 있고 엑셀과 같은 툴의 도움을 받아 견적서를 작성하기도하고, 차트를 구성하기도 한다.

  이와 같은 비구조적인 비지니스 프로세스를 포함하는 위해서 우리의 애플리케이션은 어떠한 아키텍처를 가져야 할 것인가 ? 일반적으로 우리가 베스트 프랙티스로 인정하고 있는 3 tier를 살펴보자. 통상적으로 Presentation Tier, Business(혹은 Application) Tier,  Data(혹은 Integration) Tier 등으로 구분한다. 그 어느 티어에서도 사람과 사람사이의 비구조적인 통신을 효과적으로 처리할 수 있는 곳이 없다. 따라서 OBA 입장에서는 이러한 사람과 사람사이의 협업을 담당하도록 Presentation Tier와 Business Tier 사이에 Productivity Tier를 둔다.

  위 그림은 각 Tier가 담당하는 역할을 보여주며 Productivity Tier를 제외한 나머지 Tier는 전형적인 3Tier 아키텍처와 동일하다. Productivity Tier의 주요한 역할은 다른 사람과의 협업을 가능하게 해주는 문서와 정보의 공유 및 관리 기능, 협업과 통신 지원 등이다. 
  닷넷 플랫폼의 지원하에 오피스 2007은 위의 4Tier 아키텍처에 적합한 모든 기능을 제공하고 있으며 또한 개발 측면에서도 Visual Studio에 위저드로 내장되어 있는 VSTO (Visual Studio Tool for Office) 기능을 활용하여 쉽게 개발할 수 있다. 개발 플랫폼이자 LOB 애플리케이션의 얼굴로 자리잡고 있는 오피스 2007의 기능을 도식화하면 다음과 같다.

  정리하면, OBA는 위에서 살펴본 오피스 2007의 막강해진 클라이언트 및 서버 기능을 활용하여 Layered Architecture 기반으로 LOB 애플리케이션 연동하여 생산성을 극대화시키는 개발 방식인 것이다. 주의할 것은 Layering을 했다고 해서 즉, Architectural Pattern만 적용했다고 해서 엔터프라이즈 애플리케이션이 되는 것은 아니다. 맨처음 이슈로 제기했던 비구조적인 커뮤니케이션을 효과적으로 처리하기 위해서는 4 Tier 모두에서 적절한 Composition이 이루어져어 한다.

Posted by 장현춘