SOME/IP概述2【SOME/IP的主要中间件功能+SOME/IP报文PDU的封装】

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: SOME/IP概述2【SOME/IP的主要中间件功能+SOME/IP报文PDU的封装】

1 什么是SOME/IP?

  • SOME/IP,全称叫做Scalable Service-Oriented Middleware over IP,由 BMW 集团于 2011 年开发。这个名字非常清楚地表明它是一种中间件解决方案,可以在控制单元之间实现面向服务的通信。面向服务的体系结构使不同网络上的软件组件更容易相互通信;为了使不同网络上的这些应用程序能够相互理解,必须有某种中间件,其主要作用是解析消息格式并使消息的预期接收者可以理解。SOME/IP 专为此目的而设计。更具体地说,SOME/IP 提供了很多中间件功能,如序列化和远程过程调用 (RPC),以使 ECU 软件能够相互通信。
  • SOME/IP 可以在操作系统(Genivi、 AUTOSAR、Linux 和 OSEK)和非操作系统嵌入式系统上实现。它也成为自适应 AUTOSAR 实施的首选中间件。
  • SOME/IP 支持信息娱乐域以及车辆中其他域的功能, 可以替换MOST和CAN 总线协议。
  • Supported by ARXML and FIBEX databases as well as Franca IDL

2 SOME/IP 的主要中间件功能

  • (1)序列化:这是数据在数据单元中表示的方式,可以是 UDP 或 TCP 消息。当数据通过网络传输时,读取数据的ECU可能有不同的架构、操作系统等,只有有一致的数据传输机制才能保证互操作性。SOME/IP 允许序列化,来实现 transforming into and from on-wire representation。
  • (2)远程过程调用 (RPC):这是一种客户端 ECU 远程调用服务端ECU提供的服务的方法。它是客户端 ECU 在需要来自服务器的一些数据时采用的一种数据交换方法。RPC 可以有返回值也可以没有返回值,即客户端可以请求数据作为响应,或者简单地调用一个函数来在服务器端执行某些任务。
  • (3)服务发现:服务发现 (SD) 协议是 SOME/IP 的核心功能。在面向服务的架构中,服务(即函数功能实体【方法、事件或字段】)必须是可发现的。SOME/IP SD 协议管理提供动态查找功能并能配置其访问权限【是提供服务还是阻止它可用】。
  • (4)发布/订阅:客户端可以订阅服务器的内容,从而可以动态地接收来自服务器的更新数据。SOME/IP 的发布/订阅功能动态配置客户需要哪些数据(事件/字段)并共享这些数据。Pub/Sub 由 SOME/IP SD 管理。
  • (5)UDP 消息分段:允许通过 UDP 传输较大长度的SOME/IP 消息。

3 SOME/IP 报文PDU在各层中封装

SOME/IP 本质上是位于传输层之上的应用层通信协议,它是位于TCP/UDP报文的Payload部分。我们可以参考【1.1各层的PDU之间的‘信息接力’】来理解SOME/IP 报文是如何一步步在以太网4层网络架构中封装的,本质上就是每一层都要有特定的报文头。发送就是加报文头的过程,接收就是去除报文头的过程。发送的具体过程为:

ceebdad3ef92d0908e6c38578661a87e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

  • 应用层填充【SOME/IP 发送的消息,即SOME/IP Data Payload】
  • 【应用层SOME/IP Data Payload】+ SOME/IP中间件添加的SOME/IP 报文头
  • 【SOME/IP 报文】+ 传输层添加的TCP或者UDP报文头
  • 【传输层报文】+ 网络层的添加IP报文头
  • 【网络层报文】+ 链路层添的加MAC报文头
相关文章
|
2月前
|
缓存 监控 安全
中间件数据交换的功能介绍
中间件数据交换在数据传输、采集、应用管理、调度缓存、监控报警、映射规则及异步解耦等方面发挥关键作用。它确保数据安全、高效、可靠交换,支持系统稳定和灵活适应业务需求。
26 2
|
2月前
|
安全 中间件 数据安全/隐私保护
中间件的定义,包括它的功能、应用场景以及优势。
中间件是位于操作系统和应用软件间的系统软件,提供数据交换、应用集成、流程管理和安全保障等服务。常用于分布式系统、微服务架构和企业级应用,实现高效、低耦合的系统运行。其优势在于降低开发成本、提升系统性能、简化扩展和维护。中间件推动了软件技术的发展和创新。
243 1
|
13天前
|
消息中间件 存储 监控
中间件消息发布者功能特性
【6月更文挑战第11天】
23 5
|
27天前
|
中间件 安全 缓存
中间件功能和需求匹配
【6月更文挑战第1天】
21 5
|
23天前
|
缓存 监控 中间件
探究Django中间件的神奇:功能、应用场景和核心方法
在Django中,中间件是一个强大的概念,它们提供了一种灵活的方式来处理请求和响应。本文将探讨Django中间件的基本概念、常见应用场景以及中间件类中的父类和核心方法。
|
2月前
|
消息中间件 XML 监控
选择中间件功能和需求
【5月更文挑战第20天】
31 2
|
2月前
|
负载均衡 监控 安全
中间件功能之数据交换
中间件在数据交换中起关键作用,负责数据的可靠、高效和安全传输。其主要功能包括:数据格式转换、数据路由、数据同步、数据过滤与验证、负载均衡、安全控制及日志记录与监控。通过这些功能,中间件确保了不同系统间数据的无缝对接、一致性、质量和安全性,提升了数据交换的效率。
38 4
|
2月前
|
中间件 API 文件存储
Django的扩展包与中间件:增强应用功能的利器
【4月更文挑战第15天】本文介绍了Django的扩展包和中间件,两者用于增强Django应用功能。扩展包是可重用的应用,提供额外功能,如用户认证和API开发。选择合适的扩展包,通过安装、配置,可轻松集成到项目中。中间件则在请求和响应之间执行操作,如身份验证和权限控制。创建中间件类并添加到settings.py中,实现特定功能。扩展包和中间件常结合使用,以实现更复杂的应用需求,提高开发效率和应用性能。
|
SQL 开发框架 前端开发
java程序设计与j2ee中间件技术/软件开发技术(III)-实验六-采用MVC模式实现用户注册和管理员查询功能
java程序设计与j2ee中间件技术/软件开发技术(III)-实验六-采用MVC模式实现用户注册和管理员查询功能
110 1
java程序设计与j2ee中间件技术/软件开发技术(III)-实验六-采用MVC模式实现用户注册和管理员查询功能
|
开发框架 前端开发 JavaScript
java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示(一)
java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示
326 1
java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示(一)