ESBとBPELサーバの連携
2006年9月13日(水)
前回は
前回「第5回:BPELサーバとの関連付け」では、SOAらしいシステムを構築していく上で重要になるBPELサーバが何であり、どのように構成されているかを解説してきた。続く今回は、実際にESBとBPELを連携させるための処理フローについて解説していく。
実際の処理のアクティビティ
このアクティビティがBPELにおける根幹的な要素である。このアクティビティを実行することでプロセスが実行される。
図1は処理のアクティビティを抽象的なActivityを親クラスとしてクラス図として記述したものだ。処理アクティビティは、全部で8つありそれぞれの概要を表1に示す。
- receive、invoke、replyアクティビティ
- 外部とのやりとりをあらわす。
- assignアクティビティ
- 変数・メッセージに代入・複製をおこなう。
- waitアクティビティ
- 指定された時間まで処理を停止する。
- emptyアクティビティ
- 何も処理をしない。
- throwアクティビティ
- 例外(Faultメッセージ)をスローする。
- compensateアクティビティ
- キャンセル処理を起動させる。
実際の処理フローを構造化するためのアクティビティ
単純な処理だけでは、処理フローを記述することができない。そのためBPELでは処理を構造化するためのアクティビティを定義している。
図2は構造をあらわすアクティビティを抽象的なActivityを親クラスとしてクラス図として記述したものだ。構造をあらわす印としてStructuredステレオタイプを利用している。これらのアクティビティは全部で6つありそれぞれの概要を表2に示す。
- switchアクティビティ
- 複数の条件から1つを選択して実行する。
- flowアクティビティ
- 複数のアクティビティを並行に実行する。
- sequenceアクティビティ
- 複数のアクティビティを順番に実行する。
- pickアクティビティ
- 複数のメッセージに対応する処理を実行する。
- scopeアクティビティ
- 例外の処理範囲やキャンセル処理範囲をあらわす。
- whileアクティビティ
- 条件を満たす間、子要素のアクティビティをループする。
これらのアクティビティを組み合わせて、処理フローを作成する。
各アクティビティの詳細は以下のURLを参照してください。
実践!ビジネス・プロセス・インテグレーション
http://www.thinkit.co.jp/free/project/16/2/1.html
実践!ビジネス・プロセス・インテグレーション
http://www.thinkit.co.jp/free/project/16/2/1.html
粒度によってはビジネスプロセスをあらわすこともあれば単純なサービスの処理フローをあらわすこともある。この粒度が、BPELの役割を混乱させる元になっている。
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。