Freigeben über


Verwenden von Rollenverknüpfungen in Orchestrierungen

Rollenverknüpfungen stellen eine Abstraktion für die Interaktionen zwischen Ihrer Orchestrierung und Ihren Handelspartnern dar. Mit Rollenverknüpfungen können Sie die Handelspartner, mit denen eine Interaktion stattfinden soll, dynamisch auf Grundlage von Handelspartnerauflösung, Nachrichteninhalt oder den Ergebnissen einer Datenbanksuche auswählen, wobei der allgemeine Geschäftsprozess nicht beeinträchtigt wird.

In einem Business-to-Business-Szenario kann es beispielsweise mehrere Käufer, einen einzelnen Lieferanten und mehrere Speditionsunternehmen für den Lieferanten geben. Wenn ein Käufer eine Bestellung beim Lieferanten aufgibt, weiß der Lieferant durch die Parteiauflösung, von welchem Käufer die Bestellung stammt, und er kann den entsprechenden Rabatt geben. Weiterhin kann der Lieferant auf Grundlage der bestellten Waren zur Laufzeit feststellen, welches Speditionsunternehmen für die Lieferung zuständig ist. Obwohl jedes Speditionsunternehmen über ein eigenes Transportprotokoll verfügt, kann der Lieferant zur Laufzeit den gleichen Geschäftsprozess für alle Speditionsunternehmen verwenden und ermitteln, mit welcher Spedition die Interaktion stattfinden soll. Wenn ein Speditionsunternehmen das Transportprotokoll zu einem späteren Zeitpunkt aktualisiert, beispielsweise von FTP auf HTTP, muss der Lieferant lediglich BizTalk-Explorer oder die BizTalk Server-Verwaltungskonsole verwenden, um den dieser Spedition zugeordneten Sendeport zu aktualisieren. Der Lieferant muss keine Änderungen am Geschäftsprozess in der Orchestrierung vornehmen.

Rollen

In einer Orchestrierung gibt es zwei Rollen:

  • Die Rolle "Implementiert" zum Empfangen und Verarbeiten von Nachrichten. Diese Rolle wird auch als Anbieter bezeichnet.

  • Die Rolle "Verwendet" zum Senden von Nachrichten. Diese Rolle wird auch als Kunde bezeichnet.

Eine Rollenverknüpfung kann entweder eine Rolle "Kunde" oder "Anbieter" oder eine von beiden Rollentypen enthalten. Die Rolle "Kunde" nutzt die von der Rolle "Anbieter" bereitgestellten Dienste. Wenn Sie eine Rollenverknüpfung mit einer Rolle oder mit beiden Rollen definieren, wird vorausgesetzt, dass die ergänzende Rolle von dem Partner übernommen wird, mit dem Sie eine Verknüpfung herstellen.

Ein Rollenlink verfügt über eine SourceParty-Eigenschaft , eine DestinationParty-Eigenschaft und eine initiierende Rolle. Eine initiierende Rolle ist die Rolle, für die die erste Kommunikation erfolgt und die daher den Rollenlink initiiert, indem der Wert der DestinationParty-Eigenschaft festgelegt wird.

Wenn die initiierende Rolle ein Consumer zum Senden von Nachrichten ist, legen Sie explizit die DestinationParty-Eigenschaft (einmal und nur einmal) in Ihrer Orchestrierung fest. Dazu legen Sie den Wert von DestinationParty im Ausdrucks-Shape fest, wie im folgenden Beispiel, wobei ConfirmOrder der Name eines Rollenlinks und PartnerName und OrganizationName Parameter einer Partei sind:

ConfirmOrder(Microsoft.XLANGs.BaseTypes.DestinationParty) = new Microsoft.XLANGs.BaseTypes.Party("PartnerName", "OrganizationName");  

Wenn die initiierende Rolle ein Anbieter zum Empfangen von Nachrichten ist, wird die DestinationParty-Eigenschaft vom Empfänger automatisch initialisiert. DestinationParty ist auf den Anbieter selbst festgelegt. Die SourceParty-Eigenschaft ist schreibgeschützt und wird über eine vertrauenswürdige Pipelinekomponente bereitgestellt, um den Parteinamen basierend auf dem Sicherheitsbezeichner (SID) des Absenders oder einem der Partei zugeordneten Zertifikat aufzulösen. Der Host, auf dem die Pipelinekomponente ausgeführt wird, muss als Authentifizierung vertrauenswürdig gekennzeichnet werden. Sie können den Wert von SourceParty im Expression-Shape abrufen, indem Sie den folgenden Beispielcode verwenden:

PartyName = Buyer_Supplier(Microsoft.XLANGs.BaseTypes.SourceParty);

Eine Rollenverknüpfung ist eine Instanz eines Rollenverknüpfungstyps, der aus einer oder zwei Rollen besteht. Wenn Sie einen Rollenverknüpfungstyp verwenden, beachten Sie Folgendes:

  • In einem einzelnen Rollenverknüpfungstyp kann immer jeweils nur einmal auf einen bestimmten Porttyp verwiesen werden.

  • Da die Definition eines Rollenverknüpfungstyps Porttypen enthält, muss der Bereich eines Porttyps den Bereich aller Rollenverknüpfungstypen umfassen, die den Porttyp verwenden.

  • Bei der Arbeit mit Geschäftsaktivitätsdiensten (Business Activity Services – BAS) muss das strukturierte Parameterschema in der gleichen BizTalk-Assembly definiert werden wie der zugeordnete Rollenverknüpfungstyp. Da das Schema dem Rollenverknüpfungstyp und nicht den einzelnen Rollen zugeordnet ist, aus denen sich dieser Rollenverknüpfungstyp zusammensetzt, wird zwei Parteien mit verschiedenen Rollen, die eine gemeinsame den Rollenverknüpfungstyp enthaltende Assembly verwenden, das gleiche strukturierte Parameterschema angezeigt. Wenn beide Parteien den gleichen Rollenverknüpfungstyp verwenden, jedoch unterschiedliche Parameterschemas benötigen, sollte für jede Partei eine eigene Assembly erstellt werden. Ein Doppel des Rollenverknüpfungstyps sollte in jeder Assembly vorhanden sein.

In diesem Abschnitt

Weitere Informationen

Konfigurieren der Pipelinekomponente zum Auflösen der Partei
Verwenden von Ports in Orchestrierungen