Abstract:The rapid growth of Internet/Intranet usage and development of Web technologies,provides a ideal platform to construct a Web_based workflow management.And the Web_based workflow management service provides condition for distributed working and inter-enterprise corporatin ,and it has become the characteristic of the next-generation workflow management.The WFMS prototype which this paper researched on combines the Web technologies and XML ,and provides a method of designing and implementing xml_based process definition language and workflow engine.
keywords:Workflow ,workflow management systems ,XML,Integration、Workflow Engine
1、引言
工作流的概念起源于生產(chǎn)制造業(yè)與辦公自動(dòng)化領(lǐng)域。工作流是一類(lèi)能夠完全或部分自動(dòng)執行的經(jīng)營(yíng)過(guò)程,根據一系列過(guò)程規則,文檔、信息或任務(wù)在不同的執行者之間傳遞、執行。工作流的目的是通過(guò)將工作分解成定義良好的任務(wù)、角色,按照一定的規則和過(guò)程來(lái)執行這些任務(wù)并對它們進(jìn)行監控,達到提高辦事效率、降低生產(chǎn)成本,提高企業(yè)生產(chǎn)經(jīng)營(yíng)管理水平和企業(yè)競爭力,實(shí)現現代企業(yè)經(jīng)營(yíng)過(guò)程重組(BRP)、經(jīng)營(yíng)過(guò)程自動(dòng)化。
根據工作流系統所采用的任務(wù)項傳遞機制的不同,工作流管理系統主要有三種方式:(1)、基于文件的工作流管理系統——以共享文件的方式來(lái)完成任務(wù)。這種類(lèi)型的產(chǎn)品是產(chǎn)生最早、發(fā)展最成熟、最具多樣性的,通常包含有Client/Server模式的圖像、文檔與數據庫管理系統。(2)、基于消息的工作流管理系統——通過(guò)用戶(hù)的電子郵件系統來(lái)傳遞文檔信息。這種產(chǎn)品都實(shí)現了一種或多種電子郵件系統的集成。(3)基于Web的工作流管理系統——隨著(zhù)計算機網(wǎng)絡(luò )技術(shù)的發(fā)展和Internet應用的不斷普及,Web技術(shù)因其界面的一致、簡(jiǎn)單及與平臺的無(wú)關(guān)性,在其出現之后就得了迅速發(fā)展。同時(shí)Internet的發(fā)展及企業(yè)Intranet的建構為人們提供一個(gè)理想的協(xié)同工作環(huán)境,同時(shí)也使基于Web的工作流管理系統成為可能。
Web應用程序開(kāi)放、跨平臺的特性使基于Web的工作管理系統已經(jīng)成為一種必然的發(fā)展趨勢。但目前因為不同的研究者、廠(chǎng)商使用不同的工作流的描述方法,這樣就造成了不同的工作流產(chǎn)品之間不能進(jìn)行互操作,因而在很大程度上阻礙了工作流技術(shù)的推廣與應用。
為了使工作流管理系統具有的良好的互操作性,本文研究開(kāi)發(fā)了一個(gè)基于Web的工作流管理系統,其中工作流過(guò)程定義采用了基于XML的過(guò)程定義語(yǔ)言。XML是用來(lái)描述文檔的組織結構,XML具有簡(jiǎn)單、自定義的優(yōu)點(diǎn),可以實(shí)現不同產(chǎn)商之間的工作流產(chǎn)品之間的互操作性,實(shí)現異構信息的集成。
本文首先介紹了當前工作流管理系統的一些相關(guān)概念,分析了在本系統中的一些關(guān)鍵技術(shù),包括系統的體系結構,工作流模型中的主要實(shí)體的XML描述及工作流執行機的設計與實(shí)現等。
2、工作流管理系統的介紹
基于Web的工作流管理技術(shù)是實(shí)現企業(yè)協(xié)同工作環(huán)境的一個(gè)良好方法,它能方便的與企業(yè)內原有的應用、信息集成。
為了實(shí)現對業(yè)務(wù)過(guò)程的工作流管理,需要相應的軟件系統的支撐。此種軟件系統為工作流管理系統(Workflow Management System,WfMS)。根據WfMC 的定義,工作流管理系統是“一種在工作流形式化表示的驅動(dòng)下,通過(guò)軟件的執行而完成工作流定義、管理及執行的系統”,其主要目標是對業(yè)務(wù)過(guò)程中各活動(dòng)發(fā)生的發(fā)后次序及同活動(dòng)相關(guān)的相應人力或信息資源的調用,進(jìn)行管理而實(shí)現業(yè)務(wù)過(guò)程的自動(dòng)化。工作流的過(guò)程定義是指對業(yè)務(wù)過(guò)程的形式化表示,它定義了過(guò)程運行中的活動(dòng)和所涉及到的各種信息。這些信息包括過(guò)程的開(kāi)始和完成條件、構成過(guò)程的活動(dòng)以及進(jìn)行活動(dòng)間導航的規則、用戶(hù)所需要完成的任務(wù)、可能被調用的應用、工作流機的引用關(guān)系以及與工作流數據的定義。其中活動(dòng)指的是工作流中的一個(gè)邏輯步驟;工作流實(shí)例指的是工作流的一次執行過(guò)程;工作流機是一個(gè)為工作流實(shí)例的執行提供運行服務(wù)環(huán)境的軟件或“引擎”,它是工作流執行服務(wù)的核心,負責對解釋過(guò)程定義、控制過(guò)程實(shí)例的執行、控制工作流中各個(gè)活動(dòng)的執行順序、并完成與其它工作流機的交互與通訊。
1994年11月,工作流管理聯(lián)盟發(fā)布了工作流管理系統的參考模型(見(jiàn)圖1),該模型定義了一個(gè)基本的工作流管理系統所需要的6個(gè)基本模塊,并制定了各模塊之間的接口標準。其基本的模塊功能如下:
1) 過(guò)程定義工具:為用戶(hù)提供一種對實(shí)際業(yè)務(wù)過(guò)程進(jìn)行分析、建模的手段,并生成業(yè)務(wù)過(guò)程的可被計算機處理的形式化描述。
2) 工作流執行服務(wù):它借助于一個(gè)或多個(gè)工作流機,激活并解釋過(guò)程定義的全部或部分,并同外部的應用程序進(jìn)行交互,完成工作流過(guò)程實(shí)例的創(chuàng )建、執行與管理,為工作流程的運行提供一個(gè)運行時(shí)環(huán)境。
3) 其他工作流執行服務(wù):在大型的WfMS中,工作流可能需要多個(gè)工作流機共同完成,甚至需要其他異質(zhì)的工作流執行服務(wù)來(lái)輔助來(lái)完成,這涉及到WfMS系統之間的互聯(lián)。
4) 客戶(hù)應用程序:它給用戶(hù)提供一種手段,以處理過(guò)程實(shí)例運行過(guò)程中需要人工干預的任務(wù)。每一個(gè)這樣的任務(wù)就被稱(chēng)為一個(gè)工作項。WfMS為每一個(gè)用戶(hù)維護一個(gè)工作項列表,它表示當前需要該用戶(hù)處理的所有任務(wù)。
5) 被調應用程序:指工作流執行服務(wù)在過(guò)程實(shí)例的運行過(guò)程中,調用的、用以對應用數據進(jìn)行處理的程序。在過(guò)程定義中包含這種應用程序的詳細信息,如類(lèi)型、地址等。
6) 管理及監控工具:其功能是對WfMS中過(guò)程實(shí)例的狀態(tài)進(jìn)行監控與管理,如用戶(hù)管理、角色管理、審計管理、資源控制等。

