两种适用于嵌入式舰船电力虚拟模拟训练系统软件架构的构建与比较分析

2017-10-24 06:01吴旭升
船电技术 2017年10期
关键词:模拟训练舰船嵌入式

侯 玉,吴旭升,冯 源,陈 搏

(1. 海军工程大学 电气工程学院,武汉 430033;2. 海军驻某厂军事代表室,辽宁大连 116005)

两种适用于嵌入式舰船电力虚拟模拟训练系统软件架构的构建与比较分析

侯 玉1,2,吴旭升1,冯 源1,陈 搏2

(1. 海军工程大学 电气工程学院,武汉 430033;2. 海军驻某厂军事代表室,辽宁大连 116005)

针对嵌入式舰船电力虚拟模拟训练系统的特点,提出混合架构和标准Web架构等两种适用于嵌入式舰船电力虚拟模拟训练系统的软件架构。对两种软件架构进行了对比分析,对依据两种软件架构开发的模拟训练软件进行了测试比较。

嵌入式 舰船电力 虚拟模拟训练

0 引言

舰船电力系统由于舰船空间紧张,各种资源有限,难以放置类似陆用的大型模拟训练系统,只能利用实船装备开发嵌入式模拟训练系统,采用实船实际装备的硬件系统,在执行任务间隙通过后台运行。这就决定了嵌入式舰船电力虚拟模拟训练系统的硬件水平是常规计算机的水平,难以获得高性能的硬件支持,只能在软件方面进行优化设计,以解决船舶电力虚拟模拟训练系统中的相关需求[1-3]。

舰船电力虚拟模拟训练系统总体上需要满足以下要求:训练场景真实性、训练过程实时性、训练结果可追踪评估、训练内容和角色可管理控制。传统陆用大型模拟训练系统能够获取高性能硬件支持,不仅运行主机性能优越,还能有专用的仿真机提供支撑,因此在软件设计方面为追求开发过程的便捷性,往往采用单一语言和简单架构进行软件开发。但是嵌入式舰船电力虚拟模拟训练系统立足于实船装备的硬件条件下,采用单一语言和简单架构将难以满足训练场景真实性,训练过程实时性的要求。为解决该问题,本文对模拟训练系统的架构进行研究,提出两种基于前后端分离的分布式电力虚拟模拟训练架构构建方法,并对两种架构进行定量比较,对这两种架构开发的软件进行了测试分析[4-8]。

1 基于前后端分离的两种分布式电力虚拟模拟训练架构构建

本文提出两种基于前后端分离的分布式电力虚拟模拟训练架构,一种是基于Java + Qt+ Cpp+ OpenDDS + 关系数据库 + (html + javascript +CSS) + WebGL的混合架构(见图1);另一种是基于Rust + 关系数据库 + (html + javascript + CSS)+ WebGL的标准web架构(见图2)。

图1 基于Java + Qt/ Cpp + OpenDDS + 关系数据库 + (html + javascript + CSS) + WebGL的混合架构

2 基于前后端分离的两种分布式电力虚拟模拟训练架构比较分析

首先在客户端和服务器的架构上,两种架构都是浏览器/服务器(Brower/Server,B/S)的分布式体系架构,这是传统的客户端/服务器(Client/Server,C/S)分布式体系架构的一种变体,是一种标准的瘦客户端。这种B/S架构的瘦客户端大多数情况下仅提供对服务器端的数据进行解析和显示,大多数计算任务均由服务器来处理,因此瘦客户端/服务器架构容易维护而且容易扩展,并且跨平台也很容易。本文主要对后端服务器设计方法、前端客户端设计、数据分发、系统测试、系统部署5个方面进行比较。

2.1 后端服务器设计

基于该混合架构构建的虚拟模拟训练软件,将仿真模型分为两部分,一部分是实时化仿真模型,包括后端电力系统实时化仿真模型、声音仿真模型、操控指令仿真模型、评估仿真模型等,均基于Qt框架构建,由于Qt基于Cpp语言,而作为可编译为本地机器代码的Cpp,其运行不需要虚拟机做支撑,由此编译得到的代码运行性能将比基于Java的代码运行性能要高。在实时数据分发方面由于上述后端模型基于Cpp实现,因此采用同样基于Cpp的OpenDDS框架实现了相应的实时数据分发服务,不仅满足数据实时分发需求,还能实现与Cpp的无缝对接。另一部分是持久化模型,该模型对于实时性要求不高,因此采用java的各项技术(包括spring和hibernate)进行构建,通过restful进行数据分发。而基于java进行构建优势在于,其是分布式架构构建的最主要语言,基于java实现的web及数据库中间件等技术最为先进及完备。

