什么是DDS?
发布时间:2023-08-31 14:59:27 作者:CQ信息产业工人 浏览量:27
OMG数据分发服务(DDS™,Data Distribution Service)是一种中间件协议和API标准,用于来自对象管理组织(OMG®)的以数据为中心的连接。它将系统组件集成在一起,提供业务和任务关键型物联网 (IoT) 应用程序所需的低延迟数据连接、极高的可靠性和可扩展的架构。
在分布式系统中,中间件是位于操作系统和应用程序之间的软件层。它使系统的各个组件能够更轻松地通信和共享数据。它通过让软件开发人员专注于其应用程序的特定目的而不是在应用程序和系统之间传递信息的机制来简化分布式系统的开发。
DDS中间件是一个软件层,用于从操作系统、网络传输和低级数据格式的详细信息中抽象出应用程序。以不同的编程语言提供了相同的概念和API,允许应用程序跨操作系统、语言和处理器体系结构交换信息。数据格式、发现、连接、可靠性、协议、传输选择、QoS、安全性等低等级细节由中间件管理。
DDS提供QoS控制的数据共享。应用程序通过发布和订阅由其主题名称标识的主题进行通信。订阅可以指定时间和内容筛选器,并仅获取主题上发布的数据的子集。不同的DDS域彼此完全独立,跨DDS域不能进行数据共享。
目前存在许多通信中间件标准和产品,DDS以数据为中心,是工业物联网的理想选择。大多数中间件的工作原理是在应用程序和系统之间发送信息。以数据为中心可确保所有消息都包含应用程序理解其接收的数据所需的上下文信息。
以数据为中心的本质是DDS知道它存储哪些数据并控制如何共享这些数据。使用传统的以消息为中心的程序员必须编写发送消息的代码。使用以数据为中心的中间件的程序员编写代码,指定如何以及何时共享数据,然后直接共享数据。DDS不是在应用程序代码中管理所有这些复杂性,而是直接实现受控、托管、安全的数据共享。
从概念上讲,DDS看到的是一个成为“全局数据空间”的本地数据存储。对于应用程序而言,全局数据空间类似于通过API访问的本地内存,写入的内容看起来像本地存储。实际上,DDS会发送消息以更新远程节点上的相应存储。读取的内容看起来像是来自本地仓库。
在DDS域中,信息共享的单位是主题中的数据对象。该主题由其名称标识,数据对象由某些“键”属性标识。这类似于使用键属性来标识数据库中记录的方式。这个数字是概念性的。DDS进行点对点通信,不需要由服务器或云代理数据。
总而言之,本地存储为应用程序提供了访问整个全局数据空间的错觉。这只是一种错觉,实际上并没有一个全局性的地方可以容纳所有数据。每个应用程序仅在本地存储它所需要的内容,并且仅在需要它时存储。DDS处理动态数据,全局数据空间是一个虚拟概念,实际上只是本地仓库的集合。在任何系统上运行的几乎任何语言的每个应用程序都会以最佳本机格式查看本地内存。全局数据空间通过任何传输在嵌入式、移动和云应用程序之间共享数据,无论语言或系统如何,并且延迟极低。
数据还可以通过灵活的服务质量(QoS)规范共享,包括可靠性、系统运行状况(活动性)甚至安全性。在真实的系统中,并非每个其他节点都需要本地仓库中的每条信息。DDS在发送所需内容方面非常聪明。如果消息并不总是达到其预期目的地,中间件则会在需要时实现可靠性。当系统发生变化时,中间件会动态地计算出哪些数据发送何处,并智能地通知参与者这些更改。如果总数据量很大,DDS会智能地筛选并仅发送每个节点真正需要的数据。当需要快速更新时,DDS会发送多播消息以一次更新多个远程应用程序。随着数据格式的发展,DDS会跟踪系统各个部分使用的版本并自动转换。对于安全关键型应用程序,DDS控制访问、强制实施数据流路径并动态加密数据。
当同时指定所有这些内容时,DDS 的真正威力就会显现出来,而且处于非常动态、苛刻且不可预测的环境中。
DDS提供发布者和订阅者的动态发现。动态发现使DDS应用程序可扩展,这意味着应用程序不必知道或配置通信终结点,因为它们是由DDS自动发现的。这可以在运行时完成,而不一定在设计或编译时完成,从而为DDS应用程序实现真正的“即插即用”。
这种动态发现甚至比发现端点更进一步。DDS将发现端点是发布数据、订阅数据还是同时执行这两项操作。它将发现正在发布或订阅的数据类型。它还将发现发布者提供的通信特征和订阅者请求的通信特征。在动态发现和匹配DDS参与者的过程中,都会考虑所有这些属性。
DDS参与者可以位于同一台计算机上,也可以跨网络:应用程序使用相同的DDS API进行通信。由于无需知道或配置IP地址,也无需考虑机器体系结构的差异,因此在任何操作系统或硬件平台上添加额外的通信参与者都变得简单且几乎微不足道。
DDS系统可以从边缘到雾再到云。在边缘,可用于高速实时的机器对机器的通信。在中间系统中,可提供强大、可靠的QoS和内容感知信息流。集成这些系统的DDS提供了可扩展的信息访问和分发,一直到云和云内。
OMG DDS架构旨在从小型设备扩展到云和超大型系统。DDS通过跨数千或数百万参与者进行扩展,以超高速交付数据、管理数千个数据对象以及提供极高的可用性和安全性来支持物联网。DDS通过在单个标准通信层中吸收大部分复杂性来简化分布式系统开发。
保护任务关键型工业物联网环境需要跨系统和供应商从边缘扩展到云的安全性。
DDS包括为信息分发提供身份验证、访问控制、机密性和完整性的安全机制。DDS安全性使用分散的点对点架构,在不牺牲实时性能的前提下提供安全性。
注意:DDS域参与者表示域中应用程序的本地成员身份。域是一个分布式概念,它连接了能够相互通信的所有应用程序。它表示一个通信平面:只有连接到统一域的发布者和订阅者可以交互。此外,它还充当DDS Publishers、Subscribers、Topics、MutilTopics和ContentFilteredTopics的工厂。
收藏