WF就是一個工作流引擎。先了解下WFMC對工作流引擎的要求:
● 解釋過程定義
● 控制過程實例—創建、激活、掛起、終止等
● 為過程的活動導航,可能要包含順序或者平行的操作、最後時間期限、對工作流相關數據進行解釋
● 參與者簽名和退出*
● 確定任務項目,實現用戶意圖;提供接口,支持用戶交互
● 維護工作流控制數據和工作流相關數據,在應用程序間或者用戶間傳遞工作流相關數據
● 提供調用外部程序的接口,連接所有工作流相關數據
● 提供控制、管理和審查功能
WFMC對流程調整和流程模型的要求
按照WFMC的要求,工作流引擎要能支持串行、並行、分支、匯合、循環、同步、子流程多種關系模型;同時工作流引擎要能夠實現版本控制,即業務流程的動態調整。最好能夠實現下面三種方式的業務流程調整:
1、只修改單個業務流程實例的模板
2、所有正在運行的流程實例都按新的模板運行
3、已有實例仍按調整前模板運行
WF的版本控制看後續章節
流程異常處理
發生異常,流程能回退及業務補償,暫停、取消。
超時處理
通知SMS,電子郵件...
WF需要編程實現
幾個問題:
1.wf對各種關系模型如何支持的(參考文檔) ?
2.wf版本控制實現方式?
3.wf異常處理?
4. wf超時處理?
3.3工作流客戶端
WFMC任務表
任務表—由工作流機分配給用戶的任務序列。任務表處理器是一個軟件組件,管理工作流參與者與工作流執行服務器間的交互,工作流參與者的簽到和退出、請求過程實例的開始、任務排隊等候特殊的參與者,等。在某些系統中,用戶接口可能會與任務表處理器組合到一起,構成一個簡單的功能實體。也可以是用戶接口是一個單獨的軟件組件,負責提示和處理用戶對話框,並控制本地用戶的本地接口(參考體系結構) 。
最簡單的情況是,工作流機訪問任務表,來把任務分配給用戶;任務表處理器訪問任務表,向任務表中添加任務項。有許多不同的產品來實現任務表的交互(參考模型)
在WF中沒有任務表的概念。流程調度參考第三章。
在wf中有宿主的概念,工作流引擎在宿主中注冊,定義相關的服務,例如持久化服務,監控服務。宿主和wf引擎通過remoting或者wcf方式通信。角色定義信息存儲在.rule文件中