APP下载

模拟与仿真即服务软件架构研究进展

2021-10-15谭亚新

兵器装备工程学报 2021年9期
关键词:组件架构基础设施

杜 楠,谭亚新

(陆军装甲兵学院 演训中心, 北京 100072)

1 引言

模拟与仿真作为大规模复杂系统顶层论证、概念展示、设计分析与优化、能力评估的有效手段,可以极大地提升系统开发效率与质量,降低研制风险,减少资金损耗[1]。过去几年,产生大量关于模拟与仿真的方法架构、设计过程、相关工具等问题的研究成果[2-4]。然而,随着仿真体系的日益复杂、仿真所需资源的类型和数量的日益增多,这些成果的缺点变得突出[5-7]:一是开发和维护较为复杂,需要多名掌握不同领域知识的研究人员协作才能完成;二是仿真环境的配置变得复杂,而且针对不同地仿真实验,可能需要不同地配置;三是参与仿真的人员逐渐增多,不兼容最新Web技术的现状使得仿真部署存在诸多困难,甚至难以实际应用。

随着云计算的出现,借鉴云服务提供商的“即服务”思想和面向服务的计算的思想的模拟与仿真即服务作为新的研究方向被提出,用于解决仿真系统的开发和部署问题[6-7]。模拟与仿真即服务与软件即服务存在相同点[8]:都采用随用随取的方式,目的是为终端用户提供快速的服务部署能力。然而,模拟与仿真即服务还能提供部署自定义仿真应用的能力,这一点更像是平台即服务[8]。

模拟与仿真即服务展现了全新的仿真机制,极大地改变了仿真系统的软件架构,以及底层基础设施和运行平台的组织模式[9]。软件架构作为模拟与仿真即服务的重要内容,其设计与评估是一项高度复杂、知识密集地过程[10-11]。

本文综述模拟与仿真即服务软件架构近10年来国内外优秀研究成果,从架构设计原则和军事应用需求2个维度进行阐述,指出仍然存在的问题和进一步研究方向。

2 模拟与仿真即服务软件架构研究成果

本章综述模拟与仿真即服务研究领域的相关优秀文献中的典型架构,并描述其架构设计模式。架构设计模式定义了软件组件、组件功能与约束以及组件连接方式,使得各个组件可以协同工作、形成系统[12]。从分析中可以发现,分层架构是软件架构设计模式的主要选择。其次,指出各个软件架构的设计原则,经过归纳,得出五条设计原则(表2,D1-D5)。最后,以文献[14]给出的分层架构为示例,对以上结论做进一步的阐释。

在学术搜索引擎上以“modeling and simulation as a service”以及相似同义的中英文关键词搜索,限制时间为2010—2020年,共得到318篇文献。通过略读,筛选出31篇包含模拟与仿真即服务软件架构研究成果的文献,共12篇期刊,19篇会议。为了进一步筛选高质量论文,限制期刊影响因子2.0以上,限制会议H5-IIndex大于50,最终得到10篇文献(表1)。部分文献被引用数并不高,但考虑到发表时间为2017—2018年,是可以接受的。

表1 筛选得到的包含模拟与仿真即服务软件架构研究成果的期刊文献

文献[13]研究将现有仿真软件部署至云端,采用软件即服务的方式供用户使用。为此,提出3层架构:云基础设施层,平台层,仿真软件层。云基础设施层提供硬件资源,平台层设计标准化架构,统一软件的交互方式,串联各个软件的异构数据,形成通信框架。仿真软件层将现有仿真软件按照平台标准改进,实现代码重利用,同时为用户呈现统一接口。架构使得快速应用现有仿真工具开发仿真系统,减少人员操作复杂度成为可能。

文献[14]指出在使用云计算和Web技术开发仿真应用时,由于仿真系统中存在种类多样地数据与服务,在集成复杂仿真应用的过程时,不可避免地会遇到困难和挑战,并且往往需要用户具备仿真领域的专业技能。鉴于此,作者提出模拟与仿真混合架构,包含5层结构:云基础设施层,组件层,标签层,连接层,混合应用层。云基础设施层提供计算单元和存储单元等仿真所需的基础资源;组件层提供仿真资源(例如,仿真对象模型)的封装,对外提供唯一标识和输入输出接口;标签层提供标识组合算法,根据仿真应用类型,自适应的挖掘和组合仿真资源组件;连接层根据组件的输入输出接口,将组件连接起来;混合应用层提供直观的界面,使得用户能够定义仿真应用,选择组件,连接组件,形成可运行应用,并可视化运行过程。架构使得集成仿真资源,产生仿真应用的过程简单高效。

文献[15]提出的架构包含4层:物理机层、虚拟机层、数值模型层以及用户层,可以将物理过程模拟为仿真模型,并以服务的形式提供给用户层。利用这些数值模型,用户可以根据应用需求,灵活地构建仿真模型。

文献[16]研究工程仿真。遵循模块化思想,将庞大的工程仿真模型分解为多个无状态、独立地模型,并以微服务的形式提供。这解决了多领域知识交叉、多方开发带来的复杂仿真模型的部署难题,增加了系统容错率。同时,微服务可以被重复使用,通过灵活组合,快速构建其他复杂模型。

文献[17]研究泥石流灾害的仿真和预测。同样引入分层结构,各个组件通过预先定义的接口相互通信。应用层提供接口来管理仿真任务,查看仿真结果,其需要的计算资源普通单机就可以满足;中间件层作为整个架构的核心,负责确保安全、数据转换以及在上下层和各个组件之间传递数据;数据层提供数据库机制,负责数据存储。整个架构使得用户可以更简易、更快地执行仿真任务、分析仿真结果。

文献[18]研究地理科学的仿真。地理科学与军事仿真相同,涉及复杂地仿真过程、巨大地计算资源消耗以及海量数据处理。文章提出了一种基于基础设施即服务的模拟与仿真即服务架构来解决这些挑战。架构包含4层:云计算平台层、地理科学模型仓库层、模拟与仿真即服务中间件层以及用户层。从实现角度来说,架构包含4个软件:一个Web界面,可以上传模型、执行模型、获取模型输出;一个模拟与仿真服务端,可以监视模型的运行过程,自动调配资源;一个编译器,可以根据模型运行环境执行编译,生成可运行代码;一个集中存放模型输出的数据中心。由于支持资源的自动调配,整个架构具有更小的资源损耗以及更好的运行性能。

文献[19]研究大型网络的仿真,提出了一个名为SIM-Cumulus的架构,网络性能和能量消耗是其最主要的仿真对象。架构支持仿真所需虚拟机的自动创建与仿真任务的并行执行,同样提出了一个多级结构,包含:虚拟基础设施层、云实例管理层、虚拟平台层、云基础设施管理层以及系统访问层。

文献[20]研究机器人仿真,试图通过仿真预测行为的结果,从而提供更好的自动化能力。然而,这样的仿真往往需要较大的计算资源,而机器人的计算芯片是无法提供的。因此,文章设计了基于云计算的仿真即服务架构,命名为openEASE。复杂的仿真计算由云端完成,帮助机器人更好的选择解决问题的方案。同时,利用OpenEASE工具,仿真实验的结果可被记录与后期分析。

文献[21]指出现有的现实世界仿真模型,例如SUMO(Simulation of Urban MObility)、交通仿真系统、STEM(Science,Technology,Engineering,and Mathematics)教育仿真等存在以下问题:一是非相关领域专家的用户难以使用;二是无法远程访问;三是多用户使用时,稳定性和数据持久化存在问题。鉴于此,文章提出一个仿真架构,命名为C2SuMo,由可插拔的组件组合而成。用户只需要组合可插拔组件即可搭建仿真模型,这样就对用户隐藏了实现的复杂性,同时基于云基础设施提供远程访问的功能,解决了现有问题。

