題記:吾之美食,汝之鴆毒。--《物性論》
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ā)展日新月異,誰也不知道明天又要有什么樣的需求提出來,而且,以太網(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ù)器,但是如果你把上百萬臺(tái)車的硬件都加起來,總價(jià)值就高的驚人了。再加之汽車是一個(gè)高可靠性、高安全性的產(chǎn)品——一個(gè)故障可能傷害的不止一條人命,總的設(shè)計(jì)要求在很多方面就遠(yuǎn)遠(yuǎn)高于IT行業(yè)了。這也是為啥中國(guó)汽車在發(fā)展了幾十年之后還沒在努力追趕的原因。
2
接下來就聊聊汽車上軟件的設(shè)計(jì)究竟復(fù)雜在哪里?
首先,先看看現(xiàn)在的分布式系統(tǒng)的特點(diǎn)。簡(jiǎn)單概括一下:整車的控制任務(wù)有幾十個(gè)控制器分工合作完成,各個(gè)控制器之間通過CAN/LIN總線進(jìn)行信息、指令的交換和傳遞??梢悦麨镾ignal 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(Service Oriented Architecture)面向服務(wù)的架構(gòu)階段,對(duì)OEM的能力要求就完全變了。SOA的目的是:構(gòu)建靈活可變的平臺(tái)系統(tǒng)。它的特性包括以下幾個(gè):
-
服務(wù)間 松耦合,無狀態(tài)、無依賴
-
服務(wù)內(nèi) 高內(nèi)聚且完整,可復(fù)用、可靈活重組
-
服務(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í)候是無法直接復(fù)制IT上成熟的模式的。

現(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)的一些新名詞:

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ì)有一批人死去的。大家再看看下面的兩張圖:


如果你明白第一張圖講的是什么,那么你是一個(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ā)和集成能力。
轉(zhuǎn)載汽車電子相關(guān)文章
轉(zhuǎn)自汽車電子與軟件