Implementieren von Entwurfsmustern in Orchestrierungen
In diesem Abschnitt werden die gängigen Muster der BizTalk Server-Programmierung sowie Unternehmensintegrationsmuster erläutert. Sie können ein einzelnes Muster nutzen oder mehrere Muster kombinieren, um Ihren Geschäftsprozess zu entwerfen. Mithilfe von Formen des BizTalk-Orchestrierungs-Designers kann der Entwurf dann implementiert werden.
Entwurfsmuster
In den nachfolgenden Einträgen werden die einzelnen Muster kurz beschrieben. Außerdem wird auf die Themen und Beispiele verwiesen, in denen erläutert wird, wie Sie die Muster mit dem BizTalk-Orchestrierungs-Designer implementieren können.
Aggregator
Das Muster Aggregator dient zum Empfangen von Informationen aus mehreren Quellen und zum Konsolidieren dieser Informationen in einer einzelnen Nachricht. Ein Beispiel für dieses Muster finden Sie unter Aggregate.odx in Aggregator (BizTalk Server Beispiel).
Aufrufen von Pipelines aus einer Orchestrierung
Sie können aus Ihrer Orchestrierung Sende- und Empfangspipelines aufrufen. Dadurch ist eine Wiederverwendung von Pipelines möglich. Außerdem wird die Verwaltung des Trennens einer Orchestrierung von den Pipelinestufen vereinfacht. Ein Beispiel für dieses Muster finden Sie unter Aggregate.odx in Aggregator (BizTalk Server Beispiel). Ein weiteres Beispiel ist CMP.odx in Composed Message Processor (BizTalk Server Beispiel). Weitere Informationen finden Sie unter Verwenden von Ausdrücken zum Ausführen von Pipelines.
Zusammengesetzter Nachrichtenprozessor
Das Muster Zusammengesetzter Nachrichtenprozessor wird zur Verarbeitung einzelner Elemente einer in einem Aggregator oder in einem Batch verarbeiteten Austauschnachricht verwendet. Ein Beispiel für dieses Muster finden Sie unter CMP.odx in Composed Message Processor (BizTalk Server Beispiel).
Inhaltsbasierter Router
Mit dem Muster Inhaltsbasierter Router wird der Empfänger einer Nachricht anhand eines Teils des Nachrichteninhalts bestimmt. Ein Beispiel für dieses Muster finden Sie unter CBRSample (BizTalk Server Beispiel).
Dynamischer Router
Mit dem Muster Dynamischer Router werden die Zieladresse und das Transportprotokoll anhand des Ergebnisses der Nachrichtenverarbeitung bestimmt. Sie können einen dynamischen Sendeport oder ein Role Link-Shape verwenden, um dieses Muster zu implementieren. Ein Beispiel für dieses Muster finden Sie unter ReceiveSend.odx in SendMail. Ein anderes Beispiel ist SupplierProcess.odx in PartyResolution (BizTalk Server Beispiel).
Fehlerbehandlung
In der Standardeinstellung werden fehlgeschlagene Nachrichten in die Warteschlange Angehalten verschoben. Mit BizTalk Server kann als Alternative jedoch eine automatische Nachrichtenfehlerbehandlung festgelegt werden. Fehlgeschlagene Nachrichten können zur Berichterstellung und Verarbeitung an einen abonnierenden Port weitergeleitet werden. Ein Beispiel für dieses Muster finden Sie unter ResubmitLogic.odx in Error Handling (BizTalk Server Samples Folder).
Behandlung und Kompensierung von Ausnahmen
Sie können einen Ausnahmehandler und ein Throw Exception-Shape oder ein Ausdrucks-Shape für die Ausnahmebehandlung verwenden. Sie können beispielsweise den folgenden Code im Ausdrucks-Shape platzieren, um die Ausnahme auszulösen:,
excp = new System.Exception();
throw(excp);
Sie können einen Vergütungsblock und ein Kompensieren-Shape verwenden, um die Entschädigung für die Transaktionen auszuführen, die zugesagt wurden. Ein Beispiel für dieses Muster finden Sie unter UpdateContact.odx in Compensation (BizTalk Server Beispiel). Ein weiteres Beispiel ist benutzerdefinierte Ausnahmen.
Nachrichtenbroker
Mit dem Muster Nachrichtenbroker wird das Ziel einer Nachricht bestimmt und die Kontrolle über den Nachrichtenfluss beibehalten. Weitere Informationen finden Sie unter Verarbeiten in der OrderBroker-Orchestrierung.
Nachrichtenfilter
Mit dem Muster Nachrichtenfilter werden Nachrichten zur Verarbeitung ausgewählt, die bestimmte Kriterien erfüllen. Sie können dieses Muster implementieren, indem Sie den Filterausdruck zu einer aktivierten Empfangsform hinzufügen. Weitere Informationen finden Sie unter Verwenden von Filtern mit dem Shape "Empfangen von Nachrichten".
Nachrichtenkonvertierer
Mit dem Muster Nachrichtenkonvertierer werden Nachrichten von einer Form in eine andere konvertiert. Sie können dieses Muster implementieren, indem Sie eine BizTalk-Zuordnung mit einer Transformationsform in einer Orchestrierung verwenden. Ein Beispiel für dieses Muster finden Sie unter HelloOrchestration.odx in HelloWorld (BizTalk Server Beispiel).
Paralleler Konvoi
Mit dem Muster Paralleler Konvoi werden mehrere einzelne Elemente zusammengefasst. Dadurch können Aufgaben ausgeführt werden, die ein einzelnes Element alleine nicht bewältigen kann. Die zugehörigen Elemente können in beliebiger Reihenfolge eingehen. Der Prozess wird jedoch erst gestartet, wenn alle Elemente von BizTalk Server empfangen wurden.
Scatter und Gather
Mit dem Muster Scatter und Gather können Nachrichten an mehrere Empfänger gesendet und von jedem Empfänger zurückerhalten werden. Dieses Muster kann mithilfe des Splittermusters und des Aggregatormusters implementiert werden. Sie verwenden das Aggregatormuster, um die Ergebnisse mithilfe des Splittermusters zusammenzustellen und sie unter einer Form parallele Aktionen zu platzieren.
Sequenzieller Konvoi
Mit dem Muster Sequenzieller Konvoi werden mehrere einzelne Elemente miteinander verknüpft. Dadurch können Aufgaben ausgeführt werden, die ein einzelnes Element alleine nicht bewältigen kann. Ein sequenzieller Konvoi besteht aus verwandten Elementen mit vordefinierter Reihenfolge. Obwohl die Elemente nicht exakt gleich müssen, können sie von BizTalk Server nur in sequenzieller Reihenfolge empfangen werden.
Aufteilung
Mit dem Muster Splitter wird eine einzelne Nachricht in mehrere Nachrichten aufgeteilt.
Anhalten mit Wiederholung
Mit dem Muster Anhalten mit Wiederholung kann die Orchestrierung eine Nachricht anhalten, wenn ein Fehler auftritt. Dies geschieht in einer Schleife, bei der die Orchestrierung anhält, zu einem Eingriff auffordert und dann eine festgelegte Anzahl von Wiederholungsversuchen für den Vorgang ausführt.