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

    一種基于MDA的分布式對象模型框架代碼生成方法

    2014-03-25 03:07:32張森鄧?yán)?/span>吳健朱明潔
    關(guān)鍵詞:代碼生成代碼分布式

    張森, 鄧?yán)? 吳健, 朱明潔

    (1.西北工業(yè)大學(xué) 計算機學(xué)院, 陜西 西安 710072; 2.中航工業(yè)西安飛機設(shè)計研究所, 陜西 西安 710089)

    分布式對象模型是分布式技術(shù)和面向?qū)ο蠹夹g(shù)結(jié)合的產(chǎn)物,它是對分布式系統(tǒng)的業(yè)務(wù)處理進行抽象來構(gòu)造出的一組相關(guān)模型。這些模型通過接口來實現(xiàn)客戶程序和分布式中間件的相互通信,具有可重用性、平臺無關(guān)性等優(yōu)點。分布式對象模型框架代碼是分布式對象模型在具體平臺上的體現(xiàn),提供具體平臺上的分布式對象發(fā)布訂閱和遠(yuǎn)程方法訪問等服務(wù)。文獻[1]描述了一種基于模板的代碼自動生成方法,該方法有效解決了人工編寫分布式對象模型框架代碼工作量大、錯誤率高的問題,大大提高了軟件開發(fā)的速度和質(zhì)量。然而代碼生成的規(guī)則都是在程序中硬編碼實現(xiàn)的,可擴展性和可維護性較差。

    MDA(model driven architecture,模型驅(qū)動架構(gòu))是由OMG(object management group,對象管理組織)于2001年提出來的一種軟件開發(fā)框架。該框架以模型為核心,并將模型貫穿于整個軟件開發(fā)過程之中。它根據(jù)軟件開發(fā)的不同階段將模型分為PIM(platform independent model,平臺無關(guān)模型)、PSM(platform specific model ,平臺相關(guān)模型)和代碼3種。在MDA中,軟件開發(fā)過程由對軟件系統(tǒng)的建模行為驅(qū)動[2],首先要建立能夠描述系統(tǒng)全部業(yè)務(wù)的、與具體平臺無關(guān)的PIM。然后制定PIM到具體平臺的PSM的模型轉(zhuǎn)換規(guī)則,并通過這些規(guī)則將PIM轉(zhuǎn)換成一個或多個PSM。最后根據(jù)具體平臺的代碼生成技術(shù)將PSM轉(zhuǎn)換成相應(yīng)平臺的程序代碼。本文結(jié)合一種典型的分布式對象模型框架需求,改進了現(xiàn)有的基于模板技術(shù)的代碼生成技術(shù),提出了一種基于MDA的代碼生成方法,有效提高了分布式對象模型框架代碼生成系統(tǒng)的可擴展性和可維護性。

    1 基于模板技術(shù)的模型框架代碼生成

    分布式對象模型框架代碼生成系統(tǒng)的作用是將用戶編寫的分布式對象模型描述VDL文件,通過解析,生成分布式模型框架代碼。該系統(tǒng)主要分為3個部分:模型解析、代碼生成和驅(qū)動引擎,如圖1所示。

    模型解析的功能是以動態(tài)鏈接庫的形式提供一組API,以供驅(qū)動引擎調(diào)用。此API實現(xiàn)了對用戶給出的分布式對象模型描述VDL文件的解析,并將解析結(jié)果組織、記錄在一個中間表示數(shù)據(jù)結(jié)構(gòu)(IR)中。該部分包括詞法分析和語法分析模塊。詞法分析模塊從VDL文件中分離出VDL的單詞。語法分析是通過YACC(yet another compiler compiler)工具生成的VDL語法分析器來完成對VDL語法分析處理的。語法分析的過程會依照語義的描述來完成中間表示數(shù)據(jù)的記錄。語法分析過程中會通過2條途徑報告VDL語法錯誤。一條途徑是當(dāng)輸入VDL文件不符合VDL文法規(guī)定時,直接報告錯誤。此類錯誤一旦出現(xiàn),就退出編譯過程。另一條途徑是在語義處理過程中檢查并報告與上下文有關(guān)的錯誤。

    圖1 基于模板技術(shù)的代碼生成框架

    代碼生成的任務(wù)是以動態(tài)鏈接庫的形式提供一組API,以供驅(qū)動引擎調(diào)用,并生成適配于分布式中間件的對象模型框架代碼。該框架代碼主要包括2部分。一部分是CORBA(TAO)的IDL代碼,IDL代碼最終交由TAO的IDL編譯器進行編譯生成Skeleton和Stub的C++代碼,這部分代碼主要完成VDO遠(yuǎn)程方法訪問的功能。另一部分是C++代碼,此部分代碼會與分布式中間件協(xié)同,以實現(xiàn)分布式對象VDO的狀態(tài)發(fā)布/訂閱功能。

    由于分布式中間件的協(xié)同代碼具有很多的共性,不同的VDL對應(yīng)的協(xié)同代碼的差異性信息在VDL文件中均已定義,故采取模板的技術(shù)對分布式中間件協(xié)同代碼進行生成。

    系統(tǒng)首先將同一類分布式對象的中間件協(xié)同代碼做成模板的形式,其中不變部分以源代碼的方式直接給出;可變部分以標(biāo)簽的形式給出。其次,根據(jù)具體的分布式對象的信息來生成各個標(biāo)簽的內(nèi)容。最后,替換模板中的所有標(biāo)簽,并輸出替換標(biāo)簽后的模板,即生成中間件協(xié)同代碼。

    驅(qū)動引擎的任務(wù)是讀取用戶輸入的分布式對象模型VDL描述文件,調(diào)用模型解析部分的API,生成中間表示數(shù)據(jù)結(jié)構(gòu)IR。然后掃描該IR,并調(diào)用代碼生成部分提供的API,自動生成分布式對象模型代碼。

    由上述生成方案可以看出,代碼生成規(guī)則都是事先在程序中通過硬編碼設(shè)定的,一旦生成規(guī)則發(fā)生改變或者生成另一種平臺的模型框架代碼,則開發(fā)人員將重新修改原來的程序代碼,可擴展性和可維護性較差。

    2 基于MDA的分布式對象模型框架代碼生成方法

    本文結(jié)合分布式對象模型框架需求和MDA思想,提出了一種新的代碼生成方法。主要包括:PIM建立、PIM到PSM的轉(zhuǎn)換和PSM到代碼的生成3個部分。PIM建立部分主要完成分布式對象PIM的建立,然后將其描述成XML文件。PIM到PSM的轉(zhuǎn)換部分以PIM描述XML文件為輸入,結(jié)合PIM和PSM元模型之間的轉(zhuǎn)換規(guī)則來轉(zhuǎn)換成PSM,并將其描述為XML文件。PSM到代碼的生成部分以PSM描述XML文件為輸入,采用XSLT技術(shù)來完成代碼的生成。系統(tǒng)架構(gòu)如圖2所示。

    圖2 基于MDA的代碼生成架構(gòu)圖

    2.1 分布式對象PIM

    分布式對象PIM的描述有2種方式:①VDL描述。VDL是一種專門為描述分布式對象而設(shè)計的語言,該語言類似于IDL語言,具有很高的靈活性。②Ecore描述。Ecore是EMF(eclipse model framework,Eclipse模型框架)的元元模型,是UML的一個子集。開發(fā)人員可以使用EMF中的Ecore樹形樣本編輯器快速方便地建立分布式對象Ecore模型。然而,盡管它們均能詳細(xì)地描述分布式系統(tǒng)的對象信息,但是卻無法作為MDA中PIM到PSM映射轉(zhuǎn)換的輸入。為此,本文采用XML文件作為系統(tǒng)的標(biāo)準(zhǔn)描述文件。對于VDL描述文件,則需要進行詞法分析和語法分析,將解析出的模型信息表述為XML文件。而對于Ecore描述,則可以使用標(biāo)準(zhǔn)XMI將Ecore表示的模型信息串行化成XML文件。以localclass對象模型Person為例,該對象具有2個屬性:①公有的name屬性,其類型為string。②只讀的age屬性,其類型為short。其XML描述為:

    xmlns:xmi=http://www.omg.org/XMI

    xmlns:vdl="platform:/resource/VdlModelRefactoring/MetaModel/Vdl.ecore"

    name="Person">

    2.2 分布式對象PSM

    分布式對象模型代碼主要實現(xiàn)分布式對象的遠(yuǎn)程方法訪問和發(fā)布訂閱功能。遠(yuǎn)程方法訪問是借助CORBA來實現(xiàn)的,系統(tǒng)首先要生成IDL代碼,然后經(jīng)過IDL編譯器編譯形成Skeleton和Stub的C++代碼。因此需要將PIM轉(zhuǎn)換成CORBA平臺的IDL-PSM模型。而發(fā)布訂閱功能是單獨用C++語言設(shè)計實現(xiàn)的,所以還需要轉(zhuǎn)換成C++平臺的C++-PSM模型。為了PSM模型到代碼的生成,所以PSM模型也采用XML進行描述。還以localclass對象模型Person為例,該對象會映射到一個C++平臺的class模型。該模型主要包含了Person模型對應(yīng)的屬性的get/set方法。根據(jù)Person模型屬性的修飾符不同,其轉(zhuǎn)換方法也不同。對于公有屬性,轉(zhuǎn)換后class模型含有g(shù)et/set方法。對于只讀屬性,轉(zhuǎn)換后只有g(shù)et方法,而沒有set方法。其XML描述為:

    xmlns:xmi=http://www.omg.org/XMI

    xmlns:cpsm="platform:/resource/VdlModelRefactoring/MetaModel/CPsm.ecore"

    name="Person">

    2.3 分布式對象PIM到PSM的轉(zhuǎn)換

    模型轉(zhuǎn)換是MDA中的關(guān)鍵部分。MDA中PIM到PSM的轉(zhuǎn)換是基于轉(zhuǎn)換規(guī)則來進行轉(zhuǎn)換的。為了使轉(zhuǎn)換規(guī)則的定義標(biāo)準(zhǔn)化,OMG開發(fā)了一組編寫轉(zhuǎn)換規(guī)則定義的標(biāo)準(zhǔn)語言QVT(query/view/transformation)。而ATL(atlas transformation language,Atlas轉(zhuǎn)換語言)是ATLAS研究組開發(fā)出來的一種模型轉(zhuǎn)換語言。該語言是EMF下的一種語言,符合OMG的QVT標(biāo)準(zhǔn),可以將一組模型轉(zhuǎn)換成一種或多種目標(biāo)模型。ATL的模型轉(zhuǎn)換規(guī)則定義在轉(zhuǎn)換模型所在層的上一層。如果轉(zhuǎn)換的模型處于M1模型層,那么模型轉(zhuǎn)換規(guī)則定義在M2元模型層。所以開發(fā)人員首先要設(shè)計PIM和PSM的元模型,然后再制定相應(yīng)的轉(zhuǎn)換規(guī)則,才能將輸入的PIM自動轉(zhuǎn)換成PSM。

    以localclass對象模型到C++平臺的class模型的轉(zhuǎn)換為例,首先要定義localclass對象模型和C++平臺的class模型的元模型。元模型如圖3所示:

    圖3 localclass元模型和class元模型

    然后定義localclass元模型到class元模型轉(zhuǎn)換的規(guī)則,如下所示:

    rule Root {

    from

    s : VDL!localclass

    to

    t : CPSM!class(

    name <-s.name,

    func <-

    s.attr->select(e|e.modifier=′public′)->collect(e|thisModule.functionset(e)),

    func <- s.attr->collect(e|thisModule.functionget(e))

    )

    }

    lazy rule functionset {

    from

    c : VDL!attribute

    to

    m : CPSM!function(

    rettype <-′void′,

    name <-′set_′+c.name,

    param <-

    thisModule.parameter(c)

    )

    }

    lazy rule functionget {

    from

    c : VDL!attribute

    to

    m: CPSM!function(

    rettype <- c.type,

    name <-′get_′+c.name

    )

    }

    lazy rule parameter {

    from

    s : VDL!attribute

    to

    t : CPSM!parameter(

    type <- s.type,

    name <- s.name

    )

    }

    其中,Root規(guī)則段定義了PIM元模型中l(wèi)ocaclass模型到PSM元模型中class模型的映射。首先將localclass模型中的name屬性原封不動地轉(zhuǎn)成class模型的name屬性,然后將localclass模型中的attr屬性轉(zhuǎn)換成function模型。對于公有的attr才能轉(zhuǎn)換成set方法的function模型。functionset和functionget規(guī)則段定義了PIM元模型中attribute模型到PSM元模型中function模型的映射。functionset規(guī)則產(chǎn)生set方法,functionget規(guī)則產(chǎn)生get方法。對于set方法function模型中的返回值類型rettype為void類型,方法名name由字符串"set_"和屬性名拼接而成。參數(shù)param由規(guī)則parameter來產(chǎn)生。而對于get方法function模型中的返回值類型rettype為屬性的類型,方法名name由字符串"get_"和屬性名拼接而成。paramter規(guī)則段定義了PIM元模型中attribute模型到PSM元模型中parameter模型的映射。該規(guī)則將attribute模型的屬性type和name對應(yīng)映射到了parameter模型的屬性type和name。

    2.4 分布式對象PSM到代碼的生成

    分布式對象模型代碼的生成主要完成從PSM模型到代碼的生成。該部分以PSM模型描述XML文件為輸入,并從中解析出模型信息,然后結(jié)合代碼模板生成具體平臺的模型代碼。由于分布式對象模型代碼具有很大的共性,并可以將其編寫成XSLT模板,并且代碼的動態(tài)部分信息是由XML文件描述的,所以代碼生成可以采用XSLT/XML技術(shù)來生成模型代碼。

    XSLT代表eXtensible Stylesheet

    Language:Transformations(擴展樣式表語言:轉(zhuǎn)換),是一種用來將一個XML文檔的結(jié)構(gòu)進行轉(zhuǎn)換的語言[3]。它可以將XML文檔轉(zhuǎn)換為其他基于文本格式的文檔,也可以轉(zhuǎn)換成另一種XML文檔。以Person模型為例,其xslt轉(zhuǎn)換代碼為:

    encoding="ISO-8859-1"?>

    xmlns:cpsm="platform:/resource/VdlMod

    elRefactoring/MetaModel/CPsm.ecore"

    xmlns:xsl="http://www.w3.org/1999/XSL/

    Transform">

    #include

    disable-output-escaping="yes"><

    ext>string

    disable-output-escaping="yes">>

    ext>

    using namespace std;

    class

    select="/cpsm:class/@name"/>

    {

    public:

    (

    );

    };

    其中,是XSLT的核心部分,該元素用于創(chuàng)建模板,并通過其屬性match將此模板規(guī)則匹配到XML文檔中某些節(jié)點。在轉(zhuǎn)換過程中,XSLT處理器通過指令的XPATH表達式來定位到XML文檔中符合條件的節(jié)點,然后把節(jié)點的值按照指令的規(guī)則內(nèi)容轉(zhuǎn)換到結(jié)果文檔中,從而形成程序代碼。

    3 結(jié) 論

    本系統(tǒng)架構(gòu)已經(jīng)在虛擬試驗分布式對象框架代碼生成系統(tǒng)中得到應(yīng)用。采用該系統(tǒng)架構(gòu),開發(fā)人員可以方便地修改模型、轉(zhuǎn)換規(guī)則和XSLT模板來調(diào)整模型代碼的生成,極大地縮短了開發(fā)人員的工作量,有效提升了系統(tǒng)開發(fā)的效率,提高了可擴展性、可維護性和可移植性。

    參考文獻:

    [1] 肖寒. J2EE平臺下代碼自動生成技術(shù)研究[J]. 電腦知識與技術(shù),2009,5(20):5421-5422,5434

    Xiao Han. Study of Code Generation Technology Based on J2EE Platform[J]. Computer Knowledge and Technology, 2009,5(20):5421-5422,5434 (in Chinese)

    [2] Anneke Kleppe, Jos Warmer, Wim Bast. 解析MDA[M]. 鮑志云,譯. 北京: 人民郵電出版社,2004

    Anneke Kleppe, Jos Warmer, Wim Bast. MDA Analysis[M]. Bao Zhiyun, Translator. Beijing: Posts& Telecom Press, 2004 (in Chinese)

    [3] Michael Kay. XSLT程序員參考手冊[M]. 朱冬東,呂俊輝,李玫,譯. 北京: 機械工業(yè)出社,2002

    Michael Kay. XSLT Programmer′s Reference[M]. Zhu Dongdong, Lü Junhui, Li Mei, Translator. Beijing: China Machine Press,2002 (in Chinese)

    [4] 曾一,許林,黃興硯,王翠欽. 一種結(jié)合MDA的高階模型轉(zhuǎn)換方法[J]. 計算機應(yīng)用研究, 2012,29(12):4584-4588

    Zeng Yi, Xu Lin, Huang Xingyan, Wang Cuiqin. Method of Higher-Order Model Transformation Combined with MDA[J]. Application Research of Computers, 2012,29(12):4584-4588 (in Chinese)

    [5] 趙遠(yuǎn)東,王云華. 基于J2EE平臺的MDA模型驅(qū)動架構(gòu)技術(shù)[J]. 電腦知識與技術(shù), 2010,6(25):7017-7018,7043

    Zhao Yuandong,Wang Yunhua. Model Driven Architecture Based on J2EE System[J]. Computer Knowledge and Technology, 2010,6(25):7017-7018,7043 (in Chinese)

    [6] 於良偉,袁泉,霍劍青,王曉蒲. 基于XML和XSLT的模型驅(qū)動構(gòu)架[J]. 計算機工程, 2010,36(6):49-51

    Yu Liangwei,Yuan Quan, Huo Jianqing, Wang Xiaopu. Model Driven Architecture Based on XML and XSLT[J]. Computer Engineering, 2010,36(6):49-51 (in Chinese)

    [7] 楊美榮,史建鋒,李明星. 基于MDA的代碼生成器設(shè)計與實現(xiàn)[J]. 計算機工程, 2009,35(12):47-49,53

    Yang Meirong, Shi Jianfeng, Li Mingxing. Design and Implementation of Code Generator Based on MDA[J]. Computer Engineering, 2009,35(12):47-49,53 (in Chinese)

    [8] Mhamed Rahmouni, Samir Mbarki. MDA-Based ATL Transformation to Generate MVC 2 Web Models[J]. International Journal of Computer Science & Information Technology, 2011,3(4):57-70

    猜你喜歡
    代碼生成代碼分布式
    Lustre語言可信代碼生成器研究進展
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    分布式光伏熱錢洶涌
    能源(2017年10期)2017-12-20 05:54:07
    分布式光伏:爆發(fā)還是徘徊
    能源(2017年5期)2017-07-06 09:25:54
    代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
    電子世界(2016年15期)2016-08-29 02:14:28
    基于XML的代碼自動生成工具
    電子科技(2015年2期)2015-12-20 01:09:20
    基于DDS的分布式三維協(xié)同仿真研究
    雷達與對抗(2015年3期)2015-12-09 02:38:50
    99久久无色码亚洲精品果冻| 人人妻,人人澡人人爽秒播| 欧美绝顶高潮抽搐喷水| 成人高潮视频无遮挡免费网站| 窝窝影院91人妻| 国产成人av激情在线播放| 欧美一级毛片孕妇| 国产麻豆成人av免费视频| 久9热在线精品视频| 给我免费播放毛片高清在线观看| 亚洲五月天丁香| 国产高清有码在线观看视频 | 国产一区在线观看成人免费| 三级国产精品欧美在线观看 | 国产精品影院久久| 午夜福利18| 欧美又色又爽又黄视频| 午夜视频精品福利| 少妇粗大呻吟视频| 村上凉子中文字幕在线| 99精品欧美一区二区三区四区| 国产成人精品久久二区二区91| 无人区码免费观看不卡| 中文字幕av在线有码专区| 国产精品免费视频内射| 久久天堂一区二区三区四区| 亚洲av电影不卡..在线观看| 欧美绝顶高潮抽搐喷水| 精华霜和精华液先用哪个| 国产久久久一区二区三区| 观看免费一级毛片| 熟女电影av网| 久久精品国产清高在天天线| 日韩高清综合在线| 最新美女视频免费是黄的| 国产乱人伦免费视频| 精品久久久久久,| 国产一区二区在线av高清观看| 一本久久中文字幕| 国产人伦9x9x在线观看| 日韩中文字幕欧美一区二区| 深夜精品福利| 麻豆国产av国片精品| 国产人伦9x9x在线观看| 全区人妻精品视频| 国产精品av视频在线免费观看| 中文字幕熟女人妻在线| 久久久国产成人精品二区| 一级毛片高清免费大全| 午夜两性在线视频| 一区福利在线观看| 免费看十八禁软件| 国产在线精品亚洲第一网站| 国产99白浆流出| 国产一区二区在线观看日韩 | 97碰自拍视频| 嫩草影院精品99| 女警被强在线播放| 中文资源天堂在线| 亚洲真实伦在线观看| 国产精品九九99| 亚洲色图 男人天堂 中文字幕| 中文字幕最新亚洲高清| 中文亚洲av片在线观看爽| 久久亚洲精品不卡| 久久久久九九精品影院| 国产探花在线观看一区二区| 又粗又爽又猛毛片免费看| 亚洲熟妇中文字幕五十中出| 午夜精品久久久久久毛片777| 欧美大码av| 日韩中文字幕欧美一区二区| 免费在线观看完整版高清| 这个男人来自地球电影免费观看| 两个人看的免费小视频| 久久久久久人人人人人| 一个人免费在线观看的高清视频| 女人被狂操c到高潮| 亚洲国产欧美网| 又粗又爽又猛毛片免费看| av有码第一页| 亚洲人成伊人成综合网2020| 人人妻人人看人人澡| 欧美一区二区精品小视频在线| 国产欧美日韩精品亚洲av| 一本一本综合久久| 亚洲午夜理论影院| 2021天堂中文幕一二区在线观| 欧美日韩亚洲综合一区二区三区_| 国产区一区二久久| 一二三四在线观看免费中文在| 香蕉av资源在线| 国产精华一区二区三区| 真人做人爱边吃奶动态| 国产在线观看jvid| 在线观看午夜福利视频| 91大片在线观看| 女同久久另类99精品国产91| 国产精品一区二区三区四区久久| 久99久视频精品免费| 国产精品野战在线观看| 亚洲成人精品中文字幕电影| 男女视频在线观看网站免费 | 亚洲18禁久久av| 91国产中文字幕| 国产精品一区二区免费欧美| 久久久久久免费高清国产稀缺| 黄片小视频在线播放| 一本久久中文字幕| 成人欧美大片| 色在线成人网| 男女之事视频高清在线观看| 久久伊人香网站| av福利片在线观看| 变态另类丝袜制服| 亚洲成a人片在线一区二区| 亚洲专区字幕在线| 久久精品国产亚洲av香蕉五月| 狠狠狠狠99中文字幕| 成人三级做爰电影| 久久香蕉精品热| 91麻豆精品激情在线观看国产| 久久精品成人免费网站| 国内精品久久久久久久电影| 好男人在线观看高清免费视频| 一进一出好大好爽视频| 18禁黄网站禁片免费观看直播| 99久久国产精品久久久| 亚洲色图 男人天堂 中文字幕| 成人手机av| 国产熟女午夜一区二区三区| 两人在一起打扑克的视频| 亚洲一码二码三码区别大吗| 亚洲性夜色夜夜综合| 十八禁网站免费在线| 国产精品久久久久久精品电影| 午夜a级毛片| 久久99热这里只有精品18| 制服诱惑二区| 18禁黄网站禁片午夜丰满| 非洲黑人性xxxx精品又粗又长| 欧美丝袜亚洲另类 | 1024香蕉在线观看| 一级片免费观看大全| 成人亚洲精品av一区二区| 一本综合久久免费| 国产又色又爽无遮挡免费看| 国产精品久久久久久人妻精品电影| 欧美中文日本在线观看视频| 欧美激情久久久久久爽电影| 好男人电影高清在线观看| 中文字幕人妻丝袜一区二区| 亚洲无线在线观看| 香蕉国产在线看| svipshipincom国产片| 亚洲人成网站高清观看| 欧美三级亚洲精品| 久久亚洲精品不卡| 青草久久国产| 精品国内亚洲2022精品成人| 国产三级中文精品| 我要搜黄色片| 国产v大片淫在线免费观看| 少妇熟女aⅴ在线视频| av中文乱码字幕在线| 国产黄色小视频在线观看| 久久久国产成人精品二区| 两性午夜刺激爽爽歪歪视频在线观看 | 国语自产精品视频在线第100页| 巨乳人妻的诱惑在线观看| 亚洲七黄色美女视频| 久久草成人影院| 国产熟女xx| 最好的美女福利视频网| 国产精品久久久久久人妻精品电影| 久久久国产成人精品二区| 亚洲成av人片在线播放无| 人人妻,人人澡人人爽秒播| 欧美日韩中文字幕国产精品一区二区三区| 久99久视频精品免费| 午夜日韩欧美国产| 无遮挡黄片免费观看| 在线观看美女被高潮喷水网站 | 亚洲国产日韩欧美精品在线观看 | 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲精品久久国产高清桃花| 免费观看精品视频网站| 天天躁狠狠躁夜夜躁狠狠躁| 国产av又大| 又黄又粗又硬又大视频| 久久婷婷人人爽人人干人人爱| 真人一进一出gif抽搐免费| 午夜精品一区二区三区免费看| 男女午夜视频在线观看| 欧美色视频一区免费| 久久精品亚洲精品国产色婷小说| 国产精品免费一区二区三区在线| 国产69精品久久久久777片 | av天堂在线播放| 91成年电影在线观看| x7x7x7水蜜桃| 免费无遮挡裸体视频| 欧美av亚洲av综合av国产av| 国产精品 国内视频| 制服人妻中文乱码| 午夜福利高清视频| 国产一区二区三区在线臀色熟女| 欧美丝袜亚洲另类 | 九色国产91popny在线| 亚洲电影在线观看av| 天堂√8在线中文| 国产精品美女特级片免费视频播放器 | 好男人在线观看高清免费视频| 久久 成人 亚洲| 亚洲真实伦在线观看| 免费看美女性在线毛片视频| 校园春色视频在线观看| 国产精品亚洲美女久久久| 神马国产精品三级电影在线观看 | 亚洲av片天天在线观看| 亚洲av美国av| 国产精品亚洲av一区麻豆| 日本熟妇午夜| 亚洲国产欧洲综合997久久,| 国产精品亚洲av一区麻豆| 不卡av一区二区三区| av在线播放免费不卡| 久久久久国内视频| 黄色毛片三级朝国网站| 亚洲av成人不卡在线观看播放网| av超薄肉色丝袜交足视频| 久久久久精品国产欧美久久久| 一区二区三区高清视频在线| 亚洲精品色激情综合| 久99久视频精品免费| 国产亚洲精品综合一区在线观看 | 狂野欧美白嫩少妇大欣赏| 亚洲国产日韩欧美精品在线观看 | 999久久久精品免费观看国产| 国产黄a三级三级三级人| av片东京热男人的天堂| 精品福利观看| 国产亚洲欧美在线一区二区| 亚洲国产精品久久男人天堂| 麻豆久久精品国产亚洲av| 国产精品精品国产色婷婷| 操出白浆在线播放| 又黄又粗又硬又大视频| 免费电影在线观看免费观看| 香蕉国产在线看| 国产精品一区二区三区四区免费观看 | 精品国产乱码久久久久久男人| 久久草成人影院| 国产精品综合久久久久久久免费| 日本a在线网址| 欧美国产日韩亚洲一区| 老司机靠b影院| 琪琪午夜伦伦电影理论片6080| 精品久久蜜臀av无| 国产精品综合久久久久久久免费| 狠狠狠狠99中文字幕| 国产99久久九九免费精品| 最好的美女福利视频网| 国模一区二区三区四区视频 | 少妇被粗大的猛进出69影院| 日韩大码丰满熟妇| 欧美乱码精品一区二区三区| 丁香欧美五月| 99国产精品一区二区蜜桃av| 久久精品国产99精品国产亚洲性色| 婷婷精品国产亚洲av| 久久99热这里只有精品18| 欧美成人一区二区免费高清观看 | 亚洲av中文字字幕乱码综合| 日本五十路高清| 亚洲av第一区精品v没综合| 国产人伦9x9x在线观看| 亚洲美女黄片视频| 国产精品精品国产色婷婷| 夜夜夜夜夜久久久久| 在线国产一区二区在线| 午夜免费观看网址| 母亲3免费完整高清在线观看| 蜜桃久久精品国产亚洲av| 757午夜福利合集在线观看| 免费在线观看完整版高清| 我要搜黄色片| 国产精品永久免费网站| 国产一区二区三区视频了| 国产精品爽爽va在线观看网站| 黄色片一级片一级黄色片| 亚洲最大成人中文| 久久久久久国产a免费观看| 两人在一起打扑克的视频| 日本成人三级电影网站| 亚洲九九香蕉| 老司机午夜福利在线观看视频| 一级黄色大片毛片| 久久中文字幕一级| 亚洲一区高清亚洲精品| 在线a可以看的网站| 黄色视频不卡| 欧美一区二区精品小视频在线| 国产av一区二区精品久久| 久久性视频一级片| 少妇熟女aⅴ在线视频| 亚洲,欧美精品.| 欧美丝袜亚洲另类 | 操出白浆在线播放| 日韩精品中文字幕看吧| 国产三级黄色录像| 校园春色视频在线观看| 日韩免费av在线播放| 岛国在线免费视频观看| 国产99久久九九免费精品| 91字幕亚洲| 亚洲av熟女| 欧美最黄视频在线播放免费| 一a级毛片在线观看| 男插女下体视频免费在线播放| 精品高清国产在线一区| 国产蜜桃级精品一区二区三区| 成人av在线播放网站| 曰老女人黄片| 国产一区二区激情短视频| x7x7x7水蜜桃| 色哟哟哟哟哟哟| 日本a在线网址| 中文字幕最新亚洲高清| 五月伊人婷婷丁香| 91国产中文字幕| 香蕉久久夜色| 在线永久观看黄色视频| 老司机午夜福利在线观看视频| 国产熟女xx| 长腿黑丝高跟| 国产精品美女特级片免费视频播放器 | 搡老岳熟女国产| 青草久久国产| 欧美乱色亚洲激情| 一进一出好大好爽视频| 真人一进一出gif抽搐免费| 欧美精品啪啪一区二区三区| 淫秽高清视频在线观看| 91麻豆av在线| 国产高清视频在线播放一区| 一个人免费在线观看电影 | 亚洲自偷自拍图片 自拍| 88av欧美| 国产精品永久免费网站| 精品人妻1区二区| 精品久久久久久久末码| 欧美不卡视频在线免费观看 | 亚洲成a人片在线一区二区| 动漫黄色视频在线观看| 男女视频在线观看网站免费 | 国产91精品成人一区二区三区| 狂野欧美白嫩少妇大欣赏| 国产激情偷乱视频一区二区| 国产欧美日韩一区二区三| 操出白浆在线播放| 免费无遮挡裸体视频| 欧美一区二区国产精品久久精品 | 黑人操中国人逼视频| 在线免费观看的www视频| 精品久久蜜臀av无| 亚洲成人久久性| 日日干狠狠操夜夜爽| 国产99久久九九免费精品| 国产主播在线观看一区二区| 国产成人一区二区三区免费视频网站| 夜夜看夜夜爽夜夜摸| 中文字幕熟女人妻在线| 精品第一国产精品| 成人三级黄色视频| 一级作爱视频免费观看| 夜夜躁狠狠躁天天躁| 亚洲一区二区三区色噜噜| 国产午夜精品久久久久久| 女人被狂操c到高潮| 日本成人三级电影网站| 国产亚洲精品久久久久5区| 精品久久久久久久久久免费视频| 久久精品国产亚洲av香蕉五月| 国模一区二区三区四区视频 | a级毛片a级免费在线| 操出白浆在线播放| 亚洲一区二区三区色噜噜| 嫩草影院精品99| 亚洲人成网站高清观看| 一进一出好大好爽视频| 精品久久久久久成人av| 在线视频色国产色| 亚洲五月婷婷丁香| 国语自产精品视频在线第100页| 久久人妻福利社区极品人妻图片| 亚洲第一电影网av| 91麻豆精品激情在线观看国产| 成年免费大片在线观看| 国产精品综合久久久久久久免费| 一个人观看的视频www高清免费观看 | 亚洲欧美激情综合另类| 精品国产超薄肉色丝袜足j| 夜夜爽天天搞| 特级一级黄色大片| 久久久精品欧美日韩精品| 黄色a级毛片大全视频| 午夜免费成人在线视频| 欧美成狂野欧美在线观看| 变态另类成人亚洲欧美熟女| 99久久无色码亚洲精品果冻| 国产午夜精品论理片| 久久99热这里只有精品18| 99久久综合精品五月天人人| 97碰自拍视频| 久久午夜亚洲精品久久| 国产av麻豆久久久久久久| 国产精品,欧美在线| 可以免费在线观看a视频的电影网站| 此物有八面人人有两片| 亚洲aⅴ乱码一区二区在线播放 | 少妇裸体淫交视频免费看高清 | 老司机靠b影院| 国模一区二区三区四区视频 | 欧美高清成人免费视频www| 一a级毛片在线观看| 国产麻豆成人av免费视频| 国产精品1区2区在线观看.| 国产高清有码在线观看视频 | 美女免费视频网站| 好男人在线观看高清免费视频| 亚洲精品一卡2卡三卡4卡5卡| 99国产综合亚洲精品| 丁香六月欧美| 天堂动漫精品| 精品国产乱子伦一区二区三区| 精品国产美女av久久久久小说| 国产精品美女特级片免费视频播放器 | 中文字幕人成人乱码亚洲影| 免费在线观看亚洲国产| 国产爱豆传媒在线观看 | 亚洲专区字幕在线| 日韩欧美在线二视频| 国产一区二区三区视频了| 国模一区二区三区四区视频 | 在线观看舔阴道视频| 亚洲男人天堂网一区| 国产69精品久久久久777片 | 精品人妻1区二区| 99riav亚洲国产免费| 国产乱人伦免费视频| 欧美日韩亚洲综合一区二区三区_| 精品久久久久久久人妻蜜臀av| 国产一区二区在线av高清观看| 亚洲欧美日韩高清在线视频| 国产精品一及| 国产激情久久老熟女| 欧美在线黄色| 老司机福利观看| 国产三级在线视频| 亚洲精华国产精华精| 国产探花在线观看一区二区| 美女免费视频网站| 1024手机看黄色片| 淫妇啪啪啪对白视频| 亚洲全国av大片| 制服丝袜大香蕉在线| 欧美国产日韩亚洲一区| 999精品在线视频| 久久久国产精品麻豆| 91麻豆av在线| 亚洲人成网站在线播放欧美日韩| 琪琪午夜伦伦电影理论片6080| 法律面前人人平等表现在哪些方面| 国产探花在线观看一区二区| 最好的美女福利视频网| 色综合站精品国产| 老司机午夜福利在线观看视频| 国产熟女午夜一区二区三区| 中文资源天堂在线| 美女黄网站色视频| 别揉我奶头~嗯~啊~动态视频| 又黄又爽又免费观看的视频| 最好的美女福利视频网| 母亲3免费完整高清在线观看| 麻豆一二三区av精品| av中文乱码字幕在线| 亚洲国产精品成人综合色| 亚洲自偷自拍图片 自拍| 18禁美女被吸乳视频| 搞女人的毛片| 99国产精品一区二区蜜桃av| 成年版毛片免费区| 国产精品久久久久久人妻精品电影| 成年版毛片免费区| 国产精品久久视频播放| 亚洲熟女毛片儿| 久久九九热精品免费| 亚洲成人久久性| 午夜精品在线福利| 动漫黄色视频在线观看| 1024视频免费在线观看| av免费在线观看网站| 又大又爽又粗| 我的老师免费观看完整版| 欧美日韩一级在线毛片| 我的老师免费观看完整版| 女人被狂操c到高潮| 国产精品久久久av美女十八| 狂野欧美激情性xxxx| 精华霜和精华液先用哪个| 老司机福利观看| 五月伊人婷婷丁香| 首页视频小说图片口味搜索| 国产在线观看jvid| 国产成人av激情在线播放| 国产一区二区激情短视频| 欧美高清成人免费视频www| 最近最新免费中文字幕在线| 亚洲熟女毛片儿| 国产成人影院久久av| 嫩草影视91久久| xxxwww97欧美| 97人妻精品一区二区三区麻豆| 久久热在线av| 亚洲精品美女久久久久99蜜臀| 国产成人av激情在线播放| 国产精品九九99| 好看av亚洲va欧美ⅴa在| 久久久久九九精品影院| 一区二区三区激情视频| 99在线视频只有这里精品首页| 一区二区三区高清视频在线| 婷婷丁香在线五月| 一区福利在线观看| 男男h啪啪无遮挡| 欧美日韩亚洲综合一区二区三区_| 少妇熟女aⅴ在线视频| 精品国产乱码久久久久久男人| 欧美不卡视频在线免费观看 | 国产人伦9x9x在线观看| 波多野结衣高清作品| 色综合婷婷激情| 国产精品精品国产色婷婷| 日本熟妇午夜| 免费人成视频x8x8入口观看| 亚洲欧美精品综合一区二区三区| 18美女黄网站色大片免费观看| 超碰成人久久| 精品免费久久久久久久清纯| 亚洲国产精品合色在线| 国产精品av久久久久免费| 曰老女人黄片| 亚洲一码二码三码区别大吗| 一边摸一边做爽爽视频免费| 日韩有码中文字幕| 亚洲 国产 在线| 亚洲一卡2卡3卡4卡5卡精品中文| 在线观看免费视频日本深夜| 一本一本综合久久| 亚洲欧美日韩东京热| 最近视频中文字幕2019在线8| 亚洲自偷自拍图片 自拍| a级毛片在线看网站| 熟女电影av网| 色播亚洲综合网| 日本熟妇午夜| cao死你这个sao货| 国产精品乱码一区二三区的特点| 免费高清视频大片| 一区二区三区国产精品乱码| 亚洲男人天堂网一区| 精品久久久久久成人av| 久久精品国产清高在天天线| 99热这里只有精品一区 | 亚洲自偷自拍图片 自拍| 久久久国产精品麻豆| 国产激情偷乱视频一区二区| 日韩精品免费视频一区二区三区| 亚洲成人久久爱视频| 国产精品98久久久久久宅男小说| 久久精品91无色码中文字幕| 动漫黄色视频在线观看| av超薄肉色丝袜交足视频| 久久久精品大字幕| 午夜福利免费观看在线| 熟女电影av网| 十八禁人妻一区二区| 国产亚洲精品一区二区www| 男女之事视频高清在线观看| 在线观看免费视频日本深夜| 亚洲av第一区精品v没综合| 婷婷精品国产亚洲av| 国产熟女午夜一区二区三区| 免费在线观看影片大全网站| 99久久国产精品久久久| 18禁黄网站禁片免费观看直播| 国产av一区在线观看免费| 国产精品久久久久久精品电影| 国产激情偷乱视频一区二区| 深夜精品福利| 午夜日韩欧美国产| 亚洲精品粉嫩美女一区| 亚洲精品一卡2卡三卡4卡5卡| 亚洲一卡2卡3卡4卡5卡精品中文| 国产精品99久久99久久久不卡| 黄片小视频在线播放| 99国产精品99久久久久| 黄色视频不卡| 淫妇啪啪啪对白视频| 久久久精品欧美日韩精品| 国内精品一区二区在线观看| 亚洲中文av在线| 亚洲国产精品合色在线| 成年人黄色毛片网站|