根据车型量产节奏,SOA架构大规模落地预计在2023-2025年,今年是一个分水岭。
作者 | 万博
SOA架构软件平台,仿佛一夜之间在汽车行业生根发芽,成为各大车企和供应商的香饽饽。
不久前,上汽零束,就在SOA开发者大会上,发布了银河智能汽车全栈解决方案3.0,其中SOA开发者平台就是一个重要的组成部分。
而岚图也在刚刚结束的科技日上,发布了ESSA+SOA智能电动仿生体,SOA电子电气架构成为重点。
在此之前,蔚来、埃安、威马等车企也早早在相关的技术上有过声音,各种案例不胜枚举。
虽然车企在不停地鼓吹这一概念,但是SOA架构到底是什么东西,仿佛一直是云里雾里。
本篇文章,我们就来掰开揉碎地讲讲,SOA架构是什么,为啥让整个行业趋之若鹜。
01
SOA架构软件平台,到底是咋回事?
要理解什么是SOA架构软件平台,首先要搞清楚,这里的SOA架构是什么?
其实SOA架构,英文全称为Service Oriented Architecture,用中分翻译过来就是“面向服务的架构”。这个概念早在本世纪初就已经出现,之前主要是在IT行业的软件开发中有所应用。
虽然发展了这么多年,但SOA的概念其实并没有一个权威而统一的定义,这里可以用知名IT公司IBM给出的定义进行参考理解:
“SOA是一种可通过服务接口复用软件组件的方法”。
具体来说,就是将应用程序的不同功能单元就行拆分,之后通过标准的接口和通信协议,将这些功能单元连接起来随时调用。
这里的接口采用标准化方式进行定义,因此,不管实现这种功能单元的硬件平台、操作系统和编程语言是什么,都不影响不同功能单元的调用和组合。而这里所说的功能单元,也被抽象化为一种服务,“面向服务的架构”也由此而来。
说到这儿,是不是感觉还是云里雾里?
为了便于理解,这里用一个具象的例子来解释一下:
比如,我们把一个应用程序比喻为餐厅的菜品服务,餐厅为客人提供菜品就是这个应用程序的功能。而在这个功能之下,还有一些若干的功能单元(服务),比如点菜、做菜、传菜等等。
这些功能单元的内部如何运作并不重要,就像服务员不关心厨师怎么炒菜一样。各功能单元之间,只需要接收和反馈信号,就可以完成为客人提供菜品(应用程序)的任务。比如厨师接到前台点菜的信号后,做好菜品向服务员反馈信号,让服务员进行传菜。
如此,软件的开发,就可以用一种搭积木的思路,通过标准的接口和通信,调用不同的服务进行整合即可。
所以,基于上文的一些陈述,我们发现SOA架构的一些特征:
首先,一个服务创建后,能够用于多个应用和业务流程。还是以上面餐厅的应用为例,如果说有一天餐厅要变一种经营模式,白天经营餐厅晚上经营酒吧,那餐厅只需要在原来的基础上调用一个酒品制作的服务,传菜、点菜、前台收银这些服务都可以用到酒吧经营中。
其次是松耦合,即不同的服务,以及服务请求者和提供者之间彼此松耦合,服务的请求者不需要知道服务提供者实现服务的技术细节,比如底层硬件平台,或者是程序语言等等。就像服务员服务好客人就行,厨师炒菜怎么炒,调酒师的鸡尾酒用了哪些基酒,都跟服务员没关系。
最后,需要一个提供标准接口和通讯协议的中间件来进行服务的请求和反馈,实现不同服务的调用。比如餐厅出菜口的铃铛就可以简单理解为中间件。
所以本质上来说,SOA架构并不是一个具象的技术,而是一种软件设计的架构思想。
讲到这里,问题又来了,一个原本是IT行业的概念,为啥突然被汽车行业接纳,并迅速成为行业热词?
关于这个问题,目前业内有一个普遍的共识是:车变了,软件开发的思路也跟着变了。
这里的车变了,具体来讲,主要有两点:
其一,是汽车电子电气架构(EE架构)的变化。传统的分布式EE架构,汽车功能实现主要依赖于车内数以百计的ECU(电子控制单元)进行。而这些ECU,往往来自不同的厂家,接口设计等等也都不一样。也因此,原来汽车软件的开发方式,有赖于车企和上游供应商进行来回反复的协作进行,工作量大,时间周期长。
而现在,这些ECU的逻辑运算、控制命令等任务开始被几个集中的域控制器(DCU)取代,大量的功能经由DCU的运算控制,直接命令执行机构实现功能。
当不同ECU的运算、控制等功能被集中到几个DCU上,那基于DCU进行SOA架构软件开发,就有了硬件基础。
其次,是汽车通讯方式的改变。传统的车载通讯主要依靠低宽带的CAN总线进行,每个ECU的通信渠道互不相同。而现在更高宽带、基于IP协议的车载以太网取代CAN总线,成为新的车载网络架构,打通了各大模块的通信。同时,高宽带,也意味着更快的传输速度和更低的延时,实现功能模块的快速调用。这是SOA架构在应用上车的通信基础。
归结一下就是,随着EE架构和通信网络架构的改变,软件定义汽车的时代来临,SOA作为一种更为便捷的软件开发思路,在硬件和通信基础具备的前提下,可以做到快速、低成本的迭代。
也因此,SOA架构应用上车已经成为业内的一个普遍共识,各大车企和软件供应商,都纷纷开始布局自己的SOA软件平台。
这里我们以上汽零束的银河开发者平台为例,说说汽车SOA软件平台的大体构成。
上汽零束的银河开发者平台
由图来看,汽车SOA软件平台,可以简单拆分为3大部分,包括系统软件、功能软件和应用程序。
其中系统软件主要由虚拟机、系统内核以及中间件构成。
从虚拟机到系统内核,大家可以简单理解为基于硬件层应用的各类操作系统,比如基于QNX系统内核的车载OS和Linux系统内核的车载OS。
而中间件,则是目前各大玩家研发的关键。中间件简单理解一下就是,提供系统软件和应用软件之间的连接、便于软件各部分之间沟通的软件。通过中间件,应用程序就可以在不同的服务之间调用和共享资源。
就目前来说,汽车行业的中间件,普遍采用的是AUTOSAR中间件方案。这个中间件方案,就是将SOA架构思路进行应用,对汽车各功能模块封装为功能软件(服务),比如数据服务、计算服务等等。
而这些服务,则通过ESB服务总线与上层的应用软件层进行连接,这些连接的节点,就是标准化的应用程序接口(API)。
至此,软件开发者就可以通过接口,实现服务请求和调用,进行应用程序的快速低成本开发。
在SOA开发平台的类型上,目前大多数SOA软件平台主要面向的是汽车生态圈玩家的开发者,比如车企内部的软件开发人员,或者是智能座舱生态的应用提供者。
当然,也有可以面向用户(C端消费者)的SOA服务,比如威马在W6上应用的软件开发平台,就提供面向车主的开发服务。