陸遠(yuǎn)征
(大慶油田有限責(zé)任公司第九采油廠(chǎng)信息中心,黑龍江 大慶 163853)
目前,工作流引擎技術(shù)在國(guó)內(nèi)已經(jīng)得到了廣泛應(yīng)用,Activiti是一個(gè)業(yè)務(wù)流程管理(Business Process Management,BPM)平臺(tái)和工作流系統(tǒng),主要面向開(kāi)發(fā)人員。它是基于Java 語(yǔ)言的開(kāi)源工作流引擎,功能強(qiáng)大,具有開(kāi)源、靈活、易擴(kuò)展等特點(diǎn),其使用BPMN 2.0 規(guī)范,可以發(fā)布設(shè)計(jì)好的流程定義,并通過(guò)應(yīng)用程序接口(Application Programming Interface,API)進(jìn)行流程調(diào)度。采用Eclipse 流程設(shè)計(jì)器,開(kāi)發(fā)人員可以通過(guò)插件直接繪制出業(yè)務(wù)流程圖,通過(guò)可視化的流程圖實(shí)現(xiàn)流程管理。Activiti 工作流引擎為業(yè)務(wù)流程管理、工作流轉(zhuǎn)、服務(wù)協(xié)作提供了一個(gè)完整的框架。
電力調(diào)度系統(tǒng)采用瀏覽器/服務(wù)器(Browser/Server,B/S)運(yùn)行模式,可以實(shí)現(xiàn)電力業(yè)務(wù)操作指令網(wǎng)上下達(dá)、接收,建立兩級(jí)流程審核機(jī)制,實(shí)現(xiàn)業(yè)務(wù)管理流程追蹤,確保業(yè)務(wù)操作的準(zhǔn)確性和流程的規(guī)范性。
Activiti 采用了“Struts 2+Spring 4+Hibernnate 4”開(kāi)發(fā)框架。技術(shù)人員將Activiti 工作流引擎技術(shù)與Spring 和Hibernnate 框架相結(jié)合,完成框架處理與數(shù)據(jù)存儲(chǔ)過(guò)程。開(kāi)發(fā)框架采取了數(shù)據(jù)層、持久層、業(yè)務(wù)邏輯層、表示層的設(shè)計(jì)模式(見(jiàn)圖1),具體如下。
圖1 開(kāi)發(fā)框架架構(gòu)圖
(1)數(shù)據(jù)層。Activiti 開(kāi)發(fā)采用了Oracle 數(shù)據(jù)庫(kù),用來(lái)保存流程產(chǎn)生、運(yùn)行、結(jié)束等相關(guān)數(shù)據(jù)。Oracle 數(shù)據(jù)庫(kù)采用標(biāo)準(zhǔn)結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language,SQL),支持多種數(shù)據(jù)類(lèi)型,提供面向?qū)ο蟮臄?shù)據(jù)支持,可以滿(mǎn)足工作流數(shù)據(jù)存儲(chǔ)需求。
(2)持久層。Activiti 開(kāi)發(fā)選 用Hibernnate 作為持久層,Hibernate 可以自動(dòng)生成SQL 語(yǔ)句,自動(dòng)執(zhí)行,具有方便、快捷、安全穩(wěn)定的特點(diǎn),實(shí)現(xiàn)對(duì)系統(tǒng)數(shù)據(jù)的存取和增刪改等操作。
(3)業(yè)務(wù)邏輯層。該層為開(kāi)發(fā)框架的核心部分,實(shí)現(xiàn)了Activiti 工作流引擎與Spring 框架、Hibernnate 框架的整合,共同完成業(yè)務(wù)邏輯處理。Activiti 工作流引擎的核心是Process Engine,負(fù)責(zé)生成流程運(yùn)行時(shí)的各種實(shí)例及數(shù)據(jù),監(jiān)控和管理流程的運(yùn)行,將該對(duì)象引用到Spring 框架中進(jìn)行配置。Activiti 的7 個(gè)核心服務(wù)接口應(yīng)用于Spring 容器,可以實(shí)現(xiàn)很好地控制效果。采用Activiti Designer 流程設(shè)計(jì)器設(shè)計(jì)流程,支持可視化操作的方法定義工作流程并自動(dòng)部署,減少了源代碼的開(kāi)發(fā)量。
(4)表示層。表示層主要采用JQuery、BootStrap 等主流框架,主要為用戶(hù)提供一個(gè)與系統(tǒng)交互的操作界面。
Activiti 執(zhí)行國(guó)家電網(wǎng)標(biāo)準(zhǔn)電力線(xiàn)路工作票和倒閘操作票,主要功能包括兩票的網(wǎng)上填報(bào)、兩級(jí)審核、流程追蹤,實(shí)現(xiàn)了電力調(diào)度指令內(nèi)容可定制,指令下達(dá)的流程化管理。流程由廠(chǎng)級(jí)電力部門(mén)基層用戶(hù)發(fā)起,創(chuàng)建工作票后,通過(guò)線(xiàn)上填報(bào)工作負(fù)責(zé)人、檢修線(xiàn)路和設(shè)備、工作地段、工作任務(wù)等內(nèi)容上報(bào)啟動(dòng)流程,設(shè)置電力大隊(duì)和廠(chǎng)電力運(yùn)行調(diào)度兩級(jí)審核節(jié)點(diǎn),大隊(duì)級(jí)和廠(chǎng)級(jí)審核用戶(hù)對(duì)工作票的內(nèi)容進(jìn)行確認(rèn),并增加流程節(jié)點(diǎn)駁回機(jī)制,根據(jù)實(shí)際情況可對(duì)工作票流程進(jìn)行取消上報(bào)或駁回至上一個(gè)節(jié)點(diǎn)進(jìn)行修改。流程審核通過(guò)后,形成電子簽名加蓋電力部門(mén)公章,結(jié)束流程。操作人員接收指令可打印導(dǎo)出并按照指令進(jìn)行操作,確保電力調(diào)度指令的規(guī)范性和準(zhǔn)確性。
系統(tǒng)應(yīng)用Activiti 工作流引擎技術(shù)的作用如下。一是建立業(yè)務(wù)流轉(zhuǎn)機(jī)制,工作票管理設(shè)置了包括基層用戶(hù)、大隊(duì)級(jí)用戶(hù)和廠(chǎng)級(jí)用戶(hù)三層工作流節(jié)點(diǎn),通過(guò)讀取流程基本信息判斷當(dāng)前工作處在整個(gè)工作流程的哪一個(gè)流程節(jié)點(diǎn),并連接上下工作節(jié)點(diǎn),對(duì)流程節(jié)點(diǎn)實(shí)時(shí)跟蹤,實(shí)現(xiàn)流程追蹤。二是采用流程設(shè)計(jì)器設(shè)計(jì)業(yè)務(wù)流程,這種可視化、圖形化的設(shè)計(jì)方式能夠快速適應(yīng)工作票和操作票標(biāo)準(zhǔn)的變化需求,從而在業(yè)務(wù)上可以?xún)?yōu)化兩票管理。
應(yīng)按照電力調(diào)度業(yè)務(wù)流程繪制審核流程圖(見(jiàn)圖2),利用Eclipse流程設(shè)計(jì)器,按照BPMN2.0 規(guī)范對(duì)電力線(xiàn)路工作票流程建模。
圖2 電力調(diào)度工作票審核流程圖
2.3.1 流程部署
首先,通過(guò)Eclipse 開(kāi)發(fā)環(huán)境繪制流程圖,在src/main/resources 目錄下創(chuàng)建一個(gè)diagrams 流程定義文件存放流程圖。該流程使用的BPMN2.0 的結(jié)構(gòu)主要包括:開(kāi)始事件(Start Events)、結(jié)束事件(End Events)、排他網(wǎng)關(guān)(Exclusive Gateways)、人工任務(wù)(User Tasks)、序列流(Sequence Flows)。
將配置好的流程圖部署到Activiti 環(huán)境中,通過(guò)調(diào)用Repository Service 接口將流程定義文件部署到Activiti 流程引擎中,關(guān)鍵代碼如下:
部署完成后,在act_re_deployment 流程部署表、act_re_procdef 流程定義表中會(huì)有對(duì)應(yīng)的數(shù)據(jù)信息。
2.3.2 流程啟動(dòng)
工作票指令上報(bào)后,流程被啟動(dòng),調(diào)用運(yùn)行服務(wù)開(kāi)啟流程,關(guān)鍵代碼如下:
2.3.3 流程審批
流程啟動(dòng)后,指定流程處理人獲取任務(wù),用戶(hù)可在待辦任務(wù)中進(jìn)行查詢(xún)和審核操作,關(guān)鍵代碼如下:
Activiti 根據(jù)任務(wù)唯一編碼(Identity document,ID)對(duì)應(yīng)act_ru_task 表的主鍵ID,從而獲取辦理人的姓名和批注,并添加到批注信息表中。
通過(guò)對(duì)油田電力調(diào)度業(yè)務(wù)管理的分析與設(shè)計(jì),開(kāi)發(fā)人員構(gòu)建了一套基于Activiti 工作流引擎的電力調(diào)度系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了油田電力調(diào)度業(yè)務(wù)管理,工作票、操作票的管理,具有良好的用戶(hù)體驗(yàn),能夠隨著業(yè)務(wù)的變更重新調(diào)整流程,減少開(kāi)發(fā)人員維護(hù)系統(tǒng)的工作量,充分適應(yīng)油田電力業(yè)務(wù)的發(fā)展需求。該系統(tǒng)能夠有效規(guī)范和優(yōu)化電力調(diào)度業(yè)務(wù)管理,提升油田電力業(yè)務(wù)的管理水平和工作效率。