DDS中间件是什么?

DDS中间件是什么?

DDS协议解读及测试开发实践 - 知乎 (zhihu.com)

中间件 DDS(数据分发服务-Data Distribution Service) - 知乎 (zhihu.com)


来源:知乎

1、DDS概述

DDS是一种用于物联网领域,且已经得以广泛运用的数据连接标准。

DDS是OMG在2004年发布的中间件协议和应用程序接口(API)标准,它为分布式系统提供了低延迟、高可靠性、可扩展的通信架构标准。DDS目前在工业、医疗、交通、能源、国防领域都有广泛的应用。OMG(Object Management Group)成立于1989年,是一个开放性的非营利性的计算机行业标准联盟。OMG多年来致力于为工业分布式系统提供可互操作的,可移植的,可复用的软件标准。它的成员包括IT行业的设备供应商,终端用户,政府部门,以及学术组织等。很多我们熟知的标准都来自OMG,比如UML(Unified Modeling Language),CORBA(Common Object Request Broker Architecture)等。

数据分发服务DDS是由OMG组织颁布的一个面向以数据为中心的连接的中间件协议和API标准。它集成系统中的各个组件,提供低延迟的数据连接、极端的可靠性、增强的安全性和可扩展的体系架构,这些特征是商业和关键任务物联网应用所必须的。

在分布式系统中,中间件是一个软件层,位于操作系统和应用之间它将操作系统提供的资源进行抽象和封装,它使系统中不同的组件更加容易地通信,并且共享数据。它简化了分布式系统的开发让软件开发者把精力集中到他们应用的特定目标上,而不是放到应用以及系统之间如何进行信息传递的机制上。

相同的概念和API提供给不同的编程语言,使得应用在不同的操作系统、编程语言和处理器体系架构之间交换信息。底层细节包括数据传输格式、发现、连接、可靠性、协议、QoS管理等等都由中间件来管理。

DDS最重要的特性是以数据为中心,这是与其他很多通信中间件不同的地方。DDS的数据共享以Topic为单元,应用程序能够通过Topic判断其所包含的数据类型,而不必依赖其他的上下文信息。同时,DDS能够按照用户定义的方式自动地进行存储、发布或订阅数据,使应用程序能够像访问本地数据一样去写入或者读取数据。

现在有许多通信中间件标准和产品。DDS是唯一一个以数据为中心的标准,适用于物联网。大多数中间件通过在应用和系统之间发送信息来进行工作。以数据为中心保证所有消息的安全,包括应用在理解所接收到的数据所需要的上下文信息。

以数据为中心的核心是DDS知晓整个集成网络内的数据以及控制数据的共享。使用传统的以消息为中心的中间件的程序员必须为发送消息编写代码。使用以数据为中心的中间件的程序员只要为如何和何时共享数据编写代码然后就可以直接共享数据值。DDS直接为用户实现受控的、受管的、安全数据共享,而不是在应用代码中管理所有的复杂逻辑。

DDS还提供了非常灵活的QoS(Quality of Service)策略,以满足用户对数据共享方式的不同需求,比如可靠性,故障处理等等。针对数据安全性要求比较高的系统,DDS还提供了细颗粒度的数据安全控制,包括应用程序身份认证,权限控制,数据加密等等。

应用通过发布和订阅主题来实现,主题用它们的主题名来标识。订阅方可以规定时间和内容过滤器,这样仅获得该主题发布数据的一个子集。不同的DDS域是完全不重叠的。在DDS域之间没有数据共享。

类似于SOME/IP-SD,DDS提供了对数据发布者和订阅者的动态发现机制,这意味着用户不必去配置通信节点的地址或其他属性信息,因为他们在运行的过程中会自动发现对方,并自动完成相关配置,即实现了“即插即用“。

2、全局数据空间

从概念上说,DDS把所有的本地存储的数据称作为全局数据空间。对于应用来说,全局数据空间看上去像通过API来访问内存一样。你使用时,就像使用本地存储一样。事实上,DDS发送消息来更新远端节点的相应存储值。这样,你使用时,如同本地存储。

总而言之,DDS使应用在需要进行数据访问的时候提供一个虚拟的全局数据池概念,事实上并没有一个存储所有数据的全局设备。每个应用仅在本地存储它需要的数据,当整个网络内的任何应用需要它们时,提供给对应应用。所有的数据分发工作全部都由DDS代劳了。全局数据空间是一个虚拟概念,实际上是本地存储的集合。每个应用,可以用几乎任何一种编程语言编写,运行在任何系统上,可以在本地内存上读到用最好的数据格式表示的数据。

全局数据空间可以在嵌入式系统、移动和云应用之间共享数据,采用任意的传输方式,无论语言和系统,并且延迟极低。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值