999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種面向方面的Web服務組合的UML建模方法

2008-12-31 00:00:00唐勝群
計算機應用研究 2008年7期

摘 要:將AOP技術(shù)引入到Web服務組合中,提出了一種面向方面的Web服務組合的UML建模方法,來解決當前服務組合方法的局限性。該方法獨立于特定語言進行抽象級別建模,克服了現(xiàn)有面向方面的Web服務組合方法存在的難以理解和閱讀的問題。

關鍵詞:Web服務組合;面向方面編程;統(tǒng)一建模語言

中圖分類號:TP311.5 文獻標志碼:A

文章編號:1001-3695(2008)07-2071-04

UML modeling approach for aspect-oriented Web services composition

XU Yang, TANG Sheng-qun

(State Key Laboratory of Software Engineering, Wuhan University, Wuhan 430072, China)

Abstract:This paper presented a modeling approach for aspect oriented Web service composition with UML to address these problems, and also to address the poor understandability and maintainability existing in some other approaches for aspect oriented Web service composition.

Key words:Web service composition; aspect-oriented programming; UML

0 引言

Web服務的出現(xiàn)正改變著商業(yè)合作伙伴之間及其與客戶之間的協(xié)作方式,使企業(yè)能通過服務合成來共享資源、自動化商業(yè)流程。隨著電子商務的不斷發(fā)展以及跨企業(yè)應用的日益復雜,單個Web服務的實現(xiàn)已經(jīng)無法滿足復雜業(yè)務的需求,需要通過將多個不同業(yè)務功能的Web服務按照一定的業(yè)務邏輯組合起來,構(gòu)建復雜的組合服務,通過對組合服務的執(zhí)行,來滿足復雜的商業(yè)邏輯上的需求。Web服務組合能夠提高服務組件及基本服務的可重用性和利用率,縮短系統(tǒng)研發(fā)時間,因此成為近年來研究的熱點問題之一。

目前工業(yè)界和學術(shù)界的研究機構(gòu)已經(jīng)提出了多種Web服務組合的規(guī)范和Web服務組合的方法,總體來說可以分為兩大類,即基于工作流模型的組合和基于語義模型的組合。前者是將工作流模型應用于Web服務的組合,側(cè)重描述流程模型和數(shù)據(jù)模型兩個方面[1]。典型的基于工作流模型的服務組合的規(guī)范有BPEL、WS-CDL 和 BPML,利用這些組合規(guī)范進行服務組合,主要特征是預定義抽象的過程模型、動態(tài)選擇和綁定Web服務。基于語義模型的組合是基于語義Web服務模型,如OWL-S、WSMO和WSDL-S,其實質(zhì)是利用本體語言的豐富語義以及推理能力,實現(xiàn)Web服務的自動組合,不僅自動選擇和綁定Web服務,而且是自動創(chuàng)建抽象的過程模型。雖然Web服務組合的研究取得了很多成果,但當前的組合方法仍存在著以下兩方面的局限:

a)基于工作流模型的組合,要求根據(jù)業(yè)務邏輯預先定義好它的過程模型,因此其服務組合的執(zhí)行過程是固定的。一旦業(yè)務邏輯發(fā)生變化,組合的過程模型必須相應地重新定義,這需求將正在運行的過程停下來進行修改。然而,多數(shù)業(yè)務過程都是異步的長事務流程,不允許隨意將正在運行的業(yè)務過程停下來。而在現(xiàn)代商務應用中,企業(yè)間競爭加劇和客戶需求豐富多樣,導致業(yè)務過程變化頻繁。因此要求服務的組合能夠在運行時動態(tài)地改變,提高服務組合的柔性和適應性。

