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