SOA究竟是蜜糖還是d藥?


來源 | 侯哥工作感悟

知圈 | 進(jìn)“電子電氣群”請(qǐng)加微13636581676,備注架構(gòu)


題記:吾之美食,汝之鴆毒 --《物性論》


SOA究竟是蜜糖還是d藥?的圖1


現(xiàn)在所有有進(jìn)取心的OEM都在研究SOA(面向服務(wù)的架構(gòu):Service Oriented Architecture) ,也都在搞下一代的EEA(電子電氣架構(gòu))。如果一個(gè)業(yè)內(nèi)人士說不出幾個(gè)關(guān)于SOA的詞,基本上是不好意思與別人打招呼的,任何一個(gè)業(yè)內(nèi)的會(huì)議、論壇如果沒有關(guān)于SOA的議題,那么一定是不夠檔次的。據(jù)說現(xiàn)在各個(gè)OEM的老大們見面的第一句話都是:你們SOA了嗎?


那么,SOA是否真的有那么神奇,可以徹底改變中國(guó)的汽車行業(yè)的現(xiàn)狀與格局嗎?


首先,我們先看看SOA的定義,來確定一下大家口中的SOA指的是否是一個(gè)SOA。1996年,Gartner提出SOA的概念;SOA成為IT行業(yè)的一種軟件開發(fā)方法論,許多組織從不同角度對(duì)SOA進(jìn)行了描述:


Gartner對(duì)SOA的定義:SOA是一種 C/S 架構(gòu)的軟件設(shè)計(jì)方法,應(yīng)用由服務(wù)和服務(wù)使用者組成,SOA 不大多數(shù)通用的 C/S 架構(gòu)模型不同之處,在于它著重強(qiáng)調(diào)構(gòu)件的松散耦合,并使用獨(dú)立的標(biāo)準(zhǔn)接口;


W3C對(duì)SOA的定義: SOA 是一種應(yīng)用程序架構(gòu),在這種架構(gòu)中,所有功能都定義為獨(dú)立的服務(wù),這些服務(wù)帶有定義明確的可調(diào)用接口,能夠以定義好的順序調(diào)用這些服務(wù)來形成業(yè)務(wù)流程;


Wikipedia對(duì)SOA的定義:SOA是一種軟件設(shè)計(jì)風(fēng)格,應(yīng)用程序組件通過網(wǎng)絡(luò)通信協(xié)議,將服務(wù)提供給其他組件;SOA的基本原則是獨(dú)立于供應(yīng)商,產(chǎn)品和技術(shù)。


還有一些其他的組織或個(gè)人提出的關(guān)于SOA的解釋,這里就不一一列舉了。基本上,大家眼中的SOA都有以下特點(diǎn):基于軟件的模塊化和以太網(wǎng)的通信,提供標(biāo)準(zhǔn)的服務(wù)組件,使軟件與硬件解耦,從而可以靈活的設(shè)計(jì)和擴(kuò)展上層的應(yīng)用。


在IT行業(yè),這已經(jīng)是一種基本常識(shí)了,因?yàn)镮T行業(yè)的發(fā)展日新月異,誰(shuí)也不知道明天又要有什么樣的需求提出來,而且,以太網(wǎng)已經(jīng)是一種IT的基礎(chǔ)設(shè)施。加之IT行業(yè)的主要硬件只有一種——電腦(處理器+存儲(chǔ)器),這已經(jīng)是基本的標(biāo)準(zhǔn)化的設(shè)施了,所以推行SOA是相對(duì)容易的。


但是,在汽車上就完全不同了。每個(gè)汽車上的硬件都不一樣:數(shù)量多、沒有統(tǒng)一的標(biāo)準(zhǔn)。任何一臺(tái)配置一般的車上的電器件都有至少二三百個(gè)以上,雖然總價(jià)值遠(yuǎn)遠(yuǎn)比不上一個(gè)服務(wù)器,但是如果你把上百萬(wàn)臺(tái)車的硬件都加起來,總價(jià)值就高的驚人了。再加之汽車是一個(gè)高可靠性、高安全性的產(chǎn)品——一個(gè)故障可能傷害的不止一條人命,總的設(shè)計(jì)要求在很多方面就遠(yuǎn)遠(yuǎn)高于IT行業(yè)了。這也是為啥中國(guó)汽車在發(fā)展了幾十年之后還沒在努力追趕的原因。


SOA究竟是蜜糖還是d藥?的圖2


接下來就聊聊汽車上軟件的設(shè)計(jì)究竟復(fù)雜在哪里?