b)諸如監(jiān)控、授權(quán)認證、審計和異常處理等處理活動往往在多個業(yè)務過程中都出現(xiàn),系統(tǒng)中關于這些活動的相關邏輯也就分散在相關流程定義的多個地方或者是跨越多個組合服務的邊界。用BPEL、BPML等組合規(guī)范定義包含這些活動的業(yè)務過程時,描述這些活動的代碼,會多次重復出現(xiàn)在同一個過程的多個模塊的定義中,或者出現(xiàn)在多個不同的過程定義中,帶來代碼交織和代碼混雜[2]的問題。當需要改變這些活動代碼時,必須保證散落在所有業(yè)務過程的代碼的一致性,對組合服務的維護和重用帶來困難。

基于語義模型的組合方法可以實現(xiàn)Web服務的自動組合,組合的流程也具有柔性以及自適應性。這些方法首先需要Web服務的語義信息,由于現(xiàn)有語義Web服務模型的底層概念模型是不精確的,而且這些模型最終都需要映射到WSDL,限制了其語言的表達能力。另外,即使有了Web服務的語義信息,還需要對語義信息進行提煉,構(gòu)造一個模型,然后根據(jù)所采用的方法和模型來組合服務,隨著Web服務的發(fā)展,完成同樣的功能Web服務數(shù)目將會劇增,并且Web服務本身也具有動態(tài)性,這樣將使得模型需要經(jīng)常變化以適應Web服務的動態(tài)變化,從而導致組合效率比較低。

為了解決前面所述的組合方法存在的問題,文獻[3,4]提出了將面向方面的編程(aspect-oriented programming,AOP)[2]技術(shù)引入到Web服務組合中,將跨越組合服務的多個模塊或多個組合服務的邊界的活動,從組合服務中分離出來,單獨模塊化,并在需要時,再通過織入技術(shù)將分離出來的模塊集成到基礎程序中,從而可以實現(xiàn)服務組合的動態(tài)改變。本文基于這個思想,提出了一種基于UML的面向方面的Web服務組合的建模方法。

1 AOP概述 

軟件系統(tǒng)的規(guī)模和復雜程度越來越大,傳統(tǒng)的面向?qū)ο箝_發(fā)方法已不能很好地解決系統(tǒng)設計中存在的橫切關注點(crosscutting concern)問題,即那些橫跨系統(tǒng)中多個業(yè)務模塊的系統(tǒng)功能,如日志管理、安全認證等,其實現(xiàn)代碼往往會散布在系統(tǒng)的多個模塊中,對它們的調(diào)用也會顯式地散布于軟件系統(tǒng)中的各個地方。這種現(xiàn)象會對面向?qū)ο筌浖到y(tǒng)的封裝性帶來很大的破壞,產(chǎn)生諸如代碼交織和代碼混雜問題,導致軟件系統(tǒng)的可維護性差、開發(fā)效率低、代碼復用性差。AOP技術(shù)針對這一問題,采用關注點分離的方式,用方面(aspect)將橫切關注點封裝,在系統(tǒng)執(zhí)行過程中通過特定的機制在指定的位置將方面織入(weave)基礎系統(tǒng)中。

AOP的思想實質(zhì)是將傳統(tǒng)的按功能或按對象劃分程序模塊的方法轉(zhuǎn)換為按系統(tǒng)特征劃分系統(tǒng)模塊[5]。它涉及到一些重要的概念: 連接點(join point)、切入點(pointcut)、通知(advice)、方面(aspect)和織入(weaving)[6]。

連接點是AOP中最基本的概念之一,它是指程序執(zhí)行過程中某些特定的位置,在這些位置上可以插入需要附加的執(zhí)行邏輯。連接點可以分為兩類,即靜態(tài)連接點和動態(tài)連接點[7]。靜態(tài)連接點是指程序代碼中所有可以被命名的代碼實體,如類、結(jié)構(gòu)、命名空間等,它所關注的更多是程序代碼中的靜態(tài)結(jié)構(gòu);而動態(tài)連接點所強調(diào)的是對程序執(zhí)行過程中動態(tài)行為的捕捉,如方法或構(gòu)造方法的調(diào)用、對象的創(chuàng)建或銷毀、屬性的訪問與更改、異常處理等。

