1、2023年9 月计算机应用文摘第39 卷第17 期基于微服务技术的民机工程软件工具箱架构方法研究孙奇楠(上海航空工业(集团)有限公司,上海2 0 0 2 32摘要:在民机研制领域,由于受到适航和业务工作压力的制约,目前使用的大部分计算机辅助工程软件为国外商业软件,其价格高昂且License数量有限,部分软件架构和界面老旧、使用效率低,工程软件自主可控需求迫切。针对传统工程软件可靠性和计算效率低等问题,文章提出一种应用主流的微服务架构技术,利用成熟的软件开发团队,完成工程软件工具箱的开发,并逐步形成通用的工程软件集成平台,提升整体工程软件能力和质量,从而为民机行业下一代工程软件体系架构设计与开发
2、奠定基础。关键词:信息化;微服务;工程软件;体系架构;民机SUN Qinan中图法分类号:TP393Research on civil aircraft engineering software toolbox architectureAbstract:Due to the constraints of airworthiness and business work pressure in the field of civilaircraft development,most of the computer-aided engineering software currently used i
3、s foreigncommercial software,with high prices and limited licenses.Some software architectures andinterfaces are old and inefficient,and there is an urgent need for autonomous and controllableengineering software.Aiming at problems such as low reliability and computational efficiency oftraditional e
4、ngineering software,this article proposes a mainstream microservice architecturetechnology that utilizes mature software development teams to complete the development ofengineering software toolkits.Based on this,a general engineering software integration platform canbe gradually formed,improving th
5、e overall engineering software capability and quality,and layingthe foundation for the design and development of the next generation engineering softwarearchitecture in the civil aircraft industry.Key words:promotion of information technology,micro service,engineering software,systemarchitecture,civ
6、il aircraft1引言民机设计研发阶段涉及众多专业,囊括空气动力学、流体力学、结构力学、有限元分析。航电涉及舱室环境分析等复杂、异构的计算算法,以及需要多种科学计算引擎,如Python计算引擎、Matlab计算引擎、AI计算引擎等。构建飞机正向设计阶段分析计算所需的“一体化分析工程软件工具箱”,从结构设计到力学分析的智能设计平台,需要统一的软件底座。在设计研发领域,用户界面和体验、工具和数据集成、功能复用平台化等方面需求大,同时单个软件开发投入高、开发人员不足,开发通用性框架平台迫在眉睫。本文以智能设计环境下的民机工程软件应用为背景,首先根据设计使用的业务场景,以需求为导向,文献标识码:
7、Abased on microservice technology(Shanghai Aviation Industrial(G r o u p )C o.,L t d.,Sh a n g h a i 2 0 0 2 32,C h in a)2微服务架构近年来,微服务架构成为确保高性能、去中心化和松耦合软件架构的主要工具 1,并且微服务架构以业务为核心,按照业务领域来组织软件开发团队,可以采用不同的技术栈分别实现单独的微服务 2 。微服务架构方式提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供功能服务。每个服务运行在独立的进程中,服务和服务之间采用轻量级的通信机制相
8、互沟通(通常是基于HTTP的RestfulAPI)。每个服务都围绕具体的业按照工程软件工具箱的开发需求,提出一个基于微服务技术的民机工程软件工具箱架构方法,并在该架构基础上完成一体化分析工程软件工具箱的开发。任务调度等功能。IaaS资源:负载管理软件、硬件、网络和存储服2023年第17 期务进行构建,并且能够被独立地部署到生产环境、类生产环境中 3。微服务架构和单体架构的区别如图1所示。前端模块架构模块业务模块持久化模块单体架构图1微服务架构和单体架构的区别相较于传统的单体架构,微服务架构的优点包括促进开发交流、每个服务足够内聚并足够小、代码容易理解;服务独立测试、部署、升级、发布;随着新技术
9、的应用,系统不会被长期限制在某个技术栈上;支持应用系统实现前后端分离;容易扩大开发团队,可以针对每个服务(service)组件开发团队;容错性(faultisolation)较高,一个服务的内存泄露并不会让整个系统瘫痪。3架构方法研究一体化工程软件工具箱总体架构如图2 所示。功能静力分析损伤容限复材设计 空气动力氧气环控水废水业务实现模块模态分析 气弹分析铺层优化防冰仿真结构优化采集与运输数据备份数据湖开发与计算Paas分布式应用服务管理消息队列AP网关应用实时监控云平台报表打印laas云服务器负载均衡图2 基于微服务的软件架构微服务软件架构包括业务实现层、云平台层,并通过云盾以及云防火墙进行
10、安全防护。3.1业务实现(1)功能模块层:功能模块为一体化分析工程软件工具箱的主体模块,可根据最新技术进行架构选型,以更好地满足该模块中各个软件的整合以及数据人库的需求。同时,以构建算法库的形式,通过计算引擎进行算法调用来对飞机正向设计阶段所有分析进行计算。(2)数据湖:它是核心数据存储模块,共分为数据贴源层、数据模型层和数据标签层3个层级。这是目前主流的数据湖架构。数据湖在全平台范围内以及航空公司之间提供统一的数据服务。基于统一的数据治理,统一数据服务提供的数据资产目录、数据地计算机应用文摘图覆盖各数据平台数据资源在内的全部数据资源。3.2云平台PaaS中间件:企业级分布式应用服务(Ente
11、rprise Distributed Application Service,EDAS)是一业务1个应用托管和微服务管理的PaaS平台,提供应用开1数据访间拆分前端数据质量统服务云关系型数据库45发、部署、监控、运维等全栈式解决方案,包括分布式业务2应用服务管理、消息队列、应用实时监控、API网关、1分布缓存业务3微服务架构云数据库Redis务,主要包括云服务器、负载均衡、云关系型数据库、云数据库Redis等 43.3集集成技术工程软件工具箱包括多种集成技术,为满足与现有系统间的集成和接口要求,系统提供以下几种模式实现系统间的数据联动共享、业务逻辑共享及业务流程有效集成。(1)服务集成:对于无
12、法提供直连数据库,但是对外提供Web服务访问的业务系统,通过对业务系统接口的调用采集数据。支持SOAP协议、RESTFul协议、XML-RPC等协议的Web服务接口。通过定制代码调用业务系统服务进行数据集成。(2)数据集成:数据集成模块拥有丰富的数据源支持,包括MongoDB,MySQL,Oracle,SQLServer,FTP,ODPS,Redis等数据源,支持对这些数据源进行读取安全防护:或写入数据。使用时仅需配置数据源的连接信息(如:云盾云防火墙填写Oracle数据库的JDBCURL、用户名、密码等信息),再配置对应的数据同步任务。(3)第三方软件集成:通过软件内部与其他编程语言之间的引
13、擎接口进行集成,其中包括针对各种语言开放的引擎API,以及各种语言与软件内置的数据类型转换及交互,或者通过其他语言执行系统命令来调用软件的可执行程序。软件运行需按照系统命令中的附加参数、驱动流程的脚本或者宏来进行相应计算。3.4前端技术采用MVVM架构,支持Web应用和移动应用(A n d r o i d 和iOS),以及中英文界面。Web应用采用H5/CSS/JavaScript前端框架技术。MVVM架构具有低耦合、可重用、独立开发和可测试优势,实现的技术包括 Npm,vue-cli:vue-router,element-ui。微服务架构的优势如下:(1)业务功能拆分。将各个功能模块分解为多
14、个服务方法,规避了原本复杂度无止境的积累,在功能不变的情况下,应用被分解为多个可管理的微服务,每一个微服务专注于46单一功能,并通过定义良好的API接口清晰表述服务边界。(2)前后端分离。微服务可以完全实现前后端分离,前端开发小组负责UI设计与实现,后端开发小组负责提供规范化API接口与业务逻辑实现。各小组开发完成后通过API进行数据交互 5(3)技术选型灵活。每个团队可以根据服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,在需要对技术栈进行升级时面临的风险较低,甚至可以完全重写一个微服务,提供规范化的API服务入口即可 6(4)独立部署。微服务具备独立的运行进程,
15、每个微服务可以独立部署。当某个微服务发生变更时,无需编译、部署整个应用。由微服务组成的应用具备一系列可并行的发布流程,能够降低对生产环境造成的风险、缩短应用交付周期、加快产品的迭代速度。(5)动态扩展。微服务架构模式使每个服务独立扩展。可以根据系统访问的资源瓶颈来动态调整服务的部署。4开发实现效果基于微服务架构方式完成一体化分析工程软件工具箱的开发以及各专业工具软件的集成和应用,平台开发效果如图3所示,已集成各类专业计算工具、通用计算工具,以及试飞数据查看功能,其中业务实现功能如下:(1)实现数据存储、查看及前后端互联、自定义查看、功能分类等。(2)实现数据和工程算法的自动互联、自动计算,并实
16、现数据的自动存储分析,同时实现设备的分析功能。(3)实现系统能耗自动计算、研发设计工具自动计算等功能,并通过程序实现计算值与设计值的识差,部分实现AI设计功能。计算机应用文摘工程软件工具箱40.77425结束语针对传统工程软件可靠性和计算效率低、工程软件自主可控需求迫切等问题,本文提出一种应用主流的微服务架构技术,利用成熟的软件开发团队,完成一体化分析工程软件工具箱的开发,并逐步构建通用工程软件集成平台,提升整体工程软件能力和质量,为民机行业下一代工程软件体系架构设计与开发奠定基础。参考文献:1】程庆和,伍英杰.面向智能制造的船舶行业自主工业软件发展探讨 C/2018年数字化造船学术交流会议论
17、文集,2018;324-326.2李春阳,刘迪,崔蔚,等,基于微服务架构的统一应用开发平台 J.计算机系统应用,2 0 17,2 6(4):43-48.3沈昌祥,张焕国,王怀民,等.可信计算的研究与发展J.中国科学:信息科学,2 0 10,40(2):139-16 6.4罗军舟,何源,张兰,等,云端融合的工业互联网体系结构及关键技术J】,中国科学:信息科学,2 0 2 0,5 0(2):19 5-220.5黄文博,燕杨.C/S结构与B/S结构的分析与比较 J.长春师范学院学报,2 0 0 6,2 5(8):5 6-5 8.6李博虎,张霖,王时龙,等.云制造一一面向服务的网络化制造新模式 J.计算机集成制造系统,2 0 10(1):1-7.作者简介:孙奇楠(19 9 2 一),硕士,工程师,研究方向:工程软件开发。2023年第17 期图3工程软件工具箱界面