本文主要是介绍DDS数据分发服务——提升汽车领域数据传输效率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.引言
随着智能化技术的快速发展,汽车行业正经历着一场革命性的变革。如今的分布式系统变得越来越复杂且庞大,对网络通信基数要求在功能和性能层面越来越高。数据分发服务(DDS)作为一项先进的数据传输解决方案,在汽车行业中扮演着重要的角色。数据分发服务(Data Distribution Service)是OMG组织在2004年发布的中间件协议和应用程序接口(API)标准,它定义了一个基于发布-订阅模型的以数据为中心的互联框架,为分布式系统提供了低延迟、高可靠性、可扩展的通信架构标准,是新一代分布式实时通信中间件协议。高实时性能、高可靠性能、开放式体系结构和发布/订阅端的非耦合性能,大大加速和简化了分布式系统的开发,使其非常适用于汽车领域,不但能满足汽车智驾域大数据传输的需求,同时能够满足SOA架构,这是引入到汽车领域的根本原因。
2.DDS简介
数据分发服务DDS(DataDistributionService)是OMG对象管理组织在HLA及CORBA等标准的基础上,制定的新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。DDS信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。
DDS最早应用于美国海军,用于解决舰船复杂网络环境中大量软件升级的兼容性问题,已经成为美国国防部的强制标准。2003年,DDS被OMG组织接受,并发布了专门为实时系统设计的数据分发/订阅标准。DDS已经广泛应用于国防、民航、工业控制等领域,成为分布式实时系统中数据发布/订阅的标准解决方案。DDS技术是基于以数据为核心的设计思想提出的,定义了描述网络环境下数据内容、交互行为和服务质量要求的标准。DDS以数据为核心的设计思想非常贴合传感器网络、指挥信息网等应用场景,其提供的数据传输模型能够很好地适应应用系统的开发需要。
如上图所示,DDS中间件是一个软件层,它从操作系统、网络传输和低级数据格式的细节中抽象出应用程序。相同的概念和API以不同的编程语言提供,允许应用程序跨操作系统、语言和处理器架构交换信息。数据线格式、发现、连接、可靠性、协议、传输选择、QoS、安全等低级细节由中间件管理。
DDS的标准协议包括核心协议(DDS、DDSI-RTPS、DDS-Xtypes、DDS-Security)、类型语法和语言映射(IDL)协议、应用程序接口(API)协议、扩展协议、网关协议、在研协议六部分,共计18份。
3.DDS通信的基本要素
基于DDS的分布式系统中,加入DDS网络的节点发布自己后续要发布的(或者要订阅的)Topic和QoS,DDS网络上已经存在的节点接收到这个请求后和自己的发布订阅情况以及QoS策略标准进行对照。如果新加入节点的Topic信息与自己相关,并且QoS策略也符合要求,就会主动同新加入的节点进行通信,将自己的Topic信息发送给新加入节点,同时,把新加入节点的相应信息注册到本节点上,以便有通信需求时建立点到点连接。
Domain:代表一个通信平面,由Domain ID唯一标识,只有在同一个域内的通信实体才可以通信;车内通信可以只划分1个Domain,也可以按照交互规则定义多个Domain。
Domain Participant:代表域内通信的应用程序的本地成员身份,简单来说,说明同一数据域内的通信成员。
Topic:是数据的抽象概念,由TopicName标识,关联相应数据的数据类型(Datatype),如果将车内所涉及的所有Topic集合在一起,这样就形成了一个虚拟的全局数据空间”Global Data Space”,进一步弱化了节点的概念,所以域参与者已经不是节点的概念了。
DataWriter:数据写入者,类似缓存,把需要发布的主题数据从应用层写入到DataWriter。
DataReader:数据读取者,同样可以理解为一种缓存,从订阅者得到主题数据,随之传给应用层;
Publisher:发布者,发布主题数据,至少与1个DataWriter关联,通过调用DataWriter的相关函数将数据发出去。
Subscriber:订阅者,订阅主题数据,至少与1个DataReader关联;当数据到达时,应用程序可能忙于执行其他操作或应用程序只是等待该消息时,会存在两种情况,同步访问和异步通知。
4.DDS通信形式与过程
通信形式
DCPS模型(Data-Centric Publish-Subscribe)。
DDS的数据共享以Topic为单元,应用程序能够通过Topic判断其所包含的数据类型,而不必依赖其他的上下文信息。同时,DDS能够按照用户定义的方式自动进行存储、发布或订阅数据,使应用程序能够像访问本地数据一样去写入或者读取数据。
通信过程
发送过程:应用程序通过Topic创建一个DataWriter,应用程序可以调用这个DataWriter提供的Writer方法把数据传送给Publisher,Publisher就负责把数据通过网络发出去(如果在同一个主机上,可以通过共享内存的方式进行发送)。
接收过程:Subscriber会从网络上去解析出Topic中的数据,Topic创建出一个DataReader,将DataReader放到Subscriber中,应用程序就可以从DataReader中获取数据。
从属关系:DataWriter和DataReader都是由Topic生成,所以其二者都绑定同一个Topic,同一个Topic可以创建多个DataWriter及DataReader,DataWriter必须从属于一个Publisher,DataReader必须从属于一个Subscriber。
通信规则
在DDS应用程序中,GDS称为Domain,Domain是对一组DDS应用程序的逻辑分组,不同Domain中的实体互相独立,不能互相访问,通过Domain ID来识别一个唯一的Domain,应用程序通过指定Domain ID创建DP来获取相应Domain的访问权限。
5.服务质量(Quality of service)
数据可以通过灵活的服务质量 (QoS) 规范进行共享,包括可靠性、系统运行状况(活跃性)甚至安全性。数据分发服务依赖于QoS的使用。QoS可以理解为数据提供者和接收者之间的合约,应用程序可以使用QoS策略来控制、管理和优化网络中传输的数据。
QoS(即QosPolicy对象的列表)可以与系统中的所有实体对象相关联,实体包括Topic、DataWriter、DataReader、Publisher、Subscriber和DomainParticipant。
QoS的功能:
DDS标准提供的QoS参数可以对数据流进行常规控制:
- 数据的持久性
- 数据的传输方式
- 容错性
DDS提供商可以提供扩展的QoS策略以实现更深层次的控制:
- 对发现过程的控制
- 对系统使用的资源控制(如限制使用资源的大小,对传输途径配置等)
- 可靠性,Reliability
- 数据的持久度,Durability
- 数据的历史记录,History
- 周期数据的超时,Deadline
- 基于时间的过滤,Time-based filter
- 数据的有效期,Lifespan
- 数据的所有权,Ownership
- 分区,Partition
- 资源限制,Resource limits
- ….
6.东信创智可提供的技术服务
- 需求规范开发
- 通信矩阵开发
- 协议培训
- 基于Excel通信矩阵快速生成IDL、vCDL工具
- QoS toXML配置验证工具
7.总结
随着汽车行业的不断发展,DDS的应用前景也变得更加广阔。数据分发服务作为网络数据通讯的核心技术,能可靠实时地交换分配群体数据,其传输能力比通常数据链的数量级更高。未来,DDS有望进一步优化数据传输效率,提高系统的稳定性和安全性。同时,DDS还可以与人工智能、大数据分析等技术结合,为汽车行业带来更多创新的应用场景。如有需求,可以发送邮件至market@dotrustech.com,欢迎探讨交流。
这篇关于DDS数据分发服务——提升汽车领域数据传输效率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!