一种不稳定网络环境下的DDS数据交互方法技术

技术编号:15727096 阅读:191 留言:0更新日期:2017-06-29 23:33
本发明专利技术提出一种不稳定网络环境下DDS数据交互方法,旨在解决使用DDS中间件在不稳定网络中传递数据时,DDS中间件中的实体注册失败导致应用无法正常运行的问题,以及在不同网络状态下创建的实体之间数据无法正常交互的问题,通过实时检测网络状态,根据当前网络状态更改DDS中间件的实体对象的属性,实现数据正常通信。在监控网络状态的实时运行过程中,及时反馈网络状态,将根据反馈的网络状态调整DDS实体的状态,最终保证DDS的稳定运行,方同时维持了DDS实体对象在网络状态发生变化时的订阅状态,上层用户既可以感受到网络状态发生变化,又不会影响当前数据的正常订阅,从而保证数据通信的稳定性。

【技术实现步骤摘要】
一种不稳定网络环境下的DDS数据交互方法
本专利技术属于通信工程
,特别是一种不稳定网络环境下DDS数据交互方法。
技术介绍
信息化世界面对的是复杂多变的海量数据信息,实时高效高速的进行数据交互有着至关重要的作用,而实时信息系统呈现出以网络为中心的发展趋势。随着网络的高速发送,分布式的应用系统在金融、交通、军事等多个领域有着举足轻重的地位。不同的通信平台,不同的用户在进行数据传输时有着不同的服务质量(QOS)的要求,目前的网络中节点的通信主要有以下三种:点对点通信,客户端/服务器(C/S)通信,发布/订阅通信。点对点通信是一种最简单的通信方式,电话和TCP传输是典型的点对点通信,电话无法胜任多点之间的同时通信,TCP对于多个节点之间的通信会趋于复杂化。客户端/服务器(C/S)通信,是一种多对一的通信方式,即一个中心服务器对多个客户端,客户端必须先绑定在服务器上才可以获取数据信息,两者之间具有高耦合性。这种通信方式在数据分布集中或要求集中处理的情况下较为适用,如数据库与文件系统。但是当信息在多个节点上生成时,C/S模式要求将信息全部备份到服务器端,在向后续发出数据请求的客户端发送数据,由此导致的数据交互效率低,实时性差。国际对象管理组织(OMG)推出了数据分发服务(DDS)的基于发布/订阅通信方式的新规范。DDS中对分布式实时系统中数据发布、传送和订阅的接口与行为进行来描述,独立于平台系统,能够处理分布式的数据传输网络,完成数据高效、高速的交互。
技术实现思路
本专利技术的目的在于提供本专利技术提出一种不稳定网络环境下DDS数据交互方法,利用这种方法可实时检测网络状态,根据当前网络状态更改DDS中间件的实体对象的属性,从而保证不同网络状态下的DDS实体间正常通信。实现本专利技术目的的技术方案为:一种不稳定网络环境下DDS数据交互方法,包括以下步骤:第一步:调用DDS的注册函数接口进行DDS实体对象的创建;第二步:调用LINUX底层的管理设备驱动程序中设备I/O通道的ioctl函数获得当前系统的所有网络接口信息,将得到的所有网络接口信息保存到ifconf结构中,遍历ifconf结构体,将每个接口信息保存到ifreq结构体中,剔除本地回环的网络接口,再次调用ioctl接口得到每个ifreq结构体中网络接口的状态,由此判断当前网络连接是否正常;第三步:根据当前网络情况创建DDS中间件的实体对象,若是网络运行正常,则创建基于网络接口与共享内存的DDS中间件的实体对象,这种DDS实体对象既可与本终端主题与QOS均相匹配的DDS实体对象通信,也可以与其他终端相匹配的DDS实体对象通信;若是没有网络连接,则创建基于本终端回环地址的DDS实体,这种DDS实体对象只可以与本终端相匹配的DDS实体对象通信,不可以与其他终端上的任何DDS实体对象通信;第四步:开启实时监控网络状态的线程,线程中调用第二步中的方法获得实时网络状态;第五步:设置当前记录DDS实体对象订阅状态的初始值;第六步:若是订阅端,记录DDS中间件的实体对象当前的订阅状态,若实体对象放弃了对某种策略数据的订阅,记录也会实时更新,当前的记录永远保持实体对象最新的订阅状态;第七步:在监控网络状态的线程给出网络状态发生变化的信息时,注销当前正在运行的DDS中间件的实体对象,创建基于当前网络状态的新的DDS中间件的实体对象,同第三步;第八步:根据在网络状态发生变化之前记录的DDS实体对象的订阅信息,重新订阅,保证上层应用需要的数据不会因为网络状态发生变化而不再订阅:重置当前记录DDS实体对象订阅状态为第二步中的初始值;第九步:转到第四步,监控当前网络状态。在前述监控网络状态的线程实时运行过程中,及时反馈网络状态,提出的方案将根据反馈的网络状态调整DDS实体的状态,最终保证DDS的稳定运行,方案中同时维持了DDS实体对象在网络状态发生变化时的订阅状态,上层用户既可以感受到网络状态发生变化,又不会影响当前数据的正常订阅,从而保证数据通信的稳定性。本专利技术与现有技术相比,其显著优点为:(1)通过本专利技术,实现了一种不稳定网络环境下DDS数据交互方法;(2)通过本专利技术,建立了实时监控网络状态的方法;(3)通过本专利技术,解决了不同网络状态下建立的DDS实体对象无法正常通信的问题;(4)通过本专利技术,提高了不稳定网络下使用DDS进行通信的稳健性。下面结合附图对本专利技术作进一步详细描述。附图说明图1基于DDS中间件的发送方的处理过程示意图。图2基于DDS中间件的订阅方的处理过程示意图。图3基于DDS中间件的相同终端收发双方工作的时序示意图。图4基于DDS中间件的不同终端收发双方工作的时序示意图。具体实施方式根据本专利技术的实施例,一种不稳定网络环境下DDS数据交互方法,包括以下步骤:第一步:调用DDS的注册函数接口进行DDS实体对象的创建;第二步:调用LINUX底层的管理设备驱动程序中设备I/O通道的ioctl函数获得当前系统的所有网络接口信息,将得到的所有网络接口信息保存到ifconf结构中,遍历ifconf结构体,将每个接口信息保存到ifreq结构体中,剔除本地回环的网络接口,再次调用ioctl接口得到每个ifreq结构体中网络接口的状态,由此判断当前网络连接是否正常;第三步:根据当前网络情况创建DDS中间件的实体对象,若是网络运行正常,则创建基于网络接口与共享内存的DDS中间件的实体对象,这种DDS实体对象既可与本终端主题与QOS均相匹配的DDS实体对象通信,也可以与其他终端相匹配的DDS实体对象通信;若是没有网络连接,则创建基于本终端回环地址的DDS实体,这种DDS实体对象只可以与本终端相匹配的DDS实体对象通信,不可以与其他终端上的任何DDS实体对象通信;第四步:开启实时监控网络状态的线程,线程中调用第二步中的方法获得实时网络状态;第五步:设置当前记录DDS实体对象订阅状态的初始值;第六步:若是订阅端,记录DDS中间件的实体对象当前的订阅状态,若实体对象放弃了对某种策略数据的订阅,记录也会实时更新,当前的记录永远保持实体对象最新的订阅状态;第七步:在监控网络状态的线程给出网络状态发生变化的信息时,注销当前正在运行的DDS中间件的实体对象,创建基于当前网络状态的新的DDS中间件的实体对象,同第三步;第八步:根据在网络状态发生变化之前记录的DDS实体对象的订阅信息,重新订阅,保证上层应用需要的数据不会因为网络状态发生变化而不再订阅:重置当前记录DDS实体对象订阅状态为第二步中的初始值;第九步:转到第四步,监控当前网络状态。在前述监控网络状态的线程实时运行过程中,及时反馈网络状态,提出的方案将根据反馈的网络状态调整DDS实体的状态,最终保证DDS的稳定运行,方案中同时维持了DDS实体对象在网络状态发生变化时的订阅状态,上层用户既可以感受到网络状态发生变化,又不会影响当前数据的正常订阅,从而保证数据通信的稳定性。本专利技术旨在解决使用DDS中间件在不稳定网络中传递数据时,DDS中间件中的实体注册失败导致应用无法正常运行的问题,以及在不同网络状态下创建的实体之间数据无法正常交互的问题,提出了一种实时检测网络状态,根据当前网络状态更改DDS中间件的实体对象的属性,实现数据正常通信的方法。下面本文档来自技高网...
一种不稳定网络环境下的DDS数据交互方法