文献[22]研究生物化学模型的仿真,提出一个名为StochSS(Stochastic Simulation as a Service)的架构。其设计的主要目标是提供一个只需要基本计算机技能就可以完成仿真任务的仿真系统。仿真功能以微服务的形式提供,包含4个过程:一是定义问题,使用模型编辑器建立模型;二是仿真管理,根据仿真类型,从预先准备好的4个工具中选择一个来执行仿真任务;三是模型分析,通过一组工具来进行参数估计和参数调优;四是可视化输出,提供一个可交互的3D视图来观察仿真结果。

归纳以上文献的软件架构设计思想,可以得到模拟与仿真即服务软件架构的5条设计原则(表2,D1-D5)。通过统计各项原则被提到的频率,可以大致评估其重要性程度:D2(70%),D1(30%),D5(20%),D3(10%),D4(10%)。

表2 模拟与仿真即服务软件架构设计原则

以上10篇文献中,6篇[13-15,17-19]采用了分层的架构设计模式。文献[16,22]将实现仿真所需的功能以微服务的形式提供。文献[20-21]提供了多种组件,可以通过组件的组合搭建仿真模型,实现仿真能力。需要特别指出的是,一个系统的架构可能是多种架构类型的组合[23]。分层架构将系统功能进行层次化的分解,通过定义良好的各个层的接口实现层之间的交互,组合实现系统设计目标,同样蕴含着基于微服务和组件组合的思想。

例如,给出文献[14]的分层架构设计(见图1)。云基础设施层提供计算和存储资源的封装,同时提供中间件对这些资源进行管理。组件层提供仿真资源的封装,将其视为可以灵活组合的组件。针对不同的仿真任务,可能需要不同的组件搭配才能完成。组件的组合方式由标签层管理,后者通过维护一个标签树以及自适应组合算法实现。组件的通信与连接由连接层提供。混合应用层提供直观的操作界面,使得用户可以根据不同的仿真任务,灵活选择组件,将其连接起来成为仿真应用,执行并观察结果。

图1 文献[14]的分层架构设计Fig.1 Layered architecture design in paper[14]

由于模拟与仿真即服务依托云计算,将计算和存储资源封装为独立的层,作为基础设施供上层系统使用,是一种通用做法。同时,最上层为用户提供交互接口,自定义配置、执行仿真任务,获取仿真结果,同样是所观察到的文献中提出的分层架构的共同选择。文献[14]的架构的中间3层采用组件组合的思想,分别实现组件的封装、管理维护以及连接方式,统一起来可认为是:“仿真功能层”,是无论何种架构都必须实现的核心功能

3 军事应用需求与现有架构能力分析

模拟与仿真技术广泛应用于军事领域[8]。美国国防部使用模拟与仿真技术指导军事装备设计、研制,装备训练等任务[24],具体包括:一是军事装备研究与开发。在武器系统、控制系统、飞机、车辆等军事装备开发的每一个阶段,都需要模拟与仿真指导需求分析、设计决策、性能预测等工作。二是军事装备测试与评估。当新的军事装备开发完毕投入作战试验前,通常需要先经过模拟与仿真系统测试以及与其他系统联合调试等阶段,从而减少资源损耗。三是军事装备训练。军事装备的训练工作通常依托模拟与仿真系统开展,通过训练形成装备操作流程、维护方法等使用规范。我军也开展了大量相关研究[25-27],形成一系列理论框架与应用平台。

澳大利亚防御科学与技术组织于2017年发起一项为期五年的复杂战争建模战略研究方案(modelling complex warfighting strategic research initiative)[28],其中包含一项名为未来行动概念开发仿真(Simulation for Future Operating Concept Development)的项目,目标是研制用于研究复杂联合作战行动概念的基于模拟与仿真即服务的创新性仿真应用。项目预期实现多个机制用于解决大规模复杂军事行动仿真面临的挑战,包括:1)支持多种类型的仿真模型;2)支持并行执行多个仿真应用;3)构建松散耦合的仿真应用;4)基于数据耕耘的概念开展仿真试验与管理仿真数据。同时,该项目提出的8条军事仿真对模拟与仿真即服务的应用需求(表 3,R1-R8),对分析现有模拟与仿真即服务软件架构对军事仿真的支撑能力具有重要借鉴价值。

表3 军事领域对模拟与仿真即服务的应用需求

本章综述这些架构对应用需求的满足情况(表 4),并罗列各个架构可能存在的优缺点。

表4 文献对应用需求的满足情况以及优缺点

续表(表4)

4 现状分析与进一步研究方向

从现有研究成果可以看到,模拟与仿真服务可以小到一个嵌入式服务,也可以大到整个仿真系统[29],能够实现多种功能:一是提供开发满足柔性可配置与灵活可组合地仿真应用的基础设施,并使其以按需使用的方式部署和执行[30],同时满足高效运行和低成本损耗[8];二是隐藏底层基础设施、平台与软件实现的复杂性,给用户提供简洁易用地接口[13];三是支持快速集成多个仿真系统,形成统一的仿真体系[31];四是极大地缩减了人为配置和运行仿真模型的时间[32];五是支持平滑地将传统仿真模型移植到云环境中[33]。

对现有研究成果的分析也揭示了模拟与仿真即服务软件架构设计的若干规律:

一是分层架构是软件架构设计的主要选择。模拟与仿真即服务部署在云上,受云计算分层架构的设计影响,多数软件架构采取了分层设计——10篇文献中有6篇。但是,由于架构设计思想和基础设施各有不同,架构分层设计的层数以及各个层的功能多种多样。

二是随着容器化虚拟技术的兴起,容器化虚拟比起硬件层虚拟具有更快启动速度、更高密度存储、更方便集群管理等优势,使用容器化虚拟技术的仿真应用在部署时更为便利。但是容器化虚拟技术更易于应用在规模较小的仿真应用中(例如:基于微服务的应用)[34]。在规模庞大的仿真应用中,特别是军事领域仿真,使用容器化虚拟技术反而可能带来部署上的额外困难[30]。如何重新设计软件架构,将架构拆分为相对较小、相互独立的微型模块,应用容器化虚拟技术实现这些模块,充分享受容器化虚拟技术带来的便利以及实现模块自由组合,并行多个仿真应用等功能,是未来的重要研究方向。

三是终端用户接口的设计应当使得用户能够高效、简易地构建仿真模型,分析仿真结果。我们分析的文献中多数对此设计原则都有所阐述。特别是,仿真系统不应当要求用户必须具备仿真领域的专业知识和技能,只需要具备基本的计算机操作技能即可。仿真系统应当隐藏仿真应用实现的复杂性,提供简洁易用的接口给用户使用。同时,仿真系统应当尽量具备自动化功能,减少用户重复性操作,充分提供可定制化内容。

四是现有研究成果充分考虑军事领域对模拟与仿真即服务的应用需求中的R1、R2、R5、R7,满足这些需求的文献数量超过半数,但对R3、R4、R6、R8的考虑较少。R3强调仿真任务的数据保密性。R4可以提高仿真研究的效率,快速调整仿真模型和任务。R6强调接口的易用性。R8可以提高仿真资源的利用效率。如何设计满足这些需求的软件架构是未来的重要研究方向。

5 结论

随着仿真系统规模日益增加,所用资源日益增多,模拟与仿真即服务作为依托云端的仿真系统,具有便于提供高性能计算能力、提供简洁易用的用户接口等优势,成为热门研究领域。本文筛选10篇该领域具有代表性的文献,分析其架构设计原则。从文献成果对军事领域中模拟与仿真即服务的应用需求为切入点,比较各个成果优缺点。提炼出4条设计规律,并指出容器化虚拟技术以及设计完全满足8条应用需求的架构是下一步的研究重点。

猜你喜欢

组件架构基础设施
无人机智能巡检在光伏电站组件诊断中的应用
公募基础设施REITs与股票的比较
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
创建Vue组件npm包实战分析
舰载雷达TR组件冲击计算方法分析
基础设施投资项目
功能架构在电子电气架构开发中的应用和实践
前7个月国内充电基础设施增加12.2万台
构建富有活力和效率的社会治理架构
新政府会计准则规范公共基础设施处理