.NET Framework 3.0 (旧称 : WinFX) では、ワークフローのための基盤技術である Windows Workflow Foundation (WF) が実装されています。ここでは、この WF が提供される目的と、WF によってアプリケーション開発がどう変わるのかについて見ていきます。
WF は.NET Framework ベースでワークフローソリューションを開発するための、フレームワーク技術です。また、人間系ワークフローとシステム系ワークフローのいずれへも適応可能な、汎用的なワークフローフレームワークです。代表的なワークフロー利用のシナリオとしては、以下のものが考えられます。
- ・文書管理アプリケーションでの文書のレビュー。文書の作成者もしくは所有者、レビューア、最終承認者など複数のユーザ間を文書が行き来する時、ステータスを管理し、アドホック (ad-hoc) にレビューアを追加することがあります。文書のライフサイクル管理のシナリオ。
- ・アプリケーション内でのワークフロー。LOB 系のアプリケーションにおいて、ビジネスプロセスの記述のためワークフローが独自実装されます。エンドユーザ毎や業務ルールや法規によって柔軟に変更可能であることが望ましいといえます。CRM や ERP 等の LOB アプリケーション内での独自実装のワークフローのシナリオ。
- ・ページフロー。リンクのクリックによるナビゲーションや、入力情報、出力情報によってページ遷移する際、ユーザインターフェイス層では状態 (ステート) に対応した遷移先の制御が必要となります。ユーザインターフェイスのナビゲーションコントロールのシナリオ。
- ・ビジネスプロセス管理 (BPM)。ビジネスプロセスのモデリングやアクティビティ監視、ビジネスルールの表現と人間およびシステム駆動型のワークフローが要件として挙げられます。ビジネスフローの記述と実装のシナリオ。
- ・アプリケーション統合。複数システムの連携では、判断、分岐などのタスクの順序の制御が中心となるプロセス駆動で実行されます。トランザクション完了まで複数のシステムとデータのやり取りが発生するため、凝集性が高い構造が求められつつも、環境変化への影響を迅速にシステム全体の変更として適応する必要があります。統合アーキテクチャへのアプローチのシナリオ。
これらのワークフローの適応シナリオでは、デザインの柔軟性、可視性、実行状況の管理・監視といった共通性が基盤技術に対して求められているといえます。もちろん、ワークフローの基盤技術を利用せず従来どおりの実装で前述のシナリオを実現することも可能です。しかし、あらゆる面で複雑性が増している昨今のビジネスの状況において、保守性や再利用性、またビジネス環境の変化に迅速に追随して適応を考慮すると、ワークフローエンジンを活用し実現することが現実解といえるでしょう。
WF は EXE ファイル、Windows サービス、ASP.NET の Web アプリケーションなど様々なアプリケーションにワークフローのエンジンを組み込むことができます。WF は、ランタイムサービス、ランタイム、アクティビティ実行のためのフレームワーク、アクティビティと 4 つの層から構成され、それぞれの層がカスタマイズ可能であり、フレキシブルなアーキテクチャといえます。
また、システムの要件によっては、WF が標準ではサポートしていない独自の手続きや処理に対応する必要があるかもしれません。そのような場合でも、アクティビティやサービスのカスタマイズ、すなわち WF を拡張して対応していくことが可能になっています。
最後に、WF がアプリケーション開発にもたらすメリットを以下にまとめます。
- ・.NET Framework ベースのアプリケーションにワークフロー機能の組み込みの障壁を取り除いた。
- ・ビジュアルデザイナーによるワークフローのビジュアル開発。可視性が高まり、開発メンバーだけではなく関連する人に対しても情報共有が容易。
- ・拡張性の高いアーキテクチャであるため、標準機能ではサポートされていない独自の手続きや処理に対して、カスタマイズして対応することが可能。
WF は機能的な側面で見ると、ワークフローエンジンや実行時の各種サービス、再利用可能なアクティビティライブラリ等、今回新たに提供された機能のため、大きな進化と言えるでしょう。また、アプリケーションの開発・保守の側面で見ても、様々な恩恵をもたらしてくれる開発基盤として、Windows プラットフォームが一歩先を行くものへと押し上げています。そのため、是非今からこの WF を利用したワークフロー対応アプリケーションの開発に取り組んでいただければ幸いです。