欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對數(shù)據(jù)庫結(jié)果及推導(dǎo)目標進行高速緩存和無效的系統(tǒng)和方法

文檔序號:6396140閱讀:169來源:國知局
專利名稱:對數(shù)據(jù)庫結(jié)果及推導(dǎo)目標進行高速緩存和無效的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及數(shù)據(jù)庫,尤其涉及為隨后的使用而保存從數(shù)據(jù)庫產(chǎn)生的結(jié)果、并且當它們變得與數(shù)據(jù)庫不一致時無效所保存的結(jié)果的系統(tǒng)和方法。
背景技術(shù)
計算和聯(lián)網(wǎng)技術(shù)已經(jīng)改變了每天生活的許多重要方面。計算機已經(jīng)成為家用的主要產(chǎn)品,而不是奢侈的教育工具和/或娛樂中心,并且向用戶提供了工具來管理并預(yù)報財務(wù);控制像取暖、制冷、照明和安全之類的家用操作;并且把記錄和圖像存儲在永久且可靠的媒介中。因特網(wǎng)這樣的聯(lián)網(wǎng)技術(shù)向用戶提供了對遠程系統(tǒng)、信息和相關(guān)應(yīng)用的實際上無限的存取。
隨著計算和聯(lián)網(wǎng)技術(shù)變得穩(wěn)健、安全和可靠,更多的用戶、批發(fā)商、零售商、企業(yè)家、教育機構(gòu)等等改變了范例,并且采用因特網(wǎng)而不是用傳統(tǒng)手段來執(zhí)行商務(wù)。例如,許多商務(wù)和用戶提供了網(wǎng)站和/或在線服務(wù)。例如,現(xiàn)在用戶可以通過因特網(wǎng)來訪問他/她的賬戶,并且執(zhí)行越來越多的有效交易,比如余額查詢、基金轉(zhuǎn)賬以及賬單支付。
一般而言,因特網(wǎng)會話包括用戶與客戶應(yīng)用程序(如web服務(wù)器)連接而與數(shù)據(jù)庫服務(wù)器相互作用,數(shù)據(jù)庫服務(wù)器把信息存儲在客戶應(yīng)用程序可以訪問的數(shù)據(jù)庫中。例如,股票市場網(wǎng)站可以向用戶提供用于檢索股票報價并且購買股票的工具。用戶可以輸入股票符號并且通過點積鼠標來激活查詢而請求股票報價。然后,客戶應(yīng)用程序查詢數(shù)據(jù)庫有無股票信息并且返回股票報價。同樣,用戶可以通過提供適當?shù)男畔碣徺I股票,其中提交訂購會促使數(shù)據(jù)庫查詢范圍當前的價格信息和訂購狀態(tài)。
隨著更多的用戶利用這種服務(wù)的優(yōu)點,也消耗了更多帶寬,這會降低性能和/或速度,因為帶寬是一項有限的資源。另一個缺點是與有效數(shù)據(jù)數(shù)量有關(guān)的有限的有效數(shù)據(jù)傳輸速率。例如,檢索大量數(shù)據(jù)(如,分布在各個服務(wù)器中)的請求可能是時間密集且性能有限的,即使當帶寬可用時。
通過用戶執(zhí)行頻繁且類似的請求而合成了上述內(nèi)容。例如,希望當前股票報價的用戶可以執(zhí)行頻繁的請求來獲得更新的報價。因此,用戶頻繁地消耗帶寬來檢索基本類似的信息。此外,其他用戶可能同時執(zhí)行檢索基本類似信息的請求。用戶還受到限制的是,由于所返回的結(jié)果在隨后的數(shù)據(jù)庫表變化后會變得無效,因此不能保證所檢索的數(shù)據(jù)的一致性。

發(fā)明內(nèi)容
下面給出了本發(fā)明的簡要概述,以便提供對本發(fā)明某些方面的基本理解。這個概述不是本發(fā)明的廣泛綜述。它并不意圖標識出本發(fā)明的關(guān)鍵/決定性的元件,或者敘述本發(fā)明的范圍。它唯一的目的是以簡化形式給出本發(fā)明的某些概念,作為稍后給出的更詳細的描述的序言。
本發(fā)明涉及當從數(shù)據(jù)庫查詢產(chǎn)生的所保存結(jié)果由于數(shù)據(jù)庫變化以及/或者由于期滿時段而變得無效時用于對所述結(jié)果進行無效的系統(tǒng)和方法。因此,本發(fā)明提供了一種機制,用于查詢數(shù)據(jù)庫、保存從數(shù)據(jù)庫查詢產(chǎn)生的結(jié)果、并且使用所保存的結(jié)果直到數(shù)據(jù)庫變化和/或到期時段使結(jié)果無效。
一般而言,數(shù)據(jù)庫存儲可以通過查詢數(shù)據(jù)庫而檢索到的信息。用戶可以與應(yīng)用程序?qū)?,例如為了獲得數(shù)據(jù)庫內(nèi)存儲的至少一部分信息。例如,用戶可以采用web服務(wù)或者提交與服務(wù)器上存儲的信息相關(guān)的請求。請求會開始有關(guān)數(shù)據(jù)庫的一個或多個查詢,然后可以使用所述一個或多個查詢的結(jié)果來產(chǎn)生一個應(yīng)答,該應(yīng)答要從該web服務(wù)被返回、被顯示、被消耗并且/或者進一步被采用。
在許多情況下,數(shù)據(jù)庫會成為資源爭用的共用源。例如,不止一個用戶會發(fā)出一個類似請求,該請求同時查詢數(shù)據(jù)庫并且返回類似的結(jié)果。這種同時查詢類似結(jié)果會增加數(shù)據(jù)庫負載、減少帶寬、降低性能并且消耗資源。在另一示例中,一個或多個用戶會頻繁地執(zhí)行返回類似結(jié)果的請求。同樣,系統(tǒng)性能會經(jīng)由如數(shù)據(jù)庫負載而被降低。在上述內(nèi)容之內(nèi),數(shù)據(jù)庫表示在多個用戶請求和/或用戶間共享的狀態(tài),而共享的狀態(tài)爭用會限制系統(tǒng)性能和可伸縮性。
為減少查詢數(shù)而一般采用的技術(shù)包括把頻繁使用的數(shù)據(jù)(例如,形式為原始數(shù)據(jù)、經(jīng)變換的數(shù)據(jù)、以及可查詢形式的數(shù)據(jù))保存在數(shù)據(jù)庫外部,并且使用所保存的結(jié)果而不是執(zhí)行另外的查詢。然而,由于可能發(fā)生隨后的數(shù)據(jù)庫變化來提供與數(shù)據(jù)庫不一致的所保存數(shù)據(jù)而不通知用戶,因此所保存的數(shù)據(jù)的一致性受到損害。
本發(fā)明的系統(tǒng)和方法減少了數(shù)據(jù)庫負載(如減少了對基本類似的信息的查詢)、提高了可伸縮性、減少了重復(fù)處理、并且確保了數(shù)據(jù)一致性。所述系統(tǒng)和方法包括把無效信息存儲在環(huán)境存儲體(context bank)內(nèi),其中可以根據(jù)查詢來檢索并發(fā)送所述無效信息,以便把該查詢與查詢請求者相關(guān)聯(lián)并且在數(shù)據(jù)庫內(nèi)注冊該查詢。從查詢產(chǎn)生的結(jié)果(如,原始數(shù)據(jù)、經(jīng)變換的數(shù)據(jù)、可查詢形式的數(shù)據(jù)、部分應(yīng)答和全部應(yīng)答)可以被保存在數(shù)據(jù)庫外部的可存取存儲媒介中,并且被各個用戶(如web服務(wù)器)使用一次或多次,從而緩和了對基本類似的信息的查詢。
如果發(fā)生會影響所存儲結(jié)果的數(shù)據(jù)庫變化,則可以發(fā)送無效消息以便于使所保存的結(jié)果無效,從而減少了用戶采用不一致數(shù)據(jù)的情況。一般使用根據(jù)查詢發(fā)出的無效信息來構(gòu)成無效消息。此外,可以定義一個到期時段,使得在到期時段期滿后所保存的結(jié)果會被無效,即使不發(fā)生數(shù)據(jù)庫變化。在使所保存的結(jié)果無效后,例如,這些結(jié)果可以被自動地刪除并且/或者自動地刷新。
而且,本發(fā)明的系統(tǒng)和方法可以在web環(huán)境中被采用,其中當可以全部或部分地存儲從數(shù)據(jù)庫查詢產(chǎn)生的web應(yīng)答并且響應(yīng)于隨后的請求而返回這些應(yīng)答時,可以實現(xiàn)web服務(wù)器資源的等待時間和使用的進一步減少。例如,開發(fā)者可以通過在web頁面內(nèi)嵌入注釋來請求基于數(shù)據(jù)庫查詢產(chǎn)生的應(yīng)答會被高速緩存,直到查詢結(jié)果變化為止。注釋調(diào)用web服務(wù)器把數(shù)據(jù)庫相關(guān)性與要被高速緩存的應(yīng)答相關(guān)聯(lián),并且把與相關(guān)性相關(guān)的無效消息以及/或者相關(guān)性自身存儲在環(huán)境存儲體中。根據(jù)到數(shù)據(jù)庫的隨后查詢而自動地檢索并發(fā)出所存儲的無效信息。如上所述,當數(shù)據(jù)庫發(fā)生變化提供了不一致的前面查詢的結(jié)果時,以及/或者當?shù)狡跁r段期滿時,可以在無效消息內(nèi)采用該無效信息。
把無效信息存儲在環(huán)境存儲體中并且使用該信息可以便于例示把無效信息與查詢相關(guān)聯(lián)并且保存(如高速緩存)查詢應(yīng)答的基礎(chǔ)結(jié)構(gòu)。因此,采用所存儲的無效信息減輕了對web服務(wù)器(和/或能處理查詢請求的其他組件)獲悉應(yīng)答產(chǎn)生的要求。而且,采用所存儲的無效信息減輕了對產(chǎn)生應(yīng)答的組件必須獲悉應(yīng)答怎樣被web服務(wù)器使用的要求。
按照發(fā)明主題,這里所述的系統(tǒng)和方法采用組件來存儲無效信息、執(zhí)行查詢、保存基于查詢的結(jié)果、接收無效消息以及/或者使所保存的信息無效。此外,可以采用用于異步和同步通信的各種數(shù)據(jù)傳輸技術(shù)以及安全性技術(shù),這些技術(shù)減少了惡意和虛假信息和消息的存在和/或傳輸。實踐中,可以在各種環(huán)境中采用所述系統(tǒng)和方法,這些環(huán)境包括客戶機-服務(wù)器和/或基于SQL的環(huán)境。
為了實現(xiàn)上述及相關(guān)的目標,本發(fā)明包括下面全面描述且在權(quán)利要求中特別指出的特征。下面的描述和附圖詳細提出了本發(fā)明的某些說明性方面和實施方式。然而,這些表示出其中可采用本發(fā)明原理的各種方式的一小部分。在參照附圖考慮了本發(fā)明的下列詳細描述后,本發(fā)明的其他目的、優(yōu)點和新穎性特征將變得更為明顯。


