オーケストレーションでのロール リンクの使用

ロール リンクは、オーケストレーションと取引先間の対話処理を抽象化したものです。 ロール リンクを使用すると、ビジネス プロセス全体を維持したまま、取引先の解決、メッセージの内容、またはデータベースの検索結果に基づいて取引先を動的に選択できます。

たとえば、企業間取引のシナリオでは、複数の購入者、1 つの供給業者、および供給業者の商品を配送する複数の出荷業者が存在します。 購入者が注文書を送信した場合、供給業者は、パーティの解決を通じてその購入者を特定し、適切な割引率を適用することができます。 さらに、商品の配送を担当する出荷業者を、注文された商品に基づいて実行時に決定できます。 各出荷業者は独自のトランスポート プロトコルを使用している可能性がありますが、供給業者は、実行時に同一のビジネス プロセスを使用してすべての出荷業者を処理し、どの出荷業者に配送を依頼するかを決定できます。 後の段階で、配送業者がトランスポート プロトコル (FTP から HTTP など) を更新する場合、サプライヤーは BizTalk エクスプローラーまたはBizTalk Server管理コンソールのみを使用して、その特定の配送業者に関連付けられている送信ポートを更新する必要があります。 オーケストレーションに格納されているビジネス プロセスを変更する必要はありません。

ロール

オーケストレーションには次の 2 つのロールがあります。

  • メッセージを受信および処理する "実装" ロール。 このロールはプロバイダーとも呼ばれます。

  • メッセージを送信する "使用" ロール。 このロールはコンシューマーとも呼ばれます。

ロール リンクには、コンシューマー ロールとプロバイダー ロールのいずれか、またはその両方を含めることができます。 コンシューマー ロールは、プロバイダー ロールによって提供されるサービスを使用します。 これらのロールのいずれかまたは両方を使用するロール リンクを定義する場合は、リンクしているパートナーによって補完ロールが適切に定義されていることが前提となります。

ロール リンクには 、SourceParty プロパティ、 DestinationParty プロパティ、開始ロールがあります。 開始ロールとは、最初の通信が行われるロールであり、 DestinationParty プロパティの値を設定することでロール リンクを開始します。

開始ロールがメッセージを送信するためのコンシューマーである場合は、オーケストレーションで DestinationParty プロパティを明示的に設定します (1 回だけ)。 これを行うには、次の例のように、Expression 図形に DestinationParty の値を設定します。ここで ConfirmOrder はロール リンクの名前、PartnerName と OrganizationName はパーティのパラメーターです。

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

開始側ロールがメッセージを受信するためのプロバイダーである場合、 DestinationParty プロパティは受信側によって自動的に初期化されます。 DestinationParty はプロバイダー自体に設定されます。 SourceParty プロパティは読み取り専用であり、信頼されたパイプライン コンポーネントを介して提供され、送信者のセキュリティ識別子 (SID) またはパーティに関連付けられている証明書に基づいてパーティ名を解決します。 パイプライン コンポーネントを実行しているホストは、 認証信頼済みとしてマークされている必要があります。 次のサンプル コードを使用して、図形の SourceParty の値を取得できます。

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

ロール リンクは、ロール リンクの種類のインスタンスであり、単一のロールまたは 2 つのロールで構成されます。 ロール リンクの種類を使用する場合は、次の点を考慮します。

  • 単一のロールで構成されるロール リンクでは、指定したポートの種類を参照できるのは、一度だけです。

  • ロール リンクの種類の定義にポートの種類が含まれるので、ポートの種類のスコープは、関連するロール リンクの種類のスコープを含む必要があります。

  • ビジネス アクティビティ サービス (BAS) を使用する場合は、構造化パラメーター スキーマとそれに関連付けるロール リンクの種類を、同一の BizTalk アセンブリ内で定義する必要があります。 構造化パラメーター スキーマは、ロール リンクの種類を構成する個々のロールではなく、ロール リンクの種類に関連付けられます。したがって、役割の異なる 2 つのパーティがロール リンクの種類を含むアセンブリを共有する場合は、同じ構造化パラメーター スキーマが両方のパーティに表示されます。 同じロール リンクの種類を使用する 2 つのパーティが異なるパラメーター スキーマを必要とする場合は、各パーティに対して別々のアセンブリを作成する必要があります。 同じロール リンクの種類を両方のアセンブリ内に作成する必要があります。

このセクションの内容

参照

パーティの解決パイプライン コンポーネントを構成する方法
オーケストレーションでのポートの使用