一种基于DDS的跨网段通信方法技术

技术编号:20729710 阅读:27 留言:0更新日期:2019-03-30 19:21
本发明专利技术公开了一种基于DDS的跨网段通信方法,在处于不同网段内的A、B两台主机上分别建立ID不同的域domain a和domain b,A上创建发布者,B上创建订阅者,注册相同的数据类型,创建相同的主题,A创建数据写入者、写数据,B创建数据读取者、读数据;在有双网卡的电脑C上运行一个domain a的sub和一个domain b的pub;sub接收主机A的pub发布的数据,再通过pub把接收到的数据发布给主机B的sub,实现通信。本发明专利技术可以实时、可靠地实现不同网段内主机的跨网段通信,便于系统网络的更好扩展。

【技术实现步骤摘要】
一种基于DDS的跨网段通信方法
本专利技术涉及一种跨网段通信方法,尤其涉及一种基于DDS的跨网段通信方法。
技术介绍
随着信息化建设的快速发展,人们需要面对越来越多变的海量数据信息,实时、高效、可靠的数据交互就显得至关重要。因此,应当建立实时性强、可靠性高、安全性好的信息传输中间件,这不仅可以提高系统互联能力,满足系统内各种信息交换和共享需求,还能解决应用软件之间的数据共享和集成问题。数据分发服务(DataDistributionService,DDS)是对象管理组织(ObjectManagementGroup,OMG)继推出CORBA规范后颁布的实现发布/订阅通信模式、满足实时性要求的软件设计标准和规范,该规范对分布式实时系统中数据发布、传递和接收的接口和行为进行了标准化。DDS纯粹以数据为中心来进行数据分发,并将资源状况、对资源的期待程度、网络状况等都用服务质量(QualityofService,QoS)这一参数来描述,大大增强了通信的实时性和灵活性,简化了分布式系统中数据的有效发布,为实时环境下以数据为中心的分布式应用提供了高效、有用的通信服务。DDS定义了以数据为中心的发布/订阅通信机制,以数据为中心的发布/订阅模型基于全局数据空间(GlobalDataSpace)的概念,如图1所示。DDS规范包括域参与者、发布者、订阅者、数据类型、数据写入者、数据读取者、主题、内置主题和QoS等。在具体的产品实现中,DDS处于操作系统之上、用户应用程序之下,可以很好地屏蔽底层系统、总线的异构等细节,向应用数据提供统一的API接口,具体如图2所示。DDS使用域来划分数据通信的子空间,隶属于同一个域的各个域参与者(Participant)可以互相通信,每个域参与者里面可以有一个或多个发布者(Publisher)或订阅者(Subscriber),每个发布者里面可以有一个或多个数据写入者(DataWriter),每个订阅者里面也可以有一个或多个数据读取者(DataReader)。数据写入者通过数据通道将数据发送到相应的数据读取者处,数据读取者则从数据通道中获取自己感兴趣的数据,数据写入者和数据读取者通过主题(Topic)和QoS进行匹配和建立联系,一般每个数据写入者或数据读取者只写入或读取一种类型的数据。随着DDS越来越多地被使用,各类分布式系统网络的集成和互联将会是常态。因此,不同网段中主机的相互通信就变得非常重要,但目前并没有相关的专利技术公开。
技术实现思路
专利技术目的:本专利技术提供了一种用于实现处于不同网段的主机间相互通信的方法,利用DDS中间件,通过创建代理数据读取者datareader和代理数据写入者datawriter,实现了实时、有效的信息传输,提高了系统互联能力。技术方案:本专利技术所述的一种基于DDS的跨网段通信方法,包括步骤:(1)为实现处于不同网段内的主机A与主机B相互通信,定义主机A与主机B之间通信的数据类型,比如:StringMsg,即主机A与主机B相互通信的数据的类型;使用DDS编译器将定义的数据类型生成中间件中C文件和H头文件,供应用程序使用;(2)在主机A上使用DDS中间件,创建ID为a的域domaina,a∈[0,230],a∈Z;创建发布者(Publisher);注册用于发布的且在步骤(1)中已定义的数据类型,如:StringMsg;创建发布的主题(Topic),如“helloTopic”;创建数据写入者(DataWriter),写入数据(write);以组播的形式发布数据;(3)在与主机A处于不同网段的主机B上使用DDS中间件,创建ID为b的域domainb,b≠a,b∈[0,230],b∈Z;创建订阅者(Subscriber),注册订阅的数据类型,所述数据类型与主机A上注册的数据类型相同;创建订阅的主题,所述主题与主机A上发布的主题相同;创建数据读取者(DataReader),读取数据(read或take);(4)在双网卡电脑C上设置用于运行domaina的订阅者sub和domainb的发布者pub的xml配置文件;所述电脑C的双网卡的IP地址分别与主机A的IP地址和主机B的IP地址在相同网段;所述xml配置文件包含A、B主机的域ID信息、主题信息以及QoS配置信息;(5)读取xml配置文件,根据配置文件中的信息分别创建域input_dp和output_dp,创建发布者output_publisher,创建订阅者input_subscriber,并将xml配置文件中的绑定信息保存至QMap<QString,QVector<ROUTE_BIND_INFO>>类的map映射中;其中,input_dp是与主机A创建的pub对应的sub的域,output_dp是与主机B创建的sub对应的pub的域;(6)根据创建的域input_dp获取其内置主题为DCPSPublication的datareader,并设置回调函数;(7)在步骤(6)中的回调函数内,根据步骤(5)保存的配置绑定信息设置代理datareader和datawriter;(8)在代理datareader回调函数中,首先获取主机A发布的数据,然后获取user_data策略中代理datawriter指针,通过代理datawriter把获取的数据发送至主机B。有益效果:在使用DDS中间件进行通信的基础上,可实现实时可靠的跨网段通信,便于系统网络的更好扩展。附图说明图1是DDS架构图;图2是DDS中间件位置示意图;图3是根据配置文件获取内置主题为DCPSPublication的datareader并设置回调函数流程图;图4是创建代理datareader和datawriter实现跨网段通信流程图;图5是本专利技术总流程图;图6(a)是实施例中待跨网段通信示意图,图6(b)是确定发布者和订阅者示意图,图6(c)是数据传输原理示意图。具体实施方式如图5所示,本专利技术所述的一种基于DDS的跨网段通信方法,包括步骤:(1)为实现处于不同网段内的主机A与主机B相互通信,定义主机A与主机B之间通信的数据类型,比如:StringMsg,即主机A与主机B相互通信的数据的类型;使用DDS编译器将定义的数据类型生成中间件中C文件和H头文件,供应用程序使用;(2)主机A使用DDS中间件发布数据,创建ID为1的域domain1;创建发布者(Publisher),注册用于发布的且在步骤(1)中已定义的数据类型,如:StringMsg;创建发布的主题(Topic),如“helloTopic”;创建数据写入者(DataWriter),写入数据(write);以组播的形式发布数据;(3)在与主机A处于不同网段的主机B上使用DDS中间件,创建ID为0的域domain0;创建订阅者(Subscriber),注册订阅的数据类型,所述数据类型与主机A上注册的数据类型相同;创建订阅的主题,所述主题与主机A上发布的主题相同;创建数据读取者(DataReader),读取数据(read或take);即实现订阅数据;(4)在双网卡电脑C上设置用于运行domain1的sub和domain0的pub的xml配置文件;所述电脑C的双网卡的IP地址分别与主机A的IP地址和本文档来自技高网
...

【技术保护点】
1.一种基于DDS的跨网段通信方法,其特征在于,包括步骤:(1)定义主机A与主机B之间通信的数据类型,并使用DDS编译器将定义的数据类型生成中间件中C文件和H头文件,供应用程序使用;(2)在主机A上使用DDS中间件,创建ID为a的域domain a,a∈[0,230],a∈Z;创建发布者pub,注册数据类型;创建主题Topic;创建数据写入者DataWriter,写入数据;以组播的形式发布数据;其中,注册的数据类型为步骤(1)中定义的数据类型;(3)在与主机A处于不同网段的主机B上使用DDS中间件,创建ID为b的域domain b,b≠a,b∈[0,230],b∈Z;创建订阅者sub,注册数据类型;创建主题Topic;创建数据读取者DataReader,读取发布者pub发布的数据,实现数据的订阅;其中,注册的数据类型为步骤(1)中定义的数据类型,且与主机A上注册的数据类型相同;创建的主题与主机A上创建的主题相同;(4)在双网卡电脑C上设置用于运行domain a的sub和domain b的pub的xml配置文件;所述电脑C的双网卡的IP地址分别与主机A的IP地址和主机B的IP地址在相同网段;(5)读取xml配置文件,根据配置文件中的信息分别创建域input_dp和output_dp,创建发布者output_publisher、订阅者input_subscriber,并将xml配置文件中的绑定信息保存至QMap...

【技术特征摘要】
1.一种基于DDS的跨网段通信方法,其特征在于,包括步骤:(1)定义主机A与主机B之间通信的数据类型,并使用DDS编译器将定义的数据类型生成中间件中C文件和H头文件,供应用程序使用;(2)在主机A上使用DDS中间件,创建ID为a的域domaina,a∈[0,230],a∈Z;创建发布者pub,注册数据类型;创建主题Topic;创建数据写入者DataWriter,写入数据;以组播的形式发布数据;其中,注册的数据类型为步骤(1)中定义的数据类型;(3)在与主机A处于不同网段的主机B上使用DDS中间件,创建ID为b的域domainb,b≠a,b∈[0,230],b∈Z;创建订阅者sub,注册数据类型;创建主题Topic;创建数据读取者DataReader,读取发布者pub发布的数据,实现数据的订阅;其中,注册的数据类型为步骤(1)中定义的数据类型,且与主机A上注册的数据类型相同;创建的主题与主机A上创建的主题相同;(4)在双网卡电脑C上设置用于运行domaina的sub和domainb的pub的xml配置文件;所述电脑C的双网卡的IP地址分别与主机A的IP地址和主机B的IP地址在相同网段;(5)读取xml配置文件,根据配置文件中的信息分别创建域input_dp和output_dp,创建发布者output_publisher、订阅者input_subscriber,并将xml配置文件中的绑定信息保存至QMap<QString,QVector<ROUTE_BIND_INFO>>类的map映射中;其中,input_dp是与主机A创建的pub对应的sub的域,output_dp是与主机B创建的sub对应的pub的域;(6)根据创建的域input_dp获取其内置主题为DCPSPublication的datareader,并设置回调函数;(7)在步骤(6)中的回调函数内,根据步骤(5)保存的配置文件的绑定信息创建代理datareader和datawriter;(8)在代理datareader回调函数中,首先获取主机A以步骤(1)中定义的数据类型发布的数据,然后获取user_data策略中代理datawriter指针,再通过代理datawriter把获取到的主机A发布的数据发送至主机B。2.根据权利要求1所述的一种基于DDS的跨网段通信方法,其特征在于:步骤(1)中,所述数据类型为使主机A发布的与主机B订阅的相同的数据类型,用于实现主机A、B的相互通信。3.根据权利要求1所述的一种基于DDS的跨网段通信方法,其特征在于:步骤(1)中,所述定义主机A与主机B之间通信的数据类型为:定义一个结构体,所述结构体中可以根据实际通信需求定义不同数据类型成员变量。4.根据权利要求1所述的一种基于DDS的跨网段通信方法,其特征在于:步骤(5)中,所述xml配置文件包括绑定信息,所述绑定信息为主机A、B的域ID信息、主题信息以及QoS配置信息。5.根据权利要求1所述的一种基于DDS的跨网段通信方法,其特征在于:所述步骤(5)包括:(5.1)读取xml配置文件,将xml配置文件中的绑定信息保存至QMap<QString,QVector<ROUTE_BIND_INFO>...

【专利技术属性】
技术研发人员:浦勇吴俊李敏敏李俊王啸
申请(专利权)人:南京华讯方舟通信设备有限公司
类型:发明
国别省市:江苏,32

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

1