草庐IT

汽车 Automotive > SOME/IP VS DDS调研和未来方向

ABEL in China 2023-04-12 原文

参考:JASPAR, General incorporated association:What is the conqueror in the SOA platform for the future in-vehicle networks? 

目录

SOME/IP介绍参考

DDS介绍

SOME/IP VS DDS

研究方向


SOME/IP介绍参考

汽车Automotive > SOME/IP应用学习_ABEL in China的博客-CSDN博客

DDS介绍

  • DDS定义:Data Distribution Service 数据分发服务,是新一代分布式实时通信中间件协议,采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。
  • 这在分布式系统中实现了面向服务的体系结构;API(应用程序编程接口)和中间件。
  • 它是由对象管理组(OMG)发布的开放标准
  • 它针对大型消费物联网(IoT)进行了优化,具有高度的可靠性和可扩展性。
  • 它被用于航空和铁路控制网络等各个领域。
  •  
    • 功能
  • 远程过程调用
  • 发布/订阅
  • 可靠性和实时性能的服务质量(QoS)
  • 方法在DDS的较低层中定义
  •  
    • AUTOSAR
  • ara::com的API映射到一个定义为DDS中间件的API这在分布式系统中实现了面向服务的体系结构;API(应用程序编程接口)和中间件。它是由对象管理组(OMG)发布的开放标准・它针对大型消费物联网(IoT)进行了优化,具有高度的可靠性和可扩展性。它被用于航空和铁路控制网络等各个领域。

SOME/IP VS DDS

 SOA Protocol : security

总结:

  • 1)SOME/IP中不包括安全功能。需要与其他通用技术结合使用,例如标准以太网和TCP/IPAUTOSAR模块。
  • 2)DDS安全包括一组安全功能。

Survey of the SOA protocols : Protocol summary

 QoS参考:以下是SOME/IPDDS应用类型的示例

 当需要实时性时,具有QoS配置文件的DDS是一个候选

研究方向

考虑SOME/IP和DDS的安全能力,以便进行纵深防御

需要定义了车内以太网的安全要求。→ 需要根据要求为每一层应用安全协议或技术

安全架构

 SOA协议的安全需求和能力

Layer

Requirements

SOME/IP

DDS

External

・服务器和设备身份验证
・数据加密

・使用TLS进行加密和身份验证。
・服务发现的身份验证存在一些问题。

DDS具有用户身份验证和加密功能。

VLAN

・网络检查
ACL(AccessControlLists)
消息验证
VLAN筛选器

・在另一个VLAN之间发现服务存在一些问题。
AutoSAR具有访问控制和日志记录功能。
VLAN过滤器是标准的以太网。
・消息身份验证码(
MAC)IPSecor SecOC启用。

DDS具有日志记录、过滤、访问控制和消息身份验证功能。
VLAN过滤器是以太网标准规范。

Internal

消息身份验证

・消息身份验证码(MAC)IPSecor SecOC启用。

DDS具有消息认证功能。

  • 对于外部通信:在服务层具有身份验证的DDS是一个潜在的候选者。
  • 对于内部通信:SOME/IP与MAC认证是必要和充分的条件。

总结

  • 根据用例,从QoS需求的角度来看,DDSSOA平台的有力候选。
  • 根据基准测试,从安全要求的角度来看,DDS由于易于实现而适合连接,但由于取得的成就,SOME/IP足以用于车内通信。
  • 征服SOA协议的要求:
  • SOME/IP:对QoS和安全性的支持
  • DDS:在汽车领域取得了许多成就,与AUTOSAR通信,用于车载以太网的API

DDS提供了QoS框架,但没有说明如何实现它。SOME/IP甚至没有支持QoS的框架。

我们需要考虑参与IE802.1定义的底层工作。适当地实现每个协议。这是SOA协议的常见问题,而不仅仅是DDS。

未来的工作:

为了补充SOA协议的优势,我们研究了如何应用IEEE P802.1DGTSN自动配置文件。(示例)使用Qav/QBV定义的整形器来满足QoS策略。

DDS支持的QoS策略示例

QoS Policy

Overview

描述

DEADLINE

QoS attributefor Data Writer. Data Reader expects a new sample
updating the value of each instance at least once every DEADLINE period.

