用于管理内容订阅数据的方法和系统与流程

文档序号:13742428阅读:386来源:国知局
用于管理内容订阅数据的方法和系统与流程



背景技术:

提供内容订阅的服务常常允许用户流传输由多个内容提供商(contentprovider)提供的内容,内容订阅中的每个提供商提供有限数量的流来访问该内容。然而,内容订阅的用户在用户签约订阅的时候、在用户正在流传输内容时都可能发现管理与他们的订阅有关的数据的任务是打击性(overwhelming)的。也就是,用户可能发现创建账户、然后记住并且维护关于和每个内容提供商相关联的每个账户的凭证信息的过程是重复且乏味的。另外,用户可能会对从内容提供商可获得的数量不足的流感到沮丧,诸如当内容订阅的所有用户有兴趣在电视节目的新剧集一变为可获得就观看该剧集并且用户数量超过可获得的流的数量时。



技术实现要素:

因此,本文描述了用于媒体引导应用的方法和系统,媒体引导应用使得用户不必管理用于多个订阅服务的多个账户。例如,通过监视用户活动并且代表用户管理用户账户,媒体引导应用可以推荐针对用户的个人需要定制的订阅服务和/或订阅服务条款。

另外,媒体引导应用可以代表用户行事以检索并处理来自众多内容提供商的大量数据,从而确定最符合用户需要的订阅服务和/或来自特定订阅服务的特定计划。如下面深入讨论的,媒体引导应用可以通过比较分开的且各异的数据集来对大量数据(通常只在计算机可读代码中可访问)进行处理以便为了用户的利益而识别趋势和统计优化。

例如,在控制电路上实现的媒体引导应用可以通过对给定时间段的数据流输入和输出度量进行分析来检测同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过可获得流(availablestream)的数量的若干个实例。例如,控制电路可以对数据流输入和输出度量进行分析以在用户的订阅时间段期间检测到同时流传输媒体的请求的数量超过可获得流的数量的十二个实例。作为响应,控制电路可以在控制其他变量(例如,价格)的同时确定替代性订阅服务/计划在与该数据流输入和输出度量相比时是否能够提高用户可获得的流的数量。如果是,则控制电路可以发送推荐替代性订阅服务/计划的消息(例如,该消息指示额外的流可供购买)。

在一些实施例中,控制电路可以检测同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的多个实例。例如,控制电路可以检测到,在十二个实例中,同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量。换句话说,在十二个场合下,至少一个用户不能流传输来自内容订阅服务的内容。结果,使用订阅流传输内容的用户可能由于不能在他或她选择的时候观看内容而感到沮丧。此外,用户可能不知道能够购买额外的流,并且可能不知道使用订阅的其他用户的观看习惯。因此,感到沮丧的用户可能看到很少的选项来改善他或她的观看体验,并且可能开始使用竞争对手的订阅服务来流传输媒体,或者可能将他或她的订阅全部取消。

控制电路可以生成多个时间戳,其中所述多个时间戳中的每个时间戳对应于所述多个实例中的一个。例如,如果控制电路检测到同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的十二个实例,则控制电路可以生成多个时间戳,其中每个时间戳对应于这十二个实例中的一个。结果,控制电路可以通过使时间戳与每个实例相关联来利用时间戳有效地追踪这些实例,在这些实例中,用户因为可获得流的数量不足而不能流传输内容。

控制电路然后可以将所述多个时间戳中的每个时间戳与和订阅服务的订阅时间段对应的时间戳范围进行比较,以确定所述多个实例在订阅时间段期间发生的数量。例如,如果控制电路生成十二个时间戳,则控制电路然后可以将这十二个时间戳中的每个时间戳与订阅服务的订阅时间段进行比较,以确定落到订阅时间段中的实例的数量(基于它们的对应时间戳)。例如,订阅时间段可以由开始时间戳和结束时间戳限定。控制电路然后可以比较这二十个时间戳中的每个时间戳以确定每个时间戳是否落在订阅时间段的开始时间戳和结束时间戳内。基于落在订阅时间段的开始时间戳和结束时间戳的范围内的时间戳的数量,控制电路可以确定所述多个实例在订阅时间段期间发生的数量。

在一些实施例中,控制电路可以在服务器处将所述多个实例在订阅时间段期间发生的数量与订阅时间段的阈值数量进行比较。例如,控制电路可以确定对于给定的订阅时间段,阈值数量被设置为八,并且可以比较这两个数量。例如,阈值数量可以指示用户在此之后可能变得对可获得流的匮乏感到沮丧的实例的数量。通过确定是否超过阈值数量,控制电路可以确定用户是否有可能想要获得额外的流。

在一些实施例中,控制电路可以响应于确定所述多个实例在订阅时间段发生的数量超过订阅时间段的阈值数量,从服务器向不同装置中的一个装置发送消息。例如,响应于确定所述多个实例在订阅时间段期间发生的数量(例如,十二个)超过阈值数量(例如,八个),控制电路从服务器向该装置发送指示与装置相关联的用户可以购买额外的流的消息。通过发送消息,控制电路可以解决用户不能流传输内容的沮丧,并且可以为用户提供解决可获得流的数量不足的问题的机会。

在一些实施例中,控制电路可以基于订阅时间段的时间长度来从多个可能的阈值数量中选择订阅时间段的阈值数量。例如,控制电路可以选择一个月的订阅时间段的低阈值数量(例如,十个),以便考虑如下事实:在较短时间段(诸如一个月的时间段)期间,同时流传输来自订阅服务的媒体的请求的数量超过用户从订阅服务可获得的流的数量的实例较少。因此,并非依赖于单个静态阈值,控制电路可以应用与用户的观看习惯相关的阈值,因为各个用户容忍不可获得流的能力是不同的。

附加地或可替代地,控制电路可以基于用户从订阅服务可获得的流的数量来从多个可能的阈值数量中选择订阅时间段的阈值数量。例如,控制电路可以分析与订阅相关联的流的数量,并且确定在一个点具有较多可获得流的与订阅相关联的用户具有较少的流并且已经增加流以便最小化由流数量不足引起的流传输问题。因此,控制电路可以确定以可获得流的数量较少为特征的内容订阅的用户可能更有可能寻求理解同时流传输媒体的请求的数量有多频繁地超过用户从订阅服务可获得的流的数量。同时,以用户从订阅服务可获得流的数量较多为特征的内容订阅的用户可能不太可能寻求理解同时流传输媒体的请求的数量有多频繁地超过用户从订阅服务可获得的流的数量,因为该用户可能已经增加了可获得流的数量以便避免同时流传输媒体的请求的数量超过用户从订阅服务可获得的流的数量的情形。

附加地或可替代地,控制电路可以将所述多个时间戳中的每个时间戳与和订阅服务的订阅时间段的一部分对应的时间戳范围进行比较以确定所述多个实例在订阅时间段的该部分期间发生的数量。例如,控制电路可以将每个时间戳与和订阅时间段中受欢迎的节目被播出的部分(例如,订阅时间段的对应于周三7:00pm到9:00pm时段的所有部分,这些时段对应于节目“thesimpsons”的新剧集的播出)对应的时间戳范围进行比较,并且确定在与订阅时间段的该部分相对应的时间戳范围内出现十个时间戳。此外,控制电路可以在服务器处将所述多个实例在订阅时间段的所述部分的期间发生的数量与订阅时间段的所述部分的阈值数量进行比较。例如,控制电路将所述多个实例在订阅时间段的所述部分期间发生的数量(例如,十个)与阈值数量(例如,六个)进行比较。最后,控制电路可以响应于确定所述多个实例在订阅时间段的所述部分期间发生的数量超过订阅时间段的所述部分的阈值数量,对从服务器发送到所述不同装置中的一个装置的消息进行修改。例如,控制电路确定所述多个实例在订阅时间段的所述部分期间发生的数量(例如,十个)超过阈值数量(例如,六个)。作为响应,控制电路通过指示例如在订阅时间段的对应部分期间(例如,在周三7:00pm和9:00pm之间的时段期间,这些时段对应于节目“thesimpsons”的新剧集的播出)同时流传输媒体的请求的数量经常超过用户从订阅服务可获得的流的数量来修改从服务器发送到由流传输来自订阅的媒体的用户所用的装置之一的消息。

在一些实施例中,控制电路可以基于订阅时间段的时间长度来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,与较短的订阅时间段长度(例如,一个月)相比(在这种情况下控制电路选择较低的数量(例如,三个)),如果订阅时间段的长度较长(例如,一年),则控制电路为订阅时间段的所述部分的阈值数量选择较高的数量(例如,二十个)。因此,控制电路可以考虑如下事实:虽然同时流传输媒体的请求的数量超过用户从订阅服务可获得的流的数量的实例的概率随着时间的过去是恒定的,但是与较短时间段相比,较长的时间段内将发生更多的实例。

在一些实施例中,控制电路可以基于与订阅时间段的所述部分对应的日期来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,响应于确定受欢迎的电视节目(例如,“thesimpsons”)的第一季的日期落在订阅时间段的所述部分内,控制电路为订阅时间段的所述部分选择低阈值数量,以便考虑到订阅的大部分用户有兴趣观看受欢迎的电视节目(例如,“thesimpsons”)的当季剧集的事实。

在一些实施例中,控制电路可以基于一天中与订阅时间段的所述部分相对应的时间来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,响应于确定订阅时间段的所述部分(例如,某一天期间的8:00pm和10:00pm之间的时隙)对应于订阅的用户最有可能流传输媒体时的时间,控制电路选择低的阈值数量。因此,控制电路可以在选择阈值数量时考虑峰值需求的时间范围可能基于用户的观看习惯而存在(例如,订阅服务的大部分用户可能希望在工作后通过观看流媒体来放松)的事实。

附加地或可替代地,控制电路可以基于在订阅时间段的所述部分期间变为从订阅服务可获得的媒体资产的数量来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,一些订阅服务定期地将新的媒体资产(例如,整三季的“thesimpsons”)添加到它们的媒体节目表。控制电路可以基于添加到订阅服务媒体产品的媒体资产的数量来确定在订阅时间段的所述部分期间变为从订阅服务可获得的媒体资产的数量。例如,如果在订阅时间段的所述部分期间变为从订阅服务可获得的媒体资产的数量大于在订阅时间段的其他部分期间变为从订阅服务可获得的媒体资产的数量,则控制电路选择低的阈值数量,以便考虑如下事实,即,订阅的用户更有可能流传输媒体资产,因此可能更有可能寻求理解请求的数量有多频繁地超过用户从订阅服务可获得的流的数量。

在一些实施例中,控制电路可以发送包括用于降低所述多个实例的频率的推荐的消息。例如,当确定所述多个实例在订阅时间段期间发生的数量超过订阅时间段的阈值数量时,控制电路从服务器向订阅的用户所用的不同装置之一发送消息。该消息可以包括用于降低所述多个实例的频率的推荐。例如,控制电路向用户通知该用户在某个时间之外(例如,在周三的7:00pm和9:00pm时隙之外,该时隙对应于其他用户有兴趣观看的节目“thesimpsons”的新剧集的播出)将更有可能成功地流传输媒体。

此外,通过订阅内容聚合器(contentaggregator)服务,用户可以变为有权访问由多个订阅服务提供的媒体内容。由每个订阅服务提供的媒体内容在内容聚合器服务处不总是可直接获得的,因此迫使用户经由每个内容提供商的网站来访问内容。在能够访问内容之前,用户必须向每个内容提供商创建账户,这是一件用户可能发现是重复的且乏味的任务。另外,记住并且维护与多个订阅服务账户相关联的凭证信息的过程可能进一步打击到用户。

在一些实施例中,控制电路可以自动地从内容聚合器服务接收认证信息。例如,在控制电路上实现的媒体引导应用可以在控制电路接收到为用户订阅订阅服务的请求之前接收认证信息并且将认证信息与用户账户相关联。控制电路然后可以接收用户订阅订阅服务的请求并从而验证账户,以及向用户授予对订阅服务的产品的访问权限。

控制电路可以在与订阅服务(例如,hulu)相关联的内容提供商服务器处从与第二订阅服务(例如,rovi超级聚合器)相关联的内容聚合器服务器接收第一认证密钥,其中第一认证密钥是在用户订阅第一订阅服务之前接收到的。例如,用户可以订阅内容聚合器服务(即,第二订阅服务)。用户一完成他或她向第二订阅服务的注册,在与第二订阅服务相关联的内容聚合器服务器上实现的控制电路就可以生成认证密钥以使用户与作为内容聚合器订阅的一部分可获得的订阅服务中的一些或全部相关联,并且将生成的认证密钥传送到与每个订阅服务(例如,第一订阅服务)相关联的服务器。每个认证密钥可以被加密以便确保存储在密钥中的信息被安全地发送到与每个订阅服务相关联的服务器。另外,每个认证密钥可以包括识别用户和第二订阅服务的信息。在与第一订阅服务相关联的内容提供商服务器上实现的控制电路然后可以从内容聚合器服务器接收所生成的认证密钥。在一些情况下,在内容提供商服务器上实现的控制电路可以对认证密钥进行解密并提取存储在密钥中的信息。控制电路可以附加地将认证密钥存储在内容提供商服务器上。以这种方式,与第一用户相关联的认证信息可以在不麻烦用户手动创建账户的情况下被发送到第一订阅服务。

在内容提供商服务器上实现的控制电路可以将第一认证密钥与第一多个可接受的认证密钥进行比较以确定是否基于第一认证密钥生成用于第一订阅服务的第一账户。例如,在内容提供商服务器上实现的控制电路可以提取存储在第一认证密钥中的信息,并且确定该密钥的与第二订阅服务的标识符相关的部分中列出的订阅服务(例如,rovi超级聚合器)的名称。控制电路然后可以检索控制电路以前已经识别出被允许在第一订阅服务上生成用户账户的订阅服务的列表,并且将订阅服务的名称与所检索的列表中的每个订阅服务进行比较。实际上,在内容提供商服务器上实现的控制电路可以在保持对所创建的账户的控制的同时从内容聚合器(即,第二订阅服务)接收关于新用户的信息。例如,第一订阅服务可以与第二订阅服务达成协议以折扣价提供第一订阅服务上的订阅。因此,通过将关于第二提供商的信息封装在认证密钥中,第一订阅服务确保只有与受信任的内容聚合器相关联的用户的账户被创建。

在内容提供商服务器上实现的控制电路响应于确定第一认证密钥与第一多个可接受的认证密钥中的一个匹配,可以在内容提供商服务器处生成第一用户账户。例如,为了创建在内容提供商服务器上生成账户所必需的信息,控制电路可以使用认证密钥中包含的信息,诸如用户名、密码和订阅服务名称。在一些情况下,控制电路可以存储与第一账户相关联的指定该账户未被验证的指示。换句话说,账户虽然被创建,但是用户还不可访问。如果用户或第二订阅服务在未来决定验证账户,则在内容提供商服务器上实现的控制电路可以在几乎不需要用户输入的情况下高效地验证账户,如下面将更详细地说明的那样。

在内容提供商服务器上实现的控制电路可以将第一用户账户存储在指示第一用户账户对应于第一认证密钥的数据库条目中。例如,在内容提供商服务器上实现的控制电路可以将与生成的用户账户相关的信息存储在数据库中存储的数据库条目中。控制电路可以进一步使用户账户与认证密钥相关联,例如,通过将指向认证密钥的位置的指针存储在与用户账户相关联的数据库条目中。通过使存储的用户账户与第一认证密钥相关联,在内容聚合器服务器上实现的控制电路可以确保在第二订阅或用户决定验证第一订阅服务上的账户的情况下账户可以被快速地验证。

继存储第一用户账户之后,在内容提供商服务器上实现的控制电路可以在内容提供商服务器处从内容聚合器服务器接收用户订阅第一订阅服务的请求,其中该请求包括第二认证密钥。控制电路可以响应于订阅第一订阅服务的用户请求,接收第二认证密钥。例如,在内容聚合器服务器上实现的控制电路可以检测到第二订阅服务(例如,rovi超级聚合器)的用户期望订阅第一订阅服务(例如,hulu)。在不同的例子中,当订阅第一服务的成本满足成本标准时,在第二服务上实现的控制电路可以自动地将请求发送到第一服务。第一订阅服务上的控制电路可以对存储在第二密钥中的信息进行解密,检索存储在第二密钥中的信息,并且将认证密钥存储在内容提供商服务器上。通过提供接收第二认证密钥的框架,在内容提供商服务器上实现的控制电路可以安全验证用户的账户。

在内容提供商服务器上实现的控制电路可以将第一认证密钥与第二认证密钥进行比较。例如,在内容提供商服务器上实现的控制电路可以从第二密钥检索与和该密钥相关联的用户的名称相关的信息,然后可以对数据库进行查询以确定与识别的用户相关联的账户以前是否已经被创建。在不同的例子中,在内容提供商服务器上实现的控制电路可以将包括第二认证密钥的未解密数据与存储在内容提供商服务器上的以前接收到的认证密钥的未解密数据进行比较。

在内容提供商服务器上实现的控制电路可以响应于确定第一认证密钥与第二认证密钥匹配,对第一用户账户进行验证。例如,基于第一认证密钥与第二认证密钥的比较,在内容提供商服务器上实现的控制电路然后可以识别与任一密钥相关联的用户账户。控制电路然后可以对数据库进行查询以识别账户,并且存储指定账户已经被验证的指示。通过验证账户,在内容提供商服务器上实现的控制电路允许被内容提供商服务器认证的用户访问由第一订阅服务提供的媒体内容。

在一些实施例中,响应于验证第一用户账户,在第一服务器上实现的控制电路可以授予通过第一用户账户对第一订阅服务的访问权限。例如,在内容提供商服务器上实现的控制电路可以生成指示账户可供使用的消息,并且将该消息发送到内容聚合器服务器。以这种方式,在内容提供商服务器上实现的控制电路能够向用户通知第二订阅服务的产品可以被用户访问。

在一些实施例中,第一认证密钥是基于第二订阅服务为用户分配的用户名和密码的加密密钥。例如,认证密钥可以包括自动生成的符合第一订阅服务的密码要求的密码以及与和内容提供商服务器相关联的用户名对应的用户名。

在一些实施例中,所述第一多个可接受的认证密钥是在内容提供商服务器处从内容聚合器服务器接收的。例如,在内容提供商服务器处实现的控制电路可以按规律的间隔从第二订阅服务接收认证密钥列表。例如,在内容聚合器服务器上实现的控制电路可以每天发送与已经向第二订阅服务创建账户的所有新用户相关联的认证密钥。

在一些实施例中,存储在内容提供商服务器处的数据库条目包括第一数据库字段和第二数据库字段,第一数据库字段包括指向第一用户账户的指针,第二数据库字段包括第一认证密钥。例如,内容提供商服务器上的数据库条目可以包括存储在第一数据库字段中的指代第二数据库条目的指针,第二数据库条目包含关于用户的账户的信息,诸如用户的用户名、密码和订阅级别。

在一些实施例中,存储在内容提供商服务器处的数据库条目包括第三数据库字段,第三数据库字段包括第一订阅服务的订阅条款。订阅的条款可以确定订阅的价格;用户为订阅而承担的价格也可以被存储在第三数据库字段中。

在一些实施例中,响应于用户在内容聚合器服务器处为第二订阅服务选择订阅级别,在没有进一步的用户输入的情况下,从内容聚合器服务器发送来自内容聚合器服务器的为用户订阅第一订阅服务的请求。例如,在内容聚合器服务器上实现的控制电路可以生成两个订阅级别:“高级”级别,其可以包括订阅第一订阅服务;以及“基本”级别,其不包括订阅第一订阅服务。在内容聚合器服务器上实现的控制电路可以仅响应于确定用户已经选择了“高级”级别订阅,向第二订阅服务发送请求。

在一些实施例中,在内容提供商服务器上实现的控制电路可以响应于验证第一用户账户,从内容提供商服务器向内容聚合器服务器发送确认。例如,一旦控制电路验证了用户账户,控制电路就可以将包括确认的消息发送到内容聚合器服务器。通过发送确认,第二服务的用户可以被通知他或她能够访问与第一订阅服务相关联的媒体。

