一.?
概述
企
業在進行業務處理時,政府在進行公文審批時,都是以流程形式而進行的,在信息化的過程中,企業、政府也將這些業務處理、公文審批的過程信息化了,早期通常
是通過程序硬編碼的方式來處理這些業務、公文的流轉,隨著業務、公文的復雜的處理情況不斷出現以及需求的不斷變更,這種硬編碼的方式顯然已無法應對,這個
時候工作流管理系統應運而生,掀起了一股工作流管理系統的熱潮。
那么到底工作流管理系統能夠帶來什么好處?工作流管理系統通過對業務、公文流轉進行分析以及抽象,將不變和變化的部分進行劃分,用戶可輕松的通過可視化的工具對事項的流程、流程環節涉及的人員
(
角色
)
、流程環節的表單、流程環節的操作進行修改,從而到達了應對不斷變化的需求的目的,而工作流管理系統通常提供的流程監控、查詢統計模塊更是極大程度的為用戶優化流程提供支持,以提高企業、政府的工作效率。
本文主要描述工作流管理系統通常的結構、參考模型以及通常使用的調度算法。
二.?
構成
工作流管理系統,簡稱
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
流程引擎通過狀態的切換來完成流程的流轉。
4.2.??????
PetriNet
信息流的一個抽象的、形式的模型。指出一系統的靜態和動態性質。
petrinet
通常表示成圖。圖中有兩類用弧彼此相連的結點(稱為地點和變換)和指示其動態性能的標記(稱為記號)。
遵循
PetriNet
流程引擎通過令牌來決定流程的流轉。