摘要:企業經營規模的不斷擴大使得傳統工作流系統不能適應企業分布式經營的需求,但卻促進了基于WEB的工作流系統技術的發展,在此基礎上提出了基于.NET3.0的WEB工作流系統,分析了工作流技術的工作原理,給出了工作流元素的相關定義,并在此基礎上設計了系統的架構,最后實現了一個企業業務流程的實例。
關鍵詞:工作流; 工作流管理系統; 業務流程模型; Web
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)20-30259-03
Research of Workflow System Based on Web
HAN Xue-song, LIU Ji-qing, YUAN Liang
(The School of Machinery and Automobile Engineering, Hefei university of technology, Hefei 230009,China)
Abstract: The enterprise manages the scale the unceasing expansion to enable the traditional workflow system to adapt the enterprise distributional management demand, but promoted actually based on the WEB workflow system technology development. A workflow system based on WEB is presented on the basic of .NET3.0 in this article, and analyses the theory of workflow. The definition of workflow element is given, and the framework of the system is designed. Finally an example of business flow of an enterprise is also given.
Key words:Workflow;Workflow management system;Business process model; Web
1 引言
工作流技術作為解決業務流程問題的主要方法越來越受到人們的重視,它應用邏輯與業務流程邏輯分離,可以不修改具體的功能實現而只修改業務的過程模型來改變系統功能,從而能夠快速應對市場需求。目前工作流技術主要的研究內容包括以下三個方面:
1)工作流的理論研究,包括工作流系統的體系、模型和定義語言等的研究[2-4];
2)工作流實現技術,包括工作流的事務特性、先進軟件技術的應用以及工作流仿真技術等[5-6];
3)工作流應用技術,工作流系統的實施技術、應用集成等[8-9]。
傳統的WEB工作流系統大多是基于CORBA、Java等[9-11]技術的基礎上開發的,由于缺乏標準,通信協議不一致等原因使得基于這些技術上的工作流系統沒有較好的互操作性和可復用性,集成比較困難,因此本文在.NET3.0的基礎上提出了基于WEB的工作流系統。
2 原理分析
工作流技術可以看作是企業的一個具體業務流程的抽象化表示,文獻[7]中給出了六種工作流的不同定義,且都指出了工作流是由不同的業務單元――活動(Activity)組成的,它是組成業務流程的基本單位,是工作流中的一個邏輯步驟。根據工作流運行方式和人力參與的不同,可以將工作流分為以下兩類[1]:
1)順序工作流(Sequential Workflow):順序工作流是流程按照事先預定的步驟順序執行。
可以模擬基于過程的應用程序其中可能存在分支(IFELSE)、循環(While)等流程,用于人力參與較少的典型結構化工作流中,如圖1所示。
2)狀態機工作流(State Workflow):在這種下,工作流對活動的調度依據活動的狀態變化。該模型中必須預先一系列的狀態和事件,狀態機總是停在一個預先設定的狀態中,直到事件觸發后才跳轉到新的狀態,主要用于面向人的工作流中,如圖2所示。
為了更好的描述工作流,我們給出了下面一些定義:
定義1 工作流: 按照約束條件和時間先后依次排列的活動集合稱為工作流,它是實際業務流程的數學抽象表示,可以表示成一個多元組Workflow(ID(w),A,AP,S(w),T,W(s),W(e)),其中:
1)ID(w)-表示工作流的唯一標識符,用于區分不同的工作流;
2)A-表示組成該工作流的活動的集合;
3)AP-表示工作流所處的活動點的名稱,該元素只有在工作流處于運行狀態時才有效;
4)S(w)-表示該工作流目前的狀態,包括創建、運行、完成、暫停和終止五個基本狀態,五個狀態之間的轉換如圖3所示;
5)T-表示工作流類型,有兩種類型分別是順序工作流和狀態機工作流;
6)W(s)-表示工作流實際執行時的開始活動點名稱;
7)W(e)-表示工作流執行結束的結束活動點名稱;
定義2 活動: 工作流的基本構造塊稱為活動,它包含一系列的屬性、事件和執行邏輯,是工作流的最小執行單元,其結構可以表示為一個多元組:Activity(ID(a), E, S(a), R, T, P, D),其中:
1)ID(a)-表示活動的唯一標識符,用于區分不同的活動;
2)E-表示活動所包含的事件,包括執行、完成、取消、錯誤、補償等事件;
3)S(a)-表示活動目前的狀態,包括初始化、執行、完成、取消、補償和錯誤;
4)R-表示參與該活動的人員組織角色;
5)T-表示該活動的類型,包括流程控制類、條件規則類、事件處理類(EventHandle)、狀態管理類、通信類以及自定義類等活動類型;
6)P-表示該活動的基本屬性,如活動名稱、活動功能描述等;
7)D-表示活動需要的數據;
定義3 工作流實例: 用戶依據工作流定義實現具體業務流程的一次執行過程稱為工作流實例,它可以形式化的表示為一個四元組:Instance(ID(i), ID(w), U, S(i)),其中:
1)ID(i)-表示工作流實例的唯一標識符,用于區分同一工作流的不同實例;
2)ID(w)-對應于定義2中工作流的標識符;
3)U-表示參與到此實例中的所有人員的名稱集合,這些參與人員要對應與定義3中活動的相應人員的組織角色R;
4)S(i)-表示工作流實例目前的狀態集合,它是一個多元組,分別對應目前工作流實例的狀態和其中活動的狀態。
3 系統體系結構
根據前文所述的工作流模型和流程分解原理,系統各個部分處理的信息和工作性質的不同參照工作流管理聯盟(WfMC)提出的工作流參考模型,我們設計了如圖4所示的系統層次結構。系統采用B/S三層模式,分為數據服務層、業務邏輯層和客戶應用層,提供了工作流系統的三種基本功能[9]:
1)建立階段功能:主要完成工作流過程和相關活動的單元和模型建立;
2)運行階段功能:在一定的運行環境中,執行工作流過程,并完成每個過程中活動的控制和調度;
3)運行階段的人機交互功能:實現各種活動執行過程中用戶與應用系統之間的交互包括業務流程模型定義時交互、完成具體業務處理時交互和系統運行狀態監控時交互。
3.1 客戶應用層
客戶應用層由用戶客戶端和業務流程設計器兩個模塊組成,提供了業務流程建模和用戶與系統交互的功能。該系統主要面向三種類型的用戶:第一種是業務流程開發人員,負責對業務流程的建模,使用業務流程設計器將現實中的業務流程描述成計算機可以識別的過程定義;第二種是系統管理員,負責系統的配置,使用工作流監控和管理工具對工作流實例運行的狀態進行監控,并對用戶的角色和權限進行管理;第三種是普通用戶,他們利用工作流系統提供的功能與應用系統交互完成具體的業務工作。
3.2 業務邏輯層
業務邏輯層主要由工作流建模模塊和運行控制模塊組成,分別提供了工作流的建模、運行和控制管理功能。
工作流建模模塊由活動建模、流程建模、事件定義和組織管理四部分組成,分別提供相應的基本活動定義、流程模型組合與設計、觸發和響應事件訂閱以及人員組織角色管理等功能,并向用戶提供圖形化的流程建模界面。
工作流運行控制模塊是系統的核心,它就是系統的工作流引擎,負責對工作流模型的解釋,控制和管理模型實例的運行,實現與外部資源交互完成各項活動,并維護和管理工作流的相關數據。
3.3 數據服務層
數據服務層為系統提供工作流各項數據信息的存儲和管理功能,主要由基本活動庫、流程模型庫、組織結構庫和其它數據庫組成。
4 系統實現
結合某企業的業務流程需要,我們在該系統的基礎上實現了出差借款審批過程,如圖5所示,簡要說明如下:
出差借款審批過程涉及到許多人力的參與和操作,流程的運行主要根據結點的審批狀態進行路徑的選擇,沒有較固定的執行順序,根據上文選擇狀態機模型來實現。出差借款流程的實現過程可以形式化表示如下:
Step1:創建流程基本活動,并保持到活動數據庫;
Step2:利用活動模型庫中的活動模型創建工作流模型,并保存到流程數據庫中備用;
Step3:調用流程模型庫中相應的工作流模型,創建工作流實例;
Step4:用戶啟動實例,工作流實例在工作流引擎提供的運行環境下執行,不同用戶利用系統提供的功能和系統交互。創建的工作流模型如圖6所示。
為了適應該企業分布式環境的需要,向用戶提供WEB應用界面,并根據用戶不同的角色設計不同的訪問和管理權限,其中的部門審批活動如圖7所示。
5 結束語
工作流技術作為解決業務流程問題的一種方法,正逐漸成為研究的熱點,本文提出了基于.NET3.0的WEB工作流系統,該系統提供了可視化的設計工具,提供了統一的流程建模方法,并且能夠以多種方式進行通信,使復雜的流程更易于建模和實現,具有開發成本低,易于擴展和改進等優點,滿足了企業的需求,順應了工作流技術的發展趨勢,具有較好的參考價值。
參考文獻:
[1] Andrew P , Conard J, Woodgate S,et al. Presenting Windows Workflow Foundation, Beta Edition [M]. United States of America : Sams, 2005.
[2] WfMC. Workflow Reference Model, Document Number : WFMC-TC00-1003 [EB/OL]. 1995. http://www.wfmc.com, 2007.
[3] Fischer L. Workflow Hand Book 2005[EB/OL]. http://www.wfmc.com, 2007,06.
[4] 杜栓柱, 譚建榮, 陸國棟.工作流模型中多粒度時間約束描述及其分析[J].軟件學報, 2003,14(11):1834-1840.
[5] 趙文, 胡文惠, 張世琨, 等. 工作流元模型的研究與應用[J]. 軟件學報, 2003,14(06):1052-1059.
[6] 羅海濱, 范玉順, 吳澄. 工作流技術綜述[J]. 軟件學報, 2000,11(7):899-907.
[7] 史美林, 楊光信, 向勇, 等. WFMS工作流管理系統[J] 計算機學報, 1999,5(3):325-334.
[8] 李偉剛, 莫榮, 楊海成, 等. 基于WEB的工作流管理系統: co-Flow[J]. 計算機輔助設計與圖形學學報, 2002(8):717-720.
[9] 范玉順. 工作流管理技術基礎—實現企業業務過程重組、過程管理與過程自動化的核心技術[M]. 北京: 清華大學出版社, 2001:1-134.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”