圖1說明了按照本發(fā)明一方面的示例性無效注冊系統(tǒng)。
圖2說明了按照本發(fā)明一方面的示例性無效內(nèi)存管理系統(tǒng)。
圖3說明了按照本發(fā)明一方面的示例性數(shù)據(jù)庫注冊和無效系統(tǒng)。
圖4說明了按照本發(fā)明一方面的示例性基于web的內(nèi)存無效系統(tǒng)。
圖5說明了按照本發(fā)明一方面的示例性安全性技術(shù)。
圖6說明了按照本發(fā)明一方面的示例性無效消息傳遞技術(shù)。
圖7說明了按照本發(fā)明一方面的示例性分布式無效系統(tǒng)。
圖8說明了按照本發(fā)明一方面的示例性web服務(wù)無效系統(tǒng)。
圖9說明了按照本發(fā)明一方面的示例性自動無效方法。
圖10說明了按照本發(fā)明一方面的圖9的繼續(xù)。
圖11說明了按照本發(fā)明一方面的示例性的基于變化的無效方法。
圖12說明了按照本發(fā)明一方面的示例性的基于時間的無效方法。
圖13說明了按照本發(fā)明一方面的示例性操作系統(tǒng)。
具體實施例方式
現(xiàn)在參照附圖描述本發(fā)明,附圖中使用相同的數(shù)字來表示相同的元件。在下列描述中,為了說明目的,提出了許多特定的細節(jié)以便提供對本發(fā)明的全面理解。然而顯然本發(fā)明可以沒有這些特定細節(jié)而實現(xiàn)。在其他情況下,為了便于描述本發(fā)明,以框圖形式示出公知的結(jié)構(gòu)和設(shè)備。
如本申請中所使用的,術(shù)語“組件”是指計算機相關(guān)的實體,或是硬件、硬件軟件的組合、軟件,或是執(zhí)行中的軟件。例如,組件可以是、但不限于是運行在處理器上的進程、處理器、對象、可執(zhí)行的執(zhí)行線程、程序和/或計算機。通過說明,運行在服務(wù)器上的應(yīng)用程序以及服務(wù)器都可以是計算機組件。一個或多個組件可以駐留在進程和/或執(zhí)行線程內(nèi),組件可以被定位在一個計算機上以及/或者被分布在兩個或多個計算機之間。“線程”是進程內(nèi)的實體,操作系統(tǒng)內(nèi)核調(diào)度它用來執(zhí)行。每個線程都有一個相關(guān)的“環(huán)境”,所述“環(huán)境”是與線程執(zhí)行相關(guān)的易失性數(shù)據(jù)。線程的環(huán)境包括系統(tǒng)注冊表的內(nèi)容以及屬于線程的進程的虛擬地址。因此,包括線程環(huán)境的實際數(shù)據(jù)在它執(zhí)行時而改變。
本發(fā)明涉及用于把從數(shù)據(jù)庫查詢產(chǎn)生的結(jié)果存儲在(如動態(tài)的和靜態(tài)的)內(nèi)存中的系統(tǒng)和方法,其中所述結(jié)果可以被檢索和使用,并且在它們變得不一致時(如數(shù)據(jù)庫變化和到期時段期滿)被無效。所述系統(tǒng)和方法通過查詢基本相似的(如冗余的)信息而減少了系統(tǒng)負載和資源爭用。此外,所述系統(tǒng)和方法減少了不一致的所保存結(jié)果的采用。因此,所述系統(tǒng)和方法提供了一種機制,用于查詢數(shù)據(jù)庫有無信息;把結(jié)果存儲在像高速緩存這樣的內(nèi)存中;當期望基本相似的結(jié)果時采用所保存的結(jié)果一次或多次;當所保存的結(jié)果變得不一致時自動使其無效;以及通過自動地重新查詢和保存任選地刷新內(nèi)存。
參照圖1,說明了按照本發(fā)明一方面的示例性無效注冊系統(tǒng)100。無效注冊系統(tǒng)100包括環(huán)境存儲體110和查詢管理器120。
環(huán)境存儲體110可用于提供信息以便于在發(fā)生的數(shù)據(jù)庫變化會影響所保存的結(jié)果以及/或者當?shù)狡跁r段期滿時,使所保存的結(jié)果無效。例如,環(huán)境存儲體110可用于存儲與組件相關(guān)的無效信息(如下述的相關(guān)性)。無效信息可以通過數(shù)據(jù)庫查詢鏈接到數(shù)據(jù)庫。結(jié)果可以被保存和使用一次或多次。當數(shù)據(jù)庫發(fā)生的變化會影響查詢以及/或者持續(xù)時間期滿時,可以使用相應(yīng)的無效信息以便于無效所保存的結(jié)果,例如通過通知、事件、標志、所保存結(jié)果的自動無效、以及自動重新查詢,從而用一致結(jié)果獲得并刷新內(nèi)存。
一般的無效信息包括無效字符串、服務(wù)信息和超時。無效字符串一般包括組件標識符、位置(如機器名)、端口、地址和/或隊列名,并且還可以包括如驗證信息、加密和協(xié)議選項。服務(wù)信息可以包括標志,這些標志用于自動刪除所保存的結(jié)果、自動刷新結(jié)果、自動把結(jié)果標記為無效、以及通知組件而不影響所保存的結(jié)果,等等。超時可以基于數(shù)據(jù)庫變化、文件變化和持續(xù)時間等等??梢岳斫?,上述內(nèi)容是說明性的而不是限制性的。因此,按照本發(fā)明一方面可以包括附加的、不同的和/或較少的信息。
環(huán)境存儲器110內(nèi)存儲的無效信息可用于查詢管理器120。查詢管理器120可以在執(zhí)行命令和/或查詢時使用該無效信息。例如,查詢管理器120可以從環(huán)境存儲體110獲得無效信息,并且包括根據(jù)查詢的無效信息,其中無效信息可以是查詢的一部分和/或與查詢相關(guān)聯(lián)。
在本發(fā)明一方面中,可以采用頁面指示(如web頁面內(nèi)的注釋)來開始組件的例示(如相關(guān)性對象)以及把與組件相關(guān)的無效信息存儲在環(huán)境存儲體110中。采用環(huán)境存儲體110來存儲無效信息便于建立根據(jù)查詢采用無效信息的基礎(chǔ)結(jié)構(gòu),而無須使調(diào)用查詢管理器120的應(yīng)用程序必須獲悉應(yīng)答怎樣被高速緩存。
當通過請求查詢數(shù)據(jù)庫來調(diào)用查詢管理器120時,查詢管理器120與環(huán)境存儲體110相互作用以檢索與組件相關(guān)的無效信息。然后,查詢管理器120通過查詢數(shù)據(jù)庫來執(zhí)行請求,其中從環(huán)境存儲體110檢索的無效信息被連續(xù)發(fā)送并且/或者與查詢同時發(fā)出。然后返回并使用查詢結(jié)果以產(chǎn)生要被存儲的結(jié)果,所發(fā)出的無效信息保持與組件、查詢和被查詢的數(shù)據(jù)庫相關(guān)聯(lián)。
如果被查詢的數(shù)據(jù)庫在查詢以后并且在產(chǎn)生要被存儲的結(jié)果(如果要被存儲的結(jié)果與數(shù)據(jù)庫一致)以前不發(fā)生變化,則可以使用結(jié)果并將其存儲在內(nèi)存中用于進一步的使用。當隨后提交會返回基本相似結(jié)果的請求時,可以使用所存儲的結(jié)果而不是執(zhí)行另一次查詢。因此,本發(fā)明減少了對基本相似結(jié)果的查詢,其中查詢基本相似結(jié)果會降低性能、吞吐量、處理和速度,并且易受資源爭用的影響。
在保存結(jié)果之后,數(shù)據(jù)庫變化或時間期滿可以反映所保存的結(jié)果不一致。當發(fā)生的數(shù)據(jù)庫變化會影響上述查詢和/或超時期滿的結(jié)果時,可以采用根據(jù)查詢發(fā)出的無效信息來通知組件(如內(nèi)存管理器120)使所保存的結(jié)果無效(如刪除和刷新),即使產(chǎn)生該結(jié)果的組件不再存在。可以用指示所保存的結(jié)果無效的通知來提供試圖與所保存的結(jié)果相關(guān)的其他組件。因此,本發(fā)明通過通知組件以及/或者使所保存的結(jié)果無效而減少了對不一致保存結(jié)果的采用。
參照圖2,說明了按照本發(fā)明一方面的示例性無效內(nèi)存管理系統(tǒng)200。無效內(nèi)存管理系統(tǒng)200包括查詢管理器120和內(nèi)存管理器220。
除了上述功能以外,查詢管理器120可以為變化和/或期滿的數(shù)據(jù)庫接收查詢結(jié)果和/或無效信息。一般而言,在根據(jù)查詢發(fā)出無效信息(如上所述)之后,返回查詢結(jié)果。在本發(fā)明一方面中,查詢管理器120接收所返回的查詢結(jié)果,并且采用內(nèi)存管理器120來便于保存和/或使用從查詢結(jié)果產(chǎn)生的結(jié)果。如果認識到在產(chǎn)生要被存儲的結(jié)果前數(shù)據(jù)庫已變化以及/或者到期時段期滿,內(nèi)存管理器220就可以把結(jié)果提供給組件而無須把結(jié)果保存到內(nèi)存。如果數(shù)據(jù)是一致的(如沒有數(shù)據(jù)庫變化)且到期時段尚未期滿,內(nèi)存管理器220就可以連續(xù)地和/或同時地把結(jié)果提供給組件以及/或者保存到內(nèi)存。當請求基本類似的查詢時可以由組件來訪問所保存的結(jié)果,從而減少了基本類似查詢的執(zhí)行,其中執(zhí)行基本類似的查詢會消耗資源并且降低性能。
應(yīng)該理解,所返回的結(jié)果可以包括原始數(shù)據(jù)、經(jīng)變換的數(shù)據(jù)(如去標準化的集合、總計、數(shù)據(jù)透視表、從原始數(shù)據(jù)產(chǎn)生的對象以及/或者部分或全部的web應(yīng)答)、以及/或者可查詢的數(shù)據(jù)(如可以通過隨后查詢而被使用的數(shù)據(jù)集合,用于獲得其子集)。而且應(yīng)該理解,可以采用各種技術(shù)把結(jié)果存儲到內(nèi)存。例如,在第一種方法中,可以保存基本上所有的所返回結(jié)果(如全部的web應(yīng)答)。在第二種方法中,把一部分所返回的結(jié)果(如部分頁面)保存到內(nèi)存。例如,可以保存對于隨后請求常見的一部分。在另一例中,保存對于多個請求共用的結(jié)果。然后,對從內(nèi)存檢索的共用結(jié)果的本地查詢可以返回與請求相關(guān)的數(shù)據(jù)。在第三種方法中,可以通過查詢或某些其他手段獲得個人化的結(jié)果,共用結(jié)果可以被保存到內(nèi)存并且被使用。應(yīng)該理解,上述示例性說明為了說明性目的而提供,而不限制本發(fā)明。
在接收到無效消息后,查詢管理器120便于把數(shù)據(jù)庫變化通知路由到組件并且/或者使所保存的結(jié)果無效。在本發(fā)明一方面,查詢管理器120通知組件,組件決定下一個動作。例如,組件可以采用內(nèi)存管理器220使所保存的結(jié)果無效?;蛘?,查詢管理器120采用內(nèi)存管理器220,其中內(nèi)存管理器220可以使所保存的結(jié)果無效并且/或者通知組件。應(yīng)該理解,當所保存的結(jié)果被無效時,開始請求和相應(yīng)的保存的組件不再存在。
現(xiàn)在參照圖3,按照本發(fā)明一方面說明了示例性的數(shù)據(jù)庫注冊和無效系統(tǒng)300。數(shù)據(jù)庫注冊和無效系統(tǒng)300包括查詢管理器120、內(nèi)存管理器220、任選的客戶機310和內(nèi)存320。應(yīng)該理解,可以采用不止一個內(nèi)存管理器220、客戶機310和內(nèi)存320;然而為了簡潔,下面描述了一個客戶機實例。
如上所述,環(huán)境存儲體110可以為組件存儲無效信息(如上所述),當發(fā)生的數(shù)據(jù)庫變化會影響所保存的結(jié)果時,以及/或者當?shù)狡跁r段期滿時,可以采用該無效信息來提供使所保存結(jié)果無效的信息。在本發(fā)明一方面,客戶機310可以向環(huán)境存儲體110提供無效信息—標識符、機器名、端口、地址、數(shù)據(jù)庫名、自動無效不一致的保存結(jié)果的指示、自動刷新不一致結(jié)果的指示、以及超時(如,根據(jù)數(shù)據(jù)庫變化、文件變化和持續(xù)時間而無效)。
當客戶機310調(diào)用查詢管理器210來查詢數(shù)據(jù)庫時,查詢管理器120從環(huán)境存儲體110接收相關(guān)的無效信息(如上所述),以及/或者從環(huán)境存儲體110檢索相關(guān)的無效信息(未示出)。查詢管理器120接著進行查詢并且提供無效信息。應(yīng)該理解,查詢管理器120可以按照本發(fā)明一方面來查詢動態(tài)的和/或靜態(tài)的數(shù)據(jù)庫。
查詢管理器120可以接受查詢結(jié)果,并把結(jié)果發(fā)送到客戶機310。應(yīng)該理解,本發(fā)明提供了同步和異步的消息傳遞。在同步消息傳遞中,可以阻止數(shù)據(jù)庫變化,直到傳遞無效消息和/或使不一致結(jié)果無效為止。同步傳遞通過確保在提交變化和接收無效消息之間不發(fā)生數(shù)據(jù)庫變化,以及/或者使結(jié)果無效,從而減少了數(shù)據(jù)不一致性。在異步消息傳遞中,在傳遞無效消息之前以及/或者在使不一致結(jié)果無效之前可以提交數(shù)據(jù)庫變化。異步傳遞減少了傳遞等待時間。
在接收到查詢結(jié)果后,接著用各種技術(shù)探查被查詢的數(shù)據(jù)庫以確認在查詢后但在產(chǎn)生要被存儲的結(jié)果之前是否發(fā)生變化。如果發(fā)生變化,客戶機310就可以使用結(jié)果而不調(diào)用內(nèi)存管理器220。如果不發(fā)生變化,客戶機310就可以使用結(jié)果并且采用內(nèi)存管理器220來把結(jié)果存儲在內(nèi)存320中(如本地、遠程、高速、HTTP和共享的內(nèi)存)。會返回基本相似結(jié)果的隨后請求可以使用來自內(nèi)存320的所保存的結(jié)果,而不是執(zhí)行查詢,直到所保存的結(jié)果變得不一致為止。
在本發(fā)明另一方面,采用了各種技術(shù)以便于確定是否要保存結(jié)果。例如,如果確定結(jié)果對于多個請求是共用的并且頻繁地變化,就保存結(jié)果。然而,如果確定結(jié)果頻繁地變化以及/或者未被頻繁使用,且保存成本相對昂貴,就不保存結(jié)果。在本發(fā)明還有一方面,采用了各種技術(shù)來減少內(nèi)存問題。例如,如果內(nèi)存320是滿的,則可以用以下方法來保存結(jié)果先進先出(FIFO)或先進后出(FILO)方法;基于壽命(1ine 12)的方法,該方法中先刪除最舊信息;用途方法,其中先刪除最少使用的信息,或者自上一次使用時間最長的信息;基于大小的方法以及基于按鍵的方法。在另一例中,不保存結(jié)果,直到足夠的“空閑”內(nèi)存可用為止。其他方法、或者這些方法的變化會考慮產(chǎn)生結(jié)果所需的時間量和/或資源。
一旦數(shù)據(jù)發(fā)生的變化會影響結(jié)果以及/或者到期時段期滿,就向系統(tǒng)300發(fā)送—無效消息。一般而言,無效消息包括無效信息的至少一部分。查詢管理器120可以接收無效消息。然后,查詢管理器120通知客戶機310(和/或為接收無效消息而注冊的任何其他組件)。然后,客戶機310可以調(diào)用內(nèi)存管理器220來使所保存的結(jié)果無效(如刪除、擦除、覆寫和移動)。如果無效信息內(nèi)指示自動刷新結(jié)果,就執(zhí)行隨后的查詢來產(chǎn)生新結(jié)果,新結(jié)果可以被保存在內(nèi)存320中并且被像客戶機310這樣的組件所使用。采用上述技術(shù)可以通過在不一致結(jié)果上保存新結(jié)果而減少對不一致結(jié)果的刪除。
應(yīng)該理解,無效注冊系統(tǒng)100、無效內(nèi)存管理系統(tǒng)200以及數(shù)據(jù)庫注冊和無效系統(tǒng)300還可以采用組件來注冊數(shù)據(jù)庫(如數(shù)據(jù)庫表、數(shù)據(jù)表和表格)、檢測數(shù)據(jù)庫的變化、確定是否注冊了已變化的數(shù)據(jù)庫、以及/或者發(fā)送指示注冊數(shù)據(jù)庫已變化的消息。
盡管圖1-3是說明系統(tǒng)100-300的組件的框圖,然而可以理解,環(huán)境存儲體110、查詢管理器120、內(nèi)存管理器220、客戶機310和內(nèi)存320可以用一個或多個計算機組件來實現(xiàn),組件的屬于已在此定義。因此應(yīng)該理解,可以在計算機可讀媒介上存儲計算機可執(zhí)行組件,所述計算機可執(zhí)行組件用于實現(xiàn)系統(tǒng)100-300、環(huán)境存儲體110、查詢管理器120、內(nèi)存管理器220、客戶機310和內(nèi)存320,按照本發(fā)明,所述計算機可讀媒介包括、但不限于ASIC(專用集成電路)、CD(光盤)、DVD(數(shù)字化視頻光盤)、ROM(只讀存儲器)、軟盤、硬盤、EEPROM(電可擦除可編程只讀存儲器)以及存儲棒。
參照圖4,說明了按照本發(fā)明一方面的示例性的基于web的內(nèi)存無效系統(tǒng)400?;趙eb的內(nèi)存無效系統(tǒng)400包括web服務(wù)器405、相關(guān)性組件410、環(huán)境組件420、查詢管理器430、服務(wù)器440、數(shù)據(jù)庫服務(wù)器450、內(nèi)存存儲器460、本地內(nèi)存470、高速內(nèi)存480、其他內(nèi)存490(如遠程高速內(nèi)存)、應(yīng)用程序492以及輔助層494。
Web服務(wù)器405可以訪問包括頁面指示(如上述的注釋)的網(wǎng)頁。頁面指示可用于指出將保存web應(yīng)答,以及在相關(guān)數(shù)據(jù)庫變化時和/或當?shù)狡跁r段期滿時應(yīng)該使所保存的應(yīng)答無效。Web服務(wù)器405可以使用頁面指示、調(diào)用相關(guān)性組件410(如對象或推導(dǎo)的對象)、以及便于把無效信息存儲在環(huán)境組件420中。
相關(guān)性組件410獲得唯一標識符,例如全局唯一的標識符,即GUID,用于標識要與隨后查詢相關(guān)聯(lián)的高速緩存的應(yīng)答。相關(guān)性組件410向環(huán)境組件420提供該唯一標識符以及各種其他的無效信息(如上所述)。一般而言,無效信息包括無效字符串(如,GUID、機器名、端口、地址和隊列名、以及任選的驗證信息、加密和協(xié)議選項)、服務(wù)信息和超時(如數(shù)據(jù)庫變化和時間期滿的超時)。然而,上述僅僅是說明性的,而不限制無效信息。
當調(diào)用查詢管理器430(如查詢管理器110)來查詢數(shù)據(jù)庫時,查詢管理器430與環(huán)境組件420相連,并且獲得相關(guān)的無效信息。然后,查詢引擎420把所述查詢和無效信息發(fā)送到數(shù)據(jù)庫服務(wù)器450內(nèi)的服務(wù)器440(如動態(tài)的和靜態(tài)的)。根據(jù)返回到應(yīng)用程序492的結(jié)果而對數(shù)據(jù)庫440執(zhí)行查詢。無效信息留在數(shù)據(jù)庫服務(wù)器450內(nèi),并且提供web服務(wù)器405上的相關(guān)性組件410以及服務(wù)器440所返回的結(jié)果之間的關(guān)聯(lián)。
在接收到查詢結(jié)果后,web服務(wù)器產(chǎn)生全部或部分的應(yīng)答。Web服務(wù)器405可以輪詢相關(guān)性組件410以確定在產(chǎn)生應(yīng)答時是否發(fā)生數(shù)據(jù)庫變化,然后決定是否保存結(jié)果。如果確定要保存結(jié)果,則web服務(wù)器405可以采用內(nèi)存存儲器460以便于把結(jié)果保存到本地內(nèi)存(如高速緩存)、高速內(nèi)存480(如高速緩存)和/或其他內(nèi)存490。一般而言,本地內(nèi)存470可以與應(yīng)用程序490相關(guān)聯(lián),高速內(nèi)存480可以與輔助層494(如HTTP.sys)相關(guān)聯(lián)。否則,可以使用應(yīng)答以及/或者不保存而刪除應(yīng)答。
當發(fā)生的數(shù)據(jù)庫變化會影響所保存的web應(yīng)答時,以及/或者當?shù)狡跁r段期滿時,服務(wù)器440會向相關(guān)性組件410發(fā)送無效消息。然后,相關(guān)性組件410然后發(fā)信號通知該變化(如通過引發(fā)一個事件并設(shè)定一個標志)。內(nèi)存存儲器460接收該信號并且使應(yīng)答無效?;蛘?,當接收到無效消息時,可以采用自動刷新來執(zhí)行查詢以獲得并保存一致結(jié)果。自動刷新會覆寫一致結(jié)果并且/或者在保存一致結(jié)果前刪除不一致結(jié)果。
接著參照圖5,說明了按照本發(fā)明一方面的示例性安全性技術(shù)。系統(tǒng)500包括web服務(wù)器405、數(shù)據(jù)庫服務(wù)器450以及使web服務(wù)器496和數(shù)據(jù)庫服務(wù)器450操作上耦合的安全層510。
如上所述,查詢引擎410與環(huán)境組件420相連以獲得接收查詢請求后的無效信息。然后,查詢引擎420把所述查詢和無效信息從web服務(wù)器405發(fā)送到數(shù)據(jù)庫服務(wù)器450內(nèi)的服務(wù)器440。
前述的無效信息可以包括像全局唯一標識符(即GUID)這樣的唯一標識符。GUID提供了一種安全性機制,該機制可用于減少對模擬數(shù)據(jù)庫變化和時間段期滿的惡意企圖。例如,在本發(fā)明一方面,在接收到數(shù)據(jù)庫查詢注冊請求時,在運行時間創(chuàng)建GUID,從而減少了“猜測”或仿造GUID的機會。接著使用GUID來標識要被無效的所保存的結(jié)果的集合。
如果確定GUID無效(如它不標識要被無效的一組保存結(jié)果),則可以與GUID一起忽略并/或刪除無效請求。在另一例中,虛假的無效請求可以被轉(zhuǎn)發(fā)給系統(tǒng)管理員并且用于跟蹤始發(fā)位置。
圖6說明了按照本發(fā)明一方面的示例性無效消息傳遞技術(shù)。系統(tǒng)600包括web服務(wù)器405、數(shù)據(jù)庫服務(wù)器450以及使web服務(wù)器405和數(shù)據(jù)庫服務(wù)器450操作上耦合的通信接口610。在接收到查詢請求后,查詢引擎430從環(huán)境組件420獲得無效信息,并把所述查詢和無效信息發(fā)送到數(shù)據(jù)庫服務(wù)器450。根據(jù)被發(fā)送到web服務(wù)器405的結(jié)果來執(zhí)行查詢,其中結(jié)果可以被保存在內(nèi)存中并且不止一次地使用,來減少執(zhí)行基本類似查詢的次數(shù)。
在結(jié)果從數(shù)據(jù)庫服務(wù)器450返回之后,無效信息留在數(shù)據(jù)庫服務(wù)器450內(nèi),并且當發(fā)生數(shù)據(jù)庫變化來把相關(guān)的保存結(jié)果定位在web服務(wù)器405中時可以采用該無效信息。應(yīng)該理解,可以采用各種機制把無效信息存儲在數(shù)據(jù)庫服務(wù)器450中,并且可以使用各種技術(shù)把無效信息與變化的數(shù)據(jù)庫相匹配并且發(fā)送無效消息。
當發(fā)生數(shù)據(jù)庫變化時,構(gòu)成無效消息并且把它在通信接口610上從數(shù)據(jù)庫服務(wù)器450發(fā)送到web服務(wù)器496。無效消息可以包括無效信息的至少一部分。
應(yīng)該理解,數(shù)據(jù)庫變化可以被提交以及/或者被保持。例如,在本發(fā)明一方面,可以采用異步無效消息傳遞模型,其中無論是否在通信接口610上發(fā)送無效消息以及/或者無論所保存的結(jié)果是否已被無效,都提交數(shù)據(jù)庫變化。
在本發(fā)明另一方面,可以采用同步無效信息傳遞模型,其中阻止數(shù)據(jù)庫變化,直到在通信接口610上發(fā)出無效消息為止,以及/或者直到所保存的結(jié)果已經(jīng)被無效為止。異步模型提供伸縮性,而同步模型提供了可靠性。為了便于理解而提供了上述內(nèi)容,這不限制本發(fā)明,例如按照本發(fā)明也可以采用各種其他的推拉方法(pushand/or pull)。
圖7說明了按照本發(fā)明一方面的示例性分布式無效系統(tǒng)700。無效系統(tǒng)700包括第一web應(yīng)用程序7101到第N個web應(yīng)用程序710N,N是大于等于1的整數(shù);第一環(huán)境組件7201到第M個環(huán)境組件720M,M是大于等于1的整數(shù);第一數(shù)據(jù)庫7301到第K個數(shù)據(jù)庫730K,K是大于等于1的整數(shù);以及共享內(nèi)存740。
第一web應(yīng)用程序7101到第N個web應(yīng)用程序710N可以總稱為web應(yīng)用程序710,第一環(huán)境組件7201到第M個環(huán)境組件720N可以總稱為環(huán)境組件720,第一數(shù)據(jù)庫7301到第K個數(shù)據(jù)庫730K可以總稱為數(shù)據(jù)庫730。
可以采用web應(yīng)用程序710(如對象實例)來查詢數(shù)據(jù)庫以滿足用戶請求。一般而言,在例示了web應(yīng)用程序710后,與web應(yīng)用程序710相關(guān)的無效消息就被匯編并被存儲在相應(yīng)的環(huán)境組件720(如環(huán)境存儲體110)中。無效信息一般包括上述的唯一標識符、無效字符串、服務(wù)信息以及到期時段;然而,無效信息不限于此。
當由至少一個web應(yīng)用程序710接收到查詢請求時,采用相應(yīng)的環(huán)境存儲體來獲得相關(guān)的無效信息。然后,通過通信協(xié)議(如以太網(wǎng)和Firewire協(xié)議)把查詢和無效信息發(fā)送到數(shù)據(jù)庫730。注意到查詢可以采用一個或多個數(shù)據(jù)庫730來滿足用戶請求。
在執(zhí)行查詢之后,把結(jié)果返回到至少一個web應(yīng)用程序710。為了確保結(jié)果是一致的,可以檢驗數(shù)據(jù)庫730以確定在查詢后但在產(chǎn)生要被存儲的結(jié)果之前是否發(fā)生會影響結(jié)果的變化。如果確定發(fā)生變化,則使用并且/或者刪除結(jié)果。如果確定結(jié)果是一致的,則結(jié)果可以被使用并且/或者被保存在內(nèi)存中,例如共享內(nèi)存740。因此,本發(fā)明還減少了不止一個web應(yīng)用程序710執(zhí)行對基本類似結(jié)果的查詢。
當至少一個數(shù)據(jù)庫720發(fā)生數(shù)據(jù)庫變化時,并且/或者當?shù)狡跁r段期滿時,至少一個數(shù)據(jù)庫720把無效消息發(fā)送到一個或多個web應(yīng)用程序710以及/或者共享內(nèi)存740。應(yīng)該理解,(如一個)無效消息可以包括不止一個web應(yīng)用程序地址和/或其他信息(如其他無效消息),以便通知不止一個web應(yīng)用程序受該變化的影響。
在本發(fā)明另一方面,發(fā)出不止一個無效消息,其中無效消息與web應(yīng)用程序和/或共享內(nèi)存740相關(guān)聯(lián)并且被發(fā)送到后兩者。在還有一方面,可以廣播無效消息,使得基本上所有web應(yīng)用程序710和/或共享內(nèi)存740都能接收無效消息。Web然后應(yīng)用程序710可以決定是否接受并且/或者作用于無效消息。應(yīng)該理解,向共享內(nèi)存740提供無效消息減少了必須向web應(yīng)用程序提供無效消息的要求。例如,開始請求的web應(yīng)用程序無須存在以使所保存的結(jié)果無效。此外,共享所保存結(jié)果的任何應(yīng)用程序都無須存在以使所保存的結(jié)果無效。因此,本發(fā)明提供了一種機制,即使當開始應(yīng)用程序和/或任何共享應(yīng)用程序不再存在時也刪除不一致結(jié)果和/或空閑內(nèi)存。
在接收到無效消息以后,可以接著使所保存的結(jié)果無效。例如,可以從內(nèi)存中刪除所保存的結(jié)果,或者將其標記為不一致?;蛘?,可以采用自動刷新來執(zhí)行隨后的查詢以獲得要保存到內(nèi)存的不一致結(jié)果。自動刷新可以進一步與隨后查詢一起發(fā)送無效信息,以便在經(jīng)刷新的結(jié)果變得不一致時自動地使它們無效。
圖8說明了按照本發(fā)明一方面的示例性web服務(wù)無效系統(tǒng)800。Web服務(wù)無效系統(tǒng)800包括客戶機805、防火墻810、內(nèi)存820、第1個web服務(wù)8301到第N個web服務(wù)830N、N是大于等于1的整數(shù);以及數(shù)據(jù)庫840。第一web服務(wù)8301到第N個web服務(wù)830N可以總稱為web服務(wù)830。
客戶機805通過防火墻810與web服務(wù)830相連。防火墻810可以控制對web服務(wù)830的訪問。例如,防火墻810可以限制客戶機805到web服務(wù)830的訪問以及/或者拒絕到web服務(wù)830的訪問。此外,可以采用防火墻810來限制客戶機805到數(shù)據(jù)庫840和內(nèi)存820的訪問。應(yīng)該理解,到web服務(wù)器830、數(shù)據(jù)庫840和/或內(nèi)存820的訪問會是相互排斥的。例如,客戶機805可以對web服務(wù)器830完全訪問,而不訪問數(shù)據(jù)庫840和/或內(nèi)存820。然而,客戶機805可以對web服務(wù)器830、數(shù)據(jù)庫840和/或內(nèi)存820有完全訪問或者不訪問。
還可以采用防火墻810來限制對數(shù)據(jù)庫840和/或內(nèi)存820中保存的結(jié)果的web服務(wù)訪問。在本發(fā)明一方面,一個或多個web服務(wù)830可以向數(shù)據(jù)庫840發(fā)送查詢(如由客戶機805開始)、無效信息(如上所述)、以及像路由信息這樣的其他信息。如果一個或多個web服務(wù)830具有許可(clearance),則可以把發(fā)出的信息傳遞至數(shù)據(jù)庫840。在本發(fā)明另一方面,一個或多個web服務(wù)830可以向數(shù)據(jù)庫840發(fā)送查詢、無效信息及其他信息,而不通過防火墻810傳遞信息。
在執(zhí)行查詢后,數(shù)據(jù)庫840返回查詢結(jié)果,查詢結(jié)果用于產(chǎn)生要被存儲的結(jié)果。在本發(fā)明一方面,結(jié)果被返回至防火墻810,其中防火墻810采用一種機制(如內(nèi)存管理器120)把這些結(jié)果保存在內(nèi)存820中。在本發(fā)明另一方面,結(jié)果可以被返回至web服務(wù)830(如通過防火墻810和/或在防火墻810周圍)。然后,web服務(wù)830可以把結(jié)果存儲在內(nèi)存820中,其中通過訪問內(nèi)存820,結(jié)果對于web服務(wù)830是可用的,然后把結(jié)果提供給客戶機805。
所保存的結(jié)果可以被web服務(wù)830訪問,web服務(wù)830具有采用內(nèi)存820的許可。例如,web服務(wù)830N可以發(fā)送一查詢,該查詢會返回與內(nèi)存820中保存的結(jié)果的一個子集基本相似的結(jié)果。如果web服務(wù)830N能訪問內(nèi)存820,web服務(wù)830N就可以使用所保存的結(jié)果,而不是執(zhí)行查詢。如果web服務(wù)830N不能訪問內(nèi)存820,則執(zhí)行查詢。
當發(fā)生會影響內(nèi)存820中保存額結(jié)果的數(shù)據(jù)庫變化時,以及/或者當?shù)狡跁r段期滿時,數(shù)據(jù)庫840可以向防火墻810發(fā)送無效消息。如果無效消息具有許可,則可以使用該消息使內(nèi)存820中的不一致結(jié)果無效。在本發(fā)明一方面,可以另外向web服務(wù)830發(fā)送一個通知,來通知web服務(wù)830結(jié)果已被無效。另一方面,web服務(wù)830會周期性地輪詢內(nèi)存820以確定結(jié)果是否仍然一致,而不是向web服務(wù)830發(fā)送通知。另一例中,當web服務(wù)830發(fā)送查詢和無效信息時,搜索內(nèi)存820以確定類似的結(jié)果是否被保存在內(nèi)存820中,以及類似結(jié)果是否一致。
可以采用自動刷新來重新查詢一致結(jié)果并且重新發(fā)送無效信息,從而當下一個數(shù)據(jù)庫變化發(fā)生時,以及/或者當對應(yīng)于數(shù)據(jù)庫數(shù)據(jù)(結(jié)果)的時段期滿時,進行無效。
圖9-12說明了按照本發(fā)明的方法。為了說明的簡潔,用一系列動作來描述這些方法。應(yīng)該理解,本發(fā)明不限于所說明的動作以及/或者動作順序,例如動作可以以各種順序發(fā)生以及/或者同時發(fā)生,并且具有這里未給出和描述的其他動作。而且,不需要所有所述的動作來實現(xiàn)按照本發(fā)明的方法。此外,本領(lǐng)域的技術(shù)人員會理解,或者可以用一系列相互關(guān)聯(lián)的狀態(tài)(如狀態(tài)圖)或事件來表示方法。
參照圖9,說明了示例性的自動無效方法900。在參考數(shù)字910處,舉例說明了一個實例(如對象、推導(dǎo)的對象、客戶機、應(yīng)用程序、客戶應(yīng)用程序和相關(guān)性實例)。在920處,與該實例相關(guān)的無效信息被存儲在環(huán)境中。無效信息一般包括無效字符串、服務(wù)信息和超時,如上所述。應(yīng)該理解,可以舉例說明不止一個實例,而且不止一個實例可以把無效信息存儲在類似環(huán)境中。
在參考數(shù)字930處,該方法等待接收執(zhí)行查詢的請求。一旦接收到一個請求,就檢索出被存儲在環(huán)境中并且與實例相關(guān)聯(lián)的無效信息。然后在940處,查詢和無效信息被發(fā)送到如其中駐留數(shù)據(jù)庫的動態(tài)和/或靜態(tài)服務(wù)器。
現(xiàn)在參照圖10,說明了按照本發(fā)明一方面的圖9的繼續(xù)。參照參考數(shù)字1010,方法900等待查詢結(jié)果。在接收并處理了查詢結(jié)果后,在1020處檢驗查詢中所使用的數(shù)據(jù)庫,以確認在查詢和產(chǎn)生可高速緩存的結(jié)果的時間之間是否發(fā)生變化。這確保了結(jié)果是一致的。
如果在查詢和接收結(jié)果的時間之間未發(fā)生變化,則在1030內(nèi)把結(jié)果存儲在內(nèi)存中,并且在1040中提供給實例。所保存的結(jié)果可用于進一步的采用,例如減少對會返回相似結(jié)果的查詢的執(zhí)行。如果在1020處確定在查詢和產(chǎn)生要被存儲的結(jié)果之間未發(fā)生變化,則在1040處一般把結(jié)果提供給實例并且不保存。然而,實例可以決定存儲并使用不一致的結(jié)果??梢圆捎酶鞣N技術(shù)來通知其他實例結(jié)果是不一致的。例如,只要當實例試圖采用不一致的結(jié)果時就可以設(shè)定一個標志來產(chǎn)生引發(fā)事件。
接著在圖11處,說明了按照本發(fā)明一方面的示例性的基于數(shù)據(jù)變化的無效方法1100。參照1100,發(fā)生數(shù)據(jù)庫變化,發(fā)送并接收無效消息。無效消息一般包括一部分無效信息。例如,可以包括唯一標識符以便于標識要被無效的一組不一致結(jié)果。
應(yīng)該理解,可以使數(shù)據(jù)庫變化與發(fā)送/接收同步,其中當接收到和/或作用于無效消息時提交數(shù)據(jù)庫變化。在另一例中,采用異步技術(shù),其中無論是否發(fā)生發(fā)送以及/或者接收到消息,都提交數(shù)據(jù)庫變化。
在1120處,所保存的結(jié)果被無效。應(yīng)該理解,可以采用使結(jié)果無效的各種方法。例如,結(jié)果可以從內(nèi)存中被刪除、被標記為無效以及/或者被覆寫。在1130處,可以執(zhí)行自動刷新來查詢當前的且一致的結(jié)果,并且為隨后的數(shù)據(jù)庫變化重新注冊無效消息。
現(xiàn)在參照圖12,說明了按照本發(fā)明一方面的另一個示例性的基于時間的無效方法。參照1210,無效信息內(nèi)包括的時間段期滿。隨后,發(fā)送并接收無效消息。無效消息可以包括一部分無效信息。例如,可以包括唯一標識符來標識要被無效的一組不一致結(jié)果。在1220處,所保存的結(jié)果被無效(如類似于上面)。在1210處,可以執(zhí)行自動刷新來查詢當前的且一致的結(jié)果,并且為隨后的期滿而重新注冊無效消息。
為了提供本發(fā)明各方面的附加環(huán)境,圖13和下列討論提供了對其中可實現(xiàn)本發(fā)明各方面的適當操作環(huán)境1310的簡要、一般的描述。雖然用計算機可執(zhí)行指令的一般環(huán)境描述了本發(fā)明,比如可由一個或多個計算機或其他設(shè)備執(zhí)行的程序模塊,然而本領(lǐng)域的技術(shù)人員會認識到,本發(fā)明也可以與其他程序模塊結(jié)合實現(xiàn),并且/或者用硬件和軟件的組合來實現(xiàn)。然而一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。操作環(huán)境1310僅僅是適當操作環(huán)境的一個例子,而不限制本發(fā)明的用途或功能范圍。其他適用于本發(fā)明的公知計算機系統(tǒng)、環(huán)境和/或配置包括、但不限于個人計算機、手提或膝上型設(shè)備、微處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程用戶電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括上述系統(tǒng)或設(shè)備的分布式計算環(huán)境、等等。
參照圖13,用于實現(xiàn)本發(fā)明各方面的示例性環(huán)境1310包括計算機1312。計算機1312包括處理單元1314、系統(tǒng)內(nèi)存1316和系統(tǒng)總線1318。系統(tǒng)總線1318耦合系統(tǒng)組件,系統(tǒng)組件包括但不限于把系統(tǒng)內(nèi)存1316耦合到處理單元1314。處理單元1314可以是各種可用處理器的任何一個。雙重微處理器及其他多處理器結(jié)構(gòu)也可以用作處理單元1314。
系統(tǒng)總線1318可以使幾種總線結(jié)構(gòu)的任一種,包括內(nèi)存總線或內(nèi)存控制器、外圍總線或外部總線、以及/或者使用多種可用總線結(jié)構(gòu)的本地總線,多種總線結(jié)構(gòu)包括、但不限于8位總線、工業(yè)標準結(jié)構(gòu)(ISA)、微通道結(jié)構(gòu)(MSA)、擴展ISA(EISA)、智能驅(qū)動設(shè)備(IDE)、VESA本地總線(VLB)、外圍組件互連(PCI)、通用串行總線(USB)、高級圖形端口(AGP)、個人電腦內(nèi)存卡國際互連總線(PCMCIA)以及小型計算機系統(tǒng)接口(SCSI)。
系統(tǒng)內(nèi)存1316包括易失性內(nèi)存1320和非易失性內(nèi)存1322?;据斎?輸出系統(tǒng)(BIOS)被存儲在非易失性存儲器1322中,它包括如啟動期間在計算機1312內(nèi)元件間傳遞的例程。通過說明但不限制,非易失內(nèi)存1312可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦除ROM(EEPROM)或閃存。易失性內(nèi)存1320可以包括隨機存取存儲器(RAM),它充當外部高速緩存內(nèi)存。通過說明但不限制,RAM在許多形式中可用,比如同步RAM(SRAM)、動態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙重數(shù)據(jù)速率SDRAM(DDR SDRAM)、高級SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus RAM(DRRAM)。
計算機1312還包括可移動/不可移動的、易失性/非易失性的計算機存儲媒介。圖13說明了例如磁盤存儲器1324。磁盤存儲器1324包括、但不限于像磁盤驅(qū)動、軟盤驅(qū)動、磁帶驅(qū)動、Jaz驅(qū)動、Zip驅(qū)動、LS-100驅(qū)動、閃存卡或存儲棒這樣的設(shè)備。此外,磁盤存儲器1324可以包括獨立的存儲媒介,或者與其他存儲媒介組合,其他存儲媒介包括、但不限于像光盤只讀設(shè)備(CD-ROM)、CD可記錄驅(qū)動器(CD-R驅(qū)動器)、CD可寫驅(qū)動器(CD-RW驅(qū)動器)或數(shù)字化視頻光盤只讀驅(qū)動器(DVD-ROM)這樣的光盤驅(qū)動器。為了便于把磁盤存儲設(shè)備1324連到系統(tǒng)總線1318,一般使用像接口1326這樣的可移動或不可移動的接口。
應(yīng)該理解,圖13描述了充當適當操作環(huán)境1310中描述的用戶和基本計算機資源之間的中間者的軟件。這種軟件包括操作系統(tǒng)1328。操作系統(tǒng)1328可以被存儲在磁盤存儲器1324上,用于控制并分配計算機系統(tǒng)1312的資源。系統(tǒng)應(yīng)用程序1330通過操作系統(tǒng)1328到程序模塊1332和程序數(shù)據(jù)1334利用資源管理,上述三者或被存儲在系統(tǒng)內(nèi)存1316中,或被存儲在磁盤存儲器1324上。應(yīng)該理解,本發(fā)明可以用各種操作系統(tǒng)或操作系統(tǒng)的組合來實現(xiàn)。
用戶通過輸入設(shè)備1336把命令或信息輸入到計算機1312中。輸入設(shè)備1336包括、但不限于像鼠標這樣的指示設(shè)備、軌跡球、記錄筆、觸摸板、鍵盤、麥克風、數(shù)碼相機、web照相機等等。這些及其他輸入設(shè)備經(jīng)由接口端口1338通過系統(tǒng)總線1318連到處理單元1314。接口端口1338包括例如串行端口、并行端口、游戲端口和通用串行總線(USB)。輸出設(shè)備1340使用某些與輸入設(shè)備1336相同類型的端口。因此例如,可以使用USB端口向計算機1312提供輸入,并且從計算機1312把信息輸出到輸出設(shè)備。提供輸出適配器1342來說明在其他輸出設(shè)備1340中存在某些需要特殊適配器的輸出設(shè)備1340,像監(jiān)視器、揚聲器和打印機。輸出設(shè)備1342包括、但不限于在輸出設(shè)備1340和系統(tǒng)總線1318之間提供連接手段的顯卡和聲卡。應(yīng)該注意到,其他設(shè)備和/或設(shè)備系統(tǒng)既提供了輸入能力又提供了輸出能力,比如遠程計算機1344。
計算機1312可以在使用到一臺或多臺遠程計算機(比如遠程計算機1344)的邏輯連接的網(wǎng)絡(luò)化環(huán)境中工作。遠程計算機1344可以是個人計算機、服務(wù)器、網(wǎng)絡(luò)PC、工作站、基于微處理器的設(shè)備、對等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點、等等,并且一般包括關(guān)于計算機1312的許多或全部元件。為了簡潔,與遠程計算機1344一起說明了內(nèi)存存儲設(shè)備1346。遠程計算機1344通過網(wǎng)絡(luò)接口1348邏輯上連接到計算機1312,然后通過通信連接1350物理地連接。網(wǎng)絡(luò)接口1348包含像局域網(wǎng)(LAN)和廣域網(wǎng)這樣的通信網(wǎng)絡(luò)。LAN技術(shù)包括光纖分布式數(shù)據(jù)接口(FDDI)、銅線分布式數(shù)據(jù)接口(CDDI)、以太網(wǎng)/IEEE 802.3、令牌環(huán)/IEEE 802.5等等。WAN技術(shù)包括、但不限于點對點鏈路、像集成服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)及其變化這樣的電路交換網(wǎng)絡(luò)、以及數(shù)字用戶線(DSL)。
通信連接1350是指用于把網(wǎng)絡(luò)接口1348連到總線1318的硬件/軟件。雖然為了說明簡潔示出通信連接1350在計算機1312內(nèi),然而它也可以在計算機1312外部。連到網(wǎng)絡(luò)接口1348所必要的硬件/軟件包括,僅為了示例性目的,內(nèi)部和外部技術(shù),比如包括常規(guī)電話等級調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和DSL調(diào)制解調(diào)器在內(nèi)的調(diào)制解調(diào)器、ISDN適配器以及以太網(wǎng)卡。
上面描述的內(nèi)容包括本發(fā)明的示例。當然它不可能描述為了描述本發(fā)明所使用的組件和方法的每個可想得到的組合,但是本領(lǐng)域的普通技術(shù)人員可以認識到,本發(fā)明的許多進一步組合和交換是可能的。因而,本發(fā)明試圖包含落在所附權(quán)利要求的精神和范圍內(nèi)的所有這樣的替代、修改和變化。而且,在某種程度上術(shù)語“包括”或用于描述詳細描述,或用于描述權(quán)利要求,該術(shù)語與權(quán)利要求中被用作連詞的“包括”有類似的包括性作用。
權(quán)利要求
1.一種內(nèi)存無效注冊系統(tǒng),包括環(huán)境存儲體,用于存儲無效消息;查詢管理器,用于把數(shù)據(jù)庫查詢及相關(guān)的無效信息從所述環(huán)境存儲體提交到數(shù)據(jù)庫;以及內(nèi)存,用于存儲基于數(shù)據(jù)庫查詢的結(jié)果,其中所述相關(guān)的無效信息由數(shù)據(jù)庫來維持。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述無效信息包括無效字符串、服務(wù)信息和到期時段中的至少一個。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述無效字符串包括唯一標識符、機器名、端口、地址和隊列名中的至少一個。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述無效字符串還包括驗證、加密和協(xié)議信息中的至少一個。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述查詢管理器與環(huán)境存儲體一起工作,以便獲得與查詢一起提交的無效信息。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,與所存儲結(jié)果相關(guān)的無效信息與多個查詢相關(guān)聯(lián)。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,在如無效消息中定義的會影響所存儲結(jié)果的數(shù)據(jù)庫變化、以及時間期滿中的至少一個以后,所述查詢管理器接收無效消息。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫變化被阻止,直到所述變化被同步傳遞為止。
9.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫變化在被異步傳遞時完成。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,在接收到所述無效消息后自動地使內(nèi)存中保存的結(jié)果無效。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于,在接收到所述無效消息后自動地重新查詢數(shù)據(jù)庫以更新內(nèi)存中保存的結(jié)果。
12.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述唯一標識符在運行時間產(chǎn)生,用于定義所保存結(jié)果與源查詢之間的關(guān)聯(lián)。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述唯一標識符用于把一個或多個查詢與一個保存的結(jié)果成組。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述唯一標識符被用作安全性機制來減少虛假無效信息和虛假無效消息中的至少一個。
15.如權(quán)利要求1所述的系統(tǒng),其特征在于還包括用于協(xié)調(diào)結(jié)果存儲和無效的內(nèi)存管理器。
16.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述自動無效包括以下幾個中的至少一個從內(nèi)存中刪除不一致結(jié)果;覆寫內(nèi)存中的不一致結(jié)果;以及標記內(nèi)存中的不一致結(jié)果。
17.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述內(nèi)存包括高速緩存。
18.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述內(nèi)存由多個組件所共享。
19.如權(quán)利要求1所述的系統(tǒng),其特征在于,它是基于SQL的環(huán)境所采用的。
20.如權(quán)利要求1所述的系統(tǒng),其特征在于還包括注釋和頁面指示中的至少一個,用于請求把所述結(jié)果存儲在內(nèi)存中由隨后請求所使用,并且當所存儲的結(jié)果變得與數(shù)據(jù)庫不一致時請求使結(jié)果無效。
21.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述環(huán)境存儲體便于無效信息到查詢的傳遞所述查詢,用于產(chǎn)生所存儲的結(jié)果。
22.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述所存儲的結(jié)果包括以下中的至少一個原始數(shù)據(jù)、經(jīng)變換的數(shù)據(jù)、經(jīng)去標準化的數(shù)據(jù)、集合數(shù)據(jù)、總計數(shù)據(jù)、透視表數(shù)據(jù)、從原始數(shù)據(jù)產(chǎn)生的對象、部分web應(yīng)答、完全web應(yīng)答以及可查詢的數(shù)據(jù)。
23.一種自動內(nèi)存無效系統(tǒng),包括環(huán)境,用于存儲一個或多個組件的無效信息;查詢管理器,用于提交數(shù)據(jù)庫查詢和無效信息;以及一個或多個內(nèi)存,用于存儲從數(shù)據(jù)庫查詢產(chǎn)生的結(jié)果。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于,所述一個或多個內(nèi)存包括本地高速緩存內(nèi)存、輔助高速緩存內(nèi)存以及遠程高速內(nèi)存。
25.如權(quán)利要求23所述的系統(tǒng),其特征在于還包括安全層,所述安全層與查詢引擎和安全性組件一起工作,用于減少用虛假無效信息和虛假無效消息中的至少一個進行的惡意查詢。
26.如權(quán)利要求23所述的系統(tǒng),其特征在于還包括一種機制,所述機制用于提供以下的至少一種當所保存的結(jié)果變得不一致時自動使所保存的結(jié)果無效;以及通知組件所保存的結(jié)果已經(jīng)變得不一致。
27.如權(quán)利要求23所述的系統(tǒng),其特征在于還包括一個防火墻作為安全層。
28.如權(quán)利要求27所述的系統(tǒng),其特征在于,所述一個或多個內(nèi)存駐留在所述防火墻中。
29.如權(quán)利要求27所述的系統(tǒng),其特征在于,所述防火墻便于一個或多個內(nèi)存中的結(jié)果存儲、結(jié)果訪問和結(jié)果無效中的至少一種。
30.如權(quán)利要求27所述的系統(tǒng),其特征在于,所述一個或多個內(nèi)存可以同時被所述一個或多個組件所訪問。
31.一種保存已注冊結(jié)果的方法,所述結(jié)果變得不一致時自動地無效,所述方法包括把無效信息存儲在環(huán)境中;與相關(guān)查詢一起發(fā)送所述無效信息;以及把從查詢產(chǎn)生的結(jié)果保存在內(nèi)存中。
32.如權(quán)利要求31所述的方法,其特征在于還包括在查詢后但是在存儲結(jié)果之前檢驗被查詢的數(shù)據(jù)庫是否有變化,以便確保一致的結(jié)果。
33.如權(quán)利要求31所述的方法,其特征在于,所述無效信息包括無效字符串、服務(wù)信息和到期時段中的至少一個。
34.如權(quán)利要求33所述的方法,其特征在于,所述無效字符串包括標識符、機器名、端口、地址和隊列名中的至少一個。
35.如權(quán)利要求34所述的方法,其特征在于,所述無效字符串還包括驗證、加密和協(xié)議信息中的至少一個。
36.如權(quán)利要求31所述的方法,其特征在于,所述內(nèi)存是高速緩存內(nèi)存。
37.一種當從數(shù)據(jù)庫查詢產(chǎn)生的結(jié)果變得不一致時自動地使所保存的結(jié)果無效的方法,包括接收一無效消息,所述無效消息包括無效信息的至少一部分,以及使用所述至少一部分無效信息使所保存的結(jié)果無效。
38.如權(quán)利要求37所述的方法,其特征在于還包括自動地使結(jié)果無效。
39.如權(quán)利要求37所述的方法,其特征在于還包括自動地重新查詢以產(chǎn)生并保存一致結(jié)果。
40.如權(quán)利要求37所述的方法,其特征在于,所述無效消息與會影響所存儲結(jié)果的數(shù)據(jù)庫變化以及期滿時段中的至少一個相關(guān)聯(lián)。
41.在兩個或多個計算機組件間發(fā)送的數(shù)據(jù)分組,所述數(shù)據(jù)分組便于把結(jié)果存儲在內(nèi)存中并且當所存儲的結(jié)果變得不一致時自動地使所存儲的結(jié)果無效,所述數(shù)據(jù)分組包括存儲在環(huán)境中的無效信息,所述無效信息可以用查詢來檢索并發(fā)送,并且在無效消息中用來自動地使所保存的結(jié)果無效。
42.一種用于存儲內(nèi)存無效和注冊系統(tǒng)的計算機可執(zhí)行組件的計算機可讀媒介,所述內(nèi)存無效和注冊系統(tǒng)用于保存結(jié)果并且在結(jié)果變得不一致時使結(jié)果無效,所述媒介包括環(huán)境,用于存儲與組件相關(guān)的無效信息;查詢管理器,用于從環(huán)境獲得無效信息并且與所請求的查詢一起發(fā)送所述無效信息;以及內(nèi)存管理器,用于便于保存結(jié)果并且使不一致的結(jié)果無效。
43.一種用于使內(nèi)存中保存的結(jié)果無效的系統(tǒng),包括獲得請求查詢數(shù)據(jù)庫的組件的無效信息的裝置;與查詢一起發(fā)送無效信息的裝置;用于接收無效消息的裝置;以及用于使內(nèi)存中存儲的不一致結(jié)果無效的裝置。
44.如權(quán)利要求43所述的系統(tǒng),其特征在于還包括自動地重新查詢數(shù)據(jù)庫是否有一致結(jié)果的裝置。
45.如權(quán)利要求43所述的系統(tǒng),其特征在于還包括驗證無效信息和無效消息不虛假的裝置。
全文摘要
本發(fā)明涉及把從數(shù)據(jù)庫查詢產(chǎn)生的結(jié)果保存在內(nèi)存中用于當前和隨后的使用、并且當所保存的結(jié)果變得不一致時使它們無效,從而減少了對不一致結(jié)果的采用的系統(tǒng)和方法,所述結(jié)果如原始數(shù)據(jù)、對象、可查詢數(shù)據(jù)集合、全部或部分web應(yīng)答。所保存的結(jié)果可以被一個或多個組件所采用,并且一般在隨后查詢會返回基本類似的結(jié)果時被使用。因此,所述系統(tǒng)和方法減少了對基本上冗余查詢的執(zhí)行,冗余查詢會降低性能并且消耗資源。當發(fā)生會影響所保存結(jié)果的一致性的數(shù)據(jù)庫變化時,以及/或者當期滿時段時,可以發(fā)送無效消息,其中采用該消息使所保存的結(jié)果無效。因此,所述系統(tǒng)和方法減少了對不一致保存結(jié)果的采用。此外,可以采用自動重新查詢技術(shù)自動地刷新不一致結(jié)果以獲得一致結(jié)果。
文檔編號G06F12/00GK1534520SQ20041003229
公開日2004年10月6日 申請日期2004年3月29日 優(yōu)先權(quán)日2003年3月28日
發(fā)明者M·J·皮索, R·M·海華德, C·克雷納曼, P·Y·-K·吳, J·F·諾斯, A·W·史密斯, O·特魯特納, F·M·瓦斯, -K 吳, M J 皮索, 史密斯, 啄陜, 海華德, 瓦斯, 程嗇, 諾斯 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
育儿| 枝江市| 改则县| 合川市| 库车县| 库尔勒市| 宁国市| 乌审旗| 大田县| 通州区| 青海省| 城步| 怀宁县| 秦安县| 宁德市| 枣强县| 朝阳区| 晋城| 阿瓦提县| 江阴市| 邹平县| 高邮市| 舞阳县| 青河县| 孟村| 东方市| 彭泽县| 菏泽市| 五指山市| 鹤庆县| 罗定市| 固镇县| 徐州市| 台南县| 抚松县| 宣汉县| 新源县| 河曲县| 永登县| 三亚市| 泌阳县|