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