중개 서비스 개요

중개 서비스 응용프로그램은 해당 서비스를 이용하려는 기존 서비스(제공자) 및 클라이언트(요청자) 간에 전달되는 메시지를 차단하여 수정합니다. 중개 서비스는 중개 플로우가 있는 중개 모듈을 사용하여 구현됩니다.

중개 모듈은 WebSphere® Enterprise Service Bus 또는 WebSphere Process Server에 배치될 수 있습니다.

서비스 지향 아키텍처(SOA)에서 서비스는 비즈니스 응답 시스템을 작성하기 위해 임시방편으로 재사용 및 결합될 수 있는 비즈니스 기능을 표시합니다. 이 서비스는 서로 직접 연결되지 않고 느슨하게 연결되어 있습니다.

서비스 간에 중개 플로우를 도입하면 해당 서비스 간에 전달되는 메시지를 처리할 수 있습니다. 메시지는 하나의 응용프로그램이나 서비스에서 다른 응용프로그램이나 서비스로 송신되는 통신입니다. 중개 플로우는 메시지를 처리하는 로직을 제공합니다. 예를 들어, 중개 플로우는 요청자가 찾고 있는 특정한 특성을 가진 서비스를 찾고 요청자와 제공자 간 인터페이스 차이를 해결하는 데 사용할 수 있습니다. 복잡한 상호작용의 경우, 중개 기본요소는 순서대로 연결될 수 있습니다. 일반 중개는 다음을 포함합니다.
이 주제에서 설명하는 개념 및 용어는 WebSphere Integration Developer로 중개 서비스 응용프로그램을 빌드하는 방법에 대한 이해를 돕습니다.

주식 시세 예제: 중개 서비스 빌드

이 주제에 포함된 개념 설명을 위해 주식 시세를 제공하는 단순 중개 서비스에 대한 예제를 사용합니다. 클라이언트 응용프로그램은 중개 서비스에 주식 기호 및 고객 ID를 포함한 조회를 제공하여 해당 조회를 처리합니다. 고객의 등록 레벨을 결정하고, 등록 레벨에 따라 조회를 적합한 서비스 제공자에게 라우트합니다. 서비스 제공자가 리턴한 시세는 클라이언트 응용프로그램에 리턴되기 전에 고객의 우선 통화로 변환됩니다.

두 개의 외부 서비스 제공자의 서로 다른 인터페이스를 사용하고 클라이언트 응용프로그램에 단일 인터페이스를 노출하기 위해 중개 서비스를 사용합니다. 비즈니스 프로세스를 모델링하지 않고 온디맨드 방식으로 변환하여 서비스를 신속하게 빌드해야 합니다.

다음 그림은 전체 중개 서비스를 표시합니다.
필수 응용프로그램 그림

중개 모듈

중개 서비스 응용프로그램은 하나 이상의 중개 모듈로 어셈블 및 배치됩니다. 중개 모듈에는 다음 파트가 있을 수 있습니다.
  • 중개 플로우 컴포넌트
  • 서비스 제공자 및 해당 제공자의 인터페이스를 식별하는 가져오기
  • 중개 모듈을 서비스 요청자에 노출하는 내보내기
  • 중개 플로우 컴포넌트로 호출된 사용자 정의 중개 기본요소를 구현하는 Java™ 컴포넌트

주식 시세 예제

주식 시세 예제에서 이들은 어셈블리 편집기에서와 같이 중개 모듈의 파트입니다.


주식 시세 예제
중개 모듈 그림
  • StockQuoteService는 내보내기이며 클라이언트 요청자가 해당 중개 모듈을 서비스로 호출할 수 있도록 합니다.
  • StockQuote_MediationFlowComponent는 중개 플로우 컴포넌트이며 고객 ID 및 기호를 입력으로 승인하고 메시지를 처리하며 고객의 우선 통화로 시세를 리턴합니다.
  • DelayedService는 가져오기이며 외부 표준 서비스에 액세스를 제공합니다.
  • RealtimeService는 가져오기이며 외부 고급 서비스에 액세스를 제공합니다.

인터페이스 및 참조

서비스는 인터페이스를 통해 해당 비즈니스 기능에 액세스를 제공하여 서비스를 사용 또는 호출할 수 있습니다. 중개 모듈 및 비즈니스 통합 모듈에는 내보내기에 인터페이스가 있어 모듈을 호출할 수 있습니다. 인터페이스는 호출할 수 있는 조작 및 전달되는 데이터(예: 입력 인수, 리턴값 및 예외)를 정의합니다. 중개 플로우 컴포넌트에서 이 데이터는 메시지 형식으로 전달됩니다.

