張亞楠,邵學(xué)彬,國建勝
(中國汽車技術(shù)研究中心,天津 300300)
基于JBPM流程可配置的機(jī)動車型式認(rèn)證系統(tǒng)的研究與實(shí)現(xiàn)
張亞楠,邵學(xué)彬,國建勝
(中國汽車技術(shù)研究中心,天津 300300)
隨著中國汽車行業(yè)法規(guī)的不斷完善,汽車企業(yè)需要將汽車2000余項(xiàng)參數(shù)填報(bào)到《公告》、CCC、環(huán)保、油耗等政務(wù)平臺中,各個(gè)政務(wù)平臺需要填報(bào)的參數(shù)各不相同,但有交叉。以往這些參數(shù)都是通過線下EXCEL的方式進(jìn)行收集,造成參數(shù)收集狀態(tài)不透明,進(jìn)度跟蹤困難,認(rèn)證參數(shù)的填寫、變更無法追溯等問題。為解決企業(yè)實(shí)際問題,有必要進(jìn)行研究并改進(jìn)JBPM工作流引擎,設(shè)計(jì)和開發(fā)流程可配置的機(jī)動車型式認(rèn)證系統(tǒng),以滿足不同企業(yè),不同流程的參數(shù)收集需求,提高參數(shù)收集的效率和過程可控性。
工作流;型式認(rèn)證;JBPM;可配置
目前,汽車企業(yè)法規(guī)認(rèn)證涉及車輛生產(chǎn)企業(yè)及產(chǎn)品公告、CCC認(rèn)證、國家排放目錄、地方排放目錄(北京)、E/ e-Mark認(rèn)證、GCC認(rèn)證等國內(nèi)外認(rèn)證,涉及的車型認(rèn)證參數(shù)有2 000多項(xiàng),參數(shù)的收集、審批、變更和上報(bào)涉及眾多COC部門,從參數(shù)需求的下發(fā)到國家認(rèn)證機(jī)構(gòu)批準(zhǔn)參數(shù)往往需要數(shù)個(gè)月的時(shí)間。隨著市場法規(guī)不斷更新,涉及的型式認(rèn)證參數(shù)將不斷增加;汽車企業(yè)在參數(shù)的收集、變更和上報(bào)等參數(shù)管理業(yè)務(wù)存在參數(shù)收集效率低下、準(zhǔn)確率低、參數(shù)收集狀態(tài)不透明、進(jìn)度跟蹤困難、認(rèn)證參數(shù)的填寫及變更無法追溯等問題,急需通過電子化、流程化的方式收集這些參數(shù)。目前行業(yè)中應(yīng)用比較多的工作流程引擎是Java業(yè)務(wù)流程管理(Java Business Process Management,JBPM),但JBPM流程引擎,需要在開發(fā)環(huán)境中,使用JBPM提供的流程圖繪制工具進(jìn)行流程的繪制,并在后臺編寫代碼,相對比較繁瑣,存在開發(fā)效率低,軟件產(chǎn)品質(zhì)量難以保障等問題。本文結(jié)合業(yè)務(wù)實(shí)際情況,研究并改進(jìn)JBPM流程引擎,通過流程和業(yè)務(wù)的解耦,實(shí)現(xiàn)在線可配置流程的機(jī)動車型式認(rèn)證系統(tǒng),極大地提高了開發(fā)效率和軟件產(chǎn)品的質(zhì)量。
1.1 JBPM工作原理
JBPM是基于J2EE的、開源的輕量級工作流管理系統(tǒng),包含了工作流、業(yè)務(wù)流程管理、服務(wù)協(xié)作等功能。JBPM 并沒有采用 WfMC或BPEL 標(biāo)準(zhǔn),而是采用自身的輕量級XML結(jié)構(gòu)的流程描述語言(JBoss JBPM Process Definition Language,JPDL),它通過結(jié)合狀態(tài)機(jī)、UML2. 0活動圖、PetriNet 算法等方面的知識,擴(kuò)充了建模能力,顯得更加簡單易懂。
1.2 JBPM 的工作過程
(1)流程定義與部署。軟件開發(fā)人員首先根據(jù)需要進(jìn)行流程的定義,將流程節(jié)點(diǎn)、流程屬性、人員信息、業(yè)務(wù)處理邏輯利用流程語言配置到XML中。然后利用JBPM提供的流程定義接口,將定義好的流程定義文件保存到數(shù)據(jù)庫中。JBPM本身提供內(nèi)存數(shù)據(jù)庫,但在開發(fā)過程中,一般不用內(nèi)存數(shù)據(jù)庫,而是外接關(guān)系型數(shù)據(jù)庫,如Oracle,MySQL等[1]。
(2)流程解析。在開發(fā)環(huán)境下,完成流程定義后,需要把流程定義文件上傳到JBPM工作流引擎,工作流程引擎對流程定義文件信息解析[2],把相應(yīng)的對象持久化到數(shù)據(jù)庫中。在解析的過程中也會對相應(yīng)的XML文件進(jìn)行校驗(yàn),只有校驗(yàn)通過后的流程,才能被正確地解析。否則,流程引擎會拋出錯(cuò)誤,不能正常解析流程。
(3)用戶交互。解析成功后的工作流,可以通過Internet訪問,操作工作流引擎生成的流程實(shí)例。這種交互的過程主要通過活動表單完成,當(dāng)用戶登錄到系統(tǒng)中,可以通過查詢語句獲得該用戶下的待辦任務(wù)、已辦任務(wù)列表。在流程啟動時(shí),首先系統(tǒng)會構(gòu)建一個(gè)流程實(shí)例,在流程實(shí)例中會包含流程發(fā)起者、任務(wù)本身的相關(guān)信息,以及指定下一個(gè)任務(wù)節(jié)點(diǎn)是什么,下一個(gè)任務(wù)接受者都有哪些。當(dāng)下一個(gè)任務(wù)接受者接到任務(wù)后,點(diǎn)擊完成任務(wù),那么該任務(wù)會繼續(xù)向下流轉(zhuǎn),直至整個(gè)流程結(jié)束。
本文在JBPM工作原理的技術(shù)上進(jìn)行改進(jìn),首先將流程語言和業(yè)務(wù)場景進(jìn)行解耦,然后開發(fā)和改進(jìn)JBPM流程設(shè)計(jì)器,實(shí)現(xiàn)在前臺界面上即可便捷高效的配置流程。在流程節(jié)點(diǎn)將業(yè)務(wù)及人員信息與節(jié)點(diǎn)進(jìn)行綁定,流程配置完,直接發(fā)布,流程即可生效。在業(yè)務(wù)基本相同,流程不同時(shí),只需在前臺界面配置對應(yīng)的節(jié)點(diǎn)類型、業(yè)務(wù)類型、人員信息即可滿足企業(yè)定制化流程要求,極大地提高了項(xiàng)目的生產(chǎn)效率。
首先將現(xiàn)有系統(tǒng)業(yè)務(wù)和流程進(jìn)行分解,然后設(shè)計(jì)和開發(fā)在線流程設(shè)計(jì)器。利用在線流程設(shè)計(jì)器,完成流程、業(yè)務(wù)和人員的關(guān)聯(lián),然后通過流程工作引擎實(shí)現(xiàn)將流程相關(guān)信息持久化到數(shù)據(jù)庫中,用戶便可通過登錄系統(tǒng)對流程進(jìn)行實(shí)例化。具體改進(jìn)方案如圖1所示。
2.1 業(yè)務(wù)分解與建模
通過對汽車企業(yè)參數(shù)收集流程以及每個(gè)流程節(jié)點(diǎn)所對應(yīng)的業(yè)務(wù)進(jìn)行調(diào)研和分析,然后提取相應(yīng)的業(yè)務(wù)模型,為后續(xù)框架的設(shè)計(jì)提供業(yè)務(wù)支持。通過業(yè)務(wù)模型的提取,可以實(shí)現(xiàn)系統(tǒng)高內(nèi)聚,低耦合,提高代碼的可復(fù)用性。通過對30余家企業(yè)的參數(shù)收集流程的研究和分析,可以將流程節(jié)點(diǎn)分為參數(shù)分發(fā)、參數(shù)填寫、參數(shù)審核3個(gè)業(yè)務(wù)模型,參數(shù)分發(fā)主要實(shí)現(xiàn)上級給下級分配參數(shù)填寫任務(wù),參數(shù)填寫主要實(shí)現(xiàn)工程師填寫參數(shù),參數(shù)審核主要是上級審核如圖1所示的圖形設(shè)計(jì)器中配置流程和業(yè)務(wù)。
圖1 JBPM技術(shù)改進(jìn)方案
根據(jù)業(yè)務(wù)分解與建模情況,開發(fā)和設(shè)計(jì)JBPM在線圖形設(shè)計(jì)器,在線圖形設(shè)計(jì)器可以配置業(yè)務(wù)和流程之間的關(guān)系,利用流程生成算法[3],將圖形設(shè)計(jì)器設(shè)計(jì)的流程和業(yè)務(wù)轉(zhuǎn)化為JBPM流程定義語言(JPDL)。在圖形設(shè)計(jì)器中,首先將流程相關(guān)節(jié)點(diǎn)拖拽到流程編輯區(qū)中,然后配置節(jié)點(diǎn)對應(yīng)的業(yè)務(wù),如參數(shù)分發(fā)、參數(shù)填寫、參數(shù)審核等。同時(shí),在對應(yīng)的節(jié)點(diǎn)上,配置節(jié)點(diǎn)對應(yīng)的人員信息。
2.2 流程部署
在線圖形設(shè)計(jì)器,通過流程發(fā)布按鈕,實(shí)現(xiàn)配置的流程部署到數(shù)據(jù)庫中,JBPM工作流引擎可以調(diào)用數(shù)據(jù)庫中的流程數(shù)據(jù),驅(qū)動流程推進(jìn)。
2.3 工作流引擎流程解析
通過工作流引擎,業(yè)務(wù)系統(tǒng)可以生成流程實(shí)例,按照流程規(guī)則,推進(jìn)流程,并將生成的流程數(shù)據(jù)保存數(shù)據(jù)庫中,如待辦事項(xiàng)。當(dāng)用戶登錄業(yè)務(wù)系統(tǒng)時(shí),通過流程工作引擎可以查詢該用戶名下的待辦任務(wù)和已辦任務(wù),并且可以辦理待辦任務(wù)。當(dāng)辦理待辦任務(wù)時(shí),通過工作流引擎更改數(shù)據(jù)庫中該用戶該任務(wù)的狀態(tài),將其改為已辦理,同時(shí),工作流引擎向數(shù)據(jù)庫插入相關(guān)流程數(shù)據(jù),比如下一個(gè)任務(wù)的接受者是誰,需要辦理什么樣的業(yè)務(wù)等。
本系統(tǒng)以JBPM4為基礎(chǔ),利用Struts2,Spring,Hibernate三大開源框架,選用Oracle數(shù)據(jù)庫,設(shè)計(jì)實(shí)現(xiàn)了流程可配置的機(jī)動車型式認(rèn)證系統(tǒng)。如圖2所示,系統(tǒng)分為用戶界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫層[4]。
圖2 分層架構(gòu)
3.1 數(shù)據(jù)庫層
JBPM4使用Hibernate技術(shù)來進(jìn)行數(shù)據(jù)庫的操作,通過Hibernate相關(guān)技術(shù),JBPM將數(shù)據(jù)的管理職能分離出去,JBPM主要用來處理業(yè)務(wù)邏輯。通過Hibernate技術(shù),JBPM將流程定義和流程執(zhí)行過程中,產(chǎn)生的業(yè)務(wù)數(shù)據(jù)、流程實(shí)例化數(shù)據(jù)、狀態(tài)流轉(zhuǎn)等數(shù)據(jù)保存到對應(yīng)的數(shù)據(jù)庫中。
3.2 業(yè)務(wù)邏輯層
該層用到的技術(shù)主要是Struts2相關(guān)技術(shù),該層主要功能是處理業(yè)務(wù)邏輯。該層接受用戶界面層傳遞過來的請求,然后調(diào)用流程處理程序、工作流引擎、業(yè)務(wù)處理程序,對請求進(jìn)行處理,并將相關(guān)數(shù)據(jù)通過數(shù)據(jù)層保存到數(shù)據(jù)庫中,同時(shí)將處理結(jié)果反饋到前臺界面。
3.3 用戶界面層
通過流程設(shè)計(jì)工具來定義業(yè)務(wù)流程模型;用流程屬性配置工具來配置流程與單據(jù)的關(guān)聯(lián)關(guān)系,配置在流程運(yùn)轉(zhuǎn)過程中表單的操作權(quán)限及配置流程在系統(tǒng)中顯示的值等。
3.4 系統(tǒng)應(yīng)用與結(jié)果分析
本文所設(shè)計(jì)的流程可配置的型式認(rèn)證系統(tǒng)已經(jīng)在多家汽車企業(yè)投入使用,并取得了較好的效果。改進(jìn)的工作流程引擎,無論是軟件開發(fā)的效率還是軟件開發(fā)的質(zhì)量上都得到了大幅度的提升。從軟件效率上來看,利用改進(jìn)后的可配置流程技術(shù)比原有的開發(fā)效率提升4倍以上。不同企業(yè),采用的參數(shù)收集流程不同,按照改進(jìn)前的方式,開發(fā)周期一般在40天左右;技術(shù)升級后,開發(fā)周期控制在10天以內(nèi)。從軟件產(chǎn)品質(zhì)量上來看,軟件在測試過程中和系統(tǒng)上線后,BUG出現(xiàn)的概率也大幅減低,客戶的滿意度得到了明顯的提升。
JBPM工作流管理系統(tǒng)實(shí)現(xiàn)對流程管理之前,需要將流程定義文件發(fā)布到工作流管理系統(tǒng)中。傳統(tǒng)的流程定義文件的生成方式完全利用人工去完成,效率比較低,本文對傳統(tǒng)的JBPM流程技術(shù)進(jìn)行改進(jìn),實(shí)現(xiàn)流程在線可配置,并將改進(jìn)后的相關(guān)技術(shù)應(yīng)用到機(jī)動車型式認(rèn)證系統(tǒng)中,并取得良好效果,使得軟件的開發(fā)效率和質(zhì)量都有很大幅度的提升。
[1]許愛軍.JBPM工作流管理系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013(12):102-104.
[2]趙玉嬌,趙偉.基于JBPM的工作流系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2011(16):3797-3798.
[3]王偉,徐文勝.JBPM流程定義文件自動生成算法[J].計(jì)算機(jī)應(yīng)用,2012(32):89-91.
[4]葉光,楊建軍.基于JBPM的工作流可配置技術(shù)及應(yīng)用[J].成組技術(shù)與生產(chǎn)現(xiàn)代化,2012(2):35-39.
Research and implementation of mobile vehicle type certification system based on JBPM process
Zhang Yanan, Shao Xuebin, Guo Jiansheng
(China Automotive Technology Research Center, Tianjin 300300, China)
With the continuous improvement of China’s automobile industry laws and regulations, more than 2000 car parameters will be reported to“announcement”, CCC, environmental protection, fuel consumption and other government platform by car companies, the parameters need to be fill vary in each government platform, but there are cross. In the past, these parameters are collected by way of offline EXCEL, which caused problems that collect state of parameter is opaque, progress tracking is difficult, filling in and change of the authentication parameters can not be traced back and so on. In order to solve the practical problems of enterprises, it is necessary to research and improve JBPM workflow engine, design and develop vehicle type certification system whose process can be configured to meet the needs of different enterprises, different process parameters, therefore to improve the efficiency of parameter collection and process controllability.
workflow; type authentication; JBPM; configurable
張亞楠(1986— ),男,山東單縣。