【技术保护点】
一种不稳定网络环境下DDS数据交互方法,其特征在于,包括以下步骤:第一步:调用DDS的注册函数接口进行DDS实体对象的创建;第二步:调用LINUX底层的管理设备驱动程序中设备I/O通道的ioctl函数获得当前系统的所有网络接口信息,将得到的所有网络接口信息保存到ifconf结构中,遍历ifconf结构体,将每个接口信息保存到ifreq结构体中,剔除本地回环的网络接口,再次调用ioctl接口得到每个ifreq结构体中网络接口的状态,由此判断当前网络连接是否正常;第三步:根据当前网络情况创建DDS中间件的实体对象,若是网络运行正常,则创建基于网络接口与共享内存的DDS中间件的实体对象,这种DDS实体对象具有这样的属性:既可与本终端主题与QOS均相匹配的DDS实体对象通信,也可与其他终端相匹配的DDS实体对象通信;若是没有网络连接,则创建基于本终端回环地址的DDS实体,这种DDS实体对象具有这样的属性:只可与本终端相匹配的DDS实体对象通信,不可以与其他终端上的任何DDS实体对象通信;第四步:开启实时监控网络状态的线程,线程中调用第二步中的方法获得实时网络状态;第五步:设置当前记录DDS实体对象订阅状态的初始值;第六步:若是订阅端,记录DDS中间件的实体对象当前的订阅状态,若实体对象放弃了对某种策略数据的订阅,记录数据实时更新,当前的记录一直保持实体对象最新的订阅状态;第七步:在监控网络状态的线程给出网络状态发生变化的信息时,注销当前正在运行的DDS中间件的实体对象,创建基于当前网络状态的新的DDS中间件的实体对象,创建方法与第三步相同;第八步:根据在网络状态发生变化之前记录的DDS实体对象的订阅信息,重新订阅,保证上层应用需要的数据不会因为网络状态发生变化而不再订阅:重置当前记录DDS实体对象订阅状态为第二步中的初始值;第九步:转到第四步,监控当前网络状态。...

【技术特征摘要】
1.一种不稳定网络环境下DDS数据交互方法,其特征在于,包括以下步骤:第一步:调用DDS的注册函数接口进行DDS实体对象的创建;第二步:调用LINUX底层的管理设备驱动程序中设备I/O通道的ioctl函数获得当前系统的所有网络接口信息,将得到的所有网络接口信息保存到ifconf结构中,遍历ifconf结构体,将每个接口信息保存到ifreq结构体中,剔除本地回环的网络接口,再次调用ioctl接口得到每个ifreq结构体中网络接口的状态,由此判断当前网络连接是否正常;第三步:根据当前网络情况创建DDS中间件的实体对象,若是网络运行正常,则创建基于网络接口与共享内存的DDS中间件的实体对象,这种DDS实体对象具有这样的属性:既可与本终端主题与QOS均相匹配的DDS实体对象通信,也可与其他终端相匹配的DDS实体对象通信;若是没有网络连接,则创建基于本终端回环地址的DDS实体,这种DDS实体对象具有这样的属性:只可与本终端相匹配的DDS实体对象通信,不可以与其他终端上的任何DDS实体对象通信;第四步:开启实时监控...

【专利技术属性】
技术研发人员:王殷辉岳东峰许畅张玲王锦晨靳凯文康静刘严岩江永健高甜容李琳超王砾施金金
申请(专利权)人:北方信息控制集团有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1