在一些实施例中,在内容提供商服务器上实现的控制电路可以从内容聚合器服务器接收通过第一用户账户访问第一订阅服务的媒体内容的请求。例如,在内容提供商服务器上实现的控制电路可以接收访问媒体内容(例如,电视节目“thesimpsons”的剧集)的用户请求。响应于从内容聚合器服务器接收到通过第一用户账户访问第一订阅服务的媒体内容的请求,在内容聚合器服务器上实现的控制电路可以创建内容提供商服务器和用户电视设备402之间的直接连接。通过创建直接连接,相比于媒体内容在传送到用户电视设备402之前要从内容提供商服务器传送到内容聚合器服务器,媒体内容在内容提供商服务器和用户电视设备402之间的传送可以更快速、更高效。

在一些实施例中,在内容聚合器服务器上实现的控制电路可以响应于内容提供商服务器和用户电视设备402之间的直接连接,检索与第一订阅服务相关联的用户界面皮肤。例如,与第一订阅服务相关联的用户界面皮肤可以限定用户界面元素的视觉外观,诸如与第一订阅服务相关联的用户界面的背景色、字体和菜单位置。另外,界面皮肤可以包括由订阅服务限定的品牌特性,诸如与第一订阅服务相关联的徽标(其可以显示在屏幕上的限定位置处)以及与第一订阅服务相关联的调色板(其可以限定屏幕元素的背景色)。控制电路可以提取与用户界面皮肤相关联的参数,并且将这些参数应用于与第二订阅服务相关联的用户界面皮肤。

在一些实施例中,在内容提供商服务器上实现的控制电路可以从内容聚合器服务器接收通过第一用户账户对媒体内容列表项(mediacontentlisting)的用户选择。例如,在内容聚合器服务器上实现的控制电路可以利用在内容提供商服务器和内容聚合器服务器之间创建的连接来检索在内容提供商服务器上可获得的内容的媒体内容列表项。在内容聚合器服务器上实现的控制电路然后可以检测用户对媒体内容列表项所做的选择,其中用户与内容聚合器服务器上的账户相关联。一旦在内容聚合器服务器上实现的控制电路接收到选择,控制电路就可以生成与用户选择的媒体内容列表项对应的媒体资产以用于显示。例如,在内容聚合器服务器上实现的控制电路可以使用在内容提供商和内容聚合器服务器之间创建的连接来检索媒体资产。可以经由下载或经由流传输来检索媒体资产。

应注意,上述系统和/或方法可以应用于其他系统、方法和/或设备,或根据其他系统、方法和/或设备使用。

附图说明

当结合附图考虑以下详细描述时,本公开的以上目的和优点以及其他目的和优点将是明白易懂的,在附图中,相同的附图标记始终指的是相同的部件,其中:

图1示出了根据本公开的一些实施例的媒体引导应用生成的显示屏幕的例示性例子;

图2示出了根据本公开的一些实施例的媒体引导应用生成的内容聚合器显示屏幕的另一例示性例子;

图3是根据本公开的一些实施例的例示性装置的框图;

图4是根据本公开的一些实施例的例示性媒体系统的框图;

图5是根据本公开的一些实施例的用于确定订阅时间段内的实例的数量的例示性步骤的流程图;

图6是根据本公开的一些实施例的用于确定订阅时间段内的实例的数量的例示性步骤的伪代码;

图7是根据本公开的一些实施例的用于确定订阅时间段的一部分内的实例的数量的例示性步骤的流程图;

图8是根据本公开的一些实施例的用于确定订阅时间段的一部分内的实例的数量的例示性步骤的伪代码;

图9是根据本公开的一些实施例的当实例数量超过某个数量时将消息发送到装置所涉及的例示性步骤的流程图;

图10是根据本公开的一些实施例的用于基于从内容聚合器服务器接收到第一认证密钥、在内容提供商服务器上生成账户的例示性步骤的流程图;

图11是根据本公开的一些实施例的用于基于从内容聚合器服务器接收到第一认证密钥、在内容提供商服务器上生成账户的例示性步骤的伪代码;

图12是根据本公开的一些实施例的用于基于来自内容聚合器服务器的请求来验证第一用户账户的例示性步骤的流程图;

图13是根据本公开的一些实施例的用于基于来自内容聚合器服务器的请求来验证第一用户账户的例示性步骤的伪代码;以及

图14是根据本公开的一些实施例的在第一订阅服务上生成并且验证第一用户账户所涉及的说明性步骤的流程图。

具体实施方式

本文公开了用于检测同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过可获得流的数量的实例的数量并且当实例的数量超过某个数量时将消息发送到这些装置中的一个的方法和系统。例如,控制电路确定在订阅时间段期间,存在同时流传输媒体的请求的数量超过用户从订阅服务可获得的可获得流的数量的十二个实例。此外,控制电路可以确定同时流传输媒体的请求的数量超过用户从订阅服务可获得的可获得流的数量的实例的数量超过八个场合的阈值数量,并且作为响应,控制电路将指示额外的流可供购买的消息发送到所述装置中的一个。

如本文所使用的,术语“实例”应被理解为对应于特定的时间瞬间。例如,实例对应于特定的时间戳,诸如由日期和时间限定的时间戳。

如本文所使用的,术语“订阅服务”应被理解为是指用户为访问媒体内容而订阅的任何产品或服务。例如,用户订阅在线订阅服务(例如,hulu)来访问电视连续剧(例如,“thesimpsons”)。用户可以能够通过购买内容订阅来访问由订阅服务提供的媒体内容。通过“订阅服务”提供对内容的访问的实体在本文中被称为“内容提供商”。术语“内容提供商服务器”是指内容提供商用来向用户设备提供对媒体内容的访问的任何联网装置。

提供对从其他订阅服务可获得的媒体内容的访问的产品或服务在本文中被称为“内容聚合器订阅”。提供内容聚合器订阅的实体在本文中被称为“内容聚合器”。术语“内容聚合器服务器”是指内容聚合器用来收集并且提供关于从内容提供商可获得的内容的数据并且促进用户设备访问这种内容的任何联网装置。

如本文所使用的,术语“账户”应被理解为是指与用户相关联的并且存储在订阅服务的数据库中的数据。订阅服务通过经由存储在账户中的数据对用户进行认证来允许用户访问媒体内容。另外,账户可以包括列出用户的姓名、密码、信用卡信息、观看偏好以及订阅设置的信息。经验证的用户账户可以被用户用来访问媒体内容,而尚未被验证的账户则不能被用户用来访问媒体内容。

如本文所使用的,“认证密钥”应被理解为是指可以用算法破译的数据。例如,用户的用户名和密码可以在内容聚合器服务器上被加密。所得数据可以构成认证密钥,该认证密钥然后可以被传送到内容提供商服务器。内容提供商服务器可以包含对第一密钥进行解密所必需的信息。

如本文所使用的,术语“订阅时间段”应被理解为是指订阅服务的用户在其期间能够访问由订阅服务提供的媒体内容的连续时间段。例如,订阅时间段可以对应于订阅服务的账单周期(例如,订阅时间段对应于三月)。此外,订阅时间段可以与开始时间戳(即,通过订阅提供的媒体变为对用户可用的日期和时间)和结束时间戳(即,通过订阅提供的媒体停止对用户可用的日期和时间)相关联。订阅时间段的一“部分”可以是指订阅时间段的任何连续的或非连续的一个时间范围或多个时间范围。例如,订阅时间段的一部分对应于订阅时间段期间的周三的7:00pm到9:00pm之间发生的时隙。在不同的例子中,订阅时间段的一部分对应于订阅时间段的在其期间电视节目(例如,“thesimpsons”)的一季被广播的日期范围,例如,八月到十一月。

术语“流”是指在一段时间段内从发送方传输到接收方的媒体内容数据。例如,对应于媒体内容(例如,“thesimpsons”)的数字数据在与该媒体内容的回放所需的时间对应的时间内通过网络从服务器(即,发送方)被递送到用户装置(即,接收方)。订阅服务可以向订阅的用户提供用于同时使用的有限数量的流(例如,订阅服务允许媒体内容有四个同时发生的流)。实现流传输过程(即,递送流的过程)的实施例可以应用于数字介质递送方法,而且还可以应用于其他内容递送方法(例如,线缆)。流传输冲突是指流传输媒体的请求的数量超过可获得流的数量的情形。当流传输冲突发生时,所接收的请求中的至少一个(例如,通常是最后一个请求)不被履行。

术语“直接连接”是指如下网络连接:该网络连接一旦在内容提供商服务器和内容聚合器服务器之间被建立,就允许内容聚合器服务器在不经认证的情况下访问存储在内容提供商服务器上的数据。

术语“界面皮肤”是指用于限定用户界面的视觉外观的数据集。例如,用户界面中的窗口的背景色、用户界面中所用的字体以及用户界面中的菜单的位置可以在与界面皮肤相关联的数据中限定。当控制电路生成用于显示的用户界面的视觉组件时,控制电路可以检索界面皮肤文件的数据以确定用户界面中的每个元素或每组元素将被如何渲染。另外,用于限定用户界面的视觉外观的数据集可以包括由与内容提供商服务器相关联的服务限定的图形和文本。例如,与订阅服务(例如,hulu)相关联的界面皮肤可以包括如下数据集:该数据集包括可以显示在屏幕上的限定位置处的hulu徽标以及可以限定屏幕元素的背景色的hulu调色板。

如本文所使用的,术语“响应于”是指作为结果被发起。例如,第一动作响应于另一动作被执行可以在第一动作和第二动作之间包括间隙步骤。如本文所使用的,术语“直接响应于”是指被引起。例如,第一动作直接响应于另一动作被执行不可以在第一动作和第二动作之间包括中间步骤。

在任何给定内容递送系统中用户可获得的内容量可以是大量的。因此,许多用户期望通过界面的媒体引导形式,该界面允许用户高效地巡览内容选择并且容易地识别他们可能期望的内容。提供这种引导的应用在本文中被称为交互式媒体引导应用,或有时被称为媒体引导应用或引导应用。

交互式媒体引导应用可以根据它们提供引导的内容而采取各种形式。媒体引导应用的一种典型类型是交互式电视节目引导。交互式电视节目引导(有时被称为电子节目引导)是除了其他方面之外允许用户浏览并定位许多类型的内容或媒体资产的众所周知的引导应用。交互式媒体引导应用可以生成使得用户能够浏览、定位和选择内容的图形用户界面屏幕。

如本文所提到的,术语“媒体资产”和“内容”应被理解为意指可电子消费的用户资产,诸如电视节目以及计次付费节目、点播节目(如视频点播(vod)系统中的点播节目)、互联网内容(例如,流传输内容、可下载内容、网络广播等)、视频剪辑、音频、内容信息、图片、旋转图像、文档、播放列表、网站、文章、书籍、电子书、博客、广告、聊天会话、社交媒体、应用、游戏和/或任何其他的媒体或多媒体和/或它们的组合。引导应用还允许用户浏览和定位内容。如本文所提到的,术语“多媒体”应被理解为意指利用上述至少两种不同的内容形式(例如,文本、音频、图像、视频或交互内容形式)的内容。内容可以被用户设备装置记录、播放、显示或访问,而且也可以是现场演出的一部分。

媒体引导应用和/或用于执行本文所讨论的实施例中的任何一个的任何指令可以被编码在计算机可读介质上。计算机可读介质包括能够存储数据的任何媒体。计算机可读介质可以是暂时性的,包括但不限于传播的电或电磁信号,或者可以是非暂时性的,包括但不限于易失性和非易失性的计算机存储器或存储装置,诸如硬盘、软盘、usb驱动器、dvd、cd、媒体卡、寄存器存储器、处理器高速缓存、随机存取存储器(“ram”)等。

随着互联网、移动计算和高速无线网络的出现,用户正在他们传统不用的用户设备装置上访问媒体。如本文所提到的,短语“用户设备装置”、“用户设备”、“用户装置”、“电子装置”、“电子设备”、“媒体设备装置”或“媒体装置”应被理解为意指用于访问上述内容的任何装置,诸如电视、智能电视、机顶盒、用于处理卫星电视的集成接收器解码器(ird)、数字存储装置、数字媒体接收器(dmr)、数字媒体适配器(dma)、流传输媒体装置、dvd播放器、dvd录像机、被连接的dvd、本地媒体服务器、蓝光播放器、蓝光记录器、个人计算机(pc)、笔记本电脑、平板电脑、网络电视盒、个人计算机电视机(pc/tv)、pc媒体服务器、pc媒体中心、掌上计算机、固定电话、个人数字助理(pda)、移动电话、便携式视频播放器、便携式音乐播放器、便携式游戏机、智能电话、或任何其他电视设备、计算设备或无线装置、和/或它们的组合。在一些实施例中,用户设备装置可以具有面向前的屏幕和面向后的屏幕、多个前置屏幕或多个有角度的屏幕。在一些实施例中,用户设备装置可以具有面向前的照相机和/或面向后的照相机。在这些用户设备装置上,用户可以能够浏览和定位通过电视机可获得的相同内容。因此,媒体引导也可以在这些装置上获得。所提供的引导可以是针对仅通过电视机可获得的内容、针对仅通过一种或多种其他类型的用户设备装置可获得的内容、或针对通过电视机和一种或多种其他类型的用户设备装置都可获得的内容。媒体引导应用可以被提供作为在线应用(即,在网站上提供),或作为用户设备装置上的独立应用或客户端。下面更详细地描述可以实现媒体引导应用的各种装置和平台。

媒体引导应用的功能之一是向用户提供媒体引导数据。如本文所提到的,短语“媒体引导数据”或“引导数据”应被理解为意指与在操作引导应用中使用的内容或数据相关的任何数据。例如,引导数据可以包括程序信息、引导应用设置、用户偏好、用户简档信息、媒体列表项、媒体相关信息(例如,广播时间、广播频道、标题、描述、评级信息(例如,家长控制评级、评论员的评级等)、流派或类别信息、演员信息、关于广播公司或提供商的徽标的标志数据等)、媒体格式(例如,标清、高清、3d等)、广告信息(例如,文本、图像、媒体剪辑等)、点播信息、博客、网站以及对于用户浏览和定位期望的内容选择有帮助的任何其他类型的引导数据。

图1-2示出了可以用于提供媒体引导数据的例示性显示屏幕。图1-2中所示的显示屏幕可以在任何合适的用户设备装置或平台上实现。虽然图1-2的显示被示为全屏显示,但是它们也可以完全地或部分地覆盖在正被显示的内容上方。用户可以通过选择显示屏幕中提供的可选选项(例如,菜单选项、列表项选项、图标、超链接等)或按下遥控器或其他用户输入接口或装置上的专用按钮(例如,引导按钮)来指示访问内容信息的意愿。响应于用户的指示,媒体引导应用可以提供其中媒体引导数据按照几种方式中的一种方式组织的显示屏幕,诸如按照网格中的时间和频道、按照时间、按照频道、按照来源、按照内容类型、按照类别(例如,电影、体育、新闻、儿童或其他节目播出的类别)或其他预定义的、用户定义的或其他的组织标准。

图1示出了按时间和频道布置的节目列表项显示100的例示性网格,其也使得能够在单个显示中访问不同类型的内容。显示100可以包括具有以下各项的网格102:(1)一列频道/内容类型标识符104,其中每个频道/内容类型标识符(其是该列中的单元格)识别可获得的不同频道或内容类型;以及(2)一行时间标识符106,其中每个时间标识符(其是该行中的单元格)识别节目播出的时间块。网格102还包括节目列表项(诸如节目列表项108)的单元格,其中每个列表项提供在该列表项的相关频道和时间上提供的节目的标题。利用用户输入装置,用户可以通过移动高亮区域110来选择节目列表项。与通过高亮区域110选择的节目列表项相关的信息可以在节目信息区域112中提供。区域112可以包括例如节目标题、节目描述、节目被提供的时间(如果适用的话)、节目所在的频道(如果适用的话)、节目的评级以及其他期望的信息。

除了提供对线性节目播出(例如,被安排在预定时间发送到多个用户设备装置并且根据计划表提供的内容)的访问之外,媒体引导应用还提供对非线性节目播出(例如,在任何时间可供用户设备装置访问的并且不根据时间表提供的内容)的访问。非线性节目播出可以包括来自不同内容源的内容,包括点播内容(例如,vod)、互联网内容(例如,流传输媒体、可下载媒体等)、本地存储的内容(例如,存储在上述任何用户设备装置或其他存储装置上的内容)或其他时间无关的内容。点播内容可以包括由特定内容提供商提供的电影或任何其他内容(例如,hbo经由hbogo服务提供“thesopranos”和“curbyourenthusiasm”)。sopranos和curbyourenthusiasm是homeboxoffice公司拥有的商标。互联网内容可以包括web事件(诸如聊天会话或网络广播)或通过互联网网站或其他互联网访问(例如,ftp)可点播获得作为流传输内容或可下载内容的内容。

网格102可以为非线性节目播出提供媒体引导数据,该媒体引导数据包括点播列表项114、记录的内容列表项116以及互联网内容列表项118。组合关于来自不同类型的内容源的内容的媒体引导数据的显示有时被称为“混合媒体”显示。与显示100不同的可被显示的媒体引导数据的类型的各种变换可以基于用户选择或引导应用定义(例如,只有记录列表项和广播列表项的显示、只有点播列表项和广播列表项的显示,等等)。如所例示的,列表项114、116和118被示为跨越网格102中显示的整个时间块以指示对这些列表项的选择可以分别提供对专用于点播列表项、记录列表项或互联网列表项的显示的访问。在一些实施例中,关于这些内容类型的列表项可以直接包括在网格102中。响应于用户选择导航图标120之一,可以显示附加的媒体引导数据。(按下用户输入装置上的箭头按键可以以与选择导航图标120类似的方式影响显示。)

显示100还可以包括视频区域122、广告124以及选项区域126。视频区域122可以允许用户查看和/或预览当前可获得的、将来可获得的或曾经可获得的节目。视频区域122的内容可以对应于或独立于网格102中显示的列表项之一。包括视频区域的网格显示有时被称为引导中套图片(pig)显示。2003年5月13日发布的satterfield等人的美国专利no.6564378和2001年5月29日发布的yuen等人的美国专利no.6239794中更详细地描述了pig显示及其功能,这些专利特此通过引用而被整体并入本文。pig显示可以被包括在本文所描述的实施例的其他媒体引导应用显示屏幕中。

广告124可以为根据观看者的访问权限(例如,对于订阅节目播出的访问权限)当前可供观看、将来可供观看的或可能总也无法观看的内容提供广告,并且可以对应于或无关于网格102中的内容列表项中的一个或多个。广告124也可以是针对与网格102中显示的内容有关或无关的产品或服务。广告124可以是可选的,并且提供关于内容的进一步信息,提供关于产品或服务的信息,使得能够购买内容、产品或服务,提供与广告有关的内容,等等。基于用户的简档/偏好、所监视的用户活动、所提供的显示的类型或其他合适的针对性广告基础,广告124可以是针对性的。

虽然广告124被示为矩形或横幅形状,但是广告可以在引导应用显示中以任何合适的大小、形状和位置被提供。例如,广告124可以被提供为与网格102水平相邻的矩形形状。这有时被称为面板广告。另外,广告可以覆盖在内容或引导应用显示上方或嵌入在显示内。广告还可以包括文本、图像、旋转图像、视频剪辑或上述其他类型的内容。广告可以存储在具有引导应用的用户设备装置中、连接到用户设备的数据库中、远程位置(包括流传输媒体服务器)中、或其他存储手段上、或者这些位置的组合上。例如以下专利申请和专利中更详细地讨论在媒体引导应用中提供广告:2003年1月17日提交的knudson等人的美国专利申请公开no.2003/0110499;2004年6月29日发布的ward,iii等人的美国专利no.6756997;以及2002年5月14日发布的schein等人的美国专利no.6388714,这些专利申请和专利特此整个通过引用而被整体并入本文。将意识到,广告可以被包括在本文所描述的实施例的其他媒体引导应用显示屏幕中。

