百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

SOA架构在域控制器软件开发过程中的具体开发方法

bigegpt 2025-03-06 12:19 8 浏览


概述

汽车领域不断丰富的需求鼓励着技术创新和进步, 在未来的智能汽车中,汽车电子及软件的功能特性将大幅度增长,当前的分布式电子电气架构不再满足未来智能网联汽车的需求,将出现域控制器用于集成特定领域的功能特性(如车辆运动域、车身域等),形成域集中或跨域集中式电子电气架构。最终可能向基于中央计算机的车辆集中式电子电气架构,甚至车-云协同控制发展。



图1 电子电气架构的发展之路


面向服务的软件架构(Service-Oriented Architecture)正为未来的车辆软件服务提供良好的解决方案。不同于传统汽车电子电气架构中面向信号的架构,面向服务的软件架构(SOA)通过标准化的服务接口,松耦合的服务机制以及可组合扩展的服务特性,结合未来以高性能计算平台——域控制器——为核心的集中化电子电气架构,将成为未来汽车领域“软件驱动创新”的技术基础。

以太网驱动着未来汽车的主要创新。之所以这么说,有两个主要原因,一是以太网拥有极高的可用带宽、极广的功能范围,二是该网络技术具有极强的灵活性。与此同时,以太网使得将面向服务的架构引入到汽车电子电气系统中这个工作变得容易很多。


面向服务的架构(SOA)

为了更好地理解SOA在域控制器中的应用,我们先来了解一下到底什么是SOA。

1. 服务(Service): 在IT相关的领域里,我们可以简单理解为“实现某种功能的函数或方法”。

2. 服务接口(Service Interface):一个能够被其他模块调用的函数名称,或者一个封装的API,这些就是接口。

3. SOME/IP:Scalable service-Oriented Middleware over IP,即运行于IP之上的可伸缩的面向服务的中间件。

Middleware中间件是一种独立的系统软件或服务程序,分布式应用软件可借助Middleware在不同的技术之间共享资源。(分布式应用软件,在这里指的就是“服务”;不同的技术之间,在这里指的就是“不同的平台或操作系统,比如Linux系统或AUTOSAR系统等。)

IP是Internet Protocol,指的是TCP/IP的通信方式。

Scalable可伸缩,指的是该中间件能够适配于不同的平台及操作系统,其支撑的平台可大可小。

综合来看,SOME/IP就是指能够在不同平台上应用的,位于TCP/IP协议之上的,用于支持分布式应用软件,帮助分布式应用软件来传递信息的这么一套机制。说白了,就是把服务接口里的内容通过这种标准化的方式打包,然后交给TCP/IP这个快递员。

4. SOA

SOA=Service-Oriented Architecture,即面向服务的架构,是一种软件架构设计的模型和方法论。在汽车行业可以理解为,SOA是面向各种应用层程序(即“服务”,包含各种控制算法、显示功能等应用程序)进行设计,且不依赖于通信方式的一种架构设计理念。在架构设计工作中,重点关注汽车上的某些功能(“服务”)应该如何实现,该功能实现时与外界的各种信息交互(“服务接口”),该功能与外界交互时的基本流程(“服务序列”)。

5. SOA与SOME/IP的关系

SOA设计内容中的接口部分,需要通过SOME/IP进行打包传输。SOA是软件架构的一种设计理念;SOME/IP是一种将软件接口进行打包的打包方式,是一种中间件。

6. SOA与以太网的关系

汽车行业通常所指的“以太网”是泛化之后的概念,涵盖了基于以太网技术所实现的各种相关技术手段,包括TCP/IP协议、DoIP协议、SOME/IP协议等。

SOA与以太网之间的关系,是指采用SOA理念所设计的软件架构,在与外界交互时,其接口可以通过“以太网”的通信方式进行传输,而基于SOME/IP中间件的方式则是一个最典型的应用方式。

7. SOA与AUTOSAR

当前车辆软件的开发,大多数基本上都是基于AUTOSAR架构开发。AUTOSAR架构将运行在Microcontroller之上的ECU软件分为:Application、RTE、BSW三层。AUTOSAR架构下开发的软件有一个特点是,是一种面向信号的架构。就是,一个模块会不停的在总线上,周期性的发送信号给另一个控制器。但是SOA是面向服务的架构。


图2 面向信号的架构



图3 面向服务的架构

面向信号的架构:静态,仅支持接收/发送模式,支持简单的数据类型,可扩展性差;

面向服务的架构:动态,支持请求/响应模式,支持复杂的数据类型,可扩展性强。


SOA软件开发方法

对于汽车行业而言,SOA是一套新引入的技术,需要一套有效的流程、方法和工具。用以解决如下三个问题:1) 如何分析和设计服务架构,2) 如何建模和记录服务架构,3)如何部署和实现面向服务的软件。

1. “分析和设计服务架构”的过程是从客户需求到SOA软件架构产出的分析过程,相对于传统汽车软件开发采用的基于功能分解的面向过程分析方法,“用例驱动的开发方法”和“面向服务架构的设计方法”是SOA软件架构开发的两个主要特点。


2. 标准化的建模语言和统一化的文档结构,对提升架构的开发质量、实现架构内容的有效传递具有重要作用。SysML语言和Arc42模板可以作为SOA软件架构的标准语言和文档结构模板。


3. “部署和实现面向服务架构的软件”的过程是以SOA软件架构为设计输入,最终开发实现出软件产品的工作过程。主要包括 1)对服务接口行为的开发和实现,完成服务接口与服务主体逻辑的绑定;2) 针对目标运行环境,完成对服务接口参数,服务主体运行参数的配置;3)服务接口与应用程序策略逻辑的集成编译。


AUTOSAR Adaptive 组件封装了SOA软件底层的通讯细节(包括SOME/IP协议,IPC等),同时提供代理(Proxy)-骨架(Skeleton)模型,该模型以C++面向对象语言描述,方便上层应用开发人员调用标准服务接口(API)进行开发。Application Design Model是该模型另一种可配置的呈现,开发人员通过使用相应的配置工具对Application Design Model进行描述和配置,即可实现基于SOA服务架构的软件落地和部署。联合电子使用AUTOSAR Adaptive组件完成SOA服务架构软件的开发。


SOA和域控制器


根据SOA软件开发方法,可从两个切入点开展SOA汽车软件平台的开发。


1)自下至上,从车辆基础功能/信号出发,将已有的应用功能逻辑/信号(eg:车辆车速信息)抽象或封装成服务组件,这类组件被称为基础服务层(Basic/Platform Service Layer)组件,具有最高的可复用性和可组合性,这些组件将为上层(业务服务层Business Service Layer)的服务组件提供最基础的支持。 2)自上而下,从整车业务逻辑和用例出发,结合各领域的核心业务知识,设计业务服务层(Business Service Layer)的服务组件;同时,遵循服务组件的复用性和自主性等原则,向下设计规划基础服务层(Basic/Platform Service Layer)的服务组件。


域控制器可采用面向服务的软件架构(SOA),提供基于IT技术的、标准化的、开放式的软件创新和集成平台。这里提供一种方法。软件架构的底层符合POSIX(Portable Operating System Interface of UNIX,可移植操作系统接口)标准的操作系统(如QNX、INTEGRITY、Linux);中间层符合AUTOSAR Adaptive标准的运行环境,中间层封装了操作系统,为应用软件提供了标准的运行环境;最上层是应用软件,这里的应用软件与传统车载嵌入式软件是不同的,他们是以APP的形式存在的。



图4 域控制器SOA服务架构

作者:谷子

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...