スタンドアロンおよびインラインBPELサブプロセスの起動の概要

BPELでは、ビジネス・プロセス・ロジックを再利用可能にするモジュール化を制限付きでサポートします。ただ1つの方法は、再利用可能なプロセス・ロジックを完全に独立したプロセスとしてパッケージ化することで、このプロセスを、(起動アクティビティを介して)Webサービスで使用するのと同一のメソッドの親プロセス(再利用可能なプロセス・ロジックを使用するプロセス)で使用します。

この問題に対応するため、Oracle SOA Suiteでは、BPELにサブプロセスの拡張機能を提供しています。サブプロセスは、別個のプロセスが特定のプロセッサ内で再利用できるBPELコードのフラグメントです。このサブプロセス拡張機能には、次の利点があります。

  • BPELプロセス・コードを再使用できることで、同じタスクを実行するために、同じアクティビティを何度も作成する必要がなくなります。

  • コードのモジュール性。

  • コードのメンテナンス(変更内容の伝播により、変更が必要になるたびに複数の場所に更新を実装する必要がなくなります)。

  • 起動アクティビティよりオーバーヘッドが減少します。

  • メモリー・フットプリントが減少します。メモリー・フットプリントは、複雑なプロセスでは大量となる場合があります。

ノート:

  • サブプロセスは、BPELバージョン2.0でのみサポートされます。BPELバージョン1.1ではサポートされません。

  • 相関セットは、サブプロセスではサポートされません。インラインまたはスタンドアロン・サブプロセスで相関セットを作成すると、実行時に失敗します。

  • サブプロセスを複数のコンポジットで共有することはできません。

  • 「監視」ビューは、サブプロセス内ではサポートされていません。「監視」ビューは、Oracle BPELデザイナ上部の「監視ビューに変更」アイコンを選択することで、BPELプロセスからアクセスできます。

表40-2に示すように、Oracle SOA Suiteでは2種類のサブプロセスをサポートします。

表40-2 サブプロセス・タイプ

スタンドアロン・サブプロセス インライン・サブプロセス
  • BPELコール・アクティビティがサブプロセスを起動します。

  • BPELコール・アクティビティがサブプロセスを起動します。

  • 同じコンポジット内のサブプロセスのみサポートします。

  • 親BPELプロセス・コードの一部で、コンポジット・ビューには表示されません。

  • 「コンポーネント」ウィンドウに表示されます。

  • 「コンポーネント」ウィンドウに表示されます。

  • インタフェースがなく、別のBPELプロセスからのみ呼び出すことができます。パートナ・リンクを含めることができます。

  • サブプロセス・コードは実行時に再入可能かつ再利用可能です。何度も呼び出される場合でも、メモリーに保存できるコピーは1つのみです。

  • 他のBPELプロセス間で再使用されるアクティビティが多数含まれるBPELプロセスの断片です。

  • 1つのBPELプロセス内で再使用されるアクティビティのグループ用です。

  • コンポジット・ビューでは、サブプロセスへの接続が点線で表示され、実際のコンポーネント間の接続でないことを示します。

  • 設定するパラメータを定義するか、またはプロセス・パラメータを使用できます。

該当なし。

  • アクティビティは、サブプロセスに変換されるスコープ・アクティビティ内に存在する必要があります。

スタンドアロン・サブプロセスの作成の詳細は、「スタンドアロンBPELサブプロセスの作成方法」を参照してください。

インライン・サブプロセスの作成の詳細は、「インライン・サブプロセスの作成方法」を参照してください。