选项区域126可以允许用户访问不同类型的内容、媒体引导应用显示和/或媒体引导应用特征。选项区域126可以是显示100(以及本文所描述的其他显示屏幕)的一部分,或者可以被用户通过选择屏上选项或按下用户输入装置上的专用的或可分配的按钮来调用。选项区域126内的可选选项可以涉及与网格102中的节目列表项有关的特征,或者可以包括从主菜单显示可用的选项。与节目列表项有关的特征可以包括搜索其他播出时间或接收节目的方式、记录节目、启用节目的连续记录、设置节目和/或频道为最爱、购买节目或其他特征。从主菜单显示可用的选项可以包括搜索选项、vod选项、家长控制选项、互联网选项、基于云的选项、装置同步选项、第二屏幕装置选项、访问各种类型的媒体引导数据显示的选项、订阅高级服务的选项、编辑用户的简档的选项、访问浏览覆盖的选项或其他选项。

可以基于用户的偏好来使媒体引导应用个性化。个人性的媒体引导应用允许用户定制显示和特征以用媒体引导应用来创建个性化“体验”。可以通过允许用户输入这些定制和/或通过媒体引导应用监视用户活动以确定各种用户偏好来创建这种个性化体验。用户可以通过登录到引导应用或以其他表明自身的方式来访问他们的个性化引导应用。可以根据用户简档来进行媒体引导应用的定制。定制可以包括不同的呈现方案(例如,显示的颜色方案、文本的字体大小等)、所显示的内容列表项的各方面(例如,只显示hdtv或只显示3d节目播出、基于最爱的频道选择的用户指定广播频道、频道的显示的重新排序、推荐内容等)、期望的记录特征(例如,针对特定用户的记录或连续记录、记录质量等)、家长控制设置、互联网内容的定制呈现(例如,社交媒体内容、电子邮件、电子递送的文章等的呈现)以及其他期望的定制。

媒体引导应用可以允许用户提供用户简档信息,或者可以自动地编译用户简档信息。媒体引导应用可以例如监视用户访问的内容和/或用户与引导应用可以具有的其他交互。另外,媒体引导应用可以获得与特定用户有关的其他用户简档的全部或部分(例如,从用户访问的互联网上的其他网站(诸如www.allrovi.com),从用户访问的其他媒体引导应用,从用户访问的其他交互式应用,从用户的另一用户设备装置,等等),和/或从媒体引导应用可以访问的其他源获得关于用户的信息。结果,用户可以在用户的不同用户设备装置上被提供统一的引导应用体验。下面结合图4来更详细地描述这种类型的用户体验。附加的个性化媒体引导应用特征在以下专利申请和专利中有更详细的描述:2005年7月11日提交的ellis等人的美国专利申请公开no.2005/0251827;2007年1月16日发布的boyer等人的美国专利no.7165098;以及2002年2月21日提交的ellis等人的美国专利申请公开no.2002/0174430,这些专利申请和专利特此通过引用而被整体并入本文。

图2中示出了用于提供媒体引导的另一显示布置。视频拼接显示(videomosaicdisplay)200包括针对基于各种组织标准(诸如推荐、观看列表项中的所含项以及内容的类型)组织的内容信息的可选选项202。在显示200中,电影列表项选项204被选择,因此将列表项206、208、210和212作为电影提供。在显示200中,列表项可以提供包括封面的图形图像、来自内容的静态图像、视频剪辑预览、来自内容的即时视频或向用户指示内容是用列表项中的媒体引导数据描述的其他类型的内容。每个图形列表项还可以伴随有提供关于与该列表项相关联的内容的进一步信息的文本。例如,列表项208可以包括多于一个的部分,包括媒体部分214和文本部分216。媒体部分214和/或文本部分216可以能被选择全屏查看内容或查看与媒体部分214中显示的内容有关的信息(例如,查看关于指定的内容提供商的列表项)。

显示200中的列表项是不同的大小(即,列表项206大于列表项208、210和212),但是如果需要,所有列表项都可以是相同的大小。列表项可以具有不同大小或被生动地突出,以指示用户的感兴趣程度或强调某个内容,如内容提供商期望的那样或基于用户偏好。用于生动地突出内容列表项的各种系统和方法在例如2009年11月12日提交的yates的美国专利申请公开no.2010/0153885中有讨论,该专利申请特此通过引用而被整体并入本文。

用户可以从他们的一个或多个用户设备装置访问内容和媒体引导应用(及其上面和下面所述的显示屏幕)。图3示出了例示性设备装置300的一般化实施例。下面结合图4来讨论装置的更具体的实现。设备装置300可以在用户电视设备402、用户计算机设备404以及无线用户通信装置406上实现。另外,装置300可以实现为与内容提供商416和418相关联的服务器的一部分以及与内容聚合器430相关联的服务器的一部分。装置300可以经由输入/输出(以下称为“i/o”)路径302来接收内容和数据。i/o路径302可以将内容(例如,广播节目播出、点播节目播出、互联网内容、通过局域网(lan)或广域网(wan)可获得的内容和/或其他内容)和数据提供给控制电路304,控制电路304包括处理电路306和存储装置308。控制电路304可以用于使用i/o路径302发送和接收命令、请求和其他合适的数据。i/o路径302可以将控制电路304(具体地说是处理电路306)连接到一个或多个通信路径(下面描述)。i/o功能可以由这些通信路径中的一个或多个提供,但是在图3中被示为单个路径以避免使附图过于复杂。

控制电路304可以基于任何合适的处理电路,诸如处理电路306。如本文所提到的,处理电路应被理解为意指基于一个或多个微处理器、微控制器、数字信号处理器、可编程逻辑器件、现场可编程门阵列(fpga)、专用集成电路(asic)等的电路,并且可以包括多核处理器(例如,双核、四核、六核或任何合适数量的核)或超级计算机。在一些实施例中,处理电路可以跨多个单独的处理器或处理单元分布,例如,多个相同类型的处理单元(例如,两个intelcorei7处理器)或多个不同的处理器(例如,一个intelcorei5处理器和一个intelcorei7处理器)。在一些实施例中,控制电路304执行存储在存储器(即,存储装置308)中的用于媒体引导应用的指令。具体的说,控制电路304可以被媒体引导应用指示执行上面和下面讨论的功能。例如,媒体引导应用可以向控制电路304提供指令以生成媒体引导显示。在一些实现中,控制电路304执行的任何动作可以基于从媒体引导应用接收的指令。

在基于客户端-服务器的实施例中,控制电路304可以包括适于与引导应用服务器或其他网络或服务器通信的通信电路。用于执行上述功能的指令可以存储在引导应用服务器上。通信电路可以包括用于与其他设备通信的线缆调制解调器、综合服务数字网络(isdn)调制解调器、数字用户线路(dsl)调制解调器、电话调制解调器、以太网卡或无线调制解调器、或者任何其他合适的通信电路。这样的通信可以涉及互联网或任何其他合适的通信网络或路径(其被结合图4更详细地描述)。另外,通信电路可以包括使得能够进行设备装置的对等通信或位置彼此远离的设备装置的通信的电路(下面更详细地描述)。

存储器可以是作为存储装置308提供的电子存储装置,存储装置308是控制电路304的一部分。如本文所提到的,短语“电子存储装置”或“存储装置”应被理解为意指用于存储电子数据、计算机软件或固件的任何装置,诸如随机存取存储器、只读存储器、硬盘驱动器、光学驱动器、数字视频盘(dvd)记录器、紧凑盘(cd)记录器、蓝光盘(bd)记录器、蓝光3d盘录像机、数字视频记录器(dvr,有时被称为个人视频记录器或pvr)、固态装置、量子存储装置、游戏机、游戏介质或任何其他合适的固定的或可移除的存储装置、和/或它们的任何组合。存储装置308可以用于存储本文所描述的各种类型的内容以及上述媒体引导数据。非易失性存储器也可以被使用(例如,被用来启动自举例程和其他指令)。关于图4描述的基于云的存储装置可以用于补充存储装置308或代替存储装置308。

控制电路304可以包括视频生成电路和调谐电路,诸如一个或多个模拟调谐器、一个或多个mpeg-2解码器或其他数字解码电路、高清调谐器或任何其他合适的调谐或视频电路或者这种电路的组合。编码电路(例如,用于将空中、模拟或数字信号转换为mpeg信号以用于存储)也可以被提供。控制电路304还可以包括缩放器电路,该缩放器电路用于将内容向上转换和向下转换为设备装置300的优选输出格式。电路304还可以包括用于数字信号和模拟信号之间的转换的数模转换器电路和模数转换器电路。调谐和编码电路可以被设备装置用来接收、显示、播放或记录内容。调谐和编码电路还可以用于接收引导数据。本文所描述的电路(包括例如调谐、视频生成、编码、解码、加密、解密、缩放器和模拟/数字电路)可以使用在一个或多个通用或专用处理器上运行的软件来实现。多个调谐器可以被提供用来处理同时调谐功能(例如,观看和记录功能、画中画(pip)功能、多调谐器记录等)。如果存储装置308是作为与设备装置300分开的装置提供的,则调谐和编码电路(包括多个调谐器)可以与存储装置308相关联。

当在用户电视设备402、用户计算机设备404或无线用户通信装置406上实现设备装置300时,用户可以使用用户输入接口310将指令发送到控制电路304。用户输入接口310可以是任何合适的用户接口,诸如遥控器、鼠标、轨迹球、小键盘、键盘、触摸屏、触控板、手写笔输入、控制杆、语音识别接口或其他用户输入接口。显示器312可以作为独立装置被提供或与设备装置300的其他元件集成。例如,显示器312可以是触摸屏或触摸敏感显示器。在这种情况下,用户输入接口310可以与显示器312集成或组合。显示器312可以是以下中的一个或多个:监视器、电视机、移动装置的液晶显示器(lcd)、非晶硅显示器、低温多晶硅显示器、电子墨显示器、电泳显示器、有源矩阵显示器、电浸润显示器、电流体显示器、阴极射线管显示器、发光二极管显示器、电致发光显示器、等离子体显示面板、高性能寻址显示器、薄膜晶体管显示器、有机发光二极管显示器、表面传导电子发射器显示器(sed)、激光电视机、碳纳米管、量子点显示器、干涉测量调制器显示器或用于显示视觉图像的任何其他合适的设备。在一些实施例中,显示器312可以是具有hdtv能力的。在一些实施例中,显示器312可以是3d显示器,并且交互式媒体引导应用和任何合适的内容可以以3d显示。视频卡或图形卡可以生成给显示器312的输出。视频卡可以提供各种功能,诸如3d场景和2d图形的加速渲染、mpeg-2/mpeg-4解码、tv输出或连接多个监视器的能力。视频卡可以是上面关于控制电路304描述的任何处理电路。视频卡可以与控制电路304集成。扬声器314可以被提供为与设备装置300的其他元件集成,或者可以是独立的单元。显示器312上显示的视频和其他内容的音频分量可以通过扬声器314播放。在一些实施例中,音频可以分发给接收器(未示出),该接收器对音频进行处理并且经由扬声器314输出音频。

引导应用可以使用任何合适的架构来实现。例如,它可以是完全在设备装置300上实现的独立应用。在这样的方法中,应用的指令可以被存储于本地(例如,在存储装置308中),并且供应用使用的数据被周期性地下载(例如,来自带外馈送,来自互联网资源,或使用另一合适的方法)。控制电路304可以从存储装置308检索应用的指令,并且对这些指令进行处理以生成本文所讨论的任何一个显示。基于经处理的指令,控制电路304可以确定当从输入接口310接收到输入时要执行什么动作。例如,当输入接口310指示向上/向下按钮被选择时,光标在显示器上向上/向下的移动可以由处理的指令指示。

在一些实施例中,媒体引导应用是基于客户端-服务器的应用。供在设备装置300上实现的胖或瘦客户端使用的数据通过向远离设备装置300的服务器发出请求而被按需检索。在基于客户端-服务器的引导应用的一个例子中,控制电路304运行解释由远程服务器提供的网页的web浏览器。例如,远程服务器可以将用于应用的指令存储在存储装置中。远程服务器可以使用电路(例如,控制电路304)来对存储的指令进行处理,并且生成上面和下面讨论的显示。客户端装置可以接收由远程服务器生成的显示,并且可以在设备装置300上本地显示这些显示的内容。这样,指令的处理是由服务器远程执行的,而所得的显示则在设备装置300上本地提供。设备装置300可以经由输入接口310从用户接收输入,并且将这些输入发送到远程服务器以用于处理和生成对应的显示。例如,设备装置300可以将指示向上/向下按钮经由输入接口310被选择的通信发送到远程服务器。远程服务器可以根据该输入来对指令进行处理,并且生成对应于该输入的应用的显示(例如,向上/向下移动光标的显示)。所生成的显示然后被发送到设备装置300以用于呈现给用户。

在一些实施例中,媒体引导应用被解释器或虚拟机(由控制电路304运行)下载并且被解释或被以其他方式运行。在一些实施例中,引导应用可以被以etv二进制互换格式(ebif)编码,被控制电路304作为合适馈送的一部分接收,并且被在控制电路304上运行的用户代理解释。例如,引导应用可以是ebif应用。在一些实施例中,引导应用可以由一系列基于java的文件定义,该一系列基于java的文件被控制电路304所执行的本地虚拟机或其他合适的中间件接收并且运行。在一些这样的实施例(例如,利用mpeg-2或其他数字媒体编码方案的实施例)中,引导应用可以例如与节目的mpeg音频和视频包一起编码并且在mpeg-2对象轮播(objectcarousel)中发送。

图3的设备装置300可以在图4的系统400中实现为用户电视设备402、用户计算机设备404、无线用户通信装置406或适合于访问内容的任何其他类型的用户设备(诸如非便携式游戏机)。为简单起见,这些装置在本文中可以被统称为用户设备或用户设备装置,并且可以大致类似于上面所述的用户设备装置。在其上可以实现媒体引导应用的用户设备装置可以作为独立装置发挥作用,或者可以是装置网络的一部分。装置的各种网络配置可以被实现,并在下面被更详细地讨论。另外,设备装置300可以实现为与内容提供商416和418相关联的服务器的一部分以及与内容聚合器430相关联的服务器的一部分。

利用上面结合图3描述的系统特征中的至少一些系统特征的用户设备装置可以不仅仅被分类为用户电视设备402、用户计算机设备404或无线用户通信装置406。例如,用户电视设备402可以像一些用户计算机设备404那样启用互联网,从而允许访问互联网内容,而用户计算机设备404可以像一些电视设备402那样包括允许访问电视节目播出的调谐器。媒体引导应用可以在各种不同类型的用户设备上具有相同的布局,或者可以针对用户设备的显示能力定制。例如,在用户计算机设备404上,引导应用可以被提供为web浏览器访问的网站。在另一例子中,引导应用可以针对无线用户通信装置406缩小。

在系统400中,每种类型的用户设备装置通常存在不只一个,但是在图4中仅示出了一个以避免使附图过于复杂。另外,每个用户可以利用多于一种类型的用户设备装置,而且每种类型的用户设备装置还可以多于一个。

在一些实施例中,用户设备装置(例如,用户电视设备402、用户计算机设备404以及无线用户通信装置406)可以被称为“第二屏幕装置”。例如,第二屏幕装置可以补充呈现在第一用户设备装置上的内容。呈现在第二屏幕装置上的内容可以是补充呈现在第一装置上的内容的任何合适的内容。在一些实施例中,第二屏幕装置提供用于调整第一装置的设置和显示偏好的界面。在一些实施例中,第二屏幕装置被配置用于与其他的第二屏幕装置进行交互或与社交网络进行交互。第二屏幕装置可以被安置在与第一装置相同的房间里、在与第一装置不同的房间里但是在同一个房子或建筑物里、或在与第一装置不同的建筑物里。

用户还可以设置各种设置来在家用装置和远程装置上保持一致的媒体引导应用设置。设置包括本文所描述的那些设置,以及频道和节目最爱、引导应用用来做出节目播出推荐的节目播出偏好、显示偏好以及其他可取的引导设置。例如,如果用户例如在他们的办公室里的他们的个人计算机上在网站www.allrovi.com上将一个频道设置为最爱,则如果希望的话,同一个频道将在用户的家用装置(例如,用户电视设备和用户计算机设备)以及用户的移动装置上出现为最爱。因此,在一个用户设备装置上所做的改变可以改变另一用户设备装置上的引导体验,而不论它们是相同类型、还是不同类型的用户设备装置。另外,所做的改变可以基于用户输入的设置以及引导应用监视的用户活动。

用户设备装置可以耦接到通信网络414。也就是,用户电视设备402、用户计算机设备404以及无线用户通信装置406分别经由通信路径408、410和412耦接到通信网络414。通信网络414可以是一个或多个网络,包括互联网、移动电话网络、移动语音或数据网络(例如,4g或lte网络)、有线网络、公共交换电话网络或其他类型的通信网络或通信网络组合。路径408、410和412可以分别或共同包括一个或多个通信路径,诸如卫星路径、光纤路径、线缆路径、支持互联网通信的路径(例如,iptv)、自由空间连接(例如,用于广播或其他无线信号)或任何其他合适的有线或无线通信路径或这这些路径的组合。路径412是用点线绘制的以指示在图4所示的示例性实施例中它是无线路径,路径408和410被绘制为实线以指示它们是有线路径(但是如果希望的话,这些路径可以是无线路径)。与用户设备装置的通信可以由这些通信路径中的一个或多个提供,但是在图4中被示为单个路径以避免使附图过于复杂。

尽管在用户设备装置之间没有绘制通信路径,但是这些装置可以经由通信路径(诸如上面结合路径408、401和412描述的那些,以及其他短距离点对点通信路径,诸如usb线缆、ieee1394线缆、无线路径(例如,蓝牙、红外线、ieee802-11x等)或经由有线或无线路径的其他短距离通信)相互通信。bluetooth是bluetoothsig公司.拥有的证明商标。用户设备装置还可以直接通过经由通信网络414的间接路径来相互通信。

系统400包括内容提供商416和418以及内容聚合器430,内容聚合器430分别经由通信路径420、422、424、426和428耦接到通信网络414。路径420、422、424、426和428可以包括上面结合路径408、410和412描述的通信路径中的任何一个。与内容提供商416和内容聚合器430的通信可以在一个或多个通信路径上交换,但是在图4中被示为单个路径以避免使附图过于复杂。另外,内容提供商416和内容聚合器430都可以不只一个,但是在图4中仅示出了两个内容提供商和一个内容聚合器以避免使附图过于复杂。(下面讨论这些源的各自的不同类型。)尽管内容提供商416和418与用户设备装置402、404和406之间的通信被示为是通过通信网络414,但是在一些实施例中,内容提供商416和418可以经由通信路径(未示出)直接与用户设备装置402、404和406通信,诸如上面结合路径408、410和412描述的那些通信路径。在一些情况下,内容提供商416和418与用户设备装置402、404和406之间的通信通过内容聚合器430发生。例如,用户电视设备402和内容提供商416之间的通信可以通过路径426、428和408发生。

内容提供商416和418可以包括一种或多种类型的内容分发设备,包括:电视分发设施、有线系统头端、卫星分发设施、节目播出源(例如,电视广播公司,诸如nbc、abc、hbo等)、中间分发设施和/或服务器、互联网提供商、点播媒体服务器(例如,netflix、hulu、amazon等)以及其他内容提供商。nbc是全国广播公司(nationalbroadcastingcompany)拥有的商标,abc是美国广播公司(americanbroadcastingcompay)拥有的商标,hbo是homeboxoffice公司拥有的商标。内容提供商416可以是内容的创作者(例如,电视广播公司、网络广播提供商等),或者可以不是内容的发起者(例如,点播内容提供商、用于下载的广播节目的内容的互联网提供商等)。内容提供商416可以包括线缆源、卫星提供商、点播提供商、互联网提供商、ott(over-the-top)内容提供商或其他内容提供商。内容提供商416还可以包括远程媒体服务器,该远程媒体服务器用于将不同类型的内容(包括用户选择的视频内容)存储在远离任何一个用户设备装置的位置。用于远程存储内容并且将远程存储的内容提供给用户设备的系统和方法结合2010年7月20日发布的ellis等人的美国专利no.7761892有更详细的讨论,该专利特此通过引用被整体并入本文。