切入點用于標志連接點。通常一個切入點指的是一組連接點的集合,它被用來描述應該在哪些指定的連接點上插入所需的程序邏輯。AOP語言需要提供相應的機制來對切入點進行描述,并能根據(jù)這些描述對程序中的連接點進行匹配。對切入點的描述可以被看做是對程序運行時狀態(tài)的一種選擇操作。

通知用來表達在相關的連接點上所要插入的程序邏輯。當程序執(zhí)行到某個切入點所匹配的連接點時,與該切入點相關聯(lián)的通知會被自動執(zhí)行,無須基礎程序顯式地調(diào)用通知。該方式使得開發(fā)人員在設計原始程序時無須考慮通知的存在,而可以更加專注于關心的業(yè)務邏輯。最常見的通知類型是前通知(before advice)、后通知(after advice)和包圍通知(around advice)。前通知和后通知分別用來在連接點執(zhí)行的前后時刻插入附加的程序邏輯,包圍通知用來同時在連接點的執(zhí)行前后插入附加的程序邏輯,或完全替換掉連接點的執(zhí)行邏輯。在CaemerJ、AspectJ、AspectWerkz等語言中,還支持返回后通知(after return advice)與異常后通知(after throwing advice)等,從而使得通知功能更為強大。

方面是AOP語言最核心的概念,用來對橫切系統(tǒng)多個模塊的功能邏輯進行抽象和建模,通常封裝了前面所提到的切入點和通知,以及切入點到通知的映射等概念。

織入是實現(xiàn)AOP最重要的底層機制。所謂織入就是將方面集成到基礎程序中。織入可以分為靜態(tài)織入[6]和動態(tài)織入[8],靜態(tài)織入是指方面的織入是在程序編譯或裝載階段完成。而動態(tài)織入則是在基礎程序運行時完成,這樣方面可以熱插拔到基礎程序中,實現(xiàn)程序行為的動態(tài)改變。

近年來,針對AOP的研究在國際上越來越廣泛,其早已超出傳統(tǒng)的編程范型領域。與面向?qū)ο笙到y(tǒng)一樣,封裝、消息傳遞、動態(tài)綁定也是Web服務中的基本概念,而面向?qū)ο笾嘘P于橫切關注點分離的問題在Web服務組合中也存在,因此,AOP技術(shù)也被逐步引入到Web服務領域,來增加Web服務的靈活性和柔性。

Verheecke等人[9]采用AOP技術(shù)構(gòu)建了Web服務管理層(WSML)實現(xiàn)Web服務的選擇和集成。但Verheecke的技術(shù)沒有涉及到Web服務的組合。Courbis等人[3]和Charfi等人[4]對BPEL進行了擴展,使之支持對橫切關注點的分離,并支持Web服務組合的動態(tài)變化。其中,Charfi基于BPEL語言提出了AO4BPEL語言,利用AO4BPEL將橫跨多個組合服務邊界的Web服務,即橫切關注點,從原業(yè)務過程中分離出來,模塊化為方面。分離后的業(yè)務過程用BPEL定義,分離出來的方面在動態(tài)引擎支持下,在運行時組合到已經(jīng)定義好的BPEL過程中,從而實現(xiàn)BPEL過程動態(tài)改變,提高其柔性和適應性。AO4BPEL的方面采用XML語法定義。其中選取Web服務的操作名作為連接點,切入點描述采用XPath語言,通知是采用BPEL定義的活動,在BPEL執(zhí)行引擎上構(gòu)建了支持方面的解釋器,達到運行時織入方面的目的。目前在Web服務組合中實現(xiàn)對AOP的支持,采用的方式是擴展基礎的Web服務組合語言,如Charfi基于XML語法擴展BPEL,Ortiz則采用AspectJ語言描述方面來擴展BPEL。然而由于這些支持AOP的組合定義與特定語言緊密聯(lián)系,存在大量的繁瑣的語言本身的技術(shù)細節(jié),難以閱讀和理解,這就導致了這些組合定義的可維護性比較差。

