X

Vielen Dank, dass Sie sich für unsere Dienstleistungen interessieren. Leider sind Sie auf einer veralteten Seite gelandet. Das sollte nicht vorkommen.

Besuchen Sie gerne unsere aktualisierte Webseite.

Um Nachrichten im BizTalk zu versenden gibt es verschiedene Methoden. Wenn inhaltlich gleiche Nachrichten basierend auf Parametern an verschiedene Ziele gesendet werden müssen, stehen drei Wege zur Auswahl:

  1. Direkte Bindung von Orchestrierung an Sende-Port:

Die Sendeports werden direkt mit der Orchstrierung verbunden, es kann nur ein Sendeport pro Sende-Aktion in der Orchstrierung verwendet werden. Dabei ergibt sich das Problem, dass für jedes Ziel, die Sende-Orchestrierung dupliziert werden muss. Dies hat einen gewaltigen Wartungsaufwand zur Folge und ist auch aus Performance-Gründen nicht empfehlenswert.

  1. Verwendung von dynamischen Ports

Die Ports werden dynamisch in der Orchstrierung konfiguriert. Es ergibt sich hierbei das Problem, die Ports mit den Zielparametern zu versorgen. Diese müssen entweder hart kodiert werden, oder die Konfigurationslogik muss entwickelt werden. Die Ports können nicht mit der BizTalk Administrationskonsole konfiguriert werden. Daraus erhöht sich nicht nur der Entwicklungsaufwand sondern auch das Risiko von Fehlern sowie der Wartungsaufwand. Auch haben die unterschiedlichen Ports unterschiedliche Konfigurationsparameter, die untereinander inkompatibel sind und somit keine wahre Dynamik gegeben ist.

  1. Verwenden von direkter Bindung zur Messagebox sowie Filter bei den Sende-Ports

Bei direkter Bindung der Sende-Orchestrierung zur Messagebox, kann per Subscription-Filter eine unbegrenzte Anzahl an Sende-Ports (auch zur Laufzeit) erstellt werden, wobei jeder Sende-Port nur die für ihn relevanten Nachrichten versendet. Damit ist die Anzahl der Ziele dynamisch und zur Laufzeit ohne Entwicklungsaufwand anpassbar. Einziges Problem hierbei ist, dass bei dieser Variante keine implizite Sendebestätigung an die Orchestrierung zurück gegeben wird. Wie dies dennoch möglich ist, wird im Folgenden beschrieben.

BizTalk Server verwendet zur Steuerung der Nachrichten und zum Ermöglichen des Publish/Subscribe-Prinzips eine Vielzahl an Meta-Parametern. Die Nachrichten werden bildlich gesprochen in einen Umschlag gepackt, der mit diversen Informationen versehen wird, beispielsweise einer Adresse und der Art, wie die Nachricht versendet werden soll. Die verschiedenen Artefakte (Empfangsports, Orchestrierungen, Sende-Ports, ...) werten diese Meta-Informationen aus, verändern sie, löschen sie oder erstellen neue. Auch die direkte Verbindung einer Orchestrierung mit einem Sende-Port läuft über eine Meta-Information. Die Publish / Subscribe Methodik funktioniert in dem Falle über die Sende-Port UID. Der erstellte Sende-Port erhält eine eindeutige ID. Die Orchestation veröffentlicht („publish“) die entsprechenden Nachrichten dann mit dieser ID als Thema („topic“). Der Sende-Port abonniert („subscribe“) standardmäßig dieses Thema. Damit ist die Orchstration „fest“ mit dem Sende-Port verbunden.

Diese Verbindung kann aber auch explizit und über andere Themen stattfinden. Damit entkoppelt man die Orchstrierung von den Sende-Ports und kann diese auch zur Laufzeit austauschen. Um dies zu erreichen, muss in der Orchestrierung eine Korellation erstellt werden. Sie ist notwendig, wenn Informationen als Meta-Information an die Nachricht angehängt werden sollen. Nur dann kann im Sende-Port per Filter darauf zugegriffen werden.

Damit der Sende-Port eine Bestätigung an die Orchestrierung zurückgibt muss diese Korellation zwei Parameter beinhalten. Erstens eine eindeutige ID, um die Bestätigung einer Nachricht zuordnen zu können und zweitens den Parameter „AckRequired“ der den Sende-Port anweist, eine Bestätigung zu erzeugen. Die Orchstrierung beinhaltet dann, neben der Sende-Aktion, zwei Empfangs-Aktionen die direkt auf das Senden folgen. Eine erhält eine Kopie der Nachricht (basierend auf der Subscription, die aus den Korrelationseinstellungen resultiert), die andere erhält die Bestätigung vom Sende Port.

Anschließend kann dann die Bestätiung auf erfolgreiches oder fehlerhaftes Senden geprüft werden und die Bearbeitung, abhängig vom Ergebnis fortgesetzt werden.  

Im nächsten Blogbeitrag wird dieses Prinzip in einem praktischen Beispiel veranschaulicht...

 

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 
Go to Top