專利名稱:分布式高速緩存的方法和設(shè)備的制作方法
背景技術(shù):
發(fā)明領(lǐng)域本發(fā)明通常涉及網(wǎng)絡(luò)服務(wù)領(lǐng)域。具體而言,本發(fā)明涉及改進的網(wǎng)絡(luò)數(shù)據(jù)分布體系結(jié)構(gòu)。
相關(guān)技術(shù)描述
圖1所示的傳統(tǒng)網(wǎng)絡(luò)高速緩存系統(tǒng)包括多個在局域網(wǎng)140和/或較大網(wǎng)絡(luò)110(如互聯(lián)網(wǎng))上進行通信的客戶機130~133。客戶機130~133可以運行Netscape NavigatorTM或者Microsoft InternetExplorerTM等瀏覽器應(yīng)用程序,它能通過超文本傳輸協(xié)議(HTTP)或其他聯(lián)網(wǎng)協(xié)議(如文件傳輸協(xié)議、Gopher...等)來訪問萬維網(wǎng)(Web)上的信息。
在每個客戶機130~133上都配置了瀏覽器,以便所有對信息(如網(wǎng)頁)的請求能經(jīng)過通常稱作“代理高速緩存”的本地高速緩存服務(wù)器115而得到傳送。當客戶機130請求遠程互聯(lián)網(wǎng)服務(wù)器120上的信息時,本地代理高速緩存115檢查此請求,并最初確定所請求的內(nèi)容是否“可以高速緩存”(大量的互聯(lián)網(wǎng)內(nèi)容不可高速緩存)。如果本地代理高速緩存115檢測到一個不可以高速緩存的請求,則直接向內(nèi)容源(如互聯(lián)網(wǎng)服務(wù)器120)轉(zhuǎn)發(fā)此請求。然后,所請求的內(nèi)容直接從源120向客戶機130進行傳送,而并不本地存儲在代理高速緩存115上。
相比之下,當代理高速緩存115確定客戶機130的內(nèi)容請求可以高速緩存時,就在本地(如本地硬盤驅(qū)動器)查找該內(nèi)容的拷貝。如果不存在本地拷貝,則代理高速緩存115確定此內(nèi)容是否存儲在“上級”高速緩存117上(相對于互聯(lián)網(wǎng)服務(wù)器120位于網(wǎng)絡(luò)更遠的上游)或是“同級”高速緩存116上(相對于請求內(nèi)容的互聯(lián)網(wǎng)服務(wù)器120位于與該代理高速緩存基本上相同的層次位置)。
如果在相鄰高速緩存116、117上檢測到高速緩存“命中”,則所請求的內(nèi)容從那個高速緩存中取回、發(fā)送到客戶機130、并本地存儲在該代理高速緩存115,從而可以用于其他本地客戶機131~133另外的請求。但是,如果出現(xiàn)高速緩存“未中”,則此內(nèi)容從源互聯(lián)網(wǎng)服務(wù)器120中取回、發(fā)送到客戶機130、并在代理高速緩存115上本地存儲一個拷貝,甚至也在上級高速緩存117上存儲,從而可以用于另外的客戶機請求。
附圖簡述參考附圖從下面的詳細描述可以更好地理解本發(fā)明,其中圖1說明了現(xiàn)有技術(shù)的數(shù)據(jù)網(wǎng)絡(luò)上的高速緩存系統(tǒng)。
圖2說明了含本發(fā)明各要素的示例網(wǎng)絡(luò)體系結(jié)構(gòu)。
圖3說明了包括本發(fā)明各要素的示例計算機體系結(jié)構(gòu)。
圖4說明了包括本發(fā)明各要素的另一網(wǎng)絡(luò)體系結(jié)構(gòu)實施方案。
圖5說明了一種用于分布網(wǎng)絡(luò)內(nèi)容的系統(tǒng)和方法的實施方案。
圖6說明了依照本發(fā)明實施方案的文件請求消息。
圖7說明了在邊緣POP上高速緩存網(wǎng)絡(luò)內(nèi)容的本發(fā)明實施方案。
圖8說明了一種用于高速緩存網(wǎng)絡(luò)內(nèi)容的方法的實施方案。
圖9說明了一種包括容錯特性的本發(fā)明實施方案。
圖10和11說明了具有錯誤檢測和恢復(fù)特性的本發(fā)明各實施方案。
圖12說明了根據(jù)本發(fā)明一個實施方案的動態(tài)服務(wù)器分配。
圖13說明了在邊緣POP上高速緩存流媒體文件的本發(fā)明實施方案。
圖14說明了被配置以處理實況和/或點播音頻/視頻信號的本發(fā)明的一個實施方案。
圖15說明了一個音頻/視頻流經(jīng)網(wǎng)絡(luò)到達終端用戶的實施方案。
圖16說明了在一個或多個POP站點上高速緩存音頻/視頻流內(nèi)容的詳細描述網(wǎng)絡(luò)體系結(jié)構(gòu)示例在圖2所示的多層網(wǎng)絡(luò)體系結(jié)構(gòu)200中可能包括本發(fā)明的各要素,其中有一個或多個數(shù)據(jù)中心220~222、多個“中間”存在點(POP)節(jié)點230~234(這里也稱作“專有網(wǎng)絡(luò)接入點”或“P-NAP”)、以及多個“邊緣”POP節(jié)點240~245(這里也稱作“互聯(lián)網(wǎng)服務(wù)提供商協(xié)同定位”站點或“ISP Co-Lo”站點)。
根據(jù)圖2所示的實施方案,每個數(shù)據(jù)中心220~222、中間POP230~234和/或邊緣POP240~245都包括多組網(wǎng)絡(luò)服務(wù)器,在此可以存儲并向終端用戶250發(fā)送各種網(wǎng)絡(luò)內(nèi)容,如網(wǎng)頁、網(wǎng)絡(luò)新聞數(shù)據(jù)、電子郵件數(shù)據(jù)、文件傳輸協(xié)議(FTP)文件、以及實況&點播多媒體流文件。但是應(yīng)當注意本發(fā)明的基本原則可以用各種不同類型的網(wǎng)絡(luò)內(nèi)容來實踐。
位于數(shù)據(jù)中心220~222和POP230~234、240~245的服務(wù)器進行互相通信以及與終端用戶150通信都可以使用各種通信信道,包括例如數(shù)字信號(DS)信道(如DS-3/T-3、DS-1/T-1)、同步光纖網(wǎng)絡(luò)(SONET)信道(如OC-3/STS-3)、綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)信道、數(shù)字用戶線(DSL)信道、電纜調(diào)制解調(diào)信道以及各種包括衛(wèi)星廣播和蜂窩的無線通信信道。
此外,本系統(tǒng)各個方面的實現(xiàn)可以使用各種組網(wǎng)協(xié)議,包括例如(數(shù)據(jù)鏈路層的)異步傳輸模式(ATM)、以太網(wǎng)、和令牌環(huán)網(wǎng);以及(網(wǎng)絡(luò)/傳輸層的)傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)、網(wǎng)際分組交換(IPX)、AppleTalk以及DECnet。但是應(yīng)當注意本發(fā)明的原則并不局限于任何特定的通信信道或協(xié)議。
在一個實施方案中,數(shù)據(jù)中心220~222上(并且也可能在POP節(jié)點230~234、245~245上)的服務(wù)器維護了一個數(shù)據(jù)庫來存儲與分布式網(wǎng)絡(luò)內(nèi)容相關(guān)的信息。在一個實施方案中該數(shù)據(jù)庫是一個分布式數(shù)據(jù)庫(即分散在多個服務(wù)器上),并可能運行MicrosoftTMSQL-Server、OracleTM等關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的實例。
計算機體系結(jié)構(gòu)示例前面簡要描述了采用本發(fā)明各要素的示例網(wǎng)絡(luò)體系結(jié)構(gòu),現(xiàn)在參考圖3描述計算機系統(tǒng)300,其中表示了實現(xiàn)本發(fā)明各要素的示例客戶機和服務(wù)器。
計算機系統(tǒng)300的一個實施方案包括一個用于傳輸信息的系統(tǒng)總線320、以及一個耦合到總線320用于處理信息的處理器310。計算機系統(tǒng)300還包括一個耦合到總線320的隨機訪問存儲器(RAM)或者其他動態(tài)存儲設(shè)備325(這里稱作“主存”),以存儲信息和將由處理器310執(zhí)行的指令。主存325也可以用于在處理器310執(zhí)行指令期間存儲臨時變量或者其他中間信息。計算機系統(tǒng)300還包括一個耦合到總線320的只讀存儲器(ROM)和/或其他靜態(tài)存儲設(shè)備326,以存儲靜態(tài)信息和處理器310所使用的指令。
諸如磁盤或光盤的數(shù)據(jù)存儲設(shè)備327及其相應(yīng)的驅(qū)動也可能耦合到計算機系統(tǒng)300,以存儲信息和指令。計算機系統(tǒng)300還可能通過一個I/O接口330耦合到第二I/O總線350。多個I/O設(shè)備可以耦合到I/O總線350,其中包括顯示設(shè)備343和/或輸入設(shè)備(如字符輸入設(shè)備342和/或光標控制設(shè)備341)。
通信設(shè)備340用于經(jīng)網(wǎng)絡(luò)210來訪問其他計算機(服務(wù)器或客戶機)。通信設(shè)備340可能包括一個調(diào)制解調(diào)器、一個網(wǎng)絡(luò)接口卡、或其他用于耦合到以太網(wǎng)、令牌環(huán)網(wǎng)或其他類型計算機網(wǎng)的熟知的接口設(shè)備。
本發(fā)明的實施方案再次參考圖2,正如這里所使用的,一個“內(nèi)容提供商”260是指通過此處所述的系統(tǒng)和方法向終端用戶250分發(fā)內(nèi)容的個人或組織?!皟?nèi)容分發(fā)服務(wù)”是指由實現(xiàn)此處所述網(wǎng)絡(luò)內(nèi)容分布系統(tǒng)和方法的個人或組織向內(nèi)容提供商260所提供的服務(wù)。
在本系統(tǒng)的一個實施方案中,數(shù)據(jù)中心220~222作為網(wǎng)絡(luò)內(nèi)容的主要初始倉庫。于是,當內(nèi)容提供商260生成一個要分發(fā)到終端用戶250的文件,如新的流媒體表示時,內(nèi)容提供商260會在一開始就把內(nèi)容上載到一個位于數(shù)據(jù)中心220~222的流服務(wù)器。作為選擇,這些內(nèi)容可以由數(shù)據(jù)中心220~222操作人員中的一個成員來裝載。然后基于一個自動內(nèi)容分發(fā)策略和/或終端用戶對此文件的需求,自動把此文件從數(shù)據(jù)中心220~222分布到一個或多個中間POP230~234和/或邊緣POP240~245(下面會作詳細描述)。
由于數(shù)據(jù)中心220~222必須能夠存儲和傳輸內(nèi)容提供商260的大量數(shù)據(jù),故這些設(shè)施可以配備能夠存儲上百TB數(shù)據(jù)的磁盤陣列(這是基于當前性能;最終數(shù)據(jù)中心220~222可以基于存儲技術(shù)的改進而具備顯著更大的存儲容量)。此外,數(shù)據(jù)中心具備到其他數(shù)據(jù)中心220~222、中間POP230-240、甚至邊緣POP240~245的高帶寬連接性。此外,在一個實施方案中,數(shù)據(jù)中心220~222一直配備有一個操作人員(即一天24小時、一周7天)。
在本系統(tǒng)的一個實施方案中實現(xiàn)了比數(shù)據(jù)中心更多的中間POP230~234。但是,比起數(shù)據(jù)中心230~234,單個中間POP230~234所配置的在線存儲容量相對較少(數(shù)百GB到一或二TB的存儲容量)。在一個實施方案中的中間POP230~234地理上分布于整個世界,以提供更加有效的內(nèi)容分布方案。利用數(shù)據(jù)中心220~234提供的大量的網(wǎng)絡(luò)和系統(tǒng)管理支持,對這些站點可以進行遠程管理(下面會做更為詳細的描述)。
在一個實施方案中,邊緣POP240~245是在規(guī)模上比中間POP240~234更小的設(shè)施。但是,相對于中間POP230~234和數(shù)據(jù)中心220~222的數(shù)量,實質(zhì)上使用了更多的地理上分散開的邊緣POP240~245。該邊緣POP可能包括多組與設(shè)施擁有者(如互聯(lián)網(wǎng)服務(wù)提供商)同處一處的服務(wù)器和其他組網(wǎng)設(shè)備。某些邊緣POP240~245具備到網(wǎng)絡(luò)210的直接、高帶寬連接性(如通過T1信道或者更高的連接),而其他邊緣POP240~245僅有低帶寬“控制”連接性(如典型地是最小的撥號數(shù)據(jù)連接(調(diào)制解調(diào)器);盡管這里也可能包括部分的T1連接)。即使某些邊緣POP站點230~234通過互聯(lián)網(wǎng)連到系統(tǒng)的其余部分,連接的實現(xiàn)也使得邊緣POP240~245成為數(shù)據(jù)中心220~222所管理的虛擬專用網(wǎng)(VPN)的一部分。就像中間POP230~234一樣,邊緣POP240~245可能由一個或多個數(shù)據(jù)中心220~222用網(wǎng)絡(luò)和系統(tǒng)管理支持進行遠程管理。
系統(tǒng)資源(如服務(wù)器、連接性)可以被部署為模塊單元,它們可以基于對某些類型內(nèi)容的需求而在數(shù)據(jù)中心220~222、中間POP230~234以及邊緣POP240~245處添加。這種模塊性提供了“本地”級別的可擴展性;而支持“全局”范圍(系統(tǒng)寬)的可伸縮性是通過隨著內(nèi)容提供商260庫的增長的需要而添加中間POP230~234和邊緣POP240~245,并增加/修改該內(nèi)容分發(fā)服務(wù)。在此環(huán)境下的“本地”級別意味著在數(shù)據(jù)中心、中間POP或邊緣POP內(nèi)部。例如,如果某個邊緣POP配備了5個流服務(wù)器來在邊緣提供比如說5000個流的總?cè)萘浚瑒t邊緣POP容量可以(根據(jù)本發(fā)明的一個實施方案)依照規(guī)劃要求通過去除/增加流服務(wù)器而伸縮為更高/更低的值(比如說3000個流或10,000個流)。在“全局”或系統(tǒng)范圍,可伸縮性可以通過增加新的POP、數(shù)據(jù)中心、以及甚至為網(wǎng)絡(luò)連接定購/分配更高的帶寬來實現(xiàn)。
圖2所示的三層體系結(jié)構(gòu)提供最優(yōu)地使用網(wǎng)絡(luò)210的帶寬和資源。通過主要從邊緣POP240~245向終端用戶250傳送數(shù)據(jù),可減少長途連接(如直接從內(nèi)容源來伺服用戶250),從而節(jié)省了網(wǎng)絡(luò)帶寬。這種特性特別有益于要求大量的帶寬和存儲容量的實時多媒體流等應(yīng)用。結(jié)果,由于從邊緣POP240~245傳遞內(nèi)容避免了目前網(wǎng)絡(luò)的主要瓶頸,所以使用戶感到服務(wù)質(zhì)量的明顯提高。
在圖4所示的本系統(tǒng)的一個特定實施方案中,在數(shù)據(jù)中心420和中間POP430、432和434之間提供專有、高速的通信信道422、424和426,它們可能都為同一組織所有。相比之下,此實施方案中的邊緣POP440~448通過互聯(lián)網(wǎng)(即公用通信信道)連到中間POP430、432、434以及數(shù)據(jù)中心432。
下面會參考圖14~16描述本系統(tǒng)被配置為流過實況和點播音頻/視頻內(nèi)容的特定實施方案。如圖14所示,此實施方案能夠接收來自各種源的進入音頻/視頻內(nèi)容,其中包括但不局限于通過衛(wèi)星鏈路1410所廣播的實況或錄制信號1401、通過視頻會議系統(tǒng)1411所提供的實況信號1402、和/或通過專用互聯(lián)網(wǎng)協(xié)議(IP)鏈路1412所傳送的實況或錄制信號1403。但是應(yīng)當注意在仍舊遵守本發(fā)明基本原則的情況下,除了IP外可以使用未加限制的各種網(wǎng)絡(luò)協(xié)議。在一個實施方案中,圖14所示的每個模塊都位于一個數(shù)據(jù)中心220。
一個或多個系統(tǒng)獲得和管理模塊(SAM)1420按需要在各種源1401~1403之間打開和關(guān)閉通信會話。例如,當內(nèi)容提供商想要建立一個新的實況流會話時,SAM 1402(在確定內(nèi)容提供商有權(quán)建立該連接之后)將打開一個新的連接來處理該進入的音頻/視頻數(shù)據(jù)。
SAM模塊1420將基于信號是否已被(如內(nèi)容提供商)編碼和/或信號是否包括“實況”或“點播”內(nèi)容,對進入的信號進行不同處理。例如,如果一個信號尚未被內(nèi)容提供商編碼(例如信號可以用模擬格式或非流數(shù)字格式在數(shù)據(jù)中心220處被接收),則SAM模塊會把信號導(dǎo)向一個或多個流編碼器模塊1430,它們把此流編碼成指定的數(shù)字流格式(如Windows MediaTM,Real G2TM...等)。
如果進入的信號是實況信號,則流編碼器1430把所產(chǎn)生的編碼信號直接發(fā)送到一個或多個流起始服務(wù)器1510(它會按下面的描述向各種POP節(jié)點分發(fā)此信號)和/或到一個或多個在數(shù)據(jù)中心220的內(nèi)容存儲設(shè)備531。但是,如果進入的信號是點播信號,則流編碼器1430直接向內(nèi)容存儲設(shè)備531發(fā)送已編碼的信號。與此類似,如果該進入的信號已被編碼成流格式,則直接把它發(fā)送到內(nèi)容存儲設(shè)備531,從這里隨后把它發(fā)送到流起始服務(wù)器1510。隨著新的音頻/視頻流內(nèi)容被加到內(nèi)容存儲設(shè)備531,SAM模塊1420(例如通過下面描述的內(nèi)容傳遞子系統(tǒng))使存儲數(shù)據(jù)庫530得到相應(yīng)的更新。
如圖15所示,從流起始服務(wù)器1510向位于各種I-POP節(jié)點230~232和E-POP節(jié)點240~242上的流分路器1520~1522、1530~1532發(fā)送該編碼信號。使用所示的流分路器保存了大量的網(wǎng)絡(luò)帶寬。例如,在所示實施方案中每個流分路器從上游服務(wù)器僅接收單個實況音頻/視頻內(nèi)容流,然后流分路器將其劃分為幾個獨立的流。于是,在上游服務(wù)器和流分路器之間的網(wǎng)絡(luò)路徑僅被加載單個音頻/視頻流。
此外,在所示多層體系中使用流分路器降低了體系中每級的帶寬。例如,一個流起源服務(wù)器1510可能把來自實況流事件的單個流發(fā)送到I-POP流分路器1521。然后流分路器1521把單個流發(fā)送到每個E-POP流分路器1530~1532,而它們又把實況事件發(fā)送到多個終端用戶1540~1548。因此,數(shù)據(jù)中心220和I-POP231之間的網(wǎng)絡(luò)路徑只加載單個流并且I-POP231和E-POP240-242之間的三條網(wǎng)絡(luò)路徑分別只加載單個流。然后在每個E-POP240~242對進入的流進行分路,來向多個終端用戶1540~1548提供該實況事件。
自動內(nèi)容傳遞如圖5所示,在數(shù)據(jù)中心505通過內(nèi)容提供商260(如使用FTP)或數(shù)據(jù)中心操作人員515(如用磁帶和CD)的直接上載、或是通過實況、實時多媒體信號,來把內(nèi)容引入系統(tǒng)。無論在一個實施方案中如何引入新內(nèi)容,目錄/文件監(jiān)視器模塊(DF Mon)510總會更新內(nèi)容數(shù)據(jù)庫530,以識別已到達數(shù)據(jù)中心505的新文件??赡茉O(shè)置一個數(shù)據(jù)庫字段或標記來指示該文件是新的或者還未向中間POP506發(fā)送。在一個實施方案中,DF Mon 510是一個在數(shù)據(jù)中心處在服務(wù)器上后臺運行的服務(wù)(如一個Windows NT服務(wù)),它使用操作系統(tǒng)原語(如Win32)來監(jiān)視已編碼的文件目錄。當向這些目錄增加或從這些目錄去除文件時,操作系統(tǒng)會通知DF Mon 510。
然后一個自動內(nèi)容分布子系統(tǒng)在整個系統(tǒng)中自動地分布(即復(fù)制或鏡像)這些新引入的內(nèi)容。在一個實施方案中,自動內(nèi)容分布子系統(tǒng)包括一個內(nèi)容分布管理器(CDM)模塊520、和一個文件傳輸服務(wù)(FTS)模塊525。CDM 520實現(xiàn)了內(nèi)容分布和管理策略,而FTS 525處理文件的物理傳輸。應(yīng)當注意的是,盡管圖5表示的FTS 525和CDM 520完全位于數(shù)據(jù)中心505中,但這些模塊的實例可以在網(wǎng)絡(luò)中其他的節(jié)點(如中間POP541~544)上實現(xiàn)。
在一個實施方案中,當內(nèi)容在網(wǎng)絡(luò)210中被分布/復(fù)制時,在數(shù)據(jù)中心220~221之一所維護的一個中心數(shù)據(jù)庫530被用于跟蹤這些內(nèi)容。CDM 520周期性的查詢數(shù)據(jù)庫530來確定是否(存儲在內(nèi)容存儲設(shè)備531上的)文件應(yīng)在中間POP506上復(fù)制。作為選擇或者除此之外,當需要復(fù)制一個或一組文件時,就通知CDM 520(如由數(shù)據(jù)庫應(yīng)用編程接口、DF Mon 510或一些其他事件驅(qū)動模塊進行異步通知)。
一旦CDM 520確定需要復(fù)制文件,就向FTS 525發(fā)送一條標識文件和文件傳輸目的地POP506、507的命令,這里稱為到FTS的“文件請求消息”(FRM)。然后FTS 525執(zhí)行下層的文件傳輸過程(如通過調(diào)用Win32或FTP命令;后者用于通過互聯(lián)網(wǎng)傳輸),并提供數(shù)據(jù)庫更新,以表明傳輸是否成功以及文件拷貝到哪里。
文件去除過程用相似的方式工作。CDM 520查詢數(shù)據(jù)庫530,查找標記為“將要刪除”(TBD)的文件。作為選擇或除此之外,當文件被標記為TBD時,可通知CDM 520(例如用文件傳輸)。把一個文件標記為TBD有多種方法。例如,當一個內(nèi)容提供商260上載了文件時,提供商260就指明它僅僅想讓此文件在特定時間周期(如10天)可用。作為選擇,內(nèi)容提供商260不能指定刪除日期,但卻可以在任意時間人工地把此文件標記為TBD(或者讓數(shù)據(jù)中心操作人員515來標記此文件)。在另一實施方案中,內(nèi)容提供商260指明此文件應(yīng)當基于用戶250請求它的頻繁(或稀疏)程度來被標記TBD。
一旦向某個POP節(jié)點505、507拷貝了或從中刪除了一個文件,則內(nèi)容分布子系統(tǒng)在中心內(nèi)容數(shù)據(jù)庫530中創(chuàng)建或去除一個“文件位置”的數(shù)據(jù)庫記錄。此記錄能把數(shù)據(jù)中心文件與在中間和/或邊緣站點上存儲服務(wù)器中它的拷貝關(guān)聯(lián)起來。
在圖6中表示了FRM數(shù)據(jù)結(jié)構(gòu)600的一個實施方案。此結(jié)構(gòu)600包括opcode 610,以向FTS表示需要對這些文件執(zhí)行的操作,其中包括標識是否需要“文件刪除”或“文件傳輸”并指示有關(guān)文件刪除/傳輸?shù)奶囟愋汀@?,根?jù)環(huán)境而相應(yīng)采取FTP或者Win32(或其他類型)刪除/傳輸(例如,如果通過互聯(lián)網(wǎng)進行刪除/傳輸,則FTP更適合,而Win32刪除/傳輸通過專用信道會更有效率)。
此外,opcode 610可能指定正?;颉皯卸琛钡膭h除/傳輸。從根本上說,“懶惰”FTS命令可以用于處理低優(yōu)先級的傳輸/刪除。在一個實施方案中,“懶惰”命令會僅使用單個線程(即在多線程系統(tǒng)中的單個事務(wù)或消息)來處理該刪除和傳輸請求,而“正?!辈僮鞯膱?zhí)行是使用多個線程。單線程的“懶惰”操作對于某些類型的FTP命令而實現(xiàn)(如那些基于WS_FTP API的命令)。
源服務(wù)器字段620標識在數(shù)據(jù)中心中始發(fā)文件的服務(wù)器,“目標服務(wù)器數(shù)量”字段630表示將把文件向其傳送/從中刪除的POP數(shù)量;“文件數(shù)量”字段640表示事務(wù)所涉及的文件數(shù)量;“實際文件ID”字段650標識事務(wù)所涉及的每個文件;而一個或多個“實際目標服務(wù)器ID”指定將把文件向其拷貝/從中刪除的實際目標服務(wù)器。在此實施方案中,“文件數(shù)量”字段640以及“目標服務(wù)器數(shù)量”字段630可能由系統(tǒng)用來確定請求消息分組長度(即這些字段標識了實際文件ID和目標服務(wù)器ID字段650、660需要有多大)。
應(yīng)當注意的是,前面請求消息格式600的描述僅用于解釋。在符合本發(fā)明的基本原則的前提下,在CDM 520和FTS 525之間可以傳輸其他各種類型的信息/數(shù)據(jù)格式。
在一個實施方案中,CDM 520可以根據(jù)像網(wǎng)絡(luò)擁塞(也叫作“負載”)、對某些位置上特定文件的需求、和/或(各)內(nèi)容提供商260所定購服務(wù)的等級等變量,而在指定的中間POP541~544上(和某些情況下在邊緣POP551~553上)復(fù)制內(nèi)容。例如,在高網(wǎng)絡(luò)擁塞期間,CDM 520可能在數(shù)據(jù)庫530的一個隊列中存儲文件請求消息。一旦網(wǎng)絡(luò)擁塞降至預(yù)定義的閥值之下,則把該請求消息從隊列傳送到FTS 525,由它來完成文件傳輸/文件刪除過程。
與此類似,如果提前知道在某特定時刻會極多地需要特定文件(如斯塔爾報告),和/或其它要求大量的網(wǎng)絡(luò)帶寬的情況(如高質(zhì)量流視頻文件),則CDM 520可能被事先編程來把這些文件傳輸?shù)侥承┲虚gPOP541~544(和/或邊緣POP551~553;參見下文),以避免重大的服務(wù)質(zhì)量問題(如網(wǎng)絡(luò)崩潰)。
CDM 520也可能基于每個內(nèi)容提供商260所定購的服務(wù)等級來把文件推動到POP541~544。例如,某些內(nèi)容提供商260可能愿意支付額外費用,來讓某個文件很容易在網(wǎng)絡(luò)上所有POP541~544、551~553隨時可用。而且內(nèi)容提供商260可能想讓特定類型的內(nèi)容在某些POP541~544上可用,而在其他POP不可用。例如,一個國際性內(nèi)容提供商260可能想根據(jù)維護該中間POP541~544的國家(這些POP向那個國家的用戶提供內(nèi)容)而在不同中間POP541~544站點上使相同的基本網(wǎng)頁以不同語言可用。于是,一個摩托車制造商可能想把法語版的網(wǎng)頁推到法國的POP上,而把德語版推到德國的POP。在此實施方案中的CDM 520能夠被配置成按照需要去傳輸內(nèi)容,而滿足每個內(nèi)容提供商260的具體需求。在一個實施方案中,CDM 520基于指定的文件在數(shù)據(jù)庫530中的標記方式(如這些文件可能指明一組有效POP,它們應(yīng)當在這些POP上復(fù)制)而確定需要在何處拷貝這些文件。
文件高速緩存在一個方案中,邊緣POP551~553作為用于存儲最頻繁請求的媒體內(nèi)容的高速緩存文件服務(wù)器。在一個實施方案中的CDM使用強迫高速緩存和按需高速緩存兩種方式在邊緣POP551~553上高速緩存內(nèi)容。
在一個強迫高速緩存協(xié)議下,CDM標識在特定邊緣POP站點551~553處將被大量要的文件(如通過查詢數(shù)據(jù)庫530),并響應(yīng)地把這些文件推到這些站點。作為選擇或除此之外,內(nèi)容提供商可以指定CDM應(yīng)當高速緩存某組文件的邊緣POP站點551~553。內(nèi)容提供商的這種指定用于高速緩存文件的邊緣POP站點551-553的能力可以基于內(nèi)容提供商所定購的服務(wù)等級(正如有關(guān)中間POP站點的敘述)。
現(xiàn)在會參考圖7描述本系統(tǒng)的、采用基于需要的高速緩存的實施方案。在一個實施方案中,當用戶705請求在某個互聯(lián)網(wǎng)站點上所存的內(nèi)容(如網(wǎng)頁、流多媒體文件...等)時,這個請求被一個負載均衡器模塊(LBM)710所接收,它標識處理此請求的最合適的邊緣POP站點507。在一個實施方案中的LBM 710是一個位于數(shù)據(jù)中心的模塊(如運行在萬維網(wǎng)服務(wù)器上)。LBM 710標識為“最合適”是取決于LBM 710所應(yīng)用的特定負載均衡策略770。策略770可能包括高速緩存/網(wǎng)絡(luò)變量,諸如網(wǎng)絡(luò)負載、邊緣POP507服務(wù)器負載、請求該內(nèi)容的用戶位置、和/或邊緣POP507服務(wù)器的位置等等。
在一個實施方案中,LBM 710通過查詢中心數(shù)據(jù)庫530(即在一個實施方案中的數(shù)據(jù)庫530跟蹤內(nèi)容在整個系統(tǒng)中分布的確切位置),來發(fā)現(xiàn)最合適的邊緣POP507并確定內(nèi)容在邊緣POP507是否可用。如果所請求的內(nèi)容在邊緣POP507上可得,則把它傳輸?shù)接脩?05。但是,如果內(nèi)容在邊緣POP507并不可得,則LBM 710把此請求重導(dǎo)向到第二最合適的POP(如在所述實施方案中的中間POP506),由它再把此內(nèi)容發(fā)送到用戶705。
LBM 710向CDM 520通知所請求的內(nèi)容在邊緣POP站點507上并不可得(即出現(xiàn)了高速緩存“未中”)。CDM 520確定特定邊緣POP站點507是否應(yīng)當高速緩存所請求內(nèi)容的拷貝,以備其他用戶請求時可用。如果CDM確定在邊緣POP507上應(yīng)當維護一個拷貝,則向FTS 525發(fā)送一個傳輸請求消息,來完成到邊緣POP507的底層文件傳輸。
CDM 520決定是否高速緩存拷貝是基于所應(yīng)用的特定高速緩存策略760。在本系統(tǒng)的一個實施方案中,高速緩存策略將包括在一段時期內(nèi)邊緣POP507請求某個文件的次數(shù)。一旦達到某閥值(如一小時10次請求),則CDM 520會使FTS 525傳輸該文件的拷貝。
高速緩存策略760考慮在內(nèi)的其他變量包括所請求文件是否不可高速緩存(如要求用戶鑒權(quán)的文件或動態(tài)改變的內(nèi)容)、邊緣POP507的存儲容量、所請求文件的大小、網(wǎng)絡(luò)和/或服務(wù)器的擁塞、以及某個內(nèi)容提供商260所定購服務(wù)的等級等等。這些變量中的一些可以單獨或一起由CDM 520用來做出高速緩存決定。
現(xiàn)在參考圖8中的流程圖描述一個采用基于需要的高速緩存方法的實施方案。在810用戶請求內(nèi)容。作為響應(yīng),LBM 710(通過如查詢數(shù)據(jù)中心的一個中心數(shù)據(jù)庫)標識最合適的邊緣POP站點,由它來發(fā)送所請求的內(nèi)容。如果在830確定了所請求的內(nèi)容在邊緣POP服務(wù)器可得,則在835 LBM 710(通過如向用戶發(fā)送服務(wù)器的URL)把用戶導(dǎo)向邊緣POP服務(wù)器,由它向用戶發(fā)送內(nèi)容。
但是,如果該內(nèi)容并不可用,則在840 LBM(通過如查詢各數(shù)據(jù)庫)標識最合適的中間POP服務(wù)器,由它來傳送內(nèi)容。在850中間POP服務(wù)器向用戶發(fā)送內(nèi)容,而在860 LBM 710通知CDM 520。在870 CDM基于所使用的特定高速緩存策略,確定所請求內(nèi)容的拷貝是否應(yīng)當存儲在邊緣POP站點本地。如果決定在邊緣POP站點高速緩存內(nèi)容,則在880向邊緣POP站點發(fā)送此內(nèi)容,而數(shù)據(jù)庫進行相應(yīng)的更新。
如圖16所示,一個實施方案提供一種對頻繁請求的流內(nèi)容在I-POP231和/或E-POP進行高速緩存的機制。某音頻/視頻流文件高速緩存與否可以基于預(yù)測和/實際的文件需求。例如,如果在某預(yù)定義的時間周期內(nèi)某文件在一個E-POP241已被請求了特定次數(shù)(如一小時10次),則從數(shù)據(jù)中心220上的高速緩存服務(wù)器1610(它從內(nèi)容存儲設(shè)備531接收文件的子集)把此文件傳送到E-POP241上的本地高速緩存設(shè)備1640。在一個實施方案中,當從一個或多個POP站點高速緩存或刪除文件時,數(shù)據(jù)庫530進行更新來反映這些變動。
現(xiàn)在參考圖13,描述本系統(tǒng)和方法的一個特定實施方案,用于分布和流過多媒體文件。在此例中一個通過邊緣POP507連到互聯(lián)網(wǎng)的觀看者1310發(fā)出一個流過某點播文件的請求。此文件在IES數(shù)據(jù)庫1320中用“FileInfo”記錄來引用,此記錄的ID作為一個參數(shù)嵌入在URL中,觀看者點擊這個URL以訪問數(shù)據(jù)中心505上的一個萬維網(wǎng)服務(wù)器1325。在此實施方案中的萬維網(wǎng)服務(wù)器1325調(diào)來一個流模塊(如一個網(wǎng)頁;Windows 98TM的“stream.asp”)1335來處理此請求。流模塊1335構(gòu)建一個包括到所需文件的流服務(wù)器路徑的元文件(如Real G2 RAM或WMTASX元文件)。流模塊1335調(diào)用流重導(dǎo)向器1340來確定這個路徑。它接受此來自URL的FileInfo ID和觀看者的IP地址。
在一個實施方案中的流重導(dǎo)向器1340是一個運行在萬維網(wǎng)服務(wù)器1325上的out-of-proc COM服務(wù)器。當重導(dǎo)向器1340被流模塊1335調(diào)用來創(chuàng)建到點播文件的流服務(wù)器路徑時,它首先對照早先從數(shù)據(jù)庫1320中收集的一組站點IP掩碼,來檢查觀看者1310的IP地址。在所述實施方案中,重導(dǎo)向器1340發(fā)現(xiàn)匹配并正確地標識觀看者1310所連的邊緣POP站點507。它(使用如數(shù)據(jù)庫API)檢查數(shù)據(jù)庫1320,來確定在觀看者的邊緣POP站點507上是否有所需的文件。如果它使用URL中的FileInfo ID,發(fā)現(xiàn)了一個與此站點507匹配的FileLacation記錄,則它返回一個流路徑,能把觀看者重導(dǎo)向到一個同在邊緣POP站點507上的媒體服務(wù)器1345。如果它沒有在那里發(fā)現(xiàn)此文件(即導(dǎo)致“未中”),則它就生成一個路徑,來把觀看者重導(dǎo)向到已知文件所在的中間POP站點506之一。
重導(dǎo)向器1340在將中間POP506路徑返回給該流模塊1335之后,請求內(nèi)容分布子系統(tǒng)1355向邊緣POP站點507傳送此文件的一個拷貝。作為選擇,在一個實施方案中,重導(dǎo)向器1340簡單的通知內(nèi)容分布子系統(tǒng)1355所請求的內(nèi)容不在邊緣POP站點507上,并允許內(nèi)容分布子系統(tǒng)1355最終決定是否應(yīng)在邊緣站點507上存儲拷貝(基于如內(nèi)容分布策略)。然后CDM把這些請求轉(zhuǎn)發(fā)到FTS,在此作業(yè)排隊等候后來的處理。
重導(dǎo)向器1340將中間POP重導(dǎo)向路徑返回給該流模塊1335,在流模塊1335把它插入到元文件中并返回到觀看者1310瀏覽器。觀看者1310瀏覽器接收元文件并把它轉(zhuǎn)交到流播放器(如RealPlayer、Windows MediaPlayer...等)。這些播放器分析元文件以獲得重導(dǎo)向路徑、建立到指定中間POP506上某媒體服務(wù)器的連接、并開始流過該點播文件。
FTS處理作業(yè)以便把文件傳輸?shù)竭吘塒OP站點507(例如,如果有到此站點的專有連接則經(jīng)由Win32文件拷貝、而可替代地,如果互聯(lián)網(wǎng)是唯一從數(shù)據(jù)中心到此站點的路徑則用互聯(lián)網(wǎng)上的FTP)。在一個實施方案中的FTS可以在網(wǎng)絡(luò)中任何服務(wù)器上運行。于是,F(xiàn)TS的實例可能處于中間POP506上,并開始從中間POP506到邊緣POP507的拷貝,從而保存了從數(shù)據(jù)中心505出來的專有連接的帶寬。當?shù)竭吘塒OP507存儲器的文件拷貝成功完成時,F(xiàn)TS創(chuàng)建一個聯(lián)系FileInfo和邊緣POP站點507記錄的“FileLocation”數(shù)據(jù)庫記錄。
下次這個觀看者1310或其他通過這個邊緣POP507進行連接的觀看者試圖流過同一文件時,會直接從邊緣POP站點507上的媒體服務(wù)器1345(如附屬于同一ISP局域網(wǎng))流過它。所創(chuàng)建的Fi1eLocation數(shù)據(jù)庫記錄允許重導(dǎo)向器1340選擇更優(yōu)的ISP站點來伺服觀看者1310。應(yīng)當注意在各組件之間的定時可以根據(jù)系統(tǒng)需求而有不同,但依然使用總體概念。
存儲空間管理再次參考圖5,在一個實施方案中,CDM 520實現(xiàn)了一種使用存儲在中心數(shù)據(jù)庫530的文件訪問數(shù)據(jù)(如表明什么時間什么頻率在一個邊緣POP請求某個文件的數(shù)據(jù))來管理在所有邊緣文件服務(wù)器上高速緩存空間的策略。當與其他文件比較,請求相對稀疏的文件和/或在相對較長的時期內(nèi)未被請求的文件可能從這個邊緣POP被標記為TBD(即分別用“最少使用”和“最后訪問時間”算法)。文件滿期日期也可能含在數(shù)據(jù)庫中(如“文件X在1/15/00后過期”)并用于CDM 520來執(zhí)行高速緩存管理功能。
在一個實施方案中,每個邊緣POP551~553都關(guān)聯(lián)著數(shù)據(jù)庫530中所存的高閥值和低閥值。高閥值是一個表明對于CDM 520必須調(diào)用文件去除操作的邊緣服務(wù)器存儲設(shè)備充滿程度的百分比。低閥值是一個表明CDM完成其文件去除功能時邊緣服務(wù)器存儲設(shè)備充滿程度的百分比。
例如,如果某邊緣POP551的高閥值是80%,則當此站點的存儲達到容量的80%時會在數(shù)據(jù)庫530設(shè)置一個高閥值標志。作為響應(yīng),CDM520周期性的從數(shù)據(jù)庫530查詢閥值數(shù)據(jù),將命令FTS 525使用一個或多個上述高速緩存管理策略從這個站點去除文件。如果此站點的低閥值設(shè)在60%,則CDM 520會命令FTS 525刪除文件,直至站點的存儲達到容量的60%。以此方式設(shè)置低閥值,防止了在文件服務(wù)器達到其高閥值時文件去除操作不停的運行。
容錯現(xiàn)在參考圖9描述一個采用容錯能力的本系統(tǒng)的一個實施方案。以前,如果在給定POP上有多個文件服務(wù)器,則從內(nèi)容源把內(nèi)容傳輸?shù)絇OP站點上每個單獨的文件服務(wù)器。用這種方式傳輸相同文件的多個拷貝導(dǎo)致了效率低下和費用較高,尤其是對于多媒體文件(它們通常非常巨大)。在每個站點維護單個文件服務(wù)器解決了網(wǎng)絡(luò)和服務(wù)器流量增加的問題,但造成了不可靠性的問題(即如果文件服務(wù)器崩潰,則整個站點都不可用)。
本發(fā)明的一個實施方案解決了前述所有問題,這是通過提供后備文件服務(wù)器911~913、921~922和931,它們分別當主服務(wù)器910、920和930不在時被激活。一個稱為文件傳輸代理(FTA)的模塊運行在各站點的所有的文件服務(wù)器910~913、920~922和930~931上,并配置成主FTA或從FTA。主FTA文件服務(wù)器910、920和930從系統(tǒng)其余部分傳輸文件并接收文件(如通過網(wǎng)絡(luò)210從數(shù)據(jù)中心221),而該從FTA文件服務(wù)器911~913、921~922和931僅分別從該主文件服務(wù)器910、920和930接收文件。
每個文件服務(wù)器群集中的主/從FTA分配用人工配置或通過協(xié)議來協(xié)商。對在POP900、901和數(shù)據(jù)中心221上每個主和從FTA的進行標識的信息被存儲在數(shù)據(jù)庫530。當要把一個文件(如通過FTS文件傳輸命令)傳送到某個站點900時,數(shù)據(jù)中心221的主FTA 930(如通過數(shù)據(jù)庫530查詢)檢查在此站點的主FTA文件服務(wù)器910。在數(shù)據(jù)中心221的源主FTA文件服務(wù)器930把此文件傳送到在POP站點900的目標主FTA文件服務(wù)器910。然后目標主FTA 910負責(zé)把此內(nèi)容傳送到集群中的剩余文件服務(wù)器911~913。在一個實施方案中,PTA包括這里所述的內(nèi)容傳遞子系統(tǒng)的一部分(即CDM/FTS)。
與此類似,當從主FTA文件服務(wù)器910中刪除文件時,主FTA負責(zé)從該從文件服務(wù)器911~913上刪除。用這種方式,任何對主FTA文件服務(wù)器910的改動都反映到集群中其他二級文件服務(wù)器911~912上。在一個實施方案中,實現(xiàn)這種同步使用了Daemon來檢測對主FTA文件服務(wù)器的任何改動并自動更新其他文件服務(wù)器。
如果主FTA文件服務(wù)器910停機,則通過協(xié)議協(xié)商把在文件服務(wù)器集群中的一個從FTA文件服務(wù)器(如911)變?yōu)橹鱂TA。在一個實施方案中實現(xiàn)了一種保持存活協(xié)議一個或多個從FTA文件服務(wù)器911~913周期性的向主FTA文件服務(wù)器910發(fā)送狀態(tài)請求,以確保主FTA的存活。如果在預(yù)定義的請求次數(shù)之后沒有從主FTA收到響應(yīng)(表明主FTA停機),則一個從FTA文件服務(wù)器911~912變?yōu)樾碌闹鱂TA。在一個實施方案中,自動主/從分配是隨機的實現(xiàn);每個FTA都生成一個隨機數(shù),而且具有最大隨機數(shù)的FTA被指定為新的主FTA。
錯誤處理和恢復(fù)CDM 520所處理的文件的數(shù)量每天大概上千。就此而言,一個健壯的自動錯誤處理和恢復(fù)設(shè)計會益于確保終端用戶250得到高質(zhì)量的服務(wù)。某網(wǎng)絡(luò)故障可能有多種潛在原因,例如,源或宿站點的不可用性(如由于服務(wù)器停機)、極度網(wǎng)絡(luò)擁塞、網(wǎng)絡(luò)通信信道的不可用性、以及各種類型的軟件錯誤。在本系統(tǒng)的一個實施方案中,現(xiàn)在參考圖10和11描述CDM如何自動的檢測、分析和試圖糾正網(wǎng)絡(luò)故障。
在1000(圖10),F(xiàn)TS 525對CDM 520的請求消息作出響應(yīng),試圖執(zhí)行文件操作(如文件傳輸和/或文件刪除)。如果操作成功(在1010確定),則FTS 525更新數(shù)據(jù)庫530以反映這些改動,并移動到下一所要執(zhí)行的操作。但是,如果FTS 525不能完成所請求的操作,則它把此錯誤登記到數(shù)據(jù)庫530的一個的錯誤隊列1100中(在1020)。錯誤隊列1100中的每個條目都包括造成故障的請求消息操作(如圖11中的文件傳輸1108~1111、1176~1177、1190;以及文件刪除1125)以及一個表明故障原因的錯誤代碼(如圖11中的錯誤代碼7、10、和3)。
CDM 1120中的錯誤分析部分周期性的向數(shù)據(jù)庫530查詢錯誤(在1030),并基于恢復(fù)策略1110確定適當?shù)腻e誤恢復(fù)過程?;謴?fù)策略110可能包括由數(shù)據(jù)中心操作人員515所提供的網(wǎng)絡(luò)特定和一般的過程(參見圖5)。例如,如果目標POP已經(jīng)停機了已知的時間周期(如從800到1000PM),則操作人員515可能把這個網(wǎng)絡(luò)特定的信息考慮進恢復(fù)策略1110中。當CDM 520在這段指定時間周期內(nèi)收到指向這個POP的文件操作錯誤,則在1040它會認為這些錯誤是可以恢復(fù)的錯誤(即假設(shè)目標POP不再停機),并會啟動一個錯誤恢復(fù)過程1050(如它可能指令FTS 525來重新嘗試文件傳輸操作)。
恢復(fù)策略1110可能還包括一般恢復(fù)過程。例如,如果失敗的文件操作僅由FTS 525嘗試一次,則CDM 520可能自動命令FTS 525再試一次(即假設(shè)此故障是臨時網(wǎng)絡(luò)干擾所造成)。如果這些故障在預(yù)定義的嘗試次數(shù)之后依然存在,則CDM 525可能確定不可能恢復(fù),并生成一個會由操作人員515檢閱的報告(在1060)。
在一個實施方案中,CDM 520基于所出現(xiàn)的特定類型錯誤和/或先前所嘗試的次數(shù)來確定是否嘗試恢復(fù)1050。例如,如果此錯誤是由于此文件在數(shù)據(jù)中心221并不可用,則CDM 520可能立即認定不可能恢復(fù),并會生成一個表示這種意思的報告1060。但是,如果此錯誤是由于網(wǎng)絡(luò)擁塞,則在確定不可能恢復(fù)并生成報告1060之前,CDM 520可能嘗試幾次來糾正錯誤(即它可能指令FTS 525嘗試幾次進行文件操作)。
CDM 520還可能基于在某段時期內(nèi)指向同一POP的連續(xù)某類錯誤的次數(shù),來確認不可恢復(fù)的錯誤。例如,如果在五分鐘內(nèi)對某POP的連續(xù)文件傳輸操作(如文件傳輸1108~1111)失敗,則CDM 520可能自動中斷此操作,這意味著此POP在那段時期內(nèi)停機(而在上述實施方案中操作人員515人工把這個信息包括到恢復(fù)策略中)。于是,如果POP現(xiàn)在在線并在接收文件傳輸,則CDM 520可能指令FTS 525重新嘗試文件傳輸和/或刪除。在遵循本發(fā)明基本原則的前提下可以使用其他的錯誤檢測和糾正機制。
用虛擬IP地址進行負載均衡單個服務(wù)器典型的不足以提供應(yīng)用服務(wù),尤其是對于實況或點播的多媒體內(nèi)容流等高帶寬的應(yīng)用。參考圖12,在這種環(huán)境中,滿足應(yīng)用服務(wù)器要求是通過利用資源池,如服務(wù)器1221~1223和1231~1232,它們分別支持給定的應(yīng)用服務(wù)1220和1230。在所示實施方案中,執(zhí)行負載均衡使得沒有單個服務(wù)器過載,而且應(yīng)用服務(wù)1220、1230的工作都不被中斷。
一個第四層交換機1200支持這些要求,它基于與此服務(wù)相關(guān)的虛擬IP地址(VIP)來標識客戶機1250~1252所請求的某類服務(wù),并把這些請求轉(zhuǎn)到分配給這個服務(wù)的服務(wù)器池中的某個服務(wù)器(例如1221)。例如,如果應(yīng)用服務(wù)1220配置為處理所有的輸入萬維網(wǎng)網(wǎng)頁(即超文本傳輸協(xié)議)請求,則連到VIP 1202來下載網(wǎng)頁的各客戶機會被第四層交換機1200重導(dǎo)向到VIP 1202之后的具體服務(wù)器。
在典型的負載均衡配置中,靜態(tài)分組的服務(wù)器被分配到應(yīng)用服務(wù)池。在本發(fā)明的一個實施方案中,部署多個應(yīng)用服務(wù),使用可以動態(tài)配置的服務(wù)器池1221~1223、1231~1232,以最優(yōu)的分配資源和容錯。具體而言,此實施方案允許基于對某個服務(wù)的需求和/或這個服務(wù)的當前負載,而把分配到一個應(yīng)用服務(wù)1220的各服務(wù)器(如1221)動態(tài)的重新分配到第二應(yīng)用服務(wù)1230上,如圖12所示。
例如,如果預(yù)測到在給定時刻一個實況或點播流事件會要求大量的服務(wù)器資源,則根據(jù)對這個命令的預(yù)測,而可能把服務(wù)器1221從一個非流式服務(wù)器池中轉(zhuǎn)移到一個流式服務(wù)器池1231~1232中。這可以自動實現(xiàn),也可以由操作人員515人工實現(xiàn),并且根據(jù)該配置請求重新啟動所重新分配的服務(wù)器。
在一個實施方案中,服務(wù)器重分配機制對網(wǎng)絡(luò)負載的變化動態(tài)的作出響應(yīng)(而并非預(yù)測這種改變)。因此,如果一個為某個應(yīng)用服務(wù)1230所預(yù)留的服務(wù)器池(如1231、1232)突然經(jīng)受大量增長的服務(wù)請求,則分配到第二應(yīng)用服務(wù)(如1220)的服務(wù)器1221可能被動態(tài)的重新分配到第一應(yīng)用服務(wù)1230,以承擔(dān)一些負載(假設(shè)第二服務(wù)1220還沒有經(jīng)受嚴重的網(wǎng)絡(luò)負載)。在一個實施方案中,一個后臺運行的監(jiān)視模塊跟蹤各個不同應(yīng)用服務(wù)的服務(wù)器負載。當支持一個服務(wù)的服務(wù)器變得過載時,監(jiān)視模塊會嘗試從活動較少的應(yīng)用服務(wù)來重新分配其中的一個或多個服務(wù)器。
在一個實施方案中,在活動較少的應(yīng)用服務(wù)之間比較負載,從應(yīng)用服務(wù)中選擇具有最低平均服務(wù)器負載的服務(wù)器。在另一實施方案中,重分配的決定還考慮預(yù)測的服務(wù)器負載。于是,即使某個應(yīng)用服務(wù)經(jīng)歷較低服務(wù)器負載,但是,如果預(yù)測到應(yīng)用服務(wù)將來會具有較高負載(例如如果應(yīng)用服務(wù)會被用于支持高度公開、調(diào)度的流事件),則不會從這個應(yīng)用服務(wù)中移出服務(wù)器。
在一個實施方案中,實現(xiàn)動態(tài)服務(wù)器重分配是通過負載檢測和控制邏輯1250(如在第四層交換機1200上或另一網(wǎng)絡(luò)設(shè)備中進行配置),它監(jiān)視各組應(yīng)用服務(wù)1230、1220中每個服務(wù)器。在一個實施方案中,對于各服務(wù)器和/或各組應(yīng)用服務(wù)1230、1220可能設(shè)置一高一低兩個負載閥值。在一個實施方案中,當某個組中的服務(wù)器負載達到高閥值,則僅當另一個組(如應(yīng)用服務(wù)1220)中的一個服務(wù)器(如服務(wù)器1221)(或其應(yīng)用服務(wù)組)上的當前負載低于低閥值,負載檢測和控制邏輯1250才會試圖重新分配那個服務(wù)器。
本發(fā)明實施方案包括上述各步驟。這些步驟可能用機器可執(zhí)行的指令來具體實現(xiàn)。這些指令可能用于使一個通用或?qū)S玫奶幚砥鲌?zhí)行某些步驟。作為選擇,這些步驟可能由包含執(zhí)行該步驟的硬連線邏輯的具體硬件部件來執(zhí)行,或由程序控制的計算機部件和客戶硬件部件組合起來執(zhí)行。
本發(fā)明各要素可以用存儲了機器可執(zhí)行指令的機器可讀介質(zhì)來提供。機器可讀介質(zhì)可能包括但不局限于軟盤、光盤、CD-ROM、以及磁光盤、ROM、RAM、EPROM、EEPROM、磁卡或光卡、傳播介質(zhì)或其他類型適于存儲電子指令的介質(zhì)/機器可讀介質(zhì)。例如,本發(fā)明可以作為計算機程序來下載,把它通過通信鏈路(如調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)用載波或其他傳播介質(zhì)中所含數(shù)據(jù)信號從一臺遠程計算機(如服務(wù)器)向一臺請求計算機(如客戶機)傳輸。
縱觀前面的描述,為了解釋,提出了無數(shù)具體的細節(jié)以提供對本發(fā)明的全面理解。但是對于本領(lǐng)域的技術(shù)人員,本發(fā)明的實現(xiàn)明顯可以不需要這些具體細節(jié)。因此,本發(fā)明的范圍和精髓在于下面的權(quán)利要求。
權(quán)利要求
1.一種分布式邊緣網(wǎng)絡(luò)體系結(jié)構(gòu)包括一個含有多個服務(wù)器以存儲數(shù)字內(nèi)容的數(shù)據(jù)中心;多個與所述數(shù)據(jù)中心進行通信的中間存在點(POP)站點,其中每個所述POP站點都具有一個或多個服務(wù)器,以復(fù)制在所述數(shù)據(jù)中心上所存的所述數(shù)字內(nèi)容的一部分;以及多個與各終端用戶以及一個或多個所述中間POP站點進行通信的邊緣POP站點,它們具有一個或多個服務(wù)器,以高速緩存所述各終端用戶請求的所述數(shù)字內(nèi)容的一部分。
2.如權(quán)利要求1中要求的內(nèi)容分布體系結(jié)構(gòu)還包括一個或多個其他數(shù)據(jù)中心,以存儲數(shù)字內(nèi)容并與所述多個中間POP站點進行通信。
3.如權(quán)利要求1中要求的內(nèi)容分布體系結(jié)構(gòu)包括比中間POP更多的邊緣POP、以及比數(shù)據(jù)中心更多的中間POP。
4.如權(quán)利要求1中要求的內(nèi)容分布體系結(jié)構(gòu)還包括專用的、私有通信信道,以支持所述中間POP和數(shù)據(jù)中心之間的通信。
5.如權(quán)利要求4中要求的內(nèi)容分布體系結(jié)構(gòu),其中所述邊緣POP與中間POP通過公共網(wǎng)絡(luò)進行通信。
6.如權(quán)利要求4中要求的內(nèi)容分布體系結(jié)構(gòu),其中所述私有通信信道是數(shù)字信號(DS)信道。
7.如權(quán)利要求6中要求的內(nèi)容分布體系結(jié)構(gòu),其中所述私有通信信道是DS-3信道。
8.如權(quán)利要求1中要求的內(nèi)容分布體系結(jié)構(gòu),其中所述數(shù)據(jù)中心由數(shù)據(jù)中心操作人員操作。
9.如權(quán)利要求1中要求的內(nèi)容分布體系結(jié)構(gòu)還包括一個處于所述數(shù)據(jù)中心的數(shù)據(jù)庫,所述數(shù)據(jù)庫記錄內(nèi)容存儲在所述數(shù)據(jù)中心、所述中間POP和所述邊緣POP中何處。
10.一種系統(tǒng)包括一個主存儲設(shè)施,用于從一個或多個內(nèi)容提供商接收網(wǎng)絡(luò)內(nèi)容;多個與所述主存儲設(shè)施相耦合的二級存儲設(shè)施,其中所述每個二級存儲設(shè)施都具有一個或多個服務(wù)器,其上鏡像存儲所述主存儲設(shè)施上所存的所述網(wǎng)絡(luò)內(nèi)容的一部分;以及多個與所述二級存儲設(shè)施相耦合的三級存儲設(shè)施,它們具有一個或多個服務(wù)器,以高速緩存各終端用戶所請求的所述數(shù)字內(nèi)容的一部分。
11.如權(quán)利要求10中要求的系統(tǒng),其中所述三級存儲設(shè)施與一個或多個互聯(lián)網(wǎng)服務(wù)提供商共處一處。
12.如權(quán)利要求10中要求的系統(tǒng),其中所述二級存儲設(shè)施通過私有、專用通信信道與所述主存儲設(shè)施通信地耦合。
13.如權(quán)利要求12中要求的系統(tǒng),其中所述二級存儲設(shè)施通過互聯(lián)網(wǎng)與所述三級存儲設(shè)施通信地耦合。
14.一種系統(tǒng)包括主存儲裝置,用于從一個或多個內(nèi)容提供商接收網(wǎng)絡(luò)內(nèi)容。與所述主存儲裝置通信地耦合的二級存儲裝置,所述二級存儲裝置具有一個或多個服務(wù)器,其上鏡像存儲在所述主存儲裝置上所存的所述網(wǎng)絡(luò)內(nèi)容的一部分,以及與所述二級存儲裝置通信地耦合的三級存儲裝置,它具有一個或多個服務(wù)器,以高速緩存各終端用戶所請求的所述數(shù)字內(nèi)容的一部分。
15.如權(quán)利要求14中要求的系統(tǒng),其中所述三級存儲裝置與一個或多個互聯(lián)網(wǎng)服務(wù)提供商共處一處。
16.如權(quán)利要求10中要求的系統(tǒng),其中所述二級存儲裝置通過私有、專用通信信道與所述主存儲裝置通信地耦合。
17.如權(quán)利要求14中要求的系統(tǒng),其中所述二級存儲裝置通過互聯(lián)網(wǎng)與所述三級存儲裝置通信地耦合。
18.一種在計算機網(wǎng)絡(luò)上分布內(nèi)容的方法包括在數(shù)據(jù)中心接收所述內(nèi)容;把所述內(nèi)容從所述數(shù)據(jù)中心向一個或多個中間POP站點拷貝;以及把該內(nèi)容從其中一個中間POP站點拷貝到一個或多個邊緣POP站點。
19.如權(quán)利要求18中要求的方法,其中在所述數(shù)據(jù)中心處接收的內(nèi)容從內(nèi)容提供商傳送。
20.如權(quán)利要求18中要求的方法還包括當所述數(shù)據(jù)中心收到所述內(nèi)容并且把所述內(nèi)容拷貝到所述中間POP站點和邊緣POP站點時,更新在所述數(shù)據(jù)中心的內(nèi)容數(shù)據(jù)庫。
21.如權(quán)利要求20中要求的方法,其中所述數(shù)據(jù)庫指示所述內(nèi)容被拷貝到的中間POP站點和邊緣POP站點。
22.如權(quán)利要求18中要求的方法,其中從所述數(shù)據(jù)中心到所述一個或多個中間POP站點的拷貝是對來自內(nèi)容提供商的輸入所作的響應(yīng)。
全文摘要
本發(fā)明描述了一種分布式邊緣網(wǎng)絡(luò)體系結(jié)構(gòu),其中數(shù)據(jù)中心作為內(nèi)容提供商所上傳內(nèi)容的主要倉庫。在地理上分散的所有“中間”存在點(POP)站點處,或者在該站點的選定組處從數(shù)據(jù)中心復(fù)制該內(nèi)容。多個邊緣POP站點與中間POP站點進行通信,并作為存儲終端用戶所請求內(nèi)容的網(wǎng)絡(luò)高速緩存。在一個實施方案中,各邊緣POP站點由一個或多個互聯(lián)網(wǎng)服務(wù)提供商放在一處。
文檔編號H04L12/28GK1432248SQ01810391
公開日2003年7月23日 申請日期2001年3月14日 優(yōu)先權(quán)日2000年3月30日
發(fā)明者R·J·西洛斯, R·R·梅農(nóng), P·賈伊斯瓦爾, B·J·弗爾維洛 申請人:英特爾公司