青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 181, 文章 - 2, 評(píng)論 - 85, 引用 - 0
數(shù)據(jù)加載中……

實(shí)現(xiàn) Web 服務(wù)的 SOA 編程模型,第 6 部分: 不斷發(fā)展的組件模型-----實(shí)現(xiàn) SOA 的系統(tǒng)方法

與語(yǔ)言無(wú)關(guān)、基于組件的面向服務(wù)的體系結(jié)構(gòu) (SOA) 編程模型簡(jiǎn)化了實(shí)現(xiàn) Web 服務(wù)以及將其組裝到解決方案中的過(guò)程。使用編程模型,非編程人員可以在沒(méi)有掌握復(fù)雜的技術(shù)的情況下使用現(xiàn)有的 IT 資產(chǎn)。它滿足了解決方案設(shè)計(jì)人員和業(yè)務(wù)分析人員的需要,提供了更高級(jí)別的抽象來(lái)隱藏實(shí)現(xiàn)技術(shù)之間的差異,同時(shí)還提高了業(yè)務(wù)可靠性。

為什么需要基于組件的編程模型?

推動(dòng) IBM 的 SOA 編程模型的遠(yuǎn)景依賴于兩個(gè)重要的觀察結(jié)果,請(qǐng)看以下兩段引言中的精辟描述:

“根據(jù)時(shí)髦詞語(yǔ)設(shè)計(jì) (Design-by-buzzword) 是一種常見(jiàn)的情況。至少在軟件行業(yè),這種行為或多或少與缺乏對(duì)一組給定的有用體系結(jié)構(gòu)約束的理解有關(guān)。換句話說(shuō),在選擇要重用的軟件體系結(jié)構(gòu)時(shí),設(shè)計(jì)人員并沒(méi)有真正弄清楚這些體系結(jié)構(gòu)之所以好的原因?!?br />——Roy Thomas Fielding,“Architectural Styles and the Design of Network-based Software Architectures”(請(qǐng)參閱參考資料以獲得指向此研究報(bào)告的鏈接)。

這個(gè)問(wèn)題可以通過(guò)將詳細(xì)了解體系結(jié)構(gòu)約束的原因的人的經(jīng)驗(yàn)融入一組模式、編程構(gòu)件和工具來(lái)解決。

第二個(gè)重要的觀察結(jié)果同人以及人與技術(shù)的交互有關(guān):

“創(chuàng)建面向服務(wù)的體系結(jié)構(gòu) (SOA) 意味著重新考慮當(dāng)前用于構(gòu)建系統(tǒng)的實(shí)踐、組織的技能,以及團(tuán)隊(duì)成員協(xié)作的方式。面向服務(wù)的作用在于通過(guò)組裝不同的應(yīng)用程序來(lái)開(kāi)發(fā)解決方案,SOA 是體系結(jié)構(gòu)樣式,強(qiáng)調(diào)獨(dú)立服務(wù)提供者的松散耦合?!?br />——A.W. Brown 等,“Realizing service-oriented solutions with the IBM software development platform”(請(qǐng)參閱參考資料以獲得指向這篇文章的鏈接)。

基于 XML 的 Web 服務(wù)標(biāo)準(zhǔn)使人想到了基于組件的編程模型的某些方面。諸如 Web 服務(wù)互操作性 (WS-I)、Web 服務(wù)描述語(yǔ)言 (WSDL) 和 Web 服務(wù)策略 (WS-Policy) 之類的標(biāo)準(zhǔn)嘗試創(chuàng)建與平臺(tái)無(wú)關(guān)的抽象和統(tǒng)一的框架來(lái)進(jìn)行業(yè)務(wù)軟件集成。而 Web 服務(wù)的價(jià)值來(lái)源于在 SOA 中使用它們。

大多數(shù)關(guān)于 Web 服務(wù)的資料都集中于互操作性協(xié)議和服務(wù)接口及其使用。而本文把重點(diǎn)放在用于實(shí)現(xiàn)服務(wù)并將服務(wù)組裝成解決方案的編程模型上。組件模型簡(jiǎn)化了構(gòu)建和組裝服務(wù)的過(guò)程。

良好定義的組件應(yīng)該支持生態(tài)系統(tǒng)中的各種用戶角色——例如業(yè)務(wù)分析人員、集成開(kāi)發(fā)人員、適配器開(kāi)發(fā)人員和解決方案管理員——通過(guò)實(shí)例化、使用、組裝和自定義符合用戶目標(biāo)、技能和概念性框架的不同組件類型,來(lái)創(chuàng)建面向服務(wù)的應(yīng)用程序。(注意:編程人員作為專業(yè)人員和重要的軟件開(kāi)發(fā)角色仍然存在,但并非每個(gè)人都必須成為專業(yè)編程人員才能高效地使用 SOA 構(gòu)件。)

Web 服務(wù)標(biāo)準(zhǔn)中的組件模型明確地定義了組件和組件類型,以及定義和構(gòu)造組件的方式,以便由適合角色的工具重用和操作,這與我們對(duì)技術(shù)使用中人的方面的觀察結(jié)果是一致的。

基于組件的編程模型有許多好處,最顯著的好處是可以減少?gòu)?fù)雜性。沒(méi)有哪個(gè)角色需要了解實(shí)現(xiàn)功能的所有方式或所有的系統(tǒng)接口。公開(kāi)給每個(gè)角色的復(fù)雜性是有限的,而公開(kāi)給開(kāi)發(fā)人員角色的復(fù)雜性有助于他們使用適合于其任務(wù)的工具以定義良好的方式開(kāi)發(fā)解決方案。

組件模型必須是抽象的,并且與語(yǔ)言無(wú)關(guān),因?yàn)樗淖饔迷谟陔[藏技術(shù)細(xì)節(jié)和差異。

組件模型還必須簡(jiǎn)化非編程人員組裝和定制“解決方案部分”的過(guò)程。因此,與組裝和調(diào)整有關(guān)的組件(或組件集合)的所有方面必須以與語(yǔ)言無(wú)關(guān)的方式顯式地聲明,這樣無(wú)需編程人員修改源代碼就可以通過(guò)工具操作它們。我們使用 XML 來(lái)表示這些聲明。

SOA 的確切特征還有待探討,不過(guò)一些關(guān)鍵的方面已經(jīng)得到廣泛承認(rèn):

  1. SOA 是一種分布式組件 體系結(jié)構(gòu)。不管在企業(yè)內(nèi)部還是企業(yè)外部,SOA 組件都是透明的,并且可以通過(guò)一系列統(tǒng)一支持的、可互操作遠(yuǎn)程過(guò)程調(diào)用和消息傳遞協(xié)議來(lái)統(tǒng)一訪問(wèn)。接口定義標(biāo)準(zhǔn)支持開(kāi)發(fā)人員工具之間的互操作性。網(wǎng)絡(luò)上 (on the wire) 協(xié)議互操作性——相對(duì)于代碼可移植性——是 SOA 組件的中心部分,支持統(tǒng)一訪問(wèn)和平臺(tái)獨(dú)立。調(diào)用方不知道組件的基礎(chǔ)實(shí)現(xiàn)技術(shù),例如 Java? 2 Platform、Enterprise Edition (J2EE)、Microsoft? .Net 和 PHP。
  2. SOA 組件封裝功能,并支持通過(guò)業(yè)務(wù)分析人員和業(yè)務(wù)模型建模的抽象級(jí)別的重用。這使 IT 功能和它所支持的業(yè)務(wù)功能之間的映射更加直接,從而提高了可靠性。
  3. 聲明性的、計(jì)算機(jī)可處理的約定允許第三方訪問(wèn) SOA 組件提供的服務(wù)。這些約定顯式地聲明功能性特征以及非功能性(服務(wù)質(zhì)量或 QoS)特征和需求。SOA 組件使用 WSDL 記錄它們的操作。還可以使用用于 Web 服務(wù)的業(yè)務(wù)流程執(zhí)行語(yǔ)言 (BPEL4WS) 來(lái)定義組件的有效操作序列。
  4. 可以動(dòng)態(tài)地發(fā)現(xiàn)、選擇、綁定(通過(guò)其聲明性屬性)和集成(使用組合機(jī)制,例如本系列第 3 部分“Process choreography and business state machines”(developerWorks,2005 年 7 月)中描述的組合機(jī)制)SOA 組件。







組件實(shí)現(xiàn)和專用組件類型

開(kāi)發(fā)人員可以選擇使用 J2EE、PHP 或其他工具實(shí)現(xiàn)基本組件。作為一種編程模型,從根本上講,SOA 更多地關(guān)系到與組件的交互以及如何將這些交互集成到復(fù)合組件、應(yīng)用程序和解決方案。

我們的編程模型還引入了一些定義良好的組件類型,可以建模開(kāi)發(fā)人員生產(chǎn)和部署到解決方案中的常見(jiàn)構(gòu)件。其中包括 Plain Old Java Objects (POJOs)、Business Processes (BPEL4WS)、Structured Query Language (SQL) 服務(wù)、Adaptive Business Objects、通過(guò) J2EE Connector (J2C) 體系結(jié)構(gòu)資源適配器訪問(wèn)的 Customer Information Control System (CICS) 程序、使用 SAP 的業(yè)務(wù)應(yīng)用程序編程接口的應(yīng)用程序、J2EE 無(wú)狀態(tài)會(huì)話 Bean 和 IBM MQSeries? 應(yīng)用程序。

因?yàn)樵谛再|(zhì)上 SOA 組件模型是虛擬的,所以許多 SOA 組件自然支持多種實(shí)現(xiàn)技術(shù)。另一方面,不同的實(shí)現(xiàn)技術(shù)更好地適合于不同的任務(wù)。為了提高透明度,我們引入了服務(wù)組件類型的概念,每種類型都適合于具有特定技能、執(zhí)行特定任務(wù)和使用特定工具的開(kāi)發(fā)人員。對(duì)于查詢,編程人員實(shí)現(xiàn)了一個(gè) SQL 文件和一個(gè)包含一組 XQuery 語(yǔ)句的文件;對(duì)于文檔轉(zhuǎn)換,使用為此任務(wù)優(yōu)化的工具實(shí)現(xiàn) XSLT 樣式表等等。不需要知道 Web 服務(wù)、Enterprise JavaBean (EJB) 或其他組件是在部署時(shí)生成的,這是因?yàn)榭傮w結(jié)果是作為通用 SOA 組件公開(kāi)和使用的。

編程人員構(gòu)建一種適合于該任務(wù)的特定組件類型,集中于要解決的問(wèn)題和要使用的工具,而不是結(jié)果構(gòu)件。SOA 開(kāi)發(fā)工具應(yīng)該集中于開(kāi)發(fā)人員的技能和他或她理解的概念。后續(xù)文章將簡(jiǎn)要介紹一些組件類型,通過(guò)三個(gè)完全不同的示例——Java 對(duì)象、信息管理系統(tǒng) (IMS) 事務(wù)和 SQL 語(yǔ)句——演示如何將任何實(shí)現(xiàn)技術(shù)映射到公共 SOA 組件模型,同時(shí)滿足特定開(kāi)發(fā)人員的需要。






組合

雖然可以使用特定于平臺(tái)的技術(shù)實(shí)現(xiàn) SOA 組合,但是新的以 SOA 為中心的組合類型可以自己實(shí)現(xiàn),而無(wú)需轉(zhuǎn)換為另一種編程模型。

