By 양희정(yang119@hitel.net)
1. 엔터프라이즈 자바빈즈의 개념
1.1 엔터프라이즈 자바빈즈란 무엇인가?
엔터프라이즈 자바빈즈(Enterprise JavaBean, 이하 EJB)는 Multi-tier, cross-platform, 분산 객체 등을 지원하는 자바 애플리케이션을 개발하고 배치하기 위한 자바 컴포넌트 아키텍쳐이다. 기존의 자바빈즈가 UI를 가진 컴포넌트라면, EJB는 트랜잭션 서비스와 같은 여러가지 서비스를 지원받아 서버 쪽의 비즈니스 로직을 다루는 애플리케이션을 컴포넌트로 쉽게 개발할 수 있도록 한다. EJB는 기존의 트랜잭션 프로세싱 시스템이나 데이터베이스 서버, 웹 서버, 애플리케이션 서버 위에 배치할 수 있는 컴포넌트이다.
1.2 EJB의 목적
EJB가 등장하게 된 기본 목적 가운데 하나는 분산 애플리케이션 개발시에 발생하는 복잡한 프로세스를 단순하고 쉽게 만드는 것이다. EJB로 개발하게 되면, 분산 애플리케이션을 개발시 반드시 생각해야 하는 트랜잭션이나 보안과 같은 부분을 개발자가 코드 안에서 구현해야 하는 것이 아니라 런타임 때에 조정해 주면 되는 속성(properties)을 이용함으로써, 개발의 효율을 높일 수 있으며 개발자는 비즈니스 로직을 구현하는 데에만 전념하면 된다.
EJB 스펙에서는 자바 컴포넌트를 위한 기반 구조(Infrastructure)를 제시한다. 이 기반 구조는 EJB 컨테이너와 EJB 서버에 의해 제공되는데, 시스템 레벨의 트랜잭션, 보안, 스레딩, 네이밍(naming), 객체 라이프 사이클, 리소스 풀링, 원격 액세스, 영속성(persistance) 등의 서비스를 제공한다. 이 서비스는 개발자가 명시적으로 불러서 쓰는 수준이 아니라, 런타임시 속성에 정해진 대로, 비즈니스 로직을 포함하는 컴포넌트를 컨테이너가 적절한 시기에 호출하고 적절한 서비스를 제공한다.
1.3 EJB 구조(Architecture)
EJB의 구조는 아래 그림과 같다. EJB는 크게 컴포넌트인 엔터프라이즈 빈즈, 컴포넌트가 배치되어 돌아가는 환경인 컨테이너(Container), 컨테이너가 돌아가는 환경인 EJB 서버(EJB Server)로 구성되어 있다.
[그림 1] EJB의 구조
2. EJB 의 장단점
3. EJB를 지원하는 서버
GemStone - GemStone/J(Chile) : http://www.gemstone.com
BEA - Weblogic : http://www,bea.com/
IBM - WebSphere Application Server : http://www.ibm.com
Netscape - Netscape Application Server