标准Web架构则与混合架构完全不同,仅仅采用了单一的Rust语言及相应的各项技术进行构建。这是因为,同Cpp一样,Rust也是可编译为本地机器代码的语言,运行时不需要虚拟机做支撑,基于Rust所编译的机器代码运行效率经测试与基于Cpp的代码运行效率相当(某些测试甚至超过Cpp)。并且,目前Rust已有相应的各种框架和库,可提供对web服务、数据持久化以及序列化/反序列化等功能的支撑。因此,综合考虑,可基于Rust进行标准web架构的构建。

图2 基于Rust + 关系数据库 + (html + javascript + CSS) + WebGL的标准web架构

2.2 前端客户端设计

两种种架构对于二维GUI界面的架构方法基本是一致的,不同之处仅仅体现在具体的模板语言上。混合架构基于java的两种架构采用了jsp模板,以更好的能和后端的各种技术进行融合。而标准web架构中的二维前端采用了更为通用的基于javascript的模板,以便更彻底的实现前后端的分离。对于三维场景的构建,两种架构采用了基于WebGL的Three.js,从开发效率、测试手段等方面看,Three.js具有简单、小巧、WebGL与Html结合性较好等优势,且经测试,基于Three.js构建的虚拟仿真三维场景完全可流畅运行。

2.3 在数据分发服务

混合架构采用了restful/http以及实时数据分发服务(Data Distribution Service,DDS)相结合的方式,其中restful/http主要用于前后端持久化数据、静态资源之间的数据交互,而DDS主要用于电力系统实时仿真数据、声音出发、操控指令、评估等实时性要求较高的数据交互。

标准Web架构则直接基于Restful/Http服务进行所有实时与非实时的数据交互。虽然标准Web架构如此做在性能上稍微有所牺牲,但由于统一数据交互接口,便于构建、测试与部署,且经测试,在船舶电力虚拟模拟训练这样的小型分布式系统应用环境下,其性能损失较小,可以忽略不计。

2.4 系统测试

混合架构为了在各方面达到最优,采用了多种开发语言及技术进行构建。然而,此种做法加大了测试的难度。首先,每种开发语言、每种技术均有自己的测试手段,但由于系统的模块由不同的技术实现,因此,在进行模块内部的单元测试和集成测试时较为容易,但若需要进行跨模块集成测试,则问题的查找和定位将非常困难。

标准Web架构由于简化了系统结构,其后端构建技术仅基于Rust,而Rust本身的测试可以统一归于Cargo工具下进行管理,因此相较于前两种架构,标准架构的测试方法将更加简单高效。

2.5 综合比较

综上所述,标准Web架构优于混合架构。各个架构的优缺点可归结为表1所示。

3 基于两种架构的模拟训练系统性能测试与分析

本文对上述两种架构开发的软件的页面访问性能和数据分发性能进行了测试,并对其进行了对比分析。

3.1 测试内容与方法

将主要采用siege进行负载测试,采用webbench进行压力测试

1) 页面访问性能测试

此项测试旨在测试该两种架构下,模拟训练服务器所提供的Web页面访问的能力。测试方法如下:

第一步:按照正常启动方法,分别在各自的运行环境中启动相应的模拟训练服务器软件。

第二步:选取典型的模拟训练软件页面,采用以下方法分别进行单个典型页面测试、所有典型页面综合测试。

第三步:利用siege工具,分别模拟单个客户端、10个客户端并行、50个客户端并行、100个客户端并行访问上述页面(组),进行5次测试,得到相应的负载测试数据。

第四步:利用WebBench工具,逐步增加并行模拟客户端的数量,直至500个并行模拟客户端,访问一个典型页面,持续足够长时间进行多次测试,得到相应的压力测试数据。

2)数据分发性能测试。

此项测试旨在测试两种架构下,模拟训练服务器所提供的数据分发的能力。测试方法如下:

第一步:按照正常启动方法,在运行环境中启动相应的模拟训练服务器软件。

第二步:选取典型的模拟训练分发数据类型,选取的测试数据为仿真电力系统实时数据包以及典型的指令实时数据包。

第三步:利用siege工具,分别模拟单个客户端、10个客户端并行、50个客户端并行、100个客户端并行访问相应典型数据,对restful数据分发方法进行5次测试,得到相应的测试数据。

第四步:分别同时启动单个客户端、10个客户端、50个客户端、100个客户端访问相应典型数据,对OpenDDS数据分发方法进行测试,得到相应的测试数据。

3.2 性能测试结果与分析

由表2可知,对于页面访问性能,标准架构的性能要优于混合架构,这得以于基于Rust的模拟训练服务器运行的高效性。然而,混合架构的数据分发性能远远好于Rust标准架构,原因在于,Restful数据分发服务本质上仍然基于HTTP通信协议,而HTTP通信协议传输的数据是字符流,因此,HTTP通信数据帧长度较OpenDDS要长很多。其次,由于B/S架构下的Web服务器的通信机制,其响应的延迟要比DDS通信延迟本身要大很多。总体来看,混合架构以及标准Web架构均满足船舶电力模拟训练系统实际应用的需求。

4 小结

针对嵌入式舰船电力虚拟模拟训练系统的特点,提出两种适用于嵌入式舰船电力虚拟模拟训练系统的软件架构。对两种软件架构进行了对比分析,对依据两种软件架构开发的模拟训练软件进行了测试比较。从对比分析看,标准Web架构要优于混合架构。从测试结果看,两种服务架构都能在嵌入式舰船电力虚拟模拟训练系统硬件条件下满足训练过程真实性、实时性的要求。

表2 两种架构总体性能测试结果

[1]林平. 舰艇嵌入式模拟训练技术的应用及发展[J].军事运筹与系统工程, 2008, 22(4): 27-31.

[2]金炳哲, 龚喜文. 船舶电力系统模拟训练系统的设计与实现[J]. 上海船舶运输科学研究所学报, 2016,39(1): 49-53.

[3]谢辉, 卜乐平, 冯源. 船舶电力模拟训练评估系统的设计和开发[J]. 舰船科学技术, 2013, 35(11):45-48.

[4]McGrath Dennis, Hill Doug, Hunt Amy. IC2020:Embedded Simulation for Next Generation Incident Command Software[C]. Huntsville AL: Proceedings of the 2006 Huntsville Simulation Conference, 2006.

[5]商亚新, 王学奎. 基于VC++的模拟器训练评估软件的设计与实现[J]. 计算机与数字工程, 2013, 9:1525-1528.

[6]徐远新, 林平, 徐海刚. 基于 HLA 的舰载嵌入式模拟训练系统设计方案[J]. 军事运筹与系统工程,2012, 26(2): 51-54.

[7]李爽. 设计模式在实船训练系统软件设计中的应用[J]. 上海船舶运输科学研究所学报, 2011, 34(1):47-51.

[8]常天庆, 张波, 王钦钊. 嵌入式训练技术的应用与发展[J]. 装甲兵工程学院学报, 2008, 22(6): 1-6.

Construction and Comparative Analysis of Two Software Architectures for Embedded Virtual Simulation Training of Marine Power System

Hou Yu1,2, Wu Xusheng1, Feng Yuan1, Chen Bo2
(1. College of Electric Engineering, Naval Engineering University, Wuhan 430033, China; 2. Naval Representative Office,Dalian 116005, Liaoning, China.)

According to the features of the embedded virtual simulated training for marine power system,two software architectures, including hybrid architecture and standard Web architecture, are proposed for embedded virtual simulated training of marine power system. Two software architectures are compared and analyzed in this paper, and the simulation training software based on two software architectures is tested and compared.

embedded system, marine power system, virtual simulated training

TM743

A

1003-4862(2017)10-0027-05

2017-08-18

侯玉(1983-),男,硕士,工程师。研究方向:电力系统。E-mail:j-y-f2005@qq.com

猜你喜欢
模拟训练舰船嵌入式
舰船通信中的噪声消除研究
舰船测风传感器安装位置数值仿真
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
模拟训练(二)
嵌入式软PLC在电镀生产流程控制系统中的应用
模拟训练(十一)
模拟训练(十)
舰船腐蚀预防与控制系统工程
倍福 CX8091嵌入式控制器