首先,先看看現(xiàn)在的分布式系統(tǒng)的特點(diǎn)。簡(jiǎn)單概括一下:整車的控制任務(wù)有幾十個(gè)控制器分工合作完成,各個(gè)控制器之間通過CAN/LIN總線進(jìn)行信息、指令的交換和傳遞。可以命名為Signal OrientedArchitecture(面向信號(hào)的架構(gòu))。


整車現(xiàn)在可能有超過100個(gè)控制器,所以整車的信息流的設(shè)計(jì)就變得越來越復(fù)雜。因?yàn)楝F(xiàn)在的架構(gòu)是經(jīng)過了幾十年逐漸演變出來的,而且各個(gè)控制器的功能相對(duì)單一,即使在不斷的進(jìn)行整合,但是很少有真正革命性的創(chuàng)新,所以大部分OEM在開發(fā)新車型的時(shí)候只需要找到相應(yīng)的Tier1供應(yīng)商,由這些專業(yè)人士提出需求,OEM的工程師再去拉通各個(gè)供應(yīng)商從而把需求實(shí)現(xiàn)即可。


各個(gè)供應(yīng)商大部分都是平臺(tái)化開發(fā),做了一個(gè)成功的項(xiàng)目之后,就把這個(gè)平臺(tái)推廣到其他的OEM去,尤其是對(duì)于國(guó)內(nèi)的OEM,在電子方面做的集成工作遠(yuǎn)遠(yuǎn)大于真正的研發(fā)。在分布式階段,大部分OEM基本不需要了解系統(tǒng)里面的詳細(xì)運(yùn)行機(jī)制,只要關(guān)注系統(tǒng)的外部行為與接口就足夠了。所以O(shè)EM的很多電子工程師的主要精力都放在了供應(yīng)商管理與問題管理方面。


SOA究竟是蜜糖還是d藥?的圖3


而到了SOA(Service Oriented Architecture)面向服務(wù)的架構(gòu)階段,對(duì)OEM的能力要求就完全變了。SOA的目的是:構(gòu)建靈活可變的平臺(tái)系統(tǒng)。它的特性包括以下幾個(gè):

1.服務(wù)間 松耦合,無(wú)狀態(tài)、無(wú)依賴

2.服務(wù)內(nèi) 高內(nèi)聚且完整,可復(fù)用、可靈活重組

3.服務(wù)通信標(biāo)準(zhǔn)化


從中我們看到SOA實(shí)現(xiàn)重點(diǎn)在于:


服務(wù)通信標(biāo)準(zhǔn)化,即面向服務(wù)的通信(SOC,Service-Oriented Communication),以服務(wù)重用、靈活重組為目的的服務(wù)劃分,即基于服務(wù)的復(fù)用共享式設(shè)計(jì)(SORS,Service-Oriented Reuse-shared Design)。還有一個(gè)隱形的重點(diǎn),就是用于承載和適配SOC和SORS的軟件實(shí)現(xiàn),即基于服務(wù)的軟件架構(gòu)(SOS,Service-Oriented Software Architecture)


在IT行業(yè),這種標(biāo)準(zhǔn)是相對(duì)容易實(shí)現(xiàn)的,因?yàn)閺?qiáng)大的電腦服務(wù)器可以輕松的部署重量級(jí)的標(biāo)準(zhǔn)組件來支持通信的標(biāo)準(zhǔn)化,也因?yàn)镮T行業(yè)的硬件基礎(chǔ)設(shè)施一致性更好,外設(shè)種類相對(duì)來說要少很多,對(duì)單件成本的敏感性要低很多。


而汽車行業(yè)的特點(diǎn)是硬件沒有標(biāo)準(zhǔn)——各個(gè)OEM都根據(jù)自己的想法來選取各種部件,從而讓車上的標(biāo)準(zhǔn)件非常少,尤其是在控制器層面。這會(huì)導(dǎo)致汽車上的架構(gòu)在向服務(wù)化演進(jìn)的時(shí)候是無(wú)法直接復(fù)制IT上成熟的模式的。


SOA究竟是蜜糖還是d藥?的圖4


現(xiàn)在各個(gè)OEM包括各級(jí)供應(yīng)商,努力在做的事情就是將現(xiàn)有的汽車上的功能重新定義成為服務(wù),并改造現(xiàn)有的電器架構(gòu),將以太網(wǎng)作為主要通信設(shè)施,并將控制器邏輯上移至域控制器,這種努力至少在理論上是正確的,只是現(xiàn)實(shí)太殘酷。先不談大多數(shù)的OEM在系統(tǒng)邏輯和需求方面的積累有多少,是否足夠做自主的服務(wù)設(shè)計(jì),我們先來看看做服務(wù)設(shè)計(jì)有哪些挑戰(zhàn)。


