序
不知道什么時(shí)候開始,SOA為標(biāo)題的文章遍布各大公眾號(hào)和媒體。
說到軟件定義汽車,我們就很難不聽到這幾個(gè)詞,一個(gè)是zone或者zonal,也就是域控制器的域,一個(gè)是SOA,就是基于服務(wù)的架構(gòu),那說到基于服務(wù)的架構(gòu),然后會(huì)說到autosar的CP和AP,說到autosar的AP,就會(huì)看到一個(gè)詞,叫做SOME/IP。
所以說大家到底在講什么?其實(shí)歸根結(jié)底是在說三個(gè)東西,一個(gè)是整車電子架構(gòu),一個(gè)是軟件架構(gòu),一個(gè)是通訊。
那這些新東西是怎么出來的呢,我在網(wǎng)上看到一句話我覺得概括得非常準(zhǔn)確,就是“通過為用戶提供更多的價(jià)值,從而達(dá)到用戶持續(xù)與OEM進(jìn)行價(jià)值交換的目的“。
懂的都懂。雖然從汽車這個(gè)產(chǎn)品的角度大家看到的是電子架構(gòu)的演化、軟件架構(gòu)的變革,但實(shí)際上它背后的驅(qū)動(dòng)也很清楚,是因?yàn)殡S著汽車這個(gè)產(chǎn)品的成熟和普及,傳統(tǒng)車的利潤被壓縮,大家想通過軟件功能的增加,提高產(chǎn)品的價(jià)值,來創(chuàng)造更多的價(jià)值交換。這又涉及到,因?yàn)镺EM要設(shè)計(jì)軟件,就需要把一些以前是供應(yīng)商的工作放到內(nèi)部來做。
那研發(fā)層面來說,要求工程師從新的角度去審視開發(fā)和產(chǎn)品,對(duì)工程師的能力要求變了,客戶思維、系統(tǒng)工程等等比如說我們看到其實(shí)都是在為軟件定義汽車這個(gè)東西打鋪墊。
一
我們先來看兩個(gè)概念,說SDV是什么,網(wǎng)上有很多定義,我摘抄了一個(gè),就是說軟件將深度參與到汽車的定義、開發(fā)、驗(yàn)證、銷售、服務(wù)等過程中,實(shí)現(xiàn)體驗(yàn)持續(xù)優(yōu)化、過程持續(xù)優(yōu)化、價(jià)值持續(xù)創(chuàng)造。那大白話其實(shí)就是軟件在汽車上越來越重要了。
那這個(gè)越來越重要具體體現(xiàn)在哪里呢,
從三個(gè)方面來看,
一個(gè)是創(chuàng)新,我們說行業(yè)的行業(yè)發(fā)展靠創(chuàng)新來推動(dòng),那汽車的創(chuàng)新在哪里呢,有預(yù)測(cè)說未來汽車一半的創(chuàng)新會(huì)是汽車軟件的創(chuàng)新;
第二個(gè)是開發(fā)成本,就說到2030年,軟件的開發(fā)成本會(huì)占到整車開發(fā)成本的一半;
還有一個(gè)是整車成本,到30年,軟件成本會(huì)占到整車成本的一半;
也有說一輛車的價(jià)格中軟件要占到60%以上。
那SOA又是什么東西呢?
SOA是一個(gè)IT的概念,而且是在好幾年前已經(jīng)提出了(1996年,權(quán)威的IT研究與顧問咨詢公司Gartner提出),那它不是一種具體的技術(shù),而是一種架構(gòu)策略層面的指導(dǎo)思想。對(duì)于SOA來說有兩個(gè)很重要的概念是服務(wù)和接口。
既然SOA是一個(gè)IT行業(yè)的概念,那它為什么這兩年在汽車行業(yè)忽然火了?
汽車發(fā)展的愿望,我總結(jié)了一下其實(shí)就是多快好省四個(gè)字,多是功能多,快是快速滿足市場(chǎng)新需求,好是新車好新體驗(yàn),老車新體驗(yàn),持續(xù)用戶價(jià)值,省是更低的開發(fā)成本和物料成本。
那SOA推動(dòng)了什么趨勢(shì)呢?解耦,快速開發(fā),兩者一拍即合。
我們之前早期的時(shí)候應(yīng)用軟件和底層是強(qiáng)耦合的,到后來應(yīng)用軟件和基礎(chǔ)軟件解耦了,應(yīng)用SOA之后其實(shí)是進(jìn)一步提高了,因?yàn)樗鼘?duì)嵌入式應(yīng)用軟件的接口(即服務(wù)接口)進(jìn)行了標(biāo)準(zhǔn)化。
與硬件和底層解耦后,汽車應(yīng)用軟件的開發(fā)和交互靈活性大大提高,將汽車變成一部隨時(shí)可下載軟件的智能手機(jī)。所以說SOA推動(dòng)的趨勢(shì)與汽車的發(fā)展愿望充分一致。
二
介紹了概念,我們?cè)賮砜碨OA的應(yīng)用。
要在車上實(shí)現(xiàn)SOA,必須要通過三個(gè)東西,分別是SOC、SORS和SOSA,也就是基于服務(wù)的電子架構(gòu)、軟件架構(gòu)和通訊。
首先我們來看第一個(gè)SORS,它是基于下一代電子架構(gòu)而進(jìn)行的服務(wù)實(shí)現(xiàn)并體現(xiàn)服務(wù)復(fù)用性設(shè)計(jì)工作。
這里我們就有一個(gè)問題,那當(dāng)前的架構(gòu)不能支持SOA嗎?
這個(gè)地方有幾個(gè)困難,第一個(gè)是算力,第二個(gè)是通信,第三個(gè)其實(shí)是前面兩個(gè)的總和,就是服務(wù)的管理。
那一個(gè)支持服務(wù)的架構(gòu)有什么特點(diǎn)呢
首先它一定是有一個(gè)高性能、多資源的中央節(jié)點(diǎn),然后它的控制器的數(shù)量肯定會(huì)比現(xiàn)在大大減少。
那電子架構(gòu)對(duì)開發(fā)會(huì)有什么影響呢?
舉個(gè)例子,之前車展上吸引很多人的車子的跳舞模式。
假如在我們現(xiàn)在的架構(gòu)做,我們可能在ICI上放一個(gè)交互的應(yīng)用,要實(shí)現(xiàn)的話至少要在BCM和ECM中放邏輯,分別實(shí)現(xiàn)車門車燈的控制和車的運(yùn)動(dòng)。
但假如說是SOA的架構(gòu),我們只要把功能邏輯都放在ICI或者任意一個(gè)模塊,然后去調(diào)用相關(guān)的服務(wù)就可以了。
這里隨之而來的問題是,那這些服務(wù)是哪里來的或者說是什么時(shí)候設(shè)計(jì)的?
一旦我們有這個(gè)基于服務(wù)的架構(gòu)之后,會(huì)給開發(fā)帶來很明顯的變化,在我們傳統(tǒng)的開發(fā)模式中我們要新增一個(gè)功能要很早提CR,并且影響很大。
但是基于新的架構(gòu),假如前期架構(gòu)具有足夠的前瞻性,我們就能基于基于服務(wù)庫輕松地開發(fā)新功能,并通過OTA部署到車端。而且這個(gè)開發(fā)新功能的過程不是主機(jī)廠才能做,而是任何被授權(quán)的第三方都可以。
那我們?cè)谑裁措A段做這個(gè)基于服務(wù)的設(shè)計(jì)呢,很明顯即使在前期設(shè)計(jì)階段
首先,我們?cè)趺粗烙心男┓?wù)呢?
大致有兩種途徑,
一種是自下而上的,就是從我們車上有哪些硬件,能夠提供哪些功能和數(shù)據(jù),匯總出來我們可以有哪些服務(wù)。比如說輪速傳感器采集到的數(shù)據(jù)通過處理就可以提供車速服務(wù)。另一種是自上而下,我們熊整車功能和算法中把服務(wù)抽取出來。
具體是怎么設(shè)計(jì),服務(wù)包的大小,都需要前期統(tǒng)一的規(guī)劃。
所以我們可以看到,在這個(gè)過程中,服務(wù)的規(guī)劃和拆分非常重要,總原則就是高內(nèi)聚和低耦合。
三
說完了整車電子架構(gòu),我們來說軟件架構(gòu),這里我們說應(yīng)用軟件的變化
我們當(dāng)前應(yīng)用軟件開發(fā)大概是左邊的樣子,就是我們有了需求,然后知道軟件要完成哪些動(dòng)作,把這些動(dòng)作分一分,每個(gè)動(dòng)作由哪個(gè)單元來實(shí)現(xiàn),然后出來一個(gè)架構(gòu)。但是SOA之后我們可能要先做一個(gè)事情就是一個(gè)服務(wù)的分析和設(shè)計(jì),我這個(gè)功能需要哪些服務(wù)的組合,然后搭建一個(gè)對(duì)應(yīng)的架構(gòu)。
四
我們前面在不斷地說服務(wù)這個(gè)東西,說服務(wù)的抽取和打包,但還有一個(gè)很關(guān)鍵的點(diǎn)就是通訊。
我們現(xiàn)在有這么多服務(wù)和功能,有個(gè)很關(guān)鍵的點(diǎn)就是大家要能交互起來那大家怎么調(diào)用服務(wù),又怎么交流呢?
所以我們還需要SOC,SOC的關(guān)鍵點(diǎn)是統(tǒng)一的接口和協(xié)議。
那這個(gè)時(shí)候我們就會(huì)問了,你怎么知道我什么時(shí)候需要這個(gè)服務(wù)呢?
所以它又定義了四種通訊的形式
我們來看一個(gè)例子,ADAS和高精地圖之前的交互就是典型的eventgroups。
五
講了半天那哪些功能適合用SOA?
一類是以汽車以太網(wǎng)作為主要通信協(xié)議的功能-海量數(shù)據(jù),如:
自動(dòng)駕駛或駕駛輔助的視頻流信息:各角度攝像頭獲取的視頻及解析出來的信息;
車內(nèi)影音娛樂信息:比如音視頻播放、IVI/副駕及后座娛樂系統(tǒng)互動(dòng)、導(dǎo)航等圖像信息傳輸、收音機(jī)、CD等功能;
診斷及刷寫功能:在CAN及Eth都已經(jīng)是以服務(wù)的方式實(shí)現(xiàn);
一類是與車外互聯(lián)網(wǎng)實(shí)現(xiàn)互聯(lián)互通的功能-強(qiáng)交互更新,如:
獲取車載攝像頭的信息,比如通過手機(jī)遠(yuǎn)程獲取車輛周圍環(huán)境;
獲取車輛運(yùn)行狀態(tài)信息,比如云端獲取車輛的駕駛習(xí)慣;
遠(yuǎn)程控制車輛舒適性設(shè)備,比如通過手機(jī)遠(yuǎn)程打開車輛空調(diào);
遠(yuǎn)程控制車輛安全性設(shè)備,比如通過手機(jī)為代駕遠(yuǎn)程開鎖與啟動(dòng)車輛運(yùn)行;
結(jié)
電動(dòng)化智能化不可避免,汽車工程師一定是站在這個(gè)浪潮中,感受行業(yè)的變化,哪怕沒有SOA,也會(huì)有SOBSOC,汽車的電子架構(gòu)和軟件架構(gòu)一定會(huì)不斷地變化,作為一個(gè)功能的開發(fā)者,對(duì)于功能的內(nèi)容和邊界要有清晰的規(guī)劃和把控力,顯得更為重要。