APP下载

基于微服务和前端渲染技术的新型虚拟仿真平台架构设计

2023-12-06朱昕宇侯珏盛士能

电脑知识与技术 2023年29期
关键词:微服务架构设计教学模式

朱昕宇 侯珏 盛士能

摘要:为了解决传统虚拟仿真平台部署成本高、教学适配性差和可扩展性弱等问题,提出了一种基于微服务和前端渲染技术的新型虚拟仿真平台架构——微仿真架构。该架构通过采用前端渲染引擎,将图像渲染和物理模拟任务转移到客户端完成,降低了服务器负担和部署成本。通过微服务架构设计后台系统,提高了系统的可扩展性。提出针对教学重难点设计微仿真场景的方法,解决虚拟仿真场景与教学适配性不高的问题。基于上述架构和方法设计的新型虚拟仿真平台,有望显著降低部署成本、提升教学适配性和可扩展性。

关键词:虚拟仿真平台;架构设计;前端渲染;教学模式;微服务

中图分类号:TP311.5 文献标识码:A文章编号:1009-3044(2023)29-0067-04

0 引言

虚拟仿真技术在教育领域中的应用日益受到关注,极大地提升了师生在教学和实验上的体验。但是目前大量虚拟仿真软件存在着“部署价格高”“运行配置要求高”“教学适配性差”和“可扩展性弱”等问题,导致虚拟仿真系统在教学中的作用无法得到充分发挥。从技术角度考虑,如何借助微服务、云存储等新架构、新技术,改进传统虚拟仿真平台的架构体系,从而减小系统的部署和开发成本,提高虚拟仿真平台与教学的适配度,进一步发挥虚拟仿真系统的作用,已成为当前亟须解决的问题。

1 传统虚拟仿真平台的主要实现方式

目前的虚拟仿真软件按照实现方式可分为两类,基于成熟工业软件二次开发的虚拟仿真产品和基于成熟3D引擎和物理引擎开发的虚拟仿真产品。

1.1 基于成熟工业软件二次开发的虚拟仿真平台

这类虚拟仿真平台的特点是基于成熟的工业软件进行二次而来。例如李祺基于Simulink开发了一系列的控制算法实验平台[1];马合木提基于Proteus和Keil5,使用Python进行二次开发,设计并开发了用于单片机教学的虚拟仿真实验平台[2];王龙庭等基于LabVIEW的二次开发设计了液压控制系统的虚拟仿真实验平台[3]。江苏大学基于ABAQUS、CAD、Hyper- V等软件,开发了车辆工程虚拟仿真实验教学中心[4]。

基于成熟工业软件开发虚拟仿真平台的优势在于其稳定性和可靠性。这些工业软件经过多年的实践应用和全面测试,已被广泛验证和认可。但是,这类虚拟仿真平台目前存在如下一些问题:

1) 部署价格较高。这些平台的私有化部署通常涉及购买工业软件的授权和高性能的服务器,这对于大部分学校来说都是一笔不小的投资。而且随着中美贸易战的加剧,部分工业软件还存在着禁用风险[5]。

2) 教学适配性较差。工业软件的功能和架构是基于广泛的工业应用而设计的,教师难以根据自身的学情和教学目标进行定制,软件公司几乎不可能为了满足个别教育机构或教师的特定需求来修改软件的功能。

3) 并发访问能力弱。为了实现较好的课堂效果,虚拟仿真平台必须具有支持多人并发访问的能力[6]。但是上述工业软件的设计初衷通常是为单用户提供服务,依赖于服务端算力进行仿真计算,并不适合多人并发访问。

由此可见,基于成熟工业软件开发的虚拟仿真平台具有高稳定性和可靠性的优势,但存在部署价格高、教学适配性差和并发访问能力弱等问题。其中部署价格高和教学适配性差是由工业软件的产品特点导致的,基本难以解决。并发访问能力弱的问题可以通过配备高性能的服务器、部署多个实例、在客户端上安装配套的应用程序等方式解决,但均会不同程度地增加平台的部署成本和维护难度。

1.2 基于成熟3D 引擎开发的虚拟仿真平台

基于成熟的3D引擎开发虚拟仿真平台是目前另一种常见的技术路线。这类平台通常利用已经成熟和广泛应用的3D引擎(如Unity或Unreal) 来构建虚拟仿真环境[7]。例如中北大学的于本知基于Unity3D和3DMax开发了类流体光声检测虚拟实验系统[8]。湖北工业大学的黄涛基于Unity3D和3DMax开发了多个材料力学相关的虚拟仿真实验,取得了较好的效果[9]。

相较于基于工业软件开发的虚拟仿真平台,基于引擎直接开发的虚拟仿真平台其优势在于具有强大的视觉效果和逼真的物理模拟能力,赋予开发人员极大的自由度[10]。但由于这些3D引擎的设计初衷是为了服务于游戏和影视动画,这就导致基于它们开发的虚拟仿真平台也存在一些问题:

1) 开发难度大。使用3D引擎和物理引擎进行开发需要一定的技术储备和学习成本。开发人员需要掌握相关的编程语言和工具,并了解引擎的特性和功能。这增加了开发周期和人力成本。

