소개
J2EE 모듈은 J2EE 응용프로그램에서 가장 작은 독립 배치 단위입니다. 개념: J2EE 개요에서 설명한 대로 여러 종류의 J2EE 모듈이 있습니다.
J2EE 모듈의 수와 크기는 J2EE 응용프로그램을 쉽게 배치하고 테스트하는 방식에 영향을 미치며 또한 다른 응용프로그램에 컴포넌트를 쉽게 재사용할 수 있는 용이성과 시스템이 다른 배치 구성에
얼마나 쉽게 적응될 수 있는지에 영향을 미칩니다.
J2EE 모듈 어셈블에 대한 정보는 가이드라인: J2EE 모듈 어셈블을 참조하십시오.
J2EE 모듈 배치에 대한 정보는 가이드라인: J2EE 모듈 및 응용프로그램 배치를 참조하십시오.
J2EE 모듈 식별
J2EE 모듈은 통합 중 작성되지만, 구현(및 실제로는 디자인)에서 이루어진 결정을 반영합니다. J2EE 모듈은 일반적으로 구현 서브시스템을 패키지하는 데 사용됩니다. 이 서브시스템은
일반적으로 중간 산출물: 디자인 서브시스템으로 맵핑됩니다.
J2EE 모듈은 EJB에서만 사용되는 밀접하게 관련된 EJB 및 헬퍼 클래스를 포함해야 합니다. 일반적으로 이와 같은 관계는 디자인에서 식별되며 이러한 클래스는 디자인 서브시스템으로 그룹화됩니다. 디자인
서브시스템의 식별은 이미 다중 배치 구성을 위한 재사용, 대체 및 지원의 문제를 고려했어야 합니다. 그러나 모듈이 특정 노드로의 배치를 위해 할당되면, 디자인에서의 취약성이 명확해질 수 있으며 디자인
서브시스템(및/또는 구현 서브시스템)에 대한 변경이 필요할 수 있습니다.
단일 컨테이너로 대상화된 컴포넌트를 포함하려면 J2EE 모듈을 식별하십시오. 웹 컴포넌트는 웹 모듈에서 패키지되고 EJB 컴포넌트는 EJB 모듈에서 패키지되며 응용프로그램 클라이언트 컴포넌트는 응용프로그램
클라이언트 모듈에서 패키지됩니다.
다중 모듈에서 사용하는 일반 Java 클래스는 별도의 J2EE 모듈에서 패키지되어야 합니다. 결과 JAR 파일은 필요로 하는 모듈의 클래스 경로 참조(또는 그러한 클래스 경로 참조의 전이 마감)에 표시됩니다.
요약하면, J2EE 모듈 식별 시 서브시스템이 여러 컨테이너로 배치되는 컴포넌트를 포함하고 각 컨테이너의 별도 모듈을 정의하는 경우를 제외하고는 각 구현 서브시스템마다 하나의 모듈을 식별하여 시작하십시오.
J2EE 모듈 모델링
J2EE 모듈은 구현 모델에서 <<EJB-JAR>>, <<JAR>> 또는
<<WAR>> 유형을 식별하는 스테레오타입을 포함한 UML 아티팩트로 표시됩니다.
J2EE 모듈로 컴포넌트(예: EJB 또는 servlet)를 구성하면 다음 다이어그램에 표시된 대로 포함된 컴포넌트에서 패키지된 모듈로 <<implements>> 종속성을 그려 그래픽으로
표시될 수 있습니다. 또한 아카이브에서 전체 Java 패키지의 포함을 표시하기 위해 <<JARInclude>> 종속성을 그릴 수 있습니다.
다른 선택사항은 다음 다이어그램에 표시된 대로 아카이브를 패키지로 표시하고 포함된 컴포넌트를 패키지 내에 표시하는 것입니다.
아카이브에 패키지된 컴포넌트를 모델링하는 것 이외에, 궁극적으로 아카이브의 배치 설명자에 문서화되는 컴포넌트의 특성을 모델링할 수도 있습니다.
일부 EJB 컴포넌트 특성을 모델링하는 방식의 예가 아래 제공됩니다.
위의 다이어그램은 세 개의 EJB, BankEJB, LoanEJB, CustomerEJB 및 LoanManagerEJB의 어셈블리를 동일한 모듈 EJBJARArchive1로 표시합니다. EJB 메소드 특성, 보안
역할 및 트랜잭션의 모델링에 주의하십시오. 이 예제에서, CustomerEJB는 CustomerTrans로 지정된 트랜잭션 유형(예: "Required")에서 실행됩니다. 소스 코드는 배치 설명자에서
"Customer" 사용자 역할로 맵핑되는 역할 이름 "user"를 사용합니다. 또한 호출하는 사용자가 다른 역할에 속하는 경우라도 LoanEJB 및 CustomerEJB의 모든 메소드는 "고객의" 신임으로
실행됩니다. 마찬가지로, LoanManagerEJB 메소드는 "Admin"으로 실행됩니다. 마지막으로, BankEJB의 사용자는 어떤 메소드도 액세스할 수 없습니다.
일부 웹 컴포넌트 특성을 모델링하는 방식의 예가 아래 제공됩니다.
위의 다이어그램은 웹 모듈로의 servlet 어셈블리를 표시합니다. "Customer" 유형의 사용자가 결과 표시 Servlet에서 메소드를 자체적으로 실행하는 보안 역할 및 제한조건의 모델링은
WebSecurityContraint1 특성이 정의하는 보안 제한조건의 영향을 받습니다.
J2EE 모듈을 노드로 배치하는 것은 배치 모델에 표시될 수 있습니다. 모듈에서 배치 노드로의 맵핑 모델링에 대한 자세한 설명은 가이드라인: J2EE 응용프로그램의 분배 설명을 참조하십시오.
배치 설명자
각 J2EE 모듈은 J2EE 표준 배치 설명자와 0개 이상의 벤더 고유의 설명자를 포함합니다. 개념: J2EE 개요는 다양한 유형의 배치 설명자에 대해 설명합니다. 일반적으로 표준 J2EE
배치 설명자는 기본적으로 디자인 및 구현 결정을 캡처합니다. 컴포넌트가 실행되는 노드와 컴포넌트가 특정 노드용으로 구성되는 방법과 같은 "배치 결정"으로 RUP가 나타내는 결정은 벤더 특정 배치 설명자에
캡처됩니다.
배치 설명자는 별도의 두 가지 목적으로 제공됩니다.
-
컨테이너로 디자인 결정을 통신하는 수단. 예를 들어, 세션 EJB의 배치 설명자에는 세션 EJB가 Stateful 또는 Stateless인지 여부를 나타내는 "session-type"이 있습니다. 이것은
디자인 및 코드와 일치해야 하며, 단순히 배치 설명자에서 이를 변경할 수 없습니다.
-
코드를 다시 컴파일하지 않고 동작을 조정하는 수단. 예를 들어, 특정 메소드를 호출하도록 권한 부여된 역할을 정의하기 위해 배치 설명자를 사용할 수 있습니다. 이것은 EJB의 코드를 변경하지 않고도 변경될
수 있습니다.
배치 설명자의 컨텐츠는 J2EE 모듈이 작성되고 J2EE 응용프로그램으로 어셈블될 때 설정됩니다. J2EE 모듈 어셈블에 대한 자세한 정보는 가이드라인: J2EE 모듈 어셈블을 참조하십시오. J2EE 응용프로그램 어셈블에 대한 자세한
정보는 가이드라인: J2EE 응용프로그램 어셈블을 참조하십시오.
|