張連進(jìn)
(中國航發(fā)成都發(fā)動機(jī)有限公司,四川 成都 610503)
工業(yè)APP 是將工業(yè)技術(shù)進(jìn)行顯性化、模型化后形成的面向特定場景的模塊化軟件,其本質(zhì)是將工業(yè)知識和技術(shù)封裝為特定軟件,是一種包含工業(yè)知識的新型軟件形態(tài)。工業(yè)互聯(lián)網(wǎng)通過大規(guī)模連接軟件、機(jī)器和設(shè)備,構(gòu)建了工業(yè)神經(jīng)系統(tǒng),而工業(yè)APP 通過封裝工業(yè)知識和技術(shù),構(gòu)建了工業(yè)大腦,這一新的工業(yè)模式將給制造業(yè)帶來深刻變革。
工業(yè)APP 并不完全是新生事物,是兩化深度融合的一種新的形態(tài)。近年來,隨著工業(yè)互聯(lián)網(wǎng)、云計算、大數(shù)據(jù)等技術(shù)的發(fā)展,工業(yè)APP 從傳統(tǒng)的單機(jī)架構(gòu)、單體架構(gòu),逐漸演進(jìn)到微服務(wù)、云原生架構(gòu),目前正處于由傳統(tǒng)架構(gòu)向云原生架構(gòu)演進(jìn)的混合階段。
工業(yè)企業(yè)內(nèi)部存在大量異構(gòu)工業(yè)軟件、系統(tǒng)及設(shè)備,如何讓代表工業(yè)技術(shù)、知識的工業(yè)APP 與底層工具解耦,降低系統(tǒng)耦合度,是工業(yè)APP 開發(fā)的難點。通常認(rèn)為,微服務(wù)架構(gòu)是構(gòu)建工業(yè)互聯(lián)網(wǎng)平臺的構(gòu)建最佳的IT 技術(shù)手段,算法、模型、知識等要素可以被封裝為微服務(wù)組件,進(jìn)而以“搭積木”的方式被調(diào)用和編排,實現(xiàn)低門檻、高效率的工業(yè)APP 開發(fā)。
本文將首先討論工業(yè)微服務(wù)的模型及其編排調(diào)度,然后對基于微服務(wù)的工業(yè)機(jī)理模型進(jìn)行研究,最后將介紹在航空發(fā)動機(jī)領(lǐng)域的應(yīng)用實踐。
微服務(wù)架構(gòu)最早由Martin Fowler 與James Lewis 于2014年共同提出。微服務(wù)架構(gòu)以單一功能組件為基礎(chǔ),通過模塊化組合方式開發(fā)軟件,實現(xiàn)“松耦合”。每個微服務(wù)運(yùn)行在自己的進(jìn)程中,使用輕量級通信機(jī)制,如HTTP API,這些服務(wù)基于業(yè)務(wù)能力構(gòu)建,并能夠通過自動化部署機(jī)制來獨(dú)立部署。
與傳統(tǒng)整體式架構(gòu)相比,微服務(wù)架構(gòu)具備兩個顯著特點:一是應(yīng)用開發(fā)和維護(hù)的高度靈活性。每個微服務(wù)可以由不同團(tuán)隊運(yùn)用不同語言和工具進(jìn)行開發(fā)和維護(hù),不互相耦合,而整體式架構(gòu)下任何修改都有可能牽一發(fā)動全身。二是應(yīng)用運(yùn)行的去中心化。不同微服務(wù)能夠分布式運(yùn)行,微服務(wù)間的數(shù)據(jù)和資源相互隔離,單個微服務(wù)的故障將被隔離從而避免整個系統(tǒng)的崩潰。
工業(yè)微服務(wù)是借鑒軟件領(lǐng)域的微服務(wù)架構(gòu)風(fēng)格和技術(shù),將工業(yè)領(lǐng)域的機(jī)理模型、算法進(jìn)行封裝,以及將傳統(tǒng)信息化系統(tǒng)的功能顆粒度進(jìn)行拆解或集成封裝,形成一個個功能單元,支撐工業(yè)APP 的開發(fā)和運(yùn)行。
工業(yè)微服務(wù)在工業(yè)互聯(lián)網(wǎng)框架體系中位于PaaS 層,通常稱為工業(yè)PaaS。工業(yè)PaaS 層是工業(yè)互聯(lián)網(wǎng)平臺最關(guān)鍵的要素之一。
一方面,不同行業(yè)、領(lǐng)域存在大量機(jī)理模型、工程算法等,這些模型和算法往往較為封閉,如很多古老的Fortran 程序,難以通過API 接口被外部系統(tǒng)所調(diào)用,也難以進(jìn)行獨(dú)立調(diào)試、運(yùn)行和升級,用工業(yè)微服務(wù)的方式將這些機(jī)理算法模型封裝起來,形成可通過API 調(diào)用的微服務(wù),從而支持上層工業(yè)APP的開發(fā)。圖1是一個針對汽車白車身工裝設(shè)計的工業(yè)APP案例,通過工業(yè)APP 封裝了夾具設(shè)計相關(guān)經(jīng)驗、標(biāo)準(zhǔn)和規(guī)則,使得設(shè)計周期縮短了80%,節(jié)約夾具平均制造成本30%以上。
另一方面,企業(yè)經(jīng)過多年的信息化建設(shè),“孤島”現(xiàn)象比較突出,業(yè)務(wù)集成開發(fā)難度大,無法靈活響應(yīng)個性化需求。通過采用工業(yè)微服務(wù)的方式,將工業(yè)軟件、管理軟件、計算程序在接口、數(shù)據(jù)上進(jìn)行封裝,將系統(tǒng)細(xì)分功能集成,形成一系列包含調(diào)用邏輯和服務(wù)的微服務(wù)組件集合,并按照實際需求來支撐上層工業(yè)APP 的開發(fā)需求。從而充分利用已有投資成果,又大大降低在業(yè)務(wù)集成、定制開發(fā)等方面的成本。
基于工業(yè)微服務(wù)模塊進(jìn)行工業(yè)APP 開發(fā),能夠接入海量開發(fā)者,借助眾創(chuàng)眾籌等方式共建共享、還能有效發(fā)揮云平臺資源彈性配置、云化部署運(yùn)行等優(yōu)勢,又能夠利用工業(yè)微服務(wù)松耦合、靈活調(diào)用的特點,克服傳統(tǒng)開發(fā)模式所面臨的獨(dú)立部署、持續(xù)迭代、個性化定制等問題。
圖2描述了工業(yè)微服務(wù)組件接口的規(guī)范形式。組件接口主要包括數(shù)據(jù)接口、控制接口、人機(jī)交互接口、消息接口和第三方工具接口。
圖2 工業(yè)微服務(wù)組件的接口形式
(1)數(shù)據(jù)接口用于組件與外部環(huán)境的數(shù)據(jù)交互,通過數(shù)據(jù)接口組件可以獲得外部數(shù)據(jù),并且將組件內(nèi)部數(shù)據(jù)傳遞到外部環(huán)境中去。
(2)控制接口用于定義組件與其上下游組件之間的控制邏輯關(guān)系,分為前驅(qū)控制接口和后繼控制接口,前驅(qū)控制接口用于接收上游組件的控制信息,后繼控制接口用于向下游組件發(fā)送控制信息。
(3)人機(jī)交互接口提供使用人員與組件的交互接口。
(4)消息接口用于接收外部的消息信息。
(5)第三方工具接口提供訪問第三方工具的接口。
邏輯編排包括執(zhí)行邏輯和數(shù)據(jù)流兩類。執(zhí)行邏輯用于記錄和表達(dá)工程設(shè)計過程中的控制關(guān)系(先后次序、串行、并行等關(guān)系),數(shù)據(jù)流用于記錄和表達(dá)微服務(wù)組件之間的數(shù)據(jù)流向、傳遞及映射關(guān)系。
組件之間可以相互組合,實現(xiàn)復(fù)雜的業(yè)務(wù)場景,由于組件具有統(tǒng)一的數(shù)據(jù)接口形式,因此數(shù)據(jù)關(guān)系的建立表現(xiàn)為組件之間數(shù)據(jù)接口的數(shù)據(jù)映射關(guān)系。建立數(shù)據(jù)映射關(guān)系可以有兩種模式,包括手工映射和動態(tài)映射,手工/動態(tài)建立組件的數(shù)據(jù)關(guān)系如圖3、圖4所示。
圖3 手工建立組件的數(shù)據(jù)關(guān)系
執(zhí)行邏輯的定義,描述了微服務(wù)組件之間的業(yè)務(wù)規(guī)則,其中圖4是建立執(zhí)行關(guān)系的一種方式,通過在組件之間建立控制關(guān)系節(jié)點實現(xiàn)組件的執(zhí)行方式,這些控制關(guān)系節(jié)點包含判斷、分支、循環(huán)、并行等。
圖4 動態(tài)建立組件的數(shù)據(jù)關(guān)系
圖5 組件的執(zhí)行關(guān)系
根據(jù)業(yè)務(wù)規(guī)則,組件之間可以定義復(fù)雜的執(zhí)行關(guān)系,根據(jù)業(yè)務(wù)規(guī)則的不同可分為邏輯驅(qū)動、數(shù)據(jù)驅(qū)動、時間驅(qū)動、消息驅(qū)動四種。
物理對象是指存在于客觀物理世界的工業(yè)產(chǎn)品、設(shè)備等物理實體及其所處在的物理環(huán)境。
由于工業(yè)軟件的發(fā)展和成熟,借助CAx 等計算機(jī)輔助技術(shù)可以對物理實體對象的各個方面特性進(jìn)行可視化建模和行為模擬,如結(jié)構(gòu)幾何模型、應(yīng)力分析模型、加工過程模型等。這些數(shù)字化模型是對物理實體在客觀世界的行為的抽象和封裝,是將大量工業(yè)技術(shù)原理、行業(yè)知識、基礎(chǔ)工藝、模型機(jī)理等通過抽象轉(zhuǎn)化為規(guī)則化、模塊化的數(shù)字表達(dá),從而實現(xiàn)在數(shù)字空間中對物理產(chǎn)品的屬性和狀態(tài)(比如形狀、運(yùn)動、特性等)進(jìn)行模型化表達(dá)。這些反應(yīng)物理對象屬性和行為的數(shù)字化模型就是物理對象的機(jī)理模型。
從這個角度來理解,工業(yè)APP 的本質(zhì)就是對物理對象的數(shù)字化模型的封裝,得到可重復(fù)使用的軟件化組件。機(jī)理模型的建模、復(fù)用是開發(fā)部署工業(yè)APP 的關(guān)鍵。如圖6所示。
圖6 物理對象的數(shù)字化模型
物理對象可視化建模在不同的產(chǎn)品生命周期階段、不同的產(chǎn)品層次以及不同的專業(yè)學(xué)科上所用的工具和手段也是不同的。
在研發(fā)階段,需要建立物理對象的需求、功能、架構(gòu)、設(shè)計、仿真等模型。在生產(chǎn)制造階段需要建立生產(chǎn)作業(yè)模型,并通過CAM、CAPP、MES、ERP 等技術(shù)手段建立產(chǎn)品裝配、工藝、制造、構(gòu)型等方面業(yè)務(wù)模型。
不同的建模要求,也存在多種技術(shù)工具、手段支持建模的要求。這些異構(gòu)工具建立的模型最大的問題在于,各個工具系統(tǒng)都立足與自己的領(lǐng)域定義產(chǎn)品的某個方面的模型信息,缺乏一個全局統(tǒng)一的模型標(biāo)準(zhǔn)體系,這就造成在從業(yè)務(wù)層面上應(yīng)該是統(tǒng)一數(shù)據(jù)、模型表達(dá),但是在實際中被各個異構(gòu)的工具割裂開來。
物理對象的幾何結(jié)構(gòu)可視化建模目前主要是借助于商用三維CAD 軟件來實現(xiàn),可視化建模軟件如圖7所示。通過可視化的CAD 建模軟件可以表征物理對象的幾何形狀、拓?fù)浣Y(jié)構(gòu)、表面信息及特征語義等。
圖7 三維模型可視化建模
物理對象的三維數(shù)字化模型表達(dá)了物理實體的結(jié)構(gòu)方面的特征,包括空間尺寸、重量重心、結(jié)構(gòu)約束等。對于封裝了這一類模型的工業(yè)APP 來說,最關(guān)鍵的在于如何建立一套統(tǒng)一的模型標(biāo)準(zhǔn),實現(xiàn)工業(yè)APP 的跨平臺執(zhí)行和流通。從工業(yè)APP 的封裝需求出發(fā),物理對象的三維幾何結(jié)構(gòu)模型表達(dá)標(biāo)準(zhǔn)應(yīng)該從三個方面來考慮。如圖8所示。
圖8 三維幾何結(jié)構(gòu)模型
(1)靜態(tài)屬性標(biāo)準(zhǔn):定義了模型的幾何位置、材料屬性這些靜態(tài)參數(shù)。
(2)過程屬性標(biāo)準(zhǔn):要定義了模型的建模特征以及幾何之間的約束信息,如草圖、拉伸、旋轉(zhuǎn)、裝配約束等。
(3)模型轉(zhuǎn)換工具:將不同CAD 軟件生成的模型文件轉(zhuǎn)換成統(tǒng)一格式的結(jié)果文件。
本文在產(chǎn)品模型數(shù)據(jù)交互規(guī)范(Standard for the Exchange of Product Model Data,STEP)的基礎(chǔ)上來構(gòu)建產(chǎn)品幾何結(jié)構(gòu)模型。
STEP 提供了一種不依賴具體軟件工具就可以實現(xiàn)產(chǎn)品數(shù)據(jù)交換與共享的中性機(jī)制。它不僅適合于數(shù)據(jù)交換,也適合于作為執(zhí)行和分享產(chǎn)品數(shù)據(jù)庫和存檔基礎(chǔ)。同時STEP 標(biāo)準(zhǔn)的數(shù)據(jù)表達(dá)語言EXPRESS 具有可擴(kuò)充性,可以根據(jù)實際使用過程中的要求擴(kuò)展數(shù)據(jù)模型,增加數(shù)據(jù)、語法和實體的定義。STEP 的應(yīng)用可顯著提高產(chǎn)品生命周期內(nèi)的異構(gòu)信息交換效率。
在用STEP 描述的實體、類型、功能、規(guī)則和參照的基礎(chǔ)上,可以對產(chǎn)品數(shù)據(jù)模型進(jìn)行有效描述,不僅可以描述產(chǎn)品集合形狀等數(shù)據(jù)的表達(dá)方法,如邊界表示法B-rep,CSG表示法,特征造型法等;還支持對公差、材料、表面粗糙度等非集合信息數(shù)據(jù)的表達(dá),STEP 242 在基于模型的三維工程中的應(yīng)用如圖9所示。
圖9 STEP 242 在基于模型的三維工程中的應(yīng)用
STEP 標(biāo)準(zhǔn)也是個不斷演進(jìn)的標(biāo)準(zhǔn),特別是基于STEP AP 203 和STEP AP 214 的基礎(chǔ)上合并升級的AP242(管理基于模型的3D 工程)會兼容更多的數(shù)據(jù),以及基于模型的開發(fā)(MBD)、PDM 集成和PDM 服務(wù)、長期歸檔(LTA)、供應(yīng)鏈整合、復(fù)合材料工程設(shè)計數(shù)據(jù)交換、先進(jìn)的產(chǎn)品制造信息(PMI),機(jī)電一體化以及需求管理,基于STEP 的三維幾何表達(dá)如圖10所示。
圖10 基于STEP 的三維幾何表達(dá)
基于STEP的三維模型可視化環(huán)境是完全基于云的架構(gòu),采用B/S 模式,用戶可以通過各種終端(PC、手機(jī)、平板)在網(wǎng)絡(luò)環(huán)境下打開瀏覽器使用,基于STEP 的云端三維模型可視化環(huán)境如圖11所示。
圖11 基于STEP 的云端三維模型可視化環(huán)境
針對航空發(fā)動機(jī)關(guān)鍵零部件機(jī)構(gòu)復(fù)雜、精度要求高、材料難加工、易變形、研制周期長等制造特點,在工業(yè)互聯(lián)網(wǎng)框架下建立了復(fù)雜曲面數(shù)控加工人機(jī)理模型庫、零部件特種加工機(jī)理模型庫、復(fù)雜曲面自適應(yīng)加工人機(jī)理模型庫等機(jī)理模型微服務(wù)組件庫,并嘗試開展了工業(yè)APP 建設(shè)工作。截至目前,針對機(jī)匣、葉片兩類產(chǎn)品場景,在實際加工中得到應(yīng)用驗證。針對典型航空發(fā)動機(jī)機(jī)匣、葉片等零件,將加工周期縮短為原來的30%。取得了很好的經(jīng)濟(jì)效益,有力的保障了重點型號的推進(jìn)任務(wù)。
工業(yè)微服務(wù)本質(zhì)是工業(yè)知識與經(jīng)驗的組件化,是API 形態(tài)的工業(yè)知識。工業(yè)微服務(wù)架構(gòu)為工業(yè)互聯(lián)網(wǎng)平臺的知識封裝和復(fù)用提供了最佳的IT 技術(shù)手段,算法、模型、知識等模塊化組件能夠以API 方式對外提供服務(wù),以“搭積木”的方式被調(diào)用和編排,實現(xiàn)工業(yè)APP 的快速開發(fā)和迭代模式,必將引發(fā)工業(yè)軟件開發(fā)模式的變革,促進(jìn)工業(yè)互聯(lián)網(wǎng)創(chuàng)新生態(tài)的形成。工業(yè)微服務(wù)能力、以及基于微服務(wù)架構(gòu)的機(jī)理模型是工業(yè)互聯(lián)網(wǎng)PaaS 平臺的核心要素和技術(shù)資產(chǎn),已成為當(dāng)前工業(yè)互聯(lián)網(wǎng)平臺發(fā)展的重要任務(wù)。