工作流管理系統概述(by Vega)

這是我早上在blogjava上面看到的一篇很好的關於workflow介紹的文章。我覺得工作流會成爲我們的設計模型裏面一個很不錯的亮點。現在企業裏面越來越強調工作流這個概念,很多protal,包括微軟的sharepoint,很突出workflow跟用戶權限之間的交互。希望這篇文章對大家有幫助。

一.  概述

企業在進行業務處理時,政府在進行公文審批時,都是以流程形式而進行的,在信息化的過程中,企業、政府也將這些業務處理、公文審批的過程信息化了,早期通常是通過程序硬編碼的方式來處理這些業務、公文的流轉,隨着業務、公文的複雜的處理情況不斷出現以及需求的不斷變更,這種硬編碼的方式顯然已無法應對,這個時候工作流管理系統應運而生,掀起了一股工作流管理系統的熱潮。

那麼到底工作流管理系統能夠帶來什麼好處?工作流管理系統通過對業務、公文流轉進行分析以及抽象,將不變和變化的部分進行劃分,用戶可輕鬆的通過可視化的工具對事項的流程、流程環節涉及的人員(角色)、流程環節的表單、流程環節的操作進行修改,從而到達了應對不斷變化的需求的目的,而工作流管理系統通常提供的流程監控、查詢統計模塊更是極大程度的爲用戶優化流程提供支持,以提高企業、政府的工作效率。

本文主要描述工作流管理系統通常的結構、參考模型以及通常使用的調度算法。

二.  構成

工作流管理系統,簡稱WFMS,經過對業務、公文流轉過程的分析以及抽象,工作流管理系統圍繞業務交互邏輯、業務處理邏輯以及參與者三個問題進行解決,業務交互邏輯對應的爲業務的流轉過程,在工作流管理系統中對應的提出了工作流引擎、工作流設計器、流程操作來解決業務交互邏輯的問題,業務處理邏輯對應業務流轉過程中的表單、文檔等的處理,在工作流管理系統中對應的提出了表單設計器、與表單的集成來解決業務處理邏輯的問題,參與者對應到的爲流轉過程中環節對應的人或程序,在工作流管理系統中通過與應用程序的集成來解決參與者的問題。

工作流管理系統爲方便業務交互邏輯、業務處理邏輯以及參與者的修改,多數通過提供可視化的流程設計器以及表單設計器來實現,爲實現工作流管理系統的擴展性,多數提供了一系列的API

一個完整的工作流管理系統通常由工作流引擎、工作流設計器、流程操作、工作流客戶端程序、流程監控、表單設計器、與表單的集成以及與應用程序的集成八個部分組成。

2.1.       工作流引擎

工作流引擎作爲工作流管理系統的核心部分,主要提供了對於工作流定義的解析以及流程流轉的支持。工作流定義文件描述了業務的交互邏輯,工作流引擎通過解析此工作流定義文件按照業務的交互邏輯進行業務的流轉,工作流引擎通常通過參考某種模型來進行設計,通過調度算法來進行流程的流轉(流程的啓動、終止、掛起、恢復等),通過各種環節調度算法(SPLITANDOR)來實現對於環節的流轉(環節的合併、分叉、選擇、條件性的選擇等)

2.2.       工作流設計器

工作流設計器爲可視化的流程設計工具,用戶通過拖放等方式來繪製流程,並通過對於環節的配置來實現環節操作、環節表單、環節參與者的配置。

工作流設計器爲用戶以及開發商提供了快速繪製、修改流程的方式,工作流設計器的好壞決定到工作流管理系統的易用性。

2.3.       流程操作

流程操作指所支持的對於流程環節的操作,如啓動流程、終止流程、掛起流程、直流、分流(單人辦理)、並流(多人同時辦理)、聯審等,象這些流程操作都是可直接基於引擎所提供的環節調度算法來直接支持的,而在實際的需求中,通常需要自由的對於流程進行干涉,如取回、回退、跳轉、追加、傳閱、傳閱辦理等,而這些流程操作對於工作流引擎來說是不合理的,因此必須單獨的去實現。

流程操作支持的好壞直接決定到一個工作流管理系統的實用性。

2.4.       工作流客戶端程序

工作流客戶端程序爲工作流系統的表現形式,通常使用Web方式進行展現,通過提供待辦列表、已辦列表、執行流程操作、查看流程歷史信息等來展現工作流系統的功能。

2.5.       流程監控

流程監控通過提供圖形化的方式來對流程執行過程進行監控,包括流程運轉狀況,每個環節所耗費的時間等等,而通過這些可相應的進行流程的優化,以提高工作效率。

2.6.       表單設計器

表單設計器爲可視化的表單設計工具,用戶通過拖放的方式來繪製業務所需的表單,並可相應的進行表單數據的綁定。

表單設計器爲客戶以及開發商提供了快速修改表單的方法,表單設計器的易用與否以及功能的完善與否影響到工作流管理系統的易用性。

2.7.       與表單的集成

通常業務流轉需要表單來表達實際的業務,因此需要與表單進行集成來實現業務意義,與表單的集成通常包括表單數據的自動獲取、存儲、修改,表單域的權限控制、流程相關數據的維護以及流程環節表單的綁定。

與表單的集成的好壞影響到工作流管理系統是否能提高開發效率。

2.8.       與應用程序的集成

通過與應用程序的集成來完善工作流管理系統的業務意義,主要涉及到的是與權限系統以及組織機構的集成。流程環節需要相應的綁定不同的執行角色,而流程操作通常需要與權限系統、組織機構進行關聯。

三.  參考模型

工作流系統通常通過參考一些標準的模型來進行設計,主要的有WFMCOMG,在這裏主要介紹一下WFMC

3.1.       WFMC

WFMC是國際工作流管理聯盟,它於1993年成立,發佈了一系列的工作流定義、軟件接口的草案文本,是目前世界上公認的最具權威性的工作流標準制定機構,得到了廣泛的支持和應用。

20021025WFMC發佈了基於XML的流程定義語言1.0版的最終文本(Workflow Process Definition Interface----XML Process Definition Language  文檔編號:WFMC-TC-1025),以及此前發佈的工作流應用軟件接口規範WFMC-TC-1009, WFMC-TC-1013等系列文件,構成了工作流定義及系統的設計標準。

爲了實現不同工作流產品之間的互操作,WfMC在工作流管理系統的相關術語、體系結構及應用編程接口等方面制定了一系列標準。工作流管理聯盟給出的工作流定義是:工作流是指整個或部分經營過程在計算機支持下的全自動或半自動化。在實際情況中可以更廣泛地把凡是由計算機軟件系統(工作流管理系統)控制其執行的過程都稱爲工作流。

一個工作流包括一組活動及它們的相互順序關係,還包括過程及活動的啓動和終止條件,以及對每個活動的描述。工作流管理系統指運行在一個或多個工作流引擎上用於定義、實現和管理工作流運行的一套軟件系統,它與工作流執行者(人、應用)交互,推進工作流實例的執行,並監控工作流的運行狀態。

WFMC主要提出了五個接口與工作流執行服務一起共同組成了工作流系統:

l         接口一(工作流定義交換),用於在建模和定義工具與執行服務之間交換工作流定義。主要是數據交換格式和API。數據交換通過XPDLAPI通過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流程引擎通過令牌來決定流程的流轉。

發佈了27 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章