一文读懂什么是DDS
发布网友
发布时间:2024-09-27 17:44
我来回答
共1个回答
热心网友
时间:2024-10-10 02:48
数据分发服务(DDS™)
什么是DDS
DDS是一种由对象管理组(OMG)发布的数据为中心的中间件协议和API标准,以分布式发布/订阅体系架构提供通信服务,强调以数据为中心。它是一个软件层,从操作系统、网络传输和底层数据格式的细节中抽象出应用,提供相同的概念和api给不同编成语言,使得应用在不同操作系统、编成语言和处理体系架构之间交换信息。DDS中间件管理底层细节,如数据传输格式、发现、连接、可靠性和协议、Qos策略。
为什么要使用DDS
DDS集成系统中的各个组件,提供低延迟数据连接、高可靠性以及高可扩展体系结构,以适应商业级物联网(IoT)应用程序的需求。
基本概念
全局数据空间
DDS将所有本地存储的数据称作全局数据空间(domain)。对应用而言,全局数据空间看上去就像通过api访问内存一样。实际上,DDS发送消息来更新远端节点的相应存储值。在使用时,如同访问本地存储。
发布者
发布者设置发布的主题(topic),数据读者(subscriber)订阅感兴趣的主题。发布者作为发布者角色,至少包含一个DataWriter,并负责创建、删除和管理datawriter。同样,订阅者作为订阅者,至少与一个datareader关联,并负责订阅数据。数据发布者通过调用datawriter的write函数发布数据,但数据不会立刻被送出,实际的消息产生是通过发布者和Qos综合控制的。数据读者负责订阅数据,订阅方式可采用异步方式(listener)、同步方式和非阻塞三种。
QoS策略
QoS(Quality of Service)服务质量,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,用来解决网络延迟和阻塞等问题的一种技术。在DDS中,QoS有可靠性、持久性、紧迫性等,可单独或组合使用。例如,“尽力而为”模式(BESTEFFORTRELIABILITYQOS)对样本的可靠性没有任何保证,在某些情况下可能会丢弃样本。“可靠”模式(RELIABLERELIABILITY_QOS)该服务最终应将所有值传递给合格的数据读取器,万一出现丢包现象,会重新分发数据,保证订阅者能够收到。
数据读者和主题的QoS策略的默认值为“尽力而为”,而数据写者的默认值为“可靠”。在创建数据写者和数据读者之间的关联时会考虑此策略。关联双方的值必须兼容才能创建关联。数据写入器的可靠性类型必须大于或等于数据读者的值。
IDL文件
IDL(接口描述语言)定义了必须交换的数据结构的文本文件,使用类似C ++风格定义结构。IDL通常用于远程调用软件,通常是由远程客户终端调用不同操作系统上的对象组件,并且这些对象组件可能是由不同计算机语言编写的。IDL创建起了两个不同操作系统间通信的桥梁,使用同一份idl文件来统一接口的数据类型。
示例:TopicData.idl
用于在SkyEye(天目全数字实时仿真软件)上测试DDS通信代码,SkyEye支持主流的嵌入式硬件平台,并且可以运行主流操作系统,还能适配自主研发的操作系统天脉。SkyEye利用基于LLVM的动态二进制翻译技术,使虚拟处理器在典型的桌面计算机上运行速度可以达到2000MIPS以上。
DDS在实际应用中提供了低延迟数据连接、高可靠性以及高可扩展性,适用于商业级物联网应用程序。
一文读懂什么是DDS
DDS是一种由对象管理组(OMG)发布的数据为中心的中间件协议和API标准,以分布式发布/订阅体系架构提供通信服务,强调以数据为中心。它是一个软件层,从操作系统、网络传输和底层数据格式的细节中抽象出应用,提供相同的概念和api给不同编成语言,使得应用在不同操作系统、编成语言和处理体系架构之间交换信...
如何读懂正泰的电表?
1. 正泰DDS666型电表的计数码是从右向左递减的,例如,如果显示为345.5度,则表示当前的电能消耗。2. 要正确阅读正泰DDS666型电表,首先需要了解其显示方式。电表上的数字通常会从右向左递减,这意味着最右边的数字是最大的,而最左边的数字是最小的。3. 在阅读电表时,应该注意数字的递减顺序。例...
关于单片机学习,学了51,又学什么???【请高手和前辈指点】
PLD(可编程逻辑器件),一种集成电路芯片,提供用户可编程,实现一定的逻辑功能。对可编程逻辑器件的功能设定(即要它实现什么功能)要有设计者借助开发工具,通过编写程序来实现,这跟单片机类似。开发工具可学习Altera公司的Quartus II软件(这是该公司的第4代PLD开发软件,第3代是MAX+PLUS II软件)。编程语言学习硬件描述语...