Freigeben über


Verwenden von Korrelationen in Orchestrierungen

Die Korrelation ist der Prozess des Abgleichens einer eingehenden Nachricht mit der entsprechenden Instanz einer Orchestrierung. Die Orchestrierung sendet z. B. eine Nachricht aus und empfängt die Antwort oder Antworten zurück in die gleiche Orchestrierung. Es gibt drei korrelierte Nachrichtenaustauschmuster:

  • Traditioneller Händedruck

  • Sequenzieller Konvoi

  • Paralleler Konvoi

    Im traditionellen Handshake-Muster werden Handshakes im Austausch der Nachrichten zwischen Orchestrierungen oder Geschäftsprozessen etabliert, und Sie können Handshakes herstellen, indem Sie in den Orchestrierungen Korrelationssätze definieren. Ein Korrelationssatz ist eine Liste von promotierten Eigenschaften mit bestimmten Werten, die verwendet werden, um Nachrichten an eine spezifische Orchestrierungsinstanz weiterzuleiten.

    Wenn Ihre Orchestrierung z. B. darauf ausgelegt ist, eine Bestellung auszustellen, eine Rechnung zu erhalten und die Zahlung zu senden, müssen Sie sicherstellen, dass die Rechnungsnachricht von derselben Orchestrierungsinstanz empfangen wird, aus der die entsprechende Bestellung gesendet wurde, da die Anzahl der Bestellungen zum Zeitpunkt verarbeitet werden kann. In diesem Beispiel kann die Auftragsidentifikationsnummer als Parameter im Korrelationssatz verwendet werden, um die Bestellnachricht und die Rechnungsnachricht zu korrelieren. Im Folgenden sehen Sie den Szenariofluss für dieses Beispiel:

  1. Die Orchestration A sendet die Bestellnachricht an die Orchestration B. Vor dem Senden der Bestellnachricht wird der Korrelationssatz initialisiert.

  2. In der Orchestrierung B, in der der Bestellvorgang verarbeitet, die Rechnung erstellt und zurückgesendet wird, folgt die erste Empfangsform derselben Korrelation, um die Bestellnachricht zu empfangen.

  3. Nach der Verarbeitung der Bestellnachricht wird beim Senden der Rechnungsnachricht an die Orchestrierung A auch derselbe Korrelationssatz befolgt.

  4. In der Orchestrierung A, bei der Empfangsform, die die Rechnungsnachricht von der Orchestrierung B zurückerhält, wird auch derselbe Korrelationseinsatz verwendet, um sicherzustellen, dass die korrelierte Rechnungsnachricht basierend auf dem vordefinierten Korrelationseinsatz empfangen wird.

    Die sequenziellen Konvoy- und parallelen Konvoymuster sind immer dann in der Welt vorhanden, wenn mehrere einzelne Elemente miteinander verknüpft sein müssen, um etwas zu erreichen, das das einzelne Element nicht selbst erreichen kann. Weitere Informationen finden Sie unter Arbeiten mit Konvoyszenarien.

    Neben den korrelierten Nachrichtenaustauschmustern gibt es zwei Arten von Korrelationen in der Orchestrierung:

  • Manuelle Korrelation

  • Automatische Korrelation

    Im Szenario der manuellen Korrelation konfigurieren Sie die Orchestrierungen manuell, um den Korrelationssatz zu initialisieren und zu verfolgen, um die Nachrichten mit den richtigen Instanzen zu verknüpfen. Im Szenario für die automatische Korrelation korreliert die Messaging-Engine die Nachrichten mit den Instanzen für Sie, zum Beispiel, wenn Sie Request-Response Port oder Self-Correlating Port in Ihren Orchestrierungen einrichten.

    Sie müssen die Korrelation verwenden, wenn Ihre Orchestrierung nicht über eine explizite Möglichkeit verfügt, eine Nachricht mit einer Instanz zu verknüpfen, z. B. einen aktivierenden Empfang, eine Anfrage-Antwort oder einen selbstkorrelierenden Port.

Beispiele für die Verwendung von Korrelationen

In diesem Abschnitt

Siehe auch

Wie man Self-Correlating Direct Bound Ports verwendet