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 메시지 흐름은 다음과 같이 설명될 수 있습니다.
-
RM 소스는
CreateSequence
프로토콜 메시지를 RM 대상으로 보냅니다. 여기에는 승인을 받는 끝점에 대한 참조(wsrm:AcksTo
끝점)가 포함되어 있습니다. -
RM 대상은
CreateSequenceResponse
프로토콜 메시지를 다시 RM 소스로 보냅니다. 이 메시지에는 RM 시퀀스 세션의 시퀀스 ID가 포함되어 있습니다. -
RM 소스는 애플리케이션 소스에서 보낸 각 메시지에 RM
Sequence
헤더를 추가합니다. 이 헤더에는 시퀀스 ID와 고유한 메시지 ID가 포함됩니다. - RM 소스는 각 메시지를 RM 대상으로 전송합니다.
-
RM 대상은 RM
SequenceAcknowledgement
헤더가 포함된 메시지를 전송하여 RM 소스에서 메시지 수신을 확인합니다. - RM 대상은 정확히 순서 방식으로 애플리케이션 대상에 메시지를 전달합니다.
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절. “런타임 제어”참조).