2024年Go最全DDS(data distribution service,数据分发服务)简介,2024年最新Golang开发从零开始

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

DDS包括为信息分发提供身份验证,访问控制,机密性和完整性的安全机制。DDS安全性使用分散的对等体系结构,在不牺牲实时性能的情况下提供安全性。

为什么选择DDS?

工业物联网和消费物联网的性能、可扩展性、稳健性、可靠性和Qos(Performance、Scalability、Robustness、Reliability、and QoS for Industrial IoT & Cosumer IoT )

OMG-DDS标准针对需要实时数据通信交换的高性能、高可扩展的工业物联网(IoT)和大规模消费物联网应用环境进行了优化。它已经在智能交通、医疗保健、智能能源等行业的关键任务系统中得到充分证明。

建立在DDS之上的行业标准(Industry standards built on top of DDS)

DDS是其他行业标准的基础,包括OpenFMB,自适应AUTOSAR,MD PnP,GVA,NGVA和ROS2。

DDS适合你吗?(Is DDS Right for you?)

基于DDS在数千个应用中的应用,我们可以预测新项目中对DDS的需求。如果对以下任何一个问题回答“是”,那么DDS可能是您项目中最好的连接框架技术。

您是否存在延迟、网络带宽/吞吐量或扩展问题,因为您测量的延迟在毫秒或更少,或者您有10多个不同的应用程序,或者您有超过1000个数据项要共享?

如果系统离线5分钟(甚至5毫秒),这是一个严重的问题吗?您是否在配置、启动或故障切换到备份服务器时遇到困难?

您是否正在构建一个系统,该系统将花费一年多的时间编写,持续超过三年的时间,并且有望通过多个版本或与旧版应用程序集成?

这些问题可帮助您确定关键的性能,可靠性和集成需求。如果您对以上任何一个问题的回答为“是”,那么您应该将DDS作为一种解决方案进行评估,因为它具有许多其他优点。

DDS的主要优势(Key Advantage of DDS)

OMG DDS中间件标准帮助用户可靠和安全地利用不断增加的设备生成的数据量,同时实时处理数据,并在事件发生时尽快采取行动。因此,它可以实现更明智的决策,提供新的服务,增加收入来源,并降低成本。OMG DDS中间件标准还可以简化物联网的开发,部署和管理,加快上市时间。它提供:

易于集成: DDS使用的以数据为中心的方法允许为无缝信息技术(IT)/操作技术(OT)的互操作性定义通用和可扩展的数据模型。它松散的匿名数据共享抽象完全隐藏了应用程序的连接和拓扑细节。

性能效率和可扩展性: DDS实现可以实现低至30μs的点到点延迟。以及每秒数百万条消息的吞吐量。它使用了非常有效的有线协议,基于内容和时间的过滤。如果设计得当,基于DDS的系统可以实现近乎线性的可扩展性。

高级安全性: OMG DDS安全规范为兼容的DDS实现定义了一个全面的安全模型和服务插件接口(SPI)体系结构。DDS提供标准化的身份验证,加密,访问控制和日志记录功能,以实现IoT系统中端对端的安全数据连接。

开放标准: OMG DDS中间件规范是一种成熟的,经过验证的标准,可供供应商和用户参与。它支持端到端供应商的互操作性,并通过完全开放的、将来证明的API(不带供应商锁-n)来简化物联网系统的开发和集成。

启用QoS:一组丰富的QoS策略允许DDS控制数据分发的所有方面,例如及时性,流量优先级,可靠性和资源使用情况。

可扩展的发现:对于大型动态系统,DDS提供了自动发现功能,该功能提供即插即用功能,以简化系统集成和编排。

适用范围: DDS可以透明地解决点对点,设备到设备,设备到云以及云到云通信的问题。实施可用于嵌入式,移动,Web,企业和云应用程序。

其他技术优势(Additional Techncal Advantage)

编程语言,操作系统,传输和硬件无关

可配置的冗余,以实现极其可靠的操作

支持可扩展的多播数据传送

标准网络协议,可实现无缝的跨供应商应用程序的互操作性

数据选择和过滤以确保网络和CPU资源的有效利用

可扩展的数据类型演进,可面向长生命周期的实用架构

在关键任务系统(mission-critical system)中得到实际验证

消除“烟囱式”软件孤岛的面向未来的国际标准

DDS与其他物联网技术相比如何(How Does DDS Compare to other IoT Technologies?)