如上所述,内容聚合器430可以从内容提供商416和418收集媒体引导数据,并且提供这样的数据。媒体引导数据可以使用任何合适的方法提供给用户设备装置。在一些实施例中,引导应用可以是经由数据馈送(例如,连续馈送或涓流馈送)接收节目引导数据的独立交互式电视节目引导。节目时间表数据和其他引导数据可以在电视频道边带上使用带内数字信号、使用带外数字信号或通过任何其他合适的数据传输技术提供给用户设备。节目时间表数据和其他媒体引导数据可以在多个模拟或数字电视频道上提供给用户设备。在一些实施例中,在内容聚合器430上实现的控制电路304可以在路径426和424上发送对来自内容提供商416和418的媒体引导数据的请求。

内容聚合器430可以通过安装在每个设备装置上的客户端与设备装置402、404和406通信。例如,当用户最初订阅内容聚合器订阅时,在内容聚合器430上实现的控制电路304可以促进客户端应用到设备装置的传送。在设备装置402、404和406中的每个上实现的控制电路304然后可以从内容聚合器430下载、安装并且配置客户端应用。客户端应用然后可以促进媒体和媒体引导数据从内容聚合器430到设备装置的递送。客户端应用可以进一步包括用户界面、用于处理数字权限管理(drm)数据的代码以及生成用于在显示器312上显示的媒体所需的编解码器和播放器,其中用户界面是为了显示在显示器312上而由在设备装置300上实现的控制电路304生成的,以允许用户使用用户输入接口310与媒体列表项进行交互。在一些实施例中,客户端可以被配置为直接与内容提供商416和418进行通信。内容聚合器430可以包括对应的通信接口,以使得在内容聚合器上实现的控制电路304可以从在每个设备装置上实现的客户端接收输入。在内容聚合器430上实现的控制电路304然后可以使用通信接口来对每个客户端和每个内容提供商416和418进行数据的发送和接收。内容聚合器430可以还包括存储订阅者信息以及来自内容提供商416和418的媒体内容列表项的一个或多个数据库。

在一些实施例中,内容聚合器430可以通过在设备装置402、404和406上可用的互联网浏览器来与设备装置进行通信。例如,用户计算机设备404可以包括internetexplorer的实现。当用户希望访问内容聚合器订阅的媒体产品(例如,用户可能希望访问作为用户订阅的内容聚合器订阅的一部分而可获得的netflix列表项)时,在设备装置404上实现的控制电路304可以在显示器312上输出包含视频拼接显示200的浏览器窗口。在设备装置404上实现的控制电路304然后可以从用户输入接口310接收指示用户希望从作为内容聚合器订阅的一部分的订阅服务访问内容的选择。例如,用户可以操纵鼠标指针以高亮并选择文本部分216(例如,netflix)。在设备装置404上实现的控制电路304然后可以将对应于文本部分216的输入发送到运行互联网浏览器的进程,使得浏览器能够检索并且显示与所选择的订阅服务相关联的互联网网站(例如,www.netflix.com)。

在一些实施例中,来自内容聚合器430的引导数据可以使用客户端-服务器方法提供给用户设备。例如,用户设备装置可以从服务器拉取媒体引导数据,或者服务器可以将媒体引导数据推送到用户设备装置。在一些实施例中,在需要时,例如当引导数据过期时或者当用户设备装置从用户接收到接收数据的请求时,驻留在用户设备上的引导应用客户端可以发起与内容聚合器430的会话以获得引导数据。媒体引导可以以任何合适的频率(例如,连续地、每天、用户指定的时间段、系统指定的时间段、响应于来自用户设备的请求,等等)提供给用户设备。内容聚合器430可以向用户设备装置402、404和406提供媒体引导应用本身或媒体引导应用的软件更新。

在一些实施例中,媒体引导数据可以包括观看者数据。例如,观看者数据可以包括当前的和/或历史的用户活动信息(例如,用户通常看什么内容、用户在一天中的什么时间看内容、用户是否与社交网络交互、用户在什么时间与社交网络交互来发布信息、用户通常看什么类型的内容(例如,付费电视或免费电视)、情绪、大脑活动信息等)。媒体引导数据还可以包括订阅数据。例如,订阅数据可以识别给定用户订阅哪些源或服务和/或给定用户以前订阅过但是后来终止访问哪些源或服务(例如,用户是否订阅了高级频道、用户是否已经添加了高级级别的服务、用户是否已经增加了互联网速度)。在一些实施例中,观看者数据和/或订阅数据可以识别给定用户在长于一年的时间段的模式。媒体引导数据可以包括用于生成指示给定用户将终止访问服务/源的可能性的得分的模型(例如,幸存者模型)。例如,媒体引导应用可以使用该模型来对观看者数据与订阅数据进行处理,以生成指示给定用户是否将终止访问特定服务或源的可能性的值或得分。特别地,越高的得分可以指示用户将终止访问特定服务或源的置信水平越高。基于该得分,媒体引导应用可以生成促销和广告,这些促销和广告诱使用户保留被该得分指示为用户将有可能终止访问的一个服务或源的特定服务或源。

媒体引导应用可以例如是在用户设备装置上实现的独立应用。例如,媒体引导应用可以实现为可被存储在存储装置308中并且可被设备装置300的控制电路304执行的软件或一组可执行指令。在一些实施例中,媒体引导应用可以是其中只有客户端应用驻留在用户设备装置上并且服务器应用驻留在远程服务器上的客户端-服务器应用。例如,媒体引导应用可以实现为一部分作为设备装置300的控制电路304上的客户端应用,并且一部分在远程服务器上作为在远程服务器的控制电路上运行的服务器应用(例如,内容聚合器430)。当被远程服务器的控制电路(诸如内容聚合器430)执行时,媒体引导应用可以指示控制电路生成引导应用显示并且将生成的显示发送到用户设备装置。服务器应用可以指示内容聚合器430的控制电路发送用于存储在用户设备上的数据。客户端应用可以指示进行接收的用户设备的控制电路生成引导应用显示。

递送到用户设备装置402、404和406的内容和/或媒体引导数据可以是ott内容。ott内容递送允许启用互联网的用户装置(包括上述任何用户设备装置)除了通过线缆或卫星连接接收的内容之外还接收通过互联网传送的内容,包括上述任何内容。ott内容经由互联网服务提供商(isp)提供的互联网被递送,但是第三方分发该内容。isp可以不负责内容的观看能力、版权或重新分发,而是可以仅传送由ott内容提供商提供的ip包。ott内容提供商的例子包括经由ip包提供音频和视频的youtube、netflix和hulu。youtube是googleinc.拥有的商标,netflix是netflixinc.拥有的商标,hulu是hulullc.拥有的商标。ott内容提供商可以附加地或替代地提供上述媒体引导数据。除了内容和/或媒体引导数据之外,ott内容的提供商还可以分发媒体引导应用(例如,基于web的应用或基于云的应用),或者内容可以由存储在用户设备装置上的媒体引导应用显示。

媒体引导系统400意在例示用户设备装置与内容和引导数据的源可以出于访问内容和提供媒体引导的目的而相互通信的若干种方法或网络配置。本文所描述的实施例可以应用于这些方法中的任何一种方法或这些方法的子集中、或利用其他方法来递送内容和提供媒体引导的系统中。以下四种方法提供图4的一般化例子的具体示例。

在一种方法中,用户设备装置可以在家庭网络内相互通信。用户设备装置可以经由上面所述的短距离点对点通信方案、经由通过家庭网络上的集线器或其他类似装置的间接路径、或经由通信网络414来直接相互通信。单个家庭里的多个个体均可以在家庭网络上操作不同的用户设备装置。结果,可能希望的是在不同的用户设备装置之间传送各种媒体引导信息或设置。例如,可能希望的是使用户在家庭网络内的不同用户设备装置上维持一致的媒体引导应用设置,如2005年7月11日提交的ellis等人的美国专利公开no.2005/0251827中更详细地描述的那样。家庭网络中的不同类型的用户设备装置也可以相互通信来发送内容。例如,用户可以将内容从用户设备装置发送到便携式视频播放器或便携式音乐播放器。

在第二种方法中,用户可能具有他们用于访问内容并且获得媒体引导的多种类型的用户设备。例如,一些用户可能具有被家用装置和移动装置访问的家庭网络。用户可以经由在远程装置上实现的媒体引导应用来控制家用装置。例如,用户可以经由他们的办公室里的个人计算机或者移动装置(诸如pda或启用web的移动电话)来访问网站上的在线媒体引导应用。用户可以在在线引导应用上设置各种设置(例如,记录、提醒或其他设置)来控制用户的家用设备。在线引导可以直接地控制用户的设备或通过与用户的家用设备上的媒体引导应用进行通信来控制用户的设备。用于其中用户设备装置位于相互远离的位置的用户设备装置通信的各种系统和方法在2011年10月25日发布的ellis等人的美国专利no.8046801中有讨论,该专利特此通过引用被整体并入本文。

在第三种方法中,家内和家外的用户设备装置的用户可以使用他们的媒体引导应用来直接与内容提供商416进行通信以访问内容。具体地说,在家内,用户电视设备402和用户计算机设备404的用户可以访问媒体引导应用来浏览和定位合意的内容。用户还可以在家外使用无线用户通信装置406访问媒体引导应用以浏览和定位合意的内容。

在第四种方法中,用户设备装置可以在云计算环境下进行操作以访问云服务。在云计算环境下,用于内容共享、存储或分发的各种类型的计算服务(例如,视频共享站点或社交网络站点)是由网络可访问的一批计算和存储资源(被称为“云”)。例如,云可以包括经由通信网络414向经网络(诸如互联网)连接的各种类型的用户和装置提供基于云的服务的一批服务器计算装置,这批可以集中安置或位于分布的位置。这些云资源可以包括一个或多个内容提供商416和一个或多个内容聚合器430。另外地或替代地,远程计算站点可以包括其他用户设备装置,诸如用户电视设备402、用户计算机设备404以及无线用户通信装置406。例如,其他用户设备装置可以提供对于视频或流传输视频的存储副本的访问。在这样的实施例中,用户设备装置可以在不与中央服务器通信的情况下以对等(peer-to-peer)的方式进行操作。

在其他例子中,云为用户设备装置提供对于诸如内容存储、内容共享或社交网络服务之类的服务的访问,以及对任何上面所述的内容的访问。服务可以在云中通过云计算服务提供商或通过其他在线服务提供商提供。例如,基于云的服务可以包括内容存储服务、内容共享站点、社交网络站点、或其他服务,由此来自用户的内容被分发以供其他人在连接的装置上查看。这些基于云的服务可以允许用户设备装置将内容存储到云并且从云接收内容,而不是本地存储内容并且访问本地存储的内容。

用户可以使用各种内容捕捉装置(诸如便携式摄像机、具有视频模式的数字照相机、录音机、移动电话以及手持计算装置)来记录内容。用户可以直接地将内容从例如具有内容捕捉特征的用户计算机设备404或无线用户通信装置406上传到云上的内容存储装置。可替代地,用户可以首先将内容传送到用户设备装置,诸如用户计算机设备404。存储有内容的用户设备装置使用通信网络414上的数据传输服务将内容上传到云。在一些实施例中,用户设备装置本身是云资源,其他用户设备装置可以直接从用户将内容存储在其上的用户设备装置访问内容。

用户设备装置可以使用例如web浏览器、媒体引导应用、桌面应用、移动应用和/或其访问应用的任何组合来访问云资源。用户设备装置可以是依赖云计算进行内容递送的云客户端,或者用户设备装置可以在不访问云资源的情况下具有某个功能性。例如,在用户设备装置上运行的一些应用可以是云应用,即,互联网上作为服务递送的应用,而其他应用可以被存储在用户设备装置上并且在用户设备装置上运行。在一些实施例中,用户装置可以同时从多个云资源接收内容。例如,用户装置可以流传输来自一个云资源的音频,同时从第二云资源下载内容。或者为了更高效地下载,用户装置可以从多个云资源下载内容。在一些实施例中,用户设备装置可以使用云资源进行处理操作,诸如由关于图3描述的处理电路执行的处理操作。

提供内容订阅的服务有时将有限数量的流分配给每个订阅以便允许用户同时流传输媒体。然而,分配给每个订阅的流的数量基于订阅的类型而受到限制。实际上,当订阅的所有可获得流都在使用中时,希望流传输媒体的内容订阅的用户可能被迫要么等待直到流变为可获得为止,要么选择取得对另一用户所用的流的控制。当例如电视节目的新剧集一变为可获得、内容订阅的所有用户就都有兴趣观看该剧集并且用户的数量超过可获得流的数量时,这对于用户变得尤其令人沮丧。此外,用户可能不知道购买额外的流的选项,并且可能也不知道内容订阅的其他用户发现他们自己由于流不可获得而不能观看内容的频率。

因此,本文描述了来自使得用户不必管理用于多个订阅服务的多个账户的媒体引导应用的方法和系统。例如,通过监视用户活动并且代表用户管理用户账户,控制电路304可以推荐针对用户的个人需要定制的订阅服务和/或订阅服务项。

另外,控制电路304可以代表用户行动以从众多内容提供商检索大量数据并对数据进行处理,以便确定订阅服务和/或来自最佳地满足用户需要的特定订阅服务的特定计划。如下面深入讨论的,媒体引导应用可以通过比较分开的且各异的数据集来对大量数据(通常只能在计算机可读代码中访问)进行处理以便为了用户的利益而识别趋势和统计优化。

在一些实施例中,控制电路304可以被配置为使用户从订阅服务可获得的可获得流的数量与和用户相关联的订阅相关联。控制电路304可以在服务器处实现,诸如在媒体内容提供商416内或在内容聚合器430内。在内容聚合器430上实现的控制电路304可以使用通信网络414与访问订阅的用户所使用的各种装置进行通信。这些装置可以包括用户电视设备402、用户计算机设备404以及无线用户通信装置406。例如,控制电路304接收将媒体内容(例如,电视节目“thesimpsons”的剧集)从媒体内容提供商416流传输到计算机设备404的请求。如果在内容聚合器430上实现的控制电路304确定请求的数量没有超过可获得流的数量,则在内容聚合器430上实现的控制电路304然后使用通信网络414来将媒体内容流传输到用户计算机设备404。

在一些实施例中,控制电路304可以将与每个请求相关联的数据记录在存储于存储装置308中的日志中。例如,响应于流传输媒体内容的请求,控制电路304记录与该请求相关联的时间戳、对于被请求的媒体内容的引用(例如,对于电视节目“thesimpsons”的剧集的引用)、请求内容的用户的标识符、用户正在用来请求内容的装置的标识符以及在请求时可获得的流的数量。另外,控制电路304可以存储请求是否被履行的指示。为了提供该指示,控制电路304可以在请求时将可获得流的数量与流传输媒体的请求的总数进行比较。控制电路304然后可以存储请求是否被履行的指示。

在一些实施例中,控制电路304可以将与流传输媒体数据的每个请求相关联的开始时间戳和结束时间戳记录在存储于存储装置308中的日志中。通过使时间戳与每个实例相关,控制电路304可以利用时间戳来有效地追踪用户因为可获得流的数量不足而不能流传输内容的那些实例。例如,开始时间戳对应于控制电路304接收到将媒体流传输到用户装置的请求时的时间或接近该时间的时间。结束时间戳可以指示控制电路304停止将流发送到用户装置时(例如,当媒体的回放结束时,或者当用户请求终止媒体的回放时)的时间或接近该时间的时间。当控制电路304接收到将媒体流传输到装置的请求并且在接收到请求时的请求总数超过用户可获得的流的数量时,控制电路304可以仅记录开始时间戳,而不记录结束时间戳,以便指示流传输媒体的请求未被履行。

在一些实施例中,控制电路304可以将有限数量的流与订阅相关联。例如,控制电路304将九个流与用户robert的订阅相关联。换句话说,九个流可供robert用来流传输内容。因此,如果任何其他用户请求使用robert的订阅来流传输媒体,则他们的请求将被履行,只要在请求被发出时请求的数量不超过可获得流的数量即可。

在一些实施例中,控制电路304可以检测同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的多个实例。例如,控制电路304检索存储于存储装置308中的日志中的记录以便识别包括指示与该记录相关联的给定请求未被履行的标识符的记录。在另一例子中,控制电路304从存储于存储装置308中的日志检索与请求相关联的开始时间戳。对于每个检索的开始时间戳,控制电路304可以确定与由成对的开始时间戳和结束时间戳限定的时间戳范围的重叠数量。例如,时间戳范围对应于开始时间戳(即,对应于与控制电路304接收到将媒体流传输到用户装置的请求时的时间或接近该时间的时间相关联的时间)和结束时间戳(即,对应于控制电路304停止将流发送到用户装置的时间或接近该时间的时间)之间的持续时间。控制电路304然后可以确定重叠数量是否大于用户从订阅服务可获得的流的数量。在重叠数量大于可获得流的数量的情况下,控制电路304可以将重叠与实例相关联。控制电路304可以进一步对存储在日志中的所有时间戳或时间戳的子集进行分析以确定同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的实例的数量。例如,控制电路304检测到同时将媒体从订阅服务流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的十二个实例。换句话说,在十二个场合下,至少一个用户不能访问来自订阅服务的流。

在一些实施例中,控制电路304可以生成多个时间戳,其中所述多个时间戳中的每个时间戳对应于所述多个实例中的一个实例。例如,基于检测到其中同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的若干个实例,控制电路304将与每个实例相关联的时间戳存储在存储装置308中的列表中。继续上述分析开始时间戳和结束时间戳的例子,控制电路304在检测到同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的多个实例之后,将每个实例与对应的开始时间戳相关联。例如,如果控制电路304检测到同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的十二个实例,则控制电路304生成时间戳的列表并且将该时间戳列表存储在存储装置308中,其中每个时间戳对应于这十二个实例中的一个。

在一些实施例中,控制电路304可以将所述多个时间戳中的每个时间戳与和订阅服务的订阅时间段对应的时间戳范围进行比较,以确定所述多个实例在订阅时间段期间发生的数量。例如,如果控制电路304生成十二个时间戳,则控制电路304然后将这十二个时间戳中的每个时间戳与订阅服务的订阅时间段进行比较以确定落到订阅时间段中的实例的数量(基于它们的对应时间戳)。如前面所讨论的,订阅时间段可以由开始时间戳和结束时间戳限定。控制电路304然后比较这二十个时间戳中的每个时间戳以确定每个时间戳是否落在由订阅时间段的开始时间戳和结束时间戳限定的时间范围内。基于落在该范围内的时间戳的数量,控制电路304可以确定所述多个实例在订阅时间段期间发生的数量。例如,控制电路304确定在这十二个生成的时间戳当中,有九个落在由订阅时间段的开始时间戳和结束时间戳限定的时间范围内。

在一些实施例中,控制电路304可以在服务器处将所述多个实例在订阅时间段期间发生的数量与订阅时间段的阈值数量进行比较。例如,阈值数量可以指示一个实例数量,在此实例数量之后用户可能变得对可获得流的缺乏感到沮丧。通过确定是否超过阈值数量,控制电路可以确定用户是否有可能想要获得额外的流。如在下面将变得更清楚的,控制电路304可以利用不同的方法来确定订阅时间段的阈值数量。因此,不是依赖于单个静态阈值,控制电路而是可以应用从用户的观看习惯推导出的阈值,因为各个用户容忍不可获得流的能力是不同的。例如,控制电路304可以使阈值数量基于用户从订阅服务可获得的流的数量。例如,控制电路304以始终面对不可获得流的用户作为目标。为此,如果控制电路304确定用户从订阅服务可获得的流的数量(例如,九个流)高于订阅服务的平均用户可获得的流的平均数量(例如,平均用户可能与仅两个流相关联),则控制电路304将阈值数量设置为低的数量(例如,四个)。因为与多个流相关联的订阅中的用户可能以前已经增加了额外的流来最小化流传输冲突,所以这样的用户对于经历进一步的流传输冲突可能已经是敏感的。因此,当流传输冲突的数量超过较低阈值时,控制电路304可以以这种系统中的用户作为目标。

