280 likes | 427 Views
chapter 03 : EJB 개요. 학습목표. EJB 개요 EJB 종류 EJB 구현 방법 Black Box 모델 EJB Architecture SessionBean 을 이용한 EchoEJB 실습. EJB 개요. 정의 Enterprise JavaBeans. 분산객체기술에 기반한 컴포넌트 모델이다. 특징 Container 에서 실행된다 . Black-Box 모델로 작성된다 . 재사용성이 뛰어나다 . 개발속도가 빠르다 .
E N D
chapter 03 : EJB 개요
학습목표 • EJB 개요 • EJB 종류 • EJB 구현 방법 • Black Box 모델 • EJB Architecture • SessionBean을 이용한 EchoEJB 실습
EJB 개요 • 정의 • Enterprise JavaBeans. • 분산객체기술에 기반한 컴포넌트 모델이다. • 특징 • Container 에서 실행된다. • Black-Box 모델로 작성된다. • 재사용성이 뛰어나다. • 개발속도가 빠르다. • Enterprise 개발 환경에 적합한 컴포넌트이다.
EJB 개요 • 장점 • 안정적인 서비스 제공. • 확장성( scalability) : 다양한 규모의 서버에서 운용. • 보안( security ) : 인증 및 권한 • 분산트랜잭션 처리. • 재사용성 ( Reusability ) • Black Box 모델 • 클라이언트와의 의존도를 낮춘다. • 유지보수가 쉽다. • 클라이언트는 실제 구현 클래스를 접근할 수 없다. • 인터페이스를 통하여 클라이언트는 접근할 수 있다.
EJB 구현 • 구현 내용 • 비즈니스 로직 • 데이터 • 구현 방법 • 2 개의 인터페이스 • 1 개의 EJB 클래스. • EJB 종류 • javax.ejb.SessionBean • javax.ejb.EntityBean • javax.ejb.MessageDrivenBean
Home Interface Bean Component Interface Client • EJB 구현 • Black Box 모델 • 클라이언트는 직접 Bean를 접근할 수 없다. • 클라이언트는 인터페이스를 통해서 Bean과 연결한다. • 클라이언트와 Bean의 의존이 loose coupling 이다.
EJB 종류 - SessionBean • 용도 • 일시적인 데이터 상태를 표현하기 위한 빈. • 주로 클라이언트의 비즈니스 처리를 담당한다. • ‘클라이언트의 요청을 대변하는 역할’ 을 갖는다. • 종류 • 무상태유지 세션빈 ( stateless SessionBean ) • 한번 명령어를 요청하면 다음 요청까지의 상태를 유지하지 않는다. • 클라이언트와 빈간의 관계는 다대다 관계이다. • 개발이 용이하고 효율적이다. • 빈의 메모리관리는 pooling 기법을 사용한다. • 상태유지 세션빈 ( stateful SessionBean ) • 수행되는 동안 오직 하나의 클라이언트에 할당되어 대리인 역할을 담당한다. • 클라이언트와 세션빈 간의 대화상태를 유지한다. • 클라이언트와 빈간의 관계는 1:1 관계이다.
EJB 종류 - EntityBean • 용도 • 데이터베이스에 영구적으로 저장된 데이터를 표현한다. • 테이블의 레코드를 객체화한 것이다. • 종류 • BMP ( Bean Managed Persistence ) • 빈 제공자가 직접 작성한 SQL 문을 이용하여 EntityBean을 작성한다. • CMP ( Container Managed Persistence ) • EJB Container 에서 작성된 SQL 문을 이용하여 EntityBean을 작성한다. • EJB 종류 - MessageDrivenBean • 용도 • 비동기 통신에 사용되는 빈이다.
EchoEJB 실습 예제 • 작업 순서 • 탐색기에 작업 디렉토리 생성 • 소스파일 작성 ( 2개의 interface, 1개의 빈 클래스) • 컴파일 작업 • 설정파일 ( xml 파일 ) 작성 • jar 파일로 압축 • 클라이언트 컴파일용 jar 파일 작성 • 클라이언트 소스파일 작성 • 컴파일 • 배치 ( Deployment ) • 실행
탐색기에 작업 디렉토리 생성 • 작업 디렉토리 생성
탐색기에 작업 디렉토리 생성 • server\bin
탐색기에 작업 디렉토리 생성 • client\bin
소스 파일 작성 • 작성 방법 • 2 개의 인터페이스를 작성한다. • SessionBean을 구현한 1 개의 클래스를 작성한다. • 인터페이스 작성 • Home Interface • javax.ejb.EJBHome 인터페이스를 상속받는다. • 빈의 생성/소멸 작업관련. • Component Interface • javax.ejb.EJBObject 인터페이스를 상속받는다. • 비즈니스 메소드 작업관련. • 빈 클래스 작성 • javax.ejb.SessionBean 인터페이스를 구현한다. • Home Interface 선언된 추상 메소드를 구현한다. • Component Interface 선언된 추상 메소드를 구현한다.
: Bean의 생성/소멸 관련 작업. <<EJBHome>> <<Home Interface>> : Bean의 비즈니스 관련 작업. <<EJBObject>> : Home Interface 메소드 구현. Component Interface 메소드 구현. SessionBean Interface 메소드 구현. <<Component Interface>> <<SessionBean>> UserBean • 소스 파일 작성
설정파일 작성 ( xml 파일 ) • WebLogic Builder Tool 이용.
EJB Container EchoHome EchoHome EchoEJB :생성자 호출 setSessionContext 호출 ejbCreate 호출 Client Echo JNDI • 실습예제 Architecture • Echo 실습예제 Architecture
EchoClient.java 작성 • Binding 된 EchoHome를 lookup 한다. • narrow 메소드를 이용하여 EchoHome 객체로 narrow캐스팅한다. • EchoHome에 create 메소드를 요청한다. • Echo 에 비즈니스 메소드를 요청한다. • 클라이언트 소스파일 작성
클라이언트 소스파일 작성 • 컴파일 • 실행
공부한 내용 • EJB 개요 • EJB Architecture • EJB 종류