ホーム > プロセスモデリング, BPM, BPMN, SOA > BPMN-to-BPELにおける課題:第1回

BPMN-to-BPELにおける課題:第1回

つい最近のことですが、BPMNとBPELの連携についてWebで大討論会が繰り広げられていました。WilliamVambenepe氏の
ブログ
にKeithSwenson氏が
ブログ
でコメントし、そのコメントにBruce Silver氏がブログ(
その1

その2)でコメントしたものです。しかもそれぞれのブログに多くの人がコメントを寄せており、全てに目を通すのはかなり大変ですが、BPMNとBPELの連携における様々な課題や方向性が見えてきます。

まずは、これら討論の背景として
BPMNはビジネスプロセス管理において最重要な標準という前提がある、ということを認識する必要があります。コメントを寄せている人の中にはそれを否定している人もいますが、ITの視点ではなく本来あるべきビジネスの視点で考えるとBPEL以上にBPMNが重要だということです。

BPMNありきで考えると、討論されている課題が解決するまでは、BPMNで描いたモデルをBPELに変換せずに実行するエンジンを選択するという方向性もありますが、大手ベンダのBPELエンジンが選択されるケースが多いことも考えると、BPMNをBPELに変換するツールがどこまで課題に対応できているかをしっかりと評価して実用的なツールを選択する必要もあります。そのためにも課題を理解しておくことが大切だと思います。

そこで、何回かに分けて、討論されている課題について補足する情報を交えて紹介していきたいと思います。

その第1回は、BPMNからBPELへの変換の難しさを知ることから…。BruceSilver氏のブログで紹介されている2つのケースから見ていきましょう(※これらのケースはBPMN仕様書においてもBPELへの変換の仕方として明記されている内容です)。

1. “Interleaved” flows (交互的フロー)

これはグラフ構造のBPMNとブロック構造のBPELという構造の違いがあるために変換が難しくなるケースです。グラフ構造では矢印を使ってアクティビティを自由につなぐことができますが、ブロック構造では入れ子構造が基本となるためアクティビティの接続が限定的になります。

次の図で、上がBPMNで素直に描いたフロー、下がそれをBPEL的・ブロック構造的にBPMNで描いたフローです。BPMNからBPELを生成するためには上から下への変換が必要で、図の「C(コピー)」のようにアクティビティの複写が必要になります。

Interleaved flows

ここで留意すべきは、BPELはブロック構造だけでなくグラフ構造でも記述できるという点です(その詳細は
BPMNからBPELを生成する『BPEL エクスポート機能』 というホワイトペーパーの4ページ目で説明していますので、そちらを参照してください)。

それにもかかわらずブロック構造で議論されている理由は、グラフ構造のBPELが実行できるのはIBM WebSphereProcess Serverしか知らないというBruce Silver氏のコメントから明らかだと思います(確か、IBMのそれはブロック構造でも実行できる優れものだったと思いますが…)。

※もしも、グラフ構造のBPELを実行できるエンジンを他に知っている方がいれば是非ともコメント欄に情報をください。

2. Attached events (アクティビティの境界に配置されたイベント、例外フロー)

これは、例外処理を実行した後に進む箇所が、イベントを捕捉して処理を中断する範囲を表す<scope>~</scope>の直後だけ、というBPELの限定が起因となるものです。BPMNでは例外処理を実行した後、自由な箇所に矢印をつなぐことができます。

次の図では、「D」が例外処理、そして上がBPMNで素直に描いたフロー、下がそれをBPEL的・ブロック構造的にBPMNで描いたフローです。今度はゲートウェイ(BPELでは<switch>)を追加する必要があります。

Attached events

以上のようなケースを見ると、BPMNからBPELへの変換の複雑さが分かるとともに、BPELの振る舞い(図における下)をシンプルに分かりやすく可視化(図における上)できるというBPMNの長所も実感できます。

なお、実はこの2つよりもっと複雑な変換をするものも知っています。それはBPMNのマルチインスタンスアクティビティです。

変換の詳細を知りたい方は、UMTPのWebサイトでダウンロードできる
ローレベルBPMNパターンの46ページを見てください。

(つづく)

広告
  1. 2008年6月30日13:19

    岩田さん
    タイミングをいっしたコメントで恐縮です。
    > もしも、グラフ構造のBPELを実行できるエンジンを
    > 他に知っている方がいれば是非ともコメント欄に
    > 情報をください。
    Oracle BPEL Process Managerも実行エンジンとしては、グラフ構造に対応するlinkをサポートしています。ただし開発ツール側で対応がなされていないので、実際にはほとんど利用されていないのではないかと思います。
    ご参考まで。

  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中