一种基于RTIDDS驱动的通信中间件的制作方法

文档序号:17726951发布日期:2019-05-22 02:34阅读:1047来源:国知局
一种基于RTI DDS驱动的通信中间件的制作方法

本发明属于网络通信技术领域,具体涉及一种基于rtidds驱动的通信中间件。



背景技术:

dds采用以数据为中心的发布-订阅模型(data-centricpublish-subscribe,dcps),提供了一个与平台无关的数据传输模型。dds实现的目标是:在正确的时间里,把正确的信息传输给正确的使用者。它允许应用程序实时发布其拥有的信息,并订阅其需要的信息,较好地处理了不可靠网络通信中数据的自动发现、可靠性和冗余性等问题。

dds是基于rtps协议,具有通用的api接口,可以嵌入vxworks等实时系统的程序中实现数据实时通信,也可以运行在windows和unix平台的不同主机上传输数据。

基于rtps之上的dds具有如下特点:

1)以数据为中心

在通信服务中,无论是进行消息传递还是使用服务器,用户最终需要的都是数据,在传统的消息通信中,数据附在消息队列中,用户需要从消息中发现自己需要的数据。而dds完全是以数据为中心的,在域中用“主题”标识用户想要发布/订阅的数据的类型,发送者和接收者通过主题关联后直接进行数据传输。

2)服务质量(qos)控制

qos控制对资源的可用情况、提供方对资源的占有程度及请求方对资源的期待程度分别程序化为主题qos、发布者qos和订阅者qos。qos参数虚拟了底层和整个通信机制,包括带宽限制、可靠性、等待时间和资源限制等等。发布方发布数据,订阅者订阅数据,中间件负责检查两者之间的qos是否兼容,从而来建立连接或提示异常。

3)动态配置

客户/服务器模式和点对点消息传递机制都需要在发送数据前知道要将数据发送到哪里、何时发送数据,但是dds是在订阅者订阅数据的时候就已经选择了与哪个连接器进行连接,当数据准备好的时候,该节点就已经知道向哪里发送该数据。dds具有高效的动态配置能力,可以方便地增加节点,并快速发现新增加的节点及其主题。

武汉数字工程研究所的赵恒博士发表的文章《基于dds模型的数据分发中间件的设计与实现》中设计并实现了一个数据分发中间件系统。其根据omg发布的数据分发服务规范,通过设计和实现下面6个过程来完成中间件的开发。

(1)用户数据资源的发布与订阅;

(2)数据资源的发现与识别;

(3)配对节点选择与数据链路建立;

(4)数据传输;

(5)传输过程中节点状态监控;

(6)用户取消发布,订阅,数据链路释放与重建。

在实现过程中,用户将要实现的操作步骤多,参数配置与接口定义较为复杂,实用性差。



技术实现要素:

本发明的目的在于提供一种基于rtidds驱动的通信中间件。

为了解决上述技术问题,本发明提供一种基于rtidds驱动的通信中间件,包括发送端、rtidds驱动以及接收端:

在发送端:

初始化rtidds驱动通信环境;

注册并建立发布主题;

定义待发布的数据;

发布主题数据;

在接收端:

初始化rtidds驱动通信环境;

注册并建立订阅主题

实现订阅到的主题的处理函数;

处理订阅的主题数据。

进一步,初始化rtidds驱动通信环境时,获取rtidds驱动域实例,配置域策略,创建域参与者。

进一步,注册并建立发布主题时,注册主题类型,创建主题实体,配置主题参数;同时,创建数据写入器用于发布主题数据。

进一步,将已注册主题与数据写入器关联,每个已注册主题配置一个数据写入器,通过数据写入器来发布主题数据。

进一步,定义待发布的主题数据时,对已创建的主题实体赋值,在每次发布主题数据前进行赋值操作。

进一步,发布主题数据时,调用主题对应的数据写入器,将主题实体数据发送出去,与主题实体数据一并发送的数据还包含主题相关配置信息,用于接收端进行主题匹配。

进一步,注册并建立订阅主题时,创建数据读取器用于读取从网络上接收到的主题数据;创建监听器用于监听网络数据的到达,网络到达时通知数据读取器读取数据。

进一步,主题处理函数用于处理订阅到的主题数据,为回调函数或虚函数,处理函数中包含用户对数据的处理需求。

进一步,实现处理函数后,将函数指针与通信中间件提供的接口相关联。

本发明与现有技术相比,其显著优点在于,

1)通用性广泛,通信中间件可在多个平台中运行,如桌面操作系统windows,

linux,unix,嵌入式操作系统vxworks等。

2)简单易实现,通信中间件通过对rtidds的使用流程和配置过程进行简化,只需要几个步骤即可实现发送和接收功能。通信中间件的实现过程与传统的网络通信tcp和udp的实现过程类似,方便了使用

附图说明

图1是本发明实际应用结构框图。

图2是本发明通信过程示意图。

具体实施方式

容易理解,依据本发明的技术方案,在不变更本发明的实质精神的情况下,本领域的一般技术人员可以想象出本发明的多种实施方式。因此,以下具体实施方式和附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限制或限定。

通信中间件的实际应用框图如图1所示。本发明所述基于rtidds驱动的通信中间件,包括以下步骤:

1.发送端实施方式

1)通信中间件初始化rtidds驱动通信环境

通信中间件获取rtidds驱动域工厂实例,配置域工厂策略,创建域参与者(rtidds驱动只支持8个域参与者,在定义域参与者时,先检测驱动中是否有已经存在的,如果没有再创建,设置域参与者策略,设置域参与者编码和名称,以作为与其他域参与者的区别。

2)注册并建立发布主题

通信中间件注册主题类型,创建主题实体,配置主题参数。主题实体包含主题名称和组成元素,是通信中间件的数据支撑。主题实体实例如下所示。

通信中间件创建数据写入器用于发布主题数据,将已注册主题与数据写入器关联。每个主题应配置一个数据写入器,通过数据写入器来发布数据。

3)定义待发布的数据

通信中间件对已创建的主题实体赋值,赋值过程可由使用者自定义。在每次发布数据前进行赋值操作。

4)发布数据

通信中间件通过调用主题对应的数据写入器,将主题实体数据发送出去,发出的数据除主题实体数据外还包含了主题相关配置信息,用于接收端进行主题匹配。

2.接收端实施方式

1)初始化rtidds通信环境

同发送端初始化rtidds通信环境。

2)注册并建立订阅主题

注册方式同发送端注册方式。

通信中间件创建数据读取器用于读取从网络上接收到的主题数据;通信中间件创建实例化监听器用于监听网络数据的到达,数据到达时通知数据读取器读取数据;将读取器、监听器和主题关联在一起实现订阅主题。每个主题应配置一个数据读取器和监听器。

3)实现订阅到的主题的处理函数(回调函数或者虚函数)

处理函数用于处理订阅到的主题数据,形式内容为回调函数或是虚函数,处理函数中包含用户对数据的处理需求,由用户自定义。用户实现处理函数后,将函数指针与通信中间件提供的接口关联实现主题的处理功能。

4)处理订阅的数据

通信中间件调用处理函数处理订阅到的数据。

如图2所示,本发明简化了rtidds中间件的使用方法,通过初始化rtidds通信环境,注册并建立发布主题,定义待发布的数据和发布数据四个步骤实现发送功能,通过初始化rtidds通信环境,注册并建立订阅主题,实现订阅到的主题的处理函数(回调函数或者虚函数)和处理订阅的数据四个步骤实现接收功能。

本发明通信中间件通过对rtidds的使用流程和配置过程进行简化,只需要几个步骤即可实现发送和接收功能。通信中间件的实现过程与传统的网络通信tcp和udp的实现过程类似,方便了使用。通信中间件可在多个平台中运行,如桌面操作系统windows,linux,unix,嵌入式操作系统vxworks等。

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