Opendds概念介绍

刚学习opendds,需要建立几个概念。

  • opendds是什么?

答:opendds是消息中间件。

  • opendds的作用是什么?

答:opendds是一款消息中间件,开发者利用opendds在不同节点之间进行数据通信或者交互时无需考虑通信的细节,仅聚焦业务即可,opendds框架可以帮助开发实现数据的交互。

  • opendds可以在哪里下载?

答:OpenDDS或者https://github.com/OpenDDS/OpenDDS下载

  • opendds应该如何开始学习?

答:从我个人的观点来看,首先阅读官网的文档,对opendds有一个感性的概念,然后编译opendds程序,将opendds提供的example程序运行起来,从example入手去学习,首先要学会使用,然后感兴趣的话可以从自己感兴趣的模块入手学习源码。

  • opendds框架有哪些比较重要的特性(个人观点)

答:(1)opendds支持两种发现机制,通俗的说一种是中心发现机制,即启动一个应用程序,该应用程序可以独立部署,但是通信节点之间网络是互通的,该应用程序的功能就是维护发送者或者订阅者的一些信息;第二种方式是基于rtps的发现机制,这种发现机制基于rtps协议来是实现,并没有中心发现机制那种第一个独立的程序作为媒介。

(2)opendds定义数据类型一般情况下可以通过idl文件来完成,订阅者和发送者都是通过这个结构进行通信;另外一种方式是opendds也可以通过动态数据结构来实现订阅者和发送者之间的数据交互。

(3)idl方式定义通信的数据结构一般情况下需要指定主题(@topic)、关键字(@key)也可以不指定,idl文件定义的数据类型可以基本数据类型,如(int float 等),也可以是数组、序列、结构体或者联合体,还可以定义枚举和接口,接口的定义需要重点关注下。

(4)opendds中关键字key可以决定instance的个数,每个主题发出的数据称为一个样本(sample),每个样本根据key的不同会区分为不同的实例,每个实例下也可以配置保存多个样本。如果在结构中不配置key成员,则该主题下只会有一个instance,该instance下有多少样本可以调整qos策略来实现。默认只保存最新的样本。

(5)opendds支持一次读取一个样本数据,同时也支持一次读取多个样本数据,目的是提高读取数据的效率;一般情况下opendds读取样本数据是通过single copy的方式,即拷贝一个副本的方式读取;还在一种更有效率的读取样本方式,即zero-copy(零拷贝),通过引用计数的方式来实现零拷贝,但是需要注意的是通过官方测试,得出的结论是如果样本数据小于8K不建议使用零拷贝甚至还有可能还有性能损失。

(6)opendds支持多种的方式的互联互通,典型的是部署于分布式系统不同节点之间的通信;还有一种部署方式是一台计算机之间的多个进程之间的通信,第一种方式通过网络通信的方式来实现,第二种方式opendds未采用网络通信的方式进行通信,而是采用shared memory的方式来实现通信。

(7)opendds中idl接口可以实现远程调用,探索在opendds下是否存在同步调用或者异步调用的方法。

你可能感兴趣的:(opendds,opendds)