1. 程式人生 > >力軟敏捷開發框架工作流實現技術

力軟敏捷開發框架工作流實現技術

工作流、框架、代碼生成器、二次開發


工作流管理聯盟(WFMC)提出了一個工作流參考模型,約定了工作流系統的體系結構、應用接口及特性,主要目的是為了實現工作流技術的標準化和開放性。下面簡要介紹系統中的各個部分,並對參考模型中的五類接口進行描述。

1. 工作流管理系統中的各種數據

工作流控制數據(Workflow Control Data)工作流執行服務/工作流機通過內部的工作流控制數據來辨別單個過程或活動實例的狀態。這些數據由工作流執行服務/工作流機控制。用戶、應用程序或其它的工作流機/工作流執行服務不能對其進行直接讀寫操作,它們可以通過向工作流執行服務/工作流機發送消息來獲得工作流控制數據的內容。

工作流相關數據(Workflow Relevant Data)工作流管理系統通過工作流相關數據來確定過程實例狀態轉換的條件,並選擇下一個執行的活動。這些數據可以被工作流應用程序訪問並修改。因此,工作流管理軟件應該在活動實例之間傳遞工作流相關數據。

工作流應用數據(Workflow Application Data)這種數據指那些由應用程序操作的數據。它們是針對應用程序的,工作流管理系統無法對它們進行訪問。

2. 工作流模型和工作流建模工具

工作流模型過程模型包含了工作流執行服務運行該過程的所有必需的信息,包括它啟動和結束的條件、組成的活動、活動間導航的準則、參與其中的用戶、需要激活的應用程序的指針、需要用到的工作流相關數據的定義等等。

在工作流的建模期間需要參考組織/角色模型來獲得有關組織結構和組織內角色的信息。過程定義指定完成某項活動的組織實體或角色,而不是定義具體人員。工作流執行服務負責在工作流運行環境內將組織實體或角色映射為特定的人員。

工作流建模工具它主要用於分析、建模、描述並記錄經營過程。它應輸出一個能被工作流機動態解釋的過程定義。不同的工作流產品其建模工具輸出的格式是不同的,參考模型中的接口1不僅使工作流的定義階段和運行階段分離,使用戶可以分別選擇建模工具和執行產品,還可以使不同的工作流產品合作為一個過程定義的執行提供運行服務環境。

工作流管理聯盟針對工作流建模做了兩方面的工作: (1) 建立了一個元模型(process meta model):它用於描述一個過程模型內各個對象、它們之間的關系及它們的屬性,有利於多個工作流產品之間交換模型信息。 (2) 定義了一套可以在工作流管理系統之間及在管理系統與建模工具之間交互過程模型定義的API接口。 圖1為工作流管理聯盟定義的過程元模型。

3. 工作流執行服務

工作流執行服務由一個或多個工作流機組成(在分布環境下,由多個工作流機組成),提供了過程實例執行的運行環境,主要完成以下功能: (1) 解釋流程定義,生成過程實例,並管理其實施過程。 (2) 依據過程定義和工作流相關數據為過程實例的導航提供進入和退出的條件、並行或串行執行活動的信息、用戶信息或所需激活的應用程序的信息等等。 (3) 與外部資源交互完成各項活動。 (4) 維護工作流控制數據和工作流相關數據(這些數據包括不同過程和活動實例的內部狀態信息、工作流機用於協調和恢復的各種檢查數據和恢復/重起信息等),並向用戶傳遞必要的相關數據。


在分布式的工作流執行服務中,多個工作流機協調工作,推進工作流機實例的執行。每一個工作流機控制過程執行的一部分,並使用相關的資源和應用工具。這種執行服務需要共同的命名和管理範圍,便於過程定義和用戶/應用名稱一致。分布式的工作流系統采用特定的協議來同步各工作流機,並傳遞相應的控制信息。在一個同構的工作流執行服務中這些協議是因廠家而異的。當選用不同的工作流系統產品時,各工作流機之間需要一個標準來進行轉換。它應包括以下幾個方面的內容: (1) 一個共同的命名機制; (2) 支持共同的過程定義對象和屬性; (3) 能夠傳遞相應的工作流相關數據,並控制過程實例的生成; (4) 能夠在異構的工作流機間傳遞過程、子過程及活動; (5) 支持共同的管理職能。

4. 工作流機

工作流機是一個為工作流實例的執行提供運行環境的軟件服務或“引擎”。它主要提供以下功能: (1) 對過程定義進行解釋; (2) 控制過程實例的生成、激活、掛起、終止等; (3) 控制活動實例間的轉換,包括串行或並行操作、工作流相關數據的解釋等; (4) 支持用戶操作的界面; (5) 維護工作流控制數據和工作流相關數據,在應用或用戶間傳遞工作流相關數據; (6) 提供一用於激活外部應用程序和訪問工作流相關數據的界面; (7) 提供控制、管理和監督的功能。

工作流機的一個重要功能就是控制實例和活動實例的狀態轉換。工作流管理聯盟的參考模型中為過程實例的運行狀態和活動實例的狀態進行了定義,並給出了狀態轉換的條件。圖2和圖3分別描述了過程實例和活動實例各個狀態之間的轉換。 過程實例包括以下幾種運行狀態: 初始(inactived):一個過程實例已經生成,但該過程實例並沒有滿足開始執行的條件; 準備運行(running):該過程實例已經開始執行,但是還不滿足開始執行第一個活動並生成一個任務項的條件;


運行中(active):一個或多個活動已經開始執行(也就是已經生成一個工作項並分配給了合適的活動實例) 掛起(suspended):該過程實例正在運行,但處於靜止狀態,除非有一個“重啟”的命令使該過程實例回到準備運行狀態,否則所有的活動都不會執行; 結束(completed):該過程實例滿足結束的條件,工作流管理系統將執行過程實例結束後的操作(如統計),並刪除該過程實例; 終止(terminated):該過程實例在正常結束前被迫終止,工作流管理系統將執行補救措施,並刪除該過程實例。


活動的運行狀態包括: 未開始(inactive):該活動實例已經生成但還沒有被激活(例如活動開始條件沒有滿足); 運行中(active):該活動實例已經被激活了; 掛起(suspended):該活動實例處於靜止狀態; 結束(completed):該活動已經執行完畢,工作流管理系統將進行活動結束後的導航工作,激活下一個符合啟動條件的活動實例。

5. 客戶端應用

這種方式適合於需要人員參與的活動。這種情況下,工作流機通過任務項列表管理器來進行控制。工作流管理聯盟提供了四種可能的通過任務項列表來實現工作流客戶工作流機之間的通訊方式,如圖4所示。其中一種支持集中式的結構,另外三種適合分布情況下的工作流系統。 (1) 基於主機方式的模型(Hust Based Model):這種方式適合於集中的情況。此時,客戶端應用程序、任務項列表管理器、任務項列表和工作流機都列在中央的主服務器上,用戶通過模擬一個終端用戶來獲得任務項列表; (2) 共享的文件庫模型(Shared Filestore Model):在這種情形下,客戶應用程序和任務列表管理器位於用戶的工作站上,而工作流位於中央服務器上。任務項列表位於一個客戶應用和工作流機都能夠達到的共享的文件系統中。 (3) 電子郵件模型(Electronic Mail Model):這裏,客戶應用和任務項列表管理器位於用戶的工作站上,工作流機位於中央主機上。所有的通訊都使用電子郵件。此時,任務項列表一般位於客戶端; (4) 過程調用或信息傳遞模型(Procedure Callor Message Passing Model):這時,客戶應用程序和任務項列表管理器位於用戶的工作站上,任務項列表和工作流機位於服務器端。用戶通過RPC或者其它的消息傳遞機制來獲得任務項列表。


6. 由工作流機直接調用的應用程序

這種情況適合於不需要人員參與的活動。在簡單的情況下,工作流機通過過程模型中定義的活動的信息、應用程序的類型和需要的數據來激活應用程序。被激活的應用程序可以和工作流機位於一臺計算機上,可以位於相同的運行平臺上,也可以位於網絡可以到達的不同平臺上。模型定義提供了有關應用程序的類型、地址等充分信息,便於工作流機激活該程序並執行相應的動作。

7. 工作流執行服務之間的互操作性

工作流聯盟的目標之一就是規定一個標準使得不同廠商提供的工作流產品能夠協調工作,整個系統能夠無縫地在各個產品之間傳遞任務項。工作流管理聯盟在互操作性上的工作主要集中在提供了一系列互操作的情景,從簡單的任務傳遞到傳輸整個工作流過程模型和工作流參考數據。盡管有可能考慮那些很復雜的情形(如不同廠商提供的工作流機共同協作實現工作流執行服務,這在目前還不可能實現,因為它要求所有的工作流機都能夠解釋過程模型,共享一套工作流控制數據,並在異構的工作流機環境下共享過程實例狀態。)但就目前來說,比較切合實際的目標是在不同的工作流執行服務間傳遞過程的部分內容,支持其實例的運行。

8. 系統管理和監控工具

該工具能夠對工作流在整個組織內的流動狀況進行監控,並提供一系列的管理功能,如有關安全性、對過程的控制和授權操作等方面的管理。主要功能包括以下幾個方面: (1) 建立、設置和優化組成工作流管理系統的各個軟件; (2) 對過程模型進行實例化; (3) 將過程模型中的角色實例化; (4) 將運行中的過程實例、活動實例和數據分發到各個工作流機中; (5) 啟動、掛起、恢復和終止過程實例; (6) 管理正在執行的過程實例並對正常或異常退出的過程的歷史數據進行統計和分析。

9. 工作流參考模型中的五類接口

工作流聯盟給出了五類接口: (1) 接口1:工作流服務和工作流建模工具; (2) 接口2:工作流服務和客戶應用之間的接口,這是最主要的接口規範,它約定所有客戶方應用和工作流服務之間的功能訪問方式; (3) 接口3:工作流機和直接調用的應用程序之間的接口; (4) 接口4:工作流管理系統之間的互操作接口; (5) 接口5:工作流服務和工作流管理工具之間的接口。 其中,接口1為在不同物理或電子介質之間傳遞過程定義的信息提供了交互的形式和API調用;接口2定義了通信建立、工作流定義操作等功能;接口3激活應用程序的API函數應覆蓋的幾個方面的功能;接口4完成工作流執行服務之間需要提供大量的WAPI來實現互操作,無論是在兩個工作流執行服務之間的直接調用還是通過網關函數;接口5主要實現對工作流的管理和監視。


官網:www.learun.cn

免費演示地址:http://www.learun.cn/Home/VerificationForm

力軟敏捷開發框架工作流實現技術