首页> 中国专利> 一种同时提供数据到同一网络上的两个或多个设备的方法

一种同时提供数据到同一网络上的两个或多个设备的方法

摘要

本发明公开了一种从第二网络上的服务器设备提供数据到有共享缓存区的第一网络上的两个客户端设备的方法。识别从同一网络上的两个客户端设备在几乎相同的时间点上对服务器发出数据请求的情形。回应在第一时间点上接收到的第一数据请求,从服务器传递请求数据给这两个客户端设备中的第一个客户端设备,从而此数据被存储在共享缓存区内。这两个客户端设备中的第二客户端设备被指示在第二时间点上发出第二个数据请求,因为第二时间点迟于第一时间点,从而可以使用在存储缓存区内的请求数据。

著录项

  • 公开/公告号CN101361326A

    专利类型发明专利

  • 公开/公告日2009-02-04

    原文格式PDF

  • 申请/专利权人 香港应用科技研究院有限公司;

    申请/专利号CN200780000218.5

  • 发明设计人 吴康恒;罗家泳;刘绍强;

    申请日2007-08-23

  • 分类号H04L12/54(20060101);H04L12/66(20060101);

  • 代理机构深圳创友专利商标代理有限公司;

  • 代理人江耀纯

  • 地址 中国香港新界沙田香港科学园科技大道西二号生物资讯中心3楼

  • 入库时间 2023-12-17 21:27:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-07-06

    授权

    授权

  • 2009-04-01

    实质审查的生效

    实质审查的生效

  • 2009-02-04

    公开

    公开

说明书

技术领域

本发明涉及一种方法,从第二网络上的服务器或另一台计算机提供数据到同一网络上的两个或多个设备。特别地,本发明涉及一种同时提供流媒体内容到同一网络上的两个或多个客户端设备的方法。

背景技术

当同一网络上的两个或多个设备,如计算机,从另一个网络上的另一台计算机或服务器请求数据资源(如文件、web页、或流媒体内容)时,如果请求的数据资源的复制副本是从第二网络被发送到第一网络,就存在网络带宽浪费。为了避免这种情况,许多网络有一个代理服务器或缓存服务器,它们提供一个共享缓存区给网络上的客户端计算机。当第一网络上的计算机从第二网络上的服务器或计算机请求资源时,资源被传送给发出请求的计算机,并被存储在发出请求计算机所在网络上的缓存区内。然后,如果第一网络的另一台计算机也请求相同数据资源时,就可以直接从缓存区传送,而不需要传送请求到第二网络上的初始数据资源提供者。这样能够减少Internet网关带宽需求,并加速第一网络上客户端计算机的资源访问时间。

如果两个或多个初始请求同一数据资源,是同时来自同一网络上的两个或多个客户端计算机,以上所述方案就存在一个问题。如果数据资源之前没有被存储在共享缓存区内,那么这两个请求都被发送到初始数据资源服务器。对于通过Internet传播现场直播流媒体内容的情形,如视频或音频节目,这个问题就特别显著。因为直播内容是被实时流式传输的,在从第一网络发出多个请求之前,没有机会或只有极少机会去缓存内容。对Internet服务提供商(ISP)(为单个客户提供Internet接入,且经常有大量客户端计算机同时连接其Internet接入网络),这是很有问题的。当受欢迎的直播节目如体育节目在Internet上被实时流式传输时,相当大量的流内容请求可能来自单个ISP网络。

所以,本发明的一个目的是提供一种方法用于提供数据资源(特别是流媒体内容)到同一网络上的两个或多个客户端计算机,并能够改善或实质上克服以上提到的问题。本发明的另一个目的是提供一种方法用于通过Internet同时流式传输直播视频和音频内容到同一网络上的两个或多个客户端计算机,充分利用网络的现有共享缓存服务。

发明概述

本发明披露了一种从第二网络上的服务器设备提供数据到第一网络上的两个客户端设备的方法,所述第一网络包括一个共享缓存区用来缓存由客户端设备请求的数据,本方法包括识别同一网络上的两个客户端设备向服务器同时发出数据请求的情形,回应在第一时间点上接收到的这两个客户端设备的第一客户端设备的第一数据请求,从服务器传递请求数据给第一客户端设备,从而数据被存储在第一网络上的共享缓存区里,并指示这两个客户端设备中的第二客户端设备在第二时间点上发出第二数据请求,其中第二时间点迟于第一时间点,从而在共享缓存区里的请求数据是可用的。

优选地,指示第二客户端设备在第二时间点上发出第二数据请求包括在第二客户端设备上运行一个程序,中断第二数据请求并在一个延迟之后发送第二请求。

优选地,延迟是一个随机延迟或一个由服务器设备或一个或多个客户端设备确定的固定延迟。

优选地,指示第二客户端设备在第二时间点上作出第二数据请求包括在服务器上接收来自第二客户端设备的数据请求,并从服务器发送一个消息到第二客户端设备以指示第二客户端设备在一个延迟之后发送第二请求。

优选地,本方法被用来从第二网络上的媒体服务器流式传输媒体内容到第一网络上的两个客户端设备,包括识别同一网络上的两个客户端设备向媒体服务器同时发出流媒体内容请求,回应在第一时间点上接收到的这两个或多个客户端设备中的第一客户端设备的第一流媒体内容请求,从媒体服务器传递请求的媒体内容给第一客户端设备,从而媒体内容被存储在共享缓存区内,并指示这两个或多个客户端设备中的第二客户端设备在第二时间点上发出第二流媒体内容请求,其中第二时间点迟于第一时间点,从而媒体内容是从缓存区内被传递。

优选地,传递请求的媒体内容给第一客户端设备包括传递请求媒体内容的一个区段作为一个可缓存的web页。

优选地,第一网络包括一个局域网,且媒体服务器是在Internet上。

优选地,识别向媒体服务器同时发出流媒体内容请求的情形包括传递所述请求到媒体服务器,并在媒体服务器上识别来自同一网络的请求。

优选地,本方法还包括在媒体服务器上跟踪流媒体内容请求的路由,从而识别源网络,并仅当请求是来自同一网络时,指示此两个客户端设备的第二客户端设备在第二时间点上发出第二流媒体内容请求,否则传递请求的内容到第二客户端设备。

优选地,识别向媒体服务器同时发出流媒体内容请求的情形包括:在媒体服务器上预注册第一和第二客户端设备,并在预注册步骤期间,跟踪第一和第二客户端设备作出注册请求的路由,从而识别源网络。

优选地,本方法还包括在第一和第二客户端设备上提供软件模块,其指引流媒体内容请求被传递到媒体服务器,软件模块指示第一客户端设备在第一时间点上请求流媒体内容,并指示第二客户端设备在第二时间点上请求流媒体内容,其中第二时间点迟于第一时间点。

优选地,指示第二客户端设备在第二时间点上发出第二媒体内容请求包括在第二客户端设备上运行一个设备程序指示第二设备在一个延迟之后发送第二请求。

优选地,指示第二客户端设备在第二时间点上发出第二媒体内容请求包括在服务器上接收来自第二客户端设备的媒体内容请求,并从服务器发送一个消息到第二客户端设备以指示第二客户端设备在一个延迟之后发送第二请求。

优选地,本方法被用来同时提供数据到两个连接到同一网络的客户端设备,包括接收来自网络上第一客户端设备的第一数据请求,接收来自网络上第二客户端设备的第二数据请求,传递请求的数据给第一客户端设备,从而内容被缓存服务器缓存,并发送一个消息给第二客户端设备以指示第二客户端设备在一个延迟之后发送另一个数据请求,从而允许通过缓存服务器传递请求的媒体内容给第二客户端设备。

附图说明

参考附图,现在本发明将被仔细描述,其中:

图1是本发明典型实施例被实施的环境简图,

图2是本发明的第一首选实施例的简图,

图3是本发明的第二首选实施例的简图,

图4是首选实施例的软件和通信构造的示意图,

图5是客户端应用程序的功能流程图,

图6是服务器应用程序-预注册步骤的功能流程图,和

图7是服务器应用程序-可缓存视频流的功能流程图。

典型实施例详述

参考图1,本发明典型实施例是在一个包括多个远程计算机1、2、3、4的计算机环境里实施,计算机1、2、3、4通过同一互联网服务提供商(ISP)网络5访问Internet和相关服务。计算机1、2、3、4使用拨号、DSL(通常是ADSL)、宽带无线接入、有线调制解调器、ISDN或类似方法连接到ISP网络5。ISP网络5有一个路由器6和一个或多个代理服务器7,它们提供服务允许计算机1、2、3、4间接连接到互联网9上的其它计算机或服务器8。代理服务器也包括一个共享缓存区给客户端计算机1、2、3、4。但是,这不是意在限制本发明使用和功能的范围。技术人员将理解:本发明可以被应用到任何网络,它们连接多个设备并可以访问远程数据资源,且有缓存服务器或共享缓存区来暂时存储请求的数据资源,以减少网络网关的带宽需求,并加速客户端计算机的资源访问时间。这种网络可以是公司、组织或私有局域网(LAN)或广域网(WAN),其中的设备可以处于非常靠近的地理位置或处于不同的和远程的地理位置。特别地,本发明对于具有多个互连区域网络的全球组织特别有用,其中在一个区域网络上的两个或多个计算机可以同时访问另一个区域网络上的信息或数据资源。例如,对在不同远程地理位置上有办公室的公司的职员,本发明将可以流式传输视频会议、电话会议或直播演示到他们的台式机上。本发明也可以用于电视广播应用,其中客户端设备包括机顶盒用来从其它网络访问流视频资源,或用于移动网络应用,其中客户端设备是移动手机。

本发明将描述在媒体流情形下的实施,例如,其中多个客户端计算机可以选择从一个流媒体服务器同时访问实况流媒体。但是,这也不是意在限制本发明使用和功能的范围。技术人员将理解:本发明也可以应用在任何网络应用里,其中两个或多个计算机可以从另一网络上或甚至同一LAN或WAN的子网上的另一台计算机或服务器同时请求数据资源。

在以下的讨论里,代理服务器是指一个网络计算机,其提供服务允许网络上的其它计算机或设备间接连接到另一个网络上的计算机或服务器。典型地,但不是必需的,代理服务器和客户端计算机是在一个局域网或Internet接入网络上,另一台计算机或服务器是在Internet上。网络上的计算机发出一个请求到代理服务器,请求其它计算机或服务器上可用的资源,代理服务器通过传递请求到其它计算机或服务器或通过从一个共享缓存区获取资源,而提供资源给计算机。在多个客户端计算机通过公司、组织或ISP网络而访问互联网(Internet)资源的情形下,网络经常需要这种代理服务器以增强网络使用策略,提供安全性、并提供一个共享缓存区给客户端计算机。为了便于描述,本发明将忽略前者应用,并假设代理服务器的目的是提供一个共享缓存区给客户端计算机。这样有助于减少网络的互联网网关带宽需求,并加速客户端计算机的资源访问时间。再者,这不是意在限制本发明使用和功能的范围,共享缓存区可以由一个专用网络缓存或缓存服务器提供,它们可以通过Cisco系统开发的网页缓存通信协议(WCCP)而连接到路由器6。

参考图2,在本发明的第一典型实施例里,多个客户端计算机1、2、3、4通过已知方法如DSL或有线调制解调器而连接到一个ISP宽带接入网络5。宽带接入网络5通过路由器6和代理服务器7为客户端计算机1、2、3、4提供互联网访问,代理服务器7有一个共享缓存区用来暂时存储计算机1、2、3、4请求的互联网数据资源,其中计算机1、2、3、4连接到宽带接入网络5。在互联网9上的一个远程位置上有一个流媒体服务器8,它能提供实况直播流媒体内容如体育节目的视频。流媒体服务器8实时流式传输媒体内容到与互联网连接的客户端计算机。为了利用代理服务器7的共享缓存服务,流媒体服务器8通过打包短区段内容作为web页,经由互联网传递媒体内容到客户端计算机。这些web页将被代理服务器7缓存,从而它们在ISP接入网络5内可用于任何其它客户端计算机请求相同内容。这样不仅降低在ISP互联网网关上的流量,而且减少由流媒体服务器8接收到的流碰撞数目。流媒体内容被流媒体服务器8打包为web页。流媒体服务器8将视频片段、或其它资源分割成一系列的区段,并由单个区段建立一个HTTP数据消息。然后,HTTP数据消息被发送到客户端设备以回应一系列的HTTP请求。在客户端设备内,HTTP数据消息被解构,且视频片段的区段被重建。重建可以是重装区段为RTP信息包,并在客户端计算机上流式传输信息包到媒体播放器。

如果可缓存的流内容之前没有被请求且被传递到ISP网络上的客户端计算机,它将不会被存储在网络的共享缓存区内。如果网络上的两个或多个客户端计算机同时对流媒体服务器发出内容请求,很有可能是实况直播节目的情形,代理服务器将传递这两个请求到流媒体服务器。为了避免这种情况,两个或多个客户端计算机请求流媒体内容必须是交错时间进行的,从而,流媒体服务器提供流媒体内容给第一客户端计算机,然后随后的请求被网络的代理服务器接收。一旦接收到随后的请求,代理服务器将发现请求内容已经被存储在共享缓存区内,并能够直接从缓存区响应随后的请求。这可以通过以下来实现:让网络上的一些或所有客户端计算机延迟或重发资源请求。

依照本发明的一个首选实施例,在网络上希望访问流媒体内容的每个客户端计算机必须首选下载和安装一个客户端应用程序或add-in(内插式附件)到其web浏览器应用程序。客户端应用程序运行并产生一个随机时间延迟给所有流媒体请求(该请求由客户端计算机1、2、3、4发出,并在流媒体服务器8上控制)。当每个客户端计算机的用户通过一个web浏览应用程序访问流媒体服务器8、并启动流媒体视频连接时,将下载和安装客户应用程序,如果其还没有被安装的话。媒体播放器应用程序(用户在其上观看流媒体视频服务),依照已知的流媒体协议,如RTSP,启动流媒体内容请求。这个请求被客户端应用程序中断,该客户端应用程序产生一个延迟,然后转发一个HTTP数据消息请求到流媒体服务器8。在首选实施例里,延迟介于0和60秒之间,取决于如媒体播放器里的缓冲长度和涉及的客户端数目这类因素。由于客户端应用程序产生的延迟是随机的,在同一网络上的两个客户端计算机较小可能地对相同流媒体数据同时发出请求。在第一HTTP请求从其中一个客户端计算机发出并由流媒体服务器传递之后,请求的流媒体数据被存储在网络共享缓存区内,并可用于随后的请求。这将在图2里描述。假设客户端计算机2有一个比客户端计算机4更短的随机延迟,第一请求被传递给服务器8,服务器8传送请求的内容给计算机2并作为一个可缓存的web页,从而一个副本也存储在共享缓存区内。当客户端计算机4发出迟于计算机2的请求时,请求的内容在共享缓存区内被发现,而后从缓存区由代理服务器7传送给计算机4。

以上所述实施例仍然存在一种可能:即由客户端应用程序产生随机延迟的两个或多个客户端计算机将非常接近地发出数据请求,以至于在发出第二请求之前第一请求还没有被传递和缓存。因此,为了改善这个问题,在另一个实施例里,当用户访问流媒体服务器网站下载客户端应用程序准备浏览流媒体内容时,流媒体服务器分配一个固定延迟时间给客户端应用程序。流媒体服务器8分配一个不同的固定延迟给每个客户端应用程序,这些客户端应用程序被下载到同一网络5上的不同客户端计算机上,从而在同一网络5上没有两个客户端计算机1、2、3、4能够向流媒体服务器8发出同时的数据请求。

另外,在本发明的第三实施例里,每个客户端计算机1、2、3、4的客户端应用程序在网络5上能识别和注册各自的客户端计算机,其将访问在流媒体服务器8上的流媒体内容,并通过对到对的协调(pair-to-paircoordintion)确保没有两个客户端计算机1、2、3、4同时请求流媒体服务器8的流媒体内容。实现此目的的一种方法是使用一个令牌传递(tokenpassing)机制,由此如果客户端应用程序有令牌时,将发送数据请求。在发送数据请求之后,客户端应用程序传递令牌到另一台客户端计算机,从而其客户端应用程序可以发送一个内容请求。

在以上所述的实施例里,引入了延迟,从而没有两个客户端计算机1、2、3、4向服务器8同时或几乎同时发出请求相同流内容。很明显,仅需要在传递第一请求之后延迟第二流内容请求,请求的内容将被缓存,且不需要控制随后的内容请求。相应地,在对到对协调的另一种方法里,一个客户端计算机被指定为“种子”或第一请求方。种子计算机向流媒体服务器发出第一请求,这样会缓存请求的内容,并在一个短延迟之后,所有其它的客户端计算机可以自由发出相同内容请求。但是,如果被指定为种子的客户端计算机终止流会话,系统将出现故障,除非在剩余客户端计算机之间有一些协调,即谁将成为下一个种子计算机。所以,对本发明的正常运作,严格但非必需地,期望系统能协调所有客户端计算机的请求,从而没有两个客户端计算机1、2、3、4向服务器8发出同时和几乎同时的相同流内容请求,因此允许任何一个客户端计算机可以终止其流会话,而不会导致本发明系统的故障。改善此问题的另一种方法是结合种子方案和令牌传递机制,其中种子计算机是具有令牌的计算机,且在发出一个流内容区段的请求之后,令牌被传递到另一台客户端计算机。接收令牌的下一台客户端计算机变成种子计算机用于下一个区段流内容请求。