2) 部署价格较高。尽管不需要购买工业软件的授权,但是基于3D引擎开发的虚拟仿真平台通常需要较强的图形处理能力,带有图形处理器的服务器通常价格不菲。由于依赖高性能的图像处理器,使得基于3D引擎开发的应用程序基本无法在移动端和网页端等低性能设备上使用。

3) 配置要求高。当虚拟仿真应用部署在服务器端时,客户端通常采用视频流的方式进行交互,这对网络带宽提出了较高的要求。这种模式的本质是服务端渲染,客户端显示,因此在多人并发访问时,服务器负载会急剧增加。

4) 应用程序体积较大。基于游戏引擎开发的虚拟仿真平台可能存在应用程序臃肿的问题。这是因为游戏引擎通常包含了大量冗余功能和工具,这些功能对于虛拟仿真应用来说并不一定需要。这些冗余功能会增加应用程序的体积和复杂性,导致资源使用效率下降。

基于成熟的3D引擎和物理引擎开发的虚拟仿真平台在视觉效果、物理模拟能力和并发访问方面具备优势,但也需要考虑开发难度大、部署价格较高以及对客户端配置的要求较高等问题。在设计和部署虚拟仿真平台时,需要综合考虑这些因素,以平衡性能需求和可行性。

2 新型虚拟仿真平台架构

无论是基于成熟工业软件二次开发还是基于成熟3D引擎和物理引擎开发目前都存在着“部署价格高”“教学设配性差”“可扩展性弱”等问题。针对上述问题,本文提出一个全新的解决方案:以微服务架构为基础,利用前端渲染技术构建一种全新的虚拟仿真平台架构——微仿真架构。微仿真架构的特性主要体现在三个关键方面:

1) 采用了前端渲染引擎和物理引擎;

2) 基于微服务架构设计的后台系统;

3) 针对教学重难点设计的微仿真场景。

通过上述三大设计原则,能够有效地解决现存虚拟仿真平台“部署成本高昂”“教学适应性不强”以及“可扩展性不足”的问题。

2.1 基于前端渲染模式的客户端架构设计

之前两类虚拟仿真平台普遍具有“部署成本高”和“并发访问能力弱”的问题,除了昂贵的工业软件版权费外,另一个主要原因是两者的服务端承担了大量的渲染和计算任务,如图1(a) 所示。如果能将渲染和仿真计算任务转移到前端完成,如图1(b) 所示,服务端只负责数据存储和模型管理,就能极大程度地降低服务端压力,从而降低部署成本。

目前较成熟的前端渲染引擎有Three.js、Matter.js 和Babylon等,这些引擎的本质是一类基于JavaScript 的库,利用WebGL技术和CANVAS技术能够在浏览器环境下快速生成并展示2D 和3D 图形。与Unity3D、Unreal等专业级别的游戏渲染引擎相比,前端渲染引擎在渲染效果上稍有逊色,但是对于以教学为主要目标的虚拟仿真平台来说,更看重的应该是平台的教学演示和仿真能力,渲染的视觉效果并不应该成为技术选型上的主要考虑因素。且目前的前端渲染引擎已经具备了非常强大的功能,包括但不限于力学模拟、碰撞检测、贴图等。表1对比了常见前端渲染引擎与Unity3D和Unreal4在各方面的能力。

如表1所示,目前的前端渲染引擎足以满足大部分的虚拟仿真需求。即使是其中综合能力较差的Matter.js也能轻松地实现一些简单机械结构的仿真。基于上述情况,以专注于机械结构的虚拟仿真平台为例,设计微仿真架构的前端架构如图2所示。用户从电脑端或移动端向服务端发送请求,服务端返回模型数据和配置参数等信息。前端由路由管理、请求处理、状态管理三大基础模块构成。标准组件库包含导航栏、按钮、表单等常用页面组件。前端物理引擎根据后端返回的模型和参数动态生成仿真结果,并依托于CANVAS容器渲染在浏览器上。

2.2 基于微服务架构的服务端架构设计

虚拟仿真平台的主要功能是服务于教学,仿真演示和仿真实验项目是虚拟仿真平台的主要功能,但是目前虚拟仿真平台存在着实验项目和仿真演示内容固化的问题。教师无法结合自身的教学特点和学情特点来构建适合自己课堂的虚拟仿真实验内容。除了教师的个人意愿外,技术层面的主要问题是传统的基于工业软件和基于成熟3D引擎开发的虚拟仿真系统通常是单体架构或者分层架构,这类架构在设计上难以做到足够的灵活性和可扩展性。针对传统虚拟仿真平台在可扩展性和灵活性方面的瓶颈,基于微服务架构的设计方法来打造微仿真架构的后端,可有效解决该问题。

目前常见的软件架构的主要特征如表2所示。通过对不同架构进行比较分析,微服务架构在如下两个特征上能较好地满足微仿真架构的设计需求:

1) 具有较好的灵活性。基于微服务架构,可以将平台功能划分为多个独立的小型服务,每个服务专注于特定的功能或业务领域。这些服务可以独立地开发、测试和部署。例如当需要添加一个新的物理引擎时(如电学模拟、力学模拟等),由于微服务架构下每个服务都是独立的,可以相对容易地扩展或替换相应的服务,而无须对整个平台进行大规模改动。这种灵活性和可插拔性使得微服务架构非常适合构建具有不同物理引擎的仿真平台。

2) 支持多语言开发。在微服务架构中,每个服务可以使用适合自身需求和目标的编程语言进行开发。这意味着开发者可以根据需要选择并集成不同语言版本的仿真计算库,从而充分利用各种成熟的仿真计算库和工具。也更利于其他老师和学生根据自身的条件和需求参与到平台的共建中,贡献新的功能模块或服务,从而有效解决平台内容与教学环节契合度不高、持续发展动力不足的问题。

基于上述情况,以专注于机械结构的虚拟仿真平台为例,设计微仿真架构的后端架构如图3所示。在该架构中,API网关服务充当统一接收前端请求并完成请求转发的角色。整个后端由多个服务组成,其中日志服务、用户管理服务和消息队列作为基础服务提供支持。自定义脚本管理服务、标准机械结构仿真服务和自定义机械结构仿真服务则为核心功能服务。自定义脚本管理服务负责管理用户提交的自定义仿真脚本;标准机械结构仿真服务是针对常见的机械结构进行仿真分析的服务;自定义机械结构仿真服务允许用户上传和定义自己的机械结构模型。

2.3 微场景的设计方法

为了增强虚拟仿真平台与教学的连接,引入“微场景”的概念。“微场景”是指那些功能小而精的虚拟仿真场景,旨在辅助解决教学中的重难点问题。

以“平面连杆机构的设计”为例,针对这一重难点设计如图4所示的微场景。该微场景通过前端渲染技术Matter.Js实现,具有简洁而有效的功能。在该场景中,学生可以调整杆件的长度并生成仿真动画,通过互动操作获得直观的结果和反馈,验证自己的设计是否满足任务工单给出的设计需求,掌握如何确定合适的连杆长度这一知识点,从而有效解决“平面连杆机构的设计”这一教学重难点。

微场景的优势在于它的功能灵活性和易于修改部署。由于采用前端渲染,场景功能可以直接使用脚本编写,使得修改和定制化调整功能非常方便,教师可以根据学情进行个性化调整。且微场景通常围绕一个教学重难点展开,每个场景的内容有限,因此所需的计算量相对较小,从而实验所需的硬件配置大幅度降低。

3 总结

1) 利用前端渲染引擎完成虚拟仿真平台的渲染和计算任务是可行的。采用该方案可以显著降低系统的部署成本,并提升并发能力。

2) 基于微服务架构设计虚拟仿真平台的后台系统,可以显著提升虚拟仿真平台的可扩展性和灵活性。

3) 针对教学重难点来设计微场景,可以提升虚拟仿真平台与教学的适配性。

4) 未来的研究可以进一步完善微仿真架构的功能,并针对特定课程建设基于微仿真架构的虚拟仿真平台。

参考文献:

[1] 李祺,聂为之,房朝晖,等.基于虚拟仿真技术的线上项目式

教学探索[J].实验技术与管理,2022,39(1):199-203.

[2] 帕孜来·马合木提.虚拟仿真平台在单片机教学改革中的应

用[J].中国现代教育装备,2023(13):25-27.

[3] 王龙庭,张彦廷,石永军,等.液压机械控制虚拟仿真实验教

学系统设计[J].液压气动与密封,2023,43(6):34-38,45.

[4] 侯慧,朱韶华,张清勇,等.国内外高等学校虚拟仿真实验发

展综述[J].电气电子教学学报,2022,44(5):143-147.

[5] 代小龙.中国工业软件发展现状与趋势分析[J].软件导刊,

2022,21(10):31-35.

[6] 亚春林.高校虚拟仿真实验教学的思考[J].现代职业教育,

2022(25):40-42.

[7] 曾琎.基于虚拟仿真系统的产品创新设计研究[D].武汉:武

汉理工大学,2009.

[8] 于本知,韩建宁,赵欣洒,等.基于Unity3D引擎的类流体光声

检测虚拟实验系统的设计与开发[J].中北大学学报(自然科

学版),2022,43(2):186-192.

[9] 黄涛,胡佳恒,付佩.虚拟仿真实验在材料力学课程教学改革

中的应用研究[J].实验科学与技术,2022,20(1):34-38,44.

[10] 曾思鈺.基于Unity3D的物联网实验仿真系统的设计与实

现[D].杭州:浙江大学,2021.

【通联编辑:谢媛媛】

猜你喜欢

微服务架构设计教学模式
群文阅读教学模式探讨
基于安全性需求的高升力控制系统架构设计
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
微服务视角下高职图书馆数字资源使用分析
从单一模式系统架构往微服务架构迁移转化技术研究
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
5E教学模式对我国中学数学教学的启示
对称加密算法RC5的架构设计与电路实现