熊道德,焦永杰,吳東峰
XIONG Dao-de1 , JIAO Yong-jie2 , WU Dong-feng3
(1.中國航空工業(yè)發(fā)展研究中心,北京 100029;2.淄博職業(yè)學院,淄博 255314;3.北京神舟航天軟件技術有限公司,北京 100094)
工作流管理聯(lián)盟WFMC(Workflow Management Coalition)對于工作流的定義[1]:工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程,根據(jù)一系列過程規(guī)則,文檔、信息或任務能夠在不同的執(zhí)行者之間傳遞、執(zhí)行。
工作流引擎為流程的執(zhí)行提供軟件執(zhí)行的環(huán)境,是流程成功執(zhí)行的關鍵。一個設計良好、方便使用、可擴展的工作流引擎對工作流流程來說至關重要,它直接關系到流程是否能夠正確執(zhí)行以及流程的執(zhí)行效率。
工作流技術出現(xiàn)之后得到了廣泛的應用,但是目前的應用多是針對比較固定、簡單的業(yè)務流程,隨著企業(yè)的發(fā)展,要求隨時能對業(yè)務流程進行修改和擴展[2],迫切需要工作流具有一定的柔性,這種柔性主要體現(xiàn)在以下三個方面:
1)業(yè)務流程建模階段:能夠快速、簡單、準確地表達各種復雜程度的業(yè)務流程,最大程度降低對于業(yè)務人員的專業(yè)要求;
2)業(yè)務流程執(zhí)行階段:能夠實現(xiàn)業(yè)務流程的動態(tài)修改和擴展,不會對當前的整體系統(tǒng)造成重大影響;
3)業(yè)務流程維護階段:能夠提供比較友好的流程維護環(huán)境,實現(xiàn)流程的分析和優(yōu)化,為企業(yè)業(yè)務流程優(yōu)化升級提供技術基礎。
為了實現(xiàn)這種柔性,本文基于元數(shù)據(jù)及工作流的相關技術,提出了一種元數(shù)據(jù)驅動的工作流引擎技術,實現(xiàn)業(yè)務流程的靈活性和可擴展性,并對工作流引擎進行了設計和實現(xiàn),最后對于元數(shù)據(jù)驅動的工作流引擎進行了總結與展望。
元數(shù)據(jù)是對數(shù)據(jù)資源的描述[3],英文名稱是“Metadata”,元數(shù)據(jù)是信息共享和交換的基礎和前提,用于描述數(shù)據(jù)集的內容、質量、表示方式、空間參考、管理方式以及數(shù)據(jù)集的其他特征。它可以是單個文件、多個文件或者數(shù)據(jù)庫數(shù)據(jù)。
元數(shù)據(jù)一般可以分為描述性元數(shù)據(jù)、結構性元數(shù)據(jù)、存取控制性元數(shù)據(jù)以及管理性元數(shù)據(jù)等。元數(shù)據(jù)在工作流中得到了廣泛的應用,在程序中并不直接被處理,而是通過值的改變對程序產(chǎn)生影響,也即在程序的具體執(zhí)行過程中,元數(shù)據(jù)往往是起到“解釋”的作用[3],開發(fā)人員可以通過改變元數(shù)據(jù)的值來改變系統(tǒng)的運行方式。這樣,不同的元數(shù)據(jù)值可以讓同一段程序具有不同的運行結果。通過元數(shù)據(jù)可以使得程序具有一定的柔性,隨著元數(shù)據(jù)值的變化而使程序流轉到不同的流程。
工作流的驅動方式主要有兩種:一種是控制驅動,另外一種是數(shù)據(jù)驅動。
基于控制驅動工作流的控制信息由流程設計者在流程設計時建立,活動的執(zhí)行按照控制信息依次向下執(zhí)行,活動與活動之間具有較強的依賴性,所以基于控制驅動的工作流缺乏柔性,當企業(yè)的業(yè)務流程發(fā)生變更時需要重新建立工作流,會對整體產(chǎn)生較大的影響。
與控制驅動的工作流不同,基于數(shù)據(jù)驅動的工作流并不預先確定流程,而是在活動的執(zhí)行過程中通過改變活動的相關數(shù)據(jù)而自動建立業(yè)務流程,這種數(shù)據(jù)驅動的工作流,活動與活動之間是解耦的,可以實現(xiàn)工作流的靈活配置。
本文基于元數(shù)據(jù)的相關概念,建立了元數(shù)據(jù)驅動的工作流。
工作流的建模方式主要有四種[4]:數(shù)據(jù)流程圖、IDEF方法、角色活動圖、事件驅動過程鏈以及Petri網(wǎng)絡等,在工作流建模過程中,活動以及活動之間的關系是需要重點考慮的內容,本文基于面向對象的相關概念,將活動抽象為“對象”,通過元數(shù)據(jù)建立活動對象的結構,并通過元數(shù)據(jù)的值的改變,推動活動對象依次向下執(zhí)行,活動對象的具體結構如圖1所示。
圖1 活動對象示意圖
該活動對象以XML的形式進行描述:各個對象的屬性含義如下所示:
活動名稱Name:活動的名稱,在同一個業(yè)務流程中可以有同樣的名稱,例如采購過程中的審批活動,可能存在多次審批;
活動編號Code:活動對象的唯一確定編號,用以區(qū)分各種不同的活動對象;
輸入?yún)?shù)In_Par:活動的輸入?yún)?shù),用以觸發(fā)是否可以執(zhí)行該活動;
執(zhí)行條件Condition:活動對象的執(zhí)行條件,通過輸入?yún)?shù)的值判斷活動對象是否滿足執(zhí)行條件;
圖2 元數(shù)據(jù)驅動的工作流執(zhí)行過程
輸出參數(shù)Out_Par:活動對象執(zhí)行完畢之后的輸出參數(shù),用以向下流轉;
開始時間BeTime:活動對象開始執(zhí)行的時間;
結束時間EndTime:活動對象結束執(zhí)行的時間。
元數(shù)據(jù)驅動的工作流建模過程無須指定具體的流程,而是將業(yè)務流程分解成一個個活動對象,活動對象之間通過輸入、輸出參數(shù)以及執(zhí)行條件進行動態(tài)的綁定,具體的執(zhí)行流程如圖2所示。
首先對于流程進行初始化,由外界條件對于活動對象A進行觸發(fā),活動對象A接到觸發(fā)條件,然后結合自身的執(zhí)行條件判斷對象A是否可以執(zhí)行,如果可以執(zhí)行,則執(zhí)行活動對象A的相關動作并輸出參數(shù),并將參數(shù)發(fā)布到工作流引擎中,工作流引擎掃描引擎池中的活動對象,看是否具有符合活動對象的輸入?yún)?shù)是活動對象A的輸出參數(shù),如果活動對象B符合,則通過活動對象B的執(zhí)行條件判斷活動對象是否可以執(zhí)行,通過此種機制依次向下執(zhí)行活動,最終活動對象C的輸出參數(shù)為End,活動終止,完成整個業(yè)務流程的執(zhí)行。
按照工作流管理聯(lián)盟的相關文件,工作流管理系統(tǒng)的參考模型[5]如圖3所示。
圖3 工作流管理系統(tǒng)參考模型
工作流引擎位于參考模型的重要位置,關系到流程執(zhí)行的效率和準確性,主要用來對于流程進行控制、解釋、管理相關流程實例的運行并且提供一些流程實例與外界進行交互的功能[6]。本文設計的基于元數(shù)據(jù)驅動的工作流引擎主要包括以下四個層次:
1)活動對象預處理層
本層主要完成流程執(zhí)行前的準備工作,主要用來解釋整個流程并對流程中的活動對象進行數(shù)據(jù)預處理。例如當流程開始時,工作流引擎要掃描整個活動對象,判斷流程開始的節(jié)點。
2)活動對象調度層
當活動對象完成活動的執(zhí)行后,將輸出參數(shù)發(fā)布到工作流引擎當中,工作流引擎掃描整個活動對象,將該輸出參數(shù)進行廣播,其他活動對象接到參數(shù)時,同自身的輸入?yún)?shù)進行比對,看看是否滿足活動對象執(zhí)行的條件。
3)活動對象執(zhí)行層
該層主要用來對于活動對象進行執(zhí)行工作,是工作流引擎的核心,根據(jù)活動的對象的預先定義,完成數(shù)據(jù)及信息的處理工作,本層往往要調用系統(tǒng)的相關資源,并對流程執(zhí)行過程中的各個細節(jié)進行記錄。
4)控制管理層
本層提供了靈活的接口,工作流管理人員可以通過該層對于活動對象進行動態(tài)變更,以實現(xiàn)工作流執(zhí)行的柔性。
本文提出了基于元數(shù)據(jù)驅動的工作流引擎技術,通過元數(shù)據(jù)對于活動對象實體進行結構定義,并實現(xiàn)了工作流引擎,通過改變活動對象元數(shù)據(jù)的值來控制活動的流轉方向,實現(xiàn)了工作流在執(zhí)行過程中的動態(tài)變更和靈活擴展,實現(xiàn)了工作流的柔性,很好的解決了業(yè)務流程經(jīng)常變更的企業(yè)的需求。
[1]Workflow Management Coalition.The Workflow Reference Model.[WflVICl003][R].WFMC TC00—1003.1994.
[2]陳義松,汪蕓.基于數(shù)據(jù)驅動的工作流引擎的設計與實現(xiàn)[J].微電子學與計算機,2012,29(11):138-140,144.
[3]黃迪.基于元數(shù)據(jù)的輕量級工作流管理系統(tǒng)的設計與實現(xiàn)[D]:吉林大學,2006.
[4]鞏世鵬.工作流驅動的CAPP系統(tǒng)研究與應用[D].重慶大學,2013.
[5]張暉.基于工作流和元數(shù)據(jù)的ETL工具研究與實現(xiàn)[D].河北工業(yè)大學,2006.
[6]楊健,李楠,鄭建功.基于工作流和元數(shù)據(jù)驅動的城市工程測量一體化集成應用平臺[J].東北測繪與空間地理信息,2012,(1):191-193,195.