徐小剛
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
工作流技術起源于20世紀70年代中期辦公自動化領域。1983~1985年間,在圖像處理和電子郵件領域出現(xiàn)了早期的含有工作流特征的商用系統(tǒng)。90年代以后,隨著個人計算機、網(wǎng)絡技術的普及和推廣,工作流技術的研究與開發(fā)進入了一個新的階段。1993年8月,第一個工作流技術標準化的工業(yè)組織——工作流管理聯(lián)盟(WFMC)成立。1994年,工作流管理聯(lián)盟發(fā)布了用于工作流管理系統(tǒng)之間互操作的工作流參考模型并相繼制定了一系列工業(yè)標準[1,2]。進入21世紀以來,工作流技術己被越來越多的人認可,與之相關的標準規(guī)范、工作流引擎及商業(yè)產(chǎn)品不勝枚舉。人們在開發(fā)推廣工作流產(chǎn)品的同時,更加注重工作流的理論研究,以推動該項技術走向成熟。
隨著網(wǎng)絡技術的日益發(fā)展,分布式技術在軟件系統(tǒng)中的應用越來越廣泛,XML近年來成為了計算機分布式技術研究的熱點?,F(xiàn)有的各種工作流系統(tǒng)的管理應用接口多是通過一種緊耦合的方式實現(xiàn),開放性、靈活性和可操作性都較差,通過對工作流管理接口結構與功能的分析,結合XML在分布式應用上的優(yōu)勢,提出了一種基于XML的接口實現(xiàn)技術,使得工作流管理接口具備了較高的開放性、靈活性和可操作性。
首先引用工作流管理聯(lián)盟對工作流的定義:工作流就是“業(yè)務過程的部分或整體在計算機應用環(huán)境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規(guī)則傳遞文檔、信息或任務的過程自動進行,從而實現(xiàn)某個預期的業(yè)務目標,或者促使此目標的實現(xiàn)”。簡單地說,工作流就是一系列相互銜接、自動進行的業(yè)務活動或任務。
為了實現(xiàn)對業(yè)務過程的工作流進行管理,需要有相應的軟件系統(tǒng)支撐。將此種軟件系統(tǒng)稱之為工作流管理系統(tǒng)(WFMS)。工作流管理系統(tǒng)是一種在工作流形式化表示的驅動下,通過軟件的執(zhí)行而完成工作流定義、管理及執(zhí)行的系統(tǒng),其主要目標是對業(yè)務過程中各步驟(或稱活動、環(huán)節(jié))發(fā)生的先后次序及同各步驟相關的相應人力或信息資源的調(diào)用等進行管理而實現(xiàn)業(yè)務過程的自動化。
工作流管理系統(tǒng)的主要功能是通過計算機技術的支持去定義、執(zhí)行和管理工作流,協(xié)調(diào)工作流執(zhí)行過程工作之間以及群體成員之間的信息交互。工作流管理系統(tǒng)將業(yè)務流程中工作如何組織協(xié)調(diào)在一起的規(guī)則抽象出來,從而分離了具體工作的邏輯和流程組織的邏輯。實現(xiàn)對業(yè)務過程的抽象建模、業(yè)務過程仿真分析、業(yè)務過程優(yōu)化、業(yè)務過程管理與集成,從而最終實現(xiàn)業(yè)務過程的流程自動化管理。工作流管理技術可以帶來以下收益:改進和優(yōu)化業(yè)務流程,提高業(yè)務工作效率;實現(xiàn)高效地業(yè)務過程控制,提高業(yè)務服務質量;提高業(yè)務流程的重組、再構能力,利于系統(tǒng)改造。
一個完整的工作流管理系統(tǒng)通常由工作流引擎、工作流設計器、流程操作、工作流客戶端程序、流程監(jiān)控、表單設計器、與表單的集成以及與應用程序的集成8個部分組成。
①工作流引擎為工作流管理系統(tǒng)的核心部分,主要提供了對于工作流定義的解析以及流程流轉的支持。工作流定義文件描述了業(yè)務的交互邏輯,工作流引擎通過解析此工作流定義文件按照業(yè)務的交互邏輯進行業(yè)務的流轉,工作流引擎通常通過參考某種模型來進行設計,通過調(diào)度算法來進行流程的流轉(流程的啟動、終止、掛起、恢復等),通過各種環(huán)節(jié)調(diào)度算法來實現(xiàn)對于環(huán)節(jié)的流轉;
②工作流設計器為可視化的流程設計工具,用戶通過拖放等方式來繪制流程,并通過對于環(huán)節(jié)的配置來實現(xiàn)環(huán)節(jié)操作、環(huán)節(jié)表單、環(huán)節(jié)參與者的配置。工作流設計器為用戶以及開發(fā)商提供了快速繪制、修改流程的方式,工作流設計器的好壞決定到工作流管理系統(tǒng)的易用性;
③流程操作指所支持的對于流程環(huán)節(jié)的操作,如啟動流程、終止流程、掛起流程、直流、分流、并流和聯(lián)審等,像這些流程操作都是可直接基于引擎所提供的環(huán)節(jié)調(diào)度算法來直接支持的,而在實際的需求中,通常需要自由地對于流程進行干涉,而這些流程操作對于工作流引擎來說是不合理的,因此必須單獨去實現(xiàn)。流程操作支持的好壞直接決定到一個工作流管理系統(tǒng)的實用性;
④工作流客戶端程序為工作流系統(tǒng)的表現(xiàn)形式,通常使用Web方式進行展現(xiàn),通過提供待辦列表、已辦列表、執(zhí)行流程操作和查看流程歷史信息等來展現(xiàn)工作流系統(tǒng)的功能;
⑤流程監(jiān)控通過提供圖形化的方式來對流程執(zhí)行過程進行監(jiān)控,包括流程運轉狀況、每個環(huán)節(jié)所耗費的時間等,而通過這些可相應地進行流程的優(yōu)化,以提高工作效率;
⑥表單設計器為可視化的表單設計工具,用戶通過拖放的方式來繪制業(yè)務所需的表單,并可相應地進行表單數(shù)據(jù)的綁定。表單設計器為客戶以及開發(fā)商提供了快速修改表單的方法,表單設計器的易用與否以及功能的完善與否影響到工作流管理系統(tǒng)的易用性;
⑦與表單的集成:通常業(yè)務流轉需要表單來表達實際的業(yè)務,因此需要與表單進行集成來實現(xiàn)業(yè)務意義,與表單的集成通常包括表單數(shù)據(jù)的自動獲取、存儲和修改,表單域的權限控制、流程相關數(shù)據(jù)的維護以及流程環(huán)節(jié)表單的綁定。與表單的集成的好壞影響到工作流管理系統(tǒng)是否能提高開發(fā)效率;
⑧與應用程序的集成:通過與應用程序的集成來完善工作流管理系統(tǒng)的業(yè)務意義,主要涉及到的是與權限系統(tǒng)以及組織機構的集成。流程環(huán)節(jié)需要相應地綁定不同的執(zhí)行角色,而流程操作通常需要與權限系統(tǒng)、組織機構進行關聯(lián)。
為了實現(xiàn)工作流技術的標準化和開放性,從而支持異構工作流系統(tǒng)以及不同工作流產(chǎn)品之間的互操作,WFMC制定了工作流系統(tǒng)的體系結構在WFMC提出的工作流參考模型中,定義了5類應用編程接口如圖1所示。
圖1 工作流模型
WFMC主要提出了5個接口與工作流執(zhí)行服務一起共同組成了工作流系統(tǒng):
①接口1(工作流定義交換):用于在建模和定義工具與執(zhí)行服務之間交換工作流定義。主要是數(shù)據(jù)交換格式和API。數(shù)據(jù)交換通過XPDL,API通過WAPI;
②接口2(工作流客戶端應用接口):用于工作流客戶端應用訪問工作流引擎和工作列表,通過WAPI完成;
③接口3(被調(diào)用的應用接口):用于調(diào)用不同的應用系統(tǒng);
④接口4(工作流系統(tǒng)互操作接口):用于不同工作流系統(tǒng)之間的互操作;
⑤接口5(系統(tǒng)管理和監(jiān)控):用于系統(tǒng)管理應用訪問工作流執(zhí)行服務。
接口5提供給用戶管理和監(jiān)控系統(tǒng)的運行狀態(tài)、查看系統(tǒng)運行的歷史記錄的功能。此接口的規(guī)范中定義了各種審計信息的數(shù)據(jù)格式流程實例信息:包括創(chuàng)建、啟動流程實例和子流程實例的數(shù)據(jù);流程實例狀態(tài)變化的數(shù)據(jù);流程實例屬性變化的數(shù)據(jù);活動實例信息:包括活動實例狀態(tài)變化的數(shù)據(jù);活動實例屬性變化的數(shù)據(jù);工作項信息:包括工作項狀態(tài)變化的數(shù)據(jù);工作項分配合重新分配的數(shù)據(jù);工作項屬性變化的數(shù)據(jù);遠程操作信息:包括開始和停止會話的數(shù)據(jù);遠程創(chuàng)建流程實例和遠程改變流程實例狀態(tài)的數(shù)據(jù);遠程獲取和設置流程實例屬性的數(shù)據(jù);會話管理的數(shù)據(jù);流程定義審計信息;擴展的審計信息及專用的審計信息。
這些數(shù)據(jù)在系統(tǒng)運行時刻由系統(tǒng)自動記錄在數(shù)據(jù)庫或文件中,可通過系統(tǒng)提供的API進行統(tǒng)計和查詢,或者通過系統(tǒng)工具導出到系統(tǒng)外部。工作流系統(tǒng)管理工具通過管理接口實現(xiàn)對工作流在整個組織內(nèi)的流動情況的監(jiān)視,并提供一系列的管理功能[3]。該接口包括了以下幾個方面的內(nèi)容:
①角色和用戶管理:定義、刪除和修改角色的關系,修改角色屬性,對用戶或工作組的權限的建立、刪除、暫停和修改;
②過程實例的管理:對過程模型進行實例化,修改過程實例或者活動實例的狀態(tài),終止過程實例;
③狀態(tài)管理:查詢過程實例的運行狀態(tài);
④資源控制:設置、取消、修改過程或者活動實例的并發(fā)層次;
⑤審核管理:查詢、打印、刪除、啟動新的統(tǒng)計過程軌跡或日志。
XML即可擴展標記語言,與HTML一樣都是標準通用標記語言。XML是Internet環(huán)境中跨平臺的、依賴于內(nèi)容的技術,是當前處理結構化文檔信息的有力工具。XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標記描述數(shù)據(jù),而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數(shù)據(jù)要占用更多的空間,但XML極其簡單,易于掌握和使用。
XML以一種開放的自我描述方式定義了數(shù)據(jù)結構,在描述數(shù)據(jù)內(nèi)容的同時能突出對結構的描述,從而體現(xiàn)出數(shù)據(jù)之間的關系。按照XML組織的數(shù)據(jù)對于應用程序和用戶都是友好的、可操作的,可作為系統(tǒng)間接口數(shù)據(jù)交換的“中間格式”使用。接口文件內(nèi)容采用可擴展的標記語言XML描述,系統(tǒng)可以自動識別用戶XML格式的數(shù)據(jù),同時內(nèi)部數(shù)據(jù)表示也采用XML格式。XML解釋器實現(xiàn)各種XML文檔與系統(tǒng)內(nèi)部信息的相互翻譯,增強系統(tǒng)靈活性和拓展性。XML可用于不同類型、系統(tǒng)間的交換格式的傳送,從而簡化了從一個應用程序到另一個應用程序之間傳遞信息的工作。XML的特性給應用軟件賦予了強大的功能和靈活性:
①數(shù)據(jù)可以被XML惟一標識,因此可以實現(xiàn)更有效率的搜索;
②可將XML文件發(fā)送到其他應用軟件、對象或中間層服務器中做進一步處理或發(fā)到客戶端瀏覽器中直接瀏覽;
③描述數(shù)據(jù)結構的標記可以被重復使用,XML能使異構數(shù)據(jù)庫中的數(shù)據(jù)比較容易集成;
④XML具有擴展性和靈活性的特點,能描述各種應用軟件中的數(shù)據(jù);
⑤可以根據(jù)客戶配置、使用者選擇和其他標準,將本地XML數(shù)據(jù)動態(tài)地表現(xiàn)出來;
⑥XML的開放是基于文本的格式的,可以用HTTP進行傳送,無需對現(xiàn)有網(wǎng)絡進行變更。
利用XML語言的靈活性、拓展性實現(xiàn)的工作流管理接口,其結構如圖2所示。
圖2 管理接口的結構
當工作流管理工具通過管理接口對工作流系統(tǒng)進行控制時,管理工具首先將控制命令封裝成XML命令數(shù)據(jù),然后找到遠程目標對象,以XML命令數(shù)據(jù)作為參數(shù)調(diào)用遠程目標對象的處理方法。當遠程目標對象的處理方法被調(diào)用的時候,首先解析作為方法參數(shù)的XML命令數(shù)據(jù),得到具體的控制命令,然后通知工作流執(zhí)行服務完成相應操作,并將工作流執(zhí)行服務的操作結果封裝成XML結果數(shù)據(jù)返回給調(diào)用者。管理工具收到XML結果數(shù)據(jù)之后,解析得到處理結果從而完成控制操作整個操作過程如圖3所示。
圖3 管理接口的總體設計
在設置文件中設置控制命令,控制命令可以是管理角色命令、管理用戶命令、管理過程實例命令、管理活動實例命令或者管理審核命令。這5種控制命令分別對應了工作流管理應用編程接口WAPI應包括的5個方面內(nèi)容,即角色管理、用戶管理、過程實例管理、活動實例管理以及審核管理。
在設置文件中設置處理結果,返回的處理結果可以是管理角色命令處理結果、管用戶命令處理結果、管理過程實例命令處理結果、管理活動實例命令處理結果或者管理審核命令處理結果。這5種處理結果與發(fā)送的5種控制命令一一對應。
隨著工作流技術的發(fā)展,WFMC提出的工作流參考模型也將不斷完善,利用XML語言本身具備的特點,基于XML技術實現(xiàn)的管理接口可以靈話地變化與拓展。例如假設工作流管理應用編程接口拓展了設置話動實例執(zhí)行者的功能,那么僅需要在XML控制命令和XML處理結果設置文件中增加對其定義。
在當前的各種工作流系統(tǒng)中,工作流執(zhí)行服務和工作流管理工具之間的管理接口多采用緊耦合的方式實現(xiàn)。將XML技術引入到管理接口的實現(xiàn)中,雖然增加了接口的實現(xiàn)難度與復雜性,但這種實現(xiàn)技術不僅滿足了工作流系統(tǒng)在開放、分布式處理以及可操作性上的要求,同時也使得接口具備了良好的靈活性、可拓展性。
[1]GOLDFARB C F,PRESCORD P.The X ML Handbook[M].NewJersey:Prentice Hall,2001.
[2]范玉順.工作流管理技術基礎[M].北京:北京清華大學出版社,2001.
[3]梁彥強.基于CORBA/XML的工作流系統(tǒng)管理和監(jiān)控接口技術研究與實現(xiàn)[J].計算機應用研究,2006(2):35-37.
[4]范玉順,吳 澄.基于協(xié)調(diào)理論的工作流建模方法[J].計算機集成制造系統(tǒng),2001,7(4):1-6.
[5]謝玉鳳,楊光信,史美林.基于條件化有向圖的工作流過程優(yōu)化[J].計算機學報,2001,24(7):729-735.