マスター・プロセスと詳細プロセスの調整に関する概要
マスター・プロセスと詳細プロセスの調整は、単一のマスター・プロセスと複数の詳細プロセス間の1対多の関係で構成されます。
たとえば、ビジネス・プロセスで受注をアプリケーションにインポートするとします。各受注は、単一のヘッダー(顧客情報、配送先など)と複数の明細(品目名、品目番号、数量、価格など)で構成されます。
この受注の実行には、次の各タスクが実行されます。
-
ヘッダーを検証します。ヘッダーが無効な場合、処理は停止します。
-
各明細を検証します。無効な明細がある場合は、無効としてマークされ、処理が停止します。
-
各品目の在庫確認を実行します。品目が在庫にない場合は、作業指示が作成されて組み立てられます。
-
各明細の品目が入手可能になった場合は、その品目を出荷ドックに移動します。
-
注文品を顧客に発送します。
これらのタスクを実行するには、各ヘッダーの確認と検証を行う単一のマスター・プロセスと、各明細品目の確認と検証を行う複数のBPELプロセスを作成します。
考えられる調整のポイントは、次のとおりです。
-
マスター・プロセスは、ヘッダーの検証が正常に終了した後、処理を続行することを詳細プロセスに通知する必要があります。
-
各詳細プロセスは、明細品目の検証を完了した場合、マスター・プロセスに通知する必要があります。
-
各詳細プロセスは、明細品目が在庫で入手可能な場合、マスター・プロセスに通知する必要があります。
-
すべての明細品目が入手可能である場合、マスターは各詳細プロセスに通知して、明細品目を出荷ドックに移動する必要があります(入手可能になった明細品目をすべて移動した場合、ドックは一杯になる場合があります)。
-
すべての品目を移動した後、マスター・プロセスは、履行された注文品を顧客に発送するロジックを実行します。
図16-1は、1つのマスター・プロセスと2つの詳細プロセス間の、ヘッダーと明細品目の検証調整ポイントの概要を示しています。
図16-1 マスター・プロセスと詳細プロセスの調整の概要(1つのBPELプロセスから2つの詳細プロセスへ)

「図16-1 マスター・プロセスと詳細プロセスの調整の概要(1つのBPELプロセスから2つの詳細プロセスへ)」の説明
次のBPELプロセス・アクティビティは、マスター・プロセスと詳細プロセス間のアクションを調整します。
-
signal: 他のプロセス(マスターまたは詳細)に処理の続行を通知します。
-
receive signal: 他のプロセス(マスターまたは詳細)から適切な通知シグナルを受信するまで待機してから、処理を続行します。
どちらのアクティビティも、BPELプロセス・ファイルに定義されているラベル属性によって調整されます。ラベルはマスター・プロセス定義ごとに宣言されます。
図16-2は、BPELプロセス・フローの調整の概要を示しています。
図16-2 マスター・プロセスと詳細プロセスの構文の概要(1つのBPELプロセスから1つの詳細プロセスへ)

「図16-2 マスター・プロセスと詳細プロセスの構文の概要(1つのBPELプロセスから1つの詳細プロセスへ)」の説明
図16-2に示すように、各マスター・プロセスと詳細プロセスには、signalアクティビティとreceive signalアクティビティが含まれています。表16-1は、役割が定義されたプロセスのタイプに基づいて、アクティビティの役割について説明しています。
表16-1 マスター・プロセスと詳細プロセスの調整の役割
プロセス | アクティビティ | 結果 |
---|---|---|
マスター・プロセス |
signalアクティビティ |
マスター・プロセスは実行時に、関連するすべての詳細プロセスに通知します。 |
詳細プロセス |
receive signalアクティビティ |
詳細プロセスは、マスター・プロセスが実行したシグナルを受信するまで待機します。 |
詳細プロセス |
signalアクティビティ |
詳細プロセスは実行時に、関連するマスター・プロセスに処理が完了したことを通知します。 |
マスター・プロセス |
receive signalアクティビティ |
マスター・プロセスは、すべての詳細プロセスが実行したシグナルを受信するまで待機します。 |
signalアクティビティがreceive signalアクティビティの前に実行された場合は、そのsignalアクティビティによって設定された状態が継続され、その状態は後のreceive signalアクティビティを読み取るまで有効です。