下面是SOME/IP引進(jìn)的一些新名詞:


SOA究竟是蜜糖還是d藥?的圖5


Method:

?Withresponse (Request/Response).

?Withoutresponse (Fire&Forget).

Events: Message from Server to Client when something happens.

Fields: Getter/Setter/Notifier of a property/ status.

Eventgroups: A logical group of Events and Fields used forpublish/subscribe handling。


雖然說到本質(zhì),這些新的名詞所代表的技術(shù)實(shí)現(xiàn)的也是傳統(tǒng)汽車上的那些工作,但是所應(yīng)用到的技術(shù)卻完全不一樣了。不同的技術(shù)就要求有不同的組織結(jié)構(gòu)與人員能力。這種變革需要的不只是供應(yīng)商的轉(zhuǎn)變,更需要OEM的徹底轉(zhuǎn)型。而任何的轉(zhuǎn)型期都一定會(huì)有一批人死去的。


大家再看看下面的兩張圖:


SOA究竟是蜜糖還是d藥?的圖6


SOA究竟是蜜糖還是d藥?的圖7


如果你明白第一張圖講的是什么,那么你是一個(gè)合格的汽車電子的系統(tǒng)工程師或者架構(gòu)工程師。如果你明白第二張圖所代表的含義和每一個(gè)縮寫,那么你是一個(gè)合格的IT工程師。可是我做過一個(gè)小試驗(yàn),讓身邊的一些朋友來看兩張圖,然而很少有人能全部說清楚的。而這個(gè)就是汽車行業(yè)的現(xiàn)狀——跨界的人太少了。大部分人都只精通一個(gè)領(lǐng)域,而現(xiàn)在則是需要融合的時(shí)候了。


NOKIA的時(shí)代,手機(jī)拼的是硬件,而現(xiàn)在的蘋果和安卓時(shí)代則是軟件加硬件。

汽車行業(yè)也一樣,分布式架構(gòu)的時(shí)代,大家只要有很強(qiáng)的硬件集成能力和產(chǎn)品定義能力就足夠了。而下一個(gè)時(shí)代,還需要增加一個(gè)新能力:軟件設(shè)計(jì)、開發(fā)和集成能力。


SOA究竟是蜜糖還是d藥?的圖8


現(xiàn)階段,有一個(gè)觀點(diǎn)甚囂塵上:將來車上的控制器數(shù)量會(huì)大幅度的減少。而我不得不提出一個(gè)與很多人的理想完全相反的觀點(diǎn):有了域控制器與SOA后,控制器的數(shù)量不會(huì)真的減少。現(xiàn)在各種鼓吹將來控制器只有幾個(gè)的觀點(diǎn)是無(wú)法被認(rèn)同的。


從邏輯角度講,首先要有一個(gè)概念的定義:控制器究竟是什么?這個(gè)沒有絕對(duì)的標(biāo)準(zhǔn),但是如果按照目前的在PCB上運(yùn)行軟件并具有一定的輸入輸出處理能力的硬件都是控制器的話,那么將來與域控制器或者網(wǎng)關(guān)直接通過總線進(jìn)行交互,并有自己軟件的硬件應(yīng)該叫做什么呢?


如果不叫做控制器的話,我實(shí)在想不出其他的名字了。那些博人眼球的鼓吹除了獲得一點(diǎn)流量之外,對(duì)這個(gè)行業(yè)毫無(wú)益處,而且還會(huì)誤導(dǎo)很多人。看過我那篇講IPO模型的朋友一定會(huì)認(rèn)同我的一個(gè)觀點(diǎn):無(wú)論架構(gòu)怎么發(fā)展,I/O口總是需要的。唯一真正大規(guī)模消滅控制器的機(jī)會(huì)在于傳感器與執(zhí)行器的智能化——也就是每個(gè)傳感執(zhí)行器都自帶了通訊與驅(qū)動(dòng)的芯片。在這個(gè)共產(chǎn)主義理想還沒有實(shí)現(xiàn)之前,控制器將長(zhǎng)期存在。


SOA時(shí)代與現(xiàn)在最大的區(qū)別是底層控制器中的軟件將專注于處理通訊和驅(qū)動(dòng),這也就是某業(yè)界巨頭所說的原子服務(wù)。如果汽車上所有的功能都可以被原子服務(wù)所實(shí)現(xiàn),那么汽車控制器的硬件必將被少數(shù)的巨頭所壟斷,因?yàn)镾OA的基礎(chǔ)之一是硬件的標(biāo)準(zhǔn)化。如果沒有標(biāo)準(zhǔn)化的硬件,軟件也無(wú)法標(biāo)準(zhǔn)化。而一旦硬件標(biāo)準(zhǔn)化,每個(gè)OEM自己去定制硬件必將是在商業(yè)上不劃算的。標(biāo)準(zhǔn)化的東西一定是規(guī)模化生產(chǎn)才有效益。縱觀所有的標(biāo)準(zhǔn)化的東西都一定是被巨頭們壟斷的。


