陳佩佩
(上海航空工業(yè)(集團(tuán))有限公司信息化中心,上海202006)
大型客機(jī)是技術(shù)密集型高科技產(chǎn)品,其研制過程需要多地域、多公司、多工種的通力配合。圍繞型號研制的信息化系統(tǒng)數(shù)以百計[1]。其中,用于支持核心業(yè)務(wù)流程最為關(guān)鍵的系統(tǒng)包括:產(chǎn)品數(shù)據(jù)管理系統(tǒng)(PDM)、制造執(zhí)行系統(tǒng)(MES)、企業(yè)資源管理系統(tǒng)(ERP)等。而隨著業(yè)務(wù)的不斷發(fā)展,國內(nèi)民用客機(jī)研制的特點(diǎn),對信息系統(tǒng)的需求也在翻倍的增長,受限于傳統(tǒng)信息技術(shù)的限制,對需求的響應(yīng)非常被動,響應(yīng)周期也較長。因此驅(qū)動我們探索新的信息化技術(shù)手段來解決面臨的困境,新技術(shù)的嘗試必然存在一定的風(fēng)險和業(yè)務(wù)變革,因此我們選擇大型客機(jī)需求最緊迫的切入點(diǎn),采用微服務(wù)架構(gòu)技術(shù)在裝配工藝文件編制進(jìn)行試點(diǎn)嘗試。
微服務(wù)的概念是2014 年3 月由Martin Fowler在他所寫的一篇文章《Microservices》中首次提出。文中內(nèi)容提到:“微服務(wù)架構(gòu)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間互相協(xié)調(diào)、互相配合,為用戶提供最終價值”[2]。
微服務(wù)框架中每個服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中,服務(wù)與服務(wù)間采用輕量級的通信機(jī)制互相溝通(通常是基于HTTP 的RESTful API)。每個服務(wù)都圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨(dú)立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。
微服務(wù)架構(gòu)優(yōu)勢:
在傳統(tǒng)的單體架構(gòu)下,隨著代碼量增加,架構(gòu)的維護(hù)成本顯著增加;新人的培養(yǎng)周期長,上手慢;運(yùn)維團(tuán)隊組成復(fù)雜;系統(tǒng)的擴(kuò)容性受限;功能交付周期長;技術(shù)選型難度大。面對傳統(tǒng)架構(gòu)下所面臨的困境,微服務(wù)架構(gòu)的優(yōu)勢給我們提供了一些思考:
(1)復(fù)雜度可控。由于體積小、復(fù)雜度低,易于保持高可維護(hù)性和開發(fā)效率。(2)獨(dú)立部署。由于微服務(wù)具備獨(dú)立的運(yùn)行進(jìn)程,所以每個微服務(wù)也可以獨(dú)立部署。(3)技術(shù)選型靈活。每個團(tuán)隊可以根據(jù)自身服務(wù)的需求自由選擇最適合的技術(shù)棧。(4)容錯。在微服務(wù)架構(gòu)下,故障會被隔離在單個服務(wù)中。(5)擴(kuò)展。每個服務(wù)可以根據(jù)實際需求獨(dú)立進(jìn)行擴(kuò)展。
本文以對大型客機(jī)研制實施裝配工藝文件為例,針對現(xiàn)有系統(tǒng)和業(yè)務(wù)情況,需要將裝配工藝文件(簡稱AO/AAO)的編寫、修訂、發(fā)放、墨改的編制功能從原有系統(tǒng)中遷移和提煉出來,形成一套擁有統(tǒng)一數(shù)據(jù)接口和數(shù)據(jù)結(jié)構(gòu)的裝配大綱編輯環(huán)境,進(jìn)行統(tǒng)一化管理,并與已有的PDM、ERP、MES 和基礎(chǔ)系統(tǒng)進(jìn)行集成,形成新的一套裝配大綱編制體系,從而實現(xiàn)裝配大綱編輯的數(shù)據(jù)內(nèi)容的高度結(jié)構(gòu)化、編輯能力的微服務(wù)化。
根據(jù)本項目業(yè)務(wù)需求,系統(tǒng)整體微服務(wù)架構(gòu)設(shè)計如圖1 所示。
圖1 微服務(wù)架構(gòu)圖
整個微服務(wù)架構(gòu)由接入服務(wù)、核心業(yè)務(wù)服務(wù)、微服務(wù)配置注冊中心、數(shù)據(jù)公共服務(wù)和統(tǒng)一管理門戶組成。所有微服務(wù)所提供多個功能都由統(tǒng)一的接入服務(wù)進(jìn)行發(fā)布,通過聚合服務(wù)、串聯(lián)服務(wù)和分支服務(wù)等模式,實現(xiàn)微服務(wù)和微服務(wù)之間協(xié)同工作,滿足業(yè)務(wù)需求。
負(fù)載均衡:實現(xiàn)裝配編輯器核心業(yè)務(wù)微服務(wù)的負(fù)載。
接入服務(wù):一個面向微服務(wù)API 的、串行集中式的強(qiáng)管控服務(wù),隔離外部應(yīng)用直接訪問內(nèi)部微服務(wù)。主要解決用戶統(tǒng)一安全認(rèn)證、用戶權(quán)限訪問、限流、動態(tài)路由,監(jiān)控,彈性,安全、協(xié)助單點(diǎn)壓測、靜態(tài)響應(yīng)等問題的。
核心業(yè)務(wù)服務(wù):圍繞裝配大綱編制業(yè)務(wù)需求構(gòu)建微服務(wù)群,主要包括AO/AAO 編制業(yè)務(wù)微服務(wù)、墨改業(yè)務(wù)微服務(wù)、循序工序業(yè)務(wù)微服務(wù)、工藝智能化編制微服務(wù)、數(shù)據(jù)集成服務(wù)、AO/AAO/循序工序發(fā)放業(yè)務(wù)微服務(wù)以及動態(tài)表格微服務(wù)等(考慮本項目首次探索微服務(wù)架構(gòu),為減少項目實施風(fēng)險,我們將其中的編制、墨改、循序工序合并為一個微服務(wù))。每個微服務(wù)群能夠訪問自己業(yè)務(wù)所需要數(shù)據(jù),服務(wù)于服務(wù)之間通過rest 接口方式進(jìn)行訪問,從而保證服務(wù)于服務(wù)之間的相對獨(dú)立性。
數(shù)據(jù)公共服務(wù):原則上將數(shù)據(jù)都放入到具體微服務(wù)中,本項目架構(gòu)為了考慮將來項目方原有系統(tǒng)集成的需求,構(gòu)建數(shù)據(jù)公共服務(wù),包括分布式存儲、工藝結(jié)構(gòu)化數(shù)據(jù)、ZPS 類文檔數(shù)據(jù)、索引等。
微服務(wù)注冊配置中心:整個微服務(wù)架構(gòu)去中心化,微服務(wù)配置注冊中心通過自動的發(fā)現(xiàn)后端拆分、聚合、擴(kuò)容、縮容的服務(wù)集群,當(dāng)后端服務(wù)有所變化的時候,能夠?qū)崿F(xiàn)健康檢查和動態(tài)的負(fù)載均衡。
統(tǒng)一管理門戶:構(gòu)建統(tǒng)一管理門戶實現(xiàn)對所有微服務(wù)的統(tǒng)一管理,包括管理監(jiān)控門戶和監(jiān)控服務(wù)等功能。
通過微服務(wù)架構(gòu)技術(shù),結(jié)構(gòu)化工藝已經(jīng)在大型客機(jī)研制得到驗證,并且還在根據(jù)業(yè)務(wù)的發(fā)展需要,進(jìn)行快速的迭代完善。
目前國內(nèi)的航空制造行業(yè),在計算機(jī)輔助工藝過程設(shè)計(簡稱CAPP)領(lǐng)域,主要是借助于CAPP 系統(tǒng),解決長期采用手工方式進(jìn)行的傳統(tǒng)工藝過程,信息不能共享、工作量大等問題,隨著業(yè)務(wù)發(fā)展,對CAPP 的認(rèn)識已經(jīng)進(jìn)一步擴(kuò)展,一方面,向生產(chǎn)策劃和作業(yè)計劃最佳化發(fā)展,作為制造端的一個重要輸入和組成部分,一方面,承接著產(chǎn)品工程研發(fā)至現(xiàn)場制造的橋梁,已然成為現(xiàn)今許多現(xiàn)今制造技術(shù)的技術(shù)基礎(chǔ)之一。
本項目提出了工具化的思想:將工藝人員從許多工藝設(shè)計工作中解脫出來的一種工具;系統(tǒng)的建設(shè)要以人為本的操作、高效的工藝編制手段、具有良好的開放性和集成性,完成的自主可控,掌握技術(shù)的核心。我們借助工具化的工藝設(shè)計系統(tǒng),實現(xiàn)了工藝設(shè)計效率的提升,促進(jìn)了工藝標(biāo)準(zhǔn)化的建設(shè),引入微服務(wù)的技術(shù)架構(gòu),有力促進(jìn)了企業(yè)信息化建設(shè)。