우선 JavaBeans에 대해 알아보자.
(JavaBeans와 EJB는 이름만 유사할 뿐, 직접적인 관계는 없다)
## Java Beans란...
1. 정의 by Sun 사
자바 빈이란 개발자 도구에서 비주얼하게 수행되어질 수 있는 재사용 가능한 Software Component다.
또한 JavaBeans 컴포넌트들을 Beans이라고 한다.
참고 : 나비이야기님의 자바빈즈 설명
(정의니 어쩌고 하다가, 그냥 코드에서 이런게 자바빈즈다! 하니깐 이해가 잘감..;;)
2. 자바 빈과 클래스 라이브러리의 차이점
자바언어로 모든 소프트웨어 모듈들을 자바빈으로 만들 필요는 없다.
자바빈은 비주얼하게 다룰 수 있으며, 특정 목적을 위해 기능이나 데이터를 비주얼하게 변경할 수 있는
소프트웨어 컴포넌트에 적당하다.
반면, 클래스는 비주얼하게 다룰 수 없고, 프로그램 소스상에서 특정 기능을 구현하기 위해 사용되는
소프트웨어 모듈에 적당하다.
n. 참고 목록
- 자바스터디 '김형일'님의 Java Beans - Java Component Architecture
- Sun의 JavaBeans Specification 1.01
## EJB란..
1. 정의
EJB는 Client-Server 모델의 Server부분에서 운영되는 자바 프로그램 Component를 설정하기 위한 아키텍처이다. by [텀즈]
EJB 아키텍처는 객체지향 분산 Enterprise 어플리케이션의 개발 및 분산 배치를 위한 컴포넌트 아키텍처이다. by [Sun Microsystems]
2. 설명
- EJB 아키텍쳐를 이용해 만들어진 Application은 확장성이 있거나 / 트랜잭션을 보장하며,
다수 사용자 환경에서도 안전한 특징을 갖는다. 이들 EJB Application은 한 번 작성되면 Enterprise JavaBeans
스펙을 지원하는 어떤 서버 플랫폼에서도 배치되고 운영될 수 있다.
- EJB는 제품이 아니라 스펙이다.
(스펙은 여기 참조)
- EJB 컨테이너 모델 개요(JStorm 의 Enterprise JavaBeans 참고)
- EJB 와 JavaBeans
JavaBeans | EJB | |
만든 곳 | Sun | Sun |
목적 | 비주얼 개발환경에서 사용되는 재사용 가능한 컴포넌트 모델 | 미션 크리티컬한 서버쪽 비즈니스 어플리케이션에서 사용될 수 있는 분산객체 컴포넌트 모델 |
주로 동작하는 위치 | 클라이언트 > 서버 | 오직 서버 |
개발 난이도 | 상대적으로 쉬움 | 상대적으로 어려움 |
트랜잭션/페일오버 ,동시동작 보장 | 불가능 | 가능 |
패키지 | java.bean.* | javax.ejb.* |
동작 프로세스 | Intra-process | Inter-process |