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

    嵌入式分布計(jì)算環(huán)境下的高效軟件構(gòu)件化框架研究

    2013-02-28 08:03:30曹敬瑜柴瑋巖王博郭永紅
    兵工學(xué)報(bào) 2013年4期
    關(guān)鍵詞:嵌入式軟件調(diào)用嵌入式

    曹敬瑜,柴瑋巖,王博,郭永紅

    (1.北京理工大學(xué) 計(jì)算機(jī)學(xué)院,北京 100081;2.中國(guó)兵器工業(yè)計(jì)算機(jī)應(yīng)用技術(shù)研究所,北京 100089)

    0 引言

    當(dāng)今嵌入式分布計(jì)算環(huán)境中所涉及的嵌入式設(shè)備越來(lái)越多,所涉及的現(xiàn)場(chǎng)總線、通信協(xié)議也種類繁多,導(dǎo)致嵌入式軟件的開(kāi)發(fā)難度和維護(hù)成本也越來(lái)越高,如何通過(guò)構(gòu)件化框架技術(shù)[1]簡(jiǎn)化嵌入式軟件的設(shè)計(jì),通過(guò)模塊重用的思想減少開(kāi)發(fā)的工作量,提高系統(tǒng)的穩(wěn)定性已成為亟待解決的問(wèn)題[2-6]。

    分布式計(jì)算環(huán)境下構(gòu)件框架技術(shù)[7-8]主要有構(gòu)件中間件技術(shù)[9-10]、發(fā)布/訂閱中間件(面向消息的中間件)、面向服務(wù)架構(gòu)和Web 服務(wù)3 大類[11-12]。

    構(gòu)件中間件技術(shù)主要以EJB[13]、CORBA 組件模型(CCM)為代表。EJB 主要運(yùn)行于有JAVA 支持的環(huán)境下,但在實(shí)際的嵌入式設(shè)備中,由于遺留系統(tǒng)、強(qiáng)實(shí)時(shí)要求等因素,并不是所有嵌入式設(shè)備都支持JAVA 虛擬機(jī)環(huán)境[14]。CCM 模型[15-16]定義了構(gòu)件所提供的服務(wù)接口方式、連接點(diǎn)方式以及構(gòu)件運(yùn)行容器等概念,為持久化、事件通知、事務(wù)、負(fù)載均衡以及安全提供的完整的實(shí)現(xiàn)機(jī)制。但是基于CCM模型的構(gòu)件在使用其他構(gòu)件所提供的服務(wù)時(shí),先通過(guò)檢索名字服務(wù)器提供的名字服務(wù),再生成服務(wù)代理和客戶代理進(jìn)而通信,其本質(zhì)還是有核心的服務(wù)模型,這在分布式環(huán)境下不可避免單點(diǎn)故障問(wèn)題,即一旦名字服務(wù)器發(fā)生故障,構(gòu)件之間便不能通信。此外,采用CORBA 分布式計(jì)算模型所生成的構(gòu)件實(shí)體體積都很大,特別是應(yīng)用于嵌入式環(huán)境下,對(duì)于有些對(duì)系統(tǒng)啟動(dòng)時(shí)間有時(shí)限要求和對(duì)磁盤(pán)、內(nèi)存容量大小有限制的嵌入式系統(tǒng)是不可容忍的。

    發(fā)布/訂閱中間件(面向消息的中間件[17])技術(shù)以MQ 系列、Java 消息服務(wù)(JMS)、數(shù)據(jù)分發(fā)服務(wù)(DDS)為代表,其主要優(yōu)點(diǎn)是支持異步通信,發(fā)送方在傳送數(shù)據(jù)給接收方后不需要被阻塞以等待接收方的響應(yīng)。但是其缺少面向?qū)ο?、面向服?wù)的特性,不適合應(yīng)用于關(guān)心操作結(jié)果或操作非等冪的軟件環(huán)境。

    面向服務(wù)架構(gòu)和Web 服務(wù)基于純文本的協(xié)議,如基于HTTP 的XML,對(duì)于那些細(xì)粒度的分布式資源訪問(wèn),其性能通常比上述兩種中間件技術(shù)要低幾個(gè)數(shù)量級(jí)。因此性能優(yōu)先的應(yīng)用場(chǎng)合,如航空、財(cái)務(wù)以及流程控制領(lǐng)域的分布式實(shí)時(shí)嵌入式系統(tǒng)并不適應(yīng)此技術(shù)模型。

    針對(duì)上述問(wèn)題,本文提出了在嵌入式分布計(jì)算環(huán)境下的高效軟件構(gòu)件化框架,目的是使嵌入式軟件系統(tǒng)朝著通用化、標(biāo)準(zhǔn)化、系列化、構(gòu)件化、平臺(tái)化的方向發(fā)展,為系統(tǒng)內(nèi)外的互連、互通提供穩(wěn)定可靠的保障。

    1 OSGi 框架模型

    開(kāi)放服務(wù)網(wǎng)關(guān)倡議(OSGi)旨在建立一個(gè)由廣域網(wǎng)向區(qū)域網(wǎng)及其相聯(lián)的設(shè)備傳輸各類服務(wù)的開(kāi)放式標(biāo)準(zhǔn)。它為服務(wù)供應(yīng)商、網(wǎng)絡(luò)管理員、設(shè)備開(kāi)發(fā)商和軟件開(kāi)發(fā)商提供了一個(gè)開(kāi)放、通用的架構(gòu),使他們能互動(dòng)地開(kāi)發(fā)、部署和管理服務(wù)。

    基于OSGi 標(biāo)準(zhǔn)的軟件模塊化已經(jīng)成為主流的軟件開(kāi)發(fā)和集成方式。Eclipse 是目前著名的一個(gè)集成開(kāi)發(fā)環(huán)境(IDE),其最大的兩個(gè)特點(diǎn)是插件和擴(kuò)展,而其插件機(jī)制正是通過(guò)實(shí)現(xiàn)OSGi 規(guī)范實(shí)現(xiàn)的[18]。它支持模塊化的動(dòng)態(tài)部署、封裝和交互、支持模塊的動(dòng)態(tài)配置、是一種面向服務(wù)的構(gòu)件模型。

    OSGi 概念中主要分為構(gòu)件(Bundle)和服務(wù)(Service),可以認(rèn)為Bundle 是一個(gè)模塊的容器,主要通過(guò)BundleActivator 管理模塊的生命周期,而Service 則是這個(gè)模塊可暴露對(duì)外的服務(wù)對(duì)象。這里體現(xiàn)了OSGi 和傳統(tǒng)的Plugin Framework 不同的一個(gè)地方,管理和靜態(tài)結(jié)構(gòu)分開(kāi)。在OSGi 中通過(guò)在描述文件中增加一些內(nèi)容來(lái)發(fā)布Bundle,在其中描述了Bundle 的提供商、版本、唯一ID、執(zhí)行體路徑、暴露對(duì)外的接口、所依賴的接口。每個(gè)Bundle擁有自己的實(shí)例構(gòu)件器以及構(gòu)件執(zhí)行環(huán)境context,通過(guò)context 可進(jìn)行服務(wù)的注冊(cè)、卸載等,這些操作都會(huì)通過(guò)事件機(jī)制廣播給相應(yīng)的其他的Bundle.一般來(lái)說(shuō),通過(guò)在Bundle 中編寫(xiě)初始需要注冊(cè)的服務(wù)的方法來(lái)完成Bundle 可供外部使用的服務(wù)的暴露功能。需要調(diào)用其他Plugin 提供的服務(wù)可通過(guò)context 的getServiceReference 先獲取Service 的句柄,再通過(guò)context.getService (ServiceReference)的方法獲取Service 的實(shí)體。OSGi 標(biāo)準(zhǔn)所定義的框架模型[19]如圖1 所示。

    圖1 OSGi 框架模型Fig.1 OSGi framwork model

    硬件/操作系統(tǒng):嵌入式分布計(jì)算硬件及操作系統(tǒng),如X86,PowerPC,ARM 等,操作系統(tǒng)VxWorks,Linux。

    執(zhí)行環(huán)境:在硬件和操作系統(tǒng)之上標(biāo)準(zhǔn)的基礎(chǔ)軟件開(kāi)發(fā)環(huán)境,如POSIX 操作環(huán)境,標(biāo)準(zhǔn)的協(xié)議環(huán)境(TCP/IP 協(xié)議族協(xié)議、RPC 等),開(kāi)源庫(kù)環(huán)境(ACE、boost 等)。

    模塊層:該層負(fù)責(zé)動(dòng)態(tài)加卸載軟件構(gòu)件。一個(gè)完整的軟件構(gòu)件由構(gòu)件可執(zhí)行體(.out,.so 文件)及構(gòu)件描述文件組成,構(gòu)件描述文件中包括構(gòu)件名稱、優(yōu)先級(jí)、構(gòu)件內(nèi)存大小、構(gòu)件自身配置的屬性信息。

    在加載構(gòu)件時(shí),模塊層通過(guò)解析描述文件,動(dòng)態(tài)加載構(gòu)件可執(zhí)行體,并為構(gòu)件分配內(nèi)存,提供可執(zhí)行環(huán)境,記錄下構(gòu)件運(yùn)行優(yōu)先級(jí)及構(gòu)件配置的屬性信息,即為構(gòu)件執(zhí)行建立一個(gè)容器。

    在卸載構(gòu)件時(shí),模塊層負(fù)責(zé)回收分配的內(nèi)存,刪除構(gòu)件執(zhí)行容器,并在系統(tǒng)中卸載構(gòu)件可執(zhí)行體。

    生命周期層:該層主要負(fù)責(zé)軟件構(gòu)件的安裝、啟動(dòng)、更新、停止、卸載等操作。

    服務(wù)層:軟件構(gòu)件可以向服務(wù)層注冊(cè)零個(gè)或多個(gè)服務(wù),服務(wù)層主要功能是注冊(cè)服務(wù)和撤銷服務(wù),另外,還可以根據(jù)特定的服務(wù)屬性來(lái)查找目標(biāo)服務(wù)。

    構(gòu)件:構(gòu)件是具有獨(dú)立業(yè)務(wù)功能、可獨(dú)立部署和卸載的軟件實(shí)體。軟件構(gòu)件通過(guò)向服務(wù)層注冊(cè)服務(wù)對(duì)外部提供功能服務(wù),也可以向服務(wù)層請(qǐng)求服務(wù)來(lái)獲取其他服務(wù)功能。

    OSGi 框架模型因其開(kāi)放性,具有跨平臺(tái)、交互操作的能力,且小而高效,更加動(dòng)態(tài),無(wú)需重新啟動(dòng),特別適合嵌入式應(yīng)用[20]。但OSGi 均基于Java 實(shí)現(xiàn),如Equinox、Apache Felix 等IDE.而在嵌入式領(lǐng)域,大多數(shù)設(shè)備尤其是已有設(shè)備的環(huán)境都基于C、C++執(zhí)行環(huán)境。尤其是在某些專用的嵌入式領(lǐng)域,沒(méi)有對(duì)Java 環(huán)境的支持。本文參考OSGi 標(biāo)準(zhǔn)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)適用于標(biāo)準(zhǔn)C、C++環(huán)境的構(gòu)件化框架,并通過(guò)遠(yuǎn)程調(diào)用(RPC)將其應(yīng)用于分布式環(huán)境。

    2 嵌入式軟件構(gòu)件框架研究

    2.1 基于OSGi 的嵌入式軟件構(gòu)件框架

    將OSGi 框架映射到嵌入式分布環(huán)境對(duì)應(yīng)關(guān)系如圖2 所示。

    圖2 OSGi 框架到嵌入式環(huán)境的映射Fig.2 Mapping from OSGi framework to embedded environment

    其中硬件/操作系統(tǒng)層因各嵌入式設(shè)備的不同而不同,不在本文研究范圍之內(nèi)。本文所設(shè)計(jì)實(shí)現(xiàn)的構(gòu)件框架是基于POSIX、RPC、OSGi 等標(biāo)準(zhǔn)所實(shí)現(xiàn)的嵌入式軟件構(gòu)件框架,因此具有普遍的適應(yīng)性。

    本文的嵌入式軟件構(gòu)件化系統(tǒng)體系結(jié)構(gòu)如圖3所示。

    圖3 嵌入式軟件構(gòu)件化系統(tǒng)體系結(jié)構(gòu)Fig.3 Architecture of component-based embedded software system

    2.1.1 可插拔實(shí)時(shí)傳輸協(xié)議適配層

    嵌入式系統(tǒng)中設(shè)備種類繁多,設(shè)備之間通信所使用的總線、接口方式及通信協(xié)議也多種多樣,可插拔傳輸協(xié)議適配層就是在原有總線驅(qū)動(dòng)的基礎(chǔ)上,向上為核心服務(wù)層封裝了一層固定的接口,向下屏蔽了總線及其驅(qū)動(dòng)程序的差異性。接口形式依據(jù)不同的總線而不同,其中包括了基本的控制接口與數(shù)據(jù)收發(fā)接口[21]。完善的接口應(yīng)支持長(zhǎng)數(shù)據(jù)幀的收發(fā),如用戶數(shù)據(jù)報(bào)協(xié)議(UDP)數(shù)據(jù)包最長(zhǎng)為2 048字節(jié)等,而封裝后的接口則沒(méi)有數(shù)據(jù)幀長(zhǎng)度的限制,可以支持長(zhǎng)數(shù)據(jù)幀的收發(fā)??刹灏螌?shí)時(shí)傳輸協(xié)議適配層提供了固定接口的驅(qū)動(dòng)封裝層,在整個(gè)體系結(jié)構(gòu)中是軟件執(zhí)行環(huán)境中的一部分。

    基于構(gòu)件化框架所開(kāi)發(fā)的應(yīng)用依據(jù)自身的設(shè)備環(huán)境對(duì)此層進(jìn)行配置。核心服務(wù)層的部署與配置服務(wù),通過(guò)讀取可插拔實(shí)時(shí)傳輸協(xié)議適配層的配置文件,動(dòng)態(tài)加載對(duì)應(yīng)的驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)。

    2.1.2 核心服務(wù)層

    核心服務(wù)層實(shí)現(xiàn)了構(gòu)件化框架的核心功能,它是對(duì)OSGi 框架的生命周期、模塊和執(zhí)行環(huán)境3 個(gè)層次的實(shí)現(xiàn)。核心服務(wù)層分為6 個(gè)功能模塊:

    1)部署與配置

    基于OSGi 而構(gòu)建的系統(tǒng)可以以模塊化的方式動(dòng)態(tài)地部署至框架中,從而增加、擴(kuò)展或改變系統(tǒng)的功能。OSGi 通過(guò)提供Configuration Admin 服務(wù)來(lái)實(shí)現(xiàn)模塊的動(dòng)態(tài)配置和統(tǒng)一管理,基于此服務(wù)各模塊的配置可在運(yùn)行期間進(jìn)行增加、修改和刪除,所有對(duì)于模塊配置的管理統(tǒng)一調(diào)用Configuration Admin 服務(wù)接口來(lái)實(shí)現(xiàn)。

    2)傳輸抽象層

    傳輸抽象層負(fù)責(zé)將實(shí)時(shí)傳輸協(xié)議適配層的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)格式提交給核心服務(wù)層的其他模塊,傳輸抽象層屏蔽了底層多樣的傳輸協(xié)議、不同的接口方式,向上層提供了統(tǒng)一的數(shù)據(jù)格式、一致的接口方式,使整個(gè)核心服務(wù)層成為真正的中間件層。

    3)遠(yuǎn)程服務(wù)管理

    在嵌入式分布計(jì)算環(huán)境中,構(gòu)件可以使用另一個(gè)遠(yuǎn)程設(shè)備所提供的服務(wù),一個(gè)構(gòu)件所提供的服務(wù)也是面向整個(gè)系統(tǒng)的,也可以被遠(yuǎn)端的設(shè)備所使用。遠(yuǎn)程服務(wù)管理通過(guò)遠(yuǎn)程代理(Remote Proxy)、遠(yuǎn)程過(guò)程調(diào)用(RPC)等技術(shù)為上層提供遠(yuǎn)程服務(wù)。

    4)遠(yuǎn)程服務(wù)自動(dòng)發(fā)現(xiàn)

    遠(yuǎn)程服務(wù)自動(dòng)發(fā)現(xiàn)功能包括自動(dòng)發(fā)現(xiàn)系統(tǒng)內(nèi)其他節(jié)點(diǎn)和自動(dòng)發(fā)現(xiàn)系統(tǒng)網(wǎng)絡(luò)中的服務(wù)。自動(dòng)發(fā)現(xiàn)功能與遠(yuǎn)程服務(wù)管理合作實(shí)現(xiàn)了分布式構(gòu)件化的功能。本文以簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議(SSDP)為基礎(chǔ),實(shí)現(xiàn)了多鏈路層下系統(tǒng)網(wǎng)絡(luò)服務(wù)發(fā)現(xiàn)機(jī)制,使服務(wù)自動(dòng)發(fā)現(xiàn)更具廣泛性。

    SSDP 定義了如何在網(wǎng)絡(luò)上發(fā)現(xiàn)網(wǎng)絡(luò)服務(wù)的方法,SSDP 信息的傳送是依靠HTTPU 和HTTPMU 進(jìn)行的。設(shè)備接入網(wǎng)絡(luò)之后,要利用它向網(wǎng)絡(luò)廣播自己的存在(廣播的信息中還有設(shè)備位置的描述),以便盡快與對(duì)應(yīng)的控制點(diǎn)建立聯(lián)系;控制點(diǎn)則利用SSDP 來(lái)搜索自己將要控制的設(shè)備在哪里。并且可以排除已經(jīng)存在的設(shè)備和控制點(diǎn),只為新近的或尚未“聯(lián)絡(luò)”上的雙方服務(wù)。

    5)本地服務(wù)管理

    構(gòu)件以提供服務(wù)的方式來(lái)實(shí)現(xiàn)功能,本地服務(wù)管理記錄了本地所有構(gòu)件各自所提供的服務(wù)、服務(wù)被引用的次數(shù),服務(wù)監(jiān)聽(tīng)、響應(yīng)服務(wù)注冊(cè)和請(qǐng)求以及服務(wù)接口的過(guò)早請(qǐng)求等功能。

    6)構(gòu)件管理

    實(shí)現(xiàn)了構(gòu)件的啟動(dòng)、停止、監(jiān)聽(tīng)等功能。

    2.1.3 構(gòu)件接口層

    此層是對(duì)OSGi 模型中構(gòu)件層和服務(wù)層的實(shí)現(xiàn),一個(gè)完整的構(gòu)件從內(nèi)部實(shí)現(xiàn)和外部接口描述包含以下5 部分:

    1)服務(wù)接口定義

    構(gòu)件接口定義采用IDL 文件或純虛函數(shù)的.h 文件,支持標(biāo)準(zhǔn)數(shù)據(jù)類型和自定義數(shù)據(jù)類型。

    2)構(gòu)件實(shí)現(xiàn)

    軟件構(gòu)件是具有獨(dú)立業(yè)務(wù)功能、可獨(dú)立部署和卸載的軟件實(shí)體,軟件構(gòu)件通過(guò)向服務(wù)層注冊(cè)服務(wù)對(duì)外部提供功能服務(wù),也可以向服務(wù)層請(qǐng)求服務(wù)來(lái)獲取其他服務(wù)功能。

    一個(gè)構(gòu)件實(shí)現(xiàn)可以提供零個(gè)或多個(gè)服務(wù),因此包含零個(gè)或多個(gè)服務(wù)接口實(shí)現(xiàn)。

    3)構(gòu)件啟動(dòng)器

    構(gòu)件實(shí)現(xiàn)的啟動(dòng)器類集成自標(biāo)準(zhǔn)的構(gòu)件啟動(dòng)器類,構(gòu)件實(shí)現(xiàn)者須實(shí)現(xiàn)啟動(dòng)器類的標(biāo)準(zhǔn)函數(shù),包括start、stop 等函數(shù),在start 函數(shù)中主要完成注冊(cè)構(gòu)件所能提供的服務(wù)服務(wù),監(jiān)聽(tīng)構(gòu)件所需的服務(wù)等操作。

    4)構(gòu)件描述文件

    構(gòu)件描述文件描述了構(gòu)件的基本屬性,其中包括構(gòu)件版本、提供商、加載路徑、服務(wù)接口定義文件以及構(gòu)件的基本屬性等信息。

    5)構(gòu)件獲取服務(wù)

    構(gòu)件獲取其他構(gòu)件所提供的服務(wù)時(shí)通過(guò)服務(wù)監(jiān)聽(tīng)器實(shí)現(xiàn),構(gòu)件以服務(wù)名稱為參數(shù)向框架注冊(cè)服務(wù)監(jiān)聽(tīng)器,框架在接收到對(duì)應(yīng)的服務(wù)注冊(cè)后主動(dòng)通知服務(wù)監(jiān)聽(tīng)器,構(gòu)件在實(shí)現(xiàn)的服務(wù)監(jiān)聽(tīng)器中可以獲取到所需要的服務(wù)。

    服務(wù)接口、構(gòu)件實(shí)現(xiàn)、構(gòu)件啟動(dòng)器與服務(wù)監(jiān)聽(tīng)器之間的關(guān)系如圖4 所示。

    圖4 構(gòu)件接口層類圖Fig.4 Class diagram of the component interface layer

    BundleContext 是構(gòu)件運(yùn)行的容器,構(gòu)件啟動(dòng)器通過(guò)BundleContext 所提供的方法與框架進(jìn)行信息交互,如向框架注冊(cè)服務(wù),向框架注冊(cè)服務(wù)監(jiān)聽(tīng)器等操作;構(gòu)件啟動(dòng)(BundleActivatorImpl)類是BundleActivator 的接口實(shí)現(xiàn),在實(shí)現(xiàn)接口中start 方法完成服務(wù)的注冊(cè)與監(jiān)聽(tīng);構(gòu)件獲取服務(wù)(ServiceEntity)類是對(duì)服務(wù)接口ServiceInterface 的實(shí)現(xiàn),服務(wù)監(jiān)聽(tīng)器類ServiceListener 在接收到框架對(duì)服務(wù)的事件后,可以從框架中獲取到所監(jiān)聽(tīng)的服務(wù)接口指針。

    2.2 傳輸抽象層設(shè)計(jì)實(shí)現(xiàn)

    嵌入式系統(tǒng)中設(shè)備種類繁多,設(shè)備之間通信所使用的總線、接口方式及通信協(xié)議也多種多樣,傳輸抽象層是在原有總線驅(qū)動(dòng)的基礎(chǔ)上為上層封裝了統(tǒng)一的編程接口,屏蔽了上層軟件程序與各總線驅(qū)動(dòng)軟件調(diào)用接口的差異。傳輸抽象層在整個(gè)嵌入式軟件構(gòu)件化框架中起著承上啟下的作用,對(duì)上它統(tǒng)一系統(tǒng)調(diào)用接口;對(duì)下它實(shí)現(xiàn)與各具體總線通訊的功能。因此,傳輸抽象層的設(shè)計(jì)應(yīng)遵循以下4 點(diǎn)設(shè)計(jì)原則:

    1)傳輸抽象層應(yīng)提供統(tǒng)一套統(tǒng)一的調(diào)用接口,接口函數(shù)應(yīng)盡量簡(jiǎn)單、明確,復(fù)雜、繁多的接口會(huì)增加軟件系統(tǒng)的復(fù)雜性,不利于錯(cuò)誤的發(fā)現(xiàn)和定位。

    2)傳輸抽象層中的接口函數(shù)在各個(gè)不同的嵌入式系統(tǒng)中要保證實(shí)現(xiàn)的是相同的功能,否則應(yīng)用程序在不同平臺(tái)下會(huì)產(chǎn)生錯(cuò)誤的結(jié)果。

    3)傳輸抽象層中的接口函數(shù)應(yīng)盡可能的覆蓋應(yīng)用程序調(diào)用到的全部功能接口,以提供給編程設(shè)計(jì)人員較大的靈活性和自主性。

    4)傳輸抽象層的接口應(yīng)具有自封閉性、可測(cè)試性,由于其處于系統(tǒng)的中間層,出現(xiàn)錯(cuò)誤時(shí)會(huì)對(duì)應(yīng)用程序的調(diào)試定位產(chǎn)生一定的干擾,因此,系統(tǒng)必須經(jīng)過(guò)完備的測(cè)試保證嵌入式軟件系統(tǒng)的健壯性。

    考慮到傳輸抽象層的特點(diǎn)和實(shí)際需求,本文采用軟件設(shè)計(jì)中的結(jié)構(gòu)型設(shè)計(jì)模式——適配器模式。適配器模式可以將一個(gè)具體的接口轉(zhuǎn)換成統(tǒng)一的抽象接口。適配器模式在實(shí)現(xiàn)時(shí)的類結(jié)構(gòu)如圖5 所示。

    圖5 傳輸抽象層適配器模式類結(jié)構(gòu)Fig.5 Class structure of adapter pattern in transmission abstraction layer

    圖5中,Client 為使用抽象接口的應(yīng)用;Target定義了Client 使用的與特定領(lǐng)域相關(guān)的接口,Target內(nèi)定義了所有抽象接口;Adaptee 為已經(jīng)存在的接口,也是需要適配具體的接口;Adapter 實(shí)現(xiàn)了對(duì)Adaptee 的接口與Target 接口的適配。Client 調(diào)用Target 的Request 函數(shù)時(shí)通過(guò)使用了Adaptee 對(duì)象的SpecificRequest 函數(shù),來(lái)實(shí)現(xiàn)了對(duì)具體接口的抽象功能。

    本文傳輸抽象層的主要功能是完成不同類型總線數(shù)據(jù)的收發(fā),因此適配器主要包含兩個(gè)接口,即接收數(shù)據(jù)接口和發(fā)送數(shù)據(jù)接口,如圖6 所示。

    圖6 傳輸抽象層適配器接口Fig.6 Interface of adapter pattern in transmission abstraction layer

    圖6中TransAdapter 是傳輸接口基類,TransCAN、TransFlexRay、TransMIC 分別代表CAN 總線、FlexRay 總線、MIC 總線的傳輸驅(qū)動(dòng)封裝實(shí)現(xiàn),其內(nèi)部實(shí)現(xiàn)了具體總線通信的驅(qū)動(dòng)程序,同時(shí)還實(shí)現(xiàn)了傳輸適配器所要求的發(fā)送和接收數(shù)據(jù)接口。

    3 構(gòu)件遠(yuǎn)程服務(wù)實(shí)現(xiàn)

    目前比較流行的分布式計(jì)算模型有CORBA、DCOM[22],還有一些專門(mén)基于Java 實(shí)現(xiàn)的模型,這些模型大多面向企業(yè)級(jí)應(yīng)用,有較完整的體系結(jié)構(gòu),但應(yīng)用接口太過(guò)復(fù)雜,體積龐大,通信協(xié)議單一,且容易出現(xiàn)單點(diǎn)故障,應(yīng)用于嵌入式分布計(jì)算環(huán)境難度很大[23]。

    遠(yuǎn)程過(guò)程調(diào)用(RPC)是一種從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求一個(gè)服務(wù)器,而不需要了解下層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC 協(xié)議假定某些傳輸協(xié)議的存在,如TCP或UDP 或自定義傳輸協(xié)議,使得通信程序之間能傳輸信息數(shù)據(jù),在OIS 網(wǎng)絡(luò)通信模式中跨越了傳輸層和應(yīng)用層。RPC 使得生成應(yīng)用程序包括分布式復(fù)用程序更加容易。

    在嵌入式分布計(jì)算環(huán)境中,傳輸層需要依據(jù)不同的物理總線和具體的總線傳輸協(xié)議重新實(shí)現(xiàn)。相比CORBA,DCOM 等分布式計(jì)算模型架構(gòu),RPC 是一個(gè)輕量級(jí)的分布式通信模型,更適合應(yīng)用于嵌入式分布計(jì)算環(huán)境。

    RPC 使用的是客戶機(jī)/服務(wù)器模式。請(qǐng)求程序就是一個(gè)客戶機(jī),而服務(wù)程序就是一個(gè)服務(wù)器。首先,調(diào)用過(guò)程發(fā)送一個(gè)調(diào)用信息到服務(wù)過(guò)程,然后等待應(yīng)答信息。調(diào)用過(guò)程包括過(guò)程參數(shù),應(yīng)答信息包括過(guò)程結(jié)果。在服務(wù)器端,過(guò)程保持睡眠狀態(tài)到調(diào)用信息的到達(dá)。當(dāng)一個(gè)調(diào)用信息到達(dá),服務(wù)器獲得過(guò)程參數(shù),計(jì)算結(jié)果,發(fā)送應(yīng)答信息,然后等待下一個(gè)調(diào)用信息。最后,調(diào)用過(guò)程接收應(yīng)答信息,獲得過(guò)程結(jié)果,然后調(diào)用執(zhí)行繼續(xù)進(jìn)行。

    本文所實(shí)現(xiàn)的嵌入式分布環(huán)境下的遠(yuǎn)程過(guò)程調(diào)用依據(jù)RFC1057[24]協(xié)議標(biāo)準(zhǔn)實(shí)現(xiàn),調(diào)用流程如圖7所示。

    圖7 遠(yuǎn)程過(guò)程調(diào)用流程圖Fig.7 RPC flowchart

    客戶端代理/服務(wù)器代理:代理是對(duì)服務(wù)接口的一層封裝,客戶對(duì)服務(wù)的請(qǐng)求由代理執(zhí)行,本文在遠(yuǎn)程服務(wù)管理模塊中實(shí)現(xiàn)了客戶端/服務(wù)器代理模板類RPCClient,RPCServer,將接口抽象類作為模板參數(shù)傳入即可,如客戶端代理RPCClient <Interface >,服務(wù)器代理類RPCServer <Interface >,在實(shí)現(xiàn)時(shí),代理是由遠(yuǎn)程服務(wù)管理模塊自動(dòng)生成的,應(yīng)用程序并不需要知道服務(wù)在本地還是在遠(yuǎn)程。

    傳輸適配器:系統(tǒng)網(wǎng)絡(luò)上各控制點(diǎn)通過(guò)傳輸適配器進(jìn)行信息交互,同樣,RPC 協(xié)議也通過(guò)傳輸適配器進(jìn)行傳輸,這樣同一個(gè)服務(wù)代理可以為多條總線上的客戶提供服務(wù),客戶端也可以從不同的總線上獲取不同的服務(wù)。

    RPC 協(xié)議:遠(yuǎn)程過(guò)程調(diào)用(RPC)信息協(xié)議由兩類不同結(jié)構(gòu)組成:調(diào)用信息和答復(fù)信息。每條調(diào)用信息都包括程序號(hào)(prog)、程序版本號(hào)(vers)、過(guò)程號(hào)(proc)三個(gè)無(wú)符號(hào)整數(shù)字段,以獨(dú)立識(shí)別遠(yuǎn)程過(guò)程。成功的答復(fù)信息包含調(diào)用服務(wù)接口后的返回結(jié)果,失敗的答復(fù)信息包含調(diào)用失敗的原因。

    RPC 協(xié)議從語(yǔ)義上保證了調(diào)用信息和答復(fù)信息對(duì)調(diào)用過(guò)程及結(jié)果描述的完整性,遠(yuǎn)程服務(wù)管理實(shí)現(xiàn)了信息鑒定、超時(shí)處理,信息長(zhǎng)度限制等內(nèi)容。

    4 實(shí)驗(yàn)結(jié)果分析

    本文所實(shí)現(xiàn)的構(gòu)件化框架將開(kāi)放、靈活的OSGi模型應(yīng)用于嵌入式C++應(yīng)用環(huán)境下,并在VxWorks操作系統(tǒng)中得到了驗(yàn)證,從內(nèi)存空間、性能約束、實(shí)時(shí)性等方面保證了此構(gòu)件化框架可應(yīng)用于更苛刻的嵌入式系統(tǒng)環(huán)境。

    圖8 是相同嵌入式應(yīng)用軟件在VxWorks 操作系統(tǒng)下,采用本文所實(shí)現(xiàn)的分布嵌入式軟件構(gòu)件框架與采用CCM 模型對(duì)系統(tǒng)的存儲(chǔ)空間、啟動(dòng)時(shí)間、內(nèi)存容量平均指標(biāo)對(duì)比圖。

    圖8 框架性能對(duì)比Fig.8 Comparison of framework performances

    由于CCM 模型主要面向企業(yè)級(jí)應(yīng)用,所生成的構(gòu)件實(shí)體體積都很大,所占磁盤(pán)、內(nèi)存容量較大,啟動(dòng)時(shí)間較長(zhǎng),因此在嵌入分布式環(huán)境下,與本文框架相比在這些性能方面要遜色很多。實(shí)驗(yàn)結(jié)果表明,采用本文所實(shí)現(xiàn)的分布嵌入式軟件構(gòu)件框架,與采用CCM 模型相比,相同嵌入式應(yīng)用軟件所需核心庫(kù)的容量大小平均降至約1/9,啟動(dòng)時(shí)間平均下降至約3/10,內(nèi)存占用空間平均下降至不到1/5.

    圖9 是在分布式應(yīng)用環(huán)境下,采用本文所實(shí)現(xiàn)的分布嵌入式軟件構(gòu)件框架與采用CCM 模型的系統(tǒng)服務(wù)實(shí)時(shí)性的對(duì)比圖。

    由于CCM 模型中各節(jié)點(diǎn)的構(gòu)件在使用其他節(jié)點(diǎn)構(gòu)件所提供的服務(wù)時(shí),先通過(guò)檢索名字服務(wù)器提供的名字服務(wù)來(lái)請(qǐng)求服務(wù),如圖10 所示。且當(dāng)構(gòu)件請(qǐng)求服務(wù)時(shí),需一直保持等待狀態(tài)直至名字服務(wù)器的回應(yīng)結(jié)果才能進(jìn)行其他任務(wù),如圖11 所示。因此當(dāng)請(qǐng)求服務(wù)接口大量增多時(shí),名字服務(wù)器處于忙碌狀態(tài),申請(qǐng)服務(wù)的構(gòu)件等待的時(shí)間也急劇增加,系統(tǒng)的服務(wù)接口響應(yīng)時(shí)間相應(yīng)急劇增加。如圖9 所示,當(dāng)系統(tǒng)的服務(wù)接口由400 個(gè)增加到1 000 個(gè)時(shí),響應(yīng)時(shí)間由0.01 s 增加到0.018 s,增加了180%.此外,若名字服務(wù)器發(fā)生故障,則整個(gè)系統(tǒng)的請(qǐng)求服務(wù)均不能進(jìn)行,造成單點(diǎn)故障問(wèn)題。

    圖10 CCM 模型節(jié)點(diǎn)請(qǐng)求服務(wù)模式Fig.10 Pattern of service request between nodes in CCM

    圖11 CCM 模型節(jié)點(diǎn)請(qǐng)求服務(wù)執(zhí)行流程Fig.11 Flow-process of service request between nodes in CCM

    而本文所實(shí)現(xiàn)的分布嵌入式軟件構(gòu)件框架中,各節(jié)點(diǎn)構(gòu)件僅需通過(guò)本節(jié)點(diǎn)自帶的簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議(SSDP),向其他節(jié)點(diǎn)的構(gòu)件請(qǐng)求服務(wù),節(jié)點(diǎn)之間直接通信避免了單點(diǎn)故障問(wèn)題,如圖12 所示。本節(jié)點(diǎn)的服務(wù)發(fā)現(xiàn)協(xié)議一旦與要調(diào)用的節(jié)點(diǎn)控件聯(lián)系上,便通知本節(jié)點(diǎn)構(gòu)件,系統(tǒng)內(nèi)的其他構(gòu)件在此期間可以繼續(xù)工作而不受影響不用等待,如圖13 所示。

    圖12 本文框架請(qǐng)求服務(wù)模式Fig.12 Pattern of service request between nodes in the framework of this article

    由圖9 可以看出,當(dāng)系統(tǒng)的服務(wù)接口由400 個(gè)增加到1 000 個(gè)時(shí),本文框架系統(tǒng)響應(yīng)時(shí)間不僅絕對(duì)值比CCM 模型的低,僅由0.004 s 增加到0.005 s,且變化的相對(duì)值也低,僅增加了25%.顯然本文框架更適合應(yīng)用于對(duì)實(shí)時(shí)性要求高的嵌入分布式系統(tǒng)。

    圖13 本文框架請(qǐng)求服務(wù)執(zhí)行流程Fig.13 Flow-process of service request between nodes in the framework of this article

    5 結(jié)論

    本文所研究的構(gòu)件化框架將OSGi 框架模型應(yīng)用于嵌入式C++應(yīng)用環(huán)境下,通過(guò)加入傳輸抽象層實(shí)現(xiàn)了在多通信協(xié)議環(huán)境下的嵌入式軟件構(gòu)件化框架,為動(dòng)態(tài)可擴(kuò)展的系統(tǒng)開(kāi)發(fā)提供了支持。與目前通用的EJB、CORBA 組件模型(CCM)等分布式構(gòu)架框架技術(shù)相比,能解決其單點(diǎn)故障、構(gòu)件實(shí)體體積大等問(wèn)題,更適用于對(duì)系統(tǒng)啟動(dòng)時(shí)間、磁盤(pán)內(nèi)存有嚴(yán)格要求的嵌入式分布計(jì)算環(huán)境。通過(guò)實(shí)驗(yàn)數(shù)據(jù)驗(yàn)證了本文框架的系統(tǒng)存儲(chǔ)空間、啟動(dòng)時(shí)間、內(nèi)存容量、服務(wù)實(shí)時(shí)性等性能均高于CCM 模型框架,具有一定的工程應(yīng)用價(jià)值。

    References)

    [1]齊勇,趙季中,侯迪.基于Web 的中間件系統(tǒng)集成框架——應(yīng)用服務(wù)器的研究[J].計(jì)算機(jī)研究與發(fā)展,2001,38 (4):430-437.QI Yong,ZHAO Ji-zhong,HOU Di.Study of application serverweb-based middleware system integrated framework[J].Journal of Computer Research &Development,2011,38(4):430 -437.(in Chinese)

    [2]Lau K K,Wang Z.Software computer models[J].IEEE Transactions on Software Engineering,2007,33(10):709 - 724.

    [3]Manolios P,Subramanian G,Vroon D.Automating componentbased system assembly[C]∥Proceedings of the 2007 International Symposium on Software Testing and Analysis.New York:NY,2007:61 -72.

    [4]Crnkovic I,Schmidt H,Stafford J,et al.Automated componentbased software engineering[J].Journal of Systems and Software,2005,74(1):1 -3.

    [5]Cao F,Bryant B R,Burt C C,et al.A component assembly approach based on aspect-oriented generative domain modeling[J].Electronic Notes in Theoretical Computer Science,2005,114(1):119 -136.

    [6]劉國(guó)梁,魏峻,馮玉琳.基于組件模型分析的組件容器產(chǎn)品線體系結(jié)構(gòu)[J].軟件學(xué)報(bào),2010,21(1):68 -83.LIU Guo-liang,WEI Jun,F(xiàn)ENG Yu-lin.Container product line architecture base on component model analysis[J].Journal of Software,2010,21(1):68 -83.(in Chinese)

    [7]王瓊,杜承烈,蔡小斌,等.基于構(gòu)件的中間件體系結(jié)構(gòu)集成形式化研究[J].計(jì)算機(jī)科學(xué),2010,37(8):164 -167.WANG Qiong,DU Cheng-lie,CHAI Xiao-bin,et al.Research of integration of middleware architecture[J].Computer Science,2010,37(8):164 -167.(in Chinese)

    [8]彭云峰,姚琳,趙沖沖,等.并行構(gòu)件技術(shù)研究綜述[J].計(jì)算機(jī)科學(xué),2011,38(2):18 -27.PENG Yun-feng,YAO Lin,ZHAO Chong-chong,et al.Overview of technologies for parallel component[J].Computer Science,2011,38(2):18 -27.(in Chinese)

    [9]彭天翔,曹旻.基于中間件的Web 應(yīng)用組合工具的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(7):1500 -1502,1634.PENG Tian-xiang,CAO Min.Research on middleware-based Web application integration tool[J].Computer Engineering and Design,2010,31(7):1500 -1502,1634.(in Chinese)

    [10]胡劍軍,官荷卿,魏峻,等.一種基于性能模型的中間件自配置框架[J].軟件學(xué)報(bào),2007,18(9):2117 -2129.HU Jian-jun,GUAN He-qing,WEI Jun,et al.A performance model-based self-configuration framework for middleware[J].Journal of Software,2007,18(9):2117 - 2129.(in Chinese)

    [11]Frank Buschmann,Kevlin Henney,Douglas C.Schmidt.面向模式的軟件架構(gòu):分布式計(jì)算的模式語(yǔ)言:第4 卷[M].肖鵬,陳立,譯.北京:人民郵電出版社,2010:9 -17.Buschmann F,Henney K,Schmidt D C.Pattern-oriented software architecture:a pattern language for distributed computing:volume 4[M].XIAO Peng,CHEN Li,translation.Beijing:Posts & Telecom Press,2010:9 -17.(in Chinese)

    [12]Komoda N.Service oriented architecture(SOA)in industrial system[C]∥Proceedings of IEEE International Conference on Industrial Informatics.Washington:IEEE,2006:1 -5.

    [13]Broll W,Lindt I,Herbst I,et al.Toward next-gen mobile AR games[J].IEEE Computer Graphics and Application,2008,28(4):40 -48.

    [14]李磊,王懷民.CORBA 與EJB 集成技術(shù)的研究[J].計(jì)算機(jī)科學(xué),2001,28(6):27 -29.LI Lei,WANG Huai-min.The integration studu of CORBA and EJB[J].Computer Science,2001,28(6):27 -29.(in Chinese)

    [15]黃罡,張路,周明輝.構(gòu)件化軟件設(shè)計(jì)與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2008:198 -204.HUANG Gang,ZHANG Lu,ZHOU Ming-h(huán)ui.Design and Implementation of component-based software[M].Beijing:Tsinghua University Press,2008:198 -204.(in Chinese)

    [16]陳波,李舟軍,陳火旺.構(gòu)件模型研究綜述[J].計(jì)算機(jī)工程與科學(xué),2008,30(1):105 -109.CHEN Bo,LI Zhou-jun,CHEN Huo-wang.Research on component models:a survey[J].Computer Engineering & Science,2008,30(1):105 -109.(in Chinese)

    [17]甄甫,劉民,董明宇.基于面向服務(wù)架構(gòu)消息中間件的業(yè)務(wù)流程系統(tǒng)集成方法研究[J].計(jì)算機(jī)集成制造系統(tǒng),2009,15(5):968 -972.ZHEN Fu,LIU Min,DONG Ming-yu.SOA message-oriented middleware based system integration method for business process[J].Computer Integrated Manufacturing Systems,2009,15(5):968 -972.(in Chinese)

    [18]Gruber O,Hargrave B J,McAffer J,et al.The Eclipse 3.0 platform:adopting OSGi technology[J].IBM Systems Journal,2005,44(2):289 -299.

    [19]OSGi Alliance.OSGi service platform core specification release 4 version 4.3[EB/OL].2011-04-01.http:∥www.osgi.org/Download/Release4V43.

    [20]楊春陽(yáng),劉兵.基于OSGi 規(guī)范的“智能化”嵌入式應(yīng)用開(kāi)發(fā)[J].儀器儀表學(xué)報(bào),2004,25(4):624 -626.YANG Chun-yang,LIU Bing.“Smart”application development based on OSGi specification[J].Chinese Journal of Scientific Instrument,2004,25(4):624 -626.(in Chinese)

    [21]何小朝.消息設(shè)計(jì)與開(kāi)發(fā):分布式應(yīng)用開(kāi)發(fā)的核心技術(shù)[M].北京:電子工業(yè)出版社,2011:13.HE Xiao-chao.Design and development of message:the core technologies of distributed application development[M].Beijing:Publishing House of Electronics Industry,2011:13.(in Chinese)

    [22]Sharp D.Real-time distributed object computing:ready for mission-critical embedded system applications[C]∥Proceedings of the Third International Symposium on Distributed Objects and Applications (DOA'01).Rome:IEEE,2001:3 -4.

    [23]韋華穎,詹劍鋒,王沁.分布式構(gòu)件技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用研究,2004,21(10):12 -15,32.WEI Hua-ying,ZHAN Jian-feng,WANG Qin.Overview of distributed component technologies[J].Application Research of Computers,2004,21(10):12 -15,32.(in Chinese)

    [24]Sun Microsystems,Inc.RFC 1057-RPC:remote procedure call protocol specification:version 2[EB/OL].1988-06-01.http:∥www.rfc-editor.org/rfc/rfc1057.txt.

    猜你喜歡
    嵌入式軟件調(diào)用嵌入式
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    實(shí)時(shí)嵌入式軟件的測(cè)試技術(shù)
    搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
    全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
    電子制作(2017年17期)2017-12-18 06:40:56
    嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    基于Eclipse的航天嵌入式軟件集成開(kāi)發(fā)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)
    航天嵌入式軟件浮點(diǎn)運(yùn)算誤差分析與控制
    Altera加入嵌入式視覺(jué)聯(lián)盟
    在线观看免费高清a一片| 久久久久久人人人人人| 亚洲精品国产一区二区精华液| 久久久久国内视频| 99国产精品免费福利视频| 亚洲精品在线美女| 啦啦啦视频在线资源免费观看| 国产熟女午夜一区二区三区| 人人妻人人爽人人添夜夜欢视频| 久久午夜综合久久蜜桃| 国产欧美日韩一区二区精品| 久久国产精品大桥未久av| 亚洲成人免费av在线播放| 亚洲精品一卡2卡三卡4卡5卡 | 国产熟女午夜一区二区三区| 亚洲国产精品999| 中国美女看黄片| 国产一区二区激情短视频 | 成人亚洲精品一区在线观看| 中文字幕高清在线视频| 色精品久久人妻99蜜桃| 日韩三级视频一区二区三区| 国产一区二区三区综合在线观看| 狂野欧美激情性bbbbbb| 两个人看的免费小视频| 久久香蕉激情| 国产欧美亚洲国产| 自线自在国产av| 手机成人av网站| 国产男女内射视频| 视频在线观看一区二区三区| 在线永久观看黄色视频| 亚洲欧美精品综合一区二区三区| 欧美国产精品一级二级三级| 1024视频免费在线观看| 欧美午夜高清在线| 99国产精品一区二区三区| 制服人妻中文乱码| 黄色片一级片一级黄色片| cao死你这个sao货| 黄色视频不卡| 丝瓜视频免费看黄片| 午夜激情av网站| 日日爽夜夜爽网站| 午夜成年电影在线免费观看| 一区二区av电影网| a级毛片在线看网站| 国产精品自产拍在线观看55亚洲 | a在线观看视频网站| 俄罗斯特黄特色一大片| 久久久欧美国产精品| 丁香六月天网| 国产无遮挡羞羞视频在线观看| 中文字幕av电影在线播放| √禁漫天堂资源中文www| 国产欧美日韩综合在线一区二区| 中亚洲国语对白在线视频| 精品久久久久久久毛片微露脸 | 国产精品一区二区在线观看99| 成年动漫av网址| 亚洲成人免费电影在线观看| 国产精品久久久久成人av| 淫妇啪啪啪对白视频 | 亚洲午夜精品一区,二区,三区| 精品国产乱子伦一区二区三区 | 少妇 在线观看| 黄色毛片三级朝国网站| 精品一区二区三区四区五区乱码| 69av精品久久久久久 | 国产淫语在线视频| 久久久久久久国产电影| 在线十欧美十亚洲十日本专区| 一级毛片女人18水好多| 大码成人一级视频| 18禁黄网站禁片午夜丰满| 久久久久久久久久久久大奶| 18禁国产床啪视频网站| 亚洲国产精品成人久久小说| 黑人欧美特级aaaaaa片| 久久天躁狠狠躁夜夜2o2o| 日韩欧美一区二区三区在线观看 | 青春草亚洲视频在线观看| 婷婷丁香在线五月| 激情视频va一区二区三区| 国产成人精品久久二区二区免费| 欧美另类亚洲清纯唯美| 国产极品粉嫩免费观看在线| 1024视频免费在线观看| 久久人妻福利社区极品人妻图片| www.999成人在线观看| 美女午夜性视频免费| 伊人久久大香线蕉亚洲五| 一级黄色大片毛片| 精品久久久精品久久久| 一级毛片精品| 正在播放国产对白刺激| av又黄又爽大尺度在线免费看| 久久久久久久久久久久大奶| 久久女婷五月综合色啪小说| 精品视频人人做人人爽| 男女午夜视频在线观看| 美女午夜性视频免费| 亚洲伊人色综图| 国产精品国产三级国产专区5o| 黑人操中国人逼视频| av在线播放精品| 亚洲欧洲精品一区二区精品久久久| 熟女少妇亚洲综合色aaa.| 爱豆传媒免费全集在线观看| 十分钟在线观看高清视频www| 国产成人av教育| 日本一区二区免费在线视频| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲美女黄色视频免费看| 视频在线观看一区二区三区| 亚洲精品日韩在线中文字幕| 免费高清在线观看日韩| 国产一区二区三区综合在线观看| 人人妻人人爽人人添夜夜欢视频| 人妻一区二区av| 亚洲第一青青草原| 欧美激情 高清一区二区三区| 精品国产一区二区三区四区第35| 日本91视频免费播放| 乱人伦中国视频| 亚洲国产成人一精品久久久| 亚洲中文字幕日韩| 9热在线视频观看99| 美国免费a级毛片| 丁香六月欧美| 久久99热这里只频精品6学生| 亚洲欧美日韩高清在线视频 | 99久久精品国产亚洲精品| 亚洲精华国产精华精| 亚洲av日韩在线播放| 男女之事视频高清在线观看| 久久久国产精品麻豆| 亚洲男人天堂网一区| 国产av一区二区精品久久| 午夜免费观看性视频| 精品人妻1区二区| 91成人精品电影| 国产精品麻豆人妻色哟哟久久| 天天躁狠狠躁夜夜躁狠狠躁| 纯流量卡能插随身wifi吗| 国产精品久久久久久精品古装| 精品少妇一区二区三区视频日本电影| 伦理电影免费视频| 大片电影免费在线观看免费| 一本—道久久a久久精品蜜桃钙片| 三级毛片av免费| 深夜精品福利| 十八禁网站免费在线| 欧美老熟妇乱子伦牲交| 国产91精品成人一区二区三区 | 亚洲精品成人av观看孕妇| 亚洲欧美日韩另类电影网站| 精品少妇一区二区三区视频日本电影| 在线十欧美十亚洲十日本专区| 美女午夜性视频免费| 亚洲第一欧美日韩一区二区三区 | 99久久人妻综合| 悠悠久久av| 建设人人有责人人尽责人人享有的| 久久久久网色| 一边摸一边抽搐一进一出视频| 亚洲自偷自拍图片 自拍| 国产在视频线精品| 两人在一起打扑克的视频| 久久精品亚洲av国产电影网| 一区二区三区精品91| 超色免费av| 丝袜人妻中文字幕| 亚洲人成电影免费在线| 18禁黄网站禁片午夜丰满| 精品一区二区三区四区五区乱码| 日本wwww免费看| 日韩有码中文字幕| 亚洲欧美成人综合另类久久久| 99久久国产精品久久久| 精品国产一区二区久久| 欧美成狂野欧美在线观看| 最近最新免费中文字幕在线| 国产成人精品久久二区二区91| 国产精品一区二区在线观看99| 国产三级黄色录像| 日韩熟女老妇一区二区性免费视频| 精品乱码久久久久久99久播| 色94色欧美一区二区| 国产成人精品无人区| 欧美精品一区二区大全| 日本a在线网址| 亚洲一码二码三码区别大吗| 纵有疾风起免费观看全集完整版| 纵有疾风起免费观看全集完整版| 欧美激情高清一区二区三区| 国产伦人伦偷精品视频| 亚洲精品中文字幕一二三四区 | 99re6热这里在线精品视频| 日本精品一区二区三区蜜桃| 亚洲中文av在线| 国产精品一区二区在线观看99| 国产免费现黄频在线看| 久久精品国产亚洲av香蕉五月 | 久久狼人影院| 天天躁狠狠躁夜夜躁狠狠躁| 一级黄色大片毛片| 亚洲一区中文字幕在线| 9热在线视频观看99| 一级a爱视频在线免费观看| 久久人人爽人人片av| 激情视频va一区二区三区| 一边摸一边做爽爽视频免费| 在线观看www视频免费| 啦啦啦啦在线视频资源| 国产欧美日韩一区二区三区在线| 人人妻,人人澡人人爽秒播| 久久久国产欧美日韩av| 国产免费av片在线观看野外av| 一区二区日韩欧美中文字幕| 女性被躁到高潮视频| 色综合欧美亚洲国产小说| 男女国产视频网站| 中国国产av一级| 亚洲色图综合在线观看| 精品卡一卡二卡四卡免费| 成年人午夜在线观看视频| 久久久精品区二区三区| 精品亚洲乱码少妇综合久久| 国产男女内射视频| 日韩大码丰满熟妇| 18禁黄网站禁片午夜丰满| 精品久久蜜臀av无| 国产精品一区二区在线不卡| 午夜免费鲁丝| 国产亚洲精品一区二区www | 欧美午夜高清在线| 亚洲视频免费观看视频| 国产欧美亚洲国产| 日韩欧美免费精品| 丝袜人妻中文字幕| 日韩制服骚丝袜av| 亚洲精品乱久久久久久| 熟女少妇亚洲综合色aaa.| 午夜免费鲁丝| 女人爽到高潮嗷嗷叫在线视频| 欧美激情久久久久久爽电影 | 美女脱内裤让男人舔精品视频| 亚洲av欧美aⅴ国产| 老鸭窝网址在线观看| 亚洲一卡2卡3卡4卡5卡精品中文| 爱豆传媒免费全集在线观看| 久久影院123| 色播在线永久视频| 日本五十路高清| 在线观看免费视频网站a站| 国产一卡二卡三卡精品| 欧美日韩中文字幕国产精品一区二区三区 | 精品人妻在线不人妻| 久久久精品免费免费高清| 久久久欧美国产精品| 亚洲成av片中文字幕在线观看| 黑丝袜美女国产一区| 男女下面插进去视频免费观看| 久久精品成人免费网站| 麻豆av在线久日| 欧美成狂野欧美在线观看| tocl精华| 久久这里只有精品19| 狂野欧美激情性xxxx| 自拍欧美九色日韩亚洲蝌蚪91| 高清在线国产一区| 丝袜脚勾引网站| 在线观看人妻少妇| 国产淫语在线视频| 一二三四社区在线视频社区8| 成在线人永久免费视频| 母亲3免费完整高清在线观看| 欧美人与性动交α欧美精品济南到| 一级片'在线观看视频| 亚洲精品av麻豆狂野| a 毛片基地| 精品亚洲乱码少妇综合久久| 欧美老熟妇乱子伦牲交| 狠狠婷婷综合久久久久久88av| 国产色视频综合| 国产精品欧美亚洲77777| 国产在视频线精品| 丝袜在线中文字幕| 蜜桃在线观看..| 欧美日韩亚洲综合一区二区三区_| 国产黄频视频在线观看| 中文精品一卡2卡3卡4更新| 午夜免费鲁丝| 亚洲专区国产一区二区| 在线观看人妻少妇| 国产三级黄色录像| 嫁个100分男人电影在线观看| 91麻豆av在线| 亚洲中文日韩欧美视频| 9热在线视频观看99| videos熟女内射| 国产欧美亚洲国产| 一级,二级,三级黄色视频| 老司机午夜十八禁免费视频| 国产高清国产精品国产三级| 岛国在线观看网站| 精品亚洲成a人片在线观看| 黄色视频不卡| 超色免费av| 美女扒开内裤让男人捅视频| 久久国产亚洲av麻豆专区| 丰满饥渴人妻一区二区三| 国产在线观看jvid| 黑丝袜美女国产一区| 精品熟女少妇八av免费久了| 高清在线国产一区| 美女国产高潮福利片在线看| 精品福利观看| 国产一级毛片在线| 欧美激情 高清一区二区三区| 男女下面插进去视频免费观看| 国产成人免费观看mmmm| 91精品国产国语对白视频| 丰满饥渴人妻一区二区三| 亚洲精品久久成人aⅴ小说| 丝袜美腿诱惑在线| 操出白浆在线播放| 我的亚洲天堂| 国产精品一区二区精品视频观看| 国产日韩欧美在线精品| 最近中文字幕2019免费版| 精品熟女少妇八av免费久了| 人人澡人人妻人| 国产精品久久久久久精品电影小说| 国产亚洲av片在线观看秒播厂| 美女高潮到喷水免费观看| 欧美日韩视频精品一区| 伦理电影免费视频| 女性被躁到高潮视频| 欧美精品高潮呻吟av久久| 99国产精品一区二区蜜桃av | 丰满少妇做爰视频| 狠狠精品人妻久久久久久综合| 免费在线观看完整版高清| 色精品久久人妻99蜜桃| 大码成人一级视频| 女人爽到高潮嗷嗷叫在线视频| 丝袜在线中文字幕| a级片在线免费高清观看视频| 永久免费av网站大全| 亚洲免费av在线视频| 美女福利国产在线| 亚洲精品国产区一区二| 热99久久久久精品小说推荐| 亚洲国产精品一区二区三区在线| 国产成人一区二区三区免费视频网站| 午夜免费鲁丝| 久久久久久免费高清国产稀缺| 久久中文看片网| 亚洲精品久久久久久婷婷小说| 国产精品欧美亚洲77777| 色婷婷久久久亚洲欧美| 91成人精品电影| 叶爱在线成人免费视频播放| 99久久精品国产亚洲精品| 人妻人人澡人人爽人人| 亚洲国产欧美网| 成人国产一区最新在线观看| 色94色欧美一区二区| 日本一区二区免费在线视频| 午夜福利视频精品| tube8黄色片| 免费观看人在逋| 各种免费的搞黄视频| 国产精品久久久久成人av| 日本欧美视频一区| 欧美精品一区二区大全| 久久久久精品国产欧美久久久 | 久久精品国产a三级三级三级| 天天添夜夜摸| 国产区一区二久久| 午夜福利影视在线免费观看| 亚洲第一av免费看| 69av精品久久久久久 | 777米奇影视久久| 黄色视频在线播放观看不卡| 久久亚洲精品不卡| 国产黄色免费在线视频| 久久久精品94久久精品| 少妇 在线观看| 久久久欧美国产精品| 99久久国产精品久久久| a级毛片黄视频| 欧美变态另类bdsm刘玥| 中国美女看黄片| 我的亚洲天堂| 91字幕亚洲| 久久中文字幕一级| 亚洲国产欧美在线一区| 九色亚洲精品在线播放| 热99久久久久精品小说推荐| 亚洲人成电影观看| 日日夜夜操网爽| 亚洲少妇的诱惑av| 亚洲欧美一区二区三区黑人| 国产亚洲欧美精品永久| 97人妻天天添夜夜摸| 国产伦理片在线播放av一区| 精品国产乱码久久久久久小说| 亚洲av片天天在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲精品中文字幕一二三四区 | 成年女人毛片免费观看观看9 | 亚洲av美国av| 久久久精品国产亚洲av高清涩受| 老司机亚洲免费影院| 久久精品aⅴ一区二区三区四区| tocl精华| 亚洲专区字幕在线| 亚洲成人国产一区在线观看| 精品一区二区三区四区五区乱码| 岛国在线观看网站| 99re6热这里在线精品视频| 99久久国产精品久久久| 欧美激情久久久久久爽电影 | 精品国内亚洲2022精品成人 | 欧美精品人与动牲交sv欧美| 国产成人av激情在线播放| 老司机福利观看| 69av精品久久久久久 | 国产一区二区在线观看av| 亚洲国产精品一区二区三区在线| 黄色视频,在线免费观看| 免费高清在线观看视频在线观看| 伦理电影免费视频| 亚洲国产欧美日韩在线播放| 国内毛片毛片毛片毛片毛片| 国产激情久久老熟女| 不卡一级毛片| 久久人妻福利社区极品人妻图片| √禁漫天堂资源中文www| 午夜视频精品福利| 成人亚洲精品一区在线观看| 一级片'在线观看视频| 韩国高清视频一区二区三区| 欧美激情极品国产一区二区三区| 女人精品久久久久毛片| 老司机在亚洲福利影院| 亚洲av美国av| e午夜精品久久久久久久| 精品福利观看| 91精品三级在线观看| 女人精品久久久久毛片| 一级黄色大片毛片| 亚洲中文av在线| 法律面前人人平等表现在哪些方面 | 曰老女人黄片| 精品人妻熟女毛片av久久网站| 国产一区二区在线观看av| www日本在线高清视频| 人妻一区二区av| 少妇人妻久久综合中文| 97精品久久久久久久久久精品| 国产一区二区三区综合在线观看| 狂野欧美激情性xxxx| 国产精品久久久久久精品古装| 亚洲国产日韩一区二区| 中文字幕色久视频| 国产精品久久久久久精品电影小说| 精品少妇黑人巨大在线播放| 国产区一区二久久| 国产无遮挡羞羞视频在线观看| 国产亚洲精品久久久久5区| 91大片在线观看| 欧美av亚洲av综合av国产av| 久久精品亚洲av国产电影网| 免费在线观看视频国产中文字幕亚洲 | 老司机深夜福利视频在线观看 | 久久香蕉激情| 高清欧美精品videossex| 久久久久精品人妻al黑| 女人精品久久久久毛片| 麻豆乱淫一区二区| 国产亚洲欧美在线一区二区| 午夜久久久在线观看| 建设人人有责人人尽责人人享有的| 免费高清在线观看日韩| 夫妻午夜视频| 久久久久久久国产电影| 肉色欧美久久久久久久蜜桃| 久久久久精品国产欧美久久久 | 精品国产一区二区三区四区第35| 欧美日韩成人在线一区二区| 国产成人精品久久二区二区免费| h视频一区二区三区| e午夜精品久久久久久久| 丰满饥渴人妻一区二区三| 国产伦人伦偷精品视频| 精品一区二区三区av网在线观看 | 久久国产精品人妻蜜桃| av在线app专区| 后天国语完整版免费观看| 免费在线观看视频国产中文字幕亚洲 | 人成视频在线观看免费观看| 免费在线观看日本一区| 亚洲第一av免费看| 成人黄色视频免费在线看| 一级a爱视频在线免费观看| 老司机影院毛片| 午夜免费鲁丝| av视频免费观看在线观看| 亚洲av男天堂| 国产欧美日韩一区二区三区在线| a在线观看视频网站| 亚洲va日本ⅴa欧美va伊人久久 | 亚洲国产欧美一区二区综合| 丰满少妇做爰视频| 久久亚洲国产成人精品v| 777米奇影视久久| 欧美+亚洲+日韩+国产| 青草久久国产| 亚洲专区国产一区二区| 免费女性裸体啪啪无遮挡网站| 免费一级毛片在线播放高清视频 | 日韩大片免费观看网站| av免费在线观看网站| 人人妻人人澡人人爽人人夜夜| 色视频在线一区二区三区| 少妇被粗大的猛进出69影院| e午夜精品久久久久久久| 另类精品久久| 国产精品久久久久久人妻精品电影 | 亚洲一码二码三码区别大吗| 久久精品国产综合久久久| 日韩三级视频一区二区三区| 中文字幕最新亚洲高清| 精品人妻在线不人妻| 精品欧美一区二区三区在线| 乱人伦中国视频| 欧美日韩一级在线毛片| 国产视频一区二区在线看| 欧美精品人与动牲交sv欧美| 亚洲一区中文字幕在线| 叶爱在线成人免费视频播放| 国产成人a∨麻豆精品| 日韩三级视频一区二区三区| 国产一区二区 视频在线| 久久毛片免费看一区二区三区| 婷婷丁香在线五月| 久久久国产欧美日韩av| 精品国产一区二区久久| 久久久久久久国产电影| 久久九九热精品免费| 国产精品免费视频内射| 永久免费av网站大全| 91九色精品人成在线观看| 国产免费现黄频在线看| 国产1区2区3区精品| 啦啦啦 在线观看视频| 国产成人av激情在线播放| 热99久久久久精品小说推荐| 免费久久久久久久精品成人欧美视频| 国产又爽黄色视频| 狂野欧美激情性xxxx| 波多野结衣av一区二区av| 极品人妻少妇av视频| 91字幕亚洲| 日韩有码中文字幕| 999久久久国产精品视频| 别揉我奶头~嗯~啊~动态视频 | 啪啪无遮挡十八禁网站| 无限看片的www在线观看| 中文字幕人妻丝袜制服| 我要看黄色一级片免费的| 叶爱在线成人免费视频播放| 精品久久久精品久久久| 大陆偷拍与自拍| 9191精品国产免费久久| 19禁男女啪啪无遮挡网站| 青青草视频在线视频观看| 深夜精品福利| 91老司机精品| 精品少妇黑人巨大在线播放| 免费在线观看日本一区| 岛国毛片在线播放| 日日爽夜夜爽网站| 90打野战视频偷拍视频| netflix在线观看网站| 欧美日韩亚洲综合一区二区三区_| 一本综合久久免费| 国产有黄有色有爽视频| 国产精品熟女久久久久浪| 久久精品国产亚洲av高清一级| 在线 av 中文字幕| 亚洲一码二码三码区别大吗| 在线 av 中文字幕| 亚洲欧美精品自产自拍| 亚洲国产精品成人久久小说| 久久久久久久久久久久大奶| 9热在线视频观看99| 亚洲av国产av综合av卡| 99热全是精品| 久久九九热精品免费| 亚洲国产欧美日韩在线播放| 日韩有码中文字幕| 丝瓜视频免费看黄片| 欧美黄色淫秽网站| 日韩视频在线欧美| 免费av中文字幕在线| 亚洲国产精品999| 午夜免费鲁丝| videosex国产| 天天躁日日躁夜夜躁夜夜| 黄频高清免费视频|