ワークフローエンジンとは何か

というより、S2Buriってすごく可能性を秘めてる感じがしているのでBPM(ビジネスプロセスマネージメント)関連の調査をしているのだけど、どうも世間的には混迷の度合いを深めてるらしく情報も錯綜していてよくわからない。

まず、BPM自体は一般用語で定義も怪しい。ワークフロー側から見る場合もあるし、EAIがらみの場合もある。ただ、業界的にBPMというのは、企業間も含むでかいワークフローみたいなものという感じのようだ。

で、そのBPMの表記法としてBPMNというのがBPMIという団体で定義されている。UMLでいうアクティビティ図の進化版みたいなのらしい。で、そのBPMNを記述する言語が二種類あり、WfMCというワークフロー団体が定義するXPDLとOASISの定義するBPELということのようだ。「詳説 ビジネスプロセスモデリング ―SOAベストプラクティス (THEORY/IN/PRACTICE)」という本によると、WfMCはくたばってBPELに一本化しやがれと書いてあったりするのだが、これが真実なのかFUDなのかはよくわからない。S2BuriとかnauticaとかはどちらもXPDLだ。

ただ、XPDLとBPELの記述を見ると、XPDLは各アプリで実装すると必ず非互換な部分が発生しそうな規格だが、シンプルだしS2Buriの用途を考えるとこちらの方が向いているように思う。それに対しBPELWebサービス用のバッチ処理言語みたいな感じで、ものすごく方向性を間違っているように見える*1

では、実際はどうかと思ってアプリを見ると、JBoss jBPMやSpring WebFlowなどのアプリケーションが見つかるが基本は独自フォーマットのようだ*2。業界的には大手企業の協賛もあってBPELをサポートするツールが多いが実際には非互換が多いという噂。XPDLは前述の二つを除くとサポートするツールはほとんどない。

また、ワークフローという面ではWfMCが定義したWAPIというのがあり、これはよくサポートされているのだが、APIを眺める限りものすごく使いずらそうである。

うーむ、何となくだが、BPM関連に関してはBPMNとWfMCのワークフロー用語の定義関連は押えておくとしても、ツール自体の互換性とか標準規約とかは気にすべきではない気もする。標準に沿っても再利用性は期待できそうにないし。もうちょっとS2Buriを追ってみることにしよう。

*1:Webサービスという時点でもう終わってるという気もするが……

*2:JBoss jBPMBPELもサポートするらしい