응용프로그램 통신 모델

응용프로그램은 지원되는 전송 프로토콜 중 하나를 통해 브로커로 메시지를 송신하고 브로커에서 메시지를 수신하여 브로커의 서비스를 사용할 수 있습니다.

이를 수행하는 방법은 프로토콜 자체, 사용하는 프로그래밍 인터페이스 및 채택한 통신 모델에 따라 다릅니다.

WebSphere Message Broker에서는 다음과 같은 두 가지 일반 사용자 응용프로그램 통신 모델을 지원합니다.

  1. 포인트 투 포인트
  2. Publish/subscribe

단일 응용프로그램은 적절한 경우 두 양식을 혼합할 수 있습니다. 혼합 시나리오에서, 이 응용프로그램에 대한 메시지를 처리하는 메시지 플로우에는 하나 이상의 입력 노드를 비롯하여 최소 하나의 출력 노드와 최소 하나의 publication 노드가 포함되어 있습니다.

사용자 응용프로그램에서 코드화할 수 있는 프로그래밍 인터페이스는 응용프로그램 프로그래밍 인터페이스(API)에 설명되어 있습니다.

포인트 투 포인트

포인트 투 포인트 응용프로그램은 요청/응답 또는 클라이언트/서버 모델을 사용하거나 분배 목록을 사용하여 메시지를 여러 대상 응용프로그램으로 브로드캐스트합니다. 다른 응용프로그램은 단방향 송신 후 삭제(send-and-forget) 또는 데이터그램 트래픽을 송신합니다. 이 응용프로그램은 상대방과 정보를 교환합니다. 각 응용프로그램은 통신하는 하나 이상의 응용프로그램의 ID를 인식합니다. 송신 후 삭제(send-and-forget) 및 요청/응답 메시지를 처리할 메시지 플로우를 작성 및 구성하거나 브로커로 메시지 플로우를 전개할 수 있습니다.

아래의 텍스트 및 다이어그램은 송신 후 삭제(send-and-forget) 및 요청/응답 모델을 보여줍니다. 다이어그램에서는 응용프로그램이 WebSphere MQ Enterprise Transport 프로토콜을 사용 중인 것으로 가정합니다. 메시지가 송신되거나 수신되는 자원이 WebSphere MQ 큐가 아니더라도 이 모델은 다른 프로토콜과 동일합니다.

송신 후 삭제(send-and-forget) 모델에서 응용프로그램은 메시지를 송신하지만 응답을 기대하지는 않습니다. 선택적으로 다른 응용프로그램이 첫 번째 응용프로그램에서 전송된 메시지의 결과로 메시지를 수신할 수 있습니다. 메시지 플로우에서 메시지가 송신되지 않을 수도 있습니다(예: 송신 메시지가 데이터베이스 갱신만 요청하는 경우). 다이어그램에서, 송신자는 브로커(1)에 있는 메시지 플로우의 입력 큐에 메시지를 넣습니다. 메시지 플로우의 출력은 수신자의 큐(2)에 놓여지고 여기에서 수신자는 해당 출력(3)을 가져올 수 있습니다.

이 다이어그램 위의 텍스트는
해당 컨텐츠를 설명합니다.

요청/응답 메시징을 사용하면, 수신자가 요청 메시지를 수신한 후 송신자에게 다시 응답을 송신합니다. 요청 메시지는 송신 후 삭제(send-and-forget) 메시지에 설명된 대로 핸들링됩니다. 응답에는 두 가지 가능성이 있습니다.

  1. 수신자는 브로커의 개입 없이 응답 메시지를 송신자에게 직접 송신합니다. 메시지는 요청 메시지의 메시지 설명자(MQMD)에 있는 리플라이-투 큐로 송신되며 이 메시지는 브로커에 의해 변경되지 않은 채 전달됩니다. (응용프로그램이 WebSphere MQ를 사용하지 않으면 다른 기술을 사용하여 응답 목적지를 판별해야 합니다.)

    아래의 다이어그램에서는 송신자가 브로커(1)에 있는 메시지 플로우의 입력 큐에 메시지를 넣습니다. 메시지 플로우의 출력은 수신자의 큐(2)에 놓여지고 여기서 수신자는 해당 출력(3)을 가져옵니다. 수신자는 송신자(4)의 ReplyToQ로 직접 응답을 송신하고 여기서 송신자는 응답(5)을 가져올 수 있습니다.

    이 다이어그램 위의 텍스트는
