다음을 통해 공유


방법: 메시지 변환 및 요청-응답 메시지 교환 패턴을 사용하여 서비스 엔드포인트로 라우팅

목표

이 섹션에서는 ESB Designer DSL(도메인별 언어)을 사용하여 양방향 램프와 함께 사용할 수 있는 요청-응답 여정을 만드는 방법을 보여 줍니다. 메시지를 받고, 메시지를 변환하고, 서비스에 메시지를 제출하고, 서비스 응답 메시지를 원본 메시지의 제출자에게 반환하는 라우팅 쪽지를 만듭니다.

이 방법 항목에서는 다음 단계를 완료합니다.

  • Microsoft BizTalk Server 맵을 구현하는 변환 여정 서비스를 사용하여 여정 라우팅 쪽지를 만듭니다.

  • 변환된 메시지를 서비스 엔드포인트로 라우팅하도록 여정을 구성합니다.

  • 서비스 응답 메시지를 원래 보내는 당사자에게 반환하도록 여정을 구성합니다.

  • 여정 테스트 클라이언트 샘플 애플리케이션을 사용하여 여정을 테스트합니다.

필수 구성 요소

이 방법 항목의 절차에서는 개발 활동에 대한 필수 구성 요소를 완료해야 합니다.

단계

ESB 여정 DSL 모델을 만들려면

  1. Visual Studio에서 C:\HowTos\Patterns\Patterns.sln을 엽니다.

  2. 솔루션 탐색기 여정라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 여정을 클릭합니다.

  3. 새 항목 추가 대화 상자의 이름 상자에 RequestResponse를 입력하고 추가를 클릭합니다.

여정의 속성을 구성하려면

  1. Visual Studio에서 RequestResponse.itinerary의 디자인 화면을 클릭합니다. RequestResponse 속성 창 다음 속성을 구성합니다.

    1. Is Request Response 드롭다운 목록에서 True를 클릭합니다.

    2. 모델 내보내기 드롭다운 목록에서 XML 여정 내보내기를 클릭합니다.

    3. Extender 설정 섹션의 여정 XML 파일 속성 옆에 있는 줄임표 단추(...)를 클릭합니다.

    4. XML 파일 선택 대화 상자의 파일 이름 상자에 C:\HowTos\Itineraries\RequestResponse를 입력하고 저장을 클릭합니다.

      참고

      이 단계를 통해 여정을 XML로 로컬 파일 위치로 내보낼 수 있습니다. 여정 데이터베이스 대신 로컬 파일 위치로 여정을 내보내면 ESB 테스트 클라이언트 애플리케이션을 사용하여 여정을 테스트할 수 있습니다. 이 방법 항목의 뒷부분에서 이 프로세스를 완료합니다.

