热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DDS和SOME/IP有什么区别?

如何解决《DDS和SOME/IP有什么区别?》经验,为你挑选了1个好方法。

SOME/IP是一种可用于控制消息的汽车中间件解决方案.DDS也是一种用于通信的汽车中间件.我想知道它们之间的区别是什么?而且,为什么以及何时应该选择其中一个?



1> 小智..:

SOME/IP和DDS都允许分布式应用程序使用发布/订阅模式和服务请求/回复模式(RPC)进行通信.但也存在显着差异.

SOME/IP专为汽车行业设计.SOME/IP是作为AUTOSAR的一部分开发的规范集合,描述了其序列化协议,服务发现和用于与Classic AUTOSAR集成的变换器.

DDS(数据分发服务)针对更广泛的工业物联网域.它是由Object Management Group(OMG)发布的一系列开放标准.它专为分布式实时系统而设计,用于许多行业,包括运输,能源,医疗系统,工业自动化,航空航天和国防等.商业和开源都有许多独立的实施.DDS系列的第一个规范于2004年发布,从那时起已发展成为一套12个DDS标准,其中包括标准的线路协议(DDS-RTPS),API(DDS-PSM-CXX,DDS-PSM-JAVA)从IDL到C,Ada等的映射)类型系统(DDS-XTYPES),数据传输模式(DDS用于以数据为中心的发布 - 订阅和DDS-RPC用于请求 - 回复),安全性(DDS-SECURITY) ,系统描述(DDS-XML),数据建模(IDL)和到其他通信框架的网关(DDS-WEB,DDS-OPCUA和DDS-XRCE).

从技术和概念上讲,存在许多差异,因此我将它们组织成不同的类别:

沟通模式

应用程序编程接口(API)

网络传输

安全方法

服务质量

使用其他规格

沟通模式

SOME/IP可以看作是基于对象的面向服务的体系结构.通过实例化服务对象向系统提供信息,这些服务对象访问这些服务对象,客户端应用程序为他们想要访问的每个服务实例实例化相应的"代理"对象.客户端应用程序通过将代理对象附加到服务对象并使用它来监视事件和字段更改来订阅信息.他们还可以调用服务对象上的操作来执行远程过程调用或读/写特定字段.

DDS从根本上提供了一种解耦的,以数据为中心的发布订阅模型.阿苏称为"数据总线"模式.应用程序参与DataBus对等,可以发布/订阅任何数据(由DDS-Topic名称标识)以及调用或实现任何服务操作(由DDS-Service名称标识).DDS完全是点对点的 - 它不需要中间的任何经纪人.有一种发现机制不断运行以检测引用相同主题名称的兼容发布者和订阅者应用程序; 一旦检测到它们就开始直接交换信息.订户应用程序可以指定过滤器(内容或基于时间)以指示他们想要接收的信息.发布者可以在发布者端进行管理,以减少线路上的信息.

DDS和SOME/IP之间的显着差异在于,使用DDS,应用程序不需要绑定到特定的服务实现.它简单地引用了主题和服务,它可以完全透明地进行一对一或一对多的通信,而无需对应用程序代码进行任何更改.它确实需要跟踪单独对等体的存在或管理任何新对象以响应对等体加入或离开.它全部自动处理.从这个意义上讲,它比SOME/IP更具动态性.

应用程序编程接口

SOME/IP没有定义标准API,实现通常提供C++ API,但它们不能跨实现移植.但是,通常SOME/IP用作AUTOSAR的一部分,它确实定义了一些标准API.

DDS具有多种语言的标准API.对于C++和Java,这些包含在DDS-PSM-JAVA和DDS-PSM-CXX规范中.标准C和ADA API源自IDL到C和ADA规范.除此之外,还有针对C#和其他语言的特定于供应商的API.因此,通常可以移植DDS应用程序并在DDS实现之间切换.

网络传输

SOME/IP支持UDP和TCP进行数据传输.AUTOSAR 4.3引入了对UDP上大于1400字节的有效载荷分段的支持.为了可靠的通信,SOME/IP回退到TCP.

DDS使用称为RTPS(实时发布订阅)的有线协议,该协议在独立于平台的模型中定义,该模型可以映射到不同的网络传输协议.大多数DDS(DDS-RTPS)实现至少支持UDP,TCP和共享内存.RTPS实现了与传输无关的可靠性和分段协议,该协议在任何传输之上运行,包括具有多播的UDP.因此,使用DDS,可以通过多播UDP执行大数据和可靠数据.有些/ IP无法做到这一点.

许多DDS实现提供"自定义传输"SDK,因此可以在您自己的自定义传输上运行DDS,而不会牺牲任何功能和QoS.这对于SOME/IP是不可能的,因为运输必须实现某些功能(如可靠性和碎片).

安全方法

一般来说,SOME/IP也依赖于传输来保证安全.因此,为了安全地使用它,需要在TLS或DTLS上运行.

也可以通过TLS或DTLS作为传输运行DDS,但这不是首选解决方案.相反,使用DDS时,最好使用DDS安全规范中定义的机制,这些机制与传输无关.DDS安全性还提供了更加精细的安全性控制和用于访问控制的语言,因此可以单独保护DDS域和主题,并区分对主题的读写权限.此外,由于DDS安全性与传输无关,因此可以与任何传输一起使用,包括共享内存,多播或自定义应用程序定义的传输.

服务质量支持

SOME/IP仅提供一个用于选择UDP与TCP的"可靠性"Qos设置.其他任何东西都必须使用自定义应用程序逻辑来实现,这取决于QoS策略,可能非常困难.此外,应用程序层代码不是那么可移植,并且要求所有应用程序包含相同的代码或至少链接一个通用的非标准库.

DDS提供了许多QoS策略,使用户能够以声明方式指定发布者和订阅者之间如何交换信息.DDS标准定义了20多个单独的策略.这些策略不仅控制可靠性,还控制其他方面,如资源使用,数据优先级划分,数据可用性和故障转移.例如,如果发布者或订阅者应用程序无法以特定速率发送或传递信息,则QoS设置可以建立截止日期以提供通知; 设置数据的持久性,以便可以在生成和发送信息后将其重新发送给加入的订户应用程序; 配置发布者和订阅者应用程序的历史深度 ; 部署冗余系统,根据所有权强度自动选择多个源,配置自动活跃消息以确定远程应用程序是否仍处于活动状态,并在应用程序无响应时执行自动故障转移.您可以从DDS规范的第2.2.3节或不同实现的文档中获得更多详细信息(例如参见RTI Connext DDS的Qos Cheat-Sheet).

使用其他规格

一些/ IP主要由AUTOSAR用于汽车应用.

DDS具有更加横向的用途.它通常直接用作连接框架.实际上,它被工业互联网联盟(IIC)确定为IIoT的"核心连接框架"之一(参见 工业物联网连接框架文档).它也被用作其他标准和框架的一部分,如OpenFMB,ROS2,MD PnP,FACE,它也被包含在AUTOSAR Adaptive中(从版本18.03开始).


推荐阅读
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
author-avatar
一诺千金2502859287
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有