웹 서비스 주소 지정 메시지 교환 패턴

W3C(World Wide Web Consortium) 웹 서비스 주소 지정(WS-Addressing) 스펙은 WSDL 1.0에 정의된 메시지 교환 패턴(MEP)에 사용할 WS-Addressing 코어 특성을 명시적으로 정의합니다. 이 주제는 각 패턴의 필수 WS-Addressing 특성을 설명하면서 MEP를 요약합니다.

단방향 MEP

이 직선형 단방향 메시지는 WSDL 1.0에서 입력 전용 조작으로 정의됩니다. 이 조작의 WSDL 단편은 다음 양식을 갖습니다.
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
</operation>
다음 WS-Addressing 메시지 주소 지정 특성(MAP)은 WS-Addressing 스펙을 준수하도록 클라이언트 애플리케이션 서버 런타임에 의해 단방향 WS-Addressing 입력 메시지의 메시지 헤더에 자동으로 추가됩니다.
팁: IBM 독점 WS-Addressing 시스템 프로그래밍 인터페이스(SPI)를 사용하여 이 값을 대체할 수 있습니다.
표 1. 클라이언트가 단방향 WS-Addressing 입력 메시지의 메시지 헤더에 추가하는 WS-Addressing 메시지 주소 지정 특성. 테이블에는 다른 WS-Addressing MAP 이름이 나열되어 있고 각 이름에 대한 설명이 제공됩니다.
추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 단방향 입력 메시지에 대한 설명
[action] 사용 중인 WS-Addressing 스펙의 버전에 맞게 생성된 WS-Addressing 조치.
[reply endpoint] 이 입력 메시지에 대한 예상되는 응답이 없음을 나타내는 WS-Addressing 응답 엔드포인트. MAP의 값은 사용 중인 WS-Addressing 스펙의 버전에 따라 다릅니다.
[message id] 고유하게 생성된 메시지 ID입니다. 스펙에 지정된 사항은 아니지만 WebSphere® Application Server 런타임은 이 특성을 자동으로 설정합니다.

이 메시지 교환의 WSDL 조작이 응답을 지정하지 않더라도 관련된 메시지가 기타 메시지 교환의 일부로 전송될 수 있습니다. 특히, 애플리케이션은 WS-Addressing 응답 엔드포인트 또는 결함 엔드포인트 Map를 사용하여 관련된 메시지를 전송해야 하는 단방향 메시지의 대상을 표시할 수 있습니다. 응답 엔드포인트 또는 결함 엔드포인트를 전파하려면 기본값을 대체하도록 해당 특성을 IBM의 웹 서비스 주소 지정 SPI를 사용하여 메시지 주소 지정 특성 지정 및 확보에 설명된 대로 JAX-RPC Stub 또는 Call 오브젝트와 연관시키거나 JAX-WS BindingProvider 오브젝트의 요청 컨텍스트와 연관시키십시오.

양방향 요청-응답

