지점간 도메인에서는 메시지 제작자를 발신자라고 하고 소비자를 수신자라고 합니다. 메시지 제작자와 소비자는 대기열이라는 대상을 통해 메시지를 교환합니다. 즉, 발신자가 대기열에 메시지를 생성하고 수신자가 대기열의 메시지를 소비합니다.
그림 2–1에서는 지점간 도메인에서 가장 간단한 메시징 작업을 보여 줍니다. MyQueueSender는 Msg1을 대기열 대상 MyQueue1로 보냅니다. 그러면 MyQueueReceiver가 MyQueue1에서 메시지를 가져옵니다.
그림 2–2에서는 더 복잡한 지점간 메시징 그림을 사용하여 이 도메인에서의 가능성을 보여 줍니다. 발신자인 MyQSender1과 MyQSender2가 동일한 연결을 사용하여 메시지를 MyQueue1로 보냅니다. MyQSender3은 추가 연결을 사용하여 메시지를 MyQueue1로 보냅니다. 수신하는 쪽에서는 MyQReceiver1이 MyQueue1의 메시지를 소비하며 MyQReceiver2와 MyQReceiver3은 연결을 공유하면서 MyQueue1의 메시지를 소비합니다.
더욱 복잡한 이 그림은 지점간 메시징에 대한 많은 추가 사항을 나타냅니다.
여러 제작자가 동일한 대기열에 메시지를 보낼 수 있습니다. 제작자는 하나의 연결을 공유하거나 여러 연결을 사용할 수 있지만, 모두 동일한 대기열에 액세스 가능합니다.
여러 수신자가 동일한 대기열의 메시지를 소비할 수 있지만, 각 메시지는 한 명의 수신자에 의해서만 소비될 수 있습니다. 따라서 Msg1, Msg2 및 Msg3은 서로 다른 수신자가 소비합니다(Message Queue의 확장).
수신자는 하나의 연결을 공유하거나 여러 연결을 사용할 수 있지만, 모두 동일한 대기열에 액세스 가능합니다. (Message Queue의 확장).
발신자와 수신자는 타이밍에 구애 받지 않습니다. 즉, 수신자는 클라이언트가 메시지를 보낸 시점에서의 실행 여부와 관계없이 메시지를 불러올 수 있습니다.
발신자와 수신자를 런타임에 동적으로 추가 및 삭제할 수 있으므로 필요에 따라 메시징 시스템을 확대하거나 축소할 수 있습니다.
메시지는 보낸 순서대로 대기열에 배치되지만 소비되는 순서는 메시지 만료일, 메시지 우선 순위, 메시지 소비 시 선택기 사용 여부와 같은 요소에 따라 다릅니다.
지점간 모델은 다음과 같은 많은 장점이 있습니다.
여러 수신자가 동일한 대기열의 메시지를 소비할 수 있으므로, 메시지가 수신되는 순서가 중요하지 않은 경우 메시지 소비 로드 균형을 조정할 수 있습니다(Message Queue의 확장).
대기열을 대상으로 하는 메시지는 수신자가 없더라도 항상 보관됩니다.
Java 클라이언트에서는 대기열 브라우저 객체를 사용하여 대기열의 내용을 조사할 수 있습니다. 그런 다음 이 조사를 통해 수집한 정보를 기반으로 메시지를 소비할 수 있습니다. 즉, 소비 모델은 일반적으로 선입선출(FIFO)이지만 소비자는 원하는 메시지를 알고 있는 경우 메시지 선택기를 사용하여 대기열의 헤드에 없는 메시지를 소비할 수 있습니다. 또한 관리 클라이언트도 대기열 브라우저를 사용하여 대기열의 내용을 모니터링할 수 있습니다.