分布式發送媒體數據的體系結構的製作方法
2023-05-08 21:22:06 3
專利名稱:分布式發送媒體數據的體系結構的製作方法
技術領域:
本發明一般涉及分布式發送媒體數據,尤其通過不作為限止的例子,涉及用於分布式發送媒體數據的體系結構。
發明的背景基於電視的娛樂系統傳統地依賴有線網絡,其中相同的電視節目向每個客戶播放。換言之,同樣的電視頻道及按電影付費的節目同時向連接到該有線網絡的每個客戶播放。
用有線網絡廣播的方法產生兩個缺點。首先,因為所有節目內容在單一時間廣播,觀看者不能控制觀看一節目的時間。其次,所有節目對每個客戶廣播,帶寬限止使得只對電影不可能做到真正的視頻點播(VOD),一般對電視節目帶寬要小得多。
圖1示出對電視節目傳播的現有方法101。電視節目傳播方法101是考慮上述缺點的現有方法。多個電視節目源103(1),103(2),...103(j)存儲並提供電視節目。中央收集器和轉發器105確定何時需要通過網絡交換機經網絡(未示出)將電視節目發送給客戶(也未示出)。
對電視節目的每個請求109(1,2,...j)從中央收集器和轉發器105發送到對應的電視節目源103(1,2,...j)。作為響應,每個對應的電視節目源103(1,2,...j)將請求的電視節目部分作為合成的通訊111(1,2,...j)提供給中央收集器和轉發器105。中央收集器和轉發器105隨後將那些電視節目部分作為轉發通訊113(1,2,...j)轉發到網絡交換機107,並從而通過某個網絡轉發到客戶。
因而每個請求的電視節目部分通過中央收集器和轉發器105路由,後者在通過網絡交換機107發送到客戶之前能成為瓶頸。此外,圖1中示出的電視節目傳播方法101是有些簡化的。雖然不是那樣明確說明,作為合成通訊111(1,2,...j)的請求的電視節目部分實際上通過網絡交換機107從電視節目源103(1,2,...j)提供給中央收集器及轉發器105。
因而,指定給各個客戶的電視節目部分兩次穿過網絡交換機107。電視節目部分第一次作為合成通訊111(1,2,...j)通過交換機107發送到中央收集器和轉發器105,並隨後第二次作為轉發通訊113(1,2,...j)從中央收集器和轉發器105發送。(i)中央收集和匯集和(ii)兩次穿過交換機機提出了附加的限止因素。因此,用電視節目傳播方法101,仍然出現帶寬和瓶頸問題。
發明的內容媒體數據通過多個設備分布,並形成分散化的媒體數據傳播體系結構。多個對應的發送器與媒體數據的多個對應的分布部分關聯。多個調度器與諸客戶關聯,並能調度到那裡的媒體數據的發送。調度器構成發送請求,後者規定特定的媒體數據部分並指定目標客戶。這些發送請求結合每個發送請求的規定的特定媒體數據部分,按照相關的對應分布的部分被發送到多個發送者。那些發送器能夠發送所發送請求的規定的特定媒體數據部分到指定的目標客戶而不必通過調度器路由。在描述的實施中,發送器和調度器出現在多個設備的每個設備中。
這裡描述其他方法,系統,措施,裝置,伺服器,設備,媒體,過程,安排等實施。
附圖簡述在所有附圖中,相同的序號用於引用類似和/或對應的方面,特徵和組件。
圖1示出電視節目傳播的現有方法。
圖2是用於媒體數據傳播結構的示例性環境。
圖3示出示例性媒體數據傳播的體系結構,它包括用於分布式發送媒體數據的設備。
圖4示出用於分布式發送媒體數據的示例設備,數據在設備間分成條(Striped)。
圖5示出分布式媒體數據傳播的示例方法,它包括由多個設備使用的消息。
圖6示出對分布式發送媒體數據的優先級機制的示例方法的第一方面。
圖7示出對分布式發送媒體數據的優先級機制的示例方法的第二方面。
圖8是示出對分布式發送媒體數據的優先級機制的示例方法的流程圖。
圖9示出示例的發送每時隙協商(Send negotiation Per-time slot),它包括用於分布式發送媒體數據的優先級機制。
圖10示出媒體數據的示例性邏輯組織。
圖11示出物理上定位包括散列表的媒體數據的示例方法。
圖12示出對媒體數據的普遍性確定的示例方法。
圖13示出用於定位包括複製的媒體數據的示例散列表。
圖14示出媒體數據的支持信息的示例組織。
圖15示出示例媒體數據特徵,包括朝前看區域,它表明不同的媒體數據處理階段。
圖16是示例順序圖,它包括在調度器和發送器之間的朝前看過程。
詳細描述圖2是用於媒體數據傳播體系結構202的示例環境200。除媒體數據體系結構202以外,環境還包括網絡204和多個客戶機206(1),206(2),...206(m)。客戶機206能接收和處理媒體數據(圖2中未唯一地示出)。客戶機206可任選地能顯示和/或產生要被顯示的媒體數據。這種媒體數據通常包括聲頻和視頻信息,以及可任選地包括控制信息以便於處理和/或顯示它們。雖然在圖2中只明確地畫出3個客戶機206(1,2,m),客戶機206實際上能是數萬臺到數十萬臺(如m能等於10,000到100,000或更多)。
如圖所示,媒體數據傳播體系結構202通過一個或多個連接鏈路208耦合到網絡204。客房機206通過一個或多個網絡鏈路210耦合到網絡204。因而,媒體數據傳播體系結構202通過網絡204耦合到客戶機206並與其通訊。網絡204能支持單播通訊並在下面描述的某些實施例中可任選地支持多播通訊。
在所描述的實施的操作中,特定的客戶機206請求發送給它所希望的媒體數據資產(asset)。媒體數據傳播體系結構202接收該請求並在連接鏈路208,網絡204和網絡鏈路210上使用重複的單播通信,將所請求的媒體數據資產發送給特定客戶機206。媒體數據傳播體系結構202適應於實施到各客戶機206的分布式媒體數據發送,使得減輕通訊話務帶寬和/或在其他情況內含於媒體數據傳播體系結構202的瓶頸。
分布式發送媒體數據的體系結構圖3示出示例的媒體數據傳播體系結構202,它包括用於分布式發送媒體數據的設備302。媒體數據傳播體系結構202包括多個設備302(1),302(2),...302(n)。每個對應的設備302(1,2,...n)包括對應的發送器304(1,2,...n)和對應的調度器306(1,2,...n)。媒體數據傳播體系結構202還包括交換機308和媒體數據(MD)的海量存儲310。
如圖所示,媒體數據傳播體系結構202通過在交換機308的連接鏈路耦合到網絡204。交換機308通過媒體數據傳播體系結構202內部的對應的鏈路314(1,2,...n)耦合到每個對應的設備302(1,2,...n)。交換機308也耦合到媒體數據的海量存儲310。
媒體數據的海量存儲310在如磁碟陣列那樣的某些海量存儲設備中存儲大量媒體數據。磁碟陣列能是如唯一磁碟的冗餘陣列(RAID),光纖通道存儲系統等。僅作為例子,媒體數據的海量存儲310可具有5-6萬億字節(TB)的存儲容量。然而,媒體數據總量的大部分被高速緩存在設備302,所以媒體數據的海量存儲310主要為非預期和/或不常見的媒體數據資產請求提供媒體數據並為重新構築失敗的設備302而被訪問。
在描述的實施例中,媒體數據被高速緩存在設備302(1,2,...n)的隨機存儲器(RAM)(圖3中未具體示出)。僅作為例子,若有500個設備302(如n=500)每臺機器包括4千兆(GB)RAM,則約有2TB的RAM可用於RAM高速緩存媒體數據。每個設備302(1,2,...n)高速緩存由所有設備302高速緩存的總的媒體數據的一部分。
使用散列方法將不同的媒體數據塊分配到不同的設備302。此散列方法和相關的媒體數據組織在下面名為「用於分布式媒體數據的媒體組織」的章節中進一步闡述。此媒體數據組織討論在媒體組織段,媒體數據段,媒體數據資產,媒體數據塊,和媒體數據子塊之間的差別和關係。
每個對應的發送器304與由其對應設備302高速緩存的媒體數據關聯。每個發送器304負責存儲分配到那裡的媒體數據並負責以分布方式向客戶機206發送對應於來自於調度器306中任一調度器306的請求的媒體數據。
每個調度器與多個客戶機206相關。對與特定調度器306關聯的每個給定的客戶機206,該特定調度器306負責滿足給客戶機206的媒體數據傳播請求。為此,特定調度器306需知道影響及時傳播媒體數據到給定客戶機206的能力的網絡204中和沿網絡鏈路210的潛在的阻塞點。因此,當調度器306調度媒體數據從發送器304發送到它相關的客戶機206時,能夠考慮這些阻塞點。與阻塞點相關的的美國專利申請的題為「Media Stream Scheduling for Hiccup-FreeFast-Channel-Charge in the Presense of Network Chokepoints」,發明者是Dustin L.Green,2003年10月10日歸檔,美國專利申請號為No10/683,132。此No10/683,132的美國專利申請與本專利申請有共同的微軟公司的代理人,作為整體加入這裡作為參考。
因為媒體數據在設備302之間分成條,請求的調度器306使媒體數據向多個發送器304發送請求。在調度傳遞與特定發送器304關聯的一部分媒體信息塊時,請求的調度器306使用鏈路314及交換機308發送一發送的請求到該特定的發送器。發送請求指定目標客戶機206並規定/調度希望的媒體數據塊部分(包括子塊,子塊範圍或其各部分)。
然後特定發送器304使用鏈路314和交換機308轉發規定的媒體數據子塊到指定的客戶機206,而不必通過請求調度器306路由媒體數據子塊並不必兩次通過交換機308來發送媒體數據子塊。用於請求和發送媒體數據塊的示例消息組在下面進一步描述,包括在本章節內參考圖5的描述。
如圖所示,在每個設備302處包括發送器304和調度器306。然而,因為發送器304和調度器在邏輯上是分開的,它們在物理上也能是分開的。例如,若干設備302或每個設備302可以只包括一個發送器304或一個調度器306(但不是包括兩者)。然而,描述的實施在每個設備302上包括一個發送器304和一個調度器306,以便相對有效地使用每個設備302的處理、存儲器、和鏈路帶寬的資源。
對於每個對應的發送器302(1,2,...n)和調度器306(1,2,...n)還示出為兩者共享的對應接口(1,2,...n)另選地,每個能具有它自己的接口312和到交換機308的鏈路314。僅作為例子,交換機308可使用帶數百埠的千兆乙太網交換機實現。每個這樣的埠對應一個鏈路314並提供每個方向1Gb/s的雙向通訊帶寬,它被發送器304和調度器306共享,用於兩個協調以及與媒體數據相關的通訊。
另選地,調度器306(以及發送器304)可採用帶分開的交換機(如100兆乙太網交換機)或路由器的分別的內部通訊網絡,它們對在調度器306和發送器304之間發送的協議消息提供分別的通訊信道。在圖4中示出對調度器306和發送器304的示例的分別連結314,它們可對應於分別的接口312和/或對媒體數據傳播體系結構202是內部的分別的通訊網絡。
圖4示出用於分布式發送媒體數據406的示例設備302。媒體數據在設備302之間分成條。設備301(1)包括一個或多個處理器402(1)和至少一個存儲器404(1)。雖然未能唯一示出,存儲器404(1)包括處理器可執行指令,它們由處理器402(1)執行以完成下面進一步描述的功能。存儲器404(1)能作為不同類型,特徵和功能的存儲器的組合實現。然而,存儲器404與媒體數據的海量存儲310比較通常是相對低等待延時的具有相當大數據的吞吐量的存儲器,海量存儲310是具有相對小的吞吐量的相對高等待延時的存儲器。
在描述的實施中,這些處理器可執行指令可包括硬體,固件,軟體和它們的某些組合等。存儲在存儲器404(1)的一部分中具有處理器可執行指令的模塊包括發送器304(1),調度器306(1),和媒體數據(MD)406(1)。媒體數據406(1)包括處理器可執行指令的數據結構類型模塊。在所述的實施中,媒體數據存儲在RAM中。這些模塊的每一個在下面作進一步描述。
發送器304(1)使用鏈路314(1)-MD耦合到交換機308用於媒體數據通訊,而調度器306(1)使用鏈路314(1)-P用於協議通訊。因此,調度器306(1)經鏈路(1)-P發送和接收與協議有關的消息。發送器304(1)經過鏈路314(1)-MD從設備302(1)發送媒體數據406(1)。如由可任選的鏈路314(1)-P*表示的鏈路304(1)-P可作為具有分別的交換機的分別的網絡實現,交換機專用於在發送器304和調度器306之間的協議通訊。若對發送器304(1)不存在其他唯一的鏈路314(1)(如鏈路314(1)-P*),發送器304(1)也能通過鏈路314(1)-MD發送和接收與協議相關的消息。
媒體數據406(1)包括用於媒體數據408X的媒體數據塊和用於媒體數據408Y的媒體數據塊。具體說來,媒體數據406(1)包括媒體數據塊408(X)和媒體數據塊408(Y)。因此發送器304(1)適應於存儲媒體數據塊408(X)和408(Y),並能響應從調度器306收到的請求將它們發送到客戶機206。
設備302(2)包括到那些設備302(1)的模擬組件。這些組件包括一個或多個處理器402(2)和至少一個存儲器404(2),它包括發送器304(2),調度器306(2),和媒體數據406(2)。然而,與作為媒體數據的部分存儲在設備302(1)的那些媒體數據塊[即媒體數據塊408(X)和408(Y)]比較,媒體數據406(2)包括對媒體數據408X和408Y不同的媒體數據塊。
如圖所示,發送器304(2)作為媒體數據406(2)的部分存儲媒體數據塊408(X+1)和媒體數據塊408(Y+1)。沿著媒體數據流408X,媒體數據塊408(X+1)在媒體數據塊408(X)之後。沿著媒體數據流408Y,媒體數據塊408(Y+1)在媒體數據塊408(Y)之後。因此,當媒體數據408X和媒體數據408Y分別穿過設備302(1)和302(2)的存儲器404(1)和404(2)的RAM部分分成條時,媒體數據(不必需是線性的)跨過RAM被分條。在描述的實施中,媒體數據在媒體數據塊粒度上被分成條。下面參考圖5描述媒體數據408X的分布式發送。
圖4的圖示不試圖給出在順序的媒體數據塊和設備302之間任何必要的順序對應關係。換言之,分別存儲媒體數據塊X/Y和X+1/Y+1的設備302(1)和302(2)僅是一例。順序的媒體數據塊不必須順序地分成條,且它們實際上如在題為「用於分布式發送媒體數據的媒體組織」章節中參考圖11所述,不象是順序使用「散列分條」方法。
圖5示出對分布式媒體數據傳播的示例方法500,它包括由多個設備302使用的消息504和506。媒體數據資產408X的分布式發送代表客戶機206執行的。它與調度器306(n)關聯並已請求傳遞媒體數據資產408X。圖例502表明,空心箭頭表示協議消息504,而實心箭頭表示媒體數據消息506。
在描述的實施中,調度器306(n)通過交換機308發送一發送請求協議消息504(1)到發送器304(1)。發送請求協議消息504(1)規定媒體數據塊408(X)並指定所規定的媒體數據塊408(X)將發送到的客戶機(如使用識別的網址)。作為響應,發送器304(1)通過交換機308發送媒體數據消息506(1)到指定的客戶機206,而不必引導它通過發送器304(n)或設備302(n)。媒體數據(內容)消息506(1)包括規定的媒體數據塊408(X)。
類似地,調度器306(n)通過交換機308發送一發送請求協議消息504(2)到發送器304(2)。發送請求協議消息504(2)規定媒體數據塊408(X+1),並指定該規定的媒體數據塊408(X+1)要發送到的客戶機206。作為響應,發送器304(2)通過交換機308發送媒體數據消息506(2)到指定的客戶機206,而不必引導它們通過發送器304(n)或設備302(n)。媒體數據(內容)消息506(2)包括規定的媒體數據塊408(X+1)。
為清楚起見,圖5的消息504和506忽略了某些細節。例如如上所述,消息504和506能實際上可以針對整個媒體數據塊408(X)或408(X+1)的一部分或子塊。此外,每個唯一消息504能請求發送整個媒體數據塊的多個這種部分或子塊。下面特別參考圖10進一步描述媒體數據子塊。
採用分布式媒體傳播方法500改善了潛在的瓶頸問題。不幸的是瓶頸仍能發生,尤其是當前非常流行的媒體數據塊。通過在多個設備302之間以媒體數據塊級分布(如使用散列分條)媒體數據,能採用分布式發送,這伴隨著分別在許多設備302和鏈路之間分配了工作負擔及帶寬限止。不幸的是,此分配能危及很流行的媒體數據塊。
例如,實況媒體數據表現能成為各客戶機206請求的重要部分,各客戶機不僅同時請求同一媒體數據資源,而且還同時請求實際上同一媒體數據塊。因為整個媒體數據塊在具有有限發送帶寬的單臺設備302上,難以同時服務所有關注的客戶機206。因而通常對流行的媒體數據塊,尤其是實況媒體數據表現,在描述的實施中採用多播和/或塊複製。
多播通過使設備302能發送媒體數據塊的每個子塊的一個拷貝(或經縮減的拷貝數)緩解了由於對單個媒體塊的同時請求產生的瓶頸。媒體數據子塊被發送到單個複製點(或與關注的客戶機206的總數相比較低數目的複製點),它從交換機308並在網絡204的多播使能的實現中向下遊流出。
使用多播的意願能事先人工確定,尤其對如已知體育比賽的實況媒體數據表現。媒體數據傳播體系結構202還能夠或另選地能監視媒體數據塊(或整個媒體數據資產)的即時普遍性,且當對單個媒體數據塊的即時普遍性達到預定級(如40%,60%等)時從單播媒體數據發送轉移到多播媒體數據發送。
通常,媒體數據塊複製通過使多個設備302能發送複製的塊而緩解由於對單個媒體數據塊的同時請求引起的瓶頸。對實況媒體數據表現,多個設備302能經過多播獲得複製的塊。具有複製的媒體數據塊的拷貝的多個設備302可以是所有設備302(1,...n)或僅是總設備的子集。下面參考圖11-13進一步描述媒體數據塊的複製。
雖然對非實況媒體數據表現瓶頸通常不是問題,仍然要談及媒體數據傳播體系結構202內在的帶寬限止,以便總體上相對可靠和有效地分布式發送媒體數據表現。例如,每個鏈路314具有最大輸出帶寬,且每個對應的發送器304從不同的調度器306接收多個發送請求協議消息504。因而單個調度器306都不知道給定的發送器304有多少可用帶寬。此每發送器304/每鏈路314的帶寬問題在題為「分布式發送媒體數據的優先級機制」的章節中討論。
分布式發送媒體數據的優先級機制在描述的實施中,優先級機制使得能相對有效和充分地利用來自發送器304的可供使用的媒體數據發送帶寬。
圖6示出對分布式發送媒體數據的優先級機制的示例方法的第一方面600。示出調度器306和發送器304耦合到鏈路314。鏈路314具有有限輸出帶寬602。發送器304接收多個發送請求604(1),604(2),604(3),...604(v)。
每個發送請求604能對應於發送請求協議消息504,它規定媒體數據塊(包括其一部分)並指定該媒體數據塊的至少一部分要發送到的客戶機206。每個發送請求來源於多個調度器306的一個調度器306(圖6中未示出)並從它發送。
在描述的實施中,發送器304包括一發送帶寬606,發送請求排序器608,和閾值優先級確定器610。發送帶寬606是在發送媒體數據到客戶機206時分給發送器306使用的輸出帶寬的數量(如百分比)。通常,發送帶寬606小於輸出帶寬602,以保留某些輸出帶寬602用於協議消息504並加強保障系統來減少數據流失誤的似然率。例如,發送帶寬606可以是輸出帶寬602的95%。
發送請求排序器608適應於以優先級次序排序發送請求604。每個發送請求604關聯唯一的全局優先級。唯一的全局優先級根據各種因素的一個或多個計算。首先,優先級取決於請求的媒體數據子塊是否最後期限(Deadline)數據或早期數據。最後期限數據是在當前時隙期間必須發送的媒體數據,否則看來極有可能發生數據流錯誤。早期數據是在成最後期限時隙之前應發送的數據。最後期限數據比早期數據有更高優先級。
優先級還取決於是否兩個(或更多)設備302存儲所請求的媒體數據子塊。例如,對高度流行的媒體數據塊,媒體數據複製到第二設備302。複製的媒體數據比在單個設備302,或更一般地只與單個發送器304相關聯的媒體數據具有更低的原始優先級。然而,若在兩個可能的設備計及或考慮優先級化時,兩個設備302均不發送複製的媒體數據,挑選一特定的設備302,並告知該特定設備302,只有一個可用的設備。
反映能發送數據的設備302(或發送器304)數的優先級確定過程的部分稱之為「任選計數」。任選計數等於存儲給定媒體數據塊的拷貝的設備302的數目。通常能從相對較少設備(對應於相對較低的任選計數)起動的媒體數據發送比能從相對更多設備(對應於相對較高的任選計數)起動的媒體數據發送具有較高優先級。在下面題為「分布式發送媒體數據的媒體組織」的章節中進一步描述複製和普遍程度。
優先級確定過程還包括考慮,數據請求在不是最後期數據請求時有多早。例如,相對較緊迫的早期數據比相對較晚的早期數據分配更高的優先級。作為解釋,緊迫的早期數據在較晚的早期數據之前被客戶機使用。因此,雖然兩者均在最後期限之後,緊迫的早期數據比較晚的早期數據在時間上更靠近最後期限。下面在題為「分布式發送媒體數據的調度方案」的章節中進一步討論最後期限數據和早期數據。
至少在其他導致持平的情況,優先級還取決於網址和/或其他唯一的ID值。例如,設備302的地址,調度器306的地址,發送器304的地址(如若與設備302和/或調度器306分開),目標客戶機206的地址,這些的某種組合等可以被加入到優先級計算中。例如對帶較低網際網路協議(IP)地址的設備302(或其調度器306)的媒體數據發送比對帶較高IP位址的設備302的媒體數據發送分配更高的優先級。
當計算發送請求604的唯一優先級時也可考慮其他優先級因素。簡言之,優先級因素的示例列表是·最後期限數據對早期數據,最後期限數據具有更高優先級;·較少可用的發送器對較多可用的發送器,較少可用發送器具有更高優先級;·較緊迫早期數據對較晚早期數據(它能建立成連續性),較緊迫早期數據具有較高優先級;·調度器ID(它能從如IP位址加上埠序號或對每個唯一調度器306唯一的某些其他ID形成);·唯一化請求ID(通過調度器306保持所有其自己的請求互相不同來分配,從而因為不同的調度器ID保證與其他調度器的請求的唯一性);和·其它。
在描述的實施中,每個調度器306計算與它發送的每個發送情況請求604有關的唯一優先級,此有關的唯一優先級包括在每個發送請求604中。發送調度器306知道可請求的媒體數據是否是最後期限數據,早期數據,早期數據如何緊迫等。然而,發送器304能另外方式完成優先級計算,尤其在其他情況不具有的任何有關因素被提供給發送器304時。
因而發送請求排序器608使用對應發送請求604的對應相關的唯一優先級來排序相關的發送請求604。發送請求604從最重要到最不重要排序。如這裡使用,最高優先級等價於最重要,較大優先級等價於較重要,較低優先級等價於較不重要。
閾值優先級確定器610配置成根據排序的發送請求604並對應於發送帶寬606確定對發送器304的閾值優先級。具體說來,由發送請求604消費的帶寬首先從更重要的那些發送請求604累計,然後其次從較不重要的那些發送請求604累計,當累計的帶寬達到或超過發送帶寬606時,關於發送請求604的發送請求被截止被檢測到。應在發送帶寬606並因此使發送請求截止的「最後」(即最不重要)發送請求的有關唯一的優先級被確定為閾值優先級。發送請求的截止點和閾值優先級的確定在下面參考圖7描述。
圖7示出分布式發送媒體數據的優先級機制的示例方法的第二方面700。發送帶寬606被畫成一管子,它能充滿到邊緣,但任何溢出的發送請求當前不能發送。由發送請求排列序器608從最重要(底部)到最不重要(頂部)排序之後,示出四個發送請示604(1,2,3,...v)。雖然在優先級排序器706隻明顯畫出4個發送請求604,許多那樣的請求604通常由發送器304在每個時隙內處理。
如圖所示,發送請求604(1)與(唯一的)優先級A相關,而發送請求604(2)與優先級B相關。而發送請求604(3)與優先級C相關,發送請求604(V)與優先級D相關。在此圖示的例中,優先級A比優先級B不重要,優先級B比優先級C不重要,而優先級C比優先級D不重要。因此,發送請求604(V)首先被應用到發送帶寬606。
因此,帶寬累計從發送請求604(V)開始並向上到發送請求604(3)再向上直到發送請求604(2),它不能完全裝入發送帶寬606。在這一點,不能完全裝入發送帶寬606的發送請求604[即在圖中例子的發送請求604(1)和604(2)]被實現優先級機制的這一方面的發送器304捨棄,因為在當前的時隙不能承擔它們的發送請求。
然而,發送請求604(2)另一種方式是能夠由發送器部分地捨棄,使得請求的媒體數據的一部分能在當前的時隙內發送。部分地捨棄一發送請求但承擔其餘部分似乎在大多數情況是局部優化,所以可以增加的信息吞吐量要與處理劃分發送請求增加的複雜性權衡。
應當注意,若每個媒體數據子塊是有相同大小且若發送請求都規定單個數據子塊(對描述的實施不是那樣,且通常不是最大化實際吞吐量的優化實施),則帶寬累計能通過將發送帶寬606除以每個媒體數據子塊的帶寬消費大小來實現,從而產生可以承擔的發送請求604的選定的數。在數值上等於選擇的數的相對較重要的發送請求604被識別為在發送請求截止點702之下。
發送請求截止點702對應於所接收的發送請求604(1,2,3,...4)的最不重要的發送請求604,它能包括在發送媒體數據消息506的當前輪次中而不超過發送帶寬606。任何完全或部分地超過帶寬606的發送請求在發送情況截止702之上,並不能(按操作協議)被承擔(至少完全地)用於在發送媒體數據消息506的當前輪次中發送。
對於所考慮的當前時隙或輪次的閾值優先級704對應於裝入預定的發送帶寬606的最低優先級發送請求604的唯一優先級。在另一實施中,閾值優先級704能對應於未裝入預定的發送帶寬606的最高優先級發送請求604的唯一優先級,只要調度器306知道發送器304在使用哪個方案來通訊發送請求截止點702。而且,若在給定發送器304接收的所有發送請求604不等於或超過給定的發送器的發送帶寬606,則該給定的發送器304可以考慮(且因而廣播)等於最小可能閾值優先級值的閾值優先級704。
在圖示的例子中,閾值優先級704對應於發送請求604(3)的優先級(C)。至少直到閾值優先值704(如初始閾值優先級)被確定的點,此閾值優先級704由發送器304發送到多個調度器306,作為一指示哪個發送請求604不能被承擔/選擇用於由該發送器304在當前時隙內發送;以及哪個可以被承擔/選擇。
調度器306在從給定的發送器304接收最終的閾值優先級之前,不知道哪個發送請求604實際上被承擔/選擇用於由給定的發送器304在當前的時隙內發送。下面參考圖9進一步描述初始,中間,和最終的閾值優先級704。從接收到最終的閾值優先級704,調度器306知道(i)任何至少象最終閾值優先級704一樣重要,且對它已接收到的ACK通知的發送請求已被承擔/選擇,(ii)任何至少象最終閾值優先級704一樣重要,且對它既未接收ACK通知也未接收不發送的通知的發送請求可能已被承擔/選擇或未被承擔/選擇,(iii)任何至少象最終閾值優先級704一樣重要,且對它已收到不發送的通知的發送請求為某種原因未被承擔/選擇,如由於由發送請求604的發送器的遲到接收(即在最終閾值優先級704被確定的截止時刻之後,和在媒體塊的子塊被剛發出之前發送請求604可能被接收),和(iv)任何比最終閾值704不重要的任何發送請求604(如上所述)不被承擔/選擇,不論它是否已接收對該發送請求的ACK通知。
閾值優先級704能作為單播通訊或多播通信由發送器304發送。例如,發送器304能單播閾值優先級704到每個提交發送請求604的調度器306,到它們提交的發送請求604未被承擔的每個調度器306,到它們提交的發送請求604正要被承擔的每個調度器306,到一般的調度器306(如用多個單播通訊來「廣播」)等。另外,發送器304能多播閾值優先級704到一般的調度器306(如用多播通訊的廣播)。下面參考圖8(並進一步參考圖9)描述,調度器306如何能夠利用發送的閾值優先級704的一個實施方法。
圖8是流程圖800,示出用於分布式發送媒體數據的優先級機制的示例方法。流程圖800包括11個框802-822。雖然流程圖800的活動能在另外環境中用各種硬體實施方法完成,特別地使用圖5-7說明該方法的某些方面和例子。例如,(第一設備302的)調度器306能完成框802-810和822的動作,而(第一或第二設備302的)發送器304能完成框812-820的動作。
在框802,發送具有唯一優先級的發送請求。例如,調度器306能發送與一優先級相關的發送請求604(*),該優先級不同於每個其他的發送請求604(至少在當前的時隙中)。
在框812,接收具有唯一優先級的發送請求。例如,發送器304能從調度器306接收發送請求604(*)。在框802,該發送請求的接收的ACK被發送到該調度器。例如,可選地根據發送請求604(*)的唯一優先級和發送器304當前閾值優先級704,發送器304能發送確認接收到發送請求604(*)ACK到調度器306。接收在框804,從發送器接收發送請求的接收的ACK。例如,調度器306可以接收ACK,確認接收來自發送器304的發送請求604(*)的接收。接收對發送請求604(*)的ACK也可以是如下描述的框808的發送選擇確定中的一個因素。
發送器304也能從調度器306和其他調度器接收多個其他發送請求604(1,2,3,...V)。在框814,按照有關的唯一的優先級排序多個發送請求。例如,發送器304的發送請求排序器608能將多個發送請求604(1,2,3,...V),包括發送請求604(*)排序到優先級排序706中。
在框816,根據排序的發送請求並響應於發送帶寬確定閾值優先級。例如,閾值優先級確定器610能根據在優先級排序706中的排序的發送請求604(1,2,3,...V)並響應於發送帶寬606確定閾值優先級704。例如,若發送請求604與來自那些落到由發送帶寬606設置或建立的發送請求截止點702之下(或更一般落在其中)的發送請求604的最低的優先級相關,則該發送請求604的優先級,如發送請求604(3)的優先級C,能被確定為閾值優先級704。
在框818,廣播該確定的閾值優先級。例如,發送器304能多播閾值優先級704到諸調度器306。該確定的和廣播的閾值優先級被多個調度器接收。例如,調度器306能接收閾值優先級704。應該注意,如由箭頭824指出並在下面參考圖9描述,發送器304根據新到達的發送請求604繼續進行閾值優先級分析。
在框806,發送請求的唯一優先級與閾值優先級比較。例如,與發送請求604(*)相關的優先級能與閾值優先級704比較。在框808,根據此比較,確定發送請求是否已被選擇來發送(即將被承擔)[例如假設對該發送請求已接收了ACK通知(如在框804),且所接收的閾值優先級是該時隙的最終閾值優先級]。例如,若與發送請求604(*)相關的優先級大於閾值優先級704,調度器306可確定,發送請求604(*)已被選擇用於發送。
在描述的實施中,當發送器304閾值優先級704不能排除發送發送請求604的媒體數據時,ACK通知從發送器304發送到調度器(如在框820中)。若當前的閾值優先級704已確實排除了媒體數據的發送,則不發送ACK,因為由於請求的媒體數據無論如何不被發送,廣播閾值優先級704將通知調度器306,其發送請求604是否被發送器304接收已無關緊要。
雖然是可能的,對發送請求完全取消ACK通知(如框820和804所示)在大多數可靠的消息傳遞不能保證的情況(如沒有內置的實質性的可靠性的網絡中)可能是下策。更具體說,當包丟失率是大時(如高於約一半百分比),那樣的消除是下策,因為請求者無法通知哪個請求應被重新發送。
因此更一般地,若下面確認條件滿足,調度器306能確定,發送請求604(*)已被選擇用於發送如果(i)與發送請求604(*)相關的優先級大於或等於閾值優先級704,(ii)對發送請求604(*)ACK已從發送器304到達,和(iii)閾值優先級704被標記為最終的。若與發送請求604(*)相關的優先級低於閾值優先級704,調度器306可判定,發送請求604(*)未被選擇來發送。
此外,在下面情況調度器306能判斷,尚沒有可能確定,發送請求是否未被選擇來發送;(i)與發送器604(*)相關的優先級大於或等於閾值優先級704,(ii)對發送請求604(*)未從發送器304接收到ACK通知,(iii)對發送請求604(*)未接收到不發送通知,和(iv)閾值優先級704被標記為最終的。在這種情況下,對大多數關注的情況是少見的,調度器306可認為發送請求已被或未被選擇用於發送,哪一個更合適取決於給定的若作出不正確的假定招致的代價。而且在某些實施中,即使在最終閾值優先級704被收到之後,調度器306可繼續重發發送請求604(*),這簡單地為了確定發送請求604(*)是否被選擇來發送;然而,當不正確的假定的代價與在一個時刻保持對多於一個時隙保持跟蹤所必須的存儲器與處理需求相比是合算時,這基本上是有益的。
因此簡言之,若所有上述確認條件(i)-(iii)未滿足,調度器306延時確定,發送請求604(*)是否已被選擇來發送。在能確定發送請求604(*)是否已被選擇來發送之前發生超時的罕見事件中,調度器306可能不正確地(i)認為發送請求604(*)未被選擇,在那種情況調度器306將隨後再次請求(其可能的結果是被發送兩次),或(ii)認為該發送請求604(*)被選擇,在那種情況下,客戶機能發送重試請求,以填入任何丟失的媒體數據。
繼續流程圖800,若判定該發送請求已被選擇來發送(框808中的「Yes」),則在框822等待來自目標客戶機的確認(ACK)或監視目標客戶機的通訊是否有可能出現的NACK。例如,調度器306能等待來自客戶機206的接收確認消息,該客戶機206是在發送請求604(*)中規定的媒體數據的指定目標。媒體數據由發送器304發送到客戶機206。另選地,當調度器306未收到所期待的信息時,它能監視來自客戶機206的通訊是否有客戶機206發出的潛在NACK,客戶機206是在發送請求604(*)中規定的媒體數據的指定目標,媒體數據由發送器304發送到客戶機206。
如由虛線框822中兩種任選項指出,某些傳遞協議不需要來自客戶機的ACK,它們能取代地依靠NACK消息來填入間隙。在那樣情況,在注意到發送請求604(*)已被選擇來發送,且除非客戶機特地請求某些或所有引用的媒體數據,所引用的媒體數據不需要再次發送的情況,在框808的「Yes」分支轉移後調度器306不採取專門的肯定的動作。因此,用基於NACK協議,一旦發送請求604被選擇來發送,調度器306從事相對被動的對NACK通知的監視。
另一方面若(在框808)判定「No」,發送請求未被選擇來發送,則在框810校驗,是否其他發送器具有小於該發送請求的唯一優先級和/或小於對該發送請求的最高可指定的唯一優先級。例如,調度器306可校驗也存儲該規定的媒體數據的另外的發送器304』,判斷是否發送器304』的閾值優先級704』低於已於發送請求604(*)相關的優先級和/或低於能對發送請求604(*)指定的最高優先級。若存在另選的發送器304,從調度器306發送帶有同樣發送優先級或更高的的發送優先級(如若合理地可調整且必須找到可用的發送器)的另外發送請求604(*)』(即流程圖800的方法能在框802繼續,若發送優先級不增加,帶有新的發送請求和新的目標發送器會繼續,若發送優先級增加,相同的或新的目標發送器會繼續)。
合理地調節發送請求604的發送優先級的一種方法是向下調度任選計數(即當前高速緩存所希望的媒體數據的設備302的數目)到低於初始的或以前使用的值。換言之,為了增加發送優先級,能潛在地發送引用的媒體數據塊的發送器數目可以「實際地」減少。這是允許的,因為否則會引起一種情況,若該發送請求具有足夠高的優先級,有兩個或更多發送器能發送一塊的數據,但若任選計數設置成理論上能夠發送媒體數據塊的媒體數據的發送器的實際數目,它們中沒有能夠接收發送請求。
在參考框810的另選的描述的實施中,唯一優先級能在框808之後框810之前調節(如通過降低任選記數)。若可能是發送請求的增加的唯一優先級導致具有較低閾值優先級的可能的發送器,則新的發送請求能發送到此另外的可能發送器(如通過重複框802的動作)。
簡言之,如下提到並在下面題為「分布式發送媒體數的媒體組織」章節中作進一步闡述那樣,一個或多個其他發送器304能存儲媒體數據的複製拷貝。具有那樣複製拷貝的每個發送器304的閾值優先級704能與合理地與發送請求604(*)關聯的當前優先級和/或最高優先級比較(如通過臨時使用降低的任選計數,如任選計數1)。若發現更低的閾值優先級704』,則第二發送請求604(*)能發送到具有設置成足夠低值的任選計數的發送器304』,使得該發送請求604(*)具有比閾值優先級704』更高或更重要的相關優先級。在下面參考圖9描述的發送協商能一直進行到多個發送器304的發送帶寬606被充滿和/或進行到可用於協商當前時隙的時間期滿的時間。
圖9示出每時隙的示例發送協商900,它涉及分布式發送媒體數據的優先級機制。對每個發送時隙,執行一協商,試圖填滿在每個設備302處每個發送器304的發送帶寬606,而不會單獨用最後期限數據發送請求過度填入可用的帶寬。該體系結構力圖通過若干方案利用每個發送帶寬606的主要百分比(即使不是全部的話)。
例如,這些帶寬利用方案包括媒體數據複製,它增加了以某些或所有媒體數據塊的可用發送器304的潛在數目。(媒體數據複製也增加了能受到服務的客戶機的總數)。另外方案關係到在媒體數據的發送最後期限之前較早地發送數據。使得在當前時隙發送必須(若數據流故障要被避免)在或用未來最後期限時隙發送給客戶機206的媒體數據子塊。
又另一個帶寬利用方案當總計跨多個發送器304的各個最後期限發送帶寬606時,需要調度器306在總體考慮時防止分配比總的可用發送帶寬容量的某個百分比(如85%)更多的帶寬。每個調度器306用影響在未來時隙中最後期限發送分配的「僅是最後期限的阻塞點-deadline-only chokepoint」,但不考慮何時分配在當前時隙內的較早的發送。雖然這不保證每個或甚至任何唯一的發送器304將被請求發送不大於其唯一發送帶寬606的85%,(只計算不能從任何其他設備302發送的最後期限發送),這確實大大降低了任何發送器304被請求發送超過其發送帶寬606的100%的概率(只計算不能從任何其他設備302發送的最後期限發送)。
因為常常請求發送器304通過發送早期數據利用其發送帶寬606的餘下部分,從而計算發送器304的最後期限和非最後期限發送的總的發送常常基本上填滿發送器304的發送帶寬,顯然,防止多個發送器304的發送帶寬606的累計最後期限數據利用超過例如85%不排除對早期數據使用餘下的15%,下面在題為「分布式發送媒體數據的調度方案」章節中進一步描述示例調度方案及流水線管理方法。
如圖所示,發送協商900佔據至少部分時隙。在發送協商900上部的活動由發送器304實行。在發送協商900下部的活動由調度器306實行。
調度器306最初基於最後期限,網絡阻塞點等確定它們希望將什麼媒體數據發送到哪個客戶機206。根據這些確定,調度器306構成了發送請求604(在圖9不分別示出)。這裡根據默認值而不是閾值優先級信息的發送請求604作為初始發送請求902從調度器306被發送。應該注意,在每個時隙開始處所有發送器304的閾值優先級704可以被認為是由給定的系統設計所設置的最小閾值優先級。期待的各唯一發送器304接收原始的發送請求902。
如上參考圖6-8所述,對應的發送器304確定響應於初始發送請求902的對應閾值優先級704。這些確定的對應閾值優先級704作為初始閾值優先級904從對應的發送器304被發送。調度器306接收初始的閾值優先級904。
響應於該接收的初始閾值優先級904,調度器306能估計任選項906。換言之,通過對當前時隙發送器304的初始閾值優先級904的知識,使調度器306能估計哪些方便發送帶寬606的利用和/或到有關客戶機206的媒體數據傳播的任選項。例如,若對來自被拒絕的發送請求604的規定的媒體數據的複製媒體數據出現在不同設備302的不同發送器304上,可以形成對該不同的發送器304的新的發送請求604。若被拒絕的發送請求604的發送優先級已經或能調節到(如通過降低任選計數來產生一優先級)高於該不同發送器304的閾值優先級704,形成新發送新求是合適的。另外,帶著即使在直到較晚時間以前目標客戶機206不要求的較晚的最後期限的媒體數據可以在另外發送請求中規定,這取決於與那個較晚的早期數據相關聯的其他發送器304的閾值優先級。
這些新的發送請求604作為後續的發送請求908從調度器306發送。期待的唯一發送器304接收後續的發送請求908。在添加可能落入對應的發送請求截止點702的這些後續的發送請求之後,對應的發送器304確定新的對應閾值優先級704。這些新的確定的對應閾值優先級704作為中間(非最終的)閾值優先級910從對應的發送器304被發送。調度器306接收中間的閾值優先級910。以這樣的描述實施的方式,在發送協商900期間,對發送器304的閾值優先級704在每個時隙內增加了而不會減少。這就方便了快速的穩定性並從而完成發送協商900。
如由橢圓912所示,發送協商900能繼續進行附加的後續發送請求908與對應的中間*閾值優先級910的交換,直到一個中間*閾值優先級被標記為最終的。換言之,當協商時間接近終點,發送器304將它們的閾值優先級標記為最終閾值優先級914並將它們發送到調度器306。在接收最終閾值優先級914之後,調度器306中止重新估計發送任選項,中止形成新的發送請求,並中止發送那樣的新發送請求。然而在下一個相繼時隙內調度器306確實形成和發送新的初始發送請求902。應該注意當所有調度器306已確定,對當前時隙沒有考慮中的媒體數據具有比任何可用的發送器的當前(不必需是最終的)的閾值優先級704的唯一調度器的範圍更大的最大可分配的優先級時,發送協商900也終止(若不是正式停止也是事實上停止)。
雖然示出3個後續的發送請求908發送和3個中間閾值優先級910發送,另外也能發生0個,1個,2個或大於3個。若發生0個,則初始閾值優先級904也是最終閾值優先級914。應該理解,在每個時隙內部不需要正式的循環。每個時隙的發送協商900是一有機過程,其中發送器304和調度器306通訊它們的新發送請求604和當前的閾值優先級704,直到時間結束並且當前的閾值優先級704被標記為最終的。因此,在不同調度器306和發送器304之中或之間的消息交換可以是非同步的並可以被覆蓋的。
在更具體的描述的實施中,向後和向前的消息交換協商可發生數次而不僅一次或二次。如果發送請求604第一次被接收且若閾值優先級704因而受影響,發送器304確認(ACK)發送請求604,它大於它們當前的閾值優先級704,同時可能更新它們新的當前閾值優先級704。若發送請求604以前尚未導致接收到ACK,調度器306重新發送發送請求604,它仍具有比該發送器的當前閾值優先級704的調度器的範圍更大的唯一優先級。當帶有比發送器的最終閾值優先級914更高的唯一優先級的發送請求604(如後續的發送請求908)在發送了它的最終閾值優先級914之後到達發送器304,則可發送NON-SENT(不發送)消息,但這是可任選的。若來自發送器304的「最終」閾值優先級尚未被收到,調度器306在最終閾值優先級914發送之後可以發送NON-FINAL消息到發送器304,但這也是可任選的。作為有關的任選項,若發送器304接收一NON-FINAL消息,它們能重發它們的最終閾值優先級914。
如上所述,發送協商900最終結束,所以經調度和接收的媒體數據塊部分916能從發送器304發送到客戶機206。例如,發送協商900可以在預定時間周期(如時隙的一部分)經過後結束,參考當前時隙在時間周期終止時通過的任何消息被忽略,可以準備對緊接相繼時隙的初始發送請求902並隨後發送。另選地可實行另外的終止約定。
分布式發送媒體數據的媒體組織圖10示出媒體數據的示例邏輯組織1000。媒體數據(MD)段1002被分成一個或多個媒體數據資產(asset)1004。作為面向內容的例子,媒體數據段1002可對應新聞頻道的一天,在任何給定24小時周期或任何其他長度周期(如16小時)中對主要網絡的全國性廣播節目,按次付費電影等。例如,每個媒體數據資產1004能是媒體數據段1002的某個分割的部分(如子區),或整個媒體數據段1002。可能的媒體數據資產1004的面向內容的例子包括所有新聞頻道的30分鐘部分,來自網絡電視的一小時長的戲劇等。
然而根據媒體數據的內容媒體數據資產1004在概念上是靈活的。例如媒體數據資產1004能是媒體數據的相當短的片段,如電影短片,唯一的新聞故事等。另一方面,媒體數據資產1004能是媒體數據的相當長的片段,如整個全長的電影。整個全長電影的媒體數據資產1004也能對應於整個媒體數據段1002。
從技術角度看,媒體數據段1002能是來自編碼器的媒體數據的連續時間流,它能被連續地解碼。若編碼器停止編碼,很大地更改其編碼參數,或改變到另外編碼器,就開始了不同的媒體數據段1002。通常保持每個希望的媒體數據段1002的整體性。然而,它們能劃分成能夠具體並唯一引用的子區域,如媒體數據資產1004,所以普遍性至少能被關注到每個媒體數據資產1004的級。也能在更精細的細節級上跟蹤普遍性,如在每塊,在每半小時,每子塊,每字節,或每個其它細節級的基礎上.不管實際被跟蹤的普遍性的細節的級,能容易地導出具體塊的估計的普遍性。在下面特別參考圖12和13進一步描述普遍性。
每個媒體數據段1002被細分成一個或多個媒體數據塊...1006(W-1),1006(W),1006(W+1),...。雖然大多數媒體數據段1002看來包含許多媒體數據塊1006,給定的媒體數據段1002能包含少到3個,2個或甚至單個媒體數據塊1006。在描述的實施中,媒體數據塊1006是分布到各設備302中的媒體數據粒度級。例如,在圖4和5中分布式媒體數據塊1006的出現由媒體數據塊408(X),408(X+1),408(Y)和408(Y+1)表示。媒體數據塊1006幾乎是1兆字節(NB)大小,但另選其它大小也能實現。在同一段中對視頻數據的媒體數據塊大小能不同於對聲頻數據的媒體數據塊大小。在單個數據流中,媒體數據塊大小也能變化,但這是少見的。
如媒體數據塊1006(W)的每個媒體數據塊被進一步劃分成媒體數據子塊1008(1),1008(2),1008(3),...1008(S)。在描述的實施中,媒體數據子塊1008是媒體數據粒度級,它被規定用於在給定時隙內發送到客戶機206。因此,媒體數據子塊1008是被規定來在每個發送請求中發送的媒體數據單位(例如是用於發送的媒體數據粒度的級別)。然而單個發送請求504/604能請求發送多個媒體數據子塊1008,而不是只請求發送單個媒體數據子塊1008。換言之,雖然每個媒體數據子塊1008可以是分組大小,單個發送請求604能導致發送多個那樣的媒體數據子塊1008(和它們的分組)到客戶機206。
圖11示出物理地定位包括散列表1114的媒體數據的示例方法1100。媒體數據段1002的媒體數據塊1006(w)被示出位於設備302上,在本例中是設備302(2)。物理上定位媒數據可以指的是定位媒體數據(例如媒體數據塊1006)(i)是為了在設備302位置上放置媒體數據或(ii)是為了請求具有媒體數據位置的設備302發送媒體數據到客戶機206。
在描述的實施中,每個媒體數據段1002和唯一的媒體數據塊1006包括或對應一個識別號。如圖所示,媒體數據段1002包括媒體數據段號1102,而媒體數據塊1006(W)包括媒體數據塊號1104。在系統中每個媒體數據塊1002能以順序方式或通過使用全局唯一的ID,或以某些其他方式只要它們是唯一的來分配唯一的媒體數據段號1102。在給定的媒體數據段1002中,每個媒體數據塊1006被順序地分配唯一的媒體數據塊號1104。順序分配的媒體數據塊號1104也能用於視頻處理排序。
媒體數據段號1102和媒體數據塊號1104組合起來(如加上,級聯等)以導出媒體數據識別(ID)值1106。媒體數據識別值1106被應用於散列函數1108以產生媒體數據散列值1110。在描述的實施中,散列函數1108採用來自媒體數據段號1102和媒體數據塊號1104的帶32比特值的線性反饋移住寄存器(LFSR)。然而,作為替代可採用另外的散列函數1108,包括非LFSR函數和/或使用不同比特長度的值的函數。
媒體數據散列值1110在映射操作1112處被映射到散列表1114。散列表1114包括多個區段,1116(1),1116(2),1116(3)...1116(b)。具體說來,媒體數據散列值1110被映射1112到散列表1114的區段1116上。在描述的實施例中,映射1112包括當媒體數據散列值1110除以散列表1114的大小「b」時,取餘數。如圖所示,媒體數據散列值1110被映射1112到散列表1114的區段1116(2)上。
散列表1114的每個區段1116具有與至少一個設備302的關聯。在下面參考圖13作進一步描述的實施中,每個區段1116具有與2個設備302的關聯。例如,第一設備302能具有與給定區段1116的主要作用,而第二設備302具有與給定區段1116的次要作用。與區段1116的作用和關聯可以另選地關於發送器304而不是實際設備302而被定義;在區段1116和發送器304之間具有關聯1118的例子在下面參考圖13描述。
如圖所示,區段1116(2)與設備302(2)關聯1118。因此,設備302(2)具有與區段1116(2)的主要和次要作用。因而媒體數據塊1006(W)可定位在設備302(2),並存儲在RAM條的實施中的RAM中。
在描述的實施中,區段1116的數目「b」大於設備302的號「n」。例如,若n=500,則b可等於131,071。結果,如由從散列表1114延伸到關聯1118的第二箭頭所示,每個設備302與多個區段1116相關聯。將多個區段1116與每個設備302關聯方便了從設備302的故障的恢復,因為故障設備302的媒體數據存儲和發送的責任能很快地分散到與每個設備302相關聯的許多區段1116一樣多的設備302中。然而,散列表1114的區段1116的數「b」是足夠小,使得每個設備302能承擔存儲散列表1114的一個拷貝,用於快速引用。
每個與給定區段116關聯(1118)的設各302負責讓最終映射(1112)(在散列1108之後)到給定區段1116的媒體數據存入RAM。若請求的媒體數據塊1006不在RAM中,則相關聯的設備302從(圖3的)媒體數據的海量存儲310檢索它。無論如何,關聯的設備302具有主要責任作用,將映射(1112)到給定區段1116的媒體數據塊1006發送到客戶機206。然而,對高度普遍的媒體數據,另一個設備302具有次要責任作用,來發送映射(1112)到給定區段1116的媒體數據。下面參考圖13進一步描述主要及次要作用,並參考圖12描述確定媒體數據的確定方法。
圖12示出對媒體數據的普遍性確定的示例方法1200。媒體數據普遍性的給定百分比不必需等於媒體數據存儲器大小或媒體數據資產部分的同樣的百分比。示例的普遍性確定1200確定數量達普遍性Z%的媒體數據塊。普遍性確定能另外地按每個資產,將每個道(如在特定語言中的聲道對在另一種語言中的聲道),按每個子塊按,每個字節或任何細節/存儲器大小的其他等級完成,其方法是將在那個細節等級的所有媒體數據的普遍性大概作為相等。
媒體數據塊1006在普遍性排序1202中是從最普遍到最不普遍排序。如圖所示,媒體數據塊1006的排序是從媒體數據塊1006(1)到媒體數據塊1006(2)到媒體數據塊1006(3),到媒體數據塊1006(V)。應該注意,普遍性排序1202不必需包括小於Z%普遍性級(1206)媒體數據1006。應該注意,若普遍確定1200按段,按資產,按道實行,或按比媒體數據塊任何更大的細節級別來實行,媒體數據塊1006不需要唯一考慮。
每個對應的媒體數據塊1006(1,2,3...V)已被相應數目的客戶1024(1,2,3,…V)所請求,媒體數據塊1006的普遍性排序1202考慮請求的客戶1204(1,2,3...V)的數目來實行。換言之,請求客戶1204(1)的數目大於請求客戶1204(2)的數目,後者又大於請求客戶1204(3)的數目,如此等等。
如圖所示,請求客戶機1204(1),1204(2)和1204(3)的數目總計為當前向其傳播媒體數據的客戶機1208的總數的Z%。因此,媒體數據塊1006(1),1006(2),和1006(3)包括在系統中普遍性1206的Z%。如下參考圖13所述,普遍性1206的Z%被複製。
在描述的實施中,被複製的普遍性1206的Z%對應於15%。應該理解,15%的請求可以是對5%的媒體數據,在此情況複製5%的媒體數據以便複製15%的普遍性。能按媒體數據塊1006完成普遍性跟蹤,但為了普遍性及複製的目的,可另選地跟蹤其他媒體數據粒度。不論在哪個粒度跟蹤普遍性,普遍性能在按字節的普遍性上作比較。
為清楚起見,圖12示出的普遍性確定1200隱去了更複雜的細節。在描述的實施中,普遍性按等長度塊(因此按字節)確定,以便至少改善(若不是優化)RAM的使用。在此描述的實施中,按請求的普遍性是基於按媒體數據資產1004被跟蹤。
然而,普遍性排序1202也是對應於按字節基礎上創建的。例如,客戶機1204的數目(它在媒體數據資產1004級被跟蹤並代表有效觀看該媒體數據資產的客戶機的數目,或那樣數目在近期內的平均),除以在對應的媒體數據資產1004中媒體數據塊1006的總數,且其結果再除之每個媒體數據塊1006的字節長度。使用得到的每字節的普遍性值,在普遍性確定1200中創建媒體數據塊1006的普遍性排序1202。
為提供說明的例子,較短的媒體數據資產1004具有比較長媒體數據資產1004更高的每字節普遍性,後者具有當前客戶請求者的相等的數目。若(i)較短的媒體數據資產1004具有2個媒體數據塊1006且較長的媒體數據資產1004具有10個同樣大小的媒體數據塊1006,和(ii)每個媒體數據資產1004具有100個當前請求的客戶機206,則在任何給定瞬間對較短的媒體數據資產1004存在更多對每個媒體數據塊1006(每字節)的當前請求客戶機206。在此情況使得較短的媒體數據資產1004和媒體數據塊1006具有更高的普遍性,導致RAM-高速緩存的媒體數據的更有效的使用。提供等價的每字節的普遍性排序結果的另選方法是跟蹤在自從普遍性度量的最新更新以來的會話期間由客戶請求的媒體數據資產的字節總數。此媒體數據資產的請求的字節的總數除以該媒體數據資產的字節總長度,然後周期地或在會話結束之後將此商作為因子加入普遍性度量中。
使用每字節的普遍性值,媒體數據能在對應於當前的普遍性的媒體數據級1006上處理。下面參考圖13描述包括複製和高速緩存數據的溢出清除的媒體數據處理。
雖然上述實施依賴於按媒體數據資產1004粒度上的普遍性跟蹤,普遍性可以另選地在另外的媒體數據粒度的級上跟蹤。例如,媒體數據普遍可在媒體數據塊1006粒度級上跟蹤(在此情況用於普遍性排序1202的目的,普遍性百分比隱含地按每個媒體數據塊1006的)。此外,媒體數據普遍性能在按媒體數據塊組的粒度級上跟蹤,其中該組是預定數目的媒體數據塊1006,如10個媒體數據塊1006。
圖13示出用於定位包括複製的媒體數據的媒體數據的示例散列表1114。替代與單個發送器304關聯的每個區段1116,每個區段1116關聯(1118)主要發送器304(P),次要發送器304(S)和可任選的第三發送器和更多的發送器。通常,每個區段1116被劃分成主要發送器作用1304和次要發送器作用1302。
具有主要發送器作用1304的主要發送器304(P)負責映射到給定區段1116的媒體數據塊1006的100%。具有次要發送器作用1302的次要發送器304(S)負責映射到給定區段1116的普遍的媒體數據塊1006的頂部Z%。因而,任何給定區段1116的普遍性的Z%具有次要發送器作用1302的發送器304被複製。如上所述,複製媒體數據的普遍性的Z%然等於必須複製Z%小的媒體數據。
特別參考區段1116(1),主要發送器304(P)被關聯成具有主要發送器作用1304,而次級發送器304(S)與區段1116被關聯成具有次級發送器作用1302。因此,(如通過散列)映射到區段1116(1)的媒體數據塊1006能從主要發送器304(P)發送。映射到區段1116(1)並作為在區段1116(1)中當前的普遍性的頂部Z%的部分那些媒體數據塊1006在次要發送器304(S)複製,並從那裡被發送。
因而,次要發送器304(S)能用於發送作為當前普遍性的頂部Z%的部分的給定區段1116的媒體數據塊1006。這對那些後續發送請求908(圖9)特別有用,那個請求在調度器306根據從主要發送器304(P)接收的初始閾值優先級904,知道原始的發送請求902未被主要發送器304(P)承擔時被發送。
雖然圖13未示出,對映射到區段1116的媒體數據可以有由散列表1114確定的另外的發送器作用(例如第三個,第四個等)。而且,每個附加的發送器作用可以任選地用於不同的普遍性百分比。例如第三發送器作用能複製普遍性的頂部10%。在那樣的例子中,三個發送器負責普遍性的頂部10%,二個發送器負責普遍性的頂部15%,一個發送器負責普遍性的所部100%的媒體數據,調度器306因而有3個發送器304任選項,倘若發送器請求是對普遍性的頂部10%的媒體數據。另選地可使用其他發送器304數目和普遍性複製百分比。
主要發送器304(P)負責映射到給定區段1116的媒體數據塊的100%。然而,對應主要發送器304(P)的對應設備302可能不具有足夠的RAM來恆定地存儲給定區段1116的所有媒體數據塊1006。因而,當從調度器306請求時,主要發送器304(P)將請求的媒體數據塊1006從媒體數據的海量存儲310加載到主要發送器304(P)的對應設備302。由於訪問媒體數據的海量存儲310引起的延時通過使用朝前看(look-ahead)方案得以改善。在下面題為「分布式發送媒體數據的調度方案」的章節中進一步描述朝前看方案以及有關的媒體數據鎖定。
在描述的實施中,當由發送器304加載「新」媒體數據塊1006時,「老」媒體數據塊1006被刪除以便在發送器304的設備302的存儲器404中提供空間。根據媒體數據的普遍性作出擬刪除的老的媒體數據塊1006的選擇。例如,在給定的區段1116中選擇最不普遍的媒體數據塊1006來刪除和替代。然而,若最不普遍的媒體數據塊1006由於朝前看過程被鎖定,考慮下一最不普遍的媒體數據塊來替代地刪除,如此等等。
圖14示出媒體數據支持信息的示例組織1400。媒體數據支持信息包括支持聲頻/視頻媒體數據信息的呈現的信息。組織1400包括媒體數據流調度1402和媒體數據流索引1406。每個媒體數據流調度1402與特定的媒體數據段1002關聯,且每個對應的媒體數據流索引1406(若也存在)同樣與特定的媒體數據段1002關聯。
在描述的實施中,每個媒體數據流調度1402包括由調度器306用來建立流調度的信息,它滿足對被指定的相關聯的目標客戶機206的責任。調度器306使用媒體數據流調度1402來確保,媒體數據408/1004/1006/1008及時到達以便處理和顯示而沒有流的故障。每個媒體數據流索引1406指出對相關聯的媒體數據段1002的隨機訪問的多個點,例如,媒體數據流索引1406能包括對某些類型編碼媒體數據(如MPEG-編碼媒體數據)的I幀的位置。
如圖所示,媒體數據流調度1402包括多個調度單元1404,包括調度單元1404(q-1),1404(q)...1404(q+1)。媒體數據流索引1406包括多個索引單元1408,包括索引單元1408(r-1),1408(r)...1408(r+1)。調度單元1404和索引單元1408的數目不必需對應於在相關媒體數據段1002中的媒體數據塊1006的數目。因此,單個調度單元1404能對多個媒體數據塊1006提供支持信息,雖然媒體數據流調度1402看來比媒體數據流索引1406更大,它們的相對大小不必需如圖14中指出那樣。
每個媒體數據流調度1402能整體存儲在每個設備302處以備調度器306就地訪問。對3小時媒體數據段1002,其相關聯的媒體數據流調度1402約為200KB,對於帶有每個調度單元1404為約1-8KB的相對小的媒體數據系統,這是可管理的。然而,為了改善在描述實施中的規模可縮放性,每個媒體數據調度1402的調度單元1404分布在多個設備302中。當調度器306希望訪問特定調度單元1404時,使用散列表1114對它定位。
因此,調度單元1404使用同一散列函數1108和散列表1114分布到各設備302,就好象用於分布媒體數據塊1006那樣。因而,每個媒體數據流調度1402和其單一的調度單元1404具有用於確定對散列函數1108應用的識別值的數。這些數可以獨立於有關的媒體數據1002和媒體數據塊1006,它們由調節單元1404支持,或它們是有關的。
例如對特定媒體數據流調度1402的序號能等同或類似於相關聯的特定媒體數據段1002的媒體數據段序號,調度單元1404的編號延續媒體數據塊1006的編號,另選地,媒體數據段1002能具有做成模形(overarching)的識別序號,每個媒體數據資產1004,媒體數據流調度1402和媒體數據流索引1406(若包括)具有基於拱形識別號的子流識別符。也可實現其他排序關係。
更具體說,媒體數據流索引1406是一文件,它列出在相關媒體數據段1002的搜索點(隨機搜索點),並給出對該搜索點到相關媒體數據段1002的偏移量。媒體數據流索引1406的條目按媒體的時間排序。媒體數據流調度1402是媒體數據流索引1406的更詳細的形式。媒體數據流調度1402包括確定用於在相關聯的媒體資料庫1002中搜索的同步點的信息,但對於搜索它們通常比媒體數據流索引1406更麻煩,因為它們還包括非隨機訪問的位置。
媒體數據流調度1402處理相關媒體數據段1002的幀或大量(視頻或聲頻)幀。它還包括每個幀的解碼時間標籤(DTS)和每個幀按字節或分組的大小。它按解碼時間標籤(DTS)排序,可能包括逆向DTS。
媒體數據流調度1402的突出特性能使由調度器306執行的調度算法從相關聯的媒體數據段1002的聲頻/視頻信息中分離出來。應該理解,媒體數據流調度1402和/或媒體數據流索引1406是組織媒體數據信息的示例方法,那些媒體數據信息支持聲頻/視頻數據信息的表示並能改為利用另選的組織實施方法。
分布式發送媒體數據的調度方案圖15示出示例媒體數據特徵1500,包括朝前看區域1502,它表明不同的媒體數據處理階段。一個媒體數據資產1004包括多個媒體數據塊1006(1),1006(2),...1006(7)1006(8)...。每個媒體數據塊1006與發送器304關聯,並通過散列分條的媒體數據分布方法(如上面特別參考圖11-13描述的方法),存儲在設備302上。
雖然媒體數據特徵1500被圖示為在媒體數據CR1006(1)處開始,這可推廣到在任何給定的媒體數據塊1006處開始。媒體數據資產1004被分成當前塊1506,另選地發送請求區域1504,和朝前看區域1502。
當前塊1506對應於媒體數據塊1006(1)。媒體數據塊1006(1)的展開的視圖包括多個媒體數據子塊1008(1),1008(2),1008(3),...1008(5)。作為當前塊1506,媒體數據塊1006(1)是正要由遠程客戶機206(圖15中未示出)處理的媒體數據塊1006,應該注意,由於從另外的發送請求區1504發送的早期請求,由客戶機206處理的媒體數據塊1006可能在客戶機206處理第一媒體數據子塊1008(1)的時刻,對客戶機206已經完全是本地的。
另一方面,若當客戶機206在處理媒體數據塊1006(1)時某些媒體數據子塊1008仍然在向客戶機206發送,則一個或多個媒體數據子塊1008可以是最後期限數據1514。對那樣最後期限數據1514(圖6等)的發送請求604被賦予最高發送優先級以避免流故障。
若當前沒有最後期限數據,且對至少一個非最後期限媒體數據子塊1008的至少一個發送請求604不具有超過相關發送器304的閾值優先級704的足夠高的優先級,則調度器306能在每時隙的發送協商期間900(圖9)考慮另外的發送請求區域1504。(如上參考圖9的任選項估計906所述,調度器306也能考慮增加指定的發送優先級)。為了考慮另外的發送請求區域1504,對潛在的發送請求604考慮(1)早期數據1508;(2)較晚的早期數據1510;和(3)更晚的早期數據1512。例如,較晚的早期數據1510在早期數據1508之後考慮,因為較晚的早期數據離最後期限的時間更遠。
若與對應媒體數據塊1006(2),1006(3),或1006(4)關聯的對應發送器304具有的閾值優先級704低於規定對應媒體數據塊1006的來自調度器306的發送請求應有的閾值優先級,則調度器306構成並發送一發送請求604到對應的發送器304作為後續發送908的一部分,試圖便於向發送器提供足夠的發送請求604(每個具有關聯的優先級),使得通過在此時隙內將所有容納在其輸出帶寬602內的最高優先級數據發送到客戶機602,發送器304能在此時隙內充分並恰當地利用其輸出帶寬602。
在另選的發送請求區1504的媒體數據塊1006(2,3,和4)中,具有最早數據1508/1510/1512及足夠高的對應發送優先級的對應媒體數據塊1006被選作用於發送請求604的目標。包括另選的發送請求區域1504的選中的媒體數據塊1006的下一個未發送的媒體數據子塊1008的一個或多個媒體數據子塊1008由發送請求604規定發送到客戶機206。以此方式,調度器306能貢獻於來自發送器306的圖3-6的鏈路314的飽和程度,同時保持客戶機206的接收緩存器儘可能滿(如存儲約2個媒體數據塊1006或10秒媒體。
朝前看區域1502能有助於減少等待延遲時間。用保留和/或預加載實施朝前看區域1502也使媒體數據(圖3的)海量存儲310在穩鍵及能力方面比RAM差得不多。
調度器306通過力圖確保未來需要的媒體數據塊1006出現在相關發送器304(例如由散列分條媒體數據分布方法所確定的),在朝前看區域1502保持保留/預加載區。調度器306使用朝前看過程(如朝前看請求,朝前看操作等),使發送器304能保留(需要時預加載),媒體數據塊1006在朝前看區域1502,下面參考圖16進一步描述朝前看保留和/或預加載的諸方面。
應該注意,示出的數據和塊類型,消息區域等的集合僅是示例的描述實施,其他配置也另選地可以實施。此外,對實際上動態改變的示例配置,示出的集合實際上表示時間上的一個快照。例如,當由於完成發送當前塊1506到客戶機206,當前塊1506沿媒體數據資產1004移動時,早期媒體數據1508,較晚的早期媒體1510,和更晚的早期媒體數據1512沿媒體數據資產移動。而且,另選的發送請求區域1504能覆蓋朝前看區域1502。此外,這些區域能從2個擴展到16個來自當前塊1506的媒體數據塊1006;然而2到8媒體數據塊看來是足夠了。
圖16是示例的時序圖1600,它包括調度器306和發送器304之間的朝前看過程。發送器304包括有效地用作在對應的媒體數據塊1006(圖16中未示出)上的保留鎖定的塊使用計數(BUC)1602。如上所述,給定的發送器304由於其設備302的存儲器限止,可能不(也許不能夠)在該設備302的RAM中保持散列(1108)到給定發送器304的所有媒體數據塊1006。因此,這些媒體數據塊1006的至少某些在設備302在存儲器404和媒體數據的海量存儲310之間流轉。如上注意,可以清除(i)不普遍或最不普遍的和(ii)未鎖定的媒體數據塊1006。
當一個或多個調度器306保存某些媒體數據塊1006時,它們被鎖定,能使用朝前看請求1604(如一類協議消息504)實現此保存。簡言之,朝前看請求1604增量塊使用計數器1602,且當其對應的塊使用計數器1602非零時,媒體數據塊1006不能被清除。因而對每個媒體數據塊1006存在對應的塊使用計數器1602。然而,塊使用計數器能另選地應用在不同於媒體數據塊1006的媒體數據粒度級。
如下描述朝前看過程的一個例子在任何調度器306在其對應的媒體數據塊1006上請求朝前看之前,塊使用計數器1602等於0。因此在時間t=0,塊使用計數器1602(t=0)示作等於0。當調度器306準備好在特定媒體數據塊1006朝前看時[如朝前看區域1502的媒體數據塊1006(7)],調度器306構成識別關注的媒體數據塊1006朝前看請求1604,並將其發送給負責排序和發送該媒體數據塊1006的發送器304。
響應於接收該朝前看請求1604,發送器304增量了塊使用計數器1602。因此,在時間=t1,塊使用計數1602(t=t1)示出等於1。而且發送器304執行朝前看操作1606。發送器304校驗/判斷被識別的媒體數據塊1006是否已在存儲器404的RAM部分中。若是,發送器304已完成朝前看操作1606(一旦在完成朝前看操作1606之前,之後或期間,塊使用計數器已被遞增。
另一方面,若識別媒體數據塊1006尚未在存儲器404的RAM部分,除了遞增塊使用計數器1602之外,發送器304使得被識別的媒體數據塊從媒體數據的海量存儲310加載到RAM。在確保媒體數據塊1006出現在RAM之後(如通過驗證其存在和/或通過加載它),發送器304能可任選地通知調度器關於成功的鎖定。另選地,調度器306能配置成足夠早地發送朝前看請求1604,使得相對無關地呈現此確認。
在某個時間周期之後,調度器306發送一發送請求1608(如發送請求604)到發送器304,後者通過一個或多個媒體數據子塊1008規定較早識別的媒體數據塊1006。由於媒體數據塊1006出現並憑藉塊使用計數器1602鎖定,發送器304能發送被請求的一個或多個媒體數據子塊1008到指定客戶機206(如1610指出)而沒有可能對媒體數據加載產生的延時。
在重試周期1612之後(如在調度器306確認發送成功之後),調度器306發送一朝前看取消1614(例如另外類型的協議消息504)到發送器。朝前看取消1614識別不再需要由調度器306保留的媒體數據塊1006。響應朝前看取消1614,發送器304遞減塊使用計數器1602。在此例中,無其他調度器將一鎖定放在識別的媒體數據塊1006上。因此,在時間=t2時,塊使用計數器1602(t=t2)示出為又等於0,這裡t2比t1晚。當塊使用計數器1602等於0,對應的媒體數據塊可考慮按照給定的替換策略(例如根據普遍性)予以清除(例如與不同的媒體數據塊1006交換位置)。
儘管調度器306實際上請求媒體數據子塊1008每次從一個發送器304發送,調度器306具有若干任選項,關於何時/是否在多個發送器304上鎖定一媒體數據塊1006;或者在請求媒體數據子塊1008發送的時間到達時調度器306實際上沒有多個發送器304作為多個發送選項。而且,當在調度器306在鎖定的媒體數據塊1006中進行初始媒體數據子塊1008級的發送請求902時,調度器306能在它用已鎖定媒體數據塊1006的發送器304之間任意選擇。
雖然由於初始和中間閾值優先級904和910的約束,後續發送請求908可以限制到特定發送器304,在每個時隙的開始處初始發送請求902具有在媒體數據塊1006已知被請求調度器306鎖定的那些發送器中任意選擇的發送器304。在媒體數據不是傳送很多的低負載情況,調度器306能選擇放棄鎖定所有可能的媒體數據塊1006任選項,且在任何情況,即使有更多的任選項可用,調度器306能自己限止只鎖定2個(或其他個數)媒體數據塊1006。例如,可實施此不利用所有鎖定可能性的選擇,以避免總體上鎖定太多的媒體數據並為了減少協議的總開銷。
應該注意,這裡的某些描述[如針對根據普遍性的媒體數據複製,針對媒體數據散列分配(如分條),針對媒體數據組織等的描述]。也有益地應用,和/或較好地結合中央集中器類型的媒體數據的傳播來實施。
包括各個設備302的媒體數據傳播體系結構202能包括各種處理器可訪問的媒體和/或可以與那樣的處理器可訪問媒體通訊。處理器可訪問媒體能是可由計算或其他(如電子)設備訪問的任何媒體。因此,那樣的處理器可訪問媒體能包括易失性和非易失性媒體,可移動及不可移動媒體,存儲(如存儲器404和310)和和傳輸(如鏈路208,210,314等)媒體,它們的某種組合等。任何那樣的媒體可以包括處理器可執行指令。
實際上,分布式發送媒體數據的實施能以處理器可執行指令的一般情況描述,通常,處理器可執行指令包括例行程序,程序,協議,對象,接口,組件,數據結構等(如以應用軟體/模塊的形式),它們執行和/或使能特定任務和/或實施特定的抽象數據類型。如這裡某些實施所述,分布式發送媒體數據也能在分布式處理環境實現,其中任務由通過通訊鏈路和/或網絡連結的遠程連結處理設備完成。尤其,但不是必須的,在分布式計算環境中,處理器可執行指令能位於分開的存儲媒體,由不同處理器執行,和/經傳輸媒體傳播。
圖2-16的設備,動作,方面,特徵,過程,組件等在分成多個框的圖中示出。然而,圖2-16描述和/或示出的次序,互連,互相關係,布局等不試圖構成限制,且任何數目的塊能以任何方式修改,組合,重新安排,增擴,略去等來實現用於分布式發送媒體數據的一個或多個系統,方法,設備,過程,媒體,裝置,伺服器,安排等。此外,雖然這裡的描述包括對特定實施方法的引用,示出和/或描述的實施方法能以任何合適的硬體,軟體,固件或其組合併使用任何合適的計算體系結構,網絡單元和/或組織,視頻編碼標準,多播和單播方案等來實施。
雖然以針對結構,邏輯,算法,和功能特徵和/或圖表的語言描述了系統,媒體,設備,方法,過程,裝置,技術,方案,方法,過程,安排,和其他實施方法,可以理解,以所附的權利要求定義的本發明不一定限於所描述的特定特徵或圖示。相反,特定的特徵和圖示被看成實施本發明的專利範圍的示例方式。
權利要求
1.一個系統,其特徵在於包括包括與一客戶機相關聯並負責為發送到該客戶機的媒體數據流服務的調度器的多個調度器,所述調度器適應於構成一發送請求,所述發送請求指定所述用戶為所述媒體數據流的媒體數據部分的目的地;和包括與包括所述媒體數據部分的媒體數據相關聯的發送器的多個發送器,所述發送器適應於響應於所述發送請求將所述媒體數據部分發送到所述客戶機。
2.如權利要求1的系統,其特徵在於還包括媒體數據的海量存儲;其中所述發送器還適應於從所述媒體數據的海量存儲獲取與所述發送器相關聯的媒體數據的多個部分。
3.如權利要求1的系統,其特徵在於所述調度器和所述發送器在單個設備上運作。
4.如權利要求1的系統,其特徵在於所述調度器在第一設備上運作,而所述發送器在第二設備上運作。
5.如權利要求4的系統,其特徵在於還包括通過網絡耦合到所述第二設備和所述客戶機的交換機;其中所述發送器還適應於通過所述交換機經網絡將所述媒體數據部分發送到所述客戶機而不必通過所述第一設備路由所述媒體數據部分。
6.如權利要求4的系統,其特徵在於還包括耦合到所述第二設備和所述客戶機的第一交換機;和耦合到所述第一設備的第二交換機;其中所述發送器還適應於通過所述第一交換機發送所述媒體數據部分到所述客戶機,而所述調度器還適應於通過第二交換機發送所述發送請求到所述發送器。
7.如權利要求4的系統,其特徵在於,另一個調度器在所述第二設備上運作,而另一個發送器在所述第一設備上運作;且其中所述其它調度器與另一個客戶機關聯,且所述其它發送器與其它的媒體數據相關聯。
8.如權利要求1的系統,其特徵在於,所述媒體數據流對應於由所述系統存儲的媒體數據段,且其中所述發送器在第一設備上運作;其中多個發送器還包括在第二設備上運作的另一個發送器,所述與其它媒體數據相關聯的其它發送器包括另一個媒體數據部分;和其中所述媒體數據部分和其他媒體數據部分均是所述媒體數據段的各部分。
9.如權利要求8的系統,其特徵在於,所述調度器還適應於構成另一個發送請求,它將所述客戶機指定為所述媒體數據流的所述其他媒體數據部分的目的地;以及其中響應於所述其他發送請求,所述其他發送器還適應於發送所述其他媒體數據部分到所述客戶機。
10.如權利要求1的系統,其特徵在於,還包括多個設備;其中多個發送器的對應發送器在多個設備的對應設備上運作,且對應設備存儲對應發送器對應與其關聯的並適應於將其發送到各客戶機的對應的媒體數據部分。
11.一個系統,其特徵在於包括具有第一發送器的第一設備,它適應於存儲媒體數據段的第一媒體數據塊,並發送所述第一媒體數據塊到對應於發送請求的客戶機;具有第二發送器的第二設備,它適應於存儲所述媒體數據段的第二媒體數據塊,並發送所述第二媒體數據塊到對應於發送請求的客戶機;和適應於向第一發送器發送第一發送請求並向第二發送器發送第二發送請求的調度器,所述第一發送請求指定目標客戶並規定第一媒體數據塊而所述第二發送請求指定目的地客戶機並規定第二媒體數據塊。
12.如權利要求11的系統,其特徵在於,在所述第一設備處所述第一媒體數據存儲在其隨機存儲器(RAM)中,而在第二設備處所述第二媒體數據塊存儲在其RAM中。
13.如權利要求11的系統,其特徵在於,所述調度器在第一設備、第二設備、或第三設備的至少一個處運作。
14.如權利要求11的系統,其特徵在於,所述第一發送器還適應於發送所述第一媒體數據塊到所述目的地客戶機,而不必通過所述調度器在其上運作的設備定向所述第一媒體數據塊。
15.如權利要求11的系統,其特徵在於,所述第一發送器還適應於用具有包括所述目的地客戶機的網址的目的地地址的分組將所述第一媒體數據塊發送到所述目的地客戶機。
16.如權利要求11的系統,其特徵在於,還包括另一個調度器,它適應於向所述第一發送器發送第三發送請求並向第二發送器發送第四發送請求,所述第三發送請求指定另一個的目的地客戶機並規定所述第一媒體數據塊,而所述第四發送請求指定其它目的地客戶機並規定所述第二媒體數據塊。
17.包含處理器可執行指令的一個或多個處理器可訪問媒體,處理器可執行指令在執行時引導系統完成下列動作從第一設備發送一發送請求到第二設備,所述發送請求指定目標客戶機並規定媒體數據部分;和響應所述發送請求,從所述第二設備向所述目的地客戶機發送所述規定的媒體數據部分。
18.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統完成下列動作從所述第一設備發送另一個發送請求到所述第二設備,所述其它發送請求指定所述目的地客戶機並規定另一個媒體數據部分;和響應所述其它的發送請求從所述第二設備發送所述另外的規定媒體數據部分到所述目的地客戶機。
19.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統實行下列動作,包括從所述第一設備發送另一個發送請求到所述第三設備,所述其它的發送請求指定所述目的地客戶機並規定另一個媒體數據部分;和響應於所述其他發送請求,從所述第三設備發送所述其他規定的媒體數據部分到所述的目的地客戶機。
20.如權利要求19的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,其中所述規定的媒體數據部分和其它規定的媒體數據部分均是單個媒體數據段的部分。
21.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統實行下列動作,包括從第三設備發送另一個的目標請求到第二設備,所述其它的發送請求指定一個目的地客戶機並規定所述媒體數據部分;和響應所述其它發送請求從所述第二設備向其他目的地客戶機發送所述規定的媒體數據部分。
22.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統實行下列動作,包括從第三設備發送另一個發送請求到第四設備,所述其它發送請求指定另一個目的地客戶機並規定另一個媒體數據部分;和響應所述其它發送請求從所述第四設備向其他目的地客戶機發送所述其它規定的媒體數據部分。
23.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統實行下列動作,包括在第一設備處從目的地客戶機接收一命令,以開始媒體數據資產流傳送,所述媒體數據資產包括媒體數據部分。
24.如權利要求23的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統進一步實行下列動作,包括在對應於所述接收命令的所述第一設備處調度媒體數據部分,用於發送到所述目的地客戶機。
25.如權利要求24的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統進一步實行下列動作,包括從所述第一設備發送多個發送請求的對應發送請求到多個設備的對應設備,每個對應設備存儲構成至少部分所述媒體數據資產的多個媒體數據部分的對應媒體數據部分。
26.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,發送一發送請求的動作包括下述動作從在所述第一設備上運作的調度器發送一發送請求,所述調度器與指定的目標設備相關聯,並負責對在所述系統處指定的目的地設備接收的媒體數據請求提供服務。
27.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,還包括處理器可執行指令,後者在執行時還引導系統進一步實行下列動作,包括在第二設備的發送器處接收所述發送請求,所述發送器與所述規定的媒體數據部分相關聯並負責高速緩存規定的媒體數據部分到所述第二設備處的隨機存儲器(RAM)中,並響應導向那裡的發送請求,將所述規定的媒體數據部分發送到客戶機。
28.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,包括所述處理器可執行指令,其中所述規定的媒體數據部分包括媒體數據段的媒體數據塊的一個或多個媒體數據子塊,所述媒體數據塊高速緩存在所述第二設備的隨機存儲器(RAM)中。
29.如權利要求17的一個或多個處理器可訪問媒體,其特徵在於,所述一個或多個處理器可訪問媒體包括(i)一個或多個存儲媒體和(ii)一個或多個傳輸媒體中的至少一個。
30.用於構築分布式發送媒體數據的安排,其特徵在於所述安排包括用於調度擬發送到與調度器裝置相關聯的多個客戶機的媒體數據的調度器裝置,所述調度器裝置包括用於請求發送所述媒體數據到多個客戶機的發送請求裝置;和用於按由所述調度器裝置調度的那樣發送媒體數據部分到客戶機的發送器裝置,所述發送器裝置包括用於將媒體數據的被分布部分作為媒體數據部分高速緩存的高速緩存裝置,其中所述發送器裝置響應於從所述發送請求裝置接收的發送請求發送來自媒體數據的被分布部分的媒體數據部分。
31.如權利要求30的安排,其特徵在於,還包括用於按由所述調度器裝置調度的那樣發送對應的媒體數據部分到客戶機的多個對應的發送器裝置,所述多個對應的發送器裝置包括多個對應的高速緩存裝置,用於將對應的媒體數據的被分布部分緩存為它們對應的媒體數據部分,其中所述多個對應的發送器裝置的對應發送器裝置響應於從所述發送請求裝置接收的對應發送請求,發送來自它們對應的媒體數據的被分布部分的它們對應的媒體數據部分。
32.如權利要求31的安排,其特徵在於,來自所述多個發送器裝置的每個對應的發送器裝置的每個的對應媒體數據部分的對應媒體數據部分被發送到唯一的客戶機,以構成媒體數據資產的至少一部分。
33.如權利要求30的安排,其特徵在於,還包括用於調度擬發送到每個對應的調度器裝置與其對應相關的對應的多個客戶機的多個對應的調度器裝置,所述多個對應的調度器裝置的每個對應的調度器裝置包括多個對應的發送請求裝置的一個對應的發送請求裝置,用於從發送器裝置請求發送所述媒體數據到它們對應的多個客戶機的每一個。
34.如權利要求30的安排,其特徵在於,所述安排包括下列的至少一個(i)一個或多個處理機可訪問媒體和(ii)至少一個設備。
35.如權利要求30的安排,其特徵在於,所述發送請求裝置包括用於構成發送請求的裝置,其中每個發送請求包括多個客戶機的指定的一個目的地客戶機,和給定的發送請求指向的所述發送器裝置的所述媒體數據部分的一個規定的媒體數據部分。
36.一個或多個處理器可訪問媒體,包括處理器可執行指令,後者在執行時使得系統在多個設備的對應設備上分布媒體數據段的對應媒體數據塊在所述多個設備的對應設備上建立對應的發送器,每個對應的發送器能夠發送所述諸媒體數據塊的對應媒體數據塊;並在所述多個設備的至少一個設備上建立一調度器,所述調度器適應於請求將來自所述對應發送器的對應媒體數據塊發送到目的地客戶機;其中所述對應的發送器能夠不使用所述調度器將所述對應的媒體數據塊發送到所述目的地客戶機。
37.如權利要求36的一個或多個包括處理器可執行指令的處理器可訪問媒體,其特徵在於,所述對應的發送器還能夠不使用所述調度器的至少一個設備,發送對應的媒體數據塊到所述的目的地客戶機。
38.如權利要求36的一個或多個處理器可訪問媒體,其特徵在於,包括處理器可執行指令,後者在執行時引起所述系統創建多個調度器,多個調度器的至少一個調度器出現在多個設備的多個設備上;且其中多個調度器的每個調度器適應於請求將來自對應發送器的所述對應的媒體數據塊發送到不同的目的地客戶機。
39.如權利要求38的一個或多個處理器可訪問媒體,包括處理器可執行指令其特徵在於,所述對應的發送器還能夠發送所述對應的媒體數據塊到對應於從所述多重調度器的每個調度器接收的發送請求的不同的目的地客戶機。
40.如權利要求36的一個或多個處理器可訪問媒體,其特徵在於,包括處理器可執行指令,後者在執行時引起所述系統在多個設備的對應諸對應設備上分布另一個媒體數據段的對應媒體數據塊;其中每個對應的發送器還能發送所述其它媒體數據段的所述諸媒體數據塊的一對應媒體數據塊,且所述調度器適應於請求將來自所述對應諸發送器的其他媒體數據段的所述諸對應媒體數據塊發送到另一個目的地客戶機。
全文摘要
媒體數據分布在多個設備中,且形成非集中式的媒體數據傳輸體系結構。多個對應的發送器與媒體數據的多個對應的分布式部分相關聯。多個調度器與諸客戶機相關聯,並能調度對它們的媒體數據的發送。調度器構成發送請求,它規定特定的媒體數據部分並指定目的地客戶機。這些發送請求結合規定的每個發送請求的特定媒體數據部分,按照關聯的對應分布部分被發送到多個發送器。發送器能將發送請求的規定的特定媒體數據部分發送到指定的目的地客戶機而不必通過該調度器路由。在描述的實施方法中,發送器和調度器出現在多個設備的每個設備上。
文檔編號H04N7/173GK1612610SQ200410085600
公開日2005年5月4日 申請日期2004年10月9日 優先權日2003年10月10日
發明者D·L·格林, J·A·巴爾德文, P·T·巴雷特 申請人:微軟公司