EJB (Enterprise JavaBean) ?

Enterprise JavaBean (EJB)은 재활용 가능한 포터블 J2EE 컴포넌트이다. EJB는 비즈니스 로직을 인캡슐레이트 하는 메소드들로 구성되어 있다. 한 예로, EJB가 데이터베이스의 고객 데이터 업데이트를 위한 메소드를 포함하는 비즈니스 로직을 구현하고 있을 수 있다. 다양한 원격/로컬 클라이언트에서 이 메소드를 호출하는 것이 가능하다. 또 EJB는 컨테이너 내부에서 실행되므로, 개발자들이 트랜잭션 지원, 보안, 원격 오브젝트 접근과 같은 복잡하고 까다로운 문제를 신경 쓰지 않고도 빈 내부에 포함된 비즈니스 로직에만 집중 할 수 있게 한다.

EJB는 POJO(Plain Old Java Object)의 형태로 개발되며, 개발자들은 메타데이터 주석(Metadata Annotation)을 이용하여 이 빈들이 어떻게 관리되는지 정의 할 수 있다.


EJB는 윈도우의 COM/DCOM과 대비되는 기술로 대량 처리환경에서의 분산컴퓨팅을 원활하게 하기 위한 기술이다. 일반적으로 프리젠테이션 계층(웹 서버)을 담당하는 머신 A와 비즈니스로직을 처리하는 머신 B 그리고 퍼시스턴스 계층(DB)인 C머신으로 구성된다. A머신은 복수개가 될 수 있으며, 유저입장에서 볼 때에 웹 서버이지만, EJB 기술적 관점으로 볼 때에는 EJB 클라이언트라고 할 수 있다. 당연히 B는 EJB 서버가 된다.


Web Browser(user) - EJB Client(A) - EJB Server(B) - DB Server(C)


A는 EJB클라이언트이기 때문에 Remote Home Interface 및 Remote Interface를 작성한다.

B는 EJB 서버이기 때문에 Session Bean을 작성한다.


세션 빈은 구축 대상 업무를 처리하는 비즈니스 로직이라 생각하면 된다.

리모트 인터페이스는 세션 빈을 원격에서 호출할 수 있도록 해주는 stub와 같은 역할을 해주는 인터페이스이다. 이름이 원격 인터페이스임을 상기하라.


리모트 홈 인터페이스는 리모트 인터페이스의 실체를 생성하여 리턴해 준다. 리모트인터페이스를 만들어 준다고 이해하면 된다.

B의 서버에는 세션빈 이외에도 엔티티 빈이 존재한다.

엔티티 빈은 세션빈과 다르게 로컬환경에서 사용된다. 즉 B서버에만 있으며 A에서의 직접 호출이 불가능하다는 말이다. 따라서 세션빈에 의해 간접적으로 호출되게 된다. 엔티티빈은 일반적으로 DB상의 하나의 테이블과 일치되며, 이 테이블의 선택/갱신/입력/삭제에 관련한 작업을 수행하게 된다. 엔테티 빈은 세션빈의 리모트 인터페이스/리모트홈 인터페이스와 대배되는 로컬 인터페이스/로컬 홈 인터페이스를 보유하고 있다.


+ Recent posts