Freigeben über


Austauschmuster für Adapter

Das BizTalk-Adapterframework unterstützt eine Vielzahl von Mustern für den Nachrichtenaustausch, die in verschiedenen leistungsstarken Messagingszenarien von Adaptern verwendet werden können.

Unidirektional (Asynchron)

Hierbei ist das grundlegende Konzept, dass Nachrichten in eine Richtung fließen.

Bei diesem Nachrichtenaustauschmuster fließen Nachrichten über einen Adapter in BizTalk Server ein. Die Messaging-Engine veröffentlicht die Nachricht in der MessageBox-Datenbank. Wenn eine Orchestrierung über ein aktives Abonnement für Nachrichten dieses Typs verfügt, wird die Nachricht an diese Orchestrierung weitergeleitet.

Nach der Verarbeitung der Nachricht wird diese von der Orchestrierung wieder in der MessageBox-Datenbank veröffentlicht, bevor sie zur Übertragung an den vorgesehenen Endpunkt an einen Adapter weitergeleitet wird.

Beim Senden der Nachricht an die Engine wird keine Antwort erwartet. An der Ausgangsseite wird bei Übertragung der Nachricht ebenfalls keine Antwort erwartet. Dieser Vorgang wird üblicherweise als asynchrones Messaging bezeichnet und ist in vielerlei Hinsicht der Grundbaustein, der von der Engine in allen Messagingszenarien verwendet wird.

Protokolle vom Typ 'Anforderungsantwort' (Sync-on-Async)

In einem Anforderungsantwort-Szenario wird eine Anforderungsnachricht empfangen, verarbeitet und eine Antwortnachricht gesendet. Es wird auch als synchron-on-asynchron (sync-on-async) bezeichnet, da die zugrunde liegende BizTalk Server Architektur aus Gründen der Skalierbarkeit asynchron ist. Die Architektur der BizTalk-Messaging-Engine ermöglicht über diesen asynchronen Austausch hinaus jedoch die Verwendung eines synchronen Musters für den Nachrichtenaustausch. Um dies zu erreichen, übernimmt die Engine die komplexe Aufgabe des Korrelierens der Anforderungs- und Antwortnachrichten innerhalb einer dezentral skalierten Architektur, indem mehrere asynchrone Vorgänge des Nachrichtenaustauschs miteinander verknüpft werden, um eine synchrone Schnittstelle bereitzustellen.

Beispielsweise kann eine Webseite, die den Bestand überprüft, einen SOAP-Aufruf an einen BizTalk SOAP-Empfangsadapter senden. BizTalk Server orchestriert eine Reihe von Webdiensten, die die Informationen aggregieren und in einer SOAP-Antwort zurückgeben. Für den Client wirkt dies wie ein synchroner SOAP-Aufruf, tatsächlich wird von der Engine jedoch eine Reihe von asynchronen Vorgängen des Nachrichtenaustauschs miteinander verknüpft.

Protokolle vom Typ 'Antwort erfragen'

Dieses Szenario wird durch das Senden einer Anfragenachricht initiiert und durch den Empfang einer Antwortnachricht abgeschlossen. Dies wird als "Antwort anfragen" bezeichnet, da die ursprünglich gesendete Nachricht bei einem Endpunkt eine Antwortnachricht anfragt. Ein Szenario mit diesem Muster für den Nachrichtenaustausch könnte eine Orchestrierung enthalten, die einen ausgehenden HTTP-Aufruf sendet (eine Antwort anfragt) und auf die Antwort wartet.

Anforderung-Mehrfachantwort

Dieses Szenario ähnelt dem Anforderungsantwort-Szenario. Hierbei können allerdings mehrere Antworten auf die jeweilige Anfrage zurückgegeben werden. Für die APIs kann ein Timeoutwert angegeben werden, und alle innerhalb der Zeitspanne des Timeouts empfangenen Antworten werden an den Empfangsadapter zurückgegeben.

Loopback

Dieses Szenario ähnelt dem Anforderungsantwort-Szenario. Die Anforderungsnachricht wird auf übliche Weise veröffentlicht, durch die Engine wird jedoch sichergestellt, dass die Antwortnachricht an die Adapterinstanz zurückgesendet wird, von der die Anforderungsnachricht veröffentlicht wurde. Da die Anforderungsnachricht in der MessageBox-Datenbank veröffentlicht wird, ist durch die Überwachungsinfrastruktur gewährleistet, dass sowohl die Anforderungs- als auch die Antwortnachricht überwacht werden. Dies ist auch eine gute Möglichkeit, eine Verarbeitung der Nachricht durch die Sendepipeline aufzurufen und die Ausgabemeldung unmittelbar zur weiteren Verarbeitung an den Adapter zurückzusenden.

Ein Beispiel für dieses Szenario ist ein Client, der eine Bestätigung für eine Nachricht erfordert. Die eingehende Nachricht wird in der MessageBox-Datenbank veröffentlicht. Sowohl diese Nachricht als auch die Bestätigung werden im selben Batch an den Adapter zurückgegeben. In diesem Fall wird die eingehende Nachricht kopiert und eine Instanz an den Client zurückgegeben, während die andere Instanz auf übliche Art und Weise verarbeitet wird. Für dieses spezielle Szenario muss außerdem ein benutzerdefinierter XML-Dissassembler geschrieben werden.

Weitere Informationen

Was ist das Adapterframework?