使用多播的流式带宽的优化利用的制作方法

文档序号:26624977发布日期:2021-09-14 21:08阅读:77来源:国知局
使用多播的流式带宽的优化利用的制作方法
使用多播的流式带宽的优化利用
1.本技术是申请日(国际申请日)为2017年12月7日,申请号为201780053312.0(国际申请号为pct/us2017/065128),发明名称为“使用多播的流式带宽的优化利用”的发明专利申请的分案申请。
技术领域
2.本公开涉及使用多播的流式带宽的优化利用。


背景技术:

3.本文件公开了利用使用多播技术的可用流式带宽(streaming bandwidth)的改进技术。随着更大量的内容通过网络连接进行流式传输,并且被服务的流式设备的数量增加,正在开发技术以更好地利用有限带宽和/或可用于递送流式内容的信道。


技术实现要素:

4.除了主要内容之外,多播流还用于分发要在流式设备上显现(render)的补充内容。然而,现有系统需要创建若干多播流,以实现补充内容的这种流式传输,无论是实时的还是以特定定义或特设(ad hoc)间隔的。这可能会出现许多与带宽可用性以及主要内容和补充内容的无缝回放相关的问题,并且可能导致可用于这种流式传输的网络资源和的计算资源过度紧张。本技术试图提供用于克服这些缺点的技术,以通过管理为多播流分配补充内容的方式来确保主要内容和补充内容的优化的和无缝的回放。
5.本说明书中描述的主题的创新方面可以体现在包括以下各项的系统中:数字分量请求服务器,其从多个客户端设备中的每一个接收对补充数字分量的数字分量请求,该补充数字分量将在与向相应客户端设备递送流式内容的多播流不同的附加多播流中呈现,其中能够在可用带宽上分发给多个客户端设备的附加多播流的数量小于多个客户端设备的总数;数字分量分发服务器,其i)选择补充数字分量以在能够被分发的附加多播流中的每一个的至少一部分上分发,为附加多播流中的相应一个所选择的补充数字分量不同于为其他附加多播流中的每一个所选择的补充数字分量,以及ii)将多个客户端设备的多个组中的一组分配给分发补充数字分量的附加多播流中的相应一个,每个所述组被分配有不同于分配给多个客户端设备的其他组中的每一组的附加多播流的附加多播流;指令生成服务器,其为多个客户端设备中的每一个生成指令,以调谐到分配给包括提交请求的不同的客户端设备的多个客户端设备的组的相应附加多播流;以及ping地址生成服务器,其生成包括占位符的客户端可配置ping地址,该占位符用于由提交请求的客户端设备插入设备标识符。
6.这些方面的其他实施例包括对应的方法和计算机程序,其被配置为执行编码在计算机存储设备上的该方法的动作。
7.这些和其他实施例可以各自可选地包括以下特征中的一个或多个。例如,多个客户端设备的至少一组包括两个或更多个不同的客户端设备。多播流正在向多个客户端设备
中的每一个递送相同的主要流式内容。接收数字分量请求的步骤还包括,对于至少一个数字分量请求接收数字分量请求中的多个设备标识符,其中多个不同的设备标识符指定将在相同的附加多播流上被提供相同的数字分量的多个客户端设备。数字分量请求的数量小于多个客户端设备的总数。
8.本说明书中描述的主题的创新方面可以体现在包括以下动作的方法中:由一个或多个计算机并且从多个客户端设备中的每一个接收对补充数字分量的数字分量请求,该补充数字分量将在与向相应客户端设备递送流式内容的多播流不同的附加多播流中呈现;当接收到数字分量请求时,由一个或多个计算机确定能够在可用带宽上分发给多个客户端设备的附加多播流的数量,其中附加多播流的数量小于多个客户端设备的总数;由一个或多个计算机响应于请求来选择补充数字分量,以在能够被分发的附加多播流中的每一个的至少一部分上分发,为附加多播流中的相应一个所选择的补充数字分量不同于为其他附加多播流中的每一个所选择的补充数字分量;由一个或多个计算机将多个客户端设备的多个组中的一组分配给分发补充数字分量的附加多播流中的相应一个,每个所述组被分配有不同于分配给多个客户端设备的其他组中的每一组的附加多播流的附加多播流;以及由一个或多个计算机并且向多个客户端设备对接收到的请求中的每一个作出响应,该响应具有(i)指示多个客户端设备中的每一个调谐到分配给包括提交请求的客户端设备的多个客户端设备的组的相应附加多播流的数据,以及(ii)包括占位符的客户端可配置ping地址,该占位符用于由提交请求的客户端设备插入设备标识符。
9.这些方面的其他实施例包括对应的系统、装置和计算机程序,其被配置为执行编码在计算机存储设备上的该方法的动作。
10.这些和其他实施例可以各自可选地包括以下特征中一个或多个。例如,多个客户端的组中的至少一组包括两个或更多个不同的客户端设备。多播流正在向多个不同的客户端设备中的每一个递送相同的主要流式内容。接收数字分量请求还包括,对于至少一个数字分量请求接收数字分量请求中的多个设备标识符,其中多个设备标识符指定在相同的附加多播流上被提供相同的数字分量的多个不同设备。数字分量请求的数量小于多个客户端设备的总数。对于多个客户端设备中的一个或多个,在客户端可配置ping地址所指定的目的地处,接收客户端设备调谐到分配给包括提交客户端可配置ping地址的客户端设备的相应组的附加多播广播的通知;以及将客户端可配置ping地址存储在数据库中。分配还包括基于与相应组相关联的一个或多个参数将多个组中的每一组分配给附加多播流中的不同一个。该参数可以包括与相应组中的多个客户端设备相关联的人口统计概况特征(demographic profile characteristics)。分配还包括将多个组中的每一组分配给附加多播流中不同的附加多播流,其中该方法还包括将特定客户端设备排除在不同组中的每一组之外。
11.本说明书中描述的主题的创新方面可以体现在包括以下各项的系统中:数字分量请求服务器,其从多个不同的客户端设备接收对补充数字分量的单独的数字分量请求,该补充数字分量将在与向多个不同的客户端设备递送流式内容的多播流不同的多播流中呈现,其中能够在可用带宽上分发到多个不同的客户端设备的附加多播流的数量小于多个不同的客户端设备的总数;数字分量分发服务器,其i)选择多个不同的补充数字分量以在能够被分发的附加多播流的至少一部分上分发,以及ii)将多个不同的客户端设备的不同组
分配给传输多个不同的补充数字分量的附加多播流中不同的附加多播流;指令生成服务器,其为多个不同的客户端设备中的每一个生成指令,以调谐到分配给包括提交请求的不同的客户端设备的不同组的附加多播流之一;以及ping地址生成服务器,其生成包括占位符的客户端可配置ping地址,该占位符用于由提交请求的不同的客户端设备插入设备标识符。
12.这些方面的其他实施例包括对应的方法和计算机程序,其被配置为执行编码在计算机存储设备上的该方法的动作。
13.这些和其他实施例可以各自可选地包括以下特征中的一个或多个。例如,不同组中的至少一组包括两个或更多个不同的客户端设备。多播流正向多个不同的客户端设备中的每一个递送相同的流式内容。对于至少一个数字分量请求,接收数字分量请求中的多个设备标识符,其中多个不同的设备标识符指定将在相同的附加多播流上被提供相同的数字分量的多个不同的设备。数字分量请求的数量小于多个不同的客户端设备的总数。
14.本说明书中描述的主题的创新方面可以体现在包括以下动作的方法中:由一个或多个计算机并且从多个不同的客户端设备接收对补充数字分量的单独的数字分量请求,该补充数字分量将在与向多个不同的客户端设备递送流式内容的多播流不同的多播流中呈现;当接收到数字分量请求时,由一个或多个计算机确定能够在可用带宽上分配给多个不同的客户端设备的附加多播流的数量,其中附加多播流的数量小于多个不同的客户端设备的总数;由一个或多个计算机响应于单独的请求来选择多个不同的补充数字分量,以在能够被分发的附加多播流的至少一部分上分发;由一个或多个计算机将多个不同的客户端设备的不同组分配给传输多个不同的补充数字分量的附加多播流的不同附加多播流;以及由一个或多个计算机并且向多个不同的客户端设备对单独的请求中的每一个作出响应,该响应具有(i)指示多个不同的客户端设备中的每一个调谐到分配给包括提交请求的不同的客户端设备的不同组的附加多播流之一的数据,以及(ii)包括占位符的客户端可配置ping地址,该占位符用于由提交请求的不同的客户端设备插入设备标识符。
15.这些方面的其他实施例包括对应的系统、装置和计算机程序,其被配置为执行在计算机存储设备上编码的该方法的动作。
16.这些和其他实施例可以各自可选地包括以下特征中的一个或多个。例如,不同组中的至少一组包括两个或更多个不同的客户端设备。多播流正向多个不同的客户端设备中的每一个递送相同的流式内容。接收单独的数字分量请求还包括,对于至少一个数字分量请求接收数字分量请求中的多个设备标识符,其中多个不同的设备标识符指定将在相同的附加多播流上被提供相同的数字分量的多个不同的设备。数字分量请求的数量小于多个不同的客户端设备的总数。对于多个客户端设备中的一个或多个,在由客户端可配置ping地址指定的目的地,接收不同的客户端设备调谐到分配给包括提交客户端可配置ping地址的不同的客户端设备的不同组的附加多播广播的通知;以及将客户端可配置ping地址存储在数据库中。分配还包括基于与每一组相关联的一个或多个参数将不同组分配给附加多播流中不同的附加多播流。该参数可以包括与多个不同的客户端设备相关联的人口统计概况特征。将多个不同的客户端设备的不同组分配给附加多播流中不同的附加多播流还包括,将特定客户端设备排除在不同组中的每一组之外。
17.可以实施本说明书中描述的主题的特定实施方式,以便实现以下优点中的一个或
多个。本公开的实施方式向多个客户端设备提供了,当用于提供数字分量的带宽在客户端设备和提供数字分量的服务器计算系统之间受到限制时的数字分量的分配。具体地,当多个客户端设备中的每一个请求可以个性化到一个或多个客户端设备的补充数字内容(由多个客户端设备显示)时,视频数字分量到多个客户端设备的线性递送可能受到带宽分配的限制。为了有效地利用可用带宽,服务器计算系统可以使用多播递送将补充数字分量分发到多个客户端设备,使得补充数字分量的多个配置被提供给客户端设备的相异子集。
18.给定的多播信道可以向一组客户端设备递送补充数字分量,而不同的多播信道可以向不同的一组客户端设备递送不同的补充数字分量,从而使得这不同的两组客户端设备能够基本上同时被提供不同的补充数字分量。当客户端设备组和不同的客户端设备组都被调谐到相同的流式信道(例如,观看相同的节目)时,可以指示客户端设备组调谐到给定的多播信道一段时间,以便呈现补充数字分量,同时可以指示不同的客户端设备组调谐到不同的多播信道相同的一段时间,以便呈现不同的补充数字分量。在该段时间结束时,所有客户端设备都可以返回到相同的流式信道,以继续在相同的流式信道上呈现正递送的内容。如此以来,在相同的时间段期间,不同的两组客户端设备可以被调谐到不同的相应流式信道,以使得不同的内容能够由那些不同的客户端设备组呈现。利用多播流来递送补充数字分量使客户端设备不用必须存储补充数字分量。同时,将客户端设备组调谐到相同的多播信道使得能够在带宽受限环境中服务更多数量的客户端设备(例如,相对于使用单播信道),同时仍然使得不同的客户端设备(例如,所有客户端设备都调谐到或访问相同的流式信道)能够被提供不同的补充数字分量。尽管调谐到相同的流式信道的所有客户端设备都被提供相同的补充数字分量,但是通过使用包括占位符的可配置ping地址,使得客户端设备能够特别报告补充数字分量的呈现,该占位符使得每个不同的客户端设备能够将其唯一的设备标识符插入到ping地址中。
19.本说明书中描述的主题的一个或多个实施例的细节在附图和下面的描述中阐述。从说明书、附图和权利要求中,本主题的其他潜在特征、方面和优点将变得显而易见。
附图说明
20.图1a、图1b示出了数字分量的多播递送环境。
21.图2示出了向客户端计算设备提供数字分量的示例多播流。
22.图3示出了提供给客户端计算设备的补充数字分量。
23.图4示出了数字分量的多播递送的示例过程。
24.图5示出了可以用于实施本文所描述的技术的示例计算系统和移动计算设备。
具体实施方式
25.本文件描述了在通过特定流式信道(例如,不同于用于递送数字分量的多播信道的信道)传输给定流式内容期间提供数字分量的多播递送的方法、系统和计算机可读介质。利用多播流来递送数字分量使得不同的数字分量能够被递送到在相同时间段期间正递送其他流式内容的不同的客户端设备。具体地,在该时间段开始时,一些客户端设备可以被指示调谐到递送给定数字分量的特定流式信道,同时另一些客户端设备可以被指示调谐到递送不同数字分量的不同流式信道。在该时段结束时,所有客户端设备都可以调谐回特定的
流式信道,以继续呈现给定的流式内容。利用多播信道来递送数字分量使得能够个性化提供给各种客户端设备的数字分量,同时在带宽受限环境中有效地利用可用带宽。如下文更详细讨论的,可配置ping地址可以用于使得客户端设备中的每一个能够单独报告特定数字分量在该客户端设备处的呈现,即使当该特定数字分量是借由多播流递送的(例如,而不是单播流或以其他方式寻址到该客户端设备)时。
26.在一些实施方式中,本文描述的系统从多个不同的客户端设备接收对补充数字分量的单独的数字分量请求,该补充数字分量将在不同于向多个不同的客户端设备递送流式内容的多播流的多播流中呈现。当接收到数字分量请求时,系统还确定能够在可用带宽上分发给多个不同的客户端设备的附加多播流的数量,其中附加多播流的数量小于多个不同的客户端设备的总数。系统还响应于单独的请求来选择多个不同的补充数字分量,以在能够被分发的附加多播流的至少一部分上分发。系统还将多个不同的客户端设备的不同组分配给传输多个不同的补充数字分量的附加多播流中不同的附加多播流。系统还向多个不同的客户端设备对单独的请求中的每一个作出响应,该响应具有(i)指示多个不同的客户端设备中的每一个调谐到分配给包括提交请求的不同的客户端设备的不同组的附加多播流之一的数据,以及(ii)包括占位符的客户端可配置ping地址,该占位符用于由提交请求的不同的客户端设备插入设备标识符。
27.图1a、图1b示出了用于数字分量的多播递送的环境100。环境100包括服务器计算系统102、客户端计算设备104a、104b、104c(统称为客户端计算设备104)和数字分量数据库106。服务器计算系统102包括数字分量请求服务器110、数字分量分发服务器112、指令生成服务器114和ping地址生成服务器116。数字分量请求服务器110、数字分量分发服务器112、指令生成服务器114和ping地址生成服务器116中的每一个可以是单独的服务器计算系统,或者服务器计算系统的组合。在一些实施方式中,数字分量请求服务器110、数字分量分发服务器112、指令生成服务器114和ping地址生成服务器116中的每一个可以在同一套物理硬件中实施。服务器计算系统102例如可以通过一个或多个网络与客户端计算设备104和数字分量数据库106通信。
28.参考图1a,客户端计算设备104中的每一个正在接收向客户端计算设备104递送流式内容的多播流(例如,来自第三方内容提供商)。例如,流式内容可以是视频内容、音频内容、文本内容、图像内容或各种内容类型的组合。在一些示例中,多播流正在向客户端计算设备104中的每一个递送相同的流式内容。例如,客户端计算设备104中的每一个被调谐到基本上同时向客户端计算设备104中的每一个递送多播流的体育广播。
29.每个客户端设备104可以是能够呈现流式内容或向显示设备递送流式内容的计算设备。例如,每个客户端设备104可以是媒体流设备、计算机、智能电话、平板设备或个人数字助理。在一些实施方式中,个人数字助理是包括麦克风和扬声器的设备,并且使得用户能够口头提交命令并且响应于命令呈现音频和/或可视信息。例如,数字助理可以包括用户可以通过其口头提交命令的麦克风,并且可以包括通过其向用户提供音频信息的扬声器。个人数字助理可以包括嵌入式显示器或者无线耦合到显示器,以使得可视信息能够以与音频信息的呈现相结合的方式或者独立于音频信息呈现给用户。为简洁起见,术语“客户端计算设备”在本文件中通篇使用,意图指代上面讨论的任一类型的客户端设备。
30.参考图2,示出了向客户端计算设备104递送流式内容的多播流200的示例。也就是
说,多播流200基本上同时向客户端计算设备104中的每一个递送相同的流式内容。换句话说,客户端计算设备104中的每一个被调谐到相同的多播流——例如,客户端计算设备104中的每一个被调谐到递送实况体育赛事的多播流(例如,实况线性视频)。
31.参考图1a,服务器计算系统102,特别是数字分量请求服务器110,分别从客户端计算设备104a、104b、104c接收数字分量请求120a、120b、120c(统称为数字分量请求120)(操作a)。例如,在多播流200期间的点210处,客户端计算设备104分别向服务器计算系统102提供数字分量请求120。在一些示例中,点210可以表示多播流200的流式内容中断——例如,在实况体育赛事超时或实况体育赛事的流式内容中断期间。在一些示例中,客户端计算设备104基本上同时分别向服务器计算系统102提供数字分量请求120(例如,由多播流200中包括的提示音(cue tone)触发)。在一些示例中,鉴于客户端计算设备104、服务器计算系统102和/或相应客户端计算设备104与服务器计算系统102之间的网络的任何相应延迟问题,客户端计算设备104在类似的时间分别向服务器计算系统102提供数字分量请求120。
32.数字分量请求120是对补充数字分量的请求,该补充数字分量将在与多播流200不同的多播流中呈现。在一些示例中,不同的多播流由与提供多播流200的第三方内容提供商不同的第三方内容提供商提供。补充数字分量可以包括文本、图像、视频或多媒体数字内容。在一些示例中,数字分量可以包括广告。
33.在一些示例中,数字分量请求120中的每一个包括作出数字分量请求120的相应客户端计算设备104的设备标识符。在一些示例中,数字分量请求120中的一个或多个可以包括指定多个客户端计算设备104的多个设备标识符(例如,批量请求)。例如,特定数字分量请求120可以包括客户端计算设备104a和104b的设备标识符。包括多个设备标识符的数字分量请求120包括对相同附加多播流上的相同补充数字分量的请求,如本文进一步描述的。在一些示例中,数字分量请求120中的一个或多个可以包括多个设备标识符,其指定多个客户端计算设备104以在带宽受限环境(例如,环境100)中有效利用可用带宽。
34.在一些示例中,数字分量请求120的数量小于客户端计算设备104的总数。也就是说,当特定数字分量请求120包括多个设备标识符时,数字分量请求120的数量小于客户端计算设备104的数量。例如,特定数字分量请求120可以包括客户端计算设备104a和104b的设备标识符,并且因此,数字分量请求120的数量(两个数字分量请求120)小于客户端计算设备104的数量(三个客户端计算设备104)。
35.服务器计算系统102确定能够例如在相应的客户端计算设备104和服务器计算系统102之间的可用带宽上分发给客户端计算设备104的附加多播流的数量(操作b)。具体地,只有特定数量的(不同的)多播流能够分发给客户端计算设备104(例如,由于限制了流式硬件可输出的单独流的数量的带宽限制或流式硬件限制)。在一些示例中,能够分发给客户端计算设备104的多播流的数量基于包括服务器计算系统102、客户端计算系统104和任何第三方内容提供商的网络基础设施。也就是说,与较高带宽的网络基础设施相比,带宽受限的网络基础设施能够分发更少数量的多播流。
36.在一些示例中,服务器计算系统102确定能够分发给客户端计算设备104的附加多播流的数量小于客户端计算设备104的总数。例如,服务器计算系统102可以确定能够分发给客户端计算设备104的附加多播流的数量是两个(不同的)附加多播流。服务器计算系统104可以将客户端计算设备104的总数与能够分发给客户端计算设备104的附加多播流的数
量进行比较。在该示例中,响应于对将在与多播流200不同的多播流中呈现的补充数字分量的数字分量请求120,服务器计算系统102确定提供补充数字分量的不同多播流的数量(例如,2)小于提供数字分量请求120的客户端计算设备104的数量(例如,3)。为此,在示出的示例中,两个或更多个客户端计算设备104将接收相同的不同多播流(例如,来自第三方内容提供商),如本文进一步描述的。
37.服务器计算系统102,特别是数字分量分发服务器112,响应于数字分量请求120来选择多个不同的补充数字分量(操作c)。具体地,服务器计算系统102选择由数字分量数据库106存储的(多个、不同的)补充数字分量150。服务器计算系统102可以基于相应客户端计算设备104和/或多播流200的一个或多个参数来选择补充数字分量150。例如,客户端计算设备104的参数可以包括人口统计特征,诸如客户端计算设备104的地理特征。此外,例如,多播流200的参数可以包括多播流200的内容特征,诸如内容的类别(例如,实况体育赛事的“体育”)。这里继续该示例,对于实况体育赛事的多播流200,以及对于特定客户端计算设备104的“旧金山,加利福尼亚州”的人口统计特征,数字分量分发服务器112可以基于i)体育类别和ii)加利福尼亚州旧金山的地理特征来选择补充数字分量150。数字分量分发服务器112可以基于期望的任一适当的选择方法来选择多个不同的补充数字分量150。服务器计算系统102,特别是数字分量分发服务器112,选择补充数字分量150以在能够被分发的附加多播流的至少一部分上分发。
38.参考图1b,服务器计算系统102,特别是数字分量分发服务器112,将客户端计算设备104的不同组分配给传输多个不同的补充数字内容150的附加多播流中不同的附加多播流(操作d)。例如,数字分量分发服务器112将第一组160分配为客户端计算设备104a、104b,并将第二组162分配为客户端计算设备104c。数字分量分发服务器112可以根据任一分组方法对客户端计算设备104进行分组,例如,基于客户端计算设备104的网络基础设施、客户端计算设备104彼此之间的地理接近度等。在一些示例中,数字分量分发服务器112基于客户端计算设备104的参数的相似性,例如,人口统计概况特征,对客户端计算设备104进行分组。在一些示例中,数字分量分发服务器112对客户端计算设备104随机进行分组。在一些示例中,数字分量分发服务器112形成客户端计算设备104的组的数量基于能够被分发的附加多播流的数量和客户端计算设备104的数量(例如,能够被分发的附加多播流的数量与客户端计算设备104的数量的比率)。
39.在一些示例中,将客户端计算设备104的不同组分配给附加多播流中不同的附加多播流包括将客户端计算设备104之一排除在任何组(例如,组160、162)之外。也就是说,数字分量分发服务器112确定补充数字内容150不适用于/不适合于客户端计算设备104之一。例如,不同的补充数字内容150用于具有特定地理特征(例如,位于旧金山)的客户端计算设备104,并且客户端计算设备104之一的地理特征与特定地理特征不相同。
40.服务器计算系统102,特别是指令生成服务器114,生成指示客户端计算设备104中的每一个调谐到分配给包括客户端计算设备104的相应组的附加多播流之一的数据(操作e)。例如,指令生成服务器114生成第一调谐数据170a,第一调谐数据170a指示组160中的客户端计算设备104a、104b中各自调谐到第一附加多播流220a,如图2所示。此外,例如,指令生成服务器114生成第二调谐数据170b,第二调谐数据170b指示组162中的客户端计算设备104c调谐到第二附加多播流220b,如图2所示。第一调谐数据170a和第二调谐数据170b统称
为调谐数据170。在一些示例中,第一附加多播流220a不同于第二附加多播流220b。在一些示例中,第一附加多播流220a与第二附加多播流220b相同。第一附加多播流220a和第二附加多播流220b统称为附加多播流220。
41.服务器计算系统,特别是ping地址生成服务器116,生成包括占位符的客户端可配置ping地址,该占位符用于由相应的客户端计算设备104插入设备标识符(在操作f期间)。例如,ping地址生成服务器116生成包括占位符的第一客户端可配置ping地址180a,该占位符用于由客户端计算设备104a、104b中的每一个插入唯一设备标识符;并且还生成包括占位符的第二客户端可配置ping地址180b,该占位符用于由客户端计算设备104c插入唯一设备标识符。第一客户端可配置ping地址180a和第二可配置ping地址180b被称为客户端可配置ping地址180。在一些示例中,客户端可配置ping地址180指示客户端计算设备104是否已经调谐到附加多播流220(例如,注册附加多播流220的补充数字内容150的印象(impression))。也就是说,在注册补充数字内容150的印象之后,客户端计算设备104在客户端可配置ping地址180中插入(或附加)设备标识符。
42.在一个示例中,客户端可配置ping地址180的形式为example.com/?streamid={streamid},cid={clientid}。客户端计算设备104在客户端可配置ping地址180的“clientid”部分将相应唯一设备标识符插入可配置ping地址180中,如本文进一步描述的。另外,客户端可配置ping地址180可以包括标识相应客户端计算设备104调谐到附加多播流220中的哪个的数据。例如,“streamid={streamid}”部分可以填充客户端计算设备调谐到的特定多播流的流标识符,并因此指示相应的客户端计算设备104呈现了附加多播流220中的哪个。{streamid}可以由服务器或客户端计算设备104填充。
43.服务器计算系统102响应数字分量请求120。具体地,服务器计算系统102响应于请求120a、120b,向客户端计算设备104a、104b发送第一调谐数据170a和第一客户端可配置ping地址180a(操作g)。此外,服务器计算系统102响应于请求120c,向客户端计算设备104c发送第二调谐数据170b和第二客户端可配置ping地址180b(操作h)。在一些示例中,给定客户端计算设备104的任一网络等待时间的情况下,服务器计算系统102基本上同时响应数字分量请求120。在一些示例中,服务器计算系统102在点210的几秒钟或更短时间内响应数字分量请求120。
44.在一些示例中,客户端计算设备104,例如,向服务器计算系统102,提供在由相应客户端可配置地址指定的目的地处接收的、相应客户端计算设备104调谐到附加多播广播的相应通知。例如,客户端计算设备104a、104b提供客户端计算设备104a、104b调谐到第一多播流220a的相应通知,并且该相应通知在由第一客户端可配置ping地址180a指定的相应目的地处接收。此外,例如,客户端计算设备104c提供客户端计算设备104c调谐到第二多播流220b的通知,并且该通知在由第二客户端可配置ping地址180b指定的目的地处接收。服务器计算系统102可以将客户端可配置ping地址180a、180b存储在数据库中。服务器计算系统102可以解析相应的客户端可配置ping地址180,以确定哪些客户端计算设备104注册了附加多播流220的印象。
45.继续上述示例,客户端计算设备104a将唯一id(例如,“id104a”)插入到附加多播流220a(例如,“220a”)的ping地址180a中,例如,example.com/?streamid={220a},cid={104a};客户端计算设备104b将唯一id(例如,“id104b”)插入到附加多播流220a的ping地
址180b中,例如,example.com/?streamid={220a},cid={104b};以及,客户端计算设备104c将唯一id(例如,“id104c”)插入到附加多播流220b(例如,“220b”)的ping地址180c中,例如,example.com/?streamid={220b},cid={104c}。
46.参考图2,在点210之后的点230处,客户端计算设备104中的每一个可以调谐回多播流200,以再次接收多播流200,例如,在完成接收适当的附加多播流220a、220b之后。例如,当客户端计算设备之一发送最后的ping(例如,数字分量回放完成的ping)时,该最后的ping的发送可以触发客户端计算设备调谐回多播流200。可替代地或附加地,定时器或另一触发信号可以用于触发客户端计算设备104调谐回多播流200。使用不与最后的ping(或另一ping)相联结(tied)的定时器或另一触发信号可以使得客户端计算设备104能够在适当时间重新调谐到多播流200,即使在数字分量的回放没有完成时。倒计时定时器可以被设置为例如数字分量回放的持续时间,使得当定时器达到零时,客户端计算设备104可以返回多播流200。
47.图3示出了适当的不同多播流220a、220b中的由每个客户端计算设备104接收的补充数字内容150。例如,如本文所述,客户端计算设备104a、104b接收第一附加多播流220a。第一附加多播流220a可以包括第一补充数字分量150a和第二补充数字分量150b。此外,例如,如本文所述,客户端计算设备104c接收第二附加多播流220b。第二附加多播流220b可以包括第三补充数字分量150c和第一补充数字分量150a。
48.为此,如图3所示,附加多播流220a、220b可以包括公共的补充数字分量——例如,附加多播流220a、220b都可以包括第一补充数字分量150a。在一些示例中,附加多播流220a、220b可以包括以不同次序(例如,由适当的客户端计算设备104呈现补充数字分量的次序)排列的相同补充数字分量。
49.图4示出了用于数字内容的多播递送的示例过程400。过程400可以例如由服务器计算系统102和/或客户端计算设备104或另一数据处理装置来执行。过程400还可以被实施为存储在计算机存储介质上的指令,并且一个或多个数据处理装置执行指令使得该一个或多个数据处理装置执行过程400的一些或全部操作。
50.从客户端计算设备接收数字分量请求(402)。数字分量请求是对补充数字分量的请求,该补充数字分量由与向多个不同设备中的每一个递送特定内容流的多播流不同的多播流来递送。例如,提交数字分量请求之一的客户端计算设备中的每一个可以被调谐到递送流式内容的相同集合(例如,特定体育赛事)的相同流式信道。
51.请求中的每一个可以包括关于提交请求的客户端设备和/或客户端设备的用户的各种信息。例如,各种信息可以包括设备类型(例如,平板计算机、移动设备、台式计算机、个人数字助理)、设备标识符、用户的用户标识符、用户的用户概况、客户端设备的地理位置、或其他信息。请求中的每一个还可以指定该请求是对补充数字分量的请求,该补充数字分量将在被递送到多个不同的客户端计算设备的流式内容的相同集合的中断期间呈现。
52.当接收到数字分量请求时,确定能够在可用带宽上分配给客户端计算设备的附加多播流的数量(404)。在一些实施方式中,能够被分发的附加多播流的数量基于用于分发流式内容的当前带宽量、可用于分发流式内容的带宽总量、和/或递送将携带数字分量的每个流所需的带宽量来确定。
53.例如,假设将递送数字分量的每个多播流需要6mb/s的带宽、可用于分发流式内容
的带宽总量为1gb/s、以及900mb/s的带宽当前正用于分发流式内容。在该示例中,100mb/s的带宽可用于分发附加多播流(例如,1gb/s

900mb/s),使得16个附加的多播流可以被分发给客户端计算设备(例如,(100mb/s)/(6mb/s)=16.67)。
54.在一些示例中,能够被分发的附加多播流的数量小于提交数字分量请求的多个不同的客户端设备的总数。例如,对在数字分量请求中接收到的设备标识符的数量进行计数,并与能够被分发的附加多播流的数量进行比较。出于示例的目的,假设在数字分量请求中接收到32个不同的设备标识符(例如,根据每次遇到新设备标识符时递增的计数器)。在该示例中,设备标识符的数量(例如,32)大于能够被分发的附加多播流的数量(例如,16)。如此以来,单独的流不可以用于将不同的补充数字分量携带到客户端设备中的每一个。因此,一些客户端设备将调谐到相同的流式信道以查看相同的补充数字分量。
55.响应于单独的请求,选择多个不同的补充数字分量,以用于在能够被分发的附加多播流的至少一部分上分发(406)。在一些示例中,基于相应客户端计算设备和/或多播流的参数来选择补充数字分量。例如,如上所述,参数可以包括设备类型(例如,平板计算机、移动设备、台式计算机、个人数字助理)、设备标识符、用户的用户标识符、用户的用户概况、客户端设备的地理位置、或其他信息。此外,多播流的参数可以包括多播流的内容的类别。例如,对于请求的特定客户端计算设备,基于i)客户端计算设备的参数和ii)特定客户端计算设备调谐到的多播流(相同流式信道)的内容来选择补充数字分量。
56.客户端计算设备被分配给传输多个不同的补充数字内容的附加多播流中不同的附加多播流(408)。在一些示例中,基于类似特征,例如,彼此之间的接近度或者用户的类似的人口统计概况,将客户端计算设备分组在一起。例如,可以将具有类似地理位置(例如,城市内的相同区域)的客户端计算设备分组在一起;或者可以将对体育赛事有相同兴趣的分组在一起。在一些示例中,基于两个或更多个类似特征(例如,地理特征和人口统计特征)将客户端计算设备分组在一起。
57.为数字分量请求中的每一个生成响应,并将其传送到相应客户端计算设备(410)。在一些示例中,响应包括指示客户端计算设备调谐到分配给包括不同的客户端计算设备的不同组的附加多播流之一的调谐数据。例如,调谐数据使得相应客户端计算设备按相应客户端计算设备所属的组调谐到附加多播流之一。响应还可以包括客户端可配置ping地址,其包括占位符,该占位符用于由客户端计算设备插入设备标识符。例如,客户端计算设备可以将唯一设备标识符插入(或附加)到客户端可配置ping地址中,指示注册了适当的附加多播流的印象的相应客户端计算设备。
58.客户端计算设备可以向由相应客户端可配置ping地址标识的目的地发送相应客户端计算设备调谐到适当的附加多播流的通知。也就是说,在由客户端可配置ping地址指定的目的地处接收通知(412)。例如,通知可以包括指示相应客户端计算设备的唯一客户端标识符的ping地址,以及相应客户端计算设备注册了印象的特定附加多播流。
59.图5示出了可以与本文描述的技术一起使用的计算机设备500和移动计算机设备550的示例。计算设备500意图表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机(mainframe)、以及其他适当的计算机。计算设备550意图表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能手机、以及其他类似的计算设备。这里示出的组件、它们的连接和关系、以及它们的功能仅仅是示
例性的,并不意味着限制本文件中描述和/或要求保护的本发明的实施方式。
60.计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口510的高速接口508、以及连接到低速总线514和存储设备506的低速接口512。组件502、504、506、508、510和512中的每一个使用各种总线互连,并且可以安装在公共主板上或者视情况以其他方式安装。处理器502可以处理用于在计算设备500内执行的指令,包括存储在存储器504中或存储设备506上的指令,以在外部输入/输出设备(诸如耦合到高速接口508的显示器516)上显示gui的图形信息。在其他实施方式中,视情况可以使用多个处理器和/或多个总线以及多个存储器和存储器类型。并且,可以连接多个计算设备500,每个设备提供必要操作的一部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
61.存储器504将信息存储在计算设备500内。在一个实施方式中,存储器504是一个或多个易失性存储器单元。在另一实施方式中,存储器504是一个或多个非易失性存储器单元。存储器504也可以是另一形式的计算机可读介质,诸如磁盘或光盘。
62.存储设备506能够为计算设备500提供大容量存储。在一种实施方式中,存储设备506可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储设备、或设备阵列,包括存储区域网络中的设备或其他配置。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,当执行这些指令时,执行一种或多种方法,诸如上述方法。信息载体是计算机或机器可读介质,诸如存储器504、存储设备506或处理器502上的存储器。
63.高速控制器508管理计算设备500的带宽密集型操作,而低速控制器512管理较低带宽密集型操作。这种功能分配只是示例性的。在一种实施方式中,高速控制器508耦合到存储器504、显示器516(例如,通过图形处理器或加速器)以及高速扩展端口510,高速扩展端口510可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器512耦合到存储设备506和低速扩展端口514。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或网络设备(诸如交换机或路由器)。
64.如图所示,计算设备500可以以多种不同的形式实施。例如,它可以实施为标准服务器520,或者在一组这样的服务器中多次实施。它也可以实施为机架服务器系统524的一部分。另外,它可以在诸如膝上型计算机522的个人计算机中实施。可替代地,来自计算设备500的组件可以与移动设备中的其他组件组合(未示出),诸如设备550。这种设备中的每一个可以包含计算设备500、550中的一个或多个,并且整个系统可以由彼此通信的多个计算设备500、550组成。
65.计算设备550包括处理器552、存储器564、诸如显示器554的输入/输出设备、通信接口566、和收发器568以及其他组件。设备550也可以设置有存储设备,诸如微驱动器或其他设备,以提供附加的存储。组件550、552、564、554、566和568中的每一个使用各种总线互连,并且这些组件中的若干个可以安装在公共主板上或者视情况以其他方式安装。
66.处理器552可以执行计算设备640内的指令,包括存储在存储器564中的指令。处理器可以被实施为包括单独的以及多个模拟的和数字的处理器的芯片的芯片集。处理器可以提供例如设备550的其他组件的协调,诸如用户接口的控制、设备550运行的应用程序、以及设备550的无线通信。
67.处理器552可以通过耦合到显示器554的控制接口558和显示接口556与用户通信。显示器554可以是例如tft lcd(thin

film

transistor liquid crystal display,薄膜晶体管液晶显示器)或oled(organic light emitting diode,有机发光二极管)显示器,或者其他适当的显示技术。显示接口556可以包括用于驱动显示器554向用户呈现图形和其他信息的适当电路。控制接口558可以接收来自用户的命令,并将其转换以提交给处理器552。另外,可以提供外部接口562与处理器552通信,以便实现设备550与其他设备的近场通信。外部接口562可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且也可以使用多个接口。
68.存储器564将信息存储在计算设备550内。存储器564可以实施为一个或多个计算机可读介质、一个或多个易失性存储器单元、或一个或多个非易失性存储器单元中的一个或多个。也可以提供扩展存储器554,并通过扩展接口552连接到设备550,扩展接口552可以包括例如simm(single in line memory module,单线存储器模块)卡接口。这种扩展存储器554可以为设备550提供额外的存储空间,或者也可以为设备550存储应用程序或其他信息。具体地,扩展存储器554可以包括用以执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器554可以作为设备550的安全模块来提供,并且可以用允许安全使用设备550的指令来编程。另外,可以经由simm卡提供安全应用以及附加信息,诸如以不可破解(non

hackable)的方式将识别信息置于simm卡上。
69.存储器可以包括例如闪存和/或nvram存储器,如下所述。在一个实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,当执行这些指令时,执行一种或多种方法,诸如上述方法。信息载体是计算机或机器可读介质,诸如存储器564、扩展存储器554、处理器552上的存储器,或者可以例如通过收发器568或外部接口562接收的传播信号。
70.设备550可以通过通信接口566无线通信,通信接口566在必要时可以包括数字信号处理电路。通信接口566可以提供各种模式或协议下的通信,诸如gsm语音呼叫、sms、ems或mms消息、cdma、tdma、pdc、wcdma、cdma2000或gprs,等等。这种通信可以例如通过射频收发器568来进行。另外,可以进行短程通信,诸如使用蓝牙、wifi或其他这种收发器(未示出)。另外,gps(global positioning system,全球定位系统)接收器模块550可以向设备550提供附加的导航和位置相关的无线数据,这些数据视情况可以由设备550上运行的应用使用。
71.设备550也可以使用音频编解码器560进行可听通信,音频编解码器560可以接收来自用户的口头信息并将其转换成可用的数字信息。音频编解码器560同样可以例如在设备550的手机中通过诸如扬声器为用户生成可听声音。这种声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括由在设备550上操作的应用生成的声音。
72.如图所示,计算设备550可以以多种不同的形式实施。例如,它可以实施为蜂窝电话580。它也可以实施为智能电话582、个人数字助理或其他类似移动设备的一部分。
73.本文描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的asic(application specific integrated circuit,专用集成电路)、计算机硬件、固件、软件、和/或其组合中实施。这些各种实施方式可以包括在一个或多个计算机程序中的
实施方式,计算机程序在包括至少一个可编程处理器的可编程系统上可执行和/或可解释,可编程处理器可以是专用或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
74.这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实施。如本文使用的,术语“机器可读介质”“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(programmable logic device,pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
75.为了提供与用户的交互,这里描述的系统和技术可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)和用户可通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
76.这里描述的系统和技术可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可通过其与这里描述的系统和技术的实施进行交互),或者包括这种后端组件、中间件组件或前端组件的任意组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)进行互连。通信网络的示例包括局域网(“lan”)、广域网(“wan”)和互联网。
77.计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助在各自计算机上运行并且彼此之间具有客户端

服务器关系的计算机程序而产生的。
78.虽然本公开包括一些细节,但是这些细节不应被解释为对本公开的范围或所要求保护的范围的限制,而是对本公开的示例实施方式的特征的描述。在分离的实施方式的上下文中的本公开中描述的某些特征也可以以单个实施方式中的组合来提供。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中单独地或以任何合适的子组合来提供。此外,尽管在上文中特征可能被描述为以某些组合的方式起作用,甚至最初被这样要求保护,但是在一些情况下,来自要求保护的组合的一个或多个特征可以从该组合中删除,并且要求保护的组合可以指向子组合或子组合的变型。
79.类似地,虽然在附图中以特定次序描绘了操作,但这不应被理解为要求以所示的特定次序或以顺序的次序执行这些操作,或者执行所有所示的操作,以获得期望的结果。在某些情境中,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
80.因此,已经描述了本公开的特定实施方式。其他实施方式在以下权利要求的范围
内。例如,权利要求中列举的动作可以以不同的次序执行,并且仍然获得期望的结果。已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。例如,可以使用上面所示的各种形式的流程,对步骤进行重新排序、添加或移除。因此,其他实施方式也在所附权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1