当前位置: 首页 > article >正文

SOA通信中间件介绍(二)

三、DDS 介绍

DDS(Data Distribution Service)是由OMG(Object Management Group)发布的分布式通信规范。OMG成立于1989年,是一个国际性、开放性、非营利性的技术标准联盟,由供应商、终端用户、学术机构和政府机构推动。OMG工作组致力于制定企业集成标准和开发可为数千个垂直行业提供现实价值的技术标准,其中包括统一建模语言SYSML、UML,以及中间件标准CORBA、DDS等。

DDS最早应用于美国海军系统,用于解决在军舰系统复杂网络环境中进行大量软件升级时的兼容性问题。随着DDS被ROS2和AUTOSAR引入,目前它已经广泛应用于航空、航天、船舶、国防、金融、通信、汽车等领域。

DDS的特点:

1、数据中心(Data Centricity)

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


2、全局数据空间(Global Data space)

DDS实现的数据共享可以被理解为一个抽象的全局数据空间,无论应用程序是用哪种开发语言编写,或者在哪种操作系统上运行,都可以以相同的方式访问这个全局数据空间,就像访问本地存储空间一样。当然,全局数据空间只是一个抽象概念,在实际实现中,数据仍然被分别存储在每个应用程序的本地空间中。在系统运行时,数据是按需传输或存储的,数据的发布者只发送订阅者需要的数据,而订阅者只接收并存储本地应用程序当前所需的数据。

3、服务质量(Quality of service)

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

4、动态发现(Dynamic Discovery)

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

5、可扩展架构(Scalable Architecture)

DDS可应用于边缘计算、雾计算和云计算领域。在边缘计算中,DDS可以实现高速实时的设备间通信。在中间系统中,DDS提供健壮可靠的QoS和内容感知的信息流。DDS提供可扩展的信息访问和数据分发手段,用于集成信息系统,将各系统接入云端。

OMG DDS的适用范围广泛,涵盖了从小型设备到云计算系统等超大型系统。DDS能够以超高速传输数据并同时管理数千个数据对象,提供极高的可用性和安全性,非常适用于物联网。通过提供一个标准的通信层,DDS屏蔽了底层复杂性,简化了分布式系统的开发。

6、安全(Security)

DDS为关键任务的工业物联网环境提供了全面的安全保护机制,跨系统、跨供应商,覆盖从边缘设备到云端的安全性需求。

DDS提供了身份验证、访问控制、数据加密和数据完整性等安全机制,以确保数据分发的安全性。这些安全机制是在点对点对等架构上实现的,不会影响实时通信的性能。

目前,DDS已被多个车载中间件平台引入。AUTOSAR AP已完整地集成了DDS标准的网络绑定。另外,虽然AUTOSAR CP的标准规范本身不支持DDS,但通过一些变通方法也可以在CP上集成DDS。ROS2和CyberRT的底层都使用了开源的DDS作为最重要的通信机制。针对自动驾驶领域的SOC芯片,如Xavier和Orin,也都预留了DDS接口。RTI作为OMG组织董事会的成员,领导了DDS标准的制定,并开发了名为Connext的DDS品牌,因此也被称为Connext DDS。

开源DDS相对于商用的RTI DDS等来说,是根据OMG官方标准开发的,但源代码是开放的,主要包括Fast DDS和Open DDS等。

在自动驾驶领域,由RTI原核心团队成员在欧洲创办的eProsima公司推出了影响力较大的开源DDS,名为Fast DDS。在eProsima将Fast DDS的源代码开放后,用户可以直接在GitHub上免费下载。使用Fast DDS需要向eProsima支付费用以获得支持。

Open DDS由位于圣路易斯和凤凰城的Object Computing的ACE/TAO团队开发,与Fast DDS有一定的相似性,两者都基于RTPS实现,都是面向数据的通信框架,并遵循同一标准。这类框架的典型特征是去中心化、支持QoS机制和实时通信,并通常与序列化工具如protobuf进行绑定。

尽管开源DDS对RTI的商用DDS形成一定的竞争,但开源DDS也存在一些不足之处:开源DDS的使用门槛较高,例如RTI DDS的服务策略有50多个,而开源DDS只有23个,完整性远不及前者;RTI的DDS已通过了ASIL-D认证,而开源DDS尚未达到这一认证水平。

四、SOME/IP 与 DDS 对比

SOME/IP和DDS是目前在域控最常用的两类通信中间件,它们都是面向服务的通信协议,并采用以数据为中心的发布/订阅模式。

然而,SOME/IP和DDS在许多方面也存在差异,主要区别如下:

1、主要应用领域不同:SOME/IP专为汽车领域开发,针对汽车领域的需求定义了一套通信标准,并在汽车领域深耕已久;而DDS是一个工业级别的强实时通信标准,适应性较强,但在应用于汽车/自动驾驶领域时需要进行专门的裁剪。

2、灵活性和可伸缩性不同:相比SOME/IP,DDS引入了许多标准内置特性,如基于内容和时间的过滤、与传输无关的可靠性、持久性、存活性、延迟/截止时间监视、可扩展类型等。当AUTOSAR AP与DDS一起构建通信框架时,该框架不仅与现有API和应用程序兼容,还在可靠性、性能、灵活性和可伸缩性等方面提供重要的好处。

3、订阅方和发布方的耦合程度不同:在SOME/IP中,订阅方在正常数据传输之前需要与发布方建立网络连接并询问发布方是否提供所需服务,从这个角度看,节点之间仍然存在一定的耦合性。而在DDS标准下,每个订阅方或发布方只需要在自己的程序中订阅或发布传感器数据,无需关心任何连接。因此,在DDS中,服务的订阅方和发布方更加彻底地解耦。

4、服务策略不同:良好的服务质量(QoS)是DDS标准相对于SOME/IP最重要的特征。SOME/IP只有一个QoS,而RTI DDS和开源DDS分别提供了50多个和20多个QoS,这些QoS基本上涵盖了大多数可预见的智能驾驶场景。

5、应用场景不同:从应用场景的角度来看,SOME/IP更适用于车载网络,并且只能在基于IP类型的网络环境中使用;而DDS在传输方式上没有特别的限制,可以支持基于非IP类型的网络,例如共享内存、跨核通信、PCIe等。此外,DDS还提供了完备的车联网解决方案,其独有的DDS Security和DDS Web功能为用户提供了一站式的“车-云-移动端”解决方案。


在商业落地中,SOME/IP和DDS之间存在直接的竞争关系,但由于它们在应用领域、灵活性和服务策略等方面存在差异,整车厂可以根据需求选择适合的通信中间件,甚至可以同时使用二者。这也是为什么AUTOSAR AP既支持SOME/IP也支持DDS的原因。


http://www.kler.cn/news/290860.html

相关文章:

  • 海康威视 嵌入式 面经 海康威视嵌入式软件 嵌入式硬件总结面试经验 面试题目汇总
  • 经验笔记:容器化
  • livekitAI对话实践(python+next)
  • Java-互斥锁死锁释放锁
  • STM32G474之TIM1更新中断
  • 【JAVA GC垃圾回收器】JAVA GC垃圾回收算法,垃圾回收器,垃圾回收策略总结,可达性分析算法,分代垃圾回收
  • 探究 Eureka 在 Spring Boot 中的配置注入与统一管理机制(下)——第四节
  • (四)vForm 动态表单自定义组件、属性
  • 002.Python爬虫系列_初识协议
  • Netty从入门到超神-NIO 三大核心(selector,channel,buffer)(二)
  • 数学基础 -- 线性代数之向量空间
  • 探究 Eureka 在 Spring Boot 中的配置注入与统一管理机制(下)——第五节
  • guava中对Map的扩展数据结构
  • Vue输入框模糊搜索的多种写法
  • Docker中的容器内部无法使用vi命令怎么办?
  • MySQL自动安装脚本8.0和5.0均可
  • SD-WAN组网:定义与部署步骤解析
  • AI绘画SD中如何安装/更新/卸载 Stable Diffusion WebUI 插件?SD新手必看的保姆级教程!
  • 使用 Cloudflare R2 代替 AWS S3……
  • Day15_0.1基础学习MATLAB学习小技巧总结(15)——字符矩阵
  • Python批量分割Excel后逐行做差、合并文件的方法
  • Redisson的几种锁的通俗说明
  • Go语言多态实践以及gin框架c.BindJSON序列化遇到的坑
  • C#数组中的Rank,GetUpperBound(), GetLength()
  • linux find 之 执行
  • GIT 下载安装使用教程
  • 小程序中用于跳转页面的5个api是什么?区别是什么
  • 【计算机网络】TCP协议
  • 【深度学习】向量化
  • 第 22 章 JavaScript DOM 元素尺寸和位置