세션 Bean Facade 및 SDO

이 주제에서는 세션 Bean Facade에 대한 일반 개념을 설명하며 Workbench에서 제공하는 구현의 이점을 소개합니다. Workbench는 WebSphere의 EJB 중개자와 상호작용하고 정적으로 생성된 SDO(Service Data Object)에서 작동되는 세션 Bean Facade를 구현합니다.

Rational Application Developer 구현

세션 Facade의 Rational® Application Developer 구현에서는 하나 이상의 CMP 엔티티 Bean에 대한 데이터 및 로직 특성을 요약한 세션 Bean을 작성합니다. 이 세션 Bean은 세션 Bean과 함께 작성되는 해당 SDO와 상호작용하고 하나 이상의 CMP 엔티티 Bean에 지정된 데이터를 표시하도록 사용자 정의됩니다. 세션 Bean Facade 작성 마법사를 사용하여 세션 Bean Facade를 생성하는 데 사용되는 어노테이션을 CMP 엔티티 Bean에서 생성합니다. 마법사를 사용하면 CMP 엔티티 Bean과 새 SDO에 포함되는 일부 또는 모든 CMP 속성과 CMR 필드를 그래픽으로 선택할 수 있습니다. 따라서 세션 Bean 인스턴스는 해당 SDO 그래프를 참조하고 지속성 조회에 EJB-QL을 사용하여 EJBMediator와 상호작용합니다.

세션 Facade 및 SDO의 어노테이션에서 세션 Bean Facade 및 SDO를 정의하는 데 사용되는 @ws.sdo and @ws.sbf 태그 세트에 대한 참조 정보를 확인하십시오.

SDO(Service Data Objects)

데이터 오브젝트는 원래 클라이언트 애플리케이션에서 비즈니스 계층의 실제 데이터를 버퍼링하는 방법으로 디자인되었습니다. 예제로는 여러 소스에서 데이터를 요약하는 표준화된 메소드인 데이터 액세스 오브젝트가 있습니다.

SDO(Service Data Object)는 CMP 엔티티 Bean에서 특성을 파생시키는 데이터 오브젝트의 한 유형입니다. 단일 오브젝트에 하나 이상의 CMP 엔티티 Bean에 있는 개별 CMR(Container-Managed Relationship) 특성 서브세트를 요약할 수 있으므로 클라이언트 애플리케이션과 비즈니스 계층 간 대단위 트랜잭션이 가능합니다. 데이터 변경은 하나 이상의 SDO를 관리하는 데이터 그래프를 통해 모니터하며 중간 계층의 데이터 중개자 서비스는 클라이언트와의 데이터 전송을 관리합니다.

기존 세션 Facade 개요: 이점 및 제한사항

세션 Facade는 기존에 클라이언트 계층 애플리케이션 및 오브젝트와 비즈니스 계층 애플리케이션 및 오브젝트의 단단한 결합으로 인해 발생한 복잡함 및 성능 문제를 완화하는 데 사용되었습니다. 기존의 분산 엔터프라이즈 애플리케이션은 클라이언트 계층에 비즈니스 데이터 및 로직을 표시한 엔터프라이즈 Bean을 사용했으며 이 경우 세션 Bean을 프로세스에 사용하고 엔티티 Bean을 데이터 표시에 사용했습니다.

대형 애플리케이션에서는 이로 인해 클라이언트 계층과 비즈니스 계층의 상호작용이 증가하고 클라이언트 애플리케이션으로 인해 비즈니스 로직이 더욱 복잡해졌습니다. 따라서 클라이언트는 전체 비즈니스 로직 및 데이터를 이해하고 적절하게 대응해야 합니다.

클라이언트와 네트워크 호출 수가 증가하고 클라이언트 프로그램 자체도 상당히 복잡해졌으므로 클라이언트와 서버의 데이터 무결성을 유지하려면 클라이언트와 서버의 동기화가 필요하므로 쉽게 대규모 태스크가 될 수 있습니다.

데이터를 클라이언트의 조작에서 분리하여 이러한 여러 상황을 제거하는 한 방법으로 세션 Facade가 도입되었습니다. 이 경우 비즈니스 계층으로부터 데이터 요약 및 이 데이터에 필요한 비즈니스 메소드를 수신하는 CMP 엔티티 Bean의 세션 Facade를 작성했습니다. 이제 데이터 교환은 중개자 즉, EJB 메커니즘 자체의 CMP 기능인 중개자가 처리할 수 있습니다. 클라이언트는 메소드 및 데이터 표시에 대해서만 작업할 수 있으며 전체 비즈니스 로직과의 데이터 무결성 및 준수에 대한 책임은 없습니다.

그러나 기존 세션 Facade 구현에는 제한사항이 있습니다. 고급 애플리케이션에서는 여러 CMP 정의의 데이터가 필요하지만 단일 엔티티 Bean 인스턴스만 지정된 세션 Facade에 사용할 수 있습니다. 따라서 클라이언트와 비즈니스 계층 간 비교적 소단위 네트워크 호출이 증가하므로 네트워크 성능이 저하될 수 있습니다.


피드백