在一些实施例中,控制电路304可以响应于确定所述多个实例在订阅时间段期间发生的数量超过订阅时间段的阈值数量,经由通信网络414从服务器向不同装置中的一个装置发送消息。通过发送消息,控制电路304可以解决用户不能流传输内容的沮丧,并且可以为用户提供解决可获得流的数量不足的问题的机会。控制电路304可以在控制其他变量(例如,价格)的同时确定替代性订阅服务/计划在与数据流输入和输出度量相比时是否可以改善用户可获得的流的数量。如果是,则控制电路可以发送推荐替代性订阅服务/计划的消息(例如,该消息指示有额外的流可供购买)。例如,响应于确定所述多个实例在订阅时间段期间发生的数量(例如,十二个)超过阈值数量(例如,八个),控制电路304将指示与装置相关联的用户可以购买额外的流的消息从服务器发送到该装置。控制电路304可以生成指示用户由于频繁的流传输冲突而能够购买额外的流的消息。控制电路304可以发送该消息以用于在用户电视设备402、用户计算机设备404或无线通信装置406的显示器312上显示。例如,控制电路304生成该消息以用于显示在节目列表项显示100中,节目列表项显示100显示在用户电视设备402的显示器312上。

在一些实施例中,控制电路304可以基于订阅时间段的时间长度来从多个可能的阈值数量中选择订阅时间段的阈值数量。控制电路304可以通过访问存储于存储装置308中的与订阅相关的数据来确定与订阅时间段相关联的时间长度。例如,控制电路304基于订阅时间段的开始时间戳和结束时间戳来确定订阅时间段的长度。例如,控制电路304确定一个月的订阅时间段。在该例子中,设置低阈值可能是不可取的,因为如果因为同时从订阅服务流传输媒体的请求的数量超过用户从订阅服务可获得的流的数量的实例的数量不可能高,用户没有察觉到需要增加流数量或改变他们的观看习惯,则用户可能没有兴趣按照消息行事。为此,控制电路304选择低阈值数量(例如,十个)以便考虑到如下事实,即,与例如六个月的时间段相比,平均来说,在一个月的时间段期间,同时从订阅服务流传输媒体的请求的数量超过用户从订阅服务可获得的流的数量的实例的数量较少。因此,如果时间长度被确定为越长(例如,一年),则控制电路304设置越大的阈值。

在一些实施例中,控制电路304可以将与订阅时间段相关联的多个阈值存储在存储装置308中。例如,控制电路304对流传输冲突在给定长度的订阅时间段期间发生的频率(例如,同时从订阅服务流传输媒体的请求的数量超过用户从订阅服务可获得的流的数量的实例的数量)进行分析。控制电路304进一步使在订阅时间段期间发生冲突的实例与用户执行与他或她的订阅有关的动作的实例相关。例如,控制电路304确定用户在若干个冲突(例如,用户对流传输冲突感到沮丧并且通过增加可获得流的数量来采取行动避免未来的流传输冲突的情形)发生的时间左右向他或她的订阅添加了新的流。在另一例子中,控制电路304确定用户在某个数量的冲突发生的时间左右取消了他或她的订阅(例如,用户对流传输冲突感到沮丧、因此采取行动取消他或她的订阅的情形)。控制电路304可以对其中针对订阅执行的动作与某个数量的流传输冲突相关的那些实例执行统计分析,以便确定与订阅时间段长度相关联的有效阈值数量。以这种方式,控制电路304确定阈值数量,这些阈值数量将允许控制电路304通过发送有帮助的消息来有效地对准因流传输冲突而感到沮丧的用户,同时避免妨碍可能没有体验到对流传输冲突的沮丧的其他用户。控制电路304可以将阈值数量保存在存储装置308中与给定订阅时间段相关联的记录中。

在一些实施例中,控制电路304可以基于用户从订阅服务可获得的流的数量来从多个可能的阈值数量中选择订阅时间段的阈值数量。例如,以用户从订阅服务可获得的流的数量较少为特征的订阅的用户更有可能寻求理解同时流传输媒体的请求的数量多么频繁地超过用户从订阅服务可获得的流的数量,因为当只有一个或两个流可获得时,流传输冲突更有可能发生。同时,以用户从订阅服务可获得的流的数量较多为特征的订阅的用户不太可能有兴趣理解同时流传输媒体的请求的数量多么频繁地超过用户从订阅服务可获得的流的数量,因为在用户的订阅中已经有足够的流来避免大多数流传输冲突。

在一些实施例中,控制电路304可以将与用户从订阅服务可获得的流的数量相关联的多个阈值存储在存储装置308中。例如,控制电路304分析对于可能变为用户可获得的每个数量的流发生冲突的频率(例如,同时从订阅服务流传输媒体的请求的数量超过用户从订阅服务可获得的流的数量的实例的数量)。例如,控制电路304确定当只有一个流可供用户使用时、当两个流可供使用时等发生的冲突的平均数量。控制电路304可以进一步将对于每个数量的可获得流发生的冲突的平均数量与用户执行与他或她的订阅有关的动作的实例相关。例如,控制电路304确定当只有一个流可获得时用户频繁地向他或她的订阅添加新的流(例如,用户可以将媒体流传输到唯一一个装置、因此用户通过增加可获得流的数量来采取行动避免未来的流传输冲突的情形)。在另一例子中,控制电路304确定在某个数量的冲突发生的时间左右用户取消了他或她的订阅(例如,用户对流传输冲突感到沮丧、因此采取行动取消他或她的订阅的情形)。控制电路304可以对对订阅执行的动作与可获得流的数量相关的那些实例执行统计分析,以便确定与订阅时间段长度相关联的阈值数量。控制电路304然后可以将阈值数量保存在存储装置308中与订阅相关联的记录中。

在一些实施例中,控制电路304可以将所述多个时间戳中的每个时间戳与和订阅服务的订阅时间段的一部分对应的时间戳范围进行比较以确定所述多个实例在订阅时间段的该部分期间发生的数量。例如,控制电路304将所述时间戳中的每个时间戳与和其中受欢迎的节目被播出的订阅时间段的一部分(例如,订阅时间段的对应于周三7:00pm到9:00pm时隙的所有部分,该时隙可能对应于节目“thesimpsons”的新剧集的播出)对应的时间戳范围进行比较,并且确定在与订阅时间段的该部分对应的时间戳范围内出现十个时间戳。

在一些实施例中,控制电路304可以通过识别一天、一周或一个月期间的用户频繁地流传输媒体的时间来确定订阅时间段的一部分。例如,控制电路304基于通过对存储于存储装置308中的日志中的数据进行分析来识别一周中与总的流消耗的某个百分比(例如,75%)相对应的时间,识别订阅时间段的部分。例如,控制电路304确定订阅时间段期间的所有媒体流传输的75%发生在6:00pm和12:00pm之间(例如,在用户下班或放学之后)。控制电路304然后将订阅时间段的所述部分定义为仅包括由每天的6:00pm和12:00pm限定的时间范围。

此外,控制电路304可以在服务器处将所述多个实例在订阅时间段的所述部分期间发生的数量与订阅时间段的所述部分的阈值数量进行比较。例如,控制电路304将所述多个实例在订阅时间段的所述部分期间发生的数量(例如,八个)与阈值数量(例如,六个)进行比较。

在一些实施例中,控制电路304可以响应于确定所述多个实例在订阅时间段的所述部分发生的数量超过订阅时间段的所述部分的阈值数量,对从服务器发送到所述不同装置之一的消息进行修改。例如,控制电路304确定所述多个实例在订阅时间段的所述部分发生的数量(例如,八个)超过阈值数量(例如,六个)。作为响应,控制电路通过指示例如在订阅时间段的对应部分期间(例如,在可能对应于节目“thesimpsons”的新剧集的播出的周三7:00pm和9:00pm之间的时隙期间)同时流传输媒体的请求的数量经常超过用户从订阅服务可获得的流的数量,来对从服务器发送到所述装置之一的消息进行修改。例如,控制电路304生成诸如“今天,请考虑在7pm之前观看节目,因为与您的订阅相关联的其他用户将可能观看thesimpsons的新剧集”之类的消息。可替代地,控制电路307可以响应于确定所述多个实例在订阅时间段的所述部分发生的数量(例如,八个)超过阈值数量(例如,六个),生成指示有额外的流可被购买的消息。例如,控制电路304生成诸如“您的订阅看起来不支持您的观看习惯。您想要查明如何在您的订阅中增加流的数量吗?”之类的消息。

在一些实施例中,控制电路304可以基于订阅时间段的时间长度来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,如上面关于基于订阅时间段的时间长度从多个可能的阈值数量中选择订阅时间段的阈值数量所描述的,控制电路304可以应用类似的原理来选择订阅时间段的所述部分的阈值数量。

在一些实施例中,控制电路304可以基于与订阅时间段的所述部分对应的日期来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,控制电路304通过经由通信网络414向内容聚合器430发送查询来确定受欢迎的电视节目(例如,“thesimpsons”)的第一季落在订阅时间段的所述部分内。控制电路304可以作为响应为订阅时间段的所述部分选择低的阈值数量,以便考虑到该订阅的大部分用户有兴趣观看受欢迎的电视节目(例如,“thesimpsons”)的该季剧集的事实。以这种方式,在用户更有可能担心流传输冲突的时候,用户可能更可能被通知流传输冲突。在另一例子中,控制电路304确定对应于夏季月份(例如,六月、七月和八月)的日期发生在订阅时间段的所述部分内。夏季月份通常与较少的新电视节目正被广播相关联。另外,有小孩的用户更可能花费较少的时间来流传输媒体,因为与其他季节的月份相比,这样的用户可能花费更多的时间在假期和户外上。因此,在夏季月份期间,用户可能不太会对流传输冲突感到沮丧,并且流传输冲突也可能不太可能发生。因此,控制电路304可以基于与订阅时间段的落在六月、七月或八月的月份内的部分相对应的日期来从多个可能的阈值数量为订阅时间段的所述部分选择高的阈值。以这种方式,用户可以在用户可能不太频繁地流传输媒体的月份期间接收较少的(如果有的话)消息。

在一些实施例中,控制电路304可以基于一天中与订阅时间段的所述部分对应的时间来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,控制电路304通过访问与订阅相关联的简档来监视用户的观看历史。在一个例子中,控制电路304对存储于用户电视设备402、用户计算机设备404或无线用户通信装置406上的订阅数据中的用户历史进行查询。在不同的例子中,控制电路304对媒体引导数据源的存储装置308上的用户历史进行查询。控制电路304通过分析用户历史来确定用户在最有可能流传输媒体的时间。在一个例子中,控制电路304确定大多数用户在晚上(例如,在他们下班或放学之后)流传输媒体。控制电路304可以为用户最有可能流传输媒体的时间选择低的阈值数量,以便帮助用户理解他或她的观看习惯和流传输需要。例如,响应于确定订阅时间段的所述部分(例如,给定一天期间的8:00pm和10:00pm之间的时隙)对应于订阅的用户最有可能流传输媒体时的时间,控制电路304选择低的阈值数量(例如,以考虑到流传输冲突更有可能在用户下班和放学之后发生的事实)。

在一些实施例中,控制电路304可以基于在订阅时间段的所述部分期间变为从订阅服务可获得的媒体资产的数量来从多个可能的阈值数量中选择订阅时间段的所述部分的阈值数量。例如,一些订阅服务通过定期地添加新的媒体资产来改进它们的内容产品。如果这发生了,用户可能变得有兴趣流传输比他们在新的媒体资产变为可用之前流传输的媒体多的媒体。因此,更多的流传输冲突有可能发生。控制电路304可以基于在订阅时间段的所述部分期间添加到订阅服务媒体产品的媒体资产的数量来确定在订阅时间段的所述部分期间变为从订阅服务可获得的媒体资产的数量。控制电路304可以通过在通信网络404上向内容聚合器430发送查询来确定在订阅时间段的所述部分期间变为从订阅服务可获得的媒体资产的数量。这样的查询可以请求在与订阅时间段的所述部分对应的时间段期间添加到订阅服务的产品的媒体资产的数量。例如,如果在订阅时间段的所述部分期间变为从订阅服务可获得的媒体资产的数量与在订阅时间段的其他部分期间变为从订阅服务可获得的媒体资产的数量相比较高,则控制电路304设置较低的阈值数量,以便考虑到如下事实,即,订阅的用户更有可能流传输以前尚未被流传输的媒体资产(例如,因为它们最近才被添加),因此可能更有可能想要理解请求的数量如何频繁地超过用户从订阅服务可获得的流的数量。

在一些实施例中,控制电路304可以发送包括用于降低所述多个实例的频率的推荐的消息。例如,当确定所述多个实例在订阅时间段期间发生的数量超过订阅时间段的阈值数量时,控制电路304从服务器向所述不同装置中的一个装置发送消息。该消息可以包括用于降低所述多个实例的频率的推荐。例如,控制电路304向用户通知该用户在某个时间之外(例如,在与用户有兴趣流传输的节目“thesimpsons”的新剧集的播出对应的周三7:00pm和9:00pm时隙之外)将更有可能成功地流传输媒体。该消息可以包括当向用户通知流传输冲突时可能有用的信息。例如,这样的信息包括媒体资产的名称、用户的姓名、在订阅时间段期间发生的流传输冲突的数量、用于增加或减少订阅中的流数量的指令、以及在未来如何最小化流传输冲突的数量的推荐。

图5和6呈现了根据本公开的一些实施例的算法,该算法用于控制电路(例如,控制电路304)检测同时将媒体从订阅服务流传输到不同装置的实例的数量超过订阅时间段期间的可获得流的数量的实例的数量,并且当实例的数量超过某个数量时将消息发送到这些装置中的一个装置。在一些实施例中,该算法可以作为一组指令被编码到非暂时性存储介质(例如,存储装置308)上,该组指令将由处理电路(例如,处理电路306)解码和执行。处理电路继而可以向控制电路304内包含的其他子电路(诸如调谐、视频生成、编码、解码、加密、解密、缩放、模拟/数字转换电路等)提供指令。

图5中的流程图描述了根据本公开的一些实施例的用于控制电路(例如,控制电路304)确定在订阅时间段内发生的实例的数量的算法。

在步骤502,基于流传输媒体的请求,检测在订阅时间段内发生的其中同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过可获得流的数量的实例的数量的算法将开始。在一些实施例中,这可以直接地或间接地响应于用户动作或输入(例如,来自由控制电路304或用户输入接口310接收的信号)而进行。例如,该算法直接响应于控制电路304从用户输入接口310接收到信号而开始,或者控制电路304在运行该算法之前提示用户使用显示器确认他们的输入(例如,通过生成要显示在显示器312上的提示)。

在步骤504,控制电路304继续从存储的存储器检索时间戳的下一个实例。在一些实施例中,控制电路304可以接收表示时间戳的值的单个原生数据结构(primitivedatastructure)。在一些实施例中,该值可以被存储为更大的数据结构的一部分,并且控制电路304可以通过执行适当的访问器方法从该更大的数据结构检索该值来检索该值。

在步骤506,控制电路304继续将检索的时间戳的值与和订阅时间段相关联的开始时间戳的存储值和结束时间戳的存储值进行比较。在一些实施例中,与订阅时间段相关联的开始时间戳的值和结束时间戳的存储值可以在开始所述算法之前被存储(例如,在存储装置308上)。在一些实施例中,也可以针对检索的时间戳的每一个实例来检索与订阅相关联的开始时间戳的值和结束时间戳的值,并且与订阅相关联的开始时间戳和结束时间戳的值可以随着迭代而改变。在一些实施例中,控制电路304可以通过分别从存储器访问各个值并且执行值比较来直接比较与订阅相关联的开始时间戳的值、结束时间戳的存储值和检索的时间戳的值。在一些情况下,控制电路304可以调用比较函数(例如,用于对象与对象的比较)来比较检索的时间戳和与订阅相关联的开始时间戳和结束时间戳的存储值。

在步骤508,控制电路304比较检索的时间戳的值和与订阅相关联的结束时间戳的存储值以确定检索的时间戳的值是否大于与订阅相关联的结束时间戳的值。如果该条件满足,则所述算法可以继续进行到步骤510;如果该条件不满足,则所述算法可以改为继续进行到步骤512。

在步骤510,控制电路304将基于步骤508处的条件满足来执行忽略与检索的时间戳相关联的实例的子例程。在该子例程被执行之后,所述算法可以继续进行到步骤516,在步骤516,确定检索的时间戳的所有实例是否都被考虑并且是否需要进一步的迭代。

在步骤512,控制电路304比较所检索的时间戳和开始时间戳的值以确定检索的时间戳的值是否大于开始时间戳的值。如果该条件满足,则所述算法可以继续进行到步骤514;如果该条件不满足,则所述算法可以改为继续进行到步骤516。

在步骤514,控制电路304将基于步骤512的条件满足来执行将与识别的时间戳相关联的实例添加到订阅时间段内的实例的计数的子例程。在该子例程被执行之后,所述算法可以继续进行到步骤516,在步骤516,确定检索的时间戳的所有实例是否都被考虑并且是否需要进一步的迭代。

在步骤516,控制电路304将检查时间戳的所有实例是否都被考虑。如果所有实例都已经被评估,则控制电路304可以继续进行到步骤518。例如,控制电路304可以调用函数来察看是否存在时间戳的下一个元素。如果该函数返回真(即,仍存在需要处理的实例),则控制电路304可以继续进行到步骤504。

在步骤518,控制电路304将执行将识别的实例的总数与阈值数量进行比较的子例程。

设想图5的描述可以与本公开的其他实施例一起使用。另外,关于图5的算法所述的描述可以按其他次序或并行地进行以增进本公开的目的。例如,条件语句和逻辑评估(诸如508和512处的那些)可以按任何次序或并行地或同时地执行以减小延迟或提高系统或方法的速度。作为进一步的例子,在一些实施例中,可以使用多个逻辑处理器线程来并行地评估时间戳的几个实例,或者可以通过合并分支预测来增强所述算法。此外,应注意,图5的算法可以在适当地配置的软件和硬件的组合上实现,并且关于图3-4讨论的装置或设备中的任何一个可以用于实现所述算法的一个或多个部分。

图6中的伪代码描述了根据本公开的一些实施例的用于检测在订阅时间段内发生的其中同时将媒体从订阅服务流传输到不同装置的请求的数量超过可获得流的数量的实例的数量的算法,该算法将基于流传输媒体的请求开始。本领域技术人员将清楚是,图6中的伪代码描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且风格和格式不应被解释为限制性的,而是与用于实现本公开的一些实施例的代码一致的步骤和过程的一般性模板。

在行601,所述算法可以运行初始化变量的子例程并且准备确定在订阅时间段内发生的实例的数量(在行605上开始)。例如,在一些实施例中,控制电路304可以在初始化阶段期间将指令从非暂时性存储介质(例如,存储装置308)拷贝到ram或处理电路306的高速缓存中。另外,在一些实施例中,可以在601检索、设置并且存储正用于比较的、所存储的订阅时间段开始时间戳的值和所存储的订阅时间段结束时间戳的值。

在行605,控制电路304可以接收时间戳的实例。在一些实施例中,可以从存储的存储器检索这些实例。控制电路304通过接收例如指向时间戳的值数组的指针来接收时间戳的实例。在另一例子中,控制电路304接收类的对象,诸如包含时间戳的元素的迭代器对象。