為解決這個問題,本文采用UML建模技術(shù),使面向方面的Web服務組合的建模獨立于特定的語言或技術(shù)平臺,給面向方面的Web服務組合的定義、可視化、構(gòu)建提供支持。

2 面向方面的Web服務組合

將橫切關注點或業(yè)務變化的邏輯定義為方面,從組合服務中分離出來后,一個完整的服務組合模型將由基本的Web服務組合模型和相關聯(lián)的方面模型組成。筆者選擇統(tǒng)一建模語言(UML)[10]來描述這些模型。UML是一個標準的圖形化語言,用它描述的系統(tǒng)模型可理解性好。作為廣泛認可的建模標準,UML提供了不同類型的圖來為系統(tǒng)的靜態(tài)和動態(tài)特征建模。UML的一個重要特點是它的擴展機制(stereotype、tagged value、constraint和OCL)支持模型的語義精化。此外,UML滿足Web服務組合的要求[11,12],包括接口描述、基本的控制流模式和消息轉(zhuǎn)換;而且UML獨立于執(zhí)行語言,可以轉(zhuǎn)換為不同的執(zhí)行語言,如BPEL。

2.1 基本W(wǎng)eb服務組合 

一個Web服務是分布于網(wǎng)絡上的一個組件[13]。為了讓服務組件能夠在Internet上被訪問,服務提供者必須定義和發(fā)布這些服務組件的接口。WSDL作為標準的Web服務描述語言,將這些接口描述為端口類型(port type),每個端口類型包含了一個帶有輸入和輸出消息的操作(operation)集。一個服務組合可以認為是包含了原子服務或組合服務的工作流[13],這樣一個工作流由一個活動集組成,每個活動調(diào)用一個服務提供者提供的Web服務。因此,基本W(wǎng)eb服務組合模型可以劃分為兩個部分,即靜態(tài)部分和動態(tài)部分。前者描述Web服務的接口;后者描述業(yè)務過程的控制流和數(shù)據(jù)流。

2.1.1 靜態(tài)模型 

用UML的類圖來描述Web服務組合的靜態(tài)部分,包括它們的操作名和消息類型,如圖1所示。服務提供者提供的Web服務用帶構(gòu)造型名《Webservice》的類來描述,類的操作描述Web服務提供的操作,類操作的輸入和輸出參數(shù)映射為Web服務的input和output消息。用帶構(gòu)造型《messageType》的類來描述消息類型。

2.1.2 動態(tài)模型

基于上述靜態(tài)模型,擴展UML的活動圖的元素來定義控制流和數(shù)據(jù)流。用帶構(gòu)造型《invoke》的活動狀態(tài)來調(diào)用Web服務的操作。Invoke狀態(tài)的標記值描述了被調(diào)用的Web服務以及它的端口類型和操作。這里的操作與靜態(tài)模型中定義的Web服務的操作是對應的。同時用帶構(gòu)造型《DataTransformation》的活動狀態(tài)執(zhí)行消息的轉(zhuǎn)換,DataTransformation狀態(tài)的標記值表示消息的轉(zhuǎn)換規(guī)則。

控制流用轉(zhuǎn)換和偽狀態(tài)(decision、fork、join等)來定義。帶構(gòu)造型《message》的對象流狀態(tài)表示消息的傳遞。一個消息對象代表從一個操作的輸出而流入下一個操作的消息。一個消息對象可能需要通過DataTransformation狀態(tài)的轉(zhuǎn)換才能流入到下一個操作。這些消息對應于靜態(tài)模型中的定義的Web服務的操作的輸入和輸出消息。

2.2 方面模型

