一. 概述
企業(yè)在進(jìn)行業(yè)務(wù)處理時(shí),政府在進(jìn)行公文審批時(shí),都是以流程形式而進(jìn)行的,在信息化的過(guò)程中,企業(yè)、政府也將這些業(yè)務(wù)處理、公文審批的過(guò)程信息化了,早期通常是通過(guò)程序硬編碼的方式來(lái)處理這些業(yè)務(wù)、公文的流轉,隨著(zhù)業(yè)務(wù)、公文的復雜的處理情況不斷出現以及需求的不斷變更,這種硬編碼的方式顯然已無(wú)法應對,這個(gè)時(shí)候工作流管理系統應運而生,掀起了一股工作流管理系統的熱潮。
那么到底工作流管理系統能夠帶來(lái)什么好處?工作流管理系統通過(guò)對業(yè)務(wù)、公文流轉進(jìn)行分析以及抽象,將不變和變化的部分進(jìn)行劃分,用戶(hù)可輕松的通過(guò)可視化的工具對事項的流程、流程環(huán)節涉及的人員(角色)、流程環(huán)節的表單、流程環(huán)節的操作進(jìn)行修改,從而到達了應對不斷變化的需求的目的,而工作流管理系統通常提供的流程監控、查詢(xún)統計模塊更是極大程度的為用戶(hù)優(yōu)化流程提供支持,以提高企業(yè)、政府的工作效率。
本文主要描述工作流管理系統通常的結構、參考模型以及通常使用的調度算法。
二. 構成
工作流管理系統,簡(jiǎn)稱(chēng)WFMS,經(jīng)過(guò)對業(yè)務(wù)、公文流轉過(guò)程的分析以及抽象,工作流管理系統圍繞業(yè)務(wù)交互邏輯、業(yè)務(wù)處理邏輯以及參與者三個(gè)問(wèn)題進(jìn)行解決,業(yè)務(wù)交互邏輯對應的為業(yè)務(wù)的流轉過(guò)程,在工作流管理系統中對應的提出了工作流引擎、工作流設計器、流程操作來(lái)解決業(yè)務(wù)交互邏輯的問(wèn)題,業(yè)務(wù)處理邏輯對應業(yè)務(wù)流轉過(guò)程中的表單、文檔等的處理,在工作流管理系統中對應的提出了表單設計器、與表單的集成來(lái)解決業(yè)務(wù)處理邏輯的問(wèn)題,參與者對應到的為流轉過(guò)程中環(huán)節對應的人或程序,在工作流管理系統中通過(guò)與應用程序的集成來(lái)解決參與者的問(wèn)題。
工作流管理系統為方便業(yè)務(wù)交互邏輯、業(yè)務(wù)處理邏輯以及參與者的修改,多數通過(guò)提供可視化的流程設計器以及表單設計器來(lái)實(shí)現,為實(shí)現工作流管理系統的擴展性,多數提供了一系列的API。
一個(gè)完整的工作流管理系統通常由工作流引擎、工作流設計器、流程操作、工作流客戶(hù)端程序、流程監控、表單設計器、與表單的集成以及與應用程序的集成八個(gè)部分組成。
2.1. 工作流引擎
工作流引擎作為工作流管理系統的核心部分,主要提供了對于工作流定義的解析以及流程流轉的支持。工作流定義文件描述了業(yè)務(wù)的交互邏輯,工作流引擎通過(guò)解析此工作流定義文件按照業(yè)務(wù)的交互邏輯進(jìn)行業(yè)務(wù)的流轉,工作流引擎通常通過(guò)參考某種模型來(lái)進(jìn)行設計,通過(guò)調度算法來(lái)進(jìn)行流程的流轉(流程的啟動(dòng)、終止、掛起、恢復等),通過(guò)各種環(huán)節調度算法(SPLIT、AND、OR等)來(lái)實(shí)現對于環(huán)節的流轉(環(huán)節的合并、分叉、選擇、條件性的選擇等)。
2.2. 工作流設計器
工作流設計器為可視化的流程設計工具,用戶(hù)通過(guò)拖放等方式來(lái)繪制流程,并通過(guò)對于環(huán)節的配置來(lái)實(shí)現環(huán)節操作、環(huán)節表單、環(huán)節參與者的配置。
工作流設計器為用戶(hù)以及開(kāi)發(fā)商提供了快速繪制、修改流程的方式,工作流設計器的好壞決定到工作流管理系統的易用性。
2.3. 流程操作
流程操作指所支持的對于流程環(huán)節的操作,如啟動(dòng)流程、終止流程、掛起流程、直流、分流(單人辦理)、并流(多人同時(shí)辦理)、聯(lián)審等,象這些流程操作都是可直接基于引擎所提供的環(huán)節調度算法來(lái)直接支持的,而在實(shí)際的需求中,通常需要自由的對于流程進(jìn)行干涉,如取回、回退、跳轉、追加、傳閱、傳閱辦理等,而這些流程操作對于工作流引擎來(lái)說(shuō)是不合理的,因此必須單獨的去實(shí)現。
流程操作支持的好壞直接決定到一個(gè)工作流管理系統的實(shí)用性。
2.4. 工作流客戶(hù)端程序
工作流客戶(hù)端程序為工作流系統的表現形式,通常使用Web方式進(jìn)行展現,通過(guò)提供待辦列表、已辦列表、執行流程操作、查看流程歷史信息等來(lái)展現工作流系統的功能。
2.5. 流程監控
流程監控通過(guò)提供圖形化的方式來(lái)對流程執行過(guò)程進(jìn)行監控,包括流程運轉狀況,每個(gè)環(huán)節所耗費的時(shí)間等等,而通過(guò)這些可相應的進(jìn)行流程的優(yōu)化,以提高工作效率。
2.6. 表單設計器
表單設計器為可視化的表單設計工具,用戶(hù)通過(guò)拖放的方式來(lái)繪制業(yè)務(wù)所需的表單,并可相應的進(jìn)行表單數據的綁定。
表單設計器為客戶(hù)以及開(kāi)發(fā)商提供了快速修改表單的方法,表單設計器的易用與否以及功能的完善與否影響到工作流管理系統的易用性。
2.7. 與表單的集成
通常業(yè)務(wù)流轉需要表單來(lái)表達實(shí)際的業(yè)務(wù),因此需要與表單進(jìn)行集成來(lái)實(shí)現業(yè)務(wù)意義,與表單的集成通常包括表單數據的自動(dòng)獲取、存儲、修改,表單域的權限控制、流程相關(guān)數據的維護以及流程環(huán)節表單的綁定。
與表單的集成的好壞影響到工作流管理系統是否能提高開(kāi)發(fā)效率。
2.8. 與應用程序的集成
通過(guò)與應用程序的集成來(lái)完善工作流管理系統的業(yè)務(wù)意義,主要涉及到的是與權限系統以及組織機構的集成。流程環(huán)節需要相應的綁定不同的執行角色,而流程操作通常需要與權限系統、組織機構進(jìn)行關(guān)聯(lián)。
三. 參考模型
工作流系統通常通過(guò)參考一些標準的模型來(lái)進(jìn)行設計,主要的有WFMC和OMG,在這里主要介紹一下WFMC。
3.1. WFMC
WFMC是國際工作流管理聯(lián)盟,它于1993年成立,發(fā)布了一系列的工作流定義、軟件接口的草案文本,是目前世界上公認的最具權威性的工作流標準制定機構,得到了廣泛的支持和應用。
為了實(shí)現不同工作流產(chǎn)品之間的互操作,WfMC在工作流管理系統的相關(guān)術(shù)語(yǔ)、體系結構及應用編程接口等方面制定了一系列標準。工作流管理聯(lián)盟給出的工作流定義是:工作流是指整個(gè)或部分經(jīng)營(yíng)過(guò)程在計算機支持下的全自動(dòng)或半自動(dòng)化。在實(shí)際情況中可以更廣泛地把凡是由計算機軟件系統(工作流管理系統)控制其執行的過(guò)程都稱(chēng)為工作流。
一個(gè)工作流包括一組活動(dòng)及它們的相互順序關(guān)系,還包括過(guò)程及活動(dòng)的啟動(dòng)和終止條件,以及對每個(gè)活動(dòng)的描述。工作流管理系統指運行在一個(gè)或多個(gè)工作流引擎上用于定義、實(shí)現和管理工作流運行的一套軟件系統,它與工作流執行者(人、應用)交互,推進(jìn)工作流實(shí)例的執行,并監控工作流的運行狀態(tài)。
WFMC主要提出了五個(gè)接口與工作流執行服務(wù)一起共同組成了工作流系統:
l 接口一(工作流定義交換),用于在建模和定義工具與執行服務(wù)之間交換工作流定義。主要是數據交換格式和API。數據交換通過(guò)XPDL,API通過(guò)WAPI。
l 接口二(工作流客戶(hù)端應用接口),用于工作流客戶(hù)端應用訪(fǎng)問(wèn)工作流引擎和工作列表,通過(guò)WAPI完成。
l 接口三(被調用的應用接口),用于調用不同的應用系統。
l 接口四(工作流系統互操作接口),用于不同工作流系統之間的互操作。
l 接口五(系統管理和監控),用于系統管理應用訪(fǎng)問(wèn)工作流執行服務(wù)。
四. 核心調度算法
通常流程引擎采用的核心調度算法主要有FSM以及PetriNet兩種,基于調度算法來(lái)完成流程的流轉。
4.1. FSM(有限狀態(tài)機)
FSM的定義為包含一組狀態(tài)集(states)、一個(gè)起始狀態(tài)(start state)、一組輸入符號集(alphabet)、一個(gè)映射輸入符號和當前狀態(tài)到下一狀態(tài)的轉換函數(transition function)的計算模型。當輸入符號串,模型隨即進(jìn)入起始狀態(tài)。它要改變到新的狀態(tài),依賴(lài)于轉換函數。在有限狀態(tài)機中,會(huì )有有許多變量,例如,狀態(tài)機有很多與動(dòng)作(actions)轉換(Mealy機)或狀態(tài)(摩爾機)關(guān)聯(lián)的動(dòng)作,多重起始狀態(tài),基于沒(méi)有輸入符號的轉換,或者指定符號和狀態(tài)(非定有限狀態(tài)機)的多個(gè)轉換,指派給接收狀態(tài)(識別者)的一個(gè)或多個(gè)狀態(tài),等等。
遵循FSM流程引擎通過(guò)狀態(tài)的切換來(lái)完成流程的流轉。
4.2. PetriNet
信息流的一個(gè)抽象的、形式的模型。指出一系統的靜態(tài)和動(dòng)態(tài)性質(zhì)。petrinet通常表示成圖。圖中有兩類(lèi)用弧彼此相連的結點(diǎn)(稱(chēng)為地點(diǎn)和變換)和指示其動(dòng)態(tài)性能的標記(稱(chēng)為記號)。
遵循PetriNet流程引擎通過(guò)令牌來(lái)決定流程的流轉。
聯(lián)系客服