해당 컨텐츠를 설명합니다.
  2. 수신자는 응답 메시지를 브로커의 응답 메시지 플로우에 송신하므로 송신자에 도달하기 전에 응답 메시지를 처리할 수 있습니다. 이런 경우 브로커는 요청 메시지의 MQMD에 있는 송신자의 리플라이-투 큐를 응답 메시지 플로우의 입력 큐 이름으로 바꾸어야 합니다.

    이 응답 메시지 플로우의 출력은 송신자의 리플라이-투 큐로 이동해야 합니다. 이름이 정해져 있는 경우 문제가 없습니다. 그렇지 않을 경우 응답 메시지에서 이 큐를 연관시키는 일부 수단이 필요합니다.

    예를 들면, 두 번째 메시지 플로우에서 검색할 수 있는 응답 목적지 정보를 저장하는 첫 번째 메시지 플로우에 Database 또는 DataInsert 노드를 포함시켜 이를 수행할 수 있습니다.

    또는 메시지 설명자의 관련 세부사항을 MQRFH2 헤더의 폴더로 복사한 후 메시지와 함께 전달할 수 있습니다.

    아래의 다이어그램에서, 송신자는 브로커(1)에서 첫 번째 메시지 플로우의 입력 큐에 메시지를 넣습니다. 메시지 플로우의 출력은 수신자의 큐(2)에 놓여지고 여기서 수신자는 해당 출력(3)을 가져옵니다. 수신자는 브로커(4)에 있는 두 번째 메시지 플로우의 입력 큐로 응답을 송신합니다. 응답 처리 후 브로커는 이를 송신자의 리플라이-투 큐(5)로 송신하고 여기서 송신자는 응답(6)을 가져올 수 있습니다. (이런 경우, 두 번째 메시지 플로우의 출력 노드는 송신자의 리플라이-투 큐를 인식해야 합니다.)

    이 다이어그램 위의 텍스트는
해당 컨텐츠를 설명합니다.

지원되는 프로토콜 중 하나를 사용하여 브로커와 통신할 경우, 포인트 투 포인트(point-to-point) 모델을 사용하여 작성한 기존의 응용프로그램은 WebSphere Message Broker 환경에서 변경하지 않고 실행할 수 있습니다.

브로커의 기능을 사용하여 추가 상대방이 포함되도록 기존의 응용프로그램 기능을 개선하거나 확장할 수 있습니다. 예를 들면, 브로커의 메시지 플로우를 사용하여 송신 또는 수신 응용프로그램을 변경하지 않고 원래 메시지를 예상 형식으로 변환할 수 있으므로, 유사하나 다른 형식을 가진 데이터를 핸들링하는 응용프로그램은 참여할 수 있습니다.

추가 응용프로그램 처리가 필요한 메시지를 식별할 경우, 메시지 플로우에서 다른 메시지 사본을 작성하여 이를 해당 처리를 제공하도록 개발된 새 응용프로그램으로 송신할 수 있습니다. 원래 응용프로그램은 메시지의 새 조치를 인식하므로 변경 없이 작업을 계속합니다.

Publish/subscribe

publish/Subscribe 응용프로그램 통신 모델은 publisher라고 알려진 응용프로그램과 subscriber라고 알려진 응용프로그램을 포함합니다. Publisher는 특정 토픽에서 publish하여 메시지를 사용 가능하게 합니다. Subscriber는 토픽을 subscribe하여 메시지를 수신합니다. 개인 응용프로그램은 publisher 및 subscriber 둘 다일 수 있습니다.

한 publisher가 publish한 메시지를 무제한의 subscriber가 수신할 수 있습니다. Subscriber는 동일한 토픽이나 다른 토픽에 대한 메시지를 다수의 publisher로부터 수신할 수 있습니다.

아래의 다이어그램에서, publisher는 브로커에 Publish 또는 Publication 삭제 메시지를 송신할 수 있습니다. 브로커는 Publish 메시지를 subscription과 일치하는 subscriber에 전달합니다. Subscriber는 브로커에 Subscriber 등록, Subscriber 등록 취소, 또는 갱신 요청 메시지를 송신할 수 있습니다. 브로커에서 선택적 응답 메시지는 publisher 및 subscriber로 송신됩니다.

이 다이어그램 위의 텍스트는
해당 컨텐츠를 설명합니다.

Publish/Subscribe 모델에 작성된 기존의 일반 사용자 응용프로그램이 있으면(예를 들면, MQI 또는 AMI를 사용하여) 이 응용프로그램을 변경하지 않고 WebSphere Message Broker 브로커 도메인에 통합할 수 있습니다.

특히 subscriber에게 제공된 전문화된 Publish/Subscribe 처리를 이용하도록 이 응용프로그램을 수정하거나 새 응용프로그램을 작성할 수도 있습니다.

Publish/Subscribe 모델 및 WebSphere Message Broker에서 제공한 처리는 아래 나열된 관련 링크를 통해 사용 가능한 추가 토픽에 자세히 설명되어 있습니다.

관련 개념
Publish/Subscribe
응용프로그램 프로그래밍 인터페이스(API)
관련 태스크
메시지 플로우 개발
publish/subscribe 응용프로그램 개발
관련 참조
일반 사용자 응용프로그램 지원
내장 노드
Publish/subscribe
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac00450_