이것은 WSDL 1.1에 정의된 요청-응답 MEP입니다. 조작의 응답 파트는 출력 메시지, 결함 메시지 또는 이 둘 모두로 정의될 수 있습니다. 다음 WSDL 코드 추출은 조작과 같은 다양한 정의 양식을 보여줍니다.
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
애플리케이션 서버 클라이언트 런타임은 송신 요청 메시지의 SOAP 헤더에 관련 WS-Addressing 메시지 정보 헤더가 포함되는지 확인합니다. 호출 애플리케이션에서 WS-Addressing 헤더를 설정해야 하는 것은 아닙니다. 응답이 예상되므로 요청 메시지에 응답 엔드포인트 또는 결함 엔드포인트를 지정해야 합니다.
팁: 2005/08 스펙에서 지정되지 않은 응답 엔드포인트는 익명 URI를 포함하는 엔드포인트 참조에 대한 기본값이기 때문에 유효합니다.
다음 표는 제품이 WS-Addressing 프로토콜을 사용하는 웹 서비스 요청에 기본적으로 설정하는 MAP를 요약합니다. IBM 독점 WS-Addressing SPI를 사용하여 기타 MAP를 대체하거나 지정할 수 있습니다.
표 2. WS-Addressing 프로토콜을 사용하는 웹 서비스 요청에 추가되는 메시지 주소 지정 특성. 테이블에는 다른 WS-Addressing MAP 이름이 나열되어 있고 각 이름에 대한 설명이 제공됩니다.
추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 요청-응답 조작의 입력 메시지에 대한 설명
[action] 사용 중인 WS-Addressing 스펙의 버전에 맞게 생성된 WS-Addressing 조치.
[message id] 고유하게 생성된 메시지 ID.
다음 표는 제품이 WS-Addressing 응답 또는 결함 메시지에 기본적으로 설정하는 MAP를 요약합니다.
표 3. WS-Addressing 응답 또는 결함 메시지에 추가되는 메시지 주소 지정 특성. 테이블에는 다른 WS-Addressing MAP 이름이 나열되어 있고 각 이름에 대한 설명이 제공됩니다.
추상 WS-Addressing MAP 이름, W3C XML 정보 세트 표기법 규칙 사용 요청-응답 조작의 입력 메시지에 대한 설명
[action] 사용 중인 WS-Addressing 스펙의 버전에 맞게 생성된 WS-Addressing 조치.
[relationship] 요청 메시지에서 전달된 메시지 ID에 대한 응답 관계를 포함하는 관계 세트.
[message id] 고유하게 생성된 메시지 ID. 스펙에 지정된 사항은 아니지만 애플리케이션 서버 런타임은 이 특성을 자동으로 설정합니다.

동기식 요청-응답

기본적으로 응답 엔드포인트 또는 결함 엔드포인트를 설정하기 위해 IBM 독점 WS-Addressing SPI를 사용하지 않는 경우 양방향 메시지의 응답 파트가 사용 중인 기본 프로토콜에 따라 리턴됩니다. 특히, HTTP 요청의 경우에는 HTTP 응답에서 응답이 동기식으로 리턴됩니다.
클라이언트가
웹 서비스에 메시지를 전송합니다. SOAP 헤더는
<wsa:To>http://example.com/fabrokam/acct</wsa:To> 요소를 포함합니다.
웹 서비스가 동기 응답을 리턴합니다.

JAX-WS 동기 호출의 경우, 응답 엔드포인트 또는 결함 엔드포인트를 설정하면 설정한 엔드포인트 참조는 익명의 URI를 사용해야 합니다. 엔드포인트 참조가 익명의 URI를 사용하지 않으면 javax.xml.ws.WebServiceException 예외가 처리됩니다. 엔드포인트 참조가 익명의 URI를 사용하는 경우에도 엔드포인트 참조 내의 참조 매개변수를 사용하여 응답 또는 결함 엔드포인트를 대상으로 정할 수 있습니다.

JAX-WS 애플리케이션의 경우 WS-Addressing 정책 유형을 적용 및 구성하여 동기 메시지 교환 패턴을 지정할 수 있습니다. 이 교환 패턴은 특히 다음 시나리오에서 유용합니다.
  • WS-Security를 사용으로 설정하지 않았거나 어셈블리 도구를 사용하여 SOAP 메시지의 ReplyTo 및 FaultTo 요소에 서명이 있어야 함을 지정하지 않았습니다. 이러한 상황에서는 JAX-WS 엔드포인트가 써드파티에 메시지를 전송하는 데 사용되어 잠재적으로 서비스 거부 공격을 받을 수 있습니다. 이러한 공격을 방지하려면 동기 메시지 교환 패턴을 지정하고 클라이언트가 이 요구사항을 인식하도록 WS-Policy를 사용으로 설정하십시오.
  • JAX-WS 클라이언트가 NAT 디바이스를 통해 통신 중입니다. SOAP 메시지의 ReplyTo 또는 FaultTo 요소에서 URI를 이러한 디바이스를 통해 라우트할 수 없습니다. 이러한 상황에서 클라이언트는 WS-Addressing 스펙이 정의한 익명 URI 및 동기 메시지 교환 패턴을 사용해야 합니다. 서버가 WS-Policy를 사용하여 ReplyTo 요소에서 익명이 아닌 URI를 요청하는 경우에도 클라이언트가 이러한 요구사항을 준수하도록 하려면 클라이언트에 동기 메시지 교환 패턴을 지정하십시오.