DDS在数据中心性、QoS、安全性、发现等方面优于传统的消息传递解决方案

为消费者物联网(IoT)和工业物联网设计的应用程序必须能够有效地扩展和安全地共享数据。然而,这两种类型的物联网应用的系统需求有质的区别:

img

消费和工业物联网应用的系统要求的定性比较

资料来源:Cutter Journal 2014年12月

消费者和工业物联网具有许多相同的要求。但是,每个要求具有相对不同的相对重要性。例如,工业物联网应用必须处理高数据率的单类数据(high individual data rates)。单一来源(例如飞机发动机)会产生大量数据。消费者物联网应用通常不处理高单个数据速率。但是,所有物联网应用程序都必须处理大量聚合数据(high aggregated volumes of data)。

不同协议的比较(Different Protocols)

物联网应用通常考虑使用几种专门的消息传递/数据共享协议,包括

消息队列遥测传输(MQTT),一种依赖于代理的发布/订阅消息传递协议,设计用于TCP/IP

高级消息队列协议(AMQP),它定义了在两个网络进程(通常是客户端和代理)之间传输消息的有效的二进制对等协议

约束应用协议(CoAP)是一种软件协议,旨在支持简单的低功耗电子设备(例如无线传感器)与基于互联网的系统的连接

下表提供了上述技术的比较。这些物联网协议中有许多是为简化而设计的,因此只能支持非常有限的一组用例。另一方面,DDS是功能丰富的标准,可以透明地处理IoT系统的许多数据连接复杂性,因此简化了开发人员的工作。

img

DDS:正确的选择(DDS:The Right Choice )

许多真实的系统包括设备,服务器,移动节点等等。他们有不同的沟通需求,但是在可能的情况下使用单一的沟通模式会更好,更轻松。系统设计者应确定哪种协议满足其预期的主要应用场景。然后,将该主要协议扩展应用到系统的其他设备和软件中。

例如,设备间数据使用与设备数据收集是不同的用例场景。打开电灯开关的要求(最好是使用CoAP)与管理该电源的生成(最好是使用DDS),监视传输线(最好使用MQTT)或在数据中心内通信电源使用(最好使用AMQP)的要求有很大不同。

总体而言,DDS是这些协议中最通用的。它可以管理微型设备,连接大型高性能传感器网络,并对时间要求严格的控制回路。它还可以应用于云端服务,并从云端接收数据。

DDS通信是点到点对等的。消除消息代理和服务器简化了部署,最小化了通信延迟,最大化了可扩展性,提高了可靠性,并降低了成本和复杂性。使用DDS确实需要构建一个数据模型并理解以数据为中心的原理。DDS非常适合需要持久、可靠、高性能体系结构的物联网应用。

DDS的技术优势

简化工业级物联网及消费级物联网系统的设计、开发和集成(Simplify Design, Implementation, and Integration of Industrial and Consumer IoT Systems)

DDS使用全局数据空间,允许应用程序在可靠性、实时性完全可控的情况下共享信息。DDS中间件全面负责数据的分发(从生产者到消费者),以及数据的管理(例如为后期加入的应用程序维护非易失性(non-volatile)数据)。在物联网系统的整个生命周期中,降低复杂性的好处显而易见。

简化建模和设计(Simplify Modeling and Design )

在建模和设计过程中,DDS允许您:

使用主题和类型以结构化,标准化的方式捕获特定于域的信息

用服务质量(qualityofservice,QoS)策略对这些信息(其语法)进行注释,这些策略是非功能性属性,定义了时间、紧急性、可靠性和持久性等特殊和临时属性

由此得到的DDS信息模型非常有价值。开发人员可以使用它来帮助构建可重用的软件组件。您还可以使用它与最终用户共享系统属性和需求。

简化开发(Simplify Development )

在开发过程中,DDS允许您:

处理任何应用程序的数据输入和输出,使开发人员专注于业务逻辑,而不需要花费精力实现数据提供者和数据使用者之间的连接关系(包括时间、位置、内容等)

根据类型构造数据,使应用程序对所需数据表达细粒度的兴趣(及时性,内容);传统的面向消息的中间件只能处理不透明的消息,而不能过滤数据。

以容错方式管理非易失性(non-volatile)数据;如果应用程序使用DDS发布其内部状态信息,它们可以很容易变得既可重新启动(re-startable)又可重新分配(re-allocatable)。

在冗余发布者之间无缝仲裁,并支持冗余使用者;它有助于自动故障转移,而又不会增加应用程序的复杂性。

