專利名稱:用于寄存和檢索可以用來使緩存記錄無效的數(shù)據(jù)庫(kù)表格變化信息的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及管理緩存內(nèi)容。尤其是,本發(fā)明涉及用于寄存和檢索可以用于 無效緩存記錄的,牟表格變化信息。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)和相關(guān)技術(shù)影響社會(huì)的許多方面。確實(shí),處理信息的計(jì)算機(jī)系 統(tǒng)性能已經(jīng)改變了我們生活和工作的方式。計(jì)算機(jī)系統(tǒng)現(xiàn)在通常執(zhí)行一系列優(yōu) 先于手動(dòng)執(zhí)行的計(jì)算機(jī)系統(tǒng)出現(xiàn)的主要的任務(wù)(例如,文字處理,制表,和數(shù) 據(jù)庫(kù)管理)。近來,通過計(jì)箅機(jī)系統(tǒng)可以電子通信并共享數(shù)據(jù)的有線或無線計(jì) 算機(jī)網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)已經(jīng)被彼此耦合了。結(jié)果,在計(jì)t^幾中處理的許多任務(wù)(
例如,語(yǔ)音通信,訪問電子郵件,電子會(huì)議,網(wǎng)絡(luò)瀏覽)包JSM:有線和/^E
線計(jì)鋭幾網(wǎng)絡(luò)與一個(gè)或多個(gè)其它計(jì)算機(jī)系統(tǒng)電子通信。
特別地,萬維網(wǎng)("www")成為交流信息的重要機(jī)制。 一般來說,在 www上的內(nèi)容是在一客戶端/服務(wù)器模式中被訪問。在一個(gè)客戶^i十^l幾系統(tǒng)
上的一個(gè)"網(wǎng)絡(luò)瀏覽器"發(fā)送一個(gè)訪問通過在服務(wù)器計(jì)算機(jī)系統(tǒng)上的"網(wǎng)絡(luò)月艮 務(wù)器"被維持的內(nèi)容的請(qǐng)求。到適當(dāng)?shù)臅r(shí)候,網(wǎng)絡(luò)服務(wù)器辦賣地掛共附青求的 內(nèi)容給該網(wǎng)絡(luò)瀏覽器。
一種使內(nèi)容對(duì)于網(wǎng)絡(luò)瀏覽器來說是可用的方式是為了給網(wǎng)絡(luò)開發(fā)商創(chuàng)建一 個(gè)包括軒個(gè)硬盤-編碼的計(jì)嶽幾可讀指令的靜態(tài)網(wǎng)頁(yè),例如,舉例來說,細(xì)
文本標(biāo)記語(yǔ)言中("HTML")。然后該靜態(tài)網(wǎng)頁(yè)被存儲(chǔ)在一個(gè)對(duì)網(wǎng)絡(luò)服務(wù)器 可訪問的位置(例如,在服務(wù)器的計(jì)算機(jī)系統(tǒng),在一網(wǎng)絡(luò)可連接的數(shù)據(jù)庫(kù)中, 等等)。響應(yīng)于來自網(wǎng)絡(luò)瀏覽器的一個(gè)請(qǐng)求,網(wǎng)絡(luò)服務(wù)器可以將該靜態(tài)網(wǎng)頁(yè)傳送至網(wǎng)絡(luò)瀏覽器(例如,作為用戶輸入的結(jié)果導(dǎo)致網(wǎng)絡(luò)瀏覽器訪問一個(gè)相應(yīng)于
該靜態(tài)網(wǎng)頁(yè)的統(tǒng)一資源定位器("URL"))。由于靜態(tài)網(wǎng)頁(yè)的接收,網(wǎng)絡(luò)瀏 覽器可以在客戶端計(jì)算機(jī)系統(tǒng)上表示該靜態(tài)網(wǎng)頁(yè)的內(nèi)容(例如,文本,圖形, 等等)。
為了保存網(wǎng)絡(luò)資源,網(wǎng)絡(luò)瀏覽器也可以在客戶端計(jì)算機(jī)系統(tǒng)(例如,在系 統(tǒng)存儲(chǔ)器或在一大容量存儲(chǔ)設(shè)備中)上緩存一個(gè)靜態(tài)網(wǎng)頁(yè)的副本。當(dāng)靜態(tài)網(wǎng)頁(yè) 被不斷地請(qǐng)求時(shí),該網(wǎng)絡(luò)瀏覽器會(huì)在初始化一個(gè)新網(wǎng)絡(luò)請(qǐng)求到網(wǎng)絡(luò)服務(wù)器之前 嘗試從緩存中定位該靜態(tài)網(wǎng)頁(yè)。如果該靜態(tài)網(wǎng)頁(yè)被定位在緩存中,網(wǎng)絡(luò)瀏覽器 會(huì)檢索被緩存的靜態(tài)網(wǎng)頁(yè)而不是初始化一個(gè)網(wǎng)絡(luò)請(qǐng)求。由于本地存儲(chǔ)的數(shù)據(jù)可 以被更有效地訪問,因此在客戶端計(jì)算機(jī)系統(tǒng)上緩存靜態(tài)網(wǎng)頁(yè)會(huì)減少與靜態(tài)網(wǎng) 頁(yè)顯示的內(nèi)容相關(guān)的潛伏性。
對(duì)靜態(tài)網(wǎng)頁(yè)的頻繁的請(qǐng)求也可能也會(huì)被緩存在一個(gè)服務(wù)器計(jì)^m系統(tǒng)中( 一般涉及諸如輸出緩存)以減少潛伏性。例如, 一個(gè)頻繁請(qǐng)求的靜態(tài)網(wǎng)頁(yè)可以 被緩存在服務(wù)器計(jì)算機(jī)系統(tǒng)的系統(tǒng)存儲(chǔ)器中以至于不必每次當(dāng)該靜態(tài)網(wǎng)頁(yè)被請(qǐng) 求時(shí)都必須從大容量的存儲(chǔ)設(shè)備中檢索該靜態(tài)網(wǎng)頁(yè)。因?yàn)樗鼈兊撵o態(tài)本質(zhì),靜 態(tài)網(wǎng)頁(yè)可以被緩存(在一客戶端或服務(wù)器計(jì)算機(jī)系統(tǒng)中)很長(zhǎng)的時(shí)間周期,潛 在性不確定。
然而,靜態(tài)網(wǎng)頁(yè)的使用主要是ffiih實(shí)時(shí)或自定義數(shù)據(jù)在網(wǎng)絡(luò)瀏覽器的存在。 一麟說,在網(wǎng)絡(luò)瀏覽器中需要存在的是動(dòng) ^ (例如,日常比例圖片,股 票現(xiàn)價(jià),等等)。因此,在動(dòng)態(tài)網(wǎng)頁(yè)中的包括動(dòng)態(tài)數(shù)據(jù)的要在一網(wǎng)絡(luò)瀏覽器中 顯示的機(jī)構(gòu)已經(jīng)被開發(fā)出來了 。 一個(gè)用于包含在動(dòng)態(tài)網(wǎng)頁(yè)中動(dòng)態(tài)數(shù)據(jù)的機(jī)構(gòu)是 作為計(jì)嶽幾可執(zhí)行指令(一般稱為"腳本")的模i^f牛使用的。
腳本可以使用腳本語(yǔ)言來開發(fā),例如,像這樣的,JavaScript和VBScript,
和在一頁(yè)面文件(例如, 一活動(dòng)服務(wù)器頁(yè)面("ASP")文件)中嵌AHTML 和擴(kuò)展^H己語(yǔ)言("XML")指令。當(dāng)接收到一個(gè)動(dòng)態(tài)網(wǎng)頁(yè)的請(qǐng)求時(shí),服務(wù)器 計(jì)算機(jī)系統(tǒng)將請(qǐng)求重發(fā)到一個(gè)處理相應(yīng)頁(yè)面文件的處理模塊中(例如,一ASP 模塊)。處理?!溃邪ㄔ陧?yè)面文件的任何腳本,并且生成適當(dāng)?shù)膍ML指 令返回給相應(yīng)的請(qǐng)求。腳本可以包括用于從動(dòng)態(tài)位置訪問 的計(jì)飾可執(zhí)行 指令,例如,像這樣的,從一偉括當(dāng)前比例圖片劍殳票報(bào)價(jià)的數(shù)據(jù)庫(kù)。由于 腳本主要在接收請(qǐng)求時(shí)被執(zhí)行,因此腳本可以被用來生成包含實(shí)時(shí)數(shù)據(jù)的動(dòng)態(tài)網(wǎng)頁(yè)。
類似于靜態(tài)網(wǎng)頁(yè),動(dòng)態(tài)網(wǎng)頁(yè)也可以被緩存以提供對(duì)動(dòng)態(tài)網(wǎng)頁(yè)的更為有效的 訪問。然而,包括在動(dòng)態(tài)網(wǎng)頁(yè)中的動(dòng)態(tài)內(nèi)容(例如,價(jià)粉艮價(jià))對(duì)時(shí)間限制是 特別有效的(例如,直至贓動(dòng)態(tài)內(nèi)容位置處被檢索到的值已經(jīng)被改變)。 一般 來說,動(dòng)態(tài)內(nèi)容(例如,價(jià)粉艮價(jià))只會(huì)在一個(gè)很短的時(shí)間內(nèi)有效,例如,只 有幾秒鐘。當(dāng)動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容的值改變時(shí),緩存的動(dòng)態(tài)內(nèi)容就變得無效了。例如,
當(dāng)股票價(jià)格從$20.00變?yōu)?21.00,緩存的$20.00的值就是無效的(或者甚至是正 確的)。當(dāng)無效的動(dòng)態(tài)內(nèi)容仍然在緩存中,對(duì)于網(wǎng)絡(luò)服務(wù)器來說就有給網(wǎng)絡(luò)瀏 覽器提供錯(cuò)誤的動(dòng)態(tài)內(nèi)容的潛在性。例如,當(dāng)一個(gè)無效的股票價(jià)格仍然保存在 緩存中時(shí),網(wǎng)絡(luò)服務(wù)器可以從緩存中檢索到該無效的股票價(jià)格而不是重新執(zhí)行 一個(gè)腳本以從數(shù)據(jù)庫(kù)中檢索一更新過的股票價(jià)格。因此,已經(jīng)開發(fā)出了嘗試確 保緩存動(dòng)態(tài)內(nèi)容有效性的緩存管理機(jī)制。
一些緩存管理機(jī)制在指定的時(shí)間間隔中會(huì)自動(dòng)從緩存中移除動(dòng)態(tài)內(nèi)容,例 如,每十倂中。然而,如果動(dòng)態(tài)內(nèi)容的值在指定的時(shí)間間隔中改刻卩么緩存中 仍然存在一種無效的動(dòng)態(tài)內(nèi)容存在于緩存中的潛在性。例如,如果指定時(shí)間間 隔是五分鐘并且動(dòng)態(tài)內(nèi)容值在被緩存后一全H中更新,動(dòng)態(tài)內(nèi)容值是無效的但依
然會(huì)緩存至少四5H中。在這四辦中里,網(wǎng)絡(luò)服務(wù)器可能會(huì)不正確地檢索緩存的
動(dòng)態(tài)內(nèi)容值而不是執(zhí)行一個(gè)腳本去檢索該已經(jīng)更新的動(dòng)態(tài)內(nèi)容值。 而且,在指定時(shí)間間隔移除內(nèi)容會(huì)導(dǎo)致^^有效的tt^人緩存中移除。例如,
如果指定的時(shí)間間隔是十^H中并且動(dòng)態(tài)內(nèi)容值在被緩存后在十併中內(nèi)〗臓有效,
那么該動(dòng)態(tài)內(nèi)容值依然被從緩存中移除。因此,更有效檢索相應(yīng)后續(xù)請(qǐng)求的動(dòng)
態(tài)內(nèi)容值的潛在性被卩Iih。
其他緩存管理機(jī)制監(jiān)視存儲(chǔ)在服務(wù)器計(jì)^m系統(tǒng)中的文件(例如,XML文
件)并且當(dāng)被監(jiān)視的文件改變時(shí)使從監(jiān)視的文件得到的緩存動(dòng)態(tài)內(nèi)容值無效。 而其他緩存管理機(jī)制監(jiān)視緩存中的記錄并在其他緩存記錄無效時(shí)使一個(gè)緩存記 錄無效。因此, 一些緩存管理機(jī)制導(dǎo)致緩存記錄的有效性依賴于時(shí)間, 一個(gè)相 應(yīng)的文件,或其他相應(yīng)的緩存記錄。
然而,J賭的緩存管理機(jī)制(包括那對(duì)頓的時(shí)間,文件,和緩存^IM生)
對(duì)于使從計(jì)算機(jī)系統(tǒng)外部的地址中檢索到的緩存的動(dòng)態(tài)數(shù)據(jù)1K效還不是很合 適。例如,網(wǎng)絡(luò)瀏覽器可以請(qǐng)求一個(gè)包括來自數(shù)據(jù)庫(kù)中若干個(gè)不同的表格的動(dòng)態(tài)內(nèi)容值的網(wǎng)頁(yè)。因此, 一個(gè)具有合適腳本的頁(yè)面文件可以在服務(wù)器計(jì)^m系
統(tǒng)上被處理從而檢索動(dòng)態(tài)內(nèi)容值并且生成適當(dāng)?shù)腍TML指令。
然而,從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)要消耗網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)資源。如果在檢索的數(shù)據(jù) 上還要執(zhí)行計(jì)算,那么還要額外消耗服務(wù)器計(jì)算機(jī)系統(tǒng)資源。而且,可能會(huì)這 樣,服務(wù)器計(jì)算機(jī)系統(tǒng)同時(shí)詢問數(shù)據(jù)庫(kù)要求被包括在動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)的動(dòng)態(tài)內(nèi)容的 大量不同部分。也有可能大量服務(wù)器計(jì)算機(jī)系統(tǒng)每個(gè)都從相同的數(shù)據(jù)庫(kù)中訪問 動(dòng)態(tài)內(nèi)容。
因此, 一個(gè)單個(gè)的M庫(kù)可能會(huì)同時(shí)給大量的服務(wù)器計(jì)穀幾系統(tǒng)提供動(dòng)態(tài) 內(nèi)容,其中每個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng)同時(shí)詢問數(shù)據(jù)庫(kù)要求動(dòng)態(tài)內(nèi)容的不同部分。 結(jié)果,單個(gè)服務(wù)器成為在大量服務(wù)器計(jì)算機(jī)系統(tǒng)中的共享資源并且因此潛在限 制也縮小了。也就是,更多服務(wù)器計(jì)算機(jī)系統(tǒng)的額外增加會(huì)不必要地引起運(yùn)行 的增加,由于每個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng)至少受從單個(gè)數(shù)據(jù)庫(kù)中檢索內(nèi)容所需時(shí)間 的限制。而且,當(dāng)從緩存(例如在一指定間隔)中預(yù)先完全移除了內(nèi)容時(shí)服務(wù) 器計(jì)算機(jī)系統(tǒng)會(huì)被要求再次詢問數(shù)據(jù)庫(kù),甚至在緩存中的動(dòng)態(tài)內(nèi)容依然有效。 在多服務(wù)器環(huán)境中,緩存中內(nèi)容的預(yù)先完全移除會(huì)導(dǎo)致共享數(shù)據(jù)庫(kù)中的資源的 不必要的負(fù)擔(dān),因此,而且是很重要的,要限制可量測(cè)性。因此,依賴于配制 緩存中記錄的機(jī)制和使基于 庫(kù)中表格的變化的緩存記錄無效是有好處的。
發(fā)明
背景技術(shù):
中的前述問題已經(jīng)被本發(fā)明的原理所克服,其中導(dǎo)出了系統(tǒng),方 法,計(jì)算機(jī)程序產(chǎn)品,和用于注冊(cè)合檢索可以用來使緩存記錄無效的數(shù)據(jù)庫(kù)表 格變化信息的數(shù)據(jù)結(jié)構(gòu)。具有瀏覽器的客戶端計(jì)算機(jī)系統(tǒng)對(duì)可生成并提供網(wǎng)絡(luò)
響應(yīng)的(例如,網(wǎng)頁(yè)和/或網(wǎng)絡(luò)服務(wù)結(jié)果)服務(wù)器計(jì)^m系統(tǒng)是網(wǎng)絡(luò)可連接的。 服務(wù)器計(jì)^m系統(tǒng)至少訪問從數(shù)據(jù)庫(kù)中數(shù)據(jù)表格響應(yīng)的部分內(nèi)容。服務(wù)器計(jì)算 機(jī)系統(tǒng)保存可以存儲(chǔ)已提供內(nèi)容的緩存以提高后面提供相同內(nèi)容至安全客戶端 網(wǎng)絡(luò)請(qǐng)求的效率。
服務(wù)器計(jì)算機(jī)系統(tǒng)選擇一個(gè)包含在用來監(jiān)視數(shù)據(jù)變化的數(shù)據(jù)庫(kù)中(例如
SQL數(shù)據(jù)庫(kù))的 表格(例如,響應(yīng)于用戶輸入)。相應(yīng)于選定數(shù)據(jù)表格的
一條記錄被插入到一變化通知表中(也包含在數(shù)據(jù)庫(kù)中)。相應(yīng)的記錄包括版
本信息,例如,像這樣的, 一個(gè)對(duì)于被選定數(shù)據(jù)表的,變itlD。 一W蟲發(fā)器, 其導(dǎo) 定數(shù)據(jù)表的版本信息當(dāng)在選定數(shù)據(jù)表中的內(nèi)容被替換時(shí)在變化通知表中被更新。
口I^S于ffi^^中6^E內(nèi)容"歹咖,fiA,冊(cè)賒,^Mii^ri碌),在變
化通知表中的相應(yīng)版本信息被更新。有時(shí)或者響應(yīng)于檢索緩存內(nèi)容的請(qǐng)求,服 務(wù)器計(jì)算機(jī)系統(tǒng)查詢變化通知表相應(yīng)于數(shù)據(jù)庫(kù)中一或多個(gè)表的版本信息。 一個(gè) 查詢可以被配置為請(qǐng)求所有顯示在變化信息表中的監(jiān)視數(shù)據(jù)表的版本信息,請(qǐng) 求具有突出緩存臓性附tt視的l^的版本信息,^#1青求已變化(例如,通
過包括在Si旬中當(dāng)前版本信息)的^mii^表的版本信息。口向應(yīng)^"個(gè)査i旬,
更新的版本信息從數(shù)據(jù)庫(kù)中返回至鵬務(wù)器計(jì)算機(jī)系統(tǒng)?;跂嗽兊慕Y(jié)構(gòu), 庫(kù)可以返回,例如用于所有被監(jiān)視的數(shù)據(jù)表的版本信息,具有突出緩存f繊性
的!鵬視的數(shù)據(jù)表的版本信息,或新青求已z變化的lttMf^表的版本信息。
可替代地,服務(wù)器計(jì)算機(jī)系統(tǒng)可以發(fā)布一個(gè)查詢到變化表并請(qǐng)求將所發(fā)布 的查詢卩腺在劍艮務(wù)器計(jì)算機(jī)系統(tǒng)直到附青求的表的版本信息被更新。例如, 服務(wù)器計(jì)算機(jī)系統(tǒng)可以發(fā)布阻塞在服務(wù)器計(jì)算機(jī)系統(tǒng)上的査詢直到被當(dāng)前的版 本信息比一指定值大。發(fā)布的阻塞查詢可以被同步執(zhí)行,以至于在服務(wù)器計(jì)算 機(jī)系統(tǒng)上的一個(gè)相應(yīng)的線程不被卩腺并且當(dāng)結(jié)果可用時(shí)調(diào)用一個(gè)復(fù)查信號(hào)。
服務(wù)器計(jì)算機(jī)系統(tǒng)決定了緩存的內(nèi)容是依賴于一個(gè)數(shù)據(jù)表的(例如,作為 一個(gè)前面指定的數(shù)據(jù)庫(kù)緩存依賴性的一個(gè)結(jié)果)。服務(wù)器計(jì)^fl系統(tǒng)比較當(dāng)前 的版本信息(在接收表中的)和所緩存的版本信息(例如,與一部分緩存內(nèi)容 緩存在一起的版本信息)。這可以包括比較一接收的變4to和一緩存的變4to。 當(dāng)適當(dāng)時(shí),例如,當(dāng)在數(shù)據(jù)表中的內(nèi)容在基于數(shù)據(jù)表的一部分內(nèi)容被緩存后改 變時(shí),部分緩存的內(nèi)容就被從緩存中移除。因此,依賴于一 視的數(shù)據(jù)表的 緩存的內(nèi)容可以被適當(dāng)?shù)責(zé)o效并從緩存中被移除。適當(dāng)?shù)臒o效和移除緩存中的 內(nèi)容在一網(wǎng)絡(luò)響應(yīng)中會(huì)減少包括無效緩存內(nèi)容的服務(wù)器計(jì)算機(jī)系統(tǒng)的可能性。 而且,移除有效數(shù)據(jù)(例如,可以表示為與時(shí)間相依賴的數(shù)據(jù))的機(jī)會(huì)也因此 而減少了因此潛在地提高了網(wǎng)絡(luò)響應(yīng)發(fā)生的效率。
在一些實(shí)施例中,緩存的內(nèi)容就是以用于生成網(wǎng)絡(luò)響應(yīng)的)^和結(jié)果的形 式,例如表格式數(shù)據(jù),贈(zèng), 采集,或局部響應(yīng)。當(dāng)這些結(jié)果可以l細(xì)在 超過一個(gè)的網(wǎng)絡(luò)響應(yīng)的發(fā)生中時(shí)緩存這些中間結(jié)果是合適的,其中每個(gè)網(wǎng)絡(luò)響 應(yīng)包含額外的差異信息(例如,其他相關(guān)信息的定制或包含)。在其他一些實(shí) 施例中, 一個(gè)完整的網(wǎng)絡(luò)響應(yīng)被緩存。當(dāng)該完整的網(wǎng)絡(luò)響應(yīng)可以通過多個(gè)網(wǎng)絡(luò)
9請(qǐng)求共享時(shí)緩存該完整的網(wǎng)絡(luò)響應(yīng)是合適的。當(dāng)緩存一個(gè)完整的網(wǎng)絡(luò)響應(yīng)時(shí), 該網(wǎng)絡(luò)響應(yīng)可以在服務(wù)器計(jì)算機(jī)系統(tǒng)中被推遲并以低級(jí)別緩存,例如, 一個(gè)內(nèi) 核禾試的響i^爰存。因此,當(dāng)該網(wǎng)絡(luò)響應(yīng)無效時(shí),它就l鈔人低級(jí)別緩存中移除。
可以是這樣的,服務(wù)器計(jì)算機(jī)系統(tǒng)接收一個(gè)客戶端關(guān)于一網(wǎng)絡(luò)響應(yīng)的包括 被包含在數(shù)據(jù)庫(kù)中的ff請(qǐng)求內(nèi)容的網(wǎng)絡(luò)請(qǐng)求。數(shù)據(jù)表可以是一種對(duì)于其他可以
在數(shù)據(jù)表中替代內(nèi)容的應(yīng)用來說是可訪問的數(shù)據(jù)表,包括戶;H青求的內(nèi)容。月艮務(wù) 器計(jì)算機(jī)系統(tǒng)決定該被包含在網(wǎng)絡(luò)響應(yīng)中的至少一部分內(nèi)容當(dāng)前并未緩存在服 務(wù)器計(jì)算機(jī)系統(tǒng)中。服務(wù)器計(jì)算機(jī)系統(tǒng)從數(shù)據(jù)表中訪問這些戶斥請(qǐng)求的內(nèi)容并且 構(gòu)建該包括戶;fi青求內(nèi)容的網(wǎng)絡(luò)響應(yīng)。
月艮務(wù)器計(jì)算機(jī)系統(tǒng)為至少一部分所構(gòu)建的基于在網(wǎng)絡(luò)響應(yīng)構(gòu)建期間執(zhí)行的 命令的網(wǎng)絡(luò)響應(yīng)分配數(shù)據(jù)庫(kù)緩存的依賴性。分配一個(gè)數(shù)據(jù)庫(kù)緩存的依賴性可以 包括分配依賴于數(shù)據(jù)表的網(wǎng)絡(luò)響應(yīng)或分配基于從依賴于數(shù)據(jù)表的數(shù)據(jù)表中接收 的內(nèi)容。M庫(kù)緩存的依賴性可以通過指示的^頓或包含頁(yè)面文件(例如,在 活動(dòng)服務(wù)器頁(yè)面中("asp"))的程序代碼來分配,該頁(yè)面文件是在服務(wù)器 計(jì)算機(jī)系統(tǒng)被處理以構(gòu)建的該網(wǎng)絡(luò)響應(yīng)。至少一部分被構(gòu)建的網(wǎng)絡(luò)響應(yīng)被緩存 在服務(wù)器計(jì)算機(jī)系統(tǒng)上。因此,響應(yīng)于后續(xù)的被構(gòu)建的網(wǎng)絡(luò)響應(yīng)的網(wǎng)絡(luò)請(qǐng)求, 服務(wù)器計(jì)tm系統(tǒng)可以檢索該已緩存的被構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分。檢索 緩存內(nèi)容(潛在地為一完整的網(wǎng)絡(luò)響應(yīng))不僅保存了服務(wù)器計(jì)算機(jī)系統(tǒng)上的資 源(因?yàn)椴糠猪?yè)面文件未被執(zhí)行)以及網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)資源(因?yàn)閿?shù)據(jù)庫(kù)沒有被 查詢從而數(shù)據(jù)未被在網(wǎng)絡(luò)中傳送)。因此,通過減少處理過程和響應(yīng)于網(wǎng)絡(luò)請(qǐng) 求的資源要求減少了潛伏性的存在,而m減少同時(shí)訪問共享資源例如數(shù)據(jù)庫(kù) 量測(cè)性則提高了。
本發(fā)明的更多的特性和優(yōu)點(diǎn)將在下述說明書中披露,并且可從說明書中部 分通曉,或者可通過本發(fā)明的實(shí)例中出導(dǎo)出。本發(fā)明的的特性和優(yōu)點(diǎn)可以通過 儀器的方式或者所附的權(quán)禾腰求書中指出的特定的結(jié)合被實(shí)現(xiàn)或包含。本發(fā)明 的這些和其他一些特點(diǎn)從下面的描述和權(quán)利要求書中將變得更為完整清楚,或 者可以從本發(fā)明后面闡述的實(shí)施例中導(dǎo)出。
為了描述上述方式和本發(fā)明的包含的其他優(yōu)點(diǎn)以及特性,上面簡(jiǎn)明描述的 本發(fā)明的更為詳細(xì)的描述將通過參考包括所附附圖的指定實(shí)施例來演示。應(yīng)該領(lǐng)會(huì)到那些附圖的描述僅僅是用來描述某些典型的實(shí)施例的而不是來限定其范 圍的,本發(fā)明將通過使用所附的附圖來描述并解釋額潛的特性及細(xì)節(jié)
圖l示出了依據(jù)本發(fā)明原理的一個(gè)配置了依賴于其上的緩存記錄的數(shù)據(jù)表 中的變化無效的設(shè)備的網(wǎng)絡(luò)結(jié)構(gòu)的例子。
圖2示出了依據(jù)本發(fā)明原理的一種用于配置一個(gè)數(shù)據(jù)庫(kù)以提供表格變化通 知的方法的一個(gè)流程圖的例子。
圖3示出了依據(jù)本發(fā)明原理的一種用于使緩存內(nèi)容部分無效的方法的一個(gè) 流程圖的例子。
圖4示出了依據(jù)本發(fā)明原理的一種用于訪問被客戶端計(jì)算機(jī)系統(tǒng)請(qǐng)求顯示 的方法的一個(gè)流程圖的例子。
圖5示出了一種用于本發(fā)明原鵬合的操作環(huán)境。 優(yōu)選實(shí)施例的詳細(xì)描述
本發(fā)明涉及方法,系統(tǒng),計(jì)算機(jī)禾旨產(chǎn)品,和用于注冊(cè)和檢索可以用來使 緩存記錄無效的數(shù)據(jù)庫(kù)表格變化信息的繊結(jié)構(gòu)。具有瀏覽器的客戶端計(jì)對(duì)幾 系統(tǒng)對(duì)于可以生成和提供網(wǎng)絡(luò)響應(yīng)給客戶端計(jì)^l幾系統(tǒng)(例如,網(wǎng)頁(yè)禾P/或網(wǎng)絡(luò) 服務(wù)的結(jié)果)的服務(wù)器計(jì)算機(jī)系統(tǒng)是可網(wǎng)絡(luò)連接的。服務(wù)器計(jì)算機(jī)系統(tǒng)至少?gòu)?數(shù)據(jù)庫(kù)中的數(shù)據(jù)表中訪問網(wǎng)絡(luò)響應(yīng)的部分內(nèi)容。服務(wù)器計(jì)算機(jī)系統(tǒng)包括一個(gè)可 以存儲(chǔ)所樹共內(nèi)容(包括來自 表的內(nèi)容)的緩存(例如,^E^、統(tǒng)存儲(chǔ)區(qū)中) 以提高所后提供相同的內(nèi)容至安全客戶端網(wǎng)絡(luò)請(qǐng)求的效率。
服務(wù)器計(jì)算機(jī)系統(tǒng)(例如,響應(yīng)于用戶輸入)配置了數(shù)據(jù)庫(kù)中的一個(gè)數(shù)據(jù) 表以在當(dāng)數(shù)據(jù)表中的內(nèi)容被替換(例如,插入,刪除,更新)時(shí)提供一個(gè)關(guān)于
更新的版本信息(例如,改'加)的變^i知表。月艮務(wù)器計(jì)^m系統(tǒng)不時(shí)地査
詢?cè)撟儃 知表或者響應(yīng)于檢索所緩存內(nèi)容以請(qǐng)求相應(yīng)數(shù)據(jù)表的已更新的版本 信息。在響應(yīng)中,數(shù)據(jù)庫(kù)提供相應(yīng)于該查詢的數(shù)據(jù)表的已更新的版本信息。服 務(wù)器計(jì)算機(jī)系統(tǒng)可以4OT已更新的版本信息以使緩存記錄(例如,基于預(yù)先分 配的 庫(kù)緩存依賴性)無效。
在一些實(shí)施例中,服務(wù)器計(jì)算機(jī)系統(tǒng)接收一用于包括包含在數(shù)據(jù)表中的所 請(qǐng)求內(nèi)容的網(wǎng)絡(luò)響應(yīng)的客戶端網(wǎng)絡(luò)請(qǐng)求。服務(wù)器計(jì)算機(jī)系統(tǒng)決定被包含在網(wǎng)絡(luò) 響應(yīng)中的內(nèi)容的至少一部分當(dāng)前沒有緩存在服務(wù)器計(jì)算機(jī)系統(tǒng)中。服務(wù)器計(jì)算
禾;i^鄉(xiāng)i^Ai^表中訪問jm青求的內(nèi)容并且構(gòu)建該網(wǎng)絡(luò)響應(yīng)以包括戶;fi青求的內(nèi)容。服務(wù)器計(jì)^m系統(tǒng)給基于在構(gòu)建該網(wǎng)絡(luò)響應(yīng)期間所執(zhí)行的命令所構(gòu)建的網(wǎng)絡(luò)響 應(yīng)的至少一部分分配了一數(shù)據(jù)庫(kù)緩存依賴性。至少一部分所構(gòu)建的網(wǎng)絡(luò)響應(yīng)被 緩存在服務(wù)器計(jì)^^幾系統(tǒng)中。
本發(fā)明的一些實(shí)施例可以包含特定的用途或一般用途計(jì)算機(jī),其包括各種 各樣計(jì)算機(jī)硬件和軟件的計(jì)算機(jī),下面將具體闡述。特別地,在本發(fā)明的范圍 內(nèi)的實(shí)施例包括用于攜帶或具有計(jì)算機(jī)可執(zhí)行指令或存儲(chǔ)于其上的數(shù)據(jù)結(jié)構(gòu)的
計(jì)算機(jī)可讀媒體。這種計(jì)算機(jī)可讀媒體可以是任何可以通過特定應(yīng)用計(jì)^m或 一般應(yīng)用計(jì)算機(jī)訪問的可用媒體。舉個(gè)例子,但并不限于此,這種計(jì)算機(jī)可讀
媒體可以包含RAM, ROM, EEPROM, CD^ROM或其他物理存儲(chǔ)媒體,例如
光學(xué)磁盤存儲(chǔ),磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備,或^M其他可以以計(jì)算機(jī)可執(zhí) 行指令或繊結(jié)構(gòu)的形式用來記載或存儲(chǔ)所需禾將代碼的方法的介質(zhì)并且該介 質(zhì)可以被特定應(yīng)用計(jì)算機(jī)和一般應(yīng)用計(jì)算機(jī)訪問的。當(dāng)信息通過網(wǎng)絡(luò)或其他與 計(jì)算機(jī)的通信連接(硬件線路,無線,或硬件線路和無線結(jié)合的連接)被傳送 或提供時(shí),該計(jì)算機(jī)可以適當(dāng)?shù)匕言撨B接視為一計(jì)算機(jī)可讀介質(zhì)。因此,任何 這種連接可以稱為一計(jì)算機(jī)可讀介質(zhì)。上述方式的結(jié)合也可以包含在計(jì)算機(jī)可 讀介質(zhì)范圍內(nèi)。計(jì)算機(jī)可執(zhí)行指令包括,例如,會(huì)導(dǎo)致一般應(yīng)用計(jì)算機(jī),特殊 應(yīng)用計(jì)算機(jī),或特殊應(yīng)用處理設(shè)備,例如一GPU去進(jìn)行Ht定功肖^或一組功能 的指令和繊。
在該描述中和在后面的權(quán)利要求中,"計(jì)算機(jī)系統(tǒng)"被定義為一個(gè)或多個(gè) 軟件模塊, 一或多個(gè)硬件模塊,或它們的結(jié)合,它們結(jié)合在一起以處理指令或 電子數(shù)據(jù)。例如,計(jì)算機(jī)系統(tǒng)的定義包括個(gè)人計(jì)算機(jī)的硬件元件,軟件模塊也 一樣,例如個(gè)人計(jì)算機(jī)的操作系統(tǒng)。模塊的物理設(shè)計(jì)是不重要的,計(jì)算機(jī)系統(tǒng) 包括一個(gè)或多個(gè)通過網(wǎng)絡(luò)耦合的計(jì)算機(jī)。同樣地,計(jì)算l幾系統(tǒng)也可以包括一個(gè) 單個(gè)的其內(nèi)部模i央(例如存儲(chǔ)器和處理器) 一起工作處理指令和電子數(shù)據(jù)的物 理設(shè)備(例如一移動(dòng)電話或個(gè)人數(shù)字助理"PDA")。
在該描述中和在后面的權(quán)利要求中, 一"網(wǎng)絡(luò)響應(yīng)"被定義為一人類可讀 的頁(yè)面,例如,f総樣的, 一網(wǎng)頁(yè),和/棘自網(wǎng)絡(luò)服務(wù)的結(jié)果。網(wǎng)頁(yè)可以從網(wǎng) 絡(luò)檢索,例如,f総樣的,通過訪問相應(yīng)的統(tǒng)一資源定位器("URL")的萬 維網(wǎng)("WWW")。網(wǎng)頁(yè)可以包括個(gè)一或多個(gè)可顯示在網(wǎng)絡(luò)瀏覽器上的超文 本^H己語(yǔ)言("HTML")指令,例如,j紘樣的,瀏覽器102。網(wǎng)絡(luò)服錄供用于不同應(yīng)用和不同資源之間進(jìn)行通信(用戶交互作用的潛在依賴性)的機(jī)制 而不必開發(fā)用戶指令。網(wǎng)絡(luò)服務(wù)可以集成一些不同的技術(shù),例如,像這樣的,
用于iH己數(shù)據(jù)的擴(kuò)展^H己語(yǔ)言("XML"),用于傳送 的簡(jiǎn)單*訪問協(xié) 議("SOAP"),用于說明可用服務(wù)的網(wǎng)絡(luò)服務(wù)說明語(yǔ)言("WSDL"),和 用于列出可用服務(wù)的通用說明,發(fā)現(xiàn)和^i吾言("UDDI")。網(wǎng)絡(luò)服務(wù)可以 共享事務(wù)邏輯,數(shù)據(jù),和通過網(wǎng)絡(luò)的程序界面進(jìn)行處理。
在該描述中和在后面的權(quán)利要求中,"網(wǎng)絡(luò)請(qǐng)求"被定義為對(duì)于"網(wǎng)絡(luò)響 應(yīng)"的請(qǐng)求。也可以是這樣,用戶在用戶界面輸入適當(dāng)?shù)拿钜猿跏蓟痪W(wǎng)絡(luò) 請(qǐng)求。例如,用戶在客戶端計(jì)算機(jī)系統(tǒng)101的瀏覽器102可以輸Aig當(dāng)?shù)拿钜?訪問一相應(yīng)網(wǎng)頁(yè)的URL。另一方面,也可以通過應(yīng)用來初始化一網(wǎng)絡(luò)請(qǐng)求。例 如,在客戶端計(jì)^fl系統(tǒng)101的網(wǎng)絡(luò)服務(wù)應(yīng)用可以初始化一網(wǎng)絡(luò)請(qǐng)求至服務(wù)器計(jì) 算浙系統(tǒng)l 11的網(wǎng)絡(luò)服務(wù)應(yīng)用。
本領(lǐng)域的技術(shù)人員將會(huì)明白本發(fā)明可以應(yīng)用在許多種計(jì)嶽il^統(tǒng)酉歷之中, 包括!個(gè)人計(jì)飾!膝上鶘多處理器系統(tǒng)!微機(jī),大型計(jì)嶽/L及麟似。 本發(fā)明也可以使用在包括本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)的分布式系統(tǒng)環(huán)境中使用,它 們通過網(wǎng)絡(luò)相連(或者通過硬件線路相連,無線相連,或者通過硬件線路和無 線的結(jié)合相連) 一起執(zhí)行任務(wù),在分布式系統(tǒng)環(huán)境中,程序模塊和相關(guān)數(shù)據(jù)結(jié) 構(gòu)可以位于本iM遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
現(xiàn)在來看圖l,圖l示出了依據(jù)本發(fā)明原理的一個(gè)配置了依賴于其上的緩存 記錄和基于數(shù)據(jù)表中的變化無效的設(shè)備的網(wǎng)絡(luò)結(jié)構(gòu)100的例子。網(wǎng)絡(luò)結(jié)構(gòu)100中 的矩形元件(例如,瀏覽器102,緩存界面模塊m,響應(yīng)結(jié)構(gòu)模塊133,數(shù)據(jù)庫(kù) 界面模塊136,觸發(fā)器167,和觸發(fā)器177)表示fiyt本發(fā)明原理的可執(zhí)行模塊。 巻形元件(緩存121和126,響應(yīng)內(nèi)容134,記錄151和156,以及數(shù)據(jù)163和164) 表示由可執(zhí)行模i央處理的繊。因此,網(wǎng)絡(luò)結(jié)構(gòu)勵(lì)中描述的可執(zhí)行模i央和巻形 元件根據(jù)本發(fā)明的原理相互協(xié)作。
在網(wǎng)絡(luò)結(jié)構(gòu)ioo中,客戶^i十^m系統(tǒng)ioi和服務(wù)器計(jì)^m系統(tǒng)i 11M相應(yīng)
連接103禾卩104分別與網(wǎng)絡(luò)106相連的。網(wǎng)絡(luò)106可以是局域網(wǎng)絡(luò)("LAN"), 廣域網(wǎng)("WAN"),或者甚至是因特網(wǎng)??蛻舳擞?jì)算機(jī)系統(tǒng)101包括瀏覽器 102,它可以織網(wǎng)頁(yè)的網(wǎng)絡(luò)請(qǐng)求(例如,超文本傳送協(xié)議("HTTP")請(qǐng)求) 并接收響應(yīng)于一網(wǎng)絡(luò)請(qǐng)求所返回計(jì)算機(jī)系統(tǒng)101的網(wǎng)頁(yè)。瀏覽器102也可以在客戶端計(jì)對(duì)幾系統(tǒng)10lilM示所接收的網(wǎng)頁(yè)內(nèi)容(例如,文本,圖形,視頻,和音
頻)??蛻舳擞?jì)算機(jī)系統(tǒng)ioi也可以包括與在服務(wù)器計(jì)^n系統(tǒng)m上的相應(yīng)的
網(wǎng)絡(luò)服務(wù)應(yīng)用通信的網(wǎng)絡(luò)服務(wù)應(yīng)用。
服務(wù)器計(jì)算機(jī)系統(tǒng)lll包括可以構(gòu)建響應(yīng)客戶端網(wǎng)絡(luò)請(qǐng)求的網(wǎng)絡(luò)響應(yīng)的響
應(yīng)結(jié)構(gòu)模塊B3。響應(yīng)結(jié)構(gòu)模塊133可以處理頁(yè)面文件,例如,f総樣的,動(dòng)態(tài) 服務(wù)器頁(yè)面("ASP")文件,以構(gòu)建網(wǎng)頁(yè)。頁(yè)面文件可以包括多種不同語(yǔ)言 形成附旨令和/或命令,例如,像這樣的,超文^^H己語(yǔ)言("HTML"),擴(kuò) 展禾^H己語(yǔ)言("XML" ) , JavaScript,禾OVBScript。響應(yīng)結(jié)構(gòu)模塊133可以處理 頁(yè)面文件中的指令和/或命令以生成網(wǎng)絡(luò)響應(yīng)的內(nèi)容。響應(yīng)結(jié)構(gòu)模塊133可以被配 置以生成網(wǎng)頁(yè),例如,從瀏覽器響應(yīng)于一網(wǎng)絡(luò)請(qǐng)求,并配置以生成網(wǎng)絡(luò)服務(wù)結(jié) 果,例如,從一網(wǎng)絡(luò)服務(wù)響應(yīng)一網(wǎng)絡(luò)請(qǐng)求。
服務(wù)器計(jì)tm系統(tǒng)lll通鵬接術(shù)與繊庫(kù)141 (例如,一SQL翻庫(kù))相 連。婁娥庫(kù)界面模塊136可以M^接107傳送繊庫(kù)命令至繊庫(kù)141。繊庫(kù) 命令可以f細(xì)來M^庫(kù)141中鵬內(nèi)容(例如,添加,刪除,或改變行或i碌) 或從其中檢索內(nèi)容。數(shù)據(jù)庫(kù)界面模塊136可以接收用戶輸入(例如,從m或鼠 標(biāo)),其可以被翻譯成數(shù)據(jù)庫(kù)命令并被傳送到數(shù)據(jù)庫(kù)141??商娲?,數(shù)據(jù)庫(kù)界 面模塊136可以從在一網(wǎng)絡(luò)響應(yīng)中包含內(nèi)容的響應(yīng)結(jié)構(gòu)模塊133接收輸入。在響 應(yīng)中,數(shù)據(jù)庫(kù)界面?!姥?36可以從數(shù)據(jù)庫(kù)141中檢索內(nèi)容并提供該已檢索的內(nèi)容 至響應(yīng)結(jié)構(gòu)模塊133。響應(yīng)結(jié)構(gòu)模塊133可以將在響應(yīng)內(nèi)容134中的靜態(tài)內(nèi)容與所
檢索的內(nèi)容相結(jié)合以構(gòu)建一個(gè)適當(dāng)?shù)木W(wǎng)絡(luò)響應(yīng)。
數(shù)據(jù)庫(kù)141可以存儲(chǔ)包含在數(shù)據(jù)庫(kù)141中的數(shù)據(jù)表的版本信息。數(shù)據(jù)庫(kù)界面 模塊136可以檢索數(shù)據(jù)表的版本信息并^f共所檢索的版本信息至緩存界面模土央 132中。緩存界面模i央132可以利用所檢索的版本信息來決定何時(shí)使緩存l 12中的 記錄無效(并在之后刪除)。例如,基于所檢索的版本信息緩存界面模塊132可 以決定何時(shí)使緩存記錄12域緩存記錄126無效。緩存l 12可以是一個(gè)具有降低潛 在性的存儲(chǔ)位置,例如,像這樣的,月艮務(wù)器計(jì)嶽/L系統(tǒng)lll的系統(tǒng)存儲(chǔ)器。
版本信息可以被存儲(chǔ)在表示被包含在數(shù)據(jù)庫(kù)141中的數(shù)據(jù)表的版本的版本 信息 結(jié)構(gòu)中。版本信息繊結(jié)構(gòu)的一個(gè)域可以是表示鑒定翻銜41中翻 表的飾的to)域。一^ID可以是一個(gè)值,例如,可以唯一f斜只一個(gè)繊表 的,包括數(shù)字和/或字母的字符。例如, D "銷售彭"可以用來識(shí)別表162。版本信息數(shù)據(jù)結(jié)構(gòu)的另一個(gè)域可以是一條示由一相應(yīng)細(xì)識(shí)另啲娜表 的一變ftJD的變ito域。變^ID域可以是一個(gè)值,例如,可以識(shí)別識(shí)別 表 的當(dāng)前版本的,包括數(shù)字的字符。當(dāng)數(shù)據(jù)表中的內(nèi)容被改變時(shí),相應(yīng)的變ttJD 可以被更新(例如,M增加該變ttJD)。例如,當(dāng)內(nèi)^^皮插入到表172中時(shí), 變jtol58可以被遞增。版本信息數(shù)據(jù)結(jié)構(gòu)的另一個(gè)域可以是表示 庫(kù)141何
時(shí)開始尋找由相應(yīng),識(shí)別識(shí)另啲數(shù)據(jù)表的版本的日期的日期域。例如,曰期 154可以說明何時(shí) 庫(kù)141開始尋找表162的版本信息。因此,版本信息 結(jié) 構(gòu)可以是下面的形式 版本信息
飾域 變4加域
日期域
一個(gè)或多個(gè)版本信息數(shù)據(jù)結(jié)構(gòu)可以被存儲(chǔ)為包含在數(shù)據(jù)庫(kù)141中的變化通 知表的記錄。例如,變化通知表142包掛己錄151和156。而且,在變^M知表142 中每一組包括三個(gè)豎向的省略號(hào)^變4M知表142可以包括其他記錄。相應(yīng)于 數(shù)據(jù)表的在變4M知表142中的齡記錄者敞配置以尋才繊本信息。例如,記錄 151和156可以分別與表162和172對(duì)應(yīng)。因此,飾152可以存儲(chǔ)一個(gè)用以識(shí)別識(shí) 別表162的值,變〗加153可以存儲(chǔ)一個(gè)說明表162當(dāng)前版本信息的值,日期154 可以存儲(chǔ)說明麵庫(kù)141何時(shí)開始尋,緣162的版本信息的值。同樣地,細(xì)157 可以存儲(chǔ)一個(gè)用來識(shí)別識(shí)另?yè)?72的值,變4加158可以存儲(chǔ)一個(gè)說明表172當(dāng)前 版本的值,并且日期159可以存儲(chǔ)一個(gè)說明數(shù)據(jù)庫(kù)141何時(shí)開始尋找表172的版本 信息的值。
一個(gè)數(shù)據(jù)表可以被配置為通過使用相應(yīng)的在一變^a知表中更新一適當(dāng)變
化0的 庫(kù)觸發(fā)器(例如, 一部^H十^m可執(zhí)行指令)來尋找版本信息。當(dāng)
數(shù)據(jù)表中的內(nèi)容被替換時(shí),數(shù)據(jù)庫(kù)觸發(fā)^H皮執(zhí)行并且適當(dāng)?shù)淖僫tlD被更新。例 如,當(dāng)在i操164中的麵被替換,角^:器167可,^1行以更新變{加153的值。 類似地,當(dāng)記錄176被插入到數(shù)據(jù)173中時(shí),觸發(fā)器177可以被執(zhí)行以更新變化 ID158的值。數(shù)據(jù)庫(kù)141 (劍艮務(wù)器計(jì)^m系統(tǒng)lll的備用系統(tǒng))的一個(gè)管理員或
15用戶可以輸入導(dǎo)致與 表相關(guān)的適當(dāng)?shù)挠|發(fā)器上的用戶輸入。
表162和表172是包含在數(shù)據(jù)庫(kù)141中的 表。表162和172中的每一個(gè)者阿 以包括在由繊庫(kù)界面模塊136潛在驗(yàn)的一個(gè)網(wǎng)絡(luò)響應(yīng)的所包含的內(nèi)容。例如, 表162和表172可以分別包括公司總量和銷售信息。在數(shù)據(jù)表中的內(nèi)容可以被一 或多條記錄所表示。例如,數(shù)據(jù)163由記錄164和166 (而潛在的其他記錄由豎向 的省略號(hào)表示)表示。同樣地,數(shù)據(jù)173可以由記錄174和176表示(而潛在的其 他記錄由豎向的省略號(hào)表示)。
數(shù)據(jù)庫(kù)界面模±央136可以傳送命令至數(shù)據(jù)庫(kù)141 (或其他數(shù)據(jù)庫(kù))從而導(dǎo)致 來自 庫(kù)141 (或其他 庫(kù))的內(nèi)容被檢索。所檢索的內(nèi)容可以用作后來被 傳送到一發(fā)送請(qǐng)求的計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)響應(yīng)的內(nèi)容。例如,服務(wù)器計(jì)算機(jī)系統(tǒng) 111可以從客戶端計(jì)算機(jī)系統(tǒng)101接收網(wǎng)絡(luò)請(qǐng)求。該網(wǎng)絡(luò)請(qǐng)求可以被傳送到響應(yīng) 結(jié)構(gòu)模塊133以處理相應(yīng)的頁(yè)面文件從而構(gòu)建相應(yīng)的網(wǎng)絡(luò)響應(yīng)。響應(yīng)結(jié)構(gòu)模塊 133可以IMM存112以鵬該網(wǎng)纟鐘向應(yīng)(^C^^分)^^剤^E緩存112之中。當(dāng) 一網(wǎng)絡(luò)響應(yīng)存儲(chǔ)在緩存l 12時(shí),網(wǎng)絡(luò)響應(yīng)可以直接被返回至客戶端計(jì)算機(jī)系統(tǒng) 101。
當(dāng)網(wǎng)絡(luò)響應(yīng)沒有存儲(chǔ)在緩存112中時(shí),腳本,包括相應(yīng)的頁(yè)面文件可以被執(zhí) 行以決定一網(wǎng)絡(luò)響應(yīng)。腳本的執(zhí)行可以包括檢查,和如果可用則使用存儲(chǔ)在緩 存112之中的網(wǎng)絡(luò)響應(yīng)。當(dāng)內(nèi)容沒有存儲(chǔ)在緩存112中時(shí),所執(zhí)行的腳本可以從 數(shù)據(jù)庫(kù)141中請(qǐng)求內(nèi)容。因此,對(duì)內(nèi)容的請(qǐng)求被傳送到 庫(kù)界面模塊136中, 它可以發(fā)布適當(dāng)?shù)拿钜詸z索變化E)和^)以及基于變ttJD和to的被檢索的 內(nèi)容。例如,基于變tt!D153和to152,數(shù)據(jù)庫(kù)界面模塊136隨后可以從表162 中檢索數(shù)據(jù)。
也可以這樣,版本信息在査詢 之前被檢索。例如,數(shù)據(jù)庫(kù)界面模塊136 可以被配置為在查詢數(shù)據(jù)(例如,數(shù)據(jù)163和/或數(shù)據(jù)173)之前檢索版本信息( 例如, 一或多個(gè)變ftiD和一或多個(gè)相應(yīng)的^))。在查詢 之前檢索版本信 息可以明顯地減少在數(shù)據(jù)表中的數(shù)據(jù)在數(shù)據(jù)被査詢后在版本信息被檢索之前被 改變這種很少出現(xiàn)的情況的可能性。
響應(yīng)結(jié)構(gòu)模塊133也可以決定所檢索的內(nèi)容是否要被緩存以及所檢索的內(nèi) 容是否1^#、于一 表。響應(yīng)結(jié)構(gòu)模塊133可以將要被緩存的所檢索的內(nèi)容,與 任何數(shù)據(jù)表(例如,表C)和相應(yīng)的變4tlD)的依賴性的指示一起,傳送到緩存界面?!姥?32。緩存界面模塊132可以將所檢索的內(nèi)糊入到緩存112中。因此, 后面的該被檢索內(nèi)容的網(wǎng)絡(luò)請(qǐng)求可以以提高的效率被處理。
所緩存的內(nèi)容可以存儲(chǔ)在表示所緩存內(nèi)容和相應(yīng)依賴性的緩存記錄數(shù)據(jù)結(jié) 構(gòu)中。緩存記錄數(shù)據(jù)結(jié)構(gòu)的一個(gè)域可以是表示在所請(qǐng)求的網(wǎng)絡(luò)響應(yīng)中已經(jīng)(或 將要)返回客戶端計(jì)算機(jī)的內(nèi)容的頁(yè)面內(nèi)容域。頁(yè)面內(nèi)容可以包括網(wǎng)絡(luò)響應(yīng)的 1分(例如, 一條或多絲自i^的記錄)或可以包括一識(shí)的網(wǎng)絡(luò)響應(yīng)。 例如,響應(yīng)內(nèi)容122可以包括來自記錄164和166的內(nèi)容。可替代地,響應(yīng)122可 以包括包含數(shù)據(jù)庫(kù)141中內(nèi)容的,來自響應(yīng)內(nèi)容134的內(nèi)容的,以及來自其他位 置(例如,來自期M^庫(kù)棘自其他網(wǎng)絡(luò)服務(wù))的內(nèi)容的一識(shí)的網(wǎng)絡(luò)響應(yīng)。
緩存記錄數(shù)據(jù)結(jié)構(gòu)的另一個(gè)域可以是一個(gè)表示識(shí)別識(shí)別數(shù)據(jù)庫(kù)141中數(shù)據(jù) 表的 的 )域。^ED可以是一^K直,例如,從一變4 知表中檢索到的, 包括數(shù)字和/或字母的字符。例如,當(dāng)從表162中檢索內(nèi)容時(shí), )152也可以從 變化通知表142中被檢索。因此,在緩存112中的一個(gè)^)可以與在變化通知表 中的細(xì)相對(duì)應(yīng)。例如,當(dāng)從表172中檢索內(nèi)容時(shí),飾128和tol57者阿以識(shí) 別識(shí)別表172。
在一些實(shí)施例中, 一個(gè)單個(gè)的表ID/變ftlD元組,例如,像這樣的, 一個(gè)主 碼記錄,對(duì)于每個(gè)lffi視的數(shù)據(jù)表來說都存在于緩存中。任何存在于表中的內(nèi) 容都可以依賴于相應(yīng)的主碼記錄。因此,可以這樣,許多個(gè)緩存記錄依賴于相 同的主碼記錄。當(dāng)M過^)變化來識(shí)別識(shí)別時(shí),相應(yīng)的變化ID可以在主碼記 錄中被更新或者主碼將被移除。更新或移除一條主碼記錄導(dǎo)致任何依賴于緩存 斷己錄(例如,緩存記錄126) l鈔人緩存中移除。使一條與蟲的主碼的/AM生無 效的多條緩存記錄會(huì)減少所需查詢和版本比較的數(shù)量以維持緩存記錄。因此, 主碼記錄可以被用來提高決定何時(shí)從屬內(nèi)容無效的效率。
緩存記錄數(shù)據(jù)結(jié)構(gòu)的另一個(gè)域可以是表示一由相應(yīng)^D識(shí)別識(shí)另啲數(shù)據(jù)表 的變ttJD的變ttJD域。 一個(gè)變itlD可以是一個(gè)值,例如,從變化通知表中被檢 索到的,包括數(shù)字的字符。例如,當(dāng)從表162中檢索內(nèi)容時(shí),變4tlD153可以從 變4M知表142中被檢索。因此,在緩存112中的變ttJD可以對(duì)應(yīng)于在變^l知 表142中的變4tlD。例如,當(dāng) 從表172中被檢索時(shí),變4tiD129和變化[D158 可以相等。因此,緩存記錄 結(jié)構(gòu)可以是下面的格式
緩存—記錄頁(yè)面內(nèi)容 瑯域
變te)域
一條或多條記錄數(shù)據(jù)結(jié)構(gòu)可以被存儲(chǔ)在緩存112中。例如,緩存112包括緩 存記錄121和126。而且,在緩存112中的每列圓點(diǎn)號(hào)(也就是,省略號(hào))^緩 存l 12可以包括的其他緩存記錄。在緩存l 12中的每一條緩存記,應(yīng)于包括在 前面所構(gòu)建的網(wǎng)絡(luò)響應(yīng)中的部分內(nèi)容。例如,緩存記錄121和126分別包括響應(yīng) 內(nèi)容122和27,它們可以被包括在傳送到客戶端計(jì)^m系統(tǒng)101的網(wǎng)絡(luò)響應(yīng)(或 可以是網(wǎng)絡(luò)響應(yīng))中。
有時(shí),服務(wù)器計(jì)算機(jī)系統(tǒng)111可以査詢數(shù)據(jù)庫(kù)141的版本信息。例如,數(shù)據(jù) 庫(kù)界面模塊B6可以被配置自指定的時(shí)間間隔(例如,每五秒鐘)査詢數(shù)據(jù)庫(kù) 141。響應(yīng)于接收的査詢,數(shù)據(jù)庫(kù)141可以給任何已經(jīng)從接收的最后一個(gè)査詢信 號(hào)后被替換的數(shù)據(jù)表返回版本信息。 一個(gè)查詢可以是一指定的對(duì)數(shù)據(jù)表的具有 區(qū)別于包含在該査詢中版本信息的版本信息的請(qǐng)求。數(shù)據(jù)庫(kù)界面模塊136可以接 收從數(shù)據(jù)庫(kù)141中返回的版本信息。數(shù)據(jù)庫(kù)界面模塊136將所接收的版本信息傳 送至(j緩存界面模塊132。緩存界面模塊132可以處理所接收的版本信息以識(shí)別識(shí) 別要被無效和從緩存112中移除的緩存記錄。可替代地,緩存界面模塊132可以 處理所接收的版本信息以在緩存112中更新合適的主碼記錄。
在一替代實(shí)施例中,服務(wù)器計(jì)算41系統(tǒng)11 l可以查詢數(shù)據(jù)庫(kù)141中已經(jīng)變化 的版本信息,并且請(qǐng)求該査詢不要返回直到一^^變化被決定。例如,數(shù)據(jù)庫(kù)界 面模i央136可以被用彩^TN^視的表發(fā)布一個(gè)阻塞查詢。所發(fā)布的阻塞彭旬 對(duì)于每個(gè)受監(jiān)視的表來說可以包括當(dāng)前持有的版本信息。在接收所發(fā)布的阻塞 查詢時(shí),翻庫(kù)141一直等待直到一個(gè)或多個(gè)被請(qǐng)求的表的版本信息被更新。響 應(yīng)于該更新,數(shù)據(jù)庫(kù)141可以返回該變化表的^D和版本信息。卩tt查詢可以被 同步執(zhí)行,從而對(duì)數(shù)據(jù)的請(qǐng)求并不返回直到變化信息可用。另一方面,阻塞查 詢可以被異步執(zhí)行,從而請(qǐng)求被立即返回,并且在當(dāng)變化信息可用時(shí)服務(wù)器計(jì) 算機(jī)系統(tǒng)l 1撥送一個(gè)回復(fù)信息。
圖2示出了依據(jù)本發(fā)明原理的一種用于配置一個(gè)數(shù)據(jù)庫(kù)以提供表格變化通知的方法200—個(gè)流程圖的例子??梢杂懻撘幌屡c網(wǎng)絡(luò)結(jié)構(gòu)100中描述的系統(tǒng)和 數(shù)據(jù)庫(kù)相關(guān)的方法200。方法200包括選擇一個(gè)數(shù)據(jù)表的步驟以監(jiān)視變化的步驟 (步5彩01)。步5彩01可以包括一個(gè)對(duì)于從要被監(jiān)視內(nèi)容變化的數(shù)據(jù)庫(kù)中選定 的數(shù)據(jù)表來說是可連接(或包含)的計(jì)算機(jī)系統(tǒng)。選定的以監(jiān)視變化的數(shù)據(jù)表 可以包括 庫(kù)界面模塊136接收識(shí)別要!鵬視的 表的用戶輸入。例如,服 務(wù)器計(jì)^m系統(tǒng)l 1 I和/或繊庫(kù)141的一個(gè)管理員可以提 定用來監(jiān)視的魏 定的162和表172的命令。當(dāng)一個(gè)對(duì)機(jī)知表并不總是存在時(shí),管理員也可以輸 入命令以創(chuàng)建一個(gè)變iW知表。例如,服務(wù)器計(jì)^m系統(tǒng)lll和/或翻庫(kù)141的 一個(gè)管理員可以提交命令至數(shù)據(jù)庫(kù)141以創(chuàng)建變{^知表。
可替代地,計(jì),系統(tǒng)lll可以自動(dòng)提魏定用來監(jiān)視數(shù)據(jù)表的命令,以響 應(yīng)于接收的對(duì)于相應(yīng)包括從戶,定的數(shù)據(jù)表中的內(nèi)容的網(wǎng)絡(luò)響應(yīng)的網(wǎng)絡(luò)請(qǐng)求。 例如,響應(yīng)于接收一相應(yīng)包括來自表162和/或表172中內(nèi)容的網(wǎng)絡(luò)相應(yīng)的網(wǎng)絡(luò)請(qǐng) 求,服務(wù)器計(jì)#^幾系統(tǒng)11 l可以自動(dòng)提魏定用來監(jiān)視的表162和/或表172選定的
命令。當(dāng)一變^S知表不存在時(shí),服務(wù)器計(jì)^m系統(tǒng)m可以自動(dòng)的,例如,基
于腳本上的頁(yè)目錄,提交可以導(dǎo)致變化通知表被創(chuàng)建的命令。例如,響應(yīng)于接 收相應(yīng)包括來自數(shù)據(jù)庫(kù)141中數(shù)據(jù)表的內(nèi)容的網(wǎng)絡(luò)響應(yīng)的網(wǎng)絡(luò)請(qǐng)求,服務(wù)器計(jì)算 機(jī)系統(tǒng)l 1 l可以自動(dòng)提交導(dǎo)致變化通知表142被創(chuàng)建的命令。數(shù)據(jù)庫(kù)界面?!姥?36 可以傳送用戶輸入和域自動(dòng)產(chǎn)生變4 知表創(chuàng)建命令和 擇命令至, 庫(kù)141。
方法200包括插入一條相應(yīng)于數(shù)據(jù)表的記錄到變化通知表(步5歡02)。步 驟202可以包括當(dāng)變化通知表并不總是包括一條相應(yīng)于數(shù)據(jù)表的記錄時(shí)插入一 條相應(yīng)于數(shù)據(jù)表的記錄到變化通知表。例如,與數(shù)據(jù)庫(kù)網(wǎng)絡(luò)互連(或包含)的 計(jì)算機(jī)系統(tǒng)可以插入一條相應(yīng)于被選定數(shù)據(jù)表的記錄到變化通知表中。一 入的記錄可以包括相應(yīng)于被選定 表的版本信息(例如,由版本信息 結(jié) 構(gòu)表示的)。插入到變^31知表的記錄可以包括 庫(kù)界面模塊136接收 際一 條將要被插入到變^ffi知表的記錄的用戶輸入。
例如,月艮務(wù)器計(jì)#1幾系統(tǒng)111和/^ 庫(kù)141的一個(gè)管理員可以提交導(dǎo)致記 錄151和156將被插入到變化通知表142中的命令??商娲兀?jì)算機(jī)系統(tǒng)lll可 以自動(dòng)提交導(dǎo)致記錄要被插入到相應(yīng)于接收一相應(yīng)網(wǎng)絡(luò)響應(yīng)的網(wǎng)絡(luò)請(qǐng)求的變化 通知表中的命令,其中該網(wǎng)絡(luò)響應(yīng)包括包括相應(yīng)選定數(shù)據(jù)表中的內(nèi)容。例如,響應(yīng)于接t!M應(yīng)于包括來自表162和/或表172的內(nèi)容的網(wǎng)絡(luò)響應(yīng)的網(wǎng)絡(luò)請(qǐng)求,服 務(wù)器計(jì)算機(jī)系統(tǒng)l 11可以自動(dòng)提交導(dǎo)致記錄151和156被插入到變化通知表的命 令。數(shù)據(jù)庫(kù)界面模塊136可以將用戶輸A^i自動(dòng)生成的記錄插入命令傳送到數(shù)據(jù) 庫(kù)141。
方法200包括一^^^定的 表分配觸發(fā)器的步驟(步5歡03)。步歡03
可以包括在當(dāng)角^:器沒有分酉2^ 定的 表時(shí)纟繼定 表分配劍販器。
例如,與翻庫(kù)網(wǎng)絡(luò)互聯(lián)(或包含)的計(jì)^m系統(tǒng)可以分配一個(gè)觸發(fā)器纟繼定
的數(shù)據(jù)表。 一個(gè)分配的觸發(fā)器可以導(dǎo)致當(dāng)在選定數(shù)據(jù)表中的內(nèi)賴皮替換時(shí)選定 數(shù)據(jù)表的版本信息在變化通知表中被更新。例如,當(dāng)在表162中的內(nèi)容被替換時(shí) (例如,當(dāng)在數(shù)據(jù)163中一條記錄被插入,移除,或改變時(shí))觸發(fā)器167會(huì)導(dǎo)致 變^ID153被更新(例如,增長(zhǎng))。類似地,當(dāng)在表172中的內(nèi)容被替換時(shí)(例 如,當(dāng)在數(shù)據(jù)173中一條記錄被插入,移除,或改變時(shí))觸發(fā)器177可以導(dǎo)致變 ^klD158被更新(例如,增長(zhǎng))。
分配觸發(fā)器可以包括數(shù)據(jù)庫(kù)界面模塊136接收指示一個(gè)觸發(fā)器將要被分配 至IJ選定的娜表的用戶輸入。服務(wù)器計(jì)對(duì)幾系統(tǒng)l 11和/或 庫(kù)141的一個(gè)管理 員可以提交導(dǎo)致觸發(fā)器分配到所選定數(shù)據(jù)表的命令。例如,管理員可以提交導(dǎo) 致將觸發(fā)器167分配到表162和將觸發(fā)器177分配至撥172的的輸入??商娲?,
計(jì)算機(jī)系統(tǒng)l 11可以自動(dòng)分配一個(gè)響應(yīng)于接收一相應(yīng)于包括所選定數(shù)據(jù)表的內(nèi) 容的網(wǎng)絡(luò)響應(yīng)的網(wǎng)絡(luò)請(qǐng)求。例如,響應(yīng)于接收一相應(yīng)于包括來自表162和域表172
的繊的網(wǎng)絡(luò)響應(yīng)的網(wǎng)絡(luò)請(qǐng)求,月艮務(wù)器計(jì)^m系統(tǒng)l 1 l可以自動(dòng)提交導(dǎo)致將觸發(fā) 器167分配至撥162的和域?qū)е聦⒂|發(fā)器177分配到表172的的命令??嵔缑婺?塊136可以將用戶輸入或自動(dòng)生成的分配命令傳送到數(shù)據(jù)庫(kù)141 。
一個(gè)觸發(fā)器可以包括附屬于一個(gè)表的部分計(jì)算機(jī)可執(zhí)行指令。觸發(fā)器可以 是事件驅(qū)動(dòng)從而當(dāng)事件發(fā)生時(shí)該部分計(jì)^m可執(zhí)行指令被執(zhí)行。例如,觸發(fā)器 167可以被設(shè)置為激活當(dāng)在數(shù)據(jù)163中的內(nèi)容被替換時(shí)并且可以包括導(dǎo)致變化 ID153被遞增的部分計(jì)^l幾可執(zhí)行指令。
方法200包括更新響應(yīng)于在選定數(shù)據(jù)表中的被變化的內(nèi)容的版本信息的步 驟(步歡04)。步歡04可以包括與一更新響應(yīng)于戶,定的被改變的數(shù)據(jù)表的 庫(kù)網(wǎng)絡(luò)互聯(lián)(或包含)的計(jì)^n系統(tǒng)。例如,當(dāng) 162中的內(nèi)^1皮替換( 或者是自動(dòng)或者是用戶輸入的結(jié)果)時(shí)計(jì)算機(jī)系統(tǒng)可以執(zhí)行包括導(dǎo)致變^ID153被遞增的觸發(fā)器167的部分計(jì)穀幾可執(zhí)行指令。
方法200包括返回該已更新的版本信息至請(qǐng)求的服務(wù)器計(jì)算機(jī)系統(tǒng)(步驟 205)。步i!205可以包括返回該已更新的版本信息至請(qǐng)求的服務(wù)器計(jì)算機(jī)系統(tǒng) 以至于該被更新的版本信息可以被用來決定服務(wù)器計(jì)算機(jī)系統(tǒng)中的緩存記錄中 內(nèi)容的有效性。例如,織庫(kù)141可以發(fā)送記錄151和156 (或它們的部分)至月艮 務(wù)器計(jì)算機(jī)系統(tǒng)l 11以響應(yīng)于來自服務(wù)器計(jì)算機(jī)系統(tǒng)l 11的査詢。數(shù)據(jù)庫(kù)界面模 塊136可以從數(shù)據(jù)庫(kù)141中接收數(shù)據(jù)記錄。數(shù)據(jù)庫(kù)界面模塊136可以將來自記錄 151和156的數(shù)據(jù)(例如,敘〕152和157與變^H)153和158)中傳送數(shù)據(jù)至緩存 界面模塊132以用來識(shí)另腰被無效的緩存記錄。
在一些^M列中,雜愛存的內(nèi)容以微n結(jié)果的形式l細(xì)來生成網(wǎng)絡(luò)響應(yīng),
例如表格數(shù)據(jù),對(duì)象,樣本,或部分的網(wǎng)絡(luò)響應(yīng)。當(dāng)結(jié)果可以被用在超過一個(gè) 網(wǎng)絡(luò)響應(yīng)的的生成中時(shí)緩存這些中間結(jié)果是合適的,其中每個(gè)網(wǎng)絡(luò)響應(yīng)包括附 加的差異信息(例如,自定義鄉(xiāng)^ffi劉言息的結(jié)合)。在其他一些實(shí)施例中, 一個(gè)完整的網(wǎng)絡(luò)響應(yīng)被緩存。當(dāng)一個(gè)完整的網(wǎng)絡(luò)響應(yīng)可以被多個(gè)不同網(wǎng)絡(luò)請(qǐng)求 所共享時(shí)緩存該完整的網(wǎng)絡(luò)響應(yīng)^S當(dāng)?shù)?。?dāng)緩存一個(gè)完整的網(wǎng)絡(luò)響應(yīng)時(shí),該 網(wǎng)絡(luò)響應(yīng)可能以較低優(yōu)先級(jí)被推遲被緩存在服務(wù)器計(jì)算機(jī)系統(tǒng)中,例如, 一個(gè) 核心模式響應(yīng)緩存。因此,當(dāng)該網(wǎng)絡(luò)響應(yīng)無效時(shí),它就被從低優(yōu)先級(jí)的緩存中 被移除。
圖3示出了依據(jù)本發(fā)明的原理的一個(gè)使部分緩存內(nèi)容無效的方法300的一個(gè) 流程圖的例子。方法300將與在網(wǎng)絡(luò)結(jié)果100中描述的相關(guān)計(jì)算機(jī)和數(shù)據(jù)庫(kù)一起 討論。方法300包括查詢一相應(yīng)于一個(gè)或多個(gè)數(shù)據(jù)表的版本信息的變^M知表( 步驟301)。步3彩01可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自一個(gè)或 多個(gè)數(shù)據(jù)表中內(nèi)容的網(wǎng)絡(luò)響應(yīng),在查詢變化通知表的相應(yīng)于一個(gè)或多個(gè)數(shù)據(jù)表 的版本信息時(shí)。例如,數(shù)據(jù)庫(kù)界面?!姥?36可以查詢變化通知表142的相應(yīng)于表 162和163的版本信息。數(shù)據(jù)庫(kù)界面模塊136可以査詢變iW知表142以作為接收 用戶輸入的結(jié)果,指定彭旬的間隔的出現(xiàn),響應(yīng)于一個(gè)総雜S存內(nèi)容的請(qǐng)求, 或一個(gè)優(yōu)先于來自依賴表中請(qǐng)求的 初始化的阻塞查詢。
一個(gè)査詢可以被配置為請(qǐng)求所有被監(jiān)視的在變化通知表中顯示的數(shù)據(jù)表的 版本信息,請(qǐng)求用于具有突出 性的豐 視的數(shù)據(jù)表的版本信息,或新青求 用于已經(jīng)改變(例如,通過包括在査詢中的當(dāng)前版本信息)被監(jiān)視的的數(shù)據(jù)表的版本信息。響應(yīng)于一個(gè)查詢,更新的版本信息從從數(shù)據(jù)庫(kù)返回到服務(wù)器計(jì)算 機(jī)系統(tǒng)?;诓樵兊呐渲茫瑪?shù)據(jù)庫(kù)可以返回,例如,所有被監(jiān)視數(shù)據(jù)表的版本 信息,具有突出緩存依賴性的1 視的 表的版本信息,或者已經(jīng)改變的被 監(jiān)視的 表的版本信息。
可替代地,服務(wù)器計(jì)算機(jī)系統(tǒng)可以發(fā)布一個(gè)查詢至變^M知表并請(qǐng)求被發(fā)
布的查詢阻塞在服務(wù)器計(jì)Mi系統(tǒng)上直到戶;n青求表的版本信息被更新。例如, 服務(wù)器計(jì)算機(jī)系統(tǒng)可以發(fā)布査詢,該査詢被ffis在服務(wù)器計(jì)算機(jī)系統(tǒng)上直到當(dāng) 前的版本信息大于一指定的閾值。所發(fā)布的阻塞的查詢可以被同步執(zhí)行,從而 働艮務(wù)器計(jì)穀/L系鄉(xiāng)肚的一個(gè)相應(yīng)的線程被ias直到結(jié)果是可用的。另一方面, 所發(fā)布的阻塞的査詢可以被異步執(zhí)行,從而使相應(yīng)的在服務(wù)器計(jì)算機(jī)系統(tǒng)上的 一個(gè)線程(例如,在一獨(dú)立的線程)不被阻塞并且在服務(wù)器計(jì)算*幾系統(tǒng)上的結(jié) 果可用時(shí)調(diào)用一個(gè)回復(fù)信息。
方法300包括一個(gè)接收至少一個(gè)來自變化通知表被最后査詢時(shí)就已經(jīng)改變
的數(shù)據(jù)表的列表的步驟的步勵(lì)02 。步gt302可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng), 它構(gòu)建包括來自至少一個(gè)數(shù)據(jù)表的網(wǎng)絡(luò)響應(yīng),接收來自至少一個(gè)自從變^M知
表被最后査詢時(shí)就已經(jīng)改變的數(shù)據(jù)表的列表的步驟。至少一個(gè)數(shù)據(jù)表的列表可
以包括該至少一個(gè) 表的當(dāng)前版本信息。例如, 庫(kù)141可以返回包括 表162的版本信息(例如,^ID152和變化ID153)以及表172的版本說明的i^ 表(例如,^ID157和變化ID158)的版本信息到服務(wù)器計(jì)tm系統(tǒng)111。數(shù)據(jù)庫(kù) 界面模塊136可以接收從數(shù)據(jù)庫(kù)141返回的數(shù)據(jù)表的一個(gè)列表。
方法300包括一個(gè)決定所緩存的內(nèi)容依賴于至少一個(gè)數(shù)據(jù)表的步驟(步驟 303)。步§彩03可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自至少一個(gè)數(shù) 據(jù)表的內(nèi)容的網(wǎng)絡(luò)響應(yīng),決定所緩存的內(nèi)容依賴于至少一個(gè) 表。例如,服 務(wù)器計(jì)算機(jī)系統(tǒng)l 11可以決定依賴于表162的響應(yīng)內(nèi)容122和依賴于表172的響應(yīng) 內(nèi)容127。緩存界面模i央132可以將所接收的to ( )152和157)與相應(yīng)的緩 存的 )(勃D123和128)相比較。當(dāng)M)的比較如此說明(例如,當(dāng)所接收 的^D和所緩存的M3識(shí)別屬于相同的數(shù)據(jù)表時(shí))時(shí),緩存界面模塊132決定依 賴于一個(gè) 表所緩存的內(nèi)容。例如,當(dāng)^ID123的值與^ID152的值匹配時(shí), 緩存界面模塊132可以決定依賴于表162響應(yīng)內(nèi)容。對(duì)W也,當(dāng)細(xì)128的值與表 ID157的值匹配時(shí),緩存界面模塊132可以決定 于表172響應(yīng)內(nèi)容127方法300包括當(dāng)前版本信息與所緩存的版本信息的比較步驟(步§彩04)。步勵(lì)04可以
包括一個(gè)服務(wù)器計(jì)^m系統(tǒng),它包括構(gòu)建包括來自至少一個(gè)數(shù)據(jù)表的內(nèi)容的網(wǎng) 絡(luò)響應(yīng),比較當(dāng)前的版本信息和所緩存的版本信息。例如,服務(wù)器計(jì)算機(jī)系統(tǒng)
11 l可以將從返回的列表中的版本信息與存儲(chǔ)在緩存l 12中的版本信息相比較。 緩存界面模塊132可以將所接收的變化D (變化ID153和158)與相應(yīng)的所緩存的 變to (對(duì)加124和129)相比較。
方^^J彌除基于比較結(jié)果的部分所緩存內(nèi)容的步驟(步3影05) 0步徵05 可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自至少一個(gè)數(shù)據(jù)表的內(nèi)容的網(wǎng)
絡(luò)響應(yīng),移除基于比較結(jié)果的所緩存的部分內(nèi)容。例如,服務(wù)器計(jì)^a^統(tǒng)ui
可以從緩存112中移除所緩存的基于當(dāng)前版本信息與所緩存的版本信息的比較。
當(dāng)變^ID的比較這樣指示(例如,當(dāng)一個(gè)所接收的變化ro的值比所緩存的變化
ID的值大時(shí)),緩存界面模塊132移除緩存的內(nèi)容。例如,當(dāng)變itlD153比變化 ID124大時(shí),緩存界面?!姥?32可以從緩存112中移除緩存記錄121。類{議他,當(dāng) 變{加158比對(duì)加129大時(shí),緩存界面模塊132可以從緩存112中移除緩存記錄 126。當(dāng)變^ID相等時(shí)所緩存內(nèi)容不會(huì)從緩存112中被移除。
因此,通過使用數(shù)據(jù)庫(kù)緩存依賴性,適當(dāng)?shù)氖顾彺鎯?nèi)容無效的可能性會(huì) 增加。當(dāng)數(shù)據(jù)表沒有改變時(shí),從緩存中 頁(yè)先完全移除無效的依賴內(nèi)容的機(jī)會(huì)會(huì) 增加。因此,來自緩存的無效依賴內(nèi)容可以被用來更為有效的構(gòu)建網(wǎng)絡(luò)響應(yīng)。 另一方面,當(dāng)數(shù)據(jù)表已經(jīng)被改變,從緩存中移除相應(yīng)無效依賴內(nèi)容的機(jī)會(huì)會(huì)增 加。因此,無效j繊內(nèi)容潛在地ffiih被包含在網(wǎng)絡(luò)響應(yīng)中。
圖4示出了依據(jù)本發(fā)明原理的一種用于訪問請(qǐng)求客戶端計(jì)算機(jī)系統(tǒng)顯示內(nèi) 容的方法400的一個(gè)流程圖的例子。方法400將與在網(wǎng)絡(luò)結(jié)構(gòu)100中描述的相關(guān)的 計(jì)^m系統(tǒng)和M庫(kù)一起討論。方法400包括從一客戶端計(jì)^n系統(tǒng)接收網(wǎng)絡(luò)請(qǐng) 求的步驟(步3斜01)。步^401可以包括一個(gè)服務(wù)器計(jì)t^幾系統(tǒng),它構(gòu)建包括 來自至少一個(gè)數(shù)據(jù)表的內(nèi)容的網(wǎng)絡(luò)響應(yīng),從一客戶端接收網(wǎng)絡(luò)請(qǐng)求。例如,服 務(wù)器計(jì)^m系統(tǒng)lll可以從客戶^i十^t幾系統(tǒng)101 (例如,在瀏覽器102接收的作 為用戶輸入的結(jié)果發(fā)起的)接收網(wǎng)絡(luò)請(qǐng)求。 一個(gè)網(wǎng)絡(luò)請(qǐng)求可以推導(dǎo),例如,當(dāng) 瀏覽器102訪問一個(gè)相應(yīng)于網(wǎng)絡(luò)響應(yīng)的通用資源定位器("URL")時(shí)。
一個(gè)網(wǎng)絡(luò)請(qǐng)求可以請(qǐng)求包括被包含在一數(shù)據(jù)表中的所請(qǐng)求的內(nèi)容的網(wǎng)絡(luò)響 應(yīng)的鵬。例如, 一個(gè)來自客戶端計(jì)^t幾系統(tǒng)101的網(wǎng)絡(luò)響應(yīng)可以是一物括來
23自表162和/^172的網(wǎng)絡(luò)響應(yīng)的請(qǐng)求。表162和表172通??梢栽L問其他的可以 替換在數(shù)據(jù)表162和172 (包括將要被包括在所i青求的網(wǎng)絡(luò)響應(yīng)中的內(nèi)容)中被 包含的內(nèi)容的應(yīng)用(例如,工作流程或應(yīng)用總量)。因此,可以這樣,包括在 數(shù)據(jù)163和數(shù)據(jù)173中的內(nèi)容Mil在網(wǎng)絡(luò)請(qǐng)求t間的其它應(yīng)用被替換。
響應(yīng)于接收一網(wǎng)絡(luò)請(qǐng)求,服務(wù)器計(jì)算機(jī)系統(tǒng)l 1 l可以決定一個(gè)完整的相應(yīng)網(wǎng) 絡(luò)響應(yīng)被存儲(chǔ)在緩存112中(或在H氏優(yōu)先級(jí)緩存中)。當(dāng)該完整的相應(yīng)網(wǎng)絡(luò)響 應(yīng)被緩存時(shí),服務(wù)器計(jì)算機(jī)系統(tǒng)l 1 l可以從緩存l 12中返回該完整的被緩存的網(wǎng) 絡(luò)響應(yīng)而不需進(jìn)一與青求任何作為網(wǎng)絡(luò)請(qǐng)求的結(jié)果的處理。因此,當(dāng)一完整的 網(wǎng)絡(luò)響應(yīng)被緩存時(shí),與一網(wǎng)絡(luò)響應(yīng)的完淑目關(guān)的潛在性可以明顯的減少。
另一方面,響應(yīng)于接收一網(wǎng)絡(luò)請(qǐng)求,月艮務(wù)器計(jì)^M系統(tǒng)111可以決定至少一 部分的相應(yīng)網(wǎng)絡(luò)響應(yīng)當(dāng)前不被緩存。方法400包括一個(gè)決定要被包括的相應(yīng)網(wǎng)絡(luò) 響應(yīng)的內(nèi)容的至少一部分當(dāng)前不被緩存(步驟402)。步3斜02可以包括一個(gè)服 務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自至少一個(gè)數(shù)據(jù)表的內(nèi)容的網(wǎng)絡(luò)響應(yīng),決定包 括在網(wǎng)絡(luò)響應(yīng)中的至iH分內(nèi)容當(dāng)前沒有被緩存到服務(wù)器計(jì)嶽M統(tǒng)。例如, 服務(wù)器計(jì)算機(jī)系統(tǒng)l 1 l可以決定包括在將被遞送到客戶端計(jì)算機(jī)系統(tǒng)101的網(wǎng)絡(luò) 響應(yīng)中的至少一部分內(nèi)容當(dāng)前沒有被緩存在計(jì)算機(jī)系統(tǒng)l 11 。
一個(gè)在服務(wù)器計(jì)算機(jī)系統(tǒng)l 11接收的網(wǎng)絡(luò)請(qǐng)求可以被傳送到響應(yīng)結(jié)構(gòu)模塊 133。因此,響應(yīng)結(jié)構(gòu)模塊133可以檢索一個(gè)適當(dāng)?shù)捻?yè)面文件(例如, 一個(gè)ASP 文件)和處理該頁(yè)面文件以構(gòu)建一相應(yīng)的網(wǎng)絡(luò)響應(yīng)。包括在該頁(yè)面文件中的腳 本可以請(qǐng)求存儲(chǔ)在服務(wù)器計(jì)^fl系統(tǒng)(例如,在表162禾口/或163中)外部位置的 內(nèi)容。當(dāng)一個(gè)外部?jī)?nèi)容的請(qǐng)求被處理時(shí),響應(yīng)結(jié)構(gòu)模塊133可以發(fā)趟當(dāng)附旨令 至緩存界面模塊132以致使緩存界面模i央132嘗試查找在緩存112中的外部?jī)?nèi)容 的地點(diǎn)。當(dāng)外部?jī)?nèi)容被存儲(chǔ)在緩存112中時(shí),緩存界面模塊132可以響應(yīng)說明外 部?jī)?nèi)容存儲(chǔ)在緩存112中的響應(yīng)結(jié)構(gòu)模塊。另一方面,當(dāng)夕卜部?jī)?nèi)容沒有存儲(chǔ)在緩 存112中時(shí),緩存界面模塊132可以響應(yīng)說明外部?jī)?nèi)容沒有存儲(chǔ)在緩存112中的響 應(yīng)結(jié)構(gòu)模塊。
當(dāng)決定了包括在沒有被緩存的一個(gè)網(wǎng)絡(luò)響應(yīng)的至少一部分內(nèi)容時(shí),月艮務(wù)器 計(jì)算機(jī)系統(tǒng)l 1 l可以進(jìn)一步?jīng)Q定該至少一部分內(nèi)容是否依賴于數(shù)據(jù)庫(kù)141中的任 何數(shù)據(jù)表。當(dāng)該至少一部分內(nèi)容依賴于 庫(kù)141中的一個(gè) 表時(shí),服務(wù)器計(jì) 嶽/L系統(tǒng)l 1 l可以進(jìn)一步?jīng)Q定i^表的一條相te碼記錄是否存儲(chǔ)在緩存l 12中。當(dāng)相應(yīng)的主碼記錄不是存儲(chǔ)在緩存l l沖時(shí),服務(wù)器計(jì)穀幾系統(tǒng)l 11可以檢索數(shù)
據(jù)表(例如,來自變^ffl知表142)的適當(dāng)?shù)陌姹拘畔⒉⒁?括適當(dāng)版本信 息相應(yīng)的主碼記錄存儲(chǔ)在緩存l 12中。
方法400包括一個(gè)訪問來自 表請(qǐng)求的內(nèi)容的步驟(步3斜03)。步l斜03 可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自至少一個(gè) 表的內(nèi)容的網(wǎng)
絡(luò)響應(yīng),來自訪問,表中戶;fi青求的內(nèi)容。例如,服務(wù)器計(jì)tm系統(tǒng)m可以從 數(shù)據(jù)庫(kù)i4i的一,中訪問所請(qǐng)求的內(nèi)容。作為不存儲(chǔ)在數(shù)據(jù)庫(kù)i41中的戶;n青求
的內(nèi)容的指示的響應(yīng),響應(yīng)結(jié)構(gòu)模塊133可以發(fā)凝當(dāng)附旨令(例如,通過發(fā)布 一個(gè)査詢)至f^庫(kù)界面模塊136以致ja^庫(kù)界面模i央136嘗試找到翻庫(kù)141 中所請(qǐng)求內(nèi)容的位置。 庫(kù)141可以尋找附青求內(nèi)容(例如,在i碌164, 166, 174,和/或176中)的位置并返回所請(qǐng)求的內(nèi)容至數(shù)據(jù)庫(kù)界面模塊136。數(shù)據(jù)庫(kù)界 面模塊136然后可以傳送附青求的內(nèi)容至響應(yīng)結(jié)構(gòu)模塊133。
方法400包括構(gòu)建相應(yīng)網(wǎng)絡(luò)響應(yīng)的步驟,該網(wǎng)絡(luò)響應(yīng)包括戶;fi青求的內(nèi)容(步 驟404)。步5翻04可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自至少一個(gè)
數(shù)據(jù)表的內(nèi)容的網(wǎng)絡(luò)響應(yīng),并構(gòu)建該網(wǎng)絡(luò)響應(yīng)。例如,服務(wù)器計(jì)^m系統(tǒng)ui可
以包括在一要被返回到客戶端計(jì)算機(jī)系統(tǒng)101的網(wǎng)絡(luò)響應(yīng)中的來自數(shù)據(jù)庫(kù)141的 內(nèi)容。響應(yīng)結(jié)構(gòu)模塊133可以包括從數(shù)據(jù)庫(kù)界面模塊136接收的所i青求的內(nèi)容( 例如,來自記錄164, 166, 174,禾口/或176)以滿足一網(wǎng)絡(luò)請(qǐng)求。基于戶7fi青求的 內(nèi)容(與潛在的包括在一適當(dāng)頁(yè)面文件中的在其^HTML禾PXML命令以及腳本 一樣),響應(yīng)結(jié)構(gòu)模塊133可以生成一,當(dāng)?shù)木W(wǎng)絡(luò)響應(yīng)。
方法400包括用于存儲(chǔ)所請(qǐng)求內(nèi)容以至于所請(qǐng)求的內(nèi)容可以被有效的訪問 以滿足后續(xù)的網(wǎng)絡(luò)請(qǐng)求的面向結(jié)果的功能步驟(步駒07)。步g對(duì)07可以包括 任何用于存儲(chǔ)所請(qǐng)求的內(nèi)容的相應(yīng)步驟從而使所請(qǐng)求的內(nèi)容被有效的訪問以滿 足后續(xù)的網(wǎng)絡(luò)請(qǐng)求。然而,在圖4的方法的例子中,步§對(duì)07包括一給所構(gòu)建的 網(wǎng)絡(luò)響應(yīng)的至少一部分分配 庫(kù)緩存 性的相應(yīng)步驟(步^405)。步g斜05 可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自至少一個(gè) 表的內(nèi)容的網(wǎng) 絡(luò)響應(yīng),給所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分分配繊庫(kù)緩存 性。
步驟407也包括一個(gè)緩存至少一部分所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的相應(yīng)步驟(步驟 406)。步^406可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu)建包括來自至少一個(gè)數(shù) 據(jù)表的內(nèi)容,緩存至少一部分所構(gòu)建的網(wǎng)絡(luò)響應(yīng),服務(wù)器計(jì)算機(jī)系統(tǒng)可以在服
25務(wù)器計(jì)算機(jī)系統(tǒng)的緩^^立置緩存至少一部分所構(gòu)建的網(wǎng)絡(luò)響應(yīng)。例如,緩存界
面模塊132可以導(dǎo)致由響應(yīng)結(jié)構(gòu)模塊133構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分優(yōu)先于所 構(gòu)建的網(wǎng)絡(luò)響應(yīng)被il^到客戶端計(jì)^m系統(tǒng)而被存儲(chǔ)在緩存l 12中。
當(dāng)緩存一個(gè)完整的網(wǎng)絡(luò)響應(yīng)時(shí),該網(wǎng)絡(luò)響應(yīng)可以被推遲被緩存在一服務(wù)器 計(jì)算機(jī)系統(tǒng)的低優(yōu)先級(jí)存儲(chǔ)器上,例如,在一核心模式響應(yīng)緩存中。例如,一 個(gè)完整的網(wǎng)絡(luò)響應(yīng)可以被發(fā)送到一由因特網(wǎng)信息服務(wù)器("ns")模塊維持的 緩存位置。因此,當(dāng)該網(wǎng)絡(luò)響應(yīng)無效時(shí),就M^人低優(yōu)先級(jí)緩存中被移除。
數(shù)據(jù)庫(kù)緩存依賴性可以被分配并且戶;M存內(nèi)容的至少一部分可以作為在網(wǎng)
絡(luò)相應(yīng)構(gòu)建過程中所執(zhí)行命令的結(jié)果。在一些實(shí)施例中,數(shù)據(jù)庫(kù)緩存依賴性被 分配給一個(gè)網(wǎng)絡(luò)響應(yīng)中的部分內(nèi)容。下面的第一個(gè)例子的指令可以被包括在一 頁(yè)面文件中以導(dǎo)致在網(wǎng)絡(luò)響應(yīng)的部分內(nèi)容被分配一數(shù)據(jù)庫(kù)緩存依賴性
1. 〈HTML〉
2. <Script>
3. SqlCacheDependency c;
4. c=new SqlCacheDependency(pubs,products);
5. ProductCollectionp=getproductsO;
6. Cache.Insert("Pinfo",p,c);
7. 々Scrip1>
8. </HTML>
這個(gè)例子的第3行的指^ij建一個(gè)iyg類型為SqlCacheDependency的變量" c " 。 SqlCacheDependency可以是一個(gè)已經(jīng)被預(yù)先建立的用于表示數(shù)據(jù)庫(kù)緩存 ^M生的繊鄉(xiāng)。這1M列子的斜行附旨令分配^lc以^;包含在"pubs"數(shù) 據(jù)庫(kù)中的表"products"的依賴性。這可以表示,例如,包含在數(shù)據(jù)庫(kù)141上的表 162飾繊性。這"tf歹i仔^^5,溯旨鄰健"H"l^W^ "ProdudCollection"的變 量"p" 。 ProductCollection可以是一個(gè)預(yù)先被蜜i的用于表示從產(chǎn)品數(shù)據(jù)庫(kù)中 接收的產(chǎn)品列表的繊類型。函數(shù)"g鄰roductsO"在第5行M^l行以返回一個(gè)存 儲(chǔ)在變量p里的產(chǎn)品列表(例如,從表162和/或163中)。
這個(gè)例子的第6行附旨令創(chuàng)建一條緩存記錄(例如,在緩存112中)。緩存 記錄用主碼"Pinfo"創(chuàng)建,隨后它可以l細(xì)做緩存記錄的參考。該緩存記錄被 創(chuàng)建并存儲(chǔ)在由變量p表示的產(chǎn)品列表中(例如,作為響應(yīng)內(nèi)容122)并且緩存記錄依賴于在pubs數(shù)據(jù)庫(kù)中的用變量c (例如,作為tt)123)表示的產(chǎn)品表。
當(dāng)大量的網(wǎng)絡(luò)響應(yīng)都包括相同部分的內(nèi)容時(shí)第一個(gè)例子中的指令可以是特別有 利的。
TM列子中附旨令可以被包括在一個(gè)顧文件中以^^服爰存的產(chǎn)品列表
ProductCollection『Cache ("Pinfo");
當(dāng)檢測(cè)到在pubs數(shù)據(jù)庫(kù)中的產(chǎn)品表被替換時(shí),通過主碼Pinfo所參考的緩存 記錄是無效的。在其他一些實(shí)施例中, 一個(gè)數(shù)據(jù)庫(kù)緩存依賴性被分配給一完整 的網(wǎng)絡(luò)響應(yīng)。下面的第二個(gè)例子的指令可以被包含在一頁(yè)面文件中導(dǎo)致一完整 的網(wǎng)絡(luò)響應(yīng)被分配給一 庫(kù)緩存 性
1. <%Output Cache SqlTableDepend= "pubs:products"%>
2. <HTML>
3. <Script> 4 …
5. 々Script>
6, </HTML>
第二個(gè)例子的節(jié)行指令是導(dǎo)致該從網(wǎng)頁(yè)文件產(chǎn)生的依賴于包含在"pubs" 數(shù)據(jù)庫(kù)中的"products"表的完整網(wǎng)絡(luò)響應(yīng)的指示。 一條緩存記錄可以被創(chuàng)建以 緩存該從網(wǎng)頁(yè)文件產(chǎn)生的完整的網(wǎng)絡(luò)響應(yīng)(例如,作為響應(yīng)內(nèi)容127)。在第4 行的省略號(hào)表示其他可以執(zhí)行的腳本指令,例如,像這樣的,當(dāng)頁(yè)面文件被處 理時(shí),訪問在pubs數(shù)據(jù)庫(kù)里的產(chǎn)品表的。當(dāng)大量客戶端請(qǐng)求相同的網(wǎng)絡(luò)響應(yīng)時(shí) 第二個(gè)例子的指令可以是很有利的。
數(shù)據(jù)庫(kù)緩存依賴性被結(jié)合一個(gè)或多個(gè)其他緩存依賴性i頓也是可以的,例 如,像這樣的,一時(shí)間,文件,主碼,和/或網(wǎng)絡(luò)服務(wù)緩存 性或者甚至其他 數(shù)據(jù)庫(kù)緩存依賴性。例如,下面的例子的指示可以被包含在一頁(yè)面文件中導(dǎo)致 一完整的網(wǎng)絡(luò)響應(yīng)被分配至壞光娜庫(kù)緩剤繊性還有時(shí)間繊性
<%Output Cache Duration^600s SqlTableDepend= "pubs:customers" %>
該例子的指示會(huì)導(dǎo)致從相應(yīng)網(wǎng)絡(luò)響應(yīng)被創(chuàng)建或直到該在"pubs"數(shù)據(jù)庫(kù)中 的"用戶"表被替換時(shí)在緩存中要維撫OO秒的相應(yīng)網(wǎng)絡(luò)響應(yīng)。
在一些實(shí)施例中, 一或多條緩存記錄是關(guān)聯(lián)于(或者,與之有聯(lián)系的)數(shù) 據(jù)庫(kù)依賴緩存記錄的(因此產(chǎn)生一個(gè)主碼依賴性)主碼依賴緩存記錄。因此,使數(shù)據(jù)庫(kù)依賴緩存記錄無效會(huì)導(dǎo)致每一個(gè)主碼依賴緩存記錄也無效。因?yàn)橹鞔a 依賴緩存記錄是依賴于在緩存中(例如,在系統(tǒng)存儲(chǔ)器中)的其他數(shù)據(jù)的,使 一主碼依賴緩存記錄無效是比使一數(shù)據(jù)庫(kù)依賴緩存記錄(它可以要求一數(shù)據(jù)庫(kù) 查詢,網(wǎng)絡(luò)通信,繊串行化,等等)無效更有效。因此,為了增加使緩存記 錄的無效的效率,, 一個(gè)具有依賴內(nèi)容的第一緩存記錄可以被配置為依賴于一 第二緩存記錄(通過一主碼依賴性)。當(dāng)在相應(yīng)數(shù)據(jù)表中的變化被檢測(cè)時(shí),該 第二緩存記錄使任何依賴緩存記錄無效。響應(yīng)于一檢測(cè)至啲變化,該第二緩存 記錄也可以從存儲(chǔ)或者適當(dāng)?shù)挠糜诳梢员桓碌南鄳?yīng)的數(shù)據(jù)表的版本信息中被 移除。
例如,緩存記錄121和緩存記錄126都依賴于表162 (例如,te)123和表128 都對(duì)應(yīng)于 )152)也是可以的。為了優(yōu)化決定何時(shí)響應(yīng)內(nèi)容122和響應(yīng)內(nèi)容127 被無效的效率, 一劍, 162的主碼記錄可以| 入到緩存112中(也就是, 插入到系統(tǒng)存儲(chǔ)器中)。緩存記錄121和126可以依賴于所插入的主碼記錄。當(dāng) tol62被替換時(shí), 庫(kù)141的一個(gè)后續(xù)查詢可以識(shí)別變j加153被更新并^j^ 插入的主碼記錄無效。使所插入的主碼記錄無效會(huì)自動(dòng)使緩存記錄121和126無 效而不是要求變toDD124和變4tiD129直接與變ftlD153進(jìn)行比較。因此, 庫(kù)
查詢的次數(shù)和版本信息可以被減少并且網(wǎng)絡(luò), 庫(kù),和處理資源得以保留。
方法400包括一個(gè)將所構(gòu)建的網(wǎng)絡(luò)響應(yīng)傳送至響應(yīng)于網(wǎng)絡(luò)請(qǐng)求的客戶端計(jì) 算機(jī)系統(tǒng)的步驟(步驟408)。步駒08可以包括一個(gè)服務(wù)器計(jì)算機(jī)系統(tǒng),它構(gòu) 建包括來自至少一個(gè)數(shù)據(jù)表的內(nèi)容的網(wǎng)絡(luò)響應(yīng),將所構(gòu)建的網(wǎng)絡(luò)響應(yīng)傳送至響 應(yīng)于網(wǎng)絡(luò)請(qǐng)求的客戶端計(jì)^^M統(tǒng)。例如,響應(yīng)于該來自客戶端計(jì)^^L系統(tǒng)101
的網(wǎng)絡(luò)請(qǐng)求服務(wù)器計(jì)嶽M統(tǒng)i n可以鵬一網(wǎng)絡(luò)響隨客戶^i十^m^細(xì)01 。
戶,送的網(wǎng)絡(luò)響應(yīng)可以是一個(gè)由響應(yīng)結(jié)構(gòu)模塊133構(gòu)建的網(wǎng)絡(luò)響應(yīng)。
圖5示出了一種用于本發(fā)明原理的適合的操作環(huán)境。郞以及下面的i姊會(huì) 提供實(shí)施本發(fā)明涉及的適合的計(jì)算環(huán)境一個(gè)簡(jiǎn)潔,通用的描述。雖然沒有被要 求,該環(huán)境仍然以用計(jì)算機(jī)可執(zhí)行指令通用格式被描述,例如禾驕?!姥肟梢员?計(jì)算機(jī)系統(tǒng)執(zhí)行。 一般來說,禾將模i央包括例行禾OT,禾驕, ,組件,數(shù) 據(jù)結(jié)構(gòu),以及其類似,其執(zhí)行特殊任務(wù)或執(zhí)行特別的抽象數(shù)據(jù)類型。計(jì)算機(jī)可 執(zhí)行指令,相關(guān)的數(shù)據(jù)結(jié)構(gòu),和f,模塊表示用于執(zhí)行這里公開的方法中的步 驟的程j^ft碼方式的例子。參照?qǐng)D5, 一個(gè)用于實(shí)行本發(fā)明的示范性系統(tǒng)可以包括一在計(jì)算機(jī)系統(tǒng)520 形式的通用計(jì)算機(jī)設(shè)備,包括一處理單^521,一系統(tǒng)存儲(chǔ)器522,和一系統(tǒng)總 線523用于將包括系統(tǒng)存儲(chǔ)器522的多種系統(tǒng)組件相連至處理單^521 。處理單元 521可以執(zhí)行設(shè)計(jì)用來實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)520特點(diǎn)的計(jì)算機(jī)可執(zhí)行指令,包括本發(fā) 明中的特點(diǎn)。系統(tǒng)總線523可以是多種總線結(jié)構(gòu)類型中的招可一種,包括一存儲(chǔ) 器總線或存儲(chǔ)控制器, 一外設(shè)總線,和一使用各種總線結(jié)構(gòu)中任一種的本地總 線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器("ROM" ) 524和隨機(jī)存儲(chǔ)器("RAM") 525。 一基^A^I出系統(tǒng)("BIOS" ) 526,它包括基本的例《,呈式有助于在 計(jì)算機(jī)520中的組件之間傳送信息的事務(wù),例如在啟動(dòng)期間,可以存儲(chǔ)在 ROM524中。
計(jì)算機(jī)系統(tǒng)520也可以包括一個(gè)用來從硬磁盤539讀出和寫入的硬磁盤驅(qū)動(dòng) 器527, 一用來從可移動(dòng)磁盤529讀出和寫入的磁盤驅(qū)動(dòng)器528,以及一用來從一 可移動(dòng)光盤531中讀出或?qū)懭氲墓鈱W(xué)m驅(qū)動(dòng)器630,例如,或者是,^CD-ROM 或其他光學(xué)媒體。硬磁盤驅(qū)動(dòng)器527,磁盤驅(qū)動(dòng)器528,以及光學(xué)磁盤驅(qū)動(dòng)器530 都通過硬磁盤驅(qū)動(dòng)器接口 552、磁盤驅(qū)動(dòng)器接口 533和光學(xué)磁盤驅(qū)動(dòng)器接口534與 系統(tǒng)總線523分別相連。這些驅(qū)動(dòng)器和它們相關(guān)的計(jì)算機(jī)可讀媒體提供計(jì)對(duì)幾可 執(zhí)行指令、,結(jié)構(gòu)、禾Mm莫塊、以及其它用于計(jì)穀幾系統(tǒng)520的其他繊的非 易失性的存儲(chǔ)。雖然這里描述的本發(fā)明的實(shí)例環(huán)境^頓了一個(gè)硬磁盤539, 一可 移動(dòng)磁盤529和一可移動(dòng)光盤531 ,也可以使用用來存儲(chǔ)數(shù)據(jù)的其他類型的計(jì)算 機(jī)可il^某體,包括磁帶,閃存卡,數(shù)字翻纖,Bemoulli纖,RAM, ROM, 及其類似。
程序代碼方法包括一個(gè)或多個(gè)可以存儲(chǔ)在硬盤539、磁盤529、光盤531、 ROM524^RAM525中的禾歸模塊,包括一個(gè)操作系統(tǒng)535, 一個(gè)或多個(gè)應(yīng)用程 序536,其他禾辦模土央537,禾口禾將數(shù)據(jù)538。 一個(gè)用戶可以通過鍵盤540,定位 設(shè)備542,戯他輸入設(shè)備(標(biāo)出)會(huì)射十^* 飽20輸入命令或信息,例如, 像這樣的, 一個(gè)話筒,游戲手柄,游戲控制臺(tái),掃描儀,或其類似。這些和其 他輸入設(shè)備可以通過與系統(tǒng)總線523耦合的串行接口546被連接到處理單^i521。 可割"也,輸入設(shè)備可以Mil其他接口被纖,例如,^3^f的, 一并行端口, 一游戲端口, 一通用串行總線("USB")端口,或一帶電線的端口。 一監(jiān)視 器547或其他顯示設(shè)備也通過視頻適配器548與系統(tǒng)總線523相連。計(jì)算機(jī)系統(tǒng)520也可以連接到其4M卜部輸出設(shè)備(未示出),例如,^i^樣的,揚(yáng)聲器和打 印機(jī)。
計(jì)^m系統(tǒng)520和網(wǎng)絡(luò)是可互連的,例如,fl^樣的, 一個(gè)辦公室范圍或企 業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò), 一內(nèi)部網(wǎng),禾口/或互聯(lián)網(wǎng)。計(jì)算機(jī)系統(tǒng)520可以與外部資源 交換數(shù)據(jù),例如,像這樣的,通過這種網(wǎng)絡(luò)連接的遠(yuǎn)程計(jì)算機(jī)系統(tǒng),遠(yuǎn)掛《用 辦,禾口/或遠(yuǎn)禾1 庫(kù)。
計(jì)敦幾系統(tǒng)520包括網(wǎng)^維口553, M它計(jì)^a系統(tǒng)520/A^卜部資源接收數(shù) 據(jù)和/或傳送繊勤卜部資源。如圖5戶脫,網(wǎng)i維口553使iM:驗(yàn)551與遠(yuǎn)程計(jì) 算機(jī)系統(tǒng)583交換數(shù)據(jù)更為容易。鏈接551表示網(wǎng)絡(luò)的一部分。而遠(yuǎn)程計(jì)算機(jī)系 統(tǒng)583表示網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)。例如,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)583可以維持一給為在計(jì) 算機(jī)系統(tǒng)520所構(gòu)建的網(wǎng)絡(luò)響應(yīng)提供內(nèi)容的數(shù)據(jù)庫(kù)。另一方面,計(jì)算豐幾系統(tǒng)583 可以是一個(gè)從一計(jì)穀幾系統(tǒng)520雜隹持的麵庫(kù)中請(qǐng)求內(nèi)容的服務(wù)器計(jì)嶽幾。
同樣地,計(jì)算機(jī)系統(tǒng)520包括串行接口546,通過它計(jì)^l幾系統(tǒng)520從外部資 源接收數(shù)據(jù)和/或傳送數(shù)據(jù)至外部 。串行接口546耦合至調(diào)制解調(diào)器554,通 過它計(jì)對(duì)幾系統(tǒng)520/^卜部資源接收 和域傳送 。可替代地,調(diào)制解調(diào)器 554可以是一個(gè)通過適當(dāng)接口與計(jì)算機(jī)系統(tǒng)520相連的符合電纜服務(wù)接口規(guī)格的 ,("DOCSIS")調(diào)諱蠏調(diào)器微字用戶線("DSL")調(diào)審,調(diào)器。然而, 如圖5所描述的,串行接口 54和調(diào)制解調(diào)器554使M:鏈接552與遠(yuǎn)程計(jì)穀幾系統(tǒng) 593的數(shù)據(jù)交換更為容易。鏈接552表示網(wǎng)絡(luò)的一部分,而遠(yuǎn)程計(jì)算機(jī)系統(tǒng)表示 網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)。例如,遠(yuǎn)程計(jì)t^幾系統(tǒng)593可以是一個(gè)從計(jì)算機(jī)系統(tǒng)520請(qǐng) 求網(wǎng)絡(luò)響應(yīng)的客戶^i十^a系統(tǒng)。另一方面,計(jì)^tl系統(tǒng)593可以是一個(gè)纟合計(jì)算 tl^統(tǒng)520掛共網(wǎng)絡(luò)響應(yīng)細(xì)艮務(wù)器計(jì)^m系統(tǒng)。
而圖5表示一個(gè)用于本發(fā)明的適合的操作環(huán)境,本發(fā)明的原理在該系統(tǒng)中可 以得到體現(xiàn),如果必要可進(jìn)行適當(dāng)?shù)男薷模詫?shí)現(xiàn)本發(fā)明的原理。圖5所示的環(huán) 境僅僅是示范性的決不是表示在本發(fā)明原理可以實(shí)現(xiàn)的環(huán)境中的很大范圍中的 一小部分。
本發(fā)明的?!姥?,除了相關(guān)的 外,可以從倒可與計(jì)^m系統(tǒng)520相關(guān)的計(jì) 算機(jī)可讀媒體被存儲(chǔ)并訪問。例如,部分的這些模塊和部分相關(guān)的禾歸娜可 以被包括在操作系統(tǒng)535,應(yīng)用禾號(hào)536,禾歸模塊537禾口/或禾MiW^538中,用 于系統(tǒng)存儲(chǔ)器522的存儲(chǔ)。當(dāng)一大容量剤微備,例如,《ti^羊的,硬纖539,與計(jì)^a^統(tǒng)520耦合時(shí),這些模塊和相關(guān) ^也可以被存儲(chǔ)在該大容量存 儲(chǔ)設(shè)備中。在一個(gè)網(wǎng)絡(luò)環(huán)境中,被描述為與計(jì)^m^統(tǒng)520相關(guān)的禾歸模塊和相 關(guān)數(shù)據(jù),或者它們的部分,可以被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)設(shè)備中,例如,像這樣的, 與遠(yuǎn)程計(jì)算機(jī)系統(tǒng)583和/或遠(yuǎn)程計(jì)算機(jī)系統(tǒng)593相關(guān)的系統(tǒng)存儲(chǔ)器和/或大容量 存儲(chǔ)設(shè)備。這些模塊的執(zhí)行可以在一如前戶,的分布式環(huán)境中進(jìn)行。
本發(fā)明可以在不脫離其精神和本質(zhì)特點(diǎn)的情況下用其它的指定方式實(shí)現(xiàn)。 所描述的實(shí)施例是在所有方面僅僅用于示例性的而不是限制性的。因此,本發(fā) 明的范圍是,由所附的權(quán)禾頓求書來說明而不是前面的說明書。所有的在權(quán)利 要求范圍內(nèi)的等效的改變都是包含在其范圍內(nèi)的。
權(quán)利要求
1. 在一提供網(wǎng)絡(luò)響應(yīng)至請(qǐng)求中的客戶端計(jì)算機(jī)系統(tǒng)的服務(wù)器計(jì)算機(jī)系統(tǒng)中,該網(wǎng)絡(luò)響應(yīng)潛在地包括來自數(shù)據(jù)庫(kù)中的一個(gè)或多個(gè)數(shù)據(jù)表的內(nèi)容,該服務(wù)器計(jì)算機(jī)系統(tǒng)包括一個(gè)緩存位置,該緩存位置存儲(chǔ)先前從一數(shù)據(jù)表接收的一部分緩存內(nèi)容以及與所緩存的數(shù)據(jù)相對(duì)應(yīng)的緩存的版本信息,一種用于訪問將被顯示在一請(qǐng)求中的客戶端計(jì)算機(jī)系統(tǒng)的內(nèi)容的方法,該方法包括下列內(nèi)容一從一客戶端計(jì)算機(jī)系統(tǒng)接收一網(wǎng)絡(luò)請(qǐng)求的步驟,該網(wǎng)絡(luò)請(qǐng)求請(qǐng)求遞送一要包括被包含在一數(shù)據(jù)表中所請(qǐng)求的內(nèi)容的網(wǎng)絡(luò)響應(yīng),該數(shù)據(jù)表對(duì)于其他可以替換包含在數(shù)據(jù)表中內(nèi)容的應(yīng)用程序通常是可以被訪問的,包括替換所請(qǐng)求的內(nèi)容;一確定要被包括在該網(wǎng)絡(luò)響應(yīng)中的內(nèi)容的至少一部分當(dāng)前沒有被緩存在服務(wù)器計(jì)算機(jī)系統(tǒng)的步驟;一從該數(shù)據(jù)表訪問所請(qǐng)求內(nèi)容的步驟;一構(gòu)建該網(wǎng)絡(luò)響應(yīng)的步驟,所構(gòu)建的網(wǎng)絡(luò)響應(yīng)包括所請(qǐng)求的內(nèi)容;一基于在構(gòu)建該網(wǎng)絡(luò)響應(yīng)期間執(zhí)行的命令向所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分分配一數(shù)據(jù)庫(kù)緩存依賴性的步驟,該數(shù)據(jù)庫(kù)緩存依賴性指示所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分依賴于該數(shù)據(jù)表;和一在服務(wù)器計(jì)算機(jī)系統(tǒng)的一緩存位置緩存所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分的步驟;和一響應(yīng)于該網(wǎng)絡(luò)請(qǐng)求把所構(gòu)建的網(wǎng)絡(luò)響應(yīng)傳送至該客戶端計(jì)算機(jī)系統(tǒng)的步驟。
2. 如權(quán)利要求i戶;M的方法,其中戶;M從一客戶女m十^m系統(tǒng)接收一網(wǎng)絡(luò)請(qǐng)求的步驟包括一接收一HTIP請(qǐng)求作為在該客戶端計(jì)算機(jī)系統(tǒng)的一瀏覽器訪問 相^ZURL的結(jié)果的步驟。
3. 如權(quán)禾腰求l所述的方法,其中所述基于在構(gòu)建該網(wǎng)絡(luò)響應(yīng)期間執(zhí)行的命 令向所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分分配一數(shù)據(jù)庫(kù)緩存依賴性的步驟包括一執(zhí) 行導(dǎo)致所構(gòu)建的網(wǎng)絡(luò)響應(yīng) 于數(shù)據(jù)庫(kù)中一數(shù)據(jù)表的指示的步驟。
4. 如權(quán)禾腰求i戶腿的方法,其中戶;M基于在構(gòu)建該網(wǎng)絡(luò)響應(yīng)期間執(zhí)行的命 令向所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分分配一數(shù)據(jù)庫(kù)緩存依賴性的步驟包括一執(zhí)行一導(dǎo)致來自數(shù)據(jù)表的內(nèi)容要依賴于該數(shù)據(jù)表的腳本的計(jì)算機(jī)可執(zhí)行指令的步驟。
5. 如權(quán)利要求i戶腿的方法,其中戶;f^基于在構(gòu)建該網(wǎng)絡(luò)響應(yīng)期間執(zhí)行的命 令向所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分分配一數(shù)據(jù)庫(kù)緩存依賴性的步驟包括一分 配一依賴于一主碼記錄的緩存記錄的步驟,該主碼記錄依賴于該 表從而當(dāng) 該主碼記錄無效時(shí)該緩存記錄自動(dòng)無效。
6. 如權(quán)利要求i戶; ^的方法,其中所述在服務(wù)器計(jì)穀幾系統(tǒng)的一緩剤立置緩 存所構(gòu)建的網(wǎng)絡(luò)響應(yīng)的至少一部分的步驟包括一緩存完整網(wǎng)絡(luò)響應(yīng)的步驟。
7. 如權(quán)利要求6所述的方法,其中所述緩存完整網(wǎng)絡(luò)響應(yīng)的步驟包括一將該完整網(wǎng)絡(luò)響應(yīng)推進(jìn)到一第二較低級(jí)別緩^j立置的步驟。
8. 如權(quán)利要求7戶,的方法,進(jìn)一步包括一當(dāng)該網(wǎng)絡(luò)響應(yīng)無效時(shí)服務(wù)器計(jì)算機(jī)系統(tǒng)從第二較低級(jí)別緩存位置移除該 完整網(wǎng)絡(luò)響應(yīng)的步驟。
9. 如權(quán)利要求7所述的方法,其中所述將該完整網(wǎng)絡(luò)響應(yīng)推進(jìn)到一第二較低 級(jí)別緩剤立置的步驟包括一將i^^網(wǎng)絡(luò)響M^l」1化系統(tǒng)響應(yīng)緩存的步驟
10. 在一提供網(wǎng)絡(luò)響應(yīng)至請(qǐng)求中的客戶端計(jì)算機(jī)系統(tǒng)的服務(wù)器計(jì)算機(jī)系統(tǒng) 中,該網(wǎng)絡(luò)響應(yīng)潛在地包括來自數(shù)據(jù)庫(kù)中一或多個(gè)數(shù)據(jù)表的內(nèi)容,該服務(wù)器計(jì) 算機(jī)系統(tǒng)包括一個(gè)緩存位置,該緩存位置存儲(chǔ)先前從一數(shù)據(jù)表接收的一部分緩 存內(nèi)容以及與所緩存的數(shù)據(jù)相對(duì)應(yīng)的緩存的版本信息, 一種用于訪問將被顯示在一請(qǐng)求中的客戶^i十^n系統(tǒng)的內(nèi)容的方法,該方 ^a括下列內(nèi)容一從一客戶端計(jì)算機(jī)系統(tǒng)接收一網(wǎng)絡(luò)請(qǐng)求的步驟,該網(wǎng)絡(luò)請(qǐng)求傳送一要包 括包含在一數(shù)據(jù)表中的所請(qǐng)求內(nèi)容的一網(wǎng)絡(luò)響應(yīng),該數(shù)據(jù)表對(duì)于其他可以替換 包含在該數(shù)據(jù)表中的應(yīng)用禾歸通常者阿以被訪問,包括替換戶;fi青求的內(nèi)容;一確定要被包括在該網(wǎng)絡(luò)響應(yīng)中的內(nèi)容的至少一部分當(dāng)前沒有被緩存在服 務(wù)器計(jì)鋭幾系統(tǒng)的步驟;一從該i^表訪問戶;n青求內(nèi)容的步驟;一構(gòu)建該網(wǎng)絡(luò)響應(yīng)的步驟,所構(gòu)建的網(wǎng)絡(luò)響應(yīng)包括戶;fi青求的內(nèi)容;一存儲(chǔ)戶;fi青求的內(nèi)容、使所請(qǐng)求的內(nèi)容能被有效地訪問以滿足后續(xù)的網(wǎng)絡(luò)請(qǐng)求的步驟;和一響應(yīng)于該網(wǎng)絡(luò)請(qǐng)求ft^f構(gòu)建的網(wǎng)絡(luò)響應(yīng)傳送至該客戶^i十穀幾系統(tǒng)的步驟
全文摘要
本發(fā)明涉及用于寄存和檢索可以用來使緩存記錄無效的數(shù)據(jù)庫(kù)表格變化信息。一服務(wù)器提供可以包括來自數(shù)據(jù)庫(kù)中數(shù)據(jù)表的內(nèi)容的網(wǎng)絡(luò)響應(yīng)。該服務(wù)器提供一可以存儲(chǔ)內(nèi)容(包括來自數(shù)據(jù)表的內(nèi)容)的緩存(例如,在系統(tǒng)存儲(chǔ)器)以提高隨后提供相同內(nèi)容的效率以滿足客戶端網(wǎng)絡(luò)請(qǐng)求。該服務(wù)器監(jiān)視數(shù)據(jù)表的變化并且,當(dāng)在一特定的數(shù)據(jù)表中出現(xiàn)一變化時(shí),使依賴于一特定數(shù)據(jù)表的緩存記錄無效。進(jìn)而,響應(yīng)于一客戶端網(wǎng)絡(luò)請(qǐng)求的網(wǎng)絡(luò)響應(yīng),該服務(wù)器給至少一部分所構(gòu)建的網(wǎng)絡(luò)響應(yīng)分配數(shù)據(jù)庫(kù)緩存依賴性,該部分所構(gòu)建的網(wǎng)絡(luò)響應(yīng)是基于在構(gòu)建該網(wǎng)絡(luò)響應(yīng)期間所執(zhí)行的命令的。該至少一部分所構(gòu)建的網(wǎng)絡(luò)響應(yīng)隨后被緩存在服務(wù)器的一緩存位置。
文檔編號(hào)G06F17/30GK101452484SQ20081018897
公開日2009年6月10日 申請(qǐng)日期2004年6月25日 優(yōu)先權(quán)日2003年6月25日
發(fā)明者A·W·史密斯, M·J·皮佐, P·Y·K·吳, R·M·海華德, S·D·古斯里 申請(qǐng)人:微軟公司