J2EE

개념
SUN JAVA 센터에서는 확장성(scalability), 가용성(availability), 성능(performance), 보안(securability), 신뢰성(reliability), 유연성(flexibility) 등과 같은 QoS(Quality of Service)를 얻기 위해 지속적으로 J2EE 플랫폼을 위한 솔루션을 설계 - J2EE 아키텍처는 J2EE 플랫폼 애플리케이션의 설계 과정 또는 적용 과정에서 발생하게 되는 문제를 문서화하고 해결할 수 있는 최상의 방안을 제시

I. J2EE 디자인 패턴 개요

가.  J2EE 디자인 패턴 개념

-  SUN JAVA 센터에서는 확장성(scalability), 가용성(availability), 성능(performance), 보안(securability), 신뢰성(reliability), 유연성(flexibility) 등과 같은 QoS(Quality of Service)를 얻기 위해 지속적으로 J2EE 플랫폼을 위한 솔루션을 설계

-  J2EE 아키텍처는 J2EE 플랫폼 애플리케이션의 설계 과정 또는 적용 과정에서 발생하게 되는 문제를 문서화하고 해결할 수 있는 최상의 방안을 제시

 

나.  J2EE 디자인 패턴 목적

-  EJB, Servlet, JSP, JNDI, API 등과 같은 J2EE 플랫폼에서 제공하는 기술들을 사용할 때 발생하는 문제점들을 해결

-  완전히 새로운 기술을 개발하기 보다는 best practice를 문서화하고 추천

 

다.  J2EE 디자인 패턴 사용 시 장점

-  J2EE 디자인 원칙을 자연스럽게 사용하게 됨

-  문서화의 효과와 사용 사례를 받아들이는 효과가 있음

-  J2EE에서 제공하는 기술들의 역할을 이해

-  컴포넌트간의 커플링과 의존도를 줄일 수 있음

-  네트워크 트래픽을 최소화 할 수 있음

-  가능할 때마다 네트워크 지연으로 발생하는 비용을 줄일 수 있음

-  J2EE 개발자를 위한 공통적인 어휘를 정의하여 개발자들간의 더욱 수월한 커뮤니케이션 가능

 

라.  J2EE 시스템의 레이어

 

 

II.  J2EE 디자인 패턴 종류

가.  프리젠테이션 티어(Presentation Tier) 패턴

-  클라이언트 티어와 통신하고 View와 Controller 패턴으로 구분

구분

설명

Intercepting Filter

HTTP 요청을 가로채서 사전 동작처리 후 이후 진행 여부를 판단

Front Controller

보안, 검증 등 공통된 로직을 한 장소에서 핸들링

Context Object

상태를 여러 애플리케이션에서 공유할 수 있도록 특정 프로토콜에 한정되지 않는 방식으로 캡슐화

Application Controller

액션과 뷰 관리를 중앙집중하고 모듈화

View Helper

프리젠테이션 티어 로직과 관련 없는 로직을 Helper 컴포넌트로 캡슐화

Composite View

최소 단위의 하위 컴포넌트를 집합 뷰로 생성

Service to Works

Front Controller와 View Helper 패턴을 혼합형태로 View 컴포넌트가 디스패처 역할을 하고 비즈니스 처리를 요청

Dispatcher View

Front Controller와 View Helper 패턴을 혼합형태로 View 컴포넌트가 디스패처 역할을 하고 비즈니스 처리를 요청

 

나.  비즈니스 티어(Business Tier) 패턴

-  클라이언트가 간단하면서도 항상 동일한 방법으로 사용할 수 있도록 비즈니스 로직을 조직화하여 제공

구분

설명

Business Delegate

비즈니스 서비스 접근을 캡슐화. 프리젠테이션 클라이언트와 비즈니스 서비스간의 커플링을 줄여줌

Service Locator

컴포넌트 룩업과 생성을 위한 오퍼레이션을 하나의 컴포넌트에 정의함으로써 코드 중복을 많이 줄이고 캐쉬 기능을 제공함

Session Façade

복잡한 비즈니스 티어 컴포넌트를 캡슐화하고 원격 클라이언트에게 인터페이스를 제공

Application Service

비즈니스 로직을 Session Façade와 Business Object 사이에 놓기 위한 중심점 제공

Business Object

비즈니스 데이터와 로직을 서로 분리

Composite Entity

로컬 엔티티 빈과 POJO를 이용하여 하나의 Persistent Business Object로 구현

Transfer Object

여러 개의 값을 하나의 오브젝트로 캡슐화 함으로써 리모트 호출 횟수를 줄일 수 있음

Transfer Object Assembler

복합 Transfer Object를 생성

Value List Handler

클라이언트의 요구사항에 따라 쿼리 결과를 관리. Iterator 패턴과 유사

 

다.  인테그레이션 티어(Integration Tier) 패턴

-  비즈니스 티어와 EIS(Enterprise Information System) 사이에서 사용

구분

설명

Data Access Object

데이터 액세스 로직을 캡슐화

Service Activator

비즈니스 컴포넌트에게 비동기 방식으로 메시지를 전달하는 방법을 제공

Domain Store

EntityBean을 사용하지 않으면서 비즈니스 오브젝트에게 투명한 퍼시스턴스 메커니즘을 제공

Web Service Broker

비즈니스 서비스를 웹서비스 형태로도 서비스할 때 이를 유연하게 처리할 수 있는 방법을 제공

 

댓글