본문 바로가기
Homo Architect

컴포넌트 클러스터링 [2]

by javauser 2008. 11. 6.
3. 컴포넌트 클러스터링 기준
3.1 레이어 - 레이어드(layered)와 크로스 레이어드(cross-layered)
컴포넌트는 그림3-1처럼 레이어 아키텍처를 가질 수 있다. 레이어드 클러스터링은 각 레이어(프리젠테이션, 워크플로우, 비즈니스 객체, 데이터 서비스) 단위로 컴포넌트 구성요소를 묶는 것이다. 크로스 레이어드 클러스터링은 그와 반대로 하나의 비즈니스 로직과 관련된 각 레이어의 구성요소를 묶는다.

그림 3-1. 레이어드와 크로스 레이어드

컴포넌트 클러스터링 기준 중에 아키텍처 관점에서 고정 레이어 (fix layer)를 사용하는 방식은 나누어진 레이어를 클러스터링하는 방법이 각각의 레이어 내에서 컴포넌트를 식별하는 방법과, 레이어와 관계없이 컴포넌트를 식별하고, 컴포넌트를 레이어로 나누는 크로스 레이어 (cross-layer) 방식이 있다. 두가지 방식은 아키텍처 관점 (스타일) 에서 서로 다른 결과를 가지고 온다.
  • Layered 방식 : 레이어로 나누는 방식은 각각의 레이어에서 서로 다른 방식의 클러스터링 원칙이나 기준을 적용할 수 있다는 장점이 있다. 예를 들어, J2EE의 엔티티 빈 레이어에서 단지 하나의 클러스터링 기준을 적용하고, 세션 빈 레이어에서는 여러가지 다양한 클러스터링 기준을 적용함으로써 유연성 (flexibility) 과 재사용성 (reusability)을 더 높일 수 있다.
  • Cross-Layered 방식 : 크로스 레이어는 입도, 수행성능, 확장성, 유연성, 유지보수성, 연관 관리, 재사용성, 데이터 관리, 프로젝트 관리, 자산 소유 관리 등의 측면에서 더 이점이 있다. 이러한 방식은 결국에 중요한 비즈니스 개념(concept)을 실행 시점에 식별가능한 배포 산출물로 맵핑할 수 있다. 비즈니스 모델에서 직접 식별된 비즈니스 객체가 비즈니스 측면에서 더 중요한 의미라는 것을 반영한 방식이다.
Layered 와 Cross-Layered 방식은 모두 Layer를 나눈다는 것을 전제로 하고 있다. 즉, Cross-Layered의 장점은 Layered 방식의 장점을 모두 포함하게 된다. 이러한 Layering은 Architecture Style이고, Architecture 관점에서 어느 시점(설계시 혹은 구현시)에 Layering을 할 것인가가 중요한 문제이다. 또한, Layer 와 Layer 간의 연결이나, Layer 내에서의 구조적인 문제도 중요한 이슈 중에 하나이다.

3.2 컴포넌트 인프라스트럭처 레이어
관심의 분리라는 원칙(principle of separating concerns)하에  컴포넌트 구조는 크게 4가지 layer 로 나뉘게 된다. User Layer 에서는 외부에 노출되는 인터페이스 (GUI, Web-based, 배치 커맨드 등)와 사용자의 상호작용 제어를 제공한다. Workflow/Process Control Layer는 비즈니스 서비스와 상호작용하는 복잡하고 자동화된 비즈니스 프로세스를 관리한다. Business Service/Legacy Wrapping Layer는 비즈니스 규칙과 운영 활동에 대한 구현을 제공한다. Data/OS Service Layer는 DBMS와 파일 시스템을 포함하여 저장 환경과 상호작용하는 기능을 제공한다.

그림 3-2. 컴포넌트 인프라스트럭처 레이어

Workflow Stereotype
  • Interface Controller : visual control 혹은 server page의 항해나 순서를 관리하면서 개개의 사용자 화면 요소를 커플링을 줄여준다.
    Process Controller : 하나 이상의 비즈니스 컴포넌트에 대해서 거친 입자(coarse-grained) 비즈니스 프로세스 (자동화된 하나의 유스케이스 정도) 를 수행하기 위해서 수많은 서비스와의 상호작용을 관리
  • Workflow Agent : 특정 워크플로우에 대한 화면의 항해를 제어하는 사용자측(Interface Controller 를 사용)과, 워크플로우 자체를 실행하고, 간섭하고, 관리하기 위해 Process Controller와 Business Component의 사용을 관리하는 워크플로우/프로세스 제어측면이 있다.
  • Infoware Component : 어플리케이션에서 필요한 저장 데이터/정보를 다루는 능력을 제공. 예를 들어, 저장 객체, 데이터베이스 레코드, 파일, 문서, 그래픽이 이러한 컴포넌트의 서비스를 통해서 사용된다.

반응형

'Homo Architect' 카테고리의 다른 글

Component Refactoring [1]  (0) 2008.11.12
컴포넌트 클러스터링 [5]  (0) 2008.11.06
컴포넌트 클러스터링 [4]  (0) 2008.11.06
컴포넌트 클러스터링 [3]  (0) 2008.11.06
컴포넌트 클러스터링 [1]  (0) 2008.11.05