샘플 디자인

WebSphere® Enterprise Service Bus 또는 WebSphere Process Service에서 실행되는 중개 서비스는 StockQuote라고 하는 단일 중개 모듈에 포함되어 있으며 이 모듈은 클라이언트 서비스 요청자에게 인터페이스를 제공하는 내보내기, 외부 웹 서비스 제공자에게 인터페이스를 제공하는 가져오기 및 중개 구현을 정의하는 중개 플로우 컴포넌트로 구성됩니다.

중개 모듈 StockQuote는 어셈블리 편집기에 빌드되며, 중개 플로우 컴포넌트 StockQuote_MediationFlow는 중개 플로우 편집기에 작성됩니다. 다음 그림은 어셈블리 편집기 및 중개 플로우 편집기에서 인터페이스 및 참조 간의 관계를 표시합니다.


어셈블리 편집기 및 중개 플로우 편집기에서 인터페이스 및
참조를 표시하는 그림

StockQuote 모듈

아래 다이어그램은 StockQuote 모듈의 요소를 표시합니다.
StockQuote 중개 모듈의 어노테이션이 있는 캡처 화면

  • StockQuoteService에는 StockQuoteService라고 하는 WSDL 인터페이스가 있으며, Servlet 프론트 엔드에서 JAX-RPC를 통해 중개 모듈에 연결할 수 있도록 SOAP/JMS 웹 서비스 바인딩을 사용합니다. 이 샘플에서는 StockQuoteService 인터페이스를 작성하고 WSDL 파일을 생성합니다.
  • StockQuote_MediationFlow에는 중개 플로우가 있습니다. 이 샘플에서는 StockQuote_MediationFlow 컴포넌트를 작성하고 구현합니다.
  • RealtimeService에는 실시간 서비스와 일치하는 인터페이스 및 웹 서비스 바인딩이 있습니다. 이 샘플에서는 WSDL 파일 RealtimeService.wsdl을 가져옵니다.
  • DelayedService에는 지연된 서비스와 일치하는 인터페이스 및 웹 서비스 바인딩이 있습니다. 이 샘플에서 WSDL 파일 DelayedService.wsdl을 가져옵니다.

StockQuote_MediationFlow

아래 다이어그램에서는 StockQuote_MediationFlow 컴포넌트를 통해 대상 서비스 제공자로 이동할 때 메시지에 적용되는 중개 로직을 정의하는 요청 플로우를 표시합니다.

StockQuote_MediationFlow
컴포넌트 요청 플로우의 어노테이션이 있는 캡처 화면

  1. 응답 플로우에서 나중에 사용 가능하도록 subscriptionLevel 특성을 메시지의 상관 컨텍스트에 설정합니다.
  2. 요청은 Log라는 이름의 메시지 로거 중개 기본요소를 사용하여 기록됩니다.
  3. 그런 다음 Lookup이라는 데이터베이스 참조 중개 기본요소에서 메시지 본문의 customerID 요소를 사용하여 제공된 CustomerDatabase에서 이 정보를 찾아 고객에게 프리미엄 또는 일반 서비스 사용 권한이 있는지 판별합니다. 이 정보는 나중에 사용할 수 있도록 메시지 상관 컨텍스트의 subscriptionLevel 특성에 추가됩니다.
  4. 그런 다음 Filter라는 메시지 필터에서 상관 컨텍스트의 subscriptionLevel 정보에 기초하여 요청을 실시간 또는 지연된 주식 시세 서비스로 라우트합니다.
  5. XSLT 기본요소 TransformToDelayed 및 TransformToRealtime에서 서비스가 예상하는 메시지와 일치하도록 도중에 각 서비스에 대해 메시지가 변환됩니다.

아래 다이어그램에서는 StockQuote_MediationFlow 컴포넌트를 통해 대상 서비스 제공자로부터 클라이언트로 이동하는, 리턴 메시지에 적용되는 중개 로직을 정의하는 응답 플로우를 표시합니다.


StockQuote_MediationFlow 컴포넌트 응답 플로우의
어노테이션이 있는 캡처 화면

각 서비스의 응답은 StockQuoteService에서 요구하는 형식과 일치하도록 XSLT 중개 기본요소(DelayedToStockQuoteService 및 RealtimeToStockQuoteService)를 통해 전달됩니다. 또한 XSLT 기본요소는 상관 컨텍스트의 subscriptionLevel 값을 메시지의 qualityOfService 특성으로 맵핑하는 데에도 사용됩니다. qualityOfService 텍스트는 실시간 서비스에서 리턴되는 응답에 "프리미엄"을 표시하고 지연된 서비스에서 리턴된 응답에는 "일반"을 표시합니다. 이 텍스트는 클라이언트에 표시되며 사용된 서비스 제공자를 나타냅니다.

피드백
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.