使用組合模型,可以發(fā)現(xiàn)具有所需的接口和所需的基礎(chǔ)設(shè)施 (QoS) 策略的服務(wù),并且將這些服務(wù)聚合到新的服務(wù)、模塊和解決方案中。可以組合這些新的服務(wù)。

我們的方法統(tǒng)一了創(chuàng)建和訪問(wèn)業(yè)務(wù)邏輯的范型。我們的 SOA 編程模型比現(xiàn)有的編程構(gòu)造復(fù)雜,隱藏了實(shí)現(xiàn)技術(shù)之間的不同。在這種模型中,組件組裝到模塊中,而模塊又可以組合到解決方案中。組件公開(kāi)了可以通過(guò)可尋址接口調(diào)用的接口。接口是使用 WSDL、Java 或其他語(yǔ)言描述的。實(shí)現(xiàn)可能有無(wú)法解析的對(duì)所需服務(wù)的引用,這些服務(wù)是執(zhí)行之前由連接在一起的組件提供的??梢杂山鉀Q方案集成人員或解決方案組裝人員使用適合于角色的工具進(jìn)行連網(wǎng)操作,他們可以運(yùn)用可能不為最初開(kāi)發(fā)這些組件的人所知的企業(yè)策略和企業(yè)服務(wù)總線 (ESB) 部署拓?fù)渲R(shí)來(lái)進(jìn)行工作。







在沒(méi)有進(jìn)行編程的情況下自定義

不可能始終在沒(méi)有進(jìn)行配置、自定義或調(diào)整的情況下按原樣重用服務(wù)。在需要更改時(shí),當(dāng)前的技術(shù)發(fā)展水平是修改源代碼。然而,是否能夠交付可以大量重用的組件在很大程度上取決于組件適應(yīng)其使用環(huán)境的功能。SOA 編程模型應(yīng)該支持構(gòu)建“編程人員”可以在沒(méi)有修改源代碼的情況下進(jìn)行自定義的服務(wù)和模塊。當(dāng)使用組件的編程人員與構(gòu)建組件的編程人員不在一個(gè)單位時(shí),這一點(diǎn)尤為重要。

基于組件的 SOA 編程模型提供了幾種在沒(méi)有進(jìn)行編程的情況下自定義組件的機(jī)制。

旨在重用的組件可以打包成具有可變點(diǎn) (points of variability) 的模板,在將模板放入解決方案時(shí)可以對(duì)其做一些調(diào)整。這種適應(yīng)性是我們的編程模型最重要的部分,此外,編程模型還包括規(guī)則語(yǔ)言和相關(guān)工具,用于給新的用戶提供自定義功能。

中介主要用于處理動(dòng)態(tài)消息。通常可以在沒(méi)有進(jìn)行編程的情況下組合中介。作為一個(gè)多協(xié)議構(gòu)造,企業(yè)服務(wù)總線發(fā)揮了重要的作用,可以將服務(wù)組件組合在一起進(jìn)行無(wú)縫交互,另外,還允許在消息的路徑中插入稱為中介 的組件,以在不改變現(xiàn)有端點(diǎn)的情況下代理服務(wù)之間的交互,從而在主要方面解決整個(gè)企業(yè)范圍內(nèi)的問(wèn)題,例如審核、記錄、路由、不匹配接口的適應(yīng)性、等效組件的增量替換和安全性。

SOA 編程模型的另一個(gè)好處(來(lái)源于前面提到的特性)是能夠在軟件生命周期的不同階段用一個(gè)組件替換另一個(gè)組件。通過(guò)將聲明的接口延遲綁定到支持這些接口的實(shí)現(xiàn)可以做到這一點(diǎn)。企業(yè)為什么需要替換功能單元,有許多方面的原因。其中最重要的原因可能是減少在大型企業(yè)中管理更改的困難。以增量的方式引入更改并且通過(guò)遵循定義的接口限制其影響可以提高靈活性。這種做法也適合于松散耦合,而松散耦合常常是大型組織的特征。此外,使用服務(wù)組件,有不同的技能、需求和時(shí)間安排的組可以以人力資源和系統(tǒng)資源兩方面的效率都最高的方式在 IT 基礎(chǔ)設(shè)施中協(xié)同工作,這樣企業(yè)就可以快速地響應(yīng)業(yè)務(wù)級(jí)的更改,從而使企業(yè)大大獲益。







