上汽零束基于SOA的软件架构理念,将车云能力服务化,构建云管端一体化SOA软件平台,打造千人千面用户体验,让车成为有生命力的人类伙伴。要实现云管端一体化SOA软件平台,车云一体架构就是不得不讨论的话题。本篇将从以下几个角度讨论车云一体架构:
一、车云一体架构的需求背景
二、车云一体架构的构建方式
三、车云一体架构的优势
一、车云一体架构的需求背景
随着时代的进步,技术的发展,不同主机厂商都大刀阔斧地开启了新四化的建设,再加上硬件技术日新月异的发展,使汽车这个具有空间属性的终端搭载了越来越多的硬件,让汽车的能力越来越多。同时,互联网技术的发展,5G高速网络的应用,车可以很方便地接入互联网,互联网赋能传统车辆更是大势所趋。
上汽零束一直在探讨车的特性、车的未来、使用者的期望;探讨互联网技术的演进、互联网技术未来的发展方向;探讨人工智能提升用户体验,探讨互联网技术与车辆的结合等等。如何管理协调车辆能力和云端能力、解耦硬件和软件、提高上层应用对底层能力的依赖、提升用户体验成为迫切需求。
基于软件架构的思路,将车云能力高度抽象、车云融合、相互协调,并同步对外开放,形成车云一体架构。
车云一体架构实现车云协同,让车端可以自由使用云端服务,云端也可以方便地使用车端服务,使用者不用关心服务是在车端还是云端。在上汽零束,从使用者、开发者以及OEM厂商的角度挖掘需求,提取能力共同特征,结合车云能力,形成车云一体架构,云为车赋能,车为人服务。
二、车云一体架构的构建方式
车云一体架构的构建,大致可以分为车云基础能力抽象,车云能力调度协调和车云能力服务化三个阶段。
1、车云基础能力抽象,就是将车端能力和云端能力发掘出来,提取共同特征,根据使用场景,由繁到简,最终形成通用的车云软件组件。其构建示意图如下:
不同的人,站在不同的角度,抽象出的结果往往差异非常大,并且,这个过程是一个综合分析的过程,不仅需要考虑市场目前情况,还需要考虑未来的前瞻性;不仅需要充分考虑用户的需求,还需要考虑业务实现的必要性、通用性以及技术的可行性等等。
上汽零束实现车辆抽象是一个痛苦而艰辛的过程。我们坚持遵循SOLID的原则,从单一职责(SRP,Single Responsibility Principle),开放封闭(OCP,Open Closed Principle),里氏替换(LSP,Liskov Substitution Principle),接口隔离(ISP,Interface Segregation Principle),依赖倒置(DIP,Dependence Inversion Principle)五个维度进行车辆抽象。
1)从单一职责原则方面,上汽零束从业务角度出发,根据业务场景抽象服务功能,遵从单一性原则,一个服务完成一个场景功能。再从场景功能继续下探,依据服务功能挖掘需要的能力,确定能力是来自车端还是云端,将车端或者云端能力抽象,然后再逐层抽象;
2)从开放封闭原则方面,设计软件组件或服务的时候,要求高扩展性,通过接口,继承等多种软件技术,使系统在设计的时候就考虑到运行时的对外扩展开放,对内修改封闭;
3)从里氏替换原则方面,我们对车辆能力、云端能力建立通用的能力模型,提供多种不同应用场景的能力继承和具体实现,确保不因为场景能力的不同影响已存的能力模型,继而影响整个系统;
4)从接口隔离原则方面,软件组件能力提供也使用单一功能的原则,尽可能让一个接口完成一个指定功能,避免接口的混用,并且尽可能保持接口精简;
5)从依赖倒置原则方面,我们充分考虑不同软件组件之间的依赖性,高层模块不应该依赖低层模块,相反,它们应该依赖抽象类或者接口,降低不同软件组件之间的紧耦合性;
2、车云能力调度协调就是将车端能力和云端能力进行有机整合,将抽象的车云软件组件调度协调,形成车云一体化软件组件,让用户和开发者无感能力的实际部署。主要从以下几个方面考虑:
1)车云基础通信能力的构建:对车端和云端的通信进行合理规划,对通信数据从大小、安全性、QoS、时延、响应要求等方面进行分类,按照不同的要求和应用建立不同的通信链路,提供通信能力服务;
2)车云安全防护:对于车云通信链路进行安全防护。不仅仅需要考虑数据传输安全,还需要考虑车辆接入安全、通信链路安全、访问安全,也需要从进程防护、文件加固、流量监控、GNSS欺骗防护、车内流量监控、侵入检测、恶意防护等方面进行系统、全面的安全防护;
3)车云能力同步:在车云基础通信服务之上,进行车端能力和云端能力的同步,将车端能力反馈到云端,将云端适合于某一个车辆的能力下发到车端,进行车云能力状态的管理和同步,在车端形成其使用能力的合集,在云端形成车辆的影子设备;
4)车云能力的调度和协调:车云能力虽然对使用者来讲没有车云分离概念,但是在事实上是存在云和车的区别,为了使消费者无感,上汽零束实现了车云能力组件化,通过调度协调,实现双向远程调用。
3、车云能力服务化,从用户出发,分析不同用户现实需求,挖掘用户潜在需要,结合车辆未来的发展以及行业经验,集成云端的AI, Big Data等云端技术,在抽象形成的车云软件组件基础上进一步抽象,形成车云一体的服务。上汽零束在要求开箱即用的基础上还需要有足够的扩展性,希望能满足千人千面的需求。这就需要我们在设计时候判断、调整,同时遵从以下方式方法:
1)根据行业特点和应用场景尽可能形成模态能力组合服务:能力进行逐层抽象后,最终需要落实到具体的应用,这就需要结合行业特点,为一些特定的应用场景,抽象能力服务。在实际的应用场景中,往往是需要多个能力组合才能实现,我们将这些需要的能力形成一个模态组合,再进一步抽象形成服务。
2)支持服务动态发现:车云的抽象能力可能随着车型、配置具有不同的能力,为了便于能力的管理和调度,需要支持服务动态发现。
3)支持服务横向编排和行为控制:应用也好,场景也罢,在实际工作中往往不可能穷尽。为了适应千人千面的需求,建立能力和服务的横向编排,通过编排可以形成不同新的服务并提供行为管控。
4)充分考虑功能安全实现分层管控:在做能力服务化的时候,要从功能安全的角度逐级实现安全管控。
上汽零束在进行车云一体化软件的构建过程中,始终秉持去繁从简、用户导向、协调和解耦并举的原则,实现了车云双向打通,形成真正意义上的车云一体化平台。
1)扩展了车辆的能力:将车辆车身系统、信息娱乐系统、车辆智能驾驶系统和动力总成系统的能力进行了抽象,并且将车辆接入云端,将云端的AI能力、Big Data能力、安全验证能力、数据分析能力抽象,然后将云端和车端能力高度融合,使车辆能力大大提升;
2)实现了能力服务化:车云能力抽象后,以服务的形式对外发布。上层应用可以方便的根据应用场景和权限消费相关的服务,而不用关心服务的提供方、提供方式,也不用关心服务是在车端还是在云端;具体的服务控制,安全管控和服务之间的协调都由服务提供方自动处理和协调;
3)实现了服务发现自动化:通过服务代理实现了自动服务发现机制,所有的服务消费方可以根据服务发现机制实时发现服务提供方的状态,获取服务的信息,从而进行服务消费;
4)提高了应用自动化:基于服务发现,服务分层分级控制的机制,使基于车云一体架构开发的应用能够自动发现服务及其状态,自动调用和编排基础能力,还可以自动根据服务发现进行服务能力管控;
5)增强了车辆的智能化:通过云端的接入,车辆可以智能学习,智能的进行云端模型训练,智能部署车端边缘,有力地支撑起车辆智能化;
6)提升了用户体验:从用户体验的角度,用户往往只需要一个操作、甚至一句话、一个手势就能达到自己想要完成的动作,而不需要进行多个操作。自动分析用户的喜好,提取相关人群的共同特征,做到和用户心心相印,达到用户所想所得。
车云一体架构示意图如下:
上汽零束车云一体架构的实现,不仅仅提升了车辆的能力和用户体验,还大大提高了开发扩展能力,激发了无穷的想象空间。上层应用开发者可以更多地聚焦在用户的体验上,而不用关心底层能力的实现和部署,可以创新地进行各种应用开发并且快速迭代。
三、车云一体架构的优势
车云一体架构有机地进行了能力抽象,分层、权限控制、分模态组合、分应用的提供车云一体服务,有力支撑了云管端一体的SOA平台架构。
车云一体架构的优势主要表现在以下几个方面:
1)位置透明:车云服务的使用者不需要关心服务在车端还是云端,由平台自动完成服务的消费和响应;车端服务可以在云端访问,云端服务也可以在车端访问,形成车云一体化服务;
2)可重用:车云一体化软件组件抽象实现,就可以方便地提供能力服务,可以被不同的上层抽象和使用,不同的车辆可以使用云端同一个软件组件提供的能力服务,车辆内部也可以很容易地实现跨域访问,而不需要重复地构建;
3)易扩展:车云一体架构实现了组件的接口与实现分离,可以方便地进行实现的重构而不影响服务的消费者;也可以方便地进行云端、车端能力的扩展,通过服务发现的机制自动加入到SOA平台而不需要平台重构就可以向消费者提供服务;当然,还可以通过服务编排的机制根据不同的场景进行服务的调度和协调;方便进行扩展和使用;
4)易使用:服务消费者只关心抽象服务的使用,而不用关心具体使用哪些车辆服务,这些服务是来自车端还是云端、也不用关心车辆服务的组合和协调调度,更不用关心服务的实现机制和原理;
5)安全可控:通过访问权限暴露相关服务接口的机制,有效地控制了非法的访问,并且系统的安全机制和分层管控方法,更加方便地进行安全策略的控制和调整,保证了整个SOA平台的安全可靠;
车云一体化软件组件的优势远不止于此,它解放了开发者的思维,提升了开发者对车辆的认识,可以让不同的角色聚焦到自己熟悉的领域,而屏蔽不必要的实现和部署细节,降低了上层应用对底层能力的依靠,解耦了不同功能组件的相互的依赖等等。
当然,任何事情都有它的两面性,由于多层的安全控制、基于互联网的数据传输,这些都有可能增加系统的响应和延迟,对于一些时延要求较高的应用可能需要特殊的优化和处理;随着被管控车辆数量的增加,其并发的要求也必然增加,因此必须考虑云端服务的部署和扩展,尽可能避免单点故障,实现自动伸缩。车云一体架构也依赖网络的稳定,显然,网络的断开也必然影响服务的响应,因此,需要加大力度应对服务的治理,状态的跟踪,尽可能提升用户在使用上层应用时的体验。
四、结语
上汽零束用多年沉淀的汽车行业经验来指导开发,用互联网的思维来构建架构,通过云管端一体化SOA软件平台来赋能汽车,为软件定义汽车提供全栈解决方案。
下一章我们将介绍进行SOA服务软件开发和实现的通用方法,敬请期待哦!
作者:零小束
文章来源:上汽零束开发者 https://mp.weixin.qq.com/s/KWD4YWMiWuP0mWx7ckv7ow