本文簡要地介紹了wfmc(工作流管理聯盟)工作流系統中的各個部分,並對參考模型中的五類介面進行了描述。
工作流管理聯盟(wfmc)提出了乙個工作流參考模型,約定了工作流系統的體系結構、應用介面及特性,主要目的是為了實現工作流技術的標準化和開放性。下面簡要介紹系統中的各個部分,並對參考模型中的五類介面進行描述。
1. 工作流管理系統中的各種資料
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主要實現對工作流的管理和監視。
工作流技術雜談
工作流 在互連網上越來越流行了,我們隨便在 google 工作流到底是什麼呢,對於從事做計算機軟體設計的人而言,它是一項技術 是我們為我們的客戶提供解決方案框架的一部分 對於從事企業資訊化管理的人而言,它是一種思想,是我們降低使用者的it運維成本的一種方法 對於從事軟體開發的人而言,它是一項技術,是...
工作流技術雜談 2008
工作流技術雜談 2008 2007 年在工作流技術雜談部落格上這麼寫到 工作流已經成為了乙個事實存在的概念和名詞,可是到了 2007 年依然找不到沒有能夠明確的定義,在互連網上,我們隨便在 google 工作流到底是什麼呢,對於從事做計算機軟體設計的人而言,它是一項技術 是我們為我們的客戶提供解決方...
工作流技術趨勢分析
工作流管理技術是最近幾年來在計算機領域中發展最為迅速的幾種新技術之一,並且已經成為當前it 領域的乙個研究熱點。同時,工作流技術作為現代企業實現過程管理與過程控制的一項關鍵技術,為企業的經營過程提供了從模型分析 建立 管理到執行的完整框架。然而,隨著工作流技術在實際應用方面的不斷深入,人們發現很多任...