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

    動態(tài)增量式AOP框架的研究與實現(xiàn)

    2013-07-22 03:03:36曦,李
    計算機工程與應(yīng)用 2013年23期
    關(guān)鍵詞:連接點編織組件

    楊 曦,李 彤

    1.福州大學(xué) 陽光學(xué)院,福州 350015 2.云南大學(xué) 軟件學(xué)院,昆明 650091

    動態(tài)增量式AOP框架的研究與實現(xiàn)

    楊 曦1,李 彤2

    1.福州大學(xué) 陽光學(xué)院,福州 350015 2.云南大學(xué) 軟件學(xué)院,昆明 650091

    1 引言

    軟件是對現(xiàn)實世界問題空間與解空間的具體描述,是客觀事物的一種反映,是人類思維的外化產(chǎn)物[1]。由于人類思維的多樣性和易變性,導(dǎo)致軟件也在不停地“運動”、“變化”。尤其互聯(lián)網(wǎng)成為主流計算環(huán)境之后,軟件變化性、復(fù)雜性更是進一步增強,導(dǎo)致軟件工業(yè)的危機頻頻發(fā)生。鑒于此,人們紛紛從不同視角對軟件理論、技術(shù)和方法進行研究(例如從軟件形態(tài)方面提出了網(wǎng)構(gòu)軟件[2]的概念;從網(wǎng)絡(luò)資源整合角度,提出了網(wǎng)格計算、普適計算、云計算等;從計算模式方面,提出了自治計算[3]、自適應(yīng)軟件、SOA等)??v觀所有這些新的概念、思想和理論,都牽涉到一個共同的問題:開放計算環(huán)境下軟件系統(tǒng)的動態(tài)演化理論和應(yīng)用研究。而開放計算環(huán)境下軟件系統(tǒng)的動態(tài)演化[4]理論和應(yīng)用的研究尚處于起步階段,相關(guān)研究成果在理論基礎(chǔ)(例如對條件超圖文法[6]等的研究缺少堅實的理論基礎(chǔ))、覆蓋面(例如Gilgul只能解決有限的軟件動態(tài)演化問題,Walter Czaaola提出的反射元模型[7]僅支持預(yù)設(shè)的演化)、實現(xiàn)難易度(例如反射技術(shù)、動態(tài)指派技術(shù)、K-Commponent[8]等都有較大的實現(xiàn)難度)等方面都存在著不足。另一方面,關(guān)注點分離的思想在解決軟件危機方面起到了至關(guān)重要的作用。而AOP(Aspect-Oriented Programming,面向方面的編程)對橫貫多個功能模塊的非功能性維度(橫切關(guān)注點)能進行有效封裝,實現(xiàn)了多維度的關(guān)注點分離,是OOP方法的合理補充。但如何提高編織效率也是AOP面臨的重要挑戰(zhàn)。本文在基于C++的面向方面的編程框架中引入Bigraph圖論[9]的動態(tài)演化思想,解決了系統(tǒng)演化行為一致性和相容性的問題,同時使用增量式編織機制實現(xiàn)了方面的高效編織,某種程度上對AOP技術(shù)和動態(tài)演化的發(fā)展有著重要的促進作用。

    2 AODF編程框架的提出

    多年來,許多研究人員都致力于研究新的更符合人類認知行為的、趨于多維度思想的模塊化機制,以解決因為關(guān)注點分離不足而導(dǎo)致的諸多問題。而新的關(guān)注點分離思想的關(guān)鍵點在于如何克服單維度思想的功能性主體在OOP設(shè)計及實現(xiàn)中的專制性,從而對橫切關(guān)注點實現(xiàn)高內(nèi)聚、低耦合的有效封裝。AOP思想由此應(yīng)運而生,早在1997年歐洲召開的面向?qū)ο缶幊檀髸希珿regor等就首次提出了AOP的概念[10]。AOP保留了面向?qū)ο蟮某橄笤鰪姟⒛K化和代碼重用等目標(biāo),依據(jù)信息隱蔽性的原則,允許開發(fā)者動態(tài)修改面向?qū)ο竽P?,實現(xiàn)更高程度的關(guān)注點分離。作為一種思維形態(tài),AOP本身并未規(guī)定具體的實現(xiàn)形式。為順應(yīng)定義上的標(biāo)準(zhǔn),本文參考了AspectJ的相關(guān)概念和原理,其中包括Aspect(方面)、Joint Point(連接點)、Pointcut(切入點)、Advice(通知)、Inter-type declaration(類型間聲明)、Weave(編織)等。

    另一方面,C++作為傳統(tǒng)類型上的OOP語言,在很多領(lǐng)域尤其是嵌入式系統(tǒng),有著不可替代的地位。國內(nèi)外關(guān)于C++的AOP研究雖有所發(fā)展,如C++模版技術(shù)[11-12]是根據(jù)參數(shù)類型生成通用類和通用函數(shù),某種程度上實現(xiàn)了軟件復(fù)用;Aspect C++用C++語言實現(xiàn)了AspectJ,還有宏編程[13]等,但這些都無法支持AOP架構(gòu)的動態(tài)演化,并且在編織效率上也有所欠缺,從而只是片面實現(xiàn)了AOP概念[14]。本文提出一種動態(tài)AOP編程框架——AODF[15](Aspect-Oriented Dynamic Framework),是支持C++語言擴展(Language Extension)的方面編程環(huán)境。圖1為AODF的總體結(jié)構(gòu)??梢钥闯觯珹ODF事實上是方面代碼到標(biāo)準(zhǔn)C++源碼的前端轉(zhuǎn)換系統(tǒng),從語言層提供對方面的支持,無需改動語言本身任何結(jié)構(gòu)及特性,就可以實現(xiàn)遺留系統(tǒng)面向方面的擴展。而且支持自編制和可配置兩種類型的方面,并可配置為標(biāo)準(zhǔn)組件入庫,實現(xiàn)方面的重用。AODF的動態(tài)演化性主要由方面配置管理器的“動態(tài)演化設(shè)置”模塊實現(xiàn)(第3章),而基于日志技術(shù)的增量式編織機制由方面配置管理器的“增量式編織”模塊實現(xiàn)(第4章)。AODF的原理及具體實現(xiàn)將在第5章詳述。

    3 AODF的動態(tài)演化性

    動態(tài)演化是網(wǎng)格計算、普適計算、云計算等開放計算環(huán)境的基礎(chǔ),近年來逐漸成為學(xué)術(shù)界研究的熱點。動態(tài)演化的研究主要集中于語言、模型和運行環(huán)境三個方面,而軟件體系結(jié)構(gòu)(Software Architecture,SA)對動態(tài)演化的支持,也體現(xiàn)為以體系結(jié)構(gòu)為核心的應(yīng)用模式和軟件框架的研究。例如:J.Dowling等人設(shè)計的 K-Commponent[8]框架元模型通過提供體系結(jié)構(gòu)元模型和適配契約(Adaptation Contracts)來支持系統(tǒng)動態(tài)配置。Walter Czaaola提出由拓撲元對象和策略元對象形成體系結(jié)構(gòu)反射元模型,但也僅支持預(yù)設(shè)的演化[7]。國內(nèi)徐洪珍等提出用約束超圖表示SA,用條件超圖文法建模SA的動態(tài)演化過程[6],但未能解決SA動態(tài)演化行為一致性的問題。本文基于Bigraph的圖形化理論將動態(tài)演化的思想結(jié)合到AOP的軟件體系結(jié)構(gòu)中,試圖解決軟件系統(tǒng)演化的行為一致性和相容性問題。

    AODF的動態(tài)演化特性主要由動態(tài)演化設(shè)置模塊實現(xiàn),該模塊的設(shè)計基于Bigraph理論。Bigraph具有完備的公理系統(tǒng),其直觀的圖形化表述不僅方便SA建模,而且還有相關(guān)的項語言(term language)[15]對系統(tǒng)性質(zhì)進行推理和演繹。另一方面,Bigraph理論為軟件演化的一致性和相容性等問題也提供了理論基礎(chǔ)。

    3.1 Bigraph反應(yīng)系統(tǒng)

    圖1 AODF系統(tǒng)框架

    為建模方面SA的動態(tài)演化,對Bigraph靜態(tài)結(jié)構(gòu)的定義進行了擴展,使其能夠描述AODF編程框架。然后運用BRS(Bigraph反應(yīng)系統(tǒng))的反應(yīng)規(guī)則表示AODF的動態(tài)演化操作,將動態(tài)演化操作轉(zhuǎn)換為BRS上的操作。以銀行的ATM系統(tǒng)為例,核心關(guān)注點有取款和登錄模塊等,橫切關(guān)注點主要有用戶驗證,所以把用戶驗證模塊提取為方面(AsV)。當(dāng)執(zhí)行取款操作時,ATM系統(tǒng)需再行驗證用戶的取款權(quán)限,所以取款模塊執(zhí)行之前要切入“取款權(quán)限驗證”方面(AsAu),這就需要對系統(tǒng)進行演化操作。圖2為ATM系統(tǒng)動態(tài)演化前后的Bigraph圖形及項語言。上半部分為ATM演化前的Bigraph圖及項語言,在Bigraph反應(yīng)系統(tǒng)中使用反應(yīng)規(guī)則,將取款(W)節(jié)點動態(tài)插入(演化操作)新的方面節(jié)點AsAu,使其轉(zhuǎn)換為Bigraph ATM'(圖的下半部分),實現(xiàn)了取款之前進行權(quán)限驗證的動態(tài)演化操作。

    圖2 ATM動態(tài)演化前后的Bigraph圖及項語言

    Bigraph從軟件體系結(jié)構(gòu)層面支持動態(tài)演化,從而可以把AODF看成一個Bigraph,這樣對體系結(jié)構(gòu)的演化操作可通過對Bigraph進行轉(zhuǎn)換來實現(xiàn)。BRS中的反應(yīng)規(guī)則可以表示動態(tài)重配置,則AODF的動態(tài)演化過程就可以映射為BRS中一個Bigraph通過反應(yīng)規(guī)則轉(zhuǎn)換為另外一個Bigraph的過程。用Bigraph的圖形表述軟件體系結(jié)構(gòu)的演化更加直觀,項語言的形式化理論有利于下一步對軟件演化特性的驗證。

    3.2 Bigraph演化的完整性

    Bigraph靜態(tài)和動態(tài)特性所基于的范疇論,其中最為重要的IPO(Idem Pushout)和RPO(Relative Pushout)的數(shù)學(xué)性質(zhì),可以證明在BRS中,當(dāng)存在RPO和最小轉(zhuǎn)換時,Bigraph之間的互模擬事實上是相合(Congruence)的。針對現(xiàn)有動態(tài)演化研究無法解決行為一致性和相容性問題,本文基于Bigraph為動態(tài)演化的形式化規(guī)約和性質(zhì)驗證提供一種有效解決途徑。

    Bigraph反應(yīng)系統(tǒng)S=<R,r,R′>:R→R′,R和 R′都為Bigraph,分別為反應(yīng)物和生成物,r為反應(yīng)規(guī)則。

    定理1(Bigraph演化相容性)當(dāng)R和r滿足系統(tǒng)約束的條件下,則通過該反應(yīng)規(guī)則生成的R′也應(yīng)滿足系統(tǒng)的約束條件。

    證明 設(shè)R為反應(yīng)物Bigraph,R′為生成物Bigraph,r為反應(yīng)規(guī)則。假設(shè)R和r均滿足系統(tǒng)約束條件關(guān)系C。根據(jù)Bigraph項語言操作語義可知,從R中可分離出Bigraph G,因為R滿足C,則G也應(yīng)滿足C,于是R=G°r。從反應(yīng)系統(tǒng)的遷移規(guī)則推導(dǎo),可得出R′=G°r,又因為合成操作滿足滿射的數(shù)學(xué)特征,所以在G與r滿足系統(tǒng)約束條件C的情況下,G′也滿足系統(tǒng)的約束條件,命題得證。

    同理可以得到推論1:

    推論1反應(yīng)物Bigraph集和反應(yīng)規(guī)則集合ri(i=1,2,…,n)滿足系統(tǒng)約束,則通過ri集合轉(zhuǎn)換的生成物Bigraph集也同樣滿足系統(tǒng)的約束條件。

    故可以得出結(jié)論,基于Bigraph完備性理論構(gòu)建的演化系統(tǒng)具有完整性。

    3.3 Bigraph演化的一致性和相容性

    基于Bigraph完整性的基礎(chǔ),可以考慮演化的一致性和相容性。所謂一致性,可以是行為的一致,即生成物能完成反應(yīng)物的任何行為;而相容性主要指系統(tǒng)演化前后行為的正確性,生成物不會導(dǎo)致死鎖等問題。

    定理2假設(shè)給定系統(tǒng)環(huán)境E及其構(gòu)件c1、c2,對于反應(yīng)規(guī)則集合 ri(i=1,2,…,n),存在相應(yīng)標(biāo)簽序列 Li,使得,則稱c1與c2相容。

    證明 根據(jù)Bigraph理論的標(biāo)簽轉(zhuǎn)換系統(tǒng)LTS[16]以及異步π演算原理[17]可知指構(gòu)件c1、c2在上下文環(huán)境E中,針對r存在對應(yīng)標(biāo)簽使構(gòu)件間同步交互,并能正常終止的過程。根據(jù)相容性的定義,定理2得證。

    引理 安全BRS中,若最小轉(zhuǎn)換的等價互模擬相合,即x~y,則對任意活動上下文z,有 z°x~z°y[12]。

    定理3 BRS中存在RPO和最小轉(zhuǎn)換時,則互模擬是同構(gòu)的,即若x~y,則對任意活動上下文z,有z°x~z°y,同時x可以保持一致性演化至y。

    證明 由引理可知,若最小轉(zhuǎn)換的等價互模擬相合,即x~y,則構(gòu)件x在任何上下文環(huán)境中,均能演化至y,根據(jù)行為等價性和互模擬性的定義可知,x可以保持一致性演化至y。

    AODF的動態(tài)演化性是基于Bigraph理論的,故AODF的行為演化滿足了一致性和相容性。

    3.4 示例驗證

    如圖3所示,某軟件系統(tǒng)由客戶端C、服務(wù)器端S及C與S之間通信連接件CN,系統(tǒng)未實施演化前,基于Bigraph圖論解析出來的系統(tǒng)軟件體系結(jié)構(gòu)的Bigraph圖為圖3(a)。

    圖3 C/S軟件架構(gòu)的動態(tài)演化示例圖

    該系統(tǒng)主要演化行為是:AddService(當(dāng)軟件應(yīng)用滿足不了客戶端功能和性能時,需在服務(wù)器端增加服務(wù))和SendData(在客戶端、服務(wù)器端之間傳遞數(shù)據(jù)的行為),根據(jù)這兩種演化行為的反應(yīng)規(guī)則,可以得到如下反應(yīng)前后的項語言:

    可以看到,圖3(a)中客戶端(C)的數(shù)據(jù)可以通過通信連接件(CN)傳送至服務(wù)器端(S),經(jīng)服務(wù)器端處理完后發(fā)送出去。顯然圖3(b)也能實現(xiàn)這一行為,即基于Bigraph理論演化后的系統(tǒng)可以模擬演化前的所有操作,并且反應(yīng)規(guī)則均維持通信連接件的單一性。由定理2可知,該動態(tài)演化保證了C/S體系結(jié)構(gòu)的完整性,因此可以驗證該系統(tǒng)的演化是一致和完整的。

    4 增量式編織機制

    由于編織效率對軟件性能影響較大,若對所有組件都采用簡單的完全編織策略,勢必導(dǎo)致編織效率低下。AODF采用增量式編織機制,結(jié)合方面的動態(tài)演化設(shè)置,可以實現(xiàn)更高效的編織。增量式編織機制主要由方面配置管理器的“增量式編織”模塊實現(xiàn)。實施增量式編織最核心的問題是演算編織狀態(tài)的改變量。計算出方面狀態(tài)的改變量,則只需對修改部分進行編織,而無需針對整個aspect進行完全編織,從而能夠較好提升編織效率。增量式編織的原理如圖4所示。

    為了方便編織,AODF方面組件庫中的組件都被賦于如圖4所示的四種屬性值,若最近編織時間為0,則需要完全編織,根據(jù)“連接點設(shè)置”模塊生成的編織匹配集進行源代碼的織入,具體織入規(guī)則參看5.3節(jié)。若“最近編織時間-最近修改時間”大于等于0說明方面無變更,則無需編織;若小于0,則需要進行增量式編織。實現(xiàn)增量式編織的重點是計算編織狀態(tài)的改變量,即圖4中的?weave,先對方面進行量化的結(jié)構(gòu)描述及匿名切入點命名轉(zhuǎn)化后,將其存儲模型定義為三個集合:切入點集、連接點集、通知集。以切入點為中心組成線性鏈表,鏈表中每個節(jié)點包含3個指針域和一個鍵值域,指針分別指向連接點集、通知集及下一節(jié)點,每個連接點及通知均設(shè)置了標(biāo)志位,可標(biāo)示新增狀態(tài)、刪除狀態(tài)和初始態(tài)。通過對連接點、通知狀態(tài)的判定,很容易計算出編織狀態(tài)改變量,從而實現(xiàn)增量式編織。

    AODF基于日志系統(tǒng)來構(gòu)建增量編織機制,創(chuàng)建了三種日志,IndexLog用于索引編織日志(WeaveLog),目的是加快檢索編織狀態(tài),每個日志項是一個三元組〈Slant(記錄方面編織狀態(tài)信息在WeaveLog中的相對偏移量),Count(記錄方面編織次數(shù)),AspectID(方面標(biāo)識號,關(guān)鍵字)>;WeaveLog記錄了方面的編織歷史及更新歷史,其日志項為四元組〈AspectID,CurrentWeaveStatus(當(dāng)前編織狀態(tài)),LastWeave(最后一次編織時間),LastUpdate(最后一次更新時間)>;SysLog存放一些系統(tǒng)全局信息,日志項是一個兩元組〈AspectID,Count>。IndexLog用哈希表存儲,每個關(guān)鍵字AspectID對應(yīng)一個存放著aspect信息的哈希桶,當(dāng)aspect被編織或重編織時,將編織計數(shù)值Count及偏移量Slant存入桶中,則最新的方面狀態(tài)索引項總處于哈希桶的頂部。采用哈希表的存儲結(jié)構(gòu)的目的是讓索引時間復(fù)雜度降為O(1),避免了對整個索引日志的遍歷,從而提高AOP的效率。

    5 AODF的實現(xiàn)及實驗情況

    AODF主要由源碼轉(zhuǎn)換器、方面組件生成器和方面配置管理器組成,下面將分別闡述。

    5.1 源碼轉(zhuǎn)換器

    源碼轉(zhuǎn)換器主要包括源碼掃描、語法分析、語義分析三個模塊。

    圖4 增量式編織原理

    源碼掃描模塊的主要任務(wù)是對源程序從前到后逐個字符掃描,經(jīng)解析后,依次讀取、判斷源代碼文件中的每一個符號,包括標(biāo)識符、關(guān)鍵字、運算符、常量、分隔符和注釋等,得到源代碼文件的標(biāo)識符集合,保存在指定的Token鏈表中。

    語法分析模塊的任務(wù)是在源碼掃描基礎(chǔ)上,根據(jù)C++的語法規(guī)則判斷輸入串語法正確與否,若無錯誤就能正確生成語法樹,以語法樹的形式將符號token序列分解成各類語法單位。這里選擇Lemon來輔助完成語法分析工作,根據(jù)C++標(biāo)準(zhǔn)語法規(guī)則生成的C++語法分析器,輔助語法分析模塊生成語法樹。該模塊的輸入為標(biāo)識符流,輸出為語法樹根節(jié)點,用于連接點查找及進一步的語義分析。

    AODF中的語義分析模塊對語法分析模塊生成的語法樹進行簡單掃描,用指針鏈表的形式存儲語法樹中的類及函數(shù)的相關(guān)信息(包括類和函數(shù)名、屬性列表、方法列表、函數(shù)所屬類、參數(shù)列表、返回值類型等),生成符號倉庫用于連接點設(shè)置,所以無需進行完整的C++語義解析。

    5.2 方面組件生成器

    方面組件生成器負責(zé)掃描程序員按方面語法規(guī)則編寫的aspect代碼,按規(guī)定格式將方面的名字、屬性和方法,切入點的屬性和類型,通知的類型和代碼等提取出來,輸出到方面配置管理器的織入模塊。方面組件有兩種情況:一種是自編制的方面組件,即可以重新定義切入點、連接點、通知等,生成新的、獨立的方面組件,經(jīng)方面組件生成器解析后,提取放入到方面組件庫待用;另一種是可配置方面組件,通過配置文件,可以像使用庫函數(shù)一樣來使用方面,直接讀取到方面配置管理器中進行動態(tài)演化設(shè)置、連接點匹配及最終的代碼織入。

    5.3 方面配置管理器

    方面配置管理器一方面對方面組件進行有效配置與管理,另一方面基于正確的連接點匹配,代碼織入模塊負責(zé)將方面組件編織進標(biāo)識符流的相應(yīng)位置,完成最終代碼編織工作,方面配置管理器的工作流程如圖5所示,主要有以下幾個步驟:

    (1)連接點查找

    連接點查找模塊主要對源碼轉(zhuǎn)換器生成的語法樹和符號倉庫依據(jù)連接點類型定義進行搜索,把源碼中所有可能連接點找出,以鏈表形式保存在相應(yīng)參數(shù)中。

    (2)動態(tài)演化設(shè)置

    C++構(gòu)件、連接件經(jīng)基于Bigraph公理系統(tǒng)的“SA析構(gòu)模塊”解析生成系統(tǒng)軟件體系結(jié)構(gòu)(SA)的Bigraph圖,作為動態(tài)演化設(shè)置模塊的輸入,經(jīng)動態(tài)演化設(shè)置模塊解析為相應(yīng)的項語言,根據(jù)反應(yīng)規(guī)則,方面組件的織入行為轉(zhuǎn)化為對Bigraph圖及項語言的演化,經(jīng)BRS反應(yīng)系統(tǒng)演化后的生成物Bigraph和項語言交由連接點匹配模塊進行進一步的連接點設(shè)置。

    (3)連接點匹配

    該模塊根據(jù)動態(tài)演化設(shè)置模塊傳輸過來的生成物Bigraph和項語言分析其織入行為,對每一個方面組件的CppAdvice對象分析切入點表達式,若與連接點查找模塊生成的鏈表中的連接點標(biāo)識符相匹配,則讀取CppJointPoint類與符號倉庫ClassDB進行匹配運算,若都滿足條件,則需進一步判斷連接點的類型并對其設(shè)置WeaveAction類屬性。最后將設(shè)置好編織動作的連接點置入到匹配集鏈表jpweaveset中,供代碼織入模塊調(diào)用。

    (4)增量式編織

    增量式編織模塊根據(jù)連接點編織匹配集,進行源代碼的動態(tài)編織動作,而無需為了使用aspect而改動任何C++源代碼。增量式編織關(guān)鍵要解決,編織狀態(tài)的改變量(第4章)及不同類型的連接點織入到語法樹位置的問題。AODF設(shè)定了如下編織規(guī)則:

    ①對于CALL類型的連接點:如果代碼為_wrapper_code或_call_code型,則織入到語法樹節(jié)點jpweaveset->caller_func的左兄弟節(jié)點所指的token之后;對于_replace_code型代碼,織入到語法樹節(jié)點jpweaveset->callnode的左兄弟節(jié)點所指的token之后,并刪除callnode對應(yīng)的整個子樹的token序列。

    ②對于EXCUTION類型的連接點:將Before代碼插入到語法樹節(jié)點jpweaveset->func_info左兄弟節(jié)點所指的token之后;將After代碼插入到語法樹節(jié)點jpweaveset-> func_info右兄弟節(jié)點所指的token之后;最后將jpweaveset-> func_info所指的token重命名。

    ③對CLASS類型的連接點:直接將ClassCode代碼插入到語法樹節(jié)點jpweaveset->classrefNode所指的token之后。

    圖5 方面配置管理器工作流程

    5.4 實驗情況概述

    為驗證AODF編程框架能否實現(xiàn)設(shè)計的初衷——正確、高效、動態(tài)地織入方面代碼,AOP的性能是否帶來負面效應(yīng),都需要通過實驗來驗證。實驗環(huán)境如表1所示。

    表1 實驗環(huán)境參數(shù)表

    把編寫好的aspect文件won.as和C++源代碼文件main.cc存放在before目錄下,after為編織后的代碼保存路徑,對編織前的代碼before/main.cc和編織后的代碼after/ main.cc進行測試對比,結(jié)果表明,aspect代碼能準(zhǔn)確織入到C++程序的相應(yīng)位置,并正確地轉(zhuǎn)化為標(biāo)準(zhǔn)C++語法,交由GC++、Visual C++等C++編譯器可進一步編譯執(zhí)行。編織后的代碼量相應(yīng)增大,但編譯時間僅略微增加。

    為了分析AOP語言的執(zhí)行性能,對AOP及OOP的編織、編譯進行了多次實驗,實驗數(shù)據(jù)統(tǒng)計如圖6所示。從實驗結(jié)果可以看出,AOP編織時間比OOP的編譯時間略大一些,因為AOP是構(gòu)筑于OOP之上的,性能與效率肯定會受影響。但從實驗結(jié)果可以看到,AOP的編織時間與OOP的編譯時間相差僅毫秒級,這點差異與當(dāng)前的計算機處理速度相比,幾乎可以忽略。由此可以得出,AODF是一種有效的面向方面編程框架,能較好地對C++代碼進行面向方面的擴展,實現(xiàn)多維度分離關(guān)注點的目的。對自行編制的aspect源碼可設(shè)置為AODF的標(biāo)準(zhǔn)方面組件,既達到了對原有系統(tǒng)動態(tài)增加橫切關(guān)注點這一非功能性主體的目的,又實現(xiàn)了方面的重用。使得源代碼的可讀性、易擴展性、可維護性更強。

    圖6AOP與OOP性能對比實驗

    6 結(jié)束語

    在互聯(lián)網(wǎng)技術(shù)成為主流計算環(huán)境的形式下,軟件已逐步走向開放、動態(tài)和難以預(yù)測。人類思維的多變與不可控注定了軟件的動態(tài)與復(fù)雜,而為軟件開發(fā)提出有效的結(jié)構(gòu)性框架已成為軟件科學(xué)與技術(shù)面臨的挑戰(zhàn)性問題。本文提出一種基于C++的面向方面動態(tài)編程框架AODF,其作為一種語言擴展,使得C++遺留系統(tǒng)不必為使用aspect做任何變更;另一方面,增量式動態(tài)編織機制不僅使得編織效率得到提高,還使得AODF具有動態(tài)演化能力,而基于Bigraph理論的演化解決了行為一致性和相容性問題。但AODF還有許多需要改進的地方,比如,僅支持“織入”行為,未能實現(xiàn)“織入”行為的逆工程(比如動態(tài)刪除方面、更新方面等)。下一步工作主要是提高連接點查找效率,改善編織算法,進一步研究對演化行為的后期度量及評審、對AODF耦合度的評估、對編程過程的形式化驗證等。

    [1]楊芙清.軟件工程技術(shù)發(fā)展思索[J].軟件學(xué)報,2005,16(1):1-7.

    [2]梅宏,黃罡,趙海燕,等.一種以軟件體系結(jié)構(gòu)為中心的網(wǎng)構(gòu)軟件開發(fā)方法[J].中國科學(xué):E卷,2006,36(10):1100-1126.

    [3]陶麗,張自力.基于面向自治計算的Agent系統(tǒng)動態(tài)重構(gòu)模型[J].計算機科學(xué),2007,34(5):147-151.

    [4]Lehman M M,Rail J F.Software evolution-background,theory,practice[J].Inf Process Lett,2003,88(1/2):33-44.

    [5]Casanova M,Van-Der Straeten R,Jonckers V.Supporting evolution in component-based developmentusing component libraries[C]//Proceedingsof7th European Conference on Software Maintenance and Reengineering,2003:123-132.

    [6]Xu Hongzhen,Zeng Guosun,Chen Bo.Conditional hypergraph grammars and its analysis of dynamic evolution of software architectures[J].Journal of Software,2011,22(6):1210-1223.

    [7]Cazzola W,Pini S,Ghoneim A,et al.Co-evolving application code and design models by exploiting meta-data[C]// Proceedings of the 12th Annual ACM Symposium on Applied Computing(SAC’07),Seoul,South Korea,2007:1275-1279.

    [8]Dowling J,Cahill V.The K-component architecture meta-model for self-adaptive software[C]//Proceedings of the 2001 Symposium on Software Reusability:Putting Software Reuse in Context,Toronto,Ontario,Canada,2001:41-50.

    [9]Jensen O H,Milner R.Bigraphs and mobile processes(revised),UCAM-CL-TR-580[R].Cambridge:Computer Laboratory,University of Cambridge,2004.

    [10]Kiczales G.Aspect-oriented programming[C]//Proceedings of ECOOP,F(xiàn)inland,1997:220-242.

    [11]Czarnecki K,Dominick L,Eisenecker U W.Aspect-oriented programming in C++[Z].2001.

    [12]Czarnecki K,Eisenecker U W.Generative programming:methods,tools,and applications[M].New York:ACM Press,2000.

    [13]Dounence R,F(xiàn)radet P,Südholt M.Composition,reuse and interaction analysis of stateful aspects[C]//Aspect-Oriented Software Development(AOSD),2004:141-150.

    [14]Elrad T,F(xiàn)ilman R E,Bader A.Aspect-oriented programming[C]// CACM,2001:29-32.

    [15]楊曦,李彤.一種支持動態(tài)演化的AOP框架[J].計算機工程,2012,38(19):52-55.

    [16]Jensen O H,Milner R.Bigraph and transition[C]//POPL’03 Proceedings of the 30th ACM SIGPLAN-SIGACT,2003,38(1):38-49.

    [17]Amadio R M,Castellani I,Sangiorgi D.On bisimulations for the asynchronous π-calculus[J].TheoreticalComputer Science,1998,195:291-324.

    YANG Xi1,LI Tong2

    1.College of Sunshine,Fuzhou University,Fuzhou 350015,China 2.School of Software,Yunnan University,Kunming 650091,China

    On the basis of AOP principles research,it proposes an aspect-oriented programming framework AODF,which introduces incremental weaving mechanisms based on log technology,not only improves the weaving efficiency,but also supports dynamic evolution based on the Bigraph theory and achieves behavior consistency and compatibility.On the other side,it provides the aspects with support from language layer,without changing any structure and characteristics of the language itself.Furthermore,the self_organizational aspect configurated by AODF can be added in the framework as the standard components so that the further system can reuse them.So the legacy system obtains aspect extended by AODF but no need to make any changes. Key words:Aspect-Oriented Programming(AOP);Aspect-Oriented Dynamic Framework(AODF);aspect-oriented;dynamic evolution;Bigraph theory

    在研究AOP原理的基礎(chǔ)上,提出一種面向aspect的編程框架AODF,采用基于日志技術(shù)的增量式編織機制,不僅提高了編織效率,而且基于Bigraph理論的AODF支持方面的動態(tài)演化,實現(xiàn)了行為的一致性與相容性。另外,AODF從語言層提供對方面的支持,無需改動語言本身任何結(jié)構(gòu)及特性,而且可以把自行編制的aspect配置為標(biāo)準(zhǔn)組件入庫,實現(xiàn)方面的重用。從而使得遺留系統(tǒng)無需變更就可以獲得面向方面的擴展。

    面向方面的編程(AOP);面向方面的動態(tài)框架(AODF);面向方面;動態(tài)演化;Bigraph理論

    A

    TP311

    10.3778/j.issn.1002-8331.1305-0466

    YANG Xi,LI Tong.Research and implementation of AOP framework based on incremental dynamic evolution.Computer Engineering and Applications,2013,49(23):39-44.

    國家自然科學(xué)基金(No.60963007);福建省教育廳科技項目(No.JB11251)。

    楊曦(1977—),女,講師,CCF會員,研究領(lǐng)域為軟件動態(tài)演化、構(gòu)件選擇優(yōu)化;李彤(1963—),男,博士,教授,博士生導(dǎo)師,研究領(lǐng)域為軟件演化、形式化方法。E-mail:Yangxi@fzu.edu.cn

    2013-06-03

    2013-08-26

    1002-8331(2013)23-0039-06

    猜你喜歡
    連接點編織組件
    體驗編織的樂趣
    無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
    能源工程(2022年2期)2022-05-23 13:51:50
    基于A3航攝儀的小基高比影像連接點精提取技術(shù)研究
    新型碎邊剪刀盤組件
    重型機械(2020年2期)2020-07-24 08:16:16
    U盾外殼組件注塑模具設(shè)計
    竹自清高,編織美好
    度假吧!帶上你的編織鞋包
    Coco薇(2017年7期)2017-07-21 07:16:04
    基于彈性厚粘膠層的結(jié)構(gòu)性連接點響應(yīng)建模和預(yù)測
    汽車文摘(2016年6期)2016-12-07 00:23:38
    風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
    太陽能(2015年11期)2015-04-10 12:53:04
    基于相關(guān)性篩選原理的公共連接點諧波畸變量的分層量化
    電測與儀表(2015年3期)2015-04-09 11:37:22
    亚洲美女视频黄频| 欧美性感艳星| 高清毛片免费观看视频网站| 欧美色欧美亚洲另类二区| av在线老鸭窝| 久久精品91蜜桃| 波野结衣二区三区在线| 亚洲乱码一区二区免费版| 免费不卡的大黄色大毛片视频在线观看 | 两性午夜刺激爽爽歪歪视频在线观看| 村上凉子中文字幕在线| 免费大片18禁| 成熟少妇高潮喷水视频| 日韩,欧美,国产一区二区三区 | 干丝袜人妻中文字幕| 亚洲三级黄色毛片| 又紧又爽又黄一区二区| 婷婷色综合大香蕉| 淫秽高清视频在线观看| 免费av毛片视频| 狂野欧美激情性xxxx在线观看| 中国美女看黄片| 欧美色欧美亚洲另类二区| 99热这里只有是精品50| 亚洲专区国产一区二区| 婷婷精品国产亚洲av在线| 日本黄色视频三级网站网址| 亚洲成人中文字幕在线播放| 国产精品精品国产色婷婷| 亚洲最大成人手机在线| 精品人妻一区二区三区麻豆 | 免费黄网站久久成人精品| 联通29元200g的流量卡| 日本黄色视频三级网站网址| 国产精品,欧美在线| 制服丝袜大香蕉在线| 能在线免费观看的黄片| 亚洲av成人精品一区久久| 亚洲性久久影院| 国产一区二区三区视频了| 欧美日韩精品成人综合77777| 床上黄色一级片| 欧美xxxx黑人xx丫x性爽| 久久99热6这里只有精品| 极品教师在线视频| 久久久久久久久久成人| 成人国产一区最新在线观看| 亚洲内射少妇av| 亚洲精品影视一区二区三区av| 久久久久性生活片| 麻豆一二三区av精品| 熟女电影av网| 久久这里只有精品中国| 在线观看美女被高潮喷水网站| 中国美女看黄片| 国产精品久久视频播放| 最近在线观看免费完整版| 国产成人aa在线观看| 男人狂女人下面高潮的视频| 男女那种视频在线观看| 色综合婷婷激情| 国产乱人伦免费视频| 12—13女人毛片做爰片一| 18禁黄网站禁片免费观看直播| 丰满的人妻完整版| 国产国拍精品亚洲av在线观看| 中文字幕熟女人妻在线| 国产高清激情床上av| 我的女老师完整版在线观看| 国产一区二区三区av在线 | 国产精品1区2区在线观看.| 亚洲精品亚洲一区二区| 九九热线精品视视频播放| 午夜免费激情av| 欧美日韩亚洲国产一区二区在线观看| 日本熟妇午夜| 一级黄色大片毛片| 高清日韩中文字幕在线| 亚洲狠狠婷婷综合久久图片| 国产美女午夜福利| 午夜视频国产福利| 免费在线观看影片大全网站| 国产男人的电影天堂91| 真人一进一出gif抽搐免费| 久久久久久久久久久丰满 | 又粗又爽又猛毛片免费看| 日韩欧美一区二区三区在线观看| 最近中文字幕高清免费大全6 | 啪啪无遮挡十八禁网站| 国产一区二区三区av在线 | 深爱激情五月婷婷| 18禁在线播放成人免费| 淫秽高清视频在线观看| 免费电影在线观看免费观看| 少妇的逼好多水| 18禁裸乳无遮挡免费网站照片| 日韩欧美一区二区三区在线观看| 国产欧美日韩精品亚洲av| 亚洲成人免费电影在线观看| 成人性生交大片免费视频hd| 两个人视频免费观看高清| 男女边吃奶边做爰视频| 国产一区二区三区av在线 | 日本爱情动作片www.在线观看 | 最近中文字幕高清免费大全6 | 99久久九九国产精品国产免费| 老熟妇仑乱视频hdxx| 国产黄a三级三级三级人| 嫁个100分男人电影在线观看| 午夜福利成人在线免费观看| 国产精品一区二区三区四区免费观看 | 精品福利观看| 丰满的人妻完整版| 俺也久久电影网| 久久精品国产鲁丝片午夜精品 | 免费看美女性在线毛片视频| 日韩 亚洲 欧美在线| 淫妇啪啪啪对白视频| 日本成人三级电影网站| 丰满的人妻完整版| 日本欧美国产在线视频| 联通29元200g的流量卡| 国产精品综合久久久久久久免费| 女生性感内裤真人,穿戴方法视频| 给我免费播放毛片高清在线观看| 久久久国产成人精品二区| 亚洲精华国产精华液的使用体验 | 免费观看精品视频网站| 国产探花极品一区二区| 美女免费视频网站| 观看美女的网站| 很黄的视频免费| 赤兔流量卡办理| 国产真实伦视频高清在线观看 | 欧美日韩黄片免| 一进一出抽搐gif免费好疼| 男女边吃奶边做爰视频| 免费看日本二区| 亚洲精品一卡2卡三卡4卡5卡| 国产精品,欧美在线| 国产真实乱freesex| 日韩欧美在线乱码| 久久精品久久久久久噜噜老黄 | 久久欧美精品欧美久久欧美| 少妇猛男粗大的猛烈进出视频 | 亚洲久久久久久中文字幕| 亚洲人成网站在线播放欧美日韩| 国产精品国产三级国产av玫瑰| 久9热在线精品视频| 色综合婷婷激情| 久久精品国产自在天天线| 嫩草影院入口| 在线播放无遮挡| 久久亚洲精品不卡| 国产精品一区www在线观看 | 一本久久中文字幕| 真人做人爱边吃奶动态| 国产高清激情床上av| 男人和女人高潮做爰伦理| 国产精品不卡视频一区二区| 国产91精品成人一区二区三区| 麻豆国产av国片精品| 在线播放无遮挡| 国产精品av视频在线免费观看| 毛片女人毛片| 在线播放无遮挡| 国产精品av视频在线免费观看| 久久久色成人| 中文资源天堂在线| 国产精品国产三级国产av玫瑰| 美女 人体艺术 gogo| 日韩精品中文字幕看吧| 国产一区二区在线av高清观看| 美女高潮的动态| 波野结衣二区三区在线| 俄罗斯特黄特色一大片| 男女那种视频在线观看| 国产不卡一卡二| 春色校园在线视频观看| 国产探花极品一区二区| 国国产精品蜜臀av免费| 久久精品国产鲁丝片午夜精品 | 夜夜夜夜夜久久久久| 国产毛片a区久久久久| 亚洲av.av天堂| 美女 人体艺术 gogo| 国产白丝娇喘喷水9色精品| 天堂动漫精品| 国产精品一区www在线观看 | 亚洲四区av| 在线观看舔阴道视频| 午夜福利欧美成人| 国产精品一区www在线观看 | 高清毛片免费观看视频网站| 欧美激情国产日韩精品一区| 哪里可以看免费的av片| 中文字幕人妻熟人妻熟丝袜美| 亚洲第一区二区三区不卡| 欧美性猛交黑人性爽| 国产精品久久久久久久久免| 亚洲精品亚洲一区二区| videossex国产| 一级黄片播放器| 91精品国产九色| 啦啦啦观看免费观看视频高清| 少妇熟女aⅴ在线视频| 91午夜精品亚洲一区二区三区 | 在线免费观看不下载黄p国产 | 狂野欧美激情性xxxx在线观看| 99热6这里只有精品| 在线国产一区二区在线| 亚洲成人久久性| 长腿黑丝高跟| 成人性生交大片免费视频hd| 婷婷丁香在线五月| 久久久久久久久中文| 人人妻人人澡欧美一区二区| 国产精品精品国产色婷婷| 久99久视频精品免费| 亚洲av成人精品一区久久| 此物有八面人人有两片| 国产精品精品国产色婷婷| 中文字幕精品亚洲无线码一区| 啦啦啦韩国在线观看视频| 亚洲成人久久性| 亚洲av一区综合| 免费在线观看成人毛片| 日韩在线高清观看一区二区三区 | 一进一出好大好爽视频| 制服丝袜大香蕉在线| 国产精品久久视频播放| 精品日产1卡2卡| 人妻丰满熟妇av一区二区三区| 国产精品乱码一区二三区的特点| 午夜福利18| 国产成年人精品一区二区| 深爱激情五月婷婷| 国产成人aa在线观看| 日韩欧美国产在线观看| 国产成人一区二区在线| 日韩精品有码人妻一区| 丝袜美腿在线中文| 又爽又黄无遮挡网站| 99精品在免费线老司机午夜| 色哟哟哟哟哟哟| 嫩草影院新地址| 亚洲三级黄色毛片| 国产精品国产三级国产av玫瑰| 成人鲁丝片一二三区免费| 999久久久精品免费观看国产| 亚洲最大成人av| 国产 一区 欧美 日韩| 亚洲精品一区av在线观看| 日韩高清综合在线| 免费看光身美女| 国产成年人精品一区二区| 中出人妻视频一区二区| 97碰自拍视频| 国产淫片久久久久久久久| 人人妻人人看人人澡| 久久精品夜夜夜夜夜久久蜜豆| 日韩亚洲欧美综合| 欧美区成人在线视频| 日本爱情动作片www.在线观看 | 国产女主播在线喷水免费视频网站 | 国产私拍福利视频在线观看| 国产单亲对白刺激| 日韩人妻高清精品专区| 麻豆国产av国片精品| av天堂中文字幕网| 校园人妻丝袜中文字幕| 国产精品不卡视频一区二区| 国产一区二区亚洲精品在线观看| 天堂网av新在线| 九九久久精品国产亚洲av麻豆| 啦啦啦啦在线视频资源| 亚洲av中文av极速乱 | 国产三级中文精品| 亚洲av免费高清在线观看| 99久久九九国产精品国产免费| 久久久久久大精品| av在线老鸭窝| 久久中文看片网| 亚洲久久久久久中文字幕| 久久人人精品亚洲av| 亚洲国产色片| 亚洲成人免费电影在线观看| 日韩高清综合在线| 国产老妇女一区| 欧美zozozo另类| 亚洲性久久影院| 国产精品日韩av在线免费观看| 亚洲天堂国产精品一区在线| 草草在线视频免费看| 免费看日本二区| 午夜福利在线在线| 韩国av在线不卡| 国产爱豆传媒在线观看| 免费观看的影片在线观看| 久久久久久久久久成人| 欧美日韩乱码在线| 亚洲午夜理论影院| 欧美性猛交黑人性爽| 中文字幕久久专区| 国产成年人精品一区二区| 亚洲第一电影网av| 亚洲美女视频黄频| 亚洲人成网站在线播| 深夜a级毛片| 久久久久性生活片| 亚洲av中文av极速乱 | 精品久久久久久久久亚洲 | 国产伦精品一区二区三区视频9| 成年免费大片在线观看| 此物有八面人人有两片| 亚洲人成伊人成综合网2020| 国产三级中文精品| 久久精品国产亚洲网站| 亚洲国产高清在线一区二区三| 嫩草影院入口| 三级男女做爰猛烈吃奶摸视频| 精品免费久久久久久久清纯| 国产伦在线观看视频一区| a级毛片免费高清观看在线播放| 啦啦啦观看免费观看视频高清| 美女黄网站色视频| 亚洲在线自拍视频| 长腿黑丝高跟| 窝窝影院91人妻| 精品乱码久久久久久99久播| 国产精品一区二区免费欧美| 久久久久久久久久黄片| 国产在视频线在精品| 色噜噜av男人的天堂激情| 性欧美人与动物交配| av中文乱码字幕在线| 非洲黑人性xxxx精品又粗又长| 国产爱豆传媒在线观看| 三级毛片av免费| 22中文网久久字幕| 精品人妻熟女av久视频| 日韩人妻高清精品专区| 精品无人区乱码1区二区| 亚洲专区中文字幕在线| 免费在线观看成人毛片| 村上凉子中文字幕在线| 久久草成人影院| 国产 一区精品| 性欧美人与动物交配| 午夜福利18| 国产69精品久久久久777片| 日本五十路高清| 国产中年淑女户外野战色| 一区二区三区高清视频在线| 18禁黄网站禁片午夜丰满| 久久热精品热| 日韩 亚洲 欧美在线| 人妻夜夜爽99麻豆av| 亚洲精品456在线播放app | 99热6这里只有精品| 亚洲电影在线观看av| 日韩av在线大香蕉| 天堂av国产一区二区熟女人妻| 欧美bdsm另类| 欧美成人免费av一区二区三区| 一级a爱片免费观看的视频| 久久草成人影院| 中文字幕av成人在线电影| 男插女下体视频免费在线播放| 在线天堂最新版资源| 久久天躁狠狠躁夜夜2o2o| 成年版毛片免费区| 国产精品久久视频播放| 全区人妻精品视频| 国产精华一区二区三区| 悠悠久久av| 国产亚洲av嫩草精品影院| 熟女电影av网| 久久天躁狠狠躁夜夜2o2o| 天天一区二区日本电影三级| 天美传媒精品一区二区| 欧美激情久久久久久爽电影| 色播亚洲综合网| 国内精品一区二区在线观看| 日日干狠狠操夜夜爽| 少妇高潮的动态图| 18禁裸乳无遮挡免费网站照片| 国产亚洲精品久久久久久毛片| 亚洲精品久久国产高清桃花| 三级国产精品欧美在线观看| 午夜激情福利司机影院| 日韩欧美精品v在线| 干丝袜人妻中文字幕| 99国产极品粉嫩在线观看| 日本黄色片子视频| 国产一区二区在线观看日韩| 直男gayav资源| 99久久精品热视频| 又黄又爽又刺激的免费视频.| 久久久久久久久久黄片| 国产伦精品一区二区三区四那| 亚洲精品国产成人久久av| 亚洲国产日韩欧美精品在线观看| 观看美女的网站| 黄色一级大片看看| 久久久久九九精品影院| 一区二区三区高清视频在线| 97超级碰碰碰精品色视频在线观看| 国产三级在线视频| 婷婷丁香在线五月| 国产私拍福利视频在线观看| 日日夜夜操网爽| 成年女人永久免费观看视频| 亚洲国产日韩欧美精品在线观看| 亚洲av熟女| h日本视频在线播放| 性色avwww在线观看| 国产精品久久久久久久电影| 人妻少妇偷人精品九色| 亚洲精品在线观看二区| 老司机福利观看| 国产蜜桃级精品一区二区三区| 中文在线观看免费www的网站| 美女黄网站色视频| 午夜视频国产福利| 69人妻影院| 一个人看的www免费观看视频| 久久天躁狠狠躁夜夜2o2o| 日本黄色视频三级网站网址| 国产麻豆成人av免费视频| 久久人人精品亚洲av| 成人亚洲精品av一区二区| 国产精品av视频在线免费观看| 久久人妻av系列| 亚洲精品粉嫩美女一区| 欧美激情国产日韩精品一区| 精品久久久久久久末码| 999久久久精品免费观看国产| 精品人妻熟女av久视频| 日韩欧美精品v在线| 亚洲av电影不卡..在线观看| 国内揄拍国产精品人妻在线| 久久国产精品人妻蜜桃| 成年女人永久免费观看视频| 不卡视频在线观看欧美| 国产成人影院久久av| 人妻夜夜爽99麻豆av| 很黄的视频免费| 婷婷色综合大香蕉| 九色国产91popny在线| 久久人人爽人人爽人人片va| 国产精品不卡视频一区二区| 尤物成人国产欧美一区二区三区| 我的女老师完整版在线观看| 欧美潮喷喷水| 精品免费久久久久久久清纯| 在线观看免费视频日本深夜| 午夜爱爱视频在线播放| 亚洲精品日韩av片在线观看| 天堂影院成人在线观看| 国产av不卡久久| 在线观看舔阴道视频| 亚洲国产精品成人综合色| 日本黄色视频三级网站网址| 国产中年淑女户外野战色| 五月伊人婷婷丁香| 国产在线精品亚洲第一网站| 九九热线精品视视频播放| 日本熟妇午夜| 免费观看的影片在线观看| 久久精品人妻少妇| 极品教师在线视频| 成人国产麻豆网| 久久国产精品人妻蜜桃| 久久久精品欧美日韩精品| 成人国产综合亚洲| 麻豆国产av国片精品| 日本与韩国留学比较| 精品久久久久久成人av| 久久久久久久久久黄片| 尾随美女入室| 亚洲精品影视一区二区三区av| 人妻夜夜爽99麻豆av| 成年免费大片在线观看| 他把我摸到了高潮在线观看| 天堂av国产一区二区熟女人妻| 亚洲av第一区精品v没综合| 亚洲人成网站在线播放欧美日韩| 午夜激情福利司机影院| 草草在线视频免费看| 日日夜夜操网爽| 亚洲狠狠婷婷综合久久图片| 欧美最新免费一区二区三区| 国产美女午夜福利| 黄片wwwwww| 亚洲欧美日韩高清在线视频| 欧美性猛交╳xxx乱大交人| 黄色日韩在线| 熟女人妻精品中文字幕| 久久精品久久久久久噜噜老黄 | 免费高清视频大片| 日韩国内少妇激情av| 69av精品久久久久久| 国产精品久久久久久久电影| 桃色一区二区三区在线观看| 国产精品一及| 欧美日本视频| a在线观看视频网站| 国产乱人视频| 欧洲精品卡2卡3卡4卡5卡区| 国产一区二区亚洲精品在线观看| 伦理电影大哥的女人| 在线免费十八禁| 欧美日韩精品成人综合77777| 成人美女网站在线观看视频| 国产黄色小视频在线观看| 久久精品91蜜桃| 欧美丝袜亚洲另类 | 欧美一级a爱片免费观看看| 露出奶头的视频| 婷婷亚洲欧美| 熟女人妻精品中文字幕| 成人国产麻豆网| 免费一级毛片在线播放高清视频| av视频在线观看入口| 两个人的视频大全免费| 国产极品精品免费视频能看的| 亚洲精华国产精华精| 麻豆久久精品国产亚洲av| 91精品国产九色| 日韩欧美三级三区| 亚洲无线观看免费| 久久国内精品自在自线图片| 高清在线国产一区| 嫩草影院精品99| 国产高清不卡午夜福利| 国产成人av教育| 久久99热这里只有精品18| 人人妻人人看人人澡| 一个人观看的视频www高清免费观看| 午夜福利高清视频| 精品99又大又爽又粗少妇毛片 | 伦精品一区二区三区| 日韩高清综合在线| 国产午夜精品久久久久久一区二区三区 | 成人av在线播放网站| 亚洲精品一卡2卡三卡4卡5卡| 嫩草影院入口| 在线观看av片永久免费下载| 国产精品久久电影中文字幕| 91麻豆精品激情在线观看国产| 亚洲欧美日韩高清在线视频| 国产精品三级大全| 亚洲色图av天堂| 国产精品美女特级片免费视频播放器| 国产伦精品一区二区三区视频9| 午夜日韩欧美国产| 久久久久国内视频| 亚洲成人精品中文字幕电影| 亚洲人成网站高清观看| 国产伦人伦偷精品视频| 成人国产综合亚洲| 熟女人妻精品中文字幕| 国产精品久久久久久精品电影| 欧美丝袜亚洲另类 | 国产又黄又爽又无遮挡在线| 国产一区二区三区在线臀色熟女| 小说图片视频综合网站| 成人鲁丝片一二三区免费| 波多野结衣高清作品| 成人国产综合亚洲| 美女 人体艺术 gogo| 色吧在线观看| 亚洲最大成人中文| av女优亚洲男人天堂| 男女做爰动态图高潮gif福利片| 欧美高清成人免费视频www| 欧美成人一区二区免费高清观看| 人人妻,人人澡人人爽秒播| 中文字幕人妻熟人妻熟丝袜美| 日韩欧美免费精品| 色哟哟哟哟哟哟| 免费黄网站久久成人精品| 中文字幕熟女人妻在线| 国产一级毛片七仙女欲春2| 欧美日韩亚洲国产一区二区在线观看| 国产一区二区在线av高清观看| av福利片在线观看| 99热这里只有是精品在线观看| 久久中文看片网| 看免费成人av毛片| 午夜激情福利司机影院| 美女高潮喷水抽搐中文字幕| 日本熟妇午夜| 午夜激情欧美在线| 美女高潮喷水抽搐中文字幕| 国产精品乱码一区二三区的特点| 狂野欧美白嫩少妇大欣赏| 精品乱码久久久久久99久播| 黄色一级大片看看| x7x7x7水蜜桃| 国产成年人精品一区二区| 白带黄色成豆腐渣| 一级黄片播放器| 国产精品一区二区三区四区久久| 欧美绝顶高潮抽搐喷水| 国产精品美女特级片免费视频播放器| 高清日韩中文字幕在线| 欧美日韩瑟瑟在线播放| 韩国av在线不卡| 亚洲av成人av| 精品不卡国产一区二区三区| 91麻豆av在线| 丰满乱子伦码专区| 亚洲成人免费电影在线观看|