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

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

前回はBPMNからBPELを生成するために複雑な変換が必要になるという話をしました。複雑でもツールが自動で変換してくれるから良いのでは?と思われるかもしれませんが、やはりそこには問題が潜んでいます。それは前回紹介したブログで登場する”the problems of round-tripping” という言葉が示すもので、BPELで手を加えた内容をBPMNに戻すことができないという問題です。

BPMは継続的な改善サイクルを廻すので、BPMN→BPEL→BPMN→BPELというサイクルも廻さなければいけません。もしBPELに手を加えたのならば、その内容をBPMNに戻してからビジネスプロセスを改善する必要があります。BPMNからBPELという複雑な変換の逆変換も当然複雑になると思いますが、BPMNの仕様書ではBPMNからBPELへの筋道を示していますが、その逆の筋道は示していません。

サイクルが効率良く廻らないことが問題になってしまいます。

ところで、そもそもBPELに変換した後に手を加える必要があるのでしょうか?

次にその点について…。

BPMNの仕様書では、タスクのAssigmnets属性やWebService属性など、BPELの生成に必要な詳細情報までをBPMN属性として規定しています。例えば、BPELの中でXPATH式を使用する場合にはBPMN属性に記述します。それら属性をしっかりと定義すれば基本的には即実行できるBPELをBPMNから生成することができます(※図形の形状はBPMN、でもBPMN属性は持たないというツールが多いので、その存在に気づいていない方も多いのでは…)。しかも、BPELの<pick>はBPMNではイベント準拠ゲートウェイ、<compensate>は補償イベントというように、少し複雑な振る舞いであってもBPELで表せるものは基本的には全てBPMNで記述することができます。つまり、基本的にはBPMNをBPELに変換した後にBPELに手を加える必要はない、BPELをBPMNに戻す必要もないということになります。

しかしながら、あくまでも “基本的には” であって、実際にはBPELエンジンを提供するベンダ固有のBPEL拡張についても考える必要があります。拡張を考慮するとBPELエンジン側で手を加えるのは必然のことになります。

さらなる問題を、Keith Swenson氏がブログで “The additional non-executable information (graphics, etc) asuseful in order to display the running process to a user.” と表しています。 BPMNからBPELに変換する際にBPELの実行には関連しないが有益とされる情報が欠落してしまうという問題です。

例えば、BPMNのレーンは対応するBPELがないので変換されません。折角、ビジネスプロセス図でレーンを使って作業の実行者(役割)を明示してもBPELには引き継がれず、BPELが呼び出す「人の作業を管理するWebサービス」などで同じことを設定し直す必要があります。

その他にもメッセージフロー、注釈、グループというビジネスプロセス図を分かりやすく飾る図形も一切変換されません。BPMNで分かりやすい図を描いても、BPMスィートのスクリーンフロー(※ビジネスプロセス図上で作業の進捗などをビジュアルに確認する画面)では分かりやすさが半減してしまいます。

BPMNではアドホックサブプロセスやシグナルイベントなど、BPELでは実現できない振る舞いが描けるが…、という問題まであります。

BPMNからBPELに変換すると情報が欠落するのならば、なおさらBPELをBPMNに戻すということが難しくなるともいえます。

その他にも、ビジネスプロセス図(BPMN)の実行が失敗した際にどこを直せば良いのかをプロセスエンジンが指摘できないなど、いくかの問題が語られています。

Bruce Silver氏がブログでBPELのことを “a poor runtime partner for BPMN” と呼ぶことに思わず肯いてしまいます。

次回は、このような問題をふまえてどうすべきか、という最も大切なことを話したいと思います。

(つづく)

広告
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中