天天看點

WWF 學習筆記(1)

WWF概念:Windows Workflow Foundation 是程式設計模型、引擎和工具,用于在 Windows 上快速生成啟用工作流的應用程式。 它包括一個命名空間、一個程序内工作流引擎和多個 Visual Studio 2005 設計器。Windows Workflow Foundation 是一個架構,讓使用者可以在其為作業系統 (MS WINDOWS 系列)編寫的應用程式中建立系統或人工工作流。 Windows Workflow Foundation 可用于解決簡單方案,如根據使用者輸入顯示 UI 控件,也可以用于解決大型企業遇到的複雜方案,如訂單處理和庫存控制。

WWF可以處理的方案(工作流):

1.      在業務線應用程式中啟用工作流。

2.        使用者界面頁流。

3.        以文檔為中心的工作流。

4.        人工工作流。

5.        面向伺服器應用程式的符合工作流。

6.        業務規則驅動的工作流。

7.        系統管理的工作流。

WWF的特點(優勢)簡述:Windows Workflow Foundation 提供了與其他 .NET Framework 3.0 技術(如 Windows Communication Foundation 和 Windows Presentation Foundation)一緻和熟悉的開發體驗(個人了解WWF與WCP、WPF可以配合開發)。 WWF  API 完全支援 Visual Basic .NET 和 C#、專用工作流編譯器、在工作流中調試、圖形工作流設計器,并支援完全用代碼或标記開發工作流。 Windows Workflow Foundation 還提供了可擴充模型和設計器,用于生成為最終使用者或跨多個項目重用封裝工作流功能的自定義活動。

工作流的概述

(MS定義):工作流是一組存儲為模型的名為活動的基本單元,活動用于描述實際程序。 工作流提供了一種方法,用于描述多項短期運作或長期運作的工作之間的執行順序和依賴關系。 此工作從頭到尾地貫穿模型,并且活動可以人工執行或由系統功能執行。

 (WFMC定義):一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則、文檔、資訊或任務能夠在不同的執行者之間進行傳遞與執行

工作流的概述(個人總結):工作流就是工作從開始到完成的一個過程周期。

工作流的組成(WFMC定義):實體(Entity)、參與者(Participant)、流程定義(FlowDefinition)、工作流引擎(Engine)。PS:好像MS把實體+參與者定義統稱為活動?我個人了解MS對于工作流組成的定義;若幹個活動根據流程定義走完時,就完成了工作流。并且吧活動比喻成XML 中DOM 樹中的子節點,可以動态添加。

工作流引擎:是驅動實體按流程定義從一個參與者流向下一個參與者的機制(使一個活動到下一個活動的驅動?)。

工作流運作時引擎:每個正在運作的工作流執行個體都是由程序中運作時引擎建立和維護的。這個引擎通常被叫做“工作流運作時引擎”, 在一個應用程式域中可以有多個工作流運作時引擎,并且運作時引擎的每個執行個體均可支援多個并發運作的工作流執行個體。也就是說一個引擎可以建立(生成),維護 多個工作流的執行個體。

活動的類型以及組合:活動的類型分為運作時活動與設計時活動。活動分為單一活動以及複合活動,複合活動的意思是指包含一組活動。

服務:WWF提供可滿足多種應用程式需要的運作時服務的預設實作。例如在 SQL 資料庫中存儲工作流執行個體的執行詳細資訊的持久性服務。而且通過基類的服務還可以建立自定義的服務,用來擴充WWF平台。

服務的分類:運作時服務,計劃服務、事務服務和跟蹤服務。/

補償:補償是由于工作流中其他位置發生異常而做出的一種行為。個人感覺補償類似于(try{}catch{}中)的catch,産生異常之後扔給catch解決。

本地通信:宿主程序可以通過經由自定義本地通信服務交換資料來與工作流進行通信。 這些本地通信服務實作了一些使用者定義的接口,這些接口定義了将在工作流和宿主程序之間進行傳遞的方法和事件。封裝的關于WWF中所有的關于通信的方法和事件??

關聯: 通過使用在宿主程序和工作流之間作為事件參數傳遞的唯一 ID,宿主程序還可以在特定的工作流執行個體中與特定(HandleExternalEventActivity:定義用于處理由本地服務引發的事件的工作流通信活動)的活動進行互動。給我的感覺類似于一個臨時的主外鍵。

繼續閱讀