專(zhuān)利名稱(chēng):在網(wǎng)絡(luò)中對(duì)動(dòng)態(tài)產(chǎn)生的對(duì)象執(zhí)行緩存的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及在網(wǎng)絡(luò)中緩存數(shù)據(jù)。具體地,本發(fā)明涉及在網(wǎng)絡(luò)中對(duì)動(dòng)態(tài)產(chǎn)生 的對(duì)象執(zhí)行緩存的設(shè)備、系統(tǒng)和方法。
背景技術(shù):
網(wǎng)絡(luò)通信量的持續(xù)發(fā)展速度使得承載該通信量的基礎(chǔ)設(shè)施變得緊張。已經(jīng)提出了 允許網(wǎng)絡(luò)運(yùn)營(yíng)商處理該日益嚴(yán)重的問(wèn)題的各種解決方案,其中包括緩存技術(shù)的開(kāi)發(fā)。使用 常規(guī)緩存,可以重新使用靜態(tài)內(nèi)容并將該靜態(tài)內(nèi)容提供給多個(gè)客戶(hù)端而不會(huì)加重服務(wù)器基 礎(chǔ)設(shè)施的負(fù)荷。另外,緩沖存儲(chǔ)器允許靜態(tài)內(nèi)容更接近終端用戶(hù)來(lái)存儲(chǔ),因此改進(jìn)了響應(yīng)時(shí) 間并同時(shí)減少服務(wù)器基礎(chǔ)設(shè)施的負(fù)荷。降低的響應(yīng)時(shí)間和減少的服務(wù)器基礎(chǔ)設(shè)施的負(fù)荷減 少了該基礎(chǔ)設(shè)施的帶寬和處理需求。然而,經(jīng)過(guò)網(wǎng)絡(luò)傳送的日益增加的內(nèi)容量是動(dòng)態(tài)產(chǎn)生的,其中包括由企業(yè)計(jì)算解 決方案和復(fù)雜因特網(wǎng)應(yīng)用產(chǎn)生的較大百分比的網(wǎng)絡(luò)通信量。動(dòng)態(tài)產(chǎn)生的內(nèi)容是當(dāng)請(qǐng)求對(duì)象 時(shí)服務(wù)器產(chǎn)生的內(nèi)容,并通常是基于從客戶(hù)端接收的輸入。因此,它經(jīng)常改變通過(guò)時(shí)間和對(duì) 于產(chǎn)生系統(tǒng)進(jìn)行的輸入。動(dòng)態(tài)內(nèi)容的常規(guī)示例包括由客戶(hù)端進(jìn)行的股票行情表請(qǐng)求或數(shù)據(jù) 庫(kù)搜索。在每個(gè)實(shí)例中,在接收到特定客戶(hù)請(qǐng)求后實(shí)時(shí)產(chǎn)生響應(yīng)對(duì)象。對(duì)緩存動(dòng)態(tài)產(chǎn)生的內(nèi)容的挑戰(zhàn)是多方面的。例如,緩存動(dòng)態(tài)產(chǎn)生的內(nèi)容沒(méi)有通常 公認(rèn)的標(biāo)準(zhǔn)或規(guī)范。因?yàn)閷?duì)于指定是否緩存動(dòng)態(tài)產(chǎn)生的對(duì)象沒(méi)有標(biāo)準(zhǔn),所以該對(duì)象一般被 看作是不可緩存的。另一挑戰(zhàn)在于確定動(dòng)態(tài)產(chǎn)生的對(duì)象的“新鮮”度的有效性,這是因?yàn)橛?于產(chǎn)生該對(duì)象的潛在數(shù)據(jù)的改變是無(wú)規(guī)律并不可預(yù)測(cè)的。除了上述困難之外,對(duì)動(dòng)態(tài)產(chǎn)生的內(nèi)容的請(qǐng)求一般也比對(duì)靜態(tài)內(nèi)容的請(qǐng)求更復(fù) 雜。動(dòng)態(tài)請(qǐng)求經(jīng)常包含需要由目標(biāo)應(yīng)用處理或解析的信息字符串以識(shí)別將由緩存器使用的 可應(yīng)用參數(shù)用于識(shí)別與該請(qǐng)求有關(guān)的合適對(duì)象。然而,這些參數(shù)很少由客戶(hù)端以邏輯或相 容的順序放在請(qǐng)求中。為了確定該請(qǐng)求識(shí)別大量動(dòng)態(tài)產(chǎn)生的對(duì)象中的哪一個(gè),每個(gè)該請(qǐng)求 必須被標(biāo)準(zhǔn)化(即,以非任意順序放置參數(shù))。而且,利用動(dòng)態(tài)產(chǎn)生的內(nèi)容使一個(gè)請(qǐng)求與動(dòng)態(tài)產(chǎn)生的對(duì)象匹配成為更復(fù)雜的任 務(wù),這是因?yàn)橛蓱?yīng)用所執(zhí)行的特定處理需要被復(fù)制或另外通過(guò)有根據(jù)的推測(cè)來(lái)預(yù)料。該復(fù)制或推測(cè)對(duì)于確定由緩存器所存儲(chǔ)的對(duì)象是否適于提供給特定的即將到來(lái)的請(qǐng)求是很有 必要的。該復(fù)雜性是由于應(yīng)用本身復(fù)雜性而引起,也是因?yàn)轫憫?yīng)內(nèi)容可以是請(qǐng)求內(nèi)容以及 諸如用戶(hù)身份(該用戶(hù)身份在請(qǐng)求中可能出現(xiàn)或可能不出現(xiàn))、時(shí)間、用戶(hù)數(shù)據(jù)庫(kù)的當(dāng)前狀 態(tài)之類(lèi)的特定其他外部變量,和無(wú)數(shù)其它因素的函數(shù)??傮w上,緩存最初圍繞緩存靜態(tài)對(duì)象而開(kāi)發(fā)。當(dāng)因特網(wǎng)和應(yīng)用變得越來(lái)越取決于 傳送動(dòng)態(tài)產(chǎn)生的內(nèi)容時(shí),需要一種解決方案,該解決方案將緩存的優(yōu)勢(shì)擴(kuò)展到動(dòng)態(tài)內(nèi)容,并 且解決了這樣的內(nèi)容對(duì)于常規(guī)緩存技術(shù)所提出的各種挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明的解決方案提高了緩沖存儲(chǔ)器存儲(chǔ)和提供動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)的能力。本發(fā)明 也使緩存器能夠有效處理各種不同的應(yīng)用請(qǐng)求類(lèi)型,因此增加應(yīng)用性能并消除了用于保持 從緩存器提供的數(shù)據(jù)的新鮮度的管理復(fù)雜性。本發(fā)明除了結(jié)合以不復(fù)制最初產(chǎn)生對(duì)象的應(yīng) 用服務(wù)器所執(zhí)行的處理的方式理解和處理數(shù)據(jù)的能力之外,通過(guò)使用試探法提供了緩存動(dòng) 態(tài)內(nèi)容的有效方法以有效地預(yù)測(cè)該應(yīng)用服務(wù)器的性能。本發(fā)明的這些技術(shù)又增加了動(dòng)態(tài)緩 存的使用,并因此有助于改進(jìn)網(wǎng)絡(luò)和潛在的應(yīng)用基礎(chǔ)設(shè)施的性能。在一個(gè)實(shí)施例中,本發(fā)明涉及一種在緩存器中緩存和維持動(dòng)態(tài)產(chǎn)生的對(duì)象的方法 和系統(tǒng)。本發(fā)明的技術(shù)包括在緩存器接收無(wú)效命令以無(wú)效對(duì)象,諸如之前從始發(fā)服務(wù)器 (originating server)提供并存儲(chǔ)在緩存器中的動(dòng)態(tài)產(chǎn)生的對(duì)象。從始發(fā)服務(wù)器中所述 動(dòng)態(tài)產(chǎn)生的對(duì)象沒(méi)有被識(shí)別為可緩存的。緩存器接收的無(wú)效命令識(shí)別緩存的動(dòng)態(tài)產(chǎn)生的對(duì) 象。響應(yīng)無(wú)效命令,緩存器將緩存的動(dòng)態(tài)產(chǎn)生對(duì)象標(biāo)記為無(wú)效,并從緩存器刷新該對(duì)象。在另一實(shí)施例中,本發(fā)明也提供了用于使用對(duì)象決定因素(object determinant) 識(shí)別緩存的動(dòng)態(tài)產(chǎn)生對(duì)象的技術(shù)。緩存器可以截取客戶(hù)端和服務(wù)器之間的通信,并解析通 信以識(shí)別對(duì)象決定因素。對(duì)象決定因素能識(shí)別之前提供并存儲(chǔ)在緩存器中的對(duì)象。緩存器 根據(jù)對(duì)象決定因素確定在始發(fā)服務(wù)器由對(duì)象決定因素所識(shí)別的對(duì)象中變化是否已發(fā)生或 將發(fā)生。如果變化已發(fā)生或?qū)l(fā)生,緩存器將由對(duì)象決定因素所識(shí)別的對(duì)象在緩存器中標(biāo) 記為無(wú)效。一旦將對(duì)象標(biāo)記為無(wú)效,緩存器刷新無(wú)效對(duì)象并從始發(fā)服務(wù)器檢索對(duì)象。本發(fā)明的另一些實(shí)施例應(yīng)用上述方法至動(dòng)態(tài)產(chǎn)生的對(duì)象組。例如,先前提供的動(dòng) 態(tài)產(chǎn)生的對(duì)象組是在緩存器中形成的。對(duì)象組與至少一個(gè)對(duì)象決定因素有關(guān)。組的記錄被 保持在緩存器中并與對(duì)象決定因素有關(guān)。如果由緩沖器截取的通信所識(shí)別的對(duì)象決定因素 表明在始發(fā)服務(wù)器上組的一個(gè)或多個(gè)對(duì)象中變化已發(fā)生或?qū)l(fā)生,則將之前提供的對(duì)象的 組標(biāo)記為無(wú)效。一方面,本發(fā)明涉及一種對(duì)動(dòng)態(tài)產(chǎn)生的對(duì)象進(jìn)行緩存的方法,該動(dòng)態(tài)產(chǎn)生的對(duì)象 沒(méi)有被識(shí)別為可緩存。該方法包括在緩存器中存儲(chǔ)動(dòng)態(tài)產(chǎn)生的對(duì)象,該動(dòng)態(tài)產(chǎn)生的對(duì)象沒(méi) 有被識(shí)別為可緩存,從始發(fā)服務(wù)器提供所述動(dòng)態(tài)產(chǎn)生的對(duì)象;由所述緩存器接收一個(gè)請(qǐng)求 以無(wú)效所述緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象。響應(yīng)所述請(qǐng)求,所述緩存器將所述緩存的動(dòng)態(tài)產(chǎn)生的 對(duì)象標(biāo)記為無(wú)效??梢栽谑及l(fā)服務(wù)器和客戶(hù)端之間進(jìn)行通信的任何設(shè)備(例如,裝置、網(wǎng)絡(luò) 設(shè)備或計(jì)算設(shè)備)上操作該緩存器。在某些實(shí)施例中,本發(fā)明的方法包括由所述始發(fā)服務(wù)器請(qǐng)求無(wú)效所述緩存的動(dòng)態(tài) 產(chǎn)生的對(duì)象。在其他實(shí)施例中,響應(yīng)所述始發(fā)服務(wù)器中動(dòng)態(tài)產(chǎn)生對(duì)象的改變,所述始發(fā)服務(wù)器自動(dòng)請(qǐng)求無(wú)效所述緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象。在另一實(shí)施例中,客戶(hù)端與始發(fā)服務(wù)器進(jìn)行 通信以接收動(dòng)態(tài)產(chǎn)生的對(duì)象,并且客戶(hù)端請(qǐng)求無(wú)效所述緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象。在又另一 實(shí)施例中,外部管理控制器請(qǐng)求無(wú)效所述緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象。在一個(gè)實(shí)施例中,本發(fā)明的方法包括從所述緩存器刷新被標(biāo)記為無(wú)效的所述緩存 的動(dòng)態(tài)產(chǎn)生的對(duì)象。在另一實(shí)施例中,在所述緩存動(dòng)態(tài)產(chǎn)生對(duì)象的例如十毫秒或更少時(shí)間 的很短時(shí)間內(nèi)緩存器接收無(wú)效請(qǐng)求。在一些實(shí)施例,響應(yīng)于很短的期限(expiry)屆滿(mǎn),例 如緩存對(duì)象的10毫秒或更少的期限,所述緩存器無(wú)效緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象。另一方面,本發(fā)明涉及一種對(duì)動(dòng)態(tài)產(chǎn)生的對(duì)象組進(jìn)行緩存的方法。在一些實(shí)施例 中,該對(duì)象組具有沒(méi)有被識(shí)別為可緩存的至少一個(gè)對(duì)象。該方法包括在緩存器中識(shí)別從始 發(fā)服務(wù)器之前提供的動(dòng)態(tài)產(chǎn)生的對(duì)象組。所述緩存器將所述組和對(duì)象決定因素相關(guān)聯(lián)。本 發(fā)明還包括由所述緩存器截取一個(gè)通信,所述通信識(shí)別組的對(duì)象決定因素以及表示在始發(fā) 服務(wù)器上對(duì)所述組的對(duì)象之一的變化將要發(fā)生或已經(jīng)發(fā)生。在一個(gè)實(shí)施例中,本發(fā)明的方 法包括響應(yīng)于截取所述通信或識(shí)別對(duì)象決定因素,由所述緩存器將所述動(dòng)態(tài)產(chǎn)生的對(duì)象組 標(biāo)記為無(wú)效。而且,在本發(fā)明的某些實(shí)施例中,緩存器從所述緩存器刷新被標(biāo)記為無(wú)效的對(duì)象 組。在其他實(shí)施例中,所述動(dòng)態(tài)產(chǎn)生的對(duì)象組是預(yù)先指定的。在其他實(shí)施例中,本發(fā)明自動(dòng) 識(shí)別所述動(dòng)態(tài)產(chǎn)生的對(duì)象組并根據(jù)一個(gè)規(guī)則使所述對(duì)象決定因素和所述組相關(guān)聯(lián)。一方面,本發(fā)明涉及用于維持動(dòng)態(tài)產(chǎn)生的對(duì)象的緩存器的另一種方法。本發(fā)明的 方法包括由緩存器截取客戶(hù)端和始發(fā)服務(wù)器之間的通信,例如客戶(hù)端向始發(fā)服務(wù)器請(qǐng)求動(dòng) 態(tài)產(chǎn)生的對(duì)象。動(dòng)態(tài)產(chǎn)生的對(duì)象之前已由始發(fā)服務(wù)器提供并存儲(chǔ)在緩存器中。該方法在表 示所述始發(fā)服務(wù)器上動(dòng)態(tài)產(chǎn)生對(duì)象的變化已發(fā)生或?qū)l(fā)生的通信中由緩存器識(shí)別對(duì)象決 定因素,并由所述緩存器將所述緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象標(biāo)記為無(wú)效。然后,該方法從始發(fā)服 務(wù)器獲得所請(qǐng)求的動(dòng)態(tài)產(chǎn)生的對(duì)象。在本發(fā)明的一個(gè)實(shí)施例中,緩存器刷新無(wú)效的動(dòng)態(tài)產(chǎn)生的對(duì)象。在另一實(shí)施例中, 緩存器使動(dòng)態(tài)產(chǎn)生的對(duì)象和從始發(fā)服務(wù)器之前提供的動(dòng)態(tài)產(chǎn)生的對(duì)象組相關(guān)聯(lián),將該組和 對(duì)象決定因素相關(guān)聯(lián),并響應(yīng)請(qǐng)求將所述動(dòng)態(tài)產(chǎn)生的對(duì)象組標(biāo)記為無(wú)效。在某些實(shí)施例中, 所述動(dòng)態(tài)產(chǎn)生的對(duì)象沒(méi)有被識(shí)別為可緩存的。在其他實(shí)施例中,緩存器刷新被標(biāo)記為無(wú)效 的所述動(dòng)態(tài)產(chǎn)生的對(duì)象組。動(dòng)態(tài)產(chǎn)生的對(duì)象組可以是預(yù)指定的或另外根據(jù)一個(gè)規(guī)則通過(guò)對(duì) 象決定因素而被自動(dòng)識(shí)別的。在本方法的某些實(shí)施例中,客戶(hù)端在通信中嵌入對(duì)象決定因素作為預(yù)定字符串。 在其他實(shí)施例中,緩存器根據(jù)與動(dòng)態(tài)產(chǎn)生對(duì)象相關(guān)的預(yù)定啟發(fā)式規(guī)則識(shí)別對(duì)象決定因素。 在一個(gè)實(shí)施例中,緩存器從通信的如下元素之一中選擇對(duì)象決定因素1)USERID,2)IP地 址,3) TCP端口,4) HTTP報(bào)頭,5)自定義HTTP報(bào)頭,6)客戶(hù)URL, 7) cookie報(bào)頭,8) URL查 詢(xún)字符串和9)P0ST主體。緩存器也根據(jù)用戶(hù)配置的無(wú)效策略從通信中提取對(duì)象決定因素。在另一實(shí)施例中,本發(fā)明的方法包括維持緩存器中的一個(gè)表以使對(duì)象決定因素和 緩存器中存儲(chǔ)的一個(gè)或多個(gè)對(duì)象或?qū)ο蠼M相關(guān)聯(lián)。在某些實(shí)施例中,本方法包括由智能 統(tǒng)計(jì)引擎檢查來(lái)自客戶(hù)端的通信以識(shí)別動(dòng)態(tài)產(chǎn)生的對(duì)象集以與緩存器中的組相關(guān)聯(lián)。緩 存器可以將存儲(chǔ)在緩存器中的對(duì)象與內(nèi)容組相關(guān)聯(lián)。該內(nèi)容組由具有作為索引的具體數(shù) (incarnation number)的散列表來(lái)表示。在其他實(shí)施例中,緩存器對(duì)通過(guò)請(qǐng)求所識(shí)別的動(dòng)態(tài)產(chǎn)生的對(duì)象執(zhí)行散列算法以確定動(dòng)態(tài)產(chǎn)生對(duì)象的變化。在某些方面,本發(fā)明涉及一種對(duì)動(dòng)態(tài)產(chǎn)生的對(duì)象進(jìn)行緩存的系統(tǒng),該動(dòng)態(tài)產(chǎn)生的 對(duì)象沒(méi)有被識(shí)別為可緩存,該系統(tǒng)包括用于在緩存器中存儲(chǔ)動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置,該動(dòng) 態(tài)產(chǎn)生的對(duì)象沒(méi)有被識(shí)別為可緩存,從始發(fā)服務(wù)器提供所述動(dòng)態(tài)產(chǎn)生的對(duì)象;以及用于由 所述緩存器接收一個(gè)請(qǐng)求以無(wú)效所述緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。該系統(tǒng)也包括用于響 應(yīng)所述請(qǐng)求,由所述緩存器將所述緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象標(biāo)記為無(wú)效的裝置。在其他方面,本發(fā)明涉及一種對(duì)諸如動(dòng)態(tài)產(chǎn)生對(duì)象之類(lèi)的對(duì)象組進(jìn)行緩存的系 統(tǒng)。在某些實(shí)施例中,該動(dòng)態(tài)產(chǎn)生的對(duì)象具有沒(méi)有被識(shí)別為可緩存的至少一個(gè)對(duì)象。該系 統(tǒng)包括用于在緩存器中識(shí)別從始發(fā)服務(wù)器之前提供的動(dòng)態(tài)產(chǎn)生的對(duì)象組的裝置,所述動(dòng)態(tài) 產(chǎn)生的對(duì)象中的至少一個(gè)沒(méi)有被識(shí)別為可緩存;以及用于由緩存器將組和對(duì)象決定因素相 關(guān)聯(lián)的裝置。該系統(tǒng)也包括用于由所述緩存器截取一個(gè)通信的裝置,所述通信識(shí)別組的對(duì) 象決定因素以及表示在始發(fā)服務(wù)器上對(duì)所述組的對(duì)象之一的變化將要發(fā)生或已經(jīng)發(fā)生。一方面,本發(fā)明涉及一種用于維持動(dòng)態(tài)產(chǎn)生的對(duì)象的緩存器的系統(tǒng)。該系統(tǒng)包括 用于由緩存器截取客戶(hù)端和始發(fā)服務(wù)器之間的通信的裝置。該系統(tǒng)也包括用于在表示所述 始發(fā)服務(wù)器上動(dòng)態(tài)產(chǎn)生對(duì)象的變化已發(fā)生或?qū)l(fā)生的通信中由緩存器識(shí)別對(duì)象決定因素 的裝置;以及用于由緩存器將緩存的動(dòng)態(tài)產(chǎn)生對(duì)象標(biāo)記為無(wú)效的裝置。在某些實(shí)施例中,系 統(tǒng)也包括用于從始發(fā)服務(wù)器獲得動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。另一方面,本發(fā)明涉及一種用于提供緩存器中存儲(chǔ)的動(dòng)態(tài)產(chǎn)生對(duì)象的顆粒度無(wú)效 的方法和系統(tǒng)。本發(fā)明的技術(shù)結(jié)合了將緩存器所存儲(chǔ)的對(duì)象的屆滿(mǎn)(expiration)時(shí)間配 置為微小的顆粒度時(shí)間間隔的能力,諸如由分組處理引擎的分組處理計(jì)時(shí)器提供的時(shí)間間 隔的顆粒度(granularity)。因此,本發(fā)明可以緩存期限時(shí)間小到非常小時(shí)間間隔的對(duì)象。 該特性被稱(chēng)為“無(wú)效顆粒度”(invalidation granularity)。通過(guò)在期限時(shí)間中提供該微 小的顆粒度,本發(fā)明的緩存器可以緩存并提供頻繁變化的對(duì)象,經(jīng)常甚至是一秒內(nèi)改變數(shù) 次的對(duì)象。一種技術(shù)是調(diào)節(jié)(leverage)本發(fā)明的設(shè)備所用的分組處理計(jì)時(shí)器,這樣能夠以 毫秒級(jí)的時(shí)間增量操作以允許無(wú)效或期限顆粒度低至10ms。當(dāng)本發(fā)明的集成緩存器響應(yīng)分 組處理引擎的分組處理計(jì)時(shí)器而執(zhí)行緩存操作時(shí),對(duì)象的無(wú)效可以在以毫秒級(jí)的時(shí)間段內(nèi) 發(fā)生,并具有以分組處理計(jì)時(shí)器所提供的時(shí)間間隔級(jí)別的期限(諸如IOms)的對(duì)象?!矫妫景l(fā)明涉及一種響應(yīng)分組處理計(jì)時(shí)器的信號(hào)而無(wú)效緩存器中緩存的動(dòng)態(tài) 產(chǎn)生對(duì)象的方法。該方法可以在設(shè)備的分組處理引擎中執(zhí)行,其中分組處理引擎處理具有 至少一個(gè)動(dòng)態(tài)產(chǎn)生對(duì)象的網(wǎng)絡(luò)分組并在緩存器中存儲(chǔ)動(dòng)態(tài)產(chǎn)生的對(duì)象。該方法包括從分組 處理計(jì)時(shí)器接收第一信號(hào)以處理網(wǎng)絡(luò)分組;響應(yīng)于所述信號(hào)處理網(wǎng)絡(luò)分組;以及向緩存器 傳送第二信號(hào),所述第二信號(hào)表示所緩存的動(dòng)態(tài)產(chǎn)生對(duì)象是無(wú)效的。在一個(gè)實(shí)施例中,第二 信號(hào)提供無(wú)效命令以無(wú)效緩存的動(dòng)態(tài)產(chǎn)生對(duì)象。在另一實(shí)施例中,第二信號(hào)提供緩存的動(dòng) 態(tài)產(chǎn)生對(duì)象的期限屆滿(mǎn)。在某些實(shí)施例中,在處理網(wǎng)絡(luò)分組期間傳送第二信號(hào),而在其他實(shí)施例中,一旦完 成網(wǎng)絡(luò)分組的處理就傳送第二信號(hào)。在本發(fā)明的一個(gè)實(shí)施例中,分組處理計(jì)時(shí)器以一或多 微秒的時(shí)間增量操作。分組處理計(jì)時(shí)器以一個(gè)時(shí)間增量操作以在10毫秒或更短的期限時(shí) 間無(wú)效緩存器中所存儲(chǔ)的對(duì)象。該方法包括由緩存器將緩存的動(dòng)態(tài)產(chǎn)生對(duì)象標(biāo)記為無(wú)效。 在一個(gè)實(shí)施例中,該方法包括從始發(fā)服務(wù)器傳送包括動(dòng)態(tài)產(chǎn)生對(duì)象的網(wǎng)絡(luò)分組。
具有分組處理引擎的設(shè)備包括任何如下設(shè)備1)電橋、2)路由器、3)轉(zhuǎn)換器,以及 4)SSL VPN設(shè)備。在某些實(shí)施例中,緩存器、分組處理引擎或分組處理計(jì)時(shí)器在設(shè)備的內(nèi)核 空間內(nèi)操作。在某些實(shí)施例中,該方法包括通過(guò)分組處理計(jì)時(shí)器為緩存的動(dòng)態(tài)產(chǎn)生對(duì)象的 期限提供時(shí)間間隔為等于或小于一個(gè)持續(xù)時(shí)間的時(shí)間以從始發(fā)服務(wù)器動(dòng)態(tài)產(chǎn)生并提供動(dòng) 態(tài)產(chǎn)生的對(duì)象。當(dāng)該動(dòng)態(tài)產(chǎn)生的對(duì)象從始發(fā)服務(wù)器提供時(shí),該動(dòng)態(tài)產(chǎn)生的對(duì)象被識(shí)別為不 可緩存的。另一方面,本發(fā)明涉及一種響應(yīng)分組處理計(jì)時(shí)器的信號(hào)而無(wú)效緩存的動(dòng)態(tài)產(chǎn)生對(duì) 象的設(shè)備。該設(shè)備處理具有至少一個(gè)動(dòng)態(tài)產(chǎn)生對(duì)象的網(wǎng)絡(luò)分組并在緩存器中存儲(chǔ)該動(dòng)態(tài)產(chǎn) 生的對(duì)象。該設(shè)備包括產(chǎn)生第一信號(hào)的分組處理計(jì)時(shí)器,以及與分組處理計(jì)時(shí)器進(jìn)行通信 的分組處理引擎。分組處理引擎響應(yīng)接收到分組處理計(jì)時(shí)器的第一信號(hào)而處理網(wǎng)絡(luò)分組。 該設(shè)備也包括與分組處理引擎進(jìn)行通信并具有在存儲(chǔ)元件中緩存的動(dòng)態(tài)產(chǎn)生對(duì)象的緩存 器。該緩存器從分組處理引擎接收第二信號(hào),該第二信號(hào)表示緩存的動(dòng)態(tài)產(chǎn)生對(duì)象是無(wú)效 的。在一個(gè)實(shí)施例中,第二信號(hào)包括無(wú)效命令以無(wú)效緩存的動(dòng)態(tài)產(chǎn)生對(duì)象。在另一實(shí)施例 中,第二信號(hào)包括緩存的動(dòng)態(tài)產(chǎn)生對(duì)象的期限屆滿(mǎn)。在本發(fā)明的設(shè)備的一個(gè)實(shí)施例中,在由分組處理引擎處理網(wǎng)絡(luò)分組期間分組處理 引擎向緩存器傳送第二信號(hào)。在另一實(shí)施例中,一旦完成網(wǎng)絡(luò)分組的處理,分組處理引擎就 向緩存器傳送第二信號(hào)。在某些實(shí)施例中,分組處理計(jì)時(shí)器以一或多個(gè)毫秒的時(shí)間間隔操 作。在一個(gè)實(shí)施例中,分組處理計(jì)時(shí)器以一個(gè)時(shí)間間隔操作以向緩存器觸發(fā)第二信號(hào)用于 在10毫秒或更少的第一時(shí)間間隔無(wú)效緩存的對(duì)象。本發(fā)明的設(shè)備包括如下設(shè)備之一 1)電橋、2)路由器、3)轉(zhuǎn)換器,以及4) SSL VPN 設(shè)備。緩存器、分組處理引擎或分組處理計(jì)時(shí)器可以在設(shè)備的內(nèi)核空間內(nèi)操作。在某些實(shí) 施例中,分組處理計(jì)時(shí)器為緩存的動(dòng)態(tài)產(chǎn)生對(duì)象的期限提供時(shí)間間隔小于或等于一個(gè)持續(xù) 時(shí)間以從始發(fā)服務(wù)器動(dòng)態(tài)產(chǎn)生并提供動(dòng)態(tài)產(chǎn)生的對(duì)象。從始發(fā)服務(wù)器中,該動(dòng)態(tài)產(chǎn)生的對(duì) 象沒(méi)有被識(shí)別為可緩存的。始發(fā)服務(wù)器可以傳送具有動(dòng)態(tài)產(chǎn)生的對(duì)象的網(wǎng)絡(luò)分組。另一方面,本發(fā)明涉及一種提供稱(chēng)為閃速緩存的技術(shù)的方法和系統(tǒng),用于響應(yīng)來(lái) 自多個(gè)客戶(hù)端對(duì)于諸如動(dòng)態(tài)產(chǎn)生對(duì)象之類(lèi)的對(duì)象的請(qǐng)求。本發(fā)明的該技術(shù)使用緩沖器中存 儲(chǔ)的動(dòng)態(tài)產(chǎn)生對(duì)象以向客戶(hù)端傳送,例如響應(yīng)來(lái)自客戶(hù)端的請(qǐng)求,也響應(yīng)來(lái)自其他客戶(hù)端 對(duì)動(dòng)態(tài)產(chǎn)生對(duì)象的另外請(qǐng)求并將對(duì)象保存在緩存器中。使用該技術(shù),本發(fā)明能夠增加對(duì)于 極快改變對(duì)象的緩存命中率,諸如不能被另外緩存的動(dòng)態(tài)產(chǎn)生的對(duì)象。一方面,本發(fā)明涉及一種用于響應(yīng)來(lái)自多個(gè)客戶(hù)端對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的請(qǐng)求的方 法。該方法包括由設(shè)備從始發(fā)服務(wù)器接收第一客戶(hù)端對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的第一請(qǐng)求的響 應(yīng)。該響應(yīng)包括動(dòng)態(tài)產(chǎn)生的對(duì)象。該方法也包括由設(shè)備請(qǐng)求分組處理引擎以傳送響應(yīng)到第 一客戶(hù)端。該響應(yīng)保持在緩沖器中同時(shí)等待傳送。該方法進(jìn)一步包括在完成將所述響應(yīng)傳 送到第一客戶(hù)端之前,由設(shè)備從第二客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的第二請(qǐng)求,以及由設(shè) 備請(qǐng)求分組處理引擎以將緩沖器中保持的對(duì)于第一客戶(hù)端的響應(yīng)的動(dòng)態(tài)產(chǎn)生對(duì)象傳送到 第二客戶(hù)端。在一個(gè)實(shí)施例中,本發(fā)明的方法包括由分組處理引擎將響應(yīng)傳送到第一客戶(hù)端。 在另一實(shí)施例中,該方法包括響應(yīng)第二請(qǐng)求,由分組處理引擎將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第 二客戶(hù)端。在某些實(shí)施例中,該方法包括在將響應(yīng)傳送到第一客戶(hù)端或第二客戶(hù)端之一后,由分組處理引擎從緩沖器中移除響應(yīng)。在某些實(shí)施例中,本發(fā)明所用的緩沖器包括TCP/IP 緩沖器或所述設(shè)備的TCP/IP堆棧的一部分。該設(shè)備包括單個(gè)TCP/IP堆棧用于向第一客戶(hù) 端和第二客戶(hù)端傳送,并且緩沖器與單個(gè)TCP/IP堆棧相關(guān)聯(lián)。在本發(fā)明的某些實(shí)施例中,該方法包括由設(shè)備從多個(gè)客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì) 象的多個(gè)請(qǐng)求,以及由設(shè)備請(qǐng)求以將緩沖器中保持的對(duì)于第一客戶(hù)端的響應(yīng)的動(dòng)態(tài)產(chǎn)生對(duì) 象傳送到多個(gè)客戶(hù)端。在一個(gè)實(shí)施例中,分組處理引擎根據(jù)與第一客戶(hù)端到網(wǎng)絡(luò)的連接相 關(guān)的一個(gè)或多個(gè)特性而保持對(duì)第一客戶(hù)端的響應(yīng)。在另一實(shí)施例中,設(shè)備排隊(duì)第二請(qǐng)求,而 不是將第二請(qǐng)求傳送到始發(fā)服務(wù)器。在一個(gè)實(shí)施例中,該設(shè)備使用緩沖器中保持的第一請(qǐng) 求的響應(yīng)而響應(yīng)第二請(qǐng)求。在某些實(shí)施例中,本發(fā)明的方法在向第一客戶(hù)端和第二客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì) 象之后從緩沖器移除動(dòng)態(tài)產(chǎn)生的對(duì)象。在一個(gè)實(shí)施例中,例如當(dāng)從始發(fā)服務(wù)器提供該動(dòng)態(tài) 產(chǎn)生的對(duì)象時(shí),該動(dòng)態(tài)產(chǎn)生的對(duì)象被識(shí)別為不可緩存的。在該方法的其他實(shí)施例中,所述設(shè) 備通過(guò)與第二請(qǐng)求相關(guān)的對(duì)象決定因素確定第二請(qǐng)求是用于第一請(qǐng)求的動(dòng)態(tài)產(chǎn)生的對(duì)象。在某些實(shí)施例中,設(shè)備可以是在第一客戶(hù)端和始發(fā)服務(wù)器之間進(jìn)行通信的裝置、 網(wǎng)絡(luò)設(shè)備或計(jì)算設(shè)備之一。在其他實(shí)施例中,設(shè)備包括與分組處理引擎進(jìn)行通信的緩存器。 在一個(gè)實(shí)施例中,該方法包括由緩存器請(qǐng)求分組處理引擎以向第二客戶(hù)端傳送對(duì)第一客戶(hù) 端的響應(yīng)或第一客戶(hù)端的動(dòng)態(tài)產(chǎn)生對(duì)象。另一方面,本發(fā)明涉及一種用于對(duì)請(qǐng)求進(jìn)行響應(yīng)的系統(tǒng),所述請(qǐng)求是來(lái)自多個(gè)客 戶(hù)端針對(duì)動(dòng)態(tài)產(chǎn)生的對(duì)象。該系統(tǒng)包括一個(gè)設(shè)備,用于從始發(fā)服務(wù)器接收第一客戶(hù)端對(duì)于 動(dòng)態(tài)產(chǎn)生對(duì)象的第一請(qǐng)求的響應(yīng),該響應(yīng)包括動(dòng)態(tài)產(chǎn)生的對(duì)象。該設(shè)備包括用于保持等待 從該設(shè)備傳送的一個(gè)或多個(gè)網(wǎng)絡(luò)分組的緩存器。該設(shè)備還包括從所述設(shè)備接收請(qǐng)求以向 第一客戶(hù)端傳送響應(yīng)的分組處理引擎,緩沖器保持包括響應(yīng)的一個(gè)或多個(gè)網(wǎng)絡(luò)分組。在完 成將響應(yīng)傳送到第一客戶(hù)端之前,所述設(shè)備從第二客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的第二請(qǐng) 求,并請(qǐng)求分組處理引擎以將緩沖器中保持的響應(yīng)的動(dòng)態(tài)產(chǎn)生對(duì)象傳送到第二客戶(hù)端。在本發(fā)明系統(tǒng)的一個(gè)實(shí)施例中,分組處理引擎將響應(yīng)從緩沖器傳送到第一客戶(hù) 端。在另一實(shí)施例中,其中響應(yīng)第二請(qǐng)求,分組處理引擎將動(dòng)態(tài)產(chǎn)生的對(duì)象從緩沖器傳送到 第二客戶(hù)端。在本系統(tǒng)的某些實(shí)施例中,在將響應(yīng)傳送到第一客戶(hù)端或第二客戶(hù)端之一后, 分組處理引擎從緩沖器中移除響應(yīng)。另外,在其他實(shí)施例中,緩沖器是TCP/IP緩沖器或另 外是設(shè)備的TCP/IP堆棧的一部分。在某些實(shí)施例中,設(shè)備包括單個(gè)TCP/IP堆棧用于向第 一客戶(hù)端和第二客戶(hù)端傳送,緩沖器與單個(gè)TCP/IP堆棧相關(guān)聯(lián)。在本發(fā)明的另一實(shí)施例中,所述設(shè)備從多個(gè)客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的多個(gè) 請(qǐng)求,以及其中設(shè)備請(qǐng)求分組處理引擎以將緩沖器中保持的對(duì)于第一客戶(hù)端的響應(yīng)的動(dòng)態(tài) 產(chǎn)生對(duì)象傳送到多個(gè)客戶(hù)端。在一個(gè)實(shí)施例中,分組處理引擎根據(jù)與第一客戶(hù)端到網(wǎng)絡(luò)的 連接相關(guān)的一個(gè)或多個(gè)特性而保持對(duì)第一客戶(hù)端的響應(yīng)。在另一實(shí)施例中,設(shè)備排隊(duì)第二 請(qǐng)求,而不是將第二請(qǐng)求傳送到始發(fā)服務(wù)器。在某些實(shí)施例中,設(shè)備排隊(duì)第二請(qǐng)求并使用緩 沖器中保持的對(duì)于第一客戶(hù)端的響應(yīng)來(lái)響應(yīng)第二請(qǐng)求。在其他實(shí)施例中,在向第一客戶(hù)端 和第二客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象之后分組處理引擎從緩沖器移除動(dòng)態(tài)產(chǎn)生的對(duì)象。在一 個(gè)實(shí)施例中,動(dòng)態(tài)產(chǎn)生的對(duì)象例如通過(guò)始發(fā)服務(wù)器被識(shí)別為不可緩存的。在本發(fā)明的另一實(shí)施例中,所述設(shè)備通過(guò)與第二請(qǐng)求相關(guān)的對(duì)象決定因素確定第二請(qǐng)求是用于第一請(qǐng)求的動(dòng)態(tài)產(chǎn)生的對(duì)象。在某些實(shí)施例中,所述設(shè)備是在第一客戶(hù)端和 始發(fā)服務(wù)器之間進(jìn)行通信的裝置、網(wǎng)絡(luò)設(shè)備或計(jì)算設(shè)備。所述設(shè)備也具有與分組處理引擎 進(jìn)行通信的緩存器。另外,緩存器請(qǐng)求分組處理引擎以向第二客戶(hù)端傳送對(duì)第一客戶(hù)端的 響應(yīng)或第一客戶(hù)端的動(dòng)態(tài)產(chǎn)生對(duì)象。另一方面,本發(fā)明涉及一種處理如下情況的“閃速群”技術(shù),其中在該情況中在服 務(wù)器正處理并返回對(duì)第一請(qǐng)求者的響應(yīng)對(duì)象期間緩存器接收對(duì)于相同對(duì)象的另外請(qǐng)求,例 如幾乎同時(shí)的請(qǐng)求。一旦由緩沖器響應(yīng)所有該幾乎同時(shí)的請(qǐng)求,則從緩沖器刷新對(duì)象,而不 需要另外期限時(shí)間或無(wú)效操作。本發(fā)明的該技術(shù)能在極短的時(shí)間量?jī)?nèi)緩存和提供對(duì)于對(duì)象 的數(shù)據(jù),所述對(duì)象另外被認(rèn)為是不可緩存的。該方法在向大量并發(fā)用戶(hù)提供快速變化的數(shù) 據(jù)的應(yīng)用中產(chǎn)生巨大的改進(jìn),所述應(yīng)用諸如實(shí)時(shí)股票報(bào)價(jià)或快速變化的新聞報(bào)道。—方面,本發(fā)明涉及一種在網(wǎng)絡(luò)設(shè)備中用于對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法,所述請(qǐng)求是 來(lái)自多個(gè)客戶(hù)端針對(duì)動(dòng)態(tài)產(chǎn)生的對(duì)象教導(dǎo)一種響應(yīng)來(lái)自多個(gè)客戶(hù)端對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的 請(qǐng)求的方法。該方法包括從第一客戶(hù)端接收對(duì)于來(lái)自始發(fā)服務(wù)器的動(dòng)態(tài)產(chǎn)生對(duì)象的第一請(qǐng) 求;以及向始發(fā)服務(wù)器傳送第一請(qǐng)求。在響應(yīng)第一客戶(hù)端的第一請(qǐng)求之前,該方法包括從第 二客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生的對(duì)象的第二請(qǐng)求。該方法進(jìn)一步包括從始發(fā)服務(wù)器接收對(duì)于 第一請(qǐng)求的響應(yīng),該響應(yīng)具有動(dòng)態(tài)產(chǎn)生的對(duì)象,并響應(yīng)第一請(qǐng)求向第一客戶(hù)端傳送動(dòng)態(tài)產(chǎn) 生的對(duì)象,以及響應(yīng)第二請(qǐng)求向第二客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象。在本發(fā)明的一個(gè)實(shí)施例中,該方法包括從多個(gè)客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生的對(duì)象的 多個(gè)請(qǐng)求,以及響應(yīng)每個(gè)客戶(hù)端的請(qǐng)求,向多個(gè)客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象。在某些實(shí)施例 中,該方法包括在完成將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第二客戶(hù)端之前,從第三客戶(hù)端接收對(duì)于 動(dòng)態(tài)產(chǎn)生對(duì)象的第三請(qǐng)求,以及響應(yīng)第三請(qǐng)求,向第三客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象。在另一實(shí)施例中,本發(fā)明的方法幾乎同時(shí)接收第一請(qǐng)求和第二請(qǐng)求。在一個(gè)實(shí)施 例中,該方法排隊(duì)第二請(qǐng)求而不是將第二請(qǐng)求傳送到始發(fā)服務(wù)器。在某些實(shí)施例中,該方法 在向第一客戶(hù)端和第二客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象之后,從緩存器中刷新該動(dòng)態(tài)產(chǎn)生的對(duì) 象。在一個(gè)實(shí)施例中,例如當(dāng)從始發(fā)服務(wù)器提供該動(dòng)態(tài)產(chǎn)生的對(duì)象時(shí),該動(dòng)態(tài)產(chǎn)生的對(duì)象被 識(shí)別為不可緩存的。該方法包括通過(guò)與第二請(qǐng)求相關(guān)的對(duì)象決定因素確定第二請(qǐng)求是用于 第一請(qǐng)求的動(dòng)態(tài)產(chǎn)生的對(duì)象。在另一實(shí)施例中,該方法修改響應(yīng)以包括實(shí)體標(biāo)簽報(bào)頭或緩 存控制報(bào)頭并將修改的響應(yīng)傳送到第一客戶(hù)端或第二客戶(hù)端。另一方面,本發(fā)明涉及一種用于對(duì)請(qǐng)求進(jìn)行響應(yīng)的網(wǎng)絡(luò)設(shè)備,所述請(qǐng)求是來(lái)自多 個(gè)客戶(hù)端針對(duì)動(dòng)態(tài)產(chǎn)生的對(duì)象。該網(wǎng)絡(luò)設(shè)備包括用于從第一客戶(hù)端接收對(duì)于來(lái)自始發(fā)服務(wù) 器的動(dòng)態(tài)產(chǎn)生對(duì)象的第一請(qǐng)求的裝置;用于向始發(fā)服務(wù)器傳送第一請(qǐng)求的裝置。該網(wǎng)絡(luò)設(shè) 備還包括一個(gè)裝置,用于在響應(yīng)第一客戶(hù)端的第一請(qǐng)求之前,從第二客戶(hù)端接收對(duì)于動(dòng)態(tài) 產(chǎn)生對(duì)象的第二請(qǐng)求;以及用于從始發(fā)服務(wù)器接收對(duì)于第一請(qǐng)求的響應(yīng),該響應(yīng)包括動(dòng)態(tài) 產(chǎn)生的對(duì)象。該系統(tǒng)還包括用于響應(yīng)第一請(qǐng)求向第一客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象,并響應(yīng) 第二請(qǐng)求向第二客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。。在本發(fā)明的一個(gè)實(shí)施例中,該網(wǎng)絡(luò)設(shè)備進(jìn)一步包括用于從多個(gè)客戶(hù)端接收對(duì)于動(dòng) 態(tài)產(chǎn)生對(duì)象的多個(gè)請(qǐng)求,以及響應(yīng)每個(gè)客戶(hù)端的請(qǐng)求,向多個(gè)客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生對(duì)象的 裝置。在另一實(shí)施例中,該網(wǎng)絡(luò)設(shè)備包括用于在完成將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第二客戶(hù)端 之前,從第三客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的第三請(qǐng)求,以及用于響應(yīng)第三請(qǐng)求,向第三客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。在其他實(shí)施例中,該網(wǎng)絡(luò)設(shè)備具有幾乎同時(shí)接收第一請(qǐng) 求和第二請(qǐng)求的裝置。在某些實(shí)施例中,例如該網(wǎng)絡(luò)設(shè)備排隊(duì)第二請(qǐng)求,而不是將第二請(qǐng)求 傳送到服務(wù)器。在一個(gè)實(shí)施例中,本發(fā)明的網(wǎng)絡(luò)設(shè)備在向第一客戶(hù)端和第二客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生 的對(duì)象之后,從緩存器中刷新該動(dòng)態(tài)產(chǎn)生的對(duì)象。在某些實(shí)施例中,該動(dòng)態(tài)產(chǎn)生的對(duì)象被識(shí) 別為不可緩存的。在其他實(shí)施例中,該網(wǎng)絡(luò)設(shè)備包括用于通過(guò)與第二請(qǐng)求相關(guān)的對(duì)象決定 因素確定第二請(qǐng)求是用于第一請(qǐng)求的動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。在另一實(shí)施例中,該網(wǎng)絡(luò)設(shè) 備包括用于修改響應(yīng)以包括實(shí)體標(biāo)簽報(bào)頭或緩存控制報(bào)頭之一并將修改的響應(yīng)傳送到第 一客戶(hù)端或第二客戶(hù)端之一的裝置。該網(wǎng)絡(luò)設(shè)備可以是在客戶(hù)端和始發(fā)服務(wù)器之間進(jìn)行通 信的裝置或計(jì)算設(shè)備。另一方面,本發(fā)明涉及一種由緩存器修改來(lái)自服務(wù)器的響應(yīng)以將響應(yīng)中到客戶(hù)端 的動(dòng)態(tài)產(chǎn)生對(duì)象識(shí)別為可緩存的方法和系統(tǒng),該服務(wù)器沒(méi)有將動(dòng)態(tài)產(chǎn)生的對(duì)象識(shí)別為可緩 存的。在某些實(shí)施例中,諸如處理對(duì)對(duì)象的HTTP請(qǐng)求和響應(yīng)的實(shí)施例,本發(fā)明的技術(shù)在響 應(yīng)中插入實(shí)體標(biāo)簽或“etag”以對(duì)對(duì)象提供緩存控制,假定沒(méi)有來(lái)自始發(fā)服務(wù)器的實(shí)體標(biāo)簽 和/或緩存控制信息。本發(fā)明的該技術(shù)通過(guò)在向客戶(hù)端的響應(yīng)中插入諸如對(duì)象的實(shí)體標(biāo)簽 和緩存控制信息之類(lèi)的信息以響應(yīng)于客戶(hù)端使緩存器能夠檢查在隨后請(qǐng)求中的命中而增 加緩存器命中率。一方面,本發(fā)明涉及一種使用實(shí)體標(biāo)簽來(lái)緩存沒(méi)被標(biāo)識(shí)為可緩存的動(dòng)態(tài)產(chǎn)生對(duì)象 的方法,該方法包括由緩存器接收客戶(hù)端對(duì)于來(lái)自始發(fā)服務(wù)器的動(dòng)態(tài)產(chǎn)生對(duì)象的請(qǐng)求的響 應(yīng)。該動(dòng)態(tài)產(chǎn)生對(duì)象被識(shí)別為不可緩存的。該方法包括由緩存器對(duì)于緩存器中保存的動(dòng)態(tài) 產(chǎn)生對(duì)象產(chǎn)生實(shí)體標(biāo)簽并修改響應(yīng)以包括產(chǎn)生的實(shí)體標(biāo)簽。該方法進(jìn)一步包括由緩存器向 客戶(hù)端傳送識(shí)別動(dòng)態(tài)產(chǎn)生對(duì)象為可緩存的經(jīng)過(guò)修改的響應(yīng)。在本發(fā)明的方法的一個(gè)實(shí)施例中,從始發(fā)服務(wù)器接收的響應(yīng)不包括實(shí)體標(biāo)簽。在 某些實(shí)施例中,緩存器修改響應(yīng)以識(shí)別客戶(hù)端緩存動(dòng)態(tài)產(chǎn)生對(duì)象的持續(xù)期間。在其他實(shí)施 例中,緩存器修改響應(yīng)以向客戶(hù)端指出存儲(chǔ)響應(yīng)并在檢查動(dòng)態(tài)產(chǎn)生對(duì)象是否改變之后向緩 存器或始發(fā)服務(wù)器之一提供響應(yīng)。在一個(gè)實(shí)施例中,來(lái)自始發(fā)服務(wù)器的響應(yīng)不具有動(dòng)態(tài)產(chǎn) 生對(duì)象的緩存控制信息,并且緩存器修改傳送到客戶(hù)端的響應(yīng)以包括緩存控制信息。在某些實(shí)施例中,本發(fā)明的方法也包括由緩存器為實(shí)體標(biāo)簽產(chǎn)生數(shù)字。緩存器可 以將所產(chǎn)生的實(shí)體標(biāo)簽和動(dòng)態(tài)產(chǎn)生的對(duì)象一起存儲(chǔ)。在另一實(shí)施例中,緩存器可以將緩存 控制信息和動(dòng)態(tài)產(chǎn)生的對(duì)象一起存儲(chǔ)。在一個(gè)實(shí)施例中,緩存器提供具有所產(chǎn)生的實(shí)體標(biāo) 簽和緩存控制信息的緩存的動(dòng)態(tài)產(chǎn)生對(duì)象。在本發(fā)明的某些實(shí)施例中,緩存器在裝置、網(wǎng)絡(luò)設(shè)備或計(jì)算設(shè)備上操作。在其他實(shí) 施例中,請(qǐng)求或響應(yīng)包括超文本標(biāo)記語(yǔ)言(HTML)。在另一實(shí)施例中,緩存器修改響應(yīng)以包 括識(shí)別所產(chǎn)生的實(shí)體的etag報(bào)頭,而在另一實(shí)施例中,緩存器修改響應(yīng)以包括緩存控制報(bào) 頭。在某些實(shí)施例中,該方法包括由緩存器從客戶(hù)端接收具有If-None-Match報(bào)頭的第二 請(qǐng)求,并響應(yīng)第二請(qǐng)求,將與If-None-Match報(bào)頭相關(guān)的etag值與在緩存器中和動(dòng)態(tài)產(chǎn)生 對(duì)象一起保存的實(shí)體標(biāo)簽相比較。在另一實(shí)施例中,如果etag值匹配實(shí)體標(biāo)簽,則緩存器 向客戶(hù)端傳送對(duì)于第二請(qǐng)求來(lái)說(shuō)沒(méi)有修改的響應(yīng);而在另一實(shí)施例中,如果etag值不匹配 實(shí)體標(biāo)簽,則緩存器向客戶(hù)端傳送具有第二實(shí)體標(biāo)簽的更新的動(dòng)態(tài)產(chǎn)生對(duì)象。
在下文的附圖和說(shuō)明中闡述了本發(fā)明的各個(gè)實(shí)施例的細(xì)節(jié)。
這里包含的并且形成說(shuō)明書(shū)的一部分的相應(yīng)附解了本發(fā)明,并且與說(shuō)明書(shū)一 起,進(jìn)一步用來(lái)解釋本發(fā)明的原理并且能使相關(guān)領(lǐng)域的技術(shù)人員實(shí)現(xiàn)并且使用本發(fā)明。圖1是示出了其中可以實(shí)施本發(fā)明的實(shí)施例的示例網(wǎng)絡(luò)環(huán)境的框圖; 圖2是示出根據(jù)本發(fā)明實(shí)施例執(zhí)行集成緩存的裝置的示例結(jié)構(gòu)的框圖3A是用于使設(shè)備操作與分組處理和分組處理計(jì)時(shí)器相集成的本發(fā)明方法實(shí)施例中 采取的步驟的流程圖3B是用于根據(jù)圖3A實(shí)施無(wú)效顆粒度技術(shù)的本發(fā)明的方法實(shí)施例中采用的步驟的流 程圖4A是在使用無(wú)效命令以無(wú)效陳舊對(duì)象(stale object)的本發(fā)明的方法實(shí)施例中采 用的步驟的流程圖4B是在包括無(wú)效對(duì)象組的本發(fā)明的方法實(shí)施例中采用的步驟的流程圖; 圖4C是在其中為了對(duì)象決定因素解析客戶(hù)端請(qǐng)求的本發(fā)明的方法實(shí)施例中采用的步 驟的流程圖4D是在包括使用對(duì)象決定因素而無(wú)效對(duì)象組的本發(fā)明的方法實(shí)施例中采用的步驟 的流程圖5是在提供閃速緩存技術(shù)的本發(fā)明的方法實(shí)施例中采用的步驟的流程圖; 圖6是在提供閃速群控制技術(shù)的本發(fā)明的方法實(shí)施例中采用的步驟的流程圖; 圖7A和7B是在為對(duì)象提供實(shí)體標(biāo)簽和緩存控制的本發(fā)明的方法實(shí)施例中采用的步驟 的流程圖8A和8B是用于實(shí)施本發(fā)明的示例性實(shí)施例的計(jì)算設(shè)備的實(shí)施例的框圖。從下文結(jié)合附圖所陳述的詳細(xì)描述中本發(fā)明的特征和優(yōu)勢(shì)將變得更加明顯,其中 等同的參考特征表示對(duì)應(yīng)的元件。在附圖中,相似的附圖標(biāo)記一般表示等同的、功能類(lèi)似的 和/或結(jié)構(gòu)類(lèi)似的元件。
具體實(shí)施例方式A.示例網(wǎng)絡(luò)環(huán)境
圖1示出了其中可以實(shí)施本發(fā)明的實(shí)施例的示例網(wǎng)絡(luò)環(huán)境100。如圖1所示,示例網(wǎng)絡(luò) 環(huán)境100包括多個(gè)客戶(hù)端10加-10211,多個(gè)服務(wù)器106a-106n,以及也被稱(chēng)為緩存裝置、設(shè)備 或緩存器的裝置104。服務(wù)器106a-106n創(chuàng)始并管理諸如對(duì)象數(shù)據(jù)庫(kù)或關(guān)系數(shù)據(jù)庫(kù)之類(lèi)的 數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)向客戶(hù)端102a-102n提供請(qǐng)求內(nèi)容。為此,服務(wù)器106a-106n在此經(jīng)常被 稱(chēng)為“始發(fā)服務(wù)器”,這是因?yàn)樗鼈兺ǔ?,但不必然,始發(fā)形成請(qǐng)求內(nèi)容的對(duì)象。每個(gè)客戶(hù)端 102a-102n和服務(wù)器106a-106n可以是任何類(lèi)型和形式的計(jì)算設(shè)備,諸如下文結(jié)合圖8A和 8B更詳細(xì)描述的計(jì)算設(shè)備800。例如,任何客戶(hù)端102a-102n可以是移動(dòng)計(jì)算設(shè)備,諸如電 信設(shè)備,例如蜂窩電話(huà)或個(gè)人數(shù)字助理,或除了任何類(lèi)型的桌上型計(jì)算機(jī)之外的膝上型計(jì) 算機(jī)或筆記本式計(jì)算機(jī)。每個(gè)客戶(hù)端102a-102n經(jīng)由公用數(shù)據(jù)通信網(wǎng)絡(luò)108而可通信地耦合到裝置104,而裝置104經(jīng)由專(zhuān)用數(shù)據(jù)通信網(wǎng)絡(luò)110而可通信地耦合到服務(wù)器106a-106n。在一個(gè)實(shí)施例 中,公用數(shù)據(jù)通信網(wǎng)絡(luò)108包括因特網(wǎng)以及專(zhuān)用數(shù)據(jù)通信網(wǎng)絡(luò)110包括企業(yè)網(wǎng)。公用數(shù)據(jù) 通信網(wǎng)絡(luò)108和專(zhuān)用數(shù)據(jù)通信網(wǎng)絡(luò)110可以是任何類(lèi)型和形式的網(wǎng)絡(luò)、公用的、專(zhuān)用的或其 他的,以及在某些情況下,可以是相同網(wǎng)絡(luò)。雖然圖1示出了客戶(hù)端102a_102n和服務(wù)器106a_106n之間的網(wǎng)絡(luò)108和110,但 客戶(hù)端102a-10&i和服務(wù)器106a-106n可以在相同網(wǎng)絡(luò)108或110上。網(wǎng)絡(luò)108和110可 以是相同類(lèi)型的網(wǎng)絡(luò)或不同類(lèi)型的網(wǎng)絡(luò)。網(wǎng)絡(luò)108和/或網(wǎng)絡(luò)110可以是諸如公司內(nèi)部網(wǎng) 或城域網(wǎng)(MAN)之類(lèi)的局域網(wǎng)(LAN)或諸如因特網(wǎng)或萬(wàn)維網(wǎng)之類(lèi)的廣域網(wǎng)(WAN)。網(wǎng)絡(luò)108 和/或110可以是任何類(lèi)型和/或形式的網(wǎng)絡(luò)并且可以包括任何如下網(wǎng)絡(luò)點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)、廣 播網(wǎng)、廣域網(wǎng)、局域網(wǎng)、電信網(wǎng)、數(shù)據(jù)通信網(wǎng)、計(jì)算機(jī)網(wǎng)、ATM (異步傳輸模式)網(wǎng)、SONET (同步 光纖網(wǎng))網(wǎng)、SDH (同步數(shù)字系列)網(wǎng)、無(wú)線(xiàn)網(wǎng)和有線(xiàn)網(wǎng)。網(wǎng)絡(luò)108和/或110的拓?fù)浣Y(jié)構(gòu)可 以是總線(xiàn)、星形或環(huán)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。網(wǎng)絡(luò)108和/或110和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以是本領(lǐng)域 的普通技術(shù)人員已知的能夠支持本文描述的本發(fā)明操作的任何網(wǎng)絡(luò)或網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。如圖1所示,裝置104被示為在公用數(shù)據(jù)通信網(wǎng)108和專(zhuān)用數(shù)據(jù)通信網(wǎng)110之間。 在其他實(shí)施例中,裝置104可以位于公用數(shù)據(jù)通信網(wǎng)108或?qū)S脭?shù)據(jù)通信網(wǎng)110之上。在 其他實(shí)施例中,裝置104可以是在與客戶(hù)端102a-102n相同或不同的網(wǎng)絡(luò)108、110上任何 單個(gè)客戶(hù)端102a-102n或任何單個(gè)服務(wù)器106a-106n的組成部分。因此,裝置104可以位 于在客戶(hù)端102a-102n和服務(wù)器106a-106n之間的網(wǎng)絡(luò)或網(wǎng)絡(luò)通信路徑中的任何點(diǎn)上。根據(jù)本發(fā)明實(shí)施例,裝置104包括緩存管理邏輯并且還包括或訪(fǎng)問(wèn)它用于實(shí)施 緩沖存儲(chǔ)器的存儲(chǔ)介質(zhì)。利用這些特性,裝置104監(jiān)視客戶(hù)端102a-102n對(duì)任何服務(wù)器 106a-106n所做出的對(duì)象請(qǐng)求。響應(yīng)于這些對(duì)象請(qǐng)求,從服務(wù)器106a-106n返回的對(duì)象被 裝置104存儲(chǔ)在緩沖存儲(chǔ)器中。從任何客戶(hù)端102a-102n對(duì)相同對(duì)象的隨后請(qǐng)求由裝置 104截取,該裝置104試圖從緩存器發(fā)送對(duì)象而不是將請(qǐng)求傳遞到服務(wù)器106a-106n。這提 供了雙重優(yōu)勢(shì),即減少響應(yīng)來(lái)自客戶(hù)端10加-10211的請(qǐng)求所需時(shí)間以及減少了支持服務(wù)器 106a-106n的基礎(chǔ)設(shè)施上的負(fù)荷。總之,圖1所示的網(wǎng)絡(luò)環(huán)境100只通過(guò)示例形式示出而不是限制性的。根據(jù)這里 提供的教導(dǎo),本領(lǐng)域技術(shù)人員將容易理解的是,本發(fā)明可以在其中一個(gè)或多個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn) 之間傳送對(duì)象請(qǐng)求和響應(yīng)的任何網(wǎng)絡(luò)環(huán)境中實(shí)施。B.示例裝置或設(shè)備結(jié)構(gòu)
如這里更詳細(xì)的描述,在本發(fā)明的實(shí)施例中,裝置104使操作系統(tǒng)的內(nèi)核層上的緩存 功能與一個(gè)或多個(gè)其他處理任務(wù)相集成,該其他處理任務(wù)包括(但不限制于)解密、解壓縮、 或認(rèn)證和/或授權(quán)。這樣的實(shí)施在于2005年6月四日提交的題目為“Method and Device for Performing Integrated Caching in a Data Communication Network,,的申請(qǐng)?zhí)枮?11/169,002的共同擁有的同時(shí)待定美國(guó)專(zhuān)利申請(qǐng)中示出,其在此被引入以供參考。這里根 據(jù)圖2描述該示例結(jié)構(gòu),但本發(fā)明并不限于此,并且其他結(jié)構(gòu)也可以用于實(shí)施這里所述的 本發(fā)明的操作。圖2示出了裝置104的示例結(jié)構(gòu)200。如上所述,結(jié)構(gòu)200僅通過(guò)示例的形式示出 而不是限制性的。如圖2所示,示例結(jié)構(gòu)200包括硬件層206和劃分為用戶(hù)空間202和內(nèi) 核空間204的軟件層。
硬件層206提供硬件元件,在該硬件元件上執(zhí)行在內(nèi)核空間204和用戶(hù)空間202 內(nèi)的程序和服務(wù)。硬件層206也提供允許內(nèi)核空間204和用戶(hù)空間202內(nèi)的程序和服務(wù)相 對(duì)于裝置104內(nèi)部地和外部地傳送數(shù)據(jù)的結(jié)構(gòu)和元件。如圖2所示,硬件層206包括用于 執(zhí)行軟件程序和服務(wù)的處理單元262、用于存儲(chǔ)軟件和數(shù)據(jù)的存儲(chǔ)器沈4、用于經(jīng)過(guò)網(wǎng)絡(luò)傳 送和接收數(shù)據(jù)的網(wǎng)絡(luò)端口 266、以及用于執(zhí)行與處理經(jīng)過(guò)網(wǎng)絡(luò)傳送和接收的數(shù)據(jù)的安全套 接層相關(guān)的功能的加密處理器260。在某些實(shí)施例中,中央處理單元262可以在單個(gè)處理器 中執(zhí)行加密處理器260的功能。另外,硬件層206可以包括對(duì)于每個(gè)處理單元沈2的多個(gè) 處理器和加密處理器沈0。雖然裝置104的硬件層206 —般使用加密處理器260來(lái)示出,但 是處理器260可以是用于執(zhí)行與諸如安全套接層(SSL)或傳輸層安全(TLS)協(xié)議之類(lèi)的任 何加密協(xié)議相關(guān)的功能的處理器。在某些實(shí)施例中,處理器260可以是通用處理器(GPP), 而在其他實(shí)施例中,處理器260可以具有可執(zhí)行指令以執(zhí)行任何安全相關(guān)協(xié)議的處理。雖然使用圖2中的特定元件示出了裝置104的硬件層206,但是裝置104的硬件 部分或元件可以包括計(jì)算設(shè)備的任何類(lèi)型或形式的元件、硬件或軟件,諸如這里進(jìn)一步結(jié) 合圖8A和8B示出和討論的計(jì)算設(shè)備800。在某些實(shí)施例中,裝置104可以包括服務(wù)器、網(wǎng) 關(guān)、路由器、轉(zhuǎn)換器、電橋或其他類(lèi)型的計(jì)算或網(wǎng)絡(luò)設(shè)備,并且具有與之相關(guān)的任何硬件和/ 或軟件元件。裝置104的操作系統(tǒng)分配、管理可用系統(tǒng)存儲(chǔ)器或另外將可用系統(tǒng)存儲(chǔ)器隔離為 內(nèi)核空間204和用戶(hù)空間204。在示例軟件結(jié)構(gòu)200中,操作系統(tǒng)可以是任何類(lèi)型和/或形 式的Unix操作系統(tǒng),但本發(fā)明并不限制于此。因此,裝置104可以運(yùn)行任何操作系統(tǒng),諸如 任何版本的Microsoft Windows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、任何版本 的Macintosh計(jì)算機(jī)的Mac OS ,任何嵌入式操作系統(tǒng)、任何網(wǎng)絡(luò)操作系統(tǒng)、任何實(shí)時(shí)操作 系統(tǒng)、任何開(kāi)源操作系統(tǒng)、任何私有操作系統(tǒng)、用于移動(dòng)計(jì)算設(shè)備或網(wǎng)絡(luò)設(shè)備的任何操作系 統(tǒng)、或者能夠在裝置104上運(yùn)行并執(zhí)行這里所述操作的任何其他操作系統(tǒng)。保留內(nèi)核空間204用于運(yùn)行內(nèi)核230,包括任何設(shè)備驅(qū)動(dòng)器、內(nèi)核擴(kuò)展或其他涉及 內(nèi)核的軟件。如本領(lǐng)域技術(shù)人員所知,內(nèi)核230是操作系統(tǒng)的核心,并且提供對(duì)資源和裝置 104的相關(guān)硬件元件的訪(fǎng)問(wèn)、控制和管理。根據(jù)本發(fā)明實(shí)施例,內(nèi)核空間204也包括協(xié)同緩 存管理器232工作的多個(gè)網(wǎng)絡(luò)服務(wù)或處理,經(jīng)常被稱(chēng)為集成緩存器,它的優(yōu)勢(shì)在這里將進(jìn) 一步詳細(xì)的描述。另外,內(nèi)核230的實(shí)施例將取決于設(shè)備104安裝、配置或另外使用的操作 系統(tǒng)的實(shí)施方式。在一個(gè)實(shí)施例中,設(shè)備104包括一個(gè)網(wǎng)絡(luò)堆棧沈7,諸如基于TCP/IP的堆棧,用于 與客戶(hù)端102a-l(^b和/或服務(wù)器106a-106n進(jìn)行通信。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧267 用于與諸如網(wǎng)絡(luò)108的第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)110進(jìn)行通信。在某些實(shí)施例中,設(shè)備104終 止諸如客戶(hù)端10h-102n的TCP連接的第一傳輸層連接,并建立由客戶(hù)端102a-102n使用 的到服務(wù)器106a-106n的第二傳輸層連接,例如在裝置104和服務(wù)器106a-106n上終止第 二傳輸層連接。可以借助于單個(gè)網(wǎng)絡(luò)堆棧267建立第一和第二傳輸層連接。在其他實(shí)施例 中,設(shè)備104包括多個(gè)網(wǎng)絡(luò)堆棧,例如267和267’,以及在一個(gè)網(wǎng)絡(luò)堆棧267上建立或終止 第一傳輸層連接,以及在第二網(wǎng)絡(luò)堆棧267’上建立或終止第二傳輸層連接。例如,一個(gè)網(wǎng) 絡(luò)堆棧可以用于接收和傳送第一網(wǎng)絡(luò)上的網(wǎng)絡(luò)分組,以及另一網(wǎng)絡(luò)堆棧用于接收和傳送第 二網(wǎng)絡(luò)上的網(wǎng)絡(luò)分組。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧267包括用于排隊(duì)一個(gè)或多個(gè)網(wǎng)絡(luò)分組以由裝置104傳送的緩沖器M3。如圖2所示,內(nèi)核空間204包括緩存管理器232、高速層2_7集成分組引擎M0、加 密引擎234、策略引擎236和多協(xié)議壓縮邏輯238。在內(nèi)核空間204或內(nèi)核模式中而不是用 戶(hù)空間202內(nèi)運(yùn)行這些元件或處理232、M0、234、236和238單獨(dú)或結(jié)合地改進(jìn)這些元件中 的每個(gè)的性能。內(nèi)核操作表示這些元件或處理232、M0、234、236和238在設(shè)備104的操作 系統(tǒng)的內(nèi)核地址空間內(nèi)運(yùn)行。例如,通過(guò)將加密和解密操作移至內(nèi)核而以?xún)?nèi)核模式運(yùn)行加 密引擎234改進(jìn)加密性能,因此減少以?xún)?nèi)核模式的存儲(chǔ)器空間或內(nèi)核線(xiàn)程和以用戶(hù)模式的 存儲(chǔ)器空間或線(xiàn)程之間轉(zhuǎn)換的次數(shù)。例如,以?xún)?nèi)核模式獲取的數(shù)據(jù)不需要傳遞或拷貝到以 用戶(hù)模式運(yùn)行的處理或線(xiàn)程,諸如從內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)到用戶(hù)級(jí)數(shù)據(jù)結(jié)構(gòu)。另一方面,也減少 了內(nèi)核模式和用戶(hù)模式之間的上下文切換(context switch)的數(shù)量。另外,可以在內(nèi)核 空間204內(nèi)更有效地執(zhí)行任何元件或處理232、M0、235、236和238之間的同步或通信。在某些實(shí)施例中,元件232、M0、234、236和238的任何部分可以在內(nèi)核空間204 內(nèi)運(yùn)行或操作,而這些元件232、M0、234、236和238的其他部分可以在用戶(hù)空間202中 運(yùn)行或操作。在一個(gè)實(shí)施例中,本發(fā)明使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu),該內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)提供訪(fǎng)問(wèn) 一個(gè)或多個(gè)網(wǎng)絡(luò)分組的任何部分,例如,包括來(lái)自客戶(hù)端10加-10211的請(qǐng)求或來(lái)自服務(wù)器 106a-106n的響應(yīng)的網(wǎng)絡(luò)分組。在某些實(shí)施例中,由分組引擎240經(jīng)由到網(wǎng)絡(luò)堆棧267的傳 輸層驅(qū)動(dòng)器接口或?yàn)V波器而獲取內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)包括經(jīng)由涉及網(wǎng)絡(luò)堆棧 267的內(nèi)核空間204、由網(wǎng)絡(luò)堆棧267接收或傳送的網(wǎng)絡(luò)業(yè)務(wù)或分組可訪(fǎng)問(wèn)的任何接口和/ 或數(shù)據(jù)。在其他實(shí)施例中,可以由元件或處理232、M0、234、236和238中的任何一個(gè)使用 該內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)以執(zhí)行元件或處理的所需操作。在一個(gè)實(shí)施例中,當(dāng)使用內(nèi)核級(jí)數(shù)據(jù)結(jié) 構(gòu)時(shí)元件232、M0、234、236和238以?xún)?nèi)核模式204運(yùn)行,而在另一實(shí)施例中,當(dāng)使用內(nèi)核級(jí) 數(shù)據(jù)結(jié)構(gòu)時(shí)元件232、M0、234、236和238以用戶(hù)模式運(yùn)行。在某些實(shí)施例中,內(nèi)核級(jí)數(shù)據(jù) 結(jié)構(gòu)能被拷貝或傳遞到第二內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)或任何所需的用戶(hù)級(jí)數(shù)據(jù)結(jié)構(gòu)。緩存管理器232包括軟件、硬件或軟件和硬件的任何組合以提供對(duì)任何類(lèi)型和形 式的內(nèi)容的緩存訪(fǎng)問(wèn)、控制和管理,諸如由始發(fā)服務(wù)器106a-106n提供的對(duì)象或動(dòng)態(tài)產(chǎn)生 的對(duì)象。由緩存管理器232處理并存儲(chǔ)的數(shù)據(jù)、對(duì)象或內(nèi)容包括任何格式的數(shù)據(jù),諸如標(biāo)記 語(yǔ)言,或者借助于任何協(xié)議傳送的數(shù)據(jù)。在某些實(shí)施例中,緩存管理器232復(fù)制其他地方存 儲(chǔ)的原始數(shù)據(jù)或之前計(jì)算、產(chǎn)生或傳送的數(shù)據(jù),其中相對(duì)于讀取緩沖存儲(chǔ)器元件而言原始 數(shù)據(jù)需要更長(zhǎng)的訪(fǎng)問(wèn)時(shí)間以提取、計(jì)算或另外獲取。一旦在緩沖存儲(chǔ)器元件中存儲(chǔ)數(shù)據(jù),則 通過(guò)訪(fǎng)問(wèn)緩存的拷貝而不是再提取或再計(jì)算原始數(shù)據(jù)而獲得將來(lái)的使用,因此減少了訪(fǎng)問(wèn) 時(shí)間。在某些實(shí)施例中,緩沖存儲(chǔ)器元件可以包括設(shè)備104的存儲(chǔ)器264中的數(shù)據(jù)對(duì)象。在 其他實(shí)施例中,緩沖存儲(chǔ)器元件可以包括具有比存儲(chǔ)器264更快訪(fǎng)問(wèn)時(shí)間的存儲(chǔ)器。在另 一實(shí)施例中,緩沖存儲(chǔ)器元件包括任何類(lèi)型和形式的設(shè)備104的存儲(chǔ)元件,諸如硬盤(pán)的一 部分。在某些實(shí)施例中,處理單元262可以提供緩沖存儲(chǔ)器以供本發(fā)明的緩存管理器232 使用。在其他實(shí)施例中,緩存管理器232使用存儲(chǔ)器、儲(chǔ)存器或處理單元的任何部分或組合 用于緩存數(shù)據(jù)、對(duì)象和其他內(nèi)容。而且,本發(fā)明的緩存管理器232包括任何邏輯、功能、規(guī)則或操作以執(zhí)行這里所述 本發(fā)明的技術(shù)的任何實(shí)施例。例如,緩存管理器232包括邏輯或功能以根據(jù)無(wú)效時(shí)間段的 屆滿(mǎn)或一旦從客戶(hù)端102a-102n或服務(wù)器106a-106n接收無(wú)效命令就無(wú)效對(duì)象。在某些實(shí)施例中,緩存管理器232可以像在內(nèi)核空間204中執(zhí)行的程序、服務(wù)、處理或任務(wù)一樣操作, 而在其他實(shí)施例中,可以像用戶(hù)空間202中執(zhí)行的程序、服務(wù)、處理或任務(wù)一樣操作。在一 個(gè)實(shí)施例中,緩存管理器232的第一部分在用戶(hù)空間202內(nèi)執(zhí)行而第二部分在內(nèi)核空間204 內(nèi)執(zhí)行。在某些實(shí)施例中,緩存管理器232可以包括任何類(lèi)型的通用處理器(GPP)、或諸如 現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、可編程邏輯設(shè)備(PLD)或特定用途集成電路(ASIC)之類(lèi)的任何 其他類(lèi)型的集成電路。策略引擎236包括例如智能統(tǒng)計(jì)引擎或一個(gè)(或多個(gè))其他可編程應(yīng)用。在一個(gè)實(shí) 施例中,策略引擎236提供配置機(jī)制以允許用戶(hù)識(shí)別、指定、定義或配置緩存策略。在某些 實(shí)施例中,策略引擎236也訪(fǎng)問(wèn)存儲(chǔ)器以支持諸如查詢(xún)表或散列表之類(lèi)的數(shù)據(jù)結(jié)構(gòu)以啟用 用戶(hù)選擇的緩存策略決定。在其他實(shí)施例中,策略引擎236包括任何邏輯、規(guī)則、功能或操 作以確定并且除了對(duì)安全、網(wǎng)絡(luò)通信量、網(wǎng)絡(luò)訪(fǎng)問(wèn)、壓縮或由裝置104執(zhí)行的任何其他功能 或操作的訪(fǎng)問(wèn)、控制和管理之外提供對(duì)由裝置104緩存的對(duì)象、數(shù)據(jù)或內(nèi)容的訪(fǎng)問(wèn)、控制和 管理。這里將進(jìn)一步描述特定緩存策略的其他示例。加密引擎234包括任何邏輯、商業(yè)規(guī)則、功能或操作,用于管理諸如SSL或TLS之 類(lèi)的任何安全相關(guān)協(xié)議以及與其相關(guān)的任何功能的處理。例如,加密引擎234加密并解密 經(jīng)由裝置104傳送的網(wǎng)絡(luò)分組、或其任何部分。加密引擎234代表客戶(hù)端10加-10211、服務(wù) 器106a-106n或裝置104還布置或建立SSL或TLS連接。因此,加密引擎2;34提供SSL處理 的卸載和加速。在一個(gè)實(shí)施例中,加密引擎234使用隧道協(xié)議以提供客戶(hù)端102a-102n和 服務(wù)器106a-106n之間的虛擬專(zhuān)用網(wǎng)絡(luò)。在某些實(shí)施例中,加密引擎234與加密處理器沈0 進(jìn)行通信。在其他實(shí)施例中,加密引擎234包括在加密處理器260上運(yùn)行的可執(zhí)行指令。多協(xié)議壓縮引擎238包括任何邏輯、商業(yè)規(guī)則、功能或操作,用于壓縮網(wǎng)絡(luò)分組的 一個(gè)或多個(gè)協(xié)議,諸如由設(shè)備104的網(wǎng)絡(luò)堆棧267所用的任何協(xié)議。在一個(gè)實(shí)施例中,多協(xié) 議壓縮引擎238在客戶(hù)端102a-102n和服務(wù)器106a-106n之間雙向地壓縮任何基于TCP/IP 的協(xié)議,包括消息應(yīng)用程序編程接口(MAPI)(電子郵件)、文件傳輸協(xié)議(FTP)、超文本傳輸 協(xié)議(HTTP)、公共因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議(文件傳輸)、獨(dú)立計(jì)算體系結(jié)構(gòu)(ICA)協(xié)議、 遠(yuǎn)程桌上協(xié)議(RDP)、無(wú)線(xiàn)應(yīng)用協(xié)議(WAP)、移動(dòng)IP協(xié)議以及基于IP的語(yǔ)音(VoIP)協(xié)議。 在其他實(shí)施例中,多協(xié)議壓縮引擎238提供基于超文本標(biāo)記語(yǔ)言(HTML)協(xié)議的壓縮并在某 些實(shí)施例中,提供諸如可擴(kuò)展標(biāo)記語(yǔ)言(XML)的任何標(biāo)記語(yǔ)言的壓縮。在一個(gè)實(shí)施例中,多 協(xié)議壓縮引擎238提供任何高性能協(xié)議的壓縮,諸如為裝置104設(shè)計(jì)用于裝置104通信的 任何協(xié)議。在另一實(shí)施例中,多協(xié)議壓縮引擎238使用修改的傳輸控制協(xié)議壓縮任何負(fù)載 或任何通信,所述協(xié)議諸如交易TCP (T/TCP)、具有選擇確認(rèn)的TCP (TCP-SACK)、具有大窗 口的TCP (TCP-LW)、諸如TCP-Vegas協(xié)議等的擁塞預(yù)測(cè)協(xié)議以及TCP欺騙協(xié)議。因此,本發(fā)明的多協(xié)議壓縮引擎238借助于例如Microsoft Outlook的桌面客戶(hù) 端和非Web瘦客戶(hù)端,諸如像Orac 1 e SAP和Siebe 1等的流行企業(yè)應(yīng)用發(fā)布的任何客戶(hù)端以 及諸如Pocket PC的移動(dòng)客戶(hù)端而加速用戶(hù)訪(fǎng)問(wèn)應(yīng)用的性能。在某些實(shí)施例中,通過(guò)以?xún)?nèi) 核模式204執(zhí)行的并與分組處理引擎240集成來(lái)訪(fǎng)問(wèn)網(wǎng)絡(luò)堆棧267的多協(xié)議壓縮引擎238 能夠壓縮諸如TCP/IP協(xié)議所執(zhí)行的任何協(xié)議,諸如任何應(yīng)用層協(xié)議。通常也被稱(chēng)為分組處理引擎或分組引擎的高速層2-7集成分組引擎240負(fù)責(zé)管理 借助于網(wǎng)絡(luò)端口沈6由裝置104接收并傳送的分組的內(nèi)核級(jí)處理。高速層2-7集成分組引擎240包括緩沖器,用于在諸如接收網(wǎng)絡(luò)分組或傳送網(wǎng)絡(luò)分組的處理期間排隊(duì)一個(gè)或多個(gè) 網(wǎng)絡(luò)分組。另外,高速層2-7集成分組引擎240與一個(gè)或多個(gè)網(wǎng)絡(luò)堆棧267進(jìn)行通信以借 助于網(wǎng)絡(luò)端口 266發(fā)送并接收網(wǎng)絡(luò)分組。高速層2-7集成分組引擎240結(jié)合加密引擎234、 緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238 —起工作。具體地,加密引擎234被 配置以執(zhí)行分組的SSL處理,策略引擎236被配置以執(zhí)行涉及業(yè)務(wù)管理的功能,諸如請(qǐng)求級(jí) 內(nèi)容切換和請(qǐng)求級(jí)緩存重定向,以及多協(xié)議壓縮邏輯238被配置以執(zhí)行涉及壓縮和解壓縮 數(shù)據(jù)的功能。高速層2-7集成分組引擎240包括分組處理計(jì)時(shí)器M2。在一個(gè)實(shí)施例中,分組 處理計(jì)時(shí)器242提供一個(gè)或多個(gè)時(shí)間間隔以觸發(fā)輸入的(即接收的)或輸出的(即傳送的) 網(wǎng)絡(luò)分組的處理。在某些實(shí)施例中,高速層2-7集成分組引擎240響應(yīng)計(jì)時(shí)器242而處理 網(wǎng)絡(luò)分組。分組處理計(jì)時(shí)器對(duì)2向分組引擎240提供任何類(lèi)型和形式的信號(hào)以通知、觸發(fā) 或傳送涉及時(shí)間的事件、間隔或發(fā)生的事情(occurrence)。在某些實(shí)施例中,分組處理計(jì) 時(shí)器M2以毫秒級(jí)操作,例如100ms、50ms或25ms。例如,在某些實(shí)施例中,分組處理計(jì)時(shí) 器242提供時(shí)間間隔或按其他方式使得網(wǎng)絡(luò)分組以IOms時(shí)間間隔由高速層2_7集成分組 引擎240進(jìn)行處理,而在其他實(shí)施例中,以5ms時(shí)間間隔,并在另外的其他實(shí)施例中,縮短至 3、2或Ims時(shí)間間隔。高速層2-7集成分組引擎240在操作期間與加密引擎234、緩存管理 器232、策略引擎236和多協(xié)議壓縮引擎238進(jìn)行接口、集成或通信。因此,響應(yīng)于分組處 理計(jì)時(shí)器242和/或分組引擎240而執(zhí)行加密引擎234、緩存管理器232、策略引擎236和 多協(xié)議壓縮邏輯238的任何邏輯、功能或操作。因此,可以在通過(guò)分組處理計(jì)時(shí)器242提供 的時(shí)間間隔的顆粒度(granularity)(例如,在小于或等于IOms的時(shí)間間隔)上執(zhí)行加密引 擎234、緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238的任何邏輯、功能或操作。例 如,在一個(gè)實(shí)施例中,緩存管理器232響應(yīng)于高速層2-7集成分組引擎240和/或分組處理 計(jì)時(shí)器242而執(zhí)行任何緩存對(duì)象的無(wú)效。在另一實(shí)施例中,可以將緩存對(duì)象的期限時(shí)間或 無(wú)效時(shí)間設(shè)置為與分組處理計(jì)時(shí)器M2的時(shí)間間隔相同的顆粒度級(jí),諸如在每10ms。與內(nèi)核空間204相反,用戶(hù)空間202是用戶(hù)模式應(yīng)用或另外以用戶(hù)模式運(yùn)行的 程序所用的存儲(chǔ)器區(qū)域或部分操作系統(tǒng)。用戶(hù)模式應(yīng)用不能直接訪(fǎng)問(wèn)內(nèi)核空間204并使 用服務(wù)調(diào)用以便訪(fǎng)問(wèn)內(nèi)核服務(wù)。如圖2所示,應(yīng)用104的用戶(hù)空間202包括圖形用戶(hù)界面 (GUI) 210、命令行界面(CLI) 212、外殼服務(wù)(shell service) 214、可用狀態(tài)監(jiān)控(health monitoring)程序216和守護(hù)(daemon)服務(wù)218。⑶1210和CLI212提供一個(gè)裝置,通過(guò)該 裝置系統(tǒng)管理者或其他用戶(hù)可以交互并控制裝置104的操作,諸如借助于裝置104的操作 系統(tǒng)并或是用戶(hù)空間202或內(nèi)核空間204。GUI210可以是任何類(lèi)型和形式的圖形用戶(hù)界面 并且可以借助文本、圖形或另外通過(guò)任何類(lèi)型的程序或應(yīng)用(例如,瀏覽器)表現(xiàn)。CLI212 可以是任何類(lèi)型和形式的命令行或基于文本的界面,諸如由操作系統(tǒng)提供的命令行等。例 如,CLI212包括一個(gè)外殼,其是使用戶(hù)能夠與操作系統(tǒng)進(jìn)行交互的工具。在某些實(shí)施例中, 借助baSh、CSh、tCSh或ksh類(lèi)型外殼提供CLI212。外殼服務(wù)214包括程序、服務(wù)、任務(wù)、處 理或可執(zhí)行指令以支持用戶(hù)借助⑶1210和/或CLI212與裝置104或操作系統(tǒng)進(jìn)行交互??捎脿顟B(tài)監(jiān)控程序216用于監(jiān)控、檢查、報(bào)告并確保網(wǎng)絡(luò)系統(tǒng)正適當(dāng)?shù)剡\(yùn)行以及 用戶(hù)通過(guò)網(wǎng)絡(luò)正在接收請(qǐng)求的內(nèi)容??捎脿顟B(tài)監(jiān)控程序216包括一個(gè)或多個(gè)程序、服務(wù)、任 務(wù)、處理或可執(zhí)行指令以提供邏輯、規(guī)則、功能或操作以用于監(jiān)控裝置104的任何活動(dòng)。在某些實(shí)施例中,可用狀態(tài)監(jiān)控程序216截取并檢查經(jīng)過(guò)裝置104傳遞的任何網(wǎng)絡(luò)通信量。 在其他實(shí)施例中,可用狀態(tài)監(jiān)控程序216通過(guò)任何合適的裝置和/或機(jī)制與一個(gè)或多個(gè)如 下裝置對(duì)接加密引擎234、緩存管理器232、策略引擎236、多協(xié)議壓縮邏輯238、分組引擎 對(duì)0、守護(hù)服務(wù)218、以及外殼服務(wù)214。因此,可用狀態(tài)監(jiān)控程序216能調(diào)用任何應(yīng)用程序 接口(API)以確定裝置104的任何部分的狀態(tài)、狀況或健康。例如,可用狀態(tài)監(jiān)控程序216 在周期性的基礎(chǔ)上Ping或發(fā)送狀況查詢(xún)以檢測(cè)程序、處理、服務(wù)或任務(wù)是否有效并正在運(yùn) 行。在另一示例中,可用狀態(tài)監(jiān)控程序216檢查程序、處理、服務(wù)或任務(wù)所提供的任何狀況、 錯(cuò)誤或歷史日志以確定裝置104的任何部分的任何情況、狀況或錯(cuò)誤。守護(hù)服務(wù)218是持續(xù)運(yùn)行或在后臺(tái)中的并且處理裝置104所接收的周期服務(wù)請(qǐng)求 的程序。在某些實(shí)施例中,守護(hù)服務(wù)向其他程序或處理轉(zhuǎn)送請(qǐng)求,諸如合適時(shí)的另一守護(hù)服 務(wù)218。如本領(lǐng)域技術(shù)人員所知曉的,守護(hù)服務(wù)218自動(dòng)地運(yùn)行以持續(xù)地或周期地執(zhí)行諸 如網(wǎng)絡(luò)控制的系統(tǒng)廣泛功能,或執(zhí)行任何所需任務(wù)。在某些實(shí)施例中,一個(gè)或多個(gè)守護(hù)服務(wù) 218在用戶(hù)空間202內(nèi)運(yùn)行,而在其他實(shí)施例中,一個(gè)或多個(gè)守護(hù)服務(wù)218在內(nèi)核空間內(nèi)運(yùn) 行。C.緩存動(dòng)態(tài)產(chǎn)生的對(duì)象
諸如一個(gè)或多個(gè)動(dòng)態(tài)產(chǎn)生的對(duì)象之類(lèi)的動(dòng)態(tài)內(nèi)容可以由服務(wù)器和/或后端數(shù)據(jù)庫(kù)(未 示出)產(chǎn)生,所述服務(wù)器被稱(chēng)作應(yīng)用或始發(fā)服務(wù)器106a-106n,該后端數(shù)據(jù)庫(kù)本地或遠(yuǎn)程地 處理來(lái)自一個(gè)或多個(gè)客戶(hù)端10加-10211的對(duì)象請(qǐng)求,如圖1所示。當(dāng)這些應(yīng)用或數(shù)據(jù)庫(kù)處 理數(shù)據(jù)(該數(shù)據(jù)包括涉及從客戶(hù)端接收的輸入的數(shù)據(jù))時(shí),由這些數(shù)據(jù)庫(kù)和應(yīng)用提供的響應(yīng) 對(duì)象將改變。在始發(fā)服務(wù)器中由這些應(yīng)用或數(shù)據(jù)庫(kù)產(chǎn)生的先前對(duì)象將不再“新鮮”并因此 不再需要由緩存器保存。例如,給定相同的輸入集合,第一實(shí)例的動(dòng)態(tài)產(chǎn)生的對(duì)象不同于第 二實(shí)例的動(dòng)態(tài)產(chǎn)生的對(duì)象。在另一示例中,使用不同的輸入集合而動(dòng)態(tài)產(chǎn)生相同對(duì)象,以致 于不同于對(duì)象的第二實(shí)例而產(chǎn)生對(duì)象的第一實(shí)例。為了獲得改進(jìn)的網(wǎng)絡(luò)性能,裝置104被設(shè)計(jì)和配置以解決在通過(guò)各種方法緩存動(dòng) 態(tài)產(chǎn)生的內(nèi)容中出現(xiàn)的各種問(wèn)題,如下文的詳細(xì)描述。在這里所述的本發(fā)明的某些實(shí)施例 中,裝置104結(jié)合了一種或多種技術(shù)的集合用于更高效快捷地?zé)o效緩存器中所存儲(chǔ)的動(dòng)態(tài) 產(chǎn)生的內(nèi)容。而且,該裝置結(jié)合用于執(zhí)行控制并緩存閃速群的技術(shù)。緩沖存儲(chǔ)器一般存儲(chǔ) 對(duì)對(duì)象請(qǐng)求的每個(gè)響應(yīng),只要這樣的響應(yīng)沒(méi)有被標(biāo)記為不可緩存。如這里所述,高效緩存 動(dòng)態(tài)產(chǎn)生的內(nèi)容需要這樣的技術(shù),該技術(shù)能夠及時(shí)無(wú)效在始發(fā)服務(wù)器已經(jīng)歷改變的緩沖存 儲(chǔ)器中的對(duì)象。及時(shí)無(wú)效允許緩存器避免提供“陳舊”內(nèi)容-特別涉及動(dòng)態(tài)產(chǎn)生內(nèi)容的任 務(wù),特別是在內(nèi)容改變無(wú)規(guī)律發(fā)生的時(shí)候。下文將闡述確保及時(shí)無(wú)效動(dòng)態(tài)產(chǎn)生的內(nèi)容的若 干技術(shù)。1.集成功能
一方面,本發(fā)明涉及一種響應(yīng)于分組處理計(jì)時(shí)器242使緩存管理器232、策略引擎236、 加密引擎234和/或多協(xié)議壓縮邏輯238的功能、邏輯或操作與高速層2-7集成分組引擎 240的分組處理操作相集成的技術(shù)。例如,可以在用于分組處理操作的分組處理計(jì)時(shí)器對(duì)2 的時(shí)間間隔內(nèi)執(zhí)行緩存管理器232的操作,例如在接收或傳送網(wǎng)絡(luò)分組時(shí)。在一個(gè)實(shí)施例 中,通過(guò)與分組處理操作相集成和/或使用分組處理計(jì)時(shí)器,本發(fā)明的緩存管理器232可以 利用低至非常小時(shí)間間隔的期限時(shí)間來(lái)緩存對(duì)象,這將在下文更詳細(xì)的描述。在其他實(shí)施例中,響應(yīng)分組處理計(jì)時(shí)器M2的緩存管理器232也可以接收無(wú)效命令以在緩存對(duì)象非常 短的時(shí)間段內(nèi)無(wú)效對(duì)象。圖3A所示的方法300示出了用于請(qǐng)求緩存管理器232、策略引擎236、加密引擎 234和/或多協(xié)議壓縮引擎238以在處理或結(jié)合時(shí)間間隔以由高速層2-7集成分組引擎或 分組處理引擎240處理網(wǎng)絡(luò)分組期間執(zhí)行操作的本發(fā)明的技術(shù)的一個(gè)實(shí)施例。簡(jiǎn)單概括, 在方法300的步驟310,設(shè)備104接收網(wǎng)絡(luò)分組或被請(qǐng)求傳送網(wǎng)絡(luò)分組。在步驟315,響應(yīng) 于分組處理計(jì)時(shí)器M2,設(shè)備104請(qǐng)求分組處理引擎240來(lái)處理網(wǎng)絡(luò)分組。作為分組處理操 作的一部分或結(jié)合分組處理操作,在步驟320,分組處理引擎240請(qǐng)求緩存管理器232、策略 引擎236、加密引擎234和/或多協(xié)議壓縮引擎238對(duì)緩存對(duì)象執(zhí)行操作。在步驟325,緩 存管理器232、策略引擎236、加密引擎234和/或多協(xié)議壓縮引擎238執(zhí)行請(qǐng)求的操作,其 包括這里所述發(fā)明的技術(shù)的任何一個(gè)或組合。在一個(gè)實(shí)施例中,緩存管理器232確定緩存 對(duì)象的無(wú)效,并標(biāo)記緩存對(duì)象為無(wú)效。在某些實(shí)施例中,緩存管理器232響應(yīng)于分組處理引 擎240的請(qǐng)求而刷新無(wú)效對(duì)象。當(dāng)緩存管理器232響應(yīng)于分組處理計(jì)時(shí)器242而正執(zhí)行這 些操作時(shí),無(wú)效對(duì)象可以在毫秒級(jí)的時(shí)間段內(nèi)發(fā)生以及對(duì)象具有在分組處理計(jì)時(shí)器242所 提供的時(shí)間間隔的級(jí)別的期限時(shí)間,諸如IOms等。在本發(fā)明的方法300的更進(jìn)一步的描述中,在步驟310,裝置104接收一個(gè)或多個(gè) 網(wǎng)絡(luò)分組和/或傳送一個(gè)或多個(gè)網(wǎng)絡(luò)分組。在某些實(shí)施例中,裝置104請(qǐng)求經(jīng)過(guò)網(wǎng)絡(luò)108 或網(wǎng)絡(luò)110傳送一個(gè)或多個(gè)網(wǎng)絡(luò)分組。在另一實(shí)施例中,裝置104在一個(gè)端口 266上接收 網(wǎng)絡(luò)分組并在相同端口 266或不同端口沈6’上傳送網(wǎng)絡(luò)分組。在某些實(shí)施例中,裝置104 的分組引擎240傳送或請(qǐng)求傳送一個(gè)或多個(gè)網(wǎng)絡(luò)分組。在一個(gè)實(shí)施例中,裝置104在第一 網(wǎng)絡(luò)108上接收或傳送分組,而在另一實(shí)施例中,裝置104在第二網(wǎng)絡(luò)110上接收或傳送分 組。在其他實(shí)施例中,裝置104在相同網(wǎng)絡(luò)上接收和傳送分組。在某些實(shí)施例中,裝置104 向一個(gè)或多個(gè)客戶(hù)端102a-102n接收和/或傳送網(wǎng)絡(luò)分組。在其他實(shí)施例中,裝置104向 一個(gè)或多個(gè)服務(wù)器106a-106n接收和/或發(fā)送網(wǎng)絡(luò)分組。在步驟315,一旦在設(shè)備104的網(wǎng)絡(luò)端口 266上接收網(wǎng)絡(luò)分組或一旦從設(shè)備104請(qǐng) 求傳送網(wǎng)絡(luò)分組,或者一旦接收和/或傳送一個(gè)或多個(gè)網(wǎng)絡(luò)分組的任何組合,則設(shè)備104請(qǐng) 求或觸發(fā)分組處理引擎MO的分組處理操作。在某些實(shí)施例中,通過(guò)分組處理計(jì)時(shí)器M2 提供的信號(hào)觸發(fā)分組處理引擎240的分組處理操作。在一個(gè)實(shí)施例中,分組處理計(jì)時(shí)器M2 提供與接收和/或傳送一個(gè)或多個(gè)網(wǎng)絡(luò)分組有關(guān)的中斷驅(qū)動(dòng)或事件驅(qū)動(dòng)的計(jì)時(shí)器功能。在 某些實(shí)施例中,由通過(guò)設(shè)備104接收和/或發(fā)送網(wǎng)絡(luò)分組的速率或由處理每個(gè)分組或一批 分組的速率而驅(qū)動(dòng)分組處理計(jì)時(shí)器M2。因此,在一個(gè)或多個(gè)分組處理操作的每個(gè)集合之后 觸發(fā)并復(fù)位分組處理計(jì)時(shí)器對(duì)2。在另一實(shí)施例中,分組處理計(jì)時(shí)器242提供時(shí)間間隔(相 同或可變的時(shí)間間隔)以觸發(fā)、喚醒或用信號(hào)通知分組處理引擎240以執(zhí)行諸如處理接收的 分組或傳送提交的分組之類(lèi)的功能或操作。如上文結(jié)合圖2的設(shè)備104所討論的,分組處 理計(jì)時(shí)器242以毫秒級(jí)進(jìn)行操作,諸如引起時(shí)間間隔或在IOms或更少的時(shí)間間隔內(nèi)觸發(fā)分 組處理操作。能以各種方式提供并在分組處理引擎240的分組處理操作的操作中使用本發(fā) 明的分組處理計(jì)時(shí)器的顆粒度計(jì)時(shí)器功能。在本發(fā)明的方法300的步驟320,分組處理引擎240請(qǐng)求緩存管理器232、策略引 擎236、加密引擎234和/或多協(xié)議壓縮引擎238中的一個(gè)或多個(gè)以執(zhí)行操作。在一個(gè)實(shí)施例中,分組處理引擎240或分組處理計(jì)時(shí)器242產(chǎn)生信號(hào)或用信號(hào)通知緩存管理器232、策 略引擎236、加密引擎234和/或多協(xié)議壓縮引擎238中的一個(gè)或多個(gè)。在網(wǎng)絡(luò)分組或一個(gè) 或多個(gè)分組的分組處理操作之前、期間或之后的任何時(shí)刻,分組處理引擎240請(qǐng)求或用信 號(hào)通知操作。在一個(gè)實(shí)施例中,一旦觸發(fā)分組處理計(jì)時(shí)器242或分組處理計(jì)時(shí)器242提供 的時(shí)間間隔屆滿(mǎn),并在對(duì)網(wǎng)絡(luò)分組執(zhí)行分組處理操作之前,分組處理引擎240進(jìn)行請(qǐng)求。在 另一實(shí)施例中,在執(zhí)行一個(gè)或多個(gè)分組處理操作期間,分組處理引擎240進(jìn)行請(qǐng)求。例如, 在執(zhí)行操作期間,諸如在功能調(diào)用內(nèi),分組處理引擎240對(duì)緩存管理器232、策略引擎236、 加密引擎234和/或多協(xié)議壓縮引擎238之一進(jìn)行應(yīng)用程序接口(API)調(diào)用。在其他實(shí)施 例中,一旦完成網(wǎng)絡(luò)分組處理的操作則分組處理引擎240進(jìn)行請(qǐng)求。在步驟325,由緩存管理器232、策略引擎236、加密引擎234和/或多協(xié)議壓縮 引擎238中的一個(gè)或多個(gè)執(zhí)行請(qǐng)求的操作。在某些實(shí)施例中,諸如經(jīng)由內(nèi)核應(yīng)用程序接口 (API),可以請(qǐng)求執(zhí)行通過(guò)內(nèi)核204所提供的任何功能或操作。因此,結(jié)合借助分組處理計(jì) 時(shí)器232的時(shí)間或分組處理的時(shí)間間隔執(zhí)行設(shè)備104的任何功能。在某些實(shí)施例中,同步并 結(jié)合分組處理引擎240的分組處理操作執(zhí)行請(qǐng)求的操作。例如,一旦完成或響應(yīng)請(qǐng)求的操 作,分組處理操作就等待并持續(xù)。在其他實(shí)施例中,與分組處理操作非同步地執(zhí)行請(qǐng)求的操 作。例如,分組處理引擎240發(fā)送請(qǐng)求以執(zhí)行操作但不防礙或等待從操作接收響應(yīng)。如下 文將結(jié)合圖3B所示的本發(fā)明的方法350更詳細(xì)討論的,分組處理引擎240請(qǐng)求緩存管理器 232以執(zhí)行任何緩存管理功能,諸如檢查對(duì)象的期限或無(wú)效、標(biāo)記對(duì)象為無(wú)效或刷新無(wú)效或 屆滿(mǎn)的對(duì)象。在某些實(shí)施例中,在步驟320分組處理引擎240發(fā)送多個(gè)請(qǐng)求,諸如向緩存管理器 232發(fā)送第一請(qǐng)求并向加密引擎234發(fā)送第二請(qǐng)求。在其他實(shí)施例中,在步驟320,分組處 理引擎240諸如經(jīng)由內(nèi)核230向設(shè)備104的目標(biāo)元件發(fā)送包括將由設(shè)備104分發(fā)的多個(gè)請(qǐng) 求的單獨(dú)請(qǐng)求。在一個(gè)實(shí)施例中,隨后將請(qǐng)求進(jìn)行彼此傳送。在另一實(shí)施例中,請(qǐng)求取決于 先前請(qǐng)求的狀態(tài)、結(jié)果、成功或完成。例如,到策略引擎236的第一請(qǐng)求用于確定處理來(lái)自 另一設(shè)備或與網(wǎng)絡(luò)分組相關(guān)的用戶(hù)的網(wǎng)絡(luò)分組的策略。根據(jù)策略引擎236的策略,取決于 第一請(qǐng)求的結(jié)果進(jìn)行或不進(jìn)行到緩存器的第二請(qǐng)求。使用設(shè)備104的內(nèi)核空間204中與分 組處理引擎240集成的緩存管理器232、策略引擎236、加密引擎234和/或多協(xié)議壓縮引 擎238,存在由分組處理操作觸發(fā)并與分組處理操作集成的這里所述的設(shè)備104的各種操 作。2.無(wú)效顆粒度
另一方面,本發(fā)明涉及并包含將緩存器保存的對(duì)象的期限時(shí)間配置為微小的顆粒度時(shí) 間間隔的能力,諸如由分組處理計(jì)時(shí)器提供的時(shí)間間隔的顆粒度。該特性被稱(chēng)為“無(wú)效顆粒 度”。因此,在一個(gè)實(shí)施例中,本發(fā)明可以利用低至非常小時(shí)間間隔的期限時(shí)間來(lái)緩存對(duì)象。 在其他實(shí)施例中,響應(yīng)分組處理計(jì)時(shí)器的緩存管理器也可以接收無(wú)效命令以在緩存對(duì)象的 非常短的時(shí)間段內(nèi)無(wú)效對(duì)象。通過(guò)在期限時(shí)間內(nèi)提供該微小的顆粒度,本發(fā)明的緩存器可 以緩存并提供經(jīng)常變化的對(duì)象,該對(duì)象經(jīng)常甚至1秒內(nèi)數(shù)次變化。一種技術(shù)是調(diào)節(jié)本發(fā)明 的設(shè)備所用的分組處理計(jì)時(shí)器,這樣能夠以毫秒級(jí)的時(shí)間增量操作以允許無(wú)效或期限顆粒 度低至IOms或更少。相對(duì)比于本發(fā)明,常規(guī)的緩存器一般不能設(shè)置或具有小于一秒的期限 或無(wú)效顆粒度。
現(xiàn)在參考圖3B,描述了本發(fā)明的方法350的實(shí)施例,用于響應(yīng)于分組處理計(jì)時(shí)器 242和/或分組處理引擎240而無(wú)效緩存的對(duì)象或使緩存的對(duì)象屆滿(mǎn)。因此,在本發(fā)明的 某些實(shí)施例中,可以以毫秒級(jí)(諸如IOms或更少)無(wú)效緩存的對(duì)象或使緩存的對(duì)象屆滿(mǎn)???之,在方法350的步驟355,緩存管理器232響應(yīng)于分組處理計(jì)時(shí)器242通過(guò)分組處理引擎 240而接收信號(hào)或請(qǐng)求以執(zhí)行操作。在步驟360,緩存管理器232確定諸如動(dòng)態(tài)產(chǎn)生的對(duì)象 之類(lèi)的緩存對(duì)象是否無(wú)效或?qū)脻M(mǎn)。在步驟365,如果對(duì)象是無(wú)效的,則緩存管理器232將對(duì) 象標(biāo)記為無(wú)效,并在步驟370,從緩存管理器232刷新無(wú)效對(duì)象。在步驟355的進(jìn)一步描述中,在某些實(shí)施例中,緩存管理器232會(huì)被信號(hào)通知或 請(qǐng)求在網(wǎng)絡(luò)分組處理期間的任何時(shí)間點(diǎn)執(zhí)行涉及緩存器的操作。在一個(gè)實(shí)施例中,在步驟 355,在對(duì)由設(shè)備104接收或傳送的網(wǎng)絡(luò)分組進(jìn)行處理之前緩存管理器232接收操作請(qǐng)求。 在另一實(shí)施例中,一旦完成網(wǎng)絡(luò)分組的處理,緩存管理器232就接收操作請(qǐng)求。例如,分組 處理引擎240完成網(wǎng)絡(luò)分組的處理,并在等待計(jì)時(shí)器242的下個(gè)時(shí)間間隔之前或在處理下 個(gè)分組之前,請(qǐng)求緩存器執(zhí)行操作。在其他實(shí)施例中,在操作分組處理期間,分組處理引擎 240將操作請(qǐng)求傳送到緩存管理器232。在另一實(shí)施例中,緩存管理器232諸如從分組處理 引擎240或分組處理計(jì)時(shí)器242接收信號(hào)以觸發(fā)緩存管理器232執(zhí)行操作。在某些實(shí)施例 中,信號(hào)表示無(wú)效緩存的對(duì)象或使緩存對(duì)象的期限屆滿(mǎn)。在某些實(shí)施例中,緩存管理器232從緩存管理器232外部的實(shí)體接收請(qǐng)求以執(zhí)行 緩存操作,諸如無(wú)效由服務(wù)器106a-106n所傳送的并由分組處理引擎240處理的對(duì)象的請(qǐng) 求。在一個(gè)實(shí)施例中,緩存管理器232在緩存對(duì)象的IOms或更少時(shí)間內(nèi)接收無(wú)效請(qǐng)求,而 在另一實(shí)施例中,短至5ms、2ms或1ms。在其他實(shí)施例中,緩存管理器232響應(yīng)于緩存管理 器232的操作或功能而執(zhí)行緩存操作,諸如計(jì)時(shí)器的屆滿(mǎn)以引起無(wú)效對(duì)象或在處理任何緩 存命令期間。在其他實(shí)施例中,緩存管理器232使用設(shè)備104的分組處理計(jì)時(shí)器M2以觸 發(fā)緩存操作。例如,計(jì)時(shí)器242觸發(fā)或以信號(hào)通知緩存器以檢查在能夠由計(jì)時(shí)器242設(shè)置 的任何時(shí)間間隔上緩存對(duì)象的無(wú)效或期限。在一個(gè)實(shí)施例中,設(shè)置計(jì)時(shí)器對(duì)2以在所設(shè)置 的IOms或更短時(shí)間內(nèi)觸發(fā)或以信號(hào)通知緩存器,或在另一實(shí)施例中,設(shè)置短至5ms、2ms或 Ims0在某些實(shí)施例中,始發(fā)服務(wù)器106a-106n能設(shè)置對(duì)象的期限時(shí)間。在其他實(shí)施例中, 裝置104或客戶(hù)端10加-10211能設(shè)置對(duì)象的期限時(shí)間。在步驟360,緩存管理器232確定緩存器中所存儲(chǔ)的對(duì)象的無(wú)效或期限。在某些實(shí) 施例中,根據(jù)計(jì)時(shí)器的期限無(wú)效緩存器中的對(duì)象。在一個(gè)實(shí)施例中,緩存管理器232根據(jù)計(jì) 時(shí)器的期限發(fā)布對(duì)對(duì)象的無(wú)效命令。在另一個(gè)實(shí)施例中,響應(yīng)于計(jì)時(shí)器(諸如使用分組處理 計(jì)時(shí)器242設(shè)置的計(jì)時(shí)器)的屆滿(mǎn),由緩存管理器232自動(dòng)無(wú)效緩存器中所存儲(chǔ)的對(duì)象。在 某些實(shí)施例中,響應(yīng)于分組處理計(jì)時(shí)器對(duì)2,緩存管理器232檢查對(duì)于緩存對(duì)象的任何計(jì)時(shí) 器的期限。在一個(gè)實(shí)施例中,緩存管理器232確定對(duì)象計(jì)時(shí)器已屆滿(mǎn),而在另一實(shí)施例中, 緩存管理器232確定對(duì)象計(jì)時(shí)器還沒(méi)有屆滿(mǎn)。在另一實(shí)施例中,響應(yīng)于第二觸發(fā)器或分組 處理計(jì)時(shí)器242的第二計(jì)時(shí)器間隔的緩存管理器232將第二次檢查之前檢查的對(duì)象計(jì)時(shí)器 是否已屆滿(mǎn)。在某些實(shí)施例中,緩存管理器232解析、解釋、訪(fǎng)問(wèn)、讀取或另外處理無(wú)效命令或 請(qǐng)求以識(shí)別對(duì)象用于在緩存器中無(wú)效。在一個(gè)實(shí)施例中,緩存管理器232外部的實(shí)體向緩 存管理器232發(fā)布無(wú)效命令以無(wú)效對(duì)象。在另一實(shí)施例中,外部實(shí)體響應(yīng)于分組處理計(jì)時(shí)器242而發(fā)出無(wú)效命令。如果對(duì)象是有效的和/或還沒(méi)有無(wú)效,則緩存管理器232響應(yīng)于 請(qǐng)求而無(wú)效對(duì)象。在某些實(shí)施例中,由緩存管理器232處理的無(wú)效請(qǐng)求響應(yīng)于處理請(qǐng)求的 分組處理引擎240的分組處理操作,其依次也響應(yīng)于分組處理計(jì)時(shí)器M2。在步驟365,緩存管理器232標(biāo)記對(duì)象為無(wú)效。緩存管理器232以任何合適或所需 的方式標(biāo)記每個(gè)對(duì)象為無(wú)效。在一個(gè)實(shí)施例中,通過(guò)設(shè)置所存儲(chǔ)對(duì)象的標(biāo)志、特性或?qū)傩詫?對(duì)象標(biāo)記為無(wú)效。例如,將標(biāo)志設(shè)置為向緩存管理器232表示對(duì)象為無(wú)效的任何值。在另 一實(shí)施例中,通過(guò)將對(duì)象移至用于存儲(chǔ)無(wú)效對(duì)象的區(qū)域或緩存器的一部分而將對(duì)象標(biāo)記為 無(wú)效。在其他實(shí)施例中,通過(guò)數(shù)據(jù)庫(kù)或鏈接列表或任何類(lèi)型和形式的數(shù)據(jù)結(jié)構(gòu),緩存管理器 232識(shí)別或跟蹤所存儲(chǔ)對(duì)象的無(wú)效和/或有效狀態(tài)。在某些實(shí)施例中,緩存管理器232使用 一個(gè)或多個(gè)對(duì)象以識(shí)別或跟蹤緩存器中所存儲(chǔ)的一個(gè)或多個(gè)對(duì)象的有效或無(wú)效。在另一實(shí) 施例中,通過(guò)改變、修改或變更所存儲(chǔ)的對(duì)象,例如刪除或移除不使用的對(duì)象的一部分,或 通過(guò)改變或破壞對(duì)象名稱(chēng)而將對(duì)象標(biāo)記為無(wú)效。在某些實(shí)施例中,在步驟370,緩存管理器232從緩存器刷新標(biāo)記為無(wú)效的那些對(duì) 象。在另一實(shí)施例中,一旦諸如由客戶(hù)端10加-10211請(qǐng)求對(duì)象,緩存管理器232就從緩存器 中刷新無(wú)效對(duì)象。在某些實(shí)施例中,緩存管理器232使用在對(duì)象無(wú)效或?qū)脻M(mǎn)之后所接收的 對(duì)象的更新副本或版本重寫(xiě)無(wú)效對(duì)象。在另一實(shí)施例中,緩存管理器232通過(guò)將另一對(duì)象 存儲(chǔ)至緩沖存儲(chǔ)器的相同部分而再使用無(wú)效對(duì)象所占用的緩沖存儲(chǔ)器。在另一實(shí)施例中, 緩存管理器232并不刷新標(biāo)記為無(wú)效的對(duì)象而是保持存儲(chǔ)在存儲(chǔ)器或緩存器的儲(chǔ)存器中 的對(duì)象。雖然方法350描述了響應(yīng)于分組處理計(jì)時(shí)器和/或結(jié)合分組處理操作而無(wú)效并刷 新緩存的對(duì)象以提供無(wú)效顆粒度,但是緩存器的任何操作和緩存器管理的任何技術(shù)以及這 里所述的設(shè)備104的任何其他操作可以在分組處理計(jì)時(shí)器提供的微小顆粒度時(shí)間間隔上 執(zhí)行。在某些實(shí)施例中,緩存對(duì)象的無(wú)效或?qū)脻M(mǎn)能以短至IOOms時(shí)間間隔發(fā)生,而在另一實(shí) 施例中,短至50ms時(shí)間間隔。在某些實(shí)施例中,緩存對(duì)象的無(wú)效或?qū)脻M(mǎn)能以短至25ms時(shí)間 間隔發(fā)生,而在其他實(shí)施例中,短至IOms時(shí)間間隔。而在其他實(shí)施例中,緩存對(duì)象的無(wú)效或 屆滿(mǎn)能以短至5ms時(shí)間間隔發(fā)生,而在另一實(shí)施例中,短至3、2或Ims時(shí)間間隔。通過(guò)包含上面結(jié)合圖3A和;3B在方法300和350中所述的極小時(shí)間增量消逝之后 無(wú)效對(duì)象的能力,可以實(shí)現(xiàn)改進(jìn)動(dòng)態(tài)產(chǎn)生對(duì)象的緩存。事實(shí)上,某些動(dòng)態(tài)內(nèi)容必須服從在極 短的時(shí)間段內(nèi)從緩存器存儲(chǔ)和提供。然而,為了成功緩存這樣的內(nèi)容,根據(jù)本發(fā)明實(shí)施例的 方法提供在無(wú)效對(duì)象并從緩沖存儲(chǔ)器刷新對(duì)象之前在極短時(shí)間段緩存對(duì)象。例如,特定動(dòng) 態(tài)產(chǎn)生的對(duì)象是可緩存1秒之久,但較長(zhǎng)的時(shí)間對(duì)于持續(xù)變化的內(nèi)容來(lái)說(shuō)經(jīng)常是不被接受 的。在一個(gè)實(shí)施例中,本發(fā)明的方法包括在1秒的微小部分之后無(wú)效緩存的內(nèi)容或使緩存 的內(nèi)容屆滿(mǎn)。作為示例,如果裝置100花費(fèi)數(shù)毫秒產(chǎn)生動(dòng)態(tài)響應(yīng),那么緩存器可以在小于或 等于IOOms的時(shí)間段的期間內(nèi)存儲(chǔ)和提供該響應(yīng),而不損害數(shù)據(jù)的“新鮮”。在IOOms的周 期內(nèi)不會(huì)產(chǎn)生新的對(duì)象,因?yàn)樗犬a(chǎn)生新對(duì)象所花費(fèi)的時(shí)間更短。因此,可以設(shè)置裝置104 以在持續(xù)時(shí)間中提供該先前對(duì)象。裝置104無(wú)效低至非常小時(shí)間增量的能力經(jīng)常對(duì)其中設(shè) 置數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別以允許重復(fù)讀取或序列讀取的應(yīng)用環(huán)境是非常有用的。3.無(wú)效命令
常規(guī)緩存技術(shù)根據(jù)內(nèi)容的預(yù)定期限時(shí)間而無(wú)效所存儲(chǔ)的內(nèi)容,所述預(yù)定期限時(shí)間一般由管理員配置或從提供對(duì)象的服務(wù)器接收。下文描述的是用于無(wú)效內(nèi)容以便更高效地緩存 動(dòng)態(tài)產(chǎn)生的內(nèi)容的本發(fā)明的另一技術(shù)。本發(fā)明的技術(shù)包括在裝置104接收無(wú)效命令的能 力,該無(wú)效命令實(shí)時(shí)識(shí)別緩存器中之前存儲(chǔ)的一個(gè)或多個(gè)對(duì)象為無(wú)效。例如,可以通過(guò)傳送 到客戶(hù)端的網(wǎng)絡(luò)分組或服務(wù)器向裝置進(jìn)行的應(yīng)用程序接口(API)調(diào)用而傳送該無(wú)效命令。 這不同于常規(guī)方法,當(dāng)提供對(duì)象時(shí)通過(guò)該常規(guī)方法服務(wù)器簡(jiǎn)單地設(shè)置在對(duì)象報(bào)頭中所包括 的緩存器期限時(shí)間。本發(fā)明的技術(shù)更具體地在圖4A和4B中表示。圖4A是示出維持諸如計(jì)算機(jī)存儲(chǔ) 器緩存器之類(lèi)的緩存器的方法的流程圖。簡(jiǎn)單概括并根據(jù)步驟410,在緩存器中存儲(chǔ)之前 從始發(fā)服務(wù)器106a-106n提供的動(dòng)態(tài)產(chǎn)生的對(duì)象。例如,動(dòng)態(tài)產(chǎn)生的對(duì)象不會(huì)被識(shí)別為可 緩存的或另外包括任何緩存器或緩存器控制信息。在步驟420,在緩存器或緩存管理器232 上接收無(wú)效命令。無(wú)效命令將之前提供的一個(gè)或多個(gè)對(duì)象識(shí)別為無(wú)效。在步驟430,響應(yīng)于 無(wú)效命令,緩存器或緩存管理器232將該識(shí)別的對(duì)象標(biāo)記為無(wú)效。在步驟410的進(jìn)一步描述中,緩存管理器232在緩沖存儲(chǔ)器元件中存儲(chǔ)從任何源 接收、獲取或傳送的動(dòng)態(tài)產(chǎn)生的對(duì)象。在某些實(shí)施例中,從服務(wù)器106a-106n產(chǎn)生并提供動(dòng) 態(tài)產(chǎn)生的對(duì)象。在其他實(shí)施例中,由客戶(hù)端10h-102n產(chǎn)生并提供動(dòng)態(tài)產(chǎn)生的對(duì)象。在某 些實(shí)施例中,裝置104的另一部分、元件或處理產(chǎn)生對(duì)象并在緩存器中保存對(duì)象。在其他實(shí) 施例中,由網(wǎng)絡(luò)上另一裝置104或另一計(jì)算設(shè)備產(chǎn)生動(dòng)態(tài)產(chǎn)生的對(duì)象并且該動(dòng)態(tài)產(chǎn)生的對(duì) 象被傳送或傳遞到裝置104。在某些實(shí)施例中,動(dòng)態(tài)產(chǎn)生的對(duì)象沒(méi)有被識(shí)別為可緩存的或識(shí) 別為不可緩存的。在其他實(shí)施例中,動(dòng)態(tài)產(chǎn)生的對(duì)象被識(shí)別為可緩存的或在緩存器控制下。在步驟420,緩存管理器232接收將對(duì)象識(shí)別為無(wú)效的無(wú)效命令,該對(duì)象諸如是在 緩存器中保存的動(dòng)態(tài)產(chǎn)生的對(duì)象。在一個(gè)實(shí)施例中,無(wú)效命令包括向緩存器表示對(duì)象無(wú)效 或可能“陳舊”的任何類(lèi)型的指示或指令。在某些實(shí)施例中,無(wú)效命令識(shí)別對(duì)象并也識(shí)別對(duì) 象無(wú)效的時(shí)間以及對(duì)象的哪些部分無(wú)效。在一個(gè)實(shí)施例中,緩存管理器232提供由始發(fā)服 務(wù)器106a-106n遠(yuǎn)程調(diào)用的應(yīng)用程序接口(API)。在某些實(shí)施例中,緩存管理器232提供 任何類(lèi)型和形式的協(xié)議用于接收命令并通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)分組答復(fù)命令。在一個(gè)實(shí)施例 中,緩存管理器232或設(shè)備104提供可擴(kuò)展標(biāo)記語(yǔ)言(XML)API接口用于接收并處理無(wú)效命 令。例如,緩存管理器232提供web服務(wù)接口。在某些實(shí)施例中,緩存管理器232通過(guò)向始 發(fā)服務(wù)器106a-106n發(fā)送確認(rèn)、狀態(tài)或其他響應(yīng)而答復(fù)無(wú)效命令。在其他實(shí)施例中,緩存管 理器232不答復(fù)無(wú)效命令。在一個(gè)實(shí)施例中,如果在始發(fā)服務(wù)器106a-106n中運(yùn)行的應(yīng)用 執(zhí)行使得所存儲(chǔ)的對(duì)象“陳舊”的操作(諸如通過(guò)產(chǎn)生新的或更新的對(duì)象版本),則標(biāo)記對(duì)象 為無(wú)效。例如,當(dāng)新聞編輯改變快速變化的新聞報(bào)道而因此想確保報(bào)道的最新版本被提供 給客戶(hù)端時(shí),上述情況會(huì)發(fā)生。無(wú)效命令由產(chǎn)生對(duì)象的應(yīng)用、另一服務(wù)器106a-106n或另一裝置104從始發(fā)服務(wù) 器發(fā)出。在一個(gè)實(shí)施例中,始發(fā)服務(wù)器106a-106n自動(dòng)響應(yīng)始發(fā)服務(wù)器106a-106n上動(dòng)態(tài) 產(chǎn)生的對(duì)象的改變而向緩存器232發(fā)出或傳送該無(wú)效命令。也可以由服務(wù)器106a-106n 和裝置104外側(cè)或外部的管理控制器產(chǎn)生無(wú)效命令。例如,管理控制器可以是在網(wǎng)絡(luò)上 運(yùn)行并與裝置104通信的任何類(lèi)型和形式的程序或應(yīng)用,諸如管理控制臺(tái)。而且,客戶(hù)端 10加-10211能向裝置104或緩存管理器232發(fā)出或傳送無(wú)效命令。例如,如果客戶(hù)端采取 客戶(hù)端102a-102n識(shí)別的措施能引起始發(fā)服務(wù)器上請(qǐng)求對(duì)象的改變,則客戶(hù)端傳送無(wú)效命令??梢酝ㄟ^(guò)向用戶(hù)的緩存器傳送在緩存器上局部執(zhí)行或使用XML API框架遠(yuǎn)程觸發(fā)的命 令而無(wú)效緩存器中存儲(chǔ)的任何對(duì)象。根據(jù)步驟430,響應(yīng)于無(wú)效命令,將已識(shí)別為無(wú)效的緩存器中所存儲(chǔ)的對(duì)象(例如, 之前提供的動(dòng)態(tài)產(chǎn)生的對(duì)象)標(biāo)記為無(wú)效。不會(huì)從緩存器向請(qǐng)求客戶(hù)端提供無(wú)效對(duì)象,而 是從始發(fā)服務(wù)器直接提供該無(wú)效對(duì)象。緩存管理器232能以任何合適或所需的方式標(biāo)記每 個(gè)對(duì)象為無(wú)效。在一個(gè)實(shí)施例中,通過(guò)設(shè)置所存儲(chǔ)對(duì)象的標(biāo)志、特性或?qū)傩远鴺?biāo)記對(duì)象為無(wú) 效。例如,將標(biāo)志設(shè)置為向緩存管理器232表示對(duì)象為無(wú)效的任何值。在另一實(shí)施例中,通 過(guò)將對(duì)象移至用于存儲(chǔ)無(wú)效對(duì)象的區(qū)域或緩存器的一部分而將對(duì)象標(biāo)記為無(wú)效。在其他實(shí) 施例中,通過(guò)數(shù)據(jù)庫(kù)或鏈接列表或任何類(lèi)型和形式的數(shù)據(jù)結(jié)構(gòu),緩存管理器232識(shí)別或跟 蹤所存儲(chǔ)對(duì)象的無(wú)效和/或有效狀態(tài)。在某些實(shí)施例中,緩存管理器232使用一個(gè)或多個(gè) 對(duì)象以識(shí)別或跟蹤緩存器中所存儲(chǔ)的一個(gè)或多個(gè)對(duì)象的有效或無(wú)效。在另一實(shí)施例中,通 過(guò)改變、修改或變更所存儲(chǔ)的對(duì)象,例如刪除或移除不使用的對(duì)象的一部分,或通過(guò)改變或 破壞對(duì)象名稱(chēng)而將對(duì)象標(biāo)記為無(wú)效。在某些實(shí)施例中,裝置104隨后從緩存器刷新標(biāo)記為無(wú)效的那些對(duì)象。在另一實(shí) 施例中,一旦諸如由客戶(hù)端102a-102n請(qǐng)求對(duì)象,則裝置104從緩存器中刷新無(wú)效對(duì)象。在 某些實(shí)施例中,裝置104使用對(duì)象的更新副本或版本重寫(xiě)無(wú)效對(duì)象。在另一實(shí)施例中,裝置 104通過(guò)將另一動(dòng)態(tài)產(chǎn)生的對(duì)象存儲(chǔ)至緩沖存儲(chǔ)器的相同部分而再使用無(wú)效對(duì)象所占用的 存儲(chǔ)器。使用本發(fā)明的緩存管理器232的命令無(wú)效API,與裝置104通信的任何計(jì)算設(shè)備或 用戶(hù)請(qǐng)求無(wú)效緩存器中存儲(chǔ)的對(duì)象,諸如動(dòng)態(tài)產(chǎn)生的對(duì)象。因此,可以實(shí)時(shí)控制緩存器中存 儲(chǔ)的對(duì)象的無(wú)效,而不是使用預(yù)定配置期限或無(wú)效時(shí)間段。因此,使用這些技術(shù),可以從諸 如數(shù)據(jù)庫(kù)或始發(fā)應(yīng)用服務(wù)器之類(lèi)的外部應(yīng)用處理節(jié)點(diǎn)控制緩存對(duì)象的壽命。因此,裝置104 可以配置為與數(shù)據(jù)庫(kù)一起工作使得數(shù)據(jù)庫(kù)的變化自動(dòng)觸發(fā)從數(shù)據(jù)庫(kù)(或應(yīng)用)到裝置104的 無(wú)效命令用于刷新特定對(duì)象或多個(gè)對(duì)象。4.使用無(wú)效命令來(lái)無(wú)效組
在本發(fā)明的另一實(shí)施例中,裝置104同時(shí)識(shí)別并無(wú)效由緩存器所存儲(chǔ)的對(duì)象組。在確 定對(duì)象是否“陳舊”時(shí),在常規(guī)緩沖存儲(chǔ)器中存儲(chǔ)的對(duì)象中的每一個(gè)由緩存器單獨(dú)地且分別 地處理。當(dāng)每個(gè)對(duì)象達(dá)到它的指定期限時(shí)間(一般由服務(wù)器設(shè)置并由緩存器保存在表中) 時(shí),從緩沖存儲(chǔ)器刷新該項(xiàng)。然而,該常規(guī)方法是效率低的并最終不能成功處理在試圖緩存 動(dòng)態(tài)產(chǎn)生的對(duì)象中出現(xiàn)的各種挑戰(zhàn)。圖4B示出了用于維持諸如計(jì)算機(jī)存儲(chǔ)緩存器之類(lèi)的緩存器的本發(fā)明的方法的另 一實(shí)施例,其中裝置104具有產(chǎn)生、存儲(chǔ)并無(wú)效之前已從始發(fā)服務(wù)器106a-106n提供的相關(guān) 對(duì)象組的能力。簡(jiǎn)單概括,在步驟410,在緩存器中存儲(chǔ)諸如從始發(fā)服務(wù)器106a-106n提供 的動(dòng)態(tài)產(chǎn)生的對(duì)象之類(lèi)的對(duì)象。在步驟412,緩存管理器232形成在緩存器中存儲(chǔ)的,之前 提供的對(duì)象組。在一個(gè)實(shí)施例中,所述組與一個(gè)或多個(gè)對(duì)象決定因素相關(guān)聯(lián)或由一個(gè)或多 個(gè)對(duì)象決定因素識(shí)別,正如將在下文更詳細(xì)地描述。在步驟414,緩存管理器232維持對(duì)象 組的記錄。在步驟422,緩存管理器232接收無(wú)效命令以無(wú)效對(duì)象組。在步驟432,緩存管 理器232響應(yīng)于無(wú)效命令而將對(duì)象組標(biāo)記為無(wú)效。步驟410與圖4A相同,其中在裝置104的緩存器中存儲(chǔ)諸如之前已從始發(fā)服務(wù)器106a-106n提供的動(dòng)態(tài)產(chǎn)生的對(duì)象之類(lèi)的對(duì)象。在某些實(shí)施例中,一個(gè)或多個(gè)對(duì)象沒(méi)有被識(shí) 別為可緩存的,或者另外不具有任何緩存器或緩存控制器信息。例如,服務(wù)器106a-106n假 定動(dòng)態(tài)產(chǎn)生的對(duì)象將不能被緩存。根據(jù)步驟412,裝置104從之前從始發(fā)服務(wù)器106a-106n提供的并存儲(chǔ)在緩存器 中的對(duì)象集合中形成一組。任何合適或所需對(duì)象集合可以互相關(guān)聯(lián)以形成一組。例如,為 提供網(wǎng)頁(yè)而產(chǎn)生的或與提供網(wǎng)頁(yè)相關(guān)聯(lián)的任何動(dòng)態(tài)產(chǎn)生的對(duì)象可以形成一組。在某些實(shí)施 例中,對(duì)象可以與多個(gè)組相關(guān)聯(lián)。在其他實(shí)施例中,一個(gè)對(duì)象組可以形成另一個(gè)對(duì)象組的子 集。在某些實(shí)施例中,所形成的對(duì)象組具有從相同服務(wù)器106a-106n提供的對(duì)象,而在其他 實(shí)施例中,所形成的對(duì)象組具有從不同服務(wù)器106a-106n提供的對(duì)象。在其他實(shí)施例中,所 形成的對(duì)象組可以包含來(lái)自客戶(hù)端10加-10211的對(duì)象、來(lái)自服務(wù)器106a-106n的對(duì)象或由 客戶(hù)端102a-102n和服務(wù)器106a-106n 二者產(chǎn)生或提供的對(duì)象。在一個(gè)實(shí)施例中,組中的 一個(gè)對(duì)象是靜態(tài)的而組中的另一個(gè)對(duì)象是動(dòng)態(tài)產(chǎn)生的。在某些情況下,組中的一個(gè)對(duì)象識(shí) 別為不可緩存的而組中的另一個(gè)對(duì)象被識(shí)別為可緩存的。在其他情況下,組中的對(duì)象根據(jù) 服務(wù)器106a-106n提供的功能或應(yīng)用是邏輯相關(guān)的。在另一情況下,組中的對(duì)象當(dāng)與相同 客戶(hù)端102a-102n或相同用戶(hù)相關(guān)聯(lián)時(shí)是相關(guān)的。在步驟414,保持對(duì)象組的記錄。在實(shí)施這里所述的本發(fā)明操作中可以使用用于記 錄和保存對(duì)象組的記錄或者另外關(guān)聯(lián)對(duì)象的各種技術(shù)。在一個(gè)實(shí)施例中,記錄可以直接保 持在例如查詢(xún)表中。在另一實(shí)施例中,記錄可以以散列表的格式表示。在某些實(shí)施例中,緩 存管理器232保持?jǐn)?shù)據(jù)庫(kù)中對(duì)象的關(guān)聯(lián)或存儲(chǔ)器中數(shù)據(jù)結(jié)構(gòu)或?qū)ο?。在其他?shí)施例中,將 組中的每個(gè)對(duì)象的標(biāo)志、特性或?qū)傩灾付ńo或設(shè)置為識(shí)別該組的值,諸如等于識(shí)別或引用 組的名稱(chēng)或識(shí)別符的值,諸如下文更詳細(xì)描述的組的對(duì)象決定因素。在某些實(shí)施例中,在識(shí) 別為占有該組的緩沖存儲(chǔ)器的一部分中配置、放置或定位對(duì)象的組。在步驟422,在裝置104或緩存管理器232上接收無(wú)效命令。根據(jù)圖4B所述的實(shí) 施例,無(wú)效命令識(shí)別一個(gè)或多個(gè)對(duì)象是無(wú)效的,或否則是“陳舊的”。在某些實(shí)施例中,無(wú)效 命令引用、識(shí)別或指定對(duì)象組的名稱(chēng)或識(shí)別符。在一個(gè)實(shí)施例中,無(wú)效命令包括單個(gè)無(wú)效請(qǐng) 求以無(wú)效組中的所有對(duì)象。在另一實(shí)施例中,無(wú)效命令識(shí)別組中的一個(gè)對(duì)象以無(wú)效。在其 他實(shí)施例中,無(wú)效命令包括多個(gè)無(wú)效請(qǐng)求以無(wú)效組中的多個(gè)對(duì)象。根據(jù)步驟432,如果無(wú)效命令引用、識(shí)別或指定組的對(duì)象為無(wú)效、組中每個(gè)對(duì)象為 無(wú)效或組為無(wú)效,則將之前提供的對(duì)象組標(biāo)記為無(wú)效。在某些實(shí)施例中,如果無(wú)效命令將組 中的對(duì)象識(shí)別為無(wú)效,則緩存管理器232將對(duì)象標(biāo)記為無(wú)效。在其他實(shí)施例中,如果無(wú)效命 令將組中的對(duì)象識(shí)別為無(wú)效,則緩存管理器232將組的對(duì)象標(biāo)記為無(wú)效或?qū)⒔M中的每個(gè)對(duì) 象標(biāo)記為無(wú)效。在其他實(shí)施例中,當(dāng)借助一個(gè)或多個(gè)無(wú)效命令而將多個(gè)對(duì)象識(shí)別為無(wú)效時(shí), 緩存管理器232僅僅無(wú)效對(duì)象的組。在另一實(shí)施例中,無(wú)效命令指定組的名稱(chēng)或識(shí)別符,以 及緩存管理器232將組標(biāo)記為無(wú)效、或?qū)⒔M中的每個(gè)對(duì)象標(biāo)記為無(wú)效。在一個(gè)實(shí)施例中,裝置104或緩存管理器232從緩沖存儲(chǔ)器中刷新已被標(biāo)記為無(wú) 效的對(duì)象組。在某些實(shí)施例中,只有當(dāng)組中的每個(gè)對(duì)象被標(biāo)記為無(wú)效時(shí)才從緩存管理器刷 新組中的對(duì)象。在其他實(shí)施例中,如果組的一個(gè)對(duì)象被標(biāo)記為無(wú)效,則刷新整個(gè)組。在另一 實(shí)施例中,一旦由客戶(hù)端102a-102n接收對(duì)對(duì)象組或組的任何對(duì)象的請(qǐng)求,則刷新被標(biāo)記 為無(wú)效的對(duì)象組或組中的任何對(duì)象。在其他實(shí)施例中,一旦從服務(wù)器106a-106n接收到提供組中一個(gè)或多個(gè)新對(duì)象的響應(yīng),則刷新被標(biāo)記為無(wú)效的對(duì)象組或組中的任何對(duì)象。如下是上述實(shí)施例的示例。許多商業(yè)使用客戶(hù)資源管理(“CRM”)應(yīng)用來(lái)跟蹤和評(píng) 價(jià)資源管理的所有方面。經(jīng)常,通過(guò)專(zhuān)用網(wǎng)絡(luò)和包括因特網(wǎng)的公用網(wǎng)絡(luò)實(shí)施并訪(fǎng)問(wèn)CRM應(yīng) 用。因此,這些應(yīng)用(其對(duì)被頻繁訪(fǎng)問(wèn)的大量數(shù)據(jù)提供訪(fǎng)問(wèn))受益于緩存由該應(yīng)用產(chǎn)生的數(shù) 據(jù)。例如,通常產(chǎn)生銷(xiāo)售報(bào)告并將之提供至遠(yuǎn)程連接的用戶(hù)。由相關(guān)應(yīng)用通過(guò)編輯來(lái)自銷(xiāo) 售信息的數(shù)據(jù)而產(chǎn)生這些銷(xiāo)售報(bào)告,所述銷(xiāo)售信息被提交到該應(yīng)用服務(wù)器和/或他們潛在 的數(shù)據(jù)庫(kù)。當(dāng)許多用戶(hù)請(qǐng)求相同文檔(即,特定銷(xiāo)售報(bào)告)時(shí),在沒(méi)有緩存的情況下,應(yīng)用服 務(wù)器必須為每個(gè)請(qǐng)求重新產(chǎn)生對(duì)象,然而,如果在緩存器存儲(chǔ)該對(duì)象,則保存應(yīng)用和數(shù)據(jù)庫(kù) 處理,包括可能有價(jià)值的帶寬,如同緩存器鄰近請(qǐng)求的客戶(hù)端。緩存該對(duì)象出現(xiàn)各種挑戰(zhàn),因?yàn)槊看萎?dāng)新的銷(xiāo)售被提交到在始發(fā)服務(wù)器(或它潛 在的數(shù)據(jù)庫(kù))上運(yùn)行的應(yīng)用時(shí),都需要更新銷(xiāo)售報(bào)告中的信息。因此,必須無(wú)效在支持這些 應(yīng)用服務(wù)器的緩存器中存儲(chǔ)的所有銷(xiāo)售報(bào)告并從緩沖存儲(chǔ)器刷新內(nèi)容。然而,緩存的常規(guī) 方法沒(méi)有辦法正確地確定潛在的數(shù)據(jù)庫(kù)或應(yīng)用的改變何時(shí)發(fā)生并因此不能合理評(píng)價(jià)動(dòng)態(tài) 內(nèi)容的“新鮮性”。每當(dāng)數(shù)據(jù)庫(kù)或應(yīng)用或始發(fā)服務(wù)器中改變發(fā)生時(shí),緩存器必須能夠識(shí)別已 發(fā)生改變,以及作為改變的結(jié)果應(yīng)該無(wú)效哪個(gè)對(duì)象組。如上所述,產(chǎn)生無(wú)效命令可以滿(mǎn)足該 需求,該無(wú)效命令包含鏈接到之前提供的對(duì)象組的對(duì)象確定因素??梢栽趩蝹€(gè)體系層上形成多個(gè)相關(guān)對(duì)象組?;蛘?,形成子對(duì)象組以產(chǎn)生多個(gè)體系 層。在一個(gè)實(shí)施例中,由用戶(hù)預(yù)指定對(duì)象組或?qū)ο笞咏M。在另一實(shí)施例中,用戶(hù)能建立規(guī)則, 通過(guò)該規(guī)則裝置104自動(dòng)形成相關(guān)對(duì)象組并使之與對(duì)象決定因素相關(guān)聯(lián)。5.識(shí)別客戶(hù)端請(qǐng)求或響應(yīng)中的對(duì)象決定因素
本發(fā)明實(shí)施例也能通過(guò)產(chǎn)生對(duì)象組并實(shí)施參數(shù)化無(wú)效而解決能夠識(shí)別在始發(fā)應(yīng)用服 務(wù)器106a-106n (和/或潛在數(shù)據(jù)庫(kù))上受狀態(tài)改變影響的所有對(duì)象。在該實(shí)施例中,可以 通過(guò)例如來(lái)自客戶(hù)端的截取的HTTP請(qǐng)求而無(wú)效任何對(duì)象或預(yù)定對(duì)象組,以至緩存器解析 以便識(shí)別對(duì)象決定因素。術(shù)語(yǔ)“對(duì)象決定因素”指唯一地或按其他方式引用、識(shí)別或指定一 個(gè)對(duì)象或?qū)ο蠹系娜魏涡畔ⅰ?shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、參數(shù)、值、數(shù)據(jù)模式、請(qǐng)求、答復(fù)或命令。在 某些實(shí)施例中,對(duì)象決定因素是在通信中的字節(jié)或字符的模式,其與一個(gè)對(duì)象關(guān)聯(lián)或用于 唯一地識(shí)別該通信與該對(duì)象關(guān)聯(lián)或該通信引用該對(duì)象。在一個(gè)實(shí)施例中,對(duì)象決定因素表 示在始發(fā)服務(wù)器中對(duì)與對(duì)象決定因素相關(guān)聯(lián)的緩存管理器232中所存儲(chǔ)的之前提供的對(duì) 象組是否已經(jīng)或即將發(fā)生改變。在某些實(shí)施例中,對(duì)象組的對(duì)象是相關(guān)的,因?yàn)樗鼈兣c至少 一個(gè)對(duì)象決定因素相關(guān)聯(lián)。下文將更詳細(xì)地描述對(duì)象決定因素的非限制性示例和它們用途 的進(jìn)一步解釋。在當(dāng)前實(shí)施例的某些實(shí)施例中,對(duì)象決定因素是在客戶(hù)端請(qǐng)求或響應(yīng)中包括或嵌 入的特定預(yù)定參數(shù)或數(shù)據(jù)結(jié)構(gòu)。在其他實(shí)施例中,客戶(hù)端10h-102n、服務(wù)器106a-106n或 裝置104在通信中嵌入一個(gè)或多個(gè)對(duì)象決定因素,諸如表示對(duì)象決定因素的預(yù)定字符串或 字符集。對(duì)象決定因素表示該請(qǐng)求是否具有使得在始發(fā)服務(wù)器106a-106n或與其鏈接的數(shù) 據(jù)庫(kù)中所存儲(chǔ)的對(duì)象狀態(tài)改變的效果。在一個(gè)實(shí)施例中,請(qǐng)求中對(duì)象決定因素的存在表示 對(duì)象已發(fā)生或即將發(fā)生改變。在另一實(shí)施例中,對(duì)象決定因素的句法(syntax)、結(jié)構(gòu)、參數(shù) 或值表示對(duì)象已發(fā)生或即將發(fā)生改變。在一個(gè)實(shí)施例中,緩存器從客戶(hù)端102a-102n接收 對(duì)象請(qǐng)求。該請(qǐng)求包括緩存器識(shí)別將改變始發(fā)服務(wù)器或應(yīng)用服務(wù)器的狀態(tài)的特定參數(shù)或值(對(duì)象決定因素),結(jié)果,其將由該始發(fā)服務(wù)器或應(yīng)用服務(wù)器106a-106n之前產(chǎn)生的由緩存管 理器232存儲(chǔ)的特定相關(guān)對(duì)象變的“陳舊”。取決于用戶(hù)設(shè)置的無(wú)效策略,參數(shù)(對(duì)象決定因 素)需要無(wú)效由始發(fā)服務(wù)器之前提供并已由緩存器存儲(chǔ)的一個(gè)或多個(gè)對(duì)象或?qū)ο蠼M。緩存 器被配置以識(shí)別受該狀態(tài)改變影響的相關(guān)對(duì)象(即,鏈接到對(duì)象決定因素的那些對(duì)象或?qū)?象組),并借助用于將每個(gè)對(duì)象標(biāo)記為無(wú)效和/或從緩沖存儲(chǔ)器刷新該對(duì)象的方法而無(wú)效這 些對(duì)象。上述技術(shù)在圖4C中描述。如這里所述的其他實(shí)施例,步驟410包括在緩存器中存 儲(chǔ)諸如之前從始發(fā)服務(wù)器提供的動(dòng)態(tài)產(chǎn)生的對(duì)象之類(lèi)的對(duì)象。對(duì)象可以由在始發(fā)服務(wù)器 106a-106n上運(yùn)行的應(yīng)用產(chǎn)生,或例如可以從始發(fā)服務(wù)器106a-106n訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)提取。在 某些實(shí)施例中,動(dòng)態(tài)產(chǎn)生的對(duì)象被識(shí)別為不可緩存的或另外不被識(shí)別為可緩存的。根據(jù)步驟421,緩存器截取或另外接收客戶(hù)端和服務(wù)器之間的通信,諸如來(lái)自客戶(hù) 端的請(qǐng)求或來(lái)自服務(wù)器的響應(yīng)等。在某些實(shí)施例中,請(qǐng)求針對(duì)特定對(duì)象,該對(duì)象之前已提供 并存儲(chǔ)在緩存器中。在另一實(shí)施例中,通信包括來(lái)自具有所請(qǐng)求對(duì)象的服務(wù)器的響應(yīng)。在 一個(gè)實(shí)施例中,根據(jù)建立的緩存協(xié)議和通信標(biāo)準(zhǔn)發(fā)生該接收或截取。雖然緩存管理器232 或裝置104—般被描述為接收請(qǐng)求、響應(yīng)或通信,在接收該請(qǐng)求、響應(yīng)或通信中,即使沒(méi)有 直接或明顯地傳送到緩存器,緩存器232或裝置104也能由任何合適裝置和/或機(jī)制截取 或獲取該請(qǐng)求、響應(yīng)或通信。在步驟423,在截取的通信中識(shí)別對(duì)象決定因素。緩存管理器232提取、解釋、解 析、訪(fǎng)問(wèn)、讀取或另外處理截取的通信以確定或識(shí)別通信中的一個(gè)或多個(gè)對(duì)象決定因素。通 信的任何參數(shù)、值、句法、數(shù)據(jù)、結(jié)構(gòu)或一個(gè)或多個(gè)字符集都可以用于識(shí)別對(duì)象決定因素。在 一個(gè)實(shí)施例中,緩存管理器232識(shí)別從客戶(hù)端102a-102n到服務(wù)器106a-106n的請(qǐng)求中對(duì) 象的名稱(chēng)或識(shí)別符,其中,客戶(hù)端請(qǐng)求對(duì)象。在另一實(shí)施例中,緩存管理器232識(shí)別客戶(hù)端 102a-102n的請(qǐng)求中或來(lái)自服務(wù)器106a-106n的響應(yīng)中第一個(gè)對(duì)象的名稱(chēng)或識(shí)別符,其表 示對(duì)于緩存器中所存儲(chǔ)的第二個(gè)對(duì)象已經(jīng)發(fā)生或即將發(fā)生改變。在其他實(shí)施例中,緩存管 理器232確定請(qǐng)求中任何字符模式是否匹配與緩存器中對(duì)象或?qū)ο蠼M相關(guān)聯(lián)的任何對(duì)象 決定因素。在某些實(shí)施例中,為沒(méi)有當(dāng)前存儲(chǔ)在緩存器中的對(duì)象確定對(duì)象決定因素。在其 他實(shí)施例中,可以為當(dāng)前標(biāo)記為無(wú)效的對(duì)象確定對(duì)象決定因素。在其他實(shí)施例中,所請(qǐng)求對(duì) 象的對(duì)象決定因素被確定與緩存對(duì)象的對(duì)象決定因素相關(guān)聯(lián)。在另一實(shí)施例中,一旦第一 引用、請(qǐng)求或響應(yīng)通信中對(duì)象,緩存管理器232將識(shí)別的對(duì)象決定因素確認(rèn)為該對(duì)象的對(duì) 象決定因素。通過(guò)接收或解析諸如客戶(hù)端請(qǐng)求或服務(wù)器響應(yīng)之類(lèi)的通信以識(shí)別對(duì)象決定因素, 緩存管理器232或裝置104能有效地確定是否將與所識(shí)別的對(duì)象決定因素相關(guān)的緩存對(duì)象 標(biāo)記為無(wú)效。因此,根據(jù)步驟425,確定對(duì)象決定因素是否表示緩存對(duì)象發(fā)生改變。在某些 實(shí)施例中,所識(shí)別的對(duì)象決定因素是沒(méi)有改變、修改或產(chǎn)生對(duì)象的部分通信。在其他實(shí)施例 中,所識(shí)別的對(duì)象決定因素是表示對(duì)于與對(duì)象決定因素相關(guān)聯(lián)的對(duì)象已經(jīng)或即將發(fā)生改變 的部分通信。例如,通信可以是對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的得到請(qǐng)求或?qū)⒏淖冇糜谝粋€(gè)或多個(gè)動(dòng) 態(tài)產(chǎn)生對(duì)象的數(shù)據(jù)的提交請(qǐng)求。在某些實(shí)施例中,通信中對(duì)象決定因素的存在表示在一個(gè) 或多個(gè)對(duì)象上已經(jīng)或即將發(fā)生改變。在另一實(shí)施例中,通信中命令、指示或指令的類(lèi)型或名 稱(chēng)以及對(duì)象決定因素表示在一個(gè)或多個(gè)對(duì)象上已經(jīng)或即將發(fā)生改變。在另一實(shí)施例中,命令、指示或指令的參數(shù)或變量的存在、值或設(shè)置表示在與對(duì)象決定因素相關(guān)聯(lián)的一個(gè)或多 個(gè)對(duì)象上已經(jīng)或即將發(fā)生改變。在其他實(shí)施例中,緩存管理器232對(duì)截取的通信或?qū)ο鬀Q定因素執(zhí)行散列函數(shù)、 算法或操作以確定對(duì)象中是否已經(jīng)發(fā)生改變。在某些實(shí)施例中,散列值與該對(duì)象的之前存 儲(chǔ)的散列值比較,并且如果不同那么緩存管理器232識(shí)別對(duì)象已改變。在另一實(shí)施例中,對(duì) 象的散列值包括在通信或?qū)ο鬀Q定因素中。在一個(gè)實(shí)施例中,通信表示對(duì)象已通過(guò)參數(shù)的 值或設(shè)置而改變,諸如使用布爾標(biāo)記。在其他實(shí)施例中,下文更詳細(xì)描述的實(shí)體標(biāo)簽控制和 有效機(jī)制能用于識(shí)別對(duì)象并確定對(duì)象是否改變。如果表示已改變,那么在步驟431與對(duì)象決定因素相關(guān)聯(lián)或由對(duì)象決定因素識(shí)別 的對(duì)象被標(biāo)記為無(wú)效。在某些實(shí)施例中,由截取的通信所請(qǐng)求的對(duì)象根據(jù)步驟431被標(biāo)記 為無(wú)效,并根據(jù)步驟440從始發(fā)服務(wù)器106a-106n中被檢索。另外,在其他實(shí)施例中,根據(jù) 步驟450從緩存器中檢索請(qǐng)求的對(duì)象。在一個(gè)實(shí)施例中,從緩存器中刷新被標(biāo)記為無(wú)效的 任何對(duì)象。6.根據(jù)對(duì)象決定因素?zé)o效對(duì)象組
本發(fā)明的上述實(shí)施例描述了根據(jù)客戶(hù)端請(qǐng)求中對(duì)象決定因素的識(shí)別而無(wú)效緩存管理 器232中之前提供的對(duì)象的情況。在另一實(shí)施例中,該一般概念也用于識(shí)別并無(wú)效與一個(gè) 或多個(gè)對(duì)象決定因素相關(guān)聯(lián)的對(duì)象組。該實(shí)施例在圖4D中示出。圖4D中所述方法以與圖4C的方法相同的形式開(kāi)始。步驟410包括在緩存器中存 儲(chǔ)諸如之前從始發(fā)服務(wù)器提供的動(dòng)態(tài)產(chǎn)生的對(duì)象之類(lèi)的對(duì)象。在某些實(shí)施例中,一個(gè)或多 個(gè)對(duì)象沒(méi)有被識(shí)別為可緩存的。根據(jù)步驟412并類(lèi)似于圖4B,之前提供的對(duì)象形成組。在 一個(gè)實(shí)施例中并根據(jù)本發(fā)明的對(duì)象決定因素技術(shù),對(duì)象組與至少一個(gè)對(duì)象決定因素相關(guān)聯(lián) 并由至少一個(gè)對(duì)象決定因素識(shí)別。如下文更詳細(xì)地描述,在某些實(shí)施例中,組與對(duì)象決定因 素的關(guān)聯(lián)性取決于用戶(hù)緩存策略的特性和細(xì)節(jié),諸如由策略引擎236定義、控制或使用的 策略。在其他實(shí)施例中,組的一個(gè)或多個(gè)對(duì)象決定因素包括組中對(duì)象的一個(gè)或多個(gè)對(duì)象決 定因素。在另一實(shí)施例中,組的對(duì)象決定因素包括組中對(duì)象的對(duì)象決定因素的組合。根據(jù)步驟414,如果合適時(shí)維持組的記錄,以及其相關(guān)的對(duì)象決定因素。該步驟類(lèi) 似于圖4B所示的步驟414。在一個(gè)實(shí)施例中,在查詢(xún)表中維持組的記錄和/或任何對(duì)象決 定因素。在其他實(shí)施例中,以散列表的格式維持組的記錄和/或任何對(duì)象決定因素。散列 表被設(shè)計(jì)以有效地存儲(chǔ)在它們的字母和數(shù)字序列中有寬闊間隙的非連續(xù)鍵。在另一實(shí)施例 中,在散列表的頂端建立索引系統(tǒng)。在某些實(shí)施例中,緩存管理器232維持作為一組的對(duì)象 與數(shù)據(jù)庫(kù)中一個(gè)或多個(gè)對(duì)象決定因素的關(guān)聯(lián)性、或存儲(chǔ)器中的數(shù)據(jù)結(jié)構(gòu)或?qū)ο蟆T谄渌麑?shí) 施例中,將組中的每個(gè)對(duì)象的標(biāo)志、特性或?qū)傩灾付ńo或設(shè)置為識(shí)別該組的值,諸如等于識(shí) 別或引用組的名稱(chēng)或識(shí)別符,或組的對(duì)象決定因素的值。在某些實(shí)施例中,在識(shí)別為占有該 組的緩沖存儲(chǔ)器的一部分中配置、放置或定位對(duì)象的組。在另一實(shí)施例中,一個(gè)或多個(gè)對(duì)象 決定因素被存儲(chǔ)以與對(duì)象組相關(guān)聯(lián)。步驟421和423類(lèi)似于圖4C中所示的步驟421和423。根據(jù)步驟421,緩存管理 器232或裝置104截取或另外接收客戶(hù)端102a-102n和服務(wù)器106a-106n之間的通信,諸 如來(lái)自客戶(hù)端的對(duì)于之前提供的并在緩存器中存儲(chǔ)的對(duì)象的請(qǐng)求。在一個(gè)實(shí)施例中,緩存 管理器232截取從客戶(hù)端102a-102n到服務(wù)器106a-106n的請(qǐng)求。在某些實(shí)施例中,請(qǐng)求針對(duì)緩存器中存儲(chǔ)的對(duì)象。在其他實(shí)施例中,該請(qǐng)求是到服務(wù)器106a-106n的指令、命令或 指示,其使得緩存器中存儲(chǔ)的對(duì)象發(fā)生改變,諸如使得對(duì)象被動(dòng)態(tài)產(chǎn)生。在另一實(shí)施例中, 緩存管理器232截取從服務(wù)器106a-106n到客戶(hù)端10加-10211的響應(yīng),該響應(yīng)包括或識(shí)別 緩存器中所存儲(chǔ)的對(duì)象。在步驟423,在截取的通信中識(shí)別對(duì)象決定因素。如上所述,對(duì)象決定因素表示在 始發(fā)服務(wù)器106a-106n上請(qǐng)求對(duì)象中是否已經(jīng)或即將發(fā)生改變。然而,在圖4D的實(shí)施例中, 對(duì)象決定因素與對(duì)象組相關(guān)聯(lián)。這樣能高效地?zé)o效緩存器中存儲(chǔ)的受特定對(duì)象決定因素影 響的所有對(duì)象。在某些實(shí)施例中,識(shí)別組中的對(duì)象的對(duì)象決定因素。在其他實(shí)施例中,識(shí)別 對(duì)象決定因素,例如對(duì)于對(duì)象組的組對(duì)象決定因素。在另一實(shí)施例中,識(shí)別組中一個(gè)或多個(gè) 對(duì)象的對(duì)象決定因素的組合。因此,根據(jù)步驟427,確定對(duì)象決定因素是否表示之前提供的對(duì)象組中的改變。在 某些實(shí)施例中,截取的通信中組的對(duì)象決定因素的存在表示對(duì)于組中一個(gè)或多個(gè)對(duì)象或所 有對(duì)象已經(jīng)或即將發(fā)生改變。在其他實(shí)施例中,截取的通信中的命令、指示或指令的名稱(chēng)和 類(lèi)型表示該改變。在另一實(shí)施例中,通信中任何參數(shù)或變量的存在、值或設(shè)置也表示該改 變。如果在步驟427,對(duì)象決定因素表示組中的改變,那么根據(jù)步驟435將緩存器中之 前提供的對(duì)象組標(biāo)記為無(wú)效。在某些實(shí)施例中,根據(jù)步驟440從始發(fā)服務(wù)器106a-106n請(qǐng) 求或檢索組的一個(gè)或多個(gè)對(duì)象或所有對(duì)象。如果在步驟427,對(duì)象決定因素并不表示組中的 改變,則在某些實(shí)施例中,根據(jù)步驟450從緩存管理器232檢索請(qǐng)求作為部分的截取通信并 之前提供以及存儲(chǔ)在緩存器中的任何對(duì)象。在一個(gè)實(shí)施例中,由緩存管理器232從緩存器 中刷新被標(biāo)記為無(wú)效的任何對(duì)象或?qū)ο蠼M。7.組的指定
緩存器管理員會(huì)具體地指定將哪些對(duì)象包括在特定組中。無(wú)論何時(shí)在緩存器中存儲(chǔ)對(duì) 象,管理員可以根據(jù)配置使得對(duì)象成為一個(gè)所配置的或固有的組中的成員。所配置的組可 以根據(jù)管理員之前確立的配置或可替換地根據(jù)應(yīng)用行為和涉及對(duì)象無(wú)效的其他數(shù)據(jù)。如果 對(duì)象的配置組是動(dòng)態(tài)的,則對(duì)象也可以是固有組的一部分。由重要的無(wú)效參數(shù)的值分組固 有組中的對(duì)象。通過(guò)允許非常靈活的對(duì)象分組,緩存器可以使得無(wú)效具有靈活性和協(xié)調(diào)性,這是 高效地緩存動(dòng)態(tài)產(chǎn)生的內(nèi)容所必需的。緩存器可以同時(shí)無(wú)效非常具體的對(duì)象組,因此使得 緩存器更加響應(yīng)無(wú)效動(dòng)態(tài)產(chǎn)生的內(nèi)容的頻繁需要。當(dāng)緩存器將對(duì)象指定給一個(gè)組時(shí),該組 確定與該對(duì)象相關(guān)的若干事件,包括無(wú)效參數(shù)和命中決定因素,以便使其與一個(gè)或多個(gè)對(duì) 象決定因素相關(guān)聯(lián)。在客戶(hù)資源管理(“CRM”)示例中,緩存器管理員預(yù)定每個(gè)分組。例如,管理員配置 緩存器以通過(guò)名稱(chēng)分組每個(gè)銷(xiāo)售部門(mén)。因此,管理員可以指定汽車(chē)部、機(jī)車(chē)部、等,并且每次 在進(jìn)入緩存器的請(qǐng)求中識(shí)別對(duì)象決定因素時(shí),緩存器可以借助對(duì)象決定因素?zé)o效鏈接到合 適部門(mén)的指定組中所存儲(chǔ)的所有對(duì)象。8.基于規(guī)則的分組
可替換地,緩存器管理員能建立一些規(guī)則,這些規(guī)則允許緩存器裝置確定在運(yùn)行中哪 些對(duì)象包括在特定一個(gè)組或多個(gè)組中。該基于規(guī)則的分組根據(jù)所建立的規(guī)則依賴(lài)于組的指定,所述建立的規(guī)則將對(duì)象鏈接到重要對(duì)象決定因素,緩存器利用該重要對(duì)象決定因素產(chǎn) 生相關(guān)組。該方法的示例涉及利用緩存器識(shí)別將哪些對(duì)象放入每個(gè)組所使用的規(guī)則來(lái)配置 緩存器。再次參見(jiàn)CRM示例,規(guī)則表明緩存器應(yīng)該將應(yīng)用上設(shè)置的銷(xiāo)售部門(mén)的每個(gè)子部門(mén) 識(shí)別為它本身的分組。這樣,可以產(chǎn)生分組,而不需要緩存器管理員必須具體地識(shí)別每個(gè)分 組而是允許緩存器根據(jù)相關(guān)規(guī)則確定。該技術(shù)產(chǎn)生了一種更靈活并通常更少工作量的加強(qiáng) 方式以指定分組。緩存器管理員可以配置一個(gè)規(guī)則,該規(guī)則表明銷(xiāo)售的每個(gè)子部門(mén)(即,銷(xiāo) 售\汽車(chē)、銷(xiāo)售\摩托車(chē)等)應(yīng)該由緩存器產(chǎn)生新的分組。當(dāng)由應(yīng)用借助緩存器處理并返回 來(lái)自汽車(chē)銷(xiāo)售部的請(qǐng)求時(shí),緩存器可以識(shí)別銷(xiāo)售的每個(gè)子分組并根據(jù)預(yù)先配置的規(guī)則自動(dòng) 地為其產(chǎn)生分組。每當(dāng)緩存器發(fā)現(xiàn)對(duì)于類(lèi)型報(bào)告/銷(xiāo)售/汽車(chē)或報(bào)告/銷(xiāo)售/摩托車(chē)等的對(duì)象的新 請(qǐng)求時(shí),由該緩存器實(shí)施規(guī)則。當(dāng)摩托車(chē)銷(xiāo)售部請(qǐng)求表示它是銷(xiāo)售部的子分組,然后是自行 車(chē)銷(xiāo)售部等時(shí)重復(fù)該處理,因?yàn)榫彺嫫髯R(shí)別這些子分組并為它們中的每個(gè)確立對(duì)象分組。 當(dāng)已知無(wú)效請(qǐng)求到達(dá)鏈接到這些分組之一的緩存器時(shí),或如果在客戶(hù)端請(qǐng)求中識(shí)別相關(guān)對(duì) 象決定因素(例如,在解析請(qǐng)求中發(fā)現(xiàn)銷(xiāo)售報(bào)告提交到摩托車(chē)銷(xiāo)售部銷(xiāo)售/摩托車(chē)),則緩存 器知道無(wú)效摩托車(chē)銷(xiāo)售部分組中的所有緩存對(duì)象。這樣,當(dāng)緩存器識(shí)別到應(yīng)用提供的數(shù)據(jù)已經(jīng)或即將發(fā)生改變(或者因?yàn)榫彺嫫髯R(shí) 別到緩存器所接收的請(qǐng)求內(nèi)容將觸發(fā)應(yīng)用的改變,或者因?yàn)榘l(fā)生某些外部改變)時(shí),上述技 術(shù)能通過(guò)分組處理使得緩存器快速簡(jiǎn)單地識(shí)別哪些對(duì)象需要無(wú)效。這樣,緩存器能夠無(wú)效 因?yàn)閼?yīng)用或數(shù)據(jù)庫(kù)狀態(tài)的改變而不再“新鮮”的大量動(dòng)態(tài)產(chǎn)生的對(duì)象。也可以使用智能統(tǒng)計(jì)引擎增強(qiáng)緩存器成功保存并從其緩沖存儲(chǔ)器提供動(dòng)態(tài)產(chǎn)生 的內(nèi)容的能力,所述智能統(tǒng)計(jì)引擎檢查請(qǐng)求和響應(yīng)業(yè)務(wù)的模式以便在一個(gè)時(shí)間段上確定能 提供最大緩存利益的對(duì)象集。該引擎可以或者集成在緩存裝置本身中,或者作為試探法在 單獨(dú)計(jì)算機(jī)中運(yùn)行以選擇某些對(duì)象子集用于進(jìn)一步調(diào)查以確定動(dòng)態(tài)緩存的合適性。9.進(jìn)一步使用對(duì)象決定因素
如上所述,對(duì)象決定因素可以是任何數(shù)據(jù)結(jié)構(gòu),其表示在始發(fā)服務(wù)器中對(duì)與對(duì)象決定 因素相關(guān)聯(lián)的緩存器中所存儲(chǔ)的之前提供的對(duì)象組是否已經(jīng)或即將發(fā)生改變??梢愿鶕?jù) 請(qǐng)求中嵌入的預(yù)定字符串值設(shè)置對(duì)象決定因素。例如當(dāng)進(jìn)來(lái)的請(qǐng)求具有特定USERID時(shí), USERID可以鏈接到緩沖存儲(chǔ)器中的對(duì)象組,每次提交或其他請(qǐng)求來(lái)自該特定USERID時(shí),所 述對(duì)象組應(yīng)該被無(wú)效。對(duì)象決定因素的可能候選也可以包括使用初始提供對(duì)象的服務(wù)器的 服務(wù)識(shí)別符。服務(wù)識(shí)別符包含在HTTP請(qǐng)求中存在的服務(wù)IP地址、TCP端口和服務(wù)識(shí)別符。存在在請(qǐng)求中的另一可能對(duì)象決定因素是請(qǐng)求統(tǒng)一資源定位器(“URL”)。對(duì)于緩 存靜態(tài)對(duì)象的情形,請(qǐng)求URL—般足以唯一地識(shí)別對(duì)象。然而,對(duì)于請(qǐng)求動(dòng)態(tài)產(chǎn)生的內(nèi)容, URL中存在的信息不足以識(shí)別緩存的對(duì)象。因此,緩存器必須檢查請(qǐng)求中的其他信息以尋找 包括在HTTP報(bào)頭、cookie報(bào)頭或其他自定義HTTP報(bào)頭中的對(duì)象決定因素。緩存器可以另 外在客戶(hù)端請(qǐng)求中的多個(gè)其他位置中尋找相關(guān)參數(shù)信息的子集,包括但不限制于在URL 查詢(xún)字符串中、在POST主體中、在cookie報(bào)頭中或在任何其他請(qǐng)求或響應(yīng)報(bào)頭中。在解析用于對(duì)象決定因素的URL中存在的問(wèn)題是URL和其他報(bào)頭除了包含與緩存 器決定相關(guān)的信息之外還包含許多信息。因此,緩存器必須能夠通過(guò)許多信息進(jìn)行解析以便能夠識(shí)別合適的對(duì)象決定因素。此外,報(bào)頭中的數(shù)據(jù)經(jīng)常是任意排序的,這意味著在HTTP 報(bào)頭中放置該數(shù)據(jù)沒(méi)有標(biāo)準(zhǔn)方式并因此簡(jiǎn)單的比較經(jīng)常不足以在該字符串中定位相關(guān)對(duì) 象決定因素。如果不存在預(yù)配置策略以將特定對(duì)象決定因素與緩沖存儲(chǔ)器中存儲(chǔ)的相關(guān)對(duì)象 或?qū)ο蠼M相匹配,則在另一實(shí)施例中緩存器仍能進(jìn)行該確定。例如,緩存器能檢查并解析請(qǐng) 求的各種方面以尋找在該請(qǐng)求中是否發(fā)現(xiàn)任何其他對(duì)象決定因素和其是否用于將該請(qǐng)求 鏈接到應(yīng)該被無(wú)效的緩沖存儲(chǔ)器中所保存的特定對(duì)象。可替換地,根據(jù)特定預(yù)定試探法,也 可以使得緩存器檢查對(duì)緩存器所確定的特定對(duì)象決定因素的請(qǐng)求有目的地鏈接到特定對(duì) 象或?qū)ο蠼M。例如,當(dāng)對(duì)于更新與特定USERID相關(guān)的日歷的請(qǐng)求進(jìn)入緩存器時(shí),本發(fā)明的 實(shí)施例可以被設(shè)置以識(shí)別需要無(wú)效所有緩存的對(duì)象,該所有緩存的對(duì)象的USERID等于更 新日歷的請(qǐng)求的USERID并且該所有緩存的對(duì)象包含任何一個(gè)特定日期的用戶(hù)日歷。緩存器也假設(shè)對(duì)象決定因素以非指定的順序存在于URL主干(URL stem)、URL中 存在的查詢(xún)、POST主體中或cookie報(bào)頭中作為名稱(chēng)=值或類(lèi)似對(duì)的組。在一個(gè)實(shí)施例中, 假設(shè)查詢(xún)被格式化為名稱(chēng)=值對(duì)的列表。因此,用戶(hù)可以配置哪些參數(shù)名是重要的。使 用首次它的訪(fǎng)問(wèn)URL鎖住每個(gè)緩存的對(duì)象。URL看上去象/site/application/special/ file. ext pl=vl&p2=v2&p3=v3。/site/application/special/file. ext 是 URL 主 干。 pl=vl&p2=v2&p3=v3是URL查詢(xún)并包含參數(shù)值對(duì)。這些參數(shù)值對(duì)也存在于POST主體或 Cookie報(bào)頭中。在一個(gè)實(shí)施例中,用戶(hù)或管理員確立Pl和p2將是無(wú)效參數(shù)或?qū)ο鬀Q定因素。此后 緩存器將自動(dòng)地分組具有匹配Pl和p2值的對(duì)象。實(shí)施該分組的一種方式是將Pl和p2映 射到數(shù)據(jù)庫(kù)表中的主關(guān)鍵字,即映射到表中的單獨(dú)可識(shí)別對(duì)象,緩存器知道如何引用這些 對(duì)象以便確定無(wú)效狀態(tài)。為了更新那些數(shù)據(jù)庫(kù)表中的某些內(nèi)容,為了反映緩存器中保存的 數(shù)據(jù)不再有效的事實(shí),緩存器將指定Pl和P2的新值并當(dāng)下次緩存器提供該內(nèi)容時(shí)識(shí)別該 新值時(shí),它將知道無(wú)效其存儲(chǔ)器中保存的鏈接對(duì)象。當(dāng)緩存器遇到該請(qǐng)求時(shí),一旦看見(jiàn)更新 請(qǐng)求它就知道必須無(wú)效具有匹配Pl和P2值的組-因?yàn)榫彺嫫髦榔鹪粗械臄?shù)據(jù)將改變, 因此影響與那些Pl和P2對(duì)象決定因素相關(guān)的所有對(duì)象。為了解決其中管理員沒(méi)有將請(qǐng)求中嵌入的特定參數(shù)預(yù)配置為對(duì)象決定因素的更 復(fù)雜情況,緩存器可以利用用戶(hù)配置策略以從請(qǐng)求中提取相關(guān)對(duì)象決定因素用于幫助識(shí)別 何時(shí)無(wú)效對(duì)象的分組。然后決定因素字符串用于定位緩存器中保存的對(duì)象組并無(wú)效該對(duì) 象。這些對(duì)象決定因素可以用于配置緩存器以產(chǎn)生重要參數(shù)值的列表。如果引入的寫(xiě)請(qǐng)求 具有對(duì)于重要參數(shù)的匹配值,那么應(yīng)該無(wú)效約束這些參數(shù)名的對(duì)象??商鎿Q地,用戶(hù)可以指 定策略框架操作,該策略框架操作從請(qǐng)求中提取對(duì)象決定因素字符串。從寫(xiě)請(qǐng)求中提取對(duì) 象決定因素字符串并無(wú)效具有匹配決定因素字符串的所有對(duì)象。在該可選方案中,請(qǐng)求到 達(dá)緩存器,緩存器確定請(qǐng)求字符串是否匹配無(wú)效策略。無(wú)效策略指定其中應(yīng)該無(wú)效內(nèi)容組 的對(duì)象。可替換地,緩存器可以使用在客戶(hù)請(qǐng)求中存在的任何其他用戶(hù)信息。如上所述,認(rèn) 證和授權(quán)集成允許緩存器訪(fǎng)問(wèn)用戶(hù)信息。如果緩存對(duì)象的相關(guān)分組被鏈接到用戶(hù)或用戶(hù) 組,則USERID或GR0UPID可以是決定因素之一。雖然用戶(hù)信息經(jīng)常是重要的對(duì)象決定因素, 但是用戶(hù)信息經(jīng)常不出現(xiàn)在HTTP請(qǐng)求中。在本發(fā)明的另一實(shí)施例中,本發(fā)明的動(dòng)態(tài)緩存方面可以與本申請(qǐng)人的另一個(gè)專(zhuān)利申請(qǐng)相結(jié)合。為了實(shí)現(xiàn)該目的,參考申請(qǐng)?zhí)枮?1/169,002 的本申請(qǐng)人的上述待決專(zhuān)利申請(qǐng)(“the Integrated Caching patent (集成緩存專(zhuān)利)”)。 該申請(qǐng)描述了一種將緩存器和多種其他網(wǎng)絡(luò)組件相集成的系統(tǒng)和方法,該多種其他網(wǎng)絡(luò)組 件包括執(zhí)行特定種類(lèi)的驗(yàn)證、訪(fǎng)問(wèn)控制和查帳(A A A)基礎(chǔ)結(jié)構(gòu)的能力。根據(jù)由應(yīng)用產(chǎn)生 的數(shù)據(jù)的安全級(jí)別被應(yīng)用到而是從緩存器提供的數(shù)據(jù)。該技術(shù)允許應(yīng)用能緩存以別的方式 不能被緩存的敏感、訪(fǎng)問(wèn)控制的信息。本方法允許緩存器識(shí)別這樣的用戶(hù),該用戶(hù)在HTTP請(qǐng)求中不包括可識(shí)別的用戶(hù) 信息但能借助在集成緩存專(zhuān)利中所述的AAA方法可識(shí)別。該方法能使緩存器通過(guò)檢查從 AAA處理共享的授權(quán)狀態(tài)信息而識(shí)別對(duì)特定請(qǐng)求的相關(guān)用戶(hù)。在另一實(shí)施例中,集成能使安 全策略應(yīng)用到緩存器中保存的信息中以避免未授權(quán)用戶(hù)訪(fǎng)問(wèn)緩存器中保存的信息。該方法還克服了以下事實(shí)提出的挑戰(zhàn)在緩存器能響應(yīng)來(lái)自客戶(hù)端的相關(guān)請(qǐng)求之 前動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)的重要部分需要請(qǐng)求該數(shù)據(jù)的客戶(hù)端被授權(quán)以及認(rèn)證。緩存器必須具有 授權(quán)由認(rèn)證用戶(hù)進(jìn)行的請(qǐng)求的能力以便應(yīng)用可以緩存訪(fǎng)問(wèn)控制的對(duì)象并通過(guò)將該動(dòng)態(tài)緩 存的技術(shù)以及認(rèn)證和授權(quán)信息相集成,可以實(shí)現(xiàn)該安全性。如果對(duì)于用戶(hù)或用戶(hù)組個(gè)人化 對(duì)象,則USERID或GR0UPID將是對(duì)象決定因素之一。因此,根據(jù)由應(yīng)用產(chǎn)生的數(shù)據(jù)的安全 級(jí)別也應(yīng)用到緩存信息。該技術(shù)允許應(yīng)用能緩存以別的方式不能被緩存的敏感、訪(fǎng)問(wèn)控制 的信息。最后,可以從請(qǐng)求中解析像日期時(shí)間、開(kāi)始時(shí)數(shù)據(jù)庫(kù)狀態(tài)等的其他信息并將該信 息用作對(duì)象決定因素以確定緩存器中存儲(chǔ)的對(duì)象是否仍然有效。緩存器可以通過(guò)在對(duì)象組 中配置合適的期限行為而考慮該情況,所述對(duì)象組被配置對(duì)這種外部變量是靈敏的。為了進(jìn)一步克服由以下事實(shí)提出的挑戰(zhàn)必須由緩存器解析和截取對(duì)動(dòng)態(tài)內(nèi)容 的請(qǐng)求,根據(jù)本發(fā)明實(shí)施例的緩存器可以限制認(rèn)為哪些參數(shù)是對(duì)緩存器的相關(guān)對(duì)象決定因 素。這樣,可以提高從緩存器提供對(duì)象而不是向可應(yīng)用的應(yīng)用服務(wù)器轉(zhuǎn)送該請(qǐng)求的成功率。 通過(guò)示例,來(lái)自客戶(hù)端的請(qǐng)求查詢(xún)包含城市和國(guó)家參數(shù)。然而,緩存器可以被配置以符合緩 存器保存內(nèi)容以識(shí)別可以對(duì)來(lái)自客戶(hù)端的請(qǐng)求提供響應(yīng)的應(yīng)用的需求,查詢(xún)表示來(lái)自給定 國(guó)家的所有客戶(hù)而不考慮城市值。為此,城市參數(shù)是不相關(guān)的,并且緩存器能識(shí)別該事實(shí)。 如果只有城市參數(shù)匹配而不管對(duì)國(guó)家參數(shù)指定什么,則可替換實(shí)施例涉及配置緩存器,以 便可以從緩存器提供響應(yīng)??傊?,緩存器實(shí)施一般的參數(shù)化對(duì)象匹配。在該方法中,緩存器被配置以識(shí)別請(qǐng)求 中信息的子集,該信息子集將用作對(duì)象決定因素并鏈接到特定對(duì)象,因此當(dāng)識(shí)別該對(duì)象決 定因素時(shí),緩存器可以在評(píng)價(jià)對(duì)象或?qū)ο蠼M是否仍“新鮮”并是否能夠從緩存器提供時(shí)使用 該出現(xiàn)(或反之沒(méi)出現(xiàn)該決定因素)。緩存器維持每次請(qǐng)求進(jìn)入時(shí)它所查詢(xún)的表以檢查配置 參數(shù),用于確定請(qǐng)求的數(shù)據(jù)是否仍然“新鮮”,并其也允許緩存器將相關(guān)數(shù)據(jù)與緩沖存儲(chǔ)器 中保存的合適對(duì)象匹配。10.具體數(shù)
在另一實(shí)施例中,緩存器可以使用具體數(shù)以無(wú)效對(duì)象組。在由于起始狀態(tài)改變而緩 存器需要同時(shí)改變每個(gè)對(duì)象組的狀態(tài)的地方,具體數(shù)提供了一種用于實(shí)現(xiàn)該無(wú)效的簡(jiǎn)單技 術(shù)。然而,識(shí)別每個(gè)對(duì)象并單獨(dú)改變狀態(tài)是保證緩存器中保存的數(shù)據(jù)的“新鮮性”的低效率 方法,而使用具體數(shù)提供一種更簡(jiǎn)單高效的方法來(lái)無(wú)效對(duì)象組。當(dāng)前實(shí)施例描述每個(gè)對(duì)象如何指向表示組的數(shù)據(jù)結(jié)構(gòu)并因此服務(wù)器只需要發(fā)送一個(gè)命令,該命令改變?cè)摻M的數(shù)據(jù)結(jié) 構(gòu)中的狀態(tài)。當(dāng)來(lái)自客戶(hù)端的對(duì)緩存對(duì)象的隨后請(qǐng)求到達(dá)時(shí),緩存器必須首先判定狀態(tài)是 否改變。為此,緩存器查詢(xún)數(shù)據(jù)結(jié)構(gòu)以參考組的狀態(tài)是否改變。為了有效地實(shí)施數(shù)據(jù)結(jié)構(gòu),緩存器必須能夠確定是否查詢(xún)狀態(tài)改變。因此,緩存器 必須能夠確定它是否已查詢(xún)組中的狀態(tài)改變。這正是具體數(shù)有用的地方。緩存器將動(dòng)態(tài)產(chǎn) 生的對(duì)象關(guān)聯(lián)到內(nèi)容組中。可以通過(guò)具有特定索引值或數(shù)據(jù)結(jié)構(gòu)中包含的“具體數(shù)”的散 列表查詢(xún)處理來(lái)表示這些內(nèi)容組中的每一個(gè)。此后,無(wú)論何時(shí)緩存器接收緩存器識(shí)別為引 起狀態(tài)改變的客戶(hù)請(qǐng)求時(shí),客戶(hù)端解析對(duì)相關(guān)參數(shù)的客戶(hù)請(qǐng)求,根據(jù)識(shí)別的對(duì)象決定因素 而執(zhí)行散列查詢(xún),并增加數(shù)據(jù)結(jié)構(gòu)中的索引或具體數(shù)。每當(dāng)客戶(hù)端請(qǐng)求保存在指定分組中 的對(duì)象時(shí),緩存器對(duì)對(duì)象執(zhí)行散列算法,并比較它與該內(nèi)容組在數(shù)據(jù)結(jié)構(gòu)中的原始保存值。 如果存儲(chǔ)的值與由緩存器對(duì)該對(duì)象計(jì)算的數(shù)值相同,那么緩存器知道該內(nèi)容保持“新鮮”并 可以提供給請(qǐng)求者。如果緩存器檢測(cè)到在為該對(duì)象計(jì)算的當(dāng)前具體數(shù)和數(shù)據(jù)結(jié)構(gòu)中為該內(nèi) 容組所保存的數(shù)之間的差異,那么緩存器知道保存的對(duì)象不再“新鮮”。然后,緩存器無(wú)效保 存的對(duì)象并將請(qǐng)求發(fā)送至應(yīng)用服務(wù)器。當(dāng)響應(yīng)返回時(shí),緩存裝置將在緩沖存儲(chǔ)器中保存新 的響應(yīng)并將該響應(yīng)再次鏈接到新的數(shù)據(jù)結(jié)構(gòu)。此后,每當(dāng)緩存器接收到對(duì)該分組中的對(duì)象 的請(qǐng)求時(shí),緩存器可以進(jìn)行比較并假設(shè)數(shù)據(jù)結(jié)構(gòu)不再進(jìn)一步改變,緩存器可以提供新保存 的對(duì)象。通過(guò)以該方式利用對(duì)象組的無(wú)效,緩存器可以非??焖俚?zé)o效-并且花費(fèi)的時(shí)間 是恒定的而不論無(wú)效的對(duì)象數(shù)量。通過(guò)該更快速更有效的無(wú)效處理,本發(fā)明的技術(shù)能使緩 存器更高效地處理動(dòng)態(tài)產(chǎn)生的對(duì)象。該方法允許位于應(yīng)用前方的緩存裝置更積極地保存和 提供動(dòng)態(tài)產(chǎn)生的對(duì)象而不因?yàn)閿?shù)據(jù)的快速改變而提供無(wú)效或“陳舊”的內(nèi)容。本實(shí)施例能 使緩存器提供頻繁或不可預(yù)知地改變的數(shù)據(jù),因此改進(jìn)緩存器的性能。緩存器也能通過(guò)使 用用戶(hù)命令并同時(shí)檢查和分組各種網(wǎng)絡(luò)業(yè)務(wù)而無(wú)效緩存存儲(chǔ)器中保存的對(duì)象和對(duì)象組。11.閃速緩存器和閃速群
本發(fā)明的另一實(shí)施例還包括一種能夠增加緩存器命中率(hit rate)以極快改變動(dòng)態(tài) 產(chǎn)生的對(duì)象的技術(shù),所述動(dòng)態(tài)產(chǎn)生的對(duì)象以別的方式是不能被緩存的。當(dāng)緩存管理器232 從客戶(hù)端接收到對(duì)特定對(duì)象的第一請(qǐng)求時(shí),緩存管理器232向始發(fā)服務(wù)器106a-106n轉(zhuǎn)送 該請(qǐng)求用于處理,因?yàn)樽鳛槭状握?qǐng)求,緩存管理器232還不具有該保存的對(duì)象。當(dāng)產(chǎn)生響應(yīng) 對(duì)象并然后通過(guò)緩存管理器232將該響應(yīng)對(duì)象返回到請(qǐng)求的客戶(hù)時(shí),緩存管理器232自動(dòng) 保存對(duì)象的副本。隨著對(duì)象極快速地改變,與本發(fā)明相反的常規(guī)緩存器只是將所有響應(yīng)傳 遞到始發(fā)服務(wù)器106a-106n用于處理,因?yàn)樵搩?nèi)容總是被假設(shè)不再“新鮮”,并因此對(duì)緩沖 存儲(chǔ)器不再有效。一方面,本發(fā)明針對(duì)一種“閃速緩存器”技術(shù),用于在緩存管理器232或裝置104在 傳送或等待傳送對(duì)于對(duì)象的第一請(qǐng)求者的響應(yīng)的處理期間處理對(duì)于由緩存管理器232接 收的對(duì)象的另外請(qǐng)求?,F(xiàn)在參考圖5,本發(fā)明的方法500描述了本發(fā)明的閃速緩存器技術(shù)。 簡(jiǎn)單概括并根據(jù)圖1和2,在步驟510,本發(fā)明的緩存管理器232為由第一客戶(hù)端(例如圖1 所示的客戶(hù)端102a)所請(qǐng)求的對(duì)象接收來(lái)自始發(fā)服務(wù)器106a-106n的響應(yīng)。該對(duì)象包含由 始發(fā)服務(wù)器106a-106n之一產(chǎn)生的動(dòng)態(tài)產(chǎn)生的對(duì)象,以及來(lái)自始發(fā)服務(wù)器106a-106n的響 應(yīng)包括該動(dòng)態(tài)產(chǎn)生的對(duì)象。在步驟515,緩存管理器232諸如通過(guò)網(wǎng)絡(luò)堆棧、例如設(shè)備104的TCP/IP堆棧請(qǐng)求將響應(yīng)傳送到第一客戶(hù)端。在步驟520,該響應(yīng)可以被保存或保持在緩 沖器中同時(shí)等待傳送。例如,設(shè)備104調(diào)節(jié)到慢速連接或低寬帶客戶(hù)端10 的通信,并因 此設(shè)備104排隊(duì)表示響應(yīng)的網(wǎng)絡(luò)分組。在步驟525,當(dāng)?shù)谝豢蛻?hù)端10 的響應(yīng)在緩沖器中等待傳送或另外在正傳送的 處理中時(shí)和/或在完成將響應(yīng)傳送到第一客戶(hù)端10 之前,緩存管理器232從第二客戶(hù) 端102B接收對(duì)于對(duì)象的第二請(qǐng)求。在步驟530,緩存管理器232確定對(duì)象當(dāng)前正在緩沖器 中,并從緩沖器中向第二客戶(hù)端102B提供對(duì)第二請(qǐng)求響應(yīng)的對(duì)象。在一個(gè)實(shí)施例中,當(dāng)設(shè) 備使用單個(gè)TCP/IP堆棧時(shí),可以提供相同的對(duì)象用于傳送到第一客戶(hù)端10 和第二客戶(hù) 端102B。在步驟535,第一響應(yīng)被傳送到第一客戶(hù)端102a,以及響應(yīng)被傳送到第二客戶(hù)端 102B。在步驟M0,從緩沖器中移除第一客戶(hù)端102B的響應(yīng)。在進(jìn)一步的描述中,在步驟510,設(shè)備104,諸如由緩存管理器232,截取或另外接 收來(lái)自始發(fā)服務(wù)器106a-106n的響應(yīng),該響應(yīng)是針對(duì)第一客戶(hù)端10 對(duì)一個(gè)對(duì)象(諸如動(dòng) 態(tài)產(chǎn)生的對(duì)象)的請(qǐng)求。在一個(gè)實(shí)施例中,動(dòng)態(tài)產(chǎn)生的對(duì)象諸如由始發(fā)服務(wù)器106a-106n識(shí) 別為不可緩存的,或另外不被識(shí)別為可緩存的。在某些實(shí)施例中,緩存管理器232從第一客 戶(hù)端10 接收請(qǐng)求并將該請(qǐng)求轉(zhuǎn)送到始發(fā)服務(wù)器106a-106n。在一個(gè)實(shí)施例中,在將請(qǐng)求 轉(zhuǎn)送到始發(fā)服務(wù)器106a-106n之前緩存管理器232為所請(qǐng)求的對(duì)象檢查緩存管理器232。 在某些情況下,緩存管理器232確定對(duì)象是無(wú)效的或已屆滿(mǎn)的。在其他情況下,緩存管理器 232確定對(duì)象沒(méi)有存儲(chǔ)在緩存管理器232中或另外在緩存管理器232中不可得。例如,已經(jīng) 刷新該對(duì)象或這是第一次從始發(fā)服務(wù)器106a-106n請(qǐng)求對(duì)象。在某些實(shí)施例中,響應(yīng)包括 該對(duì)象,并在其他實(shí)施例中,響應(yīng)指示狀態(tài),諸如關(guān)于對(duì)象的失敗或錯(cuò)誤消息。在步驟515,提供對(duì)于由第一客戶(hù)端10 請(qǐng)求的響應(yīng)用于傳送到第一客戶(hù)端 10加。在某些實(shí)施例中,設(shè)備104接收響應(yīng),并請(qǐng)求分組處理引擎MO以將響應(yīng)傳送到客戶(hù) 端10加。在其他實(shí)施例中,緩存管理器232接收響應(yīng)并請(qǐng)求分組處理引擎MO以將響應(yīng)傳 送到客戶(hù)端10加。在一個(gè)實(shí)施例中,設(shè)備104包括一個(gè)網(wǎng)絡(luò)堆棧用于向客戶(hù)端102a-102n 接收和傳送網(wǎng)絡(luò)分組。在某些實(shí)施例中,網(wǎng)絡(luò)堆棧包括TCP/IP堆棧。在其他實(shí)施例中,設(shè) 備104包括多個(gè)網(wǎng)絡(luò)堆棧,每個(gè)堆棧都與一個(gè)或多個(gè)客戶(hù)端102a-102n相關(guān)聯(lián)或由一個(gè)或 多個(gè)客戶(hù)端102a-102n使用。如本領(lǐng)域技術(shù)人員能識(shí)別并理解的,一個(gè)或多個(gè)網(wǎng)絡(luò)堆棧與 內(nèi)核204、網(wǎng)絡(luò)端口 2 和/或分組處理引擎240相關(guān)聯(lián)。在步驟520,在向第一客戶(hù)端10 傳送在步驟515所請(qǐng)求的響應(yīng)期間,設(shè)備104在 緩沖器中排隊(duì)、保持或另外保存響應(yīng)。在某些實(shí)施例中,緩沖器是網(wǎng)絡(luò)堆棧,諸如TCP/IP堆 棧的一部分。例如,緩沖器包括在TCP/IP堆?;蚓W(wǎng)絡(luò)驅(qū)動(dòng)器、濾波器或其他網(wǎng)絡(luò)相關(guān)軟件 中使用或由它們使用的數(shù)據(jù)結(jié)構(gòu),所述網(wǎng)絡(luò)相關(guān)軟件處理或操縱網(wǎng)絡(luò)堆棧的任何部分。在 其他實(shí)施例中,緩沖器是網(wǎng)絡(luò)端口 2 的一部分。在其他實(shí)施例中,緩沖器是分組處理引擎 240的一部分,或在其他實(shí)施例中,內(nèi)核包括緩沖器。緩沖器可以是位于設(shè)備105的任何部 分中的任何存儲(chǔ)器或儲(chǔ)存器元件。在許多實(shí)施例中,在緩沖器中排隊(duì)、保持或保存響應(yīng)為一 個(gè)或多個(gè)網(wǎng)絡(luò)分組,諸如基于TCP/IP協(xié)議的分組。在一個(gè)實(shí)施例中,在一個(gè)或多個(gè)數(shù)據(jù)結(jié) 構(gòu)中保持響應(yīng),所述數(shù)據(jù)結(jié)構(gòu)提供本發(fā)明使用的緩沖器。如本領(lǐng)域技術(shù)人員能認(rèn)識(shí)并理解 的,可以以任何合適的形式在緩沖器中排隊(duì)、保持或保存響應(yīng)。而且,可以任意的、預(yù)定的、隱含的、明確的或以其他方式并使用任何合適的裝置和/或機(jī)制在任何時(shí)間段期間,在緩存器中保存或排隊(duì)響應(yīng)。在一個(gè)實(shí)施例中,當(dāng)網(wǎng)絡(luò)分組 根據(jù)傳送率、分組排隊(duì)率、網(wǎng)絡(luò)通信量和擁塞或任何其他網(wǎng)絡(luò)特性并如由設(shè)備104所確定 的內(nèi)容諸如通過(guò)分組處理引擎240和/或網(wǎng)絡(luò)端口 2 等待由設(shè)備104傳送時(shí),在緩沖器 中保存響應(yīng)。在另一實(shí)施例中,對(duì)于預(yù)定時(shí)間段,響應(yīng)被保持在緩沖器中。在某些實(shí)施例 中,設(shè)備104根據(jù)客戶(hù)端網(wǎng)絡(luò)連接的諸如帶寬、連接類(lèi)型等的特性或客戶(hù)端10 的特性排 隊(duì)、管理網(wǎng)絡(luò)分組并向客戶(hù)端10 傳送網(wǎng)絡(luò)分組。例如,對(duì)于客戶(hù)端10 來(lái)說(shuō),該客戶(hù)端 102a到設(shè)備104的連接比設(shè)備104到始發(fā)服務(wù)器106a-106n的連接慢,設(shè)備104能調(diào)節(jié)或 另外管理網(wǎng)絡(luò)分組到客戶(hù)端10 的傳送以便為客戶(hù)端10 提供所需性能或行為或者客戶(hù) 端10 的網(wǎng)絡(luò)連接。因此,設(shè)備104根據(jù)任何排隊(duì)或緩沖器管理邏輯、功能、規(guī)則或操作在 緩沖器中排隊(duì)或保持響應(yīng)達(dá)所需時(shí)間段。在步驟525,當(dāng)?shù)谝豢蛻?hù)端10 的響應(yīng)保持在緩沖器、諸如TCP/IP堆棧的緩沖器 中、或正在傳送時(shí)或另外在完成將響應(yīng)傳送到第一客戶(hù)端10 之前,設(shè)備104諸如通過(guò)緩 存管理器232截取或另外接收來(lái)自第二客戶(hù)端102B對(duì)于對(duì)象的第二請(qǐng)求,所述對(duì)象是針對(duì) 第一次請(qǐng)求從緩存管理器232獲取的。即,在一個(gè)實(shí)施例中,由第二客戶(hù)端102B請(qǐng)求的對(duì) 象保存在緩沖器中等待傳送。在某些實(shí)施例中,設(shè)備104對(duì)于第一客戶(hù)端10 所請(qǐng)求的相 同對(duì)象從多個(gè)客戶(hù)端102b-102n接收多個(gè)請(qǐng)求,所述相同對(duì)象目前正保持在緩沖器中以用 于傳送到第一客戶(hù)端10 或另外目前正傳送到第一客戶(hù)端102a。在某些實(shí)施例中,緩存管 理器232確定第二請(qǐng)求使用任何合適的裝置和/或機(jī)制、諸如這里所述的任何技術(shù),例如使 用對(duì)象決定因素正在請(qǐng)求與第一請(qǐng)求相同的對(duì)象。在某些實(shí)施例中,裝置104或緩存管理 器232使用任何類(lèi)型和形式的排隊(duì)機(jī)制而排隊(duì)第二請(qǐng)求和隊(duì)列中的任何其他請(qǐng)求。因此, 在一個(gè)實(shí)施例中,當(dāng)裝置104或緩存管理器232代表服務(wù)器106a-106n排隊(duì)并響應(yīng)請(qǐng)求時(shí), 客戶(hù)端102a-102n不需要重新提交請(qǐng)求。在另一個(gè)實(shí)施例中,裝置104或緩存管理器232透 明地向客戶(hù)端102a-102n排隊(duì)和響應(yīng)請(qǐng)求而不將請(qǐng)求提交到服務(wù)器106a-106n。裝置104 或緩存管理器232能在存儲(chǔ)器中使用諸如排隊(duì)、對(duì)象或數(shù)據(jù)結(jié)構(gòu)的任何機(jī)制以排隊(duì)使用本 發(fā)明技術(shù)響應(yīng)的來(lái)自客戶(hù)端10h-102n的請(qǐng)求。在步驟530,設(shè)備104確定由第二客戶(hù)端102b請(qǐng)求的對(duì)象在緩沖器保存的響應(yīng)中 或在當(dāng)前正傳送到第一客戶(hù)端10 的響應(yīng)中。在某些實(shí)施例中,緩存管理器232確定對(duì)象 存儲(chǔ)在緩沖器中。在某些情況下,緩存管理器232首先為該對(duì)象檢查緩沖存儲(chǔ)器或儲(chǔ)存器, 并然后為該對(duì)象檢查緩沖器。在其他情況下,緩沖器被認(rèn)為是用于緩存的對(duì)象的存儲(chǔ)位置, 該緩存的對(duì)象將由緩存管理器232搜索或管理。在其他實(shí)施例中,緩存管理器232請(qǐng)求分 組處理弓I擎242檢查對(duì)象是否在緩沖器中。在其他實(shí)施例中,緩存管理器232通過(guò)內(nèi)核204 的任何應(yīng)用編程接口(API)檢查對(duì)象是否在緩沖器中。在某些情況下,緩存管理器232對(duì) 接到任何驅(qū)動(dòng)器、網(wǎng)絡(luò)處理器、濾波器或操縱或處理網(wǎng)絡(luò)堆棧的任何部分的其他軟件以確 定對(duì)象是否在緩沖器中。繼續(xù)在步驟530,本發(fā)明提供緩沖器中存儲(chǔ)的或作為對(duì)第一客戶(hù)端10 的響應(yīng)而 被傳輸?shù)膶?duì)象用于響應(yīng)在步驟525來(lái)自第二客戶(hù)端102B的第二請(qǐng)求。在某些實(shí)施例中,設(shè) 備104諸如經(jīng)由分組處理引擎104通過(guò)使用緩沖器的任何部分和網(wǎng)絡(luò)堆棧的相關(guān)數(shù)據(jù)結(jié)構(gòu) 而形成對(duì)第二請(qǐng)求的響應(yīng)。在一個(gè)實(shí)施例中,對(duì)象在緩沖器中只保存一次,例如在單個(gè)網(wǎng)絡(luò) 堆棧配置中并用于形成網(wǎng)絡(luò)分組以分別傳送到第一客戶(hù)端10 和第二客戶(hù)端102B。在其他實(shí)施例中,來(lái)自緩沖器的對(duì)象的副本用于形成對(duì)第二請(qǐng)求的響應(yīng)。在其他實(shí)施例中,從第 一網(wǎng)絡(luò)堆棧向第二網(wǎng)絡(luò)堆棧提供對(duì)象以形成第二客戶(hù)端102B的第二請(qǐng)求的響應(yīng)。可以在 緩沖器中保持第一客戶(hù)端10 的響應(yīng),以及緩沖器中響應(yīng)的任何部分或所有響應(yīng)都用于 提供對(duì)第二客戶(hù)端102B的響應(yīng)。在一個(gè)實(shí)施例中,在不修改的情況下可以使用在緩沖器中 保存的第一客戶(hù)端的響應(yīng)以響應(yīng)第二客戶(hù)端102B。在另一實(shí)施例中,緩沖器中保存的表示 第一客戶(hù)端10 的響應(yīng)中的對(duì)象的數(shù)據(jù)被修改以提供對(duì)第二客戶(hù)端102B的響應(yīng)。在本發(fā)明的方法500的步驟535,從設(shè)備104向第一客戶(hù)端10 傳送第一響應(yīng), 并從設(shè)備104傳送響應(yīng)于第二客戶(hù)端102B的第二請(qǐng)求的第二響應(yīng)。到第一客戶(hù)端10 和 第二客戶(hù)端102B的響應(yīng)可以以任何順序、利用互相之間的任何時(shí)間間隔、使用相同網(wǎng)絡(luò)堆 棧267或不同網(wǎng)絡(luò)堆棧從設(shè)備104傳送。在某些實(shí)施例中,也在緩沖器中排隊(duì)、保持或保存 等待傳送的對(duì)于第二客戶(hù)端102B的響應(yīng)。因此,可以通過(guò)在緩沖器中保存的并且還沒(méi)有傳 送、刷新、移除或另外不可使用的第一響應(yīng)或第二響應(yīng)提供對(duì)于相同對(duì)象的任何另外請(qǐng)求。在步驟M0,從緩沖器刷新或另外移除第一客戶(hù)端10 的響應(yīng)。在某些實(shí)施例中, 如果第二客戶(hù)端102B的響應(yīng)也被保存到緩沖器,則也移除第二客戶(hù)端的響應(yīng)。在其他實(shí)施 例中,第二客戶(hù)端的響應(yīng)仍然保持在緩沖器中并當(dāng)從第三客戶(hù)端接收對(duì)于對(duì)象的第三請(qǐng)求 時(shí)使用第二客戶(hù)端響應(yīng)再次實(shí)施方法500的步驟525至535。另一方面,本發(fā)明針對(duì)一種用于處理如下情況的“閃速群”技術(shù),其中在該情況中 在服務(wù)器正處理并返回對(duì)第一請(qǐng)求者的響應(yīng)對(duì)象期間裝置104或緩存管理器232接收對(duì)于 相同對(duì)象的另外請(qǐng)求,例如幾乎同時(shí)的請(qǐng)求。一旦由緩沖器響應(yīng)所有該幾乎同時(shí)的請(qǐng)求,則 從緩沖存儲(chǔ)器立即刷新對(duì)象,而不需要另外期限時(shí)間或由應(yīng)用或管理員進(jìn)行的無(wú)效操作。 本發(fā)明的該技術(shù)能在極短的時(shí)間量?jī)?nèi)緩存和提供對(duì)于對(duì)象的數(shù)據(jù),所述對(duì)象另外被認(rèn)為是 不可緩存的。該方法在向大量并發(fā)用戶(hù)提供快速變化的數(shù)據(jù)的應(yīng)用中產(chǎn)生巨大的改進(jìn),所 述應(yīng)用諸如實(shí)時(shí)股票報(bào)價(jià)或快速變化的新聞報(bào)道。圖6描述了當(dāng)本發(fā)明的緩存器響應(yīng)第一請(qǐng)求而接收這樣內(nèi)容時(shí)向每個(gè)客戶(hù)端請(qǐng) 求者提供相同內(nèi)容所采取的步驟的方法600。簡(jiǎn)單概述方法600,在步驟610,緩存管理器 232或裝置104從第一客戶(hù)端10 接收對(duì)于來(lái)自始發(fā)服務(wù)器106a-106n的對(duì)象的第一請(qǐng) 求,所述對(duì)象例如是動(dòng)態(tài)產(chǎn)生的對(duì)象。在步驟615,緩存器將第一請(qǐng)求轉(zhuǎn)送給始發(fā)服務(wù)器 106a-106no當(dāng)?shù)却龑?duì)第一請(qǐng)求的響應(yīng)時(shí)或在響應(yīng)第一客戶(hù)端10 的第一請(qǐng)求之前,在步 驟620,緩存器從第二客戶(hù)端102b接收對(duì)于該對(duì)象的第二請(qǐng)求。在某些實(shí)施例中,緩存器并 不將第二請(qǐng)求轉(zhuǎn)送給始發(fā)服務(wù)器而是排隊(duì)第二請(qǐng)求。在步驟625,緩存器從始發(fā)服務(wù)器接收 對(duì)于第一請(qǐng)求的響應(yīng),并在步驟630,響應(yīng)第一請(qǐng)求向第一客戶(hù)端10 以及響應(yīng)第二請(qǐng)求 向第二客戶(hù)端102b傳送所接收的響應(yīng)和/或響應(yīng)中的對(duì)象。在步驟635,在完成將所接收 的響應(yīng)和/或響應(yīng)中的對(duì)象傳送給第一客戶(hù)端10 或第二客戶(hù)端102b之前緩存器從第三 客戶(hù)端102接收對(duì)于該對(duì)象的另外第三請(qǐng)求。在步驟640,緩存器也向第三客戶(hù)端102c傳 送所接收的響應(yīng)和/或響應(yīng)中的對(duì)象。一旦響應(yīng)請(qǐng)求,則在步驟645緩存器從緩沖存儲(chǔ)器 中刷新對(duì)象,例如而不需要任何期限時(shí)間或應(yīng)用、始發(fā)服務(wù)器或管理員進(jìn)行的無(wú)效操作。在進(jìn)一步的描述中并根據(jù)圖1和2、本發(fā)明的方法600的步驟610,在一個(gè)實(shí)施例 中,裝置104的緩存管理器232在客戶(hù)端10 和始發(fā)服務(wù)器例如106a之間通信期間的任 何時(shí)刻從客戶(hù)端10加-10211 (例如圖1中的客戶(hù)端10 )接收對(duì)于一個(gè)對(duì)象(諸如動(dòng)態(tài)產(chǎn)生的對(duì)象)的請(qǐng)求。在一個(gè)實(shí)施例中,來(lái)自第一客戶(hù)端10 的請(qǐng)求可以是第一客戶(hù)端10 第 一次請(qǐng)求對(duì)象。在一個(gè)示例中,客戶(hù)端10 —旦連接到始發(fā)服務(wù)器106a則首次請(qǐng)求對(duì)象。 在另一示例中,緩存管理器232代表客戶(hù)端10 或任何其他客戶(hù)端102a-102n之前還沒(méi)有 緩存或請(qǐng)求來(lái)自始發(fā)服務(wù)器106a的對(duì)象。在其他實(shí)施例中,來(lái)自客戶(hù)端10 的請(qǐng)求是對(duì) 于之前請(qǐng)求對(duì)象的隨后請(qǐng)求。在其他實(shí)施例中,緩存管理器232之前已緩存在步驟610由 客戶(hù)端10 所請(qǐng)求的對(duì)象。因此,可以在客戶(hù)端102a-102n和始發(fā)服務(wù)器106a_106B之間 通信期間的任何時(shí)刻實(shí)施圖6所示的本發(fā)明的技術(shù),而不論對(duì)象是否目前被緩存、之前已 經(jīng)被緩存或從未被緩存。在步驟615,緩存管理器232將請(qǐng)求從客戶(hù)端10 轉(zhuǎn)送到始發(fā)服務(wù)器106a。在一 個(gè)實(shí)施例中,緩存管理器232向始發(fā)服務(wù)器轉(zhuǎn)送該請(qǐng)求而不檢查對(duì)象是否保存在緩存管理 器232中。在某些實(shí)施例中,緩存管理器232首次檢查客戶(hù)端10 所請(qǐng)求的對(duì)象是否從緩 存管理器232可得,并如果不可得,那么向始發(fā)服務(wù)器106a轉(zhuǎn)送請(qǐng)求。在其他實(shí)施例中,緩 存管理器232檢查對(duì)象是否在緩存器中保存然而是無(wú)效或另外需要更新,或另外將被無(wú)效 或即將需要更新。在另一實(shí)施例中,緩存管理器232確定應(yīng)該動(dòng)態(tài)重新產(chǎn)生并從始發(fā)服務(wù) 器106a-160N提供緩存器中保存的動(dòng)態(tài)產(chǎn)生的對(duì)象。因此,如果緩存管理器232確定應(yīng)該 從始發(fā)服務(wù)器106a-160n請(qǐng)求對(duì)象,則緩存管理器232將請(qǐng)求從客戶(hù)端10 轉(zhuǎn)送到始發(fā)服 務(wù)器106a — 160η。在一個(gè)實(shí)施例中,緩存管理器232向始發(fā)服務(wù)器106a轉(zhuǎn)送從第一客戶(hù) 端10 接收的相同或原始請(qǐng)求。在另一實(shí)施例中,緩存管理器232發(fā)送對(duì)于對(duì)象由緩存管 理器232形成的請(qǐng)求,在由第一客戶(hù)端10 的請(qǐng)求中請(qǐng)求或識(shí)別該對(duì)象。當(dāng)?shù)却齺?lái)自始發(fā)服務(wù)器106a_160N的對(duì)于第一客戶(hù)端10 的請(qǐng)求的響應(yīng)時(shí)和/ 或在響應(yīng)第一客戶(hù)端10 的請(qǐng)求之前,在步驟620,緩存管理器232截取或另外接收對(duì)于對(duì) 象的一個(gè)或多個(gè)另外請(qǐng)求,該對(duì)象在步驟610由第一客戶(hù)端10 的首次請(qǐng)求被識(shí)別、與該 首次請(qǐng)求相關(guān)聯(lián)或被請(qǐng)求。例如,在一個(gè)實(shí)施例中,緩存管理器232從第二客戶(hù)端102B接 收對(duì)于對(duì)象的第二請(qǐng)求,所述對(duì)象是由始發(fā)服務(wù)器106a響應(yīng)首次請(qǐng)求而動(dòng)態(tài)產(chǎn)生的。在一 個(gè)實(shí)施例中,裝置104或緩存管理器232使用任何類(lèi)型和形式的排隊(duì)機(jī)制而排隊(duì)第二請(qǐng)求 和隊(duì)列中的任何其他請(qǐng)求。在某些實(shí)施例中,對(duì)于對(duì)象的第二和/或另外請(qǐng)求能近似同時(shí) 的發(fā)生或由緩存管理器232近似同時(shí)接收。在其他實(shí)施例中,可以在接收第一請(qǐng)求和從始 發(fā)服務(wù)器106a接收對(duì)于第一請(qǐng)求的響應(yīng)之間的任何時(shí)刻由緩存管理器232截取或接收第 二和/或另外請(qǐng)求。在另一實(shí)施例中,在接收第一請(qǐng)求和向客戶(hù)端10 提供對(duì)于第一請(qǐng)求 的響應(yīng)之間的任何時(shí)刻由緩存管理器232接收第二和/或另外請(qǐng)求。在一個(gè)實(shí)施例中,在響應(yīng)第一請(qǐng)求之前,緩存管理器232并不轉(zhuǎn)送來(lái)自第二客戶(hù) 端102b對(duì)于對(duì)象的第二請(qǐng)求和/或來(lái)自任何其他客戶(hù)端102c-102n對(duì)于對(duì)象的任何另外 請(qǐng)求。在一個(gè)實(shí)施例中,在步驟625,緩存管理器232例如在裝置104中排隊(duì)或另外持有第 二和另外請(qǐng)求,直到接收到對(duì)于第一請(qǐng)求的響應(yīng)。因此,對(duì)于第二客戶(hù)端102B透明的緩存 管理器232并不轉(zhuǎn)送第二客戶(hù)端的請(qǐng)求。然而,在某些實(shí)施例中,對(duì)于第二客戶(hù)端102B來(lái) 說(shuō)看來(lái)好像例如正在由始發(fā)服務(wù)器106a-106n處理。在某些實(shí)施例中,來(lái)自第二客戶(hù)端10 的第二請(qǐng)求會(huì)請(qǐng)求與在步驟610的首次請(qǐng) 求相同的對(duì)象,但還包括對(duì)于靜態(tài)的、動(dòng)態(tài)的或另外的另一對(duì)象或其他信息的另外請(qǐng)求。例 如,第二客戶(hù)端102B的請(qǐng)求包括多個(gè)請(qǐng)求。在這些實(shí)施例中,緩存管理器232識(shí)別與結(jié)合第一客戶(hù)端10 的首次請(qǐng)求已請(qǐng)求的對(duì)象相關(guān)的部分請(qǐng)求,并不處理所識(shí)別的部分直到接 收到對(duì)于第一請(qǐng)求的響應(yīng)。對(duì)于來(lái)自第二客戶(hù)端102B的請(qǐng)求的其他部分,緩存管理器232 以任何合適的形式(例如通過(guò)這里所述的本發(fā)明的任何技術(shù))處理這些其他請(qǐng)求。例如,第 二請(qǐng)求包括對(duì)于第二對(duì)象的請(qǐng)求,緩存管理器232為其請(qǐng)求來(lái)自始發(fā)服務(wù)器10h-102B的 第二對(duì)象或獲得來(lái)自緩存管理器232的第二對(duì)象。在步驟625,本發(fā)明的方法600接收對(duì)于第一請(qǐng)求的響應(yīng),所述第一請(qǐng)求在步 驟615轉(zhuǎn)送到始發(fā)服務(wù)器106a。在某些實(shí)施例中,響應(yīng)包括對(duì)象,諸如由任何服務(wù)器 106a-106n動(dòng)態(tài)產(chǎn)生的對(duì)象。在其他實(shí)施例中,響應(yīng)包括到由緩存管理器232提取或另外獲 取的對(duì)象位置的指針。在其他實(shí)施例中,響應(yīng)表示某些錯(cuò)誤消息或另外表示不能提供所請(qǐng) 求的對(duì)象。在一個(gè)實(shí)施例中,緩存管理器232比較所接收的響應(yīng)和對(duì)應(yīng)的請(qǐng)求以確定響應(yīng) 對(duì)于請(qǐng)求是否合適或恰當(dāng)。在其他實(shí)施例中,緩存管理器232獲得響應(yīng)(諸如動(dòng)態(tài)產(chǎn)生的對(duì) 象)的內(nèi)容,并產(chǎn)生、修改或另外提供傳送給第一客戶(hù)端10 所需的響應(yīng)。在步驟630,本發(fā)明的緩存管理器232使用對(duì)于第一請(qǐng)求所接收的響應(yīng)和/或響應(yīng) 中的對(duì)象以響應(yīng)對(duì)于相同對(duì)象的第一請(qǐng)求和第二或另外請(qǐng)求。在一個(gè)實(shí)施例中,緩存管理 器232響應(yīng)第一請(qǐng)求向第一客戶(hù)端10 傳送所接收的響應(yīng),并響應(yīng)第二請(qǐng)求向第二客戶(hù)端 102B傳送所接收的響應(yīng)。在另一實(shí)施例中,緩存管理器232向第一客戶(hù)端10 傳送所接 收的響應(yīng),但修改所接收的響應(yīng)并響應(yīng)第二請(qǐng)求向第二客戶(hù)端102B傳送所修改的響應(yīng)。例 如,緩存管理器232修改對(duì)于第二客戶(hù)端102B的響應(yīng)以包括會(huì)話(huà)信息或?qū)?yīng)于第二請(qǐng)求的 其他信息。在其他實(shí)施例中,緩存管理器232獲得從接收的響應(yīng)所請(qǐng)求的對(duì)象,并產(chǎn)生、修 改或另外提供對(duì)應(yīng)于第一請(qǐng)求和第二請(qǐng)求并包括對(duì)象的響應(yīng),諸如第一響應(yīng)和第二響應(yīng), 并向第一客戶(hù)端10 和第二客戶(hù)端102B傳送對(duì)應(yīng)響應(yīng)。因此,緩存管理器232在響應(yīng)來(lái) 自客戶(hù)端102a-102b對(duì)于對(duì)象的請(qǐng)求中使用從始發(fā)服務(wù)器106a-106n接收的對(duì)于第一請(qǐng)求 的響應(yīng)的所有或任何部分。在某些實(shí)施例中,在從服務(wù)器106a接收對(duì)于第一請(qǐng)求的響應(yīng)之后并在步驟625 完成將響應(yīng)傳送給請(qǐng)求對(duì)象的第一客戶(hù)端102a、第二客戶(hù)端102b或任何其他客戶(hù)端 102a-102c之前,在步驟635緩存管理器232從其他客戶(hù)端102c-102n截取或另外接收對(duì) 于對(duì)象的另外請(qǐng)求。例如,緩存管理器232從第三客戶(hù)端102C接收對(duì)于對(duì)象的第三請(qǐng)求。 在這些實(shí)施例中,緩存管理器232使用來(lái)自始發(fā)服務(wù)器106a-106n的對(duì)于第一請(qǐng)求所接收 的并在步驟630傳送到客戶(hù)端10 和/或102b的所有或部分響應(yīng)以響應(yīng)這些另外請(qǐng)求。 在另一實(shí)施例中,緩存管理器232已經(jīng)完成將響應(yīng)傳送到第一客戶(hù)端10 和第二客戶(hù)端 102b,并仍有任何響應(yīng)在存儲(chǔ)器中或可另外獲得以使用借助于第一請(qǐng)求提供的對(duì)象而響應(yīng) 第三客戶(hù)端102c的第三請(qǐng)求。因此,在步驟640,本發(fā)明的緩存管理器232可以響應(yīng)第三請(qǐng) 求或進(jìn)一步的另外請(qǐng)求,而不需要再次請(qǐng)求來(lái)自始發(fā)服務(wù)器的對(duì)象和/或不需要在緩存器 中存儲(chǔ)所請(qǐng)求的對(duì)象。在某些實(shí)施例中,裝置104或緩存管理器232排隊(duì)第二請(qǐng)求、第三請(qǐng)求或隊(duì)列中的 任何其他請(qǐng)求。因此,在一個(gè)實(shí)施例中,當(dāng)裝置104或緩存管理器232代表服務(wù)器106a-106n 而排隊(duì)并響應(yīng)請(qǐng)求時(shí),客戶(hù)端102a-102n不需要再次提交請(qǐng)求。在另一實(shí)施例中,裝置104 或緩存管理器232排隊(duì)并響應(yīng)對(duì)客戶(hù)端10加-10211透明的請(qǐng)求而不向服務(wù)器106a-106n提 交請(qǐng)求。裝置104或緩存管理器232使用諸如排隊(duì)、對(duì)象、或存儲(chǔ)器中的數(shù)據(jù)結(jié)構(gòu)的任何機(jī)制以排隊(duì)來(lái)自客戶(hù)端10h-102n的請(qǐng)求用于使用本發(fā)明的技術(shù)來(lái)響應(yīng)。另外,裝置102或 緩存管理器232以任何順序,而不需要以接收的順序或來(lái)自隊(duì)列的先入先出形式響應(yīng)客戶(hù) 端請(qǐng)求。在步驟645,緩存管理器232刷新來(lái)自始發(fā)服務(wù)器106a的對(duì)于第一請(qǐng)求的響應(yīng)、 對(duì)于客戶(hù)端請(qǐng)求的任何響應(yīng)和/或由來(lái)自緩存管理器232的請(qǐng)求所請(qǐng)求的對(duì)象。在一個(gè)實(shí) 施例中,一旦完成傳送最后響應(yīng),諸如在一個(gè)實(shí)施例中的步驟630或在另一實(shí)施例中的步 驟640,緩存管理器232立即從緩存器刷新響應(yīng)和/或?qū)ο?。在某些?shí)施例中,緩存管理器 232在預(yù)定時(shí)間段(諸如根據(jù)期限時(shí)間)維持對(duì)象。在其他實(shí)施例中,緩存管理器232在緩 存器中維持對(duì)象直到始發(fā)服務(wù)器106a-160N無(wú)效對(duì)象。在另一實(shí)施例中,對(duì)象在存儲(chǔ)器或 儲(chǔ)存器中維持直到為了其他目的重寫(xiě)或另外由緩存管理器232使用存儲(chǔ)器或儲(chǔ)存器。雖然上面關(guān)于從多個(gè)客戶(hù)端對(duì)于單個(gè)對(duì)象的請(qǐng)求而一般性地描述了本發(fā)明的方 法500和600的技術(shù),但本領(lǐng)域的技術(shù)人員理解并認(rèn)識(shí)到,本發(fā)明的閃速緩存器和閃速群處 理技術(shù)可以用于處理來(lái)自多個(gè)客戶(hù)端的單個(gè)請(qǐng)求或請(qǐng)求序列中的多個(gè)對(duì)象請(qǐng)求,其可以順 序、并發(fā)或近似并發(fā)或同時(shí)發(fā)生。因此,可以在網(wǎng)絡(luò)環(huán)境200中緩存管理器232或裝置104 的操作期間以任何頻率和以任何次數(shù)執(zhí)行實(shí)施方法500和600的多個(gè)示例。而且,來(lái)自每 個(gè)客戶(hù)端的每個(gè)請(qǐng)求或請(qǐng)求序列會(huì)請(qǐng)求不同的對(duì)象集,一個(gè)或多個(gè)客戶(hù)端請(qǐng)求的一個(gè)或多 個(gè)對(duì)象具有公共集合。例如根據(jù)本發(fā)明的閃速群技術(shù),第一客戶(hù)端請(qǐng)求第一對(duì)象和第二對(duì)象,而第二客 戶(hù)端請(qǐng)求第二對(duì)象和第三對(duì)象,以及第三客戶(hù)端請(qǐng)求第一對(duì)象和第三對(duì)象。在某些實(shí)施例 中,本發(fā)明的緩存器使用多路復(fù)用和/或多路分解技術(shù)以對(duì)多個(gè)客戶(hù)端之間突出的多個(gè)請(qǐng) 求的每個(gè)對(duì)象請(qǐng)求一次對(duì)象,并相應(yīng)地向每個(gè)客戶(hù)端提供相應(yīng)響應(yīng)。另外對(duì)于上面示例,緩 存器可以從始發(fā)服務(wù)器為第一客戶(hù)端和第三客戶(hù)端獲取一次第一對(duì)象、為第一客戶(hù)端和第 二客戶(hù)端獲取一次第二對(duì)象以及為第二客戶(hù)端和第三客戶(hù)端獲取第三對(duì)象。在某些實(shí)施例 中,當(dāng)緩存器接收對(duì)于客戶(hù)端的一個(gè)或多個(gè)請(qǐng)求的所有對(duì)象時(shí),緩存器向客戶(hù)端傳送相應(yīng) 響應(yīng)或多個(gè)響應(yīng)。在其他實(shí)施例中,一旦由緩存器接收對(duì)象,則緩存器使用每個(gè)對(duì)象響應(yīng)客 戶(hù)端。類(lèi)似地,根據(jù)本發(fā)明的方法500的閃速緩存器技術(shù),裝置的緩沖器包括等待傳送 的多個(gè)對(duì)象并由裝置接收對(duì)于那些對(duì)象的另外請(qǐng)求。在一個(gè)實(shí)施例中,本發(fā)明的裝置使用 單個(gè)TCP/IP堆棧,從所述堆棧中多個(gè)緩沖器與多個(gè)對(duì)象相關(guān)聯(lián)并在傳送期間臨時(shí)存儲(chǔ)多 個(gè)對(duì)象。因此,緩沖器中的第一對(duì)象用于響應(yīng)來(lái)自第一客戶(hù)端和第二客戶(hù)端對(duì)于第一對(duì)象 的請(qǐng)求,以及緩沖器中的第二對(duì)象用于響應(yīng)來(lái)自第三客戶(hù)端和第四客戶(hù)端對(duì)于第二對(duì)象的 請(qǐng)求,或響應(yīng)來(lái)自第一客戶(hù)端或第二客戶(hù)端中任一個(gè)或兩者對(duì)于第二對(duì)象的請(qǐng)求。而且,如本領(lǐng)域技術(shù)人員將明白和理解的,可以互相結(jié)合或組合而實(shí)施本發(fā)明的 閃速緩存器和閃速群技術(shù)。例如,本發(fā)明的裝置能通過(guò)閃速緩存器技術(shù)而提供對(duì)來(lái)自緩 沖器對(duì)象的其他請(qǐng)求的響應(yīng),并確定緩沖器中的對(duì)象是無(wú)效的或另外需要從始發(fā)服務(wù)器請(qǐng) 求。在這點(diǎn),裝置會(huì)通過(guò)請(qǐng)求來(lái)自始發(fā)服務(wù)器的對(duì)象而轉(zhuǎn)換到閃速群技術(shù)。然后,裝置使用 從始發(fā)服務(wù)器請(qǐng)求的對(duì)象以響應(yīng)在裝置中接收并排隊(duì)的對(duì)象同時(shí)等待始發(fā)服務(wù)器響應(yīng)的 其他請(qǐng)求。12. Etag 插入另一方面,本發(fā)明針對(duì)使用技術(shù)以通過(guò)在對(duì)客戶(hù)端的響應(yīng)中插入諸如實(shí)體標(biāo)簽和緩存 控制信息之類(lèi)的信息而增加緩存器命中率以使緩存器能夠檢查在隨后請(qǐng)求中的命中。本發(fā) 明提供一種用于當(dāng)始發(fā)服務(wù)器沒(méi)有將對(duì)象識(shí)別為可緩存時(shí)將動(dòng)態(tài)產(chǎn)生的對(duì)象識(shí)別為可緩 存的技術(shù)。在某些實(shí)施例中,諸如處理對(duì)對(duì)象的HTTP請(qǐng)求和響應(yīng)的實(shí)施例,本發(fā)明的技術(shù) 在響應(yīng)中插入實(shí)體標(biāo)簽或“etag”以對(duì)對(duì)象提供緩存控制,假定沒(méi)有來(lái)自始發(fā)服務(wù)器的實(shí)體 標(biāo)簽和/或緩存控制信息。簡(jiǎn)單參考本領(lǐng)域技術(shù)人員所知道的HTTP協(xié)議,"etag"是基于 HTTP消息的Kag報(bào)頭字段,其為諸如對(duì)象的請(qǐng)求變量提供實(shí)體標(biāo)簽的當(dāng)前值,并用于與來(lái) 自相同源的其他實(shí)體比較。Kag提供在HTTP協(xié)議中有效的機(jī)制。同樣,基于HTTP的消息包 括緩存-控制報(bào)頭字段以指定指示用于緩存機(jī)制以及請(qǐng)求/響應(yīng)消息或通信鏈。緩存-控 制指示指定所需的緩存行為?,F(xiàn)在參考圖7A和7B并根據(jù)圖1和2,步驟用于表示實(shí)施本發(fā)明的“Etag”技術(shù)的 實(shí)施例。簡(jiǎn)單概括圖7A、本發(fā)明的方法700,步驟710接收具有由客戶(hù)端10加-10211所請(qǐng)求 的對(duì)象的響應(yīng),該對(duì)象是諸如從始發(fā)服務(wù)器106a-106n提供的并由裝置104的緩存管理器 232接收的對(duì)象。在步驟715,緩存管理器232確定來(lái)自響應(yīng)的對(duì)象是否在標(biāo)簽實(shí)體控制下 或另外具有實(shí)體標(biāo)簽。如果對(duì)象不具有實(shí)體標(biāo)簽,那么在步驟720,緩存管理器232為對(duì)象 產(chǎn)生實(shí)體標(biāo)簽。在步驟725,緩存管理器232修改響應(yīng)以提供包括緩存器所產(chǎn)生的實(shí)體標(biāo)簽 的實(shí)體控制信息。在步驟730,緩存管理器232向緩存管理器232存儲(chǔ)具有實(shí)體標(biāo)簽信息的 對(duì)象。在步驟735,緩存管理器232使用修改的響應(yīng)而響應(yīng)請(qǐng)求對(duì)象的客戶(hù)端10加-10211。 因此,客戶(hù)端10加-10211以對(duì)客戶(hù)端102a-102n透明的形式從緩存管理器232接收實(shí)體標(biāo) 簽控制對(duì)象,以至客戶(hù)端102a-102n沒(méi)有意識(shí)到始發(fā)服務(wù)器106a-106n沒(méi)有提供具有實(shí)體 標(biāo)簽信息的對(duì)象。在進(jìn)一步的描述中,在本發(fā)明的步驟710,緩存管理器232針對(duì)客戶(hù)端102a-102n 對(duì)對(duì)象的請(qǐng)求接收來(lái)自始發(fā)服務(wù)器106a-106n的響應(yīng)。在某些實(shí)施例中,從客戶(hù)端 102a-102n發(fā)送到服務(wù)器106a-106n、或從代表客戶(hù)端102a-102n的緩存管理器232發(fā)送到 服務(wù)器106a-106n的請(qǐng)求中接收響應(yīng)。在一個(gè)實(shí)施例中,在為了匹配和/或有效對(duì)象檢查 緩存管理器232之后緩存管理器232從客戶(hù)端102a-102n到服務(wù)器106a-106n轉(zhuǎn)送請(qǐng)求。 在另一實(shí)施例中,緩存管理器232在實(shí)施結(jié)合圖6所述的本發(fā)明的閃速群技術(shù)期間請(qǐng)求來(lái) 自服務(wù)器106a-106n的對(duì)象。在方法700的步驟715,緩存管理器232確定在步驟710響應(yīng)中接收的對(duì)象是否 在實(shí)體標(biāo)簽控制下或具有實(shí)體標(biāo)簽。在某些實(shí)施例中,緩存管理器232檢查、檢驗(yàn)、驗(yàn)證或 另外讀取提供響應(yīng)的一個(gè)或多個(gè)分組的任何字段、報(bào)頭、數(shù)據(jù)或其他信息。如本領(lǐng)域技術(shù)人 員應(yīng)該認(rèn)識(shí)到并理解的,要檢查或讀取的一個(gè)或多個(gè)分組的一部分取決于用于響應(yīng)的一個(gè) 或多個(gè)協(xié)議的類(lèi)型。在一個(gè)實(shí)施例中,緩存管理器232確定響應(yīng)分組的實(shí)體標(biāo)簽部分正丟 失、為空或另外沒(méi)有提供。在另一實(shí)施例中,緩存管理器232確定響應(yīng)分組的實(shí)體標(biāo)簽部分 被破壞、無(wú)效或另外不能由緩存管理器232和/或客戶(hù)端102a-102B使用。在某些實(shí)施例 中,緩存管理器232確定響應(yīng)具有實(shí)體標(biāo)簽或在實(shí)體控制下但不是以緩存管理器232所需 的類(lèi)型、形式或方式。除了實(shí)體標(biāo)簽或替代實(shí)體標(biāo)簽,緩存管理器232以類(lèi)似于實(shí)體標(biāo)簽的 形式確定是否在響應(yīng)中存在所需的緩存-控制信息。在其他實(shí)施例中,緩存管理器232通 過(guò)策略引擎236確定對(duì)象是否應(yīng)該在實(shí)體標(biāo)簽和/或緩存控制下。因此,在某些實(shí)施例中,如果裝置104通過(guò)策略引擎236確定對(duì)象不應(yīng)該在實(shí)體標(biāo)簽或緩存控制下,則緩存管理器 232不繼續(xù)執(zhí)行本發(fā)明的etag技術(shù),諸如步驟720至725。在步驟720,緩存管理器232為所接收響應(yīng)的對(duì)象產(chǎn)生所需的實(shí)體標(biāo)簽和緩存控 制信息。Kag包含任何類(lèi)型和/或形式的實(shí)體標(biāo)簽表示并在一個(gè)或多個(gè)字符中包含任何 數(shù)字、文字?jǐn)?shù)字、字母。在HTTP的實(shí)施例中,etag包含字符串或引用的字符串,并進(jìn)一步包 含前綴用于根據(jù)HTTP協(xié)議表示etag是弱的或強(qiáng)的。在某些實(shí)施例中,緩存管理器232使 用實(shí)體報(bào)頭、或etag計(jì)數(shù)器,其順序地或以任何所需增量增加etag計(jì)數(shù)器。在某些實(shí)施例 中,etag計(jì)數(shù)器對(duì)于所有對(duì)象是全局的,緩存管理器232為該所有對(duì)象產(chǎn)生etag。在其他 實(shí)施例中,緩存管理器232具有多個(gè)etag計(jì)數(shù)器,每個(gè)etag計(jì)數(shù)器與對(duì)象或?qū)ο蠼M相關(guān)聯(lián) 或特定于對(duì)象或?qū)ο蠼M。在一個(gè)實(shí)施例中,etag包含與對(duì)象相關(guān)聯(lián)的通用標(biāo)識(shí)符(UID)或全局通用標(biāo)識(shí)符 (⑶ID)。在另一實(shí)施例中,etag包含之前上文所述的具體數(shù)。在某些實(shí)施例中,緩存管理 器232從在裝置104上運(yùn)行的應(yīng)用、程序或其他形式可執(zhí)行指令獲取etag,或在其他實(shí)施例 中,從通過(guò)網(wǎng)絡(luò)由裝置104可訪(fǎng)問(wèn)的另一系統(tǒng)或設(shè)備中獲得etag。在其他實(shí)施例中,緩存管 理器232使用任何合適的算法、商業(yè)規(guī)則或邏輯以便為對(duì)象產(chǎn)生所需的唯一 etag。在一個(gè) 實(shí)施例中,裝置104包含數(shù)據(jù)庫(kù)、文件、或其他有組織的存儲(chǔ)元件,用于為緩存管理器232產(chǎn) 生并維持對(duì)象的etag。在方法700的步驟725,緩存管理器232修改來(lái)自始發(fā)服務(wù)器106a-106n的響應(yīng)以 包括所需的實(shí)體標(biāo)簽和/或緩存控制信息,諸如在步驟720由緩存器產(chǎn)生的實(shí)體標(biāo)簽。在 一個(gè)實(shí)施例中,緩存管理器232經(jīng)由協(xié)議(例如,HTTP協(xié)議)的實(shí)體標(biāo)簽報(bào)頭插入實(shí)體標(biāo)簽 信息。在另一實(shí)施例中,緩存管理器232修改響應(yīng)中的任何實(shí)體標(biāo)簽報(bào)頭字段以包括所需 的實(shí)體標(biāo)簽。在又另一實(shí)施例中,緩存管理器232用緩存管理器232所需使用的實(shí)體標(biāo)簽 字段代替響應(yīng)中的實(shí)體標(biāo)簽字段。在其他實(shí)施例中,將實(shí)體標(biāo)簽信息插入、修改或放入一個(gè) 網(wǎng)絡(luò)分組或多個(gè)網(wǎng)絡(luò)分組的任何部分中用于將響應(yīng)傳送到客戶(hù)端10加-10211。另外,步驟725,緩存管理器232插入、修改或另外放入任何所需的緩存控制信息 在協(xié)議的任何報(bào)頭、字段或網(wǎng)絡(luò)分組的任何其他部分中用于傳送響應(yīng)。由緩存控制器232 通過(guò)任何合適的裝置和/或機(jī)制產(chǎn)生該緩存-控制信息。在一個(gè)實(shí)施例中,緩存-控制信 息被配置并通過(guò)設(shè)備104的策略引擎236獲取。在另一實(shí)施例中,緩存管理器232根據(jù)緩 存管理器232的任何算法、商業(yè)規(guī)則或邏輯確定所需的緩存-控制信息。在某些實(shí)施例中, 緩存-控制信息可以基于客戶(hù)端102a-102n和裝置104或緩存管理器232之間的網(wǎng)絡(luò)和緩 存性能的任何歷史。在本發(fā)明的方法700的步驟730,緩存管理器232以任何合適或所需的方式在緩存 管理器232中存儲(chǔ)產(chǎn)生的實(shí)體標(biāo)簽和對(duì)象。在某些實(shí)施例中,實(shí)體標(biāo)簽包括在存儲(chǔ)對(duì)象的 一部分中或成為存儲(chǔ)對(duì)象的一部分。在其他實(shí)施例中,單獨(dú)地但與對(duì)象相關(guān)聯(lián)保存實(shí)體標(biāo) 簽。在另一實(shí)施例中,如本領(lǐng)域技術(shù)人員所知道的,通過(guò)數(shù)據(jù)庫(kù)、鏈接列表、查詢(xún)表或用于將 一個(gè)實(shí)體和另一個(gè)實(shí)體相關(guān)聯(lián)的任何其他機(jī)制,使實(shí)體標(biāo)簽與對(duì)象相關(guān)聯(lián)。另外,在某些實(shí) 施例中,使用對(duì)象和/或?qū)嶓w標(biāo)簽所提供的緩存控制信息還被存儲(chǔ)以與緩存管理器232中 的對(duì)象相關(guān)聯(lián)。在步驟735,緩存管理器232使得裝置104向客戶(hù)端106a-106n傳送修改的響應(yīng)。例如,緩存管理器232請(qǐng)求分組處理引擎MO以向客戶(hù)端102a-102n傳送修改的響 應(yīng)。因此,客戶(hù)端102a-102n接收具有實(shí)體標(biāo)簽和緩存器控制信息的對(duì)象,即使對(duì)于客戶(hù)端 102a-102n未知,但在一個(gè)實(shí)施例中,始發(fā)服務(wù)器106a-106n并不產(chǎn)生該信息,或者緩存管 理器232改變由服務(wù)器106a-106n產(chǎn)生的該信息。本發(fā)明的etag技術(shù)可以確保每個(gè)對(duì)象 具有確認(rèn)符、即etag或具有由緩存管理器232控制或另外需要的etag。如果對(duì)象不具有確 認(rèn)符或所需的確認(rèn)符,那么緩存管理器232就插入它自己的etag。這些etag確認(rèn)符可以避 免對(duì)重復(fù)請(qǐng)求對(duì)象提供完整的響應(yīng),正如結(jié)合圖7B所討論的。圖7B描述了用于使用實(shí)體標(biāo)簽以由客戶(hù)端102a-102n檢查對(duì)象是否被修改的本 發(fā)明的方法750。因此,客戶(hù)端102a-102n可以緩存客戶(hù)端102a-102n上的對(duì)象并利用緩存 管理器232或始發(fā)服務(wù)器106a-106n檢查對(duì)象是否被改變。簡(jiǎn)單概括方法750,在步驟775, 緩存管理器232接收來(lái)自客戶(hù)端102a-102n的請(qǐng)求以檢查對(duì)象的實(shí)體標(biāo)簽。在步驟760,緩 存器比較從客戶(hù)端10加-10211的請(qǐng)求所接收的實(shí)體標(biāo)簽和緩存器中存儲(chǔ)的對(duì)象的實(shí)體標(biāo) 簽。在步驟765,緩存管理器232確定來(lái)自客戶(hù)端的實(shí)體標(biāo)簽是否匹配緩存器中的對(duì)象的實(shí) 體。如果實(shí)體標(biāo)簽不匹配,那么在步驟770,緩存管理器232使用為對(duì)象提供當(dāng)前實(shí)體標(biāo)簽 的響應(yīng)來(lái)響應(yīng)客戶(hù)端10加-10211。如果實(shí)體標(biāo)簽匹配,那么在步驟775,緩存管理器232使 用表示對(duì)象沒(méi)有被修改的響應(yīng)來(lái)響應(yīng)客戶(hù)端10加-10211。在進(jìn)一步的描述中,在步驟755,緩存管理器232通過(guò)任何類(lèi)型和/或形式的通信 接收來(lái)自客戶(hù)端10h-102n的請(qǐng)求以檢查或確認(rèn)對(duì)象的實(shí)體標(biāo)簽。在一個(gè)實(shí)施例中,請(qǐng)求 包含具有If-Match或If-None-Match請(qǐng)求報(bào)頭字段的HTTP消息,所述報(bào)頭字段包括由客 戶(hù)端102a-102n提供的實(shí)體標(biāo)簽字符串值。例如,客戶(hù)端102a-102n在客戶(hù)端緩存器中具 有對(duì)象的副本或另外在客戶(hù)端102a-102n上可得到??蛻?hù)端102a-102n使用請(qǐng)求中對(duì)象的 客戶(hù)端副本的實(shí)體標(biāo)簽以確定或確認(rèn)對(duì)象是否是當(dāng)前的。在步驟760,緩存管理器232比較從客戶(hù)端102a_102B接收的實(shí)體標(biāo)簽值和對(duì)象的 實(shí)體標(biāo)簽以確定緩存管理器232是否具有與客戶(hù)端102a-102n不同的對(duì)象版本。緩存管理 器232使用任何合適的裝置和/或機(jī)制以比較來(lái)自客戶(hù)端10加-10211的實(shí)體標(biāo)簽值和緩存 對(duì)象的實(shí)體標(biāo)簽值。在一個(gè)實(shí)施例中,緩存管理器232對(duì)于來(lái)自請(qǐng)求的etag值和與對(duì)象一 起保存在緩存器中的etag執(zhí)行位比較。在另一實(shí)施例中,緩存管理器232對(duì)實(shí)體標(biāo)簽和/ 或緩存對(duì)象執(zhí)行并使用散列算法以確定對(duì)象是否被修改。在其他實(shí)施例中,緩存管理器232 請(qǐng)求來(lái)自服務(wù)器106a-106n的對(duì)象,并比較所接收的對(duì)象和緩存的對(duì)象以確定對(duì)象是否被 修改。如果在步驟765,來(lái)自客戶(hù)端10加-10211的實(shí)體標(biāo)簽不匹配與對(duì)象一起保存在緩 存管理器232中的實(shí)體標(biāo)簽,則在步驟770,緩存管理器232向客戶(hù)端發(fā)送一個(gè)響應(yīng),該響 應(yīng)表示實(shí)體標(biāo)簽不匹配或另外對(duì)象已經(jīng)被修改。在一個(gè)實(shí)施例中,緩存管理器232向客戶(hù) 端102a-102n發(fā)送一個(gè)響應(yīng),該響應(yīng)為對(duì)象提供新實(shí)體標(biāo)簽值。在另一實(shí)施例中,緩存管 理器232向客戶(hù)端102a-102n發(fā)送一個(gè)響應(yīng),該響應(yīng)提供新版本的對(duì)象、或修改的對(duì)象,諸 如具有在緩存管理器232中保存的新實(shí)體標(biāo)簽的修改對(duì)象。如果在步驟765,來(lái)自客戶(hù)端 102a-102n的實(shí)體標(biāo)簽匹配與對(duì)象一起保存在緩存管理器232中的實(shí)體標(biāo)簽,那么在步驟 775,緩存管理器232向客戶(hù)端發(fā)送一個(gè)響應(yīng),該響應(yīng)表示實(shí)體標(biāo)簽的確匹配或另外對(duì)象沒(méi) 有被修改。
雖然參考HTTP協(xié)議一般性地描述了本發(fā)明的etag技術(shù),但是本領(lǐng)域技術(shù)人員應(yīng) 該認(rèn)識(shí)到并理解可以使用任何類(lèi)型和/或形式的協(xié)議實(shí)施本發(fā)明以提供實(shí)體標(biāo)簽和緩存 信息。在某些實(shí)施例中,協(xié)議不支持實(shí)體標(biāo)簽和緩存信息字段,而在其他實(shí)施例中,協(xié)議支 持實(shí)體標(biāo)簽和緩存信息字段。在任何這些實(shí)施例中,當(dāng)服務(wù)器不在響應(yīng)中提供該信息時(shí)或 當(dāng)緩存器決定以裝置104控制或所需的方式改變或控制服務(wù)器提供的實(shí)體和緩存控制信 息時(shí),本發(fā)明的技術(shù)提供實(shí)體標(biāo)簽和緩存控制信息。為了解決動(dòng)態(tài)緩存由原始服務(wù)器和應(yīng)用動(dòng)態(tài)產(chǎn)生的內(nèi)容時(shí)產(chǎn)生的挑戰(zhàn),本發(fā)明 的緩存裝置可以對(duì)諸如 Outlook Web Access、Oracle Configurator 禾口 Serena Team Track 之類(lèi)的特定常用的應(yīng)用包含預(yù)封裝的策略。使用對(duì)于這些應(yīng)用處理數(shù)據(jù)的方式的理 解設(shè)計(jì)這些封裝,因此能使緩存器關(guān)于由在緩沖存儲(chǔ)器中保存的該應(yīng)用產(chǎn)生哪個(gè)對(duì)象并且 保持該對(duì)象多久作出更明智的決定。D.示例性的基于計(jì)算機(jī)系統(tǒng)的實(shí)施例
本發(fā)明的功能可以使用硬件、軟件或其組合來(lái)實(shí)施或在一個(gè)或多個(gè)計(jì)算設(shè)備或其他處 理系統(tǒng)中實(shí)施。例如,圖8A和8B描述了用于實(shí)施本發(fā)明的任何技術(shù)、方法和功能的示例計(jì) 算設(shè)備800。因此,本發(fā)明的裝置104可以是計(jì)算設(shè)備800或經(jīng)設(shè)計(jì)和構(gòu)造的特定目的的設(shè) 備以提供這里所述本發(fā)明的任何技術(shù)、功能和操作。圖8A和8B描述了計(jì)算設(shè)備800的框圖,并在某些實(shí)施例中,也被稱(chēng)為網(wǎng)絡(luò)設(shè)備 800,用于實(shí)施本發(fā)明的實(shí)施例。如圖8A和8B所示,每個(gè)計(jì)算設(shè)備800包括中央處理單元 802和主存儲(chǔ)器單元822。如圖8A所示,常規(guī)計(jì)算設(shè)備800包括可視顯示設(shè)備824、鍵盤(pán)擬6 和/或諸如鼠標(biāo)的指示設(shè)備827。每個(gè)計(jì)算設(shè)備800也包括諸如一個(gè)或多個(gè)輸入/輸出設(shè) 備830a-830b (—般使用附圖標(biāo)記830)之類(lèi)的另外可選組件,以及與中央處理單元802通 信的緩沖存儲(chǔ)器840。中央處理單元802是響應(yīng)并處理從主存儲(chǔ)器單元822提取的指令的任何邏輯電 路。在許多實(shí)施例中,中央處理單元由微處理器單元提供,諸如由加利福尼亞的芒廷維尤 的htel公司制造的產(chǎn)品;由伊利諾斯州的紹姆堡的Motorola公司制造的產(chǎn)品;由加利福 尼亞州的圣克拉拉的Transmeta公司制造的產(chǎn)品;由紐約的懷特普萊恩斯的國(guó)際商業(yè)機(jī)器 公司制造的產(chǎn)品;或那些由加利福尼亞州的桑尼維爾的Advanced Micro Devices制造的產(chǎn) 品。計(jì)算設(shè)備800可以是基于任何這些處理器,或能夠如上述操作的任何其他處理器。主存儲(chǔ)器單元822可以是能夠存儲(chǔ)數(shù)據(jù)并允許直接由微處理器802直接訪(fǎng)問(wèn)任 何存儲(chǔ)位置的一個(gè)或多個(gè)存儲(chǔ)器芯片,諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、突發(fā)SRAM或同步 突發(fā)SRAM (BSRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、快速頁(yè)面模式DRAM (FPM DRAM)、增強(qiáng)的 DRAM (EDRAM)、擴(kuò)展數(shù)據(jù)輸出RAM (EDO RAM)、擴(kuò)展數(shù)據(jù)輸出DRAM (EDO DRAM)、突發(fā)擴(kuò)展數(shù) 據(jù)輸出 DRAM (BED0 DRAM)、增強(qiáng)的 DRAM (EDRAM)、同步 DRAM (SDRAM)、JEDEC SRAM、PClOO SDRAM、雙數(shù)據(jù)率 SDRAM (DDR SDRAM)、增強(qiáng)的 SDRAM (ESDRAM)、同步鏈接 DRAM (SLDRAM), 直接Rambus DRAM (DRDRAM)或鐵電隨機(jī)存取存儲(chǔ)器(FRAM)。主存儲(chǔ)器822可以是基于任 何上述的存儲(chǔ)器芯片、或能夠如這里所述操作的任何其他可獲得的存儲(chǔ)器芯片。在圖8A所 示的實(shí)施例中,處理器802通過(guò)系統(tǒng)總線(xiàn)850與主存儲(chǔ)器822通信(下文將詳細(xì)描述)。圖 8A描述了其中處理器通過(guò)存儲(chǔ)器端口 803直接與主存儲(chǔ)器822通信的計(jì)算設(shè)備800的實(shí)施 例。例如,在圖8B中,主存儲(chǔ)器822可以是DRDRAM。
圖8B描述了其中主處理器802通過(guò)第二總線(xiàn)直接與緩沖存儲(chǔ)器840通信的實(shí)施 例,第二總線(xiàn)被稱(chēng)為后端總線(xiàn)。在其他實(shí)施例中,主處理器802使用系統(tǒng)總線(xiàn)850與緩沖存 儲(chǔ)器840通信。緩沖存儲(chǔ)器840 —般比主存儲(chǔ)器822具有更快的響應(yīng)時(shí)間并一般由SRAM、 BSRAM 或 EDRAM 提供。在圖8A所示的實(shí)施例中,處理器802通過(guò)局部系統(tǒng)總線(xiàn)850與各種I/O設(shè)備830 通信。各種總線(xiàn)用于將中央處理單元802連接到任何I/O設(shè)備830,包括VESA VL總線(xiàn)、ISA 總線(xiàn)、EISA總線(xiàn)、微通道結(jié)構(gòu)(MCA)總線(xiàn)、PCI總線(xiàn)、PCI-X總線(xiàn)、PCI快速總線(xiàn)或NuBus。對(duì) 于其中I/O設(shè)備是視頻顯示器擬4的實(shí)施例,處理器802使用改進(jìn)圖形端口(AGP)以與顯示 器擬4通信。圖8B描述了其中主處理器802通過(guò)HyperiTransport、快速I(mǎi)/O或hf iniBand 直接與I/O設(shè)備830b通信的計(jì)算機(jī)800的實(shí)施例。圖8B還描述了其中混合局部總線(xiàn)和直 接通信的實(shí)施例處理器802使用局部互連總線(xiàn)與I/O設(shè)備830a通信同時(shí)直接與I/O設(shè)備 830b通信。計(jì)算設(shè)備800可以支持任何合適的安裝設(shè)備816,例如用于接收諸如3. 5英寸盤(pán)、 5. 25英寸盤(pán)或ZIP盤(pán)之類(lèi)的軟盤(pán)的軟盤(pán)驅(qū)動(dòng)器、⑶-ROM驅(qū)動(dòng)器、⑶-R/RW驅(qū)動(dòng)器、DVD-ROM 驅(qū)動(dòng)器、各種格式的磁帶驅(qū)動(dòng)器、USB設(shè)備、硬盤(pán)驅(qū)動(dòng)器或適于安裝諸如軟件820或其部分 之類(lèi)的軟件和程序的任何其他設(shè)備,所述軟件或其部分涉及本發(fā)明或另外提供本發(fā)明的任 何技術(shù)。計(jì)算設(shè)備800進(jìn)一步包括存儲(chǔ)設(shè)備828,諸如一個(gè)或多個(gè)硬盤(pán)驅(qū)動(dòng)器或獨(dú)立冗余磁 盤(pán)陣列,用于存儲(chǔ)操作系統(tǒng)和其他相關(guān)軟件、并用于存儲(chǔ)諸如涉及本發(fā)明的軟件820的任 何程序之類(lèi)的應(yīng)用軟件程序??蛇x的,任何安裝設(shè)備816可以用作存儲(chǔ)設(shè)備828。而且,計(jì)算設(shè)備800包括網(wǎng)絡(luò)接口 818,以通過(guò)各種連接而對(duì)接到局域網(wǎng)(LAN)、廣 域網(wǎng)(WAN)或因特網(wǎng),所述連接包括但不限制于標(biāo)準(zhǔn)電話(huà)線(xiàn)、LAN或WAN鏈接(例如,802. 11、 Τ1、Τ3、561Λ、Χ. 25)、寬帶連接(例如,ISDN、幀延遲、ATM)、無(wú)線(xiàn)連接、或上述任何或所有連接 的某些組合。網(wǎng)絡(luò)接口 818包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線(xiàn)網(wǎng)絡(luò) 適配器、無(wú)線(xiàn)網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或任何其他設(shè)備,該任何其他設(shè)備適 于將計(jì)算設(shè)備800對(duì)接到能夠通信的任何類(lèi)型網(wǎng)絡(luò),并且執(zhí)行上述操作。大量I/O設(shè)備830a-830n存在于計(jì)算設(shè)備800中。輸入設(shè)備包括鍵盤(pán)、鼠標(biāo)、跟 蹤區(qū)、滾動(dòng)球、麥克風(fēng)和繪畫(huà)寫(xiě)字板。輸出設(shè)備包括視頻顯示器、揚(yáng)聲器、噴墨打印機(jī)、激光 打印機(jī)和染料升華打印機(jī)。如圖8A所示,I/O設(shè)備由I/O控制器823控制。I/O控制器控 制諸如鍵盤(pán)擬6和指示設(shè)備827之類(lèi)的一個(gè)或多個(gè)I/O設(shè)備,例如鼠標(biāo)或光筆。而且,I/O 設(shè)備也為計(jì)算設(shè)備800提供存儲(chǔ)設(shè)備擬8和/或安裝介質(zhì)816。在其他實(shí)施例中,計(jì)算設(shè) 備800提供USB連接以容納手持式USB存儲(chǔ)設(shè)備,諸如由加利福尼亞洲的Ios Alamitos的 Twintech工業(yè)公司制造的設(shè)備的USB閃速驅(qū)動(dòng)線(xiàn)。在其他實(shí)施例中,I/O設(shè)備830可以是系統(tǒng)總線(xiàn)850和外部通信總線(xiàn)之間的電 橋870,所述外部通信總線(xiàn)諸如USB總線(xiàn)、Apple Desktop總線(xiàn)、RS-232串行連接、SCSI 總線(xiàn)、Fireffire總線(xiàn)、Fireffire 800總線(xiàn)、以太網(wǎng)總線(xiàn)、AppleTalk總線(xiàn)、千兆位以太網(wǎng) 總線(xiàn)、異步傳輸模式總線(xiàn)、HIPPI總線(xiàn)、超HIPPI總線(xiàn)、serialPlus總線(xiàn)、SCI/LAMP總線(xiàn)、 FibreChannel總線(xiàn)或串行附加小型計(jì)算機(jī)系統(tǒng)接口總線(xiàn)。圖8A和8B中所述的種類(lèi)的計(jì)算設(shè)備800 —般在操作系統(tǒng)的控制下操作,其控 制任務(wù)的調(diào)度并訪(fǎng)問(wèn)系統(tǒng)資源。計(jì)算設(shè)備800可以運(yùn)行任何操作系統(tǒng),諸如任何版本的Microsoft Windows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用于Macintosh計(jì)算 機(jī)的任何版本的Mac OS 、任何嵌入式操作系統(tǒng)、任何網(wǎng)絡(luò)操作系統(tǒng)、任何實(shí)時(shí)操作系統(tǒng)、 任何開(kāi)源操作系統(tǒng)、任何私有操作系統(tǒng)、用于移動(dòng)計(jì)算設(shè)備或網(wǎng)絡(luò)設(shè)備的任何操作系統(tǒng)、 或能夠在計(jì)算設(shè)備上運(yùn)行并執(zhí)行這里所述操作的任何其他操作系統(tǒng)。一般的操作系統(tǒng)包 括WINDOWS 3. χ、WINDOWS 95、WINDOWS 98、WINDOWS 2000, WINDOWS NT 3. 51、WINDOWS NT 4.0、WINDOWS CE以及WINDOWS XP,所有這些由華盛頓州雷蒙德的微軟公司制造;由加利福 尼亞州庫(kù)珀蒂諾的蘋(píng)果公司制造的MacOS ;由紐約的Armonk的國(guó)際商用機(jī)器公司制造的 OS/2 ;以及由猶他州的鹽湖城的Caldera公司發(fā)布的免費(fèi)可得的操作系統(tǒng),Linux ;或它們 中的任何類(lèi)型和/或形式的Unix操作系統(tǒng)。在其他實(shí)施例中,計(jì)算設(shè)備800具有與設(shè)備一致的不同處理器、操作系統(tǒng)和輸入 設(shè)備。計(jì)算設(shè)備800可以是任何工作站、桌上型電腦、膝上型電腦或筆記本計(jì)算機(jī)、服務(wù)器、 手持計(jì)算機(jī)、移動(dòng)電話(huà)、任何其他計(jì)算機(jī)、或能夠通信并具有足夠處理器能力和存儲(chǔ)器能力 以執(zhí)行這里所述本發(fā)明操作的其他形式的計(jì)算或電信設(shè)備。而且,計(jì)算設(shè)備800可以是任 何類(lèi)型和/或形式的網(wǎng)絡(luò)設(shè)備、諸如遠(yuǎn)程訪(fǎng)問(wèn)設(shè)備、虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)設(shè)備、安全套接層 (SSL) VPN設(shè)備、路由器、交換機(jī)、電橋、或能夠執(zhí)行這里所述本發(fā)明的操作的任何形式的其 他網(wǎng)絡(luò)設(shè)備。雖然一般性地討論了本發(fā)明的裝置使用TCP/IP或借助TCP/IP通信,但是該裝置 可以使用任何修改的傳輸控制協(xié)議或與任何修改的傳輸控制協(xié)議通信,所述協(xié)議諸如事 務(wù)TCP (T/TCP)、具有選擇確認(rèn)的TCP (TCP-SACK)、具有大窗口的TCP (TCP-LW)、諸如在 TCP-Vegas協(xié)議中的擁塞預(yù)測(cè)和TCP欺騙。此外,本發(fā)明的裝置可以使用任何節(jié)點(diǎn)間或高性 能協(xié)議。而且,本發(fā)明的裝置可以使用任何其他傳輸和網(wǎng)絡(luò)協(xié)議或利用任何其他傳輸和網(wǎng) 絡(luò)協(xié)議操作,所述協(xié)議諸如在因特網(wǎng)分組交換(IPX)協(xié)議上的序列分組交換(SPX)協(xié)議。結(jié)論
雖然上面已描述了本發(fā)明的各種實(shí)施例,但應(yīng)該理解它們僅僅是示例性的而不是限制 性。因此,本領(lǐng)域技術(shù)人員應(yīng)該理解在不背離附加權(quán)利要求限定的本發(fā)明的精神和范圍的 情況下可以在形式和細(xì)節(jié)上進(jìn)行各種變化。因此,本發(fā)明的寬度和范圍不應(yīng)該由上述示例 性實(shí)施例限制,而只應(yīng)當(dāng)根據(jù)下面的權(quán)利要求書(shū)和其對(duì)等物來(lái)限定。
權(quán)利要求
1.一種在網(wǎng)絡(luò)設(shè)備中用于響應(yīng)來(lái)自多個(gè)客戶(hù)端對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的請(qǐng)求的方法,該 方法包括步驟由在網(wǎng)絡(luò)設(shè)備上操作的緩存管理器從第一客戶(hù)端接收對(duì)于來(lái)自始發(fā)服務(wù)器的動(dòng)態(tài)產(chǎn) 生對(duì)象的第一請(qǐng)求;由緩存管理器將第一請(qǐng)求傳送到始發(fā)服務(wù)器;由緩存管理器從始發(fā)服務(wù)器接收對(duì)第一請(qǐng)求的響應(yīng),該響應(yīng)包括動(dòng)態(tài)產(chǎn)生的對(duì)象; 響應(yīng)于第一請(qǐng)求,由緩存管理器發(fā)起將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第一客戶(hù)端,動(dòng)態(tài)產(chǎn)生 的對(duì)象在等待被傳送時(shí)存儲(chǔ)在網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)堆棧的傳輸緩沖器中;在完成傳送對(duì)第一客戶(hù)端的第一請(qǐng)求的響應(yīng)之前,由緩存管理器從第二客戶(hù)端接收對(duì) 于動(dòng)態(tài)產(chǎn)生對(duì)象的第二請(qǐng)求;以及由緩存管理器確定動(dòng)態(tài)產(chǎn)生的對(duì)象目前在網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)堆棧的傳輸緩沖器中;以及 由緩沖管理器并且響應(yīng)于確定動(dòng)態(tài)產(chǎn)生的對(duì)象目前在傳輸緩沖器中,響應(yīng)于第二請(qǐng)求 從傳輸緩沖器傳送動(dòng)態(tài)產(chǎn)生的對(duì)象到第二客戶(hù)端。
2.如權(quán)利要求1的方法,進(jìn)一步包括在完成將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第一客戶(hù)端和第二客戶(hù)端之前,從多個(gè)客戶(hù)端接收對(duì) 于動(dòng)態(tài)產(chǎn)生對(duì)象的多個(gè)請(qǐng)求;以及響應(yīng)于每個(gè)客戶(hù)端的請(qǐng)求,將動(dòng)態(tài)產(chǎn)生的對(duì)象從傳輸緩沖器傳送到多個(gè)客戶(hù)端。
3.如權(quán)利要求1的方法,進(jìn)一步包括步驟在完成將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第二客戶(hù)端之前,從第三客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì) 象的第三請(qǐng)求;以及響應(yīng)于第三請(qǐng)求,向第三客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象。
4.如權(quán)利要求1的方法,進(jìn)一步包括幾乎同時(shí)接收第一請(qǐng)求和第二請(qǐng)求。
5.如權(quán)利要求1的方法,進(jìn)一步包括將第二請(qǐng)求排隊(duì)。
6.如權(quán)利要求1的方法,其中所述動(dòng)態(tài)產(chǎn)生的對(duì)象被識(shí)別為不可緩存的。
7.如權(quán)利要求1的方法,包括通過(guò)與第二請(qǐng)求相關(guān)的對(duì)象決定因素確定第二請(qǐng)求是 用于第一請(qǐng)求的動(dòng)態(tài)產(chǎn)生的對(duì)象。
8.如權(quán)利要求1的方法,包括修改響應(yīng)以包括實(shí)體標(biāo)簽報(bào)頭或緩存控制報(bào)頭之一并 將修改的響應(yīng)傳送到第一客戶(hù)端或第二客戶(hù)端之一。
9.如權(quán)利要求1的方法,其中不從網(wǎng)絡(luò)設(shè)備的緩存器供應(yīng)傳送到第一客戶(hù)端和第二 客戶(hù)端的動(dòng)態(tài)產(chǎn)生的對(duì)象。
10.如權(quán)利要求1的方法,進(jìn)一步包括響應(yīng)于完成將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第一客戶(hù) 端和第二客戶(hù)端,由緩存管理器從傳輸緩存器中刷新該動(dòng)態(tài)產(chǎn)生的對(duì)象。
11.一種用于響應(yīng)來(lái)自多個(gè)客戶(hù)端對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的請(qǐng)求的網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備 包括用于由在網(wǎng)絡(luò)設(shè)備上操作的緩存管理器從第一客戶(hù)端接收對(duì)于來(lái)自始發(fā)服務(wù)器的動(dòng) 態(tài)產(chǎn)生對(duì)象的第一請(qǐng)求的裝置;用于由緩存管理器將第一請(qǐng)求傳送到始發(fā)服務(wù)器的裝置;用于由緩存管理器從始發(fā)服務(wù)器接收對(duì)第一請(qǐng)求的響應(yīng)的裝置,該響應(yīng)包括動(dòng)態(tài)產(chǎn)生 的對(duì)象;用于響應(yīng)于第一請(qǐng)求,由緩存管理器發(fā)起將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第一客戶(hù)端的裝 置,動(dòng)態(tài)產(chǎn)生的對(duì)象在等待被傳送時(shí)存儲(chǔ)在網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)堆棧的傳輸緩沖器中;用于在完成傳送對(duì)第一客戶(hù)端的第一請(qǐng)求的響應(yīng)之前,由緩存管理器從第二客戶(hù)端接 收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的第二請(qǐng)求的裝置;以及用于由緩存管理器確定動(dòng)態(tài)產(chǎn)生的對(duì)象目前在網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)堆棧的傳輸緩沖器中 的裝置;以及用于由緩沖管理器并且響應(yīng)于確定動(dòng)態(tài)產(chǎn)生的對(duì)象目前在傳輸緩沖器中,響應(yīng)于第二 請(qǐng)求從傳輸緩沖器傳送動(dòng)態(tài)產(chǎn)生的對(duì)象到第二客戶(hù)端的裝置;用于在完成將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第一客戶(hù)端和第二客戶(hù)端時(shí)并且響應(yīng)于完成將 動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第一客戶(hù)端和第二客戶(hù)端,由緩沖管理器刷新來(lái)自傳輸緩存器的該 動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。
12.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括這樣的裝置,該裝置用于在完成將動(dòng)態(tài)產(chǎn) 生的對(duì)象傳送到第一客戶(hù)端和第二客戶(hù)端之前,從多個(gè)客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的多 個(gè)請(qǐng)求;以及響應(yīng)于每個(gè)客戶(hù)端的請(qǐng)求,將動(dòng)態(tài)產(chǎn)生的對(duì)象從傳輸緩沖器傳送到多個(gè)客戶(hù) 端。
13.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括用于在完成將動(dòng)態(tài)產(chǎn)生的對(duì)象傳送到第二客戶(hù)端之前,從第三客戶(hù)端接收對(duì)于動(dòng)態(tài)產(chǎn) 生對(duì)象的第三請(qǐng)求的裝置;以及用于響應(yīng)于第三請(qǐng)求,向第三客戶(hù)端傳送動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。
14.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括用于幾乎同時(shí)接收第一請(qǐng)求和第二請(qǐng)求 的裝置。
15.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,其中網(wǎng)絡(luò)設(shè)備將第二請(qǐng)求排隊(duì)。
16.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,其中所述動(dòng)態(tài)產(chǎn)生的對(duì)象沒(méi)有被識(shí)別為可緩存的。
17.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括用于通過(guò)與第二請(qǐng)求相關(guān)的對(duì)象決定因 素確定第二請(qǐng)求是用于第一請(qǐng)求的動(dòng)態(tài)產(chǎn)生的對(duì)象的裝置。
18.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,其中網(wǎng)絡(luò)設(shè)備包括在客戶(hù)端和始發(fā)服務(wù)器之間進(jìn)行 通信中的裝置或計(jì)算設(shè)備之一。
19.如權(quán)利要求11的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括用于修改響應(yīng)以包括實(shí)體標(biāo)簽報(bào)頭或緩 存控制報(bào)頭之一并將修改的響應(yīng)傳送到第一客戶(hù)端或第二客戶(hù)端之一的裝置。
20.一種在網(wǎng)絡(luò)設(shè)備中用于響應(yīng)來(lái)自多個(gè)客戶(hù)端對(duì)于動(dòng)態(tài)產(chǎn)生對(duì)象的請(qǐng)求的方法,所 述方法包括由部署為多個(gè)客戶(hù)端和至少一個(gè)服務(wù)器之間的媒介的網(wǎng)絡(luò)設(shè)備,從第一客戶(hù)端接收對(duì) 于來(lái)自始發(fā)服務(wù)器的動(dòng)態(tài)產(chǎn)生對(duì)象的第一請(qǐng)求;響應(yīng)于對(duì)不存在于網(wǎng)絡(luò)設(shè)備的緩存器或網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)堆棧的傳輸緩沖器中的第一 請(qǐng)求的響應(yīng),由網(wǎng)絡(luò)設(shè)備將第一請(qǐng)求轉(zhuǎn)發(fā)到始發(fā)服務(wù)器;由網(wǎng)絡(luò)設(shè)備從始發(fā)服務(wù)器接收對(duì)第一請(qǐng)求的響應(yīng),該響應(yīng)包括動(dòng)態(tài)產(chǎn)生的對(duì)象; 由網(wǎng)絡(luò)設(shè)備在網(wǎng)絡(luò)堆棧的傳輸緩存器中排隊(duì)用于傳輸?shù)膭?dòng)態(tài)產(chǎn)生的對(duì)象,所述傳輸緩 存器由網(wǎng)絡(luò)設(shè)備的分組處理引擎提供;響應(yīng)于第一請(qǐng)求,發(fā)起將動(dòng)態(tài)產(chǎn)生的對(duì)象從網(wǎng)絡(luò)堆棧的傳輸緩存器傳送到第一客戶(hù)端;在完成傳送對(duì)第一客戶(hù)端的第一請(qǐng)求的響應(yīng)之前,由網(wǎng)絡(luò)設(shè)備從第二客戶(hù)端接收對(duì)于 動(dòng)態(tài)產(chǎn)生對(duì)象的第二請(qǐng)求;由網(wǎng)絡(luò)設(shè)備確定動(dòng)態(tài)產(chǎn)生的對(duì)象目前在用于第一響應(yīng)的傳輸緩沖器中;以及 響應(yīng)于第二請(qǐng)求,由網(wǎng)絡(luò)設(shè)備將動(dòng)態(tài)產(chǎn)生的對(duì)象從用于第一響應(yīng)的相同傳輸緩沖器傳 送到第二客戶(hù)端。全文摘要
本發(fā)明的解決方案提高了緩沖存儲(chǔ)器存儲(chǔ)和提供動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)的能力。本發(fā)明也使緩存器能夠有效處理各種不同的應(yīng)用請(qǐng)求類(lèi)型,因此增加應(yīng)用性能并消除了用于保持從緩存器提供的數(shù)據(jù)的新鮮度的管理復(fù)雜性。本發(fā)明除了結(jié)合以不復(fù)制最初產(chǎn)生對(duì)象的應(yīng)用服務(wù)器所執(zhí)行的處理的方式理解和處理數(shù)據(jù)的能力之外,通過(guò)使用試探法提供了緩存動(dòng)態(tài)內(nèi)容的有效方法以有效地預(yù)測(cè)該應(yīng)用服務(wù)器的性能。本發(fā)明的這些技術(shù)又增加了動(dòng)態(tài)緩存的使用,并因此有助于改進(jìn)網(wǎng)絡(luò)和潛在的應(yīng)用基礎(chǔ)設(shè)施的性能。
文檔編號(hào)H04L29/08GK102104632SQ20111007602
公開(kāi)日2011年6月22日 申請(qǐng)日期2005年12月30日 優(yōu)先權(quán)日2005年1月24日
發(fā)明者A·索尼, K·R·布尚, K·凱拉什, P·森達(dá)拉延, P·赫馬尼, R·辛哈, S·安娜馬萊薩米 申請(qǐng)人:茨特里克斯系統(tǒng)公司