ESBとBPELサーバの連携

2006年9月13日(水)
高安 厚思

前回は

   前回「第5回:BPELサーバとの関連付け」では、SOAらしいシステムを構築していく上で重要になるBPELサーバが何であり、どのように構成されているかを解説してきた。続く今回は、実際にESBとBPELを連携させるための処理フローについて解説していく。

実際の処理のアクティビティ

   このアクティビティがBPELにおける根幹的な要素である。このアクティビティを実行することでプロセスが実行される。

処理アクティビティ Essential Business Process Modeling(ISBN:059600830)から引用し、筆者が追記
図1:処理アクティビティ
Essential Business Process Modeling
(ISBN:059600830)から引用し、筆者が追記
(画像をクリックすると別ウィンドウに拡大図を表示します)

   図1は処理のアクティビティを抽象的なActivityを親クラスとしてクラス図として記述したものだ。処理アクティビティは、全部で8つありそれぞれの概要を表1に示す。

receive、invoke、replyアクティビティ
外部とのやりとりをあらわす。
assignアクティビティ
変数・メッセージに代入・複製をおこなう。
waitアクティビティ
指定された時間まで処理を停止する。
emptyアクティビティ
何も処理をしない。
throwアクティビティ
例外(Faultメッセージ)をスローする。
compensateアクティビティ
キャンセル処理を起動させる。
表1:処理アクティビティ

実際の処理フローを構造化するためのアクティビティ

   単純な処理だけでは、処理フローを記述することができない。そのためBPELでは処理を構造化するためのアクティビティを定義している。

構造をあらわすアクティビティ Essential Business Process Modeling(ISBN:059600830)から引用し、筆者が追記
図2:構造をあらわすアクティビティ
Essential Business Process Modeling
(ISBN:059600830)から引用し、筆者が追記
(画像をクリックすると別ウィンドウに拡大図を表示します)

   図2は構造をあらわすアクティビティを抽象的なActivityを親クラスとしてクラス図として記述したものだ。構造をあらわす印としてStructuredステレオタイプを利用している。これらのアクティビティは全部で6つありそれぞれの概要を表2に示す。

switchアクティビティ
複数の条件から1つを選択して実行する。
flowアクティビティ
複数のアクティビティを並行に実行する。
sequenceアクティビティ
複数のアクティビティを順番に実行する。
pickアクティビティ
複数のメッセージに対応する処理を実行する。
scopeアクティビティ
例外の処理範囲やキャンセル処理範囲をあらわす。
whileアクティビティ
条件を満たす間、子要素のアクティビティをループする。
表2:各アクティビティの概要

   これらのアクティビティを組み合わせて、処理フローを作成する。

各アクティビティの詳細は以下のURLを参照してください。

実践!ビジネス・プロセス・インテグレーション
http://www.thinkit.co.jp/free/project/16/2/1.html

   粒度によってはビジネスプロセスをあらわすこともあれば単純なサービスの処理フローをあらわすこともある。この粒度が、BPELの役割を混乱させる元になっている。

株式会社オープンストリーム テクニカルコンピテンシーユニット 主管システムズアーキテクト

横浜国立大学経営学部卒。銀行系シンクタンクでオブジェクト指向技術の研究に携わった後、大手SIerにて アーキテクチャ構築、プロセス研究に携わった。現在株式会社オープンストリームにてSOAを中心とする研究開発およびアーキテクチャ構築に従事。最近は XMLのダイナミックさに魅了されている。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています