车载软件架构 --- 软件定义汽车面向服务架构的应用迁移

embedded/2025/2/7 1:30:36/

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身边有这样灵性的人,一定要好好珍惜他们眼中有神有光,干净,给人感觉很舒服,有超强的感知能力有形的无形的感知力很强,能感知人的内心变化喜欢独处,好静,清静,享受孤独,不打扰别人不喜欢被别人打扰,在自己人世界里做着自己喜欢的事。

时间不知不觉中,快要来到新的一年。2024结束,2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。

在这里插入图片描述

软件定义汽车(SDV)面向服务架构(SOA)的应用迁移是一个复杂但至关重要的过程,它涉及将传统的汽车应用软件迁移到基于SOA的新架构中。以下是对这一过程的分析:

一、SOA架构的特点与优势

SOA是一种系统架构设计的方法论,通过将系统的能力抽象成多个服务,并运用多个服务之间的依赖关系来满足车辆系统的多种需求。在SOA框架中,服务具有自包含、模块化、松散耦合等特征,这使得创建本质上非一体式的复杂分布式应用成为可能。SOA架构为SDV提供了以下优势:

-> 1、高重用性:服务可以被多个应用共享,降低了开发成本。

-> 2、易于更新:服务可以独立更新,无需对整个系统进行重构。

-> 3、与硬件的松散耦合:服务独立于硬件平台,使得硬件的升级和更换更加容易。

二、应用迁移的挑战

将传统的汽车应用软件迁移到SOA架构中面临以下挑战:

-> 1、一体式设计:传统应用通常采用一体式设计,组件之间的耦合和互连紧密,难以分解成独立的服务。

-> 2、执行顺序:传统应用的组件通常有预定义的执行顺序,这使得应用难以转换为可动态发现和在运行时重新配置的独立服务。

-> 3、通信机制:传统应用通常依赖基于信号或基于时间的通信机制,而SOA中的通信通常基于服务接口和交换消息,因此需要重新设计通信协议。

三、应用迁移的步骤

为了克服上述挑战,将传统汽车应用软件迁移到SOA架构中需要遵循以下步骤:

-> 1、识别和分析服务:首先,需要识别组成SOA的服务、组件、功能、执行顺序和依存关系。这是迁移过程中最困难的部分,需要全面分析旧应用的架构

-> 2、定义服务和接口:在识别服务后,需要定义它们之间的接口。这涉及指定用于服务间通信的协议和数据格式,以及定义服务间交互的条款和条件的服务合约。

-> 3、定义服务合约:此步骤指定服务之间交互的条款和条件,确保服务可以独立地开发、测试和部署,而不需要与架构的其他部分紧密耦合。

-> 4、实现和部署服务:最后,需要实现服务并将其部署为独立应用。这包括创建必要的工件,如接口描述、服务实现代码等。

在这里插入图片描述

四、迁移过程中的注意事项

-> 1、服务分层管理:服务抽象的原则一般以划分层级的原则进行设计,将相同类型的服务打包到相同的服务层,避免将不同类型的服务放到同一逻辑层。

-> 2、中间件选择:SOA中间件的选择对于实现服务间的通信至关重要。常用的中间件包括SOME/IP、DDS、MQTT、HTTP等,它们各自具有不同的特点和适用场景。

-> 3、基于模型的设计:基于模型的设计方法可以提供统一的开发平台,有效地处理所有类型平台的整个开发过程,确保全面的一致性和效率。在迁移过程中,可以利用这种方法来对新服务进行建模,并将传统应用组合转换为基于SOA的服务。

软件定义汽车(Software-Defined Vehicle, SDV)的核心是通过软件实现功能的灵活定义与动态升级,而**面向服务架构(Service-Oriented Architecture, SOA)**是实现这一目标的关键技术路径。SOA通过将功能抽象为可复用的服务,实现软硬件解耦、功能模块化和跨域协同,从而支持快速迭代和个性化需求。以下是SOA在汽车中的应用迁移路径、技术挑战及实践案例:

1、SOA在软件定义汽车中的应用场景

功能动态部署

车辆功能(如自动驾驶算法、座舱娱乐服务)以服务形式部署,支持按需加载和远程升级(OTA)。

例如:特斯拉通过OTA更新Autopilot功能,无需硬件改动。

跨域协同

打破传统功能域(动力、车身、信息娱乐)的边界,实现服务共享。

例如:自动驾驶系统调用车身摄像头数据时,通过服务接口直接访问,无需依赖域控制器。

硬件资源虚拟化

通过SOA将传感器、计算单元等硬件抽象为服务,实现资源池化与动态分配。

例如:集中式计算平台统一管理多个摄像头和雷达的数据处理。

车云协同

车端服务与云端服务无缝衔接,支持高精度地图实时更新、AI模型训练等场景。

例如:蔚来NIO Pilot通过云端学习用户驾驶习惯,优化本地决策逻辑。

2、SOA迁移的关键步骤

架构重构

从信号到服务:将传统基于信号(Signal)的通信(如CAN总线)升级为基于服务(Service)的通信(如SOME/IP、DDS)。

服务定义:将功能拆解为原子化服务(如“车辆定位服务”“环境感知服务”),定义服务接口(API)和通信协议。

中间件引入

采用支持SOA的中间件(如AUTOSAR Adaptive、ROS 2、CyberRT),管理服务发现、通信和安全。

