专利名称:用于容错流分离的系统和方法
技术领域:
本发明一般涉及网络服务的领域。更具体的说,本发明涉及一用于提供容错数据通信的改进体系结构。
相关技术介绍如对该技术所知道的那样,流式是一种实时地在网上播放声频和/或视频内容的机构,通常用在网络带宽有限的情形中。基本的流式技术概念是,从其源接收整个文件之前,在目的地(例如,客户)开始从缓冲器回放基础流式文件。
传统的网络流式系统示于
图1中。如图所示,一个或多个配置有流式应用软件,如RealNetworks开发的RealPlayer或Microsoft公司开发的Windows Media Player的客户150,160与一个或多个流式服务器110,111,...N在网络100(例如,因特网)上通信。该组流式服务器110,111,...N被一起安置在出现点(point ofpresence)(“POP”)的位置上。流式服务器110,111,...N中的每一个都可存储该相同流式数据的拷贝,或可存储不同的流式数据,这取决于在该POP位置130处的配置。
在操作中,当客户机150从在该POP位置120的服务器要求特定的流式文件时,该要求就被负荷平衡器模块120所接收,该负荷平衡器模块再将该要求发送给适当的流式服务器111。哪个服务器是“适当的”可能取决于所要求的文件存储的地方,每个服务器110,111,...N上的负荷,和/或该客户机所要求的流式类型(例如,Windows Media格式或RealPlayer格式)。一旦该文件被适当服务器-在本例中为服务器111-识别,则它就通过网络100流向该要求的客户机150(由流140表示)。
附图简介从下面的详述并结合下面的附图就可获得对本发明的更好理解。其中
图1图示出—用于在网络上进行内容流动的现行技术系统和方法。
图2图示出一包括本发明要素的示范性网络体系结构。
图3图示出一包括本发明要素的示范性计算机体系结构。
图4图示出由本发明的一个实施例支持的各种流源。
图5图示出在本发明的一个实施例中流分离的实现。
图6图示出一按照本发明的一个实施例用来实现备份根分离器的系统。
图7图示出一按照本发明的一个实施例用来实现备份根分离器的方法。
发明详述在下面的描述中,为了说明的目的,阐述了很多的具体细节,以便对本发明提供一彻底的理解。但是,对于本技术的普通人员来说将会显而易见是,没有这些具体细节的某些,本发明也是可以实施的。在其它的例子中都以方框图的形式画出了很熟悉的一些结构和装置,以避免使本发明的基础原理晦涩难懂。
示范性网络结构本发明的要素可包括在如图2所示的一种多层网络体系结构200中,该结构包括一个或多个数据中心220-222,多个“中间”出现点(“POP”)节点230-234(这里也叫做“专用网络进入点”或“P-NAPs”),和多个“边缘(edge)”POP节点240-245(这里也叫做“因特网服务提供商协同定位(Co-location)”位置或“ISP Co-Lo”位置)。
按照图2所示实施例,数据中心220-222,中间POP 230-234和/或边缘POP 240-245的每一个都是由网络服务器组构成,各种类型的网络内容可被存储在这些服务器上并传送到终端用户250,例如,各种类型的网络内容可包括网页,网络新闻数据,电子邮件数据,文件传输协议(“FTP”)文件,和实况及即时(live&on-demand)的多媒体流文件。但是,应该指出本发明的基础原理却可利用各种不同类型的网络内容来加以实践。
安放在该数据中心220-222和POP 230-245的服务器可利用各种通信通道相互通信和与终端用户150通信,例如,各种通信通道包括数字信号(“DS”)通道(例如DS-3/T-3,DS-1/T1),同步光网(“SONET”)通道(例如,OC-3/STS-3),综合服务数字网络(“ISDN”)通道,数字用户链路(“DSL”)通道,电缆调制解调器通道,以及各种无线通信通道,包括卫星广播和蜂窝电话。
此外,各种网络协议都可用来实现该系统的方方面面,包括,例如,异步传输模式(“ATM”),以太网,和令牌环网(Token Ring);以及传输控制协议/因特网协议(“TCP/IP”),网间分组交换(“IPX”),AppleTalk和DEC网络(DECnet)(在网络/传输层面)。但应指出,本发明的原理并不限于任何具体的通信通道或协议。
在一个实施例中,用来存储与分配的网络内容相关的信息的一数据库被保持在数据中心220-222(也可能在POP节点230-234,240-245)的服务器上。这信息可包括当前包含网络信息拷贝的不同的POP位置。一个实施例中的该数据库是一分布式数据库(例如,分布于多个服务器上),并可运行关系数据库管理系统(RDBMS)的实例,如MicrosoftTMSQL-Server,OracleTM等等。
示范性的计算机体系结构在简明介绍了使用本发明的各种要素的示范网络体系结构后,现在参考附图3来介绍计算机系统300,该计算机系统代表用来实现本发明要素的示范性客户机和服务器。
计算机系统的一个实施例300包括一系统总线320用于传输信息,和一与总线320耦连的处理器310用于处理信息。该计算机系统还包括一随机存储器(RAM)或其它的动态存储装置325(这里叫做“主存储器”),与总线320耦连用来存储信息和由处理器310执行的指令。主存储器325还可用来在处理器310执行指令过程中存储临时变量或其它的中间信息。计算机系统300还包括与总线320耦连的只读存储器(ROM)和/或其它的静态存储装置326,用来存储静态信息和由处理器310使用的指令。
数据存储装置327,如磁盘或光盘和它的相应驱动器也可与计算机系统300耦连用来存储信息和指令。该计算机系统300还可通过一I/O接口330与第二I/O总线350耦连。多个I/O装置都可与I/O总线350耦连,包括显示装置343,和/或输入装置(例如,一字母数字输入装置342和/或一光标控制装置341)。
该通信装置340被用来通过一网络100访问其它的计算机(服务器或客户机)。该通信装置340可包括一调制解调器,网络接口卡,或其它熟悉的接口装置,如用来连接以太网,令牌环网,或其它类型的计算机网络。
发明实施例流分离现将就图4和图5来对为使实况及即时的声频/视频内容流动而配置的系统的实施例进行描述。如图4所示,一个实施例从各种源接收和处理进入的声频/视频内容,这些源包括,但不限于,在卫星通信链路410上广播的实况的或记录的信号401;通过视频会议系统411提供的实况信号402;和/或在专用因特网协议(“IP”)通信链路412上传送的实况或记录信号403。但是,应该指出,各种其它的网络协议(就是除IP之外的)都可使用而仍然遵从本发明的基础原理。在一个实施例中,图4所示的每个模块都驻留在一数据中心220上。
系统的获取和管理模块(“SAM”)420按要求开通和关闭在各种源401-403之间的通信对话。例如,当内容提供者要建立一新的实况流对话时,该SAM 420将开通一新的连接来处理进入的声频/视频数据(例如,在确定该内容提供者有权建立该连接后)。
该SAM模块420将根据进入的信号是否已被编码(例如,被内容提供者编码)和/或根据是否该信号由“实况”或“即时(on demand)”的内容构成来对该信号进行不同的处理。例如,如果信号未经内容提供者编码(例如,该信号可在该数据中心以模拟格式或以非流式的数字格式被接收),则该SAM模块420将把该信号导向一个或多个流式的编码器模块1430,它将该流按一特定的数字格式编码(例如,WindowsMedia格式,Rea G2TM格式,...等)。
如果进入的信号是实况的,则该流式编码器430就将该编码信号直接地传送到一个或多个流式始发服务器(streaming originserver)510(它像下述那样将该信号分配给各个POP节点)和/或传送到该数据中心220的一个或多个内容存储装置431。但是,如果该进入的信号是一即时的信号(也就是被存储并被客户机随时查看的信号),则该流式编码器430就将该编码信号直接传送到内容存储装置431。同样,如果该流式信号已被按特定的流式格式编码,则它就可被直接传送到该内容存储装置431。
当将新的声频/视频流式内容添加到该内容存储装置431中时,该SAM模块420就使一存储数据库430因此被更新(例如,通过一内容传送子系统)。在一个实施例中的该存储数据库430是一分布式数据库,因为它分布和存放在遍布该网络的各个POP位置上所以该数据库可跟踪所有的网络内容。
如图5所示,该编码信号从该流式始发服务器510被传送到位于各个I-POP节点230-232和E-POP节点240-242的流式分离器520-522,530-532。使用如图示那样的流式分离器来保存一基本量的网络带宽。例如,在所示的实施例中,每个流式分离器520-522,530-532都从上游的服务器只接收一单一的实况声频/视频内容流,然后将该流分成几个独立的流。这种配置对于不支持多广播的流式配置特别有用。
此外,如图5所示,在一多层的分层结构中使用流式分离器可减小该结构中每层上的带宽。例如,来自实况流式事件的单一流可以从一流式始发服务器510传送到I-POP流式分离器521。该流式分离器521然后可向每个E-POP流式分离器530-532传送一单一的流,然后这些E-POP流式分离器可再将该实况事件传送到多个终端用户540-548。因此该数据中心220和I-POP231之间的网络路径仅仅加载了一单一的流,而在该I-POP231和该E-POP240-242之间的三个网络路径的每一条上都仅加载了一单一的流。该进入的流那时就在该E-POP240-242的每一个上被分离,以便将该实况事件提供给多个终端用户540-548。
容错流分离如图6所示,本发明的一个实施例包括一个或多个配置在POP位置620处的根分离器630,以便从始发服务器接收流,并将该流分配给多个叶分离器631-635。每个叶分离器631-635服务于多个终端用户650,其方法是进一步将从该根分离器630接收的每个流分离成另一些多个终端用户流。
从图6可以看出,对于一具体的实况或计划的流事件来说,该流式编码器530,该始发服务器510和该根分离器630都代表单个的故障点。在一个实施例中,在该数据中心200的部件(例如,该始发服务器510和流式编码器530)上的潜在故障可通过对每个实况/计划的事件分配冗余编码器/始发服务器对的组合来处理。但是在某些情形,这种冗余水平在各个POP位置620上都是不切实际的(例如,由于在该位置上有限的媒体资源,有限而昂贵的机架空间,...等)。照此,在一个实施例中,可实施一更有效的机构来在这些POP位置620上提供容错(fault tolerance)。
如图6所示,在一个实施例中,一个或多个叶分离器(例如叶分离器631)都作为对主根分离器630的备份配置的。在这实施例中,该根分离器的健康状态不断地受监测,监测的进行通过监测子系统,其可驻留在负荷平衡器模块625,重定向子系统625,或作为分离的监测模块和数据中心和/或POP位置620。
在一实施例中,配置了该根分离器630,以便按预定时间间隔向该监测子系统提供刷新。这可能由代理640来实现,该代理不断在该根分离器630上运行和配置,以便与该监测子系统通信。在这个实施例中的周期性的更新起着“心跳”的作用,它向该监测子系统表明,该根分离器正在正常参数内运行。如果该监测子系统一个或多个周期不接收更新,则就可确定,该根分离器已变成不起作用了,并指派该备份的根分离器631作新的主根分离器。在一实施例中,在该备份的根分离器631上运行的该代理641完成重新配置的过程。另外,或此外,该监测子系统可积极地轮询在根分离器630上运行的代理640,以便确认该根分离器630是在可靠地运行。
现在将就图7的流程图来对图6所示系统的一实施例的运行进行描述。在710上,用户企图查看具体的实况或计划的流式事件(例如,万维网广播)。该用户的要求被重定向子系统610接收和处理,该重定向子系统(在715处)将用户导向该流将从其发送的一具体的POP位置620(例如,通过使引导该用户的流式应用的路径返回那个POP位置620)。
在720,驻留在该POP位置620上的负荷平衡器模块625从在该位置的一组叶分离器631-635中选择一具体的叶分离器(例如,分离器633)。在一个实施例中,该负荷平衡器625是一层4开关(layer 4switch),它不断地监测在每个叶分离器631-635上的负荷,并分派新的用户要求给最少负荷的分离器。在这实施例中,该层4开关可用一虚拟的因特网协议(“VIP”)地址来标识,该地址包含在该重定向子系统610的发送路径中。
在725,一根分离器故障被该监测子系统检测(例如,通过上述的一种或多种故障检测技术)。结果,该监测子系统引导该备份的根分离器631(例如,通过该备份代理641),以便将本身重新配置成新的主根分离器630。此外,该监测子系统和/或该备份代理641引导该负荷平衡器625,以便从受该负荷平衡器模决625监测的叶分离器631-635的组群中去掉该备份根分离器631。
应该指出,该新的主根分离器631,负荷平衡器625,叶分离器632-625,和/或重定向子系统610在根分离器630发生故障之后都可被重新不同地配置,这取决于该系统支持的流的格式。当用户要求按RealPlay流格式(例如,通过驻留在该客户计算机上的RealPlay的应用程序)编码的文件,则该重定向子系统就将一综合路径(comprehensive path)传送给该用户,规定该流式文件和服务器的位置,该数据流将通过该位置沿它的路径送达该用户。例如,一路径,如,”rtsp\\<vip>\Split\<Root Server IP>\Split\<OriginServer IP>\<Encorder IP>\live_stream.rm”就可被传送到该客户机的流式应用程序,标识该负荷平衡器625,该根分离器630,该始发服务器510,和该编码器530的虚拟IP地址以及该实际流式文件名(“live_stream.rm”)。因此,当如上所述该备份的根服务器631被重新配置成主根服务器630时,则后来被该重定向子系统610传送给用户的该路径就被更新,以便反映该根分离器在该<Root Server IP>域内的新IP地址(例如,以前的备份服务器631的IP地址)。
相反,如果该系统被配置来支持Windows Media Technologies(“WMT”)流式格式,则在流式路径内的每个服务器在根分离器630失事之后都可能需要更新。更具体地说,在这实施例中,WMT服务器的“发布点”在每个服务器上预先都被重新配置,以便返回来导向该上游的分离器630,始发服务器510,和/或编码器530。
例如,在用户对流式内容提出请求之后,被重定向子系统610返回的一示范性的URL可看起来就像“mms//<VIP>/<BroadcastPublishing Point(3)>”。在VIP地址后面的每个边缘分离器那时将总暴露出“广播发布点(3))”,并因此总被配置以便引用,例如,“<RootSplitter IP>/<Broadcast Publishing Point(2)>”。继续这个例子,该WMT根分离器也将依次暴露出“广播发布点(2)”,被重新配置以便参考“<Origin Server IP>/<Broadcast PublishingPoint(1)>”。最后,在一个实施例中被该WMT始发服务器510暴露的“广播发布点(1)”被从该流式编码器530接收的流所充填。
这样,在这实施例中,当该监测子系统在该主的WMT根分离器630中检测一故障时,它不应仅重新配置该负荷平衡器625来从该叶分离器组群中除去该备份根分离器631,它还应重新配置在剩余的叶分离器632-635上的所有的“广播发布点(3)”,以便它们引用该新的根分离器631。此外,该新的根分离器631应当重新被配置以便去除它的“广播发布点(3)”和现在就暴露“广播发布点(2)”,这向后导向该始发服务器510的发布点。
因此,可以看出上述配置的一个好处是,该重定向子系统610可提供相同的URL给用户,即使在主根分离器630发生故障后也是如此。那时利用新配置的一组发布点就可给该用户提供相同的流。
不管使用那种流格式,都会在735处,通过的新的主根分离器给用户提供新的流。在740处,在数据中心的操作人员被告知主根服务器发生故障。该操作人员那时可先尝试远程估计和解决问题,然后才行进到POP位置620。
本发明的实施例包括已在上面描述过的各个步骤。这些步骤可用能机器执行的指令来体现。该指令可被用来使通用和专用处理器完成某些步骤。另外,这些步骤可以用具体的硬件部件完成,该部件包含用来完成该步骤的硬连线逻辑,也可用程序计算机部件和自定义硬件部件的任一组合来完成。
作为机器可读介质的本发明的要素还可被提供来存储机器可执行的指令。该机器可读的介质可包括,但不限于软盘,光盘,光盘只读存储器,磁-光盘,ROM,RAM,EPROM,EEPROM,磁或光卡,适于存储电子指令的传播介质或其它类型的媒体/机器可读介质。例如,本发明可作为计算机程序下载,该计算机程序可通过包含在载体或其它传播介质中的数据信号,经通信链路(例如,调制解调器或网络连接)从远程计算机(如,服务器)发送到请求的计算机(例如,客户机)。
为了说明,在整个上面的描述中,很多具体细节都进行了阐述,以便提供对本发明的透彻理解。但是对本技术的普通人员来说显而易见的是,本发明却可在没有某些这些具体细节的条件下加以实施。例如,虽然在文中对具体的流格式的上述实施例(例如,Windows Media和RealMedia)进行了描述,但与本发明的基础原理相符合的各种其它流格式也是可实现的。因此,本发明的范围和精神应按照下面的权利要求来判断。
权利要求
1.一种系统包括主根分离器,用来将源自上游服务器的数据流分离成多个叶分离器流;多个叶分离器,用来将每个所述的叶分离器流分离成多个终端用户流,其中,所述的多个叶分离器中一个或多个是一备份的根分离器;及根分离器的重新分配逻辑,响应于检测出所述的主根分离器的问题,用来将一个所述的备份根分离器重新分配作为一新的主根分离器。
2.按权利要求1的系统,还包括一负荷平衡器模块,用来根据所述叶分离器上的相对负荷使客户机的流式请求导向特定的叶分离器。
3.按权利要求1的系统,还包括一重定向子系统,用来使客户机的流式请求重新导向一具体的出现点位置。
4.按权利要求2的系统,还包括负荷平衡器的更新逻辑,用来响应于所述的备份根分离器被重新分配作为主根分离器,从所述负荷平衡器使用户的流式请求导向于其的所述的多个叶分离器中去除所述的备份叶分离器。
5.按权利要求3的系统,还包括重定向子系统更新逻辑,用来响应于所述的备份分离器被重新分配作所述新的主根分离器,通知所述重定向子系统有关所述新的主根分离器。
6.按权利要求5的系统,其中所述重定向子系统更新逻辑将所述新的主根分离器的IP地址传送给所述重定向子系统。
7.按权利要求1的系统,还包括发布点更新逻辑,用来响应于所述备份的根服务器被重新分配作所述主根服务器,更新在所述系统中的发布点。
8.按权利要求1的系统,还包括监测逻辑,用来监测所述的主根分离器,以便确定是否所述根分离器在正常参数内运行。
9.按权利要求8的系统,其中,所述的监测逻辑从所述主根分离器接收周期性心跳信号,而其中,在一个或多个周期接收不到心跳信号就表示所述的主根分离器发生问题。
10.按权利要求8的系统,其中,所述的监测逻辑向所述主根分离器传送检测器信号,而其中,接收不到来自所述根分离器的响应就表示所述主根分离器出现问题。
11.一种方法包括监测主根分离器,以便确保所述主根分离器运行在预定的参数范围内,所述主根分离器将单个数据流分离成多个数据流传送到多个叶分离器,及响应于检测到所述主根分离器不运行在所述预定参数内,将一个所述的叶分离器重新分配作为一新的主根分离器。
12.按权利要求11的方法还包括更新负荷平衡器模块,以指示所述的叶分离器被重新分配作为一主根分离器,所述的负荷平衡器模块用于根据每个所述的叶分离器上的负荷将用户的流式请求分配给一个或多个所述的叶分离器。
13.按权利要求11的方法还包括更新重定向子系统,以指示所述的叶分离器被重新分配作为一主根分离器,所述的重定向子系统用于将客户机的流式请求导向一具体的出现点位置。
14.按权利要求13的方法还包括更新在所述出现点位置的负荷平衡模块,以指示所述的叶分离器被重新分配作为一新的主根分离器,所述的负荷平衡模块用于根据每个所述的叶分离器上的负荷来将用户的流式请求分配给一个或多个在所述出现点位置的所述叶分离器。
15.按权利要求13的方法,其中更新所述重定向系统包括将所述的新的主根分离器的IP地址传送给所述的重定向子系统。
16.按权利要求11的方法还包括更新一个或多个广播发布点,以指示所述新的主根分离器。
17.一种系统包括监测子系统,以检测是否主根分离器运行在预定的工作参数下;及根分离器重新分配逻辑,响应于检测到所述主根分离器是运行在所述预定工作参数之外,重新分配一备份根分离器作新的主根分离器。
18.按权利要求17的系统,其中,所述的备份根分离器也是叶分离器,用来从所述主根分离器接收数据流,当所述的主根分离器是运行在所述的预定工作参数下时将所述的数据流分离成多个用户流。
19. 按权利要求17的系统,其中,通过周期性地从所述主根分离器接收信号,所述监测子系统检测是否所述主根分离器运行在预定工作参数下。
20.按权利要求17的系统,还包括负荷平衡器逻辑,用于根据所述叶分离器相对于一个或多个另外的叶分离器的相对负荷,将客户机流式请求导向所述叶分离器。
21.按权利要求20的系统,还包括重定向子系统,用来将客户机的流式请求重新导向具体的驻留有所述的负荷平衡器和一个或多个的所述叶分离器的出现点位置。
22.一种制造产品,包括一系列的指令,当被处理器执行时,该指令将使所述处理器进行下述工作监测主根分离器,以确保所述主根分离器运行在预定的参数内,所述主根分离器将单个数据流分离成向多个叶分离器传送的多个数据流,及响应于检测到所述主根分离器不运行在所述参数内,将一个所述的叶分离器重新分配作为一新的主根分离器。
23.按权利要求22的制造产品,包括附加的指令,当所述处理器执行时,该附加的指令将使所述处理器进行下述工作更新一负荷平衡器模块,以指示所述的叶分离器被重新分配作为一主根分离器,所述的负荷平衡器模块用于根据每个所述的叶分离器上的负荷将用户的流式请求分配给一个或多个所述的叶分离器。
24.按权利要求23的制造产品,包括附加的指令,当所述处理器执行时,该附加的指令将使所述处理器进行下述工作更新重定向子系统,以指示所述的叶分离器被重新分配作为一主根分离器,所述的重定向子系统用于使客户机的流式请求导向一具体的出现点位置。
全文摘要
本发明描述了一系统,该系统包括一主根分离器,用来将从上游服务器传送的数据流分离成多个叶分离器流;多个叶分离器,用来将每个叶分离器流分离成多个终端用户流,其中该多个叶分离器中的一个或多个就是一备份的根分离器;以及根分离器重新分配逻辑,用于将一个备份根分离器重新分配作为一新的主根分离器,以对检测到该主根分离器的问题作出反应。还介绍了一方法,包括检测主根分离器,以确保该主根分离器运行在预定的参数内,该主根分离器将一单个的数据流分离成传送到多个叶分离器的多个数据流;以及将一个叶分离器重新分配成一新的主根分离器,以对检测到该主根分离器不运行在该预定的参数内的情形作出反应。
文档编号H04L29/06GK1449626SQ01814881
公开日2003年10月15日 申请日期2001年6月14日 优先权日2000年6月30日
发明者R·斯洛斯 申请人:英特尔公司