随着汽车电子行业的迅猛发展,高级别的智能驾驶技术对软件架构的灵活性和可复用性有了更高的要求。面向服务的体系架构(Service-Oriented Architecture, SOA)因具有基于标准、松耦合性、互操作性等优势,更加贴近智能网联化时代车载系统对软件架构的要求,从而被汽车行业广泛采用。
一、面向服务的设计原则与战略目标
01
面向服务的设计原则与约束
标准化服务契约原则
服务松耦合原则
服务抽象原则
服务可重用性原则
服务自治性原则
服务无状态原则
服务可发现原则
服务可组合性原则
02
面向服务的战略目标
提升本征互操作性
增强联合
增加供应商多元化选择
同步提升业务和技术对齐
提高投资回报率
提高组织的业务敏捷性
降低研发成本
图 1通过应用面向服务的原则实现面向服务技术的战略目标
二、SOA软件架构在自动驾驶领域的应用
因汽车智能网联化的需求,尤其是自动驾驶系统研发应用的需要,SOA受到汽车行业的广泛关注,车载SOA软件架构开始在汽车行业兴起。2010年,以宝马、大众为首的欧、美、日汽车产业巨头便开始车载SOA软件架构技术的研究工作,形成一定的理论基础和实践成果,并对传统汽车电子系统进行革命性创新。 车载SOA软件架构技术落地的支持工具和技术基础是中间件平台,Adaptive AutoSAR平台则是采用SOA方法论,进行自适应软件产品的开发,是一套包括服务设计、开发、部署在内的复杂工作流程。 换言之,Adaptive AutoSAR平台即为一个面向服务的车载软件架构。接下来,本节将对基于Adaptive AutoSAR平台的功能软件开发流程的核心步骤——“服务设计”进行介绍。
01
服务接口设计
面向服务架构的核心是服务,服务是通过定义的接口提供有用的功能,因此首先需要进行服务接口的设计。服务接口的设计包含以下几个方面:
服务ID——服务ID需全局唯一。
消息数据类型 —— 定义服务间交互的数据结构。
服务通信方式 ——Adaptive AutoSAR支持服务间使用 Event、Method、Field三种通信方式。
服务通信协议 —— 车载领域一般采用的通信协议有SOME/IP、DDS两种。
02
软件组件(SWC)设计
Adaptive AutoSAR应用软件开发主要从软件组件设计开始,软件组件是定义一个应用模型,然后为模型赋予可执行性,最后为进程关联可执行文件,部署在指定的设备上。软件组件是通过应用收发端口(Required Port/Provided Port)来定义,每个应用端口实现一个服务接口。软件组件的设计包括以下两个方面:
Application SW
定义收发端口(Port),对应引用服务接口所定义的服务。
Executable
定义可执行文件的基本属性,引用Application SW配置。
03
“机器”(Machine)设计
Adaptive AutoSAR平台引入了“机器”的概念,“机器”是一个可部署软件的实体。它可以是真实存在的处理器,也可以是一个虚拟机,Adaptive AutoSAR平台软件则运行在某一特定的“机器”上。Machine的设计包括以下几个方面:
通信结构——定义Machine上所有的网络端点、服务发现地址与端口号。
物理资源用量——CPU利用率、内存利用率等。
04
服务实例设计
已设计好服务接口,则可设计服务接口的实例,服务实例的设计包括以下几个方面:
服务提供者—— 具有提供服务功能的特定角色的服务实例,依据定义的服务接口提供服务,以不同的InstanceID区分实例。
服务消费者——具有使用服务功能的特定角色的服务实例,需确保从服务提供者获取定义的服务接口,以不同的InstanceID区分实例。
服务实例的映射——设计服务实例到Machine的映射以及服务实例到端口(Port)的映射。
05
进程(Process)设计
进程(Process)表示可执行程序在机器上加载运行的实例,Process的设计包括以下几个方面:
进程基本参数——定义对应的可执行程序,并指定运行的Machine。
启动管理——定义进程启动方式、启动优先级以及启动依赖。
目前,已有软件供应商提供了Adaptive AutoSAR中间件的开发工具(如Vector-MICROSAR,华为-MDC),可对服务设计项进行配置,并可输出arxml格式文件导入工具链生成代码。Arxml文件格式如下图(以服务接口为例):
图 2 服务接口配置文件示例
三、SOA软件架构的不足
虽然目前SOA发展得如火如荼,但其应用于汽车领域还存在许多待改进的地方,主要体现在性能、安全性以及服务的颗粒度标准三个方面。
01
性能低
性能是SOA架构最遭人们诟病的地方,SOA架构的性能低主要是由于SOA的分布性质以及服务协议的开销。因为受到网络的制约,分布式系统的性能都会稍低于独立式系统。
02
安全性不强
安全问题在任何行业一直都受到足够的重视,由于SOA架构的松耦合性,当服务端对客户端提供服务时,其很难保证数据不被窃取和篡改,因而SOA架构的安全性也难免让人们担忧。
03
服务的颗粒度标准难定
所谓的服务颗粒度问题其实就是服务的“大小”问题。目前,服务的“大小”都是根据我们的经验来决定,因此要真正实现标准化组件,还有很长的路要走。
四、SOA在汽车领域的前景与展望
软件架构技术为行业共性技术,属于研发共性技术,一直以来国内缺乏行业协同机制和共性平台的研究,从而使软件架构技术发展缓慢。如今,国内的汽车行业企业,如一汽、东风、上汽、华为、东软等主要OEM或供应商,也意识到SOA软件架构的重要性,也开始对车载SOA软件架构技术进行研究,努力寻找自主解决方案。 未来,国家智能网联汽车创新中心将联合更广泛的创新力量,针对共性基础技术攻关,着力构建汽车开发者生态,保障车载SOA软件架构技术规范的开发。
相关文章