가이드라인: J2EE 어플리케이션의 서브시스템 설계
주제
소개
이 가이드라인은 J2EE 어플리케이션 개발에 특정한 가이드를 사용하여 가이드라인:
설계 서브시스템을 보충합니다. 이 J2EE 특정 가이드라인을 읽기 전에 가이드라인: 설계 서브시스템을
읽는 것이 좋습니다.
이 가이드라인은 각 EJB보다 더 세부적인 설계 서브시스템에 적용됩니다.
EJB에 대한 가이드라인은 가이드라인: 엔터프라이즈
Java Bean을 참조하십시오.
또한 어플리케이션 클라이언트가 특수화된 설계 서브시스템으로 간주됨에 주의하십시오.
가이드라인: 어플리케이션 클라이언트를 참조하십시오.
설계 서브시스템 전개
서브시스템이 처음 식별되면, 초기에는 불특정 기술일 수 있습니다.
즉, 예상되는 조작의 작동을 설명하는 일부 상태 시스템, 텍스트로 된 설명, 인터페이스에 의해 지정될 수 있습니다.
그러나 이러한 불특정 기술 서브시스템은 보통 특정 기술 표시로 전개됩니다.
다음에서는 불특정 기술 설계 서브시스템이 특정 기술 서브시스템으로 전개되는 방식의 예를 제공합니다.
서브시스템 스펙(서브시스템의 블랙박스 보기)
서브시스템 스펙은 초기에 추상 UML 인터페이스를 가지는 것으로 모델링될 수 있습니다.
그림 1에 표시된 고객 서브시스템의 기본 설계를 고려하십시오.

그림 1: 기본 설계-고객 서브시스템
ICustomerMgt는 "getCustomerDetails" 및 "setCustomerDetails"와 같은 조작을 갖도록
더 세부적으로 정의됩니다.
설계가 더 상세해지면(활동:
서브시스템 설계), 이 추상 인터페이스는 언어 및 기술 특정 요소로
대체됩니다. (보다 추상적인 서브시스템 모델을 유지보수하도록 선택할 수 있습니다. 예를 들어,
둘 이상의 언어나 기술로 동일한 설계를 구현할 필요가 있습니다. 이 선택사항 설명은
개념:
설계에서 코드로 맵핑을 참조하십시오.) 해당 설계
유스 케이스 구현이 갱신되어 인터페이스 변경사항과
일치합니다.
이 예에서 그림 2는 고객 서브시스템의 블랙박스나 스펙 보기입니다.
차후 설계에서는 고객 서브시스템이 엔티티 EJB이어야 함을 표시합니다. 기본 설계
서브시스템은 다음과 같이 EJB 인터페이스로 변환됩니다.
- ICustomerMgt =>
- CustomerHome ?EJBEntityHomeInterface?
- ICustomer =>
- Customer ?EJBRemoteInterface?

그림 2: 고객 설계 서브시스템의 블랙박스 보기
설계 서브시스템으로 노출된 인터페이스는 일반 Java 인터페이스,
EJB 인터페이스(예: Java 인터페이스), EJB 인터페이스(원격 및 홈) 또는 심지어
하나 이상의 EJB의 존재를 완전히 숨기는 하나 이상의 위임 또는 액세스 클래스를
포함할 수 있습니다. Java 인터페이스를 포함하여 이 모두는 UML 인터페이스가 아닌 UML 클래스로
모델링됨을 참고하십시오(가이드라인: J2EE 어플리케이션의 인터페이스
참조). 예를 들어, 세션 Bean은 밀접하게 관련된 엔티티 Bean 세트에 액세스하는
페케이드로 자주 사용됩니다. 이 경우, 세션 Bean의 인터페이스만을 서브시스템에서 내보냅니다.
메시지 구동 Bean은 목적지(또는 엔드포인트)로부터 비동기적으로 메시지를
사용합니다. 그러므로 목적지는 메시지 구동 Bean을 포함하는 설계 서브시스템의 "인터페이스" 역할을 할 수 있습니다.
로컬 인터페이스는 동일한 설계 서브시스템에서 밀접하게 결합된 다른 EJB에 의해 사용되므로, 서브시스템에서
노출된 가시적인 인터페이스에서 보다는 서브시스템 구현에서 더 자주 표시됨을 참고하십시오.
J2EE 어플리케이션의 인터페이스에 대한 자세한 정보는 가이드라인:
J2EE 어플리케이션의 인터페이스를 참조하십시오. EJB 모델링에 대한 자세한 정보는
가이드라인: EJB를 참조하십시오.
서브시스템 구현(서브시스템의 흰색 상자 보기)
설계 서브시스템은 클라이언트가 필요로 하는 내용만을 노출시켜야 합니다. 그러므로
EJB를 구현하는 클래스는 서브시스템에 속하며, 논리적으로 서브시스템 구현 파트입니다.
서브시스템 구현은 다음과 같을 수 있습니다.
- 하나 이상의 가시적인 위임 또는 액세스 클래스에서 숨겨진 협업 EJB 및 클래스 세트
- 다른 협업 클래스가 없는 단일 EJB
이전 고객 서브시스템 예에 이어, 서브시스템의 구현은 다음을 포함합니다.
- CustomerEntityEJB (컴포넌트) ?EJBEntityBean?
- CustomerBean ?EJBImplementation?
- 추가 헬퍼 클래스
그림 3에서는 설계 서브시스템의 흰색 상자 보기(서브시스템 내부)를 표시합니다.
가이드라인: EJB에서 설명한 대로 EJB 클래스가
모델링됨을 참고하십시오. 이 서브시스템의 내부 보기는 서브시스템 구현으로 나타냅니다.
이 보기에서 클라이언트에게 표시되지 않는 결정사항이 표시됩니다. 예를 들어, 이 서브시스템 구현에서
DAO(Data Access Object) 클래스는 JDBC API를 사용하여 지속적 데이터에 액세스합니다.
(다른 설계에서 컨테이너 관리 지속성이 사용될 수 있습니다.) DAO 클래스에 대한 자세한 정보는
가이드라인: EJB를 참조하십시오.

그림 3: 고객 설계 서브시스템의 흰색 상자 보기
|