特集
|
![]() |
|
|
|
4. WF (Windows Workflow Foundation)活用時の考慮点
WFはビジネス・プロセスであるワークフローの実装に特化した、モデル駆動でのワークフロー開発を可能にする新たなフレームワークであり、アプリケーション開発のさまざまな局面で活用していくことが可能だ。
WFはWPFやWCFとは異なり、既存の.NETコンポーネントとのすみ分けや相互運用などは気にせずにビジネス・ロジックを構築していく中で導入することができるが、WFを活用していくに当たって、ワークフロー・モデルの選択や適用範囲について考慮すべき点がいくつかある。
●シーケンシャル・ワークフローとステートマシン・ワークフローの使い分け
WFではシーケンシャル・ワークフローとステートマシン・ワークフローの2種類のワークフロー・モデルがサポートされていることを前回簡単に紹介した。
ワークフローは大きく分類すると、システム・ワークフローとヒューマン・ワークフローの2つのタイプに分類することができる。
システム・ワークフローは、ソフトウェアで自動的にビジネス・プロセスを実行するワークフローであり、例えば、WebのECサイトで商品の注文時に見られる、クレジット・カードの与信確認や商品在庫の確認を行うようなワークフローである。
一方、ヒューマン・ワークフローは、人が介在するビジネス・プロセスを実行するワークフローであり、例えば、従業員の出張や購買申請時に申請書を上司に承認してもらうようなワークフローである。
では、それぞれのワークフローを実現するためにシーケンシャル・ワークフローとステートマシン・ワークフローのどちらのワークフロー・モデルを使うべきか。ここではこの2つのワークフロー・モデルの特徴とその使い分けについて簡単に触れておく。
まずシーケンシャル・ワークフローは、分岐/選択/繰り返しなどを用いて構造的に処理順序が決定可能なワークフローをモデル化することを目的としたものであり、人との対話プロセスを必要とせずにビジネス・プロセスを自動化するシステム・ワークフローを表すのに適している。
たいていのシステム・ワークフローはフローチャートやUMLのアクティビティ図のようなフロー・モデルで表現可能であり、このケースではシーケンシャル・ワークフローを適用できる。
![]() |
| シーケンシャル・ワークフロー |
| シーケンシャル・ワークフローは、人との対話プロセスを必要とせずにビジネス・プロセスを自動化するシステム・ワークフローを表すのに適している。 |
一方、ステートマシン・ワークフローは、実行パスが予測しづらいイベント駆動型のワークフローをモデル化することを目的としたものであり、特に実行プロセスに人(ユーザー)が介在するヒューマン・ワークフローを表すのに適している。
例えばUIの画面間の遷移をモデル化する場合に、その遷移工程をフローチャートやUMLのアクティビティ図で表現するよりも、状態の遷移を直接的にUMLの状態マシン図で表現する方がはるかに直感的で理解しやすい。それと同じように、WFでもユーザーとの対話によって処理フローが決定するヒューマン・ワークフローは、ステートマシン・ワークフローを用いることで素直に表現することができる。
![]() |
| ステートマシン・ワークフロー |
| ステートマシン・ワークフローは、実行プロセスに人(ユーザー)が介在するヒューマン・ワークフローを表すのに適している。 |
●BizTalk ServerとWFのすみ分け
BizTalk Serverのオーケストレーション機能とWFのワークフロー機能は、ビジネス・プロセス/ワークフローを実行するエンジンという点で類似しているが、BizTalk ServerとWFは異なる問題領域を解決するためのテクノロジであり、うまくすみ分けることで効果的に両テクノロジを活用していくことができる。
![]() |
| BizTalk ServerとWFの適用範囲の比較 |
BizTalk Serverは、EAI的なビジネス・プロセスの統合、BtoB向けに特化したサービス(RossetaNetやSWIFT)への対応、BAMなどの強力なアクティビティ・トラッキングのサポートならびに高いスケーラビリティといった点で、WFにはないメリットを提供している。
BizTalk Serverとの適用範囲のすみ分けを考慮したうえで、WFを活用していくケースは以下のような場合であると考えられる。
-
アプリケーション自体でワークフローをホストしたい場合
WFはさまざまな種類のアプリケーション内でホストして実行できる。 -
ヒューマン・ワークフローを実装する場合
BizTalk Serverにもヒューマン・ワークフロー・サービスと呼ばれるものが存在しているが、その使用は推奨されていない。ヒューマン・ワークフローを実装する場合はWFが最適である。 -
クライアント・アプリケーション上でワークフローを実行したい場合
BizTalk Serverはサーバ・アプリケーションであるため、クライアント・マシン上での使用は想定されていない。WFはWPFやWindowsフォームのクライアント・アプリケーションでホストして実行することができる。
なお、ヒューマン・ワークフローと複雑なシステム統合の両方を必要とするようなシナリオでは、WFとBizTalk Serverを組み合わせることで、より効果的に対処していくことが可能になる。
BizTalk Serverについての詳細はこちらのホワイトペーパーを参照頂きたい。
5. まとめ
2回にわたり.NET Framework 3.0について、それがアプリケーション開発にもたらす価値や可能性、そして活用するに当たっての考慮点などについて簡単に紹介してきた。概要的な内容に終始したため、詳細な内容に触れられなかった点についてはご了承いただきたい。本連載の読者の皆さまが、.NET Framework 3.0をいち早く体験され、今後のシステム開発の現場で活用いただければ幸いです。![]()
| INDEX | ||
| [特集] .NET Framework 3.0概説(前編) | ||
| .NET Framework 3.0がソフトウェア開発にもたらす価値とは? | ||
| 1..NET Framework 3.0とは何か? | ||
| 2.WPF(Windows Presentation Foundation) | ||
| 3.WCF(Windows Communication Foundation)、WF(Windows Workflow Foundation) | ||
| 4.対応プラットフォームと開発環境 | ||
| [特集] .NET Framework 3.0概説(後編) | ||
| .NET Framework 3.0新技術の使い分け指針 | ||
| 1.WPF活用時の考慮点 | ||
| 2.WCF活用時の考慮点 | ||
| 3.WF活用時の考慮点 | ||
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





