ドメインモデルとワークフロー

.NETのWFがもう少しでリリースされるが、どのような利用方法があるか。
ヒューマンワークフローやビジネスオートメーションの利用が考えられるが、ドメインモデルに関連して利用できないか。

まずは、ドメインモデルからWFを利用する方法としては、エンティティの状態管理をステートマシンで行うのが考えられる。状態変化のアクションをステートマシンで記述でき便利かな。


逆のWFからドメインモデルを利用するパターンは、WFがコントローラとしてドメインモデルと連携していくのが考えられる。これがたぶん王道で、P&Pでいうところのビジネスワークフローに当たる。ユースケースコントローラやセッションコントローラなどのバリエーションが考えられる。


このビジネスワークフローは処理コンテキストを保持するステートフルなコンポーネントで、自動的なまたはいろいろなイベントによって処理フローが進んでいく。ドメインモデルが導出項目や検証などの小さなビジネスロジックであるとすればビジネスワークフローは刺激/反応などの大きなビジネスロジックを責務としてもつことになる。


なお、このビジネスワークフローに似たものとして、MVC2のCやUIPなどの画面コントローラがあるが、ビジネスワークフローはプレゼン層ではなくビジネス層で提供されるもので違うものとして考える。