摘? 要: 論述了工作流的相關概念、參考模型和分類,介紹了一個工作流技術支持的工程設計管理系統的實現,分析了工作流技術的優勢。
關鍵詞: 工作流? 管理系統? 工程設計管理
?
隨著計算機的廣泛應用,越來越多的工作依靠計算機而得以完成。與此同時,各種類型的信息系統也被廣泛地使用以支持這些工作。由于這些系統基本上獨立運行,相互之間缺乏必要的交互、協作與感知,所以,系統在協調多個人的活動及協同完成某個共同的任務方面存在嚴重不足。這也就是工作流管理系統(Workflow Management System,WfMS)自20世紀90年代以來引起來自研究機構與產業界廣泛關注的重要原因。無論是生產系統的工作流,還是辦公自動化和電子商務的工作流系統都為軟件界所關注。工作流的概念是從生產和商務的過程(Process)概念演化而來。把工作活動分解為明確定義的任務(Tasks)、角色(Roles)、規則(Rules)和子過程(Procedures),通過它們對整個過程進行控制和調節。起初,整個過程都是由人來完成的。隨著信息技術的發展,部分過程或全部過程已開始由計算機自動完成。
1? 工作流介紹
1.1 相關概念
工作流管理聯盟(Workflow Management Coliation,WfMC)對工作流所作的定義是:工作流是指整個或局部商務過程的自動執行過程。在這個過程中,各種文本、信息和任務都根據設定的過程規則從一個人(地方)傳送到另一個人(地方)。也就是說,工作流所要解決的主要問題是使多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者是促使此目標的實現。WfMS的作用就是將現實世界中的業務過程轉化成某種計算機化的形式表示,并在此形式表示的驅動下完成工作流的執行和管理。工作流中的概念有:工作流模型、活動、過程實例等。
(1)工作流模型(也稱作過程定義):是業務過程的計算機化的形式表示。它定義的是過程運行中涉及到的各種參數,如業務過程的開始和終止條件、各個工作環節及相互之間的控制流動與數據流動關系等。
(2)活動:是指工作流中的一個邏輯步驟或稱環節。它既可以由計算機自動執行,也可以由人完成。它所含的信息包括:開始和結束條件;可參與到此環節中的用戶;完成此活動所需的應用程序或數據以及關于此活動應如何完成的一些限制條件(如時間上的限制等)。
(3)過程實例:是指某個工作流過程的一次執行。在實例的執行過程中,WfMS將解釋相應的過程定義,生成有關的活動實例并根據過程定義中的控制規則協調這些活動實例之間的順序關系,同時根據數據流動關系的定義完成活動實例之間的數據傳送。一般情況下每一個活動實例都將表現為一個工作項(WorkItem),由某個或某組用戶負責完成。
1.2 工作流參考模型
一個龐大的商業過程往往要有許多實體的參與,且各個實體負責不同的工作。雖然各實體為一個自主的實體,其使用的工作流系統可能不一樣,但是對于一個完整的商業過程來說,它們并不是孤立的。因為實體之間需要進行信息交換,需要相互協作才能完成整個商業過程。為了實現不同工作流系統之間的信息交換和協作,工作流管理聯盟定義了工作流參考模型,圖1描述了該模型的基本部件和基本接口。
?
?
圖1中的工作流系統有五個基本部件:
(1)工作流定義工具。即提供一種描述工作流過程的軟件,它把實際的過程步驟用圖示化的方法或簡單的文本描述出來,并產生或轉化成規范的、可被計算機處理的形式化描述(過程定義)。
(2)工作流執行服務(Workflow Enactment Service)。由一個或多個工作流引擎(Workflow Engine)組成,是工作流的核心,負責創建、管理和執行工作流實例。各種工作流應用通過工作流應用編程接口(Workflow API,WAPI)訪問它。邏輯上它一共提供5個接口(圖中的雙向箭頭表示接口),分別是:與過程定義模塊的接口、與工作流客戶端應用模塊的接口、與管理和監視工作流工具的接口、與供調用的各種功能服務的接口以及與其他工作流系統的接口。工作流引擎是工作流實例提供運行時的執行環境。它解釋過程定義,控制工作流實例的運行,根據工作流的定義和狀態導航(Navigate)工作流,分派各種角色,維護工作流的控制數據及調用各種應用等。
(3)供調用的應用(Invoked Application)。它是一些功能應用的集合,每一個應用可能負責完成工作流的某個子過程的執行或完成某項(些)任務。工作流引擎根據工作流的運行情況調用它們來完成工作流的執行。
(4)工作流的客戶應用(Workflow Client Application)。它可以通過工作列表訪問(Worklist Access)接口訪問工作列表(Worklist)庫,而工作流引擎可以把工作(任務)分配到工作列表庫而由用戶去訪問此列表庫以接受分配給自己的任務。工作流客戶應用部件在實現時是可選的,但在需要人參與完成工作流中某些非完全自動過程時應提供此應用。
(5)工作流的管理和監視。負責管理監視工作流,包括用戶管理、角色管理、運行記錄、錯誤恢復、停止和刪除工作流等。
工作流執行服務與其他基本部件的接口統稱為Workflow API(WAPI),為標準接口。這些標準接口對實現由不同廠家開發的工作流管理系統的互聯與互操作性問題具有重要的意義。
1.3 工作流系統的分類與應用現狀
根據工作流過程本身的特點、系統建模的方式、所使用的底層支撐技術以及工作流過程的執行方式等的不同,文獻[1]將現有的幾百種具有工作流管理功能的商品化軟件產品及原型系統進行了相應的分類,具體分類如下:
(1)結構化的與即席的:結構化工作流指的是在實際工作過程中會反復重復、嚴格按照某個固定的步驟進行的業務過程。辦公程序(如公文處理、審批等)都屬此類。即席工作流則是針對那些重復性不是很強或沒有重復性的工作流程的,關于這類流程執行所需的有關參數(如參加者等)事先無法確定,必須推遲到過程實例運行時才能確定。同時在執行過程中還可能會發生一些意外的情況。
(2)面向文檔的與面向過程的:前者的側重點是將電子形式的文檔、圖像等在有關人員之間進行分發,以便得到不同人員的處理與審閱?,F有的文檔管理與映象管理系統均屬此類。在面向過程的WfMS中,工作流被描述成一系列執行環節,與各環節相應都存在待處理的數據對象。各環節的數據對象可以按不同的方式分發到其他環節中去,如可以將數據對象的值作為控制條件或者依此數據對象組裝成其他的數據對象等。
(3)基于郵件的和基于數據庫的:前者使用電子郵件來完成過程實例執行過程中消息的傳遞、數據的分發與事件的通知。在基于數據庫的WfMS中,所有的數據都保存在某種類型的BMS中,過程的執行實際上就是對這些數據的查詢與處理。
(4)任務推動的與目標拉動的:前者指的是從過程開始處逐個環節地執行,當某個活動實例被處理完后,后續的有關活動將被創建并被激活,由此直至整個工作流程的完成。這是目前大多數面向過程的WfMS所使用的執行方式。而在目標拉動的WfMS中,一個業務流程被看成是一個目標。過程實例執行時,該目標將被分解為多個相互之間按一定約束條件關聯起來的可執行的多個環節,其中各環節還可以作為子目標而進行進一步分解。在各環節均執行完畢之后,整個過程也就完成了。目標拉動是一種全新的執行方式,下一代的WfMS將具有此種特征。
WfMS巨大的潛在市場和廣闊的應用領域(例如辦公、電子業務、協作研究、CIMS等)吸引了越來越多的科研機構與軟件廠商投入到這方面的研究和開發中。據不完全統計,目前通用WfMS及具有工作流功能的系統已經有幾百種之多,其中包括Action Workflow、Visual Workflow、FlowMark、Ultimus以及Inconcert等。國內目前也有不少單位在從事這方面的研究。
2?工作流技術支持的工程設計管理系統
工程設計管理中設計圖檔的流轉過程是一個典型的工作流過程,因此應用工作流技術來管理是非常合適的。
2.1 工程設計管理的特點
工程設計管理系統實現了工程設計流程的計算機化與自動化管理。工程設計過程具有極強的流程特性。如圖2所示,任何一個設計圖檔都要先經過設計,然后再進行校對、校核,最后審查、審定之后才能被采用并歸檔保存,其中任何一個環節出錯都將導致設計圖檔的重新修改設計。設計圖檔流轉過程中包含的活動有:設計、校對、校核、審查、審定、歸檔等,這些活動需要不同部門的參與。以作者參與的某水利工程設計為例,一個工程的設計過程中需要水文、水工、水電、水機、地質等不同部門的參與。
?
?
隨著工程的變化,設計過程中,有時會修改設計流程、增加或者減少業務環節,例如地質部門的勘測圖檔只需經過校對無誤即可審定歸檔,省去了校核、審查二個業務環節。然而有的設計圖檔需要多個責任人進行多次反復審查之后才能進行審定,這就增加了多個業務環節??紤]到設計出的軟件要具有通用性,能適應不同工程的需要,因此希望設計出的管理系統具有如下特點:
(1)靈活性。表示系統能以最少的代價來適應和處理各種變化的過程,如能根據需要隨時改變業務處理流程;
(2)敏捷反應能力。表示系統能縮短業務處理過程的運轉周期,提高處理的效率;
(3)良好的可擴展能力。表示能方便地在系統中增加新的業務或刪除已有業務,或者為已有的業務增加或刪除一些處理功能。
2.2 系統結構
從2.1節的分析中可看出,工程設計是一個典型的工作流處理過程,它有一個固定的處理模式,即工作流過程定義。每一種業務的處理均可由一個對應的過程定義來描述,每一個設計圖檔的處理就是該種業務的一個過程實例。該業務有多個處理步驟,它與工作流中的一項活動相對應,各項活動由不同的角色來完成。隨著工程的變化,業務過程可能被修改,即修改工作流過程定義等??紤]這些特點,在構建工程設計管理系統時,可完全遵照工作流的思想對系統進行分析設計和實現。
在設計系統時,出于各方面的考慮,沒有選擇商品化的工作流管理系統來做二次開發,而是采用數據庫等技術自行開發一個工作流管理系統。如圖3所示,該工作流管理系統有如下構成及功能:
?
(1)一個執行服務。負責工作流過程的實例化、任務的分配、過程的調度等(通過解釋過程定義腳本來完成),同時提供了一套角色管理與授權機制,以保障系統安全運行。
(2)一個簡單的過程定義工具??梢杂脕碓O置和修改業務的處理過程,過程描述采用一種自定義的簡單的腳本語言。
(3)一個管理監控工具。供工程設計單位和客戶查詢業務的處理工具,實現查詢功能,使客戶可以隨時了解處理進度。同時工程設計單位使用該監控工具,可以動態改變業務的處理流程。
(4)多個業務功能模塊。如客戶應用功能模塊負責處理客戶與系統之間的交互操作。隨著業務過程的變化,可以隨時增加功能模塊。每一個功能模塊中有一個任務列表(Task List),工作流執行服務通過該任務列表給各功能模塊分配任務。工作人員登錄進入某個功能模塊后,可從任務列表選取任務,并按規定執行。
整個系統是以工作流執行服務為核心,由工作流執行服務中的工作流引擎來負責任務的調配工作。
2.3 系統的優點
前面介紹了系統所需要具有的性能:靈活性、敏捷性與可擴展性。下面將分析基于工作流的方法是如何滿足這些性能要求的。
(1)靈活性。在工作流系統中,過程模型和組織模型是相互分離的,可以隨時使用工作流定義功能模塊改變工作流過程定義,從而改變業務的處理流程。同時,在一個業務過程實例的處理當中,可以通過管理和監控模塊動態改變業務處理流程,這些均反應了系統具有很好的靈活性。
(2)敏捷反應能力。從圖3中可看出,系統是以工作流執行服務為核心來協調各個功能模塊的處理活動。工作流執行服務可以很好地監控各個功能模塊,對各項活動的分配與執行均有記錄,可以避免部門之間的扯皮。同時也能方便地統計各項活動的處理時間,尋找瓶頸所在,從而根據出現的問題尋找解決辦法。客戶可以隨時查詢業務的處理狀態并與相應部門聯系。這些途徑都能較好地提高系統的效率,提高業務處理的反應能力。
(3)良好的可擴展能力。系統的靈活性是實現系統可擴展性的手段之一,因為可以使用工作流定義功能模塊方便地修改業務的處理流程、增加新的處理業務或刪除已有的業務。同時系統是以工作流執行服務為核心來協調各個功能模塊的處理活動,因此系統是一個二級結構,這也是系統規??蓴U展的重要手段。
實踐證明,該系統的設計思想具有一定的參考價值,對開發類似的系統可起到一定的借鑒作用。
?
參考文獻
1?? 史美林,楊光信,向勇等.WfMS:工作流管理系統.計算機學報,1999;22(3)
2?? 胡錦敏,張申生.支持企業動態聯盟的敏捷工作流系統.計算機研究與發展,1999;36(12)
3?? Workflow Management Coalition.Workflow Reference?Model.WfMC-TC-1003.Http://www.wfmc.org
4?? 范玉順,吳澄.工作流管理技術研究與產品現狀及發展趨勢.計算機集成制造系統-CIMS,2000;6(1)
5?? 羅海濱,范玉順,吳澄.工作流技術綜述.軟件學報,2000;11(7)