Wf對工作流模式的支持
1.基於圖的模式
2.導航器
3.狀態機
可以構建基於wf的工作流管理系統嗎?
很多人都認為wf不是工作流管理系統,只是一個工作流引擎而已。從微軟的產品線來看,可以這樣認為。比如:wf提供工作流引擎,SharePonit和K2等工作流管理系統的工作流引擎就是wf。那麼如果我們的實際項目中需要使用工作流是否可以使用wf呢。
這是可以的。WF只是實現了非常基礎的部分,可以說只是提供了工作流的編程框架。和目前已有的工作流開發平台相比,微軟已經提供的Acitivity功能還是非常薄弱的。現在社區和微軟都沒有非常好的工作流實例。Start Kit是比較完善的一個例子,建議大家看一下。但是只要我們熟悉了WF的框架,通過自己實現一些基礎功能,絕對是可以做的工作流開發平台高度的。這就是為什麼要學習《WF框架編程》的意義。
按照國際工作流管理聯盟(Workflow Management Coalition,WfMC) 的定義,需要我們自己實現接口1到接口5。微軟的wf也提供了大量的服務,我們可以使用這些服務或按照接口約定,自己實現服務,實現完整的工作管理系統。要實現這個目標,需要先了解WFMC的工作流標准體系結構並熟悉上文的工作流參考模型。
2 WFMC的標准體系結構和工作流參考模型2.1 WFMC標准體系結構
為了實現工作流系統的特性,達到工作流產品之間的互操作性。國際工作流管理聯盟(Workflow Management Coalition,WfMC)提出了工作流參考模型的體系結構圖。
工作流系統標准體系結構模型
這為工作流的實現提供了公共的基礎,組成工作流管理系統的每個功能部件可以在不同的軟硬件平台上采用不同的方法實現,接口也可以在不同的軟硬件平台上采用不同的設計技術和編程語言進行編程,不同的工作流產品會按照互操作和協作的不同要求在一定層次上開放其接口。
從圖中可以看出,工作流管理系統主要由三類組成:
1) 軟件組件:完成工作流管理系統不同組成部分功能的實現
2) 系統控制數據:工作流管理系統中的一個或多個軟件組件使用的數據;
3) 應用與應用數據:對於工作流管理系統來說,它們不是工作流管理系統的組成部分,而是屬於外部系統和數據,它們被工作流系統調用來完成整個和部分工作流管理的功能。
2.2工作流管理系統應該提供的功能:
按照WFMC的定義,工作流管理系統應該提供3 種功能:
1) 建立階段的功能:主要考慮工作流過程和相關活動的定義和建模功能。
2) 運行階段的控制功能:在一定的運行環境下,執行工作流過程,並完成每個過程中活動的排序和調度功能。
3) 運行階段的人機交互功能:實現各種活動執行過程中用戶與IT 應用工具之間的交互