使用查詢模板來將查詢與數據操作相匹配的制作方法

            文檔序號:6445237閱讀:244來源:國知局
            專利名稱:使用查詢模板來將查詢與數據操作相匹配的制作方法
            技術領域
            本發明涉及使用查詢模板來將查詢與數據操作相匹配。背景如今的信息技術人員常常使用具有η層(n-tier)、比如3層架構的數據檢索系統。 通過將不同層分開,每個層都可以彼此獨立地被管理、升級和使用。典型的三層數據檢索系統可以包括前層、中間層和后層。前層通常與用戶對接并且可以接收和/或生成針對數據的查詢。中間層通常處理從前層接收到的查詢并且將其翻譯成后層可以處理的形式。后層通常由如下各項的某種組合構成響應諸如查詢或所存儲的過程之類的數據操作的數據庫服務器;以及響應web服務操作的web服務。具體而言,中間層通常將從前層接收到的查詢翻譯成數據庫或web服務操作(在此統稱“數據操作”),這些操作由后層來執行以獲得數據。然后,中間層將所獲得的數據發送回前層。因此,中間層與諸如客戶端計算機之類的前層、以及例如一個或多個數據庫服務器或web服務之類的后層對接。然而,由中間層用于將從前層接收到的查詢翻譯成可由后層執行的數據操作的典型方案相當麻煩。典型的翻譯技術僅能使用前層查詢與數據操作的一對一匹配。例如,典型的方案可以直接將一個前層查詢翻譯成一個數據操作。結果,前層查詢如果有的話也只能具有極少的變型,由此限制了其功能和效用性。此外,這些典型的方案要求前層使用可由中間層使用一對一映射容易地翻譯的受限和嚴格的句法來呈現查詢。結果,典型的方案可能不能補償前層查詢中的任何變型。事實上,這些方案限制了前層編寫具有任何變型的查詢的能力。即使嘗試給前層在編寫查詢方面賦予更多靈活性的方案仍然使用查詢與數據操作之間的受限和不靈活的映射。

            發明內容
            提供本概述以便以簡化形式介紹將在以下的具體實施方式
            中進一步描述的一些概念。本概述并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。此外,注意到本發明不限于在詳細描述和/或本文的其它章節中所述的特定實施例。本文呈現這些實施例僅用于說明性的用途。基于本文所包含的描述,其它實施例對于相關領域的技術人員將是顯而易見的。在此描述了用于使用查詢模板將查詢與數據操作進行匹配的系統和方法。根據某些實施例,這樣的系統和方法可以由三層數據檢索系統的中間層來實現以選擇對應于查詢的數據操作。從前層接收到的查詢可以訪問后層中的數據服務。數據操作的選擇是通過將查詢與同每個數據操作相關聯的查詢模板相匹配來進行的。每個數據操作的查詢模板都包括對查詢的代數描述,這些查詢每個都可被相應數據操作滿足。然后,對數據服務執行所選數據操作以獲得數據,這些數據然后被提供給前層。在一些實施例中,可以由中間層創建執行計劃以用于滿足該查詢。該執行計劃可以包括所選數據操作和后處理步驟。可以將后處理步驟應用于所獲得的數據以滿足該查詢。然后,經過后處理的數據被提供給前層。下面將參考各個附圖,詳細描述本發明的進一步特點和優點,以及本發明的各實施例的結構和操作。值得注意的是,本發明不僅限于此處所描述的特定實施例。本文呈現這些實施例僅用于說明性的用途。基于本文所包含的描述,其它實施例對于相關領域的技術人員將是顯而易見的。


            合并在此并作為說明書一部分的附圖與說明書一起示出了本發明的實施例,且進一步用于解釋本發明的原理的作用,并且使相關領域的技術人員能夠實現并使用本發明。圖I是根據一實施例的示例性三層數據檢索系統的框圖,該系統被配置為使用查詢模板將查詢與數據操作相匹配。圖2是根據一實施例的示例性三層數據檢索系統的詳細框圖,該系統被配置為使用查詢模板將查詢與數據操作相匹配。圖3描繪了根據一實施例的使用查詢模板將查詢與數據操作相匹配的數據檢索方法的流程圖。圖4描繪了根據一實施例的使用查詢模板將查詢與數據操作相匹配的方法的另
            一流程圖。圖5示出了可用于實現根據一實施例的用于使用查詢模板將查詢與數據操作相匹配的方法的示例性聯網計算機系統的框圖。當結合其中相同的參考字符標識對應的元素的附圖時,本發明的特征和優點將從以下闡述的詳細描述中變得更加顯而易見。在附圖中,相同的參考標號一般指相同的、功能上相似的和/或結構上相似的元素。其中元素第一次出現的附圖由對應的參考標號中最左側的數字指示。
            具體實施例方式I.介紹以下詳細描述參考示出本發明的示例性實施例的附圖。但是,本發明的范圍不限于這些實施例,而是由所附權利要求書定義。因此,諸如所示實施例的修改版本之類的在附圖所示之外的實施例仍然由本發明所包含。本說明書中對“一個實施例”、“實施例”、“示例實施例”等的參考,指的是所述實施例可包括具體的特征、結構或特點,但是每個實施例不一定包括該具體的特征、結構或特點。此外,這些短語不一定指相同的實施例。此外,當結合實施例描述具體特征、結構或特性時,應當理解在相關領域的技術人員的知識范圍內能夠結合其他實施例來實現具體特征、 結構或特性,無論是否被顯式地描述。在此描述了一種用于使用查詢模板將查詢與數據操作進行匹配的系統。根據某些實施例,這樣的系統可以由η層數據檢索系統(比如三層數據檢索系統)的中間層來實現以選擇對應于查詢的數據操作。從前層接收到的查詢可以訪問后層中的數據服務。數據操作的選擇是通過將查詢與同每個數據操作相關聯的查詢模板相匹配來進行的。每個數據操作的查詢模板都包括對查詢的代數描述,這些代數描述每個都可被相應數據操作滿足。使用與每個數據操作相關聯的查詢模板將有利地允許將多種查詢與數據操作相匹配。在某些實施例中,可以使用具有任選算子以及可從查詢中提取出的算子和值的查詢模板來提供附加的靈活性。然后,針對數據服務執行所選數據操作以獲得數據,這些數據然后被提供給前層。在一些實施例中,可以由中間層創建執行計劃以用于滿足該查詢。該執行計劃可以包括所選數據操作和一個或多個后處理步驟。可以針對數據服務執行所選數據操作以獲得僅僅部分地滿足該查詢的數據。然后,可以將后處理步驟應用于所獲得的數據以基本上完全滿足該查詢。然后,經過后處理的數據被提供給前層。示例性數據檢索系統圖I是示例性的三層數據檢索系統104的框圖100,該系統被配置為使用查詢模板將查詢與數據操作相匹配。圖I的框圖100示出了一個或多個用戶102以及數據檢索系統 104。用戶102可以與數據檢索系統104對接。例如,用戶102可以向數據檢索系統104提出查詢。數據檢索系統104可以處理該查詢并且比如通過針對數據服務執行該查詢來將該查詢的結果返回給用戶102。在一個實施例中,用戶102可以包括使用個人計算機或其他計算系統或設備的人。用戶102還可以致使應用被數據檢索系統104的前層106執行以生成查詢。數據檢索系統104可以使用諸如三層架構之類的η層架構來實現。數據檢索系統 104可以包括前層106、中間層108和后層110。在一個實施例中,三個層106、108和110可以是在單個計算系統或設備上實現的邏輯層(亦稱層次(layer))。在另一實施例中,數據檢索系統104的三個層106、108和110中的一個或多個可以每個都使用單獨的計算系統或設備來實現。在此處所呈現的各個實施例和示例中,描述了三層數據檢索系統104。然而,示例性實施例的范圍不限于三層數據檢索系統。例如,可以使用另一種類型的具有更多邏輯和/ 或物理層的η層數據檢索系統。在一個實施例中,前層106可以包括允許用戶編寫或選擇查詢的用戶界面,比如圖形用戶界面(⑶I)。在另一實施例中,前層106可以執行生成查詢的應用。中間層108可以包括查詢處理邏輯,該查詢處理邏輯處理從前層106接收到的查詢。中間層108可以比如通過將查詢與同每個數據操作相關聯的查詢模板進行匹配來選擇與該查詢相對應的一個或多個數據操作。用于選擇與查詢相對應的數據操作的實施例將在后面予以描述。然后,中間層108將所選數據操作傳遞回后層110以供執行。后層110例如可以包括數據庫服務器以及與其相關聯的一個或多個數據庫、或者一個或多個web服務,但是這些實施例不旨在為限制性的。后層110執行所選數據操作以獲得數據并且然后將所獲得的數據傳遞給中間層108。中間層108可以對所獲得的數據執行一個或多個后處理功能以便滿足該查詢。用于選擇或標識出后處理功能以滿足查詢的實施例將在后面予以描述。然后,中間層108將所獲得和/或經過后處理的數據返回給前層106。由前層106實現的諸如圖形用戶界面(⑶I)之類的界面可以向用戶102呈現所獲得和/或經過后處理的數據。而且,最初在前層106上請求該數據的應用(例如通過生成該查詢)可以使用所獲得和/或經過后處理的數據。在實施例中,數據操作可以以各種方式基于查詢來選擇。例如,圖2是根據一實施例的示例性三層數據檢索系統200的詳細框圖100,該系統被配置為使用查詢模板將查詢與數據操作相匹配。數據檢索系統200包括請求實體202、中間層204和數據服務206。請求實體202是諸如圖I的前層106之類的前層的示例,并且可以與用戶102對接。中間層 204是圖I的中間層108的示例。數據服務206是諸如圖I的后層110之類的后層的示例。A.請求實體請求實體202旨在寬范圍地表示能夠生成查詢并將其提供給中間層204的任何系統或設備。在一個實施例中,用戶可以與在請求實體202上執行的應用交互以便生成該查詢。例如,用戶可以與在web瀏覽器的上下文中執行的應用交互,例如在該上下文中,請求實體202包括該應用和該web瀏覽器。該應用可以致使web瀏覽器生成統一資源位置(URL) 形式的查詢。然后,URL形式的查詢可以被轉換成可由諸如Windows通信基礎(WCF)服務組件之類的web服務組件提供給中間層204的形式。然后,該查詢被請求實體202提供給中間層204。在另一實施例中,請求實體202可以執行在運行時自動生成查詢的應用。例如,該應用可以包括在該應用的開發期間使用C、C++、C#、Java和/或本領域已知的任何其他編程語言被編寫(即硬編碼)到該應用中的查詢。在該應用的編譯期間,被硬編碼的查詢可以被自動轉換成可提交給中間層204的形式。在經編譯的應用的執行期間,該查詢然后可以按照需要自動被提交給中間層204以履行該應用的功能。在另一實施例中,請求實體202可以執行允許用戶在運行時動態地編寫查詢以及將其提交給中間層204的應用。構思了被請求實體202用于生成查詢的又一方法,并且示例性實施例的范圍不限于上述示例。中間層204以下面將描述的方式來處理從前層202接收到的查詢以從數據服務 204獲得數據并且將包括所獲得數據的查詢結果返回給請求實體202。然后,請求實體202 可以比如通過經由合適界面向用戶(比如用戶102)呈現查詢結果和/或將該查詢結果用在生成該查詢的應用中來使用該查詢結果。由中間層204所接收的查詢可以使用諸如下列用于呈現查詢的各種協議中的一種或多種來表達標準查詢語言(SQL)、語言集成查詢(LINQ)、可擴展標記語言查詢(XML查詢或XQuery)等等。在此處所呈現的各個實施例和示例中,描述了 LINQ形式的查詢,但是示例實施例的范圍在此方面不受限。在一個實施例中,該查詢可以使用本領域已知的諸如LINQ表達式樹之類的數據結構來表示。例如,在一個實施例中,該查詢被表示成LINQ表達式樹,該LINQ表達式樹包括指向該查詢的根節點和連接到根節點的一個或多個子節點,所述節點包含該查詢的主體和/或參數。然而,這僅僅是一個示例,并且可以使用其他數據結構和形式來表示查詢。B.中間層如圖2進一步示出的那樣,中間層204包括多個互連的組件,包括請求處理器 208、查詢規范化器210、查詢匹配器212、目錄214以及結果組裝器216。這些組件例如可以包括在單個計算設備上執行的軟件模塊、或者可替代地包括分布在單獨但相連接的計算設備間并在所述計算設備上執行的軟件模塊。中間層204從請求實體202接收查詢。中間層204以下面所描述的方式處理該查詢,其中這樣的處理包括從固定的一組與該查詢相對應的數據操作中選擇一個或多個數據操作。中間層204針對數據服務206執行所選數據操作,并且響應于所選數據操作的執行而從數據服務206接收數據。中間層204被配置為向請求實體202返回包括所獲得的數據的查詢結果。I.請求處理器請求處理器204從請求實體202接收查詢。請求處理器208將該查詢轉發給查詢規范化器210用于將對其應用規范化過程。查詢規范化器向請求處理器208返回該查詢的經規范化的版本(在此稱為經規范化的查詢)。然后,請求處理器208將經規范化的查詢轉發給查詢匹配器212。查詢匹配器212向查詢處理器208返回執行計劃,其中該執行計劃包括要針對數據服務206來執行的基于經規范化查詢所選擇的一個或多個數據操作。然后, 請求處理器208將執行計劃轉發給結果組裝器216。結果組裝器216針對數據服務206執行所選數據操作以獲得數據。結果組裝器216將包括所獲得數據的查詢結果傳送給請求處理器208。然后,請求處理器208將從結果組裝器216接收到的包括所獲得的數據的查詢結果轉發給請求實體202。在一個實施例中,由查詢匹配器212所生成的執行計劃除了將要針對數據服務 206執行的所選數據操作以外還包括一個或多個后處理功能。這些后處理功能將對從數據服務206獲得的數據執行,以滿足該查詢。根據該實施例,請求處理器208將包括后處理功能和數據操作的執行計劃轉發給結果組裝器216。2.查詢規范化器查詢規范化器210通過生成查詢的符合某個標準或規范查詢形式的表示來對從請求處理器208接收到的查詢進行規范化。所生成的表示在此被稱為經規范化的查詢。 該經規范化的查詢然后被返回給請求處理器208。通過執行規范化功能,查詢規范化器 210保證查詢匹配器212將針對請求相同數據但以不同形式表達的等價查詢返回一致的結果(即將選擇相同的一個或多個數據操作)。可由查詢規范化器210在查詢被表達成LINQ表達式時所執行的示例性規范化操作可以包括對二進制算子的表達式進行重排 (reorder),使得這些表達式被一致地處理,或者將連續過濾(例如Where ())調用合并成單個調用,將其聯合成聯合(進行與(AND)運算)形式。如果查詢規范化器210確定從請求處理器208所接收到的查詢不需要被修改為標準或規范形式,則被查詢規范化器210傳遞回請求處理器208的經規范化的查詢可以與原始查詢相同。3.查詢匹配器查詢匹配器212從請求處理器208接收經規范化的查詢。查詢匹配器212被配置為通過將經規范化的查詢與同每個數據操作相關聯的查詢模板進行匹配來從固定的一組數據操作中選擇與經規范化的查詢相對應的一個或多個數據操作。在一個實施例中,查詢匹配器212創建包括所選數據操作的執行計劃。可以針對數據服務(例如數據服務206) 執行所選數據操作以獲得完全滿足經規范化的查詢的數據。在另一實施例中,查詢匹配器 212創建包括所選數據操作和一個或多個后處理步驟的執行計劃。根據該實施例,針對數據服務206所執行的所選數據操作獲得僅僅部分滿足經規范化的查詢的數據。然后,可以將后處理步驟應用于所獲得的數據以完全滿足經規范化的查詢。根據兩個實施例,執行計劃被傳送給請求處理器208以用于轉發給結果組裝器216。如上所述,查詢匹配器212基于經規范化的查詢從固定的一組數據操作中選擇數據操作。具體而言,查詢匹配器212訪問存儲一組查詢模板的目錄214,其中每個查詢模板都與該固定的一組數據操作中的數據操作相關聯。每個查詢模板都包括查詢的可被相關聯的數據操作滿足的代數描述。然后,查詢匹配器212基于與每個數據操作相關聯的查詢模板來選擇與經規范化的查詢相匹配的一個或多個數據操作。在一個實施例中,該目錄可以包括關于數據操作的附加信息,例如相關聯的成本估計。查詢匹配器212可以利用該信息來使所選數據操作的成本最小化。為了促進匹配,可以使用與用于表示經規范化的查詢的語言或格式基本類似的語言或格式來指定每個查詢模板。例如,在使用LINQ表達式來表達經規范化的查詢的實施例中,每個查詢模板也可以被表達成LINQ表達式。此外,在使用LINQ表達式樹來表達經規范化的查詢的實施例中,每個查詢模板都可以由LINQ表達式樹來表達。查詢匹配器212從與查詢模板相關聯的固定的一組數據操作中選擇被認為與經規范化的查詢最佳地匹配的那些數據操作。根據某些實施例,查詢匹配器212通過如下方式來執行該功能評估表示經規范化的查詢的LINQ表達式或LINQ表達式樹與表示與數據操作相關聯的查詢模板的多個LINQ表達式或LINQ表達式樹中的每個之間的相似性。這例如可以包括評估表達經規范化的查詢的LINQ表達式樹的節點的內容與同每個數據操作相關聯的LINQ表達式樹的相應節點的內容之間的相似性。相關領域內的技術人員將理解, 還可以使用多種用于匹配樹結構的可替代方法。此外,在某些實施例中,查詢匹配器212可以使用一組規則來驅動匹配過程。查詢模板代數描述中的附加的查詢模板算子可以允許查詢匹配器212匹配更寬的一組經規范化的查詢并且從其中提取出信息。現在將提供由查詢匹配器212所執行的匹配過程的示例。將參考使用LINQ表達式來表示經規范化的查詢和查詢模板的實施例來描述這些示例。然而,示例性實施例的范圍在此方面不受限。例如,下面所述的經規范化的查詢和查詢模板還可以使用LINQ表達式樹來表示,并且查詢匹配器212可以使用與所述過程類似的選擇過程。例如,經規范化的查詢可以由如下LINQ表達式來表示[Customers],其旨在從數據服務206獲得所有顧客的列表。查詢匹配器212可以接收在上面被規范化的以所述形式二者任一和/或作為LINQ表達式樹的查詢。查詢匹配器212可以將經規范化的查詢與存儲在目錄214中的每個查詢模板相比較。這樣的查詢模板可以包括用于如下數據操作的查詢模板List<Customer>GetAllCustomers(),其中相關聯的查詢模板是如下形式的LINQ表達式GetAlICustomers:[Customers]。根據上面的示例,查詢匹配器212可以基于經規范化的查詢的[Customers] LINQ表達式與同List〈Customer>GetAlICustomers O數據操作相關聯的查詢模板的 GetAllCustomers: [Customers]LINQ表達式的比較來從固定的一組數據操作中選擇 List〈Customer>GetAl ICustomers O數據操作。在該示例中,當針對數據服務206執行所選數據操作List〈Customer>GetAllCustomers O時,將返回滿足該經規范化的查詢的數據。 因此,根據該示例,查詢匹配器212可以從固定的一組數據操作中選出可以針對數據服務 206來執行的單個數據操作以滿足經規范化的查詢[Customers]。應當注意,在某些實施例中,查詢匹配器可以從固定的一組數據操作中選擇在針對數據服務206執行時將滿足經規范化的查詢的兩個或更多個數據操作。
            i.后處理功能在一個實施例中,查詢匹配器212可以從固定的一組數據操作中選擇僅部分滿足經規范化的查詢的數據操作。換言之,響應于所選數據操作的執行而從數據服務206所返回的數據將不完全滿足經規范化的查詢。例如,所返回的這樣的數據可以包括比經規范化的查詢本打算獲得的數據更多的數據和/或以與經規范化的查詢所指定的順序不同的順序所存儲的數據。在一個實施例中,查詢匹配器212可以標識出一個或多個后處理功能,這些后處理功能將被結果組裝器216應用于通過針對數據服務執行所選數據操作所獲得的數據。這些后處理功能可以被標識為執行計劃的如下部分該部分與所選數據操作的標識或描述一起由查詢匹配器212提供給查詢處理器208。舉例來說,經規范化的查詢可以由如下LINQ表達式來表示[Customers]. Where (c = > c. ID = = “MSFT” ),其旨在從數據服務206獲得具有顧客標識符“MSFT”的所有顧客的列表。查詢匹配器212可以接收在上面被規范化的以所述形式二者任一和/或作為LINQ表達式樹的查詢。查詢匹配器212可以將經規范化的查詢與存儲在目錄214中的每個查詢模板相比較。 這樣的查詢模板可以包括用于如下數據操作的查詢模板List<Customer>GetAllCustomers(),其中相關聯的查詢模板是如下形式的LINQ表達式GetAlICustomers:[Customers]。根據上面的示例,查詢匹配器212可以基于經規范化的查詢的[Customers]. Where (c = > c. ID = = ’^ISFT”)表達式與同 List〈Customer>GetAl ICustomers O 數據操作相關聯的查詢模板的GetAllCustomers: [Customers]LINQ表達式的比較來從固定的一組數據操作中選擇List〈Customer>GetAllCustomers O數據操作。在該示例中,當針對數據服務206執行所選數據操作List〈Customer>GetAllCustomers O時,將返回將不完全滿足該經規范化的查詢的數據。因此,查詢匹配器212可以標識出為了滿足經規范化的查詢將由結果組裝器216對從數據服務206獲得的數據執行的一個或多個后處理功能。根據該示例,所標識出的后處理功能可以對基于所選數據操作List〈Customer>GetAllCustomers O 的執行對從數據服務206獲得的數據進行過濾,以生成該數據的包含具有顧客標識符 “MSFT”的顧客的列表的子集,由此滿足該經規范化的查詢。在另一示例中,經規范化的查詢可以由如下LINQ表達式來表示[Customers]. Where (c = > c. ID = = “MSFT” ). SelectMany (c = > c. Orders),其旨在從數據服務206獲得具有顧客標識符“MSFT”的所有顧客的所有訂單的列表。查詢匹配器212可以接收在上面被規范化的以所述形式二者任一和/或作為LINQ表達式樹的查詢。查詢匹配器212可以將經規范化的查詢與存儲在目錄214中的每個查詢模板相比較。這樣的查詢模板可以包括用于如下數據操作的查詢模板List<Customer>GetAllCustomers ()以及List〈Customer>GetAlIOrders O其中相關聯的相應查詢模板是如下形式的LINQ表達式GetAlICustomers: [Customers],以及GetAllOrders:[Orders]
            根據上面的示例,查詢匹配器212可以基于經規范化的查詢的[Customers]. Where (c = > c. ID = = “MSFT”)· SelectMany (c = > c. Orders) LINQ 表達式與同 List<Customer>GetA110rders ()數據操作相關聯的查詢模板的 GetAllOrders: [Orders] LINQ表達式的比較來從固定的一組數據操作中選擇List〈Customer>GetA110rders O數據操作。例如,查詢匹配器212可以基于若干匹配因素來在該固定的一組數據操作中的其他數據操作的范圍內選擇List〈Customer>GetA110rders O數據操作,所述匹配因素包括:與該數據操作相關聯的查詢模板的LINQ表達式如何緊密地匹配經規范化的查詢的LINQ表達式。在該示例中,當針對數據服務206執行所選數據操作GetAllOrders: [Orders]時,將返回將不完全滿足該經規范化的查詢的數據。因此,查詢匹配器212可以標識出為了滿足該查詢將由結果組裝器216對從數據服務206獲得的數據執行的一個或多個后處理功能。根據該示例,所標識出的后處理功能可以對基于所選數據操作GetAllOrders: [Orders]的執行從數據服務206獲得的數據進行過濾,以獲得該數據的包含具有顧客標識符“MSFT”的顧客的列表的所有訂單的子集,由此滿足該經規范化的查詢。ii.指示任選性的查詢模板算子在一個實施例中,查詢匹配器212可以將經規范化的查詢與包括指示任選性的算子的查詢模板相比較。查詢匹配器212查明具有指示任選性的算子的查詢模板是否匹配該經規范化的查詢。指示任選性的算子被用于指示查詢模板的元素將在匹配期間被認為是任選的,這意味著,經規范化的查詢不必為了被認為是匹配的而包括該任選元素。使用包括指示任選性的算子的查詢模板將有利地使得能夠定義將與相同查詢的許多不同變型相匹配的查詢模板,其中這些變型的前提是包括或排除諸如任選參數之類的某些任選元素。根據實施方式可以在查詢模板內使用多種合適算子中的任何算子來指示任選性。例如,在某些實施例中,被表達成LINQ表達式的查詢模板的Where O元素可以通過將 Where ()元素表達成OptionalWhereO而被標識為任選的,其中對任選性的指示符是所插入的“Optional (任選)”文字。然而,這僅僅是一個示例。相關領域的技術人員將容易地理解,可以使用任何數目的其他算子。iii.具有提取元素的查詢模板在一個實施例中,查詢匹配器212可以將經規范化的查詢與包括至少一個提取元素的查詢模板相比較。如在此所稱呼的那樣,提取元素是查詢模板的如下部分該部分被指定為向查詢匹配器212指示在匹配以前應當用從經規范化的查詢中提取出的特定值或算子替換該元素。在由查詢匹配器212執行的選擇過程期間,查詢匹配器212將在經規范化查詢中提取出由提取元素所標識出的值、算子或信息元素(比如屬性元素的名稱或屬性元素引用序列),并且然后用所提取出的值、算子或信息元素來替換該提取元素。該特性使得能夠以靈活的方式定義查詢模板,這些靈活的方式允許參考經規范化的查詢的相應元素來定義該模板的元素。例如,經規范化的查詢可以由如下LINQ表達式來表示[Customers]. Where (c = > c. ID = = “MSFT”). SelectMany (c = > c. Orders). OrderBy (o = > o. Date),其旨在從數據服務206獲得具有顧客標識符“MSFT”的所有顧客的所有訂單的列表,其中該訂單列表以按日期排序的形式被返回。查詢匹配器212可以接收在上面被規范化的以所述形式二者任一和/或作為LINQ表達式樹的查詢。查詢匹配器212可以將該查詢與存儲在目錄214中的每個查詢模板相比較。這樣的查詢模板可以包括用于如下數據操作的查詢模板List<Order>GetOrdersForCustomer(string customerID),其中相關聯的查詢模板是如下形式的LINQ表達式GetOrdersForCustomer: [Customers]. Where (c = > c. ID = = ExtractConstantF orParam( “customerID,,))· SelectMany(c = > c. Orders)。根據上面的示例,查詢匹配器212可以基于經規范化的查詢的LINQ表達式與同相應數據操作相關聯的查詢模板的LINQ表達式的比較來從固定的一組數據操作中選擇Lis t<0rder>Get0rdersForCustomer(string customerID)數據操作。在該不例中,查詢模板中的 Where (c = > c. ID = = ExtractConstantForParam( “customerID,,))兀素包括提取兀素ExtractConstantForParam( “customerID”)。在選擇過程期間,查詢匹配器212從經規范化的查詢中提取出參數“customerID”,該參數在該情況下可以是“MSFT”。一旦從查詢中提取出該參數,則該參數就可以用作相應查詢模板的一部分。根據該示例,提取和替換以后的查詢模板為GetOrdersForCustomer: [Customers]. Where (c = > c. ID = = “MSFT”). SelectMany (c = > c. Orders)。換言之,提取兀素 ExtractConstantForParam被從經規范化的查詢中提取的常量“MSFT”替換。然后,查詢匹配器212使用包括所提取的常量的查詢模板繼續該選擇過程。查詢匹配器212可以在執行計劃中記錄關于提取發生的信息。例如, 查詢匹配器212可以用從查詢中提取出的、或者由與所選數據操作相關聯的查詢模板所提供的相應元素來配置執行計劃的描述的指定元素。應當注意,根據某些實施例,可以定義包括上面特性的任何組合的查詢模板。例如,可以定義將一個或多個提取元素與一個或多個任選元素結合使用的一個或多個查詢模。iv.空匹配在一個實施例中,查詢匹配器212可以確定在該固定的一組數據操作中不存在可以完全滿足經規范化的查詢的數據操作,并且還可以確定不存在可以應用于從數據服務206獲得的數據以完全滿足該查詢的可用后處理功能。例如,在某些實施例中,某些后處理功能可能由于中間層204的開發者或管理員確定這樣的后處理功能過于昂貴或以其他原因不期望執行而不可用。在這種情況下,查詢匹配器212可以向請求處理器208返回指示經規范化的查詢不能被執行的結果,并且該結果可以被傳遞回請求實體202。可替代地, 查詢匹配器212可以向請求處理器208返回如下的執行計劃在執行計劃在被結果組裝器 216執行時將導致產生不完全滿足原始提交的查詢的查詢結果。然后,這些查詢結果可以被請求處理器208傳遞回請求實體202。4.目錄在一個實施例中,目錄214存儲固定的一組數據操作和相關聯的查詢模板。在另一實施例中,目錄214僅僅存儲與該固定的一組數據操作相關聯的查詢模板,并且該組固定的數據操作存儲在結果組裝器216中并且準備好供結果組裝器216執行。存儲在目錄 214中的該固定的一組數據操作和相關聯的查詢模板可以由中間層204的管理員和/或開發者或者由其他某個實體來定義。在一個實施例中,目錄214可以存儲隨時間被開發者或其他某個實體修改的一組數據操作。在另一實施例中,目錄214可以不存儲相關聯的查詢模板,而是從諸如關于數據操作名稱的一組約定之類的其他信息中導出所述查詢模板。應當注意,盡管目錄214在圖2中被示為邏輯上不同的組件,但是一實施方式可以將目錄214與數據檢索系統200的另一組件相組合。例如,一實施方式可以將目錄214直接集成到查詢匹配器212中或者可以將目錄214存儲在數據服務206本身之內。5.結果組裝器結果組裝器216從請求處理器208接收執行計劃。該執行計劃可以包含將針對數據服務206執行以獲得數據的所選數據操作。在一個實施例中,結果組裝器216包括該固定的一組數據操作,其中針對該組數據操作,目錄214存儲有相關聯的相應查詢模板。換言之,目錄214可以僅為包括在結果組裝器216中并由其執行的數據操作存儲有查詢模板。 結果組裝器216可以針對數據服務206執行由執行計劃所指定的所選數據操作。數據服務 206可以響應于所選數據操作的執行而向結果組裝器216返回數據。結果組裝器216還可以存儲以及能夠執行后處理功能。如上所述,執行計劃還可以包含可以對從數據服務206獲得的數據執行的后處理功能。結果組裝器216可以對從數據服務206獲得的數據執行由執行計劃所指定的后處理功能。如上所述,后處理功能可以包括過濾和可以對所獲得數據執行以滿足經規范化的查詢的其他功能。在一個實施例中,可由結果組裝器216執行的該固定的一組數據操作可以包括與簡單對象訪問協議(SAOP)、分布式公共對象模型(DCOM)和/或遠程過程調用(RPC)相關聯的一個或多個數據操作。例如,所選數據操作可以是在執行時訪問數據服務206的SOAP操作。結果組裝器216向請求處理器208返回查詢結果以用于轉發給請求實體202。該查詢結果包括所獲得的數據和/或經過后處理的數據。C.數據服務數據服務206充當3層數據檢索系統200的后層。數據服務206可以包括數據庫服務器和與其連接的一個或多個數據庫或一個或多個web服務。在數據服務206包括數據庫服務器的實施例中,該數據庫服務器可以包括任何類型的數據庫服務器,包括任何類型的關系數據庫服務器、對象/關系數據庫服務器、面向對象的數據庫服務器等等。如上所述,數據服務206可以使用由中間層204(即結果組裝器216)執行的數據操作來訪問。響應于從結果組裝器216接收到數據操作,數據服務206被配置為返回數據。III.用于使用查詢模板將查詢與數據操作進行匹配的示例性方法現在將描述根據各個實施例的用于使用查詢模板將查詢與數據操作進行匹配的示例性方法。具體而言,圖3描繪了根據一實施例的使用查詢模板將查詢與數據操作進行匹配的示例性數據檢索方法的流程圖300。現在將在繼續參考上面參照圖2所述的系統200 的情況下描述流程圖300的方法。然而,相關領域的技術人員能夠理解,流程圖300的方法不限于這些實施方式。如圖3所示,流程圖300的方法始于步驟302,在該步驟302,從請求實體接收查詢。該步驟例如可以由系統200的請求處理器208來執行。如上面參考系統200所述,該查詢可以向諸如系統200的數據服務206之類的數據服務請求所指定的數據。例如,請求處理器208可以從請求實體202接收該查詢。
            13
            在步驟304,通過將該查詢與同每個數據操作相關聯的查詢模板相比較來從用于訪問該數據服務的固定的一組數據操作中選擇數據操作。每個查詢模板都包括查詢的可被相關聯的數據操作滿足的代數描述。該步驟例如可以由系統200的查詢匹配器212來執行。在步驟306,針對數據服務執行所選數據操作以獲得數據。該步驟例如可以由系統200的結果組裝器216來執行。例如,可以由結果組裝器216針對數據服務206執行所選數據操作來獲得數據。在任選步驟308,可以對從該數據服務獲得的數據執行后處理功能以滿足該查詢。 該步驟例如可以由系統200的結果組裝器216來執行。例如,這些后處理功能可以由結果組裝器216對從數據服務206獲得的數據執行以滿足該查詢。在步驟310,將所獲得的數據提供給請求實體。該步驟例如可以由系統200的請求處理器208來執行。例如,請求處理器208可以向請求實體202提供包括所獲得的數據 (或經過后處理的數據)的查詢結果。圖4描繪了根據一實施例的使用查詢模板將查詢與數據操作相匹配的另一示例性數據檢索方法的流程圖400。現在將在繼續參考上面參照圖2所述的系統200的情況下描述流程圖400的方法。然而,相關領域的技術人員能夠理解,流程圖400的方法不限于這些實施方式。如圖4所示,流程圖400的方法始于步驟402,在該步驟402,接收查詢。該步驟例如可以由系統200的請求處理器208來執行。如上面參考系統200所述,該查詢可以向諸如系統200的數據服務206之類的數據服務請求所指定的數據。在步驟404,生成用于滿足該查詢的執行計劃。該執行計劃可以包括對可針對數據服務執行的數據操作和將應用于從數據服務獲得的數據的后處理步驟的引用。該步驟例如可以由系統200的查詢匹配器212來執行。例如,查詢匹配器212可以生成包括用于獲得數據的數據操作以及將對所獲得數據執行的后處理步驟的執行計劃。該執行計劃基于查詢與查詢的可被每個數據操作滿足的代數描述的匹配程度標識出數據操作。在任選步驟406,將執行計劃提供給實體以供執行。該步驟例如可以由系統200的請求處理器208來執行。例如,請求處理器208可以將執行計劃提供給結果組裝器216以供執行。示例性計算機系統實施方式圖5示出了可用于實現根據一實施例的用于使用查詢模板將查詢與數據操作相匹配的系統的示例性計算機系統500。例如,圖I的三層數據檢索系統104或圖2的三層數據檢索系統200的任何組件都可以使用計算機系統500來實現。計算機系統500例如可以表示常規個人計算機、移動計算機或工作站形式的通用計算設備,或者計算機系統500可以是專用計算設備。此處所提供的對計算機系統500的描述只是為了說明,并不是限制性的。實施例也可以在相關領域的技術人員所知的其它類型的計算機系統中實現。如圖5所示,計算機系統500包括處理單元502、系統存儲器504,以及將包括系統存儲器504的各種系統組件耦合到處理單元502的總線506。處理單元502可包括一個或多個處理器或處理核心。系統總線506表示若干類型的總線結構中的任何一種總線結構的一個或多個,包括存儲器總線或存儲器控制器、外圍總線、加速圖形端口,以及使用各種總線體系結構中的任何一種的處理器或局部總線。系統存儲器504包括只讀存儲器(ROM) 508和隨機存取存儲器(RAM)510。基本輸入/輸出系統512 (BIOS)存儲在ROM 508中。計算機系統500還具有一個或多個以下驅動器用于讀寫硬盤的硬盤驅動器514、 用于讀或寫可移動磁盤518的磁盤驅動器516、以及用于讀或寫諸如⑶R0M、DVD ROM或其他光介質之類的可移動光盤522的光盤驅動器520。硬盤驅動器514、磁盤驅動器516,以及光驅動器520分別通過硬盤驅動器接口 524、磁盤驅動器接口 526,以及光學驅動器接口 528連接到系統總線506。驅動器以及它們相關聯的計算機可讀介質為計算機提供了對計算機可讀指令、數據結構、程序模塊,及其他數據的非易失存儲器。雖然描述了硬盤、可移動磁盤和可移動光盤,但是,也可以使用諸如閃存卡、數字視頻盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等之類的其他類型的計算機可讀介質來存儲數據。數個程序模塊可被存儲在硬盤、磁盤、光盤、ROM,或RAM上。這些程序模塊可以包括請求處理器208、查詢規范化器210、查詢匹配器212和/或結果組裝器216中的一個或多個。當被處理單元502執行時,這些程序模塊可以執行上述功能和特性,包括、但不限于 上面參考圖3的流程圖300和圖4的流程圖400所述的任何步驟和功能。用戶可以通過諸如鍵盤538和定點設備540之類的輸入設備向計算機系統500中輸入命令和信息。其它輸入設備(未示出)可包括話筒、操縱桿、游戲控制器、掃描儀等等。 在一個實施例中,結合顯示器544提供具有多點觸控能力的觸摸屏以允許用戶通過向觸摸屏上的一個或多個點施加觸摸(例如通過手指或指示筆)來提供用戶輸入。這些及其他輸入設備常常通過耦合到總線506的串行端口接口 542連接到處理單元506,但是,也可以通過其他接口,諸如并行端口、游戲端口、通用串行總線(USB)端口,來進行連接。顯示器544 還通過諸如視頻適配器546之類的接口連接到總線506。除了顯示器之外,計算機系統500 還可包括其他外圍輸出設備(未示出),比如揚聲器和打印機。計算機系統500通過網絡接口或適配器550、調制解調器552或其它用于在網絡上建立通信的裝置連接到網絡548 (例如,局域網或諸如因特網之類的廣域網)。調制解調器552(可以是內置的或外置的),通過串行端口接口 542連接到系統總線506。如此處所用的,術語“計算機程序介質”以及“計算機可讀介質”被用于泛指非瞬態介質,諸如與硬盤驅動器514相關聯的硬盤、可移動磁盤518、可移動光盤522,以及其他介質,諸如閃存卡、數字視頻盤、隨機讀取存儲器(RAM)、只讀存儲器(ROM)等。如上文所指示的,計算機程序和模塊(包括應用程序532及其他程序模塊534)可被存儲在硬盤、磁盤、光盤、ROM或RAM上。這樣的計算機程序也可以通過網絡接口 550或串行端口接口 542來接收。這些計算機程序在由應用程序執行或加載時使得計算機500能夠實現此處所討論的實施例的特征。因此,這樣的計算機程序表示計算機系統500的控制器。實施例還針對包括存儲在任何計算機可讀介質上的軟件的計算機程序產品。這樣的軟件,當在一個或多個數據處理設備中執行時,使數據處理設備如此處所描述的那樣操作。實施例可使用現在已知或將來知曉的任何計算機可使用或計算機可讀介質。計算機可讀介質的例子包括但不限于存儲設備,諸如RAM、硬盤、軟盤、CD ROM,DVD R0M、Zip盤、磁帶、 磁存儲設備、光存儲設備、基于MEMS的存儲設備、基于納米技術的存儲設備,等等。V.結語雖然以上描述了不同的實施例,但應當理解的是它們只是作為示例而非限制。對于相關領域的技術人員顯而易見的是,可以對其做出各種改變而不背離本發明的精神和范圍。因此,此處所公開的本發明的寬度和范圍不應被上述所公開的示例性實施例所限制,而應當僅根據所附權利要求書及其等同替換來定義。
            權利要求
            1.一種方法(300),包括從請求實體接收(302)查詢;基于該查詢從固定的一組用于訪問數據服務的數據操作中選擇(304) —個或多個數據操作,其中該選擇包括將該查詢與同該固定的一組數據操作中的每個數據操作相關聯的查詢模板相比較,每個查詢模板都包括查詢的能夠被相關聯的數據操作滿足的代數描述;針對數據服務執行(306)所選數據操作以從其獲得數據;以及將所獲得的數據提供(310)給請求實體。
            2.如權利要求I所述的方法,其特征在于,該查詢包括LINQ表達式,并且其中將該查詢與同該固定的一組數據操作中的每個數據操作相關聯的查詢模板相比較包括將該LINQ表達式與同該固定的一組數據操作中的每個數據操作相關聯的LINQ表達式模板相比較。
            3.如權利要求I所述的方法,其特征在于,該選擇包括選擇一個或多個能夠針對該數據服務執行以滿足該查詢的一個或多個數據操作。
            4.如權利要求I所述的方法,其特征在于,該選擇包括選擇一個或多個能夠針對該數據服務執行以部分地滿足該查詢的一個或多個數據操作,該方法還包括對從該數據服務獲得的數據執行一個或多個后處理功能以滿足該查詢。
            5.如權利要求I所述的方法,其特征在于,還包括在該選擇步驟以前對該查詢進行規范化。
            6.如權利要求I所述的方法,其特征在于,將該查詢與同該固定的一組數據操作中的每個數據操作相關聯的查詢模板相比較包括將該查詢與包括算子的至少一個查詢模板相比較,所述算子指示該查詢模板的一部分在查明該查詢模板是否與該查詢相匹配時是任選的。
            7.如權利要求I所述的方法,其特征在于,將該查詢與同該固定的一組數據操作中的每個數據操作相關聯的查詢模板相比較包括用從該查詢中提取的由至少一個查詢模板的指定元素標識出的相應元素替換該指定元素。
            8.一種包括上面記錄有計算機程序邏輯的計算機可讀介質的計算機程序產品,該計算機程序邏輯包括用于使得處理器能夠執行如權利要求1-7任一項所述的裝置。
            9.一種系統(200),包括請求處理器(208),該請求處理器(208)被配置為從請求實體(202)接收查詢;查詢匹配器(212),該查詢匹配器(212)被配置為基于該查詢從固定的一組用于訪問數據服務(206)的數據操作中選擇一個或多個數據操作,其中該查詢匹配器(212)被配置為通過將該查詢與同該固定的一組數據操作中的每個數據操作相關聯的查詢模板相比較來執行該選擇,每個查詢模板都包括查詢的能夠被相關聯的數據操作滿足的代數描述;以及結果組裝器(216),該結果組裝器(216)被配置為針對數據服務(206)執行所選數據操作以從其獲得數據;請求處理器(208)還被配置為向請求實體(202)提供所獲得的數據。
            10.如權利要求9所述的系統,其特征在于,該查詢包括LINQ表達式;以及其中該查詢匹配器被配置為將該LINQ表達式與同該固定的一組數據操作中的每個數據操作相關聯的LINQ表達式模板相比較。
            11.如權利要求9所述的系統,其特征在于,該查詢匹配器被配置為選擇一個或多個能夠針對該數據服務執行以滿足該查詢的一個或多個數據操作。
            12.如權利要求9所述的系統,其特征在于,該查詢匹配器被配置為選擇一個或多個能夠針對該數據服務執行以部分地滿足該查詢的一個或多個數據操作;以及其中該結果組裝器還被配置為對從該數據服務獲得的數據執行一個或多個后處理功能以滿足該查詢。
            13.如權利要求9所述的系統,其特征在于,還包括查詢規范化器,該查詢規范化器被配置為在由該查詢匹配器執行該選擇以前對該查詢進行規范化。
            14.如權利要求9所述的系統,其特征在于,該查詢匹配器被配置為將該查詢與包括算子的至少一個查詢模板相比較,所述算子指示該查詢模板的一部分在查明該查詢模板是否與該查詢相匹配時是任選的。
            15.如權利要求9所述的系統,其特征在于,該查詢匹配器還被配置為用從該查詢中提取的由至少一個查詢模板的指定元素標識出的相應元素替換該指定元素。
            全文摘要
            本發明涉及使用查詢模板來將查詢與數據操作相匹配。在此描述了由多層數據檢索系統的中間層執行以選擇對應于查詢的數據操作的系統和方法。可以從前層接收查詢。該選擇是通過將查詢與同每個數據操作相關聯的查詢模板相匹配來執行的。每個數據操作的查詢模板都包括查詢的每個可被相應數據操作滿足的代數描述。然后,針對數據服務執行所選數據操作以獲得數據,這些數據然后被提供給前層。在一些實施例中,可以由中間層創建執行計劃以用于滿足該查詢。該執行計劃可以包括所選數據操作和后處理步驟。可以將后處理步驟應用于所獲得的數據以滿足該查詢。然后,經過后處理的數據被提供給前層。
            文檔編號G06F17/30GK102609445SQ20111046279
            公開日2012年7月25日 申請日期2011年12月9日 優先權日2010年12月10日
            發明者M·L·魯伊斯 申請人:微軟公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品