引言
? ? ? ?上一篇文章對智能汽車軟件的范圍姨伤、軟硬件升級熙暴、SOA的內(nèi)涵進行了介紹肌幽,本篇將圍繞 SOA的實現(xiàn)細節(jié)贪庙,重點闡述以下問題:
- SOA 基礎(chǔ)軟件框架
- SOA 參考實現(xiàn)
- SOA 實現(xiàn)所需相關(guān)技術(shù)
一蛛株、SOA 基礎(chǔ)軟件框架
? ? ? ?上一篇中团赁,介紹了面向服務(wù)的軟件架構(gòu)設(shè)計SOA,但它只是一架構(gòu)種設(shè)計思想谨履,本身并不是一個軟件模塊然痊。工程中需要一個基礎(chǔ)軟件框架去實現(xiàn)其架構(gòu)設(shè)計思想,下圖中的 SOA Framework 就是我所說的基礎(chǔ)軟件框架屉符。
? ? ? ?上圖中所表示的就是一個典型的中央計算電子電氣架構(gòu)剧浸,幾十個 ECU 的功能,集中到少數(shù)計算單元上矗钟,大部分 ECU 消失了唆香,但是由于底盤域的特殊性,依然保留了部分 ECU 的功能吨艇。幾大控制器躬它,選用的都是高性能的 SOC(畫3個只是示意),由于工作任務(wù)的不同东涡,選用了不同的操作系統(tǒng)冯吓。SOA Framework 是這個分布式軟硬件系統(tǒng)運行的關(guān)鍵,具有以下特點:
- 它是一個操作系統(tǒng)中間件
- 運行在不同的OS 內(nèi)核之上疮跑,可以跨平臺组贺。
- 除了基于以太網(wǎng),最好還能兼容傳統(tǒng) AutoSAR
- 需要為上層應(yīng)用提供良好的開發(fā)接口祖娘。
- 需要與多個 SOC 上的 SOA Framework 進行分布式協(xié)同失尖。
? ? ? ?SOA Framework 整體架構(gòu)如上圖所示,其主要功能如下:
- 本地服務(wù)、遠程服務(wù)(運行在另外一個 SOC 上的服務(wù))掀潮,相互之間以統(tǒng)一的接口描述語言IDL為契約菇夸。IDL 是一種中立的語言,與 OS 以及開發(fā)語言無關(guān)仪吧。
- 通過Service Development Framework庄新,為開發(fā)者提供服務(wù)開發(fā)的基本框架。
- Service Manager 管理本地服務(wù)薯鼠,并負責與遠端的 Service Manager 進行同步摄咆。
- Policy Manager 負責控制各個服務(wù)間的訪問權(quán)限。
- Network Manager 負責網(wǎng)絡(luò)通信管理人断,有可能會使用不同的通信協(xié)議。
- Startup Manager 定義服務(wù)間的依賴關(guān)系與啟動順序朝蜘。
- Update Manager 負責服務(wù)的更新與升級恶迈。
- OS Abstraction Layer 負責抽象各個 OS 的差異。
實際實現(xiàn)過程中谱醇,還需要很多其他服務(wù)作為支撐暇仲,比如持久化、加解密等副渴,以上架構(gòu)圖奈附,只是為大家講明原理。
? ? ? 在這個基礎(chǔ)框架之上開發(fā)的服務(wù)煮剧,相互之間都是松耦合關(guān)系斥滤,通過我們上一篇中講的,重新定義新的組合服務(wù)和流程服務(wù)勉盅,就能產(chǎn)生新的軟件功能佑颇。不同芯片的差異會在操作系統(tǒng)層面屏蔽掉,而基礎(chǔ)軟件框架又屏蔽了操作系統(tǒng)的差異草娜,在此架構(gòu)下挑胸,即使更換新的 SOC,軟件上的改動也會很小宰闰,也為硬件可升級也提供了軟件基礎(chǔ)茬贵。
二、SOA 參考實現(xiàn)
? ? ? ?ROS與Adaptive AutoSAR 都是遵循 SOA 架構(gòu)設(shè)計思想的一種操作系統(tǒng)中間件移袍。為什么放在一起講解藻,是因為他們都有可能發(fā)展成為一種適用于車載環(huán)境的分布式通信與計算框架。
? ? ? ?ROS(Robot Operating System)主要目標是為機器人研究和開發(fā)提供代碼復用的支持葡盗。是一個分布式的進程(也就是“節(jié)點”)框架舆逃,這些進程被封裝在易于被分享和發(fā)布的程序包和功能包中。
? ? ? ?ROS 之前更多的用于學術(shù)研究,隨著這幾年人工智能和自動駕駛的發(fā)展路狮,在很多自動駕駛的原型系統(tǒng)中都能夠看到 ROS 的身影虫啥,百度 Apollo 最初也是使用了 ROS。在發(fā)展過程中奄妨,ROS原先架構(gòu)設(shè)計上的缺陷也慢慢暴露出來涂籽,為了解決這些問題,2017年砸抛,采用新架構(gòu)的 ROS2 問世评雌。
? ? ? ?ROS2 最大的改變是,取消Master中央節(jié)點直焙,實現(xiàn)節(jié)點的分布式發(fā)現(xiàn)景东,發(fā)布/訂閱,請求/響應(yīng)通奔誓;底層基于DDS通信機制斤吐,支持多操作系統(tǒng),包括Linux厨喂、windows和措、Mac、RTOS蜕煌。要把 ROS2改造的完全適合車載派阱,還有不少工作要做,之前提到的 APEX.AI公司斜纪,就是在做這個事情贫母。
? ? ? ?Classic AutoSAR 是開發(fā) ECU 的主要標準 ,相關(guān)的介紹網(wǎng)上很多盒刚,就不多做介紹颁独,Adaptive AutoSAR 2017年才發(fā)布第一個release 草案,主要用于高性能 SOC伪冰,運行在兼容 POSIX的操作系統(tǒng)之上誓酒,其也運用了 SOA 的架構(gòu)設(shè)計思想。
? ? ? ?從Adaptive AutoSAR 和 ROS 當中贮聂,能夠看到德系與美系架構(gòu)設(shè)計思想之間鮮明的差別靠柑。我的第一感受是,美系架構(gòu)設(shè)計更加簡潔吓懈、靈活歼冰,追求開源。而德國人喜歡把簡單的問題復雜化耻警,喜歡過度設(shè)計隔嫡,搞很深的抽象層次甸怕,喜歡搞代碼生成,喜歡強綁定 IDE腮恩,這可能與他們工程師思維的嚴謹性有關(guān)系梢杭,總之搞得看起來門檻特別高,相關(guān)的公司還可以賣標準秸滴,賣工具武契,賺的盆滿缽滿。
? ? ? ?傳統(tǒng) ECU 開發(fā)中荡含,Classic AutoSAR 依然會占主導地位咒唆, 德系公司是毫無疑問的主導者,但是我個人并不看好 Adaptive AutoSAR 的發(fā)展释液,主要有以下幾點:
- 其標準的推進事實上已經(jīng)落后于行業(yè)應(yīng)用全释。
- 在自動駕駛的發(fā)展方面,中美是主導误债,德國已經(jīng)無法實現(xiàn)他在傳統(tǒng)汽車領(lǐng)域的霸主地位浸船。
- 開源軟件,成就了人工智能找前、自動駕駛相關(guān)行業(yè)的繁榮,德系軟件商這種設(shè)置高門檻判族,通過標準掙錢的做法躺盛,很難繼續(xù)下去,一套基礎(chǔ)軟件收費超過千萬形帮,沒實力的會選擇開源槽惫,有實力的也會自己去開發(fā),大家頂多借鑒一下其設(shè)計思想辩撑。
三界斜、DDS 與 SOME/IP
? ? ? ?DDS(Data Distribution Service) 與SOME/IP(Scalable service-Oriented MiddlewarE over IP),都是基于TCP/IP 實現(xiàn)的一種應(yīng)用層通信協(xié)議合冀,主要實現(xiàn)以下功能:
- 數(shù)據(jù)序列化
- 服務(wù)發(fā)現(xiàn)
- 數(shù)據(jù)的發(fā)布訂閱機制
? ? ? ?DDS 主要用于工業(yè)互聯(lián)網(wǎng)各薇、軍工等領(lǐng)域,車載領(lǐng)域也有一些使用君躺,比如 Nvidia 的 Drive AV 平臺峭判,底層通信就是基于 DDS,也是 ROS2的底層通信協(xié)議棕叫。SOME/IP是隨著 AutoSAR 發(fā)展起來的林螃,目前已經(jīng)被納入進了 AutoSAR 的標準當中,是 Adaptive AutoSAR 的底層通信協(xié)議俺泣。DDS 與 SOME/IP兩者功能大同小異疗认,SOME/IP 與 AutoSAR 生態(tài)兼容良好完残,但是 DDS 功能更強大,比如能夠?qū)崿F(xiàn) QoS(Quality of Service,服務(wù)質(zhì)量横漏,是網(wǎng)絡(luò)的一種安全機制, 是用來解決網(wǎng)絡(luò)延遲和阻塞等問題的)谨设。
? ? ? ?在CAN總線中,通信過程是面向信號的绊茧,發(fā)送方周期性的發(fā)布信息铝宵,而不考慮接收者是否有需求。DDS與 SOME/IP則不同华畏,收發(fā)雙方是一種訂閱/發(fā)布機制鹏秋,它是在接收方有需求的時候才發(fā)送,優(yōu)點在于總線上不會出現(xiàn)不必要的數(shù)據(jù)亡笑,從而降低負載侣夷。
? ? ? ?DDS 與 SOME/IP的實現(xiàn),是以以太網(wǎng)為基礎(chǔ)的仑乌,為什么要用車載以太網(wǎng)百拓,除了大家都知道的傳輸帶寬問題,其實從軟件的角度來講晰甚,以太網(wǎng)最大的好處衙传,在于它的網(wǎng)絡(luò)模型層次比CAN要全,能夠在此基礎(chǔ)上定義比較復雜的應(yīng)用層協(xié)議厕九。
結(jié)語
? ? ? ?本篇主要對SOA 軟件框架進行了介紹蓖捶,對常見的技術(shù)概念,車載以太網(wǎng)扁远、SOME/IP俊鱼、DDS、Adaptive AutoSAR畅买、ROS2 等并闲,梳理各自所處的技術(shù)層次與要解決的問題,闡述其與SOA的關(guān)系谷羞,下一篇主要聊聊一些非技術(shù)性的問題帝火,比如行業(yè)現(xiàn)狀,落地中實際會碰到的困難等湃缎。