薛智山 滿(mǎn)君豐 張燦青 劉鳴 彭成
摘要:詳細(xì)闡述基于BPMN2.0(Business Process Diagram)標(biāo)準(zhǔn)的Activit5(Activiti BPM Platform)工作流管理平臺(tái),包括其體系模塊組成及業(yè)務(wù)流程設(shè)計(jì)。并根據(jù)實(shí)際情況,以車(chē)輛申請(qǐng)系統(tǒng)中的流程為例,詳細(xì)介紹在 Activiti5中工作流系統(tǒng)的設(shè)計(jì)與應(yīng)用的方法。
關(guān)鍵詞:工作流管理系統(tǒng);車(chē)輛申請(qǐng)系統(tǒng);activiti5
中圖分類(lèi)號(hào):TP311.1文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:This paper detailed the BPMN2.0 (Business Process Modeling Notation) standard Activit5 (Activiti BPM Platform) workflow management platform, including its system modules and business process design. According to the actual situation, this paper also introduced the method of design and application of workflow system in Activiti5 in the process of vehicle application system.
Key words:workflow management system;vehicle application system;activiti5
1引言
工作流概念的提出起初開(kāi)始于工業(yè)生產(chǎn)和辦公政務(wù)系統(tǒng),工作流的主要作用就是將整個(gè)流程模塊劃分為相應(yīng)的組織機(jī)構(gòu)和角色信息,按照給定的規(guī)則和任務(wù)來(lái)執(zhí)行,從而能提高工作效率、減少成本,從根本上提高企業(yè)生產(chǎn)水平和市場(chǎng)競(jìng)爭(zhēng)力[1]。自人類(lèi)進(jìn)入工業(yè)自動(dòng)化時(shí)代,企業(yè)管理就在組織機(jī)構(gòu)管理和流程自動(dòng)化方面作為主要研究方向,而之前這些工作大都由人工來(lái)做,效率較低。隨著全球互聯(lián)網(wǎng)的普及與發(fā)展,計(jì)算機(jī)相關(guān)的技術(shù)越來(lái)越成熟,其中應(yīng)用最為廣泛的就是在工業(yè)生產(chǎn)中的技術(shù)推廣,這時(shí)工作流概念得到了提出,工業(yè)技術(shù)為工作流的應(yīng)用和推廣提供了相當(dāng)成熟的發(fā)展條件?,F(xiàn)今工作流管理平臺(tái)已在金融、機(jī)械生產(chǎn)、政務(wù)電子政務(wù)等方面有了成功的應(yīng)用,不過(guò)工作流最重要的應(yīng)用還是體現(xiàn)在工業(yè)制造生產(chǎn)中。
工作流概念的提出自由其自身的優(yōu)點(diǎn)和使用價(jià)值,工作流相比工業(yè)中其他技術(shù)更簡(jiǎn)單適用,因?yàn)楣ぷ髁颂峁┝讼鄳?yīng)的執(zhí)行機(jī)制和工作引擎,這使企業(yè)能從業(yè)務(wù)過(guò)程自動(dòng)化中立足發(fā)展起來(lái)。以工作流的概念為基礎(chǔ),實(shí)現(xiàn)業(yè)務(wù)流程執(zhí)行自動(dòng)化和業(yè)務(wù)功能過(guò)程的集成,這些執(zhí)行機(jī)制是通過(guò)定義各節(jié)點(diǎn)任務(wù)之間的關(guān)聯(lián)關(guān)系的工作流模型(即過(guò)程模型)[2]來(lái)實(shí)現(xiàn)的。在工作流建模機(jī)制中,即便是復(fù)雜的邏輯業(yè)務(wù)判斷或具體的流程執(zhí)行操作,還是抽象的決策過(guò)程執(zhí)行,這些處理都可以用BPMN元素組成工作流架構(gòu)來(lái)描述業(yè)務(wù)關(guān)系。特別的是,流程各模塊之間的關(guān)聯(lián)關(guān)系,都可以用BPMN中的連接線(xiàn)進(jìn)行關(guān)聯(lián),即使多么復(fù)雜的邏輯業(yè)務(wù)都可以實(shí)現(xiàn)。連接線(xiàn)描述了企業(yè)生產(chǎn)過(guò)程的控制邏輯,它定義了兩個(gè)活動(dòng)之間的順序連接和執(zhí)行次序,并且可以定義流程變量,根據(jù)變量的值判斷流程的走向。
基于工作流技術(shù)的簡(jiǎn)單易用且具有靈活性的特點(diǎn),在各大工業(yè)制造商家及軟件公司都不約而同的對(duì)工作流進(jìn)行了研發(fā)和擴(kuò)展,將已經(jīng)成熟的構(gòu)件產(chǎn)品融入到工作流技術(shù)中,進(jìn)而根據(jù)需求再應(yīng)用到具體業(yè)務(wù)系統(tǒng)中(如大家比較熟悉并常用的電子政務(wù)系統(tǒng)、檔案管理平臺(tái)等各單位業(yè)務(wù)系統(tǒng))?;诠ぷ髁骷夹g(shù)的發(fā)展,在學(xué)術(shù)界和工業(yè)生產(chǎn)界都對(duì)工作流的研發(fā)和應(yīng)用進(jìn)行了不同的投入,工作流的應(yīng)用在這幾年迅速發(fā)展起來(lái)。
2工作流架構(gòu)及技術(shù)
根據(jù)WfMC的定義,工作流管理系統(tǒng)(Workflow Management System, WFMS)[3]是一款軟件流程系統(tǒng),它對(duì)工作流進(jìn)行定義和分配,并根據(jù)設(shè)置的工作流業(yè)務(wù)邏輯執(zhí)行工作流的實(shí)例。一般來(lái)講,工作流管理系統(tǒng)指的是應(yīng)用在一個(gè)或多個(gè)工作流引擎機(jī)制中對(duì)工作流進(jìn)行定義和執(zhí)行實(shí)例的一款軟件系統(tǒng),工作流與它的任務(wù)執(zhí)行者交互,執(zhí)行工作流的實(shí)例,并適時(shí)監(jiān)控工作流過(guò)程的運(yùn)行狀況。如圖1是由WfMC提出的工作流平臺(tái)的體系結(jié)構(gòu)圖[4]。在這個(gè)參考模型的體系結(jié)構(gòu)中,其提供了工作流管理系統(tǒng)的Server工作引擎和相關(guān)組織機(jī)構(gòu)等核心部分,它可以實(shí)現(xiàn)工作流管理系統(tǒng)中流程提交處理及組織機(jī)構(gòu)角色任務(wù)等各模塊相互協(xié)同作用構(gòu)成的整個(gè)流程功能,能夠?yàn)楣ぷ髁鹘M件之間的協(xié)同操作提供了核心內(nèi)容。這里必須提到的是,工作流管理系統(tǒng)中的每個(gè)模塊部分可以根據(jù)不同的邏輯需求采用不同的實(shí)現(xiàn)方法,同時(shí)接口組件也可以根據(jù)不同的程序編程語(yǔ)言和技術(shù)架構(gòu)進(jìn)行不同的對(duì)接。通常來(lái)講,工作流可以集成不同的構(gòu)件產(chǎn)品,并根據(jù)不同的規(guī)則和任務(wù)對(duì)相應(yīng)的接口進(jìn)行相關(guān)的互操作。正是由于工作流各模塊相互協(xié)作的作用,在執(zhí)行工作流之前的模型機(jī)制就顯的尤為重要,即工作流建模機(jī)制和流程執(zhí)行引擎才完整組成了整個(gè)工作流程的功能。從上圖1中可以總結(jié)出,工作流管理系統(tǒng)主要是由以下三種模塊組成的:
1)軟件構(gòu)件:主要指組成工作流管理系統(tǒng)的各構(gòu)件程序;
2)系統(tǒng)控制數(shù)據(jù):在流程系統(tǒng)中使用到的程序數(shù)據(jù);
3)應(yīng)用和數(shù)據(jù):相對(duì)于流程系統(tǒng)其他部分,應(yīng)用和數(shù)據(jù)不是工作流平臺(tái)的實(shí)際組成部分,而是屬于外部系統(tǒng)的應(yīng)用和數(shù)據(jù),用來(lái)在工作流模塊中協(xié)同操作和產(chǎn)生的應(yīng)用數(shù)據(jù)。
本文設(shè)計(jì)并實(shí)現(xiàn)了基于Activiti5的工作流管理系統(tǒng),Activiti5使用BPMN2.0標(biāo)準(zhǔn)。首先,BPMN2.0標(biāo)準(zhǔn)是根據(jù)標(biāo)準(zhǔn)組織BMPI發(fā)布的BPMN1.0的基礎(chǔ)上進(jìn)行改進(jìn),該規(guī)范是BMPI組織經(jīng)過(guò)兩年多努力研究的成果。BPMN由一套給定的標(biāo)記符號(hào)語(yǔ)言組成,可以根據(jù)用戶(hù)的需求進(jìn)行系統(tǒng)的需求分析設(shè)計(jì)及軟件程序的研發(fā)工作等。同時(shí),BPMN還可以支持生成可執(zhí)行BPEL4WS語(yǔ)言。因此,BPMN實(shí)現(xiàn)了在業(yè)務(wù)流程設(shè)計(jì)和程序?qū)崿F(xiàn)兩者之間的連接關(guān)系。首先軟件研發(fā)者利用BPMN的語(yǔ)言標(biāo)記定義業(yè)務(wù)流程,這些特殊標(biāo)記符號(hào)構(gòu)成了流程圖,簡(jiǎn)化了繁瑣的圖形操作。業(yè)務(wù)流程的建模機(jī)制簡(jiǎn)單來(lái)說(shuō)就是對(duì)流程的執(zhí)行描述,包括活動(dòng)項(xiàng)和定義順序流向的執(zhí)行。
3車(chē)輛申請(qǐng)流程的設(shè)計(jì)與實(shí)現(xiàn)
本文以車(chē)輛申請(qǐng)為例詳解Activiti5流程的應(yīng)用。其車(chē)輛申請(qǐng)的需求如下:
1)申請(qǐng)者啟動(dòng)流程,填寫(xiě)車(chē)輛相關(guān)信息(如使用費(fèi)用、乘客人信息、到達(dá)地等),提交表單,后臺(tái)會(huì)進(jìn)行流程任務(wù)的提交,流程進(jìn)入到下一個(gè)節(jié)點(diǎn)任務(wù)。
2)以車(chē)輛管理員身份登錄系統(tǒng):在任務(wù)信息中可以查看到車(chē)輛和用戶(hù)的一系列信息;同時(shí)可修改信息,選擇車(chē)輛的同時(shí)可以派送司機(jī),即車(chē)輛管理員可以對(duì)車(chē)輛進(jìn)行改派。如果車(chē)輛管理員允許申請(qǐng),則流程節(jié)點(diǎn)進(jìn)入到車(chē)輛執(zhí)行經(jīng)理或財(cái)務(wù)部門(mén)經(jīng)理,同時(shí)系統(tǒng)計(jì)算出車(chē)輛所耗費(fèi)用。如果沒(méi)有通過(guò),則填寫(xiě)原因,同時(shí)流程回退到流程啟動(dòng)者,重新發(fā)起新的流程。
3)如果所花車(chē)費(fèi)小于一萬(wàn),則車(chē)輛執(zhí)行經(jīng)理審核:可以查看到任務(wù)信息中顯示路程信息、乘坐人信息等;不可以修改信息。如果審核允許車(chē)輛通過(guò),則流程自動(dòng)進(jìn)入到下一個(gè)任務(wù)節(jié)點(diǎn)。如果沒(méi)有通過(guò),則填寫(xiě)原因,流程回退到流程啟動(dòng)者,重新發(fā)起流程;如果費(fèi)用大于等于一萬(wàn),則財(cái)務(wù)經(jīng)理進(jìn)行審核,查閱信息:用戶(hù)選擇車(chē)輛及使用時(shí)間、預(yù)計(jì)到達(dá)時(shí)間、目的地,及車(chē)程計(jì)費(fèi)明細(xì);不可修改相關(guān)信息。如果車(chē)輛審核通過(guò),則流程執(zhí)行下一步。若不同意,則填寫(xiě)原因,整個(gè)流程到此結(jié)束。
4)以流程任務(wù)的接收者登陸系統(tǒng),在待辦任務(wù)中可以看到當(dāng)前的待執(zhí)行任務(wù),該執(zhí)行者可以查看到相關(guān)的信息(如車(chē)輛計(jì)程,路途車(chē)費(fèi)等);無(wú)可修改的信息。同時(shí),進(jìn)行工作的確認(rèn)。進(jìn)入下一步。
5)在工作流引擎機(jī)制中,由Service引擎將車(chē)輛及用戶(hù)相關(guān)信息進(jìn)行保存并寫(xiě)入到數(shù)據(jù)庫(kù)中,這樣,整個(gè)工作流系統(tǒng)的流程執(zhí)行完畢。需求如圖2所示:
3.1定義業(yè)務(wù)流程
BPMN基本元素構(gòu)成了工作流的模塊結(jié)構(gòu),工作流也是由BPMN提供建模機(jī)制并通過(guò)引擎機(jī)制來(lái)執(zhí)行整個(gè)流程的操作。工作流中包含了并行、排他、循環(huán)及嵌套流程等邏輯結(jié)構(gòu)模型,這其中有人工活動(dòng)和網(wǎng)關(guān)路由活動(dòng),程序開(kāi)發(fā)人員可以通過(guò)設(shè)置變量或指定組織機(jī)構(gòu)來(lái)進(jìn)行流程的走向操作。因此,這樣的工作流即方便了業(yè)務(wù)人員的流程設(shè)計(jì),也有利于程序執(zhí)行的靈活特性。再加上界面表單的展現(xiàn),方便了客戶(hù)人員簡(jiǎn)單直觀的操作業(yè)務(wù)及隨時(shí)查看流程的節(jié)點(diǎn)位置。以BPMN2.0規(guī)范的Activiti5流程圖如圖3所示:
其中BPMN的元素含義如表1所示:表1BPMN的元素含義
3.2界面操作
進(jìn)入工作流系統(tǒng),填寫(xiě)相關(guān)信息,車(chē)輛申請(qǐng)平臺(tái)界面如圖4所示:申請(qǐng)者登錄系統(tǒng)可以看到車(chē)輛列表,申請(qǐng)者選擇車(chē)輛并填寫(xiě)相關(guān)信息,提交流程;車(chē)輛管理員登陸系統(tǒng)領(lǐng)取任務(wù),并根據(jù)費(fèi)用是否小于一萬(wàn)元進(jìn)行判斷,小于一萬(wàn)元分配給辦公室主任進(jìn)行審批,同時(shí)派送車(chē)輛司機(jī);被分派的司機(jī)在自己的當(dāng)前任務(wù)中查看并操作,提交任務(wù),流程結(jié)束。
3.3提交業(yè)務(wù)流程
提交流程主要用到Activiti5中的Server執(zhí)行引擎,執(zhí)行引擎執(zhí)行庫(kù)中封裝的方法,其部分執(zhí)行代碼如下圖5所示:
4系統(tǒng)運(yùn)行情況及分析
該車(chē)輛申請(qǐng)流程系統(tǒng)在某小區(qū)進(jìn)行部署并測(cè)試。該小區(qū)車(chē)輛數(shù)量大于500,日均200輛以上。經(jīng)過(guò)一個(gè)月試運(yùn)行,以Activiti5為引擎的工作流管理系統(tǒng)運(yùn)行比較穩(wěn)定,并生成了6000多條實(shí)例數(shù)據(jù),在很大程度上提高了物業(yè)公司效率。該工作流管理系統(tǒng)從需求、分析及部署實(shí)施提高了整個(gè)流水線(xiàn)效率,減少了軟件公司和操作員的工作量。
5結(jié)束語(yǔ)
本文在介紹和分析了Activiti5工作流管理系統(tǒng)的概念性描述的同時(shí),講述了管理流程的主要模塊的關(guān)系,并以實(shí)際車(chē)輛申請(qǐng)流程為例,利用Eclipse的Activiti5插件進(jìn)行圖形化的工作流建模和系統(tǒng)實(shí)現(xiàn)?;鵅PMN2.0標(biāo)準(zhǔn)的Activiti5工作流平臺(tái)解決了傳統(tǒng)工業(yè)中較難處理的問(wèn)題(如在并行、排他等節(jié)點(diǎn)的邏輯處理上),同時(shí)通過(guò)簡(jiǎn)單易懂的圖形化符號(hào)組成工作流的整個(gè)流程。相比傳統(tǒng)工業(yè)開(kāi)發(fā)模式,Activiti5降低了業(yè)務(wù)人員和軟件開(kāi)發(fā)人員程序處理的繁雜工作,其系統(tǒng)業(yè)務(wù)設(shè)計(jì)人員可以對(duì)流程進(jìn)行單獨(dú)的設(shè)計(jì),從而開(kāi)發(fā)人員易陷復(fù)雜程序的問(wèn)題得到了根本解決[5],極大提高了業(yè)務(wù)流程隨需而變的響應(yīng)速度。Acitiviti5實(shí)現(xiàn)的工作流管理系統(tǒng)做到了系統(tǒng)管理的自動(dòng)化以及組織機(jī)構(gòu)人員和職業(yè)部門(mén)的協(xié)同工作,大大地提高了系統(tǒng)的運(yùn)行效率。接下來(lái)的工作主要是研究擴(kuò)展Activiti5組件以支持更為靈活的工作流管理系統(tǒng)。
參考文獻(xiàn)
[1]SCHUNSELAAR D M,VERBEEK E,VAN DER ALST W M P,et al.Creating Sound and Reversible Configurable Process Models Using CoSeNets [C]. BIS12. Vilnius, Lithuania. LNBIP 117,Springer,2012:24-35.
[2]江東明,薛錦云.基于BPMN 的Web服務(wù)并發(fā)交互機(jī)制[J].計(jì)算機(jī)科學(xué),2014,(8):50-54.
[3]劉一帆.基于工作流的實(shí)驗(yàn)室信息管理系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2013,(11):90-94.
[4]徐志偉.基于工作流的高校設(shè)備管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].碩士論文,2012.
[5]AYORA C,TORRES V,WEBER B, et al. VIVACE: A Framework for the Systematic Evaluation of Variability Support in ProcessAware Information Systems [J]. Information and Software Technology, Elsevier, 2015, 57(5): 248-276.