在方面模型中,每一個組合服務中的活動接點都是潛在的連接點,切入點通過指定基本組合中的服務的操作名來描述一個連接點集。通知是指切入到組合服務中的一個活動,它可以是對原子服務的調(diào)用,也可以是對組合服務的調(diào)用,通知的類型包括前(before)、后(after)和包圍(around)三類,分別表示在連接點執(zhí)行的前時刻插入、后時刻插入通知描述的活動以及替換指定的連接點的活動。方面包含了一個切入點集合和一個相關聯(lián)的通知。與AO4BPEL和Ortiz定義的方面的模型不同,本文的模型沒有完全采用AspectJ的方面模型。AspectJ的方面包含了切入點的集合和通知集合,在通知定義中關聯(lián)切入點。方面中只包含一個通知,所有切入點與該通知相關聯(lián)。這樣定義主要保證方面的組合在通知級別上實現(xiàn),避免AspectJ方面組合機制中存在的無法確定某些通知之間的執(zhí)行次序的問題[14]。

用UML給方面模型進行描述時,需要考慮以下幾個方面的要求:

a)方面要能顯示地模塊化,即方面的設計不能分散到組合的各個視圖中。基本概念如pointcut和通知應該與基本的Websevice類區(qū)分開來。

b)基本的組合應該可以獨立于方面,即能夠根據(jù)應用的語義決定目標組合中是否包含方面。

c)當方面的符號添加到基本的組合視圖中,能夠保證組合視圖的一致性。

圖2描述了方面模型的UML profile。用帶有《advice》構(gòu)造型的操作類表示通知。方面由類通過《aspect》構(gòu)造型擴展來表示。每個方面類通過binding關聯(lián)與包含連接點的Web服務類關聯(lián)。Binding關聯(lián)帶有《pointcut》注釋,來指明作為連接點的Web服務操作名和通知類型。

這樣,方面可以獨立于基本的Web服務組合進行建模,當需要在基本的組合模型中織入方面時,就在組合的靜態(tài)模型中將方面與包含連接點的Web服務關聯(lián)起來(binding)。在服務組合的視圖中加入或刪除方面的元素符號,都不會破壞原來的服務組合。基本的服務組合模型和相關聯(lián)的方面模型構(gòu)成了完整的服務組合模型。

3 案例描述

以開辦牙科診所的審批過程作為示例來進一步說明本文的組合建模方法。任何個人或企業(yè)想開辦一個牙科診所,必須向當?shù)氐南嚓P部門提交申請,只有相關部門審批通過后才能合法設立該診所。這是一個典型的行政審批過程。在此筆者將現(xiàn)實的過程作了適當簡化。其基本過程如下:

首先,診所開辦申請人向當?shù)毓ど滩块T申請診所名稱的預登記。工商部門提供了一個Web服務來完成企業(yè)名稱預登記,核查預登記的名稱是否合法或有否重名;企業(yè)名稱通過預登記后,申請者須將相關資料分別提交給當?shù)匦l(wèi)生部門和公安部門。由衛(wèi)生部門審核申請者是否具有行醫(yī)資格,這一個環(huán)節(jié)是整個過程的關鍵,如果審核通過就向申請者發(fā)放醫(yī)療機構(gòu)設置和執(zhí)行許可。同時,公安部門檢查申請者的行醫(yī)場所是否滿足消防安全的要求,通過后發(fā)放消防安全許可。通過衛(wèi)生部門和公安部門的審核后,申請人再次向工商部門申請正式的營業(yè)執(zhí)照。以上是基本的審批過程。為完成這一基本過程,必須將工商部門、衛(wèi)生部門和公安部門提供的Web服務組合起來。

圖3、4分別顯示了該組合靜態(tài)模型和動態(tài)模型。

圖3所示的類圖中,衛(wèi)生部門提供的Web服務HeathDe-partmentService包含了多個帶輸入/輸出參數(shù)的操作。操作CheckIatricalQualification的輸入?yún)?shù)對應該操作輸入消息ApplicationInfo,輸出參數(shù)對應于輸出消息Confirmation。ApplicationInfo消息和Confirmation消息類型分別為IatricalQualification和CheckResponse。

