徐小剛
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
工作流技術起源于20世紀70年代中期辦公自動化領域。1983~1985年間,在圖像處理和電子郵件領域出現了早期的含有工作流特征的商用系統。90年代以后,隨著個人計算機、網絡技術的普及和推廣,工作流技術的研究與開發進入了一個新的階段。1993年8月,第一個工作流技術標準化的工業組織——工作流管理聯盟(WFMC)成立。1994年,工作流管理聯盟發布了用于工作流管理系統之間互操作的工作流參考模型并相繼制定了一系列工業標準[1,2]。進入21世紀以來,工作流技術己被越來越多的人認可,與之相關的標準規范、工作流引擎及商業產品不勝枚舉。人們在開發推廣工作流產品的同時,更加注重工作流的理論研究,以推動該項技術走向成熟。
隨著網絡技術的日益發展,分布式技術在軟件系統中的應用越來越廣泛,XML近年來成為了計算機分布式技術研究的熱點。現有的各種工作流系統的管理應用接口多是通過一種緊耦合的方式實現,開放性、靈活性和可操作性都較差,通過對工作流管理接口結構與功能的分析,結合XML在分布式應用上的優勢,提出了一種基于XML的接口實現技術,使得工作流管理接口具備了較高的開放性、靈活性和可操作性。
首先引用工作流管理聯盟對工作流的定義:工作流就是“業務過程的部分或整體在計算機應用環境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現”。簡單地說,工作流就是一系列相互銜接、自動進行的業務活動或任務。
為了實現對業務過程的工作流進行管理,需要有相應的軟件系統支撐。將此種軟件系統稱之為工作流管理系統(WFMS)。工作流管理系統是一種在工作流形式化表示的驅動下,通過軟件的執行而完成工作流定義、管理及執行的系統,其主要目標是對業務過程中各步驟(或稱活動、環節)發生的先后次序及同各步驟相關的相應人力或信息資源的調用等進行管理而實現業務過程的自動化。
工作流管理系統的主要功能是通過計算機技術的支持去定義、執行和管理工作流,協調工作流執行過程工作之間以及群體成員之間的信息交互。工作流管理系統將業務流程中工作如何組織協調在一起的規則抽象出來,從而分離了具體工作的邏輯和流程組織的邏輯。實現對業務過程的抽象建模、業務過程仿真分析、業務過程優化、業務過程管理與集成,從而最終實現業務過程的流程自動化管理。工作流管理技術可以帶來以下收益:改進和優化業務流程,提高業務工作效率;實現高效地業務過程控制,提高業務服務質量;提高業務流程的重組、再構能力,利于系統改造。
一個完整的工作流管理系統通常由工作流引擎、工作流設計器、流程操作、工作流客戶端程序、流程監控、表單設計器、與表單的集成以及與應用程序的集成8個部分組成。
①工作流引擎為工作流管理系統的核心部分,主要提供了對于工作流定義的解析以及流程流轉的支持。工作流定義文件描述了業務的交互邏輯,工作流引擎通過解析此工作流定義文件按照業務的交互邏輯進行業務的流轉,工作流引擎通常通過參考某種模型來進行設計,通過調度算法來進行流程的流轉(流程的啟動、終止、掛起、恢復等),通過各種環節調度算法來實現對于環節的流轉;
②工作流設計器為可視化的流程設計工具,用戶通過拖放等方式來繪制流程,并通過對于環節的配置來實現環節操作、環節表單、環節參與者的配置。工作流設計器為用戶以及開發商提供了快速繪制、修改流程的方式,工作流設計器的好壞決定到工作流管理系統的易用性;
③流程操作指所支持的對于流程環節的操作,如啟動流程、終止流程、掛起流程、直流、分流、并流和聯審等,像這些流程操作都是可直接基于引擎所提供的環節調度算法來直接支持的,而在實際的需求中,通常需要自由地對于流程進行干涉,而這些流程操作對于工作流引擎來說是不合理的,因此必須單獨去實現。流程操作支持的好壞直接決定到一個工作流管理系統的實用性;
④工作流客戶端程序為工作流系統的表現形式,通常使用Web方式進行展現,通過提供待辦列表、已辦列表、執行流程操作和查看流程歷史信息等來展現工作流系統的功能;
⑤流程監控通過提供圖形化的方式來對流程執行過程進行監控,包括流程運轉狀況、每個環節所耗費的時間等,而通過這些可相應地進行流程的優化,以提高工作效率;
⑥表單設計器為可視化的表單設計工具,用戶通過拖放的方式來繪制業務所需的表單,并可相應地進行表單數據的綁定。表單設計器為客戶以及開發商提供了快速修改表單的方法,表單設計器的易用與否以及功能的完善與否影響到工作流管理系統的易用性;
⑦與表單的集成:通常業務流轉需要表單來表達實際的業務,因此需要與表單進行集成來實現業務意義,與表單的集成通常包括表單數據的自動獲取、存儲和修改,表單域的權限控制、流程相關數據的維護以及流程環節表單的綁定。與表單的集成的好壞影響到工作流管理系統是否能提高開發效率;
⑧與應用程序的集成:通過與應用程序的集成來完善工作流管理系統的業務意義,主要涉及到的是與權限系統以及組織機構的集成。流程環節需要相應地綁定不同的執行角色,而流程操作通常需要與權限系統、組織機構進行關聯。
為了實現工作流技術的標準化和開放性,從而支持異構工作流系統以及不同工作流產品之間的互操作,WFMC制定了工作流系統的體系結構在WFMC提出的工作流參考模型中,定義了5類應用編程接口如圖1所示。

圖1 工作流模型
WFMC主要提出了5個接口與工作流執行服務一起共同組成了工作流系統:
①接口1(工作流定義交換):用于在建模和定義工具與執行服務之間交換工作流定義。主要是數據交換格式和API。數據交換通過XPDL,API通過WAPI;
②接口2(工作流客戶端應用接口):用于工作流客戶端應用訪問工作流引擎和工作列表,通過WAPI完成;
③接口3(被調用的應用接口):用于調用不同的應用系統;
④接口4(工作流系統互操作接口):用于不同工作流系統之間的互操作;
⑤接口5(系統管理和監控):用于系統管理應用訪問工作流執行服務。
接口5提供給用戶管理和監控系統的運行狀態、查看系統運行的歷史記錄的功能。此接口的規范中定義了各種審計信息的數據格式流程實例信息:包括創建、啟動流程實例和子流程實例的數據;流程實例狀態變化的數據;流程實例屬性變化的數據;活動實例信息:包括活動實例狀態變化的數據;活動實例屬性變化的數據;工作項信息:包括工作項狀態變化的數據;工作項分配合重新分配的數據;工作項屬性變化的數據;遠程操作信息:包括開始和停止會話的數據;遠程創建流程實例和遠程改變流程實例狀態的數據;遠程獲取和設置流程實例屬性的數據;會話管理的數據;流程定義審計信息;擴展的審計信息及專用的審計信息。
這些數據在系統運行時刻由系統自動記錄在數據庫或文件中,可通過系統提供的API進行統計和查詢,或者通過系統工具導出到系統外部。工作流系統管理工具通過管理接口實現對工作流在整個組織內的流動情況的監視,并提供一系列的管理功能[3]。該接口包括了以下幾個方面的內容:
①角色和用戶管理:定義、刪除和修改角色的關系,修改角色屬性,對用戶或工作組的權限的建立、刪除、暫停和修改;
②過程實例的管理:對過程模型進行實例化,修改過程實例或者活動實例的狀態,終止過程實例;
③狀態管理:查詢過程實例的運行狀態;
④資源控制:設置、取消、修改過程或者活動實例的并發層次;
⑤審核管理:查詢、打印、刪除、啟動新的統計過程軌跡或日志。
XML即可擴展標記語言,與HTML一樣都是標準通用標記語言。XML是Internet環境中跨平臺的、依賴于內容的技術,是當前處理結構化文檔信息的有力工具。XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據,而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數據要占用更多的空間,但XML極其簡單,易于掌握和使用。
XML以一種開放的自我描述方式定義了數據結構,在描述數據內容的同時能突出對結構的描述,從而體現出數據之間的關系。按照XML組織的數據對于應用程序和用戶都是友好的、可操作的,可作為系統間接口數據交換的“中間格式”使用。接口文件內容采用可擴展的標記語言XML描述,系統可以自動識別用戶XML格式的數據,同時內部數據表示也采用XML格式。XML解釋器實現各種XML文檔與系統內部信息的相互翻譯,增強系統靈活性和拓展性。XML可用于不同類型、系統間的交換格式的傳送,從而簡化了從一個應用程序到另一個應用程序之間傳遞信息的工作。XML的特性給應用軟件賦予了強大的功能和靈活性:
①數據可以被XML惟一標識,因此可以實現更有效率的搜索;
②可將XML文件發送到其他應用軟件、對象或中間層服務器中做進一步處理或發到客戶端瀏覽器中直接瀏覽;
③描述數據結構的標記可以被重復使用,XML能使異構數據庫中的數據比較容易集成;
④XML具有擴展性和靈活性的特點,能描述各種應用軟件中的數據;
⑤可以根據客戶配置、使用者選擇和其他標準,將本地XML數據動態地表現出來;
⑥XML的開放是基于文本的格式的,可以用HTTP進行傳送,無需對現有網絡進行變更。
利用XML語言的靈活性、拓展性實現的工作流管理接口,其結構如圖2所示。

圖2 管理接口的結構
當工作流管理工具通過管理接口對工作流系統進行控制時,管理工具首先將控制命令封裝成XML命令數據,然后找到遠程目標對象,以XML命令數據作為參數調用遠程目標對象的處理方法。當遠程目標對象的處理方法被調用的時候,首先解析作為方法參數的XML命令數據,得到具體的控制命令,然后通知工作流執行服務完成相應操作,并將工作流執行服務的操作結果封裝成XML結果數據返回給調用者。管理工具收到XML結果數據之后,解析得到處理結果從而完成控制操作整個操作過程如圖3所示。

圖3 管理接口的總體設計
在設置文件中設置控制命令,控制命令可以是管理角色命令、管理用戶命令、管理過程實例命令、管理活動實例命令或者管理審核命令。這5種控制命令分別對應了工作流管理應用編程接口WAPI應包括的5個方面內容,即角色管理、用戶管理、過程實例管理、活動實例管理以及審核管理。
在設置文件中設置處理結果,返回的處理結果可以是管理角色命令處理結果、管用戶命令處理結果、管理過程實例命令處理結果、管理活動實例命令處理結果或者管理審核命令處理結果。這5種處理結果與發送的5種控制命令一一對應。
隨著工作流技術的發展,WFMC提出的工作流參考模型也將不斷完善,利用XML語言本身具備的特點,基于XML技術實現的管理接口可以靈話地變化與拓展。例如假設工作流管理應用編程接口拓展了設置話動實例執行者的功能,那么僅需要在XML控制命令和XML處理結果設置文件中增加對其定義。
在當前的各種工作流系統中,工作流執行服務和工作流管理工具之間的管理接口多采用緊耦合的方式實現。將XML技術引入到管理接口的實現中,雖然增加了接口的實現難度與復雜性,但這種實現技術不僅滿足了工作流系統在開放、分布式處理以及可操作性上的要求,同時也使得接口具備了良好的靈活性、可拓展性。
[1]GOLDFARB C F,PRESCORD P.The X ML Handbook[M].NewJersey:Prentice Hall,2001.
[2]范玉順.工作流管理技術基礎[M].北京:北京清華大學出版社,2001.
[3]梁彥強.基于CORBA/XML的工作流系統管理和監控接口技術研究與實現[J].計算機應用研究,2006(2):35-37.
[4]范玉順,吳 澄.基于協調理論的工作流建模方法[J].計算機集成制造系統,2001,7(4):1-6.
[5]謝玉鳳,楊光信,史美林.基于條件化有向圖的工作流過程優化[J].計算機學報,2001,24(7):729-735.