数据写入程序的QoS属性。数据读取器需要新示例
在每个截止期限内至少更新一次每个实例的值。

LATENCY_BUDGET

Tips on the maximum acceptable latency between writing by Data Writer and receiving by the application.Usage is not defined.

关于数据写入程序写入和应用程序接收之间的最大可接受延迟的提示。用法没有定义。

LIFESPAN

Data Writer indicates the maximum duration of validity of the data.
Data Reader decides whether pass the data to application based on LIFESPAN.

数据写入器指示数据有效性的最长持续时间。
数据读取器根据生命周期决定是否将数据传递给应用程序。

DESTINATION_ORDER

Controls the criteria used to determine the logical order among changes
made by Publisher entities to the same instance of data.
BY_RECEPTION_TIMESTAMP or BY_SOURCE_TIMESTAMP

控制用于确定更改之间逻辑顺序的标准
由发布者实体对同一数据实例创建。
按接收时间戳或按来源时间

SOA平台的引入使得车载服务能够轻松地频繁更新(包括添加和删除)。

随着服务更新,需要灵活更改相关网络设置(QoS、带宽、路由等)。

车内SDN(软件定义的网络)有望实现动态网络更改。

我们研究了车载SDN(有效使用TSN,与SOA协议共存等)。(示例)・应用TSN的可行性研究・哪个TSN协议可能会受到SDN配置更改的影响

 

 未来的工作将对IEEEP802.1DG的TSN汽车配置文件做出贡献。