圖4的活動圖描述了審批過程的控制流和數(shù)據(jù)流。其中第一個invoke活動Pre-register for clinic name調(diào)用BusinessLicenseService服務的registerName操作,輸出消息PreRegisterResponse包括申請者預登記的企業(yè)名稱,申請者預登記的企業(yè)名稱將作為活動check iatrical qualification的輸入,這需要實施DataTransformation活動將預登記的企業(yè)名稱轉(zhuǎn)換為ApplicationInfo的一部分。圖4中每個活動的標記值指明了被選擇的Web服務及其操作。

上面的基本過程執(zhí)行一段時間后,當?shù)氐募o律監(jiān)察部門要求,衛(wèi)生部門的醫(yī)療資格認證環(huán)節(jié)必須在五個工作日內(nèi)完成。為此,監(jiān)察部門準備在基本過程中添加一個監(jiān)督的活動,用來檢查醫(yī)療資格認證活動執(zhí)行的實際工期是否達到要求。要滿足監(jiān)察部門的要求,一種方法是將正在運行的基本審批過程停下來修改,再部署運行。但審批過程是一個場事務過程,而且涉及眾多的申請者和審批人員,不可能停止正在運行的過程。因此要求監(jiān)督服務能熱插拔到基本過程中。

對于這種需要熱插拔到基本過程中的模塊,將它定義為方面。監(jiān)督方面的定義如圖5所示。方面MonitorASP將應用到HealthDepartmentService服務,它包含一個通知操作record,該操作將被織入到調(diào)用HealthDepartmentService服務的操作checkIatricalQualification的活動check iatrical qualification之后。同樣地,MonitorASP將應用到BusinessLicenseService服務,record將被織入到調(diào)用操作registerName之后。通過計算record記錄的這兩個時間差,就獲得了醫(yī)療資格認證環(huán)節(jié)實際花費的天數(shù)。這樣,需要熱插拔的方面被顯示地模塊化,并可以獨立于基本組合進行定義,并通過binding 與基本組合行關聯(lián),最終獲得了完整的服務組合

模型。

4 結(jié)束語 

在本文中提出了一個面向方面的Web服務組合建模的方法,該方法基于UML建模技術(shù),獨立于特定的語言或技術(shù)平臺。服務組合模型由基本組合模型和面向服務的方面模型組成。其中基本組合分為靜態(tài)部分和動態(tài)部分,分別采用UML的類圖和活動圖進行定義。將服務組合中需要熱插拔的行為特性定義為方面,通過方面模型與基本組合模型的綁定,最終獲得完整的組合模型。今后,筆者將關注如何將UML的組合模型轉(zhuǎn)換為其他特定的模型以及如何轉(zhuǎn)換為可執(zhí)行的組合語言,轉(zhuǎn)換規(guī)則是實現(xiàn)這些轉(zhuǎn)換的關鍵。

參考文獻:

[1] LEYMANN F,ROLLER D,SCHMIDT M T.Web services and business process management[J].IBM System Journal,2002,41(2):198-211.

[2]KICZALES G,LAMPING J,MENDHEKAR A,et al.Aspect-oriented programming[C]//Proc of ECOOP’97,Lecture Notes in Computer Science.Berlin:Springer-Verlag,1997:220-242.

[3]COURBIS C,F(xiàn)INKELSTEIN A.Towards aspect weaving applications[C]//Proc of the 27th International Conference on Software Engineering (ICSE2005).2005:69-77.

[4]CHARFI A,SCHMELING B,HEIZENREDER A,et al.Secure and transacted Web service compositions with AO4BPEL[C]//Proc of European Conference on Web Services (ECOWS’06).2006:23-34.

[5]高海洋,陳平.AOP綜述[J].計算機科學,2002,29(10):133-135.

[6]KICZALES G,HILSDALE E,HUGUNIN J,et al.An overview of AspectJ[C]//Proc of ECOOP.2001:327-353.

[7]SPINCZYK O,LOHMANN D,URBAN M.AspectC++:an AOP extension for C++ [EB/OL].(2005-05)[2007-06-29].http://www.aspectc.org/fileadmin/publications/sdj-2005-en.pdf.

