SOAP 메시지 디스패치

수신된 SOAP 메시지를 적절한 서비스에 디스패치하는 방법에는 여러 가지가 있습니다. 가장 간단한 두 가지 메커니즘은 전송 수준 디스패치와 주소 및 작업 디스패치입니다.

전송 수준 디스패치

전송 수준 디스패치를 사용하면 기본 HTTP 서버(예: HTTP API)를 사용하여 디바이스 및 해당 서비스에 대한 요청 라우팅을 관리합니다. 서버는 각 서비스 및 디바이스에 대해 다른 URL을 제공하며 각 URL에 대해 다른 싱크가 등록됩니다. 이렇게 하면 동일한 프로세스 내에서 별도의 구성 요소로 실행하거나 별도의 프로세스로 실행하여 각 서비스가 서로 격리되도록 코드를 디자인할 수 있습니다.

전송 수준 디스패치에는 몇 가지 이점이 있습니다. SOAP 봉투 또는 메시지 본문을 먼저 구문 분석하지 않고 메시지를 적절한 구성 요소로 디스패치할 수 있습니다. 또한 대부분의 HTTP 서버 구현에서 제공하는 메시지를 라우팅하기 위한 기존 메커니즘을 재사용할 수 있습니다. 즉, 사용자 지정 디스패치 코드가 필요하지 않습니다. 또한 보안 서비스에서 일반적인 코드를 통해 메시지가 이동하지 않도록 방지하므로 보안 수준을 제공하는 서비스 간에 SOAP 처리 코드를 격리합니다.

주소 및 작업 디스패치

주소 및 작업 디스패치는 SOAP 헤더를 사용하여 메시지가 디스패치되는 적절한 서비스를 결정합니다. 이 모델은 참조 매개 변수와 같은 추가 정보를 사용하여 디스패치를 추가로 도울 수도 있습니다.

이 모델은 SOAP 프로세서까지의 모든 코드가 모든 서비스에서 공유되므로 계층화된 메시징 스택 전체에서 코드를 다시 사용하도록 권장합니다. 또한 서비스에 대한 고유한 전송 주소가 필요하지 않으므로 UUID 주소를 서비스 엔드포인트에 사용할 수 있습니다. 주소 및 작업 디스패치는 프로그래밍 모델로 더 직접적으로 변환됩니다. 개발자는 HTTP 계층에 연결하거나 각 서비스에 대해 별도의 구성 요소를 만드는 대신 라우팅을 관리하는 단일 구성 요소에 서비스 및 디바이스를 연결할 수 있습니다.