WS-Policy를 사용으로 설정하여 서버 또는 클라이언트가 동기 메시징에 대한 요구사항을 인식하는지 확인할 수 있습니다.

비동기 요청-응답

JAX-RPC 1.0 프로그래밍 모델은 양방향 요청-응답 조작에 대한 비동기 응답이나 결함을 허용하지 않습니다.

WebSphere Application Server에서 호스트되는 엔드포인트에 지정된 요청에 대한 응답 또는 요청에서 생성된 결함은 WS-Addressing 스펙에 맞게 응답 엔드포인트 또는 결함 엔드포인트에 대상화됩니다. 요청 클라이언트와의 연결은 HTTP 202 응답과 함께 닫힙니다.
클라이언트가 웹 서비스에 메시지를 전송합니다. SOAP 헤더는
<wsa:ReplyTo> 요소를 포함하며, 이 요소 자체는
<wsa:address>http://example.com/fabrokam/acct/replyEP</wsa:address> 요소를 포함합니다.
웹 서비스가 응답 엔드포인트에 응답을 전송합니다. 응답 메시지의
SOAP 헤더는 <wsa:To>http://example.com/fabrokam/acct</wsa:To> 요소를 포함합니다.
JAX-WS 비동기 호출의 경우, 응답 엔드포인트는 JAX-WS 구현에서 사용하기 위해 자동으로 생성됩니다. 응답 엔드포인트 또는 결함 엔드포인트를 설정하려는 경우, javax.xml.ws.WebServiceException 예외가 발생합니다.
[Windows]참고: Windows 운영 체제의 경우, 클라이언트가 전송한 로컬 호스트 이름은 대상 서비스가 해석할 수 있어야 하며 그렇지 못한 경우 응답이 클라이언트 애플리케이션에 도달하지 않습니다. 또는 클라이언트가 IP 형식으로 주소를 전송하도록 구성할 수 있지만, 이 경우 DHCP의 이점을 잃게 됩니다. 자세한 정보는 JAX-WS 웹 서비스 비동기 호출 주제를 참조하십시오.
JAX-WS 애플리케이션의 경우, 몇 가지 다른 방식으로 비동기 메시지 교환 패턴을 지정할 수 있습니다. 이 교환 패턴은 특히 JAX-WS 엔드포인트의 호출 시간이 오래 실행되는 경우 유용합니다. 클라이언트 및 서버 자원이 연결을 열어 두는 데 사용되지만, 서비스가 응답하는 데 시간이 오래 걸리는 경우 이러한 자원의 사용은 비실용적일 수 있습니다.
메시지 교환 패턴 구성이 WSDL 문서의 WS-Policy 첨부 파일에 표시되어 있습니다. 다음 조건이 참일 경우 클라이언트는 이 메시지 교환 패턴 구성 정보에 액세스할 수 있게 됩니다.
  • WS-Policy 공유가 사용 가능합니다.
  • WS-Policy 공유가 사용 가능하지 않지만,
    • 패키지된 WSDL(HTTP GET 요청으로 검색됨)에 관련 정책 정보가 포함되어 있습니다.
    • @Addressing 어노테이션을 코드에서 사용했습니다. 이 경우 서버 런타임에서 WS-Policy 첨부 파일을 포함하는 WSDL 문서를 생성합니다.
자세한 내용은 "웹 서비스 제공자 및 정책 구성 공유" 주제를 참조하십시오.

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsa_meps
파일 이름:cwbs_wsa_meps.html