張亞楠,邵學彬,國建勝
(中國汽車技術(shù)研究中心,天津 300300)
基于JBPM流程可配置的機動車型式認證系統(tǒng)的研究與實現(xiàn)
張亞楠,邵學彬,國建勝
(中國汽車技術(shù)研究中心,天津 300300)
隨著中國汽車行業(yè)法規(guī)的不斷完善,汽車企業(yè)需要將汽車2000余項參數(shù)填報到《公告》、CCC、環(huán)保、油耗等政務平臺中,各個政務平臺需要填報的參數(shù)各不相同,但有交叉。以往這些參數(shù)都是通過線下EXCEL的方式進行收集,造成參數(shù)收集狀態(tài)不透明,進度跟蹤困難,認證參數(shù)的填寫、變更無法追溯等問題。為解決企業(yè)實際問題,有必要進行研究并改進JBPM工作流引擎,設(shè)計和開發(fā)流程可配置的機動車型式認證系統(tǒng),以滿足不同企業(yè),不同流程的參數(shù)收集需求,提高參數(shù)收集的效率和過程可控性。
工作流;型式認證;JBPM;可配置
目前,汽車企業(yè)法規(guī)認證涉及車輛生產(chǎn)企業(yè)及產(chǎn)品公告、CCC認證、國家排放目錄、地方排放目錄(北京)、E/ e-Mark認證、GCC認證等國內(nèi)外認證,涉及的車型認證參數(shù)有2 000多項,參數(shù)的收集、審批、變更和上報涉及眾多COC部門,從參數(shù)需求的下發(fā)到國家認證機構(gòu)批準參數(shù)往往需要數(shù)個月的時間。隨著市場法規(guī)不斷更新,涉及的型式認證參數(shù)將不斷增加;汽車企業(yè)在參數(shù)的收集、變更和上報等參數(shù)管理業(yè)務存在參數(shù)收集效率低下、準確率低、參數(shù)收集狀態(tài)不透明、進度跟蹤困難、認證參數(shù)的填寫及變更無法追溯等問題,急需通過電子化、流程化的方式收集這些參數(shù)。目前行業(yè)中應用比較多的工作流程引擎是Java業(yè)務流程管理(Java Business Process Management,JBPM),但JBPM流程引擎,需要在開發(fā)環(huán)境中,使用JBPM提供的流程圖繪制工具進行流程的繪制,并在后臺編寫代碼,相對比較繁瑣,存在開發(fā)效率低,軟件產(chǎn)品質(zhì)量難以保障等問題。本文結(jié)合業(yè)務實際情況,研究并改進JBPM流程引擎,通過流程和業(yè)務的解耦,實現(xiàn)在線可配置流程的機動車型式認證系統(tǒng),極大地提高了開發(fā)效率和軟件產(chǎn)品的質(zhì)量。
1.1 JBPM工作原理
JBPM是基于J2EE的、開源的輕量級工作流管理系統(tǒng),包含了工作流、業(yè)務流程管理、服務協(xié)作等功能。JBPM 并沒有采用 WfMC或BPEL 標準,而是采用自身的輕量級XML結(jié)構(gòu)的流程描述語言(JBoss JBPM Process Definition Language,JPDL),它通過結(jié)合狀態(tài)機、UML2. 0活動圖、PetriNet 算法等方面的知識,擴充了建模能力,顯得更加簡單易懂。
1.2 JBPM 的工作過程
(1)流程定義與部署。軟件開發(fā)人員首先根據(jù)需要進行流程的定義,將流程節(jié)點、流程屬性、人員信息、業(yè)務處理邏輯利用流程語言配置到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],把相應的對象持久化到數(shù)據(jù)庫中。在解析的過程中也會對相應的XML文件進行校驗,只有校驗通過后的流程,才能被正確地解析。否則,流程引擎會拋出錯誤,不能正常解析流程。
(3)用戶交互。解析成功后的工作流,可以通過Internet訪問,操作工作流引擎生成的流程實例。這種交互的過程主要通過活動表單完成,當用戶登錄到系統(tǒng)中,可以通過查詢語句獲得該用戶下的待辦任務、已辦任務列表。在流程啟動時,首先系統(tǒng)會構(gòu)建一個流程實例,在流程實例中會包含流程發(fā)起者、任務本身的相關(guān)信息,以及指定下一個任務節(jié)點是什么,下一個任務接受者都有哪些。當下一個任務接受者接到任務后,點擊完成任務,那么該任務會繼續(xù)向下流轉(zhuǎn),直至整個流程結(jié)束。
本文在JBPM工作原理的技術(shù)上進行改進,首先將流程語言和業(yè)務場景進行解耦,然后開發(fā)和改進JBPM流程設(shè)計器,實現(xiàn)在前臺界面上即可便捷高效的配置流程。在流程節(jié)點將業(yè)務及人員信息與節(jié)點進行綁定,流程配置完,直接發(fā)布,流程即可生效。在業(yè)務基本相同,流程不同時,只需在前臺界面配置對應的節(jié)點類型、業(yè)務類型、人員信息即可滿足企業(yè)定制化流程要求,極大地提高了項目的生產(chǎn)效率。
首先將現(xiàn)有系統(tǒng)業(yè)務和流程進行分解,然后設(shè)計和開發(fā)在線流程設(shè)計器。利用在線流程設(shè)計器,完成流程、業(yè)務和人員的關(guān)聯(lián),然后通過流程工作引擎實現(xiàn)將流程相關(guān)信息持久化到數(shù)據(jù)庫中,用戶便可通過登錄系統(tǒng)對流程進行實例化。具體改進方案如圖1所示。
2.1 業(yè)務分解與建模
通過對汽車企業(yè)參數(shù)收集流程以及每個流程節(jié)點所對應的業(yè)務進行調(diào)研和分析,然后提取相應的業(yè)務模型,為后續(xù)框架的設(shè)計提供業(yè)務支持。通過業(yè)務模型的提取,可以實現(xiàn)系統(tǒng)高內(nèi)聚,低耦合,提高代碼的可復用性。通過對30余家企業(yè)的參數(shù)收集流程的研究和分析,可以將流程節(jié)點分為參數(shù)分發(fā)、參數(shù)填寫、參數(shù)審核3個業(yè)務模型,參數(shù)分發(fā)主要實現(xiàn)上級給下級分配參數(shù)填寫任務,參數(shù)填寫主要實現(xiàn)工程師填寫參數(shù),參數(shù)審核主要是上級審核如圖1所示的圖形設(shè)計器中配置流程和業(yè)務。

