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

随着智能网联汽车的发展,用户的需求也越来越高,“软件定义汽车”已为产业共识,为了真正实现软件定义汽车、软件驱动创新,从技术角度来看,汽车软件架构正由“面向信号”迈向“面向服务(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通讯包含如下基本要素:

  • 域(Domain):这是用于链接所有发布者和订阅者的概念,属于一个或多个应用程序,它们在不同主题下交换数据。这些参与域的单个应用程序称为DomainParticipant。DDS域由域ID标识。DomainParticipant定义Domain ID以指定它所属的DDS域。具有不同ID的两个DomainParticipants不知道彼此在网络中的存在。因此,可以创建多个通信通道。这适用于涉及多个DDS应用程序的场景,它们各自的DomainParticipants相互通信,但这些应用程序不得干扰。DomainParticipant充当其他 DCPS实体的容器,充当发布者、订阅者和主题实体的工厂,并在域中提供管理服务。
  • 主题(Topic):它是将发布者的DataWriters与订阅者的DataReaders绑定的实体,在DDS域中是唯一的。它可在进程之间交换的数据的消息,数据表示为可以包含不同数据类型的结构,如整数,字符串等;
  • 数据写入器(Data Writer):它是负责发布消息的实体,用户在创建此实体时必须提供一个主题,该主题将是发布数据的主题;
  • 数据读取器(Data Reader):它是订阅主题以接收发布的实体,用户在创建此实体时必须提供订阅主题;
  • 发布者(Publisher):它是负责创建和配置其实现的DataWriters的DCPS实体。DataWriter是负责实际发布消息的实体。每个人都有一个分配的主题,在该主题下发布消息;
  • 订阅者(Subscriber):它是 DCPS实体,负责接收在其订阅的主题下发布的数据。它为一个或多个DataReader对象提供服务,这些对象负责将新数据的可用性传达给应用程序;

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

04.DDS模型架构

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

图(三)DDS模型架构

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

  • 应用层:使用DDS API在分布式系统中实现通信的用户应用程序;
  • DDS层:DDS通信中间件的稳健实现。它允许部署一个或多个 DDS域,其中同一域内的域参与者通过在域主题下发布/订阅来交换消息;
  • RTPS层:实施Real-Time Publish-Subscribe protocol(实时发布-订阅协议 ),以实现与DDS应用程序的互操作性。该层充当传输层的抽象层;
  • 传输层:DDS可用于各种传输协议,例如:UDP、TCP、SHM;
05.DDS发现协议

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

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

  • 参与者发现阶段(PDP):在此阶段,DomainParticipants确认彼此的存在。为此,每个DomainParticipant都会定期发送公告消息,其中指定DomainParticipant正在侦听传入元数据和用户数据流量的单播地址(IP和端口)。当两个给定的DomainParticipants 存在于同一个DDS域中时,它们将匹配。默认情况下,通知消息使用众所周知的多播地址和端口(根据DomainId来计算)发送。此外,可以指定地址列表以使用单播发送通知。此外,还可以配置此类公告的周期。
  • 端点发现阶段(EDP):在这个阶段,DataWriters和DataReaders相互确认。为此,DomainParticipants使用PDP期间建立的通信通道相互共享有关其DataWriters和DataReaders的信息。除其他外,此信息包含Topic和数据类型。对于要匹配的两个端点,它们的主题和数据类型必须一致。一旦DataWriter和DataReader匹配,它们就可以发送/接收用户数据。

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

  • 简单的发现:这是默认的发现机制,在RTPS标准中定义并提供与其他DDS实现的兼容性。在这里,DomainParticipants是在早期单独发现的,以便随后匹配它们实现的DataWriter和DataReader;
  • 发现服务器:这种发现机制使用集中式发现架构,其中服务器充当元流量发现的中心;
  • 静态发现:这实现了DomainParticipant彼此之间的发现,但如果远程DomainParticipant事先知道这些实体,则可以跳过每个 DomainParticipant (DataReader/DataWriter) 中包含的实体的发现;
  • 手动发现:此机制仅与RTPS层兼容,它允许用户使用其选择的任何外部元信息通道手动匹配和取消匹配RTPSParticipants、RTPSWriters和RTPSReaders;
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的传输插件上运行。这样,它就不受限于特定的传输方式,应用程序可以选择最适合其要求的传输方式,或者创建自己的传输方式。

  • Fast DDS已经实现了五种传输:
  • UDPv4:通过IPv4的UDP数据报通信。 如果没有给出特定的传输配置,则默认情况下会在新的DomainParticipant上创建此传输。
  • UDPv6:通过IPv6的UDP数据报通信。
  • TCPv4:基IPv4的TCP通信。
  • TCPv6:基于IPv6的TCP通信。
  • SHM:在同一主机上运行的实体之间的共享内存通信。 如果没有给出特定的传输配置,则默认情况下会在新的DomainParticipant上创建此传输。

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

图(八)

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

08.总结

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

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页