在行606,控制电路304可以迭代遍历时间戳的各个实例,如果只有单个实例可用,则循环将仅执行一次。该循环可以取决于实现图6的算法的硬件和软件语言的选择而以多种方式实现;例如,这可以实现为“for”或“while”循环的一部分。

在行607,控制电路304将把时间戳的值存储到临时变量“a”中。在一些实施例中,时间戳的值将被存储为更大的数据结构或类的一部分,并且时间戳的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将时间戳从字符串或其他非数值数据类型转换为数值数据类型。在一些实施例中,控制电路304可以调用函数来执行检索的时间戳与订阅时间段开始时间的比较。在一些实施例中,时间戳可以被编码为原生数据结构,并且检索的时间戳可以被直接用在行610和612处的比较中,而不是使用临时变量。

在行608,控制电路304将把订阅时间段开始时间戳的值存储到临时变量“b”中。类似于时间戳,在一些实施例中,订阅时间段开始时间戳的值将被存储为更大的数据结构或类的一部分,并且订阅时间段开始时间戳的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将订阅时间段开始时间戳从字符串或其他非数值数据类型转换为数值数据类型,或者订阅时间段开始时间戳可以是原生数据结构,并且可以被直接用在行612处的比较中。

在行609,控制电路304将把订阅时间段结束时间戳的值存储到临时变量“c”中。类似于开始时间戳,在一些实施例中,订阅时间段结束时间戳的值将被存储为更大的数据结构或类的一部分,并且订阅时间段结束时间戳的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将订阅时间段结束时间戳从字符串或其他非数值数据类型转换为数值数据类型,或者订阅时间段结束时间戳可以是原生数据结构,并且可以被直接用在行610处的比较中。

在行610,控制电路304将比较a和c的值以确定a是否大于c。

在行611,如果行610中的条件满足,则控制电路304将执行忽略与检索的时间戳相关联的实例的子例程。

在行612,控制电路304将比较a和b的值以确定a是否大于b。

在行613,如果行612中的条件满足,则控制电路304将执行将与识别的时间戳相关联的实例添加到订阅时间段内的实例的计数的子例程。

在行615,如果行610或612处的条件都不满足,则控制电路304执行确定是否使用控制电路304考虑了与时间戳相关联的所有实例的子例程。

在行617,控制电路304可以在所述算法已经执行了其功能之后运行终止子例程。例如,在一些实施例中,控制电路304可以析构变量,执行垃圾收集,释放存储器或清除处理电路306的高速缓存。

本领域技术人员将清楚的是,图6中的伪代码描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且原生函数、逻辑评估和函数评估的特定选择和位置并非意在是限制性的。还将清楚的是,该代码可以被重构或重写为操纵各种逻辑评估的次序,并行地而非在单个迭代循环中执行几个迭代,或在不从根本上改变输入或最终输出的情况下以其他方式操纵和优化运行时和性能度量。例如,在一些实施例中,中断条件可以放置在行610和612的后面以使操作加速,或者条件语句可以替换为case-switch。在一些实施例中,不是在步骤606在时间戳的所有实例上迭代,在一些实施例中,代码可以被重写为使得控制电路304被指示在多个处理器或处理器线程上同时对时间戳的多个实例进行评估,从而减少了所需的迭代次数并且潜在地加速计算时间。

图7和8呈现了根据本公开的一些实施例的算法,该算法用于控制电路(例如,控制电路304)检测在订阅时间段的一部分期间同时将媒体从订阅服务流传输到不同装置的实例的数量超过可获得流的数量的实例的数量,并且当实例的数量超过某个数量时将消息发送到这些装置中的一个。在一些实施例中,该算法可以作为一组指令编码到非暂时性存储介质(例如,存储装置308)上,该组指令将被处理电路(例如,处理电路306)解码和执行。处理电路继而可以向控制电路304内包含的其他子电路(诸如调谐、视频生成、编码、解码、加密、解密、缩放、模拟/数字转换电路等)提供指令。

图7中的流程图描述了根据本公开的一些实施例的用于控制电路(例如,控制电路304)确定在订阅时间段的一部分内发生的实例的数量的算法。

在步骤702,基于流传输媒体的请求,用于检测在订阅时间段内的一部分发生的其中同时将媒体从订阅服务流传输到不同装置的请求的数量超过可获得流的数量的实例的数量的算法将开始。在一些实施例中,这可以直接地或间接地响应于用户动作或输入(例如,来自由控制电路304或用户输入接口310接收的信号)而进行。例如,该算法可以直接响应于控制电路304从用户输入接口310接收到信号而开始,或者控制电路304在运行该算法之前提示用户使用显示器确认他或她的输入(例如,通过生成将显示在显示器312上的提示)。

在步骤704,控制电路304继续从存储的存储器检索时间戳的下一个实例。在一些实施例中,控制电路304可以接收表示时间戳的值的单个原生数据结构。在一些实施例中,该值可以被存储为更大的数据结构的一部分,并且控制电路304可以通过执行适当的访问器方法从该更大的数据结构检索该值来检索该值。

在步骤706,控制电路304继续将检索的时间戳的值和与订阅时间段的一部分相关联的开始时间戳的存储值和结束时间戳的存储值进行比较。在一些实施例中,与订阅时间段的所述部分相关联的开始时间戳的值和结束时间戳的存储值可以在开始所述算法之前被存储(例如,在存储装置308上)。在一些实施例中,也可以针对检索的时间戳的每一个实例来检索与订阅的所述部分相关联的开始时间戳的值和结束时间戳的值,并且与订阅的所述部分相关联的开始时间戳和结束时间戳的值可以随着迭代而改变。在一些实施例中,控制电路304可以通过分别从存储器访问各个值并且执行值比较,来直接比较与订阅的所述部分相关联的开始时间戳的值、结束时间戳的存储值和检索的时间戳的值。在一些情况下,控制电路304可以调用比较函数(例如,用于对象与对象的比较)来比较检索的时间戳与和订阅的所述部分相关联的开始时间戳和结束时间戳的存储值。

在步骤708,控制电路304比较检索的时间戳与和订阅的所述部分相关联的结束时间戳的值以确定检索的时间戳的值是否大于与订阅的所述部分相关联的结束时间戳的值。如果该条件满足,则所述算法可以继续进行到步骤710;如果该条件不满足,则所述算法可以改为继续进行到步骤712。

在步骤710,控制电路304将基于步骤708处的条件满足来执行忽略与检索的时间戳相关联的实例的子例程。在该子例程被执行之后,所述算法可以继续进行到步骤716,在步骤716,确定检索的时间戳的所有实例是否都被考虑并且是否需要进一步的迭代。

在步骤712,控制电路304比较检索的时间戳和开始时间戳的值以确定检索的时间戳的值是否大于开始时间戳的值。如果该条件满足,则所述算法可以继续进行到步骤714;如果该条件不满足,则所述算法可以改为继续进行到步骤716。

在步骤714,控制电路304将基于步骤712的条件满足来执行将与识别的时间戳相关联的实例添加到订阅时间段的所述部分内的实例的计数的子例程。在该子例程被执行之后,所述算法可以继续进行到步骤716,在步骤716,确定检索的时间戳的所有实例是否都被考虑并且是否需要进一步的迭代。

在步骤716,控制电路304将检查时间戳的所有实例是否都被考虑。如果所有实例都已经被评估,则控制电路304可以继续进行到步骤718。例如,控制电路304可以调用函数来察看是否存在时间戳的下一个元素。如果该函数返回真(即,仍存在需要处理的实例),则控制电路304可以继续进行到步骤704。

在步骤718,控制电路304将执行比较识别的实例的总数与阈值数量的子例程。

设想图7的描述可以与本公开的其他实施例一起使用。另外,关于图7的算法所述的描述可以按其他次序或并行地进行以增进本公开的目的。例如,条件语句和逻辑评估(诸如708和712处的那些)可以按任何次序或并行地或同时地执行以减小延迟或提高系统或方法的速度。作为进一步的例子,在一些实施例中,可以使用多个逻辑处理器线程来并行地评估时间戳的几个实例,或者可以通过合并分支预测来增强所述算法。此外,应注意,图7的算法可以在适当地配置的软件和硬件的组合上实现,并且关于图3-4讨论的装置或设备中的任何一个可以用于实现所述算法的一个或多个部分。

图8中的伪代码描述了根据本公开的一些实施例的用于检测在订阅时间段的所述部分内发生的其中同时将媒体从订阅服务流传输到不同装置的请求的数量超过可获得流的数量的实例的数量的算法,该算法将基于流传输媒体的请求开始。本领域技术人员将清楚的是,图8中的伪代码描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且风格和格式不应被解释为是限制性的,而是与用于实现本公开的一些实施例的代码一致的步骤和过程的一般性模板。

在行801,所述算法可以运行初始化变量的子例程并且准备确定在订阅时间段的所述部分内发生的实例的数量(在行805上开始)。例如,在一些实施例中,控制电路304可以在初始化阶段期间将指令从非暂时性存储介质(例如,存储装置308)拷贝到ram或处理电路306的高速缓存中。另外,在一些实施例中,可以在801检索、设置并且存储正用于比较的订阅时间段的所述部分的所存储的开始时间的值和订阅时间段的所述部分的所存储的结束时间的值。

在行805,控制电路304可以接收时间戳的实例。在一些实施例中,可以从存储的存储器检索这些实例。控制电路304通过接收例如指向时间戳的值数组的指针来接收时间戳的实例。在另一例子中,控制电路304接收类的对象,诸如包含时间戳的元素的迭代器对象。

在行806,控制电路304可以迭代遍历时间戳的各个实例,如果只有单个实例可用,则该循环将仅执行一次。该循环可以取决于用于实现图8的算法的硬件和软件语言的选择而以多种方式实现;例如,这可以实现为“for”或“while”循环的一部分。

在行807,控制电路304将将时间戳的值存储到临时变量“a”中。在一些实施例中,时间戳的值将被存储为更大的数据结构或类的一部分,并且时间戳的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将时间戳从字符串或其他非数值数据类型转换为数值数据类型。在一些实施例中,控制电路304可以调用函数来执行检索的时间戳与订阅时间段的开始时间的比较。在一些实施例中,时间戳可以被编码为原生数据结构,并且检索的时间戳可以直接被用在行810和812处的比较中,而非使用临时变量。

在行808,控制电路304将把订阅时间段的所述部分的开始时间的值存储到临时变量“b”中。类似于时间戳,在一些实施例中,订阅时间段的所述部分的开始时间的值将被存储为更大的数据结构或类的一部分,并且订阅时间段开始时间戳的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将订阅时间段的所述部分的开始时间戳从字符串或其他非数值数据类型转换为数值数据类型,或者订阅时间段的所述部分的开始时间戳可以是原生数据结构,并且可以被直接用在行812处的比较中。

在行809,控制电路304将把订阅时间段的所述部分的结束时间戳的值存储到临时变量“c”中。类似于开始时间戳,在一些实施例中,订阅时间段结束时间戳的值将被存储为更大的数据结构或类的一部分,并且订阅时间段的所述部分的结束时间戳的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将订阅时间段的所述部分的结束时间戳从字符串或其他非数值数据类型转换为数值数据类型,或者订阅时间段的所述部分的结束时间戳可以是原生数据结构,并且可以被直接用在行810处的比较中。

在行810,控制电路304将比较a和c的值以确定a是否大于c。

在行811,如果行810中的条件满足,则控制电路304将执行忽略与检索的时间戳控制电路相关联的实例的子例程。

在行812,控制电路304将比较a和b的值以确定a是否大于b。

在行813,如果行812中的条件满足,则控制电路304将执行将与识别的时间戳相关联的实例添加到所述订阅时间段部分内的实例的计数的子例程。

在行814,控制电路304将确定行810或812中的条件是否都不满足。如果两个条件被不满足,则可以评估并且执行行815处的指令。

在行817,控制电路304可以在所述算法已经执行了其功能之后运行终止子例程。例如,在一些实施例中,控制电路304可以析构变量,执行垃圾收集,释放存储器或清除处理电路306的高速缓存。

本领域技术人员将清楚的是,图8中的伪代码描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且原生函数、逻辑评估和函数评估的特定选择和位置并非意图是限制性的。还将清楚的是,该代码可以被重构或重写为操纵各种逻辑评估的次序,并行地而不是在单个迭代循环中执行几个迭代,或在不从根本上改变输入或最终输出的情况下以其他方式操纵和优化运行时和性能度量。例如,在一些实施例中,中断条件可以放置在行810和812的后面以使操作加速,或者条件语句可以替换为case-switch。在一些实施例中,不是在步骤806在时间戳的所有实例上迭代,在一些实施例中,代码可以被重写为使得控制电路304被指示在多个处理器或处理器线程上同时对时间戳的多个实例进行评估,从而减少了所需的迭代次数并且潜在地加速计算时间。

图9是当实例的数量超过某个数量时向装置发送消息所涉及的例示性步骤的流程图。应注意,过程900或者其任何步骤可以在图3-4所示的装置中的任何一个上执行或由图3-4所示的装置中的任何一个提供。例如,过程900可以被如由在用户设备402、404和/或406(图1)上实现的控制电路指示的控制电路304(图3)执行,以便检测实例的数量何时超过某个数量并且将消息发送到装置。另外,过程900的一个或多个步骤可以合并到任何其他的过程或实施例的一个或多个步骤中或与这些步骤组合。

过程900在步骤902开始,在步骤902,控制电路304检测同时将媒体从订阅服务流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的多个实例。控制电路304从访问订阅服务的用户所使用的各种装置接收请求。这些装置可以包括用户电视设备402、用户计算机设备404以及无线用户通信装置406。在一个例子中,控制电路304检测到在十二个实例中,同时将来自订阅服务的媒体流传输到不同装置的请求的数量超过用户从订阅服务可获得的流的数量。换句话说,在十二个场合下,订阅的至少一个用户不能从内容订阅服务流传输内容。

在步骤904,控制电路304生成与所述多个实例中的每个实例对应的多个时间戳。例如,基于检测到同时从订阅服务流传输媒体到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的若干个实例,控制电路304将与每个实例相关联的时间戳存储在存储装置308中的列表中。如果控制电路304检测到例如同时从订阅服务流传输媒体到不同装置的请求的数量超过用户从订阅服务可获得的流的数量的十二个实例,则控制电路304生成时间戳列表并且将该时间戳列表存储在存储装置308中,其中每个时间戳对应于这十二个实例中的一个。

在步骤906,控制电路304通过将所述多个时间戳中的每个时间戳和与订阅服务的订阅时间段对应的时间戳范围进行比较,来基于时间戳确定在订阅时间段内发生的实例的数量。例如,如果控制电路304生成十二个时间戳,则控制电路304然后将这十二个时间戳中的每个时间戳与订阅服务的订阅时间段进行比较。控制电路304然后比较这十二个时间戳中的每个时间戳以确定每个时间戳是否落在由订阅时间段的开始时间戳和结束时间戳限定的时间范围内。基于落在该范围内的时间戳的数量,控制电路304确定所述多个实例在订阅时间段期间发生的数量。例如,控制电路304确定在这十二个生成的时间戳中,九个落在由订阅时间段的开始时间戳和结束时间戳限定的时间范围内。

在步骤908,控制电路304将所述多个实例在订阅时间段期间发生的数量与订阅时间段的阈值数量进行比较。控制电路304利用不同的方法来确定订阅时间段的阈值数量。例如,控制电路304使阈值数量基于用户从订阅服务可获得的流的数量。例如,控制电路304可以以始终对付不可获得流的用户作为目标。为此,如果控制电路304确定用户从订阅服务可获得的流的数量(例如,九个流)高于订阅服务的平均用户可获得的流的平均数量(例如,平均用户可能与只有两个流相关联),则控制电路304将阈值数量设置为较高的数量(例如,二十个)。

在步骤910,如果在订阅时间段内发生的实例的数量超过阈值数量,则控制电路304向装置发送消息。例如,响应于确定所述多个实例在订阅时间段期间发生的数量超过订阅时间段的阈值数量,控制电路304经由通信网络414从服务器向所述不同装置中的一个装置发送消息。例如,响应于确定所述多个实例在订阅时间段期间发生的数量(例如,十二个)超过阈值数量(例如,八个),控制电路304将指示与装置相关联的用户可以购买额外的流的消息从服务器发送到该装置。在一个例子中,控制电路304生成指示用户由于频繁的流传输冲突而能够购买额外的流的消息。控制电路304发送该消息以用于在用户电视设备402、用户计算机设备404或无线通信装置406的显示器312上显示。例如,控制电路304生成该消息以用于显示在节目列表项显示100中,节目列表项显示100显示在用户电视设备402的显示器312上。

设想图9的步骤或描述可以与本公开的任何其他的实施例一起使用。另外,关于图9所述述的步骤和描述可以按其他次序或并行地进行以增进本公开的目的。例如,这些步骤中的每个步骤可以按任何次序或并行地或基本上同时地执行以减小延迟或提高所述系统或方法的速度。

本领域的普通技术人员将清楚的是,本发明中所涉及的方法可以体现为包括计算机可用和/或可读介质的计算机程序产品中。例如,这样的计算机可用介质可以由其上存储有计算机可读程序代码的只读存储器装置(诸如cd-rom盘或常规的rom装置)或随机存取存储器(诸如硬盘驱动器装置或计算机磁盘)组成。还应理解,本发明中所涉及的方法、技术和过程可以使用处理电路来执行。例如,与用户相关联的社交媒体交互的检测可以由处理电路(例如,图3的处理电路306)执行。处理电路例如可以是设备装置300、媒体内容提供商416或内容聚合器430内的通用处理器、定制集成电路(例如,asic)或现场可编程门阵列(fpga)。例如,如本文所描述的媒体资产元数据可以被存储在图3的存储装置308或图4的内容聚合器430中并从中检索。此外,处理电路或计算机程序可以更新与用户相关联的设置(诸如用户简档属性),更新存储在图3的存储装置308或图4的内容聚合器430内的信息。

上面讨论的过程意图是例示性的,而非限制性的。本领域技术人员将意识到,在不脱离本发明的范围的情况下,本文所讨论的过程的步骤可以被省略、被修改、被组合和/或被重排,并且任何额外的步骤可以被执行。更一般地,上面的公开打算是示意性的,而非限制性的。只有下面的权利要求意在于设置关于本发明包括什么的界限。此外,应注意,任何一个实施例中描述的特征和限制可以应用于本文的任何其他实施例,并且与一个实施例有关的流程图或例子可以以合适的方式与任何其他实施例组合,按不同次序进行,或并行进行。另外,本文所描述的系统和方法可以实时地执行。还应注意,上述系统和/或方法可以应用于其他系统和/或方法或根据其他系统和/或方法使用。

在一些实施例中,控制电路304可以自动地从内容聚合器服务接收认证信息。例如,在控制电路304上实现的媒体引导应用可以在控制电路304接收到为用户订阅订阅服务的请求之前接收认证信息并且使认证信息与用户账户相关联。控制电路304然后可以接收为用户订阅订阅服务的请求,因此对账户进行验证并且向用户授予对订阅服务的产品的访问权限。

在一些方面,控制电路304可以在与订阅服务(例如,hulu)相关联的内容提供商服务器处从与第二订阅服务(例如,rovi超级聚合器)相关联的内容聚合器服务器接收第一认证密钥,其中第一认证密钥是在用户订阅第一订阅服务之前接收到的。例如,用户可以订阅内容聚合器服务(即,第二订阅服务)。一旦用户完成他或她向第二订阅服务的注册,在与第二订阅服务相关联的内容聚合器服务器上实现的控制电路304就可以生成认证密钥以使用户与作为内容聚合器订阅的一部分可用的订阅服务中的一些或全部相关联,并且将生成的认证密钥传送到与每个订阅服务(包括第一订阅服务)相关联的服务器。每个认证密钥可以被编码以便确保存储在密钥中的信息被安全地发送到与每个订阅服务相关联的服务器。另外,每个认证密钥可以包括识别用户和第二订阅服务(例如,rovi超级聚合器)的信息。在与第一订阅服务相关联的内容提供商服务器上实现的控制电路304然后可以从内容聚合器服务器接收所生成的认证密钥。在一些情况下,在内容提供商服务器上实现的控制电路304可以对认证密钥进行解密,并且提取存储在密钥中的信息。控制电路304可以还将认证密钥存储在内容提供商服务器上。以这样的方式,控制电路304可以在不劳烦用户进行手动创建账户的任务的情况下将与第一用户相关联的认证信息发送到第一订阅服务。

