ワークフローエンジンを使うとプロセスと処理が分離できるので、プロセスの変更があった際に、処理のコードを変更する手間が減るという常套句はわかるのですが、プロセスを変更するときって、古いプロセスで動いてたインスタンスたち(個々の申請とか)は、どう扱うのがセオリーなんでしょう??
JBossのjBPMでは、プロセスに履歴の概念があり、変更されたプロセスがデプロイメントされても、それまでに動いているインスタンスは古いプロセスに紐づいたまま動くようです。あと人から聞いただけですがWebLogicのワークフローのやつでは、そもそも生きているインスタンスが残っている間はプロセスの変更が出来ないっぽい、らしい。
何でそうなのかわかる気もします(プロセスのどの部分が変えられているのかわからないし、プロセスの追記だけであればいいけど元のプロセスから何かが削られると宙ぶらりんなインスタンスが出来るし)が、これってプロセスの変更に柔軟って言えるのかなーって思ってしまいます。
生きているインスタンスが残っているときにプロセスを変える場合、データの整合性を保つのは運用でカバーするんだよなきっと。これってすごく大変じゃないかな?となると現実的にはインスタンスが生きているときのプロセスの変更は無しなんでしょうね、でも、さらに現実的には生きているインスタンスが無いタイミングなんてのはなかなか無いだろうから、そうなると、ワークフローエンジンを使う限りプロセスは変更しちゃならんってことになるか?
もちろん、年度とかでプロセスの区切りが明確にわかることもあるだろうから、そういうときには一時的に古いプロセスで動いてくれてもいいんだよなきっと。