組件定義

我們的 SOA 是由以下規(guī)范定義的:

  1. 服務(wù)規(guī)范 以組件提供和使用的一組服務(wù)的形式提供了組件的視圖。它由以下三組規(guī)范定義:
    • 接口,通常是 WSDL portTypes。
    • 策略,記錄 QoS 屬性,例如事務(wù)行為和安全性。
    • 行為描述,例如 BPEL4WS 抽象流程。另一個(gè)例子可能是統(tǒng)一建模語(yǔ)言 V2 (UML2) 狀態(tài)模型,該模型指定了哪些操作對(duì)不同的狀態(tài)和操作所引發(fā)的狀態(tài)事務(wù)是有效的。調(diào)用方可以通過(guò)狀態(tài)模型計(jì)算有效的操作序列。
  2. 服務(wù)組件實(shí)現(xiàn) 是由以下四組規(guī)范定義的:
    • 提供的服務(wù)規(guī)范。
    • 需要的服務(wù)規(guī)范。
    • 可以在組件上設(shè)置以調(diào)整或自定義的屬性。
    • 為此提供基本支持的屬性;更復(fù)雜的方案使用可變點(diǎn)和對(duì)自定義組件的外部調(diào)用。
    • 對(duì)所有實(shí)現(xiàn)實(shí)例都保持不變的容器指示(策略)。
    • 定義組件實(shí)現(xiàn)的實(shí)現(xiàn)構(gòu)件(例如 Java 類、BPEL 文檔或 XSLT 規(guī)則集)。
  3. 服務(wù)組件(實(shí)例)由以下規(guī)范定義:
    • 名稱。
    • 服務(wù)組件實(shí)現(xiàn)。
    • 實(shí)現(xiàn)的任何屬性的值,設(shè)置用于調(diào)整實(shí)例。
    • 任何服務(wù)的規(guī)范,解析實(shí)現(xiàn)需要的服務(wù)規(guī)范。它們可以是連接組件實(shí)例的“網(wǎng)絡(luò)”,也可以是在運(yùn)行時(shí)執(zhí)行以查找組件的“查詢”,所查找的組件實(shí)現(xiàn)相關(guān)接口,具有相關(guān)的 QoS 策略,并且匹配指定的行為(例如抽象流程或狀態(tài)模型)。

有兩種定義 SOA 組件的基本方法。這些定義可以通過(guò)開(kāi)發(fā)工具生成,也可以由開(kāi)發(fā)人員手動(dòng)創(chuàng)建。

第一種方法是控制文件,顧名思義,控制文件即關(guān)聯(lián)或聯(lián)接組件的所有部分的文檔。例如,控制文件可以引用 WSDL 定義(提供的接口)、實(shí)現(xiàn)組件的 Java 類(實(shí)現(xiàn)構(gòu)件)或相關(guān)的策略文檔(策略斷言)。 它們可以是對(duì)文件系統(tǒng)、類路徑、源代碼管理系統(tǒng)或 Web URL 的引用??刂莆募椒▽⒍鄠€(gè)單獨(dú)開(kāi)發(fā)的構(gòu)件聚合在一起組成組件。應(yīng)用程序開(kāi)發(fā)工具可以幫助定義控制文件。

