BPEL for Windows Workflow Foundation (WF) March CTP レビュー
Sorry, this entry's written only Japanese.
こんにちは。 先日、某ユーザグループの BPM/ワークフローの第0回勉強会(飲み会)に参加させていただきました。そんなこともあり、ちょっと話題的には古くて新しい、今年の2月末に発表された Windows Workflow Foundation (以下、WF) の BPEL 対応に関して書きます。
詳細は、WF と Windows Communication Foundation (以下、WCF) のプロダクトマネージャである Paul Andrew 氏の記事:
Microsoft provides BPEL 2.0 in WF - BPEL for Windows Workflow Foundation March CTP
をご覧いただければと思いますが、(いくつか日本のメディアでも記事がでていますが)簡単に書くと、OASIS 標準として承認された BPEL 2.0 に WF を対応させるという感じです。
そのための CTP (Community Technology Preview)版として、
BPEL for Windows Workflow Foundation March CTP
がダウンロードし、お試しいただけるようになっています。
これは、簡単に書くと、
・WF の ワークフローデザイナでの BPEL モデリングと BPEL ファイルのエクスポート
・BPEL ファイルの WF へのインポート
を可能にしてくれます。WF では、 XOML でワークフローを表現しますが、上記の意味は、
・エクスポート = XOMLで BPEL モデリングできて、BPEL に変換
・インポート = BPEL を XOML に変換(して実行可能にする)
といった感じです。
要するに、WF の世界では、あくまで、XOML です。BPEL をそのまま、WF のランタイムが実行しているわけではありません。
しかし、デザイナでも BPEL アクティビティ(左のスクリーンショットをご覧ください)が用意されているので、BPEL になれている人は、WFのデザイナで直接 (XOML で) BPEL 様式に記述できますし、BPEL を WF で実行させたい場合も、 XOML に変換できるため BPEL で定義したワークフロー通りに WF で実行できるわけですね。
BPEL は、ビジネスプロセスの設計言語という側面と、オーケストレーションエンジン上でのプロセスの実行を行うスクリプト言語という側面がありますが、BPEL for WF では、この両方の側面をカバーしているといっていいのではないでしょうか(実行は、XOML ですが)。
ここでさらに機能の詳細ですが、エクスポートツールは、WFのワークフロー(BPEL Workflow Library)のDLL(アセンブリ)を入力として与えます。そうすると、BPEL ファイルと そのビジネスプロセスで呼び出している Web サービスの WSDL を出力してくれます。 この情報は、そのまま、別のテクノロジーのオーケストレーションエンジンに持っていけば実行可能なはずですね(※私は試していません)。
インポートでは、BPEL ファイルと WSDL を入力として与えます。そうすると、XOML と Web サービスでアクセスするための クラス(ソースコード: C# や VB) が出力されますが、それだけではなく、WF のワークフローの DLL (アセンブリ)も出力してくれます。また、ついでに Visual Studio 2005 のプロジェクトファイルを生成することもできます。
* 上記の BPEL for WF の ツールボックスは、表示されない場合があります。表示されない場合は、ツールボックス上に新たにタブを作成し、アイテムとして、C:\Program Files\Microsoft.NET\BPEL for WF March CTP\Microsoft.Workflow.Bpel.Activities.dll を参照し、追加してください。
* WF と Webサービス連携というだけであれば、BPEL for WF を使わなくても現在の WF で対応できます。また、WF と WCF 連携もできます。
ただ、ビジネスプロセスを BPEL でいきなり記述することはあまり少なく、BPMN などで エンジニアでなくても、わかるモデルを書くことが多いのではないでしょうか。私もソフトウェア開発プロセスやその一部(もちろん、これもビジネスプロセスです)をスイムレーンで記述したりしていましたが、ビジネスプロセスの現状とあるべき姿を描くには BPEL では詳細すぎると感じます。
WF では、BPMN の対応は、現時点では予定されていないようです。しかしながら、WF 自体も様々なカスタマイズが可能なため、BPEL 対応と同様に、他のモデルに対応することもできるでしょう。また、DSL Tools により BPMN での表記を、BPEL for WF にトランスフォームするなども可能ではないでしょうか。
ちなみに、今回ご紹介した、BPEL for WF March CTP は、BPEL 1.1 が対象となっています。 今年の第4四半期には、BPEL 2.0 を対象として正式リリースが予定されています。
ながさわ