TOP業務システム> BPELフローの起動とコンポジットアプリケーション
SOA/ESB
SOA/ESBの真の姿とは

第7回:BPEL 2.0とは?

著者:Fiorano Software  青島 茂   2007/11/15
前のページ  1  2  3
BPELフローの起動とコンポジットアプリケーション

   BPELで定義されたビジネスプロセスは、「外部からのリクエストメッセージをreceiveすることで実行が開始され、実行結果をreplyすることで終了する」のが基本となっています。

   今回の例では、ユーザからの注文を受け取った受注アプリケーションがBPELエンジンに対してリクエストを送り、これによってBPELの実行が開始されます。リクエストメッセージのペイロードは、発注書のデータとなります。BPELフローでは、リクエストをreceiveし、必要なサービス(外部システム)を呼び出し(invokeし)、最後に処理結果をリプライメッセージとして受注アプリケーションにreplyします(図3)。

   リクエストメッセージおよびリプライメッセージのペイロード(データ)構造は、BPEL側でWSDLとして定義されます。このことは、BPELフローもまたWebサービスとして他のアプリケーションから呼び出されることを意味しています。

   また、BPELフロー内から別のBPELフローを1つのWebサービスとして呼び出すことができることも意味します。複数のサービスからなる一連のフローをあたかも1つのサービスとして呼び出せる形にまとめたものを、「コンポジットアプリケーション」と呼びます。BPELは、コンポジットアプリケーションを作成するための優れた手段でもあるのです。

BPELアクティビティとパートナーとの連携パターン

   アクティビティとは、他の開発言語の命令文やコマンドに相当し、BPELフロー内の個々の処理ステップを担います。BEPL 2.0仕様に含まれる主要なアクティビティを、表1にまとめました。

コンポジットアプリケーション
図3:コンポジットアプリケーション

フロー制御
(ストラクチャード アクティビティ)
基本処理
(ベーシック アクティビティ)
BPEL 1,1 から引き継いだもの BPEL 1,1 から引き継いだもの
・while

・sequence
(アクティビティの順次実行)

・flow
(複数のアクティビティを並行して実行)

・scope
(変数やフロー制御アクティビティの有効範囲の 設定、トランザクション制御の範囲設定に有効)
・invoke
(Webサービスの呼び出し(リクエストの送信))

・receive
(BPELプロセスへのリクエストの受信およびWebサービスからのリプライの受信)

・reply (リクエスタへのリプライの送信)

・pick (非同期の受信)

・wait (待機)

・assign (変数への値のコピー)

・throw (例外のスロー)
BPEL 2.0 から新規に追加されたもの BPEL 2.0 から新規に追加されたもの
・if … elseif … elese

・forEach
(Perl などの foreach と同様に、受信データなどによって繰り返し回数がダイナミックに変わる)

・repeatUntil
(do ? while 文と同等)
・rethorw

・assign の拡張
(XPathによるクエリおよびdoXSltTransform () の実行結果を変数にコピー)

表1:BEPL 2.0の主要なアクティビティ

   この表からどのような処理手順やフロー制御が可能かは、読者の皆さんならば容易に想像できるものと思います。


次回は

   さて次回は、「BPELアクティビティとパートナーとの連携パターン」について、外部システム(BPELではパートナーと呼びます)とのやり取りに関わるアクティビティ(invoke、receive、replyなど)によってどのような連携が実現できるのか説明します。また、BPELによるビジネスプロセス実行の特徴について解説していきます。

前のページ  1  2  3


Fiorano Software, Inc. 日本オフィス ジャパン オペレーション マネージャ 青島 茂
著者プロフィール
Fiorano Software, Inc.
日本オフィス ジャパン オペレーション マネージャ
青島 茂
SOA/ESBの分野に2003年1月からたずさわる。2005年3月にFiorano Softwareの日本オフィスを開設し、現在SOA/ESB製品の国内市場への普及に専心している。


INDEX
第7回:BPEL 2.0とは?
  BPELとは
  BEPL 2.0によるビジネスプロセス実行の特徴
BPELフローの起動とコンポジットアプリケーション