중개 플로우 컴포넌트에서 서비스 요청자가 내보내기를 통해 중개에 액세스할 수 있는 인터페이스는 소스 인터페이스라고 명명됩니다.

중개 플로우 컴포넌트는 서비스를 호출하기 위해 가져오기로 사용되는 인터페이스를 지정하는 참조를 통해 서비스 제공자(또는 가져오기)에 액세스합니다. 중개 플로우 컴포넌트에서 이 참조는 대상 참조라 명명됩니다.

주식 시세 예제

주식 시세 예제에서 사용하는 참조 및 인터페이스는 다음과 같습니다.


주식 시세 샘플의 참조 및 인터페이스
그림

  1. StockQuoteService는 요청자가 중개 모듈을 호출할 수 있는 내보내기 인터페이스입니다. 중개 플로우에서 StockQuoteService는 소스 인터페이스입니다. 이는 비즈니스 오브젝트 StockQuoteRequest를 입력으로 송신하고, 비즈니스 오브젝트 StockQuoteResponse를 출력으로 리턴하는 getQuote 조작을 제공합니다.
  2. DelayedService는 고급 서비스 제공자에게 액세스를 제공하는 가져오기 인터페이스입니다.
  3. RealtimeService는 표준 서비스 제공자에게 액세스를 제공하는 가져오기 인터페이스입니다.
  4. DelayedServicePartner는 표준 서비스 제공자 인터페이스에 액세스를 제공하는 가져오기 DelayedService의 인터페이스를 지정하는 참조입니다.
  5. RealtimeServicePartner는 고급 서비스 제공자 인터페이스에 액세스를 제공하는 가져오기 RealtimeService의 인터페이스를 지정하는 참조입니다.

증개 플로우 컴포넌트

어셈블리 편집기의 중개 플로우 컴포넌트에는 다음 파트가 있습니다.
  • 해당 중개 플로우를 호출하는 방법을 설명하는 하나 이상의 인터페이스. 이 인터페이스는 해당 중개 플로우에 연결될 내보내기의 인터페이스와 일치해야 합니다.
  • 해당 플로우가 호출하려는 파트너의 인터페이스를 지정하는 0개 이상의 참조. 실제 파트너는 플로우가 아니라, 해당 인터페이스를 보고 알 수 있습니다. 이 참조는 실제 파트너에 연결되며, 이는 인터페이스와 일치하는 Java 컴포넌트 또는 가져오기입니다.
  • 컴포넌트 구현을 정의하는 중개 플로우.

주식 시세 예제

주식 시세 예제에서 StockQuote_MediationFlowComponent는 중개 플로우 컴포넌트로서, 고객 ID 및 기호를 입력으로 승인하고 메시지를 처리하며 고객의 우선 통화로 시세를 리턴합니다. 중개 플로우 컴포넌트의 파트는 다음과 같습니다.


주식 시세 예제 중개 플로우 컴포넌트 그림
  1. StockQuoteService는 고객 응용프로그램 조작에 액세스할 수 있는 인터페이스입니다.
  2. DelayedServicePartner는 표준 서비스 제공자 인터페이스에 액세스를 제공하는 가져오기 DelayedService의 인터페이스를 지정하는 참조입니다.
  3. RealtimeServicePartner는 고급 서비스 제공자 인터페이스에 액세스를 제공하는 가져오기 RealtimeService의 인터페이스를 지정하는 참조입니다.

중개 플로우

중개 플로우는 입력 메시지 수신 시 실행되는 일련의 처리 단계로 구성되어 있습니다. 중개 플로우는 처리 단계를 정의하는 다수의 중개 기본요소를 포함하여 중개 플로우 편집기에서 작성됩니다. 연결은 중개 기본요소 간 메시지 플로우를 표시합니다.

중개 플로우 정의는 다음과 같이 소스 조작으로 시작됩니다.
  • 플로우는 소스 조작으로 메시지를, 대상 조작으로 응답을 처리합니다. 중개 플로우 편집기 맨 위 섹션에서 소스 조작은 하나 이상의 대상 조작에 시각적으로 연결될 수 있습니다. 이는 소스 조작이 대상 조작에 메시지를 송신하고, 대상 조작이 소스 조작 호출자에 응답을 송신함을 표시합니다. 이 플로우에는 요청 플로우 및 응답 플로우가 있습니다.
  • 응답을 받지 않으려면 소스 조작을 대상 조작에 연결하지 않습니다. 이러한 경우 요청 플로우만이 작성되고 메시지는 처리 후 소스 조작으로 직접 리턴됩니다.
