FeaturesPluginsDocs & SupportCommunityPartners

BPEL デザイナー開発者ガイド

相互関係について。「相互関係」ウィザードの使用

BPEL サービスエンジン実行環境では、相互関係と呼ばれる仕組みが使用され、BPEL プロセスとそのパートナーサービスの間で一般的に発生し、長時間実行される複数のメッセージ交換を追跡します。相互関係機構は、メッセージを適切なプロセスインスタンスにルーティングするのに役立ちます。

会話でのメッセージは、WSDL ファイル内で定義された 1 つ以上のプロパティーからなる複合値へ接続されます。プロパティーとは、クエリーで特定される、メッセージ内のフィールドです。クエリーは、プロパティー別名と呼ばれる特殊な構造で指定します。

したがって、Web サービス間のステートフルなコラボレーションを、実装に依存しない標準の方法でサポートするために相互関係セットが使用されます。相互関係セットは、メッセージエンベロープ、ヘッダー、またはビジネス文書自体に保存されている相互関係データトークンに依存します。相互関係の宣言は、メッセージの宣言によるプロパティーに依存します。

相互関係には、次の用語が適用されます。

  • プロパティーは、任意の名前を持つトークンです。これは、単純型である必要があります。これは、WSDL ファイル内で定義されます。
  • プロパティー別名は、BPEL 実行環境にメッセージからプロパティー値へのデータのマッピング方法を指示する規則です。相互関係値として使用される 1 つのプロパティーに複数のプロパティー別名を定義できます。プロパティー別名を定義するのは、同じプロパティー値を複数のメッセージからマップする場合などです。通常、それらのメッセージは相互関係にあります。たとえば、異なる 2 つのメッセージが、抽出する同じ部分を持っていたとします。その場合、メッセージそれぞれにプロパティー 1 つとプロパティー別名 2 つが必要です。プロパティー別名は WSDL ファイルで定義されます。
  • 相互関係セットは BPEL ファイルで定義されます。相互関係セット は、1 つ以上のプロパティー値からなる複合キーで、実際はプロパティーセットです。BPEL 実行環境は、このキーを使用して、必ずメッセージが特定の会話の正しいプロセスインスタンスへルーティングされるようにします。
  • 相互関係はアクティビティーをマーク付けします。アクティビティーは相互関係セットを名前で識別し、メッセージで発生したどの相互関係セットを送信または受信するかを指定します。

相互関係を使用および表現する要素

相互関係セットを使用して、プロセス要素を定義できます。定義された相互関係セットは、メッセージアクティビティー (呼び出し 、返信、および受信) によって使用されます。メッセージアクティビティーは、プロセスとパートナーサービスの間の会話を記述したものです。

呼び出しアクティビティーの相互関係セットは、指定された相互関係セットインスタンス内で検出されたデータと整合するデータがアウトバウンドメッセージに含まれていることを確認するために使用されます。

相互関係セット名は、ピック要素のメッセージ時分岐、およびイベントハンドラのイベント時変種でも使用されます。

アクティビティーに相互関係を定義する必要がある場合、IDE によって求められます。

相互関係の定義。「相互関係」ウィザード

相互関係を定義する方法は、次の 2 とおりあります。

  • 主な手順をすべて自動で実行する、「相互関係」ウィザードを使用する。これが相互関係を定義する、もっとも簡単で便利な方法です。通常、相互関係の仕組みを詳細に理解している必要はありません。ウィザードがそれを行います。
  • 手動で相互関係を定義する

「相互関係」ウィザードは、呼び出し、返信、受信、イベント時、またはピック要素のメッセージ時分岐など、2 つのメッセージアクティビティーの相互関係の定義に使用します。

注: このウィザードでは相互関係の作成だけが可能です。このウィザードで相互関係を編集することはできません。

