您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
汽车电子领域都在聊的SOA是什么?
 
作者: IO酱
   次浏览      
2021-10-29
 
编辑推荐:
本文主要讲解了SOA是什么、SOA的发展历程、SOA的特点、SOA的关键技术、SOA如何在汽车上的使用等?
本文来自于软件设计之美,由火龙果软件Linda编辑、推荐。

SOA最近在汽车电子领域备受关注,正好最近也需要写一篇SOA相关的论文,学习到了不少SOA相关的概念及应用知识,所以打算把我了解到的相关知识及想法记录下来。

SOA是什么

SOA的全称是面向服务的架构「Service-Oriented Architecture, SOA」,类比面向对象的架构,SOA就是一种以服务为核心的架构。有许多不同的组织从不同的视角对SOA进行了描述,但迄今为止还没有一公认的定义。

我们先来看看W3C对它的定义 “SOA是一种应用程序架构,在这种架构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。“

SOA模型(图片来源:软件体系结构原理、方法与实践 )

可以看到关键字「服务」,「明确定义的接口」,接下来我们一个个来理解。

什么是「服务」呢?服务是一种比构件粒度更大的信息集合,实际是包含实现了多个关联业务需求的逻辑组合,并且允许每个服务使用特定的平台,架构或技术方案。

单个服务内部结构(图片来源:软件体系结构原理、方法与实践 )

关于「明确定义的接口」,大家可能想这还不简单吗,不就是接口定义要从使用者角度编写并且标准化吗?其实不仅如此,面向服务的接口不同于构件的接口,他的实现与特定语言无关,采用WSDL技术进行定义,可以方便的实现上述异构服务之间进行服务调用。

SOA的发展历程

SOA的发展大致分为3个阶段分为混沌,壮大,演化。

SOA的起源可以追溯到90年代末,一家叫做Gartner的信息技术研究和分析的公司提出了SOA的设想。

进入千禧年后,随着以Web为代表的互联网经济的兴起,各种电子商务业务得到迅速的发展,各大企业面临消减成本和随需应变这2个问题,SOA恰恰能满足集成各种异构系统及高度的灵活性可用性,因此重新受到人们的关注。下图是2008年W3C发布的Web技术发展展望,可以看到当时同时伴随着XML, Web2.0等技术的发展,SOA崛起的技术基础已经备齐,之后便进入飞速的发展壮大时期,涌现出来诸如IBM SOA参考架构(见下图),Oracle SOA等一大批SOA企业级解决方案。

W3C 2008年发布的Web技术发展展望(来源:W3C官网)

IBM SOA参考架构

后来人们发现传统的基于ESB的SOA的诸多问题,便兴起了SOA的变种微服务架构,微服务架构基本的思想是更细粒度的服务化,服务间分布式调用。

从SOA技术的发展我们可以看到技术与商业有不可密分的关系,一方面新技术推动商业目标的实现,一方面商业又给技术的发展注入源源不断的动力,所以一个新技术的产生,如何应用实践对它的未来发展至关重要。

SOA的特点

明确定义的接口, 服务的接口定义明确,并且一旦公开不能随意更改。

自包含和模块化, 每个服务在功能实现上完全独立,自我管理,版本控制,独立部署。

松散耦合 ,服务与服务间通过定义良好的接口或协议交互。

可扩展性强, 服务总线的采用, 可以快速集成其他异构系统。

粗粒度, 服务数量不应该太多,服务交互消息量大,但服务间交互频度低。

可用性强, 可采用分布式多个服务器部署,大大提升系统可用性。

可复用性强, 可以进行以服务为单位的软件复用。

SOA的关键技术

XML ,SOA发展的根基,一种文本标记语言,具有平台无关性等特征,为服务的发现,定义,发布等功能提供条件。

Web Service ,是一种跨平台的、低耦合的、基于可编程的web应用程序,可使用XML来描述、发现、配置这些应用程序,用于开发分布式交互应用程序。Web Service技术的三剑客是WDSL(服务接口描述与服务定义),UDDI(服务发现,注册),SOAP(服务通讯协议,有被REST取代的趋势)。

ESB ,企业服务总线,是传统中间件技术与XML、WebService等技术结合的产物,主要支持异构系统的集成。ESB基于内容路由和过滤,具备复杂数据的传输能力,并可提供一系列标准的接口。用人话说就是服务间进行数据传输转发的通道。

SOA如何在汽车上的应用?

随着目前SDV(软件定义汽车)浪潮的兴起,越来越多的汽车同行开始考虑,如何用软件创造价值?如何更好的管理车上的上百个ECU(相当于各种异构的系统)?如何更好的应对需求的增长?如何提升车载OS的可用性等一系列问题,这些坑似乎在以Web为代表的互联网经济的兴起过程中也遇到过类似的,只是平台不一样罢了。

这时我们回过头来看看SOA的特点可扩展性强,高可用,松散耦合,标准化接口,支持异构系统的集成,虽然在Web领域正在逐渐被微服务取代,但是他的优点确实可以借鉴到汽车电子领域啊。

你可能会问,在Web上都已经用了几十年了怎么才到汽车电子领域呢?原因我认为有几点1.技术不满足,虽然从宏观角度看CAN网络 通讯也解耦了各个ECU,但奈何速率带宽不足,且无法较好的满足可扩展性要求。2.各个ECU独自为战,没有人从汽车电子系统架构的角度思考整车系统的架构设计。但最近随着车载以太网技术的发展,EEA,SDV的兴起,使得SOA开始在汽车电子领域的焕发青春。

那么该如何借鉴SOA以及借鉴时需要关注哪些点呢?我认为总体的原则是借鉴Web SOA技术的开发思想,如开放性,服务化,敏捷等。下面我将从以下几个方面阐述SOA在汽车电子领域应用的关注点。

服务的拆分

服务的拆分在Web上是个重要的研究课题,一般可以从业务角度或领域概念角度进行。在车载领域有着上百个ECU,每个ECU提供各种不同的服务,采用的技术平台语言均不一样,不能简单粗暴的直接以目前各个ECU作为服务的拆分结果,比如多一个ECU就要多一份硬件成本,及之后的开发测试,维护成本。我们应该尝试从系统的角度出发,梳理整个汽车电子领域的业务模型,从垂直领域出发看看那些业务是关联的组合的一起,之后在从水平领域出发哪些是基础服务,哪些是可扩展服务,允许一个ECU可以提供多个服务(AVNT主机既提供仪表服务,又提供娱乐服务等),最后和实际的ECU分布现状进行匹配融合,以找到最佳的服务拆分结果,这样才能真正的发挥SOA的作用。

服务间通讯

在Web上一般采用ESB实现,有各种开源的框架(如IBM Websphere,Mule ESB )来支撑,完成服务的注册,发布,调用,有的甚至还具备负载均衡,网关路由机制。使企业可以专注于自身业务服务的开发,并快速方便的完成服务的开发上线。在汽车领域目前随着以太网通讯技术的发展,相信未来会有更多的服务商开发基于车载以太网的ESB中间件来满足这样一个需求,我认为在这个环节车厂需要更加关注服务的接口定义,良好的接口定义更加利于平台的平滑式演进。

服务的治理

随着服务的独立运行及互相调用,对整车系统的稳定性形成一个较大的挑战,例如 基础服务调用压力过大导致调用者等待,一个服务的失效导致他调用者失效,一连串的服务调用链失效可能引发整车系统的雪崩。因此一旦采用了SOA,一定要系统性的对整车系统进行可用性研究。可以分别从单个系统及全局2个维度进行系统的 可靠性设计工作。采用 SFMEA设计手段发现问题,针对单个系统可以采用主动检测异常,错误恢复机制等策略;全局角度可以给重点模块加强冗余设计,分配好服务的调用关系,过滤无关消息的转发等技术手段。

结语

纵观整个系统架构发展轨迹,从单体架构,到SOA架构,再到目前的微服务架构,架构设计的方向一步步往服务化的发展方向靠拢,但一个根本目标没有改变,构建一个开放的,高性能,高可用性架构。汽车软件领域应该紧紧跟随尤其Web方面一些新的技术架构,因为我们的目标都是一样的,可能技术无法通用但思想一定是可以借鉴的,就比如SOA在汽车领域的应用。

 

 
   
次浏览       
相关文章

中央计算的软件定义汽车架构设计
汽车电子控制系统中的软件开发过程
一文读懂汽车芯片-有线通信芯片
OTA在汽车上有哪些难点痛点?
相关文档

汽车设计-汽车的整体结构及动力系统
自动驾驶汽车软件计算框架
SysML在汽车领域的应用实践
电子电气架构-大陆汽车系统架构平台
相关课程

AutoSAR原理与实践
功能安全管理体系(基于ISO26262)
MBSE(基于模型的系统工程)
基于SOA的汽车电子架构设计与开发

最新活动计划
SysML和EA系统设计与建模 7-26[特惠]
Python、数据分析与机器学习 8-23[特惠]
软件架构设计方法、案例与实践 8-23[特惠]
嵌入式软件架构设计 8-22[线上]
Linux内核编程及设备驱动 7-25[北京]
 
 
最新文章
在EA中内嵌文档- Artifact
EA中模型视图
EA中的实体关系图
使用EA进行风险建模
EA中的项目词汇表
EA的模型导出或导入csv文件
自定义表格(Custom Table)在EA中的使用
Gap Analysis Matrix(差距分析矩阵)
更多...   
MBSE工具
MBSE平台
建模工具 EA
模型库-Model Center
需求管理-ReqManager
自动建模-Modeler
多级仿真-Sys Simulator
代码工程-Code Engineer
文档生成器-DocGenerator
更多...   
成功案例
广汽研究院 SysML+EA+软件分析设计
高合汽车研发部门 建模工具EA、WebEA、学习视频
国汽智联 建模工具EA、模型库、WebEA和iSpace
亿咖通 MBSE工程体系与工具链咨询
中航无人机 MBSE工具链
吉利汽车 购买EA工具
华科汽车零部件 购买EA工具
东风岚图汽车 购买EA工具 以及EA定制开发
更多...