3、基于Web的工作流管理系統的總體結構
體系結構的設計主要遵循如下3條原則:
(1)、基于Internet/Intranet分布式計算環(huán)境,面向跨部門(mén)、跨企業(yè)的分布式工作流管理。
(2)、集成已有的各種信息資源,如電子郵件、文檔管理、圖形瀏覽、資源管理等,充分發(fā)揮這些資源的綜合潛力。
(3)、與工作流管理聯(lián)盟參考模型保持一致,其中過(guò)程定義語(yǔ)言采用XML-WPDL(基于XML的過(guò)程定義語(yǔ)言),以利于實(shí)現不同企業(yè)的WfMS系統的互操作。
按照上述原則所設計的Web_WfMS的體系結構如圖2所示:

整個(gè)系統的工作方式如下:
(1)、工作流應用建模人員通過(guò)Web瀏覽器將過(guò)程及表單定義工具從Web服務(wù)器上下載下來(lái),完成應用系統的建模,即實(shí)際工作流程的定義。建模結果以XML-WPDL文檔保存在服務(wù)器中,并可反復修改。
(2)、客戶(hù)端用戶(hù)通過(guò)瀏覽器登錄到Web服務(wù)器,此時(shí)可以啟動(dòng)新的流程、處理其工作項等。每個(gè)工作項都與一個(gè)表單對應。在表單中以各種不同的方式表示需要處理的數據。用戶(hù)可以通過(guò)客戶(hù)端所提供的各種工具(如CAD系統、CAPP系統、字處理系統)對這些數據進(jìn)行處理。在此過(guò)程中可以與數據庫系統進(jìn)行交互,如查詢(xún)數據庫中信息,或將某些應用數據保存到數據庫中等。處理完成之后可將其提交,然后工作流執行機將根據表單中數據生成下一個(gè)工作項,并通知相應的用戶(hù)進(jìn)行處理,如此直至整個(gè)流程的完成。
(3)、管理人員使用工作流管理監控工具對工作流的運行實(shí)例、活動(dòng)實(shí)例的狀態(tài)情況進(jìn)行監控和管理,如掛起、重啟動(dòng)、終止某個(gè)過(guò)程實(shí)例。
4、基于Web的工作流管理系統的設計原理與實(shí)現機制
基于Web_WfMS的總體設計,將從工作流模型、工作流執行機、安全權限控制等3個(gè)方面討論本系統的實(shí)現機制。
4.1 工作流模型
工作流模型是整個(gè)工作流系統設計的基礎,也是過(guò)程定義人員進(jìn)行系統二次開(kāi)發(fā)的基礎,模型描述能力的強弱決定了系統所支持應用范圍以及系統的靈活度。在工作流模型方面,工作流管理聯(lián)盟定義的過(guò)程元模型定義了6個(gè)基本實(shí)體:過(guò)程定義、活動(dòng)、轉換條件、工作流相關(guān)數據、角色、需要激活的應用程序。
各種不同的建模工具僅是對工作流模型的一種形式化的描述,為了實(shí)現不同的WfMS的過(guò)程定義能相互交互,在本系統中采用了其于XML的過(guò)程定義語(yǔ)言對過(guò)程建模進(jìn)行描述(如圖3)。