[8]BOCKISCH C,HAUPT M,MEZINI M,et al.Virtual machine support for dynamic join points[C]//Proc of the 3rd AOSD Conference.2004:83-92.

[9]VERHEECKE B,CIBRAN M.AOP for dynamic configuration and management of Web services[C]//Proc of International Conference on Web Services.2003:137-151.

[10]OMG.Unified modeling language(UML)version 2.0[S/OL].http://www.uml.org/.

[11]SKOGAN D,GRNMO R,SOLHEIM I.Web service composition in UML[C]//Proc of the 8th IEEE International Enterprise Distributed Object Computing Conference.2004:47-57.

[12]THNE S,DEPKE R,ENGELS G.Process-oriented,flexible composition of Web services with UM[C]//Proc of ER-Workshop on Conceptual Modeling Approaches for e-Business,Lecture Notes in Computer Science.Berlin:Springer-Verlag,2002:390-401.

[13]PAPAZOGLOU M.Service-oriented commuting:concepts,characte-ristics and directions[C]//Proc of the 4th International Conference on Web Information Systems Engineering.2003:3-12.

[14]LOPEZ H R,BATORY D,LENGAUER C.A disciplined approach to aspect composition[C]//Proc of ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation.2006:68-77.

注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。”

主站蜘蛛池模板: 这里只有精品在线| 就去吻亚洲精品国产欧美| 香蕉视频在线精品| 国产国语一级毛片| 无码内射中文字幕岛国片| 操国产美女| 国产亚洲美日韩AV中文字幕无码成人| 国产精品青青| 人人91人人澡人人妻人人爽| 国产精品色婷婷在线观看| 69免费在线视频| 亚洲无码电影| 成人亚洲天堂| 国产va视频| 人妖无码第一页| 日韩精品一区二区深田咏美| 欧亚日韩Av| 91精品国产福利| 女人毛片a级大学毛片免费| 日韩小视频在线观看| 亚洲AV无码一二区三区在线播放| 国产精品分类视频分类一区| 久操线在视频在线观看| 无遮挡国产高潮视频免费观看 | 一区二区午夜| 国产精品对白刺激| 婷婷综合在线观看丁香| 国产精品私拍99pans大尺度| 国产精品不卡片视频免费观看| 无码日韩视频| 午夜精品区| 美女裸体18禁网站| 久久国产亚洲偷自| 一区二区欧美日韩高清免费| 国产精品男人的天堂| 亚洲久悠悠色悠在线播放| 久久一日本道色综合久久| 亚洲精品欧美日本中文字幕| 无码中字出轨中文人妻中文中| 秋霞午夜国产精品成人片| 精品人妻无码中字系列| 亚洲一区二区三区香蕉| 国产精品太粉嫩高中在线观看| 亚洲精品第一页不卡| 狠狠干综合| 无码高潮喷水在线观看| 精品在线免费播放| 国产亚洲高清视频| 91破解版在线亚洲| 在线免费观看a视频| 91精品国产91欠久久久久| V一区无码内射国产| 四虎永久免费地址| 中文无码伦av中文字幕| 国产精品jizz在线观看软件| 亚洲视频在线观看免费视频| 尤物精品视频一区二区三区| 国产精品午夜电影| 国产精品lululu在线观看| 国产日韩欧美精品区性色| 欧美日韩一区二区三| 伊人精品成人久久综合| 亚洲中文久久精品无玛| 久久男人资源站| 老熟妇喷水一区二区三区| 在线免费a视频| 欧洲一区二区三区无码| 日韩在线视频网| 麻豆精品国产自产在线| 久久免费看片| 国产高清免费午夜在线视频| 国产成人欧美| 国产一级做美女做受视频| 国产精品美女免费视频大全| 青青草综合网| 国产成人亚洲精品色欲AV | 人妻一本久道久久综合久久鬼色| 色亚洲成人| 亚洲综合经典在线一区二区| 一级成人欧美一区在线观看 | 88av在线| 九九这里只有精品视频|