余軍
(中國(guó)商用飛機(jī)有限公司上海航空工業(yè)(集團(tuán))有限公司,上海201210)
?
基于JBPM4的飛機(jī)EO落實(shí)跟蹤系統(tǒng)應(yīng)用實(shí)踐
余軍
(中國(guó)商用飛機(jī)有限公司上海航空工業(yè)(集團(tuán))有限公司,上海201210)
摘要:通過(guò)對(duì)工作流及工作流引擎JBPM4的介紹,對(duì)JBPM4的主要特點(diǎn)、流程定義與部署等進(jìn)行研究,并在其基礎(chǔ)上建立一套適用于ARJ21-700型號(hào)飛機(jī)工程指令更改落實(shí)跟蹤系統(tǒng),以達(dá)到更好地實(shí)現(xiàn)流程管理,簡(jiǎn)化系統(tǒng)設(shè)計(jì)與開發(fā)的目的,并且降低了程序代碼直接耦合度,提高了軟件開發(fā)的效率,提高了系統(tǒng)的擴(kuò)展性和可維護(hù)性。
關(guān)鍵詞:工作流;JBPM4;飛機(jī)工程指令;更改落實(shí)
工程更改指在構(gòu)型項(xiàng)的研制、生產(chǎn)過(guò)程中,對(duì)已批準(zhǔn)的現(xiàn)行構(gòu)型文件(基線范圍內(nèi))所做的更改。在飛機(jī)的生命周期內(nèi),特別是在研制階段,由于采用新技術(shù)、彌補(bǔ)產(chǎn)品的缺陷、增加客戶所希望的新功能等原因都會(huì)引起工程更改[1]。
ARJ21-700飛機(jī)是我國(guó)首個(gè)按照國(guó)際適航標(biāo)準(zhǔn)設(shè)計(jì)的完全擁有自主知識(shí)產(chǎn)權(quán)的新型噴氣式支線飛機(jī),目前還處在研制階段,工程更改不可避免。ARJ項(xiàng)目中工程更改不僅涉及到飛機(jī)產(chǎn)品設(shè)計(jì),而且涉及到生產(chǎn)制造和采購(gòu)、維修、質(zhì)檢、客服、培訓(xùn)手冊(cè)等,需要跨部門、跨區(qū)域、跨專業(yè)合作完成。工程更改從提出到實(shí)施周期長(zhǎng)、涉及人數(shù)廣、工作難度大。
工程更改的有效管理與控制一定程度上是通過(guò)建立嚴(yán)格的更改業(yè)務(wù)流程,在計(jì)算機(jī)工具支持下,使得更改活動(dòng)始終處于嚴(yán)格的可控狀態(tài),并記錄涉及到的所有對(duì)象的變化,對(duì)下游工程指令(Engineering Order,簡(jiǎn)稱EO)落實(shí)更改的全程跟蹤,既保證了ARJ21項(xiàng)目構(gòu)型控制的完整性和符合性,也有利于后期對(duì)工程變更影響的分析與研究。良好的更改落實(shí)跟蹤管理能夠有效降低成本、提高工作效率、縮短生產(chǎn)周期、保證產(chǎn)品質(zhì)量、響應(yīng)市場(chǎng)需求,從而提升企業(yè)競(jìng)爭(zhēng)實(shí)力。
本文通過(guò)對(duì)JBPM4的深入研究,在分析新支線ARJ21在客戶服務(wù)方面工程落實(shí)更改流程的基礎(chǔ)上,提出了基于JBPM4的工程指令更改落實(shí)跟蹤系統(tǒng)的核心工作流程設(shè)計(jì)方法,建立有效的工程指令更改落實(shí)跟蹤系統(tǒng)。
1.1工作流簡(jiǎn)介
工作流的定義[2]:工作流是一種經(jīng)營(yíng)過(guò)程,它可以按照一定的規(guī)則完全或者部分自動(dòng)化執(zhí)行。在工作流中定義了許多任務(wù)的觸發(fā)順序以及觸發(fā)的條件。每個(gè)任務(wù)可以是由一個(gè)或者多個(gè)軟件系統(tǒng)來(lái)完成,也可以是由一個(gè)或者一組人來(lái)完成,還可以是由一個(gè)或者多個(gè)人與軟件系統(tǒng)協(xié)作來(lái)完成。任務(wù)的觸發(fā)順序和觸發(fā)的條件用來(lái)定義并實(shí)現(xiàn)任務(wù)的觸發(fā)、任務(wù)的同步以及信息流(數(shù)據(jù)流)的傳遞。
簡(jiǎn)單地說(shuō),工作流就是用一個(gè)個(gè)有序的任務(wù)點(diǎn)(活動(dòng)點(diǎn))來(lái)抽象表示業(yè)務(wù)流的處理過(guò)程。工作流管理系統(tǒng)是一個(gè)軟件系統(tǒng),它完成工作流的定義和管理,并按照在計(jì)算機(jī)中預(yù)先定義好的工作流邏輯推進(jìn)工作流實(shí)例的執(zhí)行。目前工作流管理系統(tǒng)開源框架中以JBPM為主流。
1.2JBPM4概述
JBPM(Java Business Process Management)是基于Java實(shí)現(xiàn)的流程業(yè)務(wù)處理框架 (Business Process-Management)。它是覆蓋了業(yè)務(wù)流程管理、工作流、服務(wù)協(xié)作等領(lǐng)域的一個(gè)開源的、靈活的、易擴(kuò)展的可執(zhí)行流程語(yǔ)言框架[3]。它支撐企業(yè)的流程性業(yè)務(wù)應(yīng)用,實(shí)現(xiàn)流程的自動(dòng)化。JBPM采用了JBoss JBPM Process Definition Language(JPDL)來(lái)設(shè)計(jì)流程,JPDL結(jié)合應(yīng)用了狀態(tài)機(jī)、UML2.0活動(dòng)圖、PetriNet算法三方面的知識(shí),利用狀態(tài)機(jī)控制了工作流狀態(tài)變遷,借鑒使用了PetriNet算法,擴(kuò)充了活動(dòng)圖的建模能力[4]。JBPM的另一個(gè)特色是使用Hibernate來(lái)管理數(shù)據(jù)庫(kù)。通過(guò)Hibernate,JBPM將數(shù)據(jù)的管理職能分離出去,專注于業(yè)務(wù)邏輯的處理。
JBPM4的結(jié)構(gòu)特點(diǎn)[5]如下:
(1)嵌入式的工作流引擎
JBPM4是完全支持嵌入式應(yīng)用的業(yè)務(wù)流程開發(fā)框架,可以在事務(wù)處理、數(shù)據(jù)持久化等各個(gè)方面與業(yè)務(wù)應(yīng)用程序進(jìn)行靈活的集成。
(2)可插拔的體系架構(gòu)
JBPM4采用了模塊化的架構(gòu)設(shè)計(jì),采用了IOC(依賴注入)的設(shè)計(jì)理念,各模塊之間可以比較方便地解除耦合或替換不同的實(shí)現(xiàn),例如持久化、事務(wù)處理、身份認(rèn)證、日志服務(wù)等,都由可選模塊實(shí)現(xiàn)。
(3)易擴(kuò)展到流程語(yǔ)言
JBPM4框架內(nèi)置的流程定義活動(dòng),包括start,task,foreach,fork,join和decision等,是構(gòu)建完整業(yè)務(wù)流程所必需的組成部分,它們提供了可以將業(yè)務(wù)邏輯Java代碼和業(yè)務(wù)流程編排無(wú)縫銜接的綁定機(jī)制。
1.3JBPM4開發(fā)工作流的一般流程
(1)環(huán)境搭建與配置
在開發(fā)項(xiàng)目中引入JBPM4的jar包,做好與數(shù)據(jù)庫(kù)連接的配置,JBPM4采用Hibernate框架操作數(shù)據(jù)庫(kù),對(duì)于數(shù)據(jù)庫(kù)的初始化,JBPM4都是通過(guò)Hibernate自動(dòng)創(chuàng)建相關(guān)表。
(2)流程定義
JBPM4使用的JPDL語(yǔ)言定義工作流,根據(jù)業(yè)務(wù)邏輯定義好工作流程,生成process.jpdl.xml文件
(3)流程的部署
RepositoryService流程部署服務(wù),根據(jù)對(duì)應(yīng)的process.jpdl.xml文件部署到數(shù)據(jù)庫(kù)。
(4)流程實(shí)例的創(chuàng)建
由ExecutionService流程執(zhí)行服務(wù)來(lái)創(chuàng)建一個(gè)流程實(shí)例ProcessInstance,將此流程實(shí)例與業(yè)務(wù)數(shù)據(jù)表關(guān)聯(lián)。
(5)流程實(shí)例的流轉(zhuǎn)與結(jié)束
業(yè)務(wù)與流程實(shí)例關(guān)聯(lián)綁定后,開始根據(jù)流程定義流轉(zhuǎn),中間結(jié)點(diǎn)都會(huì)與各種業(yè)務(wù)處理關(guān)聯(lián),但業(yè)務(wù)處理存儲(chǔ)與流程數(shù)據(jù)處理單獨(dú)分開,流程與業(yè)務(wù)處理同時(shí)結(jié)束。在此過(guò)程中會(huì)涉及到TaskService任務(wù)服務(wù),HistoryService歷史服務(wù),ManagementService流程管理服務(wù),IdentityService身份認(rèn)證服務(wù)等多個(gè)事務(wù)處理。
ARJ飛機(jī)工程更改落實(shí)跟蹤系統(tǒng)的目的是對(duì)整個(gè)ARJ項(xiàng)目中由設(shè)計(jì)部門流轉(zhuǎn)下來(lái)的工程更改數(shù)據(jù)進(jìn)行管理控制與落實(shí),跟蹤管理每一份由其他系統(tǒng)分轉(zhuǎn)下來(lái)的工程更改指令,記錄EO的每一個(gè)落實(shí)更改項(xiàng)以及相關(guān)的參與管理控制人員操作信息,并進(jìn)行報(bào)表匯總導(dǎo)出等。整個(gè)系統(tǒng)是采用B/S三層結(jié)構(gòu):數(shù)據(jù)層、業(yè)務(wù)層、表示層,MVC開發(fā)模式,在開源項(xiàng)目Struts2、Hibernate、JBPM4的基礎(chǔ)上進(jìn)行設(shè)計(jì)與開發(fā),使用oracle數(shù)據(jù)庫(kù)作為后臺(tái)支撐。
2.1業(yè)務(wù)基本流程
在整個(gè)飛機(jī)研制生產(chǎn)的客戶服務(wù)環(huán)節(jié)的工程更改落實(shí)過(guò)程中,同一份落實(shí)更改,不同部門關(guān)注重點(diǎn)不一樣,流程也不一樣,業(yè)務(wù)流程非常復(fù)雜。流程有多層嵌套,有并行,有串行及并行串行交叉進(jìn)行。
以某份EO為例,工程數(shù)據(jù)部構(gòu)型管理員選擇性分發(fā)到多個(gè)業(yè)務(wù)部門構(gòu)型管理員,各業(yè)務(wù)部門構(gòu)型管理員選擇性分發(fā)到不同科室構(gòu)型管理員,科室構(gòu)型管理員分發(fā)到具體的工程師,工程師進(jìn)行更改落實(shí),所有工程師完成后交由審核員審批,所有部門科室的任務(wù)審批完后,由工程數(shù)據(jù)部構(gòu)型管理員審核,批準(zhǔn)通過(guò),流程結(jié)束;駁回則指派到具體部門構(gòu)型員循環(huán)走流程。
在工程師進(jìn)行落實(shí)更改,在提交給審核員審核前如果對(duì)分發(fā)給自己的任務(wù)有異議,可以選擇駁回給科室構(gòu)型管理員,讓科室構(gòu)型管理員重新分發(fā)。
在航材部門,業(yè)務(wù)邏輯與其他業(yè)務(wù)部門不同,航材部業(yè)務(wù)分發(fā)是串行與并行“穿插交替”,其他業(yè)務(wù)部門都是并行落實(shí)處理。航材部構(gòu)型管理員分發(fā)給工程室,工程室處理完后由審核員選擇是否關(guān)系到采購(gòu)室和庫(kù)存室,如果是,流程分流到采購(gòu)室和庫(kù)存室,庫(kù)存室落實(shí)完成后流轉(zhuǎn)到支援室,最后所有科室都完成流轉(zhuǎn)到工程數(shù)據(jù)部審核。
2.2流程分析與設(shè)計(jì)
結(jié)合jpdl流程定義規(guī)范,下面對(duì)業(yè)務(wù)流程的各個(gè)環(huán)節(jié)進(jìn)行分析,確定每個(gè)結(jié)點(diǎn)的結(jié)點(diǎn)類型。
(1)分發(fā)任務(wù):工程數(shù)據(jù)部構(gòu)型管理員、業(yè)務(wù)部門構(gòu)型管理員、科室構(gòu)型管理員接收到上一級(jí)的分發(fā)任務(wù),由于是動(dòng)態(tài)不定數(shù)地往下一級(jí)分配,采用decision與foreach和join結(jié)合的方式,當(dāng)構(gòu)型管理員判斷不需要往下流轉(zhuǎn)時(shí)decision直接到end結(jié)束,需要向下流轉(zhuǎn)時(shí)通過(guò)foreach和join繼續(xù)流轉(zhuǎn)流程。
(2)業(yè)務(wù)部門處理:當(dāng)上一級(jí)主流程流轉(zhuǎn)下來(lái),到此結(jié)點(diǎn)時(shí)會(huì)自動(dòng)生成子流程實(shí)例sub-process,當(dāng)子流程結(jié)束時(shí)返回到本流程。
(3)構(gòu)型審核:采用task結(jié)點(diǎn)結(jié)合decision結(jié)點(diǎn)繼續(xù)流轉(zhuǎn)。
(4)科室處理:當(dāng)上一級(jí)子流程流轉(zhuǎn)下來(lái),到此結(jié)點(diǎn)時(shí)會(huì)自動(dòng)生成子流程實(shí)例sub-process,當(dāng)子流程結(jié)束時(shí)返回到本流程。
(5)工程師落實(shí):采用task結(jié)點(diǎn)。
2.3流程的設(shè)計(jì)
根據(jù)對(duì)整體業(yè)務(wù)流程的分析與研究,為保證系統(tǒng)業(yè)務(wù)流程的可擴(kuò)展性,應(yīng)對(duì)有可能新增業(yè)務(wù)部門和人員等情況,將業(yè)務(wù)流程設(shè)計(jì)為一個(gè)兩層子流程嵌套的復(fù)雜流程。
2.3.1主流程設(shè)計(jì)
在主流程實(shí)例里,工程數(shù)據(jù)部構(gòu)型管理員進(jìn)入系統(tǒng)獲取對(duì)應(yīng)的task-“構(gòu)型指派任務(wù)”,人工處理,通過(guò)decision判斷,如果不需要落實(shí)處理,則直接關(guān)閉到end結(jié)點(diǎn),整個(gè)流程結(jié)束(如圖1所示)。
圖1 主流程圖
如果需要往下分發(fā)處理落實(shí),則根據(jù)手動(dòng)選擇流轉(zhuǎn)到foreach結(jié)點(diǎn),動(dòng)態(tài)并發(fā)生成多個(gè)sub-process子節(jié)點(diǎn),創(chuàng)建多個(gè)子流程實(shí)例,流轉(zhuǎn)到子節(jié)點(diǎn)處理,join結(jié)點(diǎn)接收到所有子節(jié)點(diǎn)處理結(jié)果后,生產(chǎn)task-“構(gòu)型管理審核”,人工處理,通過(guò)decision判斷,如果審批通過(guò)則整個(gè)流程結(jié)束,如果不通過(guò)則駁回,流轉(zhuǎn)到foreach重復(fù)之前的動(dòng)態(tài)產(chǎn)生多個(gè)sub-process結(jié)點(diǎn),創(chuàng)建多個(gè)子流程實(shí)例。
2.3.2一級(jí)子流程設(shè)計(jì)
在一級(jí)子流程實(shí)例中,業(yè)務(wù)部門的構(gòu)型管理員接收到task,人工處理,傳遞到decision結(jié)點(diǎn)判斷,如果不需要落實(shí),則直接到end結(jié)束此流程,返回到上一級(jí)流程中對(duì)應(yīng)的join結(jié)點(diǎn);否則根據(jù)手動(dòng)選擇通過(guò)foreach動(dòng)態(tài)分派任務(wù)到多個(gè)科室,并創(chuàng)建二級(jí)子流程sub-process.如果是航材部門則需要在工程室處理完成后繼續(xù)由工程室審核員決定是否往后流轉(zhuǎn)及流程的科室,所有科室完成后返回到主流程(如圖2所示)。
圖2 一級(jí)子流程圖
2.3.3二級(jí)子流程設(shè)計(jì)
在二級(jí)子流程實(shí)例中,與一級(jí)子流程類似,只是在科室內(nèi)部流轉(zhuǎn),完成后返回到一級(jí)子流程對(duì)應(yīng)的join結(jié)點(diǎn)(如圖3所示)。
圖3 二級(jí)子流程圖
2.4流程管理與實(shí)現(xiàn)
流程管理作為一個(gè)飛機(jī)工程指令落實(shí)更改系統(tǒng)的核心,全權(quán)交給JBPM4管理,啟動(dòng)流程后,通過(guò)外鍵ID關(guān)聯(lián)到業(yè)務(wù)表,業(yè)務(wù)表中存儲(chǔ)符合業(yè)務(wù)需求的流程信息,JBPM4只需關(guān)注流程的發(fā)起、流轉(zhuǎn)、結(jié)束,其他的業(yè)務(wù)邏輯流程單獨(dú)開發(fā)管理。流程管理作為定制核心不在系統(tǒng)頁(yè)面上具體表現(xiàn),整個(gè)系統(tǒng)的查看任務(wù),數(shù)據(jù)查詢,報(bào)表導(dǎo)出等多個(gè)業(yè)務(wù)模塊不與流程模塊綁定。
本文介紹了工作流的概念,工作流程引擎JBPM4的定義及特點(diǎn)、開發(fā)流程等,分析了ARJ飛機(jī)工程落實(shí)更改的業(yè)務(wù)流程,并在設(shè)計(jì)開發(fā)了一套基于JBPM4工作流引擎的飛機(jī)工程落實(shí)更改管理控制系統(tǒng),對(duì)JBPM4的業(yè)務(wù)流程功能進(jìn)行了應(yīng)用。經(jīng)實(shí)踐證明,該業(yè)務(wù)流程管理系統(tǒng)運(yùn)行正常,有較高的兼容性,可擴(kuò)展性。盡管在某些細(xì)節(jié)方面仍存在不適用于業(yè)務(wù)方面,但不影響整體系統(tǒng)開發(fā)。將JBPM4作為系統(tǒng)流程管理核心,節(jié)省了開發(fā)人員對(duì)于業(yè)務(wù)流程管理時(shí)間,提高了開發(fā)效率,降低開發(fā)成本,對(duì)于一般業(yè)務(wù)流程系統(tǒng)開發(fā)是一個(gè)很好的嘗試。
參考文獻(xiàn):
[1]郭方華.民用飛機(jī)工程更改控制流程綜述[J].科技信息Science&Technology Information.2013,(20):387.
[2]范玉順.工作流管理技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2001.
[3]高杰.深入淺出jBPM[M].北京:人民郵電出版社,2009.
[4]凌正俊.基于JBPM與JPDL的工作流管理系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(8):50-53.
[5]胡奇.JBPM4工作流應(yīng)用開發(fā)指南[M].北京:電子工業(yè)出版社,2011:42-43.
The Application of Implementation Tracking System for Aircraft Engineering Order Using JBPM4
YU Jun
(Shanghai Aviation industry(Group)Co.,Ltd.Commercial Aircraft Corporation of China,Shanghai 201210,China)
Abstract:This paper illustrates workflow and JBPM4;research on JBPM4,including the characteristics of JBPM4,define and deploy the workflow.The author build a system named airplane engineering order change implement tracking system on the base of JBPM4,apply to ARJ21-700,on the purpose to manage workflow properly and simplify system design and development,improve the efficiency of software development,and the system's scalability and maintainability.
Key words:workflow;JBPM4;airplane engineering order;change implementation
中圖分類號(hào):TP311.5
文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-545X(2016)03-0201-03
收稿日期:2015-12-03
作者簡(jiǎn)介:余軍(1987-),男,湖南常德人,碩士研究生,工程師,研究方向?yàn)槠髽I(yè)信息化。