有关汽车 Automotive > SOME/IP VS DDS调研和未来方向的更多相关文章

  1. ruby 单元测试 : run some code after each failed test - 2

    在Test::Unit中的ruby​​单元测试断言失败后,在执行teardown之前,是否有一些简洁优雅的方法来立即执行我的代码?我正在做一些自动化的GUI测试,并希望在出现问题后立即截图。 最佳答案 如果您使用的是1.9,请不要使用Test::Unit::TestCase作为您的基类。对其进行子类化并覆盖#run_test以进行救援,截取屏幕截图并重新提出:classMyAbstractTestCase或者,我认为这实际上是最简洁的方法,您可以使用before_teardownHook:classMyTestCase这不适用于1.

  2. 网页设计期末作业,基于HTML+CSS+JavaScript超酷超炫的汽车类企业网站(6页) - 2

    🎉精彩专栏推荐💭文末获取联系✍️作者简介:一个热爱把逻辑思维转变为代码的技术博主💂作者主页:【主页——🚀获取更多优质源码】🎓web前端期末大作业:【📚毕设项目精品实战案例(1000套)】🧡程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作(110套)】🌎超炫酷的Echarts大屏可视化源码:【🔰Echarts大屏展示大数据平台可视化(150套)】🔖HTML+CSS+JS实例代码:【🗂️5000套HTML+CSS+JS实例代码(炫酷代码)继续更新中…】🎁免费且实用的WEB前端学习指南:【📂web前端零基础到高级学习视频教程120G干货分享】🥇关于作者:💬历任研发工程师,技术组长,教学总监;

  3. 科创人·数智未来私董会第4期:转型的实证-幸存者偏差与盲人摸象 - 2

    所有技术终将演变为基础设施。2022年6月11日,科创人·数智未来私董会第4期活动在线举办,本次活动由科创人、北航投资、方云智能联合举行;微软(中国)首席技术官韦青担任本期活动主讲嘉宾,携手14位企业高级决策者围绕数智未来课题进行深度探讨。科创人·数智未来私董会第3期活动回顾|《狗尾巴的故事-数智时代的第一性原理》与会嘉宾依次是:微软(中国)CTO韦青、领鹊科技创始人&CEO张志祥、食方科技创始人&CEO黄龚、中科云创创始人&CEO周北川、北航投资总经理王剑飞、中煤信息技术首席专家黄韶杰、天云数据创始人&CEO雷涛、中国农业银行科技与产品管理局信息安全与风险管理处处长何启翱、索迩科技创始人&C

  4. 未来的趋势————以ChatGPT为标杆的AI对生活的影响是巨大的 - 2

    文章目录前言1.AI的发展历程2.我是如何接触到人工智能的概念和产品的3.对于ChatGPT的一点看法4.AI对大学毕业生的职业发展的利与弊5.对于AI的思考和问题前言随着ChatGPT的爆火,生成式AI,大模型的人工智能被越来越多的人注意到,同时他也带来了许多问题。本文将对几方面进行探讨。1.AI的发展历程远古时期在公元前第一个千禧年,中国,印度和希腊哲学家都提出了一些推理的研究理论,比如亚里士多德(Aristotle)进行了演绎推理三段论的完整分析,欧几里得(Euclid)所著Elements是一种形式推理的模型,MuḥammadibnMūsāal-Khwārizmī,发明了代数学,即我们

  5. ruby - 如何在 Ruby 中检查参数 "param[:some_value]" - 2

    我知道一些检查参数是否为零的方法ifparam[:some_value]ifparam[:some_value].present?if!param[:some_value].nil?#unlessparam[:some_value].nil?if!param[:some_value].blank?#unlessparam[:some_value].blank?哪一个是正确的并且最受欢迎?它们之间有什么区别?我宁愿使用ifparam[:some_value]因为它最简单也最短。 最佳答案 以下是nil?、blank?和present?

  6. ruby - Prawn with some emojis for ttf-font not rendering text correctly - 2

    我有一个ruby​​脚本来生成带有一些文本的pdf文档。文本中包含表情符号。文本第一行的问题是它打印了三个表情符号,它们被看起来像十字的东西隔开,而实际上它们应该是一个表情符号(三个成员的家庭)。第二行的问题是它只打印了一个正方形而不是预期的表情符号(嘘脸)。我试过其他一些字体,但还是不行。这些是字体:似曾相识IPAMNotoSans-Medium我找不到问题有什么遗漏吗?我做错了什么吗?gems已安装,字体在正确的位置require"prawn"require"prawn/emoji"require"prawn/measurement_extensions"$pdf=Prawn::D

  7. ruby - 如何使用 prawn 更改现有 pdf 的方向? - 2

    我有一个pdf文件。我想将其所有页面向右旋转90度。如何使用Prawngem实现此目的?当我尝试使用现有的pdf作为模板并尝试对其进行旋转时,它不起作用。我徒劳地尝试了以下。require'prawn/core'require'prawn/layout'require'prawn/measurement_extensions'pdf=Prawn::Document.new(:page_size=>[4.in,6.in],:template=>'orig.pdf',:layout=>'potrait')do|p|p.rotate(90)endpdf.render_file("./test

  8. ruby-on-rails - 相当于 ruby​​/rails 中的 Array.some - 2

    我想在rails中做Array.some的等价物。这是一个应用于我的用例的示例,它是一种更复杂的include?(我想将其应用于*args):ary=[:a,:b,:c,d::x,e::y]#=>[:a,:b,:c,{:d=>:x,:e=>:y}]search=:econtained=ary.some{|x|x==search||x.try(:key?,search)}#=>trueassertcontained,"Weshouldhavefound#{search}"我可以用ary.map来做到这一点,但这意味着遍历整个数组然后再次测试它的内容。我还可以使用ary.drop_whil

  9. ruby - Sinatra 请求 ["SOME_HEADER"] 不适用于 POST;文档错误? - 2

    Sinatra自述文件says:request["SOME_HEADER"]#valueofSOME_HEADERheader鉴于此应用:require'sinatra'post'/env'doenv['HTTP_X_FOO']endpost'/request'dorequest['X-Foo']endpost'/request_rack_http_format'dorequest['HTTP_X_FOO']end第一个规范通过;接下来的两个失败:describe"Sinatrashouldplacetheheaderin"dobefore(:all)doheader'X-Foo','

  10. Ruby:@cars.each 之间的区别做 |car|对于@cars 中的汽车 - 2

    (抱歉新手问题。)在Ruby中,循环之间的区别是什么:@cars.eachdo|car|和forcarin@carsdo?效率上有区别吗,或者为什么我们需要两种(或更多)方式来表达同一件事?第二种方式对我来说似乎更优雅/自然,但我可能遗漏了一些关键的观察结果,为什么第一种方式可能是更好的选择。 最佳答案 更多人使用@cars.each表示法,因为它可以推广到其他方法(如#inject、#each_with_index、#map等,以及非迭代器回调)。for/in主要只是#each的语法糖。两者工作方式的主要区别在于变量作用域:irb

随机推荐