下面將分別介紹XML_WPDL的過(guò)程定義、活動(dòng)和轉換條件三種實(shí)體的描述。
① 過(guò)程定義
② 活動(dòng)定義
③ 轉移條件
4.2 工作流機的實(shí)現與異常處理機制
工作流執行服務(wù)是工作流管理系統的核心。工作流執行服務(wù)由一個(gè)或多個(gè)工作流機組成。工作流機實(shí)際上是企業(yè)經(jīng)營(yíng)過(guò)程的任務(wù)調度器,在某種程序上還是企業(yè)資源的分配器。在采用工作流管理系統支持經(jīng)營(yíng)過(guò)程運行的企業(yè)中,工作流機可以看成是企業(yè)的業(yè)務(wù)操作系統(BOS)。工作流機的主要功能是:解釋過(guò)程定義、負責調試流程的運行、即創(chuàng )建和管理過(guò)程實(shí)例運行、調度活動(dòng)的運行并創(chuàng )建要處理的工作項、維護工作流控制數據和相關(guān)數據、維護用戶(hù)的工作列表。工作流執行機的結構如圖4所示:

圖4 工作流執行服務(wù)的結構圖
其具體的執行過(guò)程:工作流機接受從外部接口發(fā)送過(guò)來(lái)有關(guān)過(guò)程控制的請求(如過(guò)程初始化、獲取活動(dòng)以及結束活動(dòng)等),然后根據不同的請求類(lèi)型調用相應的處理模塊完成與本次請求相關(guān)的操作并將結果返回。事實(shí)上可以將工作流機看成一個(gè)多線(xiàn)程的并發(fā)服務(wù)器,它可以對多個(gè)外部請求提供并發(fā)服務(wù)。對外部請求的處理過(guò)程中肯定會(huì )涉及到對工作流相關(guān)數據的讀寫(xiě)和更改操作,同時(shí)工作流機還維護著(zhù)工作流的控制數據,通過(guò)工作流控制數據來(lái)辨別每個(gè)過(guò)程或活動(dòng)實(shí)例的狀態(tài),并推動(dòng)著(zhù)工作流過(guò)程的執行。
過(guò)程、活動(dòng)、工作項構成了工作流機的主要邏輯。在我們的系統中采用了對象的封裝和繼承的方法,把它包裝為普通的C#類(lèi)。三個(gè)類(lèi)的定義如下:
(1)、public class WEProInstanceManager {} //工作流執行機的過(guò)程實(shí)例的管理類(lèi)
(2)、public class WEActInstanceManager {} //工作流執行機的活動(dòng)實(shí)例的管理類(lèi)
(3)、public class WEWorkItemManager {} //工作流工作列表管理類(lèi)
工作流的錯誤包含兩種錯誤,一是流程錯誤,如活動(dòng)的執行者不存在,活動(dòng)的應用程序定義錯誤等;另一類(lèi)是系統的錯誤,如:網(wǎng)絡(luò )不通,數據庫系統異常。對于工作流執行機來(lái)說(shuō),前類(lèi)異常是屬于無(wú)法處理的錯誤,只能進(jìn)行錯誤的通知;后者是執行機可以處理的錯誤,如數據庫異?;蜻B接臨時(shí)中斷等等,執行機可以進(jìn)行容錯處理,例如:在數據庫恢復后自動(dòng)重新建立連接。執行機對可能出現的錯誤進(jìn)行編碼,并附有對應的描述信息。
在我們的系統中采用了C#的異常處理思想(在C#的編程思想中,系統的錯誤是通過(guò)捕獲異常來(lái)實(shí)現的),拋出的異常通過(guò)異常類(lèi)WEException來(lái)描述。WEException類(lèi)繼承了C#的異常處理類(lèi)Exception。并覆蓋了Exception類(lèi)的屬性Message(){get{}},其中WEException類(lèi)中保存了可識別的異常對照表。在C#的異常處理中,在出錯的地方將異常拋出,不進(jìn)行處理。異常被拋到更高的層次,直到某個(gè)層次能夠進(jìn)行這種異常的處理。
4.3、工作流管理系統的安全權限控制
工作流管理系統對安全性要求較高,為了達到要求,必須做到充分的安全控制。在我們的系統中,共設置了5層安全控制級別。
1)、用戶(hù)鑒定:用戶(hù)登陸系統,需要用戶(hù)輸入用戶(hù)名和密碼,以便確認和登記。
2)、服務(wù)器訪(fǎng)問(wèn)控制:保證只有授權用戶(hù),才可登陸指定的服務(wù)器。
3)、數據庫訪(fǎng)問(wèn)控制:對數據庫的訪(fǎng)問(wèn)進(jìn)行控制
4)、文檔訪(fǎng)問(wèn)控制:對數據庫中的文檔進(jìn)行權限控制。
5)、文檔中的域訪(fǎng)問(wèn)控制:對文檔中的部分內容進(jìn)行控制。
通過(guò)以上五層安全控制再加上一些安全機制如:系統級權限控制、電子簽名和加密等,使得整個(gè)安全機制達到了系統對安全的需要。
5、結束語(yǔ):
以Web作為工作流管理系統的底層通訊支持使系統具有開(kāi)放、一致和方便使用的特點(diǎn),使企業(yè)中處于孤島的信息能相互集成。本系統采用的基于XML的過(guò)程定義語(yǔ)言的工作流管理系統,不僅適應分布辦公,更以系統開(kāi)放的環(huán)境為實(shí)現跨部門(mén)、跨企業(yè)的供應鏈的不同工作流互操作打下了基礎,使客戶(hù)、供應商、或合作者都可以方便的參與企業(yè)的工作流,提高工作效率。
參考文獻
[1]WfMC,"The Workflow Reference Model".(WfMC-TC00-1003),Technical Report,Workflow Management Coalition,Hamnshire.1995.
[2]史美林、楊光信、向勇等。WFMS:工作流管理系統[J]。計算機學(xué)報,1999(3):326~328。
[3]范玉順。工作流管理技術(shù)基礎—實(shí)現企業(yè)經(jīng)營(yíng)過(guò)程重組與經(jīng)營(yíng)過(guò)程自動(dòng)化的核心技術(shù)[M].
[4]Mohan C.Recent Trendsin Workflow Management Products,Standards, and Research
.URL:http://www.almaden.ibm.com/cs/exotica/wfnat097.ps
[5]、Workflow Management Coalition.Interface 1:process definition interchange and process model[EB/OL].WFMC-TC-1016-P, http://www.wfmc.org,1999-10
聯(lián)系客服