在一些情况下,在内容提供商服务器上实现的控制电路304可以在用户向第二订阅服务注册之后、但是在在内容聚合器服务器上实现的控制电路304检测到用户希望订阅第一订阅服务之前,从内容聚合器服务器接收第一认证密钥。例如,提供第二订阅服务(例如,rovi超级聚合器)的实体可以与提供第一订阅服务(例如,hulu)的实体达成协议,以折扣价向第二订阅装置的用户提供第一订阅服务的订阅。在用户订阅第一订阅服务之前,在内容聚合器服务器上实现的控制电路304可以将第一认证密钥发送到内容聚合器服务器。

在一些情况下,在与第二订阅服务相关联的内容聚合器服务器上实现的控制电路304可以生成认证密钥以使用户与作为内容聚合器订阅的一部分可用的订阅服务中的一些或全部相关联,并且将生成的认证密钥传送到与每个订阅服务(包括第一订阅服务)相关联的服务器。每个认证密钥可以被加密以便确保存储在密钥中的信息被安全地发送到与每个订阅服务相关联的服务器。例如,认证密钥可以经由公钥加密,内容提供商服务器和内容聚合器服务器都能访问此公钥。另外,每个认证密钥可以包括识别用户和第二订阅服务(例如,rovi超级聚合器)的信息。在一个例子中,认证密钥可以包括与第二订阅服务上的用户相关联的用户名和密码。在与第一订阅服务相关联的内容提供商服务器上实现的控制电路304然后可以从内容聚合器服务器接收生成的认证密钥。在一些情况下,在内容提供商服务器上实现的控制电路304可以对认证密钥进行解密,并且提取存储在密钥中的信息。控制电路304可以还将认证密钥存储在内容提供商服务器上。以这样的方式,控制电路304可以在不劳烦用户进行手动创建账户的任务的情况下将与第一用户相关联的认证信息发送到第一订阅服务。

在一些情况下,在内容提供商服务器上实现的控制电路304可以将第一认证密钥与第一多个可接受的认证密钥进行比较以确定是否基于第一认证密钥来生成用于第一订阅服务的第一账户。例如,在内容提供商服务器上实现的控制电路304可以提取存储在第一认证密钥中的信息,并且确定密钥的与第二订阅服务的标识符相关的部分中列出的订阅服务(例如,rovi超级聚合器)的名称。在内容提供商服务器上实现的控制电路304然后可以检索控制电路304以前已经识别出被允许在第一订阅服务上生成用户账户的订阅服务的列表,并且将订阅服务的名称与检索的列表中的每个订阅服务进行比较。实际上,在内容提供商服务器上实现的控制电路304可以在维持对所创建的账户的控制的同时从内容聚合器(即,第二订阅服务)接收关于新用户的信息。例如,第一订阅服务可以与第二订阅服务达成协议以折扣价提供第一订阅服务上的订阅。此外,通过将关于第二订阅服务的信息封装在认证密钥中,第一订阅服务确保只有与受信任的内容聚合器相关联的用户的账户被创建。

在一些情况下,在内容提供商服务器上实现的控制电路304可以提取存储在第一认证密钥中的信息,并且确定用户的用户名。控制电路304然后可以检索控制电路304以前已经识别出被允许在第一订阅服务上生成账户的用户名的列表,并且将提取的用户名与每个识别的用户名进行比较。

在一些方面,在内容提供商服务器上实现的控制电路304响应于确定第一认证密钥与第一多个可接受的认证密钥中的一个匹配,可以在内容提供商服务器处生成第一用户账户。例如,为了创建在内容提供商服务器上生成账户所必需的信息,控制电路可以提取认证密钥中包含的信息,诸如用户名、密码和订阅服务名称。在一些情况下,控制电路304可以存储与第一账户相关联的指定该账户未被验证的指示。如果用户或在第二订阅服务上实现的控制电路304将来决定对账户进行验证,则在内容提供商服务器上实现的控制电路304可以在几乎不需要用户输入的情况下高效地对账户进行验证,如下面将更详细地说明的那样。

在一些方面,在内容提供商服务器上实现的控制电路304可以将第一用户账户存储在指示第一用户账户对应于第一认证密钥的数据库条目中。例如,在内容提供商服务器上实现的控制电路304可以将与生成的用户账户相关的信息存储在数据库中存储的条目中。控制电路304还可以将用户账户与认证密钥相关联,例如,通过使指向认证密钥的位置的指针存储在与用户账户相关联的数据库条目中。通过使存储的用户账户与第一认证密钥相关联,在内容聚合器服务器上实现的控制电路304可以确保在第二订阅或用户决定验证第一订阅服务上的账户的情况下账户可以被快速地验证。在一些情况下,控制电路304可以将第一认证密钥存储于存储装置308中的位置,其中该位置由目录或文件路径识别。控制电路304然后可以将到该位置的路径存储在对应于第一用户账户的数据库条目中。

在一些方面,在内容提供商服务器上实现的控制电路304继存储第一用户账户之后可以在内容提供商服务器处从内容聚合器服务器接收为用户订阅第一订阅服务的请求,其中该请求包括第二认证密钥。控制电路304可以响应于订阅第一订阅服务的用户请求,接收第二认证密钥。例如,在内容聚合器服务器上实现的控制电路304可能检测到第二订阅服务(例如,rovi超级聚合器)的用户期望订阅第一订阅服务(例如,hulu)。在不同的例子中,当订阅第一服务的成本满足成本标准时,在第二服务上实现的控制电路304可以自动地向第一服务发送请求。第一订阅服务上的控制电路304可以对存储在第二密钥中的信息进行解密,检索存储在第二密钥中的信息,并且将认证密钥存储在内容提供商服务器上。通过提供接收第二认证密钥的框架,在内容提供商服务器上实现的控制电路可以安全地验证用户的账户。

在一些方面,在内容提供商服务器上实现的控制电路304可以将第一认证密钥与第二认证密钥进行比较。例如,在内容提供商服务器上实现的控制电路304可以从第二密钥检索与和该密钥相关联的用户的名称相关的信息,然后可以对数据库进行查询以确定与识别的用户相关联的账户是否存在。可选地,控制电路304然后可以检索与识别的用户的账户相关联的第一认证密钥(即,从存储装置308或从数据库检索)。在对存储在密钥中的数据进行解密或不进行解密的情况下,控制电路304可以进一步将第二认证密钥与第一认证密钥进行比较。

在一些方面,在内容提供商服务器上实现的控制电路304可以响应于确定第一认证密钥与第二认证密钥匹配,对第一用户账户进行验证。例如,基于第一认证密钥与第二认证密钥的比较,在内容提供商服务器上实现的控制电路304然后可以识别与任一密钥相关联的用户账户。控制电路304然后可以对数据库进行查询以识别账户,并且存储指定账户已经被验证的指示。在一个例子中,控制电路304可以识别与识别的账户相关联的数据库记录,并且将与账户是否被验证相关联的字段(例如,字段is_validated)设置为指示账户被验证的值(例如,真)。通过验证账户,在内容提供商服务器上实现的控制电路304允许被内容提供商服务器认证的用户在无需用户创建账户的情况下访问由第一订阅服务提供的媒体内容。

在一些实施例中,响应于第一用户账户得到验证,在第一账户上实现的控制电路304可以授予通过第一用户账户对第一订阅服务的访问权限。例如,在内容提供商服务器上实现的控制电路304可以生成指示账户可供使用的消息,并且将该消息发送到内容聚合器服务器。因此,在内容提供商服务器上实现的控制电路304能够向用户通知第二订阅服务的产品可以被用户访问。

