« Google Mashup Editor | メイン | dRubyの正面 »

ワークフローエンジンのプロセスを変更するときって

ワークフローエンジンを使うとプロセスと処理が分離できるので、プロセスの変更があった際に、処理のコードを変更する手間が減るという常套句はわかるのですが、プロセスを変更するときって、古いプロセスで動いてたインスタンスたち(個々の申請とか)は、どう扱うのがセオリーなんでしょう??

JBossのjBPMでは、プロセスに履歴の概念があり、変更されたプロセスがデプロイメントされても、それまでに動いているインスタンスは古いプロセスに紐づいたまま動くようです。あと人から聞いただけですがWebLogicのワークフローのやつでは、そもそも生きているインスタンスが残っている間はプロセスの変更が出来ないっぽい、らしい。

何でそうなのかわかる気もします(プロセスのどの部分が変えられているのかわからないし、プロセスの追記だけであればいいけど元のプロセスから何かが削られると宙ぶらりんなインスタンスが出来るし)が、これってプロセスの変更に柔軟って言えるのかなーって思ってしまいます。

生きているインスタンスが残っているときにプロセスを変える場合、データの整合性を保つのは運用でカバーするんだよなきっと。これってすごく大変じゃないかな?となると現実的にはインスタンスが生きているときのプロセスの変更は無しなんでしょうね、でも、さらに現実的には生きているインスタンスが無いタイミングなんてのはなかなか無いだろうから、そうなると、ワークフローエンジンを使う限りプロセスは変更しちゃならんってことになるか?

もちろん、年度とかでプロセスの区切りが明確にわかることもあるだろうから、そういうときには一時的に古いプロセスで動いてくれてもいいんだよなきっと。

トラックバック

このエントリーのトラックバックURL:
http://www.grandnature.net/bin/mt-tb.cgi/45

コメントを投稿

About

2007年08月29日 19:04に投稿されたエントリーのページです。

ひとつ前の投稿は「Google Mashup Editor」です。

次の投稿は「dRubyの正面」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。