80%的典型网络代码专用于处理数据选择和错误。DDS通过将这种复杂性从应用程序代码中抽象出来,从而加快了开发速度。

简化系统集成(Simplify System Integration )

系统集成取决于数据可用性。在此过程中,DDS允许您:

自动发现数据源和数据接收者,并确保数据生成者满足QoS要求,以便在正确的时间将正确的数据提供到正确的位置。

使用配置和监视实用程序,通过配置逻辑DDS属性(紧急程度、重要性、分区)和物理属性(优先级通道、调度类、多播组)之间的(动态)映射,在不影响应用程序的情况下,实现最佳的部署。

系统集成本质上是DDS的免费好处。无处不在的信息可用性允许自发集成,包括动态发现和相关的QoS匹配。

简化系统部署和演进(Simplify System Deployment and Evolution)

在集成新的和遗留的元素时,复杂的系统为部署带来了挑战。DDS允许您:

采用以数据为中心的方法,通过简单而强大的信息模型,实现空间(位置)和时间(频率)依赖性的解耦。

在运行时确认并集成新的和计划外的应用程序,而又不影响现有的数据模型,从而能够将新功能自发地集成到系统中。

识别并转换新旧版本与应用程序之间不匹配的数据类型,以实现大型分布式系统的增量升级。

以数据为中心的方法和共享数据模型所包含的抽象手段加快了开发速度,并实现了动态部署和渐进式升级。

简化安全性(Simplify Security)

DDS支持无缝安全性。在正常操作期间,DDS通过名称或值查找数据并建立连接。 Secure DDS仅记录并执行这些关系。它允许您:

使用标准的DDS API重新链接并指定允许的数据流,以创建一个无需任何编码的安全系统。

启用安全多播系统,因为DDS支持多对多会话。

通过记录主题名称和关系(配置),并强制命名发布者和命名订阅者之间的数据流,实现访问控制。

从根本上说,DDS控制数据本身,而不控制用户,机器,端点或其他非以数据为中心的实体。

DDS如何工作?

高级数据中心接口取代了以消息为中心的编程(High Level Data-Centric Interfaces Replace Message-Centric Programming)

DDS的主要目标是在正确的时间在正确的位置共享正确的数据,即使在时间不相关的发布者和消费者之间也是如此。DDS通过仔细复制逻辑共享数据空间的相关部分来实现全局数据空间。

并非所有数据都无处不在。中间件应该只提供消费者真正需要的数据。基于兴趣的过滤可以应用于内容和数据速率。通过适当的实施,DDS可以节省带宽,提升处理能力,并最大程度地降低整体应用程序的复杂性。

作为以数据为中心的解决方案,DDS可以了解共享数据的架构。这使它能够根据内容、期限和/或生命周期进行筛选,从而只为应用程序提供所需的数据。例如DDS可以使应用软件只向外发送锅炉温度300的数据(内容过滤器),每秒最多更新10次(速率)。在许多系统中,这种有效的方法通常可以节省90%的数据通信开销。

正确的位置(The Right Place)

数据必须在需要的地方可用,以促进自动形成系统。DDS分发和维护数据,以便随时可用。

DDS动态发现发布者和订阅者,他们要共享的数据类型以及相关的服务质量(QoS)。匹配成功后,DDS根据QoS进行数据分发。它为每个发布者-订阅者对之间的每个数据流实现了一个QoS强制逻辑通道。DDS订阅者可以确定其对应的发布者是否存活,并且可以传递所产生的任何数据。这大大简化了应用程序开发和错误处理。

实时系统与现实世界进行交互。数据必须按时可用–时延过长的正确数据是将导致故障。数据在优先级,可靠性,时序和其他非功能属性方面有所不同。DDS平衡了稀缺资源的利用以在适当的时间分发数据。

DDS中间件使用应用程序在运行时设置的逻辑QoS策略来平衡效率和确定性。QoS约束确保了这些时序关系。例如,如果订阅者每10毫秒要求更新一次,而与其匹配的发布者不进行发送,则系统会报错,从而启用补救措施。QoS策略涵盖许多特征,包括紧急程度,重要性,可靠性,持久性和生动性。

基本技术概念(Underlying Technical Concepts)

关系数据建模:DDS以类似于关系数据库的方式处理数据。它可以通过结构相关的主题(使用关键字段)来管理数据,并允许对内容和时间进行临时查询和过滤,以便应用程序可以根据需要提取特定数据。

发布-订阅消息传递:DDS使用发布/订阅模式、动态发现机制,管理相关DDS实体(包括发布者、订阅者、持久性服务、记录和重放服务以及连接的数据库)之间的数据流。请求-回复和其他模式都建立在这种强大的基础上。

可靠的多播: DDS标准有线协议在普通UDP套接字上实现了可靠的多播,使系统可以从现代网络基础架构中高效受益。

生命周期意识:与以消息为中心的产品不同,DDS为应用程序提供信息生命周期可感知的支持。例如,它检测,通信并通知应用程序有关数据(主题实例)更新的第一次和最后一次出现。这有助于及时响应新的和过时的信息。

触发模式:DDS提供了多种触发模式,这些模式随订阅信息的更新而变化。示例包括轮询,回调(对于GUI而言是典型的)和WaitSet(类似于Unix“ select”,以提供对优先处理选择性触发事件的完整应用程序控制)。

DDS与其他物联网技术相比如何

DDS在数据中心性、Qos、安全性、发现等方面优于传统的消息传递解决方案(DDS outperforms traditional messaging solutions in Data Centricity,Qos ,Security,Discovery and more)

不同的物联网(Different Internets of Things)

专为消费级物联网(IoT)和工业级物联网设计的应用程序必须能够有效扩展和安全共享数据。但是,对于这两种类型的物联网应用程序,系统要求在质量上存在差异:

img

图形

消费和工业物联网应用的系统要求的定性比较

资料来源:Cutter Journal 2014年12月

消费者和工业物联网有许多相同的要求。然而,每一个需求都有非常不同的相对重要性。例如,工业物联网应用必须处理高单个数据速率。单一来源(例如飞机发动机)会产生大量数据。消费者物联网应用通常不处理高单个数据速率。然而,所有物联网应用程序必须处理高聚合量的数据。

不同的协议(Different Protocols)

物联网应用通常考虑使用几种专门的消息传递/数据共享协议,包括

消息队列遥测传输(MQTT),一种依赖于代理的发布/订阅消息传递协议,设计用于TCP/IP

高级消息队列协议(AMQP),它定义了一种高效的二进制对等协议,用于在两个网络进程(通常是客户端和代理)之间传输消息

约束应用协议(CoAP)是一种软件协议,旨在支持简单的低功耗电子设备(例如无线传感器)与基于Internet的系统的连接

下表比较了上面列出的技术。这些物联网协议中有许多是为简化而设计的,因此只能支持非常有限的一组用例。另一方面,DDS是功能丰富的标准,可以透明地处理IoT系统的许多数据连接复杂性,因此简化了开发人员的工作。

img

DDS:正确的选择(DDS:The Right choice)

许多真实的系统包括设备,服务器,移动节点等等。他们有各种各样的沟通需求,但是在可能的情况下使用单个沟通范例会更好,更轻松。系统设计者应确定哪种协议满足其预期应用程序的主要挑战。然后,如果可能,将该主要选择扩展到系统的所有方面。

例如,设备间数据使用与设备数据收集是不同的用例。打开电灯开关的要求(最好是使用CoAP)与管理该电源的产生(最好是使用DDS),监视传输线(最好使用MQTT)或在数据中心内通信用电的要求(最好搭配AMQP)。

总体而言,DDS是这些协议中功能最丰富的。它可以管理小型设备,连接大型高性能传感器网络并关闭对时间要求严格的控制回路。它还可以从云服务和接收数据。

DDS通信是对等的。消除消息代理和服务器可简化部署,最小化延迟,最大化可伸缩性,提高可靠性并降低成本和复杂性。使用DDS确实需要建立数据模型并了解以数据为中心的原理。它是需要持久,可靠,高性能架构的物联网应用的理想选择。

DDS标准中有什么?

开放国际数据中心连接标准(Open International Data-Centric Connectivity Standard)

DDS拥有一个活跃而充满活力的社区,不断致力于扩展其适用性。DDS标准当前包括以下内容:

高性能,可扩展,安全且以数据为中心的发布/订阅抽象

具有动态发现服务的完全去中心化的体系结构,可自动在匹配对等体之间建立通信

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

/订阅抽象

具有动态发现服务的完全去中心化的体系结构,可自动在匹配对等体之间建立通信

[外链图片转存中…(img-CFdI3zPC-1715366742083)]
[外链图片转存中…(img-NJXnmuOa-1715366742084)]
[外链图片转存中…(img-1JwjRkXw-1715366742084)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值