第二種方法是使用 pragmas,指定相同信息的語(yǔ)言元素,但是包含在單個(gè)源文件的主體中。Java 方面的支持正在不斷增加(例如,JSR 175 中的 XDoclet 標(biāo)記),以用 Java 語(yǔ)言編寫這些批注部分。但是這種方法尚不支持其他等同的有效 SOA 組件實(shí)現(xiàn)技術(shù)(如 SQL 或 XQuery 語(yǔ)句集)。每種組件類型都有用于其實(shí)現(xiàn)構(gòu)件的相關(guān)源文件格式,例如 Java 文件、狀態(tài)機(jī)或 SQL 文件。IBM WebSphere? Rapid Deployment 中的批注支持可以生成所有組成包含 pragmas 的源文件中的組件的單個(gè)元素。例如,Java 源文件中的結(jié)構(gòu)化注釋指示哪些 Java 方法將成為所生成的定義組件的服務(wù)接口中的 Web 服務(wù)操作。







總結(jié)

基于組件的編程模型——由面向任務(wù)的工具和運(yùn)行時(shí)基礎(chǔ)設(shè)施支持——是快速采用 SOA 的關(guān)鍵。借助于期望的優(yōu)勢(shì)(如新的軟件重用方法),專業(yè)人員(不必是編程人員)可以在新的業(yè)務(wù)需求出現(xiàn)時(shí)使用 SOA 組件創(chuàng)建新的業(yè)務(wù)解決方案和改寫現(xiàn)有的業(yè)務(wù)解決方案。

