官术网_书友最值得收藏!

第2章 Adaptive AUTOSAR的架構(gòu)與組成

2.1 AP架構(gòu)總覽

2.1.1 邏輯架構(gòu)

在1.3.2節(jié)中,讀者初步了解了AP的架構(gòu),本節(jié)將詳細(xì)講解AP的架構(gòu)。AP的邏輯架構(gòu)如圖2-1所示。

圖2-1 AP的邏輯架構(gòu)

自適應(yīng)應(yīng)用程序(Adaptive Applications,AA)運(yùn)行在ARA(AUTOSAR Runtime for Adaptive Applications)之上。ARA由功能集群提供的應(yīng)用接口組成,它們屬于自適應(yīng)平臺(tái)基礎(chǔ)或自適應(yīng)平臺(tái)服務(wù)。自適應(yīng)平臺(tái)基礎(chǔ)提供AP的基本功能,自適應(yīng)平臺(tái)服務(wù)提供AP的平臺(tái)標(biāo)準(zhǔn)服務(wù)。任何AA也可以向其他AA提供服務(wù),圖2-1中所示為非平臺(tái)服務(wù)。

功能集群(Functional Clusters,F(xiàn)C)的接口是自適應(yīng)平臺(tái)基礎(chǔ)或自適應(yīng)平臺(tái)服務(wù)的接口,F(xiàn)C接口與AA無(wú)關(guān),它們只提供指定的C++接口或任何其他將來(lái)可能支持的與AP綁定的語(yǔ)言,這在底層確實(shí)存在著分歧。另外,在ARA接口下面,包括在AA上下文中調(diào)用的ARA庫(kù),可以使用ARA以外的其他接口來(lái)實(shí)現(xiàn)AP的規(guī)范,這取決于AP實(shí)現(xiàn)的設(shè)計(jì)。需要注意的是,為了能夠更好地了解整體結(jié)構(gòu),圖2-1的AP架構(gòu)邏輯視圖包含不屬于當(dāng)前AP版本的功能集群。在AP的未來(lái)版本中,可能會(huì)添加更多新的功能集群。

這些API的語(yǔ)言是基于C++的,C++標(biāo)準(zhǔn)庫(kù)也可以作為ARA的一部分。關(guān)于操作系統(tǒng)API,POSIX標(biāo)準(zhǔn)的單個(gè)進(jìn)程概要文件,即PSE51接口作為ARA的一部分是可用的。選擇PSE51是為了為現(xiàn)有POSIX應(yīng)用程序提供可移植的可能性,并實(shí)現(xiàn)應(yīng)用程序之間的自由交互。

注意:C++標(biāo)準(zhǔn)庫(kù)包含基于POSIX的許多接口,其中也包括多線程API。建議不要將C++標(biāo)準(zhǔn)庫(kù)線程接口與本地PSE51線程接口混合,以避免出現(xiàn)復(fù)雜的情況。需要特別注意的是,C++標(biāo)準(zhǔn)庫(kù)不包括所有的PSE51函數(shù),例如設(shè)置線程調(diào)度策略的函數(shù)。在這種情況下,可能需要同時(shí)使用兩個(gè)接口。

應(yīng)用程序的生命周期由執(zhí)行管理(Execution Management,EM)來(lái)管理。應(yīng)用程序的加載/啟動(dòng)是通過(guò)使用EM的功能來(lái)管理的,它需要在系統(tǒng)集成時(shí)或運(yùn)行時(shí)進(jìn)行適當(dāng)?shù)呐渲脕?lái)啟動(dòng)應(yīng)用程序。事實(shí)上,所有的功能集群都是通過(guò)EM管理的。除了EM本身之外,它們也是以同樣的方式啟動(dòng)、運(yùn)行和停止的。圖2-2說(shuō)明了不同類型且在AP內(nèi)部或在AP之上的應(yīng)用程序之間的關(guān)系。

圖2-2 應(yīng)用程序關(guān)系

需要明確的一點(diǎn)是,應(yīng)用程序啟動(dòng)或終止的決定不是由EM做出的。決定應(yīng)用程序的啟停是一種特殊的FC,稱為狀態(tài)管理(State Management,SM)。SM是根據(jù)系統(tǒng)的設(shè)計(jì)指揮EM的控制器,SM會(huì)仲裁不同的狀態(tài),從而控制整個(gè)系統(tǒng)的行為。由于這里的系統(tǒng)指的是整個(gè)AP的機(jī)器(Machine,后續(xù)章節(jié)會(huì)介紹到)及搭載在機(jī)器上正在運(yùn)行的應(yīng)用程序,因此實(shí)現(xiàn)的內(nèi)部行為是由每個(gè)項(xiàng)目的需求所決定的。同時(shí)SM還與其他FC交互,以協(xié)調(diào)整體機(jī)器行為。SM應(yīng)該只使用標(biāo)準(zhǔn)的ARA接口來(lái)維護(hù)不同AP棧之間的可移植性。

關(guān)于AA間的交互,由于PSE51不包括進(jìn)程間通信(IPC),因此AA間沒(méi)有直接的交互接口。通信管理(Communication Management,CM)是唯一的顯式接口。CM還為機(jī)器內(nèi)和機(jī)器間提供面向服務(wù)(SOA)的通信,這對(duì)應(yīng)用程序是透明的。CM處理服務(wù)請(qǐng)求/回復(fù)的路由選擇,而不考慮服務(wù)和客戶端應(yīng)用程序的拓?fù)洳渴稹F渌鸄RA接口可能會(huì)在內(nèi)部觸發(fā)AA之間的交互,但是,這不是顯式的通信接口,而只是各個(gè)ARA接口提供的功能的副產(chǎn)品。

最后,AA和功能集群可以使用任何非標(biāo)準(zhǔn)接口,只要它們不與AP標(biāo)準(zhǔn)功能沖突,并且符合項(xiàng)目的功能/信息安全要求。除非它們是純粹地使用程序本地庫(kù),否則應(yīng)該注意將這種使用保持在最低限度,因?yàn)檫@將影響軟件在其他應(yīng)用程序?qū)崿F(xiàn)上的可移植性。

主站蜘蛛池模板: 安庆市| 莫力| 鄂托克旗| 和田县| 大庆市| 德清县| 南安市| 汝州市| 驻马店市| 盱眙县| 延寿县| 偃师市| 天门市| 梁山县| 互助| 邢台县| 尼木县| 济源市| 泰兴市| 古浪县| 鹤壁市| 乌鲁木齐县| 格尔木市| 和硕县| 麻阳| 宁南县| 抚州市| 宜兰市| 周宁县| 囊谦县| 稷山县| 贵港市| 庄浪县| 石嘴山市| 安达市| 焦作市| 久治县| 论坛| 镶黄旗| 美姑县| 盐源县|