相關(guān)申請的交叉引用
本專利合作條約(pct)專利申請要求2014年9月30日提交的題為“handlinglong-tailcontentinacontentdeliverynetwork”的美國專利申請no.62/057,762的優(yōu)先權(quán),其全部內(nèi)容通過引用并入本文。
本申請還涉及以下共同擁有且共同未決的專利申請,其各自的內(nèi)容通過引用全部并入本文:
本發(fā)明涉及內(nèi)容傳送、內(nèi)容傳送網(wǎng)絡(luò)(cdn)以及使用cdn的架構(gòu)和系統(tǒng)。
詞匯表
如本文所用,除非另有說明,否則以下術(shù)語或縮寫具有以下含義:
1.ip表示互聯(lián)網(wǎng)協(xié)議。
2.ip地址表示互聯(lián)網(wǎng)協(xié)議中用來標(biāo)識諸如服務(wù)器等的電子設(shè)備的地址。
3.http表示超文本傳輸協(xié)議。
4.url表示統(tǒng)一資源定位符。
5.dns表示域名系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
本公開的一個實(shí)施方式可以采用用于在內(nèi)容傳送網(wǎng)絡(luò)中進(jìn)行內(nèi)容傳送的方法的形式。所述方法包括以下操作:在內(nèi)容傳送網(wǎng)絡(luò)的第一層(tier)服務(wù)器中的第一服務(wù)器處,從請求設(shè)備接收對可從所述內(nèi)容傳送網(wǎng)絡(luò)獲得的資源的請求;訪問與所述內(nèi)容傳送網(wǎng)絡(luò)相關(guān)聯(lián)的流行度服務(wù)(popularityservice),以確定與所請求的資源相關(guān)聯(lián)的流行度標(biāo)示(popularitydesignation);以及向所述內(nèi)容傳送網(wǎng)絡(luò)的第二服務(wù)器請求所述資源。此外,所述方法包括:在第一層服務(wù)器中的第一服務(wù)器處,處理來自內(nèi)容傳送網(wǎng)絡(luò)的第二服務(wù)器的重定向命令,以從所述內(nèi)容傳送網(wǎng)絡(luò)的內(nèi)容服務(wù)器獲取所述資源,并將所獲得的資源提供給請求設(shè)備。
本公開的另一實(shí)施方式可以采用內(nèi)容傳送網(wǎng)絡(luò)的形式。所述網(wǎng)絡(luò)可以包括:第一層服務(wù)器,包括第一多個服務(wù)器,所述第一層服務(wù)器的邊緣服務(wù)器從與第一服務(wù)器通信的請求設(shè)備接收針對可從所述內(nèi)容傳送網(wǎng)絡(luò)獲得的資源的請求;以及第二層服務(wù)器,包括第二多個服務(wù)器,所述第二多個服務(wù)器中的第一服務(wù)器從所述邊緣服務(wù)器接收針對內(nèi)容的請求,且響應(yīng)于此,將針對請求設(shè)備的重定向命令發(fā)送到邊緣服務(wù)器,以從內(nèi)容服務(wù)器獲得所述資源。所述內(nèi)容傳送網(wǎng)絡(luò)還可以包括流行度服務(wù),所述流行度服務(wù)追蹤與所請求的資源相關(guān)聯(lián)的流行度標(biāo)示,并且所述內(nèi)容傳送網(wǎng)絡(luò)可以被配置為使得邊緣服務(wù)器處理重定向命令以從所述內(nèi)容服務(wù)器獲得內(nèi)容并將獲得的內(nèi)容提供給請求設(shè)備。
本公開的另一個實(shí)施方式可以采用在內(nèi)容傳送網(wǎng)絡(luò)中進(jìn)行內(nèi)容傳送的方法的形式。所述方法包括以下操作:在內(nèi)容傳送網(wǎng)絡(luò)的第一層服務(wù)器中的第一服務(wù)器處,從請求設(shè)備接收針對可從所述內(nèi)容傳送網(wǎng)絡(luò)獲得的資源的請求;訪問與所述內(nèi)容傳送網(wǎng)絡(luò)的所述第一層的第一服務(wù)器相關(guān)聯(lián)的流行度服務(wù),以確定與所請求的資源相關(guān)聯(lián)的流行度標(biāo)示;以及接收用于在所述第一層服務(wù)器中的第一服務(wù)器處不緩存所述資源的指示。所述方法還可以包括:至少基于與所請求的資源相關(guān)聯(lián)的流行度標(biāo)示,向內(nèi)容傳送網(wǎng)絡(luò)的第二服務(wù)器請求所述資源,并將所獲得的資源提供給請求設(shè)備。
附圖說明
參照以下附圖可以更好地理解本發(fā)明。附圖的要素不必是按比例繪制的,其重點(diǎn)在于清楚地說明本發(fā)明的原理。此外,貫穿若干視圖,相同的附圖標(biāo)記表示相應(yīng)的部件。
圖1描述了一般層級化的多層內(nèi)容傳送網(wǎng)絡(luò)(cdn);
圖2示出了cdn中的服務(wù)器組或集群的邏輯組織;
圖3描述了使用內(nèi)容傳送網(wǎng)絡(luò)(cdn)的內(nèi)容傳送架構(gòu)(cdf);
圖4描述了內(nèi)容傳送架構(gòu)中的兩級內(nèi)容傳送網(wǎng)絡(luò)的操作;
圖5是示出了圖4的cdn的流行度服務(wù)的操作的流程圖;
圖6是用于在特定流行度服務(wù)器中維護(hù)流行度數(shù)據(jù)的示例性數(shù)據(jù)結(jié)構(gòu);
圖7是都市區(qū)域cdn架構(gòu)的圖;
圖8是描述了cdn向請求客戶端提供內(nèi)容的方法(其中未緩存內(nèi)容)的流程圖;
圖9是描述了從cdn向請求客戶端提供內(nèi)容的方法的流程圖,其中所述cdn在邊緣服務(wù)器處緩存所述內(nèi)容;以及
圖10是示出了可以用于實(shí)現(xiàn)本公開的實(shí)施例的計算系統(tǒng)的示例的框圖。
背景技術(shù):
互聯(lián)網(wǎng)和所謂的萬維網(wǎng)(“www”)已經(jīng)變得無所不在。成千上萬或數(shù)以萬計的所謂內(nèi)容提供商(發(fā)行商)現(xiàn)在使用互聯(lián)網(wǎng)(特別是,www)向遍布世界的成千上萬或數(shù)以萬計的客戶提供各種內(nèi)容。
為了分擔(dān)提供其部分或全部內(nèi)容的工作,許多內(nèi)容提供商如今訂制所謂的內(nèi)容傳送網(wǎng)絡(luò)(cdn)。通過使用cdn,可以從cdn(即,從cdn中的一個或更多個服務(wù)器)而不是內(nèi)容提供商的服務(wù)器向客戶端提供一些(或全部)內(nèi)容提供商的內(nèi)容。在緩存cdn中,在提供內(nèi)容之前或者響應(yīng)于針對該內(nèi)容的特定請求,也可以將所提供的內(nèi)容緩存在一部分或全部的cdn服務(wù)器上。
某些發(fā)行商有大型內(nèi)容庫,其中只有一小部分內(nèi)容(所謂的“短頭”)足夠流行,從而能夠受益于通過緩存cdn進(jìn)行提供,而大部分內(nèi)容(所謂的“長尾”)只是偶爾被訪問從而一般并不值得緩存。對于具有非常大的音樂庫或視頻庫的內(nèi)容發(fā)行商來說,這種情況是典型的。一些音樂內(nèi)容(流行內(nèi)容)可能被定期請求,而其他音樂(不流行(也稱為非流行)內(nèi)容)(即便曾被請求過)很少被請求。
具體實(shí)施方式
本文所用的術(shù)語“內(nèi)容”表示任何類型、任何形式的數(shù)據(jù),不管其表示如何,并且不管其代表什么。內(nèi)容可以包括但不限于靜態(tài)和/或動態(tài)圖像、文本、音頻內(nèi)容(包括流音頻)、視頻內(nèi)容(包括流視頻)、網(wǎng)頁、計算機(jī)程序、文檔、文件等。一些內(nèi)容可以嵌入在其他內(nèi)容中,例如通過使用諸如html和xml之類的標(biāo)記語言。內(nèi)容包括專門響應(yīng)于特定請求而創(chuàng)建或形成或組合的內(nèi)容。本文中,有時使用術(shù)語“資源”來指代內(nèi)容。
內(nèi)容可以動態(tài)地變得流行(通過各種流行度度量)或者淡出為相對平淡,所以內(nèi)容庫不容易被明確分割。相反,cdn追蹤某些內(nèi)容的流行度,并且隨著該內(nèi)容變得流行,選擇性地將該內(nèi)容向邊緣遷移(即,朝向第1層服務(wù)器)。
cdn可以具有分層組織的一層或更多層的服務(wù)器。圖1描述了包括多層服務(wù)器的內(nèi)容傳送網(wǎng)絡(luò)100。具體地,圖1的cdn100示出了j層服務(wù)器,表示為層1、層2、層3、...、層j。每層服務(wù)器可以包括組織成服務(wù)器組(有時被稱為服務(wù)器集群)的多個服務(wù)器。層1服務(wù)器也稱為邊緣服務(wù)器,而層1有時也被稱為“邊緣”或“cdn的邊緣”。層2服務(wù)器(當(dāng)存在于cdn中時)也被稱為父級服務(wù)器。
例如,在圖1的cdn100中,層1有n組服務(wù)器(表示為“邊緣服務(wù)器組1”、“邊緣服務(wù)器組2”、...、“邊緣服務(wù)器組n”);層2(父級服務(wù)器層)具有m個服務(wù)器組(第i個組被表示為“父級服務(wù)器組i”);以及層3有k個服務(wù)器組,等等。優(yōu)選地,每個層具有相同數(shù)量的服務(wù)器組。
圖2示出了圖1的cdn中的服務(wù)器的邏輯組織/分組。在圖2的示例性cdn中,每層服務(wù)器具有相同數(shù)量(n)的服務(wù)器組。在閱讀本說明書時,本領(lǐng)域的技術(shù)人員將清楚并認(rèn)識到,每個服務(wù)器組可以具有相同或不同數(shù)量的服務(wù)器。此外,服務(wù)器組中的服務(wù)器數(shù)量可以動態(tài)變化。例如,可以將附加服務(wù)器添加到服務(wù)器組,以處理該組上增加的負(fù)載。
服務(wù)器組中的服務(wù)器可以是同構(gòu)的或異構(gòu)的,且服務(wù)器組中的每個服務(wù)器可以包括共享相同名稱和/或網(wǎng)絡(luò)地址的物理服務(wù)器集群。在共同擁有的美國專利no.8,886,814(2013年5月21日提交,題為“l(fā)oad-balancingcluster”)中描述了這種集群的示例,其全部內(nèi)容通過引用并入本文。
同一層和同一組中的服務(wù)器被稱為對等體或?qū)Φ确?wù)器。
典型的cdn僅具有一層或兩層的服務(wù)器。只有一層的cdn將僅具有邊緣服務(wù)器,而具有兩層的cdn將具有邊緣服務(wù)器和父級服務(wù)器。(最低限度,cdn應(yīng)至少有一層服務(wù)器——邊緣服務(wù)器。)
一層中的服務(wù)器的分組可以基于例如其物理或地理位置的。例如,一個特定的cdn可以具有六組服務(wù)器——美國有四組服務(wù)器(組1用于西海岸、組2用于中西部、組3用于東北部和組4用于東南部);以及歐洲和亞洲分別各一組服務(wù)器。
通常,每層中的一部分或全部服務(wù)器可以與其他層中的一部分或全部服務(wù)器交換數(shù)據(jù)。因此,一部分或全部父級服務(wù)器可以與一部分或全部邊緣服務(wù)器交換信息。為了簡單起見,附圖中,將每層服務(wù)器示為可操作地連接到其他層。然而,在一些cdn中,優(yōu)選的是特定層中的服務(wù)器只能與同一組中的其他服務(wù)器(即,與對等服務(wù)器)和/或與不同層內(nèi)的同一組中的其他服務(wù)器交換信息。例如,在一些cdn中,邊緣服務(wù)器組k中的邊緣服務(wù)器可以彼此交換信息,并可以與父級服務(wù)器組k中的所有服務(wù)器交換信息等。
內(nèi)容提供商/客戶的服務(wù)器(或多個服務(wù)器)也稱為來源(origin)服務(wù)器。內(nèi)容提供商的來源服務(wù)器可以由該內(nèi)容提供商擁有和/或操作,或它們可以是由諸如主機(jī)提供商的第三方提供和/或操作的服務(wù)器。特定內(nèi)容提供商的主機(jī)提供商還可以向該內(nèi)容提供商提供cdn服務(wù)。
cdn還可以包括cdn來源/內(nèi)容緩存層,可以將所述cdn來源/內(nèi)容緩存層用于緩存來自cdn的訂戶(即,來自cdn訂戶的各來源服務(wù)器)的內(nèi)容。本領(lǐng)域技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到cdn可以支持一個或多個訂戶,即,cdn可以用作支持大量訂戶的共享基礎(chǔ)設(shè)施。cdn來源層還可以包括多個服務(wù)器,并且這些服務(wù)器也可以被組織(物理上和邏輯上)到多個區(qū)域和/或組中。cdn來源層中的服務(wù)器可以根據(jù)需要(拉取)或提前(通過推送)從訂戶的來源服務(wù)器獲得內(nèi)容。
如圖1-3所示,流行度服務(wù)102(將在下文進(jìn)行更詳細(xì)地描述)與一個或多個層中的一個或多個服務(wù)器組相關(guān)聯(lián)。在示例性實(shí)施例中,一部分父級服務(wù)器組具有與其相關(guān)聯(lián)的流行度服務(wù)102。盡管流行度服務(wù)102被示為組的單獨(dú)組件,但是流行度服務(wù)可以被集成到該組中的一個或多個服務(wù)器中。通常,流行度服務(wù)102可以與cdn的任何服務(wù)器或服務(wù)器組相關(guān)聯(lián),或被集成到cdn的任何服務(wù)器或服務(wù)器組中。在某些情況下,流行度服務(wù)可以具有不同于任何cdn服務(wù)器的自己的服務(wù)器。在本文中,術(shù)語“流行度服務(wù)”和“流行度服務(wù)器”可互換使用。
在操作中,當(dāng)客戶端請求要使用內(nèi)容傳送架構(gòu)來提供的內(nèi)容時,可以從cdn中的服務(wù)器向客戶端提供該內(nèi)容,或在某些情況下,從訂戶/客戶的來源服務(wù)器向該客戶端提供該內(nèi)容。內(nèi)容傳送架構(gòu)可以包括cdn以及來源服務(wù)器層。
可以通過使用任何類型的服務(wù)器選擇器系統(tǒng)104以任何方式將客戶端引導(dǎo)到cdn和/或cdn中的服務(wù)器。如本領(lǐng)域技術(shù)人員所理解的,服務(wù)器選擇器系統(tǒng)104通常進(jìn)行操作以將客戶端對內(nèi)容的請求定向到適當(dāng)?shù)姆?wù)器,以便將該內(nèi)容提供給請求客戶端。適當(dāng)?shù)姆?wù)器可以是靠近客戶端(通過一定的成本考量)的服務(wù)器和/或不是太重負(fù)載的服務(wù)器??梢韵蛐g(shù)語“適當(dāng)”施加各種條件,且可以將各種信息和測試(靜態(tài)和動態(tài)二者)用于確定適當(dāng)?shù)姆?wù)器。服務(wù)器選擇器系統(tǒng)104可以包括例如域名服務(wù)(dns)服務(wù)器、單機(jī)設(shè)備或其組合或可在其中完全或部分地操作。例如,服務(wù)器選擇器系統(tǒng)104可以包括單級dns服務(wù)器,所述單級dns服務(wù)器至少部分地基于請求客戶端的位置以及在一部分或全部的cdn服務(wù)器上的負(fù)載的某些組合,來選擇適當(dāng)?shù)姆?wù)器。本領(lǐng)域技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到有時可能僅粗略地確定客戶在諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)中的位置,且術(shù)語“客戶端的位置”通常被認(rèn)為是與客戶端的網(wǎng)絡(luò)服務(wù)提供商相對應(yīng)的網(wǎng)絡(luò)位置。
盡管在附圖中被示出為組件,服務(wù)器選擇器104可以包括許多組件。例如,服務(wù)器選擇的一部分或全部可以是基于任播路由的,且服務(wù)器選擇器104可以包括路由器和關(guān)聯(lián)表。
在當(dāng)前優(yōu)選的實(shí)施例中,服務(wù)器選擇器104是智能業(yè)務(wù)管理器(itm)/自適應(yīng)業(yè)務(wù)控制器(atc),例如,如2002年9月30日提交的題為“configurableadaptiveglobaltrafficcontrolandmanagement”的美國專利申請no.10/259,497(公布為us2003-0065762a1)中所述;以及如2007年10月26日提交的題為“policy-basedcontentdeliverynetworkselection”(統(tǒng)稱為“itm應(yīng)用”)的美國專利申請no.11/976,648所述,其全部內(nèi)容通過引用并入本文。在一些實(shí)施例中,服務(wù)器選擇器104可以包括“最佳”或“最優(yōu)”服務(wù)器選擇器,例如,如題為“optimizednetworkresourcelocation”的美國專利no.6,185,598所述,其全部內(nèi)容通過引用并入本文。“598”專利將cdn服務(wù)器稱為轉(zhuǎn)發(fā)器服務(wù)器,并描述了所謂的“最佳轉(zhuǎn)發(fā)器選擇器(brs)機(jī)制”。
圖3示出了具有兩級層次的cdn的內(nèi)容傳送架構(gòu)300,其中所述兩級層次包括一層邊緣服務(wù)器(層1)以及一層父級服務(wù)器(層2)。一部分或全部的邊緣服務(wù)器可以與一部分或全部的父級服務(wù)器進(jìn)行通信。邊緣服務(wù)器被分為n個邊緣服務(wù)器組,且父級服務(wù)器被分為m個父級服務(wù)器組。在一個實(shí)施例中,m的值等于n的值,即,在該實(shí)施例中,邊緣服務(wù)器組與父級服務(wù)器組具有相同的數(shù)量。cdn來源/內(nèi)容緩存層存儲從各訂戶的來源服務(wù)器獲得的訂戶內(nèi)容。至少一個父級服務(wù)器組(附圖中,組1)具有與其相關(guān)聯(lián)的流行度服務(wù)102。優(yōu)選地,多于一個父級服務(wù)器組具有相關(guān)聯(lián)的流行度服務(wù),且更優(yōu)選地,每個父級服務(wù)器組具有相關(guān)聯(lián)的流行度服務(wù)。
如上所述,雖然流行度服務(wù)被示出在父級層中,但是流行度服務(wù)可以位于系統(tǒng)中的任何地方,包括邊緣層。此外,流行度服務(wù)可以被某些內(nèi)容(但不一定是全部內(nèi)容)使用。當(dāng)只有某些內(nèi)容使用流行度服務(wù)時,應(yīng)該指定內(nèi)容以便使用流行度服務(wù)。
組中的一部分或全部的邊緣服務(wù)器可以使用流行度服務(wù)來管理各訂戶的長尾內(nèi)容。使用流行度服務(wù)的每個邊緣服務(wù)器都被稱為被綁定到該流行度服務(wù)。本文中,有時將被綁定到流行度服務(wù)的邊緣服務(wù)器稱為“長尾協(xié)同服務(wù)器”。
圖4和圖5示出了圖3的cdn的流行度服務(wù)的操作。當(dāng)客戶端106請求內(nèi)容(例如,使用httpget請求)時,該請求被定向到邊緣服務(wù)器108(例如,由服務(wù)器選擇器104),以便將該內(nèi)容提供給客戶端。對于某些指定的內(nèi)容,將流行度檢查插入在緩存操作的填充側(cè)。圖4示出了內(nèi)容傳送架構(gòu)300中的消息和數(shù)據(jù)的流程,且圖5是示出了圖4的cdn的流行度服務(wù)的操作的流程圖。為了這個特定解釋,假設(shè)客戶端的請求已經(jīng)被定向到邊緣服務(wù)器108。(本領(lǐng)域技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到,客戶的初始請求可以被定向到cdn層次結(jié)構(gòu)中的任何層,包括例如被定向到父級層。)使用與cdn相關(guān)聯(lián)的服務(wù)器選擇機(jī)制104來選擇該服務(wù)器,例如,使用一個或多個dns服務(wù)器并基于諸如請求客戶端的位置、網(wǎng)絡(luò)上的負(fù)載、網(wǎng)絡(luò)流量狀況、cdn策略、訂戶策略等因素來選擇邊緣服務(wù)器。
客戶端106從邊緣服務(wù)器108請求內(nèi)容(圖5中的500處)。來自客戶端106的請求到達(dá)邊緣服務(wù)器108(圖4中的s1)。邊緣服務(wù)器108進(jìn)行檢查以便查看對象是否存在(在本地或在對等體上)和新鮮(在502處)。如果是,則邊緣服務(wù)器108從所述緩存向客戶端104提供所述對象(s2,504)(如果需要,從對等體獲得所述對象)。
在一些實(shí)施例中,系統(tǒng)可以區(qū)分在網(wǎng)和離網(wǎng)對等體(on-netandoff-netpeers)以及相同交換機(jī)對等體。在網(wǎng)對等體是同一骨干網(wǎng)上的對等體;離網(wǎng)對等體是位于不同骨干網(wǎng)上的對等體;以及相同交換機(jī)對等體是直接連接到與執(zhí)行所述檢查的代理相同的交換機(jī)的對等體。在一些實(shí)施例中,邊緣服務(wù)器108可以僅在其一部分的對等體上(例如,僅在相同交換機(jī)對等體上)查找對象(在502處)。
如果該對象在邊緣服務(wù)器108或?qū)Φ润w上是不可用的,則邊緣服務(wù)器108基于其流行度確定該對象是否被提供(即,確定是否已指定該對象,從而該對象的流行度將被用于確定從何處提供該對象)(在506處)。如果是,則將請求發(fā)送到與邊緣服務(wù)器108相關(guān)聯(lián)的流行度服務(wù)102,在這種情況下,發(fā)送到相同組的流行度服務(wù)器(s3a)。
可以至少部分地基于用于請求對象的名稱(主機(jī)名),來根據(jù)其流行度確定該對象是否被指定為要從不同位置提供(在506處)。
在一個實(shí)施方式中,cdn提供了邊緣服務(wù)器的混合,一部分邊緣服務(wù)器進(jìn)行流行度檢查(如上所述),而其他邊緣服務(wù)器則不執(zhí)行上述檢查。對于沒有運(yùn)行流行度服務(wù)的邊緣服務(wù)器,用于填充對象的名稱(主機(jī)名)將解析為父級服務(wù)器(可以提供或不提供流行度服務(wù))。如果父級服務(wù)器不提供流行度服務(wù),則邊緣服務(wù)器將從該父級服務(wù)器獲取內(nèi)容,且該內(nèi)容將被提供給客戶端。
針對內(nèi)容的請求可以是針對對象的初始請求,或者在所述初始部分已被提供給客戶端的情況下,所述針對內(nèi)容的請求可以是針對對象的另一部分的請求。如果請求針對對象的第一部分(在508處),例如,請求包括對資源的第一字節(jié)的請求(即,不是在文件開始之后啟動的范圍請求),則流行度服務(wù)102確定(如下所述)對象當(dāng)前是否是流行的。在其他實(shí)施方式中,可以請求對象的另一部分??梢葬槍λ鰧ο蟮拿總€部分執(zhí)行對象的流行度確定,或者可以僅針對對資源的第一字節(jié)的請求執(zhí)行流行度確定。
現(xiàn)在討論用于向請求設(shè)備提供內(nèi)容的一個特定實(shí)施方式。下文中將參照圖7-9來討論備選實(shí)施方式。在圖5的實(shí)施例中,當(dāng)接收到針對對象的請求時,增加針對當(dāng)前時段的流行度計數(shù)(在510處)?;谄浯_定,流行度服務(wù)102向邊緣服務(wù)器108返回三種可能響應(yīng)之一(s3b):
1.如果對象尚未達(dá)到第一/最低級別的流行度(在512處):則流行度服務(wù)向邊緣服務(wù)器發(fā)送指示(例如,http302),以將客戶端的請求重定向到來源服務(wù)器(或到cdn來源緩存)(在啟用了來源重定向的情況下)(在514處)。
2.如果對象的流行度已經(jīng)超過了第一/最低級別的流行度,但尚未超過第二、中間層閾值(在516處):則流行度服務(wù)向邊緣服務(wù)器發(fā)送指示(例如,http302),以將客戶端的請求重定向到父級服務(wù)器(在啟用了中間層重定向的情況下)(在518處)。
3.如果對象的流行度超過了中間層閾值(即,該對象是流行的):則流行度服務(wù)向邊緣服務(wù)器發(fā)送指示,以便自己提供該內(nèi)容(在520處)。在該實(shí)施方式中,流行度服務(wù)向邊緣服務(wù)器發(fā)送具有到來源服務(wù)器(或者在存在的情況下,到父級層)的“跟隨我”或“緩存”標(biāo)志設(shè)置的重定向(http302)。
如果邊緣服務(wù)器108從流行度服務(wù)102接收到重定向而沒有“跟隨我”標(biāo)志設(shè)置(上面的情況1和2),則它僅僅將重定向轉(zhuǎn)發(fā)到客戶端104(s4a、522、524)。如果邊緣服務(wù)器108接收到“跟隨我”重定向,則它獲得并緩存該資源(在526處)并將其提供給客戶端(在528處)。如果流行度服務(wù)102是無法訪問的、不響應(yīng)的、或者返回指示錯誤(不包括http404)的狀態(tài)碼,則在從來源服務(wù)器或父級層獲取該對象之后,則將對象提供到邊緣的緩存服務(wù)器外(并且提出警報狀況)。
在一個特定實(shí)施方式中,一旦已經(jīng)在邊緣服務(wù)器處緩存了內(nèi)容,則邊緣服務(wù)器將在每次獲得針對該內(nèi)容的另一請求時向流行度服務(wù)發(fā)送通知(例如,以重新驗(yàn)證的形式)。例如,參考圖5的流程圖,如果邊緣服務(wù)器108確定(在502處)它具有所請求的內(nèi)容(或可以從對等體獲得該內(nèi)容),則除了提供內(nèi)容(在504處)之外或獨(dú)立于提供內(nèi)容,它還指示流行度服務(wù)器增加針對當(dāng)前時段的對象流行度計數(shù)(在530處)。這個過程使流行度服務(wù)器保持最新,在其區(qū)域內(nèi)提供相對流行的內(nèi)容。
本領(lǐng)域技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到,在多層cdn中,流行度服務(wù)可以位于任何層,或可以在多于一層上存在流行度服務(wù)。
繼續(xù)圖4的方法,步驟(4a)可以以內(nèi)容進(jìn)行回復(fù)(如果流行的話)或者以到父級或來源服務(wù)器的重定向進(jìn)行回復(fù)(如果不流行的話),其中客戶端將向該層做出另一請求(5a或5b)以獲得該內(nèi)容。然而,如上所述,cdn的其他實(shí)施方式也是可以預(yù)期的。下面將更詳細(xì)地描述一種這樣的實(shí)施方式,其中從邊緣服務(wù)器向客戶端提供內(nèi)容而不管該內(nèi)容是否被cdn認(rèn)為是流行的。
雖然已經(jīng)參照http協(xié)議描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到發(fā)明人可以使用和預(yù)期不同的和/或其他協(xié)議。在各種文檔(例如,超文本傳輸協(xié)議——http/1.1、rfc2616、網(wǎng)絡(luò)工作組)中描述了http,其全部內(nèi)容通過引用并入本文。
本領(lǐng)域的技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到可以針對cdn中的每一層建立不同的閾值。此外,本領(lǐng)域技術(shù)人員在閱讀該描述時將清楚并認(rèn)識到每個內(nèi)容項(xiàng)可以具有與其相關(guān)聯(lián)的自己的閾值。這樣,在默認(rèn)閾值為零的情況下,系統(tǒng)可以檢查所有內(nèi)容的流行度。這樣,每個請求將自動使流行度超過閾值,并將使得所述內(nèi)容被緩存。
通過按區(qū)域地布置流行度服務(wù)器(與父級緩存服務(wù)器配對),可以以區(qū)域?yàn)閱挝华?dú)立管理流行度和緩存層。例如,流行度可以基于包括一個或多個層的cdn服務(wù)器的都市區(qū)域。在一個區(qū)域/組中流行的內(nèi)容可能在另一區(qū)域/組中并不流行(特別是在每個區(qū)域/組與地理和/或政治區(qū)域相對應(yīng)的情況下)。
在一個實(shí)施方式中,與流行度服務(wù)器的交會(rendezvous)可以將所謂的“區(qū)域”鄰近度優(yōu)先考慮,使得在同一區(qū)域內(nèi)的客戶端將傾向于在該區(qū)域內(nèi)進(jìn)行流行度“投票”,并獲得對流行資源的一致處理。然而,如果有多個父級緩存服務(wù)器可用,則通常不會嘗試將特定客戶端與特定父級進(jìn)行交會。
在一些實(shí)施例中,基于在各時段中請求對象/資源的次數(shù)來測量所述對象/資源的流行度。圖6是用于在特定流行度服務(wù)器中維護(hù)流行度數(shù)據(jù)的示例性數(shù)據(jù)結(jié)構(gòu)。圖6中的數(shù)據(jù)結(jié)構(gòu)600是所謂的統(tǒng)計散列結(jié)構(gòu)(tallyhashstructure)。
在一些實(shí)施例中,cdn的一部分或全部服務(wù)器與流行度服務(wù)器相關(guān)聯(lián)(或綁定到流行度服務(wù)器)。綁定到流行度服務(wù)器的cdn的服務(wù)器或其他組件有時被稱為綁定長尾協(xié)同服務(wù)器。系統(tǒng)中的每個流行度服務(wù)器為每個綁定長尾協(xié)同服務(wù)器分配一個統(tǒng)計散列結(jié)構(gòu)600。配置提供要分配的資源(散列)槽的數(shù)量。對于一個特定的實(shí)施方式,散列槽的數(shù)量的量級大約為每個協(xié)同服務(wù)求1億個槽。每個槽被劃分成多個時間元(timebucket),優(yōu)選為16個時間元,每個時間元由例如4位無符號整數(shù)表示。本領(lǐng)域技術(shù)人員在閱讀該描述時將清楚并認(rèn)識到對每個時間元中的值的大小的選擇取決于對流行度閾值的邊界的策略決定,并用于將非常流行的資源保留在邊緣。每一個時間元可以代表一個時段,優(yōu)選地,幾秒鐘。
請求/內(nèi)容與槽的映射是基于對象名稱的某些功能的,或者基于與針對對象的請求相關(guān)聯(lián)的其他信息。在一個示例中,對象與槽的映射是基于對象名稱上的散列或消息摘要功能(例如,md5等)(且優(yōu)選地,包括查詢字符串的某些部分)。因此,每個槽可以表示一個或多個資源。每次針對對象的查詢/請求到達(dá)流行度服務(wù)器時,計算散列,并確定(針對適當(dāng)?shù)膮f(xié)同服務(wù)器)表600中的槽,并且使用該槽中的計數(shù)。在發(fā)生散列沖突的情況下,一個槽可能將接收并表示針對多于一個對象的計數(shù)。由于這個結(jié)果通常是不期望的(因?yàn)樗赡軐?dǎo)致緩存填充和邊緣緩存不流行的對象),所以槽的數(shù)量應(yīng)該被選擇為盡可能大。在一個實(shí)施方式中,請求/內(nèi)容的統(tǒng)一資源定位符(url)可以與每個槽一起存儲以避免沖突。
在一個實(shí)施方式中,特別是當(dāng)流行數(shù)據(jù)保存在父級服務(wù)器或來源服務(wù)器時,cdn可以將對象的流行度作為附加元數(shù)據(jù)存儲在緩存中(并且當(dāng)該資源不在緩存中時,在非來源服務(wù)器上存儲作為存根資源)。此外,某些對象或資源可以具有與其他資源相關(guān)聯(lián)的流行度分?jǐn)?shù),但不一定會影響特定對象的分?jǐn)?shù)。例如,可以僅對cdn的html資源進(jìn)行流行度追蹤,而在特定html頁面內(nèi)的嵌入資源的流行度可以被認(rèn)為是流行的。因此,可以使用包圍對象的流行度,而不是嵌入資源的流行度。
本領(lǐng)域的技術(shù)人員在閱讀本說明書時清楚并認(rèn)識到可以使用不同的和/或其他數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)流行度計數(shù)。例如,由于在大多數(shù)情況下預(yù)計資源總數(shù)遠(yuǎn)遠(yuǎn)超過流行資源的數(shù)量,所以平衡b樹可以優(yōu)于散列表。此外,可以通過僅使用散列的一部分來減小散列槽的大小。然而,減少所用散列的字節(jié)的數(shù)量可能會導(dǎo)致更多名稱沖突。
盡管以上針對流行度進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到可以使用其他因素以及(或代替)流行度來確定是否重定向請求??梢允褂靡?guī)則庫來增加和/或覆蓋某些資源的流行度度量。規(guī)則庫中的規(guī)則可以是靜態(tài)的或動態(tài)的,且可以由cdn管理員和/或訂戶設(shè)置所述規(guī)則。例如,訂戶可能不希望針對要從邊緣服務(wù)器提供的某些內(nèi)容付費(fèi),而不管其流行度如何,并且可以相應(yīng)地設(shè)置規(guī)則(也可以通過針對該特定內(nèi)容設(shè)置閾值來防止它被緩存在邊緣服務(wù)器,來實(shí)現(xiàn)該特定結(jié)果)。
可以通過偶爾進(jìn)行日志挖掘來查找實(shí)際訂戶內(nèi)容庫中的散列沖突,并且可以根據(jù)需要調(diào)整散列函數(shù)和元的大小。此外,在每個時間元邊界處,流行度服務(wù)可以邏輯上“旋轉(zhuǎn)”時間元并且清除每個對象的最舊的統(tǒng)計數(shù)據(jù)。只要協(xié)同服務(wù)器在流行度服務(wù)中的注冊發(fā)生變化(添加或刪除,或者可能提示更改),數(shù)據(jù)結(jié)構(gòu)將被更新。此外,在一個實(shí)施方式中,給定對象的流行度可以被確定為其在連續(xù)時段上的流行度的加權(quán)和??梢韵蚋臅r段給予較高的權(quán)重。
為了確定要由流行度服務(wù)管理哪些內(nèi)容,cdn運(yùn)營商和/或訂戶可以規(guī)定:
·將管理該內(nèi)容的層——邊緣、中間或父級(在某些情況下)、或來源(訂戶或存儲層)。為了有意義,應(yīng)啟用中間服務(wù)和來源服務(wù)中的至少一個。
·基于其流行度進(jìn)行管理的內(nèi)容,而不是僅僅始終從緩存提供的內(nèi)容。
可以通過一個或多個網(wǎng)絡(luò)地址(例如,互聯(lián)網(wǎng)協(xié)議或ip地址)來尋址網(wǎng)絡(luò)中的每個服務(wù)器。也可以由一個或多個名稱(所謂的主機(jī)名——完全限定域名)獲知網(wǎng)絡(luò)中的每個服務(wù)器。主機(jī)名可以與一個或多個ip地址相映射。主機(jī)名可以對應(yīng)于(并因此解析為)多于一個的服務(wù)器。諸如itm的系統(tǒng)(如上述itm專利申請中描述的)允許一種主機(jī)名(稱為超級名稱)來表示多個服務(wù)器,并且將超級名稱解析為附近的服務(wù)器。在一個實(shí)施方式中,服務(wù)器選擇機(jī)制是itm,并且通過解析為到達(dá)附近的流行度服務(wù)器的超級名稱來訪問每個流行度服務(wù)器。
當(dāng)流行度服務(wù)器與父級服務(wù)器共享或共處時,父級服務(wù)器可以使用其被尋址的名稱來確定是否將請求定向到流行度服務(wù)。也就是說,提供流行度服務(wù)的父級緩存服務(wù)器可以識別使用針對流行度請求保留的別名之一的請求,并且調(diào)用流行度服務(wù)來進(jìn)行填充/不填充決定并如上所述地返回重定向。
服務(wù)器的主機(jī)名也稱為其別名。每個長尾協(xié)同服務(wù)器優(yōu)選地具有至少兩個別名(如果使用父級緩存/服務(wù)器層,則具有三個):發(fā)布的超級名稱、用于流行度服務(wù)請求的主機(jī)名、以及(如果使用)用于父級緩存重定向的主機(jī)名。
可以通過itm超級名稱訪問流行度服務(wù)器,且itm將監(jiān)視該服務(wù)在整個服務(wù)器集上的可用性。通常使用實(shí)際ip地址而不是虛擬ip來訪問流行度服務(wù)器,且流行度服務(wù)器在集群中不一定是冗余的??梢酝ㄟ^每個超級名稱有多個服務(wù)器來提供冗余度。然而,優(yōu)選的是不試圖將流行度服務(wù)器上的流行度標(biāo)簽進(jìn)行同步,這樣的期望效果是在“區(qū)域性”的基礎(chǔ)上分別管理流行度,其中通過所部署的流行度服務(wù)器的數(shù)量和分布來確定粒度。如果流行度的服務(wù)器出現(xiàn)故障,則因?yàn)樾碌姆?wù)器對于給定邊緣位置變得活躍,這可能會導(dǎo)致流行度響應(yīng)不連續(xù),但是可以通過定期的背景刷新來(針對非常流行的資源)緩解該問題。
關(guān)于資源和緩存策略的信息包括以下內(nèi)容:
·與該協(xié)同服務(wù)器相關(guān)聯(lián)的資源的預(yù)期總數(shù)。
·用于存儲針對每個資源的叫用次數(shù)的元的數(shù)量。
·每個元代表的秒數(shù)。每當(dāng)這個時間間隔過去,拋出最舊的元中的計數(shù),并以零的計數(shù)開始新的元。
·當(dāng)給定資源的全部元的總和達(dá)到任何流行度服務(wù)器上的父級閾值時,使用該服務(wù)器的父級緩存(如果存在)將開始緩存該資源。
·當(dāng)給定資源的全部元的總和達(dá)到任何流行度服務(wù)器上的邊緣閾值時,使用該服務(wù)器的邊緣緩存將開始緩存該資源。
·將應(yīng)用于資源名稱的散列算法(可選)。如果未指定,則將使用默認(rèn)算法(例如,md5)。
·在任何給定時間,應(yīng)在邊緣處緩存該協(xié)同服務(wù)器資源的最大數(shù)量。在某些實(shí)施例中可以忽略該值。
·在任何給定時間,應(yīng)在父級處緩存該協(xié)同服務(wù)器資源的最大數(shù)量。在某些實(shí)施例中可以忽略該值。
本領(lǐng)域技術(shù)人員在閱讀本說明書時將清楚并認(rèn)識到在僅基于流行度計數(shù)的給定層上進(jìn)行服務(wù)的決定將不考慮在該層上進(jìn)行服務(wù)的能力——因此,如果來源服務(wù)器或父級層的容量不足,則該方案可能使它們重載。此外,如果按照請求數(shù)量的絕對閾值來衡量流行度,且如果所述庫足夠大,則可能導(dǎo)致父級或邊緣層處的緩存顛簸。父級和/或邊緣服務(wù)器的流行度閾值水平的動態(tài)調(diào)整可能會導(dǎo)致這種情況。因此,提供了一種特征,其允許cdn通過對定位和提供cdn內(nèi)容的位置進(jìn)行調(diào)整來對增加或減少內(nèi)容的“流行度”進(jìn)行響應(yīng)。
作為向請求客戶端提供重定向使得客戶端從來源服務(wù)器接收內(nèi)容的備選,內(nèi)容服務(wù)器(例如,邊緣服務(wù)器)可以直接處理該重定向。在某些情況下,縱然重定向是傳統(tǒng)的http命令,某些客戶端設(shè)備、應(yīng)用、瀏覽器等也無法在不引起警告或錯誤的情況下處理重定向命令,或者如果重定向到不同的域,引起警告或錯誤。一個這種警告或錯誤被稱為跨域安全警告,其中跨域安全警告可以阻止客戶端設(shè)備正確地重定向到來源服務(wù)器。因此,通過使邊緣或其他cdn設(shè)備獲得旨在通過重定向而不是客戶端設(shè)備獲得的內(nèi)容并將內(nèi)容傳送到請求客戶端,可以避免這種錯誤和警告。
參見圖7和圖8或9,如本文所述,在內(nèi)容傳送網(wǎng)絡(luò)的內(nèi)容服務(wù)器處接收內(nèi)容請求(例如,針對www.example.com或www.example.com/video的解析請求)。在一個示例中,內(nèi)容服務(wù)器可以是邊緣服務(wù)器。內(nèi)容服務(wù)器也有可能可以是上述其他層之一中的設(shè)備,例如,父級服務(wù)器或來源服務(wù)器。
圖7是都市區(qū)域cdn架構(gòu)700的圖。與上述的網(wǎng)絡(luò)環(huán)境相似,cdn包括與cdn704通信的客戶端設(shè)備702。cdn包括幾層的服務(wù)器,即,一層邊緣服務(wù)器706、一層父級服務(wù)器708以及一層來源服務(wù)器,無論來源服務(wù)器是實(shí)現(xiàn)在cdn704(諸如來源服務(wù)器710)還是內(nèi)容提供商網(wǎng)絡(luò)712中(諸如來源服務(wù)器714)。在中間層服務(wù)器708處,流行度服務(wù)716也包括在cdn702中。流行度服務(wù)716如上所述地進(jìn)行操作以追蹤由cdn702提供的一個或多個對象的流行度,并基于所述對象或內(nèi)容的流行度指示cdn的一個或多個組件緩存對象。
盡管在圖7中示出為包括特定組件,然而應(yīng)當(dāng)理解的是任何數(shù)量的具有多個服務(wù)器層、來源服務(wù)器等的可能cdn架構(gòu)排列可以利用本公開的各方面的優(yōu)點(diǎn)。在一個具體示例中,邊緣緩存706是cdn都市(metro)的一部分,且中間層服務(wù)器708是都市中間層。因此,可以通過流行度服務(wù)716追蹤流行度,并在都市級處緩存內(nèi)容。這種實(shí)施方式為流行度分析提供了一定程度的地理辨識。在一些cdn實(shí)施方式中,在dns解析期間進(jìn)行一定程度的地理接近度分析,使得用與該客戶端設(shè)備地理上接近的內(nèi)容服務(wù)器向客戶端702進(jìn)行提供。在許多情況下,將向在某些都市區(qū)域內(nèi)請求內(nèi)容的客戶端提供在服務(wù)于相同都市區(qū)域的都市內(nèi)的內(nèi)容服務(wù)器706的地址。因此,使用與相同城市區(qū)域相關(guān)聯(lián)的流行度服務(wù)716允許基于該都市區(qū)域內(nèi)的內(nèi)容的流行度的內(nèi)容追蹤。在這種情況下,本地體育報導(dǎo)、新聞報導(dǎo)、本地流行的視頻剪輯等可以變得流行并被緩存在該內(nèi)容流行的都市的邊緣706中,而不必緩存在該內(nèi)容不流行的地理區(qū)域和都市內(nèi)。
通過使用都市中間層服務(wù)器708,實(shí)現(xiàn)了許多優(yōu)點(diǎn)。例如,定位邊緣服務(wù)器706附近的都市中間層(mmt)服務(wù)器可以通過將邊緣服務(wù)器直接連接到中間層服務(wù)器而不是利用從邊緣服務(wù)器到達(dá)的路由結(jié)構(gòu),來最小化或減少延遲和基礎(chǔ)設(shè)施成本。。此外,使用mmt708可以允許將非常大的庫保持在邊緣服務(wù)器706附近,使得非常流行的內(nèi)容被緩存在邊緣處但大多數(shù)被保持在mmt內(nèi)。最后,mmt708的構(gòu)建意味著在不引起終端用戶/發(fā)布者可見的復(fù)雜性的情況下容量的線性縮放是可能的(例如使用多個主機(jī)名來分割內(nèi)容)。
如上所述,在某些情況下,它可以有利于客戶端設(shè)備702和/或cdn704提供來自邊緣服務(wù)器層706的內(nèi)容。更具體地,一個或多個邊緣服務(wù)器或緩存706可以被配置為處理針對連接到cdn704的客戶端設(shè)備702的重定向命令。此外,邊緣服務(wù)器706可以被配置為緩存流行內(nèi)容以響應(yīng)于將來的請求來提供內(nèi)容,或者不緩存不流行的內(nèi)容并從父級708或來源服務(wù)器710、712提供該內(nèi)容。
圖8是描述了從cdn向請求客戶端提供內(nèi)容的方法的流程圖看,其中所述cdn未緩存該內(nèi)容。在該實(shí)施方式800中,在操作802中,在邊緣服務(wù)器(例如,邊緣服務(wù)器706)處接收到對內(nèi)容的請求。在一個示例中,邊緣服務(wù)器可以確定邊緣服務(wù)器是否具有該內(nèi)容的已緩存的且當(dāng)前(非陳舊)的拷貝。在這種情況下,邊緣服務(wù)器將請求的內(nèi)容返回給請求設(shè)備(例如,客戶端702)。否則,邊緣服務(wù)器在操作804中聯(lián)系中間層以便進(jìn)行初始流行度分析。如上所述,如果流行度服務(wù)716確定所請求的內(nèi)容是不流行的,則將重定向命令返回到客戶端設(shè)備702,以將客戶端設(shè)備重定向?yàn)閺木哂性搩?nèi)容的cdn704的另一服務(wù)器請求該內(nèi)容。在先前描述的實(shí)施例中,重定向?qū)?dǎo)致客戶端設(shè)備702被重定向到具有cdn704(例如,cdn來源710或客戶來源714)的不同設(shè)備,以獲得所請求的內(nèi)容。然而,在圖8的實(shí)施例中,為了避免將重定向返回到客戶端702,邊緣服務(wù)器706可以改為處理重定向或獲得該內(nèi)容并將其提供給客戶端。
在一個示例中,邊緣服務(wù)器706直接處理重定向并且聯(lián)系內(nèi)容的源708、710以獲取內(nèi)容的拷貝。在圖7所示的實(shí)施方式中,與中間層都市服務(wù)器708相關(guān)聯(lián)的流行度服務(wù)716追蹤所請求的內(nèi)容的流行度。通過聯(lián)系流行度服務(wù)716,在操作804中,cdn704確定所請求的內(nèi)容是不流行的。
在操作806中,邊緣服務(wù)器704聯(lián)系中間層708或持有所述內(nèi)容的其他服務(wù)器,以在操作806中接收所述內(nèi)容。除了返回所請求的內(nèi)容之外,中間層服務(wù)器708還可以返回緩存或不緩存指示。在這種情況下,中間層708可以具有內(nèi)容,或者可能需要從cdn來源710、客戶來源714、不同層等獲取該內(nèi)容。無論如何,中間層708與流行度服務(wù)716一同確定或通過其他方式標(biāo)識該內(nèi)容的流行度。對于不流行的內(nèi)容,中間層708向內(nèi)容服務(wù)器706返回不緩存指示。
在中間層708沒有該內(nèi)容的情況下,除了不緩存指示之外,中間層708可以將重定向返回到持有所請求的內(nèi)容的組件。邊緣服務(wù)器706可以代表客戶端702處理重定向。具體地,邊緣服務(wù)器706在操作808中向內(nèi)容的主機(jī)(例如,cdn來源服務(wù)器710或客戶端來源714)請求內(nèi)容。接著,內(nèi)容主機(jī)將內(nèi)容返回給邊緣服務(wù)器706。邊緣服務(wù)器706在操作810中接收內(nèi)容并將該內(nèi)容提供給請求客戶端702。這樣,邊緣服務(wù)器706可以代表請求設(shè)備702處理由中間層708返回的重定向,以避免在處理重定向時出現(xiàn)錯誤或警告的可能性。此外,邊緣服務(wù)器706響應(yīng)于不緩存指示而不對該內(nèi)容進(jìn)行緩存。
在備選實(shí)施方式中,可以通過cdn704的流行度服務(wù)716來認(rèn)為所請求的內(nèi)容是流行的。具體地,圖9是描述了從cdn向請求客戶端提供內(nèi)容的方法900的流程圖,其中所述cdn在邊緣服務(wù)器處緩存所述內(nèi)容。與上述情況相似,在操作902中,在邊緣服務(wù)器(例如,邊緣服務(wù)器706)處接收到對內(nèi)容的請求。響應(yīng)于此,邊緣服務(wù)器可以確定邊緣服務(wù)器是否具有內(nèi)容的緩存和當(dāng)前(非陳舊)拷貝。在這種情況下,邊緣服務(wù)器將請求的內(nèi)容返回給請求設(shè)備(例如,客戶端702)。否則,邊緣服務(wù)器在操作904中聯(lián)系中間層以便進(jìn)行初始流行度分析。然而,在該示例中,中間層708可以基于流行度服務(wù)716來確定該內(nèi)容是流行的。
如果流行度服務(wù)716確定該內(nèi)容是流行的或已經(jīng)變得流行,則使用緩存指示將內(nèi)容返回到邊緣服務(wù)器706。在一個示例中,邊緣服務(wù)器706可以從中間層708接收內(nèi)容,或可以如上所述處理重定向。無論從cdn704的哪個組件接收該內(nèi)容,在操作906,邊緣服務(wù)器706接收所述內(nèi)容,并響應(yīng)于緩存指示,在內(nèi)容服務(wù)器處緩存所述流行內(nèi)容。在操作908中,邊緣服務(wù)器706將內(nèi)容提供給客戶端設(shè)備702。這樣,邊緣服務(wù)器706可以響應(yīng)于請求設(shè)備對內(nèi)容的請求,向客戶端設(shè)備702提供流行內(nèi)容。
在一些實(shí)施例中,邊緣服務(wù)器706可以進(jìn)行本地流行度追蹤和基于流行度進(jìn)行緩存。因此,例如,如果緩存已滿(通常會是這樣),則當(dāng)接收到新的流行內(nèi)容時,服務(wù)器可以替換較不流行或陳舊的內(nèi)容。此外,可以以主頁(或其他一般內(nèi)容標(biāo)識符)為單位或以每個內(nèi)容為單位(例如,通過主頁可訪問的視頻內(nèi)容)追蹤內(nèi)容的流行度。此外,可以通過使用與內(nèi)容相關(guān)聯(lián)的元數(shù)據(jù)來追蹤流行度,如上所述。
圖10是示出了可用于實(shí)現(xiàn)以上公開的cdn組件的實(shí)施例的計算設(shè)備或計算機(jī)系統(tǒng)1000的示例框圖。例如,上述內(nèi)容服務(wù)器706可以類似于圖10的計算設(shè)備。計算機(jī)系統(tǒng)(系統(tǒng))包括一個或多個處理器1002-1006。處理器1002-1006可以包括高速緩存的一個或多個內(nèi)部層級(未示出)和與處理器總線1012直接交互的總線控制器或總線接口單元。處理器總線1012,也被稱為主機(jī)總線或前端總線,可以用于耦接處理器1002-1006和系統(tǒng)接口1014。系統(tǒng)接口1014可以連接處理器總線1012以將系統(tǒng)1000的其它組件與處理器總線1012接口連接。例如,系統(tǒng)接口1014可以包括將主存儲器1016與存儲器總線1012接口連接的存儲控制器1018。主存儲器1016通常包括一個或多個存儲器卡和控制電路(未示出)。系統(tǒng)接口1014還可以包括輸入/輸出(i/o)接口1020,用于將一個或多個i/o橋或i/o設(shè)備與處理器總線1012連接。如圖所示,一個或多個i/o控制器和/或i/o設(shè)備可以與i/o總線1026連接,例如,i/o控制器1028和i/o設(shè)備1030。
i/o設(shè)備1030還可以包括輸入設(shè)備(未示出),例如字母數(shù)字輸入設(shè)備,包括用于向處理器1002-1006傳送信息和/或命令選擇的字母數(shù)字和其他鍵。其他類型的用戶輸入設(shè)備包括光標(biāo)控制,例如,鼠標(biāo)、軌跡球、或光標(biāo)方向鍵,用于向處理器1002-1006傳送方向信息和命令選擇并用于控制顯示設(shè)備上的光標(biāo)移動。
系統(tǒng)1000可以包括動態(tài)存儲設(shè)備,被稱為主存儲器1016,或隨機(jī)存取存儲器(ram)或其他耦接處理器總線1012用于存儲由處理器1002-1006執(zhí)行的信息和指示的計算機(jī)可讀設(shè)備。存儲器1016還可以用于在處理器1002-1006執(zhí)行指示期間存儲臨時變量或其它中間信息。系統(tǒng)1000包括耦接到處理器總線1012的只讀存儲器(rom)或其它靜態(tài)存儲設(shè)備,以存儲處理器1002-1006的靜態(tài)信息和指示。圖10闡述的系統(tǒng)不過是計算機(jī)系統(tǒng)的一個可能示例,該系統(tǒng)可以采用根據(jù)本公開的方案或根據(jù)本公開的方案配置。
根據(jù)一個實(shí)施例,上述技術(shù)可以由計算機(jī)系統(tǒng)1000響應(yīng)于執(zhí)行主存儲器1016中包含的一個或多個指示的一個或多個序列的處理器1004執(zhí)行。主存儲器1016可以從其它機(jī)器可讀介質(zhì)(例如,存儲設(shè)備)讀取這些指示。執(zhí)行主存儲器1016中包括的指示序列會引起處理器1002-1006執(zhí)行本文描述的處理步驟。在備選實(shí)施例中,電路可以用于替代軟件指示或與軟件指示結(jié)合。因此,本公開的實(shí)施例可以包括硬件和軟件組件。
機(jī)器可讀介質(zhì)包括用于以機(jī)器(例如,計算機(jī))可讀的形式(例如,軟件、處理應(yīng)用)來存儲或發(fā)送信息的任何機(jī)制。這樣的介質(zhì)可以采取以下形式但不限于:非易失性介質(zhì)和易失性介質(zhì)。非易失性介質(zhì)包括光盤或磁盤。易失性介質(zhì)包括動態(tài)存儲器,例如主存儲器1016。機(jī)器可讀介質(zhì)的常見形式可以包括但不限于磁存儲介質(zhì);光存儲介質(zhì)(例如,cd-rom);磁光存儲介質(zhì);只讀存儲器(rom);隨機(jī)存取存儲器(ram);可擦除可編程存儲器(例如,eprom和eeprom);閃存;或適于存儲電子指示的介質(zhì)的其它類型。
應(yīng)注意,圖5、8和9的流程圖僅僅是說明性的。本發(fā)明的備選實(shí)施例可以增加操作、省略操作或改變操作順序而不影響本發(fā)明的精神和范圍。前面僅僅說明了本發(fā)明的原理。鑒于本文的教導(dǎo),對所述實(shí)施例的各種修改和變更對于本領(lǐng)域技術(shù)人員將是顯而易見的。因此,應(yīng)當(dāng)理解,本領(lǐng)域技術(shù)人員將能夠設(shè)計出許多系統(tǒng)、布置和方法,盡管這里沒有明確示出或描述所述系統(tǒng)、布置和方法,但它們體現(xiàn)了本發(fā)明的原理,因此在本發(fā)明的精神和范圍內(nèi)。根據(jù)以上描述和附圖,本領(lǐng)域普通技術(shù)人員將會理解,所示出和描述的特定實(shí)施例僅僅是為了說明的目的,并不意圖限制本發(fā)明的范圍。對特定實(shí)施例的細(xì)節(jié)的引述并不旨在限制本發(fā)明的范圍。
包括專利和專利申請在內(nèi)的各種文獻(xiàn)已經(jīng)通過引用并入本申請。如果合并的文件與本申請之間存在任何沖突,則以本申請(包括本文中的任何定義)為主。