엔터프라이즈 Bean

엔터프라이즈 Bean은 Java™ 애플리케이션을 작성하기 위해 다른 자원과 결합될 수 있는 Java 컴포넌트입니다. 엔터프라이즈 Bean에는 세 가지 유형인 엔티티 Bean, 세션 Bean, 메시지 구동 Bean이 있습니다.

모든 Bean은 Bean과 Bean이 상주하는 애플리케이션 서버 간의 인터페이스를 제공하는 EJB(Enterprise JavaBeans) 컨테이너에 상주합니다.

스펙의 EJB 2.1 이전 버전은 영구 데이터 저장 수단으로 엔티티 Bean을 정의하므로 지속적 스토리지 양식에 연결해야 합니다. 이 스토리지는 데이터베이스, 기존의 레거시 애플리케이션, 파일 또는 다른 유형의 지속 스토리지일 수 있습니다.

EJB 3.0 스펙에서는 EJB 1.1 스타일 엔티티 Bean을 사용하지 않습니다. JPA(Java Persistence API) 스펙은 사용하지 않는 엔터프라이즈 Bean을 바꿉니다. JPA 바꾸기를 엔티티 클래스라고 하지만 엔티티 엔터프라이즈 Bean과 혼동해서는 안됩니다. JPA 엔티티는 엔터프라이즈 Bean이 아니며 EJB 컨테이너에서 실행하지 않아도 됩니다.

일반적으로, 세션 Bean에는 애플리케이션에 대한 상위 레벨 및 중간 레벨의 비즈니스 로직이 포함됩니다. 세션 Bean에 대한 각 메소드는 특정 상위 레벨 조작을 수행합니다. 예를 들어, 주문을 제출하거나 계좌 간에 송금합니다. 세션 Bean은 흔히 비즈니스 로직 과정 중에 엔티티 Bean에 대한 메소드를 호출합니다.

세션 Bean은 stateful, stateless 또는 싱글톤이 될 수 있습니다. Stateful Bean 인스턴스는 클라이언트가 서로 관련된 일련의 메소드 호출을 수행하는 지속 시간 중에 단일 클라이언트에 의해 사용됩니다. 한 예로, 클라이언트가 온라인 쇼핑 세션 중에 카트에 항목을 추가하는 장바구니가 있습니다. 이와 달리, Stateless Bean 인스턴스는 대개 지속 시간 중에 여러 클라이언트에 의해 사용되므로 Stateless Bean은 단일 메소드 호출 범위에서 완료할 수 있는 비즈니스 로직 조작에 적절합니다. Stateful Bean은 반드시 필요한 경우에만 사용해야 합니다. Stateless Bean을 사용하면 애플리케이션의 디버그, 유지보수 및 확장 성능이 향상됩니다.

EJB 3.1 스펙은 싱글톤 세션 Bean을 도입합니다. EJB 컨테이너는 싱글톤 세션 Bean 인스턴스를 하나만 초기화하며 해당 인스턴스는 모든 클라이언트에서 공유됩니다. 모든 클라이언트가 단일 인스턴스를 공유하기 때문에 싱글톤 세션 Bean에는 특별한 라이프사이클 및 동시성 시맨틱이 있습니다. 싱글톤 세션 Bean에는 비즈니스 로컬, 비즈니스 원격 및 웹 서비스 클라이언트 보기가 있을 수 있지만 EJB 2.1 로컬 또는 원격 클라이언트 보기는 있을 수 없습니다.

EJB 3.x 스펙은 Stateless 및 Stateful 세션 Bean을 지원합니다. 이 Bean은 다음과 같이 단순한 패턴을 따릅니다.
  • 비즈니스 인터페이스를 정의합니다.
  • 이 인터페이스를 구현하는 클래스를 정의합니다.
  • 어노테이션 또는 XML 배치 디스크립터가 있는 메타데이터를 추가합니다.
단순 EJB 3.x Stateful 세션 Bean의 결과는 다음과 같습니다.
package ejb3demo;

@Stateful
public class Cart3Bean implements ShoppingCart {
    private ArrayList contents = new ArrayList();
    
public void addToCart (Object o) {
				contents.add(o);
    }

public Collection getContents() {
    return contents;

    }
}
EJB 컴포넌트는 @EJB와 같은 어노테이션과 기타 주입 가능한 @Resource 참조(모듈이 EJB 3.x 모듈인 경우)를 사용할 수 있습니다.

웹 애플리케이션 클라이언트와 애플리케이션 클라이언트는 배치 디스크립터 정의 EJB 참조를 사용할 수 있습니다. 참조가 홈 인터페이스가 없는 EJB 3.x 세션 Bean용인 경우 배치 디스크립터의 널 <home> 또는 <local-home> 설정으로 참조를 정의해야 합니다.

웹 애플리케이션 클라이언트와 애플리케이션 클라이언트는 또한 동일한 엔터프라이즈 아카이브(EAR)에서 EJB 세션 Bean에 대한 참조용으로 @EJB 주입을 사용할 수 있습니다. 그러나 바인딩이 컨테이너에서 자동 링크 지원을 사용하거나 어노테이션이 배치 디스크립터가 정의하고 애플리케이션이 설치될 때 바인드된 참조의 이름을 사용해야 합니다. 자동 링크에 대한 자세한 정보는 "EJB 3.x 애플리케이션 바인딩 지원" 주제를 참조하십시오.

메시지 구동 Bean은 비동기 메시징 서비스를 사용 가능하게 합니다.
  • EJB 컨테이너 및 JMS(Java Message Service) 제공자가 협력하여 메시지를 처리합니다. JMS를 통해 다른 애플리케이션 컴포넌트로부터 메시지가 도착하면 EJB 컨테이너는 onMessage() 메소드 호출을 통해 이 메시지를 메시지 구동 Bean 인스턴스로 전달하며, 이 인스턴스는 해당 메시지를 처리합니다. 다른 측면에서 메시지 구동 Bean은 Stateless 세션 Bean과 유사합니다.
  • EJB 컨테이너 및 JCA(Java Connector Architecture) 자원 어댑터는 EIS(Enterprise Information System)에서 메시지를 처리하기 위해 함께 작업합니다. EIS에서 메시지가 도착하면, 자원 어댑터가 메시지를 수신하여 메시지 구동 Bean으로 전달하고 메시지 구동 Bean에서 이 메시지를 처리합니다. 메시지 구동 Bean은 다른 엔터프라이즈 Bean이 서비스에 제공되는 것과 같은 방식으로 EJB 컨테이너에 의해 트랜잭션 지원과 같은 서비스에 제공됩니다.

데이터 액세스가 필요한 Bean은 지속 스토리지 메커니즘에 대한 연결 풀을 정의하는 관리 자원인 데이터 소스를 사용합니다.


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_main
파일 이름:cejb_main.html