중개 플로우 편집기에서 플로우는 왼쪽에서 오른쪽으로 표시됩니다. 소스에서 대상으로 보내는 메시지의 플로우는 요청 플로우이며, 대상에서 소스로 리턴되는 메시지의 플로우는 응답 플로우입니다. 다중 대상이 응답을 리턴 시, 리턴되는 메시지는 단일 메시지로 처리된 다음 소스로 리턴됩니다.
  • 요청 플로우는 소스 조작에 필요한 단일 입력 노드에서 시작되어 차례로 하나 이상의 중개 기본요소 및 각 대상 조작에 필요한 발호 노드로 진행한 후, 모두 함께 연결됩니다. 메시지가 처리 후 직접 소스로 리턴될 경우, 메시지는 요청 플러우의 입력 응답 노드에 연결될 수 있습니다. 결함 메시지가 소스 조작에 정의되면 입력 결함 노드도 작성됩니다.
  • 응답 플로우는 각 대상 조작에 필요한 발호 응답 노드로 시작되어 차례로 하나 이상의 중개 기본요소 및 소스 조작을 표시하는 단일 입력 응답 노드로 진행한 후, 모두 함께 연결됩니다. 결함 메시지가 소스 조작에 정의되면 입력 결함 노드도 작성됩니다. 결함 메시지가 대상 조작에 정의되면 발호 결함 노드도 작성됩니다. 응답 플로우는 요청만을 위한 조작 또는 대상 조작에 연결되지 않은 소스 조작에 대해서는 실행되지 않습니다.

주식 시세 예제

주식 시세 예제에서 중개 플로우는 다음의 조작 연결로 정의됩니다.

소스 조작 및
대상 조작 간 연결 그림
  • 소스 인터페이스의 getQuote 조작은 DelayedServicePartner 및 RealtimeServicePartner의 getQuote 조작에 연결됩니다.

자세한 정보는 관련 링크 아래에 있는 주제 "중개 플로우 편집기" 및 "요청 및 응답 플로우 빌드"를 참조하십시오.

.

중개 기본요소

중개 플로우는 일련의 중개 기본요소로 구성되어 있어 처리 단계를 정의합니다. 중개 기본요소는 메시지를 수신 및 처리하고, 처리된 메시지를 플로우의 노드 또는 다음 기본요소에 전달합니다. 예를 들어, 데이터베이스 참조 기본요소는 데이터베이스에서 값을 검색하여 메시지에 설정합니다. 이미 만들어진 중개 기본요소 세트는 중개 플로우 편집기 팔레트에서 이용할 수 있습니다. 해당 기본요소 세트가 제공하지 않는 중개 기능이 필요한 경우, 사용자 정의 중개 기본요소를 작성하여 사용자의 Java 구현 또는 가져오기한 서비스를 호출할 수 있습니다. 중개 기본요소에는 메시지를 수신하고 전달하는 터미널이 있습니다. 예를 들어, 메시지 로거의 터미널은 다음과 같습니다.

  • 왼쪽의 입력 터미널에서는 메시지를 수신합니다.
  • 맨 위 오른쪽의 출력 터미널에서는 처리된 메시지를 곧바로 플로우의 노드 또는 다음 기본요소에 전달합니다.
  • 기본요소에서 실행 실패가 발생한 경우, 맨 아래 오른쪽에 있는 실패 터미널은 실패 정보 및 메시지를 전달합니다.

자세한 정보는 관련 링크 아래에 있는 주제 "중개 플로우 편집기" 및 "요청 및 응답 플로우 빌드"를 참조하십시오.

서비스 메시지 오브젝트

앞서 정의한 바와 같이 메시지는 하나의 응용프로그램이나 서비스에서 다른 응용프로그램이나 서비스로 송신되는 통신입니다. 중개 플로우의 메시지는 서비스 메시지 오브젝트(SMOs)로 표시됩니다.

서비스 메시지 오브젝트는 확장된 비즈니스 오브젝트로서, SOAP 또는 JMS 등의 서비스를 호출하는 데 사용하는 전송 프로토콜 관련 헤더 정보 및 응용프로그램 데이터를 포함합니다. 서비스 메시지 오브젝트는 비즈니스 오브젝트의 응용프로그램 데이터(페이로드 또는 조작 메시지로도 알려짐)가 있는 본문 및 추가 컨텍스트 정보가 있는 헤더로 구성되어 있습니다. 메시지의 요소에 액세스하려면 XPath 1.0 식을 사용할 수 있습니다. 다음 그림은 서비스 메시지 오브젝트를 표시합니다.


