分布式发送媒体数据的体系结构的制作方法

文档序号:7598610阅读:213来源:国知局
专利名称:分布式发送媒体数据的体系结构的制作方法
技术领域
本发明一般涉及分布式发送媒体数据,尤其通过不作为限止的例子,涉及用于分布式发送媒体数据的体系结构。
发明的背景基于电视的娱乐系统传统地依赖有线网络,其中相同的电视节目向每个客户播放。换言之,同样的电视频道及按电影付费的节目同时向连接到该有线网络的每个客户播放。
用有线网络广播的方法产生两个缺点。首先,因为所有节目内容在单一时间广播,观看者不能控制观看一节目的时间。其次,所有节目对每个客户广播,带宽限止使得只对电影不可能做到真正的视频点播(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·巴雷特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1