專利名稱:被管對象的復制和傳送的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計算機網(wǎng)絡(luò)領(lǐng)域。特別地,本發(fā)明的各方面有關(guān)被管(managed)對象在網(wǎng)絡(luò)上的復制和傳送。
背景技術(shù):
一個典型的內(nèi)容傳送網(wǎng)絡(luò)(CDN)運營商在網(wǎng)絡(luò)中部署一個或多個擁有多個對象的父服務(wù)器,以及在網(wǎng)絡(luò)邊緣部署一個或多個邊緣服務(wù)器,使得對終端用戶(客戶)發(fā)送此類對象更成本有效和效率更高。訪問顧客的對象的終端用戶或客戶代理被稱為客戶。訂閱CDN服務(wù)的內(nèi)容提供公司,組織等,被稱作是顧客。在此,對象包括但不局限于,音頻文件(例如,一個MP3(運動圖象專家組第3層)文件和RealNetworks公司的Real格式文件),視頻文件(如MPEG文件),圖像文件(如BMP(位圖)文件或JPEG(聯(lián)合圖像專家組)文件)和任何其他軟件或數(shù)據(jù)文件或?qū)ο?。典型地期望從邊緣服?wù)器提供對象,因為邊緣服務(wù)器典型地距離終端用戶更近(通過各種距離測量)。例如,從邊緣服務(wù)器流式傳送內(nèi)容數(shù)據(jù)節(jié)省父服務(wù)器到邊緣服務(wù)器的帶寬。而且,對象必須途經(jīng)的距離的縮短也意味著網(wǎng)絡(luò)擁塞和分組丟失的減少,從而通過更快的響應(yīng)時間和更好的服務(wù)質(zhì)量為終端用戶提供更好的體驗。
典型地在邊緣服務(wù)器上存儲所有對象是不可行的。主要困難在于很多此類對象都非常大(典型地10MB(10,000,000字節(jié))數(shù)量級—對于電影為500MB左右)。隨著客戶數(shù)量的增長及其對象數(shù)量的增加,所需的用來容納的存儲和位置空間通常很大,而且,有時在邊緣服務(wù)器上的很少被請求的對象的成本昂貴。由于工作區(qū)中對象的大小和需求變化,存儲一個合適的對象的工作區(qū),例如,認為是經(jīng)常被請求的和/或更適合從邊緣服務(wù)器提供的對象組,甚至是不可能的。
一個明顯的解決方案是在邊緣服務(wù)器上預(yù)先寫入(pre-populate)可能重要的或高度需求的對象。但是,很難預(yù)測流行度和很難管理預(yù)先寫入。相關(guān)的解決方案是基于對象的流行度將對象和兩個或多個域(domain)相關(guān)聯(lián),如一個流行對象的域(由邊緣服務(wù)器提供)和另一個次流行對象的域(由父服務(wù)器提供)。但是,這種方案需要某種方式靜態(tài)地預(yù)先確定什么對象是流行的什么對象是次流行的,并將此流行度構(gòu)造進該對象的域名。由于是預(yù)先寫入,很難預(yù)測流行度和基于該流行度的確定管理域的分配。
其他解決方案根據(jù)要求讀取對象。在這種方案中,當所請求的對象在處理的邊緣服務(wù)器上不可用時,在具有所請求對象的父服務(wù)器和正處理邊緣服務(wù)器之間建立連接,以從該父服務(wù)器讀取所請求的對象。但是,每當客戶請求不在此特定的邊緣服務(wù)器上存在的對象時,這種讀取由于必須經(jīng)過父路徑(正處理邊緣服務(wù)器和擁有該對象的父服務(wù)器之間的網(wǎng)絡(luò)路徑)而受到損害。
通過父路徑讀取一個大的對象到正處理邊緣服務(wù)器會很緩慢。例如,從父服務(wù)器到管理邊緣服務(wù)器的帶寬是有限可用的,即,有時父路徑的帶寬甚至比從邊緣服務(wù)器到客戶的網(wǎng)絡(luò)路徑(例如,寬帶網(wǎng)絡(luò)的“最后一里”)還要窄。如果父服務(wù)器占用過多的帶寬拷貝對象到邊緣服務(wù)器,將在此父服務(wù)器產(chǎn)生擁塞。如果存儲填充(fill)帶寬與客戶帶寬匹配,則很難處理第二個更快的客戶,而且如果使用流協(xié)議(例如,實時流協(xié)議(RTSP)和實時傳輸協(xié)議(RTP)標準)進行讀取,該拷貝的質(zhì)量將會因分組丟失而受到損害(“變少”)。
此外,由于網(wǎng)絡(luò)擁塞,可能存在不可靠的端對端的父路徑。而且,如果父服務(wù)器必須預(yù)處理對象(如,產(chǎn)生特定比特率的圖像)或另外正在處理其他任務(wù),這將進一步降低其盡快為該對象的請求服務(wù)的能力。例如,如果客戶請求的比特率高于父服務(wù)器到邊緣服務(wù)器的比特率,可能會發(fā)生延遲。在這種情況下,父服務(wù)器將不能,例如,及時流式發(fā)送對象,或以所要求的比特率保持對象流,從而導致稀疏(thinned)對象,即,由于傳輸中的分組丟失而形成的低質(zhì)量的對象,該對象將被寫入到邊緣服務(wù)器并傳送到隨后請求同樣對象的客戶。
發(fā)明內(nèi)容
因此,將最流行的對象寫入到邊緣服務(wù)器而以某種方式從父服務(wù)器上提供其他對象,從而使從網(wǎng)絡(luò)的邊緣服務(wù)器提供的對象比特的數(shù)量最大化是非常有利的。當對象足夠流行時,通過諸如根據(jù)要求進行存儲填充來寫入邊緣服務(wù)器,而無須終端用戶等待此寫入,也是很有利的。因此,提供一種用于被管對象在網(wǎng)絡(luò)上的復制和傳送的方法和系統(tǒng)是很有利的。
根據(jù)本發(fā)明的實施例,一種用于被管對象在網(wǎng)絡(luò)上的復制和傳送的方法和系統(tǒng),將客戶對于在網(wǎng)絡(luò)的最佳或最優(yōu)的處理邊緣服務(wù)器上不可用的對象的請求重定向,直接或間接地,到擁有所請求對象的網(wǎng)絡(luò)的父服務(wù)器。因此,當所請求對象在正處理邊緣服務(wù)器上不可用時,客戶的請求被直接重定向到能為客戶提供所請求對象的父服務(wù)器,或間接地通過一個或多個父服務(wù)器重定向到能為該客戶提供所請求對象的父服務(wù)器。如果該對象足夠流行,此方法和系統(tǒng)進一步智能地復制該對象到該邊緣服務(wù)器。同樣,當一個對象不再流行時,將其從邊緣服務(wù)器刪除。所有的重定向和復制操作都優(yōu)選地對終端用戶透明并且不會降低服務(wù)質(zhì)量。本發(fā)明的其他實施例是可能的,其中一些將在今后描述。
因此,例如,在此描述的框架下,如果正處理邊緣服務(wù)器上有流(streaming)對象的拷貝,對于該流對象的請求將由該處理邊緣服務(wù)器提供服務(wù)。否則,該請求被直接或間接地重定向到為客戶提供所請求的流對象的父服務(wù)器。如果所請求的流對象流行,該對象就會被從有所請求的流對象的父服務(wù)器復制到處理邊緣服務(wù)器,因此,將來該對象被請求時,該處理邊緣服務(wù)器可以從網(wǎng)絡(luò)的邊緣提供該對象。如果一個流對象不再流行,則從邊緣服務(wù)器上刪除該對象。
在此,復制通常指對象在服務(wù)器上的永久和/或易失性存儲,尤其是在邊緣服務(wù)器上,以及可用的父服務(wù)器上。從而,認為術(shù)語復制與存儲,緩存和拷貝同義。在典型實施例中,對象的復制通常指對象在邊緣服務(wù)器和/或父服務(wù)器上持續(xù)時間未確定的暫時存儲。
本發(fā)明的示范實施例在附圖中說明,其中同樣的標記表示相似或相同的成分,并且其中圖1是根據(jù)本發(fā)明實施例的被管對象的復制和傳送的方法和系統(tǒng)的拓撲的高級方框圖;圖2是根據(jù)本發(fā)明實施例的說明被管對象的復制和傳送的方法的數(shù)據(jù)流的高級方框圖;圖3(a),3(b)和3(c)是根據(jù)本發(fā)明實施例的被管對象的復制和傳送方法和對象清除方法的流程圖;圖4是根據(jù)本發(fā)明實施例的流行度計算的流程圖;圖5是根據(jù)本發(fā)明實施例的復制方案的流程圖;圖6是根據(jù)本發(fā)明實施例的清除方案的流程圖;以及圖7是根據(jù)本發(fā)明實施例的被管對象的復制和傳送的系統(tǒng)方框圖。
具體實施例方式
根據(jù)本發(fā)明實施例,用于被管對象的復制和傳送方法的典型網(wǎng)絡(luò)如圖1說明。網(wǎng)絡(luò)100包括一個或多個父服務(wù)器站點120和一個或多個邊緣服務(wù)器站點130。該網(wǎng)絡(luò)也可選擇性地訪問一個或多個源服務(wù)器站點110。這些源服務(wù)器站點典型地由網(wǎng)絡(luò)提供者的顧客擁有和/或維護,用來存儲和提供一個或多個對象。每一個顧客(內(nèi)容提供者)都可擁有其自己的源服務(wù)器站點。而且,一個或多個客戶140訪問網(wǎng)絡(luò)以請求一個或多個對象。父服務(wù)器站點(或簡稱父站點或父服務(wù)器)可包括一個父服務(wù)器或父服務(wù)器集群,同樣,邊緣服務(wù)器站點(或簡稱邊緣站點或邊緣服務(wù)器)可包括一個邊緣服務(wù)器或邊緣服務(wù)器集群,以及源服務(wù)器站點(或簡稱源站點或源服務(wù)器)可包括一個源服務(wù)器或源服務(wù)器集群。典型地,網(wǎng)絡(luò)100如此配置從而使一個集群的服務(wù)器共享公共存儲器。無論如何,父服務(wù)器站點,邊緣服務(wù)器站點和源服務(wù)器站點的配置細節(jié)對本發(fā)明是不重要的。
在典型網(wǎng)絡(luò)中,父服務(wù)器和邊緣服務(wù)器由網(wǎng)絡(luò)提供者維護,其中父服務(wù)器主要用于存儲和管理一個或多個對象,邊緣服務(wù)器主要用于為客戶提供對象。在某些實施例中,在任何終端用戶可訪問每一個存儲在該父服務(wù)器上的對象之前,從源服務(wù)器上檢索所有對象并將其存儲在一個或多個父服務(wù)器上。因此,在這些實施例中,源服務(wù)器除了給父服務(wù)器上的存儲器提供新的和/或更新的對象以外,在被管對象的復制和傳送的方法中不起重要作用。而且,只有父服務(wù)器與源服務(wù)器通信。在其他實施例中,當所請求的對象開始流行時(如下詳述),每一個所請求對象被從一個或多個源服務(wù)器復制到一個或多個父服務(wù)器(和/或一個或多個邊緣服務(wù)器)。在這些實施例中,當有請求時,源服務(wù)器提供對象給父服務(wù)器和/或邊緣服務(wù)器,其在被管對象的復制和傳送的方法中起了更重要的作用。因此,在這些實施例中,源服務(wù)器和父服務(wù)器互相通信,源服務(wù)器和客戶也可以互相通信。在所有這些實施例中,源服務(wù)器和父服務(wù)器的通信關(guān)系可以是點對點,點對多點或多點對多點。
此外,如圖1所示,父服務(wù)器和邊緣服務(wù)器互相通信,邊緣服務(wù)器和客戶互相通信,父服務(wù)器和客戶互相通信。而在實施例中,如圖1所示,邊緣服務(wù)器和父服務(wù)器的關(guān)系是點對點或點對多點,邊緣服務(wù)器和父服務(wù)器的關(guān)系也可以是多點對多點。如下詳述,邊緣服務(wù)器是作為提供對象的主要來源,但如果所請求對象在該邊緣服務(wù)器上不可用,擁有所請求對象的父服務(wù)器將為客戶提供所請求對象。圖1也展示了單層或單級的父服務(wù)器和源服務(wù)器。對于本領(lǐng)域的技術(shù)人員將明確,也可使用多于一層或一級的父服務(wù)器和/或源服務(wù)器。
根據(jù)本發(fā)明的實施例和參照圖2,3(a),3(b)和3(c),描繪了被管對象的復制和傳送方法以及對象清除的方法。圖2描繪了涉及如圖1所示的網(wǎng)絡(luò)100的一部分,一個源服務(wù)器110以及一個客戶140的本方法的實施例。圖3(a),3(b)和3(c)以流程圖形式描繪了本方法的實施例。
最初,被管對象復制和傳送的方法將請求一個或多個對象的客戶定向(在200,300)到網(wǎng)絡(luò)的邊緣服務(wù)器,無論該邊緣服務(wù)器是否有所請求的對象。優(yōu)選地,客戶被定向到一個最優(yōu)的邊緣服務(wù)器,例如,基于網(wǎng)絡(luò)通信情況和服務(wù)器負載。對于本領(lǐng)域的技術(shù)人員將明確,任何數(shù)量的目前已知的或未來開發(fā)的機制都可用于選擇最佳或最優(yōu)的邊緣服務(wù)器。確定最佳或最優(yōu)的邊緣服務(wù)器優(yōu)選地包括,根據(jù)任何數(shù)量的現(xiàn)在已知的或未來開發(fā)的算法選擇最適合的為客戶發(fā)送一個或多個對象的邊緣服務(wù)器。例如,最佳或最優(yōu)的邊緣服務(wù)器的確定可基于所請求的對象的拷貝在備選邊緣服務(wù)器上可用的可能性,基于備選邊緣服務(wù)器和該客戶之間的帶寬,基于最佳的中繼選擇器(例如,如美國專利No.6,185,598所述)和/或任何數(shù)量的其他標準來執(zhí)行。
所選最佳或最優(yōu)的邊緣服務(wù)器130確定(在305)該邊緣服務(wù)器是否已有所請求的對象,如果有,提供(在205,310)該對象給請求的客戶140。例如,所選邊緣服務(wù)器130將檢查其存儲器以確定所請求對象是否可用,如果可用,可提供該對象給請求的客戶140。
如果所選邊緣服務(wù)器沒有所請求的對象,開始對該邊緣服務(wù)器檢查以確定所請求對象是否流行,如果流行,復制該流行的被請求對象到邊緣服務(wù)器。在實施例中,使用圖3(b)所描繪和以下詳細討論的方法以確定所請求對象是否流行,和如果流行,就復制該流行的所請求對象到該邊緣服務(wù)器。
在實施例中,檢查所請求對象是否流行和復制該流行的所請求對象到邊緣服務(wù)器可以獨立于被管對象的復制和傳送的方法的一項或多項功能而執(zhí)行,例如檢查服務(wù)器是否有所請求對象以及如果服務(wù)器有所請求對象,為客戶提供該對象,或者重定向客戶到有所請求對象的服務(wù)器(并為客戶提供所請求對象)。因此,在實施例中,檢查所請求對象是否流行和復制流行的對象到邊緣服務(wù)器可與被管對象的復制和傳送的方法的某些功能的執(zhí)行同時進行或在此之前執(zhí)行,例如檢查服務(wù)器是否有所請求對象以及如果服務(wù)器有所請求對象,為客戶提供該對象,或者重定向客戶到有該對象的服務(wù)器(并為客戶提供所請求對象)。有利的是,當檢查,重定向和提供所請求對象失敗時,檢查所請求對象是否流行和復制該流行對象到邊緣服務(wù)器能管理對象從邊緣服務(wù)器到客戶的連續(xù)發(fā)送。同樣,如果檢查所請求對象是否流行和復制該流行的對象到邊緣服務(wù)器失敗,檢查,重定向和提供所請求對象能管理對象從網(wǎng)絡(luò)服務(wù)器的連續(xù)發(fā)送。
而且,如果所選邊緣服務(wù)器沒有所請求的對象,該邊緣服務(wù)器將請求客戶140定向(在210,320)到一個父服務(wù)器120。優(yōu)選地,客戶140被重定向到有所請求對象并能為客戶提供(在215,345)該對象的父服務(wù)器。如果父服務(wù)器沒有(在325)所請求對象,開始檢查(在330)父服務(wù)器以確定所請求對象是否流行,如果流行,復制該流行的被請求對象到父服務(wù)器。在實施例中,如圖3(b)所描繪和以下更詳細討論的方法用于確定所請求對象是否流行,如果流行,復制該流行的被請求對象到該父服務(wù)器。在實施例中,關(guān)于檢查邊緣服務(wù)器,檢查所請求對象是否流行和復制該流行的所請求對象到父服務(wù)器是獨立于被管對象的復制和傳送方法的一項或多項功能而執(zhí)行,例如,檢查服務(wù)器是否有所請求對象以及如果服務(wù)器有所請求對象,為客戶提供該對象,或重定向客戶到有所請求對象的服務(wù)器(并為客戶提供所請求對象)。因此,在實施例中,檢查所請求對象是否流行和復制該流行的所請求對象到父服務(wù)器可以與被管對象的復制和傳送的一項或多項功能同時執(zhí)行,或在此之前執(zhí)行,例如檢查服務(wù)器是否有所請求對象和如果服務(wù)器有所請求對象,為客戶提供所請求對象,或重定向客戶到有所請求對象的服務(wù)器(并為客戶提供所請求對象)。
而且,如果父服務(wù)器沒有所請求對象,該父服務(wù)器自己迭代使用重定向技術(shù)(在325,335,320),直到到達一個有所請求對象的最終的父服務(wù)器。有所請求對象的父服務(wù)器為客戶提供(在215,345)該對象。如果該對象被確定為不可用(在335)(從所有父服務(wù)器),返回一個關(guān)于所請求對象不可用的錯誤消息(在340)。
對于本領(lǐng)域的技術(shù)人員將明確,有許多將請求客戶重定向到另一個父服務(wù)器的方法可以使用,依賴于請求對象所使用的協(xié)議。處理邊緣服務(wù)器可以從數(shù)據(jù)庫請求關(guān)于客戶應(yīng)被重定向到哪個父服務(wù)器的信息。在執(zhí)行中,邊緣服務(wù)器可有一個本地數(shù)據(jù)庫,通過從網(wǎng)絡(luò)的一個或多個服務(wù)器推入重定向數(shù)據(jù)填充。邊緣服務(wù)器也可以僅僅查詢網(wǎng)絡(luò)的一個或多個服務(wù)器以確定客戶可以被定向到的一個或多個父服務(wù)器。當多個父服務(wù)器響應(yīng)時,邊緣服務(wù)器可以將客戶重定向到最先響應(yīng)查詢的父服務(wù)器,邊緣服務(wù)器可以將客戶重定向到網(wǎng)絡(luò)拓撲距離該邊緣服務(wù)器最近的父服務(wù)器,或者,基于諸如網(wǎng)絡(luò)效率,帶寬要求和/或成本的標準,邊緣服務(wù)器可以將客戶重定向到代表最佳或最優(yōu)的備選父服務(wù)器?;蛘?,邊緣服務(wù)器通常定向到缺省父服務(wù)器?;蛘?,正如關(guān)于邊緣服務(wù)器的討論,可以使用上述任何一種技術(shù)確定最佳或最優(yōu)的服務(wù)器。重定向可以通過僅僅發(fā)送請求到父服務(wù)器或返回訪問父服務(wù)器的重定向信息到客戶來執(zhí)行。對本領(lǐng)域的技術(shù)人員將明確,任何數(shù)量的實施可用于為處理邊緣服務(wù)器提供重定向信息。
在其他實施例中,其中父服務(wù)器共同地并未寫入所有對象,而且網(wǎng)絡(luò)可訪問所請求對象的源服務(wù)器,如果所請求對象在父服務(wù)器上不可用,客戶可以被重定向(在225,320)到源服務(wù)器。如果源服務(wù)器有所請求對象(在325),源服務(wù)器將直接為客戶提供(在230,345)該對象(圖1未示出)。否則,如果該對象不可用(在335),返回(在340)一個關(guān)于所請求對象不可用的錯誤消息。
參照圖3(b),當邊緣服務(wù)器和/或父服務(wù)器確定(在350)所請求對象流行(通過某種流行度方法),但該邊緣服務(wù)器和/或父服務(wù)器沒有該對象的拷貝,該邊緣服務(wù)器和/或父服務(wù)器開始拉出該對象到該邊緣服務(wù)器和/或父服務(wù)器。因此,例如,當邊緣服務(wù)器確定(在350)所請求對象流行,但是該邊緣服務(wù)器沒有所請求對象的拷貝,邊緣服務(wù)器開始從有所請求對象的父服務(wù)器上復制(在220,360)該流行的被請求對象到該邊緣服務(wù)器。同樣,例如,當父服務(wù)器120確定(在350)一個請求對象流行,但是該父服務(wù)器上沒有所請求對象的拷貝,父服務(wù)器開始從有所請求對象的源服務(wù)器上復制(在240,360)該流行的被請求對象到該父服務(wù)器?;蛘撸阜?wù)器和源服務(wù)器可以從一個或多個邊緣服務(wù)器或父服務(wù)器接收關(guān)于諸如對象流行度確定或關(guān)于對象流行度數(shù)據(jù)的對象流行度信息,并可推出流行對象到該邊緣服務(wù)器和/或父服務(wù)器。因此,例如,當父服務(wù)器確定(在350)所請求對象在邊緣服務(wù)器上流行,但該邊緣服務(wù)器沒有該對象的拷貝,父服務(wù)器可開始從該父服務(wù)器復制(在220,360)該流行的所請求對象到邊緣服務(wù)器。同樣,例如,當源服務(wù)器確定(在350)該流行的被請求對象在父服務(wù)器上流行,但該父服務(wù)器沒有該對象的拷貝,源服務(wù)器開始從該源服務(wù)器復制(在240,360)該流行的被請求對象到該父服務(wù)器。
在某些實施例中,如果所有父服務(wù)器都沒有所請求對象,邊緣服務(wù)器開始從有所請求對象的源服務(wù)器(如果網(wǎng)絡(luò)可訪問該源服務(wù)器)復制(在235,360)該流行的所請求對象到該邊緣服務(wù)器。優(yōu)選地,在每種情況下,被復制的對象都沒有被提供或進一步被復制直到該對象被完全復制到各自的服務(wù)器。選擇地,這種復制可以被父服務(wù)器并在父服務(wù)器自身之間利用,以利于減少來去源服務(wù)器的流量。進一步,如果邊緣服務(wù)器和/或父服務(wù)器沒有足夠的空間存儲該流行的所請求對象,可從邊緣服務(wù)器和/或父服務(wù)器上刪除一個或多個對象從而為該流行對象釋放空間。在實施例中,如圖3(c)所描繪和以下詳述的方法可用于確定任何在邊緣服務(wù)器和/或父服務(wù)器上的對象是否不再流行,如果是,從邊緣服務(wù)器和/或父服務(wù)器上刪除該對象。而且,對于本領(lǐng)域的技術(shù)人員將明確,除了邊緣服務(wù)器和/或父服務(wù)器以外的用于確定對象是否流行的服務(wù)器通過使用例如,由處理邊緣服務(wù)器和/或父服務(wù)器提供的流行度信息來執(zhí)行實際的關(guān)于一個對象是否流行的確定。而后,流行度確定可用于開始復制(例如,推或拉)對象到要求確定該對象是否流行的邊緣服務(wù)器和/或父服務(wù)器。
參照圖3(c),如果服務(wù)器的存儲器中的對象不再流行(在365),該服務(wù)器將其從存儲器中刪除(在370)。例如,邊緣服務(wù)器可以從其存儲器中刪除(在245,370)任何不再流行的對象。同樣,父服務(wù)器可以從其存儲器中刪除(在250,370)任何不再流行的對象。對于本領(lǐng)域的技術(shù)人員將明確,確定服務(wù)器的存儲器中任何對象是否不再流行以及,如果是,從該服務(wù)器的存儲器中刪除該不再流行對象可以獨立于被管對象的復制和傳送的方法的一項或多項功能而執(zhí)行,例如,與其并行或在此之前執(zhí)行。在實施例中,該不再流行對象被從邊緣服務(wù)器上刪除,而且如果該對象位于源服務(wù)器,將其從父服務(wù)器上刪除。
流行度確定任何數(shù)量的技術(shù)可用于確定對象的流行度。流行度確定可基于請求的數(shù)量。流行度也可基于請求率。流行對象典型地比非流行對象有更高的請求率和更多數(shù)量的請求。流行度也可以通過跟蹤對于一個對象的最后X次請求的次數(shù)確定,然后用目前次數(shù)和這些請求次數(shù)的差值計算該對象被請求的頻度的變化的平均值。流行度確定也可以基于對象的請求率來測定,該請求率可能由于最近對于該對象較多的請求而權(quán)重(這是該對象將會被再次請求的預(yù)測器)。一個指數(shù)衰減的方法和人工神經(jīng)網(wǎng)絡(luò)也可用于確定對象的流行度。
根據(jù)流行度計算的某些實施例和參照圖4,對象的流行度基于該對象的請求率和以離散的方式在滑動時間窗口上計算。在這些實施例中,變量I表示測量對象的流行度的時間間隔。該時間間隔被分為N個相等的持續(xù)時間為I/N的子間隔。將要明確的是,該時間間隔不必等分而且可以用其他方式分割。
為每一個對象創(chuàng)建大小為N的鏈接列表P。N的值決定了近似度。N的值越小,近似程度越粗略。在某些實施例中,N的值被設(shè)為5。
列表的第一個元素P[1]記錄了當前時間在第一個子間隔內(nèi)時所到達的請求數(shù),第二個元素P[2]記錄了當前時間在第二個子間隔內(nèi)時所到達的請求數(shù),依此類推。當一個新的子間隔到達時,列表如此循環(huán)除P[N]變成P[1]外,P[I]變成P[I+1],因此,例如,P[1]變成P[2],P[2]變成P[3],P[N]變成P[1]。循環(huán)之后,新的P[1]被重置為0。因此,僅僅需要記錄第一個子間隔的結(jié)束時間,并與當前時間比較以檢查該列表是否需要循環(huán)。對于子間隔內(nèi)的每一個新請求,P[I]僅增加1。以這種方式,無需記錄每一個請求的到達時間。
在優(yōu)選實施例中,對象的流行度僅僅是該列表中的所有數(shù)字的和。為了使計算更有效,P[2]+P[3]+…+P[N]的和被存儲在寄存器M中。于是,可通過將P[1]加到M中來計算流行度。當循環(huán)開始時,M的新值變成M+=P[1]-P[N]。對象的流行度可能經(jīng)常被查詢。因此,為了避免每次此類查詢涉及到額外的加法,可在循環(huán)之后將P[1]的值置入M。因此,P[1]的值就是該對象的流行度。
流行度計算算法可總結(jié)如下。初始化對象的大小為N的鏈接列表P(在400),其中每一個P[1]…P[N]代表一個時間間隔。初始化流行度M(在410)。如果當前時間在當前時間子間隔內(nèi)時有一個對該對象的請求(在420),那么P[1]的值加1(在430)。如果當前時間在一個新的時間子間隔內(nèi)(在440),那么P[1]的值減少M,M+=P[1]-P[N],列表P循環(huán),P[1]被設(shè)置為M的值(在450)。而后,如果繼續(xù)計算流行度(在460),例如,流行度計算未被終止,則流行度計算算法循環(huán)。
初始化復制此外,任何數(shù)量的技術(shù)可用于初始化對象的復制。邊緣服務(wù)器和/或父服務(wù)器可響應(yīng)客戶對于對象的初次請求而復制該對象。或者,該邊緣服務(wù)器和/或父服務(wù)器可被調(diào)整為等待直到該邊緣服務(wù)器和/或父服務(wù)器收到一個確定數(shù)量或范圍的對于該對象的請求。在其他實施中,如果該對象比目前存儲器中最不流行的對象更為流行(例如,更高的請求率),該對象可被拉出。而在另一個可選執(zhí)行中,復制決定可能是對象的流行度,存儲該對象的成本,從網(wǎng)絡(luò)拉出該對象的成本和任何其他相關(guān)成本因子的函數(shù)。但是,對象的流行度會隨時間顯著改變。僅僅基于固定的門限值初始化對象的拉出決定沒有把握流行度的動態(tài)特性。
比較被復制對象的最低流行度的復制策略有其局限性,雖然該策略并未使用一個固定的門限值??紤]內(nèi)存僅僅半滿,但是所有被復制對象都是極其流行的情況。因為在這種復制策略下,只有超過被復制對象的最低流行度的對象會被復制,有中等流行度的對象將會被丟棄,盡管還有很多可用存儲空間而且該對象相當流行。
因此,一個復制方案應(yīng)能通過考慮流行度的動態(tài)特性和存儲器的填充程度而自動調(diào)節(jié)復制門限值。如果存在超過存儲容量許可的流行對象,復制方案應(yīng)提高門限值。如果有更多的可用存儲容量,復制方案應(yīng)降低門限值以使更多的對象可被存儲。
根據(jù)復制方案的實施例和參照圖5,當對象的流行度P大于(在500)初始門限值PI和存儲器中有足夠的空間(在510)復制對象時,該對象將被復制(在520)到存儲器。如果沒有足夠的存儲空間復制所請求對象,執(zhí)行一個替代算法,該算法將該對象的流行度P與存儲器中最不流行的對象的流行度PL比較(在530)。如果P大于PL,當前最不流行的對象將被從存儲器中刪除以釋放更多存儲空間,確定下一個最不流行的對象(在540),更新(在550)最低流行度的值,通過檢查是否有足夠存儲空間存儲所請求對象(在510)從而開始新一輪的迭代。存儲空間釋放迭代終止當1)已釋放足夠空間來容納所請求對象或2)所請求對象不如存儲器中最不流行的對象流行。當所有源服務(wù)器都沒有最不流行對象的拷貝時,不將該對象從父服務(wù)器刪除從而在網(wǎng)絡(luò)中保留該最不流行的對象的一個拷貝。
刪除在某些實施例中,被管對象復制和傳送方法和系統(tǒng)記錄對象的最后被請求時間。調(diào)用刪除方案以清理服務(wù)器的存儲空間,例如,基于一個固定的時間間隔或當一個流行對象被復制到邊緣服務(wù)器和/或父服務(wù)器但在該邊緣服務(wù)器和/或父服務(wù)器上沒有足夠的空間。參照圖6,在刪除方案中,所有過期的對象被從存儲器中刪除(在600),剩下的對象被根據(jù)流行度分類(在610),PL和PI的新值被確定(在620,630)。如果對象的生命期(從它最后一次被請求的時間起)超過預(yù)定義的值,則該對象過期,該預(yù)定義的值典型地被設(shè)置為用于測量流行度的滑動窗口的持續(xù)時間乘以一個可調(diào)因子。對于本領(lǐng)域的技術(shù)人員將明確,該值將會變化并且確實可以使用其他過期算法。刪除后的存儲器中的最不流行對象的流行度被指定為新的PL。通過使用分類的流行度確定新的PI并將其設(shè)置為如果較流行的對象被首先復制,最后一個能裝入存儲器的對象的流行度。典型地,PL應(yīng)大于或等于PI。如果不是,則PL的值將被指定為新的PI。在某些實施例中,刪除過程被作為多線程系統(tǒng)中的單獨的線程來執(zhí)行。在實施例中,過期的對象被從邊緣服務(wù)器刪除,并且,如果源服務(wù)器上有該過期對象的拷貝,該對象將被從父服務(wù)器刪除。當所有源服務(wù)器都沒有過期對象的拷貝時,不將該對象從父服務(wù)器刪除從而在網(wǎng)絡(luò)中保留該過期對象的一個拷貝。
開始,當系統(tǒng)啟動并且還沒有可用的流行度數(shù)據(jù)時,PL和PI的初始值都可設(shè)置為0。這樣就強制復制方案在對象被初次請求時存儲對象,但是定期運行的刪除方案將自動調(diào)整PL和PI的值。PL和PI的初始值也可設(shè)置為其他值。確實,可通過考慮存儲成本,讀取成本和從不同的服務(wù)器發(fā)送的成本差異來確定PL和PI的初始值。在任何情況下,系統(tǒng)允許最小的PL和PI說明。如果所計算的PL或PI小于最小說明,則PL或PI被設(shè)置為最小說明。
在某些實施例中,為了避免或最小化流縮小和其他質(zhì)量問題,存儲填充和數(shù)據(jù)發(fā)送是分離的。這樣,在多個存儲集合之間的數(shù)據(jù)傳輸能夠容忍較慢的連接,除非對象完全在存儲器中,否則服務(wù)器不再流式發(fā)送該對象。對于本領(lǐng)域的技術(shù)人員將明確,當存儲器中有足夠的數(shù)據(jù)時,可以開始流式發(fā)送對象,而且在提供對象前不必完成該對象的復制。進一步,存儲填充可通過拷貝到一個單獨的位置而分階段進行,而后,當數(shù)據(jù)完成時,將被拷貝的數(shù)據(jù)轉(zhuǎn)移到一個可服務(wù)的位置。
而且,如果對象在源服務(wù)器上被改變,則需要廣播消息以刪除在而且,如果對象在源服務(wù)器上被改變,則需要廣播消息以刪除在一個或多個父服務(wù)器和/或一個或多個邊緣服務(wù)器上的該對象。同樣,如果對象在父服務(wù)器上被改變,則需要廣播消息以刪除在一個或多個邊緣服務(wù)器上的對象。在每一種情況中,未來對已刪除對象的請求將會與所請求對象在邊緣服務(wù)器和/或父服務(wù)器上不可用的正常情況同樣處理。
軟硬件在本發(fā)明的實施例中,參照圖1和圖7,被管對象的復制和傳送系統(tǒng)包括網(wǎng)絡(luò)中一個或多個被指定為父服務(wù)器的服務(wù)器和網(wǎng)絡(luò)中一個或多個被指定為邊緣服務(wù)器的服務(wù)器。在某些實施例中,參照圖1,父服務(wù)器120有較大存儲容量(5太字節(jié)(TB)的數(shù)量級)而邊緣服務(wù)器有較小的存儲空間(從1TB到500GB)。用于執(zhí)行被管對象的復制和傳送的方法的一個或多個重定向器被安裝在每一個邊緣服務(wù)器集群。在某些實施例中,將一個或多個對象從源服務(wù)器復制到一個或多個父服務(wù)器,而后在需要時將其從父服務(wù)器拉到邊緣服務(wù)器。在其他實施例中,在需要時,將一個或多個對象從源服務(wù)器復制到一個或多個邊緣服務(wù)器和/或一個或多個父服務(wù)器。
在某些實施例中,實施數(shù)據(jù)傳輸方法700,710以在父服務(wù)器和邊緣服務(wù)器之間傳輸數(shù)據(jù)。數(shù)據(jù)傳輸方法支持傳輸層安全(TLS)協(xié)議(在互聯(lián)網(wǎng)工程任務(wù)組(IETF)RFC2246中描述,位于“http//www.ietf.org/rfc/rfc2246.txt”,在此引入作為參考)以保證通信隱私。而且,被管對象的復制和傳送的方法的實施支持三種流行的對象格式,即蘋果計算機公司的QuicktimeTM,RealNetworks公司的RealTM,以及微軟公司的WindowMediaTM格式,用以流式發(fā)送所請求對象。對于本領(lǐng)域的技術(shù)人員將明確,可使用任何數(shù)量的其他協(xié)議和對象格式。
而且,在某些實施例中,使用許多軟件組件以方便被管對象的復制和傳送的方法。第一個組件是WindowsMedia重定向器720,760是一個運行在微軟Windows NT操作系統(tǒng)的服務(wù),處理來自WindowsMedia播放器的請求和執(zhí)行對于WindowsMedia對象的請求的重定向。WindowsMedia重定向器在邊緣服務(wù)器和父服務(wù)器上提供。目前,微軟媒體服務(wù)器(MMS)協(xié)議被用于流式發(fā)送WindowsMedia對象并且該協(xié)議不支持重定向。為了提供WindowsMedia對象流的重定向,修改統(tǒng)一資源標示符(URI)超鏈接,此連接位于顧客站點并用于這種流式發(fā)送WindowsMedia對象。在此所用的URI通常具有以下形式(具體定義在T.Berners-Lee等,統(tǒng)一資源標示符(URI)IETF RFC 2396,1998年8月,位于“http//www.ietf.org/rfc/rfc2396.txt”,在此引入作為參考)scheme//host[post]/uri-path其中“scheme”可以是一個標記,例如,對于網(wǎng)絡(luò)服務(wù)器上的對象標記為“http”(見超文本傳輸協(xié)議-http/1.1,IETF RFC2616,位于“http//www.ietf.org/rfc/rfc2616.txt”,在此引入作為參考)或者對于流服務(wù)器上的對象標記為“rtsp”(見實時流協(xié)議(RTSP),IETF RFC 2326,位于“http//www.ietf.org/rfc/rfc2326.txt”,在此引入作為參考)。也可應(yīng)用其他方案,將來還可添加新的方案。端口號“port”是可選的,如果未提供,系統(tǒng)采用缺省的端口號(根據(jù)方案)代替。“host”域映射到特定計算機的特定網(wǎng)絡(luò)地址?!皍ri-path”與在“host”域中具體的計算機相關(guān)。一個uri路徑典型地,但不一定,是媒體服務(wù)器目錄中的文件的路徑名。在一個優(yōu)選實施例中,HTTP協(xié)議用于實現(xiàn)WindowsMedia對象的重定向。因此,WindowsMedia對象的URI的“scheme”域由“mms”改為“http”。例如,示例對象“sample.asf”的URI在WindowsMedia的高級流格式(ASF)中將有一個新的格式為“http//host/path/sample.asf”的URI。對于使用WindowsMedia腳本的對象,“meta.asx”對象的示例URI 將具有“http//host/?www.customer.com/path/meta.asx”的形式,其中“customer”是“meta.asx”的內(nèi)容提供者的名稱。所有包含在“meta.asx”對象內(nèi)的URI保持不變。當接收到請求“http//host/path/sample.asf”,WindowsMedia重定向器將以以下的示例ASX腳本響應(yīng)請求<ASX version=“3.0”>
<Entry><Refhref=“mms//servername/path/sample.asf”/></Entry>
</ASX>
在消息體中,如果所請求對象在本地或另一個服務(wù)器(父服務(wù)器或源服務(wù)器)上可用。在本例中,“servername”是或解析為給該請求客戶提供所請求對象的媒體服務(wù)器的網(wǎng)際協(xié)議(IP)地址。如果找不到所請求對象,WindowsMedia重定向器將以以下示例ASX腳本響應(yīng)請求<ASX version=“3.0”>
<Entry><Refhref=“http//redirname/path/sample.asf”/></Entry>
</ASX>
在消息體中,其中“redirname”是或解析為父服務(wù)器重定向器的IP地址以觸發(fā)另一輪的重定向。當所有父服務(wù)器(和源服務(wù)器,如果可用)都沒有所請求對象時,到達最后一輪重定向。在這種情況下,終止重定向過程,發(fā)送一個錯誤消息“not found”到該請求客戶。以同樣方式處理對ASX對象的請求。當接收到對示例對象“meta.asx”的請求時,WindowsMedia重定向器檢查“meta.asx”內(nèi)的每一個URI所指對象的可用性并改寫每一個對象相應(yīng)的URI。隨后,WindowsMedia重定向器發(fā)送對該請求的響應(yīng),該響應(yīng)的消息體中有改寫了的“meta.asx”。URI的改寫如下。如果發(fā)現(xiàn)一個被請求對象,例如“file.asf”,在本地或另一個服務(wù)器上可用,相應(yīng)的URI將改寫為“mms//servername/path/file.asf”,其中,“servername”是或解析為給請求客戶提供所請求對象的媒體服務(wù)器的IP地址。如果找不到“file.asf”,相應(yīng)的URI被改寫為“http//redirectorname/path/file.asf”,其中“redirname”是或解析為父服務(wù)器重定向器的IP地址。
另一個組件是Real/QuickTime重定向器730,770是一個應(yīng)用,處理來自Real或QuickTime播放器的對于一個或多個對象的實時流協(xié)議(RSTP)請求并執(zhí)行Real和QuickTime對象的重定向方法。Real/QuickTime重定向器由邊緣服務(wù)器和父服務(wù)器提供。在IETFRFC2326中詳述的RSTP用于流式發(fā)送Real和QuickTime對象,以及支持的重定向方法,因為該協(xié)議可被用于實現(xiàn)重定向。重定向請求通知客戶必須重新連接到另一個服務(wù)器地址并在重定向請求中給客戶提供新的服務(wù)器的URI。
一種最佳或最優(yōu)的服務(wù)器選擇機制也被提供(圖7未示出)。該最佳或最優(yōu)的服務(wù)器選擇機制包括,根據(jù)任何數(shù)量的目前已知或未來開發(fā)的算法,選擇最適合的為客戶提供一個或多個對象的邊緣服務(wù)器。除了重定向到最佳或最優(yōu)的邊緣服務(wù)器以處理客戶對于對象的請求之外,該最佳或最優(yōu)的服務(wù)器機制也可用于,當所請求對象在處理邊緣服務(wù)器上不可用時,觸發(fā)一個或多個進一步的重定向到一個或多個父服務(wù)器。在實施中,為了實現(xiàn)這個操作,修改用于所請求對象的URI的主機名部分。例如,在鏈接“http//customer-wm.fpondemand.net/customer/sample.asf”中,“customer-wm.fpondemand.net”被改為“parent-wm.fpondemand.net”,強制該請求通過更進一輪的最佳或最優(yōu)的服務(wù)器選擇而不是僅僅通過父服務(wù)器。在這種實施例中,為了實現(xiàn)最佳或最優(yōu)的服務(wù)器選擇,父服務(wù)器-邊緣服務(wù)器拓撲被確定,而且最佳或最優(yōu)的服務(wù)器選擇機制提供了確定這個拓撲關(guān)系的父服務(wù)器表。在某些實施例中,最佳或最優(yōu)的服務(wù)器選擇機制與美國專利No.6,185,598所述的最佳的中繼選擇器類似。
文件復制管理應(yīng)用740,750也被提供,其管理對象復制到存儲器和從存儲器刪除,從父服務(wù)器檢索對象以復制到邊緣服務(wù)器的存儲器中,并根據(jù)需要清理存儲器。文件復制管理器在邊緣服務(wù)器和父服務(wù)器上提供。在某些實施例中,文件復制管理器應(yīng)用使用數(shù)據(jù)傳輸方法,并與WindowsMedia和Real/QuickTime重定向器通信從而提供由那些重定向器請求的存儲器中可用的對象。
在某些實施例中,WindowsMedia或Real/QuickTime重定向器和文件復制管理器之間以及文件復制管理器之間的通信消息使用用戶數(shù)據(jù)報協(xié)議(UDP)封裝。這就允許地址處理和發(fā)送由UDP處理,并且便于快速通信。由于UDP不能保證發(fā)送,所以消息頭部包含消息號用以確認是對當前而不是以前請求的響應(yīng)。此外,支持MD5(參見,例如,Rivest,R.,“MD5信息摘要算法”,IETF RFC 1321,1992年4月)以提供一個基本的安全級。通過運行關(guān)于消息號,消息,和僅由被管對象復制和傳送系統(tǒng)組件共享的密碼的MD5哈希算法產(chǎn)生MD5哈希值。接收到消息時,計算消息號,消息以及密碼的MD5哈希值,并將其與該消息中提供的MD5哈希值比較。如果這兩個哈希值不匹配,則該消息無效并被丟棄。
對于本領(lǐng)域的技術(shù)人員將明確,圖7僅僅表示根據(jù)本發(fā)明的系統(tǒng)的某些實施例。根據(jù)本發(fā)明的描述的用于實施本系統(tǒng)的許多變化是可能的,并且都在本發(fā)明的范圍內(nèi)。
分塊上述方法和系統(tǒng)的一個擴展是提供分塊。日志數(shù)據(jù)的研究表明,即使對于流行的對象,在該對象被完全提供之前,存在相當比例的對于該對象的請求。為了開發(fā)這類對象的用途和進一步提高網(wǎng)絡(luò)性能,在復制方案中,可將對象分割成塊,對象的初始塊可以得到優(yōu)先處理。例如,當做出復制許可決定時,只有對象的初始塊被復制,而且,只有如果在一定數(shù)量(如90%)的對象的初始塊被提供之前客戶不存在,則剩余的該對象的塊被拉入存儲器。即使該對象不再流行,對象的初始塊也可保留在存儲器中。以這種方式分割流,即使多數(shù)對象流必須從父服務(wù)器或源服務(wù)器讀取,也可以迅速地從邊緣服務(wù)器提供對象的第一部分。
對象的保留和過期可選地,一些或全部對象可以被永久保留在邊緣服務(wù)器的存儲器中或根據(jù)限額保留。同樣,提供可配置的或可自動調(diào)節(jié)的用于存儲填充和刪除的門限值。
同樣,一個邊緣服務(wù)器可以被配置以確定所請求對象在服務(wù)器的存儲器中是否新鮮,并且只有在該對象未過期時提供所請求對象。在某些實施例中,列有最大存儲生命期和存儲限額的文件被保留以便于確定被請求對象是否新鮮。如果接收到對于過期對象的請求,初始化重定向到相關(guān)的邊緣服務(wù)器或源服務(wù)器以提供所請求對象,并且如果所請求對象是流行的,則執(zhí)行存儲刷新。
對等對象的邊緣服務(wù)器的存儲填充也可由其他對等邊緣服務(wù)器提供而不是由相關(guān)的父服務(wù)器或源服務(wù)器提供。如果一個流行對象已經(jīng)被復制到邊緣服務(wù)器,對于該對象的填充一個新的邊緣服務(wù)器的請求,從一個對等邊緣服務(wù)器填充比從父服務(wù)器或源服務(wù)器更有效。典型地邊緣服務(wù)器多于父服務(wù)器和源服務(wù)器,因此存在漸增的可能,就網(wǎng)絡(luò)距離而言,對等邊緣服務(wù)器比相關(guān)的父服務(wù)器或源服務(wù)器近。而且,這種對等邊緣服務(wù)器存儲填充可以減輕父服務(wù)器或源服務(wù)器的負擔。
關(guān)于在計算機或計算機網(wǎng)絡(luò)上執(zhí)行的程序步驟的詳細描述已經(jīng)提出。這些程序的描述和表示是本領(lǐng)域的技術(shù)人員為了最有效地傳遞他們的工作主旨給其他本領(lǐng)域的技術(shù)人員所使用的方法。對于本領(lǐng)域的技術(shù)人員明確的是,本發(fā)明的實施例可能以硬件和軟件或它們的任意組合實現(xiàn)。用來實現(xiàn)本發(fā)明的實際的軟件代碼或硬件不是本發(fā)明的限制。因此,通常不具體引用實際的軟件代碼或硬件組件來描述本實施例的操作和性能。缺乏這種具體的引用是可行的,因為可清楚地理解普通的技術(shù)人員僅需適當努力而無需過度實驗就能依此描述設(shè)計軟件和硬件來實現(xiàn)本發(fā)明的實施例。
在此,程序通常被認為是導出理想結(jié)果的自我一致的操作序列。這些操作包括物理量的物理操作。通常,但并不一定,這些物理量采用能夠被存儲,轉(zhuǎn)移,組合,比較及操作的電信號或磁信號的形式。有時,主要因為是習慣用法,將這些信號稱之為位,值,元素,符號,字母,術(shù)語,數(shù)字,對象,屬性,或類似的,這種用法被證明是很方便的。但是,需注意的是,所有這些和類似的術(shù)語都是和適當?shù)奈锢砹肯嚓P(guān)聯(lián),且僅僅是應(yīng)用于這些物理量的方便的標號。
而且,所執(zhí)行的操作通常用術(shù)語引用,如添加或比較,這些術(shù)語通常和人工操作員執(zhí)行的智力操作相聯(lián)系。在此所述的本發(fā)明的任何操作中,多數(shù)情況下,人工操作員的這種能力不是必要的或理想的;該操作是機器操作。用于執(zhí)行本發(fā)明的操作的有用的機器包括通用數(shù)字計算機,專用計算機或類似設(shè)備。
本方法的每一個操作都可以在任何諸如大型計算機,個人計算機或類似的普通計算機上執(zhí)行,并依據(jù)一個或多個程序模塊或?qū)ο?,或一個或多個程序模塊或?qū)ο蟮囊徊糠郑@些程序模塊或?qū)ο笥扇我庖环N編程語言,如C++,Perl,JavaTM,F(xiàn)ortan等產(chǎn)生。而且,更進一步,每一個操作,或文件,模塊,對象或類似的實現(xiàn)每一個操作,可以用專用硬件或為此目的設(shè)計的電路模塊來執(zhí)行。例如,本發(fā)明可以作為載入非易失性存儲器的固件程序或作為從數(shù)據(jù)存儲媒介載出或載入的機器可讀代碼的軟件程序來實現(xiàn),這種機器可讀代碼是可由邏輯單元陣列如處理器或其他數(shù)字信號處理單元執(zhí)行的指令。這個處理所操作的任何數(shù)據(jù)或作為這個處理結(jié)果所產(chǎn)生的數(shù)據(jù)可以被存儲在任何在技術(shù)上常見的存儲器中。借助實例,這個數(shù)據(jù)可以被存儲在暫時存儲器中,如在給定計算機系統(tǒng)或子系統(tǒng)的RAM中。另外,或替代的,這個數(shù)據(jù)可以被存儲在長期存儲設(shè)備,例如,磁盤,可擦寫光盤,等。
在此所繪圖中,其借助實例提供。在此所述的圖或操作在不偏離本發(fā)明的精神時可以有所變化。例如,在某些情況下,可以以不同順序執(zhí)行或增加,刪除或修改該操作。
本發(fā)明的實施例可作為包含計算機可用媒介的制造項目來執(zhí)行,在此,該媒介具有用于執(zhí)行本發(fā)明的方法操作的計算機可讀程序代碼工具,機器可讀的程序存儲設(shè)備,明確表示用于執(zhí)行本發(fā)明的方法操作的機器可執(zhí)行指令程序,或計算機程序產(chǎn)品。這種制造項目,程序存儲設(shè)備或計算機程序產(chǎn)品包括,但不僅限于,CD-ROM,CD-R,CD-W,磁盤,磁帶,硬驅(qū),計算機系統(tǒng)存儲器(如,RAM,ROM),和/或電的,磁的,光的,生物的或其他類似的程序(包括,但不限于,載波調(diào)制,或相反的處理,以傳遞可由計算機讀取,解調(diào)/解碼和執(zhí)行的指令)的實施例。確實,制造項目,程序存儲設(shè)備或計算機程序產(chǎn)品包括任意固體或流體傳輸媒介,無論磁的,生物的,光的,或類似媒介,該媒介用來根據(jù)本發(fā)明的任意或所有方法控制通用或?qū)S糜嬎銠C的操作,和/或根據(jù)本發(fā)明系統(tǒng)構(gòu)造其組件存儲或傳輸機器可讀信號。
本發(fā)明的實施例也可在系統(tǒng)中實現(xiàn)。一個系統(tǒng)可包括具有處理器和存儲設(shè)備的計算機以及可選的,存儲設(shè)備,諸如顯示器的輸出設(shè)備,和/或諸如鍵盤或計算機鼠標的輸入設(shè)備。而且,系統(tǒng)可包括互聯(lián)的計算機網(wǎng)絡(luò)。同等地,計算機可以是獨立形式(如,傳統(tǒng)的臺式個人計算機)或集成到其他設(shè)備上(如蜂窩電話)。
系統(tǒng)可以為執(zhí)行要求的目的而特別構(gòu)建,例如,本發(fā)明的方法或系統(tǒng)可包含一個或多個通用計算機,計算機程序根據(jù)在此計算機存儲的描述來有選擇地激活或重新配置。該系統(tǒng)也可作為硬連接電路或作為制作到專用集成電路上的電路配置,被部分或全部實現(xiàn)。在此所述本發(fā)明不是固有的與特定的計算機系統(tǒng)或其他裝置相關(guān)。對于多種此類系統(tǒng)所要求的結(jié)構(gòu)將從給定的描述中出現(xiàn)。
雖然本發(fā)明已關(guān)于某種實施例進行描述,本領(lǐng)域的技術(shù)人員將理解,根據(jù)在此公開的一般原則的其他實施例,不偏離本發(fā)明的精神和范圍,對該公開實施例的修改,以及構(gòu)建,部件的安排,構(gòu)成,步驟,結(jié)構(gòu)和材料選擇的細節(jié)改動都可進行。在所附權(quán)利要求書的范圍內(nèi),不偏離本發(fā)明的精神和范圍,可以進行包括等效結(jié)構(gòu),行為,材料等方面的改動。因此,應(yīng)理解,由例子來說明的上述實施例不是作為本發(fā)明的一個限制以及,因此,本說明書和附圖被看作是說明而不是限制。這樣,本發(fā)明并不是限制為上述的實施例,而是符合在此以任何方式公開的原則和新的特征一致的最寬的領(lǐng)域。
權(quán)利要求
1.一種用于被管對象的復制和傳送的方法,包括將客戶對于對象的請求定向到網(wǎng)絡(luò)中的邊緣服務(wù)器;如果該邊緣服務(wù)器具有所請求的對象,則提供所請求的對象給該客戶;否則,將該客戶請求重定向到具有該請求的對象的服務(wù)器并提供所請求的對象給該客戶;如果所請求的對象流行,則復制該請求的對象到該邊緣服務(wù)器。
2.如權(quán)利要求1所述的方法,其中將該客戶請求重定向到服務(wù)器包括,將該客戶請求重定向到網(wǎng)絡(luò)中的具有所請求對象的父服務(wù)器并從該父服務(wù)器提供所請求的對象給該客戶。
3.如權(quán)利要求1所述的方法,其中將客戶請求重定向到服務(wù)器包括,將該客戶請求重定向到網(wǎng)絡(luò)中的不具有所請求對象的父服務(wù)器,循環(huán)地重定向該請求,直到到達網(wǎng)絡(luò)中的具有所請求對象的一個父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶。
4.如權(quán)利要求1所述的方法,其中將該客戶請求重定向到服務(wù)器包括,如果所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則重定向該客戶請求到源服務(wù)器,并從該源服務(wù)器提供所請求的對象給該客戶。
5.如權(quán)利要求1所述的方法,其中將客戶對于對象的請求定向到邊緣服務(wù)器包括,將客戶對于對象的請求定向到一個最佳或最優(yōu)的邊緣服務(wù)器。
6.如權(quán)利要求5所述的方法,其中最佳或最優(yōu)的邊緣服務(wù)器包括,使用至少一個判決選擇的邊緣服務(wù)器,該判決基于最佳中繼選擇器,所請求對象的拷貝在邊緣服務(wù)器上可用的可能性,以及邊緣服務(wù)器和客戶之間的帶寬。
7.如權(quán)利要求1所述的方法,其中復制所請求的對象到邊緣服務(wù)器包括,從父服務(wù)器復制該請求的對象到該邊緣服務(wù)器。
8.如權(quán)利要求1所述的方法,進一步包括;如果所請求的對象流行,并且所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則從源服務(wù)器復制該請求的對象到網(wǎng)絡(luò)中的父服務(wù)器。
9.如權(quán)利要求1所述的方法,其中復制所請求的對象到邊緣服務(wù)器包括,如果所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則從源服務(wù)器復制該請求的對象到該邊緣服務(wù)器。
10.如權(quán)利要求1所述的方法,其中使用至少該請求對象的請求率確定所請求的對象是否流行。
11.如權(quán)利要求1所述的方法,進一步包括如果該邊緣服務(wù)器上的對象不再流行,則從該邊緣服務(wù)器刪除該對象。
12.如權(quán)利要求1所述的方法,進一步包括如果父服務(wù)器上的對象不再流行,并且該對象在源服務(wù)器上可用,則從該父服務(wù)器刪除該對象。
13.如權(quán)利要求1所述的方法,其中復制所請求的對象包括依據(jù)動態(tài)復制門限復制所請求的對象。
14.如權(quán)利要求1所述的方法,其中復制所請求的對象包括當所請求對象的流行度大于門限流行度并且有足夠的存儲空間用于復制所請求的對象時,復制該請求的對象;否則,如果沒有足夠的存儲空間用于復制所請求的對象,則i)將所請求對象的流行度與存儲器中最不流行對象的流行度進行比較,ii)如果所請求對象的流行度超過存儲器中最不流行對象的流行度,則從存儲器中刪除該最不流行的對象,iii)重復i)和ii)直到有足夠存儲空間可用于所請求的對象,或所請求對象的流行度低于存儲器中最不流行對象的流行度,以及iv)如果有足夠的存儲空間,則復制所請求的對象。
15.如權(quán)利要求1所述的方法,其中提供所請求的對象和復制所請求的對象是分開執(zhí)行的。
16.一種用于被管對象的復制和傳送的方法,包括將客戶對于對象的請求定向到網(wǎng)絡(luò)中的最優(yōu)邊緣服務(wù)器;如果該邊緣服務(wù)器具有所請求的對象,則提供所請求的對象給該客戶;否則,將該客戶請求重定向到網(wǎng)絡(luò)中的具有所請求對象的父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶;如果所請求的對象流行,則從父服務(wù)器復制所請求的對象到該邊緣服務(wù)器。
17.如權(quán)利要求16所述的方法,進一步包括如果該邊緣服務(wù)器上的對象不再流行,則從該邊緣服務(wù)器刪除該對象。
18.如權(quán)利要求16所述的方法,進一步包括如果該父服務(wù)器上的對象不再流行,并且該對象在源服務(wù)器上可用,則從該父服務(wù)器刪除該對象。
19.如權(quán)利要求16所述的方法,其中復制所請求的對象包括依據(jù)動態(tài)復制門限復制所請求的對象。
20.如權(quán)利要求16所述的方法,其中復制所請求的對象包括當所請求對象的流行度大于門限流行度并且有足夠的存儲空間用于復制所請求的對象時,復制該請求的對象;否則,如果沒有足夠的存儲空間用于復制所請求的對象,則i)將所請求對象的流行度與存儲器中的最不流行對象的流行度進行比較,ii)如果所請求對象的流行度超過存儲器中的最不流行對象的流行度,則從存儲器中刪除該最不流行的對象,iii)重復i)和ii)直到有足夠的存儲空間可用于所請求的對象,或所請求對象的流行度低于存儲器中的最不流行對象的流行度,以及iv)如果有足夠的存儲空間,則復制所請求的對象。
21.如權(quán)利要求16所述的方法,其中使用至少所請求對象的請求率確定該對象是否流行。
22.如權(quán)利要求16所述的方法,其中提供所請求的對象和復制所請求的對象是分開執(zhí)行的。
23.一種包括計算機程序代碼的計算機程序產(chǎn)品,該代碼促使處理器執(zhí)行一種用于被管對象的復制和傳送的方法,該方法包括將客戶對于對象的請求定向到網(wǎng)絡(luò)中的邊緣服務(wù)器;如果該邊緣服務(wù)器具有所請求的對象,則提供所請求的對象給該客戶;否則,將該客戶請求重定向到網(wǎng)絡(luò)中具有所請求對象的服務(wù)器,并提供所請求的對象給該客戶;如果所請求的對象流行,則復制該請求的對象到該邊緣服務(wù)器。
24.如權(quán)利要求23的計算機程序產(chǎn)品,其中將該客戶請求重定向到服務(wù)器包括,將該客戶請求重定向到網(wǎng)絡(luò)中的具有該請求對象的父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶。
25.如權(quán)利要求23的計算機程序產(chǎn)品,其中將該客戶請求重定向到服務(wù)器包括,將該客戶請求重定向到網(wǎng)絡(luò)中的不具有所請求對象的父服務(wù)器,重復地重定向該請求,直到到達網(wǎng)絡(luò)中的具有該請求對象的父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶。
26.如權(quán)利要求23的計算機程序產(chǎn)品,其中將該客戶請求重定向到服務(wù)器包括,如果所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則將該客戶請求重定向到源服務(wù)器,并從該源服務(wù)器提供所請求的對象給該客戶。
27.如權(quán)利要求23的計算機程序產(chǎn)品,其中定向客戶對于對象的請求到邊緣服務(wù)器包括,定向客戶對于對象的請求到最佳或最優(yōu)的邊緣服務(wù)器。
28.如權(quán)利要求27的計算機程序產(chǎn)品,其中最佳或最優(yōu)的邊緣服務(wù)器包括,使用至少一個判決選擇的邊緣服務(wù)器,該判決基于最佳的中繼選擇器,所請求對象的拷貝在該邊緣服務(wù)器上可用的可能性,以及該邊緣服務(wù)器和客戶之間的帶寬。
29.如權(quán)利要求23的計算機程序產(chǎn)品,其中復制所請求的對象到邊緣服務(wù)器包括,從父服務(wù)器復制所請求的對象到該邊緣服務(wù)器。
30.如權(quán)利要求23的計算機程序產(chǎn)品,該方法進一步包括如果所請求的對象流行,并且所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則從源服務(wù)器復制所請求的對象到網(wǎng)絡(luò)中的父服務(wù)器。
31.如權(quán)利要求23的計算機程序產(chǎn)品,其中復制所請求的對象到邊緣服務(wù)器包括,如果所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則從源服務(wù)器復制所請求的對象到該邊緣服務(wù)器。
32.如權(quán)利要求23的計算機程序產(chǎn)品,其中使用至少所請求對象的請求率確定所請求的對象是否流行。
33.如權(quán)利要求23的計算機程序產(chǎn)品,該方法進一步包括如果邊緣服務(wù)器上的對象不再流行,則從該邊緣服務(wù)器刪除該對象。
34.如權(quán)利要求23的計算機程序產(chǎn)品,該方法進一步包括如果父服務(wù)器上的對象不再流行,并且該對象在源服務(wù)器上可用,則從父服務(wù)器刪除該對象。
35.如權(quán)利要求23的計算機程序產(chǎn)品,其中復制所請求的對象包括依據(jù)動態(tài)復制門限復制所請求的對象。
36.如權(quán)利要求23的計算機程序產(chǎn)品,其中復制所請求的對象包括當所請求對象的流行度大于門限流行度并且有足夠的存儲空間用于復制所請求的對象時,復制該請求的對象;否則,如果沒有足夠的存儲空間用于復制所請求的對象,則i)將所請求對象的流行度與存儲器中的最不流行對象的流行度進行比較,ii)如果所請求對象的流行度超過存儲器中的最不流行對象的流行度,則從存儲器中刪除該最不流行的對象,iii)重復i)和ii)直到有足夠的存儲空間可用于所請求的對象,或所請求對象的流行度低于存儲器中的最不流行對象的流行度,以及iv)如果有足夠的存儲空間,則復制所請求的對象。
37.如權(quán)利要求23的計算機程序產(chǎn)品,其中提供所請求的對象和復制所請求的對象是分開執(zhí)行的。
38.一種包括計算機程序代碼的計算機程序產(chǎn)品,該代碼促使處理器執(zhí)行一種用于被管對象的復制和傳送的方法,該方法包括定向客戶對于對象的請求到網(wǎng)絡(luò)中的最優(yōu)邊緣服務(wù)器;如果該邊緣服務(wù)器具有所請求的對象,則提供所請求的對象給該客戶;否則,將該客戶請求重定向到網(wǎng)絡(luò)中的具有所請求對象的父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶;如果所請求的對象流行,則從該父服務(wù)器復制該請求的對象到該邊緣服務(wù)器。
39.如權(quán)利要求38的計算機程序產(chǎn)品,該方法進一步包括如果該邊緣服務(wù)器上的對象不再流行,則從該邊緣服務(wù)器刪除該對象。
40.如權(quán)利要求38的計算機程序產(chǎn)品,該方法進一步包括如果該父服務(wù)器上的對象不再流行,并且該對象在源服務(wù)器上可用,則從該父服務(wù)器刪除該對象。
41.如權(quán)利要求38的計算機程序產(chǎn)品,其中復制所請求的對象包括依據(jù)動態(tài)復制門限復制所請求的對象。
42.如權(quán)利要求38的計算機程序產(chǎn)品,其中復制所請求的對象包括當所請求對象的流行度大于門限流行度并且有足夠的存儲空間用于復制所請求的對象時,復制該對象;否則,如果沒有足夠的存儲空間用于復制所請求的對象,則i)將所請求對象的流行度與存儲器中的最不流行對象的流行度進行比較,ii)如果所請求對象的流行度超過存儲器中的最不流行對象的流行度,則從存儲器中刪除該最不流行的對象,iii)重復i)和ii)直到有足夠的存儲空間可用于所請求的對象,或所請求對象的流行度低于存儲器中的最不流行對象的流行度,以及iv)如果有足夠的存儲空間,則復制所請求的對象。
43.如權(quán)利要求38的計算機程序產(chǎn)品,其中使用至少所請求對象的請求率確定所請求的對象是否流行。
44.如權(quán)利要求38的計算機程序產(chǎn)品,其中提供所請求的對象和復制所請求的對象是分開執(zhí)行的。
45.一種用于被管對象的復制和傳送的系統(tǒng),包括網(wǎng)絡(luò)中的多個邊緣服務(wù)器;和網(wǎng)絡(luò)中的多個父服務(wù)器;其中所述多個邊緣服務(wù)器和多個父服務(wù)器中至少之一定向客戶對于對象的請求到網(wǎng)絡(luò)中的一個邊緣服務(wù)器;如果該邊緣服務(wù)器具有所請求的對象,則提供所請求的對象給該客戶;否則,將該客戶請求重定向到網(wǎng)絡(luò)中的具有所請求對象的服務(wù)器,并提供所請求的對象給該客戶;如果所請求的對象流行,則復制該請求的對象到該邊緣服務(wù)器。
46.如權(quán)利要求45所述的系統(tǒng),其中將該客戶請求重定向到服務(wù)器包括,將該客戶請求重定向到網(wǎng)絡(luò)中的具有所請求對象的父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶。
47.如權(quán)利要求45所述的系統(tǒng),其中將該客戶請求重定向到服務(wù)器包括,將該客戶請求重定向到網(wǎng)絡(luò)中的不具有所請求對象的父服務(wù)器,循環(huán)地重定向該請求,直到到達網(wǎng)絡(luò)中的具有所請求對象的一個父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶。
48.如權(quán)利要求45所述的系統(tǒng),其中將該客戶請求重定向到服務(wù)器包括,如果所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則重定向該客戶請求到源服務(wù)器,并從該源服務(wù)器提供所請求的對象給該客戶。
49.如權(quán)利要求45所述的系統(tǒng),其中定向客戶對于對象的請求到邊緣服務(wù)器包括,定向客戶對于對象的請求到最佳或最優(yōu)的邊緣服務(wù)器。
50.如權(quán)利要求49所述的系統(tǒng),其中最佳或最優(yōu)的邊緣服務(wù)器包括,使用至少一個判決選擇的邊緣服務(wù)器,該判決基于最佳的中繼選擇器,所請求對象的拷貝在該邊緣服務(wù)器上可用的可能性,以及該邊緣服務(wù)器和客戶之間的帶寬。
51.如權(quán)利要求45所述的系統(tǒng),其中復制所請求的對象到邊緣服務(wù)器包括,從父服務(wù)器復制所請求的對象到該邊緣服務(wù)器。
52.如權(quán)利要求45所述的系統(tǒng),其中,如果所請求的對象流行,并且所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則所述多個邊緣服務(wù)器和多個父服務(wù)器中的至少之一進一步從源服務(wù)器復制所請求的對象。
53.如權(quán)利要求45所述的系統(tǒng),其中復制所請求的對象到邊緣服務(wù)器包括,如果所請求的對象在網(wǎng)絡(luò)中的父服務(wù)器上不可用,則從源服務(wù)器復制所請求的對象到該邊緣服務(wù)器。
54.如權(quán)利要求45所述的系統(tǒng),其中使用至少所請求對象的請求率確定該對象是否流行。
55.如權(quán)利要求45所述的系統(tǒng),其中,如果一個對象不再流行,則所述多個邊緣服務(wù)器和多個父服務(wù)器中的至少之一進一步刪除該對象。
56.如權(quán)利要求45所述的系統(tǒng),其中復制所請求的對象包括依據(jù)動態(tài)復制門限復制所請求的對象。
57.如權(quán)利要求45所述的系統(tǒng),其中復制所請求的對象包括當所請求對象的流行度大于門限流行度并且有足夠的存儲空間用于復制所請求的對象時,復制該請求的對象;否則,如果沒有足夠的存儲空間用于復制所請求的對象,則i)將所請求對象的流行度與存儲器中的最不流行對象的流行度進行比較,ii)如果所請求對象的流行度超過存儲器中的最不流行對象的流行度,則從存儲器中刪除該最不流行的對象,iii)重復i)和ii)直到有足夠的存儲空間可用于所請求的對象,或所請求對象的流行度低于存儲器中的最不流行對象的流行度,以及iv)如果有足夠的存儲空間,則復制所請求的對象。
58.如權(quán)利要求45所述的系統(tǒng),其中提供所請求的對象和復制所請求的對象是分開執(zhí)行的。
59.一種用于被管對象的復制和傳送的系統(tǒng),包括網(wǎng)絡(luò)中的多個邊緣服務(wù)器;和網(wǎng)絡(luò)中的多個父服務(wù)器;其中所述多個邊緣服務(wù)器和多個父服務(wù)器中的至少之一定向客戶對于對象的請求到網(wǎng)絡(luò)中的最優(yōu)邊緣服務(wù)器;如果該邊緣服務(wù)器具有所請求的對象,則提供所請求的對象給該客戶;否則,將該客戶請求重定向到網(wǎng)絡(luò)中的具有所請求對象的父服務(wù)器,并從該父服務(wù)器提供所請求的對象給該客戶;如果所請求的對象流行,則從該父服務(wù)器復制該對象到該邊緣服務(wù)器。
60.如權(quán)利要求59所述的系統(tǒng),其中,如果一個對象不再流行,則所述多個邊緣服務(wù)器和多個父服務(wù)器中的至少之一進一步刪除該對象。
61.如權(quán)利要求59所述的系統(tǒng),其中復制所請求的對象包括依據(jù)動態(tài)復制門限復制所請求的對象。
62.如權(quán)利要求59所述的系統(tǒng),其中復制所請求的對象包括當所請求對象的流行度大于門限流行度并且有足夠的存儲空間用于復制所請求的對象時,復制該請求的對象;否則,如果沒有足夠的存儲空間用于復制所請求的對象,則i)將所請求對象的流行度與存儲器中的最不流行對象的流行度進行比較,ii)如果所請求對象的流行度超過存儲器中的最不流行對象的流行度,則從存儲器中刪除該最不流行的對象,iii)重復i)和ii)直到有足夠的存儲空間可用于所請求的對象,或所請求對象的流行度低于存儲器中的最不流行對象的流行度,以及iv)如果有足夠的存儲空間,則復制所請求的對象。
63.如權(quán)利要求59所述的系統(tǒng),其中使用至少所請求對象的請求率確定該對象是否流行。
64.如權(quán)利要求59所述的系統(tǒng),其中提供所請求的對象和復制所請求的對象是分開執(zhí)行的。
65.如權(quán)利要求59所述的系統(tǒng),其中,如果所請求的對象流行,并且在網(wǎng)絡(luò)的父服務(wù)器上不可用,則所述多個邊緣服務(wù)器和多個父服務(wù)器中的至少之一進一步從源服務(wù)器復制所請求的對象。
全文摘要
一種用于被管對象的復制和傳送的方法,系統(tǒng)和計算機程序產(chǎn)品,將客戶對于在網(wǎng)絡(luò)中的最佳或最優(yōu)處理邊緣服務(wù)器上不可用的對象的請求,直接或間接地,重定向到具有所請求對象的父服務(wù)器。因此,當所請求對象在處理邊緣服務(wù)器上不可用時,將客戶的請求直接重定向到可以為該客戶提供所請求對象的父服務(wù)器,或間接地通過一個或多個父服務(wù)器重定向到可以為該客戶提供所請求對象的父服務(wù)器。如果這個對象足夠流行,這種方法,系統(tǒng)和計算機程序產(chǎn)品進一步智能地復制該對象到該邊緣服務(wù)器。同樣,當一個對象不再流行時,將其從邊緣服務(wù)器刪除。所有的重定向和復制操作都優(yōu)選地對終端用戶透明,而且不會降低服務(wù)質(zhì)量。
文檔編號H04L29/08GK1777880SQ03806039
公開日2006年5月24日 申請日期2003年2月11日 優(yōu)先權(quán)日2002年2月14日
發(fā)明者史蒂文·L·希德, 凱文·霍布斯, 沙恩·M·格林, 艾薩克·W·福勒克, 比德·J·瓊斯, 霍默·H·陳 申請人:塞維斯公司