在一些方面,第一认证密钥是基于由第二订阅服务分配给用户的用户名和密码的加密密钥。例如,认证密钥可以包括与用户在内容聚合器服务器上的账户相对应的用户名和密码。在另一例子中,内容聚合器服务器上的控制电路304可以生成符合第一订阅服务的密码要求的密码。在内容聚合器服务器上实现的控制电路304可以利用密码生成模块,该密码生成模块可以被设计为生成难以解密的随机化字符串,从而确保访问内容提供商服务器所需的认证信息强于平均用户通常会选择的认证信息。例如,为了容易地记住他或她的密码,如果关于在内容提供商服务器上创建账户的密码要求允许密码仅由字母和数字组成,则平均用户可能为密码选择短的关键字和数字(例如,“mypetsname1”)。同时,在内容聚合器服务器上实现的控制电路304可以利用密码生成器模块来创建混合的小写字母、大写字母、数字和特殊字符的长字符串。控制电路304可以被预先配置有对于每个订阅服务的密码规则。例如,密码规则可以指示第一订阅服务(例如,hulu)允许最大长度为十五个字符的密码,并且&符号不被允许作为密码的一部分。基于关于第一订阅服务(例如,hulu)的密码规则,控制电路304可以生成符合第一订阅服务的要求的安全密码(例如,y#e%f4v3tt$80u)。以这种方式,内容提供商服务器上的用户账户变得不那么容易受密码黑客入侵尝试影响。用户的用户名可以以类似的方式生成以进一步提高内容提供商服务器上的用户的认证信息的安全性。

在一些实施例中,第一多个可接受的认证密钥是在内容提供商服务器处从内容聚合器服务器接收的。例如,在内容提供商服务器处实现的控制电路304可以按规律的间隔从第二订阅服务接收认证密钥列表。例如,在内容聚合器服务器上实现的控制电路304可以每天发送与已经向第二订阅服务创建账户的所有新用户相关联的认证密钥。在一些情况下,如前所述,在内容提供商服务器上实现的控制电路304可以将接收的认证密钥列表存储在数据库中以用于将第一认证密钥与所述多个可接受的认证密钥进行比较。

在一些方面,存储在内容提供商服务器处的数据库条目包括第一数据库字段和第二数据库字段,第一数据库字段包括指向第一用户账户的指针,第二数据库字段包括第一认证密钥。如本文所使用的术语“指针”是指其值包含另一值位于存储装置中的地址的数据。例如,内容提供商服务器上的数据库条目可以包括存储在第一数据库字段中的指针,该指针指代包含关于用户的账户的信息(诸如用户的用户名、密码和订阅级别)的第二数据库条目。数据库条目可以包括第二数据库字段,第二数据库字段可以包含第一认证密钥。例如,第一认证密钥可以被存储为第二数据库字段中的值,或者可替代地,第二数据库字段可以包括指向第一认证密钥的位置的指针。

在一些实施例中,存储在内容提供商服务器处的数据库条目包括第三数据库字段,第三数据库字段包括关于第一订阅服务的订阅条款。订阅条款可以包括用户可以访问用户可从订阅服务获得的内容的日期范围。例如,用户可以从1月1日到3月31日订阅第一订阅服务(例如,hulu)。此外,基于所选择的订阅,订阅条款可以包括与用户可以如何访问内容、哪些内容可被获得有关的信息。例如,订阅条款可以指定最多四个流可以通过用户的订阅访问内容。在另一例子中,订阅条款可以指示:作为“高级”订阅的一部分,用户可以访问所有内容,但是根据“基本”订阅,用户访问最新的电影必须付费。订阅的条款可以确定订阅的价格;用户为订阅而承担的价格也可以被存储在第三数据库字段中。

在一些实施例中,响应于用户在内容聚合器服务器处为第二订阅服务选择订阅级别,在没有进一步的用户输入的情况下,从内容聚合器服务器发送来自内容聚合器服务器的为用户订阅第一订阅服务的请求。例如,当用户输入作为向第二订阅服务(例如,rovi超级聚合器)注册的一部分的信息时,在内容聚合器服务器上实现的控制电路304可以生成两个订阅级别:“标准”级别,其可以包括对一个订阅服务的订阅;以及“豪华”级别,其可以包括对于两个订阅服务的订阅。如果第一订阅仅被作为“豪华”级别订阅的一部分提供,则在内容聚合器服务器上实现的控制电路304可以只响应于确定用户已经选择了“豪华”级别订阅,向第二订阅服务发送来自用户的请求。在不同的例子中,用户可能已经被订阅了“标准”级别的订阅。当获悉第一订阅仅被作为“高等”级别订阅的一部分提供时,用户可以决定将他或她的订阅升级到“豪华”级别。通过在没有进一步的用户输入的情况下发送来自内容聚合器服务器的对第一订阅的请求,在内容聚合器服务器上实现的控制电路304可以在使用户的输入最少的情况下快速地为用户提供对由第一订阅服务提供的内容的访问。

在一些实施例中,在内容提供商服务器上实现的控制电路304可以响应于验证第一用户账户,从内容提供商服务器向内容聚合器服务器发送确认。例如,一旦控制电路304验证了用户账户,控制电路304就可以将包括确认的消息发送到内容聚合器服务器。通过发送确认,第二服务的用户可以被通知他或她能够访问与第一订阅服务相关联的媒体。在不同的例子中,如果在第二订阅服务上实现的控制电路304被配置为通过第一订阅服务和第二订阅服务之间的连接来访问第一订阅服务的媒体内容,则在第二订阅服务上实现的控制电路304可以被配置为当接收到确认时列出第一订阅服务的媒体。

在一些实施例中,在内容提供商服务器上实现的控制电路304可以从内容聚合器服务器接收通过第一用户账户访问第一订阅服务的媒体内容的第二请求。内容聚合服务的用户可能变得对为了访问内容而手动登录到每个内容订阅服务的任务感到沮丧。在订阅服务和用户电视设备402之间创建的直接连接可以促进用户的流水线观看体验。例如,在内容提供商服务器上实现的控制电路304可以接收从内容聚合器服务器传递来的访问媒体内容(例如,电视节目“thesimpsons”的剧集)的用户请求。响应于从内容聚合器服务器接收到通过第一用户账户访问第一订阅服务的媒体内容的请求,在内容聚合器服务器上或在内容提供商服务器上实现的控制电路304可以通过通信网络414在内容提供商服务器和用户电视设备402之间创建直接连接。直接连接可以在内容提供商服务器和用户电视设备402之间留出一定量的带宽,以使得从内容提供商服务器到用户电视设备402的流传输媒体的用户请求总是被处理,不论内容提供商和用户电视设备402之间的网络条件如何。在内容提供商服务器上实现的控制电路304可以在没有进一步的认证发生的情况下使用直接连接将媒体内容传送到用户电视设备402。此外,通过创建直接连接并且将媒体从内容提供商传送到内容聚合器服务器,媒体内容可以被显示在用于访问第二订阅服务的用户界面中,从而使用户的观看体验流水线化。

在一些实施例中,在内容聚合器服务器上实现的控制电路304可以响应于内容提供商服务器和用户电视设备402之间的直接连接的创建,检索与第一订阅服务相关联的用户界面皮肤。例如,与第一订阅服务相关联的用户界面皮肤可以限定用户界面元素的视觉外观,诸如与第一订阅服务相关联的用户界面的背景色、字体和菜单位置。另外,界面皮肤可以包括与第一订阅服务相关联的徽标(其可以显示在屏幕上的限定位置处)以及与第一订阅服务相关联的调色板(其可以限定屏幕元素的背景色)。控制电路304可以提取与用户界面皮肤相关联的参数,并且将这些参数应用于与第二订阅服务相关联的用户界面皮肤。在内容聚合器服务器上实现的控制电路304可以生成与第二订阅服务相关联的媒体内容列表项用户界面皮肤以用于显示。以这种方式,第一订阅服务可以能够控制使用第二订阅服务呈现的内容的感觉。

在一些实施例中,在内容提供商服务器上实现的控制电路304可以从内容聚合器服务器接收通过第一用户账户对媒体内容列表项的用户选择。例如,在内容聚合器服务器上实现的控制电路304可以利用在内容提供商服务器和内容聚合器服务器之间创建的连接来检索在内容提供商服务器上可获得的内容的媒体内容列表项。在内容聚合器服务器上实现的控制电路304然后可以检测用户对媒体内容列表项所做的选择,其中用户与内容聚合器服务器上的账户相关联。一旦在内容聚合器服务器上实现的控制电路304接收到选择,控制电路304就可以生成与用户选择的媒体内容列表项相对应的媒体资产以用于显示。例如,在内容聚合器服务器上实现的控制电路304可以使用在内容提供商和用户电视设备402之间创建的直接连接来检索媒体资产。在一种情况下,在内容提供商服务器上实现的控制电路304可以接收对于媒体内容(例如,电视节目“thesimpsons”的剧集)的请求。控制电路304可以开始通过使用直接连接从内容提供商服务器传送媒体的各部分来将媒体流传输到用户电视设备402。在不同的例子中,在内容提供商服务器上实现的控制电路304可以将到媒体资产的路径提供给在内容聚合器服务器上实现的控制电路304。作为响应,在内容聚合器服务器上实现的控制电路304可以访问该路径中引用的文件,并且将媒体文件下载到内容聚合器服务器,或者可替代地,下载到用户电视设备402、用户计算机设备404或无线用户通信装置406。

图10和11呈现了根据本公开的一些实施例的算法,该算法用于控制电路(例如,控制电路304)在用户订阅第一服务之前在与第一订阅服务相关联的内容提供商服务器上生成用户账户。在一些实施例中,该算法可以作为一组指令被编码在非暂时性存储介质(例如,存储装置308)上,该组指令将被处理电路(例如,处理电路306)解码和执行。处理电路继而可以向控制电路304内包含的其他子电路(诸如调谐、视频生成、编码、解码、加密、解密、缩放、模拟/数字转换电路等)提供指令。

图10中的流程图描绘了根据本公开的一些实施例的用于控制电路(例如,控制电路304)基于从内容聚合器服务器接收到第一认证密钥来在内容提供商服务器上生成账户的算法。

在步骤1002,用于在内容提供商服务器上生成账户的算法将基于从内容聚合器服务器接收到第一认证密钥开始。在一些实施例中,这可以直接地或间接地响应于用户动作或输入(例如,来自控制电路304或用户输入接口310接收的信号)而进行。例如,该算法直接响应于控制电路304从用户输入接口310接收到信号而开始,或者控制电路304在运行该算法之前提示用户使用显示器确认他或她的输入(例如,通过生成将显示在显示器312上的提示)。

在步骤1004,控制电路304继续从存储的存储器检索可接受的认证密钥的下一个实例。在一些实施例中,控制电路304可以接收表示可接受的认证密钥的值的单个原生数据结构。在一些实施例中,该值可以被存储为更大的数据结构的一部分,并且控制电路304可以通过执行适当的访问器方法从该更大的数据结构检索该值来检索该值。

在步骤1006,控制电路304继续将检索的可接受的认证密钥的值与从内容聚合器服务器接收的第一认证密钥的存储值进行比较。在一些实施例中,从内容聚合器服务器接收的第一认证密钥的值可以在开始所述算法之前被存储(例如,在存储装置308上)。在一些实施例中,也可以针对可接受的认证密钥的每一个实例来检索从内容聚合器服务器接收的第一认证密钥的值,并且从内容聚合器服务器接收的第一认证密钥的值可以随着迭代而改变。在一些实施例中,控制电路304可以通过分别从存储器访问各个值并且执行值比较来直接比较从内容聚合器服务器接收的第一认证密钥的值和可接受的认证密钥的值。在一些情况下,控制电路304可以调用比较函数(例如,用于对象与对象的比较)来比较可接受的认证密钥与从内容聚合器服务器接收的第一认证密钥。

在步骤1008,控制电路304比较可接受的认证密钥与从内容聚合器服务器接收的第一认证密钥的值以确定可接受的认证密钥的值是否等于从内容聚合器接收器接收的第一认证密钥的值。如果该条件满足,则所述算法可以继续进行到步骤1010;如果该条件不满足,则所述算法可以改为继续进行到步骤1012。

在步骤1010,控制电路304将基于步骤1008处的条件满足来执行生成第一用户账户的子例程。在该子例程被执行之后,所述算法可以继续进行到步骤1012,在步骤1012,确定可接受的认证密钥的所有实例是否都被考虑并且是否需要进一步的迭代。

在步骤1014,如果控制电路304先前在步骤1010生成过用户账户,则控制电路304将执行存储用户账户的子例程。

设想图10的描述可以与本公开的其他实施例一起使用。另外,关于图10的算法所述的描述可以按其他次序或并行地进行以增进本公开的目的。例如,条件语句和逻辑评估(诸如1008处的那些)可以按任何次序或并行地或同时地执行以减小延迟或提高系统或方法的速度。作为进一步的例子,在一些实施例中,可以使用多个逻辑处理器线程来并行地评估可接受的认证密钥的几个实例,或者可以通过合并分支预测来增强所述算法。此外,应注意,图10的算法可以在适当地配置的软件和硬件的组合上实现,并且关于图3-4讨论的装置或设备中的任何一个可以用于实现所述算法的一个或多个部分。

图11中的伪代码描述了根据本公开的一些实施例的基于从内容聚合器服务器接收到第一认证密钥来在内容提供商服务器上生成账户的算法。本领域技术人员将清楚的是,图11中的伪代码描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且风格和格式不应被解释为限制性的,而是与用于实现本公开的一些实施例的代码一致的步骤和过程的一般性模板。

在行1101,所述算法可以运行初始化变量的子例程并且准备基于从内容聚合器服务器接收到第一认证密钥来在内容提供商服务器上生成账户(在行1105上开始)。例如,在一些实施例中,控制电路304可以在初始化阶段期间将指令从非暂时性存储介质(例如,存储装置308)拷贝到ram或处理电路306的高速缓存中。另外,在一些实施例中,可以在1101检索、设置并且存储正用于比较的第一认证密钥的值或用于确定两个值是否基本上相等的容限水平。

在行1105,控制电路304可以接收可接受的认证密钥的实例。在一些实施例中,可以从存储的存储器检索这些实例。控制电路304通过接收例如指向可接受的认证密钥的值数组的指针来接收可接受的认证密钥的实例。在另一例子中,控制电路304接收类的对象,诸如包含可接受的认证密钥的元素的迭代器对象。

在行1106,控制电路304可以迭代遍历可接受的认证密钥的各个实例,如果只有单个实例可用,则该循环将仅执行一次。该循环可以取决于用于实现图11的算法的硬件和软件语言的选择而以多种方式实现;例如,这可以实现为“for”或“while”循环的一部分。

在行1107,控制电路304将把可接受的认证密钥的值存储到临时变量“a”中。在一些实施例中,可接受的认证密钥的值将被存储为更大的数据结构或类的一部分,并且可接受的认证密钥的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将可接受的认证密钥从字符串或其他非数值数据类型转换为数值数据类型。在一些实施例中,控制电路304可以调用函数来执行可接受的认证密钥与第一认证密钥的比较。在一些实施例中,可接受的认证密钥可以被编码为原生数据结构,并且可接受的认证密钥可以被直接用在行1109处的比较中,而不是使用临时变量。

在行1108,控制电路304将把第一认证密钥的值存储到临时变量“b”中。类似于可接受的认证密钥,在一些实施例中,第一认证密钥的值将被存储为更大的数据结构或类的一部分,并且第一认证密钥的值可以通过适当的访问器方法获得。在一些实施例中,可以借助于适当的散列算法将第一认证密钥从字符串或其他非数值数据类型转换为数值数据类型,或者第一认证密钥可以是原生数据结构,并且可以被直接用在行1109处的比较中。

在行1109,控制电路304将a的值与b的值进行比较以确定它们是否相等。

在行1110,如果行1109中的条件满足,则控制电路304将执行生成第一用户账户的子例程。

在行1112,如果行1109中的条件不满足,则控制电路304将执行检索下一个可接受的认证密钥的子例程。

在行1113,如果控制电路304先前已经在行1110生成过账户,则控制电路304将执行存储所生成的用户账户的子例程。控制电路304可以将账户存储在存储装置308中。

在行1115,控制电路304可以在所述算法已经执行了其功能之后运行终止子例程。例如,在一些实施例中,控制电路304可以析构变量,执行垃圾收集,释放存储器或清除处理电路306的高速缓存。

本领域技术人员将清楚的是,图11中的伪代码描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且原生函数、逻辑评估和函数评估的特定选择和位置并非意图是限制性的。还将清楚的是,该代码可以被重构或重写为操纵各种逻辑评估的次序,并行地而非在单个迭代循环中执行几个迭代,或在不从根本上改变输入或最终输出的情况下以其他方式操纵和优化运行时和性能度量。例如,在一些实施例中,中断条件可以放置在行1110和1112的后面以使操作加速,或者条件语句可以替换为case-switch。在一些实施例中,不是在步骤1006在可接受的认证密钥的所有实例上迭代,在一些实施例中,代码可以被重写为使得控制电路304被指示在多个处理器或处理器线程上同时对可接受的认证密钥的多个实例进行评估,从而减少了所需的迭代次数并且潜在地加速计算时间。

图12和13呈现了根据本公开的一些实施例的用于控制电路(例如,控制电路304)基于请求、使用包含认证密钥的可能值的数据库来验证第一用户账户的算法。类似于图10和11描述的算法,在一些实施例中,该算法可以作为一组指令编码被在非暂时性存储介质(例如,存储装置308)上,该组指令将被处理电路(例如,处理电路306)解码和执行。处理电路继而可以向控制电路304内包含的其他子电路(诸如调谐、视频生成、编码、解码、加密、解密、缩放、模拟/数字转换电路等)提供指令。

图12中的流程图描绘了根据本公开的一些实施例的用于控制电路(例如,控制电路304)基于请求来搜索数据库并且验证第一用户账户的算法。

在步骤1202,搜索数据库并且验证第一用户账户的算法将基于请求开始。在一些实施例中,这可以直接地或间接地响应于用户动作或输入(例如,来自由控制电路304或用户输入接口310接收的信号)而进行。

在步骤1204,控制电路304继续从存储的存储器检索下一个认证密钥的下一个实例。在一些实施例中,控制电路304可以接收表示认证密钥的值的单个原生数据结构。在一些实施例中,控制电路304可以从更大的类或数据结构检索该值。

在步骤1206,控制电路304访问包含认证密钥的类型的可能值的数据库。在一些实施例中,该数据库可以在开始所述算法之前被存储于本地(例如,被存储在存储装置308上)。在一些实施例中,该数据库也可以通过使用通信电路跨通信网络(例如,通信网络414)将信息发送到在远程存储装置(例如,内容聚合器430)上的数据库来访问。

在步骤1208,控制电路304对数据库搜索关于与认证密钥匹配的条目的表。在一些实施例中,这可以通过比较与数据库内部使用的标识符类型匹配的标识符(例如,表示认证密钥的字符串或整数)来进行。在一些实施例中,控制电路304可以向数据库提交对于与认证密钥匹配的表条目的通用查询,并且控制电路304可以接收包含数据库内容的一部分的数据结构的数据结构或索引的列表。在一些实施例中,数据库可以实现联接表,该联接表又交叉引用来自其他数据库的条目。在这种情况下,控制电路304可以从第一数据库检索索引,这些索引又可以用于从第二数据库检索信息。尽管为清晰起见,我们可能描述了控制系统304与单个数据库进行交互,但是应理解的是,图12的算法可以使用多个独立的或交叉引用的数据库来实现。

在步骤1210,控制电路304可以确定是否存在与认证密钥匹配的数据库条目。在一些实施例中,控制电路304可以从数据库接收指示不存在匹配条目的信号。在一些实施例中,控制电路304可以改为接收具有null或假值(dummyvalue)的数据结构或索引的列表。如果控制电路304识别出存在与认证密钥匹配的数据库条目,则所述算法继续进行到步骤1212,否则所述算法继续进行到步骤1214。

在步骤1212,控制电路304将执行验证用户账户的子例程。此后,所述算法可以继续进行到步骤1214,在步骤1214,确定是否还有需要考虑的认证密钥的其他实例。

在步骤1214,控制电路304将确定认证密钥的所有实例是否都被考虑并且是否需要进一步的迭代。如果需要进一步的迭代,则所述算法将循环回到步骤1204,在步骤1204,控制电路304将检索认证密钥的下一个实例。如果不需要进一步的迭代,则所述算法将继续进行到步骤1216。

在步骤1216,控制电路304将执行授予对第一订阅的访问权限的子例程。

设想图12的描述可以与本公开的其他实施例一起使用。另外,关于图12的算法所述的描述可以按其他次序或并行地进行以增进本公开的目的。例如,控制电路304可以并行地向数据库提交多个查询,或者它可以向多个类似的数据库提交多个查询以便减小延迟并且使所述算法的执行加速。此外,应注意,图12的算法可以在适当地配置的软件和硬件的组合上实现,并且关于图3-4讨论的装置或设备中的任何一个可以用于实现所述算法的一个或多个部分。

图13中的伪代码描述了根据本公开的一些实施例的基于请求来验证第一用户账户的算法。本领域技术人员将清楚的是,图13中的伪代码描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且风格和格式不应被解释为限制性的,而是与用于实现本公开的一些实施例的代码一致的步骤和过程的一般性模板。

在行1301,所述算法可以运行初始化变量的子例程并且准备基于请求对第一用户账户进行验证(将在行1305上开始)。例如,在一些实施例中,控制电路304可以在初始化阶段期间将指令从非暂时性存储介质(例如,存储装置308)拷贝到ram或处理电路306的高速缓存中。

在行1305,控制电路305可以接收可接受的认证密钥的实例。在一些实施例中,这些实例可以从存储的存储器检索。

在行1306,控制电路304可以迭代遍历可接受的认证密钥的各个实例,如果只有单个实例可用,则该循环将仅执行一次。该循环可以取决于用于实现图13的算法的硬件和软件语言的选择而以多种方式实现;例如,在一些编程语言中,这可以实现为“for”或“while”循环的一部分。在一些实施例中,可能方便的是将可接受的认证密钥的实例存储在将执行作为内部方法的一部分的循环的单个类或封装数据结构中。

在行1307,控制电路304可以向数据库查询关于与可接受的认证密钥匹配的条目。取决于数据库如何被实现以及可接受的认证密钥如何被存储,可能需要间歇步骤来将可接受的认证密钥转换为与数据库一致的形式。例如,可接受的认证密钥可以在作为查询的一部分被控制电路304发送到数据库之前通过使用适当的散列算法被编码为字符串或整数。在一些实施例中,可接受的认证密钥可以被编码为原生数据结构,并且控制电路304可以将可接受的认证密钥作为查询直接提交给数据库。在查询数据库之后,控制电路304可以接收与可接受的认证密钥匹配的一组数据库条目。在一些实施例中,控制电路304可以以一个数据结构、数据库的一组索引或另一交叉引用数据库的一组索引的形式接收这些条目。

在行1309,控制电路304将确定是否存在与可接受的认证密钥匹配的任何数据库条目。在一些实施例中,控制电路304可以通过检查数据库是否响应于行1309中的查询返回空的数据结构或null值来确定这个。如果存在匹配的数据库条目,则所述算法可以继续进行到行1309。如果不存在匹配的数据库条目,则所述算法可以改为继续进行到行1312。

在行1309,控制电路304可以从数据库检索与可接受的认证密钥匹配的第一认证密钥的一个或多个值。例如,如果控制电路304在行1307中对数据库进行查询之后检索到索引的列表,则在一些实施例中,控制电路304可以对位于所接收的索引处的第一认证密钥检索数据库条目。在一些实施例中,索引可以指向数据库内包含的更大的数据结构,并且控制电路304可以使用适当的访问器方法来从该数据结构内检索第一认证密钥的值。在一些实施例中,控制电路304可以检索第一认证密钥的值,并且在继续进行下一步之前将它们本地存储在分开的数据结构中(例如,存储在存储装置308中)。在检索到第一认证密钥的值之后,所述算法将继续进行到行1310。

在行1310,控制电路304将执行使用第一认证密钥的值并且使用控制电路对第一用户账户进行验证的子例程。此后,所述算法可以继续进行到行1313。

在行1312,如果行1309处的条件不满足,则控制电路304将执行使用控制电路304检索下一个允许的认证密钥的子例程。

在行1313,控制电路304将执行授予对第一用户账户的访问权限的子例程。此后,所述算法可以继续进行到行1315处的终止子例程。

在行1315,控制电路304可以在所述算法已经执行了其功能并且可接受的认证密钥的所有实例都已经被处理并且被对照数据库检查之后运行终止子例程。例如,在一些实施例中,控制电路304可以析构变量,执行垃圾收集,释放存储器或清除处理电路306的高速缓存。

本领域技术人员将清楚的是,图13中的伪代码所描述的算法可以用任何数量的编程语言和各种不同的硬件来实现,并且原生函数、逻辑评估和函数评估的特定选择和位置并非意图是限制性的。还将清楚的是,该代码可以被重构或重写以操纵各种逻辑评估的次序、并行地而不是在单个迭代循环中执行几个迭代、或在不从根本上改变输入或最终输出的情况下以其他方式操纵和优化运行时和性能度量。例如,在一些实施例中,代码可以被重写为使得控制电路304被指示使用多个处理器或处理器线程来对可接受的认证密钥的多个实例进行评估并且同时提交多个数据库查询。还应理解的是,尽管我们可能描述了控制电路304与单个数据库进行交互,但是这仅仅是为了例示性目的而描述的单个实施例,并且图13的算法可以使用多个独立的或交叉引用的数据库来实现。例如,存储于本地(例如,在存储装置308上)的数据库可以对远程存储的数据库(例如,内容聚合器430)进行索引或交叉引用,该远程存储的数据库可以通过任何数量的通信信道(例如,通信网络414)来访问。在一些实施例中,这可以允许控制电路304根据需要利用高效地存储在小型的本地驱动器上的查找表或数据库前端来访问存储在远程服务器上的更大的数据库。

图14是在第一订阅服务上生成并且验证第一用户账户所涉及的例示性步骤的流程图。应注意,过程1400或者其任何步骤可以在图3-4所示的装置中的任何一个上执行或由图3-4所示的装置中的任何一个提供。例如,过程1400可以被如由在用户设备402、404和/或406(图4)上实现的控制电路指示的控制电路304(图3)执行,以便检测实例的数量何时超过某个数量并且将消息发送到装置。另外,过程1400的一个或多个步骤可以合并到任何其他的过程或实施例的一个或多个步骤中或与之组合。

过程1400从步骤1402开始,在步骤1402,控制电路304从内容聚合器服务器接收第一认证密钥。例如,提供第二订阅服务器(例如,rovi超级聚合器)的实体可以与提供第一订阅服务(例如,hulu)的实体达成协议以折扣价向第二订阅服务的用户提供第一订阅服务的订阅。在用户订阅第一订阅服务之前,在内容聚合器服务器上实现的控制电路304将第一认证密钥发送到内容聚合器服务器。

在步骤1404,控制电路304将第一认证密钥与多个可接受的认证密钥进行比较。例如,在内容提供商服务器上实现的控制电路304可以提取存储在第一认证密钥中的信息,并且确定密钥的与第二订阅服务的标识符相关的部分中列出的订阅服务(例如,rovi超级聚合器)的名称。控制电路304然后可以检索控制电路304以前已经识别出被允许在第一订阅服务上生成账户的订阅服务的列表,并且将订阅服务的名称与检索到的列表中的每个订阅服务进行比较。实际上,在内容提供商服务器上实现的控制电路304可以在维持对创建的账户的控制的同时从内容聚合器(即,第二订阅服务)接收关于新用户的信息。例如,第一订阅服务可以与第二订阅服务达成协议以折扣价提供第一订阅服务上的订阅。通过将关于第二订阅服务的信息封装在认证密钥中,第一订阅服务确保只有与受信任的内容聚合器相关联的用户的账户被创建。

在步骤1406,控制电路304响应于确定第一认证密钥与第一多个可接受的认证密钥中的一个匹配,生成第一用户账户。例如,为了创建在内容提供商服务器上生成账户所必需的信息,控制电路304可以提取认证密钥中包含的信息,诸如用户名、密码和订阅服务名称。在一些情况下,控制电路304可以存储与第一账户相关联的指定该账户尚未被验证的指示。

在步骤1408,控制电路304将第一用户账户存储在据库条目中,例如,在内容提供商服务器上实现的控制电路304可以将与生成的用户账户有关的信息存储在数据库中存储的数据库条目中。控制电路304还可以使用户账户与认证密钥相关联,例如,通过将指向认证密钥的位置的指针存储在与用户账户相关联的数据库条目中。通过使存储的用户账户与第一认证密钥相关联,在内容聚合器服务器上实现的控制电路304可以确保在第二订阅或用户决定对第一订阅服务上的账户进行验证的情况下账户可以被快速地验证。在一些情况下,控制电路304可以将第一认证密钥存储在存储装置308中由路径识别的位置。控制电路304然后可以将到该位置的路径存储在对应于第一用户账户的数据库条目中。

在步骤1410,控制电路304继存储第一用户账户之后从内容聚合器服务器接收为用户订阅第一订阅服务的请求。控制电路304可以响应于订阅第一订阅服务的用户请求,接收第二认证密钥。例如,在内容聚合器服务器上实现的控制电路304可能检测到第二订阅服务(例如,rovi超级聚合器)的用户期望订阅第一订阅服务(例如,hulu)。在不同的例子中,当订阅第一服务的成本满足成本标准时,在第二服务上实现的控制电路304可以自动地将请求发送到第一服务。第一订阅服务上的控制电路304可以对存储在第二密钥中的信息进行解密,检索存储在第二密钥中的信息,并且将认证密钥存储在内容提供商服务器上。

在步骤1412,控制电路304将第一认证密钥与第二认证密钥进行比较。例如,在内容提供商服务器上实现的控制电路304可以从第二密钥检索与和该密钥相关联的用户的名称相关的信息,然后可以对数据库进行查询以确定与识别的用户相关联的账户是否存在。可选地,控制电路304然后可以检索与识别的用户的账户相关联的第一认证密钥(即,从存储装置308或从数据库检索)。在对存储在密钥中的数据进行解密或不进行解密的情况下,控制电路304可以进一步将第二认证密钥与第一认证密钥进行比较。

在步骤1414,控制电路304响应于确定第一认证密钥与第二认证密钥匹配,验证第一用户账户。例如,基于第一认证密钥与第二认证密钥的比较,在内容提供商服务器上实现的控制电路304然后可以识别与任一密钥相关联的用户账户。控制电路304然后可以对数据库进行查询以识别账户,并且存储指定账户已经被验证的指示。在一个例子中,控制电路304可以识别与识别的账户相关联的数据库记录,并且将与账户是否被验证相关联的字段(例如,字段is_validated)设置为指示账户被验证的值。

在步骤1416,控制电路304响应于验证第一用户账户,授予对第一订阅服务的访问权限。例如,在内容提供商服务器上实现的控制电路304可以生成指示账户可供使用的消息,并且将该消息发送到内容聚合器服务器。因此,在内容提供商服务器上实现的控制电路304能够向用户通知第二订阅服务的产品可被用户访问。

设想图14的步骤或描述可以与本公开的任何其他的实施例一起使用。另外,关于图14所述的步骤和描述可以按其他次序或并行地进行以增进本公开的目的。此外,这些步骤均可以按任何次序或并行地或基本上同时地执行以减小延迟或提高系统或方法的速度。

上面讨论的过程的意图是例示性的,而非限制性的。本领域技术人员将意识到,在不脱离本发明的范围的情况下,本文所讨论的过程的步骤可以被省略、被修改、被组合和/或被重排,并且任何额外的步骤可以被执行。更一般地,上面的公开意在是示意性的,而非限制性的。只有所附的权利要求意在于设置关于本发明包括什么的界限。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1