[翻译] SOMEIP和DDS的区别

本文对比了DDS和SOME/IP两种通信协议在汽车和工业物联网领域的应用。DDS提供更灵活的数据中心发布订阅模型,支持多种QoS策略和安全机制,而SOME/IP主要用于汽车行业,依赖TCP或UDP进行通信。DDS具有更强的互操作性和移植性,而SOME/IP的API通常不跨实现移植。此外,DDS的安全性更加细化,支持更多传输协议。

翻译

感觉原文作者是一个DDS的扈拥,字里行间都在贬低SOME/IP。所以,看看就好。

SOME/IPDDSNotes
概念SOME/IP和DDS都允许分布式应用程序使用发布/订阅模式和服务请求/回复模式(RPC)进行通信。 但是也存在重大差异。 SOME/IP专为汽车行业设计。 SOME/IP是作为AUTOSAR一部分而开发的一系列规范,描述了其序列化协议,服务发现以及集成在Classic AUTOSAR中的协议标准接口。DDS(数据分发服务)的目标是更广泛的工业物联网领域。它是对象管理组(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)。
通讯方式SOME/IP可以看作是基于对象的面向服务的体系结构。通过实例化的服务对象将信息提供给系统,客户端应用程序可以访问这些信息。客户端应用程序会为其需要访问的每个服务实例实例化相应的“代理”对象。 客户端应用程序通过将代理对象附加到服务对象并使用它来监视事件和字段更改来订阅信息。 他们还可以在服务对象上调用操作以执行远程过程调用或读取/写入特定字段。DDS从根本上提供了一个分离的,以数据为中心的发布订阅模型。 Aso称为“数据总线”模式。 应用程序参与对等的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实现之间进行切换。译者案:这个说法不太客观。如果从IDL角度来谈的话,SOME/IP和DDS看起来并没有不同。
网络传输SOME / IP支持UDP和TCP进行数据传输。 AUTOSAR 4.3引入了对大于1400字节的UDP载荷进行分段的支持。 即便如此,为了进行可靠的通信,SOME/IP还是推荐使用TCP。DDS使用称为RTPS(实时发布订阅)的有线协议,该协议在独立于平台的模型中定义,可以映射到不同的网络传输协议。 大多数DDS(DDS-RTPS)实现至少支持UDP,TCP和共享内存。 RTPS实现了与传输无关的可靠性和分段协议,该协议可在任何传输之上运行,包括带有多播的UDP。 因此,使用DDS可以通过多播UDP处理大数据和可靠数据。 SOME/IP无法做到这一点。许多DDS实现提供了“自定义传输” SDK,因此可以在不牺牲任何功能和QoS的情况下,通过自己的自定义传输运行DDS。 对于SOME/IP,这是不可能的,因为某些功能(如可靠性和分段性)必须由传输来实现。译者案:SOME/IP也可以通过TP-Message实现大数据广播。当然,可能DDS提供了更安全的策略?
安全一般来说,SOME/IP还依赖于传输来保证安全性。 因此,要安全使用它,就必须在TLS或DTLS上运行。也可以在TLS或DTLS上作为传输运行DDS,但这不是首选的解决方案。 相反,对于DDS,最好使用DDS安全规范中定义的与传输无关的机制。 DDS安全性还提供了对安全性的更细粒度的控制以及一种用于进行访问控制的语言,因此可以分别保护DDS域和主题,并区分对主题的读写权限。 而且,由于DDS安全性与传输无关,因此可以与任何传输一起使用,包括共享内存,多播或自定义应用程序定义的传输。
QoS支持SOME/IP仅提供一种用于选择UDP与TCP的“可靠性” QoS设置。 其他任何事情都必须使用自定义应用程序逻辑来实现,而这取决于QoS策略,这可能非常困难。 而且,应用程序层代码不是那么可移植的,并且要求所有应用程序都包含相同的代码,或者至少链接公共的非标准库。DDS提供了许多QoS策略,使用户可以声明性地指定发布者和订阅者之间如何交换信息。 DDS标准定义了20多个单独的策略。这些策略不仅控制可靠性,还控制其他方面,例如资源使用,数据优先级,数据可用性和故障转移。例如,QoS设置可以确定发布者或订阅者应用程序未能以特定速率发送或传递信息时提供通知的截止日期的功能;设置数据的持久性,以便可以将其重新发送给在生成和发送信息之后加入的订户应用程序;配置发布者和订阅者应用程序的历史深度;部署冗余系统,该系统根据所有权强度自动在众多资源中选择一种来源,配置自动实时消息,以确定远程应用程序是否仍然有效,并在应用程序无响应时执行自动故障转移。您可以从DDS规范的2.2.3节或其他实现的文档中获得更多详细信息(例如,请参见此来自RTI Connext DDS的Qos速查表
在其他需求中使用SOME/IP主要被AUTOSAR应用于车载应用领域。DDS具有更横向的用途。 它通常直接用作连接框架。 实际上,它已被工业互联网联盟(IIC)确定为IIoT的“核心连接框架”之一(请参阅工业物联网连接框架 文件)。 它也被用作其他标准和框架的一部分,例如OpenFMBROS2, MD PnPFACE,并且它也被包含在AUTOSAR Adaptive(从版本18.03开始)译者案:DDS至今(R20-11)还未被加入到AP中。
<think>首先,用户的问题是关于SOME/IP协议DDS(数据分发服务)之间的区别。我需要基于提供的引用内容来回答这个问题。引用包括四个部分: - 引用[1]:描述了SOME/IP的特点,如专门为汽车开发、无中央代理、面向服务、基于UDP等。 - 引用[2]:对比了SOME/IPDDS的通信模型,强调它们在汽车物联网领域的应用。 - 引用[3]:提到SOME/IP没有标准API,而DDS有标准API,这影响了应用程序的可移植性。 - 引用[4]:似乎是GM的一个问题,关于汽车应用中是否需要DDS面向服务架构,但没有提供具体细节。 用户明确说:“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题你的回答。” 但是,这个消息是用户的第一条消息,所以没有“上一次的问题回答”。系统提示说:“参考用户上一次的问题你的回答”,但在这个上下文中,这是第一个交互。所以,我应该直接基于提供的引用来回答。 系统指令要求: - 所有行内数学表达式使用`$...$`格式,但这个问题没有数学内容,所以可能不需要。 - 独立公式必须使用`$$...$$`格式并单独成段,但同样,没有数学内容。 - LaTeX语法正确:确保任何数学表达式正确,但这里可能不适用。 - 使用中文回答:整个回答必须用中文。 - 生成相关问题:在回答后,添加"§§相关问题§§"部分,生成几个相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如:[^1]。我需要引用提供的引用来源。 - 回答结构清晰,逐步解决问题,保证真实可靠。 结构化回答: 1. **引言**:简要介绍SOME/IPDDS,并说明对比的目的。 2. **主要区别**:基于引用,列出关键区别点。 - 通信模型:SOME/IP是面向服务的,无中央代理;DDS是数据为中心的。 - API标准化:SOME/IP没有标准API,影响可移植性;DDS有标准API。 - 开发背景应用领域:SOME/IP专为汽车开发;DDS更广泛用于物联网。 - 传输协议:SOME/IP通常基于UDP;DDS支持多种协议。 3. **总结**:概述差异,强调适用场景。 4. **相关问题**:生成3-5个相关问题。 引用来源: - :来自引用[1] - [^2]:来自引用[2] - [^3]:来自引用[3] - [^4]:引用[4]内容较少,只提到一个问题,可能不需要强引用。 在回答中,当提到具体点时,添加引用标识。 关键点从引用中提取: - 引用[1]:SOME/IP专为汽车开发,2013年发布,无中央代理,面向服务,基于UDP。 - 引用[2]:对比通信模型,SOME/IPDDS都用于分布式系统,汽车物联网。 - 引用[3]:SOME/IP无标准API,DDS有标准API,影响可移植性。 - 引用[4]:讨论汽车应用中是否需要DDS面向服务架构。 我需要整合这些。 可能的区别: 1. **设计目标起源**:SOME/IP是专门为汽车行业设计的协议,而DDS起源于更广泛的分布式系统领域。 2. **通信范式**:SOME/IP是面向服务的(services),而DDS是数据为中心的(data-centric)。 3. **架构**:SOME/IP没有中央代理,消费者提供者直接通信;DDS可能涉及代理或中间件。 4. **API标准化**:SOME/IP缺乏标准API,导致应用程序移植性差;DDS有标准API,支持跨平台移植。 5. **传输协议**:SOME/IP通常使用UDP;DDS可以支持多种传输协议。 6. **适用场景**:SOME/IP广泛应用于汽车电子;DDS在物联网、航空等更广泛领域使用。 确保回答真实可靠:基于提供的引用,不添加额外知识,除非必要。 回答结构: - 开头:重述问题,并概述。 - 主体:分点列出区别。 - 结尾:总结。 最后,生成相关问题:例如,关于性能、适用性、实际应用等。 用中文写作。 </think> ### SOME/IP与DDS(数据分发服务)的核心区别 SOME/IP(Scalable service-Oriented MiddlewarE over IP)DDS(Data Distribution Service)是两种广泛用于分布式系统的通信中间件技术,尤其在汽车电子物联网领域。它们都支持高效的数据交换,但在设计理念、架构应用场景上存在显著差异。以下基于提供的引用内容,我将逐步分析它们的主要区别,确保回答清晰、真实可靠。关键区别点包括通信模型、API标准化、开发背景适用场景等。 1. **通信模型架构设计** SOME/IP采用面向服务的通信范式(Service-Oriented Architecture, SOA),其中数据功能被封装为“服务”,服务提供者消费者直接交互,无需中央代理。这简化了网络结构,但依赖于单播或组播通信,通常基于UDP协议实现高效传输[^2]。 相比之下,DDS采用数据为中心的模型(Data-Centric),强调数据的发布/订阅模式。DDS支持更灵活的通信机制,包括代理或中间件可选,能适应多种传输协议(如TCP、UDP),并内置服务质量(QoS)策略,确保实时性可靠性[^2]。 简单说,SOME/IP侧重于“服务调用”,而DDS侧重于“数据分发”,这使得SOME/IP在汽车内部网络(如ECU通信)中更高效,而DDS在需要高可靠性的复杂系统(如工业物联网)中更具优势[^2]。 2. **API标准化可移植性** SOME/IP协议标准中没有定义统一的应用程序编程接口(API),这导致基于不同厂商实现的SOME/IP应用程序(如汽车控制软件)难以互相移植。开发者需要针对特定平台定制代码,增加了开发维护成本。 相反,DDS制定了标准化的API规范(支持C++、Java等多种语言),使应用程序可以在不同的DDS实现(如RTI Connext或OpenDDS)上无缝移植,提升了跨平台兼容性开发效率。 这一区别意味着,在需要快速集成升级的系统(如智能交通系统)中,DDS更具灵活性;而SOME/IP在封闭式汽车网络中可能更简单直接。 3. **开发背景应用领域** SOME/IP是专为汽车行业设计的协议,于2013年发布,旨在满足车载网络的实时性轻量化需求。它优化了资源消耗(如低带宽占用),适合汽车电子控制单元(ECU)之间的通信,例如在自动驾驶或车载信息娱乐系统中使用[^1]。 DDS起源于更广泛的分布式系统领域(如航空航天工业自动化),由对象管理组(OMG)标准化,强调高可靠性、可扩展性实时性能。它适用于对数据一致性要求高的场景,例如智能电网或无人机集群[^2][^4]。 尽管两者都支持单播组播通信,但SOME/IP更偏向于专用汽车应用,而DDS则覆盖更广泛的物联网实时系统[^1]。 4. **传输协议性能特性** SOME/IP通常基于UDP协议,这减少了传输开销,提升了速度,但牺牲了部分可靠性(需应用层处理错误恢复)。它在低延迟场景(如车内传感器数据交换)中表现优异[^1]。 DDS默认支持多种协议(包括UDPTCP),并通过QoS机制(如数据持久性故障转移)确保可靠传输。这使得DDS在高要求环境(如关键任务系统)中更鲁棒,但可能引入更高资源开销[^2]。 总结:SOME/IPDDS的核心区别在于SOME/IP是汽车专用的面向服务协议,简单高效但API不标准;DDS是数据为中心的标准协议,可移植性强但更复杂。选择时需考虑具体需求:汽车内部网络优先SOME/IP,而跨领域高可靠系统倾向DDS[^2][^4]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值