「相互関係」ウィザードを使用して相互関係を作成する手順は、次のとおりです。

  1. デザインビューで、相互関係が必要なアクティビティーを右クリックし、「相互関係を定義」を選択します。「相互関係」ウィザードが開きます。

    アクティビティーに相互関係が必要な場合、IDE は図に警告マークを表示します。

    相互関係がアクティビティーに必要とされる

    「相互関係を定義」を選択

  2. 手順 1。メッセージアクティビティーを選択します。ドロップダウンリストから開始メッセージアクティビティーを選択します。ここで選択するアクティビティーから相互関係セットが開始します。「次へ」をクリックします。

    「相互関係」ウィザード。手順 1

  3. 手順 2。相互関係を定義します。開始アクティビティーが送信または受信するメッセージのツリー構造が左側に表示されます。相互関係があるアクティビティーによって渡されるメッセージの構造が右側に表示されます。ソースツリー区画でノードを選択し、ポインタを宛先ツリー区画のノードまでドラッグすることで、相互関係の定義に使用するメッセージ部品を接続します。

    「相互関係」ウィザード。手順 2
    クリックして拡大

  4. これで相互関係が設定されます。ウィザードによって、プロパティーとプロパティー別名が WSDL ファイルに作成され、BPEL ファイルで相互関係セットが定義され、選択したアクティビティーに相互関係セットが関連付けられます。

    プロパティーおよびプロパティー別名は、BPEL モジュールのプロセスファイルとして表示される新しい WSDL ファイルに書き込まれます。パートナーサービスの元の WSDL ファイルは、新しい WSDL にインポートされます。ウィザードを使用して作成するすべての相互関係のプロパティーおよびプロパティー別名が、このファイルに書き込まれています。パートナーの WSDL ファイルはインポートされます。BPEL ファイルで定義されている相互関係セットでは、新しい WSDL が参照されます。複数のメッセージアクティビティーの相互関係を定義する場合、プロパティーおよびプロパティー別名の情報はすべて、1 つの WSDL ファイルに書き込まれます。

    プロパティーおよびプロパティー別名の新規 WSDL ファイル

手動での相互関係の定義

  1. WSDL エディタを使用して WSDL ファイルに 1 つ以上のプロパティーを定義するか、またはWSDL ファイルにプロパティーを 1 つ追加します。
  2. WSDL エディタを使用して WSDL ファイルに 複数のプロパティー別名を定義するか、またはWSDL ファイルにプロパティーを 1 つ追加します。
  3. BPEL ファイルの「プロセス」に、以前に定義したプロパティーを 1 つまたは複数使用して、相互関係セットを定義します。

    相互関係セットを定義するには、次の手順に従います。

    1. デザインビューで、プロセス要素を右クリックし、「追加」>「相互関係セット」を選択します。

      または、「ナビゲータ」ウィンドウの BPEL 論理ビューで「相互関係セット」ノードを右クリックし、「相互関係セットを追加」を選択します。

    2. 「相互関係セットを追加」ダイアログで、相互関係セットの名前を指定し、「追加」をクリックしてプロパティーを追加します。
    3. 「プロパティーの選択」ダイアログで、WSDL ファイルノードを展開し、セットに追加するプロパティーを選択します。
    4. (省略可) 「インポートしたファイルのみを表示」チェックボックスを選択解除し、インポートされなかった WSDL ファイルと XML スキーマファイルの内容を表示します。

      デフォルトでは、「プロパティーの選択」ダイアログには、すでにプロセスで参照されたファイルだけが表示されます。ただし、プロセスにまだインポートされていないそのほかの .wsdl ファイルや .xsd ファイルが、プロジェクトに含まれている可能性があります。インポートされていないファイルで定義されている新しいプロパティーの種類を選択すると、必要なインポートが自動的に BPEL プロセスに追加されます。

      プロセス用に定義された相互関係セットには、大域的な可視性があります。相互関係セット名は、ほかの相互関係セット名の間で一意の名前にする必要があります。

    5. 「閉じる」をクリックします。
  4. 呼び出し、受信、返信、またはピックアクティビティーで送信または受信されたメッセージに、1 つまたは複数の相互関係セットを関連付けます。
    1. デザインビューで、要素 (呼び出し、受信、返信、ピックのメッセージ時分岐、イベントハンドラコンテナ要素のイベント時分岐) をダブルクリックします。
    2. プロパティーエディタで、「相互関係」タブを選択し、「追加」をクリックします。
    3. 「相互関係セットの選択」ダイアログで、「相互関係セット」ノードを展開し、相互関係セットを選択して「了解」をクリックします。
    4. 「開始」ドロップダウンリストから、この相互関係セットの開始属性を選択します。次のいずれかのオプションを選択できます。
      • はい。アクティビティーで相互関係セットの開始を試みる必要があります。
      • 結合。相互関係セットが開始されていない場合、アクティビティーで開始を試みる必要があります。
      • いいえ。アクティビティーで相互関係セットの開始を試みてはいけません。これがデフォルトのオプションです。
    5. 呼び出しアクティビティーの場合、メッセージパターンを指定します。

      「パターン」ドロップダウンリストから、相互関係が外向きメッセージ (要求) または内向きメッセージ (応答) のいずれか、あるいはその両方 (要求-応答) を対象とするのかを指定するパターン属性を選択します。

    6. (省略可) 必要に応じてさらに相互関係セットを追加し、「了解」をクリックします。

ページの先頭へ


Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by