專利名稱:帶有在線緩存和對(duì)等轉(zhuǎn)發(fā)的媒體流式傳輸?shù)闹谱鞣椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻流式傳輸、內(nèi)容分發(fā),以及通信網(wǎng)絡(luò)領(lǐng)域;更具體來說,本發(fā)明涉及利用在線緩存和對(duì)等機(jī)器轉(zhuǎn)發(fā)的媒體流式傳輸。
背景技術(shù):
對(duì)等機(jī)器之間的內(nèi)容分發(fā)和流式傳輸是已知的,在文獻(xiàn)中和工業(yè)界有很多系統(tǒng)提議和實(shí)現(xiàn)方式。一個(gè)這樣的系統(tǒng)包括若干個(gè)對(duì)等機(jī)器,其中,每一個(gè)對(duì)等機(jī)器都存儲(chǔ)視頻并向發(fā)出請(qǐng)求的客戶端對(duì)等機(jī)器流式傳輸視頻。每一個(gè)視頻都被編碼為多個(gè)描述,每一個(gè)描述都被放置在不同的節(jié)點(diǎn)上。當(dāng)提供服務(wù)的對(duì)等機(jī)器斷開連接時(shí),系統(tǒng)定位存儲(chǔ)了相同描述并具有足夠的到發(fā)出請(qǐng)求的客戶端的上行鏈路帶寬的另一個(gè)對(duì)等機(jī)器。此解決方案沒有提供緩存或存儲(chǔ)管理策略。
已經(jīng)公開了一種用于在廣域網(wǎng)內(nèi)組織節(jié)點(diǎn)的方法,其中,用戶在彼此之間轉(zhuǎn)播內(nèi)容。將按常規(guī)方式編碼的媒體流分段為小的文件,每一個(gè)文件都被上傳到用戶,用戶在鏈?zhǔn)叫偶邮降谋对銎骶W(wǎng)絡(luò)中反復(fù)地重新上傳它們。在一些播放延遲之后,客戶端通過常規(guī)媒體播放器連續(xù)地同時(shí)播放文件。
在另一種系統(tǒng)中,客戶端具有用于存儲(chǔ)下載的媒體文件的高速緩存。客戶端被聚集在一起,取決于它們的到達(dá)時(shí)間,以鏈條式的方式從服務(wù)器加入同一媒體流中。它們從鏈條中的其他客戶端的緩存中獲取媒體文件的遺漏的初始段。指定的系統(tǒng)不會(huì)主動(dòng)地管理資源,而是應(yīng)用緩存和提供服務(wù)的靜態(tài)規(guī)則。
已經(jīng)公開了一種數(shù)據(jù)緩沖管理工具,其中,當(dāng)為多個(gè)視頻端口提供服務(wù)時(shí),就什么應(yīng)該保留在海量存儲(chǔ)器中以及什么應(yīng)該保留在緩沖存儲(chǔ)器中做出判斷。該工具在預(yù)測(cè)對(duì)給定的一個(gè)數(shù)據(jù)塊的未來需求時(shí),利用視頻數(shù)據(jù)流的可預(yù)測(cè)的特征,來決定是將它保留在緩沖區(qū)中,還是保留在海量存儲(chǔ)器中。
有人提出了客戶端-服務(wù)器網(wǎng)絡(luò)中的用于檢索數(shù)據(jù)的緩存查找系統(tǒng),其中,客戶端使用其他客戶端的緩存來檢索被請(qǐng)求的信息。系統(tǒng)不指定應(yīng)該如何優(yōu)化緩存空間,以減輕服務(wù)器負(fù)載。在被稱為BASS的另一種系統(tǒng)中,通過向系統(tǒng)中添加媒體服務(wù)器,并迫使客戶端僅下載它們的播放點(diǎn)之后的段,來增強(qiáng)BitTorrent??蛻舳丝梢詮拿襟w服務(wù)器下載并同時(shí)使用BitTorrent對(duì)等(P2P)連接。該系統(tǒng)結(jié)合了客戶端-服務(wù)器和P2P體系結(jié)構(gòu)的好處,但是,它仍遵循隨機(jī)化的緩存策略,因?yàn)樗贐itTorrent系統(tǒng),其中在客戶端的附近的最稀缺的段被推向客戶端,針鋒相對(duì)地利用共享策略。
對(duì)等機(jī)器的緩存被當(dāng)做新的多播會(huì)話的種子,以改善服務(wù)器帶寬利用率。這里,同樣,緩存策略是靜態(tài)的,不會(huì)對(duì)需求產(chǎn)生自適應(yīng)。它還需要節(jié)點(diǎn)的鏈接(chaining)和修補(bǔ)遺漏信息。因此,相對(duì)于需求,客戶端緩存不會(huì)被優(yōu)化。
還有人提出了擦除編碼方法,用于從原始媒體生成編碼塊,并將唯一編碼塊提供到每一個(gè)客戶端??蛻舳烁鶕?jù)它們的緩沖區(qū)大小,盡可能多地存儲(chǔ)編碼塊,并將緩存的內(nèi)容提供給其他對(duì)等機(jī)器。同樣,此方法不允許針對(duì)不同視頻段的需求不均性以及其時(shí)間變化性來優(yōu)化緩存。已經(jīng)討論了在決定新來的客戶端在哪里加入分發(fā)樹中的情況下的緩存方式。還有人提出了對(duì)未來數(shù)據(jù)的隨機(jī)性的預(yù)先獲取,以及緩存最新的數(shù)據(jù),控制是針對(duì)拓?fù)涞?,而不是被緩存的?shù)據(jù)。在另一種解決方案中,使用段計(jì)數(shù)的“供應(yīng)者”,而不使用供應(yīng)來進(jìn)行緩存判斷。使用供應(yīng)計(jì)數(shù)來決定向誰要求哪一段(例如,一個(gè)策略是要求系統(tǒng)中的最稀缺的段)。該方案利用基于“閑話”的協(xié)議來建立傳送。
發(fā)明內(nèi)容
這里公開了用于進(jìn)行媒體流式傳輸?shù)南到y(tǒng)、方法和設(shè)備。在一個(gè)實(shí)施例中,系統(tǒng)包括提供媒體內(nèi)容的一個(gè)或多個(gè)媒體服務(wù)器和多個(gè)對(duì)等機(jī)器,所述多個(gè)對(duì)等機(jī)器以可通信方式耦合到所述多個(gè)對(duì)等機(jī)器中的一個(gè)或多個(gè)其他對(duì)等機(jī)器和所述一個(gè)或多個(gè)媒體服務(wù)器中的至少一個(gè)媒體服務(wù)器,以接收媒體內(nèi)容段,其中,至少一個(gè)對(duì)等機(jī)器分配一組資源用于提供媒體內(nèi)容段,包括高速緩沖存儲(chǔ)器,用于存儲(chǔ)媒體內(nèi)容段和媒體文件;上行鏈路帶寬,用于向所述一個(gè)對(duì)等機(jī)器以通信方式連接的所述一個(gè)或多個(gè)對(duì)等機(jī)器發(fā)送媒體內(nèi)容段。系統(tǒng)還包括第一控制服務(wù)器,用于跟蹤媒體內(nèi)容需求和所述多個(gè)對(duì)等機(jī)器的所述分配的資源,以確定哪一個(gè)對(duì)等機(jī)器應(yīng)該緩存哪一段媒體文件并返回指定所述一個(gè)或多個(gè)位置(每一個(gè)對(duì)等機(jī)器都從這些位置接收請(qǐng)求的每一個(gè)媒體內(nèi)容的每一段)的對(duì)等機(jī)器位置信息??刂品?wù)器可以向每一個(gè)對(duì)等機(jī)器發(fā)送位置信息。在一個(gè)實(shí)施例中,一個(gè)控制服務(wù)器還可以計(jì)算每一個(gè)緩存選項(xiàng)的效用,并通過向?qū)Φ葯C(jī)器發(fā)送觸發(fā)信號(hào)來實(shí)施該效用,以在那些對(duì)等機(jī)器上啟動(dòng)緩存。
從下面給出的詳細(xì)描述,以及本發(fā)明的各種實(shí)施例的附圖,將更加全面地理解本發(fā)明,然而,實(shí)施例不應(yīng)該被理解為將本發(fā)明限制到特定實(shí)施例,而只是為了說明和理解而已。
圖1是系統(tǒng)的一個(gè)實(shí)施例的方框圖。
圖2顯示了系統(tǒng)中的周期性地向控制服務(wù)器報(bào)告其資源的客戶端的一個(gè)實(shí)施例以及控制服務(wù)器決定緩存判斷的方式。
圖3顯示了使用一段時(shí)間內(nèi)的到達(dá)時(shí)間和下載速率生成的需求曲線。
圖4顯示了基于動(dòng)態(tài)編程(或等效地,格子)的優(yōu)化,以找出每一個(gè)客戶端節(jié)點(diǎn)上的緩存策略的最佳序列。
圖5是計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的方框圖。
圖6是控制服務(wù)器的一個(gè)實(shí)施例的方框圖。
具體實(shí)施例方式 在一個(gè)實(shí)施例中,系統(tǒng)包括向許多對(duì)等機(jī)器(例如,客戶端)提供媒體流式傳輸服務(wù)的一個(gè)或多個(gè)媒體服務(wù)器。每一個(gè)對(duì)等機(jī)器都將其存儲(chǔ)器資源、計(jì)算機(jī)處理單元(CPU)資源、帶寬資源(下游和/或上游)中的某些專用(或讓與)給系統(tǒng),這些資源被用來向其他對(duì)等機(jī)器提供媒體。服務(wù)器通過將內(nèi)容的被請(qǐng)求的部分或段直接從其本身提供到發(fā)出請(qǐng)求的客戶端或者從一個(gè)或多個(gè)不同的對(duì)等機(jī)器提供到發(fā)出請(qǐng)求的客戶端,促進(jìn)給定媒體內(nèi)容的分發(fā)。在一個(gè)實(shí)施例中,客戶端向服務(wù)器發(fā)出它們的請(qǐng)求,服務(wù)器作為響應(yīng)提供媒體的被請(qǐng)求的部分所在的許多對(duì)等機(jī)器位置。服務(wù)器對(duì)讓與(專用于)系統(tǒng)的對(duì)等機(jī)器的資源具有控制權(quán)。服務(wù)器使用對(duì)等機(jī)器的存儲(chǔ)器資源來存儲(chǔ)(例如,緩存)媒體的段,并使用這些對(duì)等機(jī)器的上行鏈路帶寬來提供緩存的段。在另一個(gè)實(shí)施例中,客戶端向服務(wù)器發(fā)出它們的請(qǐng)求,服務(wù)器指示一個(gè)或多個(gè)對(duì)等機(jī)器或服務(wù)器服務(wù)于發(fā)出請(qǐng)求的客戶端。
對(duì)于給定媒體段,當(dāng)前緩存了此段的對(duì)等機(jī)器的合計(jì)的總上行鏈路帶寬限定了段的對(duì)等傳送的供應(yīng)。另一方面,請(qǐng)求的總數(shù)以及對(duì)于同一段的請(qǐng)求的下載速率確定了對(duì)段的需求。公開了多項(xiàng)技術(shù),它們被用于系統(tǒng)中,以通過作出在線緩存判斷,來匹配對(duì)每一段的供應(yīng)和需求。
在一個(gè)實(shí)施例中,某些節(jié)點(diǎn)(這里被稱為“控制服務(wù)器”)跟蹤媒體文件的所有段的當(dāng)前供應(yīng)、當(dāng)前需求,以及預(yù)測(cè)的未來的需求。這可以是所有媒體文件或媒體文件的某個(gè)子集(例如,至少流行的媒體文件)。在一個(gè)實(shí)施例中,未來的需求預(yù)測(cè)會(huì)考慮在普通媒體流式傳輸操作邏輯下的確定性行為以及由于隨機(jī)性的對(duì)等機(jī)器到達(dá)、離開、故障等等而產(chǎn)生的隨機(jī)的行為。
在一個(gè)實(shí)施例中,由控制服務(wù)器執(zhí)行每一個(gè)節(jié)點(diǎn)上的緩存判斷,以在給定了所有段的某個(gè)時(shí)間范圍中的供應(yīng)和預(yù)測(cè)的需求的情況下增強(qiáng)并潛在地最大化可用緩存空間在給定時(shí)間范圍內(nèi)的效用。以不同的方式執(zhí)行緩存判斷。在一個(gè)實(shí)施例中,緩存判斷可以是提前將某些段預(yù)先獲取到對(duì)等機(jī)器中,以平衡未來需求,并降低未來的服務(wù)器負(fù)載。這要求分配一些服務(wù)器帶寬,以獲取當(dāng)前未被充分代表的媒體段。在另一個(gè)實(shí)施例中,一個(gè)或多個(gè)服務(wù)器不執(zhí)行任何預(yù)先獲取,而是使用緩存替換策略。每當(dāng)對(duì)等機(jī)器完成對(duì)它請(qǐng)求的段的下載(例如,用于重放)時(shí),服務(wù)器都會(huì)決定是要保留以前緩存的段還是保留當(dāng)前下載的段。在另一個(gè)實(shí)施例中,對(duì)等機(jī)器作出決定。在一個(gè)實(shí)施例中,作出改善緩存的總體效用的決定。對(duì)等機(jī)器根據(jù)該決定來更新其緩存。預(yù)先獲取和緩存替換策略也可以一起使用,以進(jìn)一步提高性能。
如此,這里所公開的技術(shù)在優(yōu)化系統(tǒng)資源的方式和用于匹配需求與供給的機(jī)制方面不同。本發(fā)明的一個(gè)實(shí)施例考慮了媒體流式傳輸要求和網(wǎng)絡(luò)/服務(wù)器/對(duì)等機(jī)器帶寬和存儲(chǔ)器限制以及隨機(jī)事件(例如,節(jié)點(diǎn)加入和離開系統(tǒng)),以開發(fā)一種將對(duì)等機(jī)器配對(duì)和匹配供應(yīng)和需求的有效方式。在一個(gè)實(shí)施例中,緩存觸發(fā)信號(hào)信令實(shí)現(xiàn)了緩存優(yōu)化決定??梢允褂脦?nèi)(不使用額外的帶寬)和帶外(即,預(yù)取)緩存這兩種方法。這些總體特點(diǎn)使這里所公開的技術(shù)成為特有的技術(shù),并且不同于其他對(duì)等流式傳輸解決方案。
在下面的描述中,闡述了很多細(xì)節(jié),以便提供對(duì)本發(fā)明的更全面的說明。然而,對(duì)那些本領(lǐng)域技術(shù)人員顯而易見的是,可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施本發(fā)明。在其他情況下,以方框圖形式(而不是詳細(xì)地)顯示已知的結(jié)構(gòu)和設(shè)備,以便不至于使本發(fā)明變得模糊。
隨后的詳細(xì)描述的某些部分以算法、和對(duì)計(jì)算機(jī)存儲(chǔ)器內(nèi)的數(shù)據(jù)比特的操作的符號(hào)表示法的形式來給出。這些算法描述和表示法是那些精通數(shù)據(jù)處理技術(shù)的人員所使用的最有效地將他們的工作的實(shí)質(zhì)傳遞給其他技術(shù)人員的手段。算法在此一般是指導(dǎo)致所希望的結(jié)果的步驟的自相容的序列。步驟是那些需要對(duì)物理量進(jìn)行物理操縱的步驟。通常,盡管不一定,這些量呈現(xiàn)電的或磁性信號(hào)的形式,這些信號(hào)能夠被存儲(chǔ)、傳輸、組合、比較,以及以別的方式被操縱。已經(jīng)證明,有時(shí),主要由于常常使用的原因,將這些信號(hào)稱為比特、值、元素、符號(hào)、字符、術(shù)語、數(shù)字等等比較方便。
然而,應(yīng)該記住,所有這些和類似的術(shù)語將與適當(dāng)?shù)奈锢砹筷P(guān)聯(lián),僅僅是應(yīng)用于這些量的方便的標(biāo)記。除非特別聲明,否則如從下列討論中顯而易見地看出那樣,應(yīng)該理解,在整個(gè)本說明書中,利用諸如“處理”或“計(jì)算”或“確定”或“顯示”等等之類的術(shù)語所進(jìn)行的討論,是指計(jì)算機(jī)系統(tǒng)和類似的電子計(jì)算設(shè)備的操作和/或處理,它們操縱和被表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器內(nèi)的物理(電子)量的數(shù)據(jù),并將這些數(shù)據(jù)轉(zhuǎn)換為類似地被表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其他這樣的信息存儲(chǔ)器、傳輸或顯示設(shè)備內(nèi)的物理量的其他數(shù)據(jù)。
本發(fā)明還涉及用于執(zhí)行這里的操作的設(shè)備??梢詾樗璧挠猛緦iT地構(gòu)造此設(shè)備,或者它可以包括由存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序有選擇地激活或重新配置的通用計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)上,如,但不僅限于,任何類型的磁(光)盤,包括軟盤、光盤、CD-ROM,以及磁性光盤、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、EPROM、EEPROM、磁卡或光卡,或適于存儲(chǔ)電子指令的任何類型的媒體,它們都各自耦合到計(jì)算機(jī)系統(tǒng)總線。
這里呈現(xiàn)的算法和顯示不固有地涉及任何特定計(jì)算機(jī)或其他設(shè)備。各種通用系統(tǒng)可以與根據(jù)這里的教導(dǎo)編寫的程序一起使用,或者構(gòu)建更加專業(yè)化的設(shè)備來執(zhí)行所需的方法步驟也是比較方便的。根據(jù)下面的描述,各種這些系統(tǒng)的所需的結(jié)構(gòu)將變得顯而易見。此外,不是參考任何特定編程語言來描述本發(fā)明的。應(yīng)該理解,可以使用各種編程語言來實(shí)現(xiàn)這里所描述的本發(fā)明的教導(dǎo)。
機(jī)器可讀取的介質(zhì)包括用于以機(jī)器(例如,計(jì)算機(jī))可讀取的形式存儲(chǔ)或傳輸信息的任何機(jī)制。例如,機(jī)器可讀取的介質(zhì)包括,只讀存儲(chǔ)器(“ROM”);隨機(jī)存取存儲(chǔ)器(“RAM”);磁盤存儲(chǔ)介質(zhì);光存儲(chǔ)介質(zhì);快閃存儲(chǔ)器設(shè)備;電的、光學(xué)的或聲音或其他形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào)等等);等等。
概述 媒體流式傳輸系統(tǒng)包括向?qū)Φ葯C(jī)器(例如,客戶端計(jì)算機(jī)系統(tǒng))提供媒體內(nèi)容的一個(gè)或多個(gè)媒體服務(wù)器、從其他對(duì)等機(jī)器和一個(gè)或多個(gè)媒體服務(wù)器接收媒體內(nèi)容段并以可通信方式耦合到其他對(duì)等機(jī)器和一個(gè)或多個(gè)媒體服務(wù)器的多個(gè)對(duì)等機(jī)器、以及至少一個(gè)控制服務(wù)器。每一個(gè)對(duì)等機(jī)器都分配一組資源用于提供媒體內(nèi)容段,該資源組包括高速緩沖存儲(chǔ)器,用于存儲(chǔ)媒體內(nèi)容段和媒體文件;和上行鏈路帶寬,用于向它們以可通信方式耦合的其他對(duì)等機(jī)器發(fā)送媒體內(nèi)容段。控制服務(wù)器跟蹤媒體內(nèi)容需求和對(duì)等機(jī)器的分配的資源,以確定指定一個(gè)或多個(gè)對(duì)等機(jī)器位置(每一個(gè)對(duì)等機(jī)器都從這些位置接收請(qǐng)求的每一項(xiàng)媒體內(nèi)容的每一段)的位置信息,并向?qū)Φ葯C(jī)器發(fā)送位置信息。
在一個(gè)實(shí)施例中,在視頻可用于系統(tǒng)中重放的過程中,由系統(tǒng)中的一個(gè)控制服務(wù)器來控制對(duì)一項(xiàng)媒體內(nèi)容(例如,視頻)的訪問。在一個(gè)實(shí)施例中,每一個(gè)控制服務(wù)器都可確定如何對(duì)媒體文件進(jìn)行分段,并確定每一段的下載速率以及重放延遲。
在一個(gè)實(shí)施例中,每一個(gè)對(duì)等機(jī)器都向至少一個(gè)控制服務(wù)器指定本地可用的資源。在一個(gè)實(shí)施例中,每一個(gè)對(duì)等機(jī)器都具有在大小方面受限制的高速緩沖存儲(chǔ)器,用于只存儲(chǔ)媒體的一段。在一個(gè)實(shí)施例中,在對(duì)等機(jī)器加入系統(tǒng)之后,控制服務(wù)器導(dǎo)致一段媒體被流式傳輸?shù)綄?duì)等機(jī)器。作為響應(yīng),對(duì)等機(jī)器將該段緩存到其高速緩沖存儲(chǔ)器中。在另一個(gè)實(shí)施例中,每一個(gè)對(duì)等機(jī)器都具有可以存儲(chǔ)多個(gè)段的高速緩沖存儲(chǔ)器,正在緩存的對(duì)等機(jī)器的上傳速率由所有被緩存的段以指定的方式共享,例如,每一段采取相等的速率分配(例如,在上傳速率是R并且對(duì)等機(jī)器可以緩存3段的情況下,以R/3提供每一段;如果對(duì)等機(jī)器可以緩存4段,那么,以R/4的速率提供每一段)。
在一個(gè)實(shí)施例中,控制服務(wù)器向?qū)Φ葯C(jī)器發(fā)送觸發(fā)信號(hào)以啟動(dòng)針對(duì)一段或多段媒體內(nèi)容的緩存過程。在一個(gè)實(shí)施例中,對(duì)等機(jī)器從控制服務(wù)器那里接收緩存一段或多段媒體內(nèi)容的觸發(fā)信號(hào)。在一個(gè)實(shí)施例中,對(duì)等機(jī)器響應(yīng)觸發(fā)信號(hào),從一個(gè)或多個(gè)媒體服務(wù)器和一個(gè)或多個(gè)其他對(duì)等機(jī)器預(yù)先獲取這些一段或多段。在一個(gè)實(shí)施例中,對(duì)等機(jī)器接收要立即播放或?qū)聿シ诺囊欢位蚨喽巍?br>
在一個(gè)實(shí)施例中,控制服務(wù)器或?qū)Φ葯C(jī)器確定對(duì)等機(jī)器是繼續(xù)存儲(chǔ)段還是用正在下載的新的段覆蓋該段以供重放。在一個(gè)實(shí)施例中,確定是否要緩存新的段的過程是基于在一段時(shí)間內(nèi)實(shí)現(xiàn)的一個(gè)或多個(gè)媒體服務(wù)器中的至少一個(gè)媒體服務(wù)器的負(fù)載的確定的減小量來進(jìn)行的。在另一個(gè)實(shí)施例中,確定是否要緩存新的段的過程是基于對(duì)新的段的未來的需求的預(yù)測(cè)和對(duì)等機(jī)器和媒體服務(wù)器向其他對(duì)等機(jī)器提供新的段的能力來進(jìn)行的。
在一個(gè)實(shí)施例中,控制服務(wù)器跟蹤每一個(gè)對(duì)等機(jī)器的每一段媒體內(nèi)容的供應(yīng)和需求。在一個(gè)實(shí)施例中,控制服務(wù)器使用對(duì)等機(jī)器到達(dá)速率和針對(duì)對(duì)等機(jī)器的供應(yīng)-需求分析和針對(duì)對(duì)等機(jī)器的媒體內(nèi)容的段的供應(yīng)和需求,確定哪些對(duì)等機(jī)器是提供被請(qǐng)求的段的可能的候選對(duì)等機(jī)器。在一個(gè)實(shí)施例中,控制服務(wù)器通過使所需媒體內(nèi)容段在特定時(shí)間可訪問,嘗試最大化每一個(gè)對(duì)等機(jī)器上的上行鏈路帶寬利用率,來確定這一點(diǎn)。在一個(gè)實(shí)施例中,媒體(例如,視頻)被分割為連續(xù)的段,控制服務(wù)器計(jì)算未來對(duì)每一段的估計(jì)的需求。
在一個(gè)實(shí)施例中,控制服務(wù)器可以估計(jì)未來某一時(shí)間的對(duì)應(yīng)于每一段媒體內(nèi)容的供應(yīng)和需求曲線,并使用每一個(gè)估計(jì)值來確定位置信息。在一個(gè)實(shí)施例中,第一控制服務(wù)器使用對(duì)等機(jī)器到達(dá)和離開時(shí)間統(tǒng)計(jì)信息,來生成估計(jì)值。在另一個(gè)實(shí)施例中,控制服務(wù)器使用對(duì)等機(jī)器到達(dá)和離開時(shí)間統(tǒng)計(jì)信息、表示何時(shí)請(qǐng)求特定媒體段的信息、節(jié)點(diǎn)到達(dá)之間和節(jié)點(diǎn)離開之間統(tǒng)計(jì)信息(例如,到達(dá)之間和離開之間時(shí)間的平均和標(biāo)準(zhǔn)偏離)、有關(guān)往返時(shí)間通信(控制服務(wù)器和每一個(gè)對(duì)等機(jī)器之間的往返通信延遲以及配對(duì)的對(duì)等機(jī)器之間的往返延遲)和處理延遲(由于每一個(gè)節(jié)點(diǎn)都必須分析分組并執(zhí)行某些功能以促進(jìn)流式傳輸操作而產(chǎn)生的延遲)的信息,來生成估計(jì)值。在再一個(gè)實(shí)施例中,控制服務(wù)器使用包括媒體重放速率、媒體下載速率、以及媒體段大小的組中的一個(gè)或多個(gè),生成估計(jì)值。這些估計(jì)值以定期的或不定期的間隔被更新。
在一個(gè)實(shí)施例中,控制服務(wù)器基于為每一個(gè)媒體文件和媒體文件的每一段計(jì)算出的效用度量,從對(duì)應(yīng)于針對(duì)每一段的供應(yīng)和需求的供應(yīng)和需求曲線,生成估計(jì)值。在一個(gè)實(shí)施例中,控制服務(wù)器基于計(jì)算出的與每一段關(guān)聯(lián)的效用函數(shù),確定要緩存哪些段。
圖1是媒體流式傳輸系統(tǒng)的方框圖。請(qǐng)參看圖1,系統(tǒng)包括存儲(chǔ)和提供原始媒體內(nèi)容(例如,文件)的許多媒體服務(wù)器1011-3;監(jiān)視和維護(hù)系統(tǒng)操作以及執(zhí)行資源管理、控制、分配和優(yōu)化的控制服務(wù)器102;以及具有有限的本地資源(例如,存儲(chǔ)器空間、帶寬、CPU周期等等)的客戶端1031-5(這里也被稱為對(duì)等機(jī)器)。雖然在圖1中只顯示了一個(gè)控制服務(wù)器,但是,系統(tǒng)中可以有任意數(shù)量的控制服務(wù)器。類似地,盡管只顯示了三個(gè)媒體服務(wù)器,只顯示了五個(gè)客戶端,但是,系統(tǒng)可以有任意數(shù)量的媒體服務(wù)器和客戶端。
控制服務(wù)器102、媒體服務(wù)器1011-3和/或客戶端1031-5可以是在物理上分離的或并置的節(jié)點(diǎn),系統(tǒng)中的每一個(gè)節(jié)點(diǎn)通常通過某種通信鏈路和/或計(jì)算機(jī)網(wǎng)絡(luò)互連在一起??蛻舳?031-5本身可以是媒體內(nèi)容的原始生成器(因此,也是媒體服務(wù)器)和/或現(xiàn)有媒體內(nèi)容的消費(fèi)者。
在一個(gè)實(shí)施例中,客戶端將它們的本地資源中的一些專用于媒體分發(fā)系統(tǒng),以便它們用于在對(duì)等機(jī)器之間分發(fā)媒體內(nèi)容。沒有說明向客戶端提供的用于這樣的專用的動(dòng)機(jī),這些動(dòng)機(jī)不是本公開內(nèi)容的主題。在一個(gè)實(shí)施例中,客戶端直接將它們的對(duì)媒體文件的特定段的請(qǐng)求(例如,REQ(媒體名稱,段))發(fā)送到控制服務(wù)器102中的維護(hù)了系統(tǒng)中的客戶端的數(shù)據(jù)庫(例如,列表)和它們當(dāng)前緩存的媒體內(nèi)容的段的那一個(gè)控制服務(wù)器102。因此,它們維護(hù)了媒體內(nèi)容的全局視圖。作為響應(yīng),控制服務(wù)器102從其數(shù)據(jù)庫中搜索可以以希望的速率供應(yīng)媒體文件的被請(qǐng)求的段的位置。控制服務(wù)器102利用位置以及它們的可能的屬性(諸如,例如,可用資源、距離等等)的列表,對(duì)發(fā)出請(qǐng)求的客戶端103作出回復(fù)(例如,REPLY(供應(yīng)位置))。當(dāng)發(fā)出請(qǐng)求的客戶端(例如,客戶端1031)從控制服務(wù)器102接收到回復(fù)消息時(shí),客戶端1031聯(lián)系這些位置,如果這些位置滿足該請(qǐng)求的條件,則它們開始向客戶端流式傳輸被請(qǐng)求的段。在一個(gè)實(shí)施例中,位置的列表包括一個(gè)或多個(gè)媒體服務(wù)器101和一個(gè)或多個(gè)其他客戶端節(jié)點(diǎn)101。在圖1中的示例中,客戶端1031發(fā)送從媒體服務(wù)器1012和客戶端1034請(qǐng)求段的請(qǐng)求。位置的列表可以僅僅包括客戶端節(jié)點(diǎn)或僅僅包括媒體服務(wù)器或兩者的組合。雖然圖1中沒有描述,但是,在一個(gè)實(shí)施例中,控制服務(wù)器102可以直接向一組位置發(fā)送控制消息,然后這些位置開始將被請(qǐng)求的視頻段推向發(fā)出請(qǐng)求的對(duì)等機(jī)器。在這樣的“基于推”的操作模式下,響應(yīng)其發(fā)往控制服務(wù)器102的請(qǐng)求,發(fā)出請(qǐng)求的對(duì)等機(jī)器期望視頻有效負(fù)載。
在一個(gè)實(shí)施例中,發(fā)出請(qǐng)求的客戶端可以支持從許多點(diǎn)進(jìn)行并行流式傳輸,其中,每一個(gè)流都攜帶唯一信息。在一個(gè)實(shí)施例中,所述唯一信息的特點(diǎn)可以通過從不同的節(jié)點(diǎn)顯式地請(qǐng)求給定段的不相重疊的部分來滿足。在另一個(gè)實(shí)施例中,所述唯一信息的特點(diǎn)通過從存儲(chǔ)在每一個(gè)位置的原始消息塊生成的特有的編碼塊來滿足??梢允褂?但不僅限于)諸如,例如,里德-索羅蒙(Reed-Solomon)碼、Tornado代碼、Raptor代碼、LT代碼等等固定速率或rateless擦除代碼,來生成編碼塊。
在一個(gè)實(shí)施例中,媒體流式傳輸系統(tǒng)在控制服務(wù)器102和客戶端1031-5之間使用顯式的控制信令機(jī)制。圖2顯示了客戶端201,它是系統(tǒng)中的許多客戶端中的一個(gè),周期性地向控制服務(wù)器202報(bào)告它們的本地資源。請(qǐng)參看圖2,客戶端201給控制服務(wù)器202發(fā)送一個(gè)報(bào)告,其中包括其分配給系統(tǒng)的高速緩沖存儲(chǔ)器的大小、其上行鏈路/下行鏈路帶寬、其專用于系統(tǒng)的CPU周期以及對(duì)存儲(chǔ)在其緩存中的本地內(nèi)容的表示。在一個(gè)實(shí)施例中,客戶端也使用報(bào)告消息作為“ALIVE”消息,以確認(rèn)它們可用,并可以作為供應(yīng)和/或需求節(jié)點(diǎn)??刂品?wù)器202決定在每一個(gè)客戶端處是否需要進(jìn)行預(yù)取或不同的緩存,并向客戶端發(fā)送該決定。在一個(gè)實(shí)施例中,控制服務(wù)器202通過利用PREFETCH(媒體名稱、段、供應(yīng)位置)來指定段,指示客戶端201預(yù)取一個(gè)媒體段和/或通過利用CACHE(媒體名稱,段)來指定段,指示客戶端201緩存一個(gè)媒體段。如此,在一個(gè)實(shí)施例中,控制服務(wù)器維護(hù)了系統(tǒng)中的客戶端和媒體服務(wù)器的整體狀態(tài)。在另一個(gè)實(shí)施例中,控制服務(wù)器可能具有系統(tǒng)的更有限的視圖,并與其他控制服務(wù)器協(xié)調(diào)地作出本地決定。
在一個(gè)實(shí)施例中,控制服務(wù)器通過發(fā)出顯式的控制消息,顯式地在客戶端節(jié)點(diǎn)中觸發(fā)緩存決定。在一個(gè)實(shí)施例中,一個(gè)控制消息請(qǐng)求客戶端下載(例如,預(yù)先獲取)媒體文件的一些段(在客戶端實(shí)際請(qǐng)求它們之前)。在一個(gè)實(shí)施例中,對(duì)于要預(yù)先獲取的段,客戶端可能從來不會(huì)請(qǐng)求或需求。在另一個(gè)實(shí)施例中,另一種控制消息請(qǐng)求客戶端緩存客戶端還沒有需求但是預(yù)測(cè)在不久的將來客戶端將會(huì)需求的未來的段。當(dāng)客戶端按順序從第一段到最后一段發(fā)出它們的訂單時(shí)(這是視頻流式傳輸應(yīng)用的情況),控制服務(wù)器有可能預(yù)期客戶端何時(shí)將發(fā)出下載未來段的請(qǐng)求。因此,如果對(duì)任何一個(gè)未來的段的需求高于供應(yīng),則控制服務(wù)器通過發(fā)送顯式的控制消息來觸發(fā)緩存。當(dāng)客戶端接收到觸發(fā)信號(hào)時(shí),它繼續(xù)其連續(xù)的下載。當(dāng)預(yù)定要根據(jù)標(biāo)準(zhǔn)視頻流式傳輸操作來接收由觸發(fā)信號(hào)指示的段時(shí),客戶端開始緩存該段。在一個(gè)實(shí)施例中,一旦客戶端開始緩存段,則客戶端有助于段的供應(yīng)。在另一個(gè)實(shí)施例中,只有在客戶端完全緩存段之后,客戶端才有助于段的供應(yīng)。
在一個(gè)實(shí)施例中,控制服務(wù)器跟蹤客戶端到達(dá)和離開流式傳輸系統(tǒng)的情況、請(qǐng)求的段以及關(guān)聯(lián)的請(qǐng)求時(shí)間、各個(gè)段的供應(yīng)和需求統(tǒng)計(jì)信息、段的供應(yīng)者、客戶端的供應(yīng)/需求率等等。在一個(gè)實(shí)施例中,此信息用于預(yù)測(cè)每一個(gè)段的現(xiàn)在和將來的供應(yīng)和需求曲線。在另一個(gè)實(shí)施例中,預(yù)測(cè)的供應(yīng)和需求曲線用于定義每一個(gè)媒體段的效用函數(shù),根據(jù)效用函數(shù)的值,控制服務(wù)器確定在不同的時(shí)間在不同的客戶端位置要緩存的段。圖3顯示了一個(gè)估計(jì)方法的示例。可以使用其他已知的估計(jì)模型,沒有描述這些估計(jì)模型以避免使本發(fā)明模糊。
請(qǐng)參看圖3,可以作為線性曲線,預(yù)測(cè)每一個(gè)客戶端對(duì)每一段的需求曲線,線性曲線在時(shí)間軸上在客戶端的到達(dá)時(shí)間開始,斜率等于客戶端的總的下載速率。圖3中的圖表描述了當(dāng)客戶端A、B、C,以及D在t0、t1、t2,以及t3到達(dá)時(shí)的情況,它們中的每一個(gè)都以相同的總速率進(jìn)行下載。在時(shí)間t2,當(dāng)控制服務(wù)器試圖估計(jì)時(shí)間t的需求時(shí),它可以準(zhǔn)確地查明以什么速率需求哪一段。如果t大于t3,則它將具有不準(zhǔn)確的視圖,因?yàn)榭蛻舳薉還不在畫面中,并且新客戶端到達(dá)是隨機(jī)地出現(xiàn)的。
在一個(gè)實(shí)施例中,假設(shè)一旦客戶端下載完請(qǐng)求的媒體的最后一段就離開,以致于它們不再可用于供應(yīng)段。那么,系統(tǒng)從現(xiàn)有的客戶端預(yù)測(cè)不同的段的請(qǐng)求時(shí)間,因?yàn)槎未笮『同F(xiàn)有客戶端的下載速率是已知的。使用這些請(qǐng)求時(shí)間預(yù)測(cè)來估計(jì)未來的需求。系統(tǒng)還可以估計(jì)離開時(shí)間,并相應(yīng)地更新供給曲線。然而,如果允許隨機(jī)節(jié)點(diǎn)離開,則請(qǐng)求和離開時(shí)間不再是確定性的。隨機(jī)的客戶端到達(dá)也增加了不確定性。因此,在另一個(gè)實(shí)施例中,可以使用統(tǒng)計(jì)方法來預(yù)測(cè)隨機(jī)節(jié)點(diǎn)到達(dá)和節(jié)點(diǎn)離開對(duì)平均供應(yīng)和需求曲線的影響。
在一個(gè)實(shí)施例中,控制服務(wù)器按如下方式對(duì)于每一個(gè)媒體文件進(jìn)行操作。符號(hào)被定義為如下 ti當(dāng)前時(shí)刻 t0主機(jī)的流開始時(shí)間 Δt段持續(xù)時(shí)間 N段數(shù)
估計(jì)的用戶到達(dá)速率
在當(dāng)前時(shí)刻ti估計(jì)的未來時(shí)刻t(t≥ti)的對(duì)段s(1≤s≤N,s∈Z+)的估計(jì)的總的需求的比特率。
對(duì)等機(jī)器在當(dāng)前時(shí)刻ti估計(jì)的未來時(shí)刻t緩存段s的估計(jì)的總的上游帶寬。
控制服務(wù)器將需求視為包括確定性的分量Ddet和隨機(jī)性分量Dsto。在一個(gè)實(shí)施例中,通過使用下面的公式在時(shí)間ti,針對(duì)離散的未來時(shí)刻t,估計(jì)平均需求量,以便
并且t≠ti 若s>1 Ddet(ti,l,ti)=在(ti-Δt,ti]內(nèi)到達(dá)的新的客戶端總的需求的比特率 注意,在另一個(gè)實(shí)施例中,隨機(jī)的部分也包括一個(gè)或多個(gè)較高階統(tǒng)計(jì)信息和概率函數(shù)(例如,標(biāo)準(zhǔn)偏差、用戶到達(dá)的經(jīng)驗(yàn)分布的不同的百分位數(shù),等等)。在一個(gè)實(shí)施例中,通過跟蹤客戶端(對(duì)等機(jī)器)到系統(tǒng)中的到達(dá)時(shí)間,需求估計(jì)是對(duì)于連續(xù)時(shí)間而不是離散時(shí)間的一般化。
類似于需求估計(jì),在一個(gè)實(shí)施例中,供應(yīng)估計(jì)是使用下列公式進(jìn)行的 Sdet(t,s)=Sdet(ti,s) Sdet(ti,s)=主機(jī)在時(shí)刻ti緩存段s的總的上游帶寬 Ssto(t,s)=0 注意,在另一個(gè)實(shí)施例中,隨機(jī)的部分包括使用離去過程的統(tǒng)計(jì)信息的非零項(xiàng),例如,平均離開速率。
在一個(gè)實(shí)施例中,控制服務(wù)器從特定用戶y視點(diǎn)計(jì)算效用函數(shù) 假設(shè)y將在在時(shí)間t供應(yīng)s,其他用戶的供應(yīng)估計(jì)保持相同。這里I[x]是指一個(gè)函數(shù)。
在一個(gè)實(shí)施例中, 在第二個(gè)實(shí)施例, 在第三個(gè)實(shí)施例中,I[x]=x. 在第四個(gè)實(shí)施例中,
其中,Ruy是用戶y的上傳速率。
其他實(shí)施例可以使用供應(yīng)和需求的其他任意函數(shù)來定義效用。在不同的實(shí)現(xiàn)方式中,可以使段大小在相同的或不同的媒體文件的段之間相等或可變。
在一個(gè)實(shí)施例中,控制服務(wù)器在流式傳輸會(huì)話的開始t0,通過求解所有段s的優(yōu)化問題,決定將一段預(yù)先獲取到新來的客戶端 對(duì)s∈{1,2,...,N} 然后,可以由媒體服務(wù)器和已經(jīng)緩存和供應(yīng)
的客戶端的任何子集預(yù)先獲取
參數(shù)h是優(yōu)化范圍(horizon),定義了優(yōu)化問題中的超前窗口。對(duì)于攻擊性的優(yōu)化,控制服務(wù)器將h設(shè)置為低,例如,h=1,取得一步利用率最大化。對(duì)于攻擊性較小的優(yōu)化,控制服務(wù)器將h設(shè)置為高,例如,h=N,作為極端,將視界設(shè)置為系統(tǒng)中的用戶的一生。在另一個(gè)實(shí)施例中,控制服務(wù)器將一段預(yù)先獲取到已經(jīng)在系統(tǒng)中的客戶端中(通過將它們看作新來的主機(jī))。
在另一個(gè)實(shí)施例中,控制服務(wù)器在新下載的段結(jié)束時(shí)在每一個(gè)客戶端觸發(fā)一步緩存策略(例如,在時(shí)刻ti下載si=(ti-t0)/Δt)。判斷是是否要保留已經(jīng)緩存的段c還是用從時(shí)間ti開始的si替換它。在一個(gè)實(shí)施例中,服務(wù)器計(jì)算 對(duì)于s∈{c,si} 而如果
那么,c應(yīng)該被替換為si,并將此信息作為緩存觸發(fā)信號(hào)發(fā)送到客戶端??蛻舳嗽趖i開始緩存,并在接收到觸發(fā)信號(hào)之后供應(yīng)si。如果客戶端具有本地可用的供應(yīng)和需求信息,則也可以在本地執(zhí)行相同的計(jì)算和判斷。與預(yù)先獲取不同,在此實(shí)施例中,對(duì)于緩存目的,不使用額外的帶寬。
在另一個(gè)實(shí)施例中,控制服務(wù)器(或本地客戶端,如果有足夠的信息可用來執(zhí)行決定的話)通過計(jì)算緩存決定序列的效用值,構(gòu)成格子圖形,來觸發(fā)多步緩存,其中,這些決定是在對(duì)應(yīng)于每一個(gè)新的段下載完成的時(shí)刻作出的。圖4顯示了基于動(dòng)態(tài)編程(或等效地,格子)的優(yōu)化,用于找出每一個(gè)客戶端節(jié)點(diǎn)上的緩存策略的最佳序列。緩存序列在判斷是要保留現(xiàn)有緩存還是用剛剛完成的段替換它的每一個(gè)判斷點(diǎn)處分叉為兩個(gè)。為每個(gè)可能的路徑的時(shí)間范圍計(jì)算總效用,就總效用而言已經(jīng)由其他路徑占主要地位的那些除外??赡艿穆窂降臄?shù)量隨時(shí)間而增大,直到到達(dá)時(shí)間范圍。可以按如下方式陳述該優(yōu)化問題(注意,問題陳述有許多等效的版本,這只是這些公式中的一個(gè)) 在時(shí)間ti(參見圖4),客戶端緩存了段c,完成段si的下載。為計(jì)算直到時(shí)間ti+hΔt的決定的序列的開銷,定義路徑r={sj(1),sj(2),...,sj(h)},其中,sj(m)對(duì)應(yīng)于在時(shí)間ti+(m-1)Δt和ti+mΔt之間緩存的段。在時(shí)間ti,只有兩個(gè)選擇供緩存,即,選擇c或si。在時(shí)間ti+Δt,緩存可以在c,si,或si+1之間進(jìn)行,取決于在前面的步長(zhǎng)中決定了什么。沿著格子圖形的頂點(diǎn),可以列舉出所有可能的路徑。將一組長(zhǎng)度h的所有可能的路徑表示為P。對(duì)于P中的每一個(gè)r={sj(1),sj(2),...,sj(h)},在一個(gè)實(shí)施例中,路徑效用被定義為 那么,緩存決定等于選擇最大化Ur的最佳路徑r*,即, 最佳路徑表明在每一個(gè)步長(zhǎng)中要緩存什么,直到h個(gè)步長(zhǎng)結(jié)束。除非在ti+hΔt結(jié)束之前供應(yīng)和需求曲線變化,否則,最佳路徑不需要任何重新計(jì)算。在一個(gè)實(shí)施例中,通過在格子圖形上進(jìn)行窮舉搜索,來找出最佳路徑。然而,一個(gè)實(shí)施例提供基于動(dòng)態(tài)編程的解決方案。在一種基于動(dòng)態(tài)編程的實(shí)現(xiàn)方式中,決定得到遵循優(yōu)化問題的解決方案在時(shí)間(ti-Δ),客戶端在其緩存中具有c(參見圖4),它需要判斷是否要用在時(shí)刻ti新下載的段(si=(ti-t0)/Δt)替換已經(jīng)緩存的段(c),并保留它,直到ti+Δt和更久。時(shí)間范圍被參數(shù)化為h,使用動(dòng)態(tài)編程來最大化緩存決定的所有路徑上的總效用,長(zhǎng)度h為1≤h≤(N-si)。其后,計(jì)算路徑效用函數(shù)q(t,s,k),(這里s是遵循的路徑的最后一段,直到離散時(shí)間t,k是相同的路徑的第一段),服從下面的定義、約束和初始條件 ti+Δt≤t≤ti+(h-1)Δt,以及 k∈{c,si} p∈{c,si+1,...,si+(t-Δt-ti)/Δt}如果s=si+(t-ti)/Δt,k=c, p∈{si,si+1,...,si+(t-Δt-ti)/Δt}如果s=si+(t-ti)/Δt,k=si, p∈{s}如果si≤s<si+(t-ti)/Δt或s=c。
q(t,s,c)=-∞,如果(s≤si并且s≠c)或s>si+(t-ti)/Δt q(t,s,si)=-∞,如果s<si或s>si+(t-ti)/Δt 然后,進(jìn)行下面的計(jì)算
如果
新的段si替換緩存中的以前的段c。否則,段c保留在緩存中。
注意,上文所討論的優(yōu)化問題只是動(dòng)態(tài)編程的特定實(shí)現(xiàn)方式。其他實(shí)施例包括動(dòng)態(tài)編程實(shí)現(xiàn)方式的不同的版本。在一個(gè)實(shí)施例中,對(duì)于在計(jì)算方面高效的實(shí)現(xiàn)方式,一個(gè)時(shí)刻的路徑效用函數(shù)用于計(jì)算后面的時(shí)刻的路徑效用函數(shù)。這可以通過存儲(chǔ)已經(jīng)計(jì)算出的路徑的開銷并在計(jì)算新建立的路徑的開銷中重復(fù)使用它們來做到這一點(diǎn)。在一個(gè)實(shí)施例中,當(dāng)對(duì)長(zhǎng)度h的路徑進(jìn)行計(jì)算時(shí)(例如,為了最大化h步長(zhǎng)的時(shí)間范圍的效用),來找出最佳路徑,其中,格子圖形中的路徑的每一個(gè)頂點(diǎn)都提供最佳決定,直到時(shí)間ti+hΔt。如果在供應(yīng)和需求曲線中沒有發(fā)生變化/更新,則不需要重新計(jì)算最佳路徑,直到時(shí)間范圍的結(jié)束。
在一般實(shí)施例中,可以聯(lián)合地使用如前所述的所有緩存策略或任何組合。
控制服務(wù)器的實(shí)施例 圖6是控制服務(wù)器的一個(gè)實(shí)施例的方框圖??刂品?wù)器包括處理邏輯,處理邏輯包括硬件、軟件或兩者的組合。請(qǐng)參看圖6,控制服務(wù)器包括跟蹤模塊601,用于跟蹤媒體內(nèi)容需求和系統(tǒng)中的對(duì)等機(jī)器的分配的資源,以確定指定位置(每一個(gè)對(duì)等機(jī)器都從這些位置接收對(duì)等機(jī)器請(qǐng)求的每一個(gè)媒體內(nèi)容的每一段)的位置信息。在一個(gè)實(shí)施例中,跟蹤模塊601跟蹤每一個(gè)對(duì)等機(jī)器的每一段媒體內(nèi)容的供應(yīng)和需求。
在一個(gè)實(shí)施例中,跟蹤模塊601基于對(duì)等機(jī)器到達(dá)速率和對(duì)于對(duì)等機(jī)器的供應(yīng)-需求分析和對(duì)于對(duì)等機(jī)器的媒體內(nèi)容的段的供應(yīng)和需求,確定緩存位置。在另一個(gè)實(shí)施例中,跟蹤模塊601通過使所希望的媒體內(nèi)容段在特定時(shí)間可訪問,嘗試最大化每一個(gè)對(duì)等機(jī)器上的上行鏈路帶寬利用率,來確定位置信息。在再一個(gè)實(shí)施例中,跟蹤模塊601基于包括下列各項(xiàng)的組中的一個(gè)或多個(gè)來確定是否要緩存新的段在一段時(shí)間內(nèi)實(shí)現(xiàn)的至少一個(gè)媒體服務(wù)器中的負(fù)載的確定的減小量,對(duì)新的段的未來的需求的預(yù)測(cè),以及對(duì)等機(jī)器和媒體服務(wù)器向其他對(duì)等機(jī)器提供新的段的能力。
在一個(gè)實(shí)施例中,跟蹤模塊601估計(jì)未來某一時(shí)間的對(duì)應(yīng)于每一段媒體內(nèi)容的供應(yīng)和需求曲線,并使用每一個(gè)估計(jì)值來確定緩存位置信息。在這樣的情況下,跟蹤模塊601使用包括下列各項(xiàng)的組中的一個(gè)或多個(gè)來估計(jì)供應(yīng)和需求曲線對(duì)等機(jī)器到達(dá)和離開時(shí)間統(tǒng)計(jì)信息、表示何時(shí)請(qǐng)求特定媒體段的信息、節(jié)點(diǎn)到達(dá)之間和離開之間統(tǒng)計(jì)信息、有關(guān)往返時(shí)間通信和處理延遲的信息、媒體重放速率、媒體下載速率、以及媒體段大小、根據(jù)與針對(duì)所述每一段的供應(yīng)和需求相對(duì)應(yīng)的供應(yīng)和需求曲線為每一個(gè)媒體文件和每一段媒體文件計(jì)算出的效用度量。
在一個(gè)實(shí)施例中,跟蹤模塊601還確定如何對(duì)媒體文件進(jìn)行分段,確定每一段的下載速率以及重放延遲。
控制服務(wù)器還包括向?qū)Φ葯C(jī)器發(fā)送位置信息的位置信息傳輸模塊602。
控制服務(wù)器包括耦合到跟蹤模塊601和傳輸模塊602以與對(duì)等機(jī)器進(jìn)行通信的對(duì)等機(jī)器接口603。類似地,控制服務(wù)器包括耦合到跟蹤模塊601和傳輸模塊602以與系統(tǒng)中的媒體服務(wù)器進(jìn)行通信的媒體服務(wù)器接口604。在一個(gè)實(shí)施例中,對(duì)等機(jī)器接口602和媒體服務(wù)器接口604是同一個(gè)接口。
控制服務(wù)器還包括用于控制其各種模塊的操作的控制邏輯610。
計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例 圖5是可以執(zhí)行這里所描述的一個(gè)或多個(gè)操作的示范性計(jì)算機(jī)系統(tǒng)的方框圖。請(qǐng)參看圖5,計(jì)算機(jī)系統(tǒng)500可以包括示范性客戶端或服務(wù)器計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)500包括用于傳遞信息的通信機(jī)制或總線511,以及用于處理信息的與總線511耦合的處理器512。處理器512包括微處理器,但不僅限于諸如,例如,PentiumTM、PowerPCTM、AlphaTM等等之類的微處理器。
計(jì)算機(jī)系統(tǒng)500進(jìn)一步包括耦合到總線511的隨機(jī)存取存儲(chǔ)器(RAM),或其他動(dòng)態(tài)存儲(chǔ)設(shè)備504(被稱為主存儲(chǔ)器),用于存儲(chǔ)信息和待由處理器512執(zhí)行的指令。主存儲(chǔ)器504還可以用于在由處理器512執(zhí)行指令的執(zhí)行過程中存儲(chǔ)臨時(shí)變量或其他中間信息。
計(jì)算機(jī)系統(tǒng)500還包括耦合到總線511的只讀存儲(chǔ)器(ROM)和/或其他靜態(tài)存儲(chǔ)器設(shè)備506,用于為處理器512存儲(chǔ)靜態(tài)信息和指令,還包括諸如磁盤或光盤之類的數(shù)據(jù)存儲(chǔ)設(shè)備507以及其對(duì)應(yīng)的磁盤驅(qū)動(dòng)器。數(shù)據(jù)存儲(chǔ)設(shè)備507耦合到總線511,用于存儲(chǔ)信息和指令。
計(jì)算機(jī)系統(tǒng)500還可以進(jìn)一步耦合到諸如陰極射線管(CRT)或液晶顯示器(LCD)之類的顯示設(shè)備521,它們耦合到總線511,用于向計(jì)算機(jī)用戶顯示信息。包括字母數(shù)字及其他鍵的字母數(shù)字輸入設(shè)備522,也可以耦合到總線511,以便向處理器512傳遞信息和命令選擇。另一種用戶輸入設(shè)備是耦合到總線511的光標(biāo)控制裝置523,如鼠標(biāo)、跟蹤球、跟蹤板、指示筆或光標(biāo)方向鍵,用于向處理器512傳遞方向信息和命令選擇,并用于控制顯示器521上的光標(biāo)移動(dòng)。
可以耦合到總線511的另一個(gè)設(shè)備是硬拷貝設(shè)備524,可以用于在諸如紙張、膠卷之類的介質(zhì)或類似的介質(zhì)上標(biāo)記信息??梢择詈系娇偩€511的另一種設(shè)備是與電話或手持式掌上設(shè)備進(jìn)行通信的有線/無線通信功能裝置525。
注意,系統(tǒng)500的任何或全部組件以及關(guān)聯(lián)的硬件都可以用于本發(fā)明中。然而,可以理解,計(jì)算機(jī)系統(tǒng)的其他配置可以包括一些或全部設(shè)備。
盡管在閱讀前面的描述之后對(duì)本發(fā)明的許多更改和修改對(duì)于那些本領(lǐng)域技術(shù)人員是顯而易見的,但是,應(yīng)該理解,為進(jìn)行說明所顯示和描述的任何特定實(shí)施例決不能被視為限制性的。因此,各種實(shí)施例的細(xì)節(jié)不是要限制權(quán)利要求的范圍,權(quán)利要求本身只列舉出了被視為對(duì)本發(fā)明不可少的那些特點(diǎn)。
權(quán)利要求
1.一種系統(tǒng),包括
提供媒體內(nèi)容的一個(gè)或多個(gè)媒體服務(wù)器;
多個(gè)對(duì)等機(jī)器,以通信方式耦合到所述多個(gè)對(duì)等機(jī)器中的一個(gè)或多個(gè)其他對(duì)等機(jī)器和所述一個(gè)或多個(gè)媒體服務(wù)器中的至少一個(gè)媒體服務(wù)器,用于接收媒體內(nèi)容段,其中,所述多個(gè)對(duì)等機(jī)器中的至少一個(gè)分配一組資源用于提供所述媒體內(nèi)容段,所述一組資源包括高速緩沖存儲(chǔ)器,用于存儲(chǔ)媒體內(nèi)容段和媒體文件;和上行鏈路帶寬,用于向一個(gè)對(duì)等機(jī)器以能夠通信的方式耦合的所述一個(gè)或多個(gè)對(duì)等機(jī)器發(fā)送媒體內(nèi)容段;以及
第一控制服務(wù)器,跟蹤媒體內(nèi)容需求和所述多個(gè)對(duì)等機(jī)器的所述分配的資源,以確定指定一個(gè)或多個(gè)對(duì)等機(jī)器位置的對(duì)等機(jī)器位置信息,每一個(gè)對(duì)等機(jī)器都從所述一個(gè)或多個(gè)對(duì)等機(jī)器位置接收請(qǐng)求的每一個(gè)媒體內(nèi)容的每一段,所述至少一個(gè)控制服務(wù)器可以向所述每一個(gè)對(duì)等機(jī)器發(fā)送所述位置信息。
2.一種方法,包括
跟蹤媒體內(nèi)容需求和多個(gè)對(duì)等機(jī)器的分配的資源,以確定指定一個(gè)或多個(gè)位置的位置信息,每一個(gè)對(duì)等機(jī)器都從所述一個(gè)或多個(gè)位置接收請(qǐng)求的每一個(gè)媒體內(nèi)容的每一段;以及
向所述每一個(gè)對(duì)等機(jī)器發(fā)送所述位置信息。
全文摘要
這里公開了用于進(jìn)行媒體流式傳輸?shù)南到y(tǒng)、方法和設(shè)備。在一個(gè)實(shí)施例中,系統(tǒng)包括提供媒體內(nèi)容的一個(gè)或多個(gè)媒體服務(wù)器,多個(gè)對(duì)等機(jī)器,以通信方式耦合到所述多個(gè)對(duì)等機(jī)器中的一個(gè)或多個(gè)其他對(duì)等機(jī)器和所述一個(gè)或多個(gè)媒體服務(wù)器中的至少一個(gè)媒體服務(wù)器,用于接收媒體內(nèi)容段,其中,至少一個(gè)對(duì)等機(jī)器分配一組資源用于提供媒體內(nèi)容段,所述一組資源包括高速緩沖存儲(chǔ)器,用于存儲(chǔ)媒體內(nèi)容段和媒體文件;和上行鏈路帶寬,用于向一個(gè)對(duì)等機(jī)器以通信方式耦合的所述一個(gè)或多個(gè)對(duì)等機(jī)器發(fā)送媒體內(nèi)容段。系統(tǒng)還包括第一控制服務(wù)器,用于跟蹤媒體內(nèi)容需求和所述多個(gè)對(duì)等機(jī)器的所述分配的資源,以確定哪一個(gè)對(duì)等機(jī)器應(yīng)該緩存哪一段媒體文件并返回指定一個(gè)或多個(gè)對(duì)等機(jī)器位置的對(duì)等機(jī)器位置信息,每一個(gè)對(duì)等機(jī)器都從這些對(duì)等機(jī)器位置接收請(qǐng)求的每一個(gè)媒體內(nèi)容的每一段??刂品?wù)器可以向每一個(gè)對(duì)等機(jī)器發(fā)送位置信息。在一個(gè)實(shí)施例中,一個(gè)控制服務(wù)器還可以計(jì)算每一個(gè)緩存選項(xiàng)的效用,并通過向?qū)Φ葯C(jī)器發(fā)送觸發(fā)信號(hào)來實(shí)施它,以在那些對(duì)等機(jī)器上啟動(dòng)緩存。
文檔編號(hào)H04L29/06GK101772938SQ200880101683
公開日2010年7月7日 申請(qǐng)日期2008年8月20日 優(yōu)先權(quán)日2007年8月21日
發(fā)明者U·C·科扎特, M·U·德米辛, O·哈曼希, S·卡紐姆里 申請(qǐng)人:株式會(huì)社Ntt都科摩