21장. 신뢰할 수 있는 메시징 활성화

초록

Apache CXF는 WS-Reliable Messaging(WS-RM)을 지원합니다. 이 장에서는 Apache CXF에서 WS-RM을 활성화하고 구성하는 방법을 설명합니다.

21.1. WS-RM 소개

21.1.1. 개요

WS-ReliableMessaging (WS-RM)은 분산된 환경에서 메시지의 안정적인 전달을 보장하는 프로토콜입니다. 이를 통해 소프트웨어, 시스템 또는 네트워크 오류가 발생할 경우 분산 애플리케이션 간에 메시지를 안정적으로 전달할 수 있습니다.

예를 들어 WS-RM을 사용하면 올바른 메시지가 정확하게 한 번 올바르게 네트워크에 전달되었는지 확인할 수 있습니다.

21.1.2. WS-RM의 작동 방식

WS-RM은 소스와 대상 끝점 간 메시지의 안정적인 전달을 보장합니다. 소스는 메시지의 초기 발신자이고 대상은 그림 21.1. “웹 서비스 신뢰할 수 있는 메시징” 에 표시된 대로 궁극적인 수신자입니다.

그림 21.1. 웹 서비스 신뢰할 수 있는 메시징

신뢰할 수 있는 메시지 교환

WS-RM 메시지 흐름은 다음과 같이 설명될 수 있습니다.

  1. RM 소스는 CreateSequence 프로토콜 메시지를 RM 대상으로 보냅니다. 여기에는 승인을 받는 끝점에 대한 참조( wsrm:AcksTo 끝점)가 포함되어 있습니다.
  2. RM 대상은 CreateSequenceResponse 프로토콜 메시지를 다시 RM 소스로 보냅니다. 이 메시지에는 RM 시퀀스 세션의 시퀀스 ID가 포함되어 있습니다.
  3. RM 소스는 애플리케이션 소스에서 보낸 각 메시지에 RM Sequence 헤더를 추가합니다. 이 헤더에는 시퀀스 ID와 고유한 메시지 ID가 포함됩니다.
  4. RM 소스는 각 메시지를 RM 대상으로 전송합니다.
  5. RM 대상은 RM SequenceAcknowledgement 헤더가 포함된 메시지를 전송하여 RM 소스에서 메시지 수신을 확인합니다.
  6. RM 대상은 정확히 순서 방식으로 애플리케이션 대상에 메시지를 전달합니다.
  7. RM 소스는 아직 승인을 받지 못한 메시지를 다시 전송합니다.

    첫 번째 재전송 시도는 기본 재전송 간격 후에 수행됩니다. 연속 재전송 시도는 기본적으로 기하급수 백오프 간격 또는 고정된 간격으로 수행됩니다. 자세한 내용은 21.5절. “WS-RM 구성” 에서 참조하십시오.

이 전체 프로세스는 요청 및 응답 메시지에 대해 대칭적으로 발생합니다. 즉, 응답 메시지의 경우 서버는 RM 소스의 역할을 하고 클라이언트는 RM 대상의 역할을 합니다.

21.1.3. WS-RM 제공 보장

WS-RM은 사용된 전송 프로토콜에 관계없이 분산된 환경에서 안정적인 메시지 전달을 보장합니다. 신뢰할 수 있는 전달을 보장할 수 없는 경우 소스 또는 대상 끝점에서 오류를 기록합니다.

21.1.4. 지원되는 사양

Apache CXF는 다음 버전의 WS-RM 사양을 지원합니다.

WS-ReliableMessaging 1.0

(기본값) 2005년 2월의 후보 접수 버전을 종료했으며, 현재 출시되지 않았습니다. 그러나 이전 버전과의 호환성을 이유로 이 버전은 기본값으로 사용됩니다.

WS-RM 버전 1.0에서는 다음 네임스페이스를 사용합니다.

http://schemas.xmlsoap.org/ws/2005/02/rm/

WS-RM의 이 버전은 다음 WS-Addressing 버전 중 하나와 함께 사용할 수 있습니다.

http://schemas.xmlsoap.org/ws/2004/08/addressing (default)
http://www.w3.org/2005/08/addressing

WS-RM의 2005년 2월 릴리스 버전을 준수하기 위해 이러한 WS-Addressing 버전(Apache CXF의 기본값) 중 첫 번째 버전을 사용해야 합니다. 그러나 대부분의 다른 웹 서비스 구현에서는 최근에 WS-Addressing 사양으로 전환되어 Apache CXF를 사용하면 WS-A 버전을 선택하여 상호 운용성을 원활하게 수행할 수 있습니다. 21.4절. “런타임 제어”

WS-ReliableMessaging 1.1/1.2

1.1/1.2 Web Services Reliable Messaging 사양에 해당합니다.

WS-RM 버전 1.1 및 1.2에서는 다음 네임스페이스를 사용합니다.

http://docs.oasis-open.org/ws-rx/wsrm/200702

WS-RM의 1.1 및 1.2 버전에서는 다음 WS-Addressing 버전을 사용합니다.

http://www.w3.org/2005/08/addressing

21.1.5. WS-RM 버전 선택

다음과 같이 사용할 WS-RM 사양 버전을 선택할 수 있습니다.

서버 측
공급자 측면에서 Apache CXF는 클라이언트에서 WS-ReliableMessaging을 사용하는 모든 버전에 적응하고 적절하게 응답합니다.
고객 측면
클라이언트 측에서 WS-RM 버전은 클라이언트 구성에서 사용하는 네임스페이스에 의해 결정되거나( 21.5절. “WS-RM 구성”참조) 런타임 제어 옵션을 사용하여 런타임에 WS-RM 버전을 재정의하여 결정됩니다( 21.4절. “런타임 제어”참조).