上一篇零小束主要介紹了電子電氣架構(gòu)的演進(jìn)方向,,以及基于SOA架構(gòu)的一些優(yōu)點(diǎn),本篇將繼續(xù)深入,,重點(diǎn)闡述SOA軟件架構(gòu)的相關(guān)內(nèi)容,。 1)對(duì)SOA軟件架構(gòu)的理解 2)SOA軟件架構(gòu)的現(xiàn)狀 3)SOA軟件架構(gòu)的設(shè)計(jì)方式 4)SOA軟件架構(gòu)目前面臨的問題 5)SOA軟件架構(gòu)的未來發(fā)展 一、對(duì)SOA軟件架構(gòu)的理解 百度百科定義中,,SOA是一種面向服務(wù)架構(gòu),,它可以根據(jù)需求通過網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署,、組合和使用。服務(wù)層是SOA的基礎(chǔ),,可以直接被應(yīng)用調(diào)用,,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。 我們從另一個(gè)角度看過來,,服務(wù)是SOA的主體,,服務(wù)之間的關(guān)系構(gòu)成了SOA軟件架構(gòu)。將服務(wù)比作磚石,,那么SOA軟件架構(gòu)必然是參天大廈,,而大廈不同的樓層,代表著服務(wù)之間的相互依賴,、連接關(guān)系,。即,SOA軟件架構(gòu)中,,隱含著分層思想,,服務(wù)是可分層的服務(wù)。上層服務(wù)使用下層服務(wù),,下層服務(wù)給上層提供能力支撐,。通過將不同上層服務(wù)的需求抽離聚合,形成一個(gè)個(gè)下層服務(wù),,逐步迭代,,最終形成SOA軟件服務(wù)的分層架構(gòu)。 目前,,在新四化浪潮下,,車輛聯(lián)網(wǎng)的普及率非常高,所以我們?cè)O(shè)計(jì)的SOA軟件架構(gòu)包括車端SOA軟件架構(gòu)+云端軟件架構(gòu),。 ↑SOA軟件架構(gòu)層級(jí) 如上圖所示,,將SOA服務(wù)分為基礎(chǔ)服務(wù)、擴(kuò)展服務(wù),、應(yīng)用服務(wù),。這三種服務(wù)類型,分別對(duì)應(yīng)著不同能力屬性,,每一類服務(wù)都有著明確的服務(wù)單一性,,即,每一個(gè)服務(wù)單元都只提供一種服務(wù)或者說只有一種功能,。從這里也可以看出,,服務(wù)的形成是因?yàn)楣δ埽煌褂谜邔?duì)同一個(gè)功能的需求,,促使了服務(wù)下沉聚合,。多個(gè)上層服務(wù)使用同一個(gè)下層服務(wù),,那么便出現(xiàn)了服務(wù)標(biāo)準(zhǔn)化的需求,簡單說就是服務(wù)接口的標(biāo)準(zhǔn)化,。 SOA軟件架構(gòu)還有另外一些特性:高內(nèi)聚,、低耦合,、服務(wù)平臺(tái)無關(guān)化,、服務(wù)動(dòng)態(tài)部署/動(dòng)態(tài)發(fā)現(xiàn)。所以,,將基于SOA架構(gòu)的操作系統(tǒng)分成如下層級(jí),,已實(shí)現(xiàn)完整意義上的SOA軟件架構(gòu)。 1) OS AL層:屏蔽操作系統(tǒng)對(duì)SOA架構(gòu)的影響 2)SOA Framework層:提供基于SOA架構(gòu)的服務(wù)設(shè)計(jì)所需的所有基礎(chǔ)組件 3)SOA Platform層:提供通用化的SOA服務(wù),,提高功能的復(fù)用率,,共包含2個(gè)子塊:a)基礎(chǔ)服務(wù)層:可獨(dú)立運(yùn)行,無外部依賴的服務(wù),;b)擴(kuò)展服務(wù)層:使用基礎(chǔ)服務(wù),,進(jìn)行橫向組合擴(kuò)展,實(shí)現(xiàn)復(fù)雜功能邏輯的服務(wù) 4)外部服務(wù)層:根據(jù)項(xiàng)目需求,,使用其他域控制器或云端提供的服務(wù)接口,,實(shí)現(xiàn)“云管端一體化SOA軟件平臺(tái)” 5)應(yīng)用服務(wù)層:基于SOA Framework和SOA Platform提供的能力支撐,根據(jù)需求定制的邏輯業(yè)務(wù)功能,。 6)應(yīng)用層適配接口層:將SOA服務(wù)與應(yīng)用層隔離開,,轉(zhuǎn)化SOA服務(wù)接口為不同系統(tǒng)的native開發(fā)語言,加速應(yīng)用層開發(fā)效率,,使應(yīng)用層與SOA服務(wù)層隔離,。 7)Cloud Service層:基于SOA軟件架構(gòu),通過車云一體化軟件組件實(shí)現(xiàn)車端—云端服務(wù)對(duì)等且位置無關(guān)化,。 并且,,在層級(jí)設(shè)計(jì)過程中,域內(nèi)/域間不同層級(jí)間的接口設(shè)計(jì)遵循標(biāo)準(zhǔn)C/C++接口規(guī)范和標(biāo)準(zhǔn)POSIX接口規(guī)范,,與云端采用服務(wù)代理的方式,,內(nèi)部封裝標(biāo)準(zhǔn)RESTful規(guī)范接口。這種規(guī)則賦予了SOA服務(wù)的平臺(tái)無關(guān)化屬性,,從而,,整個(gè)SOA軟件架構(gòu)也就實(shí)現(xiàn)了平臺(tái)無關(guān)化。 二,、SOA軟件架構(gòu)的現(xiàn)狀 2007年,,IDC發(fā)布了《S0A中國路線圖》。SOA概念開始在國內(nèi)流行,。彼時(shí)SOA概念已在美國深入發(fā)展并達(dá)到普及的程度,,而中國才剛剛開始,。其中差距大約在10年。 最初,,SOA軟件架構(gòu)是IT互聯(lián)網(wǎng)行業(yè)為了解決服務(wù)器單體架構(gòu)的系統(tǒng)耦合性高,、技術(shù)選型單一、開發(fā)效率低下等問題而提出的分布式系統(tǒng)架構(gòu),,并且取得了巨大的成功,。如今,借鑒著過去互聯(lián)網(wǎng)行業(yè)SOA軟件架構(gòu)的成功經(jīng)驗(yàn),,我們希望能將此架構(gòu)遷移至汽車領(lǐng)域,,以期望能解決汽車軟件開發(fā)遇到的困難: 1)不同ECU軟件系統(tǒng)差異大,表現(xiàn)在硬件,、系統(tǒng),、資源等方面 2)資源預(yù)留少,主要分配給確定的功能,,無法兼容后期更新迭代 3)通訊協(xié)議及網(wǎng)絡(luò)拓?fù)涔潭ǎㄍㄟ^LIN/CAN等硬線連接) 4)對(duì)于新增加的功能,,往往需要很多地方同步變更,可謂是牽一發(fā)而動(dòng)全身,,且更改成本高,、周期長 5)車載軟件往往以獨(dú)立個(gè)體形式存在,無法與云端連通,,形成車輛網(wǎng)絡(luò) 長久以來,,國內(nèi)汽車OEM廠商飽受反向開發(fā)流程的壓迫,極大的壓抑了OEM的主動(dòng)權(quán),,OEM廠商受制于平臺(tái)化的零部件,,功能始終無法得到突破性發(fā)展,越來越多的OEM廠商想要變革,,恰逢最近軟件定義汽車(SDV:Software Design Vehicle)的概念逐漸被炒熱,,目前國內(nèi)各大主流OEM廠商跟頂級(jí)Tier1都在不同程度上對(duì)SOA架構(gòu)進(jìn)行試探,以期望能突出重圍,,找到企業(yè)的突破點(diǎn),。 在軟件定義汽車概念的瘋狂普及中,SOA軟件架構(gòu)發(fā)揮著至關(guān)重要的作用,,它是這次變革的急先鋒,,將拉開這場(chǎng)變革的序幕,讓變革變得水到渠成,。 三,、SOA軟件架構(gòu)的設(shè)計(jì)方式 從前面可以看出,SOA軟件架構(gòu)在巨大的推動(dòng)力下在向前奔跑,設(shè)計(jì)優(yōu)越的SOA軟件架構(gòu),,必然要滿足以下特征: 1)屏蔽異構(gòu)性:SOA服務(wù)間采用標(biāo)準(zhǔn)中立的接口和契約,,屏蔽不同硬件、系統(tǒng),、開發(fā)語言間的差異,。 2)服務(wù)可復(fù)用:可通過組件之間的組裝、編排和重組,,來實(shí)現(xiàn)服務(wù)的復(fù)用,。 3)數(shù)據(jù)共享:SOA服務(wù)層級(jí)中,所有服務(wù)均與總線連接,,意味著每一個(gè)服務(wù)都可以獲取到連接到總線上的服務(wù)所提供的數(shù)據(jù),,打破了傳統(tǒng)功能的信息孤島,。 4)靈活調(diào)整:基于總線的SOA服務(wù),,無需關(guān)心服務(wù)的位置,服務(wù)間以總線作為連接的橋梁,,每個(gè)服務(wù)可根據(jù)需求靈活遷移,、升級(jí)等。 5)降低用戶成本:用戶無需關(guān)心各服務(wù)間的language binding,,僅需通過現(xiàn)有標(biāo)準(zhǔn)化接口調(diào)用,,實(shí)現(xiàn)服務(wù)功能即可。 6)服務(wù)運(yùn)行狀態(tài)管控:SOA中的服務(wù)注冊(cè)發(fā)現(xiàn)能力,,可幫助用戶識(shí)別異常服務(wù),,保證系統(tǒng)正常運(yùn)行。 7)云管端一體化服務(wù)平臺(tái):建立車端服務(wù)與云端服務(wù)的對(duì)等關(guān)系,,云端服務(wù)與車端服務(wù)采用標(biāo)準(zhǔn)化的統(tǒng)一接口進(jìn)行交互,,完成服務(wù)功能。 以上特征中,,提到3個(gè)很重要的點(diǎn): 1)一個(gè)是服務(wù)治理能力 2)另一個(gè)是總線,,在這里特指的是ESB總線(Enterprise Service Bus) 3)最后一個(gè)是上面提到的車云一體化軟件組件 零束云管端一體化SOA軟件平臺(tái)通過定制化SSP(Software Service Platform)實(shí)現(xiàn)了以上3點(diǎn),其中,,服務(wù)治理能力包含如下部分: 1)服務(wù)動(dòng)態(tài)發(fā)現(xiàn):服務(wù)支持動(dòng)態(tài)插入,、刪除、更新,,由服務(wù)提供方管理服務(wù)的所有依賴關(guān)系,、資源需求等,并控制服務(wù)offer/stop的時(shí)序,。 2) 服務(wù)設(shè)計(jì):SSP對(duì)服務(wù)的實(shí)現(xiàn)有詳細(xì)的設(shè)計(jì)要求,,服務(wù)設(shè)計(jì)過程中,需滿足相應(yīng)要求來實(shí)現(xiàn)SOA化,。 3) 服務(wù)實(shí)現(xiàn):根據(jù)SSP提供的服務(wù)接口,,完成接口實(shí)現(xiàn)的代碼開發(fā),。 4)服務(wù)部署:SSP在設(shè)計(jì)之初就繼承了跨平臺(tái)屬性,服務(wù)可根據(jù)實(shí)際使用情況,,在不同環(huán)境,、硬件、系統(tǒng)中部署一個(gè)或多個(gè)實(shí)例,,以達(dá)到最大化的重用率,。 5)服務(wù)管控:服務(wù)運(yùn)行過程中,服務(wù)中的運(yùn)行管理,,包括服務(wù)狀態(tài)管理,、服務(wù)執(zhí)行管理、相關(guān)的服務(wù)運(yùn)行數(shù)據(jù)等,,都可以被SSP監(jiān)測(cè)到并通過收集到的數(shù)據(jù)判斷服務(wù)的運(yùn)行健康度,,給服務(wù)乃至整個(gè)系統(tǒng)提供強(qiáng)有力的穩(wěn)定、性能保證,。除此之外,,服務(wù)的權(quán)限配置也是很重要的考慮選項(xiàng),服務(wù)發(fā)布后,,可控制對(duì)外的授權(quán)管理,,保證只有允許/授信的服務(wù)才可以使用服務(wù)。 6)ESB總線: SOA軟件架構(gòu)有個(gè)顯著的特征,,即服務(wù)中心化思想,。服務(wù)之間的所有連接,均需通過ESB總線通訊,。ESB總線名稱上是通訊總線,,但我們認(rèn)為,應(yīng)該把ESB稱之為SOA服務(wù)中間件更恰當(dāng),,ESB總線實(shí)現(xiàn)了以下幾個(gè)特征: a)所有服務(wù)間禁止任何形式的直接連接,,唯一許可的通信方式,就是通過網(wǎng)絡(luò)調(diào)用服務(wù)接口,。 b)網(wǎng)絡(luò)調(diào)用的具體實(shí)現(xiàn)方式不做強(qiáng)制要求,,可根據(jù)不同系統(tǒng)的特性選擇最優(yōu)解決方案,目前支持Http,、Binder,、ZMQ、VIWI等,,但均需支持以下能力:同步請(qǐng)求,、異步請(qǐng)求、訂閱、發(fā)布,。 c)服務(wù)接口設(shè)計(jì)以可公開作為設(shè)計(jì)導(dǎo)向,,即,所有的服務(wù)接口,,必須是可以對(duì)外部人員開發(fā)的,,沒有例外。 d)車云一體化軟件組件 e)實(shí)現(xiàn)車端—云端服務(wù)對(duì)等且位置無關(guān)化 f)并針對(duì)不同車型配置,,實(shí)現(xiàn)個(gè)性化配置管理及相應(yīng)的服務(wù)管理 ↑SOA軟件架構(gòu)圖 其實(shí),,SOA軟件架構(gòu)中還有一項(xiàng)非常重要的功能,服務(wù)管理,。前面有提到,,所有基于SOA軟件架構(gòu)的服務(wù)開發(fā),其接口必須是充分暴露出來的,任何人都可以使用,這當(dāng)然帶來了很大的便利性和擴(kuò)展性。但是,我們同時(shí)不能忽視汽車的安全性,,所以,在滿足我們所需要的所有屬性之后,,仍然需要對(duì)SOA軟件架構(gòu)做相應(yīng)的安全防護(hù),,來阻止黑客、第三方應(yīng)用/服務(wù)的惡意攻擊破壞,,保護(hù)整個(gè)系統(tǒng)的穩(wěn)定高效,。 在SSP中,通過服務(wù)管理可根據(jù)不同車型適配,,動(dòng)態(tài)更新權(quán)限配置信息,,保證多平臺(tái)通配型。甚至,,SSP還支持將權(quán)限與賬號(hào)等進(jìn)行綁定,,在同一輛車上實(shí)現(xiàn)千人千面的功能展示。 四,、SOA軟件架構(gòu)目前面臨的問題 軟件開發(fā)業(yè)內(nèi)有一句名言“軟件開發(fā)沒有銀彈”,,前面介紹了很多SOA軟件架構(gòu)的設(shè)計(jì)及優(yōu)點(diǎn),但SOA軟件架構(gòu)并不能解決全部問題,。下面我們來分析一下SOA軟件架構(gòu)可能面臨的一些挑戰(zhàn): 1)性能方面:SOA軟件架構(gòu)將共通的功能邏輯下沉封裝成服務(wù),,這就意味著將原本的一個(gè)功能主體拆分成不同的服務(wù),共同編排組合形成業(yè)務(wù)功能,。服務(wù)間通過網(wǎng)絡(luò)通信,,增加了系統(tǒng)的復(fù)雜度,對(duì)性能略有影響。 2)基于SOA軟件架構(gòu)開發(fā)的服務(wù),,都是獨(dú)立部署,,相較于傳統(tǒng)的功能塊部署,增加了復(fù)雜度,,每個(gè)服務(wù)都需要獨(dú)立的配置,、部署、監(jiān)控,、日志收集等,,運(yùn)維成本將有所提升。 3) 一個(gè)完整的功能,,通常是需要多個(gè)服務(wù)協(xié)同完成,。這就涉及到服務(wù)間的依賴關(guān)系測(cè)試以及服務(wù)異常的容錯(cuò)處理機(jī)制,對(duì)服務(wù)開發(fā)過程有相對(duì)較高的要求,。 4)目前的SOA多基于SOME/IP實(shí)現(xiàn),,在大數(shù)據(jù)傳輸方面弊端較明顯。 5)SOA架構(gòu)在設(shè)計(jì)實(shí)現(xiàn)初期,,會(huì)花費(fèi)更多的成本,,而投資回報(bào)率暫時(shí)無法量化。 6)SOA服務(wù)劃分顆粒度定義標(biāo)準(zhǔn)暫不明晰,,就像一百個(gè)人心中有一百個(gè)哈姆雷特,。 7)云管端一體化SOA軟件架構(gòu)下,云端與車端的通信延時(shí)也是當(dāng)前的一大痛點(diǎn),。 五,、SOA軟件架構(gòu)的未來發(fā)展 我們認(rèn)為,SOA軟件架構(gòu)的升華是微服務(wù)架構(gòu),,兩者之間的最大區(qū)別在于:SOA軟件架構(gòu)為中心化思想,,而微服務(wù)架構(gòu)為去中心化思想。 為什么說兩者之間是一種升華關(guān)系呢,?究其原因,,其本質(zhì)統(tǒng)一,但服務(wù)細(xì)膩度不同,,具體如下: 1)微服務(wù)講究的是將SOA服務(wù)繼續(xù)進(jìn)行顆粒度拆分,,不同功能相互獨(dú)立,每個(gè)微服務(wù)專注只做一件事情,。 2) SOA軟件架構(gòu)中,,服務(wù)的故障將導(dǎo)致服務(wù)的整體失效,而微服務(wù)僅僅可能導(dǎo)致服務(wù)降級(jí),。 3)在擴(kuò)展性方面,,SOA軟件架構(gòu)強(qiáng)調(diào)的是服務(wù)級(jí)擴(kuò)展,,而微服務(wù)架構(gòu)可針對(duì)單個(gè)服務(wù)進(jìn)行功能擴(kuò)展。 4)通信方面,,采用輕量化通訊架構(gòu),,減輕/消除微服務(wù)拆分帶來的服務(wù)數(shù)量上升對(duì)性能的影響。 微服務(wù)架構(gòu)在云端已經(jīng)相當(dāng)成熟,,車端實(shí)現(xiàn)微服務(wù)化后,,加上我們的車云一體化設(shè)計(jì),可以完美打通與云端的服務(wù)對(duì)接,,并支持向下兼容,。 隨著時(shí)代的發(fā)展、科技的進(jìn)步,,或許會(huì)迸發(fā)出更加優(yōu)秀的軟件架構(gòu)或指導(dǎo)思想來指導(dǎo)車載軟件的繼續(xù)前行,。 六、結(jié)語 零束云管端一體化SOA軟件平臺(tái)的SOA系統(tǒng)解決方案基于對(duì)SOA軟件架構(gòu)的這些思考,,為整車SOA軟件架構(gòu)給出一個(gè)靈活的可配置可擴(kuò)展的解決方案,。同時(shí)零束云管端一體化SOA軟件平臺(tái)是一個(gè)高可靠可量產(chǎn)的整車SOA軟件平臺(tái),它旨在為基于SOA軟件架構(gòu)打造智能化汽車的伙伴賦能,,共同打造智能化汽車軟件新生態(tài),。 上面提到車云一體化軟件組件零小束將在后續(xù)章節(jié)中詳細(xì)跟大家分享,敬請(qǐng)期待,。 |
|