DDS数据分发服务——提升汽车领域数据传输效率

1.引言

随着智能化技术的快速发展,汽车行业正经历着一场革命性的变革。如今的分布式系统变得越来越复杂且庞大,对网络通信基数要求在功能和性能层面越来越高。数据分发服务(DDS)作为一项先进的数据传输解决方案,在汽车行业中扮演着重要的角色。数据分发服务(Data Distribution Service)是OMG组织在2004年发布的中间件协议和应用程序接口(API)标准,它定义了一个基于发布-订阅模型的以数据为中心的互联框架,为分布式系统提供了低延迟、高可靠性、可扩展的通信架构标准,是新一代分布式实时通信中间件协议。高实时性能、高可靠性能、开放式体系结构和发布/订阅端的非耦合性能,大大加速和简化了分布式系统的开发,使其非常适用于汽车领域,不但能满足汽车智驾域大数据传输的需求,同时能够满足SOA架构,这是引入到汽车领域的根本原因。

2.DDS简介

数据分发服务DDSDataDistributionService)是OMG对象管理组织HLACORBA等标准的基础上,制定的新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。DDS信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。

DDS最早应用于美国海军,用于解决舰船复杂网络环境中大量软件升级的兼容性问题,已经成为美国国防部的强制标准。2003年,DDSOMG组织接受,并发布了专门为实时系统设计的数据分发/订阅标准。DDS已经广泛应用于国防、民航、工业控制等领域,成为分布式实时系统中数据发布/订阅的标准解决方案。DDS技术是基于以数据为核心的设计思想提出的,定义了描述网络环境下数据内容、交互行为和服务质量要求的标准。DDS以数据为核心的设计思想非常贴合传感器网络、指挥信息网等应用场景,其提供的数据传输模型能够很好地适应应用系统的开发需要。

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

DDS的标准协议包括核心协议(DDSDDSI-RTPSDDS-XtypesDDS-Security)、类型语法和语言映射(IDL)协议、应用程序接口(API)协议、扩展协议、网关协议、在研协议六部分,共计18份。

3.DDS通信的基本要素

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

Domain:代表一个通信平面,由Domain ID唯一标识,只有在同一个域内的通信实体才可以通信;车内通信可以只划分1Domain,也可以按照交互规则定义多个Domain

Domain Participant:代表域内通信的应用程序的本地成员身份,简单来说,说明同一数据域内的通信成员。

Topic:是数据的抽象概念,由TopicName标识,关联相应数据的数据类型(Datatype),如果将车内所涉及的所有Topic集合在一起,这样就形成了一个虚拟的全局数据空间”Global Data Space”,进一步弱化了节点的概念,所以域参与者已经不是节点的概念了。

DataWriter:数据写入者,类似缓存,把需要发布的主题数据从应用层写入到DataWriter

DataReader:数据读取者,同样可以理解为一种缓存,从订阅者得到主题数据,随之传给应用层;

Publisher:发布者,发布主题数据,至少与1DataWriter关联,通过调用DataWriter的相关函数将数据发出去。

Subscriber:订阅者,订阅主题数据,至少与1DataReader关联;当数据到达时,应用程序可能忙于执行其他操作或应用程序只是等待该消息时,会存在两种情况,同步访问和异步通知。

4.DDS通信形式与过程

通信形式

DCPS模型(Data-Centric Publish-Subscribe)。

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

通信过程

发送过程:应用程序通过Topic创建一个DataWriter,应用程序可以调用这个DataWriter提供的Writer方法把数据传送给PublisherPublisher就负责把数据通过网络发出去(如果在同一个主机上,可以通过共享内存的方式进行发送)。

接收过程:Subscriber会从网络上去解析出Topic中的数据,Topic创建出一个DataReader,将DataReader放到Subscriber中,应用程序就可以从DataReader中获取数据。

从属关系:DataWriterDataReader都是由Topic生成,所以其二者都绑定同一个Topic,同一个Topic可以创建多个DataWriterDataReaderDataWriter必须从属于一个PublisherDataReader必须从属于一个Subscriber

通信规则

DDS应用程序中,GDS称为DomainDomain是对一组DDS应用程序的逻辑分组,不同Domain中的实体互相独立,不能互相访问,通过Domain ID来识别一个唯一的Domain,应用程序通过指定Domain ID创建DP来获取相应Domain的访问权限。

