0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何设计一个SOA架构呢

智能汽车电子与软件 来源:焉知智能汽车 作者:Aimme 2022-11-10 18:10 次阅读

面向服务的开发模式已经是为大家熟知的下一代智能汽车开发模式了,由于SOA(Service Oriented Architecture)架构的灵活性和可扩展性,而这个恰恰与「软件定义汽车」的思路不谋而合,因此可以说SOA的发展基础是伴随着软件定义汽车的模式而产生的。为了更好的支持车控软件的分布式部署与更新迭代,针对SOA的开发模式,需要在基于信号的服务通讯架构下进行开发,这种新架构下的开发模式本身也存在一定的难度。

SOA系统由一组服务组成,并且其中的总服务包可以依次使用其他的多个子服务,也可以根据需要使用一个或多个服务的应用程序,SOA通常以不同系统间隔表现出不同的功能特性。

为了支持复杂的应用程序,同时在处理分布式和计算资源分配方面提供最大的灵活性和可扩展性,业界均采用AP(Adaptive Platform)作为中间件进行SOA的设计开发,遵循面向服务的体系结构。

AP作为HPC(High Performance Controller)类型ECU的重要组成部分,可以统一管理下属OS以及周边资源,使得系统运行时的一切调度、状态和资源消耗都处在一个可控的范围内,以满足车载安全性、确定性的要求。

0b38cc2a-4f91-11ed-a3b6-dac502259ad0.png

此外,AP架构可以实现分布式计算,通过某种形式的消息传递进行有效通信。这种基于消息传递和基于通信的架构也可以实现快速和高带宽的有效通信(例如以太网)。

本文将以系统设计和开发者的身份重点讲解如何设计一个SOA架构,并重点说明整个过程中需要完成哪些具体的工作。

1.SOA开发流程设计

下一代自动驾驶系统将定义整车级SOA软件架构,通过分层部署的方式,将全局变量的服务统筹提取出来(例如车速、时间、车辆状态等),作为共用的软件模块提供服务,实现特定的基础功能软件接口统一,并可灵活部署。

0b620928-4f91-11ed-a3b6-dac502259ad0.png

大体上,AP(Adaptive Platform)的开发是一个“从上至下”的流程,其中跟SOA设计相关的有以下几个重要步骤:

Step1:定义服务内容

此步骤实际上就是搭建了一个系统功能架构,从整车层面即是按照功能需求定义并划分服务。对于SOA中的服务表示了一种独立的功能单元,一个服务可以包含其他子服务单元,使用标准接口进行通讯,将内部信息封装成一个黑盒子,实现子服务的重用性。

上层服务可以通过该标准接口调用下层服务封装的子服务内容。同时,整体的服务内容可以被操控单元远程访问和独立更改或更新。同时,对于SOA来说,需要通过服务编排来定义清楚服务之间的相互关系。

简单地说服务对于智能驾驶汽车而言就是定义产品,对其中产品的能力进行描述,这里的产品能力我们称之为PC(Product Capability)。

实现这种产品能力需要从下至上定义硬件抽象服务、平台核心服务、域核心服务、应用程序服务。而每一个服务内容对应着一个或多个实现的软件模块,这里我们称之为SWC(Software Capability)

0b924e80-4f91-11ed-a3b6-dac502259ad0.png

产品能力(PC) 描述了系统所需的一些高级功能。区别于系统设计,PC是用来分配职责的,所以很清楚哪个SWC Module软件模块(如摄像头识别模块、雷达识别模块、中央域控制器模块)应该实现什么。

它们在功能设计时由功能负责人识别和请求。一些系统相关的PC也可以由系统架构师或模块负责人直接识别,在模块架构工作中映射PC时,模块所有者还可以确定对更多 PC 的需求。

在确定并决定添加 PC 后,对应的软件模块拥有该 PC,模块所有者负责将其实施到正确的版本,并在平台的整个生命周期内维护/发展 PC。

0bb0ddaa-4f91-11ed-a3b6-dac502259ad0.png  

Step2:定义服务接口

服务接口是一种通信内容定义,其目的在于将服务从功能架构过渡到软件技术架构,且软件模块之间的关系需要被清晰的定义出来,过程中将服务内容封装成相应的接口被实际调用。这种接口定义是独立于通信协议的抽象实体,这种接口可以建立任何两个服务间的通信能力,而使用合适的工具链可以由此生成基于特定协议的接口。

服务接口可分为方法(Method)、属性(Property)、事件(Event)三种类型。以智能驾驶的一个子功能执行接口服务为例,假设需要获取摄像头传感器探测的环境数据,而需要进行定义的服务接口中方法是要对传感器的参数进行后融合,那么就需要其底层服务提供摄像头处理的基础函数(如ISP、深度学习函数、BEV函数等)。

而服务接口的属性则是通过一定的方法操作(如get/set)来获取该服务函数,这种服务属性可以对上层调用的服务部分可见,底层服务有变动上层的调用方式也会随之变动,这种变动所带来的更新会由服务底层决定何时发送给上层调用它的服务单元。 服务接口定义完整后,开发人员可以根据该接口定义对其中的函数进行定义开发了。

Step3:配置服务映射关系

此过程会建立软硬件之间的映射关系,实现从抽象的服务定义到软件层面的推导,从而方便实现软件驱动或调用硬件实现单元,这种结果是实现服务与中间件或底层硬件ECU之间的映射关系。

从整个SOA的架构模型中我们知道服务需要从通用服务平台开始进行底层驱动,然后对上层传感器执行器的控制管理进行驱动。

由于AP直接支持服务接口,可以直接面向上层应用层,CP仍然是对常用的底层应用服务的驱动映射,因此,两层驱动分别对应着经典的CP Autosar中间件调用和AP Autosar模式。

Step4:通讯协议设计

智能网联汽车的SOA架构设计需要强大的环境感知、信息处理、实施决策、控制能力可以把智能交通、地图、定位、通讯、云、大数据等进行系统集成,故车端与云端、车辆与车辆之间、车辆内部的各个ECU之间通信的速率和数据量都比传统汽车高出几个数量级,这些需要由多种复杂的硬件、软件和高速通信总线共同实现,并在很大程度上决定智能汽车的功能实现和扩展的可靠性。

车载以太网能够很好的解决大数据量的信息交互,整个通信协议的定义包括虚拟以太网VLAN,以太网交换机Switch,套接字Socket,基于IP的可扩展面向服务的中间件SOME/IP,SD等。而基于AVB的下一代协议TSN(时间敏感网络)可以提供非常优秀的实时性。

以太网通讯设计过程包含对服务实例进行通讯协议相关的信息配置。由于SOA架构中包含多个应用实体之间的多通路通信过程,且这些通信通常是网状通信,因此需要在各个实体节点之间建立中间路由、转化等。

区别于传统总线(Can/Lin),在软件架构设计过程中,开发人员需要设计具体的服务类型、服务ID、服务数据类型、服务角色等。

2.SOA架构设计流程

SOA的逻辑架构内容需要根据分层架构策略分配给一层的多个模块。这些层也被分成几个功能区,使用Enterprise Architect进行架构模型管理是SOA模块架构设计的基础,如下图表示了典型的SOA系统的架构设计模型。

0bed73b4-4f91-11ed-a3b6-dac502259ad0.png

区别于传统Can总线面向信号的设计思路,在以太网设计过程中,开发人员需要在逻辑层面将功能抽象为服务的方式进行架构设计。

如上图,从下至上包含了SOA基础服务管理、硬件I/O控制管理、系统功能控制管理、单元域功能控制管理、整车功能控制管理、云端控制管理、人机交互管理。

SOA基础服务管理:该模块主要是对整车软件模块的基础功能(例如诊断管理、驱动管理、存储、日志记录、OTA等)进行分解并统一管理。

SOA硬件I/O控制管理:该模块主要涉及对SOA中的传感器&执行器进行的相应管理,包括定义传感器输入源硬件(Camera、Radar、Lidar、Uss、GPS等),定义执行器输入输出源硬件(方向盘、制动踏板、转向电机、车门车窗、电源电池、蓝牙wifi等)。

传感器执行器层中的所有模块都必须包含其各自设备的功能设备驱动程序 (FDD)。设备管理模块将包含所有 ECU 使用的通用 ECU 设备驱动程序 (EDD)。

SOA系统功能控制管理:以SOA服务所需要实现的系统内部作为划分区间,将对特定功能进行控制的特殊功能服务,例如比如ADAS系统将传感器输入的信息进行统一初级信息处理(如ISP、加串解串、原始点云处理)。

单元域功能控制管理:对系统内部功能进行协调的功能服务,如ADAS系统中利用深度学习进行环境信息检测、传感器信息融合,同时在动力学模型中进行车辆运动控制、车身姿态控制。

整车功能控制管理:对单个整车内的系统进行调度的功能服务,包括协调运动控制单元、动力系统、车辆安全相关的能力,特别是车身安全上需要充分考虑智能网联车辆的功能安全设置相应的软硬件安全门槛。

云端服务管理:云端管理可以是以总监控台管理的该车辆及其周边车辆、基础设施相关的功能服务,例如网络安全管理、云端计算服务、软件升级等协同控制。

基于以太网的SOA架构设计,需要开发人员明确4个问题: 服务提供者(Provider)+ 服务·类型(Service)+ 客户端(Consumer) + 服务接口(Service Interface)。

一般的,对于SOA系统架构设计过程中可使用面向对象的设计工具进行设计。

如前所述对于服务来说我们需要首先进行产品能力PC定义,对应于该服务模块需要设计相应的服务软件模块组建SWC。

其中服务组件包和软件组件包的设计流程分别如下:

0c18fd4a-4f91-11ed-a3b6-dac502259ad0.png

如上过程的设计和配置完成之后可采用一些现有的SOA开发工具PREEvision生成Arxml文件。该文件区别于CAN/CANFD/LIN总线的DBC和LDF等数据文件,Arxml包含了SOA架构设计所有相关的服务、属性以及服务的软硬件实现方式,成为了以太网总线开发的通用标准数据接口。

SOA架构主要优势是可以很大程度上实现软硬解耦,通过软件升级OTA可以更加方便灵活的实现服务实体有效部署在任意的域控制器上,而且可以在售出车辆上调整部署策略。

同时,SOA的衍生功能是可以在汽车功能安全方面实现有效的冗余部署。例如,对于安全性要求比较高的智能驾驶功能可以实现双重制动冗余配置,同时在车端布置双重中央域控制服务,确保当一个域控制器失效时,那么另外一个域控制器上的备用服务实例立刻启动,重新与服务使用者建立连接,以保证功能的正常运转,借此实现冗余机制。

对于SOA来说,是需要在AP Autosar流程下设计从服务定义到服务实例化的整个过程,为了实现在算法和软硬件调用中的有效通信,就需要设计有效的通信协议,对于SOA来说基础的通信协议除了Can以外,最基本的就是以太网的通讯设计。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5374

    浏览量

    171065
  • ecu
    ecu
    +关注

    关注

    14

    文章

    880

    浏览量

    54400
  • SOA
    SOA
    +关注

    关注

    1

    文章

    283

    浏览量

    27420
  • HPC
    HPC
    +关注

    关注

    0

    文章

    311

    浏览量

    23678

原文标题:一文详解基于SOA架构的开发策略

文章出处:【微信号:智能汽车电子与软件,微信公众号:智能汽车电子与软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    9月26日云技术研讨会 | SOA整车EE架构开发流程及工具实施方案

    本次研讨会经纬恒润将结合业务团队多年来在SOA架构开发和工具实施领域的项目实践经验,分享探讨SOA趋势下先进的整车EE架构开发模式,聚焦在SOA
    的头像 发表于 09-19 17:09 248次阅读
    9月26日云技术研讨会 | <b class='flag-5'>SOA</b>整车EE<b class='flag-5'>架构</b>开发流程及工具实施方案

    SOA架构开发小助手PAVELINK.SOA-Converter V1.4.2新版本发布

    PAVELINK.SOA-Converter转换工具,用于衔接基于SOA的控制器设计、开发及测试过程中所常见的各类软件工具。PAVELINK.SOA-Converter能提供IDL及服务矩阵等文件
    的头像 发表于 08-07 15:10 491次阅读
    <b class='flag-5'>SOA</b><b class='flag-5'>架构</b>开发小助手PAVELINK.<b class='flag-5'>SOA</b>-Converter V1.4.2新版本发布

    MOS管的安全工作区SOA详解限制线介绍

    是SafeOperatingArea。也有些厂家叫ASO区,其英文单词是AreaofSafeOpration,总之,两者是意思,下面我们统称为
    的头像 发表于 07-09 08:05 668次阅读
    MOS管的安全工作区<b class='flag-5'>SOA</b>详解限制线介绍

    架构下服务建模,关键在这6步!

    经纬恒润基于SystemWeaver平台,按照SOA建模理念为客户提供了新代基于SOA的企业级电子电气系统协同设计解决方案,可以有效支持服务和信号的混合架构建模。
    的头像 发表于 07-08 10:36 1300次阅读
    新<b class='flag-5'>架构</b>下服务建模,关键在这6步!

    PAVELINK.SOA-Converter-应用场景介绍#SOA #IDL转化 #汽车架构开发

    SOA
    北汇信息POLELINK
    发布于 :2024年04月29日 18:56:30

    汽车电子电气架构SOA如何实现?

    在车载环境中,SOME/IP基本解决了SOC,但SORS?SOS?仅有SOC的SOA是没有灵魂的,是不完整,也不可能实现SOA的目标,故而,若认为
    发表于 04-11 10:01 320次阅读
    汽车电子电气<b class='flag-5'>架构</b><b class='flag-5'>SOA</b>如何实现?

    汽车SOA功能模块与开发流程深度剖析

    SOA是从遵循服务导向原则的可重用服务中构建复杂软件系统的方法。SOA也是1组件模型,它将应用程序的不同功能单元(称为服务),通过这些服务之间定义良好的接口和契约联系起来。
    发表于 04-07 10:13 809次阅读

    宽光谱SOA光芯片设计(

    -本文翻译自由Geoff H. Darling于2003年撰写的文章。尽管文章较早,但可以了解SOA底层原理,并可看到早期SOA研究的思路和过程,于今仍有很高借鉴价值。 摘要 本文介绍
    的头像 发表于 03-26 10:23 422次阅读

    什么是MOS管的SOA区?SOA曲线的几条限制线的意思?

    SOA区指的是MOSFET的安全工作区,其英文单词是Safe Operating Area。也有些厂家叫ASO区,其英文单词是Area of Safe Opration,总之,两者是
    的头像 发表于 03-11 09:16 3425次阅读
    什么是MOS管的<b class='flag-5'>SOA</b>区?<b class='flag-5'>SOA</b>曲线的几条限制线的意思?

    soa半导体光放大器原理 soa半导体光放大器可以当光开关吗

    中的应用。 SOA半导体光放大器的工作原理 1.1 SOA半导体光放大器的结构和组成 SOA半导体光放大器的结构包括
    的头像 发表于 02-18 14:41 1373次阅读

    如何理解IGBT的四种SOA

    如何理解IGBT的四种SOA? IGBT的四种SOA表示了IGBT器件在不同工作状态下的安全操作区域。这四种SOA是:Continuous SOA、Limited
    的头像 发表于 02-18 11:04 966次阅读

    soa光放大器原理 soa光放大器增益测试

    光通信技术作为目前最主流的信息传输方式之,在信息传输效率、速度和距离上具备着巨大的优势。光放大器作为光通信系统中的关键组件之,扮演着信号放大的重要角色。本文将详细介绍半导体光放大器(SOA
    的头像 发表于 01-25 09:48 3464次阅读

    SOA半导体光放大器的产品形态

    半导体激光器设计和封装能力的厂家使用。  2、芯片贴装在瓷质基板上的颗粒(COC/COS )。     把SOA裸芯片贴装到衬底块上,并在衬底上集成了附属测温的热敏电阻,和给SOA
    的头像 发表于 01-15 10:19 360次阅读
    <b class='flag-5'>SOA</b>半导体光放大器的产品形态

    SOA半导体光放大器的产品形态

    的厂家使用。 2、芯片贴装在瓷质基板上的颗粒(COC/COS )。 把SOA裸芯片贴装到衬底块上,并在衬底上集成了附属测温的热敏电阻,和给SOA加电工作用的焊盘。处于无引脚待封装的
    的头像 发表于 01-04 09:16 405次阅读
    <b class='flag-5'>SOA</b>半导体光放大器的产品形态

    将传统汽车应用迁移到面向软件定义汽车的SOA

    软件定义汽车 (SDV) 的特点是 AI、自主、连接和电气化。最近,汽车行业已开始采用“基于服务”的方法来设计 SDV 的现代应用。这种称为面向服务的架构 (SOA) 的方法为开发软件应用提供了
    的头像 发表于 12-07 14:48 463次阅读
    将传统汽车应用迁移到面向软件定义汽车的<b class='flag-5'>SOA</b>