隨著汽車(chē)以太網(wǎng)技術(shù)研究的深入,診斷、刷新、娛樂(lè)、智駕等功能對(duì)于帶寬要求的日益增加,目前基本所有整車(chē)廠都在考慮在下一代平臺(tái)上應(yīng)用以太網(wǎng)技術(shù)。而隨著汽車(chē)以太網(wǎng)技術(shù)的發(fā)展,經(jīng)常會(huì)涉及到SOA這個(gè)概念,然而SOA到底是什么?與之相關(guān)的一系列的概念(如服務(wù)、服務(wù)接口、SOME/IP)又是什么?這些概念之間到底是什么關(guān)系?為什么要用SOA?不用可不可以?這些疑問(wèn)肯定困擾著大家。今天我們就按照下圖所示的步驟,一步步的來(lái)拆解它們。
SOA的理解思路
1 首先看一下服務(wù)(Service)是什么?
“服務(wù)”最初是一個(gè)社會(huì)學(xué)名詞。1990年,市場(chǎng)營(yíng)銷(xiāo)學(xué)教授格魯諾斯(Gronroos)給服務(wù)下的定義是:“服務(wù)是以無(wú)形的方式,在顧客與服務(wù)職員、有形資源等產(chǎn)品或服務(wù)系統(tǒng)之間發(fā)生的,可以解決顧客問(wèn)題的一種或一系列行為?!蔽覀僑OA里的服務(wù)是從這里引申出來(lái)的,在IT相關(guān)的領(lǐng)域里,我們可以簡(jiǎn)單理解為“實(shí)現(xiàn)某種功能的函數(shù)或方法”。而這里的服務(wù)(函數(shù)或方法)能夠被顧客(客戶(hù)端)所使用,能夠解決顧客這樣或那樣的問(wèn)題(被調(diào)用所實(shí)現(xiàn)的功能)。舉個(gè)生活中的例子,去全聚德吃烤鴨,全聚德能夠提供烤鴨給顧客,這就是一種服務(wù)。這里先對(duì)服務(wù)有個(gè)基本了解。
2 服務(wù)接口(Service Interface)又是什么?
“服務(wù)接口”直白的理解就是服務(wù)與外界進(jìn)行聯(lián)系的接口,也就是服務(wù)模塊與外界溝通時(shí)的信息出入口。如果你寫(xiě)過(guò)程序,那么一個(gè)能夠被其他模塊調(diào)用的函數(shù)名稱(chēng),或者一個(gè)封裝的API,這些就是接口。再看去全聚德吃烤鴨的例子,服務(wù)員就可以理解為一個(gè)服務(wù)接口。服務(wù)員清晰的知道后廚能夠提供哪些菜,也能夠?qū)⒛愕狞c(diǎn)菜信息輸入給后廚,還能夠把做好的烤鴨提供給你,而這里的“后廚”就可以理解為是服務(wù)本身。
3 再看一下SOME/IP是個(gè)什么鬼?
SOME/IP = Scalable service-Oriented MiddlewarE over IP。即“運(yùn)行于IP之上的可伸縮的面向服務(wù)的中間件”。天哪,捅了馬蜂窩了,一下子又是這么多陌生的名詞:Scalable, MiddlewarE,IP!別慌,我們先來(lái)解釋一下什么是Middleware吧!
“Middleware中間件”是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件可借助Middleware在不同的技術(shù)之間共享資源。(分布式應(yīng)用軟件,在這里指的就是“服務(wù)”;不同的技術(shù)之間,在這里指的就是“不同的平臺(tái)或操作系統(tǒng),比如Linux系統(tǒng)或AUTOSAR系統(tǒng)等。)
IP是Internet Protocol,指的是TCP/IP的通信方式。
Scalable可伸縮,指的是該中間件能夠適配于不同的平臺(tái)及操作系統(tǒng),其支撐的平臺(tái)可大可小。
綜合來(lái)看,SOME/IP就是指能夠在不同平臺(tái)上應(yīng)用的,位于TCP/IP協(xié)議之上的,用于支持分布式應(yīng)用軟件,幫助分布式應(yīng)用軟件來(lái)傳遞信息的這么一套機(jī)制。說(shuō)白了,就是把服務(wù)接口里的內(nèi)容通過(guò)這種標(biāo)準(zhǔn)化的方式打包,然后交給TCP/IP這個(gè)快遞員。
4 此時(shí)再看SOA是什么?
SOA=Service-Oriented Architecture,即面向服務(wù)的架構(gòu),是一種軟件架構(gòu)設(shè)計(jì)的模型和方法論。IT行業(yè)的概念是:從業(yè)務(wù)角度來(lái)看,以最大化“服務(wù)”的價(jià)值為出發(fā)點(diǎn),可以充分利用企業(yè)已有的各種軟件體系,重新整合并構(gòu)建起一套新的軟件架構(gòu)。在汽車(chē)行業(yè)可以理解為,SOA是面向各種應(yīng)用層程序(即“服務(wù)”,包含各種控制算法、顯示功能等應(yīng)用程序)進(jìn)行設(shè)計(jì),且不依賴(lài)于通信方式的一種架構(gòu)設(shè)計(jì)理念。在架構(gòu)設(shè)計(jì)工作中,重點(diǎn)關(guān)注汽車(chē)上的某些功能(“服務(wù)”)應(yīng)該如何實(shí)現(xiàn),該功能實(shí)現(xiàn)時(shí)與外界的各種信息交互(“服務(wù)接口”),該功能與外界交互時(shí)的基本流程(“服務(wù)序列”)。
5 SOA與SOME/IP有什么關(guān)系?
SOA設(shè)計(jì)的是“服務(wù)”架構(gòu),是應(yīng)用程序的功能以及應(yīng)用程序的對(duì)外接口;SOME/IP打包的是“服務(wù)接口”,是應(yīng)用程序的對(duì)外接口。如此看來(lái),SOA設(shè)計(jì)內(nèi)容中的接口部分,需要通過(guò)SOME/IP進(jìn)行打包傳輸。SOA是軟件架構(gòu)的一種設(shè)計(jì)理念;SOME/IP是一種將軟件接口進(jìn)行打包的打包方式,是一種中間件。
6 SOA與以太網(wǎng)有什么關(guān)系?
“以太網(wǎng)”嚴(yán)格來(lái)講,指的是IEEE組織的IEEE 802.3標(biāo)準(zhǔn)所制定的技術(shù)標(biāo)準(zhǔn)內(nèi)容,包括物理層的連線、電子信令和介質(zhì)訪問(wèn)層的內(nèi)容。汽車(chē)行業(yè)通常所指的“以太網(wǎng)”是泛化之后的概念,涵蓋了基于以太網(wǎng)技術(shù)所實(shí)現(xiàn)的各種相關(guān)技術(shù)手段,包括TCP/IP協(xié)議、DoIP協(xié)議、SOME/IP協(xié)議等?!耙蕴W(wǎng)”是一種通信手段。SOA與以太網(wǎng)之間的關(guān)系,是指采用SOA理念所設(shè)計(jì)的軟件架構(gòu),在與外界交互時(shí),其接口可以通過(guò)“以太網(wǎng)”的通信方式進(jìn)行傳輸,而基于SOME/IP中間件的方式則是一個(gè)最典型的應(yīng)用方式。(當(dāng)然若通過(guò)其他非以太網(wǎng)的通信方式來(lái)實(shí)現(xiàn)SOA也是可行的,但通常大家不那么用)。
SOA與SOME/IP及以太網(wǎng)的關(guān)系示意圖
7 為啥要用SOA呢?用了SOA有什么好處?
SOA是IT行業(yè)近年來(lái)典型的架構(gòu)方式,大量的IT系統(tǒng)都是基于SOA實(shí)現(xiàn)的。而汽車(chē)領(lǐng)域采用SOA架構(gòu)的一個(gè)主要原因就是能夠加快車(chē)輛與互聯(lián)網(wǎng)的互聯(lián)互通。包括:
? 能夠?qū)⒏鞣N新功能靈活地與互聯(lián)網(wǎng)集成,而無(wú)需通過(guò)信號(hào)到服務(wù)的轉(zhuǎn)換;
? 基于互聯(lián)互通,能夠大幅提升自動(dòng)駕駛功能:便于實(shí)現(xiàn)高清地圖的創(chuàng)建、更新及路線預(yù)測(cè)等功能,便于實(shí)現(xiàn)車(chē)輛信息的上傳以及云端指令的下達(dá);
? 基于互聯(lián)互通,快速提升系統(tǒng)與軟件升級(jí)性能:有助于實(shí)現(xiàn)更高效的OBD及OTA軟件升級(jí),有助于實(shí)現(xiàn)各種遠(yuǎn)程診斷、預(yù)診斷等功能;
? 基于互聯(lián)互通,能夠大幅提升影音娛樂(lè)功能的用戶(hù)體驗(yàn),能夠?qū)崿F(xiàn)更為便捷的聯(lián)網(wǎng)功能,實(shí)現(xiàn)不同平臺(tái)間的各種App共享等功能;
? 更便于實(shí)現(xiàn)平臺(tái)架構(gòu)升級(jí):通過(guò)SOA及SD的方式,能夠有效降低架構(gòu)升級(jí)帶來(lái)的復(fù)雜度;
8 哪些場(chǎng)合要用SOA呢?
SOA主要針對(duì)的是某些功能的實(shí)現(xiàn),而不是指哪個(gè)節(jié)點(diǎn),包括:
? 以汽車(chē)以太網(wǎng)作為主要通信協(xié)議的功能,例如:
自動(dòng)駕駛或駕駛輔助的視頻流信息:各角度攝像頭獲取的視頻及解析出來(lái)的信息;
車(chē)內(nèi)影音娛樂(lè)信息:比如音視頻播放、IVI/副駕及后座娛樂(lè)系統(tǒng)互動(dòng)、導(dǎo)航等圖像信息傳輸、收音機(jī)、CD等功能;
診斷及刷寫(xiě)功能:該內(nèi)容在CAN及Eth都是以服務(wù)的方式實(shí)現(xiàn)的;
? 與車(chē)外互聯(lián)網(wǎng)實(shí)現(xiàn)互聯(lián)互通的功能,例如:
獲取車(chē)載攝像頭的信息,比如通過(guò)手機(jī)遠(yuǎn)程獲取車(chē)輛周?chē)h(huán)境;
獲取車(chē)輛運(yùn)行狀態(tài)信息,比如云端獲取車(chē)輛的駕駛習(xí)慣;
遠(yuǎn)程控制車(chē)輛舒適性設(shè)備,比如通過(guò)手機(jī)遠(yuǎn)程打開(kāi)車(chē)輛空調(diào);
遠(yuǎn)程控制車(chē)輛安全性設(shè)備,比如通過(guò)手機(jī)為代駕遠(yuǎn)程開(kāi)鎖與啟動(dòng)車(chē)輛運(yùn)行;
9 SOA該如何實(shí)現(xiàn),如何升級(jí)?
我們以“某車(chē)載智能攝像頭通過(guò)獲取限速標(biāo)志信息(限速值、距離、置信度)并反饋給ADAS系統(tǒng),來(lái)實(shí)現(xiàn)駕駛輔助功能”為例,分析一下在CAN總線的方式下以及在以太網(wǎng)SOA的方式下,會(huì)有如何區(qū)別(基本的內(nèi)容)?此外,在攝像頭硬件不變動(dòng)的情況下,如果該系統(tǒng)的功能不斷升級(jí)——由攝像頭提供行車(chē)記錄儀功能、攝像頭提供360環(huán)視的部分信息、限速提醒顯示在HUD中、攝像頭實(shí)現(xiàn)行人識(shí)別并顯示在IVI中,那么,在以太網(wǎng)SOA的方式下以及在CAN總線的方式下,分別應(yīng)該如何進(jìn)行功能提升(增加的內(nèi)容)?如下表所示:(該功能僅為示意,實(shí)際的音視頻信息不會(huì)采用CAN總線通通信的。)
總結(jié):?jiǎn)柾赀@些問(wèn)題之后,再回頭看SOA到底是什么?是否非要用SOA?
其實(shí)SOA( Service-Oriented Architecture)就是面向服務(wù)的架構(gòu),是一種軟件架構(gòu)的設(shè)計(jì)理念。SOA的實(shí)現(xiàn)需要基于SOME/IP及TCP/IP的通信方式。在汽車(chē)領(lǐng)域,SOA及以太網(wǎng)的應(yīng)用對(duì)于實(shí)現(xiàn)車(chē)內(nèi)高帶寬數(shù)據(jù)的互聯(lián)互通、汽車(chē)與外部網(wǎng)絡(luò)的互聯(lián)互通都有其一定的優(yōu)勢(shì),而實(shí)現(xiàn)某些特定功能,也需要采用SOA技術(shù)。
審核編輯 :李倩
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5453瀏覽量
172212 -
SOA
+關(guān)注
關(guān)注
1文章
293瀏覽量
27526 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4344瀏覽量
62813
原文標(biāo)題:汽車(chē)上為什么非要用SOA?
文章出處:【微信號(hào):智能汽車(chē)電子與軟件,微信公眾號(hào):智能汽車(chē)電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論