一. 概述
企業在進行業務處理時,政府在進行公文審批時,都是以流程形式而進行的,在資訊化的過程中,企業、政府也将這些業務處理、公文審批的過程資訊化了,早期通常是通過程式寫死的方式來處理這些業務、公文的流轉,随着業務、公文的複雜的處理情況不斷出現以及需求的不斷變更,這種寫死的方式顯然已無法應對,這個時候工作流管理系統應運而生,掀起了一股工作流管理系統的熱潮。
那麼到底工作流管理系統能夠帶來什麼好處?工作流管理系統通過對業務、公文流轉進行分析以及抽象,将不變和變化的部分進行劃分,使用者可輕松的通過可視化的工具對事項的流程、流程環節涉及的人員(角色)、流程環節的表單、流程環節的操作進行修改,進而到達了應對不斷變化的需求的目的,而工作流管理系統通常提供的流程監控、查詢統計子產品更是極大程度的為使用者優化流程提供支援,以提高企業、政府的工作效率。
本文主要描述工作流管理系統通常的結構、參考模型以及通常使用的排程算法。
二. 構成
工作流管理系統,簡稱WFMS,經過對業務、公文流轉過程的分析以及抽象,工作流管理系統圍繞業務互動邏輯、業務處理邏輯以及參與者三個問題進行解決,業務互動邏輯對應的為業務的流轉過程,在工作流管理系統中對應的提出了工作流引擎、工作流設計器、流程操作來解決業務互動邏輯的問題,業務處理邏輯對應業務流轉過程中的表單、文檔等的處理,在工作流管理系統中對應的提出了表單設計器、與表單的內建來解決業務處理邏輯的問題,參與者對應到的為流轉過程中環節對應的人或程式,在工作流管理系統中通過與應用程式的內建來解決參與者的問題。
工作流管理系統為友善業務互動邏輯、業務處理邏輯以及參與者的修改,多數通過提供可視化的流程設計器以及表單設計器來實作,為實作工作流管理系統的擴充性,多數提供了一系列的API。
一個完整的工作流管理系統通常由工作流引擎、工作流設計器、流程操作、工作流用戶端程式、流程監控、表單設計器、與表單的內建以及與應用程式的內建八個部分組成。
2.1. 工作流引擎
工作流引擎作為工作流管理系統的核心部分,主要提供了對于工作流定義的解析以及流程流轉的支援。工作流定義檔案描述了業務的互動邏輯,工作流引擎通過解析此工作流定義檔案按照業務的互動邏輯進行業務的流轉,工作流引擎通常通過參考某種模型來進行設計,通過排程算法來進行流程的流轉(流程的啟動、終止、挂起、恢複等),通過各種環節排程算法(SPLIT、AND、OR等)來實作對于環節的流轉(環節的合并、分叉、選擇、條件性的選擇等)。
2.2. 工作流設計器
工作流設計器為可視化的流程設計工具,使用者通過拖放等方式來繪制流程,并通過對于環節的配置來實作環節操作、環節表單、環節參與者的配置。
工作流設計器為使用者以及開發商提供了快速繪制、修改流程的方式,工作流設計器的好壞決定到工作流管理系統的易用性。
2.3. 流程操作
流程操作指所支援的對于流程環節的操作,如啟動流程、終止流程、挂起流程、直流、分流(單人辦理)、并流(多人同時辦理)、聯審等,象這些流程操作都是可直接基于引擎所提供的環節排程算法來直接支援的,而在實際的需求中,通常需要自由的對于流程進行幹涉,如取回、回退、跳轉、追加、傳閱、傳閱辦理等,而這些流程操作對于工作流引擎來說是不合理的,是以必須單獨的去實作。
流程操作支援的好壞直接決定到一個工作流管理系統的實用性。
2.4.工作流用戶端程式
工作流用戶端程式為工作流系統的表現形式,通常使用Web方式進行展現,通過提供待辦清單、已辦清單、執行流程操作、檢視流程曆史資訊等來展現工作流系統的功能。
2.5. 流程監控
流程監控通過提供圖形化的方式來對流程執行過程進行監控,包括流程運轉狀況,每個環節所耗費的時間等等,而通過這些可相應的進行流程的優化,以提高工作效率。
2.6. 表單設計器
表單設計器為可視化的表單設計工具,使用者通過拖放的方式來繪制業務所需的表單,并可相應的進行表單資料的綁定。
表單設計器為客戶以及開發商提供了快速修改表單的方法,表單設計器的易用與否以及功能的完善與否影響到工作流管理系統的易用性。
2.7. 與表單的內建
通常業務流轉需要表單來表達實際的業務,是以需要與表單進行內建來實作業務意義,與表單的內建通常包括表單資料的自動擷取、存儲、修改,表單域的權限控制、流程相關資料的維護以及流程環節表單的綁定。
與表單的內建的好壞影響到工作流管理系統是否能提高開發效率。
2.8. 與應用程式的內建
通過與應用程式的內建來完善工作流管理系統的業務意義,主要涉及到的是與權限系統以及組織機構的內建。流程環節需要相應的綁定不同的執行角色,而流程操作通常需要與權限系統、組織機構進行關聯。
三. 參考模型
工作流系統通常通過參考一些标準的模型來進行設計,主要的有WFMC和OMG,在這裡主要介紹一下WFMC。
3.1.WFMC
WFMC是國際工作流管理聯盟,它于1993年成立,釋出了一系列的工作流定義、軟體接口的草案文本,是目前世界上公認的最具權威性的工作流标準制定機構,得到了廣泛的支援和應用。
2002年10月25日,WFMC釋出了基于XML的流程定義語言1.0版的最終文本(Workflow Process Definition Interface----XML Process Definition Language 文檔編号:WFMC-TC-1025),以及此前釋出的工作流應用軟體接口規範WFMC-TC-1009, WFMC-TC-1013等系列檔案,構成了工作流定義及系統的設計标準。
為了實作不同工作流産品之間的互操作,WfMC在工作流管理系統的相關術語、體系結構及應用程式設計接口等方面制定了一系列标準。工作流管理聯盟給出的工作流定義是:工作流是指整個或部分經營過程在計算機支援下的全自動或半自動化。在實際情況中可以更廣泛地把凡是由計算機軟體系統(工作流管理系統)控制其執行的過程都稱為工作流。
一個工作流包括一組活動及它們的互相順序關系,還包括過程及活動的啟動和終止條件,以及對每個活動的描述。工作流管理系統指運作在一個或多個工作流引擎上用于定義、實作和管理工作流運作的一套軟體系統,它與工作流執行者(人、應用)互動,推進工作流執行個體的執行,并監控工作流的運作狀态。
WFMC主要提出了五個接口與工作流執行服務一起共同組成了工作流系統:
l 接口一(工作流定義交換),用于在模組化和定義工具與執行服務之間交換工作流定義。主要是資料交換格式和API。資料交換通過XPDL,API通過WAPI。
l 接口二(工作流用戶端應用接口),用于工作流用戶端應用通路工作流引擎和工作清單,通過WAPI完成。
l 接口三(被調用的應用接口),用于調用不同的應用系統。
l 接口四(工作流系統互操作接口),用于不同工作流系統之間的互操作。
l 接口五(系統管理和監控),用于系統管理應用通路工作流執行服務。
四. 核心排程算法
通常流程引擎采用的核心排程算法主要有FSM以及PetriNet兩種,基于排程算法來完成流程的流轉。
4.1.FSM(有限狀态機)
FSM的定義為包含一組狀态集(states)、一個起始狀态(start state)、一組輸入符号集(alphabet)、一個映射輸入符号和目前狀态到下一狀态的轉換函數(transition function)的計算模型。當輸入符号串,模型随即進入起始狀态。它要改變到新的狀态,依賴于轉換函數。在有限狀态機中,會有有許多變量,例如,狀态機有很多與動作(actions)轉換(Mealy機)或狀态(摩爾機)關聯的動作,多重起始狀态,基于沒有輸入符号的轉換,或者指定符号和狀态(非定有限狀态機)的多個轉換,指派給接收狀态(識别者)的一個或多個狀态,等等。
遵循FSM流程引擎通過狀态的切換來完成流程的流轉。