DDS在模拟训练系统中的应用研究*
2016-03-15任棕诜任雄伟
任棕诜 任雄伟
(海军工程大学电子工程学院 武汉 430033)
DDS在模拟训练系统中的应用研究*
任棕诜任雄伟
(海军工程大学电子工程学院武汉430033)
摘要对于大型复杂模拟训练系统,数据分发是关键,既要满足实时性,又要保证可靠性。针对这一问题,对象管理组织(OMG)专门发布了实时的数据分发服务(DDS)标准。论文首先分析了DDS的通信模型与数据传输方式的优势;然后测试了实际性能,提出了运用服务质量(QoS)策略优化性能的方法;最后将DDS应用于模拟训练系统中,实例表明DDS适用于模拟训练系统。
关键词数据分发服务; 模拟训练系统; 服务质量
Research on Application of DDS in Simulation Training System
REN ZongshenREN Xiongwei
(College of Electronics Engineering, Naval University of Engineering, Wuhan430033)
AbstractDate distribution is key for large and complicated simulation training system not only in real-time but also in reliability. To resolve this problem, Object Management Group publishes real-time date distribution service standard specially. Firstly, the advantages of the communication model and data transmission method of date distribution service are analyzed; Then the performances are tested and a method of optimizing performances through the application of quality of service is introduced. Finally, date distribution service is applied in simulation training system, the example demonstrates that applying date distribution service in simulation training system is appropriate.
Key Wordsdate distribution service, simulation training system, quality of service
Class NumberTP391.9
1引言
模拟训练系统通过联网技术将分散在各地的人在回路中的仿真器、计算机生成兵力以及其他设备联结为一个整体,形成一个可以在时间和空间上互相耦合的虚拟战场合成环境,参与者可以自由地交互作用[1]。这样,使过去主要依靠野战演习完成的任务可以利用计算机、仿真器和人工合成的虚拟环境来进行,同样能够达到作战及技术双重模拟训练的目的。对于大型复杂的模拟训练系统来说,数据的有效传输是重中之重,需要一个可以满足复杂数据流的高效传输的中间件。目前,HLA已成为国际通用的标准,但是HLA不支持QoS,导致了应用的局限性。
对象管理组织于2004年发布了DDS规范,并在2007年1月推出了V1.2版[2]。DDS灵活的数据通信机制允许分布式的大量节点进行异步的和实时的通信,可以实现在正确的时间、正确的地点获得正确的数据,并且提供QoS保证[3],极大地提高了通信效率,可以满足模拟训练的需求。
2DDS的优势
2.1DDS通信模型
大多数企业级网络架构采用的是以对象为中心的客户端/服务器通信模型(如图1),在这种模型中,通信由客户端主动发起,它必须先绑定到服务器上,并通过调用特定的操作来更改或获取信息[4]。这种方法无法保证实时性,另外由于耦合度高,降低了系统的灵活性、扩展性和健壮性[5]。
图1 客户端/服务器模型
DDS采用了以数据为中心的发布/订阅(DCPS)通信模型。DCPS属于DDS规范的核心层,提供发布与订阅数据的功能,它虚拟了一个全局数据空间,各种类型的数据对象存在于全局数据空间中,分布式节点通过简单的读、写操作便可以访问这些数据对象(如图2),每个数据对象都以特定的主题作为标识符,发布和订阅通过主题来关联通信双方[4]。DCPS层将用户对资源的需求和资源的可用信息都转化为QoS参数。在DDS中,QoS参数贯穿整个DDS通信过程,在注册、匹配、数据分发阶段都离不开QoS的参与。DCPS层的发布/订阅功能接口只需指明需要的QoS,由DCPS依照QoS实现数据的发布和订阅[6]。
DCPS支持一对一、一对多、多对多的通信,不存在服务器瓶颈问题,时延也能得到有效的控制,很适合分布式实时通信系统。
图2 DDS通信模型
2.2DDS数据传输方式
模拟训练系统涉及各种异构平台,在不同平台上数据的储存与分布的方式是有区别的,中间件必须能够获取一个特定平台上的数据并将其准确无误地传递给另一个平台。
常见的解决方法有两种:一种是中间件不作处理,需要用户处理数据的编码、对齐等事项,效率不高;一种是由中间件来屏蔽平台间差异,每个数据包都要携带大量的冗余信息,降低了网络性能。RTI-DDS(第一个支持DDS规范的商业产品)采用了一种折中的方法,用“主题”来声明一类数据,主题相同的数据示例有着相同的数据类型,中间件将描述性的元数据同数据示例分开进行传输(如图3),在高效传输数据的同时又能妥善解决字节的排序、对齐等问题[7]。
图3 RTI-DDS数据传输方式
3性能测试及优化策略
3.1时延与吞吐量测试
RTI-DDS的性能是需要重点关注的对象,为此我们进行了时延与吞吐量测试。在尽力传输模式下,逐次采用24~213Bytes大小的数据包在100M网络上进行测试,结果如图4。
通过图4,我们可以知道时延随着数据包的增大逐渐上升,不过整体上都处在较低的水平,适用于模拟训练系统。一对二时,时延有所增加,RTI-DDS提供了组播通信方式来解决这一问题。
图4 时延测试结果
同样条件下进行吞吐量测试,结果如图5。
通过图5,我们可以知道吞吐量随着数据包大小的增加呈现逐渐上升的趋势,这是因为数据包的系统开销减小了且对CPU资源的占用也少了。最后达到较高的值,趋于稳定,这是受到带宽的限制。一对二传输的时候吞吐量低于一对一。RTI-DDS提供了批量发送方式,可以将小数据积累到一定程度再发送,减轻CPU的压力,增加吞吐量。
3.2组播通信与批量发送
DDS提供了丰富的QoS策略,RTI-DDS又在此基础上扩展了多个QoS。这些策略的合理配置可以极大地优化通信性能。
RTI-DDS通过TRANSPORT_MULTICAST(扩展的QoS)策略声明一个组播地址,然后数据读取者通过这个地址接收数据,同时还能声明一个用来接收数据的端口号[7]。数据写入者默认采用单播模式发送数据,即向每个订阅其主题的数据读取者单独地发送数据包,这样一来许多复制的数据会被发送到网络上,一个数据写入者使用的网络带宽会随着数据读取者的个数线性地增长。
而采用组播的方式只需发送一次就能让多个节点收到,对于有多个数据读取者订阅同一主题的系统可以优化网络带宽的使用,显著提高一对多传输的性能。
批量发送(BATCH)也属于RTI-DDS扩展的QoS策略,当系统需要快速发送大量小数据示例时,如果把这些数据示例组合在一起批量发送的话效率会大幅提高[7]。因为小数据集中传输时系统开销不容忽视,CPU占用率很高,而BATCH策略可以减小数据发送和应答(可靠传输模式下)的系统开销,同时增加有效吞吐量。对于小数据(<2048Bytes)来说,吞吐量主要受到CPU而非网络带宽的限制,将小数据组合成大数据包能增加网络利用率从而增加吞吐量。
采用BATCH策略意味着调用write()函数以后数据不会立刻出现在网络上,而是收集到一个BATCH里面,无形中增加了时延。但是,如果应用发送数据的速率超过了网络的承受能力,将有很多的带宽浪费在应答与丢失数据的重传上,这时,通过运用BATCH策略来减少元数据开销就能降低时延,甚至还能增加吞吐量。具体什么时候采用BATCH策略要看系统的需求与实际性能。
在三种情况下,BATCH会被发送到网络上:数据量达到BATCH的上限(max_data_bytes)、示例数达到上限(max_samples)或者达到时间限制(max_flush_delay)。
另外,也可以直接调用DateWriter的flush()函数发送BATCH。当启动BATCH模式的时候,发送数据的流程如图6。
图6 批量发送流程
4实例应用
4.1系统构成
一个完整的模拟训练系统应该具备以下功能[8]: 1) 想定元素的编辑,剧情和真值数据生成,仿真系统控制等; 2) 各种作战元素的仿真,包括传感器仿真、平台仿真等; 3) 战场信息的采集和回放; 4) 战场态势显示,仿真系统状态等信息的可视化; 5) 仿真效能的评估。一个典型的模拟训练系统的结构如图7。
图7 模拟训练系统组成图
其中,计算机生成兵力是指在虚拟的战场环境中利用计算机生成和控制武器装备和人员等单个或多个作战仿真实体,并通过一定的人的行为的建模,使这些实体能不需要人的外部干预而自动地对作战仿真环境中的事件和状态做出反应[9],是整个训练系统的核心。综合导控系统是确保训练正常有序运行、实现人与系统交互的关键。
4.2集成DDS
在战术级仿真这一层面,我们采用STAGE软件进行仿真。STAGE是一个完全独立的战术环境生成软件,具有开放的体系结构,可被重构并扩充以适应多个环境的框架,成为广泛用于战术仿真、武器系统验证和作战训练的完整开发工具[10]。我们以STAGE作为数据源,将其与各仿真平台相连接(如图8),系统的通信需求主要存在于STAGE仿真引擎与各平台之间,平台与平台之间也可以间接通信。
图8 仿真集成图
在仿真实例中,我们设计了一个IDL文件用来定义与平台无关的数据类型,里面包含了各种状态信息,包括仿真时间、平台名称、平台速度、平台航向、平台海拔高度以及平台经纬度:
struct ptfstatus{
double ptftime;
string ptfname;
float ptfspeed;
float ptfheading;
double ptfalt;
double ptflat;
double ptflon;
};
利用代码生成器rtiddsgen将IDL文件转换成数据类型支持文件status.h、status.cxx、statusPlugin.h、statusPlugin.cxx、statusSupport.h以及statusSupport.cxx。
STAGE仿真引擎允许注册用户输出函数,可以编写一个外部主控程序将仿真数据引出来。首先在主控程序中定义DDS实体指针并初始化为NULL,注册StoreExpPtfActionData函数用来储存仿真数据,然后在main函数中依次创建各个DDS实体并配置QoS,在StoreExpPtfActionData函数中添加代码:
static void StoreExpPtfActionData( void *data, int data_size )
{
Exported_Obj_Action exp_obj_action_msg;
memcpy(&exp_obj_action_msg, data, data_size);
instance->ptftime = sim_time;
strcpy(instance->ptfname,exp_obj_action_msg.name);
instance->ptfspeed = exp_obj_action_msg.status.speed;
instance->ptfheading = exp_obj_action_msg.status.heading;
instance->ptfalt = exp_obj_action_msg.status.pos.sphe.alt;
instance->ptflat = exp_obj_action_msg.status.pos.sphe.lat;
instance->ptflon = exp_obj_action_msg.status.pos.sphe.lon;
retcode = ptfstatus_writer->write(*instance, instance_handle);
}
代码先将“ptfstatus”类型的数据实例指针指向了STAGE仿真数据变量,然后将数据存储在DDS内部缓存中,等待有匹配的数据读取者时发送数据。
在其它仿真节点上,同样先将上文提到的IDL文件转换为数据类型支持文件,然后添加订阅程序,主要包括DDS各实体的创建、QoS的配置、监听器的设置、接收函数的调用以及数据示例的处理等。这里我们在原主题的基础上创建了过滤内容主题(ContentFilteredTopic),利用此主题创建数据读取者,按照平台名称对数据进行过滤,这样一来各节点只需接收与处理与己相关的数据。
4.3仿真结果
在设计的想定中,我们搭建了多个平台,平台类型涵盖了海、陆、空各领域。整个仿真过程以一个友好的界面完整地展现在我们面前(如图9)。
首先运行仿真主控程序,打开STAGE想定管理器,加载想定数据,启动仿真引擎,然后发布方开始发送数据。在发布方启动仿真引擎以后,启动订阅方程序,开始接收数据。图10是其中一个平台节点收到的数据,一个空中平台的状态及位置信息清晰地展现在我们面前。
图9 仿真想定界面
图10 接收端界面
从以上实例可知,RTI-DDS完全可以应用于模拟训练系统。各平台通过DDS可以实时地获得仿真数据。用户不必关心底层通信细节,只需专注于仿真程序的设计。
5结语
DDS是专门为实时系统设计的数据分发标准,以数据为中心的通信模式使得其在同类中间件中显示出独特的优势。通过DDS的运用,我们可以灵活地定义数据类型,多方面配置QoS,实现数据的高效可靠传输。
目前,RTI-DDS在国外已经得到了广泛应用,国内使用RTI-DDS进行实际项目开发的较少。不仅仅是模拟训练,包括分布式控制、工业自动化以及社交通信等都可以应用RTI-DDS,下一步还需加大性能测试范围,勇于探索DDS的实际应用。
参 考 文 献
[1] 王子才.现代仿真技术发展及应用[J].科技和产业,2002,2(2):1-4.
WANG Zicai. Development and Application of Modern Simulation Technology[J]. Science and Industry,2002,2(2):1-4.
[2] 张大海,赖兰剑,陈鼎才.DDS在分布式系统仿真中的应用[J].计算机技术与发展,2011,21(3):250-253.
ZHANG Dahai, LAI Lanjian, CHEN Dingcai. Application of DDS in Distributed System Simulation[J]. Computer Technology and Development,2011,21(3):250-253.
[3] 杜涛涛,张庆杰,朱华勇.面向实时数据分发服务的DDS性能研究[J].微计算机信息.2010,26(8-3):155-158.
DU Taotao, ZHANG Qingjie, ZHU Huayong. Performance Research for Real-Time Data Distribution Properties of DDS[J]. Microcomputer Information,2010,26(8-3):155-158.
[4] 裘楷,沈栋,李娜,等.基于DCPS模型的数据分发服务DDS的研究[J].电子科技,2006(11):68-71.
QIU Kai, SHEN Dong, LI Na, et al. Study of Data Distribution Service Based on DCPS Model[J]. Electronic Science and Technology,2006(11):68-71.
[5] 张珺,尹逊和.基于RTI DDS的数据分发中间件的升级设计[J].北京交通大学学报,2011,35(5):31-37.
ZHANG Jun, YIN Xunhe. Design of Upgraded Data Distribution Service Middleware Based on RTI DDS[J]. Journal of Beijing Transportation University,2011,35(5):31-37.
[6] OMG. Data Distribution Service for Real-Time Systems Version 1.2[DB/OL]. [2015-06-12]. http://www.omg.org/spec/DDS.
[7] Real-Time Innovations, Inc. RTI Connext DDS Core Libraries and Utilities User’s Manual Version 5.1.0[EB/OL]. [2015-06-12]. http://community.rti.com.
[8] 张宝童,易凯.多传感器数据融合仿真系统的设计与实现[J].数字技术与应用,2013(4):189-190.
ZHANG Baotong, YI Kai. Design and Implementation of Multi-Sensor Data Fusion Simulation System[J]. Digital Technology and Application,2013(4):189-190.
[9] 贾连兴,单维峰,鲁云军,等.作战仿真研究热点及发展[J].系统仿真学报,2007,19(14):3148-3150.
JIA Lianxing, SHAN Weifeng, LUN Yunjun, et al. Research on Development of Operational Simulation[J]. Journal of System Simulation,2007,19(14):3148-3150.
[10] 任雄伟,王优锴,肖金石.基于Stage的武器装备作战效能评估仿真框架设计[J].火力与指挥控制,2014,39(1):176-179.
REN Xiongwei, WANG Youkai, XIAO Jinshi. Design of the Stage-Based Simulation Framework for Operational Effectiveness Evaluation of Weapon and Equipment[J]. Fire Control and Command Control,2014,39(1):176-179.
中图分类号TP391.9
DOI:10.3969/j.issn.1672-9722.2016.02.019
作者简介:任棕诜,男,硕士研究生,研究方向:装备效能评估,分布式仿真。任雄伟,男,博士,教授,研究方向:武器装备体系效能分析,复杂系统建模,作战模拟仿真等。
*收稿日期:2015年8月12日,修回日期:2015年9月22日