随着智能网联汽车的发展,用户的需求也越来越高,“软件定义汽车”已为产业共识,为了真正实现软件定义汽车、软件驱动创新,从技术角度来看,汽车软件架构正由“面向信号”迈向“面向服务(SOA)”。DDS(Data Distribution Service)数据分发服务,是新一代分布式实时通信中间件协议,高实时性能、高可靠性能、开放式体系结构和发布/订阅端的非耦合性能,大大加速和简化了分布式系统的开发,使其非常适用于汽车领域,不但能满足汽车智驾域大数据传输的需求,同时能够满足SOA架构。

02.DDS简介

DDS(Data Distribution Service)是数据分发服务,它是由OMG(对象管理组织,Object Management Group)定义,基于DCPS(Data-Centric Publish-Subscribe, 以数据为中心的发布订阅)模型的一种中间件协议和API标准,它将系统的组件集成在一起,提供业务和任务关键型物联网 (IoT) 应用程序所需的低延迟数据连接、极高的可靠性和可扩展架构。

在分布式系统中,中间件是位于操作系统和应用程序之间的软件层。它使系统的各个组件能够更轻松地通信和共享数据。它通过让软件开发人员专注于其应用程序的特定目的而不是在应用程序和系统之间传递信息的机制来简化分布式系统的开发。

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(1)

图(一)

如上图(一)所示,DDS中间件是一个软件层,它从操作系统、网络传输和低级数据格式的细节中抽象出应用程序。相同的概念和API以不同的编程语言提供,允许应用程序跨操作系统、语言和处理器架构交换信息。数据线格式、发现、连接、可靠性、协议、传输选择、QoS、安全等低级细节由中间件管理。

03.DDS通信的基本要素

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(2)

图(二)基本要素组成的模型实体

如上图(二)所示,DDS通讯包含如下基本要素:

基于DDS的分布式系统中,加入DDS网络的节点发布自己想要发布的(或者想要订阅的)Topic和QoS,DDS网络上已经存在的节点收听到这个请求后和自己的发布订阅情况以及QoS标准进行对照,如果新加入节点的Topic信息与自己相关,并且QoS标准也符合要求,就主动同新加入的节点进行通信,将自己的Topic信息发送给新加入节点,同时,把新加入节点的相应信息注册到本节点上,以便有通信需求时建立点到点连接。

04.DDS模型架构

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(3)

图(三)DDS模型架构

如上图(三)所示,可以看到DDS架构具有以下不同环境的层模型:

05.DDS发现协议

DDS提供发现协议,该协议定义了DataWriters在给定Topic下与订阅同一Topic的DataReaders匹配的机制,允许跨域DomainParticipants自动查找和匹配DataWriters和DataReaders,以便他们可以开始共享数据,这适用于通信过程中的任何时候。

Fast DDS 作为DDS的一种具体实现,以下以Fast DDS举例其发现过程,分两个阶段执行:

同时,Fast DDS提供如下四种发现机制:

06.DDS层详解

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(4)

图(四)Domain类图

如上图(四),Domain代表一个单独的通信平面。它在共享公共通信基础设施的实体之间创建了逻辑分离。从概念上讲,它可以看作是一个虚拟网络,连接在同一域上运行的所有应用程序,并将它们与运行在不同域上的应用程序隔离开来。这样,多个独立的分布式应用程序可以在同一个物理网络中共存,而不会相互干扰,甚至不会相互感知。每个域都有一个唯一的标识符,称为 domainId,共享此 domainId的应用程序属于同一个域并且能够通信。对于要添加到域的应用程序,它必须创建具有适当domainId的DomainParticipant实例。DomainParticipant的实例是通过DomainParticipantFactory单例创建的。

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(5)

图(五)Publisher类图

如上图(五),发布由关联到Publiser的DataWriter定义。要开始发布数据,应用程序需要在Publisher中创建一个新的DataWriter。此DataWriter将绑定到描述正在传输的数据类型的Topic,与此Topic 匹配的远程订阅将能够接收来自DataWriter的数据更新。

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(6)

图(六)Subscriber类图

如上图(六),订阅由关联到Subscriber的DataReader定义。为了开始接收发布的更新,应用程序需要在订阅服务器中创建一个新的DataReader。此DataReader将绑定到描述将要接收的数据类型的Topic,然后DataReader将开始从与该主题匹配的远程发布接收数据更新。当订阅者接收到数据时,它会通知应用程序有新数据可用。然后,应用程序可以使用DataReader来获取接收到的数据。

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(7)

图(七)Topic类图

如上图(七),Topic在概念上适合发布和订阅。订阅必须明确标识每个发布通道,以便仅接收他们感兴趣的数据流,而不接收来自其他发布的数据。Topic服务于此目的,允许共享相同主题的发布和订阅匹配并开始通信。从这个意义上说,主题充当数据流的描述。发布总是与单个Topic相关联,而订阅则与更广泛的TopicDescription相关联。

07.DDS传输层详解

DDS传输层提供DDS实体之间的通信服务,负责通过物理传输实际发送和接收消息。DDS层将此服务用于用户数据和发现通信。但是,DDS 层本身是独立于传输的,它定义了一个传输API,并且可以在任何实现该API的传输插件上运行。这样,它就不受限于特定的传输方式,应用程序可以选择最适合其要求的传输方式,或者创建自己的传输方式。

大数据应用在汽车行业的五大效应(软件定义汽车数据分发服务)(8)

图(八)

如上图(八),显示了Fast DDS中可用的不同传输之间的比较。

08.总结

智能化、网联化和电动化是汽车未来的发展方向,而正是这样的变化,汽车的功能及性能更多的由软件来决定。在整个软件定义汽车的大背景下,极氪软件及电子中心正在开发基于SOA的中央计算平台,其中DDS是其中不可或缺的通讯中间件,它能打通中央网关、智能驾驶、智能座舱之间的通讯桥梁。同时,DDS可以用来开发车云通讯框架,使得云端能够与车端进行便利的通讯与控制等。

,