圖1 JBPM技術(shù)改進方案
根據(jù)業(yè)務分解與建模情況,開發(fā)和設(shè)計JBPM在線圖形設(shè)計器,在線圖形設(shè)計器可以配置業(yè)務和流程之間的關(guān)系,利用流程生成算法[3],將圖形設(shè)計器設(shè)計的流程和業(yè)務轉(zhuǎn)化為JBPM流程定義語言(JPDL)。在圖形設(shè)計器中,首先將流程相關(guān)節(jié)點拖拽到流程編輯區(qū)中,然后配置節(jié)點對應的業(yè)務,如參數(shù)分發(fā)、參數(shù)填寫、參數(shù)審核等。同時,在對應的節(jié)點上,配置節(jié)點對應的人員信息。
2.2 流程部署
在線圖形設(shè)計器,通過流程發(fā)布按鈕,實現(xiàn)配置的流程部署到數(shù)據(jù)庫中,JBPM工作流引擎可以調(diào)用數(shù)據(jù)庫中的流程數(shù)據(jù),驅(qū)動流程推進。
2.3 工作流引擎流程解析
通過工作流引擎,業(yè)務系統(tǒng)可以生成流程實例,按照流程規(guī)則,推進流程,并將生成的流程數(shù)據(jù)保存數(shù)據(jù)庫中,如待辦事項。當用戶登錄業(yè)務系統(tǒng)時,通過流程工作引擎可以查詢該用戶名下的待辦任務和已辦任務,并且可以辦理待辦任務。當辦理待辦任務時,通過工作流引擎更改數(shù)據(jù)庫中該用戶該任務的狀態(tài),將其改為已辦理,同時,工作流引擎向數(shù)據(jù)庫插入相關(guān)流程數(shù)據(jù),比如下一個任務的接受者是誰,需要辦理什么樣的業(yè)務等。
本系統(tǒng)以JBPM4為基礎(chǔ),利用Struts2,Spring,Hibernate三大開源框架,選用Oracle數(shù)據(jù)庫,設(shè)計實現(xiàn)了流程可配置的機動車型式認證系統(tǒng)。如圖2所示,系統(tǒng)分為用戶界面層、業(yè)務邏輯層、數(shù)據(jù)庫層[4]。

圖2 分層架構(gòu)
3.1 數(shù)據(jù)庫層
JBPM4使用Hibernate技術(shù)來進行數(shù)據(jù)庫的操作,通過Hibernate相關(guān)技術(shù),JBPM將數(shù)據(jù)的管理職能分離出去,JBPM主要用來處理業(yè)務邏輯。通過Hibernate技術(shù),JBPM將流程定義和流程執(zhí)行過程中,產(chǎn)生的業(yè)務數(shù)據(jù)、流程實例化數(shù)據(jù)、狀態(tài)流轉(zhuǎn)等數(shù)據(jù)保存到對應的數(shù)據(jù)庫中。
3.2 業(yè)務邏輯層
該層用到的技術(shù)主要是Struts2相關(guān)技術(shù),該層主要功能是處理業(yè)務邏輯。該層接受用戶界面層傳遞過來的請求,然后調(diào)用流程處理程序、工作流引擎、業(yè)務處理程序,對請求進行處理,并將相關(guān)數(shù)據(jù)通過數(shù)據(jù)層保存到數(shù)據(jù)庫中,同時將處理結(jié)果反饋到前臺界面。
3.3 用戶界面層
通過流程設(shè)計工具來定義業(yè)務流程模型;用流程屬性配置工具來配置流程與單據(jù)的關(guān)聯(lián)關(guān)系,配置在流程運轉(zhuǎn)過程中表單的操作權(quán)限及配置流程在系統(tǒng)中顯示的值等。
3.4 系統(tǒng)應用與結(jié)果分析
本文所設(shè)計的流程可配置的型式認證系統(tǒng)已經(jīng)在多家汽車企業(yè)投入使用,并取得了較好的效果。改進的工作流程引擎,無論是軟件開發(fā)的效率還是軟件開發(fā)的質(zhì)量上都得到了大幅度的提升。從軟件效率上來看,利用改進后的可配置流程技術(shù)比原有的開發(fā)效率提升4倍以上。不同企業(yè),采用的參數(shù)收集流程不同,按照改進前的方式,開發(fā)周期一般在40天左右;技術(shù)升級后,開發(fā)周期控制在10天以內(nèi)。從軟件產(chǎn)品質(zhì)量上來看,軟件在測試過程中和系統(tǒng)上線后,BUG出現(xiàn)的概率也大幅減低,客戶的滿意度得到了明顯的提升。
JBPM工作流管理系統(tǒng)實現(xiàn)對流程管理之前,需要將流程定義文件發(fā)布到工作流管理系統(tǒng)中。傳統(tǒng)的流程定義文件的生成方式完全利用人工去完成,效率比較低,本文對傳統(tǒng)的JBPM流程技術(shù)進行改進,實現(xiàn)流程在線可配置,并將改進后的相關(guān)技術(shù)應用到機動車型式認證系統(tǒng)中,并取得良好效果,使得軟件的開發(fā)效率和質(zhì)量都有很大幅度的提升。
[1]許愛軍.JBPM工作流管理系統(tǒng)的研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2013(12):102-104.
[2]趙玉嬌,趙偉.基于JBPM的工作流系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2011(16):3797-3798.
[3]王偉,徐文勝.JBPM流程定義文件自動生成算法[J].計算機應用,2012(32):89-91.
[4]葉光,楊建軍.基于JBPM的工作流可配置技術(shù)及應用[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— ),男,山東單縣。