SOAのサービス粒度を決める際、


「ワークフロー制御はビジネスロジックと分離すべき」


ということは定説だと考えてよさそう。



問題は、分離されたワークフローをどう実装するか?


ビジネスロジック部分はJava(JavaEE5)で開発し、


Webサービスとして公開するので良いとしても。



フロー制御は本当にBPELでよいのか?



<正当化する理由>


・ビジネスプロセス記述言語の標準である。


・ツール上のGUIで設計し、コーディングレス開発が可能。


・ESBを内包しているのでデータ変換も容易。




<課題>


・ワークフローのうち、人間系はWS-BPELの標準外。

(拡張作業中だが、予定比遅延しているらしい)


・100%コーディングレスでは要件を満たすことができず、


手作りのソースコードを拡張機能で埋め込むことも必要。


・変更時にソースコンペアができない。(目視確認)


・単体でのUTが難しい。


・パッケージに余分な機能が多く、高い。


 

BPELの話を聞くと、


BPMによるビジネスプロセスの変化に柔軟に


対応できる、ビジネスプロセスのモニタリングこそが


付加価値だという。


一方で、BPMを推進している団体のウェブサイトなどを


見ると、BPELはいかにも「中途半端」という扱いに見える。



そもそもBPELは言語としては複雑なものではないのだし。


GUIでコーディングレスで作ったフローを


Javaとして自動生成して、アプリケーションサーバ上で


動くようにできないのだろうか?



そういう標準をうまく作れれば、


いきなり取って代われるんじゃないかという気がしますが。


どうでしょうか。