一种面向LVC仿真的软总线实现及优化方法

2017-07-18 12:02:55房圣超彭澍源
现代计算机 2017年16期
关键词:中间件通讯消息

房圣超,彭澍源

(中国电子科学研究院,北京 100041)

一种面向LVC仿真的软总线实现及优化方法

房圣超,彭澍源

(中国电子科学研究院,北京 100041)

为支撑以联合作战为特征的试验训练,需要设计能够支撑LVC仿真的高效软总线。基于ICE中间件实现一种支撑LVC仿真的软总线,并针对目前消息订阅分发效率低的问题,对消息订阅分发功能进行优化,以此达到减少软总线开销,高效支撑LVC仿真的目的。

LVC;软总线;ICE中间件

0 引言

支持LVC(Live,Virtual,and Constructive实况-虚拟-构造)互操作的分布式联合仿真支撑平台是解决当前信息化条件下联合作战训练诸多问题的有效手段[1]。软总线是支撑分布式联合仿真平台的关键部件,软总线是通过软件定义异构软件系统交互的标准接口,使得符合标准要求的分系统或组件能够以“即插即用”的方式灵活的进行互联互通互操作。而参与联合仿真的成员分布在不同的地域,网络环境复杂多样,网络质量也参差不齐,因此软总线的效率和性能是整个联合作战仿真平台正常运行的重要保障。并且仿真运行过程中往往会产生大量需要分发给其他分布式成员的数据,例如雷达、电磁等感知数据,因此优化软总线的性能和资源占用是必要的。

本文首先分析了目前用于实现软总线方法的优缺点,综合考虑进而采用ICE分布式通讯中间件实现了支撑LVC仿真软总线。并针对目前使用ICE实现消息订阅分发效率不高的问题进行了详细的分析,提出了一种改进的消息订阅分发方法。

1 通讯中间件分析及软总线实现

目前能够实现软总线的分布式通讯中间件主要有Java RMI、DCOM、Corba、ICE(Internet Communications Engine)[3]。RMI是Java虚拟机之间对象相互调用函数、进行消息传递的一种方式,但是对于非Java平台的支持不足。DCOM是微软提供的分布式计算解决方案,但是不支持非Windows操作系统。Corba能够使用不同编程语言实现,支持在不同操作系统之间进行通讯,但是Corba有对象引用不透明性、各种API的复杂性等缺点[4]。ICE吸取了Corba的优点并进行了简化,同时支持SSL协议、支持常用的编程语言和操作系统[5]。因此本文使用ICE实现支撑LVC联合仿真的软总线[6]。

根据LVC分布式联合仿真平台的需求,本文使用ICE分布式通讯中间件设计实现了仿真集成软总线。底层网络通讯支持TCP、UDP单播、UDP多播技术,采用ICE RPC(Remote Procedure Call)方式进行消息的传递和总线成员之间的互操作,采用ICE Slice消息定义技术定义与编程语言无关的消息数据结构,同时实现了消息和对象的订阅分发及管理功能,该总线具备分布式、无中心、跨平台的特点。

2 消息订阅分发问题分析

现有的集成软总线技术在消息订阅分发功能上主要存在以下几方面的不足:

(1)传统的消息订阅分发技术基于成员间的发布/订阅关系,而总线成员按需指定消息的订阅方式,导致同一消息需要发送多次才能保证每个成员都收到消息,造成总线资源的浪费。软总线支持一个成员在本机的一组Endpoint(TCP、UDP和多播的方式)上提供订阅服务,Endpoint指的是RPC调用地址和方式等参数信息,如“MSG0:tcp 70.3.1.171:10000”表示总线成员在本机IP地址“70.3.1.171”的端口10000上以TCP方式订阅消息0。

如果成员A和成员B按照下面的方式声明对MSG1的订阅:

成员A订阅MSG1:multicast 239.255.1.1:12000

成员B订阅MSG1:udp 70.3.1.150:11001;multicast 239.255.1.1:12000

如果不对消息分发方式加以控制,成员B可以选择从UDP 70.3.1.150:11001这个Endpoint发送数据给B,同时通过multicast 239.255.1.1:12000发送数据给成员A,成员C需要发送两次数据才能保证A和B都收到数据。

显然,如果成员C通过multicast 239.255.1.1:12000发送数据,只需要发送一次数据,A和B就都能收到消息MSG1。因此如果让总线随机选择Endpoint进行消息发送会导致同一条消息被发送多次,造成总线资源的浪费。

(2)由于本总线支持的三种通讯方式有不同的适用情况,TCP通讯方式没有消息的丢包,但是占用总线资源较多,传输消息量小;多播和UDP方式存在一定程度的丢包,但是占用总线资源较少,传输消息量大;部分网段不支持多播的通信方式。目前消息的订阅方式是由用户按需指定的,总线不能根据总线实时的运行状态对其进行有针对性的优化。即使经过Endpoint的合并,由于用户的消息订阅需求多种多样,依然会出现同一消息需要发送多次才能保证所有总线成员都收到的情况。

(3)由于分布式部署的总线成员更新自身的“消息订阅发布关系表”需要花费时间,目前通用的做法是采用线程锁的方式来更新消息订阅发布表,因此在更新关系表的线程执行更新算法的时间内,分发消息的线程就会被堵塞。更新订阅发布关系越频繁,这种堵塞就越影响总线的消息分发效率。

3 订阅分发功能优化方法

3.1 动态优化消息的订阅分发方式

为了优化软总线的性能,需要有针对性的优化消息的订阅分发方式。本文定期统计当前所有分布式节点中的各个节点的三种分发方式的丢包率,统计每一种消息被不同成员订阅的方式。并且本软总线支持用户在发布消息的时候选择是否允许系统进行优化,以满足用户对传输方式的特定需求。如果允许,则总线会自动根据当前该节点的丢包率和不同的订阅方式对消息的订阅方式进行优化。

优化的流程见图1。消息丢包率历史数据设定的初始值根据之前的实验确定。该值在总线运行过程中会定期根据成员的统计信息进行更新。

3.2 消息订阅方式合并

为了减少对同一消息的分发次数,需要对同一消息的不同订阅方式进行合并,合并过程如图2所示。

3.3 三级缓存的结构维护“订阅//发布关系表”

第一级缓存:以消息主题为索引,保存各个消息有哪些总线成员订阅,同时保存这些总线成员最新的Endpoint信息。

第二级缓存:在第一级缓存的基础上,先采用3.1节的方法对消息订阅方式进行优化,然后按照3.2节的方法合并出每个消息的有效Endpoint集合。第二级缓存跟随第一级缓存的变化而变化。

第三级缓存:在第二级缓存的基础上,准备每个消息可以直接使用的RPC对象。当应用层需要发送数据时,直接在本级获取RPC对象集合,完成发送即可。所有的消息发送都直接查找第三级缓存表进行消息的发送,通过第一级表对消息的缓存,第二级表对消息订阅方式的优化和合并,当仿真运行过程中某个消息订阅关系发生变化时,第三级表会发生较少的变动,而不是未采用三级缓存结构前,每一个成员有消息订阅方式发生变动,消息订阅分发表都要进行更新。这样消息订阅和消息分发线程就会减少发生相互堵塞,以此提升总线的数据分发效率。

4 结语

本文对用于实现软总线的常用分布式通讯中间件的优缺点进行了分析。综合软总线的实际需求,设计并实现了基于ICE分布式通讯中间件的软总线。并对消息订阅分发功能的不足进行了分析,针对不足之处通过基于对总线的监控统计,采用动态优化消息的订阅分发方式、消息订阅方式的合并和三级缓存结构三种方法对总线进行了优化,从而达到优化软总线的性能、减少总线资源占用、高效支撑LVC仿真的目的。

图1 优化消息的订阅分发方式流程图

图2 不同订阅方式合并流程图

[1]张昱,张明智,胡晓峰.面向LVC训练的多系统互联技术综述[J].系统仿真学报,2013,25(11).

[2]蔡继红,卿杜政,谢宝娣.支持LVC互操作的分布式联合仿真技术研究[J].系统仿真学报,2015,27(1).

[3]王宁,王铮.ICE插件技术研究[J].计算机技术与发展,2012,22(5).

[4]徐长盛,高欣.分布式系统与Ice[J].冶金自动化,2009,14(1).

[5]姜邵巍,朱建良,吴永胜.一种改进的ICE中间件负载均衡算法[J].中国电子科学研究院学报,2016,11(3).

[6]祝义荣.ICE在模拟训练系统消息中间件中的应用[J].科技广场,2016,14(4).

Implementation and Optimization Method of LVC Simulation Oriented Software Bus

FANG Sheng-chao,PENG Shu-yuan

(China Academy of Electronics and Information Technology,Beijing 100041)

In order to support the joint armament test and training,it is necessary to design an efficient software bus that supports the LVC simulation. Implements a software bus for supporting LVC simulation based on ICE middleware.Aiming at the problem of low efficiency of news subscription and distribution function,optimizes this function to reduce the cost of software bus,and achieves to support LVC simulation efficiently.

房圣超(1989-),北京人,硕士研究生,助理工程师,研究方向为仿真基础支撑与建模技术

2017-05-25

2017-06-01

1007-1423(2017)16-0050-04

10.3969/j.issn.1007-1423.2017.16.012

彭澍源(1988-),湖北随州人,博士研究生,工程师,研究方向为电磁环境建模技术

LVC;Software Bus;ICE Middleware

猜你喜欢
中间件通讯消息
《茶叶通讯》简介
茶叶通讯(2022年2期)2022-11-15 08:53:56
《茶叶通讯》简介
茶叶通讯(2022年3期)2022-11-11 08:43:50
通讯报道
一张图看5G消息
RFID中间件技术及其应用研究
电子制作(2018年14期)2018-08-21 01:38:10
基于VanConnect中间件的设计与开发
电子测试(2018年10期)2018-06-26 05:54:02
通讯简史
消息
中国卫生(2014年12期)2014-11-12 13:12:26
消息
中国卫生(2014年8期)2014-11-12 13:00:50
消息
中国卫生(2014年7期)2014-11-10 02:32:52