那么,怎么來理解SOA是一種模板軟件架構(gòu)?又如何理解為什么AP AUTOSAR是SOA?以下是筆者的一些理解分享給大家,如有不對之處,還請指出。 SOA的全稱是:面向服務(wù)的架構(gòu)(Service Oriented Architecture),從SOA的概念中,我們比較容易產(chǎn)生一個問題:這個架構(gòu)怎么來的?要想搞清楚這個點(diǎn),我們需要先理解以下SOA參考模型(SOA-RM)SOA參考模型(SOA-RM)描述了SOA環(huán)境中的各個組件(或者實(shí)體)及其之間的關(guān)系。當(dāng)前對SOA-RM的研究大致分為以下幾類:1. 以W3C的Web服務(wù)架構(gòu)工作組為代表:- 它是通過定義一些具體的功能組件和其他抽象實(shí)體來研究這些組件和實(shí)體之間的關(guān)系。但是,它定義于Web服務(wù)技術(shù)背景,故其架構(gòu)分析具有局限性。
2. 以O(shè)ASIS成立的SOA-RM技術(shù)委員會為代表: - 它主張以SOA中相關(guān)的抽象概念和實(shí)體為出發(fā)點(diǎn),來研究它們之間的關(guān)系。它認(rèn)為SOA涉及的元素包括服務(wù)與服務(wù)的描述,服務(wù)的發(fā)布與發(fā)現(xiàn)機(jī)制,服務(wù)的相關(guān)規(guī)范,數(shù)據(jù)模型和服務(wù)協(xié)議等!
3. 以軟件組件為基礎(chǔ)進(jìn)行系統(tǒng)架構(gòu)的研究- 主要有IBM、微軟等企業(yè)為代表,它們進(jìn)行著自己的應(yīng)用平臺以及解決方案的SOA研究。但是這樣的模型依賴于特定的技術(shù)平臺,因此,不是理想的SOA通用模型。
筆者比較認(rèn)可OASIS的觀點(diǎn),且與汽車行業(yè)相關(guān)度大,因此筆者將以O(shè)ASIS為代表的SOA-RM出發(fā)進(jìn)行分析。PS:《搞一下汽車電子》也為各位解鎖全系的朋友準(zhǔn)備了中文版的OASIS《soa-rm-v1.0》,在公眾號菜單欄聯(lián)系我們進(jìn)行獲取筆者基于OASIS的觀點(diǎn),整理了SOA-RM與SOA的關(guān)系如下:- SOA-RM并不與任何標(biāo)準(zhǔn)、技術(shù)和其他的具體實(shí)現(xiàn)細(xì)節(jié)關(guān)聯(lián)
- 與標(biāo)準(zhǔn)技術(shù)和其他具體實(shí)現(xiàn)細(xì)節(jié)相關(guān)聯(lián)的是SOA
簡單來說:SOA-RM只是一個框架,架構(gòu)師可以使用現(xiàn)有的協(xié)議(如web服務(wù)協(xié)議)、標(biāo)準(zhǔn)以及規(guī)范等來構(gòu)建具體的架構(gòu)實(shí)現(xiàn),那么根據(jù)SOA-RM,并結(jié)合一定協(xié)議、標(biāo)準(zhǔn)以及規(guī)范等構(gòu)建出來的架構(gòu)便是一種面向服務(wù)的架構(gòu)SOA! 到此,我們知道了SOA的構(gòu)建來自SOA-RM。那么,接著下一個問題,SOA到底是什么?上文筆者也說明了筆者眼中的SOA:SOA是一種模板軟件架構(gòu),這怎么理解?AP AUTOSAR是SOA又如何理解呢?我們往下看:在《AP AUTOSAR & SOA》中,我們主要介紹了SOA的通信機(jī)制,并簡單介紹了SOA的概念。知道了它不是具體的技術(shù)實(shí)現(xiàn),那么SOA是一種模板軟件架構(gòu)如何理解呢?- 模板:基于現(xiàn)有標(biāo)準(zhǔn)、技術(shù)等實(shí)現(xiàn)一套用于設(shè)計(jì)和開發(fā)應(yīng)用程序的原則和方法
- 軟件:這里的軟件代表著一種軟件設(shè)計(jì)模式,可以使用互操作服務(wù)的形式來開發(fā)軟件
- 架構(gòu):這里的架構(gòu)是指一種架構(gòu)設(shè)計(jì)模式,按照服務(wù)所屬所指定的約束和策略來執(zhí)行
- 軟件架構(gòu):是指由系統(tǒng)元素及其外部可見屬性以及他們之間的關(guān)系組成。
所以,筆者認(rèn)為SOA是一種模板軟件架構(gòu),并不是具體的技術(shù)實(shí)現(xiàn)。因?yàn)镾OA不涉及具體技術(shù)實(shí)現(xiàn)的內(nèi)容!這也能對應(yīng)了SOA是SOA-RM的一種應(yīng)用!這里對SOA中服務(wù)的概念進(jìn)行一個簡單說明:
- 服務(wù)是最基本的單元,一種能夠訪問一個或多個功能的機(jī)制
理解了SOA是一種模板軟件架構(gòu),那么為什么AP AUTOSAR是一種SOA,筆者認(rèn)為主要體現(xiàn)在以下方面:從模板的角度出發(fā)來理解,AP AUTOSAR提供了一套開發(fā)應(yīng)用程序的方法即AP AUTOSAR方法論,主要分為三部分:- 架構(gòu)與設(shè)計(jì)(下圖藍(lán)色框),包含:
- 通過Machine Design開發(fā)通信結(jié)構(gòu)
- 開發(fā)Application-Level類型的軟件
- 開發(fā)Platform-Level類型的軟件
- 創(chuàng)建Execution Manifest
AP AUTOSAR使用互操作服務(wù)的形式進(jìn)行軟件開發(fā),機(jī)制如下: 兩者之間是通過通信管理中間件(CMM)傳輸層進(jìn)行通信。通信管理中間件主要以下通信方式(協(xié)議約束): 服務(wù)提供者和服務(wù)消費(fèi)者之間的連接是CMM在運(yùn)行時動態(tài)創(chuàng)建的! 需要提到的是,AP AUTOSAR中采用了服務(wù)骨架(Service Skeleton)與服務(wù)代理(Service Proxy)模式,服務(wù)骨架與服務(wù)代理是根據(jù) ” 服務(wù)接口定義 “ 生成的。PS:那么SOME/IP如何設(shè)計(jì),DDS又如何設(shè)計(jì)?我們將會在后期《搞一下SOA》系列與《搞一下整車以太網(wǎng)》系列中進(jìn)行分享(需解鎖全系哦?。?/span>筆者認(rèn)為,單一個軟件通信還不足以成為軟件架構(gòu),AP AUTOSAR除了通信之外,還有其他的系統(tǒng)元素,如:與存儲相關(guān)的ara::per 功能集群。詳細(xì)的架構(gòu)圖如下,我們也在《What AP AUTOSAR》中對上述每個功能集群進(jìn)行了簡單的描述。因此,筆者認(rèn)為,AP AUTOSAR是SOA(注意這里是SOA,不是SOA-RM),是一種模板軟件架構(gòu)!上圖中需要提到的是,AP AUTOSAR規(guī)定,Application只能直接訪問POSIX的PSE51接口,不能直接訪問非PSE51接口。PS:《搞一下汽車電子》也為各位解鎖全系的朋友準(zhǔn)備了原版的《IEEE1003.13》,在公眾號菜單欄聯(lián)系我們進(jìn)行獲取解釋了為什么AP AUTOSAR是SOA,我們再來總結(jié)一下what AP AUTOSAR?
- 標(biāo)準(zhǔn):規(guī)范API及功能、規(guī)范交互方式、規(guī)范開發(fā)方法
這里筆者也總結(jié)了一下AP AUTOSAR的特性:
- 與現(xiàn)有標(biāo)準(zhǔn)及規(guī)范的兼容
我們從SOA-RM出發(fā),分析了AP AUTOSAR。AP AUTOSAR也剛發(fā)布了R2011版本,本系列后期也會結(jié)合AP AUTOSAR R20-11的新特性來分享《搞一下AP AUTOSAR進(jìn)階應(yīng)用》,因此,這里筆者為大家整理了一下AP AUTOSAR R20-11的一些更新!我們將從文檔、平臺設(shè)計(jì)以及新增特性等方面進(jìn)行分享。R2011文檔方面的變更還是很大的,《搞一下汽車電子》按照之前的分類方式將R2011進(jìn)行了整理,大家可以后臺回復(fù) ' AP點(diǎn)映 ' 進(jìn)行查看。
- Adaptive Foundation:與基礎(chǔ)功能集群相關(guān)的文檔
- Adaptive Service:與服務(wù)功能集群相關(guān)的文檔
- General:AP AUTOSAR General文檔
- Methodology And Manifest:與方法論、元模型以及Manifest等相關(guān)的文檔
- Release Documentation:Release相關(guān)文檔
其中Adaptive Foundation增加了很多Foundation中功能集權(quán)的解釋性說明文檔,主要包括:Adaptive Service部分,增加了以下內(nèi)容: 《AUTOSAR_RS_AutomatedDrivingInterfaces》規(guī)定了傳感器接口上AP AUTOSAR的要求。《AUTOSAR_SWS_SensorInterfaces》描述了傳感器接口的功能說明與接口Adaptive General部分進(jìn)行了以下更改:需要說明的是,R2011標(biāo)準(zhǔn)文檔中,沒有《AUTOSAR_SWS_General》等,筆者認(rèn)為是缺少了,而不是被刪除了。 Methodology And Manifest部分進(jìn)行了以下更改:其中《AUTOSAR_TPS_AdaptivePlatformTimingExtensions》是通過AUTOSAR元模型對時間擴(kuò)展正式定義的補(bǔ)充。 這里需要特別說明的一個文檔是《AUTOSAR_SWS_AdaptiveIntrusionDetectionSystemManager》。筆者認(rèn)為,上述文件入侵檢測系統(tǒng)管理(Idsm)應(yīng)該是一個屬于Foundation部分的功能集群(FC),但是,其他文檔中,都沒有與Idsm相關(guān)的內(nèi)容。即使是《平臺設(shè)計(jì)》中也沒有。屬于標(biāo)準(zhǔn)的問題,可能會在下個版本中有所體現(xiàn)。《平臺設(shè)計(jì)》是AP AUTOSAR中對AP AUTOSAR進(jìn)行概述的文檔,這里,對平臺設(shè)計(jì)中主要的改動進(jìn)行說明如下: 1. 在《持久性》章節(jié)進(jìn)行了以下更改:
- 在Adaptive Machine上安裝新的應(yīng)用程序軟件
- 將現(xiàn)有應(yīng)用程序軟件更新到Adaptive Machine
- 從Adaptive Machine卸載現(xiàn)有的應(yīng)用程序軟件
在R1911中,對上述三種應(yīng)用場景進(jìn)行了以下說明: UCM都使用持久性來部署/刪除/更新應(yīng)用程序的持久性數(shù)據(jù)在前兩個場景中,持續(xù)性由UCM通過EM觸發(fā),以部署/更新應(yīng)用程序的持久性數(shù)據(jù)在第三個場景中,UCM可以使用uri從持久性配置中刪除剩余的持久性數(shù)據(jù)2. 在《UCM》章節(jié),更改了UCM Master 的狀態(tài)機(jī): 我們也會在后期基于此分享' AP AUTOSAR & OTA' 3. 在《Crypto》章節(jié)更改了密鑰管理交互,如:增加獨(dú)立且受信任的環(huán)境等: 當(dāng)然,還有其他更多更改內(nèi)容,可參考《AP AUTOSAR 平臺設(shè)計(jì)》文檔。PS:《搞一下汽車電子》也為各位解鎖全系的朋友準(zhǔn)備了中文版的AP AUTOSAR R2011《平臺設(shè)計(jì)》,在公眾號菜單欄聯(lián)系我們進(jìn)行獲取從Safety方面來說,新增了系統(tǒng)健康監(jiān)控,主要用于系統(tǒng)協(xié)調(diào)健康狀況/錯誤。主要包含以下內(nèi)容:- 根據(jù)健康指標(biāo)進(jìn)行的機(jī)器恢復(fù)(例如降級)
從上圖也可以看出,SHM Client是在AP AUTOSAR端,SHM Master是CP AUTOSAR端。這也是AUTOSAR官方在AP AUTOSAR 功能安全方面的又一考慮吧。有關(guān)AP AUTOSAR & Safety更多內(nèi)容,可查看《AP AUTOSAR & Safety》在Safety方面,也增加了確定性同步的內(nèi)容,描述了同步行為和周期性激活的要求,包括時間同步和數(shù)據(jù)同步。 從Security方面來說,增加了入侵檢測系統(tǒng)管理,有標(biāo)準(zhǔn)化的接口來報(bào)告安全事件,有標(biāo)準(zhǔn)化的過濾機(jī)制,來通過網(wǎng)絡(luò)來傳輸合格的安全事件。PS:還是如前所說,除了一份Idsm文檔外,無更多描述在Security方面,也增加了Crypto API的描述: 上述,便是R2011主要的變更,當(dāng)然還有很多變更,我們會在后期的系列分享中,與大家進(jìn)行分享,那么為什么要分享《搞一下AP AUTOSAR進(jìn)階應(yīng)用》- 需要一套標(biāo)準(zhǔn)化的開發(fā)流程,我們會分享' AP AUTOSAR 方法論'
- 汽車EEA從分布式到域集中式再到車輛集中式發(fā)展過程中,需要新的技術(shù)、協(xié)議來作為支撐,我們會分享' AP AUTOSAR & EEA'。
當(dāng)然我們也有《搞一下SOA》系列。
- 為了避免召回,需要整車OTA功能,我們會分享' AP AUTOSAR & OTA '
- 汽車高度自動駕駛等需要基于POSIX OS運(yùn)行具有ASIL 要求的實(shí)時Application,系統(tǒng)需要確定性行為,我們會分享 ' AP AUTOSAR & 確定性執(zhí)行'
- AP標(biāo)準(zhǔn)中無XCP協(xié)議,那么如何基于AP來做標(biāo)定,我們會分享' AP AUTOSAR & 標(biāo)定 '
- 在AP AUTOSAR中能否使用基于視覺的算法?我們會分享' AP AUTOSAR & AI '
- 如何在AP AUTOSAR中使用DDS的網(wǎng)絡(luò)綁定?我們會分享' AP AUTOSAR & DDS '
- 自動駕駛平臺涉及哪些軟件技術(shù)?AP扮演什么角色?我們會分享 ' AP AUTOSAR & 自動駕駛'
- 智能座艙涉及哪些技術(shù)?AP 扮演什么角色?我們會分享 ' AP AUTOSAR & 智能座艙 '
- 如何基于AP AUTOSAR開發(fā)中央計(jì)算單元?我們會分享' AP AUTOSAR & 中央計(jì)算單元'
- 如何基于現(xiàn)有物聯(lián)網(wǎng)技術(shù)與AP解決昂貴的車輛更新緩慢問題?我們會分享' AP AUTOSAR & IoT '
- 系統(tǒng)應(yīng)能夠支撐應(yīng)用程序分離,我們會分享' AP AUTOSAR & Hypervisor'
當(dāng)然,上述內(nèi)容會根據(jù)實(shí)際情況進(jìn)行一定的調(diào)整。最后再回答一個大家比較關(guān)心的問題:如何學(xué)習(xí)AP AUTOSAR?
|