上述实施例描述了基于客户端的方法,其中仍然存在客户端计算机中途进入和/或离开实况直播流的潜在问题。因此,在本发明的另一个实施例里,服务器会处理来自客户端的同时请求。如果发出了同时或几乎同时的内容请求,且内容还没有被存储在网络共享缓存区内,代理服务器将传递所有的请求到流媒体服务器。如果这种多个请求是从同一网络接收到的,流媒体服务器将请求的内容传递给其中一个客户端,并发送一个消息给第二和随后的客户端,指示它们等待一个延迟,比如说5-60秒,再重新发送内容请求。再者,确定延迟量的因素包括但不限于,媒体播放器的缓冲长度和涉及的客户端数目。在延迟结束时,当请求被重新发送时,请求的内容可能已经被缓存在网络共享缓存区内,第二和随后的客户端可以从缓存区由代理服务器传递内容。这会在图3里描述。所有4个客户端计算机1、2、3、4几乎同时发送内容请求到服务器8。由于内容之前没有被传递给网络5里的计算机,所有4个请求被传递给流媒体服务器8。服务器传递请求的内容10给计算机,比如说计算机4,且一个副本被存储在代理缓存区7内。服务器给剩余的计算机2、3、4发送消息12、13、14,指示等待一个短延迟并重新发送内容请求。当客户端计算机2、3、4重新发送请求时,请求的内容在共享缓存区内被发现,并从缓存区由代理服务器7传递给计算机。

在以上许多实施例里一个重要的考虑事项是识别那些将会或已经同时发出实时流媒体内容请求的两个或多个客户端计算机是在同一网络上。这可以通过流媒体服务器跟踪客户端计算机的请求路由或通过客户端应用程序在流会话开始时探查网络而实现。发明人首选的一个选择是在预注册阶段就识别同一网络上的客户端计算机。为了从流媒体服务器接收流媒体内容,用户必须注册以接收来自客户端计算机的内容,客户端计算机打算让用户浏览这些内容。在预注册期间,服务器跟踪每个客户端计算机的路由以发现客户端计算机的IP地址,并识别两个或多个客户端是否在同一网络上。然后,流媒体服务器让客户端应用程序能够下载和安装在客户端计算机web浏览器里,或在查找表格里记录客户端计算机的身份以识别何时从同一网络的两个或多个客户端接收到同时请求。

以上讨论描述了由软件应用程序和/或联网计算机和/或Internet环境执行的各种应用和方法。在客户端或服务器计算机上这种应用和方法的设计和实施是在本领域有经验技术人员的经验和能力之内。图4描述典型实施例的基本构造。客户端计算机1、2、3、4有web浏览器或媒体播放器(其上可以浏览到内容)的客户端应用程序接口。Web浏览器/媒体播放器发送RTSP消息以设置本地流,并接收回来自客户端应用程序的RTP数据信息包,这是真实的媒体内容。客户端应用程序截取web浏览器/媒体播放器RSTP消息,并发送超文本传输协议(HTTP)消息和数据信息包到流媒体服务器8,和从流媒体服务器8接收超文本传输协议(HTTP)消息和数据信息包。在面向客户端的解决方案里,客户端应用程序在发送内容请求之前引入一个随机延迟或一个由服务器设定的延迟,或在网络里协调其它客户端计算机上的配对客户端应用程序的请求。流媒体服务器8有一个服务器应用程序,它接收流媒体服务器8的HTTP服务器的请求,并打包流媒体内容区段作为可缓存的HTTP信息包,它被传递到HTTP服务器以回应客户端计算机的请求。在面向服务器的解决方案里,如果请求媒体内容的区段已经被发送到同一网络,服务器应用程序也检查来自同一网络的多个请求,并传递一个“延迟和重新发送”消息给HTTP服务器。服务器应用程序也处理预注册和路由跟踪功能。

图5-图7是在面向客户端的解决方案里客户端和服务器应用程序的功能流程图。图5是一个客户端应用程序的功能流程图。在面向服务器的解决方案里,客户端应用程序不需要执行图5的第二步骤-产生延迟。图6和图7分别是服务器应用程序预注册和流功能的功能流程图。

在以上所述的实施例里,固定延迟是由服务器指定的。技术人员将理解也可以使用其它固定延迟的方法。例如,同级客户端应用程序可以在同级种子客户端之后使用一个固定延迟。也有其它方法来确定在同级组内的种子。技术人员将理解在计算机科学领域里有许多种子客户端选举方案。例如,在同级首次注册服务时,服务器可以指派它们的等级,且当种子离开时,下一个更高等级的同级将成为种子,种子也可以是由服务器随机选择,或在种子离开前或服务器能够广播到所有同级并询问它们谁想成为下一个种子之前,第一个作出回复的可以成为新种子,等等。

在以上的描述里,已经对本发明的整体或组成部分作出参考,如本发明明确提出的,在此包括已知的等同部分。而且,本发明的示范实施例已经被详细描述以说明和解释本发明。但是,这不是意在限制本发明使用和功能的范围,技术人员将会理解:本发明一般应用在提供数据到同一网络上的两个或多个计算机、和管理网络流量和数据资源请求。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号