再來看看軟件。雖然每個(gè)搞SOA的人都在說將來要靠軟件去賺錢,但是實(shí)際上在現(xiàn)在的IT世界中大部分利潤(rùn)還是被少數(shù)的巨頭所攫取了。在手機(jī)世界中,如果你不能成為蘋果,從而可以收取蘋果稅(蘋果App Store中的抽成),那么你雖然或許可以活下去,但是卻只能在某個(gè)細(xì)分市場(chǎng)中賺自己的辛苦錢。在未來,大部分OEM還將是一個(gè)硬件提供者,靠硬件去賺錢。因?yàn)檐浖捎谄錁O其容易復(fù)制的特性,導(dǎo)致軟件世界將會(huì)是馬太效應(yīng)的天下,贏者通吃。想靠軟件賺錢的基本前提是要具有絕對(duì)的壟斷地位。


試想在20年后,所有的車都是SOA架構(gòu)的,那個(gè)時(shí)候大部分OEM的利潤(rùn)率都會(huì)回歸正常水平,也許與現(xiàn)在不會(huì)有很大差異,但是少數(shù)OEM靠著自己的壟斷地位可以獲取巨額利潤(rùn)。這個(gè)可以類比當(dāng)前的手機(jī)行業(yè):只有蘋果與安卓?jī)纱箨嚑I(yíng),頭部的企業(yè)獲得最大的收益,其他的人只能勉強(qiáng)維持。一部分OEM變?yōu)樯贁?shù)幾個(gè)軟件能力強(qiáng)悍的OEM的打工者。軟件為王的時(shí)代,弱者連起碼的尊嚴(yán)可能都無(wú)法保存。


SOA究竟是蜜糖還是d藥?的圖9


SOA是一個(gè)循序漸進(jìn)的過程,汽車上是否真的需要大規(guī)模部署Service是一個(gè)值得討論的問題,基本的車輛應(yīng)用沒有必要也不可能都變成服務(wù)。


SOA的適用范圍還是需要逐步摸索。在信息娛樂領(lǐng)域等需要快速迭代的領(lǐng)域也許是一個(gè)好的選擇。

至少世界上還沒有一個(gè)真正的“全SOA”架構(gòu)出現(xiàn)。

SOA架構(gòu)的能夠在汽車上真正得到應(yīng)用的另一個(gè)前提是OEM的人才儲(chǔ)備能夠達(dá)到一個(gè)理想的水平,因?yàn)闆]有任何一個(gè)現(xiàn)有的供應(yīng)商能夠搞定整車的SOA。這就會(huì)產(chǎn)生一個(gè)后果:未來的汽車行業(yè)將以O(shè)EM為核心,并會(huì)有大量的Tier1、Tier2的人流向OEM。

人才流動(dòng)的原因有兩個(gè),OEM將自己做很多原來供應(yīng)商完成的事情,從而讓供應(yīng)商的工作量減少,導(dǎo)致人才擠出,另外一個(gè)是OEM為了完成SOA架構(gòu),不得不從供應(yīng)商處搶人。但是,如果OEM無(wú)法維持較高的利潤(rùn)率或者在SOA的殘酷競(jìng)爭(zhēng)中敗北了,則人才又會(huì)迅速流失。無(wú)論如何,對(duì)于OEM來說,怎么去管理新進(jìn)的人才,將是一個(gè)巨大的挑戰(zhàn)——因?yàn)榇蠹矣型耆煌乃季S模式和文化。

SOA究竟是蜜糖還是d藥?的圖10

啰嗦了這么多,只是想把自己對(duì)SOA的一些思考記錄下來,并分享給業(yè)界的朋友們。這些只是個(gè)人觀點(diǎn),錯(cuò)與對(duì): who knows?

最后,回到今天的標(biāo)題:不要盲目的去追熱點(diǎn),SOA是個(gè)好東西,但是肯定不是適合所有人。正如一句耳熟能詳?shù)脑挘篠OA有風(fēng)險(xiǎn),入市須謹(jǐn)慎。

作者:侯哥@Roy 專注汽車電子電氣架構(gòu)開發(fā)
編輯:文昌@Vincent 汽車信息安全從業(yè)者
SOA究竟是蜜糖還是d藥?的圖11
登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP