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