弘婭暉,楊雅棋
(1.中國商用飛機(jī)有限責(zé)任公司 數(shù)據(jù)管理中心,上海 200126;2.上海飛機(jī)制造有限公司 信息技術(shù)部,上海 201324)
作為國家工業(yè)制造的核心產(chǎn)業(yè),航空制造業(yè)是較早提出企業(yè)信息化的領(lǐng)域之一。由于企業(yè)信息化過程中存在著實施難度大、流程鏈路長、投入高、風(fēng)險高、流程周期長、跨部門協(xié)同量大等特點,航空制造企業(yè)在管理信息化方面始終沒有取得突破進(jìn)展[1]。一個重要的因素在于企業(yè)內(nèi)部信息化長期處于離散的獨立推進(jìn)過程,一個業(yè)務(wù)流程分布在多個信息系統(tǒng)中,系統(tǒng)之間相互隔離不打通,沒有形成統(tǒng)一、完整的業(yè)務(wù)流程閉環(huán)[2]。針對這種情況,當(dāng)前常用的解決方法為人為介入或者系統(tǒng)間接口調(diào)用。
然而在業(yè)務(wù)執(zhí)行過程中發(fā)現(xiàn),以人為介入的方式彌補(bǔ)信息系統(tǒng)對接的缺失,會帶來人力資源的消耗和信息失真的問題。信息經(jīng)過多層的收集、整理、匯總和傳遞,每一級都可能對信息進(jìn)行加工,信息越到末端失真可能性越大;通過接口調(diào)用進(jìn)行信息系統(tǒng)打通的方式會隨著系統(tǒng)數(shù)量的增長,要維護(hù)的接口越來越多,大大地增加了系統(tǒng)升級和變更的成本,拖慢了信息化建設(shè)的步伐。
針對以上現(xiàn)狀,本文提出了一種基于流程驅(qū)動的航空制造業(yè)信息化建設(shè)方法,通過流程整合相關(guān)業(yè)務(wù),避免信息系統(tǒng)間相互接口調(diào)用,形成有效的業(yè)務(wù)處理機(jī)制。同時以流程為驅(qū)動,改變?nèi)藶榻槿氲臉I(yè)務(wù)推動模式,通過在系統(tǒng)中建立業(yè)務(wù)流程,使處理過程自動根據(jù)流程節(jié)點執(zhí)行,直至流程結(jié)束[3]。
基于流程驅(qū)動業(yè)務(wù)設(shè)計思路是將一個業(yè)務(wù)過程進(jìn)行流程化劃分,首先是將一個完整的業(yè)務(wù)處理過程切分成一個個按一定規(guī)則編排的業(yè)務(wù)子過程。每個子過程完成一塊獨立的功能,業(yè)務(wù)在實際執(zhí)行過程中根據(jù)業(yè)務(wù)規(guī)則判斷執(zhí)行某個具體分支,當(dāng)流程從起點開始根據(jù)業(yè)務(wù)規(guī)則逐個運行完鏈路上的節(jié)點到達(dá)結(jié)束節(jié)點時,則一個業(yè)務(wù)執(zhí)行完成。中途每執(zhí)行一個節(jié)點,代表執(zhí)行一項業(yè)務(wù)過程。圖1為具體的一個業(yè)務(wù)流程執(zhí)行示例。
圖1 業(yè)務(wù)流程示例
對于一個流程化的業(yè)務(wù),我們將整個業(yè)務(wù)按以下三層結(jié)構(gòu)進(jìn)行梳理和拆分(圖2):
圖2 流程模型圖
(1)流程
由不同的業(yè)務(wù)節(jié)點按照一定的業(yè)務(wù)規(guī)則串聯(lián)而成,描述了一個完整業(yè)務(wù)從開始到結(jié)束的全生命周期,其中包括了該業(yè)務(wù)所包含的全部業(yè)務(wù)分支和異常情況,必須包含一個唯一的流程入口,但是可以有多個出口。
(2)節(jié)點
一個節(jié)點是一個獨立的功能模塊,這里所謂的獨立可以理解為該模塊與當(dāng)前業(yè)務(wù)沒有強(qiáng)耦合,可以作為一個單元完整的移植到其他的流程中。一個節(jié)點代表一個完整的子業(yè)務(wù)過程,這個子業(yè)務(wù)過程范圍可大可小,根據(jù)業(yè)務(wù)系統(tǒng)自己設(shè)定,一個節(jié)點可以包含一個或多個業(yè)務(wù)動作,這些業(yè)務(wù)動作可以按照當(dāng)前子業(yè)務(wù)過程以適當(dāng)?shù)捻樞驁?zhí)行。
(3)動作
一個動作是業(yè)務(wù)流程中的最小單位,不可拆分,在流程驅(qū)動的業(yè)務(wù)系統(tǒng)中是一個 SPI(Service Provider Interface)服務(wù)。平臺方提供 SPI 接口的定義,業(yè)務(wù)接入方提供 SPI 服務(wù)的具體實現(xiàn),流程引擎會根據(jù)當(dāng)前流程模板的定義中所注冊的服務(wù),查找到具體的服務(wù)實現(xiàn)并執(zhí)行。
本文所述流程引擎執(zhí)行的粒度是SPI接口服務(wù)維度,并不是外部應(yīng)用維度,即一個現(xiàn)有信息系統(tǒng)中可以封裝出多個SPI服務(wù)實現(xiàn),并且把這個實現(xiàn)分別編排到不同的業(yè)務(wù)節(jié)點中。這種設(shè)計最大程度上將系統(tǒng)服務(wù)模塊化同時兼容了歷史現(xiàn)狀。
基于流程驅(qū)動的業(yè)務(wù)系統(tǒng)按照組成部分可以分為一下幾個模塊(圖3):
圖3 流程驅(qū)動業(yè)務(wù)系統(tǒng)架構(gòu)圖
(1)模板管理模塊
主要提供業(yè)務(wù)流程創(chuàng)建和維護(hù)的功能,業(yè)務(wù)編制人員可以使用這個模塊的功能將實際業(yè)務(wù)梳理成一張滿足標(biāo)準(zhǔn)的流程圖,并保存到系統(tǒng)中。本模塊使用BPMN作為業(yè)務(wù)流程模板的描述語言,保證流程模板跨平臺和可移植性。
(2)流程引擎模塊
是流程驅(qū)動系統(tǒng)的核心模塊,提供執(zhí)行BPMN流程描述語言的執(zhí)行器和解釋器,該引擎可以按照BPMN描述語言所描述流程節(jié)點之間的流轉(zhuǎn)規(guī)則,逐一執(zhí)行流程中配置的各個節(jié)點,從而完成一整串業(yè)務(wù)過程。本模塊選擇ACTIVI開源流程組件作為業(yè)務(wù)流程的驅(qū)動引擎,并在此基礎(chǔ)上針對SPI接口規(guī)范進(jìn)行二次開發(fā)。
(3)流程管控模塊
主要用于監(jiān)控業(yè)務(wù)系統(tǒng)的執(zhí)行過程,相對于傳統(tǒng)信息系統(tǒng)的執(zhí)行過程不可見,基于流程驅(qū)動的業(yè)務(wù)系統(tǒng)可以通過這個模塊清晰的監(jiān)控業(yè)務(wù)推進(jìn)過程中的每一個環(huán)節(jié),包括當(dāng)前所在的流程位置、已處理節(jié)點軌跡以及當(dāng)前業(yè)務(wù)流程的數(shù)據(jù)等。當(dāng)前流程運行時實例使用MYSQL作為存儲中間件,同時流程上下文使用Key-Value形式進(jìn)行存儲和管理。
(4)數(shù)據(jù)管理模塊
在流程驅(qū)動業(yè)務(wù)過程中會產(chǎn)生大量數(shù)據(jù),包括業(yè)務(wù)數(shù)據(jù)和流程運行時數(shù)據(jù)。通過對業(yè)務(wù)數(shù)據(jù)和流程運行時數(shù)據(jù)的分析和可視化展示,讓使用者和管理者對整個業(yè)務(wù)實現(xiàn)從微觀到宏觀的全面認(rèn)識。
本文以民機(jī)生產(chǎn)執(zhí)行系統(tǒng)建設(shè)為例,基于上述流程驅(qū)動業(yè)務(wù)設(shè)計方法,在充分梳理當(dāng)前民機(jī)研制過程中的相關(guān)業(yè)務(wù)現(xiàn)狀后,采用J2EE和B/S服務(wù)架構(gòu)進(jìn)行了系統(tǒng)實現(xiàn),如圖4所示。從系統(tǒng)管理人員編制相關(guān)業(yè)務(wù)流程配置文件開始,業(yè)務(wù)流程在整個執(zhí)行過程中,實現(xiàn)了從業(yè)務(wù)起點到終點的線上化執(zhí)行,數(shù)據(jù)在系統(tǒng)之間自動推送和流轉(zhuǎn)。通過數(shù)據(jù)看板,可以查看到歷史和當(dāng)前執(zhí)行過程中的業(yè)務(wù)流程詳細(xì)執(zhí)行過程。由于整個業(yè)務(wù)流程過程是通過BPMN流程語言編制而成,流程中每個節(jié)點是與具體業(yè)務(wù)無關(guān)的獨立功能模塊,從而可以快速新增或刪除,這些特性較好的支持了業(yè)務(wù)的快速迭代和更新。
圖4 業(yè)務(wù)架構(gòu)圖
本文針對當(dāng)前航空制造業(yè)信息化過程中存在的一系列數(shù)據(jù)和系統(tǒng)隔離的問題,提出了一種基于流程驅(qū)動的信息化建設(shè)方法,并且應(yīng)用于民機(jī)生產(chǎn)執(zhí)行系統(tǒng)的開發(fā)過程中,實現(xiàn)從業(yè)務(wù)起點到終點的全流程閉環(huán)處理。在減少人力資源投入的同時,保證了數(shù)據(jù)的真實性和完整性,模塊化的設(shè)計更好的支持了業(yè)務(wù)的快速迭代和更新,提升了企業(yè)管理效率。