短短两年时间,汽车行业的SOA架构已经从星星之火发展到燎原之势,各大主机厂宣传新架构时必然会把SOA架构作为金字招牌大书特书。SOA架构为什么会一夜之间从概念到全行业普及呢,究其原因,还是要从汽车行业普遍面临的痛点,以及SOA架构本身的优势来探究一二。
当前主机厂们的痛点
1,短:随着新车型上市的窗口红利期越来越短,为了抢占市场,主机厂们想尽办法加速把新车推向市场,车型开发周期越来越短;
2、频:在项目开发过程中,开发需求变更频繁,软件升级迭代越来越频繁;
3、快:随着车上新功能的不断呈现,主机厂需要快速响应,满足市场的需求;
4、异:随着消费市场的成熟,终端客户不再满足于车辆固定化功能,对差异化有了更深入需求; 与之对应的是,传统汽车软件架构是面向信号的开发范式,所谓面向信号就是:为了实现某一项功能,ECU从底层到应用层开发了一整套的软件,并根据事先设定的特定信号与外部进行交互,这些事先设定的信号通LIN/CAN等总线技术在ECU之间通讯。
为了降低不同功能之间软件重复开发工作量,AUTOSAR把软件分层为基础软件层,运行环境层,应用层,通过参数配置实现不同软件功能,但是这种配置是静态的,一旦设定无法轻易变动,如果开发新的功能,那么整条软件链路上所有相关的参数都需要重新编写和配置,也即模块之间的耦合度太高,其中一个升级会影响其他模块都得跟着升级,这也就决定了新功能的开发是费时费力的,系统的扩展性差,不能灵活的进行分布式布置!
因此,也就无法解决“短”、“频”、“快”、“异”的行业痛点需求。 事实情况是目前许多新功能并不总是从零开始,而是许多简单功能基于场景的智能化能组合,能不能将一个一个小功能通过调用的方式以某种逻辑拼凑在一起形成一个更加智能的场景化功能?所以车企们把目光纷纷投向了在IT行业非常成熟的SOA软件架构。SOA架构核心将每个控制器的底层功能以”服务“的形式进行封装,一个服务即是一个独立可执行的软件组件,并对其赋予特定的IP地址和标准化接口以便随时调用,最终通过这些底层功能的自由组合,以实现某项复杂智能化功能。
SOA是一种IT行业应用软件的开发范式,目标是使软件开发满足复杂多变的业务需求。
SOA架构本身的优势
SOA架构是一种粗粒度、开放式、松耦合的服务结构,要求整车软件在开发过程中,按照相关的标准或协议,进行分层开发。通过这种分层设计或架构体系可以使整车软件变得更加弹性和灵活,且尽可能的与第三方整车软件互补兼容,以达到快速扩展,满足或响应市场或客户需求的多样化、多变性。 理解SOA架构(Service Oriented Architecture面向服务的架构)关键时理解什么是“服务’,”服务“是在特定场景下对特定对象处理特定任务,包含了数据、功能、业务的三个特征,不同“服务”需要引用不同/相同的数据源、功能块 , 并依据 业务逻辑进行重构;数据源、功能块,业务逻辑三者有一项不同,就构成新“服务“,因此,相比于“功能”,“服务”会非常多样化!
利用SOA架构开发的时候,其基于松耦合的特性能给车企带来诸多的好处: 第一、更易维护 业务服务提供者和业务服务使用者的松散耦合关系及对开放标准的采用确保了该特性的实现。建立在以 SOA基础上的信息系统,当需求发生变化的时候,不需要修改提供业务服务的接口,只需要调整业务服务流程或者修改操作即可,整个应用层也更容易被维护。 第二、更高的可用性 该特点是在于服务提供者和服务使用者的松散耦合关系上得以发挥与体现。使用者无须了解提供者的具休实现细节。 第三、更好的伸缩性 依靠业务服务设计、开发和部署等所采用的架构模型实现伸缩性。使得服务提供者可以互相彼此独立地进行调整,以满足新的服务需求。
汽车服务软件的实现和部署工作主要在服务组件层(Service Components)完成
SOA开发流程概览
SOA开发流程主要包括功能需求分析、功能方案设计、模块架构设计、模块详细设计四个重要步骤: 功能需求分析:分析用户需求,定义功能是什么,用户会如何使用它,以及获得的收益 功能方案设计:分析车辆应需具备的“能力(Capability)”用来实现在功能需求分析阶段定义的各项需求 模块架构设计:将上一阶段车辆具备的各项能力分配到不同模块,在模型库中进行模块架构搭建 模块详细设计:针对模块内部实现方案进行详细设计,遵循“高内聚、低耦合”的原则进行SWC划分和服务提取
总结: 随着汽车”新四化“的不断深化,在整车生命周期内,汽车的E/E功能需要不断更新迭代升级,甚至重新分配。而SOA架构主要优势是可以很大程度上实现软硬解耦,服务高内聚,软件易重用,服务的灵活部署,让功能改变只需要升级某个服务就可以实现,大大提高了整车软件易维护性和可扩展性。 这样的SOA架构,哪个OEM会不爱呢?
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !