3.2系統的實現
系統中流程定義、工作流引擎、流程監控和任務管理等是其重要的功能模塊,現分別闡述他們的實現機制。
3.2.1流程定義
流程定義是整個系統的基礎,提供了一個創建和修改工作流模板的圖形化建模工具。其主要實現:定義業務流程;創建業務流程的任務及其執行順序;指定執行任務的人員和表單等。將定義好的流程數據存儲在數據庫里,為工作流引擎使用。流程定義也為系統的使用者提供了再次開發使用的基礎,使用者可以根據實際的需要利用此工具定制或修改各種業務流程,簡化了定義步驟,節省了開發時間。
通過圖形化的方式來實現業務流程的定義,使得整個定義過程變得直觀、便捷。在定義過程中,使用者可以利用流程模板庫提供的多種圖形對象,通過簡單的鼠標拖拽來創建業務流程。業務流程的每個環節對應一個圖形對象,通過簡單的鼠標操作就能設置對象的屬性如名稱、執行者、優先權、狀態、通知方式等,同時將其控制數據和業務數據保存到數據庫中,建立起流程環節與數據表之間的對應關系,方便系統調用。
3.2.2工作流引擎
工作流引擎是整個系統的核心部分,對系統的其它部分起到協調和控制作用。它解釋流程的定義,完成流程的實例化,確定任務及任務的傳遞順序,推動流程實例的執行,維護流程的控制數據和業務數據,維護用戶的任務列表,調用相應的應用程序接口來實現特定的功能。
工作流引擎是系統的重要組成部分,它的好壞直接關系到系統的擴展性、靈活性和穩定性。引擎采用Web Service技術來實現,為系統提供了便捷的引用接口,也為系統提供了較好的擴展性和靈活性。在引擎的數據處理中,采用關系數據模型來提高系統的健壯性和應用性,利用關系數據庫提供的觸發器、存儲過程等機制來實現處理過程中的各種業務邏輯,還利用關系數據庫的并行原理來實現其中的業務并行控制[6]。在引擎的編程中采用了面向對象技術,利用它的封裝、繼承等機制,把流程模板、流程實例化、工單模板、數據訪問等功能模塊包裝為C#類,實現模塊化的處理,其定義如下:
1) public class WFTempAdmin{}//流程模板類
2) public class WFInstAdmin{}//流程實例類
3) public class SheetAdmin{}//工單模板類
4) public class DAAdmin{}//數據訪問類
3.2.3流程監控
流程監控模塊負責對流程實例及其包含的任務在整個系統中的流動狀況進行跟蹤、監控,提供對業務流程的掛起、 恢復、終止、刪除、改派、查詢等功能。用戶可以利用此模塊提供的功能來查詢流程實例的運行情況;可以及時發現流程實例的異常情況或停滯環節,并采取相應的措施來處理流程實例,使其盡快恢復正常運行;可以根據需要改變流程的執行路徑或者終止流程的執行。借助此功能模塊用戶可以深入到流程實例的內部來查看每個任務的詳細執行情況,如流程實例名、任務的起始時間、結束時間、執行者及任務的狀態等。
3.2.4任務管理
任務管理模塊實現對用戶的任務進行處理。工作流引擎根據各種任務調度策略分配任務到用戶的任務管理列表。在一些特殊情況下,有部分任務不必添加到任務管理列表,也不需要有執行者,而是由工作流引擎自動來完成。用戶通過任務管理模塊提供的功能,可以接收任務,檢出任務并調用相應工單模板來執行任務;可以撤銷或刪除有異常的任務,使其回到上一任務的執行者;還可以查詢工單信息和已處理過的任務
信息。當任務執行完畢,任務的狀態隨之改變(任務狀態分初始化、運行中、完成三種),任務管理模塊向工作流引擎報告任務的執行情況,將執行的結果保存到后臺數據庫,并啟動相應的任務。圖2是任務管理界面,在“新任務”頁面接收任務,在“待辦任務”中進行任務的執行,在“已辦任務”中可以進行查詢處理。