網頁

搜尋此網誌

2010年3月19日 星期五

Windows Workflow Foundation工作流程基礎

最近我開始研究Windows Workflow Foundation,簡稱WF,這個基礎(Foundation)主要是用來處理工作流程(Workflow),注意到WF是在.NET Framework 3.0之後才有的功能。

什麼是工作流程(Workflow)呢?工作流程(Workflow)是指一個項目(Item)從一個人移動到另一個人的過程(process)。在商業世界當中,這樣的過程則是業務流程(Business Process),業務流程會定義完成一件工作(Work)所需要的多個階段(Step),換句話說,一個階段完成,接續下一個階段,直到所有的階段都完成,一件工作將結束。

WF的工作流程可以分成兩類:State-Based Workflow與Sequential Workflow。State-Based Workflow(State Machine Workflow)的工作流程必須是每個階段的條件(稱為External Entity)都滿足才會繼續下一個階段。而Sequential Workflow則是一連串階段的工作,通常沒有分支(branching)和迴圈(looping),注意是可以有分支與迴圈喔!Sequential Workflow開始之後,每個階段依序執行到工作結束為止,除非發生例外錯誤才會終止,不會像State Machine Workflow會中途停止等待。

我們使用Windows Workflow Foundation最大的理由是模型(Model),多數的商業流程都會使用案例圖(case diagram)、UML diagram或是最簡單的流程圖(flow chart)等,用來表示商業流程,對於Windows Workflow Foundation而言WF模型就等於同於工作流程。

Windows Workflow Foundation是WinFX編程模型(programming model)中的一部分,WinFX是在Windows Vista作業系統後才使用的模型(即.NET Framework 3.0),這個模型當中包含工作流程引擎(workflow engine)、API與程式庫(library),我們可以使用System.Workflow...的三個名稱空間呼叫使用WF的API。
WF的運作由三個元件構成。第一個是活動(activity),Workflow是由一系列的活動組合而成,而活動是最小的單位,工作流程中可以包含一個或是多個活動,WF中已經包含現成可用(out-of-the-box)的活動,我們可以直接利用以便加速開發。

第二個元件是工作流程引擎(workflow engine),引擎執行Workflow的動作,提供排程(Scheduling)服務、狀態管理服務、規則(Rule)服務。

最後一個元件是主機處理序(Host Porcess),WF本身不提供直接執行,必須由其他應用程式的處理序呼叫,像是Windows應用程式或是ASP.NET程式呼叫。因此,通常將WF設計成程式庫(Library)的方式!

Windows Workflow Foundation內建的活動有下列幾個:
  1. Code Activity
  2. Compensate Activity
  3. Conditional Activity Group
  4. Delay Activity
  5. EventDriven Activity
  6. Fault Handler Activity
  7. IfElse Activity
  8. Invoke Web Service Activity
  9. Listen Activity
  10. Parallel Activity
  11. Policy Activity
  12. Replicator Activity
  13. Sequence Activity
  14. SetState Activity
  15. State Activity
  16. StateInitialization Activity
  17. Suspend Activity
  18. Terminate Activity
  19. Throw Activity
  20. Transaction Scope Activity
  21. While Activity
這些現成可用(out-of-the-box)的活動應該已經滿足大多數的需求!詳細請參考MSDN:http://msdn.microsoft.com/zh-tw/library/bb628449%28v=VS.90%29.aspx

沒有留言:

張貼留言

熱門文章