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