서비스 메시지 오브젝트 그림
  1. 컨텍스트는 페이로드와 관련이 없는 정보가 저장되는 메시지 컨텍스트입니다. 컨텍스트에는 세 가지 요소가 있습니다.

    상관
    요청 및 응답 플로우의 진행 기간에 특성을 지속시키며, 요청 플로우에서 응답 플로우로 값을 전달하는 데 사용합니다.
    임시
    현재 플로우(요청 플로우 또는 응답 플로우)의 지속 기간에 특성을 사용 가능하게 하고, 동일한 플로우의 중개 기본요소 간에 값을 전달하는 데 사용합니다.
    실패 정보
    중개 기본요소에서의 실행 실패에 대한 예외 정보를 포함하고, 메시지 예외 체인이 있어 실패가 발생한 기본요소를 식별합니다. 이 정보는 실패 터미널에 전달됩니다.

  2. 헤더에는 메시지와 연관된 헤더 정보가 있습니다. 헤더 섹션의 다섯 가지 요소는 다음과 같습니다.

    SMOHeader
    메시지를 정의하는 정보를 포함합니다(예: 고유 메시지 ID, 메시지 버전 및 메시지 유형). SMO 헤더는 항상 서비스 메시지 오브젝트에 있습니다.
    JMSHeader
    JMS 가져오기 또는 내보내기 바인딩 사용 시, JMS 헤더를 포함합니다.
    SOAPHeader
    웹 서비스 가져오기 또는 내보내기 바인딩 사용 시 SOAP 헤더 정보를 포함합니다.
    SOAPFaultInfo
    SOAP 결함, 결함 코드, 결함 문자열 등의 정보를 포함합니다.
    Properties[]
    응용프로그램에 의해 메시지 헤더에 포함된 특성입니다.

  3. 본문에는 비즈니스 오브젝트의 응용프로그램 데이터가 있습니다. 응용프로그램 데이터는 페이로드 또는 조작 메시지 유형으로도 알려져 있습니다.
WebSphere Integration Developer에서 서비스 메시지 오브젝트는 중개 플로우에서만 사용됩니다. 기타 컴포넌트가 비즈니스 오브젝트를 이용 및 전송하여, 해당 오브젝트가 중개 플로우 컴포넌트로 들어가면 서비스 메시지 오브젝트로 변환됩니다. 서비스 메시지 오브젝트는 중개 플로우 컴포넌트를 나가자마자 다시 비즈니스 오브젝트로 변환됩니다.

인터페이스의 비즈니스 오브젝트 및 XPath 1.0 조건 간의 관계 예제는 관련 타스크 아래에 있는 주제 "요청 및 응답 플로우 빌드"에서 "XPath 식 빌드"를 참조하십시오.

XPath

대부분의 중개 기본요소에는 XPath 1.0 식을 사용하여 지정한 특성이 있습니다(예: 루트 특성은 XPath 1.0 식을 사용하여 처리에 필요한 기본요소에 사용할 수 있는 메시지 파트를 지정). XPath 1.0 식은 메시지에서 하나 이상의 필드를 식별하는 데 사용하고, 해당 필드는 값을 지정하여 필터링하거나 선택하는 데 사용할 수 있습니다.

인터페이스의 비즈니스 오브젝트 및 XPath 1.0 조건 간의 관계 예제는 관련 타스크 아래에 있는 주제 "요청 및 응답 플로우 빌드"에서 "XPath 식 빌드"를 참조하십시오.

메시지 변환

일반적으로 서로 다른 서비스의 인터페이스 및 조작은 동일하지 않으며, 소스에서의 서비스 메시지 오브젝트는 대상이 허용할 수 있는 형식으로 변환되어야 합니다. XSL 변환 중개 기본요소는 소스 및 대상 메시지 유형이 다를 때 필요합니다.

중개 플로우 편집기에서 메시지를 변환하려면 변환할 메시지의 범위를 XPath 1.0 식으로 정의하십시오. 그런 다음 XML 맵핑 편집기를 사용하여 소스 및 대상 서비스 메시지 오브젝트를 맵핑하십시오.

자세한 정보는 다음을 참조하십시오.
  • 자세한 정보는 관련 타스크 아래에 있는 주제 "요청 및 응답 플로우 빌드"에서 "XSL 변환 기본요소에 대한 맵핑 작성"을 참조하십시오.
  • Rational® Application Developer 주제 XML 파일 간 맵핑
관련 개념
중개 플로우 편집기
관련 태스크
중개 플로우 컴포넌트 작성
중개 플로우 편집기 열기
소스 및 대상 조작 연결
요청 및 응답 플로우 빌드
사용자 정의 중개 기본요소 구현
중개 모듈 테스트 및 디버깅

관련 정보

학습서: 중개 플로우 작성
샘플: 중개 플로우 편집기
중개 기본요소 플러그인 제공

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