SOAのサービス粒度を決める際、
「ワークフロー制御はビジネスロジックと分離すべき」
ということは定説だと考えてよさそう。
問題は、分離されたワークフローをどう実装するか?
ビジネスロジック部分はJava(JavaEE5)で開発し、
Webサービスとして公開するので良いとしても。
フロー制御は本当にBPELでよいのか?
<正当化する理由>
・ビジネスプロセス記述言語の標準である。
・ツール上のGUIで設計し、コーディングレス開発が可能。
・ESBを内包しているのでデータ変換も容易。
<課題>
・ワークフローのうち、人間系はWS-BPELの標準外。
(拡張作業中だが、予定比遅延しているらしい)
・100%コーディングレスでは要件を満たすことができず、
手作りのソースコードを拡張機能で埋め込むことも必要。
・変更時にソースコンペアができない。(目視確認)
・単体でのUTが難しい。
・パッケージに余分な機能が多く、高い。
BPELの話を聞くと、
BPMによるビジネスプロセスの変化に柔軟に
対応できる、ビジネスプロセスのモニタリングこそが
付加価値だという。
一方で、BPMを推進している団体のウェブサイトなどを
見ると、BPELはいかにも「中途半端」という扱いに見える。
そもそもBPELは言語としては複雑なものではないのだし。
GUIでコーディングレスで作ったフローを
Javaとして自動生成して、アプリケーションサーバ上で
動くようにできないのだろうか?
そういう標準をうまく作れれば、
いきなり取って代われるんじゃないかという気がしますが。
どうでしょうか。