타스크: 계층에 컴포넌트 할당
이 타스크에서는 디자인 서브시스템을 실현하는 서비스 컴포넌트의 세부사항을 지정합니다.
목적

타스크: 서브시스템 디자인(SOA) 중에 설명된 하나 이상의 아티팩트: 디자인 서브시스템을 구체화하고 세부적인 아티팩트: 서비스 컴포넌트 디자인을 제공합니다.

관계
역할기본: 추가: 지원:
입력필수: 선택사항: 외부:
  • 없음
출력
기본 설명

SOA 기반 솔루션에서 사용한 서비스는 아티팩트: 서비스 컴포넌트를 통해 실현되며 이는 특정 비즈니스 기능 연계 서브시스템에 속합니다. 각 서비스 컴포넌트에서는 실현할 서비스의 QoS를 확인해야 합니다. 엔터프라이즈 규모 자산의 경우, 각 서비스 컴포넌트는 자금 지원, 관리 및 유지보수에 대한 권한이 있습니다. 하부 구조 관리는 가용성, 로드 밸런스, 보안, 성능, 버전화 및 서비스 컴포넌트의 전반적인 상태를 확인해야 합니다. 여기서 서비스 컴포넌트는 서비스 세트의 기능성을 구현하고 서비스의 품질을 확인해야 합니다. 기능적 컴포넌트 및 기술적 컴포넌트는 여러 서비스 컴포넌트 전반에서 사용할 수 있습니다.

단계
계층에 컴포넌트 할당

계층화는 다음과 같은 이점이 있습니다.

  • 계층으로 IT 시스템에 대한 변경성 및 이식성의 품질 속성을 가져올 수 있습니다. 해당 인터페이스에 영향을 주지 않는 하위 계층으로 변경하는 경우 상위 계층으로의 변경이 필요하지 않습니다. 예를 들어, J2EE™ 표준을 따르는 모든 J2EE™ 규격 응용프로그램 서버는 응용프로그램 레벨의 소프트웨어로 변경하지 않고 자유롭게 대체할 수 있습니다. 하위 계층에서 필요로 하는 설비에 영향을 주지 않는 상위 계층으로 변경하는 것은 하위 계층에 영향을 주지 않습니다. 일반적으로, 인터페이스에 영향을 주지 않는 계층화된 소프트웨어 시스템으로 변경하는 것은 단일 계층에 한정됩니다.
  • 계층은 시스템을 구성하는 아키텍처의 청사진 역할의 일부입니다. 소프트웨어가 있는 계층을 인식하는 경우, 개발자는 그들이 코드 환경에서 의존할 수 있는 역할도 인식합니다. 계층은 개발 팀의 작업 지정을 정의할 수 있습니다(항상 그렇지는 않음).
  • 계층은 아키텍처에서 수행하는 통신 역할의 일부입니다. 대규모 시스템에서 모듈 간 종속성의 수는 빠르게 증가합니다. 소프트웨어를 인터페이스가 있는 계층으로 조직하는 것은 복잡도를 관리하고 구조를 개발자에게 전달하는 중요한 도구입니다.
  • 계층은 아키텍처의 분석 역할 수행에 도움이 됩니다. 이 계층은 디자인 변경의 영향을 분석하는 데 사용 가능합니다.

계층화는 엄격하거나 엄격하지 않을 수 있습니다. 엄격한 계층화 구성표는 컴포넌트가 동일한 계층 또는 바로 그 아래 계층에 있는 컴포넌트를 사용할 수 있음을 의미합니다. 엄격하지 않은 계층화 구성표는 컴포넌트가 동일하거나 모든 하위 계층에 있는 컴포넌트를 사용할 수 있음을 의미합니다. 하지만, 일반적인 규칙에 따르면 컴포넌트가 상위 계층에 있는 컴포넌트를 사용할 수 없습니다. 컴포넌트에 상위 계층 컴포넌트에 대한 종속성이 있는 경우, 하위 계층 컴포넌트를 변경하지 않고 상위 계층 컴포넌트를 바꾸는 것은 어렵습니다. 모델링 계층에 필요한 기법을 포함한 자세한 정보는 개념: 솔루션 파티션을 참조하십시오.

소프트웨어 계층을 기록할 중요한 지점은 계층과 동일하지 않습니다. 분배된 환경의 시스템에 대한 할당, 요소 간의 데이터 플로우 및 통신 채널의 존재 및 사용 모두가 계층 다이어그램에서 식별할 수 없는 계층 그림에 표현됩니다. 계층 다이어그램은 특정 정렬의 양방향 통신을 표시하는 두 방향 화살표를 보여줍니다. 양방향(대칭) 통신은 계층 다이어그램에 좋은 영향을 주지 않습니다. 더구나 오퍼레이션 아키텍처 정의 시 계층에 대한 컴포넌트의 지정이 배치 규칙을 기반으로 하며 시스템의 필수 서비스 레벨 특성에서 정의됩니다. 계층화 다이어그램과 계층 그림 간의 주요 차이점은 전자에는 배치 개념이 없는 반면 후자에는 분명하게 있다는 것입니다.

경험에 의한 규칙 계층화

  • 응용프로그램 독립 비즈니스 기능성을 제공하는 모든 컴포넌트는 한 계층에 있습니다. 응용프로그램 독립 비즈니스 기능에는 "고객 관리" 및 "제품 관리" 등이 있어 여러 응용프로그램의 범위에 적용할 수 있습니다.
  • 기술적 기능을 제공하는 모든 컴포넌트(예: 오류 처리, 인증, 로깅 및 감사)는 다른(논리) 계층에 있습니다. 이 컴포넌트는 비즈니스와 응용프로그램 모두에 독립적입니다. 경우에 따라, 기능적 컴포넌트에 대한 기술적 컴포넌트의 근접성으로 이 컴포넌트가 공통 계층에 위치할 필요가 있습니다. 이는 아키텍처 결정이며 그대로 문서화해야 합니다.
  • 미들웨어 컴포넌트(예: 메시지 큐 및 관련 DBMS 소프트웨어)는 그 이상의 계층에 있습니다. 이것은 "패브릭"이라고 합니다.

예제

다음은 솔루션에 있는 여러 요소에 필요한 일반(권장) 계층을 표시하는 SOA의 계층화된 보기입니다.

이 계층화 구조표에서 컴포넌트가 있게 될 위치를 쉽게 인식하며, 아래에 표시된 대로 렌트카 예제의 관련 컴포넌트를 서비스 컴포넌트 계층에 배치합니다. 모델에 엄격한 계층을 채택하기 위하여 UML 컴포지션으로 서비스 컴포넌트 계층을 포함하며 포트가 서비스 컴포넌트와 같은 인터페이스를 제공하는 대표 포트를 사용하여 서비스 컴포넌트의 기능성만 공개합니다.

특성
다중 발생
이벤트로 구동됨
진행 중임
선택사항
계획됨
반복 가능함
자세한 정보