여정의 구조를 정의하려면

  1. 도구 상자에서 On-Ramp 모델 요소를 디자인 화면으로 끌어옵니다. OnRamp1 속성 창 다음 속성을 구성합니다.

    1. Name 속성을 클릭한 다음 ReceiveNAOrder를 입력합니다.

    2. Extender 드롭다운 목록에서 On-Ramp ESB Extender를 클릭합니다.

    3. BizTalk 애플리케이션 드롭다운 목록에서 Microsoft.Practices.ESB를 클릭합니다.

    4. 수신 포트 드롭다운 목록에서 OnRamp.Itinerary.Response를 클릭합니다.

  2. 도구 상자에서 여정 서비스 모델 요소를 디자인 화면으로 끌어온 다음 On-Ramp 모델 요소의 오른쪽에 놓습니다. ItineraryService1 속성 창 다음 속성을 구성합니다.

    1. Name 속성을 클릭한 다음 MapNAOrderToCNOrder를 입력합니다.

    2. 여정 서비스 확장기 드롭다운 목록에서 메시징 확장기를 클릭합니다.

      참고

      이 속성은 프로세스가 파이프라인(메시징)에서 수행되도록 정의합니다. 또는 프로세스가 오케스트레이션에서 수행되는 경우 여정 서비스 Extender 속성을 Orchestration Extender로 설정합니다.

    3. 컨테이너 드롭다운 목록에서 ReceiveNAOrder를 확장한 다음 수신 처리기를 클릭합니다.

    4. 서비스 이름 드롭다운 목록에서 Microsoft.Practices.ESB.Services.Transform을 클릭합니다.

  3. MapNAOrderToCNOrder 모델 요소의 Resolver 컬렉션을 마우스 오른쪽 단추로 클릭한 다음 새 해결 프로그램 추가를 클릭합니다. Resolver1 속성 창 다음 속성을 구성합니다.

    1. Name 속성을 클릭한 다음 StaticallySpecifyTheMap을 입력합니다.

    2. 해결 프로그램 구현 드롭다운 목록에서 정적 해결 프로그램 확장을 클릭합니다.

    3. 변환 형식 드롭다운 목록에서 GlobalBank.ESB.DynamicResolution.Transforms.SubmitOrderRequestNA_To_SubmitOrderRequestCN 클릭합니다.

  4. 도구 상자에서 커넥터를 클릭합니다. ReceiveNAOrder 모델 요소에서 MapNAOrderToCNOrder 모델 요소로 연결을 끌어옵니다.

  5. 도구 상자에서 여정 서비스 모델 요소를 디자인 화면으로 끌어온 다음 MapNAOrderToCNOrder 모델 요소의 오른쪽에 배치합니다. ItineraryService1 속성 창 다음 속성을 구성합니다.

    1. Name 속성을 클릭한 다음 RouteToCNService를 입력합니다.

    2. 여정 서비스 확장기 드롭다운 목록에서 메시징 확장기를 클릭합니다.

      참고

      이 속성은 프로세스가 파이프라인(메시징)에서 수행되도록 정의합니다. 또는 프로세스가 오케스트레이션에서 수행되는 경우 여정 서비스 Extender 속성을 Orchestration Extender로 설정합니다.

    3. 컨테이너 드롭다운 목록에서 ReceiveNAOrder를 확장한 다음 수신 처리기를 클릭합니다.

    4. 서비스 이름 드롭다운 목록에서 Microsoft.Practices.ESB.Services.Routing을 클릭합니다.

  6. RouteToCNService 모델 요소의 Resolver 컬렉션을 마우스 오른쪽 단추로 클릭한 다음 새 해결 프로그램 추가를 클릭합니다. Resolver1 속성 창 다음 속성을 구성합니다.

    1. Name 속성을 클릭한 다음 StaticallySpecifyTheService를 입력합니다.

    2. 해결 프로그램 구현 드롭다운 목록에서 정적 해결 프로그램 확장을 클릭합니다.

    3. 전송 이름 드롭다운 목록에서 WCF-BasicHttp를 클릭합니다.

    4. 전송 위치 속성을 클릭한 다음 을 입력합니다http://localhost/ESB.CanadianServices/SubmitPOService.asmx.

    5. 대상 네임스페이스 속성을 클릭한 다음 을 입력합니다http://globalbank.esb.dynamicresolution.com/canadianservices.

    6. Action 속성을 클릭한 다음 submitOrder를 입력합니다.

  7. 도구 상자에서 커넥터를 클릭합니다. MapNAOrderToCNOrder 모델 요소에서 RouteToCNService 모델 요소로 연결을 끌어옵니다.

  8. 도구 상자에서 Off-Ramp 모델 요소를 디자인 화면으로 끌어온 다음 RouteToCNService 모델 요소의 오른쪽에 놓습니다. OffRamp1 속성 창 다음 속성을 구성합니다.

    1. Name 속성을 클릭한 다음 InvokeCNService를 입력합니다.

    2. Extender 드롭다운 목록에서 오프 램프 ESB Extender를 클릭합니다.

    3. BizTalk 애플리케이션 드롭다운 목록에서 GlobalBank.ESB를 클릭합니다.

    4. 송신 포트 드롭다운 목록에서 DynamicResolutionSolicitResp를 클릭합니다.

  9. 도구 상자에서 여정 서비스 모델 요소를 디자인 화면으로 끌어온 다음 RouteToCNService 모델 요소와 InvokeCNService 모델 요소 사이에 배치합니다. ItineraryService1 속성 창 다음 속성을 구성합니다.

    1. Name 속성을 클릭한 다음 SendPortFilter를 입력합니다.

    2. 여정 서비스 확장기 드롭다운 목록에서 경사로 확장기를 클릭합니다.

    3. 램프 끄기 드롭다운 목록에서 InvokeCNService를 확장하고 처리기 보내기를 클릭합니다.

  10. 도구 상자에서 커넥터를 클릭합니다. RouteToCNService 모델 요소에서 SendPortFilter 모델 요소로 연결을 끌어옵니다.

  11. 도구 상자에서 커넥터를 클릭합니다. SendPortFilter 모델 요소에서 InvokeCNService 모델 요소로 연결을 끌어옵니다.

  12. 디자인 화면을 마우스 오른쪽 단추로 클릭한 다음 유효성 검사를 클릭합니다.

    참고

    여정의 유효성을 검사합니다. 요청 당사자에게 응답 메시지를 다시 보내기 위해 오프 램프를 다시 온-램프에 연결할 필요가 없습니다. 양방향 램프를 사용하면 최종 메시지가 요청 당사자에게 자동으로 반환됩니다.

