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