경로 및 회신 동작: 브리징 프로토콜 불일치

업데이트 날짜: 2015년 7월

프로토콜 불일치는 메시지 보낸 사람과 메시지 받는 사람이 서로 다른 메시지 프로토콜에서 작업하는 경우에 발생합니다. 연결와 관련된 일반적인 BizTalk 서비스 시나리오에서는 메시지 보낸 사람이 연결에 메시지를 보냅니다. 연결는 메시지를 처리한 다음 메시지 받는 사람에게 보냅니다. 즉, 프로토콜 불일치를 다음 두 인스턴스에서 브리지해야 합니다.

  • 첫 번째는 메시지 받는 사람에게 메시지를 보낼 때. XML 단방향 연결 및 XML 요청-응답 연결 둘 다에 해당하며, 두 경우 모두 메시지 받는 사람에게 메시지를 보내야 하기 때문입니다. 이를 경로 동작이라고 합니다.

  • 두 번째는 메시지 받는 사람으로부터 받은 응답 메시지를 다시 메시지 보낸 사람에게 보낼 때. XML 요청-응답 연결에만 해당하며, 이 연결의 경우에만 메시지 보낸 사람에게 다시 응답을 보내야 하기 때문입니다. 이를 회신 동작이라고 합니다.

경로 동작과 회신 동작은 둘 다 보강 단계에서 정의한 속성에 대해 작동합니다.

경로 동작을 사용하여 프로토콜 불일치를 처리하는 방법을 이해하기 위해 특정 시나리오를 고려해 보겠습니다. 이 시나리오에서는 XML 단방향 연결를 통해 POX(Plain Old XML)/REST 메시지를 WCF 서비스(SOAP 메시지 필요)에 보내야 합니다. 브리지로 전송된 메시지는 단순한 XML 페이로드이며 헤더가 없습니다. 반면, WCF 서비스로 보내는 메시지에는 일부 SOAP 헤더가 정의되어 있어야 합니다. 이 프로토콜 불일치를 연결하기 위해 연결를 구성하는 가상 사용자는 경로 동작을 사용하여 Action, MessageID 등의 관련된 일부 SOAP 메시지 헤더를 보내는 메시지에 할당합니다. 연결를 구성하고 서비스 버스에 배포한 후 POX 메시지가 연결로 전송됩니다. 메시지를 처리한 후 WCF 서비스에 라우팅하기 전에 연결의 경로 동작에 지정된 헤더가 메시지에 스탬프되고 WCF 서비스로 전송되므로 프로토콜 불일치가 브리지됩니다. 경로 동작을 구성하려면 The Routing Action을 참조하세요.

다음 표에서는 경로 동작을 사용하여 BizTalk Services 프로젝트의 중간 단계(또는 대상) 간에 속성 값을 전송할 수 있는 방법을 보여 줍니다.

 

보낸 사람/받는 사람 다른 연결로 전송 큐 및 항목으로 전송 릴레이 또는 외부 서비스 끝점으로 전송

연결에서 전송

속성을 현재 상태대로(키-값 쌍) 전송할 수 없지만 보내는 메시지 헤더(HTTP 또는 SOAP)의 값으로 할당하여 전달할 수 있습니다.

속성을 현재 상태대로(키-값 쌍) 전송할 수 있으며 보내는 메시지 헤더의 값으로 전달할 수도 있습니다.

속성을 현재 상태대로(키-값 쌍) 전송할 수 없지만 보내는 메시지 헤더(HTTP 또는 SOAP)의 값으로 할당하여 전달할 수 있습니다. 그러나 릴레이 또는 외부 서비스가 이용할 수 있도록 관련 헤더를 전달할지 여부는 브리지 디자이너가 결정합니다.

회신 동작은 경로 동작과 유사합니다. 유일한 차이점은 경로 동작의 경우 XML 단방향 연결 또는 XML 요청-응답 연결에서 메시지를 의도한 메시지 받는 사람에게 보낼 때 적용할 수 있는 반면 회신 동작의 경우 XML 요청-응답 연결에서만 메시지 받는 사람의 응답 메시지를 메시지 보낸 사람에게 다시 라우팅해야 할 때 적용할 수 있다는 것입니다.

이해하기 쉽도록 경로 동작에 사용된 시나리오를 반대로 생각해 볼 수 있습니다. 메시지 보낸 사람이 XML 요청-응답 연결를 통해 SOAP 메시지를 REST 서비스(POX/REST 메시지 필요)에 보내야 합니다. 연결로 전송된 메시지는 모든 관련 헤더가 포함된 SOAP 메시지입니다. 연결는 메시지를 REST 서비스에 라우팅하기 전에 메시지 헤더를 암시적으로 제거하고 XML 페이로드만 REST 서비스에 보냅니다. REST 서비스의 응답도 POX 메시지입니다. POX 응답 메시지를 메시지 보낸 사람에게 다시 보내기 전에 회신 동작이 POX 메시지에 메시지 헤더를 스탬프한 다음 메시지 보낸 사람에게 SOAP 봉함 메시지를 보냅니다. 회신 동작을 구성하려면 Create an XML Request-Reply Bridge을 참조하세요.

다음 표에서는 회신 동작을 사용하여 연결에서 메시지를 보낸 클라이언트에 속성 값을 다시 전송할 수 있는 방법을 보여 줍니다.

 

보낸 사람/받는 사람 다른 연결로 전송 릴레이 또는 외부 서비스 끝점으로 전송

연결에서 전송

속성을 현재 상태대로(키-값 쌍) 전송할 수 없지만 보내는 메시지 헤더(HTTP 또는 SOAP)의 값으로 할당하여 전달할 수 있습니다.

속성을 현재 상태대로(키-값 쌍) 전송할 수 없지만 보내는 메시지 헤더(HTTP 또는 SOAP)의 값으로 할당하여 전달할 수 있습니다. 그러나 릴레이 또는 외부 서비스가 이용할 수 있도록 관련 헤더를 전달할지 여부는 브리지 디자이너가 결정합니다.

경로 동작과 회신 동작을 사용하여 메시지 헤더 속성을 설정할 수 있지만 다음 사항을 고려해야 합니다.

  • ToReplyTo SOAP 메시지 헤더를 사용할 때는 주의해야 합니다. WCF 바인딩 등의 기본 바인딩으로 인해 이러한 메시지 헤더가 재정의될 수 있기 때문입니다. 따라서 이러한 메시지를 사용하는 응용 프로그램이 경로 동작이나 회신 동작을 통해 설정된 메시지 헤더를 예상하는 경우 예기치 않은 오류가 발생할 수 있습니다.

  • basicHttpBinding 또는 basicHttpRelayBinding을 사용하는 끝점에 메시지를 라우팅할 때는 MessageID SOAP 헤더를 설정하면 안 됩니다.

참고 항목

개념

브리지란?

표시: