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