Search results for 'Application Service'

Intra-Business 티어 패턴 - Application Service

2007/05/24 23:06
1. 고려해야 할 사항
  • Service Facade에 정의할 비즈니스 로직의 양을 초소화 해야함.
  • 보통 유즈케이스는 여러 개의 비즈니스 오브젝트를 참조.
  • 비즈니스 오브젝트에 정의할 비즈니스 로직의 양을 최소화 해야함.

2. 해결방안
  • Application Service 패턴의 구조
    사용자 삽입 이미지

  • Application Service 패턴의 시퀀스
    사용자 삽입 이미지

3. 구현전략
  • Application Service
    Application Service는 GoF Command 패턴에 의해 지정된 커맨드에 따라 호출될 수 있음. 필요에 따라 Application Service 자신이 커맨드가 될 수도 있음.
  • GoF Strategy for Application Service
    다른 알고리즘을 이용하고 있지만 같은 결과를 얻을 수 있는 여러 개의 Application Service가 있을 경우, 이것은 Strategy 패턴을 이용해 구현될 수 있음.
  • Application Service Layer Strategy
    Application Service 레이어를 여러개 정의할 수 있음. 이때 위쪽에 존재하는 레이어는 클라이언트가 직접 사용하게 될 레이어로 인터페이스를 클라이언트 중심으로 정의하게 됨.

4. 예제 및 코드
사용자 삽입 이미지

ReservationMgmtAS.java (Language : java)
  1. public class ReservationMgmtAS implements SessionBean {
  2.    private ReservationHome resHome = null;
  3.    private PaymentHome payHome = null;
  4.    private PaymentService payService = null;
  5.  
  6.    public void ejbCreate() throws CreateException {
  7.       try {
  8.          ServiceLocator.getInstance();
  9.          resHome = (ReservationHome)locator.getHomeObject("ejb/Reservation", ReservationHome.class);
  10.          payHome = (PaymentHome)locator.getHomeObject("ejb/Payment", PaymentHome.class);
  11.          payService = payHome.create();
  12.       } catch (Exception e) {
  13.          throw new CreateException ("Unable to initialize AS");
  14.       }
  15.    }
  16.  
  17.    public boolean makeReservation(...) throws Exception {
  18.       Reservation res = resHome.create(...);
  19.       double cost = res.getCost();
  20.       return payService.verifyPayment(cost);
  21.    }
  22.  
  23.    // ...
  24. }


5. 결과
  • 장점
    비즈니스 로직의 재사용성을 높일 수 있음.
    Service Facade에 Application Service 에서 중복되는 로직, 예를 들어, 인증처리와 같은 로직을 Service Facade에 정의함으로써 코드 중복을 줄일 수 있음.
  • 단점
    작은 규모의 어플리케이션에서 Application Service와 같은 레이어를 추가하는 것은 불필요한 작업이 됨.

6. 관련 패턴
  • Session Facade
  • Data Access Object
이올린에 북마크하기

happyness Programming/J2EE Patterns ,

2007/05/24 23:06 2007/05/24 23:06
[로그인][오픈아이디란?]