## 라이브러리 vs 컴포넌트
–> 라이브러리 : 재사용성의 의미만 가지고 있음
–> 컴포넌트 : 재사용성은 기본이고, MVC에 대한 역할이 들어감
## 컴포넌트 5가지
1. 클라이언트(.jar)
–> Model(JavaBeans) ㅏ
2. 웹컴포넌트(.war)
–> View + Controller
3. EJB 컴포넌트(.jar)
–> Model(SessionBean + EntityBean)
4. J2EE 애플리케이션 컴포넌트(.ear)
–> 웹컴포넌트(View + Controller) + EJB 컴포넌트 (Model)
5. 리소스 컴포넌트(.rar)
–> 이미지, 오디오, 플래쉬, 기타..
## EJB 2.1
–> SessionBean(StateFull SessionBean 상대유지 세션빈, Stateless SessionBean 무상태 세션빈) + EntityBean(CMP container managements persistance (CMR) / BMP) + MessageDrivenBean
–> ejbLoad(){ }
–> ejbStore(){ }
## EJB 3.0
–> SessionBean + (JPA + JavaBeans) + MessageDrivenBean
## J2EE 패턴
Controller –> Business Delegate –> Session Facade –> Model Service
Service Locator
## OR mapping
Class : Table = 1 : 1
Object : Record = 1 : 1
Field : Column = 1: 1
## 정리
-Presentation Tier
-Business Tier
-Integration Tier
## Presentation Tier
Intercepting Filter – http 요청을 가로채서 사전 동작 처리 후 이후 진행 여부를 판단
Front Controller – 보안, 검증 등 공통된 로직을 한 장소에서 핸들링한다.
Context Object – 상태를 여러 애플리케이션에서 공유할 수 있도록 특정 프로토콜에 한정되지 않는 방식으로 캡슐화
Application Controller – 액션과 뷰 관리를 중앙 집중하고 모듈화
View helper – 프레젠테이션 티어 로직과 관련 없는 로직을 Helper 컴포넌트로 캡슐화
Composite View – 최소 단위의 하위 컴포넌트를 집합 뷰로 생성
Service to Workers – Front Controller 와 view Helper 패턴을 혼합 형태로 Controller 가 비즈니스 처리를 요청
Dispatcher View – Front Controller 와 view Helper 패턴을 혼합 형태로 view 컴포넌트가 디스패처 역할을 하고 비즈니스 처리를 요청한다.
## Business Tier
Business Delegate – 비즈니스 서비스 접근을 캡슐화. 프레젠테이션 클라이언트와 비즈니스 서비스 간의 커플링을 줄여준다.
Service Locator – 컴포넌트 룩업과 생성을 위한 오퍼레이션을 하나의 컴포넌트에 정의함으로 코드 중복을 많이 줄이고 캐쉬 기능을 제공한다.
Session Facade – 복잡한 비즈니스 티어 컴포넌트를 캡슐화하고 원격 클라이언트에게 인터페이스를 제공한다.
Application Service – 비즈니스 로직을 Session Facade 와 Business Object 사이에 놓기 위한 중심점 제공
Business Object – 비즈니스 데이터와 로직을 서로 분리
Composite Entity – 로컬 엔티티 빈과 POJO를 이용하여 하나의 Persistent Business Objetc 로 구현
Transfer Object – 여러 개의 값을 하나의 오브젝트로 캡슐화 함으로 리모트 호출 횟수를 줄일 수 있다.
Transfer Object Assembler – 복합 Transfer Objetc 를 만든다.
Value List Handler – 클라이언트의 요구사항에 따라 쿼리 결과를 관리한다. Iterator 패턴과 유사
## Integration Tier
Data Access Object – 데이터 액세스 로직을 캡슐화한다.
Service Activator – 비즈니스 컴포넌트에게 비동기 방식으로 메시지를 전달하는 방법을 제공
Domain Store – Entity Bean 을 사용하지 않으면서 비즈니스 오브젝트에게 투명한 퍼시스턴스 메커니즘을 제공한다.
Web Service Broker – 비즈니스 서비스를 웹 서비스 형태로도 서비스 할 때 이를 유연하게 처리할 수 있는 방법을 제공