用于對計算機網(wǎng)絡(luò)上的數(shù)據(jù)通信進行緩存的方法和系統(tǒng)的制作方法
【專利摘要】一種計算機實現(xiàn)的對計算機網(wǎng)絡(luò)中的多會話數(shù)據(jù)通信進行緩存的方法,包括步驟:(a)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間的一個或多個數(shù)據(jù)會話進行接收、攔截或監(jiān)控,該客戶端執(zhí)行多會話應(yīng)用程序以對期望的內(nèi)容對象進行檢索,所述客戶端與一個或多個元數(shù)據(jù)服務(wù)通信,從而發(fā)現(xiàn)內(nèi)容對象的元數(shù)據(jù);(b)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間進行交換的查詢和響應(yīng)進行分析,從而發(fā)現(xiàn)內(nèi)容對象的元數(shù)據(jù);(c)對客戶端與內(nèi)容源之間的后繼數(shù)據(jù)會話進行接收或攔截;(d)對客戶端使用的數(shù)據(jù)協(xié)議進行識別,并對數(shù)據(jù)會話中的數(shù)據(jù)查詢進行識別;(e)對客戶端在數(shù)據(jù)查詢中所請求的內(nèi)容對象或者它的多個部分進行識別;(f)確定內(nèi)容對象或者它的多個部分是否存儲在緩存中,如果是,則將存儲在緩存中的內(nèi)容對象或者它的多個部分發(fā)送給客戶端,如果不是,則將數(shù)據(jù)查詢發(fā)送給內(nèi)容源、對來自內(nèi)容源的數(shù)據(jù)響應(yīng)進行存儲、并將數(shù)據(jù)響應(yīng)發(fā)送給客戶端。
【專利說明】用于對計算機網(wǎng)絡(luò)上的數(shù)據(jù)通信進行緩存的方法和系統(tǒng)
[0001]相關(guān)申請的交叉引用
[0002]本申請要求于2010年12月30日提交的名稱為“METHODS AND SYSTEMS FORCACHING DATA COMMUNICATIONS OVER COMPUTER NETWORKS” 的美國臨時專利申請N0.61/428,538的優(yōu)先權(quán),在此通過引用將其并入本文。
【背景技術(shù)】
[0003]本申請總體上涉及計算機網(wǎng)絡(luò)(例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、無線網(wǎng)絡(luò)等)上的數(shù)據(jù)通信的緩存。
[0004]計算機網(wǎng)絡(luò)上的數(shù)據(jù)通信的緩存是眾所周知的網(wǎng)絡(luò)優(yōu)化技術(shù),其用于提高應(yīng)用程序的性能,并通過存儲和發(fā)送與終端用戶密切相關(guān)的流行內(nèi)容最有效地利用網(wǎng)絡(luò)資源。
[0005]內(nèi)容緩存方案常規(guī)上聚焦到客戶端-服務(wù)器通信(例如,網(wǎng)頁瀏覽或流媒體會話)的緩存上,其中緩存立刻將內(nèi)容對象(例如,網(wǎng)頁瀏覽中的文本文件和圖像)從服務(wù)器發(fā)送給客戶端。
[0006]緩存方案所支持的內(nèi)容應(yīng)用程序設(shè)計為支持緩存,它們不使用數(shù)據(jù)會話的端到端的加密,它們具有選擇性的用于緩存的客戶側(cè)明確支持并利用已知的數(shù)據(jù)端口(HTTP的tcp/80、RTMP 的 tcp/1935 等)。
[0007]網(wǎng)頁瀏覽和流媒體應(yīng)用程序所建立的是基本的數(shù)據(jù)會話。每個這樣的會話并入了緩存所需要的所有信息,用于識別內(nèi)容查詢、所請求的內(nèi)容對象(或者它的一部分)、可對對象進行維持的內(nèi)容源的地址。
[0008]傳統(tǒng)的緩存方案相應(yīng)地執(zhí)行下面的緩存方法:
[0009](al)接收來自客戶端的數(shù)據(jù)會話或者(a2)使用重定向網(wǎng)絡(luò)元件或其它元件,使用一個或多個已知的TCP或UDP端口或者通過7層數(shù)據(jù)協(xié)議分析,對客戶端和內(nèi)容來源之間的數(shù)據(jù)會話進行識別和攔截;
[0010](b)對客戶端使用的數(shù)據(jù)協(xié)議進行解析,從而識別會話中的數(shù)據(jù)查詢;
[0011]Ce)對客戶端所請求的唯一的數(shù)據(jù)對象(或者它的一部分)進行識別;以及
[0012](dl)將數(shù)據(jù)請求與存儲在緩存中的數(shù)據(jù)響應(yīng)進行匹配并將響應(yīng)發(fā)送至客戶端或者(d2)將數(shù)據(jù)請求傳播至服務(wù)器(內(nèi)容源),接收來自服務(wù)器的響應(yīng),選擇性地將響應(yīng)存儲在緩存中,將響應(yīng)發(fā)送至請求的客戶端。
[0013]近年來,因特網(wǎng)應(yīng)用程序在功能性和復(fù)雜性上發(fā)生了演變,使用僅在一個下載會話范圍內(nèi)存在的動態(tài)內(nèi)容對象標識符(例如,HTTPURL),支持來自多個內(nèi)容源的同一內(nèi)容對象在若干并行會話中傳遞,包含多個動態(tài)端口,包含數(shù)據(jù)會話的端到端加密。這些新的應(yīng)用程序包括多種類型的用于文件共享和流媒體的點對點(P2P)應(yīng)用程序、用于通過HTTP傳遞視頻的自適應(yīng)比特率協(xié)議、HTTP下載加速器、軟件升級服務(wù)(如Microsoft Windows升級)。
[0014]點對點應(yīng)用程序通常執(zhí)行一種“對等點發(fā)現(xiàn)”機制,其中客戶端應(yīng)用程序訪問P2P網(wǎng)絡(luò),請求網(wǎng)絡(luò)發(fā)現(xiàn)可提供內(nèi)容對象的內(nèi)容源,隨后與這些內(nèi)容源建立會話,這其中的一些會話使用端到端加密。[0015]普遍的做法是,P2P網(wǎng)絡(luò)中的內(nèi)容源使用動態(tài)端口,而不是“已知的”靜態(tài)端口。
[0016]P2P應(yīng)用程序可使用7層會話識別標準,以這樣的方式加密來避免網(wǎng)絡(luò)元件的檢測。
[0017]因此,傳統(tǒng)的緩存方案不能識別和攔截這些數(shù)據(jù)會話,而且由于加密,它們不能對數(shù)據(jù)協(xié)議進行解析來識別數(shù)據(jù)查詢。
[0018]非P2P應(yīng)用程序(例如,下載加速器、自適應(yīng)比特率視頻客戶端、軟件升級服務(wù)等)通常建立多個會話來對相同的內(nèi)容對象安排檢索,其中每個單獨的會話不提供用于識別所請求的數(shù)據(jù)對象和/或?qū)?shù)據(jù)請求與數(shù)據(jù)響應(yīng)進行匹配的緩存所需要的所有信息。
[0019]這些新應(yīng)用程序所展現(xiàn)的特性消除了傳統(tǒng)緩存技術(shù)的問題。期
[0020]望提供對支持這些新應(yīng)用程序的內(nèi)容緩存的供選擇的方法。
【發(fā)明內(nèi)容】
[0021]根據(jù)一個或多個實施例,提供了一種計算機實現(xiàn)的對計算機網(wǎng)絡(luò)中的多會話數(shù)據(jù)通信進行緩存的方法,包括步驟:Ca)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間的一個或多個數(shù)據(jù)會話進行接收、攔截或監(jiān)控,該客戶端執(zhí)行多會話應(yīng)用程序以對期望的內(nèi)容對象進行檢索,所述客戶端與一個或多個元數(shù)據(jù)服務(wù)通信,從而發(fā)現(xiàn)內(nèi)容對象的元數(shù)據(jù);(b)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間進行交換的查詢和響應(yīng)進行分析,從而發(fā)現(xiàn)內(nèi)容對象的元數(shù)據(jù);(c)對客戶端與內(nèi)容源之間的后繼數(shù)據(jù)會話進行接收或攔截;(d)對客戶端使用的數(shù)據(jù)協(xié)議進行識別,并對數(shù)據(jù)會話中的數(shù)據(jù)查詢進行識別;(e)對客戶端在數(shù)據(jù)查詢中所請求的內(nèi)容對象或者它的多個部分進行識別;(f)確定內(nèi)容對象或者它的多個部分是否存儲在緩存中,如果是,則將存儲在緩存中的內(nèi)容對象或者它的多個部分發(fā)送給客戶端,如果不是,則將數(shù)據(jù)查詢發(fā)送給內(nèi)容源、對來自內(nèi)容源的數(shù)據(jù)響應(yīng)進行存儲、并將數(shù)據(jù)響應(yīng)發(fā)送給客戶端。
[0022]根據(jù)一個或多個實施例,提供了一種用于對計算機網(wǎng)絡(luò)中的多會話數(shù)據(jù)通信進行緩存的緩存服務(wù)。該緩存服務(wù)用于:(a)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間的一個或多個數(shù)據(jù)會話進行接收、攔截或監(jiān)控,該客戶端執(zhí)行多會話應(yīng)用程序以對期望的內(nèi)容對象進行檢索,所述客戶端與一個或多個元數(shù)據(jù)服務(wù)通信,從而發(fā)現(xiàn)內(nèi)容對象的元數(shù)據(jù);(b)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間進行交換的查詢和響應(yīng)進行分析,從而發(fā)現(xiàn)內(nèi)容對象的元數(shù)據(jù);(C)對客戶端與內(nèi)容源之間的后繼數(shù)據(jù)會話進行接收或攔截;(d)對客戶端使用的數(shù)據(jù)協(xié)議進行識別,并對數(shù)據(jù)會話中的數(shù)據(jù)查詢進行識別;(e)對客戶端在數(shù)據(jù)查詢中所請求的內(nèi)容對象或者它的多個部分進行識別;以及(f)確定內(nèi)容對象或者它的多個部分是否存儲在緩存中,如果是,則將存儲在緩存中的內(nèi)容對象或者它的多個部分發(fā)送給客戶端,如果不是,則將數(shù)據(jù)查詢發(fā)送給內(nèi)容源、對來自內(nèi)容源的數(shù)據(jù)響應(yīng)進行存儲、并將數(shù)據(jù)響應(yīng)發(fā)送給客戶端。
【專利附圖】
【附圖說明】
[0023]圖1為示出了根據(jù)一個或多個實施例的緩存服務(wù)的部署的簡圖。
[0024]圖2為示出了根據(jù)一個或多個可替換實施例的緩存服務(wù)的部署的簡圖?!揪唧w實施方式】
[0025]根據(jù)多個實施例,提供了一種緩存服務(wù),其應(yīng)用程序使用多個會話對同一內(nèi)容對象(例如,文件或數(shù)據(jù)流)進行檢索。
[0026]該緩存服務(wù)支持的多會話應(yīng)用程序可包括:
[0027](a)使用一個或多個會話發(fā)現(xiàn)內(nèi)容對象相關(guān)的信息(下文中稱為“內(nèi)容對象元數(shù)據(jù)”)的應(yīng)用程序,該信息用于識別:應(yīng)用程序接觸的用于檢索內(nèi)容對象的內(nèi)容源、執(zhí)行這些任務(wù)所使用的數(shù)據(jù)協(xié)議、用于檢索對象的數(shù)據(jù)查詢。
[0028](b)使用多個會話檢索內(nèi)容對象的應(yīng)用程序,僅在某些會話中傳遞用于對象識別所需要的信息。
[0029]( a)使用內(nèi)容對象元數(shù)據(jù)進行內(nèi)容對象檢索的多會話應(yīng)用程序 [0030]圖1示出了一個示例性網(wǎng)絡(luò)結(jié)構(gòu),其示出了根據(jù)一個或多個實施例的緩存服務(wù)的使用??蛻舳薃1在網(wǎng)絡(luò)上對一個或多個元數(shù)據(jù)服務(wù)M建立多個會話,發(fā)送用于對內(nèi)容對象Z1的內(nèi)容對象元數(shù)據(jù)進行檢索的數(shù)據(jù)查詢,以及接收一個或多個來自元數(shù)據(jù)服務(wù)M的響應(yīng)。
[0031]內(nèi)容對象元數(shù)據(jù)包括至少一個變量,該變量從下面的幾種中選擇:
[0032](i) 一個或多個內(nèi)容源的地址;
[0033](ii)單獨內(nèi)容源支持的協(xié)議;
[0034](iii)每個對象或每個單獨內(nèi)容源的密匙;及
[0035](iv)內(nèi)容對象的結(jié)構(gòu)
[0036]內(nèi)容源地址可通過IP地址識別,例如,使用IPv4的IP地址1.1.1.1或IPv6地址fe80::200:f8ff:fe21:67cf,或者使用能夠利用域名系統(tǒng)(DNS)分解為IP地址的域名,如cachel2.bos.us.cdn.net。
[0037]內(nèi)容源地址可使用隱含命名的端口號,這針對的是使用已知的協(xié)議端口的應(yīng)用程序(例如,HTTP協(xié)議使用的tcp/80端口),或者使用明確命名的端口。
[0038]內(nèi)容源地址可連同它所支持的協(xié)議一起識別,包括,但不限于,使用如RFC1738中所定義的統(tǒng)一資源定位器(URL),其為對象指定協(xié)議、內(nèi)容源地址、端口、遠程路徑。
[0039]內(nèi)容對象結(jié)構(gòu)信息包括允許客戶端A1形成對于對象部件的數(shù)據(jù)查詢并對接收到的針對這些查詢做出的響應(yīng)的數(shù)據(jù)響應(yīng)的正確性進行驗證的信息。
[0040]內(nèi)容對象結(jié)構(gòu)信息包括涉及組成對象的多個部件相關(guān)的信息,例如Bittorrent協(xié)議使用的“塊(piece)”、eDonkey P2P協(xié)議使用的多個“部件(part)”、自適應(yīng)比特率流媒體傳輸協(xié)議(如 Microsoft Silverlight Smooth Streaming、Adobe HTTP DynamicStreaming、Apple HTTP Live Streaming 等)中使用的“回放等級(playback level)”。
[0041]有關(guān)內(nèi)容對象部件的信息包括至少下面的一種:內(nèi)容對象的部件的枚舉、每個部件的長度、每個部件的數(shù)據(jù)校驗和、特定內(nèi)容源上的部件的可用性,其中內(nèi)容源是利用上面的[0023-0025]所定義的內(nèi)容源地址進行識別的。
[0042]包括上面的所有或部分信息的元數(shù)據(jù)可存儲在單獨的具有預(yù)先設(shè)定的結(jié)構(gòu)的文件中,例如用于 Bittorrent 的 torrent 文件或Microsoft Silverlight smooth streaming使用的manifest文件。
[0043]提供內(nèi)容對象元數(shù)據(jù)的元數(shù)據(jù)服務(wù)M可包括用于支持發(fā)送特定的應(yīng)用程序或一個或多個內(nèi)容對象的專用網(wǎng)絡(luò)服務(wù)器(例如BT跟蹤服務(wù)器、ED2K服務(wù)器等)、一般搜索引擎(Google、Microsoft Bing等)、用于共同存儲元數(shù)據(jù)的具有多個計算機節(jié)點的網(wǎng)絡(luò)(例如P2P應(yīng)用程序使用的分布式哈希表網(wǎng)絡(luò))、或者其它分享分布式內(nèi)容源發(fā)現(xiàn)網(wǎng)絡(luò)(例如分布式哈希表網(wǎng)絡(luò))的客戶端、或者其它下載和/或服務(wù)于內(nèi)容對象Z1并維持與之相關(guān)的元數(shù)據(jù)的客戶端。
[0044]客戶端A1可使用多個元數(shù)據(jù)服務(wù)M來發(fā)現(xiàn)內(nèi)容對象元數(shù)據(jù),其中一個服務(wù)M1可提供一部分內(nèi)容對象元數(shù)據(jù)并選擇性地指向另一個服務(wù)M1用于提供另一部分。
[0045]于是,例如,客戶端A1可通過Bittorrent搜索引擎檢索torrent文件,Bittorrent搜索引擎包括內(nèi)容對象數(shù)據(jù)結(jié)構(gòu)信息以及提供當前動態(tài)(active)內(nèi)容源地址信息的BT跟蹤服務(wù)器的URL。
[0046]為了識別新的內(nèi)容源和/或內(nèi)容對象結(jié)構(gòu)信息(例如,如果對象Z1為活動的數(shù)據(jù)流,它的新的部分是能夠連續(xù)獲得的),下載內(nèi)容對象Z1或者它的某些部分的過程中,客戶端A1可繼續(xù)向元數(shù)據(jù)服務(wù)M發(fā)送數(shù)據(jù)查詢。
[0047]根據(jù)一個或多個實施例,緩存服務(wù)C對在客戶端A1與一個或多個元數(shù)據(jù)服務(wù)M之間交換的數(shù)據(jù)查詢和/或響應(yīng)進行接收并存儲。
[0048]根據(jù)一個或多個實施例,通過進入A1與B之間的數(shù)據(jù)路徑,或者通過使用一個或多個位于數(shù)據(jù)路徑中并將指定數(shù)據(jù)會話重定向到緩存服務(wù)C的專門的重定向設(shè)備(例如,負載平衡器、路由器、DPI設(shè)備等),緩存服務(wù)C攔截A1與M之間的會話,并對A1與M之間的數(shù)據(jù)查詢和響應(yīng)進行中繼。
[0049]根據(jù)一個或多個實施例,緩存服務(wù)C對元數(shù)據(jù)服務(wù)M提供的至少一個元數(shù)據(jù)響應(yīng)進行修改,例如,指示緩存服務(wù)C作為內(nèi)容源或者內(nèi)容對象Z1的元數(shù)據(jù)服務(wù)。
[0050]根據(jù)一個或多個實施例,利用光分接頭、鏡像端口、或其它復(fù)制網(wǎng)絡(luò)流通的設(shè)備,緩存服務(wù)C接收到客戶端A1與元數(shù)據(jù)服務(wù)M之間的通信的副本。
[0051 ] 根據(jù)一個或多個實施例,通過提供至少一個元數(shù)據(jù)服務(wù)M,緩存服務(wù)C接收來自客戶端A1的對于內(nèi)容對象Z1的數(shù)據(jù)請求。
[0052]根據(jù)一個或多個實施例,緩存服務(wù)C隨后向元數(shù)據(jù)服務(wù)M自身提出對于內(nèi)容對象Z1元數(shù)據(jù)的查詢并對響應(yīng)進行接收和存儲。
[0053]根據(jù)一個或多個實施例,緩存服務(wù)C不斷地對在至少一個客戶端A1與元數(shù)據(jù)服務(wù)M之間交換的查詢和響應(yīng)、以及緩存服務(wù)C直接收到的來自元數(shù)據(jù)服務(wù)M的響應(yīng)進行分析,如上面所描述的。
[0054]于是,緩存服務(wù)C保持對于客戶端A1正在檢索的至少一個內(nèi)容對象Z1的內(nèi)容對象元數(shù)據(jù)Mz。
[0055]根據(jù)一個或多個實施例,緩存服務(wù)C將元數(shù)據(jù)響應(yīng)存儲為與C最近一次接收到的響應(yīng)關(guān)聯(lián)的元數(shù)據(jù)Mz的一部分。
[0056]緩存服務(wù)C隨后根據(jù)超時原則周期性地將那些大于一定時間前接收到的響應(yīng)丟棄。
[0057]根據(jù)一個或多個實施例,緩存服務(wù)對元數(shù)據(jù)請求和響應(yīng)進行監(jiān)控,并將任何所存儲的與隨后收到的元數(shù)據(jù)響應(yīng)矛盾的響應(yīng)丟棄。
[0058]檢索內(nèi)容對象Z1的相關(guān)元數(shù)據(jù)后,客戶端A1以及客戶端A1利用元數(shù)據(jù)服務(wù)M發(fā)現(xiàn)的至少一個內(nèi)容源B1,開始彼此建立數(shù)據(jù)會話,用于通過A1檢索內(nèi)容對象Z1或者它的一部分。
[0059]根據(jù)一個或多個實施例,緩存服務(wù)C對客戶端A1與內(nèi)容源B1之間建立的數(shù)據(jù)會話S1進行攔截。
[0060]根據(jù)一個或多個實施例,緩存服務(wù)C通過進入A1與B1之間的數(shù)據(jù)路徑,或者通過使用一個或多個位于數(shù)據(jù)路徑中并將指定數(shù)據(jù)會話重定向到緩存服務(wù)C的專門的重定向設(shè)備(例如,負載平衡器、路由器、DPI設(shè)備等)對數(shù)據(jù)會話進行攔截。
[0061]根據(jù)一個或多個實施例,緩存服務(wù)C只對已經(jīng)在A1與內(nèi)容源B/之間建立的會話進行攔截,該B/與緩存服務(wù)C存儲的對象Z1的元數(shù)據(jù)Mz相匹配。
[0062]根據(jù)一個或多個實施例,客戶端A1與緩存服務(wù)C建立至少一個會話S2,該緩存服務(wù)C被客戶端A1識別為內(nèi)容對象Z1的一個內(nèi)容源。
[0063]根據(jù)一個或多個實施例,緩存服務(wù)C利用下面的協(xié)議中的至少一個來攔截客戶端A1與內(nèi)容源B1之間的會話S1中的數(shù)據(jù)查詢和數(shù)據(jù)響應(yīng):
[0064]( i )如上面所描述的,與客戶端A1相關(guān)聯(lián)的數(shù)據(jù)協(xié)議,作為元數(shù)據(jù)Mz的一部分;
[0065](ii)如上面所描述的,與會話S1相關(guān)聯(lián)的數(shù)據(jù)協(xié)議,作為元數(shù)據(jù)Mz的一部分;以及
[0066](iii)當使用基于簽名的或其它一般的協(xié)議識別技術(shù)對會話S1中接收到的數(shù)據(jù)查詢和響應(yīng)進行分析時,緩存服務(wù)C所識別的數(shù)據(jù)協(xié)議。
[0067]根據(jù)一個或多個實施例,緩存服務(wù)C對會話S2使用相似的方法。
[0068]根據(jù)一個或多個實施例,當使用[0048]中描述的方法未能對會話S1和S2中的數(shù)據(jù)協(xié)議識別時,緩存服務(wù)C可應(yīng)用至少一個密匙K (該密匙K作為元數(shù)據(jù)Mz由C存儲),用于與客戶端A1或內(nèi)容源B1或二者同時建立加密的會話。
[0069]密匙K可與內(nèi)容對象Z (例如,在Bittorrent中使用對象Z的哈希標識符來對Bittorrent對等點之間的會話加密)或多個特定內(nèi)容源相關(guān)聯(lián)。
[0070]根據(jù)一個或多個實施例,在與客戶端A1之間建立數(shù)據(jù)會話并且對該會話中使用的協(xié)議進行識別后,緩存服務(wù)C接收來自客戶端4的對于對象Z1的數(shù)據(jù)查詢Q1 (或者它的一部分)。
[0071]根據(jù)一個或多個實施例,如上面所述,緩存服務(wù)C使用與內(nèi)容對象Z1相關(guān)聯(lián)的元數(shù)據(jù)Mz對與查詢匹配的響應(yīng)進行識別。
[0072]例如,如果客戶端A1請求在Microsoft Silverlight smooth streaming協(xié)議中可用的500Kbps回放級別的組塊的內(nèi)容對象Z1,其起始偏移為0,未標示末端偏移,緩存服務(wù)C可使用描述對象Z1的元數(shù)據(jù)Mz,以識別末端偏移。
[0073]根據(jù)一個或多個實施例,如果緩存服務(wù)C存儲了與查詢Q1匹配的響應(yīng)R1,則C將該響應(yīng)發(fā)送給末端客戶端Ap
[0074]根據(jù)一個或多個實施例,將數(shù)據(jù)響應(yīng)R1發(fā)送給客戶端A1前,緩存服務(wù)C可利用存儲的與內(nèi)容對象Z相關(guān)聯(lián)的元數(shù)據(jù)Mz來對數(shù)據(jù)響應(yīng)R1的有效性進行驗證。
[0075]根據(jù)一個或多個實施例,如果緩存服務(wù)C中不存在與查詢Q1匹配的響應(yīng),并且查詢Q1已經(jīng)作為客戶端A1與內(nèi)容源B1之間的會話S1的一部分發(fā)出,則緩存服務(wù)C轉(zhuǎn)發(fā)該查詢以在內(nèi)容源B1中檢索該響應(yīng),并接收和選擇性地存儲該響應(yīng),并將該響應(yīng)中繼給客戶端
A1O[0076]根據(jù)一個或多個實施例,當緩存服務(wù)C中未找到與查詢Q1匹配的響應(yīng)時,緩存服務(wù)C發(fā)送允許其對數(shù)據(jù)查詢Q1作出響應(yīng)的數(shù)據(jù)查詢Q/給至少一個內(nèi)容源B,該內(nèi)容源B是C基于它所存儲的元數(shù)據(jù)Mz識別為承載內(nèi)容對象Z的內(nèi)容源。
[0077]隨后,緩存服務(wù)C接收對于這些查詢的響應(yīng)R/,對它們進行存儲并選擇性地根據(jù)元數(shù)據(jù)Mz對它們的有效性進行驗證,并將對查詢Q1的響應(yīng)發(fā)送給客戶端K。
[0078]根據(jù)一個或多個實施例,當緩存服務(wù)C中未找到與查詢Q1匹配的響應(yīng)時,C可將客戶端A1重定向至由緩存服務(wù)存儲在元數(shù)據(jù)Mz中的內(nèi)容對象Z的一個內(nèi)容源B。
[0079](b)僅允許在某些會話中對內(nèi)容對象進行識別的多會話應(yīng)用程序
[0080]客戶端A2建立對一個或多個目標B2多個并聯(lián)或串聯(lián)的會話S2,用于檢索內(nèi)容對象Z20在各個會話中,客戶端A2發(fā)送對于內(nèi)容對象Z2的各部分的多個數(shù)據(jù)請求。
[0081 ] 依據(jù)客戶端A2和目標B2所使用的對內(nèi)容對象Z和/或它的多個部分的命名習(xí)慣,用于攔截或接收會話S2的緩存服務(wù)C可能無法識別各個會話中客戶端A2所請求的內(nèi)容對象和/或它的多個部分,或者可能無法識別與這些請求匹配的數(shù)據(jù)響應(yīng)。
[0082]客戶端A2和一個或多個內(nèi)容源B2可使用動態(tài)URL (所謂的“哈希URL”)來識別對象Z2,該URL為對于內(nèi)容對象Z2的每次下載唯一指定的下載地址。這種情況下,緩存服務(wù)C不能僅依靠數(shù)據(jù)查詢中的數(shù)據(jù)來識別匹配的響應(yīng),而是對多個數(shù)據(jù)響應(yīng)進行分析,從而對請求的對象進行識別并將其與之前存儲的數(shù)據(jù)響應(yīng)進行匹配。
[0083]根據(jù)一個或多個實施例,當在一個或多個會話中接收到允許對內(nèi)容對象Z進行識別的這樣的數(shù)據(jù)查詢和/或響應(yīng)時,C在列表L2中對內(nèi)容對象Z2的標識符以及客戶端A2的IP地址、內(nèi)容源B2的IP地址、客戶端A2使用的動態(tài)內(nèi)容標識符(例如URL)進行存儲。
[0084]根據(jù)一個或多個實施例,當緩存服務(wù)C接收到不允許其對查詢和/或響應(yīng)中所引用的內(nèi)容對象Z進行識別的數(shù)據(jù)查詢和/或數(shù)據(jù)響應(yīng)時,緩存服務(wù)C確定客戶端A2的IP地址、動態(tài)內(nèi)容標識符URL、內(nèi)容源B2的IP地址是否存儲在列表L2中。
[0085]根據(jù)一個或多個實施例,如果應(yīng)用程序使用多個內(nèi)容源,緩存服務(wù)C可以不考慮內(nèi)容源B2的IP地址。
[0086]根據(jù)一個或多個實施例,緩存服務(wù)C根據(jù)超時原則從表L4中將客戶端A2看到的涉及內(nèi)容對象Z2的上次活動后的項目移除。
[0087]上面描述的緩存服務(wù)進程可以軟件、硬件、固件及其它們的組合來實現(xiàn)。優(yōu)選地,這些進程以一個或多個計算機程序?qū)崿F(xiàn),這些計算機程序運行于可編程設(shè)備上,該可編程設(shè)備包括處理器、處理器可讀存儲媒介(包括例如易失性和非易失性存儲器和/或存儲元件)、輸入和輸出設(shè)備。每個計算機程序可以是駐留在設(shè)備的隨機存取存儲器中的代碼模塊形式的一組指令(程序代碼)。在設(shè)備需要前,這組指令可存儲在另一個計算機存儲器(例如,硬盤驅(qū)動器,或者可移動存儲器(如光盤、外部硬盤驅(qū)動器、記憶卡、閃存驅(qū)動器))中或者存儲在另一個計算機系統(tǒng)中并通過因特網(wǎng)或其它網(wǎng)絡(luò)下載。
[0088]這樣,已經(jīng)描述了若干說明性實施例,應(yīng)當理解的是,該領(lǐng)域內(nèi)的技術(shù)人員可輕易地進行若干更改、修改和改進。這些更改、修改和改進意在構(gòu)成本公開的一部分,并且意在位于本公開的精神和范圍內(nèi)。盡管本文討論了一些例子并包含了詳細的功能或結(jié)構(gòu)元件的組合,但是應(yīng)當了解的是,根據(jù)本發(fā)明,這些功能和元件可以以其它方式組合,從而實現(xiàn)相同或不同的目的。特別是,連同某個實施例討論的操作、元件和特征不意在從其它實施例中的類似的或其它作用中排除在外。
[0089]此外,本文描述的元件和組件可進一步劃分為額外的組件或連接到一起,從而形成較少的一些用于執(zhí)行相同功能的組件。例如,緩存服務(wù)可包括一個或多個物理機器,或在物理機器上運行的一個或多個虛擬機器。此外,緩存服務(wù)可包括通過因特網(wǎng)或其它網(wǎng)絡(luò)連接的一組計算機或許多分布式計算機。
[0090]相應(yīng)地,前面的描述及附圖僅作為實例,而不是意在限制本發(fā)明。
【權(quán)利要求】
1.一種計算機實現(xiàn)的對計算機網(wǎng)絡(luò)中的多會話數(shù)據(jù)通信進行緩存的方法,包括步驟: (a)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間的一個或多個數(shù)據(jù)會話進行接收、攔截或監(jiān)控,該客戶端執(zhí)行多會話應(yīng)用程序以對期望的內(nèi)容對象進行檢索,所述客戶端與一個或多個元數(shù)據(jù)服務(wù)通信,從而發(fā)現(xiàn)所述內(nèi)容對象的元數(shù)據(jù); (b)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間進行交換的查詢和響應(yīng)進行分析,從而發(fā)現(xiàn)所述內(nèi)容對象的元數(shù)據(jù); (c)對客戶端與內(nèi)容源之間的后繼數(shù)據(jù)會話進行接收或攔截; Cd)對客戶端使用的數(shù)據(jù)協(xié)議進行識別,并對數(shù)據(jù)會話中的數(shù)據(jù)查詢進行識別; Ce)對客戶端在數(shù)據(jù)查詢中所請求的內(nèi)容對象或者它的多個部分進行識別;以及 (f)確定內(nèi)容對象或者它的多個部分是否存儲在緩存中,如果是,則將存儲在緩存中的內(nèi)容對象或者它的多個部分發(fā)送給客戶端,如果不是,則將數(shù)據(jù)查詢發(fā)送給內(nèi)容源、對來自內(nèi)容源的數(shù)據(jù)響應(yīng)進行存儲、并將數(shù)據(jù)響應(yīng)發(fā)送給客戶端。
2.如權(quán)利要求1所述的方法,其中步驟(b)包括對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間進行交換的查詢和響應(yīng)進行持續(xù)的分析,從而發(fā)現(xiàn)內(nèi)容對象的元數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其中步驟(c)包括僅對具有通過元數(shù)據(jù)獲知的內(nèi)容源的后繼數(shù)據(jù)會話進行攔截。
4.如權(quán)利要求1所述的方法,其中步驟(d)包括使用元數(shù)據(jù)對客戶端使用的數(shù)據(jù)協(xié)議進行識別,并對后繼數(shù)據(jù)會話中的數(shù)據(jù)查詢進行識別。
5.如權(quán)利要求1所述的方法,其中步驟(d)包括使用元數(shù)據(jù)對數(shù)據(jù)會話中使用的加密協(xié)議進行檢測和解密。
6.如權(quán)利要求1所述的方法,其中步驟(e)包括識別查詢和對查詢的響應(yīng)中的不完整數(shù)據(jù),并從元數(shù)據(jù)獲取進一步的信息以使不完整數(shù)據(jù)完整。
7.如權(quán)利要求1所述的方法,其中步驟(f)包括使用元數(shù)據(jù)來確定內(nèi)容對象或者它的多個部分是否存儲在緩存中。
8.如權(quán)利要求1所述的方法,其中這些方法步驟在緩存服務(wù)中實現(xiàn),并且其中步驟(f)包括與客戶端建立至少一個會話,所述緩存服務(wù)被客戶端識別為內(nèi)容對象的至少一個內(nèi)容源。
9.如權(quán)利要求1所述的方法,其中步驟(f)包括在存儲數(shù)據(jù)響應(yīng)之前使用元數(shù)據(jù)對存儲在緩存中的內(nèi)容對象的有效性進行驗證,并選擇性地將與元數(shù)據(jù)不匹配的數(shù)據(jù)響應(yīng)丟棄。
10.如權(quán)利要求1所述的方法,其中步驟(f)包括使用元數(shù)據(jù)對存儲在緩存中的數(shù)據(jù)響應(yīng)的有效性進行驗證,從而確定匹配的數(shù)據(jù)響應(yīng)或者它的多個部分是否存儲在緩存中,并將與元數(shù)據(jù)不匹配的數(shù)據(jù)響應(yīng)丟棄。
11.如權(quán)利要求1所述的方法,其中元數(shù)據(jù)對如下項目進行識別:存儲內(nèi)容對象或者它的多個部分的內(nèi)容源的地址、內(nèi)容源支持的數(shù)據(jù)協(xié)議、內(nèi)容對象或內(nèi)容源的密鑰、或者內(nèi)容對象結(jié)構(gòu)。
12.如權(quán)利要求1所述的方法,還包括對一個或多個元數(shù)據(jù)服務(wù)向客戶端發(fā)送的元數(shù)據(jù)進行修改,從 而將緩存服務(wù)指定為內(nèi)容源或指定為內(nèi)容對象的元數(shù)據(jù)服務(wù)。
13.如權(quán)利要求1所述的方法,還包括將查詢發(fā)送給一個或多個元數(shù)據(jù)服務(wù)以獲得與內(nèi)容對象相關(guān)的元數(shù)據(jù),并接收和存儲對查詢的響應(yīng)。
14.如權(quán)利要求1所述的方法,還包括對通過或經(jīng)過對來自多個元數(shù)據(jù)服務(wù)中的一個元數(shù)據(jù)服務(wù)的數(shù)據(jù)的監(jiān)控所接收到的或者攔截的元數(shù)據(jù)進行存儲,并將所存儲的超出規(guī)定時期前接收到的元數(shù)據(jù)丟棄。
15.如權(quán)利要求1所述的方法,還包括對從多個元數(shù)據(jù)服務(wù)中的一個元數(shù)據(jù)服務(wù)接收到的元數(shù)據(jù)進行存儲,并將所存儲的與最近收到的元數(shù)據(jù)矛盾的元數(shù)據(jù)丟棄。
16.如權(quán)利要求1所述的方法,其中數(shù)據(jù)協(xié)議與客戶端或會話相關(guān)聯(lián)。
17.如權(quán)利要求1所述的方法,其中通過使用基于簽名的協(xié)議識別技術(shù)對數(shù)據(jù)協(xié)議進行識別。
18.如權(quán)利要求1所述的方法,還包括與客戶端和/或內(nèi)容源建立加密的會話。
19.如權(quán)利要求1所述的方法,還包括使用元數(shù)據(jù)對內(nèi)容源進行識別,從而對內(nèi)容對象或者它的多個部分進行檢索。
20.如權(quán)利要求19所述的方法,還包括使用元數(shù)據(jù)使來自內(nèi)容源的響應(yīng)有效。
21.一種計算機實現(xiàn)的用于對計算機網(wǎng)絡(luò)中的多會話數(shù)據(jù)通信進行緩存的緩存服務(wù),所述緩存服務(wù)用于: (a)對客戶端與一個或 多個元數(shù)據(jù)服務(wù)之間的一個或多個數(shù)據(jù)會話進行接收、攔截或監(jiān)控,該客戶端執(zhí)行多會話應(yīng)用程序以對期望的內(nèi)容對象進行檢索,所述客戶端與一個或多個元數(shù)據(jù)服務(wù)通信,從而發(fā)現(xiàn)所述內(nèi)容對象的元數(shù)據(jù); (b)對客戶端與一個或多個元數(shù)據(jù)服務(wù)之間進行交換的查詢和響應(yīng)進行分析,從而發(fā)現(xiàn)所述內(nèi)容對象的元數(shù)據(jù); (c)對客戶端與內(nèi)容源之間的后繼數(shù)據(jù)會話進行接收或攔截; Cd)對客戶端使用的數(shù)據(jù)協(xié)議進行識別,并對數(shù)據(jù)會話中的數(shù)據(jù)查詢進行識別; Ce)對客戶端在數(shù)據(jù)查詢中所請求的內(nèi)容對象或者它的多個部分進行識別;以及 (f)確定內(nèi)容對象或者它的多個部分是否存儲在緩存中,如果是,則將存儲在緩存中的內(nèi)容對象或者它的多個部分發(fā)送給客戶端,如果不是,則將數(shù)據(jù)查詢發(fā)送給內(nèi)容源、對來自內(nèi)容源的數(shù)據(jù)響應(yīng)進行存儲、并將數(shù)據(jù)響應(yīng)發(fā)送給客戶端。
【文檔編號】G06F15/16GK103597471SQ201180068656
【公開日】2014年2月19日 申請日期:2011年12月30日 優(yōu)先權(quán)日:2010年12月30日
【發(fā)明者】艾倫·阿羅洛維奇, 什穆埃爾·巴卡爾, 德羅爾-摩西·加維什, 沙哈爾·居伊·格林, 謝伊·舍梅爾 申請人:皮爾愛普有限公司