여정 테스트 클라이언트와 함께 사용할 모델을 내보내려면

  1. Visual Studio에서 RequestResponse 여정의 디자인 화면을 마우스 오른쪽 단추로 클릭한 다음 모델 내보내기를 클릭합니다.

    참고

    일정의 XML 버전이 Visual Studio에서 열립니다.

  2. 모든 프로젝트 아티팩트 저장

  3. Windows Explorer C:\HowTos\Itineraries로 이동합니다. 여정 XML(RequestResponse.xml)이 만들어집니다.

여정을 테스트하려면

  1. 개발 활동(C:\HowTos\ESB.Itinerary.Test.exe - 바로 가기)에 대한 필수 구성 요소 중에 만든 바로 가기를 사용하여 여정 테스트 클라이언트 샘플 애플리케이션을 엽니다.

  2. 여정 테스트 클라이언트에서 WCF 서비스 검사 사용 상자의 선택 취소를 선택합니다.

  3. 웹 서비스 옵션 섹션에서 양방향 서비스 검사 상자를 선택한 다음 여정 로드를 클릭합니다.

  4. 일정 파일 열기 대화 상자에서 C:\HowTos\Itineraries로 이동합니다. RequestResponse.xml를 선택한 다음 열기를 클릭하여 여정을 로드합니다.

  5. 확인 을 클릭하여 적재된 여정 메시지의 선택을 취소합니다.

  6. 여정 테스트 클라이언트에서 메시지 로드 상자 옆에 있는 줄임표 단추(...)를 클릭합니다.

  7. 로드할 XML 문서 선택 대화 상자에서 C:\HowTos로 이동합니다. NAOrderDoc.xml를 선택한 다음 열기를 클릭하여 테스트 메시지를 로드합니다.

  8. 요청 제출 단추를 클릭합니다. 테스트가 완료되면 확인을 클릭하여 표시되는 확인을 해제합니다.

  9. 결과 상자에서 메시지의 루트 노드가 submitOrderResponse이고 기본 네임스페이스가 ...인 것을 확인합니다. 캐나다 서비스.

    참고

    응답 메시지를 요청 당사자에게 보내기 전에 추가 변환이 필요한 경우 ESB 전달자 구성 요소가 포함된 파이프라인을 사용해야 합니다. 이 기능의 예는 여러 웹 서비스 설치 및 실행 샘플을 참조하세요.

추가 리소스

자세한 내용은 다음 관련 항목을 참조하십시오.