02 中间件技术之DDS


通信中间件 DDS

中间件的类别

首先我们理解一下中间件和通信中间件,中间件的定义是介于应用系统和系统软件之间的一种软件,它使用系统软件所提供的基础服务功能,衔接网络上应用系统的各个部分和不同应用,达到资源共享,共享功能的一些目的。

这个定义比较抽象,提炼一下就是它是介于应用和系统软件之间,最终目的就是要达到资源共享和功能共享。

整个系统主要的层级架构如下图所示:

上图中从下往上依次为:1. 硬件2. 操作系统3.主机、设施、Middleware 中间件4.分配的中间件5. 通用化组件服务6. 专业领域相关的服务中间件7. 应用程序

对于车载领域:我们不需要这么复杂的一个中间件,在操作系统上尽量是围绕主机、设施、中间件和发布分配数据的文件做一个设计。在这个层面从上图中可以看到有些 ROS、AP AUTOSAR 等中间件。

关于通信情景,本身数据的发布需要对各个节点做一些数据的发布,这个过程就相当于通信中间件要做一个数据发布应用,怎么样通过一些途径去取得另一个应用提供的一些数据。

本文分享的DDS 是以数据为中心的,数据分享的一个服务。

像 ROS、 AP AUTOSAR 它其实不仅仅只提供通信中间件。ROS 来源于机器人项目,它提供了一些执行器、传感器,一些库,Lib,方便上层开发机器人的用户设计 Application。

中间肯定也用到了数据发布的一个作用。在这块上,它也可以用 DDS 去实现这部分的一个功能。

上图最右侧是 AP AUTOSAR 的架构概览图,AP 中有一个提供数据通信的 ara::com 模块,还有 Persitency,执行管理,时间同步、健康管理等模块,这些都是 AP 这个中间件定义的,它是要去使用平台的资源和功能,通过这些模块作为中间件给上层应用程序提供功能。

然在 AP 的 ara::com 模块中,从网络绑定的角度来看,可以使用 DDS 或 SOME/IP。

DDS 组件

本文主要分享一下 DDS,从组件的层面,DDS 是一个通信中间件层,如下图所示。

上图中,中间一层是 DDS 的一个核心的组件,下面是传输层相关的协议,DDS 是基于以太网的,所以下方一些标准的以太网协议。

上图右下角列的 Share Memory ,实际上是在一个 SOC 里面,它的物理通道Share Memory 可以更快地使用 DDS 数据发布服务,它不需要走传输层,可以节约不少传输时间。

在各个组件层面它有一些 DDS 的标准协议,比如说上图最上方有 DDS C API、C++ API 。当然也可以有相应的 Java 的 API 。

C++ 现在用的比较多,核心的 DDS 协议叫 DCPS Data Centratic Publish and Subscribe,本文后面比较详细解释它到底协议里面去做哪些标准化的定义。

DDS 中还包含一个针对于数据传输层来线上传输的一些协议,叫Real Time Publish Subscribe,大家先留个印象。

OMG DDS Standards

OMG 制定了 DDS 相关的标准如下:

核心内容

DDS v1.4:DDS规范描述了分布式应用通信和集成的以数据为中心的发布-订阅(DCPS)模型。

DDSI-RTPS v2.3:定义了实时发布-订阅协议(RTPS)DDS互操作性线协议。

DDS-XTypes v1.3:定义了DDS类型系统和DDS数据的序列化表示。

DDS-Security v1.1:为兼容的DDS实现定义了安全模型和服务插件接口(SPI)架构。

类型语法和语言映射(IDL)

IDL4(接口定义语言)v4.2:定义了 IDL,一种用于定义数据类型和接口的语言,其方式独立于编程语言。这不是一个 DDS 标准,但 DDS 依赖于它。

其他:

API: DDS C++ API, DDS Java API

扩展: DDS-RPC v1.0, DDS-XML v1.0, DDS-JSON v1.0

网关: DDS-WEB v1.0, DDS-OPCUA v1.0, DDS-XRCE v1.0

DDS Automotive 应用示例

为了让大家直观一些,举个例子如下图所示:


未完待续。。。

完整内容观看方式

1. 扫码或各大应用商店下载 "搞一下汽车电子"APP2. 图文板块直接搜

客服活动

发表回复

相关推荐

小米OPPO三星一加红魔全机型解锁BL详细教程合集-ROOT刷机必要操作

解锁BL一个熟悉又陌生的词汇,只要你刷机root过,你肯定都解锁BL成功过。我们简单的描

· 1分钟前

教你在家做生煎饺,外皮酥脆,底部结冰,又酥又香真好吃!

  冰花生煎饺是一道非常普通的家常菜谱,饺子特点皮薄馅大,有一层像冰花的脆脆的底非常好吃,制作也很简单,只要你会包饺 ...

· 3分钟前

家用NAS开源方案

关于家庭NAS NAS就是有一台家用主机,也可以使一台家用电脑,但是这台电脑的存储空间特别大,比如买电脑时选择硬盘空间大的 ...

· 6分钟前

2024年高中必刷题(九科人教版必修一)大合集-可打印pdf

2024年恐成“高考难年”,3大改变要关注,部分学生或无缘本科:教育政策并不是一成不变的,而是随着时代的发展不断的改革和调 ...

· 7分钟前

五凉古都,这样的武威你了解吗?

武威地处甘肃河西走廊的东端, 东邻兰州,西通金昌, 南依祁连山,北接腾格里沙漠。 武威在历史上不仅是古丝绸之路上的重镇 ...

· 8分钟前