AUTOSAR Adaptive:提供标准化服务框架,支持动态服务配置和实时性保障。

通信网络升级

部署高速以太网(如千兆/万兆)作为骨干网,替代传统CAN/LIN总线,满足服务化通信的高带宽、低延迟需求。

硬件集中化

减少分布式ECU,转向中央计算平台(如NVIDIA Orin、高通骁龙Ride),集中处理服务请求。

开发模式转型

敏捷开发:采用DevOps流程,实现软件与硬件的解耦开发与持续集成。

虚拟化测试:通过数字孪生(Digital Twin)模拟车辆环境,验证服务交互逻辑。

3、技术挑战与解决方案

在这里插入图片描述

4、实践案例

特斯拉(Tesla)

HW3.0 + FSD:通过中央计算平台运行SOA架构,自动驾驶服务(感知、规划、控制)以模块化形式动态部署,支持持续OTA升级。

服务化通信:采用以太网和SOME/IP协议,实现Autopilot与信息娱乐系统的数据共享。

大众VW.OS

端到端SOA:基于AUTOSAR Adaptive和以太网骨干网,将全车功能抽象为300+服务,支持跨品牌车型复用。

敏捷开发:通过“软件工厂”模式,实现服务独立开发与集成。

华为CC架构

车云一体SOA:车端服务(如智能驾驶、智能座舱)与华为云服务(高精地图、AI训练)深度协同,支持服务动态编排。

硬件抽象层:通过HiCar SDK将硬件能力(如摄像头、雷达)封装为标准化服务接口。

5、未来趋势

服务原子化与组合化

功能进一步拆分为更细粒度的服务(如“单个传感器数据处理服务”),支持灵活组合创新功能。

AI驱动的服务自治

基于AI的服务调度优化(如资源分配、故障预测),提升系统效率和可靠性。

标准化与开源生态

SOA接口标准化(如COVESA Vehicle Signal Specification),推动跨车企服务兼容。

开源中间件(如Eclipse Velocitas)降低开发门槛。

边缘-云协同服务

利用5G和MEC(多接入边缘计算),实现车端-边缘节点-云端服务的实时协同(如协同感知)。

面向服务架构(SOA)是软件定义汽车的核心使能技术,其迁移不仅是技术升级,更是车企从“硬件主导”向“软件主导”的转型。通过服务化重构,汽车将成为一个可动态扩展的智能终端,未来功能迭代将像手机App更新一样便捷。然而,这一过程需要跨越技术、组织和生态的多重壁垒,车企需在架构设计、工具链建设和跨行业协作上持续投入,方能赢得智能化竞争的先机。

五、结论

软件定义汽车面向服务架构的应用迁移是一个复杂的过程,需要全面分析旧应用的架构,并仔细确定组件之间的服务边界和依存关系。通过遵循识别和分析服务、定义服务和接口、定义服务合约以及实现和部署服务等步骤,并注意服务分层管理、中间件选择和基于模型的设计等事项,可以成功地将传统汽车应用软件迁移到SOA架构中。这将为SDV带来更大的灵活性、可扩展性和自适应性,为未来的汽车开发提供坚实的基础。

在这里插入图片描述

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者


http://www.ppmy.cn/embedded/160169.html

相关文章

【自学笔记】计算机网络的重点知识点-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 计算机网络重点知识点一、计算机网络概述二、网络分类三、网络性能指标四、网络协议与体系结构五、数据交换方式六、物理层与数据链路层七、网络层与运输层八、应用…

算法与数据结构(合并有序链表)

思路: 本题可以用迭代或递归两种方法来解题: 本次的方法为递归,通过不断来移动链表中元素的位置实现递归 解题过程: L1: 1 2 4 L2: 1 3 4 首先判断两个链表都不为空,所以前两个条件不符合 接着判断list…

【阅读笔记】LED显示屏非均匀度校正

一、背景 发光二极管(LED)显示屏具有色彩鲜艳、图像清晰、亮度高、驱动电压低、功耗小、耐震动、价格低廉和使用寿命长等优势。LED显示图像的非均匀度是衡量LED显示屏显示质量的指标,非均匀度过高,会导致LED显示图像出现明暗不均…

UE5 蓝图学习计划 - Day 14:搭建基础游戏场景

在上一节中,我们 确定了游戏类型,并完成了 项目搭建、角色蓝图的基础设置(移动)。今天,我们将进一步完善 游戏场景,搭建 地形、墙壁、机关、触发器 等基础元素,并添加角色跳跃功能,为…

mac安装wireshark

mac启动wireshark时,提示没有权限抓包,报错内容如下: “The capture session could not be initiated on interface ‘en0’ (You don’t have permission to capture on that device). Please check to make sure you have sufficient perm…

VSCode中使用EmmyLua插件对Unity的tolua断点调试

一.VSCode中搜索安装EmmyLua插件 二.创建和编辑launch.json文件 初始的launch.json是这样的 手动编辑加上一段内容如下图所示: 三.启动调试模式,并选择附加的进程

基于 SpringBoot 的电影购票系统

基于SpringBoot的电影购票系统是一个集成了现代化Web开发技术的在线电影票务平台。以下是对该系统的详细介绍: 一、系统背景与意义 随着电影行业的快速发展和观众对观影体验的不断追求,电影票务管理面临着越来越多的挑战。传统的票务管理方式存在效率低…

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡:笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起:在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大! …