• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于AUTOSAR自適應(yīng)平臺的監(jiān)控與容錯(cuò)方案研究

    2024-06-12 01:36:24朱元趙乾翔張彪畢承鼎
    汽車文摘 2024年6期

    朱元 趙乾翔 張彪 畢承鼎

    【歡迎引用】 朱元, 趙乾翔, 張彪, 等. 基于AUTOSAR自適應(yīng)平臺監(jiān)控與容錯(cuò)方案研究[J]. 汽車文摘, 2024(XX): 1-11.

    【Cite this paper】 ZHU Y, ZHAO Q X, ZHANG B, et al. Research on Monitoring and Fault-Tolerance Scheme Based on AUTOSAR Adaptive Platform[J]. Automotive Digest (Chinese), 2024(XX):1-11.

    【摘要】為了解決面向服務(wù)的AUTOSAR自適應(yīng)平臺(AP)缺乏有效監(jiān)控與容錯(cuò)機(jī)制的問題,并確保軟件系統(tǒng)在故障情況下的高度穩(wěn)定性和安全性,以汽車基礎(chǔ)軟件平臺AP為研究對象,通過自動代客泊車(AVP)軟件系統(tǒng)設(shè)計(jì)了一套完備的監(jiān)控與故障容錯(cuò)機(jī)制,通過分析傳統(tǒng)軟件架構(gòu)與其他面向服務(wù)架構(gòu)的監(jiān)控方案和AP的特性,設(shè)計(jì)了AP的監(jiān)控方案,實(shí)現(xiàn)對平臺基礎(chǔ)設(shè)施(處理器、網(wǎng)絡(luò)、內(nèi)存)和服務(wù)狀態(tài)(響應(yīng)時(shí)間)的監(jiān)控;基于Qt開發(fā)的數(shù)據(jù)顯示模塊通過LT協(xié)議實(shí)現(xiàn)對實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)的采集與顯示;提出了一種支持SOME/IP協(xié)議的服務(wù)調(diào)用鏈追蹤方法,實(shí)現(xiàn)對面向服務(wù)架構(gòu)中復(fù)雜服務(wù)調(diào)用關(guān)系的分析。結(jié)果表明該方案能夠在AVP軟件系統(tǒng)中監(jiān)控和分析服務(wù)故障,并在發(fā)生故障時(shí)采取容錯(cuò)機(jī)制,提升系統(tǒng)可靠性。

    關(guān)鍵詞:AUTOSAR;面向服務(wù)架構(gòu);平臺監(jiān)控;容錯(cuò)機(jī)制

    中圖分類號:TP311.131 ? 文獻(xiàn)標(biāo)志碼:A ?DOI: 10.19822/j.cnki.1671-6329.20240021

    Research on Monitoring and Fault-Tolerance Scheme Based on AUTOSAR Adaptive Platform

    Zhu Yuan1, Zhao Qianxiang1, Zhang Biao2, Bi Chengding2

    (1. School of Automotive Engineering, Tongji University, Shanghai 201804; 2. Commercial Vehicle Development Institute, FAW Jiefang Automobile Co., Ltd., Changchun 130000)

    【Abstract】 To address the lack of effective monitoring and fault tolerance mechanisms in the service-oriented AUTOSAR Adaptive Platform (AP) and to ensure high stability and safety of the software system in case of faults, this study takes the automotive basic software platform AP as the research object. A complete monitoring and fault tolerance mechanism is designed through the Automated Valet Parking (AVP) software system. By analyzing traditional software architectures, other service-oriented architecture monitoring solutions, and the characteristics of AP, a monitoring scheme for AP is designed to supervise the platform infrastructure (processors, networks, memory) and service states (response times). A data display module developed with Qt, using the LT protocol, implements the collection and display of real-time monitoring data. Furthermore, a service call chain tracing method supporting the SOME/IP protocol is proposed, enabling analysis of complex service call relationships within service-oriented architectures. The results indicate that the scheme can monitor and analyze service failures within the AVP software system and implement fault tolerance mechanisms in case of failures, thus enhancing system reliability.

    Key words: AUTOSAR, Service-oriented architecture, Platform monitoring, Fault tolerance mechanism

    0 引言

    電動化、智能化、網(wǎng)聯(lián)化是汽車工業(yè)未來的3大發(fā)展趨勢,三者彼此關(guān)聯(lián),協(xié)同發(fā)展[1-7]。在新的汽車工業(yè)發(fā)展趨勢下,諸如自動代客泊車(Automated Valet Parking,AVP)系統(tǒng)、高級駕駛輔助系統(tǒng)和車載信息娛樂系統(tǒng)等新技術(shù)不斷地應(yīng)用于汽車領(lǐng)域[8-11]。為了滿足汽車日益增長的高計(jì)算需求,多核高性能微處理器正逐步應(yīng)用于汽車控制系統(tǒng)[12-13]。這些微處理器被用作域控制器,能夠整合原本分散在不同小型控制器中的功能,同時(shí)承擔(dān)更復(fù)雜的智能駕駛算法[14-15]。

    在這種背景下,2017年AUTOSAR聯(lián)盟推出了AUTOSAR自適應(yīng)平臺(Adaptive Platform,AP)。AP作為電子控制單元(Electronic Control Unit, ECU)的標(biāo)準(zhǔn)化集成平臺,構(gòu)建在POSIX操作系統(tǒng)之上,致力于滿足汽車領(lǐng)域的最新發(fā)展趨勢[16-17]。

    與此同時(shí),隨著車載軟件功能需求的不斷增長,通過增加相應(yīng)的監(jiān)控手段與容錯(cuò)機(jī)制,是保證汽車軟件可靠性的有效手段[18-20]。然而,在AP領(lǐng)域尚未存在有效的監(jiān)控與容錯(cuò)方案。

    本文以AVP軟件系統(tǒng)為例,針對AP領(lǐng)域缺少對系統(tǒng)的有效監(jiān)控手段和故障容錯(cuò)機(jī)制的問題,設(shè)計(jì)了平臺監(jiān)控方案完成對系統(tǒng)的實(shí)時(shí)監(jiān)控,協(xié)助開發(fā)過程中故障定位分析與運(yùn)行時(shí)故障發(fā)現(xiàn),并設(shè)計(jì)了故障容錯(cuò)機(jī)制,保證故障發(fā)生后系統(tǒng)能夠正常運(yùn)行。

    1 AUTOSAR自適應(yīng)平臺數(shù)據(jù)監(jiān)測方案

    1.1 設(shè)計(jì)方案

    針對AP平臺,設(shè)計(jì)了數(shù)據(jù)監(jiān)測系統(tǒng)(圖1),包括分布式數(shù)據(jù)采集模塊及其軟件應(yīng)用組件(Software Compenent, SWC)在ARA(AUTOSAR Runtime for Adaptive Applications)上運(yùn)行,數(shù)據(jù)存儲與分析模塊,數(shù)據(jù)顯示模塊。

    數(shù)據(jù)采集模塊負(fù)責(zé)采集基礎(chǔ)設(shè)施相關(guān)的數(shù)據(jù),分布式的部署到每一個(gè)需要監(jiān)視的操作系統(tǒng)中,對中央處理器(Central Processing Unit, CPU)、內(nèi)存相關(guān)的數(shù)據(jù)進(jìn)行監(jiān)測,這些數(shù)據(jù)主要通過操作系統(tǒng)提供的接口或者文件進(jìn)行獲取。數(shù)據(jù)采集模塊以固定的周期對這些數(shù)據(jù)進(jìn)行采集,并通過LT(Log and Trace)協(xié)議發(fā)送至數(shù)據(jù)存儲模塊和數(shù)據(jù)顯示模塊。

    數(shù)據(jù)存儲與分析模塊負(fù)責(zé)對所有采集到的數(shù)據(jù)進(jìn)行匯總,包括數(shù)據(jù)采集模塊的數(shù)據(jù),以及應(yīng)用主動上報(bào)的數(shù)據(jù),即Method的響應(yīng)時(shí)間等,并將這些數(shù)據(jù)進(jìn)行存儲,以離線文件的形式提供給數(shù)據(jù)顯示模塊。該模塊會對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,通過配置文件確定判斷故障的條件,從而根據(jù)已有的數(shù)據(jù)統(tǒng)計(jì)故障的數(shù)量。

    數(shù)據(jù)顯示模塊負(fù)責(zé)可視化監(jiān)測數(shù)據(jù),通過表格、曲線圖以及柱狀圖的方式將數(shù)據(jù)加以顯示。數(shù)據(jù)顯示模塊并非安裝在汽車內(nèi),而是以上位機(jī)的形式安裝在個(gè)人計(jì)算機(jī)(Personal Computer,PC)中,既能夠?qū)崟r(shí)通過LT協(xié)議接收監(jiān)測數(shù)據(jù),也能將數(shù)據(jù)存儲與分析模塊的離線監(jiān)控?cái)?shù)據(jù)進(jìn)行解析和顯示。

    方案使用AUTOSAR中的Dlt模塊實(shí)現(xiàn)數(shù)據(jù)的收集工作,Dlt模塊是AUTOSAR標(biāo)準(zhǔn)中使用的日志模塊,通過LT協(xié)議傳輸日志,無需在AP上安裝其他組件即可實(shí)現(xiàn)Dlt日志的發(fā)送與控制。

    LT協(xié)議報(bào)文格式,包含3部分:基礎(chǔ)頭部(Base Header)、擴(kuò)展頭部(Extension Header)和有效載荷(Payload),見圖2。

    1.2 監(jiān)測數(shù)據(jù)選擇

    數(shù)據(jù)監(jiān)測模塊中的數(shù)據(jù)指標(biāo)的選取需要確保該指標(biāo)確實(shí)與服務(wù)狀態(tài)直接或間接相關(guān),并在記錄時(shí)標(biāo)上監(jiān)測的時(shí)間信息,形成數(shù)據(jù)在時(shí)間上的關(guān)聯(lián)。

    在AP中,與SOME/IP服務(wù)相關(guān)的直接數(shù)據(jù)指標(biāo)包括:

    (1)Method響應(yīng)時(shí)間

    在AP中,通過SOME/IP Method實(shí)現(xiàn)遠(yuǎn)程過程調(diào)用時(shí)服務(wù)調(diào)用方與服務(wù)提供方之間常見的交互方式。Method的響應(yīng)時(shí)間是衡量SOME/IP服務(wù)狀態(tài)的重要指標(biāo),在一些對于時(shí)間要求比較高的場景中,如果響應(yīng)時(shí)間超過約定好的指標(biāo),可以被認(rèn)為本次交互失敗。

    Method響應(yīng)時(shí)間有2種計(jì)算方式,一種是從服務(wù)提供方角度進(jìn)行計(jì)算,即服務(wù)提供方接收到Method請求和完成Method計(jì)算的時(shí)間間隔;另一種是從服務(wù)調(diào)用方角度進(jìn)行計(jì)算,即服務(wù)調(diào)用方發(fā)起Method和接收到結(jié)果的時(shí)間間隔。與前者相比,后者計(jì)算出的響應(yīng)時(shí)間包括了中間件對服務(wù)報(bào)文的處理時(shí)間和服務(wù)報(bào)文在網(wǎng)絡(luò)中的傳輸時(shí)間。本設(shè)計(jì)中,這2種Method響應(yīng)時(shí)間都應(yīng)被監(jiān)測。

    對于Method響應(yīng)時(shí)間這項(xiàng)數(shù)據(jù)指標(biāo),在具體實(shí)現(xiàn)上,應(yīng)當(dāng)由服務(wù)提供方和服務(wù)調(diào)用方主動上報(bào),上報(bào)格式為見圖3。

    其中Context用來區(qū)分Method響應(yīng)時(shí)間的計(jì)算方式,“Call”表示服務(wù)調(diào)用方計(jì)算的響應(yīng)時(shí)間,“Impl”表示服務(wù)提供方計(jì)算的響應(yīng)時(shí)間。

    (2)Event發(fā)送/接收時(shí)間間隔

    在AP中,Event可以被用來傳輸周期性的數(shù)據(jù)(例如周期性采集的雷達(dá)數(shù)據(jù))。這種應(yīng)用場景下,該周期必須是確定的,如果服務(wù)調(diào)用方在周期間隔內(nèi)未收到 Event數(shù)據(jù),可能會導(dǎo)致服務(wù)調(diào)用方故障。

    Event發(fā)送時(shí)間是服務(wù)提供方的Event發(fā)送時(shí)間點(diǎn),Event接收時(shí)間是服務(wù)接收方接收到Event的時(shí)間。

    對于Event發(fā)送/接受時(shí)間這項(xiàng)數(shù)據(jù)指標(biāo),在具體實(shí)現(xiàn)上,應(yīng)當(dāng)由服務(wù)提供方和服務(wù)調(diào)用方主動上報(bào),上報(bào)格式見圖4。

    其中Context用來區(qū)分Event發(fā)送/接收時(shí)間,“Send”表示Event發(fā)送時(shí)間,“Recv”表示Event接收時(shí)間。

    除了服務(wù)狀態(tài)的直接數(shù)據(jù)指標(biāo)外,數(shù)據(jù)監(jiān)測模塊還應(yīng)當(dāng)采集與SOME/IP服務(wù)相關(guān)的基礎(chǔ)設(shè)施數(shù)據(jù)指標(biāo):

    (3)CPU利用率與CPU負(fù)載

    CPU資源是硬件平臺中非常重要的系統(tǒng)資源,如果CPU資源耗盡,將造成硬件平臺中的大部分進(jìn)程得不到調(diào)度,引起進(jìn)程饑餓問題。汽車中,CPU負(fù)載過高的原因有很多,包括程序設(shè)計(jì)失誤造成應(yīng)用進(jìn)入死循環(huán)、系統(tǒng)超過CPU處理能力。

    CPU使用率是一段時(shí)間內(nèi)CPU運(yùn)行時(shí)間占總時(shí)間的比值,CPU負(fù)載是一段時(shí)間內(nèi)處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的進(jìn)程平均數(shù)量。

    在CPU處于高負(fù)載狀態(tài)時(shí),CPU負(fù)載更能反應(yīng)CPU的真實(shí)狀況,因?yàn)楦哓?fù)載狀態(tài)時(shí)CPU使用率已經(jīng)接近100%,無法得出更多CPU的負(fù)載信息,CPU負(fù)載能夠反映出此時(shí)正在運(yùn)行和等待運(yùn)行的進(jìn)程數(shù)。

    (4)網(wǎng)絡(luò)延遲

    延遲通常采用網(wǎng)絡(luò)數(shù)據(jù)包從發(fā)送端到接收端再回到接收端所經(jīng)歷的時(shí)間。分布式架構(gòu)對底層網(wǎng)絡(luò)十分依賴,網(wǎng)絡(luò)的運(yùn)行狀況直接影響服務(wù)的健康狀況。當(dāng)網(wǎng)絡(luò)發(fā)生擁堵時(shí),會造成服務(wù)的響應(yīng)時(shí)間變長,進(jìn)而通過服務(wù)間的依賴引起連鎖反應(yīng)。

    (5)內(nèi)存使用率

    內(nèi)存使用率,即已使用的內(nèi)存占總內(nèi)存的比重。AP應(yīng)用在啟動后,會將可執(zhí)行文件中的代碼和數(shù)據(jù)放入內(nèi)存中,等待CPU訪問。Linux等支持虛擬內(nèi)存的操作系統(tǒng)在內(nèi)存資源耗盡時(shí),會將一些內(nèi)存中的數(shù)據(jù)轉(zhuǎn)移到容量更大的外部存儲器中,以緩解內(nèi)存的緊張。

    數(shù)據(jù)采集模塊負(fù)責(zé)周期性地對基礎(chǔ)設(shè)施數(shù)據(jù)指標(biāo)進(jìn)行采集,并將采集到的數(shù)據(jù)日志形式上報(bào)至數(shù)據(jù)分析與存儲模塊以及數(shù)據(jù)顯示模塊,基礎(chǔ)設(shè)施數(shù)據(jù)的Dlt日志結(jié)構(gòu)見圖5。

    1.3 數(shù)據(jù)顯示模塊

    數(shù)據(jù)顯示模塊是安裝在PC中的上位機(jī)程序,能夠?qū)ΡO(jiān)控?cái)?shù)據(jù)進(jìn)行可視化的展示,監(jiān)控?cái)?shù)據(jù)可以使用離線數(shù)據(jù),也可以通過LT協(xié)議對監(jiān)控?cái)?shù)據(jù)進(jìn)行采集(見圖6)。

    數(shù)據(jù)顯示模塊包含2個(gè)子處理模塊——Dlt Client 和數(shù)據(jù)可視化部分。AP中Dlt守護(hù)進(jìn)程通過LT協(xié)議將日志信息發(fā)送至Dlt Client,LT協(xié)議分為Server和 Client,Dlt守護(hù)進(jìn)程為Server,數(shù)據(jù)顯示模塊是Client。Dlt Client收到日志信息后需要對內(nèi)容進(jìn)行過濾和篩選,將監(jiān)控方案需要的信息存儲下來,通過數(shù)據(jù)可視化功能進(jìn)行顯示。

    數(shù)據(jù)可視化部分負(fù)責(zé)對收到的監(jiān)控?cái)?shù)據(jù)進(jìn)行顯示,在設(shè)計(jì)的監(jiān)控方案中,數(shù)據(jù)可視化采用Qt實(shí)現(xiàn)。Qt是圖形用戶界面程序開發(fā)框架,支持?jǐn)?shù)據(jù)表格、折線圖、柱狀圖、自定義圖形繪制等功能。監(jiān)控?cái)?shù)據(jù)中采集的上報(bào)數(shù)據(jù)顯示到Qt數(shù)據(jù)表格中,對于服務(wù)響應(yīng)時(shí)間,繪制響應(yīng)時(shí)間的時(shí)間分布圖和隨時(shí)間變化的曲線圖,對于系統(tǒng)基礎(chǔ)設(shè)施,繪制各項(xiàng)監(jiān)控?cái)?shù)據(jù)隨時(shí)間變化的曲線圖。

    2 服務(wù)調(diào)用鏈追蹤

    汽車軟件系統(tǒng)中會存在大量的服務(wù)和服務(wù)節(jié)點(diǎn),同時(shí)服務(wù)節(jié)點(diǎn)之間會存在復(fù)雜的服務(wù)調(diào)用關(guān)系,如:A服務(wù)調(diào)用B服務(wù),B服務(wù)調(diào)用C和D服務(wù)。在這樣的情況下,如果C服務(wù)出現(xiàn)故障,那么B服務(wù)和A服務(wù)將也會出現(xiàn)故障。

    如果選用傳統(tǒng)的故障定位方式,通過日志模塊將每個(gè)節(jié)點(diǎn)調(diào)用服務(wù)和被請求服務(wù)的行為記錄到日志中,逐一分析日志的來排查故障。但是這些服務(wù)節(jié)點(diǎn)的日志是分散的,彼此沒有很強(qiáng)的聯(lián)系,無法從中整理出C服務(wù)故障是B服務(wù)與A服務(wù)故障的根本原因。為了將這些服務(wù)節(jié)點(diǎn)的內(nèi)部行為和相互關(guān)系加以整理,本章引入了服務(wù)調(diào)用鏈動態(tài)追蹤技術(shù)。通過這樣的技術(shù),能夠?qū)⒁粭l完整的服務(wù)調(diào)用鏈信息從離散的服務(wù)節(jié)點(diǎn)日志中提取出來,這條調(diào)用鏈信息包含了所有服務(wù)節(jié)點(diǎn),服務(wù)調(diào)用關(guān)系,服務(wù)處理時(shí)間、時(shí)延和故障信息。

    因此需要設(shè)計(jì)一種基于AP、支持SOME/IP協(xié)議的服務(wù)調(diào)用鏈追蹤方法。旨在解決上述面向服務(wù)架構(gòu)中故障定位困難和SOME/IP協(xié)議不支持調(diào)用鏈追蹤的問題,以此幫助開發(fā)人員梳理服務(wù)節(jié)點(diǎn)之間的動態(tài)調(diào)用關(guān)系,監(jiān)控方案在運(yùn)行時(shí)的服務(wù)調(diào)用情況,更加容易地觀察服務(wù)依賴關(guān)系,定位故障所在的服務(wù)節(jié)點(diǎn)。

    2.1 設(shè)計(jì)方案

    在服務(wù)調(diào)用方安裝調(diào)用鏈追蹤工具Client組件,在服務(wù)提供方安裝調(diào)用鏈追蹤工具Server組件,在PC上安裝調(diào)用鏈追蹤工具。服務(wù)調(diào)用鏈追蹤系統(tǒng)結(jié)構(gòu)見圖7,服務(wù)調(diào)用鏈追蹤系統(tǒng)時(shí)序圖見圖8。

    當(dāng)AP應(yīng)用A作為服務(wù)調(diào)用方發(fā)起SOME/IP服務(wù)調(diào)用時(shí),被視為一條服務(wù)調(diào)用鏈的開始,調(diào)用鏈追蹤工具Client組件會生成唯一的調(diào)用鏈Trace Id。將該 Trace Id和該應(yīng)用的節(jié)點(diǎn)信息、調(diào)用服務(wù)的Service Id 與Method Id等信息組成調(diào)用鏈信息報(bào)文,通過UDP 多播協(xié)議發(fā)送至作為服務(wù)提供方的AP應(yīng)用B,同時(shí)將這些調(diào)用鏈信息通過LT協(xié)議以日志的形式發(fā)送到服務(wù)調(diào)用鏈追蹤工具。當(dāng)作為服務(wù)提供方的AP應(yīng)用 B接收此次SOME/IP服務(wù)調(diào)用時(shí),也會從接收到與本次SOME/IP服務(wù)調(diào)用對應(yīng)的調(diào)用鏈信息,在完成服務(wù)調(diào)用的基本功能的同時(shí),會同時(shí)將這些調(diào)用鏈信息通過LT協(xié)議以日志的形式發(fā)送到服務(wù)調(diào)用鏈追蹤工具。

    如果AP應(yīng)用B服務(wù)繼續(xù)調(diào)用其他服務(wù)時(shí),會將自身的信息加入調(diào)用鏈信息,繼續(xù)重復(fù)上述操作。

    數(shù)據(jù)顯示模塊會收集上述所有的日志信息,通過Trace Id將所有調(diào)用鏈信息日志加以區(qū)分,最終分析出每一條調(diào)用鏈的信息,并以可視化形式展現(xiàn)。

    2.2 調(diào)用鏈信息報(bào)文設(shè)計(jì)

    調(diào)用鏈追蹤工具通過UDP多播發(fā)送調(diào)用鏈信息報(bào)文實(shí)現(xiàn)調(diào)用鏈信息的傳輸,在調(diào)用鏈信息報(bào)文中加入 SOME/IP報(bào)文的信息(Client Id、Session Id、Service Id 和Method Id),實(shí)現(xiàn)與SOME/IP報(bào)文的唯一對應(yīng)。此方法不需要修改SOME/IP報(bào)文信息和ARXML配置文件,并且能夠與未安裝調(diào)用鏈追蹤工具的AP應(yīng)用實(shí)現(xiàn)SOME/IP通信。調(diào)用鏈信息報(bào)文見圖9。

    (1)Trace Id [32 bit]

    調(diào)用鏈Trace Id是調(diào)用鏈的唯一標(biāo)識,因此必須保持該標(biāo)識的唯一性。

    Trace Id使用當(dāng)前時(shí)間加隨機(jī)數(shù)的方法來獲?。ㄒ妶D10)。同一時(shí)間的服務(wù)調(diào)用鏈發(fā)起數(shù)量有限,對于開始時(shí)間完全相同的服務(wù)調(diào)用鏈,通過加入隨機(jī)數(shù)的方式,避免Trace Id沖突的可能。

    (2)Span Id [32 bit]

    在服務(wù)調(diào)用鏈中,服務(wù)調(diào)用的服務(wù)調(diào)用方和服務(wù)提供方都被認(rèn)為是一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)的唯一標(biāo)識符即為 Span Id。在一條服務(wù)調(diào)用鏈中,同一個(gè)服務(wù)可能被反復(fù)調(diào)用,所以對于同一服務(wù)被多次調(diào)用的情況,服務(wù)提供方的Span Id不能相同,服務(wù)調(diào)用方的Span Id也不能相同。因此Span Id被設(shè)計(jì)為節(jié)點(diǎn)IP地址主機(jī)號+服務(wù)Id +當(dāng)前時(shí)間(見圖11),來實(shí)現(xiàn)上述需求。

    (3)Parent Id [32 bit]

    當(dāng)服務(wù)調(diào)用方向服務(wù)提供方調(diào)用服務(wù)時(shí),服務(wù)調(diào)用方的Span Id即為服務(wù)提供方的Parent Id。通過每一個(gè)調(diào)用鏈信息中Span Id和Parent Id就能分析出該條調(diào)用鏈的服務(wù)調(diào)用關(guān)系。

    (4)Client Id [16 bit]和Session Id [16 bit]

    即為服務(wù)調(diào)用方的Client Id和服務(wù)調(diào)用方調(diào)用服務(wù)時(shí)的Session Id。在同一時(shí)間,可能有多個(gè)服務(wù)調(diào)用方并發(fā)訪問服務(wù)提供方提供的同一服務(wù),這些 SOME/IP服務(wù)請求報(bào)文的到達(dá)時(shí)間與調(diào)用鏈信息報(bào)文的到達(dá)時(shí)間并不是有序的。通過比對SOME/IP服務(wù)請求報(bào)文中的Client Id與Session Id與調(diào)用鏈信息報(bào)文中的Client Id與Session Id,能夠?qū)⒄{(diào)用鏈信息報(bào)文與 SOME/IP報(bào)文唯一關(guān)聯(lián)。

    (5)請求服務(wù)的Service Id與Method Id

    一個(gè)AP應(yīng)用會同時(shí)作為多個(gè)服務(wù)的服務(wù)提供方,在調(diào)用鏈信息報(bào)文中加入Service Id和Method Id,能夠幫助調(diào)用鏈追蹤工具Server組件準(zhǔn)確的識別該條調(diào)用鏈信息報(bào)文是與哪個(gè)服務(wù)相關(guān)聯(lián)的。

    2.3 Dlt日志設(shè)計(jì)

    調(diào)用鏈信息由調(diào)用鏈追蹤工具Server和Client組件通過Dlt模塊以日志的形式,發(fā)送至調(diào)用鏈追蹤工具,調(diào)用鏈追蹤工具通過收集和處理這些包含了調(diào)用鏈信息的日志分析調(diào)用鏈的服務(wù)調(diào)用關(guān)系和其他信息。為了與其他的日志加以區(qū)分,服務(wù)調(diào)用鏈日志將LT協(xié)議的Extended Header中Context Id設(shè)置為“Trace”作為標(biāo)記。

    LT協(xié)議的Payload用來存儲調(diào)用鏈信息,結(jié)構(gòu)如圖12所示。為了使日志具有可讀性,對于上報(bào)日志中的每一項(xiàng)信息采取不定長的字符串加以記錄,以‘\20(空格)作為間隔加以區(qū)分。

    其中Call Context表示當(dāng)前上報(bào)信息的時(shí)機(jī),包括“Client Start”、“Client End”、“Server Start”和“Server End”四種狀態(tài)。“Client Start”表示服務(wù)調(diào)用方發(fā)起服務(wù)調(diào)用時(shí),“Client End”表示服務(wù)調(diào)用方完成服務(wù)調(diào)用時(shí),“Server Start”表示服務(wù)提供方接收服務(wù)調(diào)用時(shí),“Server End”表示服務(wù)提供方處理完成服務(wù)調(diào)用時(shí)。

    2.4 調(diào)用鏈信息報(bào)文處理與傳輸?shù)膶?shí)現(xiàn)

    調(diào)用鏈信息報(bào)文的處理與傳輸由調(diào)用鏈追蹤工具 Client組件與Server組件完成。

    調(diào)用鏈追蹤工具Client組件的流程圖見圖13。AP應(yīng)用通過調(diào)用鏈追蹤工具Client組件接口發(fā)起服務(wù)調(diào)用時(shí),組件會讀取AP應(yīng)用發(fā)起服務(wù)調(diào)用時(shí)上下文中是否有Trace Id信息。如果有,讀取上下文中Trace Id,賦值到調(diào)用鏈信息的Trace Id,將上下文中的 Span Id賦值到調(diào)用鏈信息的Parent Id。如果沒有,則生成新的Trace Id,并將Parent Id設(shè)置為0,即為調(diào)用鏈根節(jié)點(diǎn)。根據(jù)服務(wù)調(diào)用時(shí)的SOME/IP報(bào)文,設(shè)置調(diào)用鏈信息中的Client Id、Session Id、Service Id和 Method Id信息。通過LT協(xié)議向調(diào)用鏈追蹤工具發(fā)送調(diào)用鏈信息日志,通過用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,UDP)協(xié)議向服務(wù)提供方傳輸調(diào)用鏈信息報(bào)文,通過基于IP的可擴(kuò)展面向服務(wù)的中間件(Scalabe Service-Oriented Middleware Over IP,SOME/IP)協(xié)議發(fā)起對服務(wù)提供方的服務(wù)調(diào)用。

    調(diào)用鏈追蹤工具Server組件包括主流程和報(bào)文接收與處理兩部分。報(bào)文接收與處理部分的流程見圖14(b)所示,當(dāng)接收到服務(wù)調(diào)用鏈信息的UDP報(bào)文時(shí),解析該報(bào)文中的所有信息,如果Service Id和Method Id與本應(yīng)用提供的服務(wù)匹配時(shí),存儲本條服務(wù)調(diào)用鏈信息,否則丟棄該報(bào)文。

    當(dāng)接收到SOME/IP服務(wù)請求時(shí),觸發(fā)調(diào)用鏈追蹤工具Server組件的主流程,如圖14a所示。根據(jù)SOME/IP服務(wù)請求中的Client Id、Session Id、Service Id和Method Id信息查找對應(yīng)的服務(wù)調(diào)用鏈信息。因?yàn)榫W(wǎng)絡(luò)傳輸?shù)牟淮_定性,SOME/IP報(bào)文和服務(wù)調(diào)用鏈信息的報(bào)文到達(dá)服務(wù)提供方的先后順序未知,如果此時(shí)服務(wù)調(diào)用鏈信息的報(bào)文未到達(dá),則等待,直到完成查找。服務(wù)調(diào)用鏈信息查找完成后,通過Dlt模塊向調(diào)用鏈追蹤工具發(fā)送包含調(diào)用鏈信息的日志。設(shè)置執(zhí)行調(diào)用的上下文信息,即Trace Id和Span Id,并執(zhí)行此次服務(wù)請求的調(diào)用。服務(wù)調(diào)用執(zhí)行完成后,通過Dlt模塊向調(diào)用鏈追蹤工具發(fā)送包含調(diào)用鏈信息的日志。

    3 AUTOSAR自適應(yīng)平臺服務(wù)容錯(cuò)機(jī)制

    3.1 汽車面向服務(wù)架構(gòu)的服務(wù)容錯(cuò)概述

    在面向服務(wù)架構(gòu)中,服務(wù)錯(cuò)誤可能無法完全避免,表現(xiàn)為服務(wù)無響應(yīng)或?qū)τ跁r(shí)間要求嚴(yán)格的服務(wù)未能在規(guī)定時(shí)間內(nèi)響應(yīng)。對于汽車環(huán)境內(nèi)時(shí)間敏感的軟件,服務(wù)未及時(shí)響應(yīng)意味著服務(wù)不可用。

    這些服務(wù)錯(cuò)誤主要由以下因素引起:

    (1)基礎(chǔ)設(shè)施故障:例如,CPU負(fù)載過高、內(nèi)存不足、存儲器訪問速度過慢等,導(dǎo)致服務(wù)執(zhí)行時(shí)間超出規(guī)定,無法按時(shí)響應(yīng)。

    (2)網(wǎng)絡(luò)故障:例如網(wǎng)絡(luò)擁塞、數(shù)據(jù)包丟失、網(wǎng)絡(luò)中斷,導(dǎo)致服務(wù)底層網(wǎng)絡(luò)報(bào)文無法或無法按時(shí)到達(dá)服務(wù)。

    (3)服務(wù)提供方故障:如程序異常退出、服務(wù)邏輯錯(cuò)誤、限流策略等,導(dǎo)致服務(wù)提供方無法正常處理請求。

    當(dāng)服務(wù)調(diào)用方調(diào)用的服務(wù)出現(xiàn)錯(cuò)誤時(shí),沒有合適的容錯(cuò)機(jī)制,錯(cuò)誤可能會擴(kuò)散,導(dǎo)致整個(gè)服務(wù)鏈路出現(xiàn)問題,造成更嚴(yán)重的“服務(wù)雪崩”現(xiàn)象,見圖15。

    因此,針對服務(wù)故障,必須采取相應(yīng)的容錯(cuò)措施以提高服務(wù)的可靠性。針對不同模塊對服務(wù)可靠性的需求,采用不同的容錯(cuò)策略,以保持資源利用率與服務(wù)可靠性之間的平衡。

    3.2 失敗重試

    失敗重試是一種策略,指的是在服務(wù)調(diào)用出現(xiàn)錯(cuò)誤時(shí),會在一定的時(shí)間間隔后重新嘗試調(diào)用該服務(wù),直到服務(wù)能夠正常響應(yīng),見圖16。

    這種方法在汽車軟件領(lǐng)域,特別適用于智能座艙等對服務(wù)響應(yīng)時(shí)間要求不高的場景。它最大限度地確保服務(wù)的可用性,但不能保證服務(wù)的響應(yīng)時(shí)間能夠滿足要求。

    3.2.1 服務(wù)重試風(fēng)暴問題

    服務(wù)重試能夠應(yīng)對網(wǎng)絡(luò)擁堵等問題導(dǎo)致的服務(wù)調(diào)用錯(cuò)誤,但重試的頻率和策略必須慎重設(shè)計(jì),否則可能引發(fā)系統(tǒng)中的服務(wù)重試風(fēng)暴災(zāi)難。

    服務(wù)失敗重試的前提是故障可能在一段時(shí)間內(nèi)得以恢復(fù),但通常恢復(fù)時(shí)間不會特別快。如果服務(wù)調(diào)用方在短時(shí)間內(nèi)頻繁發(fā)起大量服務(wù)重試,可能會加劇故障。例如,如果網(wǎng)絡(luò)擁塞導(dǎo)致服務(wù)超時(shí),若持續(xù)進(jìn)行大量服務(wù)重試,將進(jìn)一步加劇網(wǎng)絡(luò)擁堵,進(jìn)而造成更大規(guī)模的服務(wù)故障。

    此外,在多級服務(wù)調(diào)用場景下,設(shè)計(jì)不良的服務(wù)失敗重試策略可能導(dǎo)致服務(wù)重試在服務(wù)鏈中迅速蔓延。例如,A服務(wù)調(diào)用B服務(wù),而B服務(wù)進(jìn)一步調(diào)用C服務(wù)。如果C服務(wù)的故障無法在短時(shí)間內(nèi)恢復(fù),A和B服務(wù)均采用服務(wù)失敗重試策略以應(yīng)對服務(wù)調(diào)用錯(cuò)誤,當(dāng)B服務(wù)在多次重試調(diào)用C服務(wù)后返回異常,A服務(wù)仍然持續(xù)嘗試多次重試調(diào)用B服務(wù),最終造成C服務(wù)的重復(fù)調(diào)用達(dá)到了多次。

    3.2.2 等待時(shí)間隨機(jī)指數(shù)補(bǔ)償與限制鏈路失敗重試

    針對產(chǎn)生服務(wù)重試風(fēng)暴的第一種場景,本方案采用了等待時(shí)間指數(shù)補(bǔ)償策略,即服務(wù)發(fā)生錯(cuò)誤后,等待時(shí)間為重試次數(shù)的指數(shù)冪:

    [t1=bc] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)

    式中:t1為服務(wù)錯(cuò)誤后的等待時(shí)間,b為等待時(shí)間的基數(shù),c為失效重試的次數(shù)。

    然而,當(dāng)網(wǎng)絡(luò)在特定時(shí)刻發(fā)生擁堵時(shí),大量服務(wù)超時(shí),并在同樣的等待時(shí)間后發(fā)起服務(wù)重試,極有可能再次引發(fā)網(wǎng)絡(luò)擁堵,此種現(xiàn)象稱為“服務(wù)重試碰撞”。

    為了避免這種碰撞現(xiàn)象的發(fā)生,必須保證每個(gè)服務(wù)調(diào)用方的服務(wù)重試時(shí)間是不同的,因此將服務(wù)重試時(shí)間調(diào)整為:

    [t2=b×k, k∈[0.2c -1], c

    式中:t2為避免“服務(wù)重試碰撞”的重試時(shí)間,重試時(shí)間t2為等待時(shí)間基數(shù)b的k倍,其中k為[0,2-1]區(qū)間內(nèi)的任意整數(shù),并且重試次數(shù)c小于最大重試次數(shù)cMAX。

    以等待時(shí)間基數(shù)為2 ms,最大重試次數(shù)4次為例:

    a.如果服務(wù)調(diào)用方首次調(diào)用服務(wù)超時(shí),則在等待0 ms 或2 ms發(fā)起服務(wù)重試。

    b.如果仍然超時(shí),則在等待0 ms、2 ms、4 ms或者6 ms后發(fā)起服務(wù)重試。

    c.當(dāng)重試4次后仍然無法正常調(diào)用該服務(wù),則重試終止。

    針對產(chǎn)生服務(wù)重試風(fēng)暴的第二種場景,本方案采用了限制鏈路失敗重試,即當(dāng)一條調(diào)用鏈路中的A服務(wù)在盡力嘗試服務(wù)失敗重試后仍無法完成服務(wù)調(diào)用后,調(diào)用A服務(wù)的服務(wù)不應(yīng)繼續(xù)采用服務(wù)失敗重試。

    針對SOME/IP通信協(xié)議的具體實(shí)施方案是:

    a.設(shè)計(jì)統(tǒng)一的服務(wù)調(diào)用失敗錯(cuò)誤碼,用來表示本服務(wù)已經(jīng)采用服務(wù)失敗重試,仍發(fā)生錯(cuò)誤。

    b.任意一級服務(wù)在采用服務(wù)失敗重試后,仍發(fā)生錯(cuò)誤,將該錯(cuò)誤碼寫入SOME/IP報(bào)文的Return Code,返回至上一層服務(wù)調(diào)用者。

    c.上一層服務(wù)調(diào)用者收到該錯(cuò)誤碼后,不會繼續(xù)執(zhí)行服務(wù)重試,直接向更上一層傳遞該錯(cuò)誤碼。

    3.3 失敗轉(zhuǎn)移機(jī)制

    3.3.1 失敗轉(zhuǎn)移策略

    失敗重試雖然可以在一段時(shí)間內(nèi)可恢復(fù)的故障情況下確保服務(wù)的可用性,但并不適用于故障無法短時(shí)間內(nèi)恢復(fù)或?qū)τ陧憫?yīng)時(shí)間要求嚴(yán)格的場景,如感知服務(wù)和路徑規(guī)劃服務(wù)。在這些情況下,長時(shí)間無響應(yīng)可能帶來嚴(yán)重后果。

    為了解決這些問題,才引入失敗轉(zhuǎn)移策略,見圖17。在這種策略下,在同一個(gè)服務(wù)部署多個(gè)提供方,這些提供方具備相同的服務(wù)功能,但位于不同的硬件平臺。當(dāng)單一硬件平臺發(fā)生故障時(shí),冗余的服務(wù)提供方可以確保服務(wù)的可用性。

    對于服務(wù)調(diào)用方而言,如果某個(gè)服務(wù)提供方在服務(wù)調(diào)用時(shí)發(fā)生錯(cuò)誤,可以立即切換至其他可用的服務(wù)提供方,無需等待故障服務(wù)的恢復(fù)。這種方法有效提高了服務(wù)調(diào)用方在服務(wù)錯(cuò)誤發(fā)生時(shí)的響應(yīng)速度。

    服務(wù)可用度的計(jì)算方式可以用于衡量服務(wù)的穩(wěn)定性和可靠性。這個(gè)指標(biāo)可以用數(shù)學(xué)公式來描述,其計(jì)算方式為:

    [A=TDTS] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)

    式中:A為服務(wù)可用度,TD為服務(wù)正常工作時(shí)間,TS為服務(wù)工作總時(shí)間。

    或者,可以使用以下公式來表示:

    [A=MTBDMTBD+MDT×100%] ? ? ? ? ? ? ? ? ? ?(4)

    式中:[MTBD]為服務(wù)的平均無故障時(shí)間,[MDT]為服務(wù)的平均故障修復(fù)時(shí)間。

    增加服務(wù)的平均無故障時(shí)間或減少服務(wù)的平均故障修復(fù)時(shí)間都能提高服務(wù)的可用度。引入服務(wù)冗余是提高服務(wù)可用度的有效方法。當(dāng)服務(wù)采用1∶1的冗余時(shí),只有當(dāng)兩個(gè)服務(wù)同時(shí)失效時(shí),系統(tǒng)才會發(fā)生故障。因此,加入服務(wù)冗余機(jī)制后的服務(wù)可用度Ar為:

    [Ar=1-1-A2×100%] ? ? ? ? ? ? ? ? (5)

    舉例說明,假設(shè)初始時(shí)服務(wù)可用度[A]為90%,在引入服務(wù)冗余機(jī)制后,服務(wù)可用度Ar為99%。可見,合理的服務(wù)冗余機(jī)制能夠顯著提高服務(wù)的可用性。

    3.3.2 失敗轉(zhuǎn)移實(shí)現(xiàn)

    失敗轉(zhuǎn)移策略代表著同一個(gè)服務(wù)有多個(gè)服務(wù)提供方(多個(gè)服務(wù)實(shí)例),服務(wù)調(diào)用方可以使用所有這些服務(wù)實(shí)例,并且可以自由地切換到另一個(gè)可用的服務(wù)實(shí)例。

    通常,為了實(shí)現(xiàn)這種多重綁定,可以在服務(wù)的代理(Proxy)中使用多個(gè)服務(wù)實(shí)例句柄見圖18。每個(gè)服務(wù)實(shí)例句柄都對應(yīng)不同服務(wù)提供方提供的服務(wù)實(shí)例。當(dāng)服務(wù)調(diào)用方使用查找服務(wù)的方法(如FindService())時(shí),需要指定查找所有服務(wù)實(shí)例,而不是特定實(shí)例ID的服務(wù)實(shí)例。在基于SOME/IP SD的服務(wù)發(fā)現(xiàn)中,可以通過將多個(gè)服務(wù)實(shí)例綁定到同一個(gè)AP應(yīng)用的端口(Port)上,這樣在調(diào)用FindService()方法時(shí),只需提供相應(yīng)的端口,就可以找到與該端口綁定的所有服務(wù)實(shí)例。

    這種方法允許系統(tǒng)中的服務(wù)調(diào)用方靈活地使用可用的服務(wù)實(shí)例,從而實(shí)現(xiàn)了失敗轉(zhuǎn)移策略,提高了系統(tǒng)的可用性和穩(wěn)定性。

    3.4 聚合調(diào)用機(jī)制

    聚合調(diào)用是一種容錯(cuò)策略,與失敗轉(zhuǎn)移有所不同。在聚合調(diào)用中,服務(wù)調(diào)用方會同時(shí)向系統(tǒng)內(nèi)所有可用的服務(wù)實(shí)例發(fā)起服務(wù)調(diào)用。只要有一個(gè)服務(wù)實(shí)例正常響應(yīng),系統(tǒng)就會立即返回結(jié)果給服務(wù)調(diào)用方,見圖19。這與失敗轉(zhuǎn)移策略的最大不同在于,聚合調(diào)用不會等待單個(gè)服務(wù)實(shí)例的失敗或恢復(fù),而是只要有任意一個(gè)服務(wù)實(shí)例處于正常運(yùn)行狀態(tài),即使其他服務(wù)實(shí)例發(fā)生故障,系統(tǒng)也能正常提供服務(wù)。

    這種策略適用于對服務(wù)響應(yīng)時(shí)間要求非常嚴(yán)格的場景。通過同時(shí)發(fā)起多個(gè)服務(wù)調(diào)用,可以顯著縮短服務(wù)的響應(yīng)時(shí)間,因?yàn)橹恍璧却我庖粋€(gè)服務(wù)實(shí)例的響應(yīng)即可立即返回結(jié)果。這樣可以提高系統(tǒng)的可用性和性能,并確保即使部分服務(wù)實(shí)例出現(xiàn)問題,系統(tǒng)仍能繼續(xù)工作。

    然而,聚合調(diào)用也可能會增加系統(tǒng)的負(fù)載和復(fù)雜度。同時(shí)對多個(gè)服務(wù)實(shí)例發(fā)起調(diào)用可能需要更多的資源,并且在某些情況下,可能會導(dǎo)致重復(fù)的、不必要的服務(wù)調(diào)用。因此,在選擇容錯(cuò)策略時(shí),需要根據(jù)實(shí)際場景和需求權(quán)衡不同的方案。

    聚合調(diào)用在提高系統(tǒng)可靠性和服務(wù)時(shí)效性方面帶來了明顯的優(yōu)點(diǎn)。它確實(shí)能夠在系統(tǒng)中存在可用服務(wù)實(shí)例時(shí),確保服務(wù)請求不會發(fā)生故障,并保持較高的響應(yīng)速度。然而,這種策略也存在一些潛在的問題。

    除了消耗更多的操作系統(tǒng)內(nèi)存資源外,聚合調(diào)用可能會對CPU和網(wǎng)絡(luò)資源造成更高的負(fù)載。飽和式的服務(wù)請求可能會導(dǎo)致更多的CPU資源和網(wǎng)絡(luò)資源消耗,增加系統(tǒng)的負(fù)擔(dān),可能對系統(tǒng)整體性能產(chǎn)生影響。在汽車軟件中,這對于執(zhí)行模塊等對服務(wù)響應(yīng)時(shí)間要求較高的模塊來說,可能會對系統(tǒng)性能和穩(wěn)定性產(chǎn)生影響。

    在實(shí)施聚合調(diào)用策略時(shí),需要平衡提高可靠性和時(shí)效性所帶來的額外資源消耗,必須謹(jǐn)慎考慮系統(tǒng)的資源限制以及負(fù)載情況,確保所使用的策略能夠在提高可靠性的同時(shí),不會對系統(tǒng)整體性能造成嚴(yán)重影響。

    聚合調(diào)用、失敗重試與失敗轉(zhuǎn)移是三種服務(wù)容錯(cuò)機(jī)制,它們在消耗系統(tǒng)資源和代碼入侵程度上各不相同,同時(shí)最終實(shí)現(xiàn)的容錯(cuò)效果也有所差異(見表1)。因此,在選擇適當(dāng)?shù)姆?wù)容錯(cuò)機(jī)制時(shí),應(yīng)根據(jù)AP應(yīng)用的重要程度進(jìn)行權(quán)衡和選擇。

    4 測試與分析

    本章將通過Pilot3.0控制器、PC機(jī),搭建測試環(huán)境,對基于AP的AVP軟件系統(tǒng)進(jìn)行測試。并通過AP監(jiān)控方案,實(shí)現(xiàn)對AVP軟件系統(tǒng)的監(jiān)控。并對AVP軟件系統(tǒng)中路徑規(guī)劃應(yīng)用注入故障,以驗(yàn)證不同容錯(cuò)機(jī)制在不同故障場景下的表現(xiàn)。

    4.1 測試環(huán)境

    測試系統(tǒng)包含了Pilot 3.0控制器,PC機(jī),CANoe 測試工具。Pilot 3.0控制器基于地平線征程三代芯片(Journey 3,J3)的自動駕駛控制器(見圖20),包含三顆J3芯片(下文分別稱為J3A,J3B,J3C)和一顆英飛凌TC397芯片,每顆J3芯片擁有獨(dú)立的存儲器和外圍電路,能夠獨(dú)立工作。控制器支持以太網(wǎng)通信,算力上能夠滿足AVP軟件系統(tǒng)的算力要求。具體參數(shù)見表2。

    PC機(jī)運(yùn)行AP應(yīng)用的測試工具CANoe軟件和AP 應(yīng)用監(jiān)控?cái)?shù)據(jù)顯示模塊,參數(shù)見表3。

    CANoe是VECTOR公司發(fā)布的專門用于汽車 ECU開發(fā)、測試與分析的綜合工具,其功能包括了汽車分布式網(wǎng)絡(luò)設(shè)計(jì)、仿真與測試,單個(gè)ECU的功能仿真與測試,通信協(xié)議的分析,支持CAN、以太網(wǎng)、SOME/IP、LIN等汽車網(wǎng)絡(luò)協(xié)議。測試使用CANoe工具實(shí)現(xiàn)SOME/IP節(jié)點(diǎn)仿真和SOME/IP報(bào)文抓取,實(shí)現(xiàn)對AP應(yīng)用的仿真與測試,版本為CANoe 15.0 (SP1)。

    AP MICROSAR是VECTOR公司發(fā)布的用于AP 應(yīng)用開發(fā)的工具,主要功能包括了系統(tǒng)設(shè)計(jì),代碼生成,代碼編譯。且所有AP應(yīng)用均在AP MICROSAR工具中完成開發(fā),AP MICROSAR工具版本見表4。

    4.2 基于AP的AVP軟件系統(tǒng)測試

    在本試驗(yàn)中,在Pilot 3.0控制器和PC的虛擬中安裝了AP必需的系統(tǒng)模塊,并在Pilot 3.0控制器的J3A 中安裝了信息采集應(yīng)用和感知應(yīng)用,J3B中安裝了行為規(guī)劃應(yīng)用和路徑規(guī)劃應(yīng)用,PC中的虛擬機(jī)安裝了控制應(yīng)用,其中J3A、J3B與PC通過以太網(wǎng)交換芯片相連(圖21)。為了對通信報(bào)文進(jìn)行捕獲,在PC中安裝了CANoe軟件。

    4.2.1 AVP例程基本通信功能測試

    Pilot 3.0控制器上電后,J3A,J3B,J3C分別進(jìn)入操作系統(tǒng),EM模塊作為操作系統(tǒng)啟動后的第一個(gè)AP 進(jìn)程運(yùn)行,并在運(yùn)行后將系統(tǒng)中應(yīng)當(dāng)啟動的AP系統(tǒng)模塊(SOME/IP守護(hù)進(jìn)程等)和AVP軟件系統(tǒng)的各個(gè)模塊。PC中通過CANoe軟件對SOME/IP報(bào)文進(jìn)行捕獲,如圖22所示,顯示了SOME/IP通信的部分報(bào)文,即AVP軟件系統(tǒng)中所有AP應(yīng)用發(fā)送的Offer Service報(bào)文,報(bào)文中包含了服務(wù)Id,服務(wù)實(shí)例Id,服務(wù)實(shí)例通信地址等信息。

    J3A啟動信息采集應(yīng)用與感知應(yīng)用,對外提供相應(yīng)的服務(wù)。感知應(yīng)用周期性發(fā)送代價(jià)地圖的信息,代價(jià)地圖的數(shù)據(jù)與Simulink仿真中的數(shù)據(jù)保持一致,以驗(yàn)證部署到AP的路徑規(guī)劃模塊與Simulink仿真中路徑規(guī)劃應(yīng)用的結(jié)果一致性。J3B的行為規(guī)劃應(yīng)用和路徑規(guī)劃應(yīng)用啟動后,發(fā)送查找所需服務(wù)的SOME/IP報(bào)文,以定位服務(wù)所在的地址,訂閱需要的Event。路徑規(guī)劃應(yīng)用在接收到代價(jià)地圖、當(dāng)前位置等信息后,會根據(jù)部署的路徑規(guī)劃算法計(jì)算出到達(dá)下一目標(biāo)位置的所有路徑點(diǎn)和到達(dá)時(shí)運(yùn)動方向,并將計(jì)算結(jié)果以RefPoses和Directions Event的方式發(fā)送到所有Event訂閱者。PC中的控制應(yīng)用啟動后,訂閱路徑規(guī)劃應(yīng)用提供的RefPoses和Directions Event??刂茟?yīng)用對收到的RefPoses與Directions數(shù)值進(jìn)行分析與Simulink算法仿真的計(jì)算結(jié)果一致。

    通過上述試驗(yàn)結(jié)果可以驗(yàn)證,AVP中各個(gè)AP應(yīng)用通過SOME/IP協(xié)議實(shí)現(xiàn)面向服務(wù)的通信功能是正常的,并且通過Simulink進(jìn)行算法建模,生成C++代碼,集成到AP應(yīng)用的開發(fā)方式是可行的。

    4.2.2 基于AP監(jiān)控方案的AVP例程測試

    將開發(fā)的AP監(jiān)控方案的數(shù)據(jù)采集模塊安裝到Pilot3.0控制器中,虛擬機(jī)中安裝監(jiān)控?cái)?shù)據(jù)分析與存儲模塊,PC中安裝數(shù)據(jù)顯示模塊如圖23所示。

    數(shù)據(jù)顯示模塊使用Qt工具開發(fā)UI界面(見圖24),支持通過LT協(xié)議與AP應(yīng)用相連,或者從分析與存儲模塊獲取離線數(shù)據(jù),并以圖形化的形式顯示AVP例程中服務(wù)和平臺相關(guān)的監(jiān)測數(shù)據(jù)。

    AP服務(wù)監(jiān)控功能實(shí)現(xiàn)了對Method響應(yīng)時(shí)間、Event發(fā)送/接收時(shí)間間隔的信息采集以及顯示功能,列表中顯示了所有Method,Event相關(guān)的上報(bào)信息,并將信息加以處理,顯示出Method響應(yīng)時(shí)間和Event 發(fā)送/接收時(shí)間的時(shí)間間隔的分布圖,折線圖中顯示了上述兩個(gè)變量隨時(shí)間變化的曲線。

    以路徑規(guī)劃模塊提供的PathService為例,該模塊中部署了路徑規(guī)劃算法,控制應(yīng)用調(diào)用了PathService 中GetRefPoses Method200次后,該Method的響應(yīng)時(shí)間分布見圖25,從圖中能夠看出響應(yīng)時(shí)間主要集中在232 ms左右。

    基礎(chǔ)設(shè)施監(jiān)控功能顯示了AP相關(guān)基礎(chǔ)設(shè)施的工作狀態(tài),包括了網(wǎng)絡(luò)延遲、CPU使用率、CPU負(fù)載和內(nèi)存使用率的時(shí)間變化曲線。

    通過對J3B的基礎(chǔ)設(shè)施進(jìn)行監(jiān)控,從監(jiān)控?cái)?shù)據(jù)能夠看出AP啟動前后基礎(chǔ)設(shè)施狀態(tài)的對比。網(wǎng)絡(luò)延遲在AP啟動后未發(fā)生較大改變(見圖26),因?yàn)楫?dāng)網(wǎng)絡(luò)中報(bào)文數(shù)量沒有發(fā)生擁堵時(shí),網(wǎng)絡(luò)延遲不會有明顯上升。CPU使用率從0%上升到了8.5%左右(見圖27),反映了AP和AVP應(yīng)用啟動后使用的CPU。CPU負(fù)載未出現(xiàn)明顯的上升(見圖28),根據(jù)3.2節(jié)分析,當(dāng)CPU使用率過高時(shí)才會引起CPU負(fù)載的上升,CPU使用率維持在8.5%水平時(shí),不會造成明顯的進(jìn)程排隊(duì)(CPU負(fù)載)。內(nèi)存使用率反映了AP和AVP應(yīng)用需要消耗的內(nèi)存,從內(nèi)存使用率曲線圖中可以看到(見圖29),路徑規(guī)劃應(yīng)用、行為規(guī)劃應(yīng)用以及AP總共使用了J3B 0.6%的內(nèi)存,J3B中總共4 GB內(nèi)存,也就是24.5 MB左右的內(nèi)存。

    調(diào)用鏈追蹤功能夠根據(jù)調(diào)用鏈組件上報(bào)Dlt日志,分析出服務(wù)調(diào)用鏈信息。圖30顯示了調(diào)用鏈追蹤相關(guān)的信息列表,包含了時(shí)間、Trace Id、Method Id等信息。圖31顯示了其中一條調(diào)用鏈的調(diào)用關(guān)系,即控制應(yīng)用調(diào)用路徑規(guī)劃模塊的GetRefPoses Method時(shí)的服務(wù)調(diào)用關(guān)系。從圖中可以看到,控制應(yīng)用調(diào)用該方法時(shí),共計(jì)用時(shí)304 ms。GetRefPoses共調(diào)用了其他服務(wù)中的四個(gè)Method,其中RefCostmapGetter方法耗時(shí)最多,消耗了165 ms,原因是代價(jià)地圖的數(shù)據(jù)比較大,數(shù)據(jù)傳輸時(shí)消耗時(shí)間較長。

    4.3 AP服務(wù)容錯(cuò)測試

    AP服務(wù)容錯(cuò)機(jī)制的測試中,將以路徑規(guī)劃應(yīng)用為例,測試不同容錯(cuò)機(jī)制的表現(xiàn)將冗余的路徑規(guī)劃應(yīng)用安裝到J3C中(見圖32),AVP軟件系統(tǒng)中存在了兩個(gè)提供PathService的服務(wù)實(shí)例。從CANoe中抓取的報(bào)文中可以看到(見圖33),PathService(服務(wù)ID為006A)有兩個(gè)不同的服務(wù)實(shí)例,服務(wù)實(shí)例ID分別為306和320。

    AP服務(wù)容錯(cuò)測試通過對AP路徑規(guī)劃應(yīng)用注入故障的方式進(jìn)行測試。本試驗(yàn)對路徑規(guī)劃應(yīng)用與冗余的路徑規(guī)劃應(yīng)用,在一個(gè)故障注入周期內(nèi)注入連續(xù)的服務(wù)故障時(shí)間,并且這連續(xù)的服務(wù)故障時(shí)間會隨機(jī)的出現(xiàn)在一個(gè)故障注入周期中。失敗重試中最大重試次數(shù)設(shè)置為3次,等待時(shí)間的基數(shù)設(shè)置為5 ms。該試驗(yàn)中,因?yàn)槁窂揭?guī)劃應(yīng)用和冗余應(yīng)用有概率同時(shí)出現(xiàn)故障,失敗轉(zhuǎn)移和聚合調(diào)用也會采用失敗重試,參數(shù)與單獨(dú)使用失敗重試時(shí)相同。當(dāng)在1 s故障注入周期內(nèi)注入100 ms服務(wù)故障時(shí)間時(shí),試驗(yàn)結(jié)果如下:未采取任何容錯(cuò)措施時(shí)(見圖34),故障率為10%,符合本試驗(yàn)注入故障的時(shí)間比例;當(dāng)采用重試的容錯(cuò)機(jī)制時(shí)(見圖35),故障率降至0,平均響應(yīng)時(shí)間為228.767 ms,最長響應(yīng)時(shí)間為599.253 ms,能夠顯著減少故障率;采用錯(cuò)誤轉(zhuǎn)移時(shí)(見圖36),平均響應(yīng)時(shí)間為229.904 ms,最慢響應(yīng)時(shí)間586.102 ms。采用聚合調(diào)用機(jī)制時(shí)(見圖37),平均響應(yīng)時(shí)間為221.808 ms,最慢響應(yīng)時(shí)間為423.519 ms。

    對PathService采用聚合調(diào)用的容錯(cuò)策略,需要新啟用一個(gè)微處理器做冗余,并且每次都需要所有的路徑規(guī)劃應(yīng)用做運(yùn)算,資源消耗很大。然而根據(jù)上述試驗(yàn)結(jié)果,聚合調(diào)用策略并沒有起到特別優(yōu)異的效果。通過對基礎(chǔ)設(shè)施的監(jiān)控發(fā)現(xiàn),當(dāng)采用聚合調(diào)用的容錯(cuò)策略時(shí),會對網(wǎng)絡(luò)造成非常大的擁堵。如圖38所示,937.8 s 后采用了聚合調(diào)用的容錯(cuò)策略,此時(shí)的網(wǎng)絡(luò)延遲相比于其他容錯(cuò)策略高了很多,這是造成聚合調(diào)用策略 Method響應(yīng)時(shí)間很高的原因。

    造成網(wǎng)絡(luò)延遲升高的主要原因是,采用容錯(cuò)策略,服務(wù)調(diào)用方的每次服務(wù)調(diào)用都會對2個(gè)服務(wù)實(shí)例發(fā)送服務(wù)請求,網(wǎng)絡(luò)負(fù)載將是未啟用該策略時(shí)的2倍。CANoe軟件捕獲的PC上網(wǎng)卡的收發(fā)數(shù)據(jù)量表明,當(dāng)采用聚合調(diào)用策略后,數(shù)據(jù)量提升了一倍。當(dāng)路徑規(guī)劃應(yīng)用與冗余的路徑規(guī)劃應(yīng)用收到服務(wù)請求后,均會請求更多的服務(wù),尤其是獲取代價(jià)地圖的方法(RefCostmapGetter),會傳輸大量的數(shù)據(jù),當(dāng)這些代價(jià)地圖數(shù)據(jù)需要傳輸兩次時(shí),網(wǎng)絡(luò)就有可能產(chǎn)生擁堵的情況。

    為了對短時(shí)間不可恢復(fù)故障下不同容錯(cuò)機(jī)制的表現(xiàn)進(jìn)行測試,本試驗(yàn)分別在1 s故障注入周期內(nèi)注入 100 ms服務(wù)故障時(shí)間;1 s故障注入周期內(nèi)注入200 ms 服務(wù)故障時(shí)間;5 s故障注入周期內(nèi)注入500 ms服務(wù)故障時(shí)間;5 s故障注入周期內(nèi)注入1 s服務(wù)故障時(shí)間4種情況下,對比不同容錯(cuò)機(jī)制的表現(xiàn)。結(jié)果如圖39所示,通過采用服務(wù)容錯(cuò)機(jī)制,能夠有效地減少調(diào)用服務(wù)時(shí)的故障率。

    5 結(jié)論與展望

    5.1 結(jié)論

    對AUTOSAR自適應(yīng)平臺采取監(jiān)控與容錯(cuò)機(jī)制,能夠提升故障分析效率,降低故障發(fā)生率,提高軟件系統(tǒng)可靠性。研究了AP的工作原理與開發(fā)流程,以及適用于AP的監(jiān)控方案和服務(wù)故障發(fā)生時(shí)的容錯(cuò)機(jī)制??偨Y(jié)如下:

    (1)針對AP缺少監(jiān)控機(jī)制、面向服務(wù)架構(gòu)中故障定位困難的問題,以AVP軟件系統(tǒng)為案例,提出了AP的監(jiān)控方案。

    (2)針對AP沒有提供故障容錯(cuò)機(jī)制的問題,提出了基于AP的失敗重試、失敗轉(zhuǎn)移和聚合調(diào)用3種容錯(cuò)機(jī)制。

    5.2 展望

    采用面向服務(wù)架構(gòu)的AUTOSAR自適應(yīng)平臺為研究對象,對其工作原理和整體架構(gòu)進(jìn)行了分析,并以AVP軟件系統(tǒng)為例,針對AP缺少監(jiān)控機(jī)制、面向服務(wù)架構(gòu)中故障定位困難問題以及運(yùn)行階段可能出現(xiàn)服務(wù)故障問題,設(shè)計(jì)了監(jiān)控方案和容錯(cuò)機(jī)制,通過AVP軟件系統(tǒng)驗(yàn)證了上述功能的可行性,但在下述方面仍有欠缺:

    (1)監(jiān)控方案采集了當(dāng)前系統(tǒng)基礎(chǔ)設(shè)施的狀態(tài)以及服務(wù)的響應(yīng)時(shí)間,能夠分析出當(dāng)前的系統(tǒng)狀態(tài)。換言之,只有出現(xiàn)故障時(shí),監(jiān)控方案才能發(fā)現(xiàn)。進(jìn)一步工作可以根據(jù)當(dāng)前采集的數(shù)據(jù),預(yù)測出未來是否可能發(fā)生故障,這樣將能夠在故障發(fā)生前采取相應(yīng)措施。

    (2)容錯(cuò)機(jī)制中采取服務(wù)冗余的方式能夠提高服務(wù)的可靠性,然而冗余服務(wù)造成的數(shù)據(jù)量增加有可能導(dǎo)致網(wǎng)絡(luò)擁堵。進(jìn)一步工作可以考慮對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,避免所有報(bào)文都需要從同一交換芯片進(jìn)行轉(zhuǎn)發(fā),該交換芯片滿負(fù)載可能會造成通信網(wǎng)絡(luò)整體堵塞。

    參 考 文 獻(xiàn)

    [1] 初士雨, 安濤, 王秋鋒. 中國新能源汽車產(chǎn)業(yè)發(fā)展展望[J]. 科研, 2016, 17(7): 209-210.

    [2] 劉佳熙, 丁鋒. 面向未來汽車電子電氣架構(gòu)的域控制器平臺[J]. 中國集成電路, 2019, 28(9): 82-87.

    [3] 稀土信息編輯部. 國家發(fā)布《智能汽車創(chuàng)新發(fā)展戰(zhàn)略》智能汽車正加速駛來[J]. 稀土信息, 2020(3): 33-35.

    [4] 劉宗巍, 匡旭, 趙福全. 中國車聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展現(xiàn)狀, 瓶頸及應(yīng)對策略[J]. 科技管理研究, 2016(4): 121-127.

    [5] 賈文偉, 徐匡一, 王海波, 等.智能汽車電子架構(gòu)分析與研究[J]. 時(shí)代汽車, 2020(4): 43-46.

    [6] 孫婭蘋, 田慧蓉.車聯(lián)網(wǎng)網(wǎng)絡(luò)安全標(biāo)準(zhǔn)化研究進(jìn)展[J]. 電信網(wǎng)技術(shù), 2017 (6): 18-21.

    [7] 李兵, 趙磊, 林方圓.車載信息娛樂系統(tǒng)軟件開發(fā)流程研究與應(yīng)用[J]. 汽車實(shí)用技術(shù), 2019(20): 3.

    [8] 吳鍇. 智能自動泊車系統(tǒng)研究[D]. 南京: 南京理工大學(xué), 2008.

    [9] BAYYOU D. Artificially Intelligent Self-driving Vehicle Technologies, Benefits and Challenges[J]. International Journal of Emerging Technology in Computer Science and Electronics, 2019, 26(3): 5-13.

    [10] TRAUB M, MAIER A, BARBEH?N K L. Future Automotive Architecture and the Impact of IT Trends[J]. IEEE Software, 2017, 34(3): 27-32.

    [11] F?RST S, BECHTER M. AUTOSAR for Connected and Autonomous Vehicles: The AUTOSAR Adaptive Platform [C]//2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks Workshop (DSN-W), 2016.

    [12] STOLZ W, KORNHAAS R, KRAUSE R, et al. Domain Control Units-the Solution for Future E/E Architectures[J]. SAE Technical Paper, 2010.

    [13] NAVALE V M, WILLIAMS K, LAGOSPIRIS A, et al. (R) Evolution of E/E architectures[J]. SAE International Journal of Passenger Cars-Electronic and Electrical Systems, 2015, 8(2): 282-288.

    [14] CHEN S, HU J, SHI Y, et al. Vehicle-to-everything (V2X) Services Supported by LTE-based Systems and 5G[J]. IEEE Communications Standards Magazine, 2017, 1(2): 70-76.

    [15] YAQOOB I, KHAN L U, KAZMI S M A, et al. Autonomous Driving Cars in Smart Cities: Recent Advances, Requirements, and Challenges[J]. IEEE Network, 2019, 34(1): 174-181.

    [16] 劉聰, 陳敏. 面向服務(wù)的電子電氣架構(gòu)研究與應(yīng)用[J]. 北京汽車, 2021(6): 34-40.

    [17] BARRY D K. Web Services, Service-oriented Architectures, and Cloud Computing[EB/OL]. 2003[2024-05-11]. https://www.service-architecture.com.

    [18] 于磊, 林宗楷, 郭玉釵, 等. 多服務(wù)器系統(tǒng)中的負(fù)載平衡與容錯(cuò)[J].系統(tǒng)仿真學(xué)報(bào), 2001, 13(3): 325-328.

    [19] 童蕾. 事件驅(qū)動的消息發(fā)布/訂閱研究和實(shí)現(xiàn)[D]. 北京: 中國科學(xué)院研究生院 (軟件研究所), 2005.

    [20] DONOVAN P. Payback Time for Network Management[J]. Telecommunications, 2000, 34(1): 71.

    (責(zé)任編輯 明慧)

    国产又爽黄色视频| 97人妻天天添夜夜摸| 99热网站在线观看| 日本黄色日本黄色录像| 免费日韩欧美在线观看| 亚洲美女黄色视频免费看| 国产精品久久久久久精品古装| 全区人妻精品视频| 少妇熟女欧美另类| 亚洲国产av影院在线观看| 少妇的逼水好多| av国产久精品久网站免费入址| 欧美日韩成人在线一区二区| 中国三级夫妇交换| 少妇精品久久久久久久| 午夜免费鲁丝| 男女啪啪激烈高潮av片| 久久精品国产鲁丝片午夜精品| 国产成人av激情在线播放| 国产男女超爽视频在线观看| 建设人人有责人人尽责人人享有的| 自拍欧美九色日韩亚洲蝌蚪91| 午夜免费观看性视频| 制服人妻中文乱码| 在线天堂中文资源库| 国语对白做爰xxxⅹ性视频网站| 欧美日韩成人在线一区二区| 久久青草综合色| 中文欧美无线码| 国产亚洲一区二区精品| 国产成人精品婷婷| 草草在线视频免费看| 久久人妻熟女aⅴ| 日本欧美视频一区| 日韩欧美精品免费久久| 日韩不卡一区二区三区视频在线| 女性生殖器流出的白浆| 国产在线一区二区三区精| 美国免费a级毛片| 亚洲精品色激情综合| 女人久久www免费人成看片| 建设人人有责人人尽责人人享有的| 最近中文字幕高清免费大全6| www.色视频.com| 蜜臀久久99精品久久宅男| 国产成人午夜福利电影在线观看| 国产爽快片一区二区三区| 亚洲成人手机| 七月丁香在线播放| 满18在线观看网站| 久久久欧美国产精品| 免费看av在线观看网站| 一区二区三区乱码不卡18| 丰满乱子伦码专区| 成人国产av品久久久| 老女人水多毛片| 亚洲欧美中文字幕日韩二区| 久久久久久久精品精品| 女人精品久久久久毛片| 久久99一区二区三区| 不卡视频在线观看欧美| 国产亚洲精品第一综合不卡 | 美女脱内裤让男人舔精品视频| 国产淫语在线视频| 建设人人有责人人尽责人人享有的| av卡一久久| 人人澡人人妻人| 成人黄色视频免费在线看| 岛国毛片在线播放| 成年人免费黄色播放视频| 少妇的逼水好多| 高清在线视频一区二区三区| 免费黄色在线免费观看| 亚洲精品国产av成人精品| 青春草亚洲视频在线观看| 精品一区二区免费观看| 日本免费在线观看一区| 免费黄频网站在线观看国产| 亚洲四区av| 五月玫瑰六月丁香| 在线天堂中文资源库| 女性被躁到高潮视频| 一本—道久久a久久精品蜜桃钙片| 国产高清不卡午夜福利| 女人被躁到高潮嗷嗷叫费观| 国产免费视频播放在线视频| 成人国产麻豆网| 伦精品一区二区三区| 欧美xxxx性猛交bbbb| 大香蕉久久成人网| 日本欧美视频一区| 亚洲 欧美一区二区三区| 街头女战士在线观看网站| 日韩成人伦理影院| 国产精品久久久久成人av| 亚洲综合色网址| 国产一区二区三区综合在线观看 | 亚洲久久久国产精品| av线在线观看网站| 热99国产精品久久久久久7| 国产精品女同一区二区软件| 国产国拍精品亚洲av在线观看| 精品久久久久久电影网| 日产精品乱码卡一卡2卡三| 亚洲成人av在线免费| 日本黄色日本黄色录像| 午夜影院在线不卡| 婷婷成人精品国产| 少妇熟女欧美另类| 国产av国产精品国产| 精品久久国产蜜桃| 黑丝袜美女国产一区| 不卡视频在线观看欧美| 国产在线视频一区二区| 久热这里只有精品99| 巨乳人妻的诱惑在线观看| 国产日韩欧美亚洲二区| 亚洲精品第二区| 亚洲精品第二区| 51国产日韩欧美| 日韩 亚洲 欧美在线| 人妻少妇偷人精品九色| 国产成人a∨麻豆精品| 热re99久久国产66热| 日本爱情动作片www.在线观看| 日韩精品有码人妻一区| 日本av免费视频播放| 免费观看在线日韩| 亚洲,欧美精品.| 另类亚洲欧美激情| av在线app专区| 亚洲精品456在线播放app| 色婷婷久久久亚洲欧美| 国产视频首页在线观看| 边亲边吃奶的免费视频| 99re6热这里在线精品视频| 欧美 日韩 精品 国产| 最近手机中文字幕大全| 观看美女的网站| 成人影院久久| 午夜久久久在线观看| 亚洲精品色激情综合| 日韩大片免费观看网站| 婷婷色综合大香蕉| 国产成人精品久久久久久| 欧美激情极品国产一区二区三区 | 极品人妻少妇av视频| 婷婷色麻豆天堂久久| 在线看a的网站| 久久人妻熟女aⅴ| 黄色一级大片看看| 国产精品一区二区在线观看99| 午夜日本视频在线| 国产男人的电影天堂91| 久久国产亚洲av麻豆专区| 麻豆精品久久久久久蜜桃| 97超碰精品成人国产| 亚洲精品乱码久久久久久按摩| 久久精品久久久久久噜噜老黄| 中国国产av一级| 在线观看免费高清a一片| 黄网站色视频无遮挡免费观看| 飞空精品影院首页| 韩国精品一区二区三区 | 午夜福利,免费看| 赤兔流量卡办理| 午夜免费男女啪啪视频观看| 男女无遮挡免费网站观看| 在线观看免费视频网站a站| 亚洲国产精品国产精品| 午夜福利影视在线免费观看| 国产片内射在线| 欧美精品av麻豆av| 男人操女人黄网站| 亚洲人成77777在线视频| 久久久久久人妻| 久久久久久久大尺度免费视频| 婷婷色av中文字幕| 超碰97精品在线观看| 国产精品一二三区在线看| 久久97久久精品| av天堂久久9| 一级毛片电影观看| 国产亚洲午夜精品一区二区久久| 日韩中文字幕视频在线看片| 桃花免费在线播放| 精品久久久久久电影网| 日本vs欧美在线观看视频| 国产欧美日韩综合在线一区二区| 亚洲国产av影院在线观看| av又黄又爽大尺度在线免费看| 国产男人的电影天堂91| 制服人妻中文乱码| 日日爽夜夜爽网站| 毛片一级片免费看久久久久| 高清欧美精品videossex| 国产精品一区www在线观看| 少妇人妻精品综合一区二区| 亚洲av综合色区一区| 狠狠精品人妻久久久久久综合| 久久精品国产a三级三级三级| 韩国精品一区二区三区 | 日本av免费视频播放| 免费在线观看黄色视频的| 日日撸夜夜添| 国产激情久久老熟女| 天堂8中文在线网| 日本爱情动作片www.在线观看| 少妇猛男粗大的猛烈进出视频| 午夜老司机福利剧场| 黄色视频在线播放观看不卡| 亚洲精品第二区| 国产精品国产三级国产专区5o| 超碰97精品在线观看| 新久久久久国产一级毛片| 久久精品国产亚洲av天美| 国产在线一区二区三区精| 精品亚洲成国产av| 日韩精品免费视频一区二区三区 | 色94色欧美一区二区| 中文字幕另类日韩欧美亚洲嫩草| 久久久久久久久久人人人人人人| 看免费成人av毛片| 欧美日本中文国产一区发布| 国产一区二区三区综合在线观看 | 日韩av免费高清视频| 男女国产视频网站| 国产精品免费大片| 日本猛色少妇xxxxx猛交久久| 大片电影免费在线观看免费| 一级毛片电影观看| xxxhd国产人妻xxx| 好男人视频免费观看在线| 亚洲精品国产av成人精品| 大片免费播放器 马上看| 美女福利国产在线| av国产久精品久网站免费入址| 老司机亚洲免费影院| 九色亚洲精品在线播放| 欧美丝袜亚洲另类| 日韩一区二区三区影片| 建设人人有责人人尽责人人享有的| 妹子高潮喷水视频| 免费黄网站久久成人精品| 18禁动态无遮挡网站| 高清毛片免费看| 亚洲少妇的诱惑av| 国产在视频线精品| 尾随美女入室| 韩国av在线不卡| 18+在线观看网站| 内地一区二区视频在线| 精品人妻一区二区三区麻豆| 久久亚洲国产成人精品v| 99国产精品免费福利视频| 国产白丝娇喘喷水9色精品| 日本免费在线观看一区| av播播在线观看一区| 七月丁香在线播放| 美女xxoo啪啪120秒动态图| 午夜91福利影院| 一级黄片播放器| 久久精品国产鲁丝片午夜精品| 亚洲第一av免费看| 一区二区日韩欧美中文字幕 | av.在线天堂| 丝袜人妻中文字幕| 搡女人真爽免费视频火全软件| 桃花免费在线播放| 久久午夜综合久久蜜桃| 十分钟在线观看高清视频www| 久久久国产一区二区| 日日爽夜夜爽网站| 最近2019中文字幕mv第一页| 男人舔女人的私密视频| 久久狼人影院| 在线天堂中文资源库| 欧美精品一区二区大全| 99热全是精品| 高清在线视频一区二区三区| 亚洲性久久影院| 人体艺术视频欧美日本| 国产国语露脸激情在线看| 最近最新中文字幕免费大全7| 观看美女的网站| 亚洲欧美中文字幕日韩二区| 成人二区视频| 精品亚洲成a人片在线观看| 欧美激情 高清一区二区三区| 国产在线免费精品| 男的添女的下面高潮视频| 少妇人妻 视频| 久久人人爽av亚洲精品天堂| 一本大道久久a久久精品| 美女视频免费永久观看网站| 久热这里只有精品99| 欧美最新免费一区二区三区| 国产福利在线免费观看视频| 男人操女人黄网站| 黑人猛操日本美女一级片| 一区二区三区乱码不卡18| 亚洲精品中文字幕在线视频| 一级爰片在线观看| 岛国毛片在线播放| 最近最新中文字幕大全免费视频 | 亚洲av日韩在线播放| 成人手机av| 777米奇影视久久| 精品卡一卡二卡四卡免费| 久久人人爽人人片av| 九九爱精品视频在线观看| 精品人妻熟女毛片av久久网站| 波多野结衣一区麻豆| 菩萨蛮人人尽说江南好唐韦庄| xxxhd国产人妻xxx| 亚洲精品第二区| 在线观看免费视频网站a站| 90打野战视频偷拍视频| 一级片免费观看大全| 国产一区二区在线观看日韩| 欧美少妇被猛烈插入视频| 久久国内精品自在自线图片| 九九爱精品视频在线观看| 国产一区二区三区综合在线观看 | 精品少妇内射三级| 国产亚洲一区二区精品| 欧美97在线视频| 亚洲成色77777| av在线观看视频网站免费| 日韩中文字幕视频在线看片| 国产成人a∨麻豆精品| 如何舔出高潮| 精品一区二区三卡| 亚洲av电影在线进入| 亚洲精品,欧美精品| 亚洲欧洲日产国产| 欧美 亚洲 国产 日韩一| 久久久久久人妻| 亚洲精品美女久久久久99蜜臀 | 亚洲欧美一区二区三区黑人 | 亚洲精品乱码久久久久久按摩| 亚洲一级一片aⅴ在线观看| 黄色怎么调成土黄色| 韩国高清视频一区二区三区| 97在线人人人人妻| 性高湖久久久久久久久免费观看| 久久99蜜桃精品久久| 国产激情久久老熟女| 国产成人a∨麻豆精品| 一级黄片播放器| 男女无遮挡免费网站观看| 最近中文字幕2019免费版| 国产精品无大码| 一级a做视频免费观看| 婷婷色综合www| 韩国精品一区二区三区 | 少妇的逼好多水| 国产成人av激情在线播放| 国产精品嫩草影院av在线观看| 久久精品国产a三级三级三级| 欧美日本中文国产一区发布| 免费不卡的大黄色大毛片视频在线观看| 男人爽女人下面视频在线观看| 欧美精品高潮呻吟av久久| 五月开心婷婷网| 大香蕉久久成人网| 色哟哟·www| 最近手机中文字幕大全| 女人被躁到高潮嗷嗷叫费观| 亚洲丝袜综合中文字幕| 性高湖久久久久久久久免费观看| 超色免费av| 欧美另类一区| 国产老妇伦熟女老妇高清| 男女午夜视频在线观看 | 久久ye,这里只有精品| 免费日韩欧美在线观看| 又黄又爽又刺激的免费视频.| 亚洲人成77777在线视频| 国产国语露脸激情在线看| 免费观看无遮挡的男女| 亚洲精品456在线播放app| 免费在线观看完整版高清| freevideosex欧美| 亚洲欧洲精品一区二区精品久久久 | 男人操女人黄网站| 亚洲内射少妇av| 中文字幕制服av| 狠狠精品人妻久久久久久综合| 亚洲性久久影院| 日产精品乱码卡一卡2卡三| 777米奇影视久久| 久久久久精品性色| 午夜视频国产福利| 视频在线观看一区二区三区| 久久久精品94久久精品| 欧美精品亚洲一区二区| 国产一区有黄有色的免费视频| 女性生殖器流出的白浆| 极品人妻少妇av视频| 亚洲婷婷狠狠爱综合网| 99久久人妻综合| 国产熟女欧美一区二区| 美女国产视频在线观看| 91精品伊人久久大香线蕉| 乱人伦中国视频| 国产高清不卡午夜福利| 菩萨蛮人人尽说江南好唐韦庄| 性色avwww在线观看| 国产一区有黄有色的免费视频| 成年美女黄网站色视频大全免费| av又黄又爽大尺度在线免费看| 国产亚洲一区二区精品| 欧美激情国产日韩精品一区| 亚洲美女黄色视频免费看| 久久精品久久精品一区二区三区| 亚洲精品456在线播放app| 看十八女毛片水多多多| 搡女人真爽免费视频火全软件| 黄色毛片三级朝国网站| 亚洲av在线观看美女高潮| 国产毛片在线视频| 成人毛片a级毛片在线播放| 国产亚洲欧美精品永久| 97人妻天天添夜夜摸| 伦精品一区二区三区| 国产精品无大码| 热re99久久国产66热| 丝袜喷水一区| 久久久久久久久久久久大奶| 制服人妻中文乱码| 女的被弄到高潮叫床怎么办| 黑丝袜美女国产一区| 日韩中文字幕视频在线看片| 人妻少妇偷人精品九色| 欧美+日韩+精品| 我的女老师完整版在线观看| 丝袜脚勾引网站| 国产一区二区三区综合在线观看 | 侵犯人妻中文字幕一二三四区| 免费在线观看完整版高清| 亚洲色图 男人天堂 中文字幕 | 啦啦啦啦在线视频资源| 精品人妻熟女毛片av久久网站| 国产成人91sexporn| 国产老妇伦熟女老妇高清| kizo精华| 亚洲国产av新网站| 亚洲精品日本国产第一区| 久久久欧美国产精品| 成人国产麻豆网| 日本欧美国产在线视频| 免费av不卡在线播放| 少妇人妻久久综合中文| 水蜜桃什么品种好| 亚洲成av片中文字幕在线观看 | 老司机影院毛片| 国产国拍精品亚洲av在线观看| 婷婷色av中文字幕| 99国产综合亚洲精品| 国产高清国产精品国产三级| 午夜精品国产一区二区电影| 天堂中文最新版在线下载| 成人漫画全彩无遮挡| av线在线观看网站| 亚洲精品视频女| 大片免费播放器 马上看| 久久精品aⅴ一区二区三区四区 | 成人亚洲精品一区在线观看| 国产亚洲欧美精品永久| 香蕉精品网在线| 男女下面插进去视频免费观看 | 欧美激情极品国产一区二区三区 | 国产成人精品一,二区| 久久99精品国语久久久| 咕卡用的链子| 欧美老熟妇乱子伦牲交| 七月丁香在线播放| 国产69精品久久久久777片| 精品熟女少妇av免费看| 亚洲欧洲精品一区二区精品久久久 | 亚洲精品第二区| 国产男女超爽视频在线观看| 成人影院久久| 狠狠精品人妻久久久久久综合| 最近最新中文字幕大全免费视频 | 午夜激情久久久久久久| 免费看av在线观看网站| 免费av不卡在线播放| 国产熟女午夜一区二区三区| 又黄又粗又硬又大视频| 国产日韩欧美在线精品| 免费女性裸体啪啪无遮挡网站| 日韩成人av中文字幕在线观看| 国产色爽女视频免费观看| 国产 一区精品| a级毛片黄视频| 九草在线视频观看| 伦理电影免费视频| 少妇精品久久久久久久| 日本午夜av视频| 久久久久久久亚洲中文字幕| 婷婷色麻豆天堂久久| 最近手机中文字幕大全| 亚洲在久久综合| 国产欧美另类精品又又久久亚洲欧美| 建设人人有责人人尽责人人享有的| 精品熟女少妇av免费看| 少妇猛男粗大的猛烈进出视频| 精品人妻在线不人妻| 少妇人妻久久综合中文| 国产一级毛片在线| 精品人妻偷拍中文字幕| 日日摸夜夜添夜夜爱| 夜夜爽夜夜爽视频| 欧美日韩成人在线一区二区| 春色校园在线视频观看| 秋霞伦理黄片| 精品熟女少妇av免费看| 美女国产视频在线观看| xxxhd国产人妻xxx| 午夜91福利影院| 国产成人aa在线观看| 国产日韩欧美亚洲二区| 精品人妻熟女毛片av久久网站| 国产精品 国内视频| av国产久精品久网站免费入址| 久久久欧美国产精品| 国产一区亚洲一区在线观看| 国产69精品久久久久777片| 天堂中文最新版在线下载| xxxhd国产人妻xxx| 两个人免费观看高清视频| 美女国产视频在线观看| 亚洲av综合色区一区| 美女大奶头黄色视频| 天美传媒精品一区二区| 精品亚洲成a人片在线观看| 久久99蜜桃精品久久| 亚洲欧美中文字幕日韩二区| 大陆偷拍与自拍| 男女高潮啪啪啪动态图| 久久久久久久亚洲中文字幕| 搡女人真爽免费视频火全软件| 欧美3d第一页| 男女边摸边吃奶| 春色校园在线视频观看| 亚洲精华国产精华液的使用体验| 我的女老师完整版在线观看| 另类精品久久| 国产永久视频网站| 国产成人a∨麻豆精品| 久久狼人影院| 人人妻人人澡人人看| 国产一级毛片在线| 日韩av不卡免费在线播放| 春色校园在线视频观看| 亚洲中文av在线| 日本爱情动作片www.在线观看| 国产精品国产av在线观看| 在线观看三级黄色| 亚洲少妇的诱惑av| 亚洲欧美成人综合另类久久久| 亚洲精品456在线播放app| 最近最新中文字幕大全免费视频 | www.色视频.com| 亚洲av综合色区一区| 亚洲欧美精品自产自拍| 久久97久久精品| 尾随美女入室| 一边亲一边摸免费视频| 男人舔女人的私密视频| 日韩中字成人| 亚洲五月色婷婷综合| 成年美女黄网站色视频大全免费| av在线播放精品| 成人午夜精彩视频在线观看| av又黄又爽大尺度在线免费看| 97在线人人人人妻| 一区二区av电影网| 欧美 日韩 精品 国产| av在线观看视频网站免费| 国产免费视频播放在线视频| 亚洲久久久国产精品| 国产视频首页在线观看| 日韩一区二区视频免费看| 亚洲国产av新网站| 18禁观看日本| 国产黄频视频在线观看| 熟女人妻精品中文字幕| 国产免费福利视频在线观看| 亚洲精品av麻豆狂野| 两个人免费观看高清视频| 极品人妻少妇av视频| 伊人久久国产一区二区| 日本色播在线视频| 亚洲av综合色区一区| av在线观看视频网站免费| 亚洲欧美日韩另类电影网站| 国产精品 国内视频| 曰老女人黄片| 纵有疾风起免费观看全集完整版| 日本欧美国产在线视频| 国产成人精品久久久久久| 美国免费a级毛片| 大陆偷拍与自拍| 欧美日韩国产mv在线观看视频| 老司机影院毛片| 91精品伊人久久大香线蕉| 岛国毛片在线播放| 精品国产国语对白av| 成人亚洲欧美一区二区av| 在线观看免费高清a一片| 欧美激情国产日韩精品一区| 啦啦啦视频在线资源免费观看|