5.服务质量(Quality of service

数据可以通过灵活的服务质量 (QoS) 规范进行共享,包括可靠性、系统运行状况(活跃性)甚至安全性。数据分发服务依赖于QoS的使用。QoS可以理解为数据提供者和接收者之间的合约,应用程序可以使用QoS策略来控制、管理和优化网络中传输的数据。

QoS(即QosPolicy对象的列表)可以与系统中的所有实体对象相关联,实体包括TopicDataWriterDataReaderPublisherSubscriberDomainParticipant

QoS的功能:

DDS标准提供的QoS参数可以对数据流进行常规控制:

  1. 数据的持久性
  2. 数据的传输方式
  3. 容错性

DDS提供商可以提供扩展的QoS策略以实现更深层次的控制:

  1. 对发现过程的控制
  2. 对系统使用的资源控制(如限制使用资源的大小,对传输途径配置等)
  • 可靠性,Reliability
  • 数据的持久度,Durability
  • 数据的历史记录,History
  • 周期数据的超时,Deadline
  • 基于时间的过滤,Time-based filter
  • 数据的有效期,Lifespan
  • 数据的所有权,Ownership
  • 分区,Partition
  • 资源限制,Resource limits
  •  ….

6.东信创智可提供的技术服务

  1. 需求规范开发
  2. 通信矩阵开发
  3. 协议培训
  4. 基于Excel通信矩阵快速生成IDL、vCDL工具
  5. QoS toXML配置验证工具

7.总结

随着汽车行业的不断发展,DDS的应用前景也变得更加广阔。数据分发服务作为网络数据通讯的核心技术,能可靠实时地交换分配群体数据,其传输能力比通常数据链的数量级更高。未来,DDS有望进一步优化数据传输效率,提高系统的稳定性和安全性。同时,DDS还可以与人工智能、大数据分析等技术结合,为汽车行业带来更多创新的应用场景。如有需求,可以发送邮件至market@dotrustech.com,欢迎探讨交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/267966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vulhub中JBoss JMXInvokerServlet 反序列化漏洞复现

这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。 利用ysoserial 工具进行利用, 也可以使用DeserializeExploit.jar&#xff0c…

web漏洞与规避

文章目录 一、XSS 跨站脚本攻击1.1 XSS攻击的主要类型反射型XSS存储型XSSDOM型XSS 1.2 前端开发如何应对XSS 二、CSRF 跨站请求伪造2.1 CSRF例子2.2 前端开发如何应对CSRF 三、SQL 注入3.1 前端如何防御SQL注入 四、前端如何使用CSP 一、XSS 跨站脚本攻击 攻击者通过在受害者的…

SpringBoot底层原理

SpringBoot底层原理 一 配置优先级 1.配置方式 Springboot中支持三种配置方式,分别为: application.propertiesapplication.ymlapplication.yaml 2.配置优先级 当存在多份配置文件时,配置文件会按照它们的优先级生效。 优先级从高到底…

免费音频剪辑

在数字时代,音频剪辑已成为许多职业和爱好者不可或缺的技能。无论是制作播客、教育视频、还是进行广告宣传,高质量的音频剪辑都能为作品增色不少。今天,我要为大家强烈安利一款免费且功能强大的音频剪辑工具,它绝对是你办公桌上不…

ISO_IEC_18598-2016自动化基础设施管理(AIM)系统国际标准解读(一)

██ ISO_IEC_18598-2016是什么标准? ISO/IEC 18598国际标准是由ISO(国际标准化组织)/IEC(国际电工委员会)联合技术委员会1-信息技术的第25分委员会-信息技术设备互连小组制定的关于信息基础设施自动化管理的国际标准&…

备战蓝桥杯Day22 - 计数排序

计数排序问题描述 对列表进行排序,已知列表中的数范围都在0-100之间。设计时间复杂度为O(n)的算法。 比如列表中有一串数字,2 5 3 1 6 3 2 1 ,需要将他们按照从小到大的次序排列,得到1 1 2 2 3 3 5 6 的结果。那么此时计数排序是…

python 使用curl_cffi 绕过jax3指纹-Cloudflare 5s盾

现在越来越多的网站已经能够通过JA3或者其他指纹信息,来识别你是不是爬虫了。传统的方式比如换UA,加代理是没有任何意义了,所以这个时候我们就需要使用到curl_cffi 了。 1.TLS 指纹是啥? 在绝大多数的网站都已经使用了 HTTPS&am…

一个脚本两步计算材料Raman谱(附数据处理和绘图脚本)

在以往推送中已经介绍了相当多的计算材料Raman的方法,使用的软件主要为Phonopy-Spectroscopy,相关软件还有vasp,phonopy,phono3py等。 Phonopy-Spectroscopy计算材料红外和Raman光谱 Phonopy-Spectroscopy 计算红外和拉曼光谱 也…

python绘制特殊的柱状图

我在使用python绘图时,想要这样绘图:每个组的所有数据放到一起,然后不同组进行比较。 类似这样的图。 然后 我搞了挺长时间,搞了一个类似的图,需要计算每个柱子的位置。 gpt提示词可以这样写: 把所有颜色相同的柱子放…

【MCAL】TC397+EB-tresos之CAN配置实战 - (CAN/CANFD)

本篇文章介绍了在TC397平台使用EB-tresos对CAN驱动模块进行配置的实战过程,不仅介绍了标准CAN的发送与接收,还介绍了CANFD的实现与调试以及扩展帧的使用。M_CAN是德国博世公司开发的IP,因为英飞凌的芯片完整的集成了这个IP,所以整体的配置都比…

4.关联式容器

关联式container STL中一些常见的容器: 序列式容器(Sequence Containers): vector(动态数组): 动态数组,支持随机访问和在尾部快速插入/删除。list(链表)&am…

【接口测试】常见HTTP面试题

目录 HTTP GET 和 POST 的区别 GET 和 POST 方法都是安全和幂等的吗 接口幂等实现方式 说说 post 请求的几种参数格式是什么样的? HTTP特性 HTTP(1.1) 的优点有哪些? HTTP(1.1) 的缺点有哪些&#x…

Nginx高级技巧:实现负载均衡和反向代理

文章目录 Nginx概述Nginx作用正向代理反向代理负载均衡动静分离 Nginx的安装 -->Docker3.1 安装Nginx3.2 Nginx的配置文件3.3 修改docker-compose文件 Nginx源码安装nginx常用命令nginx配置文件配置文件位置配置文件结构详情 Nginx的反向代理【重点】基于Nginx实现反向代理4…

会声会影2024中文官方网站https://wm.makeding.com/iclk/?zoneid=55677

会声会影2024在易用性方面做得非常出色,这也是它受到广大用户喜爱的一个重要原因。 首先,会声会影2024拥有直观的用户界面设计。软件的整体布局清晰明了,各个功能模块划分得十分合理。用户即使是第一次使用,也能够迅速找到所需的…

实战 | 使用YOLOv8图像分割实现路面坑洞检测(步骤 + 代码)

导 读 本文主要介绍使用YOLOv8图像分割实现路面坑洞检测(步骤 代码)。 背 景 如上图所示,现实生活中路面坑洞对车辆和驾驶员安全来说存在巨大隐患,本文将介绍如何使用YoloV8图像分割技术来检测路面坑洞,从而提示驾…

【大数据Hive】hive 多字段分隔符使用详解

目录 一、前言 二、hive默认分隔符规则以及限制 2.1 正常示例:单字节分隔符数据加载示例 2.2 特殊格式的文本数据,分隔符为特殊字符 2.2.1 文本数据的字段中包含了分隔符 三、突破默认限制规则约束 3.1 数据加载不匹配情况 1 3.2 数据加载不匹配…

理解python3中的回调函数

百度百科说:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用&#…

ctf_show笔记篇(web入门---php特性)

目录 php特性 89:直接数组绕过preg_match当遇到数组时会直接报错输出0 90:这里利用了intval的特性 91:这里需要细节一点 92-93:这两题的方法很多可以发散思维 94:还是利用小数绕过例如4476.0 95:这里…

【ArcGIS】统计格网中不同土地利用类型占比

基于ArcGIS统计格网中不同土地利用类型占比 数据准备ArcGIS操作步骤1、创建渔网(Create Fishnet)2、建立唯一标识3、选择格网4、提取不同类别土地利用类型5、各类用地面积计算 参考另:可能出现的问题总结Q1:ArcGIS获取唯一值&…

7.1.1 selenium介绍及安装chromedriver

目录 1. Selenium的用途 2. 安装Selenium库 3. 安装chromedriver 1. 查看谷歌版本号​编辑 2. 找到最新版本及下载 3. 配置环境变量 4. 检测是否配置成功 5. 用python初始化浏览器对象检测: 6. 参考链接 1. Selenium的用途 在前面我们提到:在我…