Windows Workflow Foundation學習筆記(一)
最近讀了些文章,發現學習、研究Windows Workflow Foundation的人越來越多,公司指派我對wwf也進行研究,建立的blog沒有什麼可寫的,就把自己學習的WWF的筆記給大家分享一下,大家互相學習,也可以豐富一下我的blog,呵呵。
WWF作為WinFX API的支柱之一,提供給開發人員一個普通架構-在其上開發過程驅動的和以工作流程為中心的工作流程序。
一、什麼是工作流程,工作流程做什麼用呢?
一個工作流程本質是一種方法-用來歸檔包含在完成一個單元的工作中的活動。典型地,在處理過程中,工作\"流\"流過一項或更多活動。這些活動可以通過機器或人工來實現,並且有可能象在一個互連網應用程式定義頁面順序一樣得簡單,也有可能象管理必須為任何數目的人都要看到、更改並同意的檔案或產品一樣得複雜。
二、WWF是什麼呢?它的整體架構?
WWF說到底也是一個程式,只不過它是一個專門控制工作流程的程式,它為開發工作流程提供了架構、模型、以及工作流程的工作引擎(即WorkflowRuntime),讓開發人員快速的建立工作流程。
1、Activities(活動)
工作流程的組成部分,一個工作流程由若干個activity組成,每個activity都包含特定的功能,去完成一件工作。
2、Serivices(服務)
當一個工作流程執行個體運行時,可以伴隨運行許多個Serivices,這些Services都是採用可插式調用的,即這些Serivices是為了滿足不同的工作流程的運行執行個體的需求,伴隨執行個體而啟動並執行。如:在一個工作流程的運行執行個體中,我們可以同時載入與宿主程式通訊的Service,監聽和跟蹤工作流程執行個體啟動並執行Service等等。
3、WWF與宿主程式的通訊和關係。
宿主程式能夠與工作流程通訊交換資料通過通訊Service服務,同時,宿主程式也可以與WWF中一些特殊的Activiy活動通過定義一些介面,採用事件傳遞參數的形式進行通訊,交換資料。
4、WWF持久化(“鈍化”)
WWF工作流程序可以長時間的運行,而且當WWF運行時所在的電腦重新啟動後,這些執行個體仍然可以正常準確的運行,是由WWF的“鈍化”機制來實現的。在WWF內部包含了一個非常有用的Service服務,用來把這些啟動並執行資料儲存到SQlServer中。
5、WWF跟蹤
WWF中在工作流程啟動並執行同時,能夠監視工作流程的操作,而其這些操作可記錄在資料庫中或檔案裡。
6、WWF序列化
WWF的activity活動是可以被序列化的,通過序列化可將自訂的Activity的自訂樣式進行儲存。
7、WWF動態更新
WWF工作流程允許工作流程在啟動並執行狀態中,動態更新工作的狀態,或動態控制工作流程的流向,更改預期的流程。