パートナーリンク
関連項目
BPEL では、パートナーリンクは、BPEL プロセスと外部 Web サービスの間の相互作用を表します。パートナーリンクアクティビティーは、対話メッセージの交換において各パートナーが担うロールを定義します。パートナーリンクアクティビティーは、そのパートナーリンクの型を参照することによって、各パートナーによって実行されるポート型を間接的に示します。
パートナーリンク要素およびパートナーリンクの型の定義
パートナーリンクの型は、WSDL の BPEL 拡張です。このため、これは BPEL ファイルではなく WSDL ファイルで定義されます。パートナーリンクの型は、1 つ または 2 つの任意のロール間の関連を作成し、各ロールが単一のポート型を実行する必要があることを示します。パートナーリンクは、ロールをポート型に関連付けてパートナー間の相互の規則を定義します。
パートナーリンク要素とパートナーリンクの型の定義は次のとおりです。混同しないようにしてください。
- パートナーリンクの型およびロールは BPEL 拡張であり、WSDL ファイルで定義されます。
- パートナーリンク要素は BPEL 2.0 要素です。これらは、BPEL プロセスファイルで定義されます。パートナーリンク要素は、パートナーリンクの型属性への参照を作成します。
パートナーリンクの型を定義することは、パートナーリンク要素の必要条件です。パートナーリンク要素を定義する唯一の方法は、特定のパートナーリンクの型および WSDL ファイルで定義される必要があるロールを参照することです。
パートナーリンクを追加する方法
次に示すいずれかの方法で、ビジネスプロセスにパートナーリンクを追加できます。
- パレットから、図にパートナーリンク要素をドラッグします。
- 「プロジェクト」ウィンドウの同じプロジェクトから、図に WSDL ファイルをドラッグします。
- 「プロジェクト」ウィンドウの別のプロジェクトから、図に WSDL ファイルをドラッグします。IDE が、自動的に別のプロジェクトから WSDL ファイルを取得し、プロジェクト構造内の Partner ディレクトリに、関連するファイルをコピーします。
- 「プロジェクト」ウィンドウの EJB プロジェクトまたは Web アプリケーションプロジェクトから、図に Web サービスノードをドラッグします。
- Web サービスノードをドラッグすると、BPEL デザイナーは、Application Server から WSDL ファイルを取得します。WSDL ファイルを正常に取得するには、Application Server が実行されていて、かつ Web サービスプロジェクトが配備されていなければなりません。
パートナーリンク要素の使用
パートナーリンク要素を使用するには、次の手順に従います。
- デザインビューで、前述の方法のいずれかを使用して、図にパートナーリンク要素を追加します。
パートナーリンクの「プロパティーエディタ」ダイアログが表示されます。
- 「プロパティーエディタ」ダイアログで、次の項目を指定します。
- 名前。デフォルトの名前を受け入れるか、任意の名前を入力します。名前は、そのプロセスで一意でなければなりません。
- WSDL ファイル 。パートナーリンクに関連する外部サービスを表す WSDL ファイルを選択します。
図に WSDL ファイルをドラッグしてパートナーリンク要素を追加した場合は、WSDL ファイルは選択された状態になっています。
- パートナーリンクの型を指定するには、次のいずれかの方法を選択します。
- 既存のパートナーリンクの型を使用 。指定した WSDL ファイルにすでに存在するパートナーリンクの型の定義を使用する場合は、このオプションを選択して、このあとに示す既存のパートナーリンクの型を使用する手順に従います。
- 新しくパートナーリンクの型を作成して使用 。指定した WSDL ファイルに新しくパートナーリンクの型の定義を作成し、このパートナーリンク要素でそれを使用する場合は、このオプションを選択して、このあとに示す新しいパートナーリンクの型を使用する手順に従います。
既存のパートナーリンクの型を使用するには、次の手順に従います。
- 「既存のパートナーリンクの型を使用」オプションを選択し、ドロップダウンリストからパートナーリンクの型を選択します。「自分のロール」、「パートナーのロール」のいずれかまたは両方のフィールドに、自動的に値が入ります。
- 「閉じる」をクリックします。
IDE が、BPEL ファイルを指定された値に変更します。
- ビジネスプロセス (「自分のロール」) とパートナー (「パートナーのロール」) のロールを入れ替えるには、「ロールの入れ替え」ボタンをクリックします。
パートナーリンクの型を WSDL ファイルに追加し、それを使用するようにパートナーリンク要素を設定するには、次の手順に従います。
- 「新規作成したパートナーリンク型を使用」オプションを選択します。
- パートナーリンクの型を追加する WSDL ファイルを指定します。次のいずれかの操作を実行できます。
- パートナーリンク型を、「ファイルに作成」フィールドにデフォルトで入力されるラッパー WSDL ファイルに追加します。このオプションを選択すると、プロジェクト構造にラッパー WSDL ファイルが自動的に作成されます。元の WSDL ファイルは、新しく作成されたラッパー WSDL ファイルにインポートされます。
- ラッパー WSDL ファイルは、元の WSDL ファイルが読み取り専用の場合、または元の WSDL ファイルを変更しない場合に使用できます。
- パートナーリンクの型を、プロジェクト内の WSDL ファイルに追加します。「参照」をクリックし、パートナーリンクの型を追加する WSDL ファイルを指定します。
- パートナーリンク型の名前を指定します。
- 次の手順で、ビジネスプロセス (「自分のロール」)、パートナー (「パートナーのロール」) の、いずれかまたは両方のロールを指定します。
- 定義するロールに対応するチェックボックスを選択します。
- 「ロール名」フィールドに、ロール名を指定します。
- ドロップダウンリストから「ポート型」を選択します。
- 「閉じる」をクリックします。
IDE が、WSDL ファイルに新しいパートナーリンクの型の定義を追加し、BPEL ファイルを指定された値に変更します。
- 少なくとも 1 つのロールを設定してください。そうしないと、パートナーリンクが正しく構成されません。
動的アドレス指定
事前に終了点がわかっていないパートナーサービスと通信する必要がある場合や、プロセスの実行中に終了点の参照 (EPR) を変更する必要がある場合があります。動的パートナーリンク機能を使用すると、終了点の参照をパートナーリンクに動的に割り当てることができます。この場合、Web サービスのインタフェースが同じであれば、1 つのパートナーリンクを複数の Web サービスとの通信に使用できます。
各パートナーリンクには抽象情報と具象情報が定義されます。Web サービスインタフェースを表す抽象情報は固定である必要がありますが、アドレスやポートなどの具象アクセス情報は動的に検出、使用できます。
注: プロセスを正常に配備するには、パートナーリンクを完全に定義する必要があります。つまり、プロジェクトを配備するときに、パートナーリンクの WSDL ファイルに、定義されているパートナーリンクの抽象情報と、アドレスやポートなどの具象情報の両方が含まれる必要がありますが、具象情報は WSDL ファイルとは別にあとで変更できます。
注: BPEL 仕様では、パートナーの EPR だけを動的に変更できると定められています。つまり BPEL では、partnerLink 要素の partnerRole だけに新しい値を代入できます。myRole の値は BPEL の配備後に変更されません。
新しい EPR をパートナーリンクに割り当てるには、標準の代入アクティビティーと BPEL マッパーを使用します。
EPR 情報は次のいずれかの方法で指定できます。
- リテラルとして指定 (終了点の参照情報を手動でリテラルに入力) してパートナーリンクにマップする
- 受信メッセージを使用して終了点アドレスを抽出する
- サービス参照型の変数を使用する
受信メッセージを使用する場合は、WSDL でメッセージの部品として EPR スキーマを定義する必要があります。EPR をパートナーリンクに割り当てるには、メッセージ変数を使用します。
変数から新しい終了点の参照をパートナーリンクに割り当てるには、次の手順に従います。
- プロセス内に新しい代入アクティビティーを作成します。
- BPEL マッパーを開きます。
- 右側にあるターゲットツリーで、新しい具象部品を配信するパートナーリンクを探します。
- ソースツリーで、新しい終了点のアドレスを含む変数を探します。
Web サービスのアドレスは異なるスキーマで定義できます。また JBI コンテナには ServiceRefType という特殊なデータ型が必要です。これは終了点を表すすべてのデータ型の簡単なラッパーです。
データをラップするには、次の手順に従います。
- マッパーのツールバーで、「BPEL」>「サービス参照でラップ」を選択します。
この関数は、事前に定義された XSL スタイルシートを使用する doXslTranform 関数です。
-
変数から関数への内向きの接続を描画します。次にパートナーリンクへの外向きの接続を描画します。
- 新しい具象部品がパートナーリンクに割り当てられます。
- 関連項目
- 受信
- 返信
- 呼び出し
- WSDL および XML スキーマインポートの追加
- WSDL エディタについて
- BPEL デザイナーパレット: Web サービス
- BPEL デザイナーのデザインビューについて
著作権と商標について