posted on 2006-04-17 04:12 wsdfsdf 閱讀(184) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 技術(shù)文章

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            伊甸园精品99久久久久久| 亚洲欧美视频一区| 亚洲动漫精品| 亚洲国产成人不卡| 亚洲日本在线观看| 亚洲一二三四区| 久久精品伊人| 国产精品九九| 亚洲另类春色国产| 欧美精品网站| 国产一区二区三区久久精品| 亚洲裸体视频| 免费视频亚洲| 蜜桃av综合| 狠狠入ady亚洲精品| 欧美在线啊v| 午夜精品视频在线观看一区二区 | 欧美日韩一区三区四区| 亚洲男人天堂2024| 亚洲美女av黄| 亚洲欧美国产制服动漫| 国产一区二区三区成人欧美日韩在线观看 | 你懂的成人av| 国产欧美日本| 蜜桃av一区二区三区| 亚洲视频国产视频| 另类综合日韩欧美亚洲| 亚洲女人小视频在线观看| 影音先锋中文字幕一区| 欧美日韩精品免费观看视频完整| 日韩性生活视频| 欧美高清在线观看| 麻豆av一区二区三区久久| 麻豆精品一区二区综合av | 欧美sm视频| 亚洲一区国产| 亚洲久久视频| 最近看过的日韩成人| 黑人巨大精品欧美黑白配亚洲| 国产精品福利久久久| 欧美日韩国产综合一区二区| 免播放器亚洲一区| 欧美刺激性大交免费视频| 欧美在线网站| 欧美日韩精品免费观看视频| 欧美色大人视频| 欧美午夜无遮挡| 国产日韩欧美中文在线播放| 国产精品免费看| 国语自产精品视频在线看8查询8| 妖精视频成人观看www| 翔田千里一区二区| 久久看片网站| 亚洲国产精品激情在线观看| 亚洲美女网站| 久久精品一本| 国产精品久久久久久影视| 国产在线观看一区| 日韩视频欧美视频| 午夜视频在线观看一区二区三区 | 亚洲欧美日韩精品久久奇米色影视| 欧美韩日一区二区三区| 欧美激情亚洲| 99这里有精品| 久久精品国产999大香线蕉| 亚洲欧美激情诱惑| 欧美成人午夜| 亚洲视频碰碰| 亚洲三级免费电影| 另类激情亚洲| 国产一区二区在线观看免费| 欧美在线免费观看亚洲| 国产日韩av一区二区| 免费观看久久久4p| 男男成人高潮片免费网站| 亚洲性视频网站| 亚洲午夜精品17c| 日韩午夜高潮| 午夜日韩在线观看| 国产亚洲一二三区| 国产精品国产三级国产普通话三级 | 一本色道久久综合狠狠躁的推荐| 久久在线精品| 亚洲午夜女主播在线直播| 亚洲免费观看在线观看| 91久久久在线| 在线观看日韩精品| 欧美日韩中文在线观看| 久久久九九九九| 欧美日本高清| 欧美午夜www高清视频| 欧美日韩一区二区三区在线 | 亚洲欧美美女| 欧美日韩成人激情| 日韩午夜在线| 国产精品电影在线观看| 一区二区三区久久久| 欧美肥婆bbw| 欧美激情精品久久久久久黑人| 欧美一区二区| 亚洲综合色噜噜狠狠| 欧美视频在线观看 亚洲欧| 免费观看在线综合| 亚洲精品中文字| 国产女人aaa级久久久级| 美女黄色成人网| 国产一区二区中文| 亚洲国产三级| 国产精品中文在线| 亚洲区一区二| 尤物视频一区二区| 一区二区不卡在线视频 午夜欧美不卡在| 国产视频久久网| 一区二区三区精品视频| 亚洲第一精品电影| 香蕉久久夜色精品国产使用方法 | 亚洲福利在线看| 国产欧美激情| 中国成人亚色综合网站| 亚洲欧洲偷拍精品| 亚洲一区二三| 亚洲国产成人久久| 中文网丁香综合网| 在线观看国产日韩| 在线亚洲+欧美+日本专区| 国产日韩欧美综合一区| 亚洲第一中文字幕| 国产欧美精品日韩精品| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美日韩1080p| 乱人伦精品视频在线观看| 欧美日韩中文字幕在线视频| 久久人人爽人人爽| 欧美午夜精品| 国产精品亚发布| 亚洲精品国产精品国自产观看| 日韩亚洲一区二区| 亚洲成人在线网站| 欧美亚洲专区| 亚洲视频在线二区| 免费视频久久| 久久综合亚州| 欧美搞黄网站| 国产欧美va欧美va香蕉在| 亚洲精品一线二线三线无人区| 91久久国产综合久久| 欧美韩日高清| 夜夜狂射影院欧美极品| 亚洲伊人一本大道中文字幕| 欧美亚日韩国产aⅴ精品中极品| 一级日韩一区在线观看| 亚洲欧美日韩一区二区三区在线 | 影音欧美亚洲| 你懂的视频一区二区| 午夜在线视频观看日韩17c| 亚洲视频在线播放| 欧美一区二区私人影院日本| 国产香蕉97碰碰久久人人| 久久免费观看视频| 亚洲日本va在线观看| 欧美一级片一区| 亚洲第一精品福利| 欧美三级电影网| 久久国产精品网站| 亚洲国产视频直播| 欧美在线免费播放| 亚洲精品视频在线观看网站| 国产精品jizz在线观看美国| 久久av资源网| 99精品国产在热久久婷婷| 久久精品亚洲一区二区| 亚洲国产一区二区a毛片| 国产精品va在线播放| 久久裸体艺术| 亚洲无线一线二线三线区别av| 久热精品视频| 午夜精品久久久久影视| 最新亚洲电影| 国内精品久久久久久| 欧美日韩亚洲一区二区三区| 久久久精品日韩欧美| 亚洲午夜精品网| 亚洲国产精品成人精品| 久久国产精品久久精品国产| 亚洲片国产一区一级在线观看| 国产视频久久| 国产精品久久久久久久免费软件| 六月天综合网| 欧美一级日韩一级| 亚洲香蕉伊综合在人在线视看| 亚洲电影免费| 免费不卡中文字幕视频| 小黄鸭精品密入口导航| 99热免费精品在线观看| 亚洲成在人线av| 韩国一区二区在线观看| 国产欧美日韩综合| 国产精品区二区三区日本| 欧美日韩亚洲一区二区| 欧美男人的天堂|