Muster Message Request Response Correlator (Antwortkorrelator für Nachrichtenanforderungen)

Verwenden Sie das Muster Message Request Response Correlator (Antwortkorrelator für Nachrichtenanforderungen) für die Annahme von Anforderungen von vielen Clientanwendungen in einer einzelnen Warteschlange und für die Rückgabe von Antworten an den richtigen Client.

Ein Diagramm, das das Verhalten des Musters zeigt. Eine Reihe von Requesteranwendungen senden Nachrichten an den Broker. Die Antwortadresse des Requesters wird gespeichert, bevor die Nachricht an den Provider weitergeleitet wird, und wird erneut gespeichert, wenn eine Antwort vom Provider empfangen wird.

Kontext

Clientanwendungen müssen oft auf eine Serveranwendung zugreifen. Die Anforderungen von den Clientanwendungen und die Antworten vom Server können jeweils vermittelt werden, indem sie durch einen Mittler oder einen Enterprise Service Bus (ESB) wie WebSphere® Message Broker geleitet werden. Die Clientanwendungen geben in ihrer Anforderung an, in welcher Antwortwarteschlange die Antwort erwartet wird.

Messaging-Systeme stellen einen Mechanismus bereit, mit dem sichergestellt wird, dass die Antwortnachricht in einer Anforderung/Antwort-Interaktion an die richtige anfordernde Anwendung oder Clientinstanz weitergeleitet werden kann. Normalerweise gehört zu dieser Lösung auch die Übergabe einer 'Adresse für Antwort' als Teil des Nachrichtenheaders. Die empfangende Anwendung kann dann diese Informationen extrahieren und die Antwort an die entsprechende Warteschlange senden. Wenn eine Mediation in die Interaktion einbezogen wird, werden zwei separate Anforderung/Antwort-Interaktionen eingerichtet und Sie müssen sicherstellen, dass die Antwortnachrichten in den einzelnen Fällen an das richtige Ziel gesendet werden.

Wenn viele dieser Clients mit einer einzelnen Serveranwendung interagieren, wird normalerweise nur eine Mediation verwendet. Standardmäßig stellen die Serveranwendung und die Mediation jeweils eine Anforderungswarteschlange bereit. Die Mediation verwendet auch eine Antwortwarteschlange für die Verarbeitung von Antwortnachrichten von der Serveranwendung. Wenn jeder Client seine eigene Antwortwarteschlange bereitstellt, ist ein Mechanismus erforderlich, mit dem sichergestellt wird, dass jede Antwortnachricht an die richtige Warteschlange gesendet wird.

Problem

Ein WebSphere Message Broker-Nachrichtenfluss vermittelt zwischen einem Requester und einem Provider. Die eingehende Nachricht enthält die Antwortadresse des Requesters, die Nachricht, die an die Provideranwendung weitergeleitet wird, muss jedoch die Antwortadresse des Nachrichtenflusses enthalten. Wenn die Provideranwendung dem Nachrichtenfluss antwortet, muss sie jede Antwort der Anforderung zuordnen, die vom Client gesendet wurde.

Auswahlanleitung

Verwenden Sie dieses Muster, wenn eine Reihe von Requestern vorhanden sind, die Nachrichten an einen Provider senden müssen und Antworten in einer Warteschlange empfangen, die für den Requester spezifisch ist, und wenn sowohl Anforderungen als auch Antworten durch den Broker vermittelt werden. Sie können das Muster für die Übergabe von Nachrichten eines beliebigen Typs verwenden und Sie haben die Möglichkeit, die Nachricht zu überprüfen, um beispielsweise zu verhindern, dass Provider falsch formatierte Nachrichten empfangen.

Lösung

Die Antwortinformationen von jeder Clientanforderung im Mediationsfluss werden gespeichert, bevor die Nachricht an den Provider weitergeleitet wird. Wenn Antworten vom Provider empfangen werden, werden die Korrelationsinformationen für den Abruf und die Wiederherstellung der richtigen Antwortadresse des ursprünglichen Requesters und zum Speichern dieser Informationen verwendet, um sie später abzurufen.