基于DDS的联合试验平台中间件节点状态检测方法与流程

文档序号:17002590发布日期:2019-03-02 01:52阅读:389来源:国知局
基于DDS的联合试验平台中间件节点状态检测方法与流程

本发明涉及联合试验平台中间件节点状态检测方法。



背景技术:

联合试验平台中间件负责整个联合试验系统的建立和运行期间的所有通信,属于联合试验平台的公共设施,能够提供联合试验系统资源之间高性能、低延迟的数据环境和面向综合测试系统应用管理控制功能。

在联合试验系统运行过程中,各个节点上的试验资源通过联合试验平台中间件实现信息交互。为保证信息传输的有效性和完整性,各个节点上的联合试验平台中间件需要对其它节点的实时工作状态(在线或离线)进行检测。随着武器装备复杂性的日渐提高,联合试验系统所依托的网络规模越来越大,所涉及的节点越来越多。由于互联网自身的复杂性和不稳定性,容易出现因网络传输原因导致的节点状态异常判断,因此在大规模网络中实现节点状态的可靠检测成为亟待解决的问题。

现有的联合试验平台中间件采用基于心跳机制的节点状态检测方法,即通过节点之间按照一定时间间隔广播发送心跳探测包实现查询和应答。该方法的实现原理简单,但是当网络发生丢包或者拥塞时,容易出现在线节点误判的情况。此外,该方法需要定时发送探测包,当联合试验系统所涉及的节点较多时,探测包的发送量容易造成通信拥塞的问题,影响整个联合试验系统信息传输的实时性。

数据分发服务dds是对象管理组织(objectmanagementgroup,omg)制定的基于发布/订阅机制、实现高实时性通信的分布式实时系统的软件设计规范,标准化了数据分发过程的各个接口和行为。dds通过使用全局数据空间,脱离中心服务器的连接,系统中各实体交互以数据为中心,提高了通信效率。dds提供20多个可配置的qos策略的全面支持,应用程序可以利用qos策略来优先考虑不同的数据主题和信息流、控制中间件历史缓存的数量,确保信息的可靠传递、发送数据的速率、信息的订阅者等待数据和资源的时间,适应低带宽或高延迟链路等。



技术实现要素:

本发明的目的是为了解决现有节点状态检测方法中,当网络发生丢包或者拥塞时,容易出现在线节点误判的情况;现有节点状态检测方法需要定时发送探测包,当联合试验系统所涉及的节点较多时,探测包的发送量容易造成通信拥塞以及影响整个联合试验系统信息传输的实时性的问题,而提出基于dds的联合试验平台中间件节点状态检测方法。

基于dds的联合试验平台中间件节点状态检测方法具体过程为:

步骤(1)、节点上线,基本流程描述如下:

步骤(1-1)、初始化数据分发服务dds的数据域工厂mw_factory;

步骤(1-2)、创建数据分发服务dds的域参与者mw_participant、发布者mw_publisher和订阅者mw_subscriber;

步骤(1-3)、创建名称为“节点状态”的dds主题mw_nodestatus_topic;

步骤(1-4)、创建名称为“节点状态”的dds主题mw_nodestatus_topic的数据读取者mw_nodestatus_datareader和数据读取者监听器mw_nodestatus_datareaderlistener;

步骤(1-5)、设置数据读取者mw_nodestatus_datareader的qos策略;

所述qos为服务质量(qualityofservice);

步骤(1-6)、创建名称为“节点状态”的dds主题mw_nodestatus_topic的数据写入者mw_nodestatus_datawriter;

步骤(1-7)、设置数据写入者mw_nodestatus_datawriter的qos策略;

步骤(1-8)、注册名称为“节点状态”的dds主题mw_nodestatus_topic的一个对象实例mw_nodestatus_on_instance,对象实例mw_nodestatus_on_instance中包含该节点的名称、ip地址信息和上线状态;

步骤(1-9)、调用数据写入者mw_nodestatus_datawriter将mw_nodestatus_on_instance对象实例发送到其它所有节点;

如果数据读取者监听器mw_nodestatus_datareaderlistener接收到来自其它联合试验平台节点的对象实例mw_nodestatus_on_instance,则将发出对象实例mw_nodestatus_on_instance的节点的信息加入到在线节点列表中;

如果数据读取者监听器mw_nodestatus_datareaderlistener接收到来自其它联合试验平台节点的对象实例mw_nodestatus_off_instance,则将发出对象实例mw_nodestatus_off_instance的节点的信息从在线节点列表中删除;

节点正常离线执行步骤(2),由于网络状态影响的节点离线执行步骤(3);

步骤(2)、节点正常离线;

步骤(3)、节点异常状态发现;

步骤(4)、对步骤(3)发现的异常状态的节点进行确认。

本发明的有益效果为:

本发明基于dds的联合试验平台中间件节点状态检测方法与现有基于心跳机制的节点状态检测方法相比,本发明提出的节点上线、正常离线通知和基于dds的活跃度检测的节点异常状态检测方法仅需单次网络信息包传输,因此能够避免大量数据包传输所造成的网络发生丢包或者拥塞时,容易出现在线节点误判的情况;此外,在节点异常状态确认过程,通过三次倍增式的查询应答机制,有效的避免了由于网络自身状态而触发的节点异常发现,降低异常网络状态的误报率,解决了现有节点状态检测方法需要定时发送探测包,当联合试验系统所涉及的节点较多时,探测包的发送量容易造成通信拥塞的问题,影响整个联合试验系统信息传输的实时性的问题。

目前,该方法已经成功应用于舰船系统综合试验验证系统中,将由节点状态检测造成的网络负载量降低了90%左右,同时将异常网络状态的误报率降低了30%左右。

附图说明

图1为本发明节点上线过程基本流程图;

图2为本发明节点正常离线过程基本流程流程图;

图3为本发明节点异常状态确认基本流程流程图。

具体实施方式

具体实施方式一:本实施方式的基于dds的联合试验平台中间件节点状态检测方法具体过程为:

本发明提出一种基于dds的联合试验平台中间件节点状态检测方法,其目标是解决目前联合试验平台中间件在节点状态检测时存在的易受网络状态影响和易造成网络通信拥塞的问题。本发明所提出的基于dds的联合试验平台中间件节点状态检测方法主要包括以下四个主要组成部分:

(1)节点上线;

(2)节点正常离线;

(3)节点异常状态发现;

(4)节点异常状态确认;

上述的发明目的是通过以下具体技术方案实现的:

步骤(1)、节点上线,

在某个联合试验平台节点上线时,该节点的联合试验平台中间件执行如图1所示的基本操作,基本流程描述如下:

步骤(1-1)、初始化数据分发服务dds的数据域工厂mw_factory;步骤(1-2)、创建数据分发服务dds的域参与者mw_participant、发布者mw_publisher和订阅者mw_subscriber;

步骤(1-3)、创建名称为“节点状态”的dds主题mw_nodestatus_topic;

步骤(1-4)、创建名称为“节点状态”的dds主题mw_nodestatus_topic的数据读取者mw_nodestatus_datareader和数据读取者监听器mw_nodestatus_datareaderlistener;

步骤(1-5)、设置数据读取者mw_nodestatus_datareader的qos策略;

所述qos为服务质量(qualityofservice);

步骤(1-6)、创建名称为“节点状态”的dds主题mw_nodestatus_topic的数据写入者mw_nodestatus_datawriter;

步骤(1-7)、设置数据写入者mw_nodestatus_datawriter的qos策略;

步骤(1-8)、注册名称为“节点状态”的dds主题mw_nodestatus_topic的一个对象实例mw_nodestatus_on_instance,对象实例mw_nodestatus_on_instance中包含该节点的名称、ip地址信息和上线状态;

步骤(1-9)、调用数据写入者mw_nodestatus_datawriter将mw_nodestatus_on_instance对象实例发送到其它所有节点;

如果数据读取者监听器mw_nodestatus_datareaderlistener接收到来自其它联合试验平台节点的对象实例mw_nodestatus_on_instance,则将发出对象实例mw_nodestatus_on_instance的节点的信息加入到在线节点列表中;

如果数据读取者监听器mw_nodestatus_datareaderlistener接收到来自其它联合试验平台节点的对象实例mw_nodestatus_off_instance,则将发出对象实例mw_nodestatus_off_instance的节点的信息从在线节点列表中删除;

节点正常离线执行步骤(2),由于网络状态影响的节点离线执行步骤(3);

步骤(2)、节点正常离线;

步骤(3)、潜在状态异常节点发现;

步骤(4)、对步骤(3)发现的潜在状态异常节点进行确认。

具体实施方式二:本实施方式与具体实施方式一不同的是:所述步骤(1-5)中设置数据读取者的qos策略如下:

设置数据读取者mw_nodestatus_datareader的活跃度类型为手动检测,检测的心跳周期为t。

其它步骤及参数与具体实施方式一相同。

具体实施方式三:本实施方式与具体实施方式一或二不同的是:所述检测的心跳周期t为4秒。

其它步骤及参数与具体实施方式一或二相同。

具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:所述步骤(1-7)中设置数据写入者mw_nodestatus_datawriter的qos策略如下:

设置数据写入者mw_nodestatus_datawriter的活跃度类型为手动检测,检测的心跳周期为t/2。

其它步骤及参数与具体实施方式一至三之一相同。

具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:所述步骤(2)中节点正常离线;

在某个联合试验平台节点正常离线时,该节点的联合试验平台中间件执行如图2所示的基本操作,基本流程描述如下:

步骤(2-1)、注册名称为“节点状态”的dds主题mw_nodestatus_topic的一个对象实例mw_nodestatus_off_instance,对象实例mw_nodestatus_off_instance中包含该节点的名称、ip地址信息和离线状态;

步骤(2-2)、调用数据写入者mw_nodestatus_datawriter将mw_nodestatus_off_instance对象实例发送到其它所有节点;

步骤(2-3)、删除dds数据写入者mw_nodestatus_datawriter;

步骤(2-4)、删除dds数据读取者监听器mw_nodestatus_datareaderlistener和数据读取者mw_nodestatus_datareader;

步骤(2-5)、删除dds主题mw_nodestatus_topic;

步骤(2-6)、删除dds域参与者mw_participant、发布者mw_publisher和订阅者mw_subscriber;

步骤(2-7)、关闭dds的数据域工厂mw_factory。

其它步骤及参数与具体实施方式一至四之一相同。

具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:所述步骤(3)中潜在状态异常节点发现;具体过程为:

潜在状态异常节点发现基于dds的活跃度检测机制实现。如(1-5)和(1-7)所设置的活跃度检测方式和检测周期,如果各个节点的联合试验平台中间件正常在线,其数据写入者mw_nodestatus_datawriter和其它节点的数据读取者mw_nodestatus_datareader之间存在稳定的匹配关系。当数据读取者mw_nodestatus_datareader在周期t内没有检测到某个与之匹配的数据写入者mw_nodestatus_datawriter的活跃度信息,将会自动触发活跃度改变函数on_liveliness_changed,通知联合试验平台中间件(联合试验平台是在参考美军试验与训练使能体系结构(tena)而提出的平台架构,使用该平台构建联合试验系统可以支持武器装备的试验鉴定。联合试验平台中间件是联合试验平台的组成软件之一,负责联合试验系统运行过程中的通信。节点物理实现上一般采用的是计算机,它是组成联合试验系统的基本单元,联合试验平台(包括)中间件需要运行在各个节点上。)已发现潜在状态异常节点。

其它步骤及参数与具体实施方式一至五之一相同。

具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:所述步骤(4)中对步骤(3)发现的异常状态的节点进行确认;

联合试验平台中间件通过dds的活跃度检测机制发现某个节点状态发生异常时,将要触发节点异常状态确认环节。该环节的目的是去除由于网络自身状态而触发的节点异常发现,确认节点的离线状态。

节点异常状态确认采用基于tcp的查询应答模式,在发现节点状态可能异常时,执行如图3所示的基本操作,异常状态的节点的确定基本流程描述如下:

步骤(4-1)、发现节点主动向潜在状态异常节点发送查询包;

所述发现节点为收到活跃度异常检测信息的节点;

所述潜在状态异常节点是主动触发活跃度异常信息的节点,或者可以理解为潜在状态异常节点触发了发现节点的活跃度改变函数;

发现节点是(3)里的发现某个节点的异常状态对应的节点;

潜在状态异常节点是(3)里的发现某个节点的异常状态对应的节点;

步骤(4-2)、等待时间t内的响应包:

步骤(4-2-1)、如果时间t内发现节点收到响应包,转至步骤(4-7);

步骤(4-2-2)、如果时间t内发现节点未收到响应包,转至步骤(4-3);

步骤(4-3)、发现节点主动向潜在状态异常节点发送查询包;

步骤(4-4)、等待时间2t内的响应包:

步骤(4-4-1)、如果时间2t内发现节点收到响应包,转至步骤(4-7);

步骤(4-4-2)、如果时间2t内发现节点未收到响应包,转至步骤(4-5);

步骤(4-5)、发现节点主动向潜在状态异常节点发送查询包;

步骤(4-6)、等待时间4t内的响应包:

步骤(4-6-1)、如果时间4t内发现节点收到响应包,转至步骤(4-7);

步骤(4-6-2)、如果时间4t内发现节点未收到响应包,转至步骤(4-8);

步骤(4-7)、确认潜在状态异常节点在线;

步骤(4-8)、确认潜在状态异常节点离线,将潜在状态异常节点信息从在线节点列表中删除。

其它步骤及参数与具体实施方式一至六之一相同。

与现有基于心跳机制的节点状态检测方法相比,本发明提出的节点上线、正常离线通知和基于dds的活跃度检测的节点异常状态检测方法仅需单次网络信息包传输,因此能够避免容易大量数据包传输所造成网络负载增加。此外,在节点异常状态确认过程,通过三次倍增式的查询应答机制,有效的避免了由于网络自身状态而触发的节点异常发现,降低异常网络状态的误报率。

目前,该方法已经成功应用于舰船系统综合试验验证系统中,将由节点状态检测造成的网络负载量降低了90%左右,同时将异常网络状态的误报率降低了30%左右。

本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1