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