ES2753623T3 - Métodos y sistemas para la gestión de datos de suscripción a contenidos - Google Patents

Métodos y sistemas para la gestión de datos de suscripción a contenidos Download PDF

Info

Publication number
ES2753623T3
ES2753623T3 ES16798852T ES16798852T ES2753623T3 ES 2753623 T3 ES2753623 T3 ES 2753623T3 ES 16798852 T ES16798852 T ES 16798852T ES 16798852 T ES16798852 T ES 16798852T ES 2753623 T3 ES2753623 T3 ES 2753623T3
Authority
ES
Spain
Prior art keywords
user
content
control circuit
subscription
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES16798852T
Other languages
English (en)
Inventor
William Thomas
Walter Klappert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adeia Guides Inc
Original Assignee
Rovi Guides Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=57389505&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2753623(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US14/928,930 external-priority patent/US9813396B2/en
Priority claimed from US14/928,934 external-priority patent/US10178421B2/en
Application filed by Rovi Guides Inc filed Critical Rovi Guides Inc
Application granted granted Critical
Publication of ES2753623T3 publication Critical patent/ES2753623T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25816Management of client data involving client authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25875Management of end-user data involving end-user authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un sistema (400) para administrar la información de credenciales a través de múltiples servicios de suscripción, que incluya: medios (304) para recibir en un servidor del proveedor de contenido que esté asociado con un primer servicio de suscripción, una primera clave de autenticación de un servidor del agregador de contenido que esté asociado con un segundo servicio de suscripción, en el que la primera clave de autenticación se reciba antes que un usuario se suscriba al primer servicio de suscripción; medios (304) para comparar la primera clave de autenticación con una primera pluralidad de claves de autenticación aceptables para determinar si generar o no una primera cuenta de usuario para el primer servicio de suscripción en base a la primera clave de autenticación; medios (304) para generar, en el servidor del proveedor de contenido, la primera cuenta de usuario en respuesta a la determinación de que la primera clave de autenticación coincide con una de la primera pluralidad de claves de autenticación aceptables; medios (304) para almacenar, en el servidor del proveedor de contenido, la primera cuenta de usuario en una entrada de la base de datos que indica que la primera cuenta de usuario corresponde a la primera clave de autenticación; medios (304) para recibir, en el servidor del proveedor de contenido y tras almacenar la primera cuenta de usuario, una solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción, en el que la solicitud incluye una segunda clave de autenticación; medios (304) para comparar la primera clave de autenticación con la segunda; medios (304) para validar la primera cuenta de usuario en respuesta a la determinación de que la primera clave de autenticación coincide con la segunda; y medios (304) para otorgar acceso al primer servicio de suscripción a través de la primera cuenta de usuario en respuesta a la validación de la misma.

Description

DESCRIPCIÓN
Métodos y sistemas para la gestión de datos de suscripción a contenidos
Antecedentes
Con frecuencia, los servicios que proporcionan suscripciones a contenido permiten a los usuarios transmitir el contenido que ofrecen distintos proveedores de contenido, en el que cada proveedor de una suscripción a contenido ofrece un número finito de transmisiones para acceder al contenido. Sin embargo, la tarea de administrar los datos asociados con las suscripciones puede resultar abrumadora para los usuarios de suscripciones a contenido, tanto en el momento en que se registran como cuando transmiten contenido. Es decir, el proceso de crear una cuenta y luego recordar y mantener la información de las credenciales de cada cuenta asociada con cada proveedor de contenido puede llegar a ser repetitivo y tedioso para los usuarios. Además, para los usuarios puede ser frustrante cuando un proveedor de contenido no pone a su disposición un número suficiente de transmisiones, como cuando todos los usuarios de una suscripción a contenido quieren ver un nuevo episodio de una serie de televisión en cuanto está disponible, y el número de usuarios excede el número de transmisiones disponibles.
Resumen
Según un aspecto, se ofrece un sistema o más según la reivindicación 1, un método según la reivindicación 8 y un programa informático según la reivindicación 15.
En consecuencia, los métodos y sistemas se describen en este documento para una aplicación de guía multimedia que exime al usuario de tener que administrar múltiples cuentas para distintos servicios de suscripción. Por ejemplo, al supervisar la actividad de un usuario y administrar sus cuentas en su nombre, la aplicación de guía multimedia puede recomendar los servicios de suscripción y los términos de un servicio de suscripción adaptados a las necesidades individuales del usuario.
Además, la aplicación de guía multimedia puede actuar en nombre del usuario para recuperar y procesar grandes cantidades de datos de numerosos proveedores de contenido con el fin de determinar los servicios de suscripción y un plan específico de un servicio de suscripción en particular que mejor satisfaga las necesidades del usuario. Como se analiza en profundidad a continuación, la aplicación de guía multimedia puede procesar una gran cantidad de datos (a menudo accesibles solo en un código legible por ordenador) comparando conjuntos de datos independientes y dispares para identificar tendencias y optimizaciones estadísticas para el beneficio del usuario.
Además, al suscribirse a un servicio de agregación de contenido, los usuarios pueden obtener autorización para acceder al contenido multimedia ofrecido por múltiples servicios de suscripción. El contenido multimedia que ofrece cada servicio de suscripción no siempre está disponible directamente en el servicio de agregación de contenido, lo cual obliga al usuario a acceder al contenido a través del sitio web de cada proveedor de contenido. Antes de poder acceder al contenido, el usuario debe crear una cuenta para cada proveedor de contenido, una tarea que al usuario le puede parecer repetitiva y tediosa. Además, el proceso de recordar y mantener la información de las credenciales asociadas con varias cuentas de servicio de suscripción puede abrumarle aún más.
En algunas realizaciones, el circuito de control recibe automáticamente la información de autenticación de un servicio de agregación de contenido. Una aplicación de guía multimedia, implementada en el circuito de control, recibe la información de autenticación y la asocia a una cuenta de usuario, antes de que el circuito de control reciba una solicitud para suscribir al usuario al servicio de suscripción. A continuación el circuito de control recibe una solicitud para suscribir al usuario al servicio de suscripción y, por lo tanto, valida la cuenta y otorga acceso al usuario a las ofertas del servicio de suscripción.
El circuito de control recibe, en un servidor proveedor de contenido que está asociado con un servicio de suscripción (p. ej., Hulu), una primera clave de autenticación de un servidor del agregador de contenido que está asociada con un segundo servicio de suscripción (p. ej., Rovi Super Aggregator), y la primera clave de autenticación se recibe antes de que un usuario se suscriba al primer servicio de suscripción. Por ejemplo, un usuario puede suscribirse a un servicio de agregación de contenido (es decir, el segundo servicio de suscripción). Tan pronto como el usuario complete su registro en el segundo servicio de suscripción, el circuito de control implementado en el servidor del agregador de contenido asociado al segundo servicio de suscripción, puede generar claves de autenticación para asociar al usuario a algunos o todos los servicios de suscripción disponibles como parte de la suscripción al agregador de contenido, y transferir las claves de autenticación generadas a los remitentes asociados con cada servicio de suscripción (por ejemplo, el primer servicio de suscripción). Cada clave de autenticación se puede cifrar para garantizar que la información almacenada en la clave se transmita de forma segura a los servidores asociados con cada servicio de suscripción. Además, cada clave de autenticación puede incluir información que identifique al usuario y al segundo servicio de suscripción. A continuación, el circuito de control implementado en el remitente del proveedor de contenido asociado al primer servicio de suscripción recibe la clave de autenticación generada del servidor del agregador de contenido. En algunos casos, el circuito de control implementado en el servidor del proveedor de contenido puede descifrar la clave de autenticación y extraer la información almacenada ella. El circuito de control puede almacenar también la clave de autenticación en el servidor del proveedor de contenido. De este modo, la información de autenticación asociada con el primer usuario puede transmitirse al primer servicio de suscripción sin que el usuario tenga que crear manualmente una cuenta.
El circuito de control implementado en el servidor del proveedor de contenido compara la primera clave de autenticación con una primera pluralidad de claves de autenticación aceptables para determinar si generar o no una primera cuenta para el primer servicio de suscripción basada en la primera clave de autenticación. Por ejemplo, el circuito de control implementado en el servidor del proveedor de contenido puede extraer información almacenada en la primera clave de autenticación y determinar el nombre del servicio de suscripción (p. ej., Rovi Super Aggregator) enumerado en la parte de la clave relacionada con el identificador del segundo servicio de suscripción. A continuación, el circuito de control puede recuperar una lista de servicios de suscripción que hubiese identificado previamente para permitirle generar cuentas de usuario en el primer servicio de suscripción, y comparar el nombre del servicio de suscripción con cada servicio de suscripción en la lista recuperada. En efecto, el circuito de control implementado en el servidor del proveedor de contenido puede recibir de forma segura información sobre nuevos usuarios de los agregadores de contenido (es decir, el segundo servicio de suscripción), mientras mantiene el control sobre las cuentas que se crean. Por ejemplo, un primer servicio de suscripción puede celebrar un acuerdo con un segundo servicio de suscripción para ofrecer suscripciones en el primer servicio de suscripción a un precio reducido. Por lo tanto, al encapsular información sobre el segundo proveedor en la clave de autenticación, el primer servicio de suscripción garantiza que solo se creen cuentas de usuarios asociados con agregadores de contenido de confianza.
En respuesta a la determinación de que la primera clave de autenticación coincide con una de la primera pluralidad de claves de autenticación aceptables, el circuito de control implementado en el servidor del proveedor de contenido genera la primera cuenta de usuario en el servidor del proveedor de contenido. Por ejemplo, el circuito de control puede usar información contenida en la clave de autenticación, como el nombre de usuario, la contraseña y el nombre del servicio de suscripción, para crear la información necesaria para generar una cuenta en el servidor del proveedor de contenido. En algunos casos, el circuito de control puede almacenar una indicación asociada con la primera cuenta que especifique que la cuenta no está validada. En otras palabras, aunque la cuenta ha sido creada, el usuario no puede acceder a ella. Si el usuario o el segundo servicio de suscripción deciden validar la cuenta en el futuro, el circuito de control implementado en el servidor del proveedor de contenido puede validar de manera eficiente la cuenta con poca o ninguna intervención del usuario, como se explicará con más detalle a continuación.
El circuito de control implementado en el servidor del proveedor de contenido almacena la primera cuenta de usuario en una entrada de la base de datos que indica que la primera cuenta de usuario corresponde a la primera clave de autenticación. Por ejemplo, el circuito de control implementado en el servidor del proveedor de contenido puede almacenar la información relacionada con la cuenta de usuario generada en una entrada almacenada en una base de datos. El circuito de control también puede asociar la cuenta de usuario con la clave de autenticación, por ejemplo, almacenando un puntero a la ubicación de la clave de autenticación en la entrada de la base de datos asociada con la cuenta de usuario. Al asociar la cuenta de usuario almacenada con la primera clave de autenticación, el circuito de control implementado en el servidor del agregador de contenido puede garantizar que la cuenta pueda validarse rápidamente en caso de que la segunda suscripción o el usuario decida validar la cuenta en el primer servicio de suscripción.
Tras almacenar la primera cuenta de usuario, el circuito de control implementado en el servidor del proveedor de contenido recibe en el servidor de este una solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción, en el que la solicitud incluye una segunda clave de autenticación. El circuito de control puede recibir la segunda clave de autenticación en respuesta a una solicitud del usuario para suscribirse al primer servicio de suscripción. Por ejemplo, el circuito de control implementado en el servidor del agregador de contenido puede detectar que un usuario del segundo servicio de suscripción (p.ej., Rovi Super Aggregator) desea suscribirse al primer servicio de suscripción (p. ej., Hulu). En un ejemplo diferente, el circuito de control implementado en el segundo servicio puede enviar automáticamente una solicitud al primer servicio, cuando el coste de suscribirse al primer servicio cumpla un criterio de costes. El circuito de control del primer servicio de suscripción puede descifrar la información almacenada en la segunda clave, recuperarla y almacenar la clave de autenticación en el servidor del proveedor de contenido. Al proporcionar un marco para recibir la segunda clave de autenticación, el circuito de control implementado en el servidor del proveedor de contenido puede validar de forma segura una cuenta para el usuario.
El circuito de control implementado en el servidor del proveedor de contenido compara la primera clave de autenticación con la segunda. Por ejemplo, el circuito de control implementado en el servidor del proveedor de contenido puede recuperar información de la segunda clave relacionada con el nombre del usuario asociado con la clave y, a continuación, puede consultar la base de datos para determinar si una cuenta asociada con el usuario identificado ha sido creada previamente. En un ejemplo diferente, el circuito de control implementado en el servidor del proveedor de contenido puede comparar los datos no cifrados que comprenden la segunda clave de autenticación con los datos no cifrados de las claves de autenticación recibidas previamente y que están almacenadas en el servidor del proveedor de contenido.
El circuito de control implementado en el servidor del proveedor de contenido valida la primera cuenta de usuario en respuesta a la determinación de que la primera clave de autenticación coincide con la segunda. Por ejemplo, en base a la comparación de la primera clave de autenticación con la segunda, el circuito de control implementado en el servidor del proveedor de contenido puede identificar la cuenta de usuario asociada con cualquiera de las claves. A continuación, el circuito de control puede consultar la base de datos para identificar la cuenta y almacenar una indicación que especifique que la cuenta ha sido validada. Al validar la cuenta, el circuito de control implementado en el servidor del proveedor de contenido permite que un usuario autenticado por el servidor del proveedor de contenido acceda al contenido multimedia ofrecido por el primer servicio de suscripción.
En respuesta a la validación de la primera cuenta de usuario, el circuito de control implementado en el primer servidor otorga acceso al primer servicio de suscripción a través de la primera cuenta de usuario. Por ejemplo, el circuito de control implementado en el servidor del proveedor de contenido puede generar y transmitir un mensaje al servidor del agregador, indicando que la cuenta está disponible para su uso. De este modo, el circuito de control implementado en el servidor del proveedor de contenido puede notificar al usuario que puede acceder a las ofertas del segundo servicio de suscripción.
En algunas realizaciones, la primera clave de autenticación es una clave de cifrado basada en un nombre de usuario y contraseña para el usuario asignados por el segundo servicio de suscripción. Por ejemplo, la clave de autenticación puede incluir una contraseña generada automáticamente que cumpla los requisitos de contraseña del primer servicio de suscripción y un nombre de usuario que se corresponda a otro asociado con el servidor del proveedor de contenido. En algunas realizaciones, el servidor del proveedor de contenido recibe del servicio de agregación de contenido la primera pluralidad de claves de autenticación aceptables. Por ejemplo, el circuito de control implementado en el servidor del proveedor de contenido puede recibir periódicamente una lista de claves de autenticación del segundo servicio de suscripción. Por ejemplo, el circuito de control implementado en el servidor del agregador de contenido puede transmitir diariamente las claves de autenticación asociadas con todos los usuarios nuevos que han creado una cuenta en el segundo servicio de suscripción.
En algunas realizaciones, la entrada de la base de datos almacenada en el servidor del proveedor de contenido cuenta con un primer campo de la base de datos que incluye un puntero a la primera cuenta de usuario y un segundo campo de la base de datos que incluye la primera clave de autenticación. Por ejemplo, la entrada de la base de datos en el servidor del proveedor de contenido puede incluir un puntero almacenado en el primer campo de la base de datos que se refiere a una segunda entrada de la base de datos que contiene información sobre la cuenta del usuario, como el nombre de usuario, la contraseña y el nivel de suscripción.
En algunas realizaciones, la entrada de la base de datos almacenada en el servidor del proveedor de contenido incorpora un tercer campo de la base de datos que incluye los términos de suscripción para el primer servicio de suscripción. Los términos de la suscripción pueden determinar el precio de la misma; el precio que paga el usuario por suscribirse también puede almacenarse en el tercer campo de la base de datos.
En algunas realizaciones, la solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción se transmite desde el servidor del agregador de contenido sin más intervención del usuario en respuesta a la selección por parte del usuario de un nivel de suscripción para el segundo servicio de suscripción en el servidor del agregador de contenido. Por ejemplo, el circuito de control implementado en el servidor del agregador de contenido puede generar dos niveles de suscripción: un nivel «prémium», que puede incluir una suscripción al primer servicio de suscripción, y un nivel «básico», que no lo incluye. El circuito de control implementado en el servidor del agregador de contenido solo puede transmitir una solicitud al segundo servicio de suscripción una vez se haya determinado que el usuario ha seleccionado la suscripción de nivel «prémium».
En algunas realizaciones, el circuito de control implementado en el servidor del proveedor de contenido puede transmitir del servidor del proveedor de contenido al servidor del agregador de contenido una confirmación en respuesta a la validación de la primera cuenta de usuario. Por ejemplo, una vez que el circuito de control valida la cuenta del usuario, puede transmitir un mensaje que incluya confirmación al servidor del agregador de contenido. Al transmitir una confirmación, el usuario del segundo servicio puede ser informado de que puede acceder a los medios asociados con el primer servicio de suscripción.
En algunas realizaciones, el circuito de control implementado en el servidor del proveedor de contenido puede recibir una solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario. Por ejemplo, el circuito de control implementado en el servidor del proveedor de contenido puede recibir una solicitud del usuario para acceder al contenido multimedia (p.ej., un episodio de la serie de televisión «Los Simpson»). En respuesta a la recepción de la solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario, el circuito de control implementado en el servidor del agregador de contenido puede crear una conexión directa entre el servidor del proveedor de contenido y el equipo de televisión del usuario 402. Al crear una conexión directa, el contenido multimedia se puede transferir con más rapidez y eficiencia entre el servidor del proveedor de contenido y el equipo de televisión del usuario 402 que si el contenido multimedia se transfiriera del servidor del proveedor de contenido al servidor del agregador de contenido antes de transferirlo al equipo de televisión del usuario 402.
En algunas realizaciones, el circuito de control implementado en el servidor del agregador de contenido puede recuperar una máscara de interfaz de usuario asociada con el primer servicio de suscripción en respuesta a una conexión directa entre el servidor del proveedor de contenido y el equipo de televisión del usuario 402. Por ejemplo, una máscara de interfaz de usuario asociada con el primer servicio de suscripción puede definir la apariencia visual de los elementos de la interfaz de usuario, como los colores de fondo, la fuente y la ubicación del menú de una interfaz de usuario asociada con el primer servicio de suscripción. Además, la máscara de la interfaz puede incluir características de marca definidas por el servicio de suscripción, como un logotipo asociado con el primer servicio de suscripción, que puede mostrarse en una ubicación definida en la pantalla, y una paleta de colores asociada con el primer servicio de suscripción, que puede definir el color de fondo de los elementos de la pantalla. El circuito de control puede extraer los parámetros asociados con la máscara de interfaz de usuario y aplicarlos a la máscara asociada con el segundo servicio de suscripción.
En algunas realizaciones, el circuito de control implementado en el servidor del proveedor de contenido puede recibir del servidor del agregador de contenido una selección del usuario a través de la primera cuenta de usuario de un listado de contenido multimedia. Por ejemplo, el circuito de control implementado en el servidor del agregador de contenido puede utilizar una conexión creada entre él y el servidor del proveedor de contenido para recuperar listados de contenido multimedia del que esté disponible en el servidor del proveedor de contenido. A continuación, el circuito de control implementado en el servidor del agregador de contenido puede detectar una selección de un listado de contenido multimedia realizado por un usuario, cuando el usuario esté asociado con la cuenta en el servidor del agregador de contenido. Cuando el circuito de control implementado en el servidor del agregador de contenido reciba la selección, el circuito de control puede generar para su visualización el recurso multimedia correspondiente al listado de contenido multimedia seleccionado por el usuario. Por ejemplo, el circuito de control implementado en el servidor del agregador de contenido puede recuperar el recurso multimedia usando una conexión creada entre el proveedor de contenido y el servidor del agregador de contenido. El recurso multimedia se puede recuperar mediante descarga o transmisión.
Debe tenerse en cuenta que los sistemas y los métodos descritos anteriormente se pueden aplicar o utilizar según otros sistemas, métodos y o aparatos.
Breve descripción de los dibujos
Los anteriores y otros objetivos y ventajas de la divulgación serán evidentes después de considerar la siguiente descripción detallada, al tomarlos junto con los dibujos adjuntos, en los que los caracteres de referencia se refieren a partes iguales, y en los que:
La figura 1 muestra un ejemplo ilustrativo de una pantalla de presentación generada por una aplicación de guía multimedia según algunas realizaciones de la divulgación;
La figura 2 muestra otro ejemplo ilustrativo de la pantalla de presentación de un agregador de contenido generada por una aplicación de guía multimedia según algunas realizaciones de la divulgación;
La figura 3 es un diagrama de bloques de un dispositivo ilustrativo según algunas realizaciones de la divulgación; La figura 4 es un diagrama de bloques de un sistema multimedia ilustrativo según algunas realizaciones de la divulgación;
La figura 5 es un diagrama de flujo de pasos ilustrativos para determinar varias instancias de un período de suscripción, según algunas realizaciones de la divulgación;
La figura 6 es un pseudocódigo de pasos ilustrativos para determinar varias instancias de un período de suscripción, según algunas realizaciones de la divulgación;
La figura 7 es un diagrama de flujo de pasos ilustrativos para determinar varias instancias de una porción de un período de suscripción, según algunas realizaciones de la divulgación;
La figura 8 es un pseudocódigo de pasos ilustrativos para determinar varias instancias en una porción de un período de suscripción, según algunas realizaciones de la divulgación;
La figura 9 es un diagrama de flujo de pasos ilustrativos implicados en la transmisión de un mensaje a un dispositivo cuando el número de instancias supera un cierto número, según algunas realizaciones de la divulgación;
La figura 10 es un diagrama de flujo de pasos ilustrativos para generar una cuenta en un servidor del proveedor de contenido en base a la recepción de una primera clave de autenticación de un servidor del agregador de contenido, según algunas realizaciones de la divulgación;
La figura 11 es un pseudocódigo de pasos ilustrativos para generar una cuenta en un servidor del proveedor de contenido en base a en la recepción de una primera clave de autenticación de un servidor del agregador de contenido, según algunas realizaciones de la divulgación;
La figura 12 es un diagrama de flujo de pasos ilustrativos para validar una primera cuenta de usuario en base a una solicitud de un servidor del agregador de contenido, según algunas realizaciones de la divulgación;
La figura 13 es un pseudocódigo de pasos ilustrativos para validar una primera cuenta de usuario en base a una solicitud de un servidor del agregador de contenido, según algunas realizaciones de la divulgación; y
La figura 14 es un diagrama de flujo de pasos ilustrativos implicados en la generación y validación de una primera cuenta de usuario en un primer servicio de suscripción, según algunas realizaciones de la divulgación.
Descripción detallada
Los métodos y sistemas se divulgan en este documento con el fin de detectar el número de instancias en las cuales el número de solicitudes para transmitir simultáneamente elementos multimedia desde un servicio de suscripción a distintos dispositivos exceda el número de transmisiones disponibles, y para transmitir un mensaje a uno de los dispositivos cuando el número de las instancias supere un determinado número. Por ejemplo, el circuito de control determina que durante el período de suscripción hay doce instancias en las que el número de solicitudes de transmisión simultánea de elementos multimedia excede un cierto número de transmisiones disponibles para el usuario desde el servicio de suscripción. Además, el circuito de control puede determinar que el número de instancias en las que el número de solicitudes de transmisión simultánea de elementos multimedia excede el número de transmisiones disponibles para el usuario desde el servicio de suscripción, superó el número umbral de ocho ocasiones y, en respuesta, el circuito de control transmite un mensaje a uno de los dispositivos en el que indica que existe una transmisión adicional disponible a la venta.
Tal y como se usa en el presente documento, el término «instancia» se debe entender como un momento concreto en el tiempo. Por ejemplo, una instancia corresponde a una marca de tiempo particular, como una marca de tiempo definida por una fecha y hora.
Tal y como se usa en el presente documento, el término «servicio de suscripción» se debe entender como cualquier producto o servicio al que se suscribe un usuario para acceder al contenido multimedia. Por ejemplo, un usuario se suscribe a un servicio de suscripción en línea (p.ej., Hulu) para acceder a una serie de televisión (p. ej., «Los Simpson»). El usuario puede acceder al contenido multimedia ofrecido por el servicio de suscripción comprando una suscripción de contenido. La entidad que proporciona acceso al contenido a través de un «servicio de suscripción» se denomina en este documento «proveedor de contenido». El término «servidor del proveedor de contenido» se refiere a cualquier dispositivo en red utilizado por el proveedor de contenido para proporcionar al equipo del usuario acceso al contenido multimedia.
El producto o servicio que proporciona acceso al contenido multimedia disponible en otros servicios de suscripción se denomina en este documento «suscripción del agregador de contenido». La entidad que proporciona una suscripción del agregador de contenido se denomina en este documento «agregador de contenido». El término «servidor del agregador de contenido» se refiere a cualquier dispositivo en red utilizado por el agregador de contenido para recopilar y proporcionar datos sobre el contenido disponible de los proveedores de contenido, y para facilitar el acceso del equipo del usuario a dicho contenido.
Tal y como se usa en este documento, el término «cuenta» debe entenderse como los datos asociados con un usuario y almacenados en una base de datos de un servicio de suscripción. Un servicio de suscripción permite a los usuarios acceder al contenido multimedia autenticando a un usuario mediante los datos almacenados en una cuenta. Además, una cuenta puede incluir información que incluya el nombre del usuario, la contraseña, la información de la tarjeta de crédito, las preferencias de visualización y la configuración de la suscripción. El usuario puede usar una cuenta de usuario validada para acceder al contenido multimedia, mientras que una cuenta que aún no ha sido validada, no. Tal y como se usa en este documento, «clave de autenticación» se refiere a los datos que pueden ser descifrados por un algoritmo. Por ejemplo, el nombre de usuario y la contraseña de un usuario pueden cifrarse en un servidor del agregador de contenido. Los datos resultantes pueden constituir una clave de autenticación, que luego puede transferirse a un servidor del proveedor de contenido. El servidor del proveedor de contenido puede contener la información necesaria para descifrar la primera clave.
Tal y como se usa en este documento, el término «período de suscripción» se refiere a un período de tiempo consecutivo durante el cual los usuarios de un servicio de suscripción pueden acceder al contenido multimedia ofrecido por el servicio de suscripción. Por ejemplo, un período de suscripción puede corresponder a un ciclo de facturación del servicio de suscripción (p. ej., un período de suscripción corresponde al mes de marzo). Además, un período de suscripción puede estar asociado con una marca de tiempo de inicio (p. ej., la fecha y la hora en que los elementos multimedia ofrecidos a través de la suscripción empiezan a estar disponibles para el usuario) y una marca de tiempo de finalización (es decir, la fecha y hora en que los mismos dejan de estarlo). Una «porción» de un período de suscripción puede referirse a cualquier intervalo de tiempo consecutivo o no consecutivo o a intervalos de un período de suscripción. Por ejemplo, una porción de un período de suscripción corresponde a intervalos de tiempo entre las 7:00 p. m. y las 9:00 p. m. de los miércoles durante el período de suscripción. En un ejemplo diferente, una porción del período de suscripción corresponde a un rango de fechas del período de suscripción durante el cual se emite una temporada de una serie de televisión (p. ej., «Los Simpson»), por ejemplo, de agosto a noviembre.
El término «transmisión» se refiere a los datos de contenido multimedia que se transmiten de un remitente a un receptor durante un período de tiempo. Por ejemplo, los datos digitales correspondientes al contenido multimedia (p. ej., un episodio de «Los Simpson») se entregan a través de una red desde un servidor (es decir, el remitente) al dispositivo de un usuario (es decir, el receptor), durante un período correspondiente al tiempo necesario para la reproducción del contenido multimedia. Un servicio de suscripción puede proporcionar un número finito de transmisiones para uso simultáneo a los usuarios de la suscripción (p. ej., el servicio de suscripción permite cuatro transmisiones simultáneas de contenido multimedia). Las realizaciones que implementan el proceso de transmisión (es decir, el proceso de entregar una transmisión) pueden aplicarse a los métodos de entrega de medios digitales, pero también a otros métodos de entrega de contenido (p.ej., el cable). Un conflicto de transmisión se refiere a una situación en la que el número de solicitudes para transmitir contenido multimedia supera el número de transmisiones disponibles. Cuando se produce un conflicto de transmisión, al menos una de las solicitudes recibidas (p. ej., normalmente la última solicitud) no se cumple.
El término «conexión directa» se refiere a una conexión de red que, una vez establecida entre un servidor del proveedor de contenido y un servidor del agregador de contenido, permite que este último acceda a los datos almacenados en el primero sin autenticación.
El término «máscara de interfaz» se refiere a una recopilación de datos utilizados para definir la apariencia visual de una interfaz de usuario. Por ejemplo, el color de fondo de una ventana, la fuente o la posición de un menú en una interfaz pueden definirse en los datos asociados con una máscara de interfaz. Cuando el circuito de control genera los componentes visuales de una interfaz de usuario para su visualización, el circuito de control puede recuperar los datos de un archivo de máscara de interfaz para determinar cómo se representará cada elemento o grupo de elementos en una interfaz de usuario. Además, la recopilación de datos utilizada para definir la apariencia visual de una interfaz de usuario puede incluir gráficos y texto definidos por el servicio asociado con el servidor del proveedor de contenido. Por ejemplo, la máscara de interfaz asociada con un servicio de suscripción (p. ej., Hulu) puede incluir una colección de datos que incluye un logotipo de Hulu, que se puede mostrar en una ubicación definida en la pantalla, y la paleta de colores de Hulu, que puede definir el color de fondo de los elementos de la pantalla.
Tal y como se menciona en este documento, aquí, el término «en respuesta a» quiere decir «iniciado como resultado de». Por ejemplo, una primera acción que se realiza en respuesta a otra acción puede incluir pasos intersticiales entre la primera acción y la segunda. Tal y como se menciona aquí, el término «directamente en respuesta a» quiere decir «causado por». Por ejemplo, una primera acción que se realiza directamente en respuesta a otra acción puede no incluir pasos intersticiales entre la primera acción y la segunda.
La cantidad de contenido disponible para los usuarios en cualquier sistema de entrega de contenido puede ser considerable. En consecuencia, muchos usuarios desean una guía multimedia a través de una interfaz que permita a los usuarios navegar eficientemente por selecciones de contenido e identificar fácilmente aquel que deseen. Una aplicación que proporciona dicha guía se denomina en este documento una aplicación de guía multimedia interactiva o, en ocasiones, una aplicación de guía.
Las aplicaciones de guía multimedia interactivas pueden tener varias formas según el contenido para el que se proporciona la guía. Un tipo típico de aplicación de guía multimedia es una guía de programación televisiva interactiva. Las guías de programación televisiva interactivas (a veces denominadas guías de programas electrónicas) son aplicaciones de guía muy conocidas que, entre otras cosas, permiten a los usuarios navegar entre muchos tipos de contenido o recursos multimedia y localizarlos. Las aplicaciones de guía multimedia interactivas pueden generar pantallas de interfaz gráfica de usuario que permiten a un usuario navegar por el contenido, localizarlo y seleccionarlo.
Tal y como se menciona en el presente documento, los términos «recurso multimedia» y «contenido» deben entenderse como un recurso que un usuario consume electrónicamente, como la programación de televisión, así como los programas de pago por visión, los programas a la carta (como en los sistemas de vídeo a la carta o VOD), el contenido de Internet (p. ej., el contenido transmitido en tiempo real, el contenido descargable, las transmisiones por la web), clips de vídeo, audio, información de contenido, imágenes, imágenes giratorias, documentos, listados de reproducción, sitios web, artículos, libros, libros, libros electrónicos, blogs, anuncios, sesiones de chat, medios sociales, aplicaciones, juegos, y cualquier otro medio o contenido multimedia o la combinación de los mismos. Las aplicaciones de guía también permiten a los usuarios navegar por el contenido, localizarlo y seleccionarlo. Tal como se denomina en este documento, el término «multimedia» debe entenderse como contenido que utiliza al menos dos de los formatos de contenido descritas anteriormente, por ejemplo, texto, audio, imágenes, vídeo, o formatos de contenido interactivo. El contenido puede ser grabado, reproducido, visualizado o bien los usuarios pueden acceder a él mediante dispositivos de equipo, pero también puede formar parte de una actuación en directo.
La aplicación de guía multimedia y cualquier instrucción para realizar las realizaciones enumeradas en este documento pueden codificarse en soportes legibles por ordenador. Los medios legibles por ordenador incluyen cualquier medio capaz de almacenar datos. Los soportes legibles por ordenador pueden ser transitorios (incluidos, entre otros, la propagación de señales eléctricas o electromagnéticas) o no transitorios (incluidos, entre otros, dispositivos de almacenamiento o memorias de ordenador volátiles y no volátiles, como un disco duro, disquete, unidad USB, DVD, CD, tarjetas multimedia, memoria de registro, cachés de procesador, memoria de acceso aleatorio («RAM»), etc.
Con la llegada de Internet, la informática móvil y las redes inalámbricas de alta velocidad, los usuarios acceden a contenido multimedia en dispositivo del equipo del usuario en los cuales tradicionalmente no lo hacían. Tal y como se denomina en este documento, «dispositivo del equipo del usuario», «equipo del usuario», «dispositivo del usuario», «dispositivo electrónico», «equipo electrónico», «dispositivo del equipo multimedia» o «dispositivo multimedia» significa cualquier dispositivo utilizado para acceder al contenido descrito anteriormente, como una televisión, una TV inteligente, un decodificador multimedia, un decodificador receptor integrado (IRD) para la televisión por satélite, un dispositivo de almacenamiento digital, un receptor multimedia digital (DMR), un adaptador multimedia digital (DMA), un dispositivo de transmisión en tiempo real de contenido multimedia, un reproductor de DVD, un grabador de DVD, un DVD conectado, un servidor multimedia local, un reproductor BLU-RAY, un grabador BLU-RAY, un ordenador personal (PC), un ordenador portátil, un ordenador tipo tableta, un televisor vía web, una televisión por ordenador personal, (PC/TV), un servidor multimedia por PC, un centro multimedia por PC, un ordenador de mano, un teléfono fijo, un asistente digital personal (PDA), un teléfono móvil, un reproductor de vídeo portátil, un reproductor de música portátil, una máquina de videojuegos portátil, un teléfono inteligente, o cualquier otro equipo de televisión, equipo informático, o dispositivo inalámbrico, y combinación de los mismos. En algunas realizaciones, el dispositivo del equipo del usuario puede tener una pantalla delantera y una pantalla trasera, varias pantallas frontales o varias pantallas inclinadas. En algunas realizaciones, el dispositivo del equipo del usuario puede tener una cámara delantera y/o una cámara trasera. En estos dispositivos del equipo del usuario, los usuarios pueden navegar por y localizar el mismo contenido disponible a través de un televisor. Por lo tanto, la guía multimedia también puede estar disponible en estos dispositivos. La guía proporcionada puede ser para contenido disponible solamente a través de un televisor, para contenido disponible solo a través de uno o más de estos dispositivos del equipo del usuario, o para contenido disponible tanto a través de un televisor o uno o más de los otros tipos de dispositivo del equipo del usuario. Las aplicaciones de guía multimedia pueden proporcionarse como aplicaciones en línea (es decir, en un sitio web), o como aplicaciones independientes o clientes en dispositivo del equipo del usuario. Los diversos dispositivos y plataformas que pueden implementar aplicaciones de guía multimedia se describen con más detalles a continuación.
Una de las funciones de la aplicación de guía multimedia es proporcionar a los usuarios datos de la guía multimedia. Tal y como se menciona en este documento, las frases «datos de la guía multimedia» o «datos de la guía» deben entenderse como cualquier dato relacionado con el contenido o los datos utilizados en el funcionamiento de la aplicación de guía. Por ejemplo, los datos de la guía puede incluir información sobre el programa, configuraciones de la aplicación guía, preferencias de usuario, información del perfil de usuario, como listados multimedia, información relacionada con los medios (p. ej., tiempos de emisión, canales de emisión, nombres de los medios, descripciones, información del índice de audiencia (por ejemplo, clasificación para control parental, índice de audiencia de la crítica, etc.), información de género o categoría, información de actores, datos del logotipo para logos de emisores o proveedores, etc.), formato de medios (p. ej., definición estándar, alta definición, 3D, etc.), información de publicidad (p. ej., texto, imágenes, clips multimedia, etc.), información por demanda, blogs, sitios web y cualquier otro tipo de datos de guía que puedan ser útiles al usuario para navegar por y localizar las selecciones de contenido deseadas.
Las figuras 1-2 muestran pantallas de presentación ilustrativas que se pueden usar para proporcionar datos de la guía multimedia. Las pantallas de presentación mostradas en las figuras 1-2 pueden implementarse en cualquier plataforma o dispositivo del equipo del usuario. Aunque las visualizaciones de las figuras 1-2 se ilustran como pantallas de presentación completas, también pueden ser presentadas de manera completa o parcial superpuestas sobre el contenido que se está presentando. Un usuario puede indicar el deseo de acceder a la información de contenido seleccionando una opción seleccionable proporcionada en una pantalla de presentación (p.ej., una opción del menú, una opción de listados, un icono, un hipervínculo, etc.) o presionando un botón dedicado (p.ej., un botón GUÍA) en el control remoto u otra interfaz o dispositivo de entrada. En respuesta a la indicación del usuario, la aplicación de guía multimedia puede proporcionar una pantalla de presentación con datos de la guía de medios organizados en una o más formas, por ejemplo, por hora y canal en una parrilla, por horario, por canal, por fuente, por tipo de contenido, por categoría (p. ej., películas, deportes, noticias, niños u otras categorías de programación), u otros criterios predefinidos, definidos por el usuario, u otros criterios de organización.
La figura 1 muestra la pantalla de listados de programación en la parrilla ilustrativa 100 organizada por horario y canal que también permite el acceso a diferentes tipos de contenido en una sola pantalla. La pantalla 100 puede incluir la parrilla 102 con: (1) una columna de identificadores de tipo de canal/contenido 104, donde cada identificador de tipo de canal/contenido (que es una celda en la columna) identifica un canal o tipo de contenido diferente disponible; y (2) una fila de identificadores de horario 106, donde cada identificador de horario (que es una celda en la fila) identifica un bloque de horario de programación. La parrilla 102 también incluye celdas de listados de programación, tal como listados de programación 108, donde cada listado provee el título del programa provisto en el canal y horario asociado del listado. Con un dispositivo de entrada del usuario, el usuario puede seleccionar los listados de programación moviendo la región resaltada 110. La información referida al listado de programación seleccionada por la región resaltada 110 se puede proporcionar en la región de información de programación 112. La región 112 puede incluir, por ejemplo, el título del programa, la descripción del programa, el horario en que se emite el programa (si fuera aplicable), el canal en el que se emite el programa (si fuera aplicable), la clasificación de audiencia del programa y cualquier otra información deseada.
Además de proporcionar acceso a la programación lineal (por ejemplo, al contenido que está programado para ser transmitido a varios dispositivos del equipo del usuario en un momento predeterminado y que se proporciona según una programación), la aplicación de guía multimedia también proporciona acceso a la programación no lineal (p. ej., el contenido accesible a un dispositivo del equipo del usuario en cualquier momento y que no se proporciona según una programación). La programación no lineal puede incluir contenido de diferentes fuentes de contenido, incluyendo contenido por demanda (por ejemplo, vídeo a la carta o VOD), contenido de Internet (porejemplo, contenido multimedia transmitido en tiempo real o descargable, etc.), contenido almacenado localmente (por ejemplo, contenido almacenado en cualquier dispositivo del equipo del usuario descrito anteriormente u otro dispositivo de almacenamiento), u otro contenido independiente del tiempo. El contenido por demanda puede incluir películas o cualquier otro contenido proporcionado por un proveedor de contenido concreto (p.ej., HBO ofrece «Los Soprano» y «Larry David» a través del servicio HBO Go ). LOS SOPRANO y LARRI DAVID son marcas comerciales propiedad de Home Box Office, Inc. El contenido de Internet puede incluir eventos web, como una sesión de chat o transmisiones por la web, o contenido disponible por demanda como contenido transmitido en tiempo real o descargable a través de un sitio web u otro acceso a Internet (por ejemplo, la FTP)
La parrilla 102 puede proporcionar datos de la guía multimedia para la programación no lineal que incluyen el listado por demanda 114, listado de contenido grabado 116, y listado de contenido de Internet 118. Una pantalla que combina datos de la guía multimedia para contenido de diferentes tipos de fuentes de contenido, en ocasiones se denomina pantalla «multimedia mixta». Las diversas variantes de los tipos de datos de la guía multimedia que son diferentes que pueden presentarse en la pantalla 100, pueden estar basadas en la selección del usuario o definición de la aplicación guía (porejemplo, una pantalla de solo listados grabados o listados de difusión, solo por demanda y listados de difusión etc.). Como se ilustra, los listados 114, 116, y 118 se muestran incluyendo el bloque de horario completo en la parrilla 102 para indicar que la selección de estos listados puede proporcionar acceso a una pantalla dedicada a los listados por demanda, listados grabados, listados por Internet, respectivamente. En algunas realizaciones, los listados para estos tipos de contenido pueden estar incluidos directamente en la parrilla 102. Se pueden presentar datos de la guía multimedia adicionales en respuesta a la selección por parte del usuario de uno de los iconos de navegación 120. (Presionando una tecla de flechas en el dispositivo de entrada del usuario puede producir un efecto sobre la pantalla similar al producido seleccionando los iconos de navegación 120).
La pantalla 100 también puede incluir la región de vídeo 122, de publicidad 124 y la región de opciones 126. La región de vídeo 122 puede permitir al usuario ver y/o tener la vista previa de los programas que están disponibles en el momento, que estarán disponibles o estuvieron disponibles para el usuario. El contenido de la región de vídeo 122 puede corresponder a, o puede ser independiente de, uno de los listados mostrados en la parrilla 102. Las pantallas de la parrilla incluyendo una región de vídeo a veces son referidas como pantallas de imágenes incrustadas en la guía (PIG). Las pantallas PIG y sus funcionalidades se describen con más detalles en Satterfield et al. Patente de Estados Unidos n.° 6.564.378, expedida el 13 de mayo de 2003 y Yuen et al. Patente de Estados Unidos n.° 6.239.794, expedida el 29 de mayo de 2001. Las pantallas PIG pueden estar incluidas en otras pantallas de aplicación de guía multimedia de las realizaciones descritas en este documento,
La publicidad 124 puede proporcionar una publicidad para contenido multimedia que, según los derechos de acceso del usuario (por ejemplo, para programación por suscripción), está normalmente disponible para ser vista, estará disponible para ser vista en el futuro o nunca estará disponible, y puede corresponder a (es decir, estar relacionada con) o no estar relacionada con uno o más de los listados de la parrilla 102. La publicidad 124 también pueden ser productos o servicios relacionados o no relacionados con el contenido presentado en la parrilla 102. Se puede seleccionar la publicidad 124 y ésta puede proporcionar información adicional sobre el contenido, proporcionar información sobre un producto o servicio, permitir la compra de un contenido, un producto, o un servicio, proveer contenido relacionado con la publicidad, etc. La publicidad 124 puede estar dirigida en base al perfil/preferencias de los usuarios, la actividad controlada del usuario, el tipo de pantalla proporcionada u otras bases adecuadas a las que apunta la publicidad.
Aunque la publicidad 124 se muestra en forma rectangular o con forma de banner (anuncio o publicidad que se desplaza por la pantalla), se puede proporcionar en cualquier tamaño, forma y ubicación adecuada en una pantalla de aplicación de guía. Por ejemplo, se puede proporcionar la publicidad 124 con forma rectangular horizontalmente adyacente a la parrilla 102. Esto a veces se denomina como publicidad de panel. Además, las publicidades pueden superponerse sobre el contenido o una pantalla de aplicación guía o estar incluidas dentro de una pantalla. La publicidad también puede incluir textos, imágenes, imágenes rotativas, vídeo clips, u otros tipos de contenido descritos anteriormente. La publicidad puede ser almacenada en el equipo del usuario mediante la aplicación guía, en una base de datos conectada el equipo del usuario en una ubicación remota (incluyendo servidores de medios transmitidos en tiempo real por Internet) o en otros medios de almacenamiento o combinación de estas localizaciones. La entrega de anuncios en una aplicación de guía multimedia se analiza en mayor detalle, por ejemplo, en la publicación de solicitud de patente de EE. UU. n.° 2003/0110499, de Knudson et al., presentada el 17 de enero de 2003: Ward, 111 et al. Patente de Estados Unidos n.° 6.756.997, expedida el 29 de junio de 2004 y Schein et al. Patente de Estados Unidos n.° 6.388.714, expedida el martes, 14 de mayo de 2002. Se apreciará que los anuncios puedan incluirse en otras pantallas de presentación de la aplicación de guía multimedia de las realizaciones descritas en este documento.
La región de opciones 126 puede permitir al usuario acceder a diferentes tipos de contenido, pantallas de la aplicación de guía multimedia y/o características de la aplicación de guía multimedia. La región de opciones 126 puede formar parte de la pantalla 100 (y de otras pantallas de presentación descritas en el presente documento) o pueden ser invocadas por el usuario mediante la selección de una opción en pantalla o presionando un botón dedicado o asignable del dispositivo de entrada del usuario. Las opciones seleccionables dentro de la región de opciones 126 pueden referirse a características relacionadas con los listados de programas en la parrilla 102 o puede incluir opciones disponibles desde una pantalla del menú principal. Las características relacionadas con los listados de programación pueden incluir la búsqueda de otros horarios de aire o formas de recibir un programa, grabar de un programa, permitir la grabación en serie de un programa, determinación de un programa y lo canal como favorito, compra de un programa, u otras características. Las opciones disponibles desde una pantalla de menú principal pueden incluir opciones de búsqueda, de vídeo a la carta o VOD, de control parental, de Internet, opciones basadas en la nube, opciones de sincronización de dispositivos, opciones de dispositivo de pantalla secundario, opciones para acceder a diversos tipos de datos de la guía multimedia, opciones para suscribirse a un servicio prémium, opciones para editar el perfil de un usuario, para acceder a una superposición de navegación, u otras opciones.
La aplicación de guía multimedia puede personalizarse en base a las preferencias del usuario. Una aplicación de guía multimedia personalizada permite al usuario personalizar las pantallas y características para crear una «experiencia» personalizada de la aplicación de guía multimedia. Esta experiencia personalizada puede crearse permitiendo al usuario ingresar estas variaciones personales y/o mediante el control de la actividad del usuario con la aplicación de guía multimedia para determinar las diversas preferencias del usuario. Los usuarios pueden acceder a la aplicación guía personalizada registrándose o identificándose de alguna manera en la aplicación guía. La personalización de la aplicación de guía multimedia puede realizarse según el perfil del usuario. Las personalizaciones pueden incluir diversos esquemas de presentación(por ejemplo, el esquema de colores de las pantallas, el tamaño del texto, etc.), aspectos de los listados de contenido mostrados(por ejemplo, solo HDTV o solo programación en 3D, canales de difusión especificados por el usuario basados en selecciones de canales favoritos, reordenación de la visualización de los canales, contenido recomendado, etc.), características de grabación deseadas (por ejemplo, grabación o grabaciones en serie para usuarios particulares, calidad de grabación, etc.), ajustes de control parental, presentación personalizada del contenido de Internet (por ejemplo, presentación del contenido de los medios sociales, correo electrónico, artículos entregados electrónicamente, etc.) y otras personalizaciones deseadas
La aplicación de guía multimedia puede permitir al usuario proporcionar información de perfil de usuario o puede compilar automáticamente la información del perfil de usuario. La aplicación de guía multimedia puede, por ejemplo, controlar el contenido al que accede el usuario y/o otras interacciones del usuario con la aplicación guía. Además, la aplicación guía del usuario puede obtener todos o parte de otros perfiles de usuario que están relacionados con un usuario particular (por ejemplo, de otros sitios Web en Internet a los que accede el usuario, por ejemplo, www.allrovi.com, de otras aplicaciones guía multimedia a las que accede el usuario, de otras aplicaciones interactivas a las que accede el usuario desde otro dispositivo del equipo del usuario, etc.), y/o obtener información sobre el usuario de otras fuentes a las que puede acceder la aplicación de guía multimedia. Como resultado, se puede proporcionar a un usuario una experiencia unificada de la aplicación guía a través de los diferentes dispositivos del equipo del usuario. Este tipo de experiencia se describe con detalles más adelante en relación con la figura 4. Las características adicionales personalizadas de la aplicación de guía multimedia se describen con mayor detalle en Ellis et al., Publicación de solicitud de patente de Estados Unidos n.° 2005/0251827 presentada el 11 de julio de 2005, Boyer et al., Patente de Estados Unidos n.° 7.165.098, expedida el 16 de enero de 2007 y Ellis et al., Publicación de solicitud de patente de Estados Unidos n.° 2002/0174430, presentada el jueves 21 de febrero de 2002.
Otra disposición de la pantalla para proporcionar una guía multimedia se ilustra en la figura 2. La pantalla de mosaico de vídeo 200 incluye las opciones seleccionables 202 para información de contenido organizada en base a varios criterios de organización, tales como recomendaciones, inclusión en una lista de visualización y tipo de contenido. En la pantalla 200, se selecciona la opción listado de películas 204 proporcionando así los listados 206, 208, 210 y 212 como películas. En la pantalla 200 los listados pueden proporcionar imágenes gráficas que incluyen portadas, imágenes inanimadas del contenido, vistas preliminares en vídeo clip, vídeo en vivo del contenido u otros tipos de medios que indiquen al usuario el contenido que está siendo descrito por los datos de la guía multimedia en el listado. Cada uno de los listados gráficos también puede estar acompañado por texto para proporcionar información adicional sobre el contenido asociado con el listado. Por ejemplo, el listado 208 puede incluir más de una porción, incluyendo la porción de medios 214 y la porción de texto 216. Se pueden seleccionar la porción de medios 214 y/o la porción de texto 216 para ver contenido en pantalla completa o para ver información relacionada con el contenido mostrados en la porción de medios 214 (por ejemplo, para ver los listados del proveedor de contenido especificado).
Los listados de la pantalla 200 tienen diferentes tamaños (es decir, el listado 206 es más largo que los listados 208, 210, y 212), pero si se desea, todos los listados pueden tener el mismo tamaño. Los listados pueden tener diferentes tamaños o estar gráficamente acentuados para indicar los grados de interés para el usuario o enfatizar cierto contenido, si lo desea el proveedor de contenido o en base a las preferencias del usuario. Diversos sistemas y métodos para destacar gráficamente los listados de contenido se analizan, por ejemplo, en Yates, Publicación de solicitud de patente de Estados Unidos n.° 2010/0153885, presentada el 12 de noviembre de 2009.
Los usuarios pueden acceder al contenido y a la aplicación de guía multimedia (y sus pantallas de presentación descritas anteriormente y más adelante) desde uno o más de su dispositivo del equipo del usuario. La figura 3 muestra una realización general del dispositivo del equipo ilustrativo 300. Se describen más adelante más implementaciones específicas de los dispositivos en relación a la figura 4. El dispositivo del equipo 300 puede implementarse en el equipo de televisión del usuario 402, en el equipo informático del usuario 404 y en el dispositivo de comunicaciones inalámbricas del usuario 406. Además, el dispositivo 300 puede implementarse como parte de los servidores asociados con los proveedores de contenido 416 y 418, y como parte del servidor asociado con el agregador de contenido 430. El dispositivo 300 puede recibir contenido y datos mediante la vía entrada/salida 302 (de ahora en adelante «E/S»). La vía E/S 302 puede proporcionar contenido (por ejemplo, programación de difusión, programación por demanda, contenido de Internet, contenido disponible a través de una red de área local (LAN) o red de área amplia (WAN), y/u otro contenido) y datos al circuito de control 304, que incluye el circuito de procesamiento 306 y el medio de almacenamiento 308. El circuito de control 304 puede utilizarse para enviar y recibir comandos, pedidos y otros datos adecuados usando la vía E/S 302. La vía E/S 302 puede conectar el circuito de control 304 (y específicamente el circuito de procesamiento 306) con una o más vías de comunicación (descritas más adelante). Las funciones E/S pueden proporcionarse mediante una o más de estas vías de comunicación, sin embargo, se muestran como una vía sola en la figura 3 para evitar complicar en exceso el dibujo.
El circuito de control 304 puede estar basado en cualquier circuito de procesamiento adecuado, como el circuito de procesamiento 306. Tal y como se menciona en el presente documento, se entenderá por circuito de procesamiento cualquier circuito basado en uno o más microprocesadores, microcontroladores, procesadores de señales digitales, dispositivos lógicos programables, matrices de puerta programables por campo (FPGA), circuitos integrados específicos de la aplicación (ASIC), etc., y puede incluir un procesador multinúcleo(por ejemplo, de doble núcleo, de cuatro núcleos, de seis núcleos o cualquier número de núcleos adecuado) o un superordenador. En algunas realizaciones, los circuitos de procesamiento pueden distribuirse a través de múltiples unidades de procesamiento o procesadores independientes, por ejemplo, varias unidades de procesamiento similares (p. ej., dos procesadores Intel Core i7) o varios procesadores diferentes (p. ej., un procesador Intel Core i5 y un Intel Core i7). En algunas realizaciones, el circuito de control 304 ejecuta instrucciones para una aplicación de guía multimedia almacenada en la memoria (es decir, en el medio de almacenamiento 308). En concreto, la aplicación de guía multimedia puede ordenar al circuito de control 304 que realice las funciones analizadas anteriormente y más adelante. Por ejemplo, la aplicación de guía multimedia puede dar instrucciones al circuito de control 304 para generar las visualizaciones de la guía multimedia. En algunas implementaciones, cualquier acción realizada por el circuito de control 304 puede estar basada en instrucciones recibidas de la aplicación de guía multimedia.
En realizaciones basadas en cliente-servidor, el circuito de control 304 puede incluir circuitos de comunicaciones adecuados para comunicarse con un servidor de la aplicación guía u otras redes o servidores. Las instrucciones para llevar a cabo la funcionalidad mencionada anteriormente pueden almacenarse en el servidor de la aplicación guía. El circuito de comunicaciones puede incluir un módem por cable, un módem de red digital de servicios integrados (ISDN), un módem de línea digital de abonado (DSL), un módem telefónico, una tarjeta de Ethernet o un módem inalámbrico para comunicaciones con otro equipo, o cualquier otro circuito de comunicaciones apropiado. Dichas comunicaciones pueden incluir Internet o cualquier otra red o vía de comunicaciones adecuada (que se describen con más detalle en relación con la figura 4). Además, el circuito de comunicaciones puede incluir un circuito que permita la comunicación punto a punto entre dispositivos de equipos de usuarios o la comunicación entre dispositivos de equipos en ubicaciones remotas entre sí (se describe más detalladamente más adelante).
La memoria puede ser un dispositivo de almacenamiento electrónico proporcionado como almacenamiento 308, que forma parte del circuito de control 304. Tal y como se denomina en este documento, «dispositivo de almacenamiento electrónico» o «dispositivo de almacenamiento» debe entenderse como cualquier dispositivo que sirva para almacenar datos electrónicos, software informático, o firmware, tal como memoria de acceso aleatorio, memoria de solo lectura, discos duros, unidades ópticas, grabadoras de disco de vídeo digital (DVD), grabadoras de disco compacto (CD), grabadoras de disco BLU-RAY (BD), grabadoras de disco BLU-RAY 3D, grabadoras de vídeo digital (dVr , a veces denominadas grabadoras de vídeo personal, o PVR), dispositivos de estado sólido, dispositivos de almacenamiento cuántico, videoconsolas, medios de juego, o cualquier otro dispositivo de almacenamiento fijo o extraíble adecuado, y/o cualquier combinación de los mismos. El medio de almacenamiento 308 puede usarse para almacenar los distintos tipos de contenido que se describen en este documento, así como los datos de la guía multimedia descritos anteriormente. También puede utilizarse la memoria no volátil (porej., para el arranque de la rutina del sistema y otras instrucciones). El medio de almacenamiento basado en la nube, descrito en relación con la figura 4, puede usarse para complementar al medio de almacenamiento 308 o en lugar de él.
El circuito de control 304 puede incluir un circuito que genera vídeo y un circuito de sintonización, como por ejemplo, sintonizadores analógicos, uno o más decodificadores MPEG-2 u otros circuitos de decodificación digital, sintonizadores de alta definición, o cualquier otro circuito de sintonización o vídeo adecuado o combinaciones de dichos circuitos. También se pueden proporcionar circuitos de codificación (p. ej., señales transmitidas por aire, analógicas o digitales en señales MPEG para almacenamiento). El circuito de control 304 también puede incluir un circuito escalador para reducir o elevar la frecuencia del contenido al formato de salida preferido del dispositivo del equipo 300. El circuito 304 también puede incluir un circuito de conversión digital-analógico y circuitos de conversión en analógico-digital para conversiones entre señales digitales y analógicas. El circuito de sintonización y el circuito de codificación pueden utilizarse mediante el dispositivo del equipo para recibir y mostrar, reproducir o grabar contenido multimedia. El circuito de sintonización y circuito de codificación también puede utilizarse para recibir datos de la guía. Los circuitos descritos en el presente documento, incluyendo por ejemplo, el de sintonización, generación de vídeo, codificación, decodificación, cifrado, descifrado, reducir o elevar frecuencia y circuitos analógicos/digitales, pueden implementarse usando un software en uno o más de los procesadores para propósitos generales o especializados. Los sintonizadores múltiples pueden proporcionarse para manejar funciones de sintonización simultáneas (p.ej., funciones de ver y grabar, funciones de imagen superpuesta (PIP), grabación con sintonización múltiple, etc.). Si se proporciona el medio de almacenamiento 308 como un dispositivo independiente del dispositivo del equipo 300, se puede asociar el circuito de ajuste y codificación (incluyendo sintonizadores múltiples) con el medio de almacenamiento 308.
Cuando el dispositivo del equipo 300 se implementa en el equipo de televisión de usuario 402, en el equipo informático de usuario 404 o en el dispositivo de comunicaciones inalámbricas de usuario 406, un usuario puede enviar instrucciones para controlar el circuito de control 304 usando la interfaz de entrada de usuario 310. La interfaz de entrada de usuario 310 puede ser cualquier interfaz de usuario adecuada, por ejemplo, control remoto, ratón, esfera de control, teclado numérico, teclado, pantalla táctil, panel táctil, entrada de lápiz óptico, joystick, interfaz de reconocimiento de voz u otras interfaces de entrada. La pantalla 312 puede proporcionarse como un dispositivo autónomo o estar integrada con otros elementos del dispositivo del equipo 300. Por ejemplo, la pantalla 312 puede ser una pantalla táctil o una pantalla sensible al tacto. En tales circunstancias, la interfaz de entrada de usuario 310 puede integrarse con la pantalla 312 o combinarse con ella. La pantalla 312 puede ser uno o más monitores, un televisor, una pantalla de cristal líquido (LCD) para un dispositivo móvil, una pantalla de silicio amorfo, una pantalla de polisilicio de baja temperatura, una pantalla con tinta electrónica, una pantalla electroforética, una pantalla de matriz activa, una pantalla de electrohumectación, una pantalla electrofluídica, una pantalla de tubo de rayos catódicos, una pantalla de diodo emisor de luz, una pantalla electroluminiscente, un panel de pantalla de plasma, una pantalla de direccionamiento de alto rendimiento, una pantalla de transistor de película fina, una pantalla de diodo emisor de luz orgánica, una pantalla con superficie de conducción emisora de electrones (SED), una televisión láser, nanotubos de carbono, una pantalla de puntos cuánticos, una pantalla moduladora interferométrica o cualquier otro equipo adecuado para mostrar imágenes visuales. En algunas realizaciones, la pantalla 312 puede ser compatible con HDTV. En algunas realizaciones, la pantalla 312 puede ser 3D y la aplicación de guía multimedia interactiva y cualquier contenido adecuado puede visualizarse en 3D. Una tarjeta de vídeo o una tarjeta gráfica puede generar la salida a la pantalla 312. La tarjeta de vídeo puede ofrecer diversas funciones, como la representación acelerada de escenas 3D y gráficos 2D, decodificación MPEG-2/MPEG-4, salida de TV, o la capacidad de conectar múltiples monitores. La tarjeta de vídeo puede ser cualquier circuito de procesamiento descrito anteriormente en relación con el circuito de control 304. La tarjeta de vídeo puede estar integrada en el circuito de control 304. Se pueden proporcionar altavoces 314 integrados con otros elementos del dispositivo del equipo 300 o pueden ser unidades independientes. Se puede reproducir el componente de audio de los vídeos y otro contenido mostrado en la pantalla 312 a través de los altavoces 314. En algunas realizaciones, se puede distribuir el audio hacia un receptor (no se muestra), que procesa y emite el audio a través de los altavoces 314.
La aplicación de guía puede implementarse usando cualquier arquitectura adecuada. Por ejemplo, puede ser una aplicación autónoma completamente implementada en el dispositivo del equipo 300. En este enfoque, las instrucciones de la aplicación se almacenan localmente (p. ej., en el medio de almacenamiento 308), y los datos que usará la aplicación se descargan periódicamente (p. ej., de una alimentación fuera de banda, de un recurso de Internet o utilizando otro enfoque adecuado). El circuito de control 304 puede recuperar instrucciones de la aplicación del medio de almacenamiento 308 y procesarlas para generar cualquiera de las pantallas aquí mencionadas. En base a las instrucciones procesadas, el circuito de control 304 puede determinar qué acción realizar cuando se recibe una entrada desde la interfaz de entrada 310. Por ejemplo, las instrucciones procesadas pueden indicar el movimiento de un cursor en una pantalla hacia arriba/abajo cuando la interfaz de entrada 310 indica que se seleccionó un botón arriba/abajo.
En otra realización, la aplicación de guía multimedia es una aplicación guía basada en cliente-servidor. Los datos para uso por un cliente pesado o un cliente ligero implementado en el dispositivo del equipo 300 son recuperados por demanda emitiendo solicitudes a un servidor remoto respecto al dispositivo del equipo 300. En un ejemplo de una aplicación guía basada en cliente-servidor, el circuito de control 304 ejecuta un navegador para Web que interpreta las páginas Web proporcionadas por el servidor remoto. Por ejemplo, el servidor remoto puede almacenar las instrucciones para la aplicación en un dispositivo de almacenamiento. El servidor remoto puede procesar las instrucciones almacenadas utilizando circuitos (p. ej., el circuito de control 304) y generar las pantallas discutidas anteriormente y a continuación. El dispositivo cliente puede recibir las pantallas generadas por el servidor remoto y puede mostrar el contenido de las pantallas localmente en el dispositivo del equipo 300. De esta manera, el servidor realiza el procesamiento de las instrucciones de forma remota mientras las pantallas resultantes se proporcionan localmente en el dispositivo del equipo 300. El dispositivo del equipo 300 puede recibir entradas del usuario a través de la interfaz de entrada 310 y transmitirlas al servidor remoto para procesar y generar las pantallas correspondientes. Por ejemplo, el dispositivo del equipo 300 puede transmitir una comunicación al servidor remoto que indica que se seleccionó un botón arriba/abajo a través de la interfaz de entrada 310. El servidor remoto puede procesar instrucciones según esa entrada y generar una pantalla de la aplicación correspondiente a la entrada (p. ej., una pantalla que mueve un cursor hacia arriba/abajo). La pantalla generada se transmite luego al dispositivo del equipo 300 para su presentación al usuario.
En algunas realizaciones, la aplicación guía de medios se descarga e interpreta o se ejecuta de alguna forma por medio de un interpretador o máquina virtual (ejecutada por el circuito de control 304). En algunas realizaciones, la aplicación guía puede ser codificada en el Formato de Intercambio Binario ETV (EBIF), recibirse por el circuito de control 304 como parte de una alimentación adecuada, e interpretarse por un agente de usuario que se ejecuta en el circuito de control 304. Por ejemplo, la aplicación guía puede ser una aplicación EBIF. En algunas realizaciones, la aplicación guía puede definirse mediante una serie de archivos basados en JAVA que se reciben y se ejecutan mediante una máquina virtual local u otro middleware ejecutado por el circuito de control 304. En algunas de dichas realizaciones (p. ej., aquellas que utilizan MPEG-2 u otros esquemas de codificación de medios digitales), la aplicación guía puede, por ejemplo, codificarse y transmitirse en un carrusel de objetos MPEG-2 con los paquetes de audio MPEG y vídeo de un programa.
El dispositivo del equipo 300 de la figura 3 puede implementarse en el sistema 400 de la figura 4 como el equipo de televisión del usuario402, el equipo informático de usuario 404, el dispositivo de comunicaciones inalámbricas de usuario 406 o cualquier otro tipo de equipo del usuario adecuado para acceder al contenido, como una máquina de juegos no portátil. Para mayor simplicidad, en este documento denominamos en conjunto a estos dispositivos equipamiento de usuario o dispositivos del equipo del usuario, y pueden ser sustancialmente similares a los dispositivos del equipo del usuario descritos anteriormente. Los dispositivos del equipo del usuario, en los que se puede implementar la aplicación de guía multimedia, pueden funcionar como un dispositivo autónomo o pueden formar parte de una red de dispositivos. Se pueden implementar varias configuraciones de red de los dispositivos que se analizan detalladamente más adelante. Además, el dispositivo del equipo 300 puede implementarse como parte de los servidores asociados con los proveedores de contenido 416 y 418, y como parte del servidor asociado con el agregador de contenido 430.
Un dispositivo del equipo del usuario que utilice al menos algunas de las funcionalidades del sistema descritas anteriormente en relación con la figura 3 no puede clasificarse únicamente como equipo de televisión del usuario 402, equipo informático del usuario 404 o dispositivo de comunicaciones inalámbricas del usuario 406. Por ejemplo, al igual que algún equipamiento informático de usuario 404, el equipo de televisión del usuario 402 puede estar habilitado para Internet permitiendo el acceso al contenido de Internet, mientras que el equipo informático del usuario 404 puede incluir un sintonizador para permitir el acceso a la programación de televisión 402. La aplicación de guía multimedia puede tener el mismo diseño en varios tipos diferentes de equipos del usuario o puede estar adaptada a las capacidades de presentación del equipo del usuario. Por ejemplo, en un equipo informático del usuario 404, la aplicación guía puede proporcionarse como un sitio Web al que se accede mediante un navegador para Internet. En otro ejemplo, la aplicación guía puede reducirse para dispositivos de comunicaciones inalámbricas del usuario 406.
En el sistema 400, típicamente, existen más de uno de cada tipo de dispositivo del equipo del usuario, pero solo uno de cada uno se muestra en la figura 4 para evitar. complicar en exceso el dibujo. Además, cada usuario puede utilizar más de un tipo de dispositivo del equipo del usuario y también más de uno de cada tipo de dispositivo del equipo del usuario.
En algunas realizaciones, un dispositivo del equipo del usuario (p. ej., el equipo de televisión del usuario 402, el equipo informático del usuario 404, y el dispositivo de comunicaciones inalámbricas 406) se puede denominar «dispositivo de pantalla secundario». Por ejemplo, un dispositivo de pantalla secundario puede complementar el contenido presentado en un primer dispositivo del equipo del usuario. El contenido presentado en el dispositivo de pantalla secundario puede ser cualquier contenido adecuado que complemente el contenido presentado en el primer dispositivo. En algunas realizaciones, el dispositivo de pantalla secundario proporciona una interfaz para ajustar configuraciones y mostrar las preferencias del primer dispositivo. En algunas realizaciones, el dispositivo de pantalla secundario está configurado para interactuar con otros dispositivos de pantalla secundarios o con una red social. El dispositivo de pantalla secundario puede estar ubicado en la misma sala que el primero, en una sala diferente pero en la misma casa o edificio, o en un edificio diferente al del primer dispositivo.
El usuario también puede determinar varias configuraciones para mantener coherentes las configuraciones de la aplicación de guía multimedia en todos los dispositivos del hogar y dispositivos remotos. Las configuraciones incluyen las descritas en el presente documento, así como también, canales y programas favoritos, preferencias de programación que utiliza la aplicación guía para hacer recomendaciones de programación, preferencias de la pantalla y otras configuraciones de guía deseadas. Por ejemplo, si un usuario determina un canal como favorito en, por ejemplo, el sitio web www.allrovi.com en su ordenador personal en la oficina, si lo desea, el mismo canal aparecería como favorito en los dispositivos del usuario en el hogar (p. ej., equipo de televisión del usuario y equipo informático del usuario), así como también, en los dispositivos móviles. Por lo tanto, los cambios realizados en uno de los equipos del usuario pueden cambiar la experiencia de la guía en otro dispositivo del usuario, sin considerar si es el mismo o diferente tipo de dispositivo del equipo del usuario. Además, los cambios realizados pueden estar basados en configuraciones realizadas por un usuario, así como también, en la actividad del usuario supervisada por la aplicación guía.
Los dispositivos del equipo del usuario pueden estar acoplados a una red de comunicaciones 414. Concretamente, el equipo de televisión del usuario 402, el equipo informático del usuario 404 y el dispositivo de comunicaciones inalámbricas 406 se conectan a una red de comunicaciones 414 mediante las vías de comunicación 408, 410 y 412, respectivamente. La red de comunicaciones 414 puede ser una o más redes incluyendo Internet, una red telefónica móvil, una red móvil de datos o de voz (p. ej., una red 4G o LTE), red para cable, red telefónica pública conmutada u otros tipos de redes de comunicaciones o combinaciones de redes de comunicaciones. Las vías 408, 410, y 412 pueden incluir por separado o juntas una o más vías de comunicación, tales como, vía satelital, fibra óptica, vía por cable, vía que soporta comunicaciones por Internet (p. ej., IPTV), conexiones de espacio libre (p. ej., para señales de transmisión u otras señales inalámbricas), o cualquier otra vía de comunicación adecuada inalámbrica o no, o combinaciones de dichas vías. La vía 412 está dibujada con líneas de puntos para indicar que, en la realización de ejemplo mostrada en la figura 4, es una vía inalámbrica, y las vías 408 y 410 están dibujadas como líneas continuas para indicar que son vías cableadas (aunque estas vías pueden ser vías inalámbricas, si se desea). Las comunicaciones con los dispositivos del equipo del usuario pueden proporcionarse mediante una o más vías de comunicación, sin embargo, se muestran como una única vía en la figura 4 para evitar complicar en exceso el dibujo.
Aunque no se han dibujado las vías de comunicación entre los dispositivos del equipo del usuario, estos pueden comunicarse directamente entre sí mediante las vías de comunicación como las descritas anteriormente con referencia a las vías 408, 410, y 412, así como también, otras vías de comunicación punto a punto de rango corto, por ejemplo, cables USB, cables IEEE 1394. inalámbricas (p. ej., Bluetooth, infrarrojo, IEEE 802-11x, etc.), u otras vías de comunicación alámbricas o inalámbricas de corto alcance. BLUETOOTH es una marca de certificación propiedad de Bluetooth SIG, INC. Los dispositivos del equipo del usuario también pueden comunicarse entre sí directamente a través de una vía indirecta mediante la red de comunicaciones 414.
El sistema 400 los incluye proveedores de contenido 416 y 418, así como el agregador de contenido 430 acoplado a la red de comunicaciones 414 a través de las vías de comunicación 420, 422, 424, 426 y 428, respectivamente. Las vías 420, 422, 424, 426 y 428 pueden incluir cualquiera de las vías de comunicación descritas anteriormente en relación con las vías 408, 410, y 412. Las comunicaciones con el proveedor de contenido 416 y el agregador de contenido 430 pueden intercambiarse a través de una o más vías de comunicación, pero en la figura 4 se muestran como una vía única para evitar complicar en exceso el dibujo. Además, puede haber más de uno de cada proveedor de contenido 416 y agregador de contenido 430, pero en la figura 4 solo se muestran dos proveedores de contenido y un agregador de contenido para evitar complicar en exceso el dibujo. (Los diferentes tipos de cada una de estas fuentes se describen más adelante). Aunque las comunicaciones entre los proveedores de contenido 416 y 418 con los dispositivos del equipo del usuario 402, 404 y 406 se muestren como una red de comunicaciones 414, en algunas realizaciones, los proveedores de contenido 416 y 418 pueden comunicarse directamente con los dispositivos del equipo del usuario 402, 404, y 406 mediante las vías de comunicación (no mostradas) tales como las descritas anteriormente con respecto a las vías 408, 410, y 412. En algunos casos, las comunicaciones entre los proveedores de contenido 416 y 418 con los dispositivos del equipo del usuario 402, 404 y 406 se producen a través del agregador de contenido 430. Por ejemplo, las comunicaciones entre el equipo de televisión del usuario 402 y el proveedor de contenido 416 pueden producirse a través de las vías 426, 428 y 408.
Los proveedores de contenido 416 y 418 pueden incluir uno o más tipos de equipos de distribución de contenido, incluyendo un aparato de distribución de televisión, un equipo de cabecera de sistema por cable, una instalación de distribución satelital, fuentes de programación (p. ej., emisoras de televisión como NBC, ABC, HBO, etc.), servidores y/o instalaciones de distribución intermedia, proveedores de Internet, servidores de medios por demanda (p. ej., Netflix, Hulu, Amazon, etc.) y otros proveedores de contenido. NBC es una marca comercial propiedad de National Broadcasting Company, Inc., a Bc es una marca comercial propiedad de American Broadcasting Company, Inc. y HBO es una marca comercial propiedad de Home Box Office, Inc. El proveedor de contenido 416 puede ser el origen del contenido (p. ej., una emisora de televisión, un radiodifusor de televisión, un proveedor de transmisiones por la web, etc.) o no serlo (p. ej., un proveedor de contenido por demanda, un proveedor de Internet de contenido de programas de radiodifusión para descargar, etc.). El proveedor de contenido 416 puede incluir fuentes de cable, proveedores por satélite, proveedores por demanda, proveedores de Internet, proveedores de contenido de libre transmisión u otros proveedores de contenido. El proveedor de contenido 416 también puede incluir un servidor multimedia remoto utilizado para almacenar diferentes tipos de contenido (incluyendo contenido de vídeo seleccionado por un usuario), en una ubicación remota de cualquiera de los dispositivos del equipo del usuario. Los sistemas y procedimientos para almacenamiento remoto de contenido y la prestación de contenido almacenado de forma remota al equipo del usuario se analizan con mayor detalle en relación con Ellis et al., Patente de Estados Unidos n.° 7.761, 892, expedida el 20 de julio de 2010.
El agregador de contenido 430 puede recopilar datos de la guía multimedia de los proveedores de contenido 416 y 418, y proporcionar dichos datos, como se describe anteriormente. Los datos de la guía multimedia pueden proporcionarse a los dispositivos del equipo del usuario usando cualquiera de los enfoques adecuados. En algunas realizaciones, la aplicación guía puede ser una guía de programación televisiva interactiva autónoma que recibe los datos de la guía de programación mediante una alimentación de datos (p. ej., una alimentación continua o controlada). Los datos de la agenda de programación y otros datos de la guía pueden proporcionarse al equipo del usuario en una banda lateral del canal televisivo, usando una señal digital fuera de banda o cualquier otra técnica de transmisión de datos adecuada. Los datos de la agenda de programación y otros datos de la guía multimedia pueden proporcionarse al equipo del usuario en canales de televisión analógicos o digitales. En algunas realizaciones, el circuito de control 304 implementado en el agregador de contenido 430 puede transmitir una solicitud a través de las vías 426 y 424 para datos de la guía multimedia desde los proveedores de contenido 416 y 418.
El agregador de contenido 430 puede comunicarse con los dispositivos de equipo 402, 04 y 406 por medio de clientes instalados en cada uno de los dispositivos del equipo. Por ejemplo, cuando un usuario se suscribe inicialmente a la suscripción del agregador de contenido, el circuito de control 304 implementado en el agregador de contenido 430 puede facilitar la transferencia de una aplicación cliente al dispositivo del equipo. El circuito de control 304 implementado en cada uno de los dispositivos del equipo 402, 404 y 406 puede descargar, instalar y configurar la aplicación cliente desde el agregador de contenido 430. A continuación, la aplicación cliente puede facilitar la entrega del contenido multimedia y de los datos de la guía multimedia desde el agregador de contenido 430 a los dispositivos del equipo. La aplicación cliente puede incluir además una interfaz de usuario, que el circuito de control 304 implementado en el dispositivo 300 del equipo genera para mostrar en la pantalla 312, para que el usuario pueda interactuar con los listados de medios usando la interfaz de entrada del usuario 310, el código para manejar datos de Gestión de Derechos Digitales (DRM), así como códecs y reproductores necesarios para generar medios para su visualización en la pantalla 312. En algunas realizaciones, el cliente puede configurarse para comunicarse directamente con los proveedores de contenido 416 y 418. El agregador de contenido 430 puede incluir una interfaz de comunicaciones correspondiente, de modo que el circuito de control 304 implementado en el agregador de contenido pueda recibir información del cliente implementado en cada dispositivo del equipo. El circuito de control 304 implementado en el agregador de contenido 430 puede enviar y recibir datos de cada cliente, así como de cada proveedor de contenido 416 y 418 usando la interfaz de comunicaciones. El agregador de contenido 430 también puede incluir una o más bases de datos para almacenar información del suscriptor y listados de contenido multimedia de los proveedores de contenido 416 y 418.
En algunas realizaciones, el agregador de contenido 430 puede comunicarse con los dispositivos del equipo por medio de un navegador para Internet disponible en los dispositivos del equipo 402, 404 y 406. Por ejemplo, el equipo informático del usuario 404 puede incluir una implementación de Internet Explorer. Cuando el usuario desea acceder a las ofertas de medios de la suscripción del agregador de contenido (p.ej., un usuario puede desear acceder a los listados de Netflix disponibles como parte de la suscripción del agregador de contenido al que está suscrito), el circuito de control 304, implementado en el dispositivo 404 del equipo, puede mostrar una ventana de navegación que contenga la pantalla de mosaico de vídeo 200 en la pantalla 312. El circuito de control 304 implementado en el dispositivo del equipo 404 puede recibir una selección de la interfaz de entrada de usuario 310, lo cual indica que el usuario desea acceder al contenido de un servicio de suscripción que forma parte de la suscripción del agregador de contenido. Por ejemplo, el usuario puede dirigir el puntero del ratón para resaltar y seleccionar la porción de texto 216 (p. ej., Netflix). El circuito de control 304 implementado en el dispositivo del equipo 404 pueden transmitir la entrada correspondiente a la porción de texto 216 al proceso que ejecuta el navegador de Internet, permitiendo que el navegador recupere y muestre el sitio web de Internet (p. ej., www.netflix.com) asociado con el servicio de suscripción seleccionado.
En algunas realizaciones, los datos de la guía del agregador de contenido 430 pueden proporcionarse al equipo del usuario usando el método cliente servidor. Por ejemplo, un dispositivo del equipo del usuario puede extraer datos de la guía multimedia de un servidor, o un servidor puede pasar datos de la guía multimedia a un dispositivo del equipo del usuario. En algunas realizaciones, un cliente de una aplicación de guía ubicada en el equipo del usuario puede iniciar sesiones con el agregador de contenido 430 para obtener datos de la guía cuando sea necesario, p. ej., cuando los datos de orientación están desactualizados o cuando el dispositivo del equipo del usuario recibe una solicitud del usuario para recibir datos. La guía multimedia puede proporcionarse al equipo del usuario en cualquier frecuencia adecuada (p. ej., de manera continua, diariamente, en períodos de tiempo especificados por el usuario, en períodos de tiempo especificados por el sistema, en respuesta a una solicitud del equipo del usuario, etc.). El agregador de contenido 430 puede proporcionar a los dispositivos del equipo del usuario 402, 404, y 406 la aplicación de guía multimedia misma o la actualización del software para la aplicación de guía multimedia.
En algunas realizaciones, los datos de la guía multimedia pueden incluir datos del espectador. Por ejemplo, los datos del espectador pueden incluir información actual o histórica de actividad del usuario (p. ej., qué contenido suele ver, a qué horas del día lo ve, si el usuario interactúa con una red social, a qué horas interactúa con una red social para publicar información, qué tipos de contenido suele ver el usuario (p. ej., televisión de pago o televisión gratuita), su estado de ánimo, información sobre su actividad cerebral, etc.). Los datos de la guía multimedia también pueden incluir datos de suscripción. Por ejemplo, los datos de suscripción pueden identificar a qué fuentes o servicios se suscribe un determinado usuario y/o a qué fuentes o servicios ha estado suscrito y luego ha cancelado el acceso (p. ej., si el usuario se suscribe a canales prémium, si ha añadido un nivel prémium de servicios, si el usuario ha aumentado la velocidad de Internet). En algunas realizaciones, los datos del espectador y/o los datos de suscripción pueden identificar patrones de un usuario determinado durante un período de más de un año. Los datos de la guía multimedia pueden incluir un modelo (p. ej., un modelo de sobreviviente) utilizado para generar una puntuación que indica la probabilidad de que un usuario cancele el acceso a un servicio o fuente. Por ejemplo, la aplicación de guía multimedia puede procesar los datos del espectador con los datos de la suscripción utilizando el modelo para generar un valor o una puntuación que indique la probabilidad de un usuario de cancelar el acceso a un servicio o fuente en particular. En particular, una puntuación más alta puede indicar un mayor nivel de seguridad de que el usuario cancelará el acceso a un servicio o fuente en particular. En función de la puntuación, la aplicación de guía multimedia puede generar promociones y anuncios que inciten al usuario a mantener el servicio o la fuente en particular indicados por la puntuación como uno para el cual el usuario probablemente cancelará el acceso.
Las aplicaciones de la guía multimedia pueden ser, por ejemplo, aplicaciones autónomas implementadas en los dispositivos del equipo del usuario. Por ejemplo, la aplicación de guía multimedia puede implementarse como software o como un conjunto de instrucciones ejecutables que pueden ser almacenadas en el medio de almacenamiento 308, y ejecutadas por el circuito de control 304 de un dispositivo del equipo del usuario 300. En algunas realizaciones, las aplicaciones de guía multimedia pueden ser aplicaciones cliente-servidor donde solo una aplicación cliente reside en el dispositivo del equipo del usuario, y la aplicación servidor reside en un servidor remoto. Por ejemplo, las aplicaciones guía multimedia pueden implementarse parcialmente como aplicación cliente en el circuito de control 304 del dispositivo del equipo 300 y parcialmente, en un servidor remoto como una aplicación de servidor (p. ej., agregador de contenido 430) ejecutándose en el circuito de control del servidor remoto. Cuando es ejecutada por el circuito de control del servidor remoto (como el agregador de contenido 430), la aplicación de guía multimedia puede ordenar al circuito de control que genere las pantallas de la aplicación de guía y que transmitan las pantallas generadas a los dispositivos del equipo del usuario. La aplicación del servidor puede ordenar al circuito de control del agregador de contenido 430 que transmita datos para su almacenamiento en el equipo del usuario. La aplicación cliente puede ordenar al circuito de control del equipo del usuario receptor que genere las pantallas de la aplicación de guía.
El contenido y/o los datos de la guía multimedia suministrados a los dispositivos del equipo del usuario 402, 404 y 406 pueden ser contenido de libre transmisión (OTT). El suministro de contenido OTT permite a los dispositivos de usuario con conexión a Internet, incluyendo cualquier dispositivo del equipo del usuario descrito anteriormente, recibir contenido transferido por Internet, incluido cualquier contenido descrito anteriormente, además de contenido recibido por cable o por conexiones por satélite. El contenido OTT se suministra a través de una conexión a Internet proporcionada por un proveedor de servicios de Internet (ISP), pero un tercero distribuye el contenido. El ISP puede no ser responsable de las capacidades de visualización, de los derechos de reproducción o de la redistribución del contenido, y solo poder transferir paquetes IP proporcionados por el proveedor de contenido OTT. Algunos ejemplos de proveedores de contenido OTT son YOUTUBE, NETFLIX, y HULu , que proporcionan audio y vídeo a través de paquetes IP. YouTube es una marca comercial propiedad de Google Inc., Netflix es una marca comercial propiedad de Netflix, Inc., y Hulu es una marca comercial propiedad de Hulu, LLC. Los proveedores de contenido OTT pueden proporcionar, además o alternativamente, los datos de orientación multimedia descritos anteriormente. Además de contenido y/o datos de la guía multimedia, los proveedores de contenido OTT pueden distribuir aplicaciones de guía multimedia (p. ej., aplicaciones basadas en la web o en la nube), o el contenido puede ser mostrado por las aplicaciones de guía multimedia almacenadas en el dispositivo del equipo del usuario
El sistema de la guía multimedia 400 pretende ilustrar una cantidad de métodos, o configuraciones de red mediante las cuales los dispositivos del equipo del usuario, y fuentes de contenido y datos de la guía pueden comunicarse entre sí, con la finalidad de acceder a contenido y proporcionar la guía multimedia. Las realizaciones incluidas en el presente documento pueden aplicarse en cualquiera de uno o un subgrupo de estos métodos, o en un sistema que utiliza otros métodos para distribuir contenido y proporcionar la guía multimedia. Los siguientes cuatro métodos proporcionan ilustraciones específicas del ejemplo generalizado de la figura 4.
En un enfoque, los dispositivos del equipo del usuario pueden comunicarse entre sí dentro de una red doméstica. Los dispositivos del equipo del usuario pueden comunicarse entre sí directamente mediante esquemas de comunicación punto a punto de rango corto como se ha descrito anteriormente, mediante vías indirectas a través de un concentrador u otro dispositivo similar proporcionado en una red doméstica o mediante una red de comunicaciones 414. Cada persona de un único hogar puede operar distintos dispositivos del equipo del usuario en la red doméstica. Como resultado, estar en comunicación entre diferentes dispositivos del equipo del usuario, puede ser conveniente para diversas informaciones o configuraciones de la guía multimedia. Por ejemplo, puede ser conveniente para los usuarios mantener las mismas configuraciones de la aplicación de guía multimedia en diferentes dispositivos del equipo del usuario dentro de una red doméstica, como se describe en más detalle en Ellis et al., Publicación de patente de Estados Unidos n.° 2005/0251827, presentada el 11 de julio de 2005. También se pueden comunicar entre sí diferentes tipos de dispositivo del equipo del usuario en una red doméstica para transmitir contenido. Por ejemplo, un usuario puede transmitir contenido desde un equipo informático de usuario hasta un reproductor de vídeo portátil o reproductor de música portátil.
En un segundo enfoque, los usuarios pueden tener múltiples tipos de equipos del usuario con los que acceder al contenido y obtener la guía multimedia. Por ejemplo, algunos usuarios tienen redes a las que se accede mediante dispositivos instalados en la casa y dispositivos móviles. Los usuarios pueden controlar los dispositivos en casa mediante una aplicación de guía multimedia implementada en un dispositivo remoto. Por ejemplo, los usuarios pueden acceder a una aplicación de guía multimedia en línea en un sitio Web mediante un ordenador personal en la oficina o un dispositivo móvil tal como una PDA o teléfono móvil con acceso a Internet. El usuario puede determinar varias configuraciones (p. ej., grabaciones, recordatorios u otras configuraciones) en la aplicación guía en línea para controlar el equipo del usuario instalado en la casa. La guía en línea puede controlar el equipo del usuario directamente o comunicándose con una aplicación de guía multimedia en el equipo del usuario en casa. Se describen diversos sistemas y métodos para la comunicación de los dispositivos del equipo del usuario, donde dichos dispositivos están en ubicaciones remotas entre sí, por ejemplo, en Ellis et al, Patente de Estados Unidos n.° 8.046.801, expedida el 25 de octubre de 2011.
En un tercer enfoque, los usuarios de los dispositivos del equipo del usuario dentro y fuera del hogar pueden utilizar su aplicación guía para, para comunicarse directamente con el proveedor de contenido 416 y acceder al contenido. Específicamente, dentro del hogar, los usuarios del equipo de televisión del usuario 402 y del equipo informático del usuario 404, pueden acceder a la aplicación de guía multimedia para navegar por y localizar el contenido deseado. Los usuarios también pueden acceder a la aplicación de guía multimedia fuera del hogar usando dispositivo de comunicaciones inalámbricas del usuario 406 para navegar por y localizar el contenido deseado.
En un cuarto enfoque, los dispositivos del equipo del usuario pueden operar en un entorno de computación en la nube para acceder a servicios en la nube. En un entorno de computación en la nube, un conjunto de recursos de computación y almacenamiento accesibles a través de la red, denominados «la nube», proporcionan distintos tipos de servicios de computación para compartir, almacenar o distribuir contenidos (p. ej., sitios para compartir vídeos o sitios de redes sociales). Por ejemplo, la nube puede incluir una colección de dispositivos informáticos de servidores, que pueden estar centralizados o en ubicaciones distribuidas, que ofrecen servicios basados en la nube a diversos tipos de usuarios y de dispositivos conectados a través de una red como Internet a través de la red de comunicaciones 414. Estos recursos en la nube pueden incluir uno o más proveedores de contenido 416 y uno o más agregadores de contenido 430. Además de ello, o de manera alternativa, los sitios de computación remota pueden incluir otros dispositivos del equipo del usuario, como el equipo de televisión del usuario (402), el equipo informático del usuario 404 o el dispositivo de comunicaciones inalámbricas del usuario 406. Por ejemplo, los otros dispositivos del equipo del usuario pueden proporcionar acceso a una copia almacenada de un vídeo o a un vídeo transmitido en tiempo real. En estas realizaciones, los dispositivos del equipo del usuario pueden operar de punto a punto sin comunicarse con un servidor central.
La nube proporciona acceso a servicios como el almacenamiento y el uso compartido de contenido, servicios de redes sociales, entre otros ejemplos, así como acceso a cualquier contenido descrito anteriormente, para los dispositivos del equipo del usuario. Los servicios pueden proporcionarse en la nube a través de proveedores de servicios de computación en la nube, o bien a través de otros proveedores de servicios en línea. Por ejemplo, los servicios basados en la nube pueden incluir un servicio de almacenamiento de contenido, un sitio para compartir contenido, un sitio de redes sociales u otros servicios por medio de los cuales se distribuye contenido originado por el usuario para ser visualizado por otros en los dispositivos conectados. Estos servicios basados en la nube pueden permitir que un dispositivo del equipo del usuario almacene contenido en la nube y lo recupere de ella, en lugar de almacenarlo localmente y acceder a contenido almacenado localmente.
Un usuario puede usar diversos dispositivos de captura de contenido, tales como videograbadoras, cámaras digitales con modo de vídeo, grabadoras de audio, teléfonos móviles y dispositivos informáticos de mano para grabar contenido. El usuario puede subir el contenido a un servicio de almacenamiento de contenido en la nube ya sea directamente, por ejemplo, desde el equipo informático del usuario 404 o desde un dispositivo de comunicaciones inalámbricas del usuario 406 con funcionalidad de captura de contenido. Opcionalmente, el usuario puede transferir en primer lugar el contenido a un dispositivo del equipo del usuario, como por ejemplo el equipo informático del usuario 404. El dispositivo del equipo del usuario que almacena el contenido sube este a la nube usando un servicio de transmisión de datos en la red de comunicaciones 414. En algunas realizaciones, el propio dispositivo del equipo del usuario es un recurso en la nube, y el resto de los dispositivos del equipo del usuario pueden acceder al contenido directamente desde el dispositivo en el que el usuario almacenó el contenido.
Es posible acceder a los recursos en la nube mediante un dispositivo del equipo del usuario usando, por ejemplo, un navegador para Web, una aplicación de guía multimedia, una aplicación de escritorio, una aplicación móvil, y/o cualquier combinación de aplicaciones de acceso del mismo. El dispositivo del equipo del usuario puede ser un cliente en la nube que dependa de la computación en la nube para la entrega de aplicaciones, o bien el dispositivo del equipo del usuario puede tener alguna funcionalidad sin acceso a recursos en la nube. Por ejemplo, algunas aplicaciones que se ejecutan en el dispositivo del equipo del usuario pueden ser aplicaciones en la nube, es decir, aplicaciones entregadas como un servicio a través de Internet, mientras que otras aplicaciones pueden almacenarse y ejecutarse en el dispositivo del equipo del usuario. En algunas realizaciones, un dispositivo del usuario puede recibir contenido procedente de múltiples recursos en la nube simultáneamente. Por ejemplo, un dispositivo del usuario puede transmitir en tiempo real audio procedente de un recurso en la nube mientras descarga contenido procedente de un segundo recurso en la nube. O un dispositivo del usuario puede descargar contenido procedente de múltiples recursos en la nube para lograr una descarga más eficiente. En algunas realizaciones, los dispositivos del equipo del usuario pueden usar recursos en la nube para operaciones de procesamiento tales como las operaciones de procesamiento realizadas por circuitos de procesamiento descritos en relación con la figura 3.
Con frecuencia, los servicios que proporcionan suscripciones de contenido asignan un número finito de transmisiones a cada suscripción para permitir a los usuarios transmitir en tiempo real el contenido multimedia. Sin embargo, el número de transmisiones asignadas a cada suscripción está limitado según el tipo de suscripción. En efecto, cuando se están utilizando todas las transmisiones disponibles de una suscripción, un usuario de la suscripción de contenido que desee transmitir contenido multimedia podría verse obligado a esperar hasta que esté disponible una transmisión, o bien decidir tomar el control de una transmitir en tiempo real utilizada por otro usuario. Para los usuarios puede ser frustrante cuando, por ejemplo, todos los usuarios de una suscripción de contenido quieren ver un nuevo episodio de una serie de televisión en cuanto está disponible, y el número de usuarios excede el número de transmisiones disponibles. Además, los usuarios pueden no estar al tanto de las opciones para comprar transmisiones adicionales ni conocer con qué frecuencia otros usuarios de la suscripción de contenido no pueden ver el contenido debido a que las transmisiones no están disponibles.
En consecuencia, los métodos y sistemas se describen en este documento de una aplicación de guía multimedia que exime al usuario de tener que administrar múltiples cuentas para distintos servicios de suscripción. Por ejemplo, al supervisar la actividad de un usuario y administrar sus cuentas en su nombre, el circuito de control 304 puede recomendar los servicios de suscripción y los términos de un servicio de suscripción adaptados a las necesidades individuales del usuario.
Además el circuito de control 304 puede actuar en nombre del usuario para recuperar y procesar grandes cantidades de datos de numerosos proveedores de contenido con el fin de determinar los servicios de suscripción y un plan específico de un servicio de suscripción en particular que mejor satisfaga las necesidades del usuario. Como se analiza en profundidad a continuación, la aplicación de guía multimedia puede procesar una gran cantidad de datos (a menudo accesibles solo en un código legible por ordenador) comparando conjuntos de datos independientes y dispares para identificar tendencias y optimizaciones estadísticas para el beneficio del usuario.
En algunas realizaciones, el circuito de control 304 puede configurarse para que asocie una serie de transmisiones en continuo disponibles para el usuario desde el servicio de suscripción con una suscripción asociada con un usuario. El circuito de control 304 puede implementarse en un servidor, como por ejemplo dentro del proveedor de contenido multimedia 416 o del agregador de contenido 430. El circuito de control 304 implementado en el agregador de contenido 430 puede comunicarse mediante la red de comunicaciones 414, con varios dispositivos utilizados por los usuarios que acceden a la suscripción. Estos dispositivos pueden incluir un equipo de televisión del usuario 402, un equipo informático del usuario 404 y un dispositivo de comunicaciones inalámbricas del usuario 406. Por ejemplo, el circuito de control 304 recibe una solicitud para transmitir contenido multimedia (p. ej., un episodio de la serie de televisión «Los Simpson») del proveedor de contenido multimedia 416 al equipo informático 404. A continuación, el circuito de control 304 implementado en el agregador de contenido 430 transmite el contenido multimedia, a través de la red de comunicaciones 414, al equipo informático del usuario 404, si el circuito de control 304 implementado en el agregador de contenido 430 determina que el número de solicitudes no excede el número de transmisiones disponibles.
En algunas realizaciones, el circuito de control 304 puede registrar datos asociados con cada solicitud en un registro almacenado en el medio de almacenamiento 308. Por ejemplo, en respuesta a una solicitud para transmitir contenido multimedia, el circuito de control 304 registra una marca de tiempo asociada con la solicitud, una referencia al contenido multimedia solicitado (p. ej., una referencia a un episodio de la serie de televisión «Los Simpson»), un identificador del usuario que solicita el contenido, un identificador del dispositivo que está utilizando para solicitar el contenido y la cantidad de transmisiones disponibles en el momento de la solicitud. Además, el circuito de control 304 puede almacenar una indicación de si la solicitud se cumplió. Para proporcionar esta indicación, el circuito de control 304 pueden comparar el número de transmisiones disponibles con el número total de solicitudes para transmitir contenido multimedia en el momento de la solicitud. A continuación, el circuito de control 304 puede almacenar una indicación de si la solicitud se cumplió.
En algunas realizaciones, el circuito de control 304 puede registrar, en un registro almacenado en el medio de almacenamiento 308, marcas de tiempo de inicio y marcas de tiempo de finalización asociadas con cada solicitud para transmitir datos de medios. El circuito de control 304 puede utilizar marcas de tiempo para realizar un seguimiento efectivo de aquellas instancias en las que los usuarios no pudieron transmitir contenido debido a un número insuficiente de transmisiones disponibles, al relacionar una marca de tiempo con cada instancia. Por ejemplo, una marca de tiempo de inicio corresponde a la hora exacta o cercana a aquella en que el circuito de control 304 recibió la solicitud para transmitir medios a un dispositivo del usuario. Una marca de tiempo de finalización puede indicar la hora exacta o una hora cercana a aquella en que el circuito de control 304 dejó de enviar la transmisión al dispositivo del usuario (p. ej., cuando finalizó la reproducción del contenido multimedia, o cuando el usuario solicitó finalizarla). Cuando el circuito de control 304 recibe una solicitud para transmitir medios a un dispositivo y el número de solicitudes totales en el momento en que se recibe la solicitud supera el número de transmisiones disponibles para el usuario, el circuito de control 304 solo puede registrar una marca de tiempo de inicio, sin registrar una de finalización, para indicar que la solicitud para transmitir medios no se cumplió.
En algunas realizaciones, el circuito de control 304 pueden asociar un número finito de transmisiones con una suscripción. Por ejemplo, el circuito de control 304 asocia nueve transmisiones con la suscripción de un usuario, Robert. En otras palabras, Robert tiene disponibles nueve transmisiones están disponibles transmitir contenido. En consecuencia, si cualquier otro usuario solicita transmitir medios utilizando la suscripción de Robert, su solicitud se cumplirá, siempre y cuando en el momento en que se realice la solicitud, el número de solicitudes no exceda el número de transmisiones disponibles.
En algunas realizaciones, el circuito de control 304 puede detectar las instancias en las que el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción a diferentes dispositivos, supera un número de transmisiones disponibles para el usuario desde el servicio de suscripción. Por ejemplo, el circuito de control 304 recupera registros almacenados en el medio de almacenamiento 308 para identificar aquellos que incluyen un identificador que indica que no se cumplió una determinada solicitud asociada con el registro. En otro ejemplo, el circuito de control 304 recupera las marcas de tiempo de inicio asociadas con las solicitudes de un registro almacenado en el medio de almacenamiento 308. Para cada marca de tiempo de inicio recuperada, el circuito de control 304 puede determinar el número de solapamientos con los rangos de la marca de tiempo definidos por marcas de tiempo de inicio y de finalización emparejadas. Por ejemplo, un rango de marca de tiempo corresponde a la duración del tiempo transcurrido entre una marca de tiempo de inicio (es decir, correspondiente a la hora exacta o cercana en que el circuito de control 304 recibió la solicitud para transmitir medios a un dispositivo de usuario) y una marca de tiempo de finalización (es decir, correspondiente a la hora exacta o cercana que el circuito de control 304 dejó de enviar la transmisión al dispositivo del usuario). Entonces, el circuito de control 304 puede determinar si el número de superposiciones es mayor que el número de transmisiones disponibles para el usuario desde el servicio de suscripción. En el caso de que el número de solapamientos sea mayor que el número de transmisiones disponibles, el circuito de control 304 puede asociar el solapamiento con una instancia. El circuito de control 304 puede analizar aún más todas las marcas de tiempo, o un subconjunto de marcas de tiempo, que estén almacenadas en el registro para determinar el número de instancias en las que el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción a diferentes dispositivos excede el número de transmisiones disponibles para el usuario del servicio de suscripción. Por ejemplo, el circuito de control 304 detecta doce instancias en las que el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción a diferentes dispositivos, supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción. En otras palabras, en doce ocasiones, al menos un usuario no pudo acceder a una transmisión desde el servicio de suscripción.
En algunas realizaciones, el circuito de control 304 puede generar varias marcas de tiempo, en el que cada una ellas corresponden a una instancia. Por ejemplo, en base a la detección de un número de instancias en las cuales el número de solicitudes para transmitir medios simultáneamente desde el servicio de suscripción a diferentes dispositivos, supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción, el circuito de control 304 almacena una marca de tiempo asociada con cada instancia en una lista en el medio de almacenamiento 308. Continuando con el ejemplo anterior de análisis de marcas de tiempo de inicio y de finalización, después de detectar varias instancias en las que el número de solicitudes para transmitir medios simultáneamente desde el servicio de suscripción a diferentes dispositivos supera el número de transmisiones disponibles para el usuario servicio de suscripción, el circuito de control 304 asocia cada instancia con la marca de tiempo de inicio correspondiente. Por ejemplo, si el circuito de control 304 detecta doce instancias en las que el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción a diferentes dispositivos supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción, el circuito de control 304 genera y almacena en el medio de almacenamiento 308 una lista de marcas de tiempo, donde cada marca de tiempo corresponde a una de las doce instancias.
En algunas realizaciones, el circuito de control 304 puede comparar cada marca de tiempo con un rango de marcas de tiempo que corresponde a un período de suscripción para que el servicio de suscripción determine un número de instancias que ocurrieron durante el período de suscripción. Por ejemplo, si el circuito de control 304 genera doce marcas de tiempo, luego el circuito de control 304 compara cada una de ellas con el período de suscripción para que el servicio de suscripción determine el número de instancias producidas dentro del período de suscripción (en función de sus marcas de tiempo correspondientes). Como se comentó anteriormente, el período de suscripción puede definirse mediante una marca de tiempo de inicio y una marca de tiempo de finalización. A continuación, el circuito de control 304 compara cada una de las doce marcas de tiempo para determinar si alguna se encuentra dentro del rango de tiempo definido por las marcas de tiempo de inicio y finalización del período de suscripción. Según el número de marcas de tiempo que se encuentren dentro del rango, el circuito de control 304 puede determinar el número de instancias que ocurrieron durante el período de suscripción. Por ejemplo, el circuito de control 304 determina que de las doce marcas de tiempo generadas, nueve están dentro del rango de tiempo definido por las marcas de tiempo de inicio y finalización del período de suscripción.
En algunas realizaciones, el circuito de control 304 puede comparar, en el servidor, el número de instancias que tuvieron lugar durante el período de suscripción con un número umbral para el período de suscripción. Por ejemplo, el número umbral puede indicar un número de instancias tras las cuales un usuario se podría sentir frustrado por la falta de transmisiones disponibles. Al determinar si se supera o no el número umbral, el circuito de control puede determinar si es probable que el usuario desee obtener transmisiones adicionales. Como se hará más evidente a continuación, el circuito de control 304 puede utilizar diferentes enfoques para determinar un número umbral para el período de suscripción. Por lo tanto, en lugar de depender de un único umbral estático, el circuito de control puede aplicar un umbral derivado de los hábitos de visualización del usuario, ya que cada usuario tiene distintas capacidades para tolerar las transmisiones no disponibles. Por ejemplo, el circuito de control 304 basa el número umbral en el número de transmisiones disponibles para el usuario desde el servicio de suscripción. Por ejemplo, el circuito de control 304 se dirige a usuarios que se encuentran constantemente ante transmisiones no disponibles. Para ese fin, el circuito de control 304 establece el número umbral en un número menor (p. ej., cuatro), si el circuito de control 304 determina que el número de transmisiones disponibles para el usuario desde el servicio de suscripción (p. ej., nueve) es mayor que el promedio de transmisiones disponibles para un usuario medio del servicio de suscripción (p. ej., un usuario medio puede estar asociado con solo dos transmisiones). Dado que los usuarios de una suscripción asociada con múltiples transmisiones pueden haber agregado previamente transmisiones adicionales para minimizar los conflictos de transmisión, dichos usuarios pueden ser susceptibles de experimentar más conflictos de transmisión. Por lo tanto, el circuito de control 304 puede centrarse en los usuarios de dichos sistemas cuando el número de conflictos de transmisión supera un umbral inferior.
En algunas realizaciones, el circuito de control 304 puede transmitir un mensaje desde el servidor a uno de los distintos dispositivos a través de la red de comunicaciones 414, una vez se haya determinado que el número de instancias producidas durante el período de suscripción excede el número umbral para el período de suscripción. Al transmitir un mensaje, el circuito de control 304 puede responder a la frustración del usuario al no poder transmitir contenido, y podría ser una oportunidad para que el usuario aborde el problema de la insuficiencia de las transmisiones disponibles. El circuito de control 304 puede determinar si un plan/servicio de suscripción alternativo podría mejorar el número de transmisiones disponibles para el usuario, en comparación con las métricas de entrada y salida de la transmisión, mientras controla otras variables (p. ej., el precio). De ser así, el circuito de control puede transmitir un mensaje recomendando un plan/servicio de suscripción alternativo (p. ej., que indique que hay una transmisión adicional disponible a la venta). Por ejemplo, en respuesta a la determinación de que el número de instancias registradas durante el período de suscripción (p.ej., doce) supera el número umbral (p. ej., ocho), el circuito de control 304 transmite un mensaje del servidor a un dispositivo que indica que un usuario asociado con el dispositivo puede comprar transmisiones adicionales. El circuito de control 304 puede generar el mensaje para indicar que el usuario puede comprar transmisiones adicionales por los frecuentes conflictos de transmisión. El circuito de control 304 puede transmitir el mensaje para su visualización en la pantalla 312 del equipo de televisión del usuario 402, el equipo informático del usuario 404 o el dispositivo de comunicaciones inalámbricas 406. Por ejemplo, el circuito de control 304 genera el mensaje para visualizarlo en una pantalla de listados de programación 100 que se muestra en la pantalla 312 del equipo de televisión del usuario 402.
En algunas realizaciones, el circuito de control 304 puede seleccionar el número umbral para el período de suscripción de entre umbrales potenciales en base a un intervalo de tiempo del período de suscripción. El circuito de control 304 puede determinar un intervalo de tiempo asociado con el período de suscripción accediendo a los datos asociados con la suscripción almacenados en el medio de almacenamiento 308. Por ejemplo, el circuito de control 304 determina la duración del período de suscripción en base a la marca de tiempo de inicio y de finalización de un período de suscripción. Por ejemplo, el circuito de control 304 determina un período de suscripción de un mes. En este ejemplo, quizá no sea lo más adecuado establecer un umbral bajo, ya que los usuarios podrían no estar interesados en hacerle caso al mensaje si no perciben la necesidad de aumentar el número de transmisiones o de alterar sus hábitos de visualización, debido al número de instancias en las que es poco probable que el número de solicitudes de transmisión simultánea de medios desde el servicio de suscripción exceda el número de transmisiones disponibles para el usuario desde el servicio de suscripción). Para ese fin, el circuito de control 304 selecciona un número umbral bajo (p. ej., diez) para tener en cuenta el hecho de que puede haber de media un número menor de instancias en las que el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción excede el número de transmisiones disponibles para el usuario desde el servicio de suscripción durante un período de un mes, en comparación con, por ejemplo, un período de seis meses. En consecuencia, el circuito de control 304 establece un umbral mayor si se determina que el período de tiempo es más largo (p. ej., un año).
En algunas realizaciones, el circuito de control 304 puede almacenar varios umbrales asociados con períodos de suscripción en el medio de almacenamiento 308. Por ejemplo, el circuito de control 304 analiza con qué frecuencia se producen los conflictos de transmisión (p. ej., el número de instancias en las que el número de solicitudes para transmitir medios simultáneamente desde el servicio de suscripción excede el número de transmisiones disponibles para el usuario desde el servicio de suscripción) durante un período de suscripción de una duración determinada. El circuito de control 304 relaciona además las instancias en las que se produjo un conflicto durante un período de suscripción con otras en las que un usuario realizó una acción relacionada con su suscripción. Por ejemplo, el circuito de control 304 determina que un usuario ha agregado nuevas transmisiones a su suscripción en un momento en el que se produjeron varios conflictos (p. ej., situaciones en las que los usuarios se frustraron con los conflictos de transmisión y actuaron para evitar futuros conflictos de transmisión aumentando el número de transmisiones disponibles). En otro ejemplo, el circuito de control 304 determina que el usuario canceló su suscripción en un momento en el que se produjeron un determinado número de conflictos (p. ej., situaciones en las que un usuario estaba frustrado con conflictos de transmisión y, en consecuencia, canceló su suscripción). El circuito de control 304 puede realizar un análisis estadístico en las instancias en las que una acción realizada en una suscripción se relaciona con un cierto número de conflictos de transmisión, con el fin de determinar un número umbral efectivo para asociar con una duración del período de suscripción. De esta manera, el circuito de control 304 determina los números umbral que le permitirían dirigirse de manera eficiente a los usuarios frustrados por los conflictos de transmisión al transmitir mensajes útiles, al mismo tiempo que evitan molestar a otros usuarios que probablemente no estén experimentando frustración con los conflictos de transmisión. El circuito de control 304 guarda el número umbral en un registro asociado con un período de suscripción dado en el medio de almacenamiento 308.
En algunas realizaciones, el circuito de control 304 pueden seleccionar el número umbral para el período de suscripción de varios números umbral potenciales en función del número de transmisiones disponibles para el usuario desde el servicio de suscripción. Por ejemplo, es más probable que el usuario de una suscripción caracterizada por menos transmisiones disponibles desde el servicio de suscripción trate de entender con qué frecuencia el número de solicitudes para transmitir simultáneamente medios excede las transmisiones disponibles para el usuario desde el servicio de suscripción, porque es más probable que ocurran conflictos de transmisión cuando solo hay una o dos transmisiones disponibles. Sin embargo, es menos probable que al usuario de una suscripción caracterizada por más transmisiones disponibles desde el servicio de suscripción esté interesado entender con qué frecuencia el número de solicitudes para transmitir simultáneamente medios excede las transmisiones disponibles para el usuario desde el servicio de suscripción, porque es más probable que haya transmisiones suficientes en la suscripción del usuario para evitar la mayoría de los conflictos de transmisión.
En algunas realizaciones, el circuito de control 304 puede almacenar varios umbrales asociados con el número de flujos disponibles para el usuario desde el servicio de suscripción en el medio de almacenamiento 308. Por ejemplo, el circuito de control 304 analiza con qué frecuencia se producen los conflictos (p. ej., el número de instancias en las que el número de solicitudes para transmitir medios simultáneamente desde el servicio de suscripción excede el número de transmisiones disponibles para el usuario desde el servicio de suscripción) para cada número de transmisiones que se pueden realizar potencialmente al usuario. Por ejemplo, el circuito de control 304 determina el promedio de conflictos que se producen cuando solo hay una transmisión disponible para el usuario, cuando hay dos, etc. El circuito de control 304 también puede relacionar el promedio de conflictos producidos para cada número de transmisiones disponibles con las instancias en las que los usuarios realizaron una acción relacionada con su suscripción. Por ejemplo, el circuito de control 304 determina que los usuarios a menudo agregan nuevas transmisiones a sus suscripciones cuando solo hay una secuencia disponible (p.ej., situaciones en las que los usuarios pueden transmitir medios a un solo dispositivo, por lo que los usuarios actuaron para evitar futuros conflictos de transmisión al aumentar el número de transmisiones disponibles). En otro ejemplo, el circuito de control 304 determina que el usuario canceló su suscripción en un momento en el que se produjeron un determinado número de conflictos (p. ej., situaciones en las que los usuarios se sintieron frustrados con los conflictos de transmisión y, en consecuencia, cancelaron sus suscripciones). El circuito de control 304 puede realizar un análisis estadístico en aquellas instancias en las que una acción realizada en una suscripción se relaciona con una serie de transmisiones disponibles, a fin de determinar los números umbral para asociarlos con una duración del período de suscripción. A continuación, el circuito de control 304 guarda el número umbral en un registro asociado con la suscripción en el medio de almacenamiento 308.
En algunas realizaciones, el circuito de control 304 puede comparar cada marca de tiempo con un rango de marcas de tiempo que corresponde a una porción del período de suscripción para que el servicio de suscripción determine un número de instancias que ocurrieron durante la porción del período de suscripción. Por ejemplo, el circuito de control 304 compara cada marca de tiempo con un intervalo de marcas de tiempo que corresponde a una porción del período de suscripción en el que se emiten los programas populares (p. ej., todas las porciones del período de suscripción que corresponden a los intervalos de 7:00 p. m. a 9:00 p. m. los miércoles, que pueden corresponder a la emisión de nuevos episodios de «Los Simpson») y determinan la existencia de diez marcas de tiempo dentro del rango de marcas de tiempo correspondientes a la porción del período de suscripción.
En algunas realizaciones, el circuito de control 304 puede determinar una porción del período de suscripción identificando momentos de un día, semana o mes durante los cuales los usuarios transmiten medios con frecuencia. Por ejemplo, el circuito de control 304 identifica porciones del período de suscripción en base a la identificación de los momentos de la semana que corresponden a un determinado porcentaje del consumo total de transmisiones (p.ej., 75%) analizando los datos almacenados en un registro en el medio de almacenamiento 308. Por ejemplo, el circuito de control 304 determina que el 75% de toda la transmisión de medios durante el período de suscripción se produjo entre las 6:00 p. m. y las 12:00 p. m. (p.ej., después de que los usuarios regresaran del trabajo o de la escuela). A continuación, el circuito de control 304 define la porción del período de suscripción para incluir solo los intervalos de tiempo definidos por 6:00 p. m. y 12:00 p. m. cada día
Además, el circuito de control 304 puede comparar, en el servidor, el número de instancias que ocurrieron durante la porción del período de suscripción con un número umbral para la porción del período de suscripción. Por ejemplo, el circuito de control 304 compara el número de instancias producidas durante la porción del período de suscripción (p. ej., ocho) con un número umbral (p. ej., seis).
En algunas realizaciones, el circuito de control 304 puede modificar el mensaje transmitido desde el servidor a uno de los distintos dispositivos, una vez se haya determinado que el número de instancias producidas durante la porción del período de suscripción excede el número umbral para la porción del período de suscripción. Por ejemplo, el circuito de control 304 determina que el número de instancias producidas durante la porción del período de suscripción (p. ej., ocho) supera el número umbral (p. ej., seis). En respuesta, el circuito de control 304 modifica el mensaje transmitido desde el servidor a uno de los dispositivos, indicando, por ejemplo, que el número de solicitudes de transmisión simultánea de medios a menudo supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción durante la porción correspondiente del período de suscripción (p. ej., durante los miércoles entre las 7:00 p. m. y las 9:00 p. m., lo que puede corresponder a la emisión de nuevos episodios de «Los Simpson»). Por ejemplo, el circuito de control 304 genera un mensaje tipo «Hoy piense en ver un programa antes de las 7 p. m., porque otros usuarios asociados con su suscripción probablemente verán el nuevo episodio de Los Simpson». Opcionalmente, el circuito de control 304 puede generar un mensaje que indique que se puede comprar una transmisión adicional en respuesta a la determinación de que el número de instancias producidas durante la porción del período de suscripción (p. ej., ocho) supera el número umbral (p. ej., seis). Por ejemplo, el circuito de control 304 genera un mensaje tipo «Parece que su suscripción no se corresponde con sus hábitos televisivos. ¿Quiere saber cómo aumentar el número de transmisiones en su suscripción?»
En algunas realizaciones, el circuito de control 304 puede seleccionar el número umbral para la porción del período de suscripción de entre varios umbrales potenciales en base a un intervalo de tiempo del período de suscripción. Por ejemplo, como se describió anteriormente en relación con la selección del número umbral para el período de suscripción de varios máximos potenciales en base a un intervalo de tiempo del período de suscripción, el circuito de control 304 puede aplicar principios análogos para seleccionar el número umbral para la porción del período de suscripción.
En algunas realizaciones, el circuito de control 304 puede seleccionar el número umbral para la porción del período de suscripción de entre varios umbrales potenciales en base a la fecha correspondiente a la porción del período de suscripción. Por ejemplo, el circuito de control 304 determina, enviando una consulta a través de la red de comunicación 414 al agregador de contenido 430, que el estreno de la temporada de una serie muy popular (p. ej., «Los Simpson») coincide con la porción del período de suscripción. En respuesta a ello, el circuito de control 304 puede seleccionar un número umbral bajo para la porción del período de suscripción, a fin de tener en cuenta el hecho de que la mayoría de los usuarios de la suscripción podrían estar interesados en ver los episodios de la temporada de la serie (p. ej., «Los Simpson»). De este modo, es más probable que los usuarios estén informados de los conflictos de transmisión, en el momento en que sean más propensos a preocuparse por dichos conflictos. En otro ejemplo, el circuito de control 304 determina que las fechas correspondientes a los meses de verano (p. ej., junio, julio y agosto) coinciden dentro de la porción del período de suscripción. Los meses de verano se suelen asociar con una menor emisión de series y programas de televisión nuevos. Además, es más probable que los usuarios con niños pasen menos tiempo transmitiendo medios, ya que es probable que pasen más tiempo de vacaciones y estén en la calle en comparación con los meses de otras estaciones. Por lo tanto, durante los meses de verano, los usuarios pueden estar menos frustrados por los conflictos de transmisión, y los conflictos de transmisión también pueden ser menos probables. En consecuencia, el circuito de control 304 puede establecer un umbral alto para la porción del período de suscripción a partir varios umbrales en base a una fecha que se corresponda a la porción del período de suscripción que coincida con los meses de junio, julio o agosto. De este modo, los usuarios pueden recibir menos o ningún mensaje durante los meses en que podrían transmitir medios con menos frecuencia.
En algunas realizaciones, el circuito de control 304 puede seleccionar el número umbral para la porción del período de suscripción de entre varios máximos potenciales en base al momento del día correspondiente a la porción del período de suscripción. Por ejemplo, el circuito de control 304 supervisa el historial de visualización de los usuarios accediendo a un perfil asociado con la suscripción. En un ejemplo, el circuito de control 304 consulta el historial del usuario almacenado en los datos de suscripción del equipo de televisión del usuario 402, el equipo informático del usuario 404 o el dispositivo de comunicaciones inalámbricas del usuario 406. En un ejemplo diferente, el circuito de control 304 consulta el historial del usuario en el medio de almacenamiento 308 de la fuente de datos de la guía multimedia. Analizando el historial del usuario, el circuito de control 304 determina un tiempo durante el cual los usuarios tienen más probabilidades de transmitir medios En un ejemplo, el circuito de control 304 determina que la mayoría de los usuarios transmiten medios durante la noche (p. ej., tras regresar del trabajo o de la escuela). El circuito de control 304 puede seleccionar un número umbral bajo para los momentos en que es más probable que los usuarios transmitan medios, para ayudar a los usuarios a comprender sus hábitos de visualización y sus necesidades de transmisión. Por ejemplo, en respuesta a la determinación de que la porción del período de suscripción (p. ej., los intervalos entre las 8:00 p. m. y las 10:00 p. m. durante un día concreto) corresponden a un momento en es más probable que los usuarios de la suscripción transmitan medios), el circuito de control 304 selecciona un número umbral bajo (p. ej., para tener en cuenta el hecho de que es más probable que se produzcan conflictos de transmisión después de que los usuarios regresen del trabajo y de la escuela).
En algunas realizaciones, el circuito de control 304 puede seleccionar el número umbral para la porción del período de suscripción de varios máximos potenciales basados en una cantidad de recursos multimedia que estuvieron disponibles en el servicio de suscripción durante la porción del período de suscripción. Por ejemplo, algunos servicios de suscripción mejoran sus ofertas de contenido al agregar regularmente nuevos recursos multimedia. Si esto ocurriera, a los usuarios podría interesarles transmitir más medios de los que transmitían antes de que estuviesen disponibles los nuevos recursos multimedia. Por lo tanto, es probable que se produzcan más conflictos de transmisión. El circuito de control 304 puede determinar la cantidad de recursos multimedia que estuvieron disponibles en el servicio de suscripción durante la porción del período de suscripción en función de la cantidad de recursos multimedia que se agregaron a las ofertas de medios del servicio de suscripción durante una porción del período de suscripción. El circuito de control 304 puede determinar el número de recursos multimedia que estuvieron disponibles en el servicio de suscripción durante la porción del período de suscripción enviando una consulta al agregador de contenido 430 a través de la red de comunicaciones 404. Esta consulta puede solicitar la cantidad de recursos multimedia que se agregaron a la oferta del servicio de suscripción durante el período correspondiente a la porción del período de suscripción. Por ejemplo, si el número de recursos multimedia que estuvieron disponibles en el servicio de suscripción durante la porción del período de suscripción es alto en comparación con el número de recursos multimedia que estuvieron disponibles en el servicio de suscripción durante otras porciones, el circuito de control 304 establece un número umbral bajo, para tener en cuenta el hecho de que es más probable que los usuarios de la suscripción transmitan recursos multimedia que no se han transmitido anteriormente (p. ej., porque se han agregado recientemente) y, por lo tanto, es más probable que desee comprender con qué frecuencia el número de solicitudes excede el número de transmisiones disponibles para el usuario desde el servicio de suscripción.
En algunas realizaciones, el circuito de control 304 puede transmitir un mensaje con recomendaciones para reducir una frecuencia de las instancias. Por ejemplo, tras determinar que el número de instancias producidas durante el período de suscripción excede el máximo para dicho período, el circuito de control 304 transmite un mensaje desde el servidor a uno de los distintos dispositivos. El mensaje puede incluir recomendaciones para reducir la frecuencia de las instancias. Por ejemplo, el circuito de control 304 informa al usuario de es más probable que la transmisión de medios se realice con éxito fuera de un cierto intervalo de tiempo (p. ej., fuera del intervalo de 7:00 p. m. a 9:00 p. m. de los miércoles, que puede coincidir con la emisión de nuevos episodios de «Los Simpson» que los usuarios están interesados en transmitir). El mensaje puede incluir información que puede ser útil al informar al usuario sobre conflictos de transmisión. Por ejemplo, dicha información incluye nombres de recursos multimedia, nombres de usuarios, el número de conflictos de transmisión que se producen durante un período de suscripción, instrucciones para aumentar o disminuir el número de transmisiones en la suscripción y recomendaciones sobre cómo minimizar el número de conflictos de transmisión en el futuro.
Las figuras 5 y 6 presentan un algoritmo para que el circuito de control (p. ej., el circuito de control 304) detecte un número de instancias en las que el número de instancias para transmitir simultáneamente medios desde un servicio de suscripción a distintos dispositivos excede el número de transmisiones disponibles durante un período de suscripción, y para transmitir un mensaje a uno de los dispositivos cuando el número de instancias supere un cierto número, según algunas realizaciones de la divulgación. En algunas realizaciones este algoritmo puede codificarse en un medio de almacenamiento no transitorio (p. ej., el dispositivo de almacenamiento 308) como un conjunto de instrucciones para decodificar y ejecutar mediante un circuito de procesamiento (p. ej., el circuito de procesamiento 306). Los circuitos de procesamiento pueden proporcionar a su vez instrucciones a otros subcircuitos ubicados dentro del circuito de control 304, como la sintonización, la generación de vídeo, la codificación, la decodificación, el cifrado, el descifrado, el escalado, circuitos de conversión analógico/digital, etc.
El diagrama de flujo de la figura 5 describe un algoritmo para el circuito de control (p. ej., el circuito de control 304) para determinar el número de instancias que se produjeron dentro del período de suscripción, según algunas realizaciones de la divulgación.
En el paso 502 comenzará el algoritmo para detectar un número de instancias que se produjeron dentro del período de suscripción, en las que el número de solicitudes para transmitir simultáneamente medios desde un servicio de suscripción a distintos dispositivos excede el número de transmisiones disponibles, en base a una solicitud para transmitir medios. En algunas realizaciones, esto puede hacerse directa o indirectamente en respuesta a una acción o una entrada del usuario (p. ej., a partir de las señales recibidas por el circuito de control 304 o por la interfaz de entrada del usuario 310). Por ejemplo, el algoritmo comienza directamente en respuesta a el circuito de control 304 que recibe señales de la interfaz de entrada del usuario 310, o el circuito de control 304 solicita al usuario que confirme su entrada usando una pantalla (p. ej., generando un mensaje que se mostrará en la pantalla 312) antes de ejecutar el algoritmo.
En el paso 504, el circuito de control 304 procede a recuperar la siguiente instancia de la marca de tiempo de la memoria almacenada. En algunas realizaciones, el circuito de control 304 puede recibir una única estructura de datos primitiva que representa el valor de la marca de tiempo. En algunas realizaciones, el valor puede almacenarse como parte de una estructura de datos más grande, y el circuito de control 304 puede recuperar el valor ejecutando métodos de acceso apropiados para recuperar el valor de la estructura de datos más grande.
En el paso 506, el circuito de control 304 procede a comparar el valor de la marca de tiempo recuperada con los valores almacenado de las marcas de tiempo de inicio y de finalización asociadas con el período de suscripción. En algunas realizaciones, el valor de la marca de tiempo de inicio y el valor almacenado de la marca de tiempo de finalización asociadas con el período de suscripción pueden almacenarse (p. ej., en el dispositivo de almacenamiento 308) antes de comenzar el algoritmo. En algunas realizaciones, el valor de la marca de tiempo de inicio y el valor de la marca de tiempo de finalización asociadas con la suscripción también pueden recuperarse para cada una de las instancias de la marca de hora recuperada, y los valores de las marcas de hora de inicio y finalización asociados con la suscripción pueden cambiar de una iteración a otra. En algunas realizaciones, el circuito de control 304 puede comparar directamente el valor de la marca de tiempo de inicio y el valor almacenado de la marca de tiempo de finalización asociadas con la suscripción con el valor de la marca de tiempo recuperada accediendo a los valores respectivamente desde la memoria y realizando una comparación de valores. En algunos casos, el circuito de control 304 puede llamar a una función de comparación (p. ej., para la comparación de objeto a objeto) para comparar la marca de tiempo recuperada y la marca de tiempo de inicio y el valor almacenado de la marca de tiempo de finalización asociadas con la suscripción.
En el paso 508, el circuito de control 304 compara los valores de la marca de tiempo recuperada y el valor almacenado de la marca de tiempo de finalización asociada con la suscripción para determinar si el valor de la marca de tiempo recuperada es mayor que el valor de la marca de tiempo de finalización asociada con la suscripción. Si se cumple la condición, el algoritmo puede proceder al paso 510; en el caso contrario, el algoritmo puede proceder al paso 512. En el paso 510, el circuito de control 304 ejecutará una subrutina para ignorar la instancia asociada con la marca de tiempo recuperada si se cumple la condición del paso 508. Tras ejecutar la subrutina, el algoritmo puede continuar con el paso 516, donde se determina si se tienen en cuenta todas las instancias de la marca de tiempo recuperada y si se necesitan más iteraciones.
En el paso 512, el circuito de control 304 compara los valores de la marca de tiempo recuperada y la marca de tiempo de inicio para determinar si el valor de la marca de tiempo recuperada es mayor que el valor de la marca de tiempo de inicio. Si se cumple la condición, el algoritmo puede proceder al paso 514; en el caso contrario, el algoritmo puede proceder al paso 516.
En el paso 514, el circuito de control 304 ejecutará una subrutina para agregar la instancia asociada con la marca de tiempo identificada a un recuento de instancias que están dentro del período de suscripción si se cumple la condición del paso 512. Tras ejecutar la subrutina, el algoritmo puede continuar con el paso 516, donde se determina si se tienen en cuenta todas las instancias de las marcas de tiempo y si se necesitan más iteraciones.
En el paso 516, el circuito de control 304 verificará si se tienen en cuenta todas las instancias de la marca de tiempo. Si se han evaluado todas las instancias, el circuito de control 304 puede proceder al paso 518. Por ejemplo, el circuito de control 304 puede llamar a una función para ver si hay un siguiente elemento de la marca de tiempo. Si la función responde verdadero (es decir, que todavía hay instancias que necesitan procesarse), el circuito de control 304 puede proceder al paso 504.
En el paso 518, el circuito de control 304 ejecutará una subrutina para comparar el número total de instancias identificadas con un número umbral.
Se contempla que las descripciones de la figura 5 puedan usarse con cualquier otra realización de esta divulgación. Además, las descripciones realizadas en relación con el algoritmo de la figura 5 pueden hacerse en órdenes alternativas o en paralelo para promover los propósitos de esta divulgación. Por ejemplo, las declaraciones condicionales y las evaluaciones lógicas, como las de 508 y 512, se pueden realizar en cualquier orden o en paralelo o simultáneamente para reducir el retardo o para aumentar la velocidad del sistema o del método. Como ejemplo adicional, en algunas realizaciones se podrían evaluar en paralelo varias instancias de marca de tiempo usando múltiples subprocesos de procesamiento lógicos, o se podría mejorar el algoritmo incorporando la predicción de saltos.
Además, conviene destacar que el algoritmo de la figura 5 puede implementarse en una combinación de software y hardware configurados adecuadamente, y que cualquiera de los dispositivos o equipos comentados en relación con las figuras 3-4 podría usarse para implementar una o más porciones del algoritmo.
El pseudocódigo de la figura 6 describe un algoritmo para detectar un número de instancias que se produjeron dentro del período de suscripción, en las que el número de solicitudes para transmitir simultáneamente medios desde un servicio de suscripción a distintos dispositivos supera el número de transmisiones disponibles, que comenzarán en base a una solicitud para transmitir medios, según algunas realizaciones de la divulgación. Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 6 puede implementarse en cualquier lenguaje de programación y en distintos hardwares, y que el estilo y el formato no deberían interpretarse como limitantes, sino más bien como una plantilla general de los pasos y procedimientos que serían consistentes con el código utilizado para implementar algunas realizaciones de esta divulgación.
En la línea 601, el algoritmo puede ejecutar una subrutina para inicializar variables y prepararse para determinar el número de instancias producidas dentro del período de suscripción, que comienza en la línea 605. Por ejemplo, en algunas realizaciones, el circuito de control 304 puede copiar instrucciones del medio de almacenamiento no transitorio (p. ej., el dispositivo de almacenamiento 308) en la RAM o en la caché para procesar los circuitos 306 durante la etapa de inicialización. Además, en algunas realizaciones, el valor de la marca de tiempo de inicio del período de suscripción almacenado y el valor del tiempo de finalización del período de suscripción almacenado que se utiliza para la comparación, puede recuperarse, establecerse y almacenarse en 601.
En la línea 605, el circuito de control 304 podría recibir instancias de las marcas de tiempo. En algunas realizaciones, estas instancias pueden recuperarse de la memoria almacenada. El circuito de control 304 recibe instancias de la marca de tiempo recibiendo, por ejemplo, un puntero a una matriz de valores de la marca de tiempo. En otro ejemplo, el circuito de control 304 recibe un objeto de una clase, como un objeto iterador que contiene elementos de la marca de tiempo.
En la línea 606, el circuito de control 304 puede iterar a través de las diversas instancias de las marcas de tiempo; si solo hay una instancia disponible, el bucle solo se ejecutará una vez. Este bucle puede implementarse de múltiples maneras dependiendo de la elección del hardware y del lenguaje del software utilizado para implementar el algoritmo de la figura 6; por ejemplo, esto puede implementarse como parte de un bucle «para» o «mientras».
En la línea 607, el circuito de control 304 almacenará el valor de la marca de tiempo en una variable temporal «A». En algunas realizaciones, el valor de la marca de tiempo se almacenará como parte de una clase o estructura de datos más grande, y el valor de la marca de tiempo se puede obtener a través de métodos de acceso apropiados. En algunas realizaciones, la marca de tiempo se puede convertir de una cadena u otro tipo de datos no numéricos a un tipo de datos numéricos por medio de un algoritmo de hash apropiado. En algunas realizaciones, el circuito de control 304 puede llamar a una función para realizar una comparación de la marca de tiempo recuperada con la hora de inicio del período de suscripción. En algunas realizaciones, la marca de tiempo puede codificarse como una estructura de datos primitiva, y en lugar de usar una variable temporal, la marca de tiempo recuperada puede usarse directamente en las comparaciones en las líneas 610 y 612.
En la línea 608, el circuito de control 304 almacenará el valor de la marca de tiempo de inicio del período de suscripción en una variable temporal «B». Al igual que ocurre con la marca de tiempo, en algunas realizaciones el valor de la marca de tiempo de inicio del período de suscripción se almacenará como parte de una clase o estructura de datos más grande, y el valor de la marca de tiempo de inicio del período de suscripción se puede obtener a través de métodos de acceso. En algunas realizaciones, la marca de tiempo de inicio del período de suscripción puede convertirse de una cadena u otro tipo de datos no numéricos en un tipo de datos numéricos por medio de un algoritmo de hash apropiado, o la marca de tiempo de inicio del período de suscripción puede ser una estructura de datos primitiva, y puede ser utilizada directamente en las comparaciones en la línea 612.
En la línea 609, el circuito de control 304 almacenará el valor de la hora de finalización del período de suscripción en una variable temporal «C». Al igual que ocurre con la marca de tiempo de inicio, en algunas realizaciones el valor de la marca de tiempo de finalización del período de suscripción se almacenará como parte de una clase o estructura de datos más grande, y el valor de la marca de tiempo de finalización se puede obtener a través de métodos de acceso. En algunas realizaciones, la marca de tiempo de finalización del período de suscripción puede convertirse de una cadena u otro tipo de datos no numéricos en un tipo de datos numéricos por medio de un algoritmo de hash apropiado, o la marca de tiempo de finalización del período de suscripción puede ser una estructura de datos primitiva, y puede ser utilizada directamente en las comparaciones en la línea 610.
En la línea 610, el circuito de control 304 comparará el valor de A y C para determinar si A es mayor que C.
En la línea 611, el circuito de control 304 ejecutará una subrutina para ignorar la instancia asociada con el circuito de control de la marca de tiempo recuperada si se cumple la condición de la línea 610.
En la línea 612, el circuito de control 304 comparará el valor de A y B para determinar si A es mayor que B.
En la línea 613, el circuito de control 304 ejecutará una subrutina para agregar la instancia asociada con la marca de tiempo identificada a un recuento de instancias que están dentro del período de suscripción si se cumple la condición del paso 612.
En la línea 615, el circuito de control 304 ejecutará una subrutina para determinar si se tienen en cuenta todas las instancias asociadas con marcas de tiempo para utilizar el circuito de control 304, si no se cumplen de las condiciones de las líneas 610 o 612.
En la línea 617, el circuito de control 304 puede ejecutar una subrutina de finalización después de que el algoritmo haya realizado su función. Por ejemplo, en algunas realizaciones, el circuito de control 304 podría destruir variables, recolectar basura, liberar memoria o borrar el caché del circuito de procesamiento 306.
Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 6 puede implementarse en cualquier lenguaje de programación y distintos hardwares, y la elección particular y la ubicación de las funciones primitivas, las evaluaciones lógicas y las evaluaciones de funciones no están destinadas a ser limitantes. También será evidente que el código se puede refactorizar o reescribir para manipular el orden de las diversas evaluaciones lógicas, para realizar varias iteraciones en paralelo en lugar de en un solo bucle iterativo, o para manipular y optimizar las métricas de rendimiento y tiempo de ejecución fundamentalmente sin cambiar las entradas o salidas finales. Por ejemplo, en algunas realizaciones, las condiciones de interrupción pueden colocarse después de las líneas 610 y 612 para acelerar la operación, o las declaraciones condicionales pueden reemplazarse por un cambio de mayúsculas y minúsculas. En algunas realizaciones, en lugar de iterar sobre todas las instancias de la marca de tiempo en el paso 606, en algunas realizaciones, el código puede reescribirse para que el circuito de control 304 reciba instrucciones de evaluar múltiples instancias de la marca de tiempo de manera simultánea en varios procesadores o subprocesos de procesamiento, reduciendo el número de iteraciones necesarias y acelerando potencialmente el tiempo de cálculo.
Las figuras 7 y 8 presentan un algoritmo para que el circuito de control (p. ej., el circuito de control 304) detecte un número de instancias en las que el número de instancias para transmitir simultáneamente medios desde un servicio de suscripción a distintos dispositivos excede el número de transmisiones disponibles durante una porción de un período de suscripción, y para transmitir un mensaje a uno de los dispositivos cuando el número de instancias supere un cierto número, según algunas realizaciones de la divulgación. En algunas realizaciones este algoritmo puede codificarse en un medio de almacenamiento no transitorio (p. ej., el dispositivo de almacenamiento 308) como un conjunto de instrucciones para decodificar y ejecutar mediante un circuito de procesamiento (p. ej., el circuito de procesamiento 306). Los circuitos de procesamiento pueden proporcionar a su vez instrucciones a otros subcircuitos ubicados dentro del circuito de control 304, como la sintonización, la generación de vídeo, la codificación, la decodificación, el cifrado, el descifrado, el escalado, circuitos de conversión analógico/digital, y similares.
El diagrama de flujo de la figura 7 describe un algoritmo para el circuito de control (p. ej., el circuito de control 304) para determinar el número de instancias que se produjeron durante una porción del período de suscripción, según algunas realizaciones de la divulgación.
En el paso 702 comenzará el algoritmo para detectar un número de instancias que se produjeron dentro de una porción del período de suscripción, en las que el número de solicitudes para transmitir simultáneamente medios desde un servicio de suscripción a distintos dispositivos superaron el número de transmisiones disponibles, en base a una solicitud para transmitir medios. En algunas realizaciones, esto puede hacerse directa o indirectamente en respuesta a una acción o una entrada del usuario (p. ej., a partir de las señales recibidas por el circuito de control 304 o por la interfaz de entrada del usuario 310). Por ejemplo, el algoritmo puede comenzar directamente en respuesta a el circuito de control 304 que recibe señales de la interfaz de entrada del usuario 310, o el circuito de control 304 puede solicitar al usuario que confirme su entrada usando una pantalla (p. ej., generando un mensaje que se mostrará en la pantalla 312) antes de ejecutar el algoritmo.
En el paso 704, el circuito de control 304 procede a recuperar la siguiente instancia de la marca de tiempo de la memoria almacenada. En algunas realizaciones, el circuito de control 304 puede recibir una única estructura de datos primitiva que representa el valor de la marca de tiempo. En algunas realizaciones, el valor puede almacenarse como parte de una estructura de datos más grande, y el circuito de control 304 puede recuperar el valor ejecutando métodos de acceso apropiados para recuperar el valor de la estructura de datos más grande.
En el paso 706, el circuito de control 304 procede a comparar el valor de la marca de tiempo recuperada con los valores almacenado de las marcas de tiempo de inicio y de finalización asociadas con una porción del período de suscripción. En algunas realizaciones, el valor de la marca de tiempo de inicio y el valor almacenado de la marca de tiempo de finalización asociadas con una porción del período de suscripción pueden almacenarse (p. ej., en el dispositivo de almacenamiento 308) antes de comenzar el algoritmo. En algunas realizaciones, el valor de la marca de tiempo de inicio y el valor de la marca de tiempo de finalización asociadas con una porción de la suscripción también pueden recuperarse para cada una de las instancias de la marca de hora recuperada, y los valores de las marcas de hora de inicio y finalización asociados con porción del período de suscripción pueden cambiar de una iteración a otra. En algunas realizaciones, el circuito de control 304 puede comparar directamente el valor de la marca de tiempo de inicio y el valor almacenado de la marca de tiempo de finalización asociadas con la porción de la suscripción con el valor de la marca de tiempo recuperada accediendo a los valores respectivamente desde la memoria y realizando una comparación de valores. En algunos casos, el circuito de control 304 puede llamar a una función de comparación (p. ej., para la comparación de objeto a objeto) para comparar la marca de tiempo recuperada y la marca de tiempo de inicio y el valor almacenado de la marca de tiempo de finalización con la porción del período de suscripción.
En el paso 708, el circuito de control 304 compara los valores de la marca de tiempo recuperada y la marca de tiempo de finalización asociadas con la porción del período de suscripción para determinar si el valor de la marca de tiempo recuperada es mayor que el valor de la marca de tiempo de finalización asociada con la suscripción. Si se cumple la condición, el algoritmo puede proceder al paso 710; en el caso contrario, el algoritmo puede proceder al paso 712. En el paso 710, el circuito de control 304 ejecutará una subrutina para ignorar la instancia asociada con la marca de tiempo recuperada si se cumple la condición del paso 708. Tras ejecutar la subrutina, el algoritmo puede continuar con el paso 716, donde se determina si se tienen en cuenta todas las instancias de la marca de tiempo recuperada y si se necesitan más iteraciones.
En el paso 712, el circuito de control 304 compara los valores de la marca de tiempo recuperada y la marca de tiempo de inicio para determinar si el valor de la marca de tiempo recuperada es mayor que el valor de la marca de tiempo de inicio. Si se cumple la condición, el algoritmo puede proceder al paso 714; en el caso contrario, el algoritmo puede proceder al paso 716.
En el paso 714, el circuito de control 304 ejecutará una subrutina para agregar la instancia asociada con la marca de tiempo identificada a un recuento de instancias que están dentro de la porción del período de suscripción si se cumple la condición del paso 712. Tras ejecutar la subrutina, el algoritmo puede continuar con el paso 716, donde se determina si se tienen en cuenta todas las instancias de las marcas de tiempo y si se necesitan más iteraciones.
En el paso 716, el circuito de control 304 verificará si se tienen en cuenta todas las instancias de la marca de tiempo. Si se han evaluado todas las instancias, el circuito de control 304 puede proceder al paso 718. Por ejemplo, el circuito de control 304 puede llamar a una función para ver si hay un siguiente elemento de la marca de tiempo. Si la función responde verdadero (es decir, que todavía hay instancias que necesitan procesarse), el circuito de control 304 puede proceder al paso 704.
En el paso 718, el circuito de control 304 ejecutará una subrutina para comparar el número total de instancias identificadas con un número umbral.
Se contempla que las descripciones de la figura 7 puedan usarse con cualquier otra realización de esta divulgación. Además, las descripciones realizadas en relación con el algoritmo de la figura 7 pueden hacerse en órdenes alternativas o en paralelo para promover los propósitos de esta divulgación. Por ejemplo, las declaraciones condicionales y las evaluaciones lógicas, como las de 708 y 712, se pueden realizar en cualquier orden o en paralelo o simultáneamente para reducir el retardo o para aumentar la velocidad del sistema o del método. Como ejemplo adicional, en algunas realizaciones se podrían evaluar en paralelo varias instancias de marca de tiempo usando múltiples subprocesos de procesamiento lógicos, o se podría mejorar el algoritmo incorporando la predicción de saltos. Además, conviene destacar que el algoritmo de la figura 7 puede implementarse en una combinación de software y hardware configurados adecuadamente, y que cualquiera de los dispositivos o equipos comentados en relación con las figuras 3-4 podría usarse para implementar una o más porciones del algoritmo.
El pseudocódigo de la figura 8 describe un algoritmo para detectar un número de instancias que se produjeron dentro de la porción del período de suscripción, en las que el número de solicitudes para transmitir simultáneamente medios desde un servicio de suscripción a distintos dispositivos supera el número de transmisiones disponibles, que comenzarán en base a una solicitud para transmitir medios, según algunas realizaciones de la divulgación. Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 8 puede implementarse en cualquier lenguaje de programación y en distintos hardwares, y que el estilo y el formato no deberían interpretarse como limitantes, sino más bien como una plantilla general de los pasos y procedimientos que serían consistentes con el código utilizado para implementar algunas realizaciones de esta divulgación.
En la línea 801, el algoritmo puede ejecutar una subrutina para inicializar variables y prepararse para determinar el número de instancias producidas dentro de la porción del período de suscripción, que comienza en la línea 805. Por ejemplo, en algunas realizaciones, el circuito de control 304 puede copiar instrucciones del medio de almacenamiento no transitorio (p. ej., el dispositivo de almacenamiento 308) en la RAM o en la caché para procesar los circuitos 306 durante la etapa de inicialización. Además, en algunas realizaciones, el valor del tiempo de inicio almacenado de la porción del período de suscripción, y el valor del tiempo de finalización almacenado de la porción del período de suscripción que se utilizan para la comparación, pueden recuperarse, establecerse y almacenarse en 801.
En la línea 805, el circuito de control 304 podría recibir instancias de la marca de tiempo. En algunas realizaciones, estas instancias pueden recuperarse de la memoria almacenada. El circuito de control 304 puede recibir instancias de la marca de tiempo recibiendo, por ejemplo, un puntero a una matriz de valores de la marca de tiempo. En otro ejemplo, el circuito de control 304 puede recibir un objeto de una clase, como un objeto iterador que contiene elementos de la marca de tiempo.
En la línea 806, el circuito de control 304 puede iterar a través de las diversas instancias de la marca de tiempo, si solo hay una instancia disponible, el bucle solo se ejecutará una vez. Este bucle puede implementarse de múltiples maneras dependiendo de la elección del hardware y del lenguaje del software utilizado para implementar el algoritmo de la figura 8; por ejemplo, esto puede implementarse como parte de un bucle «para» o «mientras».
En la línea 807, el circuito de control 304 almacenará el valor de la marca de tiempo en una variable temporal «A». En algunas realizaciones, el valor de la marca de tiempo se almacenará como parte de una clase o estructura de datos más grande, y el valor de la marca de tiempo se puede obtener a través de métodos de acceso apropiados. En algunas realizaciones, la marca de tiempo se puede convertir de una cadena u otro tipo de datos no numéricos a un tipo de datos numéricos por medio de un algoritmo de hash apropiado. En algunas realizaciones, el circuito de control 304 puede llamar a una función para realizar una comparación de la marca de tiempo recuperada con la hora de inicio de la porción del período de suscripción. En algunas realizaciones, la marca de tiempo puede codificarse como una estructura de datos primitiva, y en lugar de usar una variable temporal, la marca de tiempo recuperada puede usarse directamente en las comparaciones en las líneas 810 y 812.
En la línea 808, el circuito de control 304 almacenará el valor de la hora de inicio de la porción del período de suscripción en una variable temporal «B». Al igual que ocurre con la marca de tiempo, en algunas realizaciones el valor de la hora de inicio de la porción de la marca de tiempo del período de suscripción se almacenará como parte de una clase o estructura de datos más grande, y el valor de la marca de tiempo de inicio del período de suscripción se puede obtener a través de métodos de acceso. En algunas realizaciones, la marca de tiempo de inicio de la porción del período de suscripción puede convertirse de una cadena u otro tipo de datos no numéricos en un tipo de dato numérico mediante un algoritmo de hash apropiado, o bien la marca de tiempo de inicio de la porción del período de suscripción puede ser una estructura de datos primitiva y puede usarse directamente en las comparaciones en la línea 812.
En la línea 809, el circuito de control 304 almacenará el valor de la marca de tiempo de finalización de la porción del período de suscripción en una variable temporal «C». Al igual que ocurre con la marca de tiempo de inicio, en algunas realizaciones el valor de la marca de tiempo de finalización del período de suscripción se almacenará como parte de una clase o estructura de datos más grande, y el valor de la marca de tiempo de finalización de la porción del período de suscripción se puede obtener a través de métodos de acceso. En algunas realizaciones, la marca de tiempo de finalización de la porción del período de suscripción puede convertirse de una cadena u otro tipo de datos no numéricos en un tipo de datos numéricos por medio de un algoritmo de hash apropiado, o la marca de tiempo de finalización de la porción del período de suscripción puede ser una estructura de datos primitiva y puede usarse directamente en las comparaciones en la línea 810.
En la línea 810, el circuito de control 304 comparará el valor de A y C para determinar si A es mayor que C.
En la línea 811, el circuito de control 304 ejecutará una subrutina para ignorar la instancia asociada con el circuito de control de la marca de tiempo recuperada si se cumple la condición de la línea 810.
En la línea 812, el circuito de control 304 compararán el valor de A y B para determinar si A es mayor que B.
En la línea 813, el circuito de control 304 ejecutará una subrutina para agregar la instancia asociada con la marca de tiempo identificada a un recuento de instancias que están dentro de la porción del período de suscripción si se cumple la condición del paso 812.
En la línea 814, el circuito de control 304 determinará si no se cumplen las condiciones de las líneas 810 o 812. Si no se cumple ninguna de las condiciones, entonces la instrucción en la línea 815 puede evaluarse y ejecutarse.
En la línea 817, el circuito de control 304 puede ejecutar una subrutina de terminación después de que el algoritmo haya realizado su función. Por ejemplo, en algunas realizaciones, el circuito de control 304 podría destruir variables, recolectar basura, liberar memoria o borrar el caché del circuito de procesamiento 306.
Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 8 puede implementarse en cualquier lenguaje de programación y distintos hardwares, y la elección particular y la ubicación de las funciones primitivas, las evaluaciones lógicas y las evaluaciones de funciones no están destinadas a ser limitantes. También será evidente que el código se puede refactorizar o reescribir para manipular el orden de las diversas evaluaciones lógicas, para realizar varias iteraciones en paralelo en lugar de en un solo bucle iterativo, o para manipular y optimizar las métricas de rendimiento y tiempo de ejecución fundamentalmente sin cambiar las entradas o salidas finales. Por ejemplo, en algunas realizaciones, las condiciones de interrupción pueden colocarse después de las líneas 810 y 812 para acelerar la operación, o las declaraciones condicionales pueden reemplazarse con un cambio de mayúsculas y minúsculas. En algunas realizaciones, en lugar de iterar sobre todas las instancias de la marca de tiempo en el paso 806, en algunas realizaciones, el código puede reescribirse para que el circuito de control 304 reciba instrucciones de evaluar múltiples instancias de la marca de tiempo de manera simultánea en varios procesadores o subprocesos de procesamiento, reduciendo el número de iteraciones necesarias y acelerando potencialmente el tiempo de cálculo.
La figura 9 es un diagrama de flujo de pasos ilustrativos implicados en la transmisión de un mensaje a un dispositivo cuando el número de instancias supera un cierto número. Debe observarse que el proceso 900 o cualquier paso del mismo podría realizarse en cualquiera de los dispositivos mostrados en las figuras 3-4, o bien podría ser proporcionado por ellos. Por ejemplo, el circuito de control 304 puede ejecutar el proceso 900 (figura 3) siguiendo las instrucciones del circuito de control implementado en los equipos del usuario 402, 404 y/o 406 (figura 4) para detectar cuándo el número de instancias supera un determinado número, y para transmitir un mensaje a un dispositivo. Además, es posible incorporar uno o más pasos del proceso 900, o combinarlos con uno o más pasos de cualquier otro proceso o realización.
El proceso 900 comienza en el paso 902, donde el circuito de control 304 detecta varias instancias en las que el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción a diferentes dispositivos, supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción. El circuito de control 304 recibe solicitudes de varios dispositivos utilizados por los usuarios que acceden al servicio de suscripción. Estos dispositivos pueden incluir un equipo de televisión del usuario 402, un equipo informático del usuario 404 y un dispositivo de comunicaciones inalámbricas del usuario 406. En un ejemplo, el circuito de control 304 detecta que en doce instancias, el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción a diferentes dispositivos, supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción. En otras palabras, en doce ocasiones, al menos un usuario de la suscripción no pudo transmitir contenido desde el servicio de suscripción de contenido.
En el paso 904, el circuito de control 304 genera varias marcas de tiempo correspondientes a cada instancia. Por ejemplo, en base a la detección de un número de instancias en las cuales el número de solicitudes para transmitir medios simultáneamente desde el servicio de suscripción a diferentes dispositivos, supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción, el circuito de control 304 almacena una marca de tiempo asociada con cada instancia en una lista en el medio de almacenamiento 308. Si el circuito de control 304 detecta, por ejemplo, doce instancias en las que el número de solicitudes para transmitir simultáneamente medios desde el servicio de suscripción a diferentes dispositivos supera el número de transmisiones disponibles para el usuario desde el servicio de suscripción, el circuito de control 304 genera y almacena en el medio de almacenamiento 308 una lista de marcas de tiempo, donde cada marca de tiempo corresponde a una de las doce instancias.
En el paso 906, el circuito de control 304 determina el número de instancias registradas en un período de suscripción en base a las marcas de tiempo, comparando cada marca de tiempo con un rango de marcas de tiempo que corresponde a un período de suscripción para que el servicio de suscripción determine un número de instancias que ocurrieron durante el período de suscripción. Por ejemplo, si el circuito de control 304 genera doce marcas de tiempo, a continuación compara cada una con el período de suscripción para el servicio de suscripción. A continuación, el circuito de control 304 compara cada una de las doce marcas de tiempo para determinar si alguna se encuentra dentro del rango de tiempo definido por las marcas de tiempo de inicio y finalización del período de suscripción. Según el número de marcas de tiempo que se encuentren dentro del rango, el circuito de control 304 determina el número de instancias que ocurrieron durante el período de suscripción. Por ejemplo, el circuito de control 304 determina que de las doce marcas de tiempo generadas, nueve están dentro del rango de tiempo definido por las marcas de tiempo de inicio y finalización del período de suscripción.
En el paso 908, el circuito de control 304 compara el número de instancias que ocurrieron durante el período de suscripción con un número umbral para el período de suscripción. El circuito de control 304 utiliza diferentes enfoques para determinar un número umbral para el período de suscripción. Por ejemplo, el circuito de control 304 basa el número umbral en el número de transmisiones disponibles para el usuario desde el servicio de suscripción. Por ejemplo, el circuito de control 304 puede dirigirse a usuarios que se encuentran constantemente ante transmisiones no disponibles. Para ese fin, el circuito de control 304 establece un número umbral en un número mayor (p. ej., veinte), si el circuito de control 304 determina que el número de transmisiones disponibles para el usuario desde el servicio de suscripción (p. ej., nueve) es mayor que el promedio de transmisiones disponibles para un usuario medio del servicio de suscripción (p. ej., un usuario medio puede estar asociado con solo dos transmisiones).
En el paso 910, el circuito de control 304 transmite un mensaje a un dispositivo si el número de instancias sucedidas dentro del período de suscripción supera el número umbral. Por ejemplo, el circuito de control 304 transmite un mensaje desde el servidor a uno de los distintos dispositivos a través de la red de comunicaciones 414, una vez se haya determinado que el número de instancias producidas durante el período de suscripción excede el número umbral para el período de suscripción. Por ejemplo, en respuesta a la determinación de que el número de instancias registradas durante el período de suscripción (p.ej., doce) supera el número umbral (p. ej., ocho), el circuito de control 304 transmite un mensaje del servidor a un dispositivo que indica que un usuario asociado con el dispositivo puede comprar transmisiones adicionales. En un ejemplo, el circuito de control 304 genera el mensaje para indicar que el usuario puede comprar transmisiones adicionales por los frecuentes conflictos de transmisión. El circuito de control 304 transmite el mensaje para su visualización en la pantalla 312 del equipo de televisión del usuario 402, el equipo informático del usuario 404 o el dispositivo de comunicaciones inalámbricas 406. Por ejemplo, el circuito de control 304 genera el mensaje para visualizarlo en una pantalla de listados de programación 100 que se muestra en la pantalla 312 del equipo de televisión del usuario 402.
Se contempla que los pasos o las descripciones de la figura 9 puedan usarse con cualquier otra realización de esta divulgación. Además, los pasos y las descripciones descritos en relación con la figura 9 pueden hacerse en órdenes alternativas o en paralelo para promover los propósitos de esta divulgación. Por ejemplo, cada uno de estos pasos se puede realizar en cualquier orden o en paralelo o simultáneamente para reducir el retardo o para aumentar la velocidad del sistema o del método.
Para los expertos en la materia resultará evidente que los métodos utilizados en la presente invención pueden incorporarse en un programa informático que incluya un medio utilizable y/o legible por ordenador. Por ejemplo, ese medio utilizable por ordenador puede consistir en un dispositivo de memoria de solo lectura, como un disco CD-ROM o dispositivos ROM convencionales, o una memoria de acceso aleatorio, como un dispositivo de disco duro o un disquete de ordenador, que tenga un código de programa legible por ordenador almacenado en el mismo. También debería entenderse que los métodos, técnicas y procesos utilizados en la presente invención pueden ejecutarse usando circuitos de procesamiento. Por ejemplo, la detección de una interacción en redes sociales asociada con un usuario se puede realizar procesando circuitos, p. ej., procesando el circuito 306 de la figura 3. El circuito de procesamiento, por ejemplo, puede ser un procesador de propósito general, un circuito integrado personalizado (p. ej., un ASIC), o una matriz de puerta programables por campo (FPGA) en el dispositivo del equipo 300, el proveedor de contenido multimedia 416 o el agregador de contenido 430. Por ejemplo, los metadatos de los recursos multimedia que se describen en el presente documento pueden almacenarse en el medio de almacenamiento 308 de la figura 3 y recuperarse de él, o del agregador de contenido 430 de la figura 4) Además, el circuito de procesamiento, o un programa informático, pueden actualizar las configuraciones asociadas con un usuario, como los atributos de su perfil, actualizando la información almacenada en el medio de almacenamiento 308 de la figura 3 o en el agregador de contenido 430 de la figura 4.
Los procesos analizados anteriormente pretenden ser ilustrativos y no limitativos. Un experto en la materia apreciaría que los pasos de los procesos analizados en este documento pueden omitirse, modificarse, combinarse y/o reorganizarse, y que puede realizarse cualquier paso adicional puede sin apartarse del alcance de la invención. De manera más general, la descripción anterior pretende ser ejemplar y no limitativa. Solo establecerán límites en cuanto a lo que incluye la presente invención las reivindicaciones que siguen. Además, debe tenerse en cuenta que las funcionalidades y limitaciones descritas en cualquiera de las realizaciones pueden aplicarse a cualquier otra realización de este documento, y los diagramas de flujo o ejemplos relacionados con una realización pueden combinarse con cualquier otra de una manera adecuada, en distinto orden o en paralelo. Además, los sistemas y métodos descritos en este documento pueden realizarse en tiempo real. También debe tenerse en cuenta que los sistemas y los métodos descritos anteriormente se pueden aplicar o utilizar según otros sistemas y/o métodos.
El circuito de control 304 recibe automáticamente la información de autenticación de un servicio de agregación de contenido. La aplicación de guía multimedia, implementada en el circuito de control 304, recibe la información de autenticación y la asocia a una cuenta de usuario, antes de que el circuito de control 304 reciba una solicitud para suscribir al usuario al servicio de suscripción. A continuación el circuito de control 304 recibe una solicitud para suscribir al usuario al servicio de suscripción y, por lo tanto, valida la cuenta y otorga acceso al usuario a las ofertas del servicio de suscripción.
En algunas realizaciones, el circuito de control 304 recibe, en un servidor proveedor de contenido que está asociado con un servicio de suscripción (p. ej., Hulu), una primera clave de autenticación de un servidor del agregador de contenido que está asociada con un segundo servicio de suscripción (p. ej., Rovi Super Aggregator), y la primera clave de autenticación se recibe antes de que un usuario se suscriba al primer servicio de suscripción. Por ejemplo, un usuario puede suscribirse a un servicio de agregación de contenido (es decir, el segundo servicio de suscripción). Una vez que el usuario haya completado su registro en el segundo servicio de suscripción, el circuito de control 304 implementado en el servidor del agregador de contenido asociado con el segundo servicio de suscripción, puede generar claves de autenticación para asociar al usuario con algunos o todos los servicios de suscripción que están disponibles como parte de la suscripción del agregador de contenido, y transferir las claves de autenticación generadas a los servidores asociados con cada servicio de suscripción, incluido el primero. Cada clave de autenticación se puede codificar para garantizar que la información almacenada en la clave se transmita de forma segura a los servidores asociados con cada servicio de suscripción. Además, cada clave de autenticación puede incluir información que identifique al usuario y al segundo servicio de suscripción (p. ej., Rovi Super Aggregator). A continuación, el circuito de control 304 implementado en el servidor del proveedor de contenido asociado con el primer servicio de suscripción recibe la clave de autenticación generada del servidor del agregador de contenido. En algunos casos, el circuito de control 304 implementado en el servidor del proveedor de contenido puede decodificar la clave de autenticación y extraer la información almacenada ella. El circuito de control 304 puede almacenar también la clave de autenticación en el servidor del proveedor de contenido. De este modo, el circuito de control 304 puede transmitir la información de autenticación asociada con el primer usuario al primer servicio de suscripción sin que el usuario tenga que de crear cuentas manualmente.
En algunos casos, el circuito de control 304 implementado en el servidor del proveedor de contenido recibe la primera clave de autenticación del servidor del agregador de contenido después de que el usuario se registre en el segundo servicio de suscripción, pero antes de que el circuito de control 304 implementado en el servidor del agregador de contenido detecte que el usuario desea suscribirse al primer servicio de suscripción. Por ejemplo, la entidad que ofrece el segundo servicio de suscripción (p. ej., Rovi Super Aggregator) puede llegar a un acuerdo con la entidad que proporciona el primer servicio de suscripción (p. ej., Hulu) para ofrecer a los usuarios del segundo servicio de suscripción una suscripción con descuento al primer servicio de suscripción. Antes de que el usuario se suscriba al primer servicio de suscripción, el circuito de control 304 implementado en el servidor del agregador de contenido transmite una primera clave de autenticación al servidor del agregador de contenido.
En algunos casos, el circuito de control 304 implementados en el servidor de agregador de contenido asociado con el segundo servicio de suscripción puede generar claves de autenticación para asociar al usuario con algunos o todos los servicios de suscripción que están disponibles como parte de la suscripción del agregador de contenido y transfiera las claves de autenticación generadas a los servidores asociados con cada servicio de suscripción, incluido el primer servicio de suscripción. Cada clave de autenticación se puede cifrar para garantizar que la información almacenada en la clave se transmita de forma segura al servidor asociado con cada servicio de suscripción. Por ejemplo, una clave de autenticación puede cifrarse con una clave pública, a la que puede acceder tanto el servidor del proveedor de contenido como el servidor del agregador de contenido. Además, cada clave de autenticación puede incluir información que identifique al usuario y al segundo servicio de suscripción (p. ej., Rovi Super Aggregator). En un ejemplo, una clave de autenticación puede comprender el nombre de usuario y la contraseña asociados con un usuario en el segundo servicio de suscripción. A continuación, el circuito de control 304 implementado en el servidor del proveedor de contenido asociado con el primer servicio de suscripción puede recibir la clave de autenticación generada desde el servidor del agregador de contenido; en algunos casos, el circuito de control 304 implementado en el servidor del proveedor de contenido puede descifrar la clave de autenticación y extraer la información almacenada en la llave. El circuito de control 304 puede almacenar también la clave de autenticación en el servidor del proveedor de contenido. De este modo, el circuito de control 304 puede transmitir la información de autenticación asociada con el primer usuario al primer servicio de suscripción sin que el usuario tenga que de crear una cuenta manualmente.
El circuito de control 304 implementado en el servidor del proveedor de contenido compara la primera clave de autenticación con una primera pluralidad de claves de autenticación aceptables para determinar si generar o no una primera cuenta de usuario para el primer servicio de suscripción basada en la primera clave de autenticación. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede extraer información almacenada en la primera clave de autenticación y determinar el nombre del servicio de suscripción (p. ej., Rovi Super Aggregator) que se enumera en la parte de la clave relacionada con el identificador del segundo servicio de suscripción. A continuación, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recuperar una lista de servicios de suscripción que el circuito de control 304 hubiese identificado previamente para permitirle generar cuentas en el primer servicio de suscripción, y comparar el nombre del servicio de suscripción con cada servicio de suscripción en la lista recuperada. En efecto, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recibir de forma segura información sobre nuevos usuarios de los agregadores de contenido (es decir, el segundo servicio de suscripción), mientras mantiene el control sobre las cuentas que se crean. Por ejemplo, un primer servicio de suscripción puede celebrar un acuerdo con un segundo servicio de suscripción para ofrecer suscripciones en el primer servicio de suscripción a un precio reducido. Además, al encapsular información sobre el segundo servicio de suscripción en la clave de autenticación, el primer servicio de suscripción garantiza que solo se creen cuentas de usuarios asociados con agregadores de contenido de confianza.
En algunos casos, el circuito de control 304 implementado en el servidor del proveedor de contenido puede extraer información almacenada en la primera clave de autenticación y determinar un nombre de usuario. A continuación, el circuito de control 304 puede recuperar una lista de nombres de usuario que el circuito de control 304 hubiese identificado previamente para permitir generar cuentas en el primer servicio de suscripción, y comparar el nombre de usuario extraído con cada nombre de usuario identificado.
En respuesta a la determinación de que la primera clave de autenticación coincide con una de la primera pluralidad de claves de autenticación aceptables, el circuito de control 304 implementado en el servidor del proveedor de contenido genera la primera cuenta de usuario en el servidor del proveedor de contenido. Por ejemplo, el circuito de control 304 puede extraer la información contenida en la clave de autenticación, como el nombre de usuario, la contraseña y el nombre del servicio de suscripción, para crear la información necesaria para generar una cuenta en el servidor del proveedor de contenido. En algunos casos, el circuito de control 304 puede almacenar una indicación asociada con la primera cuenta, especificando que la cuenta no está validada. Si el usuario o el circuito de control 304 implementado en el segundo servicio de suscripción deciden validar la cuenta en el futuro, el circuito de control 304 implementado en el servidor del proveedor de contenido puede validar de manera eficiente la cuenta con poca o ninguna intervención del usuario, como se explicará con más detalle a continuación.
El circuito de control 304 implementado en el servidor del proveedor de contenido almacena la primera cuenta de usuario en una entrada de la base de datos que indica que la primera cuenta de usuario corresponde a la primera clave de autenticación. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede almacenar la información relacionada con la cuenta de usuario generada en una entrada almacenada en una base de datos. El circuito de control también 304 también puede asociar la cuenta de usuario con la clave de autenticación, por ejemplo, almacenando un puntero a la ubicación de la clave de autenticación en la entrada de la base de datos asociada con la cuenta de usuario. Al asociar la cuenta de usuario almacenada con la primera clave de autenticación, el circuito de control 304 implementado en el servidor del agregador de contenido puede garantizar que la cuenta pueda validarse rápidamente en caso de que la segunda suscripción o el usuario decida validar la cuenta en el primer servicio de suscripción. En algunos casos, el circuito de control 304 puede almacenar la primera clave de autenticación en una ubicación del medio de almacenamiento 308, donde la ubicación se identifica mediante un directorio o ruta de archivo. El circuito de control 304 puede almacenar la ruta a la ubicación en una entrada de la base de datos correspondiente a la primera cuenta de usuario.
Tras almacenar la primera cuenta de usuario, el circuito de control 304 implementado en el servidor del proveedor de contenido recibe en el servidor de este una solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción, en el que la solicitud incluye una segunda clave de autenticación. El circuito de control 304 puede recibir la segunda clave de autenticación en respuesta a una solicitud del usuario para suscribirse al primer servicio de suscripción. Por ejemplo, el circuito de control 304 implementado en el servidor del agregador de contenido puede detectar que un usuario del segundo servicio de suscripción (p.ej., Rovi Super Aggregator) desea suscribirse al primer servicio de suscripción (p. ej., Hulu). En un ejemplo diferente, el circuito de control 304 implementado en el segundo servicio puede enviar automáticamente una solicitud al primer servicio, cuando el coste de suscribirse al primer servicio cumpla un criterio de costes. El circuito de control 304 del primer servicio de suscripción puede descifrar la información almacenada en la segunda clave, recuperarla y almacenar la clave de autenticación en el servidor del proveedor de contenido. Al proporcionar un marco para recibir la segunda clave de autenticación, el circuito de control implementado en el servidor del proveedor de contenido puede validar de forma segura una cuenta para el usuario.
El circuito de control 304 implementado en el servidor del proveedor de contenido compara la primera clave de autenticación con la segunda. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recuperar información de la segunda clave relacionada con el nombre del usuario asociado con la clave y, a continuación, puede consultar la base de datos para determinar si existe una cuenta asociada con el usuario identificado. Opcionalmente, el circuito de control 304 puede recuperar la primera clave de autenticación (es decir, desde el medio de almacenamiento 308 o desde la base de datos) asociada con la cuenta del usuario identificado. El circuito de control 304 también puede comparar la segunda clave de autenticación con la primera, descifrando o no los datos almacenados en las claves.
El circuito de control 304 implementado en el servidor del proveedor de contenido valida la primera cuenta de usuario en respuesta a la determinación de que la primera clave de autenticación coincide con la segunda. Por ejemplo, en base a la comparación de la primera clave de autenticación con la segunda, el circuito de control 304 implementado en el servidor del proveedor de contenido puede identificar la cuenta de usuario asociada con cualquiera de las claves. A continuación el circuito de control 304 puede consultar la base de datos para identificar la cuenta y almacenar una indicación que especifique que la cuenta ha sido validada. En un ejemplo, el circuito de control 304 puede identificar un registro de la base de datos asociado con la cuenta identificada y establecer el campo asociado con si cuenta está validada (p. ej., el campo ESTÁ VALIDADA) a un valor (p. ej., VERDADERO) que indica que la cuenta está validada. Al validar la cuenta, el circuito de control 304 implementado en el servidor del proveedor de contenido permite que un usuario autenticado por el servidor del proveedor de contenido acceda al contenido multimedia ofrecido por el primer servicio de suscripción sin que el usuario tenga que crear una cuenta.
En respuesta a la validación de la primera cuenta de usuario, el circuito de control 304 implementado en la primera cuenta otorga acceso al primer servicio de suscripción a través de la primera cuenta de usuario. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede generar y transmitir un mensaje al servidor del agregador, indicando que la cuenta está disponible para su uso. Por lo tanto, el circuito de control 304 implementado en el servidor del proveedor de contenido puede notificar al usuario que puede acceder a las ofertas del segundo servicio de suscripción.
En algunas realizaciones, la primera clave de autenticación es una clave de cifrado basada en un nombre de usuario y contraseña para el usuario asignados por el segundo servicio de suscripción. Por ejemplo, la clave de autenticación puede incluir el nombre de usuario y la contraseña correspondientes a la cuenta del usuario en el servidor del agregador de contenido. En otro ejemplo, el circuito de control 304 del servidor del agregador de contenido puede generar una contraseña que cumpla los requisitos de la contraseña del primer servicio de suscripción. El circuito de control 304 implementado en el servidor del agregador de contenido puede utilizar un módulo de generación de contraseñas, que puede estar diseñado para generar cadenas aleatorias difíciles de descifrar, asegurando que la información de autenticación necesaria para acceder al servidor del proveedor de contenido sea más segura de la que un usuario medio normalmente seleccionaría. Por ejemplo, para memorizar fácilmente su contraseña, un usuario medio puede seleccionar una palabra clave corta y un número para una contraseña (por ejemplo, «elnombredemimascota1»), si los requisitos de la contraseña para crear una cuenta en el servidor del proveedor de contenido permiten que la contraseña solo esté compuesta por letras y números. Mientras tanto, el circuito de control 304 implementado en el servidor del agregador de contenido puede utilizar un módulo generador de contraseñas para crear una cadena larga de letras en minúsculas y mayúsculas, números y caracteres especiales. El circuito de control 304 puede preconfigurarse con reglas de contraseña para cada servicio de suscripción. Por ejemplo, una regla de contraseña puede indicar que el primer servicio de suscripción (p. ej., Hulu) permite una contraseña de una longitud máxima de quince caracteres, y que los símbolos & no están permitidos como parte de la contraseña. Según la regla de contraseña del primer servicio de suscripción (p. ej., Hulu), el circuito de control 304 puede generar una contraseña segura (p. ej., «y#E%f4v3Tt$80u») que cumple los requisitos del primer servicio de suscripción. De este modo, la cuenta del usuario en el servidor del proveedor de contenido se vuelve menos susceptible a los intentos de piratería de contraseñas. El nombre de usuario del usuario puede generarse de manera similar para aumentar aún más la seguridad de la información de autenticación del usuario en el servidor del proveedor de contenido.
En algunas realizaciones, el servidor del proveedor de contenido recibe del servicio de agregación de contenido la primera pluralidad de claves de autenticación aceptables. Por ejemplo el circuito de control 304 implementado en el servidor del proveedor de contenido puede recibir periódicamente una lista de claves de autenticación del segundo servicio de suscripción. Por ejemplo, el circuito de control 304 implementado en el servidor del agregador de contenido pueden transmitir diariamente las claves de autenticación asociadas con todos los usuarios nuevos que han creado una cuenta en el segundo servicio de suscripción. En algunos casos, el circuito de control 304 implementado en el servidor del proveedor de contenido puede almacenar la lista recibida de claves de autenticación en la base de datos para comparar la primera clave de autenticación con las claves de autenticación aceptables, como se describió anteriormente.
En algunas realizaciones, la entrada de la base de datos almacenada en el servidor del proveedor de contenido cuenta con un primer campo de la base de datos que incluye un puntero a la primera cuenta de usuario y un segundo campo de la base de datos que incluye la primera clave de autenticación. Tal y como se usa en este documento, el término «puntero» se refiere a datos cuyo valor contiene una dirección de otro valor ubicado en el medio de almacenamiento. Por ejemplo, la entrada de la base de datos en el servidor del proveedor de contenido puede incluir un puntero almacenado en el primer campo de la base de datos que se refiere a una segunda entrada de la base de datos que contiene información sobre la cuenta del usuario, como el nombre de usuario, la contraseña y el nivel de suscripción. La entrada de la base de datos puede incluir un segundo campo que puede contener la primera clave de autenticación. Por ejemplo, la primera clave de autenticación puede almacenarse como un valor en el segundo campo de la base de datos, o alternativamente, el segundo campo de la base de datos puede incluir un puntero a la ubicación de la primera clave de autenticación.
En algunas realizaciones la entrada de la base de datos almacenada en el servidor del proveedor de contenido incorpora un tercer campo de la base de datos que incluye los términos de suscripción para el primer servicio de suscripción. Los términos de suscripción pueden incluir un intervalo de fechas durante el cual un usuario puede acceder al contenido puesto a disposición del usuario por el servicio de suscripción. Por ejemplo, un usuario puede suscribirse al primer servicio de suscripción (p. ej., Hulu) del 1 de enero al 31 de marzo. Además, los términos de suscripción pueden incluir información relacionada con la forma en que un usuario puede acceder al contenido y qué contenido está disponible en función de la suscripción elegida. Por ejemplo, los términos de suscripción pueden especificar que solo pueden acceder al contenido a través de la suscripción del usuario un máximo de cuatro transmisiones. En otro ejemplo, los términos de suscripción pueden indicar que un usuario puede acceder a todo el contenido como parte de la suscripción «prémium», pero debe pagar una cuota para acceder a las películas más recientes si tiene una suscripción «básica». Los términos de la suscripción pueden determinar el precio de la misma; el precio que paga el usuario por suscribirse también puede almacenarse en el tercer campo de la base de datos.
En algunas realizaciones, la solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción se transmite desde el servidor del agregador de contenido sin más intervención del usuario en respuesta a la selección por parte del usuario de un nivel de suscripción para el segundo servicio de suscripción en el servidor del agregador de contenido. Por ejemplo, cuando el usuario introduce información como parte del registro en el segundo servicio de suscripción (p. ej., Rovi Super Aggregator), el circuito de control 304 implementado en el servidor del agregador de contenido puede generar dos niveles de suscripción: un nivel «estándar», que puede incluir una suscripción a un servicio de suscripción, y un nivel «de lujo», que puede incluir suscripción a dos servicios de suscripción. Si la primera suscripción se ofrece solo como parte de la suscripción de nivel «de lujo», el circuito de control 304 implementado en el servidor de agregador de contenido puede transmitir una solicitud del usuario al segundo servicio de suscripción solo en respuesta a la determinación de que el usuario ha seleccionado la suscripción de nivel «de lujo». En un ejemplo diferente, el usuario puede estar ya suscrito al nivel «estándar» de la suscripción. Al conocer que la primera suscripción solo se ofrece como parte de la suscripción de nivel «de lujo», el usuario puede decidir actualizar su suscripción al nivel «de lujo». Al transmitir la solicitud del servidor del agregador de contenido a la primera suscripción sin más aportación por parte del usuario, el circuito de control 304 implementado en el servidor del agregador de contenido puede proporcionar rápidamente al usuario acceso al contenido ofrecido por el primer servicio de suscripción con una aportación mínima por parte del usuario.
En algunas realizaciones, el circuito de control 304 implementado en el servidor del proveedor de contenido puede transmitir del servidor del proveedor de contenido al servidor del agregador de contenido una confirmación en respuesta a la validación de la primera cuenta de usuario. Por ejemplo, una vez que el circuito de control 304 valida la cuenta de usuario, el circuito de control 304 puede transmitir un mensaje que comprende una confirmación al servidor del agregador de contenido. Al transmitir la confirmación, el usuario del segundo servicio puede ser informado de que puede acceder a los medios asociados con el primer servicio de suscripción. En un ejemplo diferente, si el circuito de control 304 implementado en el segundo servicio de suscripción se configurase para acceder al contenido multimedia del primer servicio de suscripción mediante una conexión entre el primer servicio de suscripción y el segundo, el circuito de control 304 implementado en el segundo servicio de suscripción se puede configurar para enumerar los medios del primer servicio de suscripción al recibir la confirmación.
En algunas realizaciones, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recibir una segunda solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario. Los usuarios de un servicio de agregación de contenido pueden sentirse frustrados con la tarea de iniciar sesión manualmente en cada servicio de suscripción de contenido para acceder al contenido. Una conexión directa creada entre un servicio de suscripción y el equipo de televisión del usuario 402 puede ofrecer una experiencia de visualización simplificada para el usuario. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido pueden recibir una solicitud del usuario, enviada desde el servidor del agregador de contenido, para acceder al contenido multimedia (p. ej., un episodio de la serie de televisión «Los Simpson»). En respuesta a la recepción de la solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario, el circuito de control 304 implementado en el servidor del agregador de contenido o en el servidor del proveedor de contenido, puede crear una conexión directa entre el servidor del proveedor de contenido y el equipo de televisión del usuario 402 a través de la red de comunicaciones 414. La conexión directa puede reservar una cierta cantidad de ancho de banda entre el servidor del proveedor de contenido y el equipo de televisión del usuario 402, de modo que siempre se gestione las solicitudes de un usuario para transmitir medios desde el servidor del proveedor de contenido al equipo de televisión del usuario 402, independientemente de las condiciones de red existentes entre el proveedor de contenido y el equipo de televisión del usuario 402. El circuito de control 304 implementado en el servidor del proveedor de contenido puede transferir contenido multimedia al equipo de televisión del usuario 402 usando la conexión directa, sin que tenga lugar más autenticación. Además, al crear una conexión directa y transferir medios desde el servidor del proveedor de contenido al servidor del agregador de contenido, el contenido multimedia puede mostrarse en la interfaz de usuario utilizada para acceder al segundo servicio de suscripción, agilizando la experiencia de visualización para el usuario.
En algunas realizaciones, el circuito de control 304 implementado en el servidor del agregador de contenido puede recuperar una máscara de interfaz de usuario asociada con el primer servicio de suscripción en respuesta a la creación de una conexión directa entre el servidor del proveedor de contenido y el equipo de televisión del usuario 402. Por ejemplo, una máscara de interfaz de usuario asociada con el primer servicio de suscripción puede definir la apariencia visual de los elementos de la interfaz de usuario, como los colores de fondo, la fuente y la ubicación del menú de una interfaz de usuario asociada con el primer servicio de suscripción. Además, la máscara de interfaz puede incluir un logotipo asociado con el primer servicio de suscripción, que se puede mostrar en una ubicación definida en la pantalla, y una paleta de colores asociada con el primer servicio de suscripción, que puede definir el color de fondo de los elementos de la pantalla. El circuito de control 304 puede extraer los parámetros asociados con la máscara de interfaz de usuario y aplicar los parámetros a la máscara de interfaz de usuario asociada con el segundo servicio de suscripción. El circuito de control 304 implementado en el servidor del agregador de contenido puede generar para mostrar listados de contenido multimedia una interfaz de usuario asociada con el segundo servicio de suscripción. De este modo, el primer servicio de suscripción puede controlar la sensación del contenido presentado utilizando el segundo servicio de suscripción.
En algunas realizaciones, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recibir del servidor del agregador de contenido una selección del usuario a través de la primera cuenta de usuario de un listado de contenido multimedia. Por ejemplo, el circuito de control 304 implementado en el servidor del agregador de contenido puede utilizar una conexión creada entre el servidor del proveedor de contenido y el servidor del agregador de contenido para recuperar listados de contenido multimedia del contenido disponible en el servidor del proveedor de contenido. A continuación, el circuito de control 304 implementado en el servidor del agregador de contenido puede detectar una selección de un listado de contenido multimedia realizado por un usuario, en el que el usuario está asociado con la cuenta en el servidor del agregador de contenido. Una vez que el circuito de control 304 implementado en el servidor del agregador de contenido recibe la selección, el circuito de control 304 puede generar para mostrar el recurso multimedia correspondiente al listado de contenido multimedia seleccionado por el usuario. Por ejemplo, el circuito de control 304 implementado en el equipo de televisión del usuario 402 puede recuperar el recurso multimedia usando la conexión directa creada entre el proveedor de contenido y el equipo de televisión del usuario 402. En un caso, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recibir la solicitud de contenido multimedia (p. ej., un episodio de «Los Simpson»). El circuito de control 304 puede empezar a transmitir los medios, transfiriendo porciones de los mismos desde el servidor del proveedor de contenido al equipo de televisión del usuario 402 usando la conexión directa. En un ejemplo diferente, el circuito de control 304 implementado en el servidor del proveedor de contenido puede proporcionar al circuito de control 304 implementado en el servidor del agregador de contenido, una ruta al recurso multimedia. En respuesta, el circuito de control 304 implementado en el servidor del agregador de contenido puede acceder al archivo al que se hace referencia en la ruta y descargar el archivo de medios al servidor del agregador de contenido o, alternativamente, al equipo de televisión del usuario 402, al equipo informático del usuario 404 o al dispositivo de comunicaciones inalámbricas 406.
Las figuras 10 y 11 presentan un algoritmo para el circuito de control (p. ej., el circuito de control 304) para generar una cuenta de usuario en un servidor del proveedor de contenido asociado con un primer servicio de suscripción, antes de que el usuario se suscriba al primer servicio, según algunas realizaciones de la divulgación. En algunas realizaciones, este algoritmo puede codificarse en un medio de almacenamiento no transitorio (p. ej., un dispositivo de almacenamiento 308) como un conjunto de instrucciones que el circuito de procesamiento debe decodificar y ejecutar (p. ej., el circuito de procesamiento 306). Los circuitos de procesamiento pueden proporcionar a su vez instrucciones a otros subcircuitos ubicados dentro del circuito de control 304, como la sintonización, la generación de vídeo, la codificación, la decodificación, el cifrado, el descifrado, el escalado, circuitos de conversión analógico/digital, etc.
El diagrama de flujo de la figura 10 describe un algoritmo para que el circuito de control (p. ej., el circuito de control 304) genere una cuenta en un servidor del proveedor de contenido al recibir una primera clave de autenticación de un servidor del agregador de contenido, según algunas realizaciones de la divulgación.
En el paso 1002, el algoritmo para generar una cuenta en el servidor del proveedor de contenido comenzará tras recibir una primera clave de autenticación de un servidor del agregador de contenido. En algunas realizaciones, esto puede hacerse directa o indirectamente en respuesta a una acción o una entrada del usuario (p. ej., a partir de las señales recibidas por el circuito de control 304 o por la interfaz de entrada del usuario 310). Por ejemplo, el algoritmo puede comenzar directamente en respuesta a el circuito de control 304 que recibe señales de la interfaz de entrada del usuario 310, o el circuito de control 304 puede solicitar al usuario que confirme su entrada usando una pantalla (p. ej., generando un mensaje que se mostrará en la pantalla 312) antes de ejecutar el algoritmo.
En el paso 1004, el circuito de control 304 procede a recuperar la siguiente instancia de una clave de autenticación aceptable de la memoria almacenada. En algunas realizaciones, el circuito de control 304 puede recibir una única estructura de datos primitiva que represente el valor de una clave de autenticación aceptable. En algunas realizaciones, el valor puede almacenarse como parte de una estructura de datos más grande, y el circuito de control 304 puede recuperar el valor ejecutando métodos de acceso apropiados para recuperar el valor de la estructura de datos más grande.
En el paso 1006, el circuito de control 304 compara el valor de la clave de autenticación aceptable recuperada con el valor almacenado de la primera clave de autenticación recibida del servidor del agregador de contenido. En algunas realizaciones, el valor de la primera clave de autenticación recibida del servidor del agregador de contenido puede almacenarse antes de comenzar el algoritmo (p. ej., en el dispositivo de almacenamiento 308). En algunas realizaciones, el valor de la primera clave de autenticación recibida del servidor del agregador de contenido también se puede recuperar para cada instancia de clave de autenticación aceptable, y el valor de la primera clave de autenticación recibida del servidor del agregador de contenido puede cambiar de una iteración a otra. En algunas realizaciones, el circuito de control 304 puede comparar directamente el valor de la primera clave de autenticación recibida del servidor del agregador de contenido, con el valor de la clave de autenticación aceptable accediendo a los valores respectivamente desde la memoria y realizando una comparación de valores. En algunos casos, el circuito de control 304 puede llamar a una función de comparación (p. ej., para la comparación de objeto a objeto) para comparar la clave de autenticación aceptable y la primera clave de autenticación recibida del servidor del agregador de contenido.
En el paso 1008, el circuito de control 304 compara los valores de la clave de autenticación aceptable y la primera clave de autenticación recibida del servidor del agregador de contenido, para determinar si el valor de la clave de autenticación aceptable es igual al valor de la primera clave de autenticación recibida del servidor del agregador de contenido. Si se cumple la condición, el algoritmo puede proceder al paso 1010; en el caso contrario, el algoritmo puede proceder al paso 1012.
En el paso 1010, el circuito de control 304 ejecutará una subrutina para generar la primera cuenta de usuario si se cumple la condición del paso 1008. Tras ejecutar la subrutina, el algoritmo puede continuar con el paso 1012, donde se determina si se tienen en cuenta todas las instancias de clave de autenticación aceptable y si se necesitan más iteraciones.
En el paso 1014, el circuito de control 304 ejecutará una subrutina para almacenar la cuenta de usuario, si el circuito de control 304 generó previamente la cuenta de usuario en el paso 1010.
Se contempla que las descripciones de la figura 10 puedan usarse con cualquier otra realización de esta divulgación. Además, las descripciones realizadas en relación con el algoritmo de la figura 10 pueden hacerse en órdenes alternativas o en paralelo para promover los propósitos de esta divulgación. Por ejemplo, las declaraciones condicionales y las evaluaciones lógicas, como las de 1008, se pueden realizar en cualquier orden o en paralelo o simultáneamente para reducir el retardo o para aumentar la velocidad del sistema o del método. Como ejemplo adicional, en algunas realizaciones se podrían evaluar en paralelo varias instancias de la clave de autenticación aceptable usando múltiples subprocesos de procesamiento lógicos, o se podría mejorar el algoritmo incorporando la predicción de saltos. Además, conviene destacar que el algoritmo de la figura 10 puede implementarse en una combinación de software y hardware configurados adecuadamente, y que cualquiera de los dispositivos o equipos comentados en relación con las figuras 3-4 podría usarse para implementar una o más porciones del algoritmo.
El pseudocódigo de la figura 11 describe un algoritmo para generar una cuenta en un servidor del proveedor de contenido al recibir una primera clave de autenticación de un servidor del agregador de contenido, según algunas realizaciones de la divulgación. Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 11 puede implementarse en cualquier lenguaje de programación y en distintos hardwares, y que el estilo y el formato no deberían interpretarse como limitantes, sino más bien como una plantilla general de los pasos y procedimientos que serían consistentes con el código utilizado para implementar algunas realizaciones de esta divulgación.
En la línea 1101, el algoritmo puede ejecutar una subrutina para inicializar variables y prepararse para generar una cuenta de un servidor del proveedor de contenido previa recepción de una primera clave de autenticación de un servidor del agregador de contenido, que comienza en la línea 1105. Por ejemplo, en algunas realizaciones, el circuito de control 304 puede copiar instrucciones del medio de almacenamiento no transitorio (p. ej., el dispositivo de almacenamiento 308) en la RAM o en la caché para procesar los circuitos 306 durante la etapa de inicialización. Además, en algunas realizaciones, el valor de la primera clave de autenticación que se usa para la comparación, o un nivel de tolerancia para determinar si dos valores son esencialmente equivalentes, puede recuperarse, establecerse y almacenarse en 1101.
En la línea 1105, el circuito de control 304 podría recibir instancias de una clave de autenticación aceptable. En algunas realizaciones, estas instancias pueden recuperarse de la memoria almacenada. El circuito de control 304 puede recibir instancias de una clave de autenticación aceptable recibiendo, por ejemplo, un puntero a una matriz de valores de una clave de autenticación aceptable. En otro ejemplo, el circuito de control 304 puede recibir un objeto de una clase, como un objeto iterador que contiene elementos de una clave de autenticación aceptable.
En la línea 1106, el circuito de control 304 puede iterar a través de las diversas instancias de una clave de autenticación aceptable; si solo hay una instancia disponible, el bucle solo se ejecutará una vez. Este bucle puede implementarse de múltiples maneras dependiendo de la elección del hardware y del lenguaje del software utilizado para implementar el algoritmo de la figura 11; por ejemplo, esto puede implementarse como parte de un bucle «para» o «mientras». En la línea 1107, el circuito de control 304 almacenará el valor de una clave de autenticación aceptable en una variable temporal «A». En algunas realizaciones, el valor de una clave de autenticación aceptable se almacenará como parte de una clase o estructura de datos más grande, y el valor de una clave de autenticación aceptable se puede obtener a través de métodos de acceso apropiados. En algunas realizaciones, una clave de autenticación aceptable se puede convertir de una cadena u otro tipo de datos no numéricos a un tipo de datos numéricos por medio de un algoritmo de hash apropiado. En algunas realizaciones, el circuito de control 304 puede llamar a una función para realizar una comparación de una clave de autenticación aceptable con la primera clave de autenticación. En algunas realizaciones, la clave de autenticación aceptable puede codificarse como una estructura de datos primitiva, y en lugar de usar una variable temporal, la clave de autenticación aceptable puede usarse directamente en las comparaciones en la línea 1109.
En la línea 1108, el circuito de control 304 almacenará el valor de la primera clave de autenticación en una variable temporal «B». Al igual que en el caso de una clave de autenticación aceptable, en algunas realizaciones, el valor de la primera clave de autenticación se almacenará como parte de una clase o estructura de datos más grande, y el valor de la primera clave de autenticación se puede obtener a través de métodos de acceso apropiados. En algunas realizaciones, la primera clave de autenticación puede convertirse de una cadena u otro tipo de datos no numéricos en un tipo de datos numéricos por medio de un algoritmo de hash apropiado, o la primera clave de autenticación puede ser una estructura de datos primitiva, y puede ser utilizada directamente en las comparaciones en la línea 1109. En la línea 1109, el circuito de control 304 compara el valor de A con el valor de B para ver si son equivalentes. En la línea 1110, el circuito de control 304 ejecutará una subrutina para generar la primera cuenta de usuario si se cumple la condición de la línea 1109.
En la línea 1112, el circuito de control 304 ejecutará una subrutina para recuperar la siguiente clave de autenticación aceptable si no se cumple la condición de la línea 1109.
En la línea 1113, el circuito de control 304 ejecutará una subrutina para almacenar la cuenta de usuario generada, si el circuito de control 304 hubiese generado previamente la cuenta de usuario en la línea 1110. El circuito de control 304 puede almacenar la cuenta en el medio de almacenamiento 308.
En la línea 1115, el circuito de control 304 puede ejecutar una subrutina de terminación después de que el algoritmo haya realizado su función. Por ejemplo, en algunas realizaciones, el circuito de control 304 podría destruir variables, recolectar basura, liberar memoria o borrar el caché del circuito de procesamiento 306.
Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 11 puede implementarse en cualquier lenguaje de programación y distintos hardwares, y la elección particular y la ubicación de las funciones primitivas, las evaluaciones lógicas y las evaluaciones de funciones no están destinadas a ser limitantes. También será evidente que el código se puede refactorizar o reescribir para manipular el orden de las diversas evaluaciones lógicas, para realizar varias iteraciones en paralelo en lugar de en un solo bucle iterativo, o para manipular y optimizar las métricas de rendimiento y tiempo de ejecución fundamentalmente sin cambiar las entradas o salidas finales. Por ejemplo, en algunas realizaciones, las condiciones de interrupción pueden colocarse después de las líneas 1110 y 1112 para acelerar la operación, o la declaración condicional puede reemplazarse por un cambio de mayúsculas y minúsculas. En algunas realizaciones, en lugar de iterar sobre todas las instancias de la marca de una clave de autenticación aceptable en el paso 1006, en algunas realizaciones, el código puede reescribirse para que el circuito de control 304 reciba instrucciones de evaluar múltiples instancias de claves de autenticación aceptables de manera simultánea en varios procesadores o subprocesos de procesamiento, reduciendo el número de iteraciones necesarias y acelerando potencialmente el tiempo de cálculo.
Las figuras 12 y 13 muestran un algoritmo para el circuito de control (p. ej., el circuito de control 304) para validar una primera cuenta de usuario basada en una solicitud utilizando una base de datos que contiene posibles valores de claves de autenticación según algunas realizaciones de la divulgación. De manera similar a los algoritmos descritos por las figuras 10 y 11, en algunas realizaciones este algoritmo puede codificarse en un medio de almacenamiento no transitorio (p. ej., el dispositivo de almacenamiento 308) como un conjunto de instrucciones para decodificar y ejecutar mediante un circuito de procesamiento (p. ej., el circuito de procesamiento 306). Los circuitos de procesamiento pueden proporcionar a su vez instrucciones a otros subcircuitos ubicados dentro del circuito de control 304, como la sintonización, la generación de vídeo, la codificación, la decodificación, el cifrado, el descifrado, el escalado, circuitos de conversión analógico/digital, y similares.
El diagrama de flujo de la figura 12 describe un algoritmo para el circuito de control (p. ej., el circuito de control 304) para buscar una base de datos y validar una primera cuenta de usuario en base a una solicitud según algunas realizaciones de la divulgación.
En el paso 1202, el algoritmo para buscar en una base de datos y validar una primera cuenta de usuario comenzará a raíz de una solicitud. En algunas realizaciones, esto puede hacerse directa o indirectamente en respuesta a una acción o entrada del usuario (p. ej., de las señales recibidas por el circuito de control 304 o la interfaz de entrada de usuario 310).
En el paso 1204, el circuito de control 304 procede a recuperar la siguiente instancia de la siguiente clave de autenticación de la memoria almacenada. En algunas realizaciones, el circuito de control 304 puede recibir una única estructura de datos primitiva que represente el valor de una clave de autenticación. En algunas realizaciones, el circuito de control 304 puede recuperar el valor de una clase o estructura de datos más grande.
En el paso 1206, el circuito de control 304 accede a una base de datos que contiene posibles valores del tipo de la clave de autenticación. En algunas realizaciones, esta base de datos puede almacenarse localmente (p. ej., en el dispositivo de almacenamiento 308) antes de comenzar el algoritmo. En algunas realizaciones, también se puede acceder a la base de datos usando circuitos de comunicaciones para transmitir información a través de una red de comunicaciones (p. ej., la red de comunicaciones 414) a una base de datos implementada en un dispositivo de almacenamiento remoto (p. ej., el agregador de contenido 430).
En el paso 1208, el circuito de control 304 busca en las tablas de la base de datos entradas que coincidan con la clave de autenticación. En algunas realizaciones, esto se puede hacer comparando un identificador, por ejemplo, una cadena o un número entero que represente la clave de autenticación, que coincida con los tipos de identificadores utilizados dentro de la base de datos. En algunas realizaciones, el circuito de control 304 puede enviar una consulta general a la base de datos sobre entradas de tabla que coincidan con la clave de autenticación, y el circuito de control 304 puede recibir una lista de índices o una estructura de datos que contenga una porción del contenido de la base de datos. En algunas realizaciones, la base de datos puede implementar una tabla de unión que a su vez hace referencias cruzadas de entradas de otras bases de datos. En este caso, el circuito de control 304 puede recuperar índices de una primera base de datos que, a su vez, pueden usarse para recuperar información de una segunda base de datos. Aunque podemos describir el circuito de control 304 que interactúa con una única base de datos para una mayor claridad, se entiende que el algoritmo de la figura 12 se puede implementar utilizando múltiples bases de datos independientes o con referencias cruzadas.
En el paso 1210, el circuito de control 304 puede determinar si existen en la base de datos entradas que coincidan con la clave de autenticación. En algunas realizaciones, el circuito de control 304 puede recibir una señal de la base de datos que indique que no hay entradas coincidentes. En algunas realizaciones, el circuito de control 304 puede recibir en su lugar una lista de índices o estructuras de datos con un valor NULO o ficticio. Si el circuito de control 304 identifica que hay entradas de la base de datos que coinciden con la clave de autenticación, el algoritmo continúa procede con el paso1212; de lo contrario, el algoritmo continúa con el paso 1214.
En el paso 1212, el circuito de control 304 ejecutará una subrutina para validar la cuenta del usuario. Posteriormente, el algoritmo puede proceder al paso 1214, donde se determina si hay más instancias de la clave de autenticación que deban tenerse en cuenta.
En el paso 1214, el circuito de control 304 determinará si se tienen en cuenta todas las instancias de la clave de autenticación y si se necesitan más iteraciones. Si se necesitan más iteraciones, el algoritmo volverá al paso 1204, donde el circuito de control 304 recuperará la siguiente instancia de la clave de autenticación. Si no se necesitan más iteraciones, el algoritmo continuará con el paso 1216.
En el paso 1216, el circuito de control 304 ejecutará una subrutina para otorgar acceso a la primera suscripción. Se contempla que las descripciones de la figura 12 puedan usarse con cualquier otra realización de esta divulgación. Además, las descripciones realizadas en relación con el algoritmo de la figura 12 pueden hacerse en órdenes alternativas o en paralelo para promover los propósitos de esta divulgación. Por ejemplo, el circuito de control 304 puede enviar varias consultas a la base de datos en paralelo, o bien enviar múltiples consultas a varias bases de datos similares para reducir el retardo y acelerar la ejecución del algoritmo. Además, conviene destacar que el algoritmo de la figura 12 puede implementarse en una combinación de software y hardware configurados adecuadamente, y que cualquiera de los dispositivos o equipos comentados en relación con las figuras 3-4 podría usarse para implementar una o más porciones del algoritmo.
El pseudocódigo de la figura 13 describe un algoritmo para validar una primera cuenta de usuario basada en una solicitud según algunas realizaciones de la divulgación. Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 13 puede implementarse en cualquier lenguaje de programación y en distintos hardwares, y que el estilo y el formato no deberían interpretarse como limitantes, sino más bien como una plantilla general de los pasos y procedimientos que serían consistentes con el código utilizado para implementar algunas realizaciones de esta divulgación.
En la línea 1301, el algoritmo puede ejecutar una subrutina para inicializar variables y prepararse para validar la primera cuenta del usuario en base a la solicitud, que comienza en la línea 1305. Por ejemplo, en algunas realizaciones, el circuito de control 304 puede copiar instrucciones del medio de almacenamiento no transitorio (p. ej., dispositivo de almacenamiento 308) en la RAM o en la caché para procesar los circuitos 306 durante la etapa de inicialización. En la línea 1305, el circuito de control 304 podría recibir instancias claves de autenticación aceptables. En algunas realizaciones, estas instancias pueden recuperarse de la memoria almacenada.
En la línea 1306, el circuito de control 304 pueden recorrer en iteración las diversas instancias de claves de autenticación aceptables; Si solo hay una instancia disponible, el bucle solo se ejecutará una vez. Este bucle puede implementarse de múltiples maneras dependiendo de la elección del hardware y del lenguaje del software utilizado para implementar el algoritmo de la figura 13; por ejemplo, esto puede implementarse como parte de un bucle «para» o «mientras» en algunos lenguajes de programación. En algunas realizaciones, puede ser conveniente almacenar las instancias de claves de autenticación aceptables en una sola clase o estructura de datos encapsulados que realizará el bucle como parte de un método interno.
En la línea 1307, el circuito de control 304 puede buscar en la base de datos entradas que coincidan con claves de autenticación aceptables. Dependiendo de cómo se implemente la base de datos y de cómo se almacenen las claves de autenticación aceptables, podría ser necesario un paso puntual para convertir las claves de autenticación aceptables en un formulario coherente con la base de datos. Por ejemplo, las claves de autenticación aceptables pueden codificarse en una cadena o un entero utilizando un algoritmo de hash apropiado antes de transmitirse a la base de datos mediante el circuito de control 304 como parte de una consulta. En algunas realizaciones, las claves de autenticación aceptables pueden codificarse como una estructura de datos primitiva, y el circuito de control 304 puede enviar claves de autenticación aceptables como una consulta directamente a la base de datos. Después de consultar la base de datos, el circuito de control 304 puede recibir un conjunto de entradas de la base de datos que coinciden con las claves de autenticación aceptables. En algunas realizaciones, el circuito de control 304 puede recibir estas entradas en forma de una estructura de datos, un conjunto de índices de la base de datos o un conjunto de índices de otra base de datos con referencias cruzadas.
En la línea 1309, el circuito de control 304 determinará si existen entradas de la base de datos que coincidan con las claves de autenticación aceptables. En algunas realizaciones, el circuito de control 304 puede determinar esto comprobando si la base de datos devolvió una estructura de datos vacía o un valor NULO en respuesta a la consulta realizada en la línea 1309. Si hay entradas coincidentes en la base de datos, el algoritmo puede proceder a la línea 1309. Si no hay entradas coincidentes en la base de datos, el algoritmo puede proceder a la línea 1312.
En la línea 1309, el circuito de control 304 puede recuperar uno o más valores de la primera clave de autenticación de las entradas de la base de datos que coincidan con las claves de autenticación aceptables. Por ejemplo, si el circuito de control 304 recupera una lista de índices después de consultar la base de datos en la línea 1307, en algunas realizaciones, el circuito de control 304 puede recuperar las entradas de la base de datos para la primera clave de autenticación ubicada en los índices recibidos. En algunas realizaciones, los índices pueden apuntar a una estructura de datos más grande contenida dentro de la base de datos, y el circuito de control 304 puede recuperar los valores de la primera clave de autenticación desde dentro de la estructura de datos usando métodos de acceso apropiados. En algunas realizaciones, el circuito de control 304 puede recuperar los valores de la primera clave de autenticación y almacenarlos localmente en una estructura de datos independiente (p. ej., en almacenamiento 308) antes de continuar. Después de recuperar los valores de la primera clave de autenticación, el algoritmo pasará a la línea 1310.
En la línea 1310, el circuito de control 304 ejecutará una subrutina para usar los valores de la primera clave de autenticación y validar la primera cuenta de usuario usando el circuito de control. Posteriormente, el algoritmo puede proceder a la línea 1313.
En la línea 1312, el circuito de control 304 ejecutará una subrutina para recuperar la siguiente clave de autenticación permitida usando el circuito de control 304 si no se cumple la condición de la línea 1309.
En la línea paso 1313, el circuito de control 304 ejecutará una subrutina para otorgar acceso a la primera cuenta del usuario. Posteriormente, el algoritmo puede proceder a la rutina de finalización en la línea 1315.
En la línea 1315, el circuito de control 304 puede ejecutar una subrutina de finalización después de que el algoritmo haya realizado su función y todas las instancias de claves de autenticación aceptables hayan sido procesadas y verificadas con la base de datos. Por ejemplo, en algunas realizaciones, el circuito de control 304 podría destruir variables, recolectar basura, liberar memoria o borrar el caché del circuito de procesamiento 306.
Para un experto en la materia será evidente que el algoritmo descrito por el pseudocódigo de la figura 13 puede implementarse en cualquier lenguaje de programación y distintos hardwares, y la elección particular y la ubicación de las funciones primitivas, las evaluaciones lógicas y las evaluaciones de funciones no están destinadas a ser limitantes. También será evidente que el código se puede refactorizar o reescribir para manipular el orden de las diversas evaluaciones lógicas, para realizar varias iteraciones en paralelo en lugar de en un solo bucle iterativo, o para manipular y optimizar las métricas de rendimiento y tiempo de ejecución fundamentalmente sin cambiar las entradas o salidas finales. Por ejemplo, en algunas realizaciones, el código puede reescribirse para que el circuito de control 304 reciba instrucciones de evaluar múltiples instancias de las claves de autenticación aceptables y envíe varias consultas a la base de datos simultáneamente usando varios procesadores o subprocesos. También se entiende que aunque podemos describir el circuito de control 304 que interactúa con una única base de datos, esta es solo una realización descrita con fines ilustrativos, y el algoritmo de la figura 13 puede implementarse utilizando múltiples bases de datos independientes o con referencias cruzadas. Por ejemplo, una base de datos almacenada localmente (p. ej., en el medio de almacenamiento 308) puede indexar o hacer referencias cruzadas de una base de datos almacenada remotamente (p. ej., el agregador de contenido 430), al que se puede acceder a través de cualquier número de canales de comunicación (p. Ej., la red de comunicaciones 414). En algunas realizaciones, esto puede permitir que el circuito de control 304 utilice una tabla de búsqueda o un frontal de base de datos almacenados eficientemente en un pequeño disco local para acceder a una base de datos mayor almacenada en un servidor remoto por demanda.
La figura 14 es un diagrama de flujo de pasos ilustrativos implicados en la generación y validación de una primera cuenta de usuario en un primer servicio de suscripción. Debe observarse que el proceso 1400 o cualquier paso del mismo podría realizarse en cualquiera de los dispositivos mostrados en las figuras 3-4, o bien podría ser proporcionado por ellos. Por ejemplo, el circuito de control 304 puede ejecutar el proceso 1400 (figura 3) siguiendo las instrucciones del circuito de control implementado en los equipos del usuario 402, 404 y/o 406 (figura 4) para detectar cuándo el número de instancias supera un determinado número, y para transmitir un mensaje a un dispositivo. Además, es posible incorporar uno o más pasos del proceso 1400, o combinarlos con uno o más pasos de cualquier otro proceso o realización.
El proceso 1400 comienza en el paso 1402, donde el circuito de control 304 recibe una primera clave de autenticación de un servidor del agregador de contenido. Por ejemplo, la entidad que ofrece el segundo servicio de suscripción (p. ej., Rovi Super Aggregator) puede llegar a un acuerdo con la entidad del primer servicio de suscripción (p. ej., Hulu) para ofrecer a los usuarios del segundo servicio de suscripción una suscripción con descuento al primer servicio de suscripción. Antes de que el usuario se suscriba al primer servicio de suscripción, el circuito de control 304 implementado en el servidor del agregador de contenido transmite una primera clave de autenticación al servidor del agregador de contenido.
En el paso 1404, el circuito de control 304 compara la primera clave de autenticación con varias claves de autenticación aceptables. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede extraer información almacenada en la primera clave de autenticación y determinar el nombre del servicio de suscripción (p. ej., Rovi Super Aggregator) que se enumera en la parte de la clave relacionada con el identificador del segundo servicio de suscripción. A continuación, el circuito de control 304 recupera una lista de servicios de suscripción que el circuito de control 304 hubiese identificado previamente para permitirle generar cuentas en el primer servicio de suscripción, y comparar el nombre del servicio de suscripción con cada servicio de suscripción en la lista recuperada. En efecto, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recibir de forma segura información sobre nuevos usuarios de los agregadores de contenido (es decir, el segundo servicio de suscripción), mientras mantiene el control sobre las cuentas que se crean. Por ejemplo, un primer servicio de suscripción puede celebrar un acuerdo con un segundo servicio de suscripción para ofrecer suscripciones en el primer servicio de suscripción a un precio reducido. Al encapsular información sobre el segundo servicio de suscripción en la clave de autenticación, el primer servicio de suscripción garantiza que solo se creen cuentas de usuarios asociados con agregadores de contenido de confianza.
En el paso 1406, el circuito de control 304, en respuesta a la determinación de que la primera clave de autenticación coincide con una de la primera pluralidad de claves de autenticación aceptables, genera una primera cuenta de usuario. Por ejemplo, el circuito de control 304 puede extraer la información contenida en la clave de autenticación, como el nombre de usuario, la contraseña y el nombre del servicio de suscripción, para crear la información necesaria para generar una cuenta en el servidor del proveedor de contenido. En algunos casos, el circuito de control 304 puede almacenar una indicación asociada con la primera cuenta, especificando que la cuenta aún no está validada.
En el paso 1408, el circuito de control 304 almacena la primera cuenta de usuario en una entrada de la base de datos; por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede almacenar la información relacionada con la cuenta de usuario generada en una entrada almacenada en una base de datos. El circuito de control también 304 también puede asociar la cuenta de usuario con la clave de autenticación, por ejemplo, almacenando un puntero a la ubicación de la clave de autenticación en la entrada de la base de datos asociada con la cuenta de usuario. Al asociar la cuenta de usuario almacenada con la primera clave de autenticación, el circuito de control 304 implementado en el servidor del agregador de contenido puede garantizar que la cuenta pueda validarse rápidamente en caso de que la segunda suscripción o el usuario decida validar la cuenta en el primer servicio de suscripción. En algunos casos, el circuito de control 304 puede almacenar la primera clave de autenticación en una ubicación del medio de almacenamiento 308, donde la ubicación se identifica mediante una ruta. El circuito de control 304 puede almacenar la ruta a la ubicación en una entrada de la base de datos correspondiente a la primera cuenta de usuario.
En el paso 1410, tras almacenar la primera cuenta de usuario, el circuito de control 304, recibe una solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción. El circuito de control 304 puede recibir la segunda clave de autenticación en respuesta a una solicitud del usuario para suscribirse al primer servicio de suscripción. Por ejemplo, el circuito de control 304 implementado en el servidor del agregador de contenido puede detectar que un usuario del segundo servicio de suscripción (p.ej., Rovi Super Aggregator) desea suscribirse al primer servicio de suscripción (p. ej., Hulu). En un ejemplo diferente, el circuito de control 304 implementado en el segundo servicio puede enviar automáticamente una solicitud al primer servicio, cuando el coste de suscribirse al primer servicio cumpla un criterio de costes. El circuito de control 304 del primer servicio de suscripción puede descifrar la información almacenada en la segunda clave, recuperarla y almacenar la clave de autenticación en el servidor del proveedor de contenido.
En el paso 1412, el circuito de control 304 compara la primera clave de autenticación con la segunda. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede recuperar información de la segunda clave relacionada con el nombre del usuario asociado con la clave y, a continuación, puede consultar la base de datos para determinar si existe una cuenta asociada con el usuario identificado. Opcionalmente, el circuito de control 304 puede recuperar la primera clave de autenticación (es decir, desde el medio de almacenamiento 308 o desde la base de datos) asociada con la cuenta del usuario identificado. El circuito de control 304 también puede comparar la segunda clave de autenticación con la primera, descifrando o no los datos almacenados en las claves. En el paso 1414, el circuito de control 304, en respuesta a la determinación de que la primera clave de autenticación coincide con la segunda, valida la primera cuenta de usuario. Por ejemplo, en base a la comparación de la primera clave de autenticación con la segunda, el circuito de control 304 implementado en el servidor del proveedor de contenido puede identificar la cuenta de usuario asociada con cualquiera de las claves. A continuación el circuito de control 304 puede consultar la base de datos para identificar la cuenta y almacenar una indicación que especifique que la cuenta ha sido validada. En un ejemplo, el circuito de control 304 puede identificar un registro de la base de datos asociado con la cuenta identificada y establecer el campo asociada con si la cuenta está validada (p. ej., el campo ESTÁ_VALIDADA) en un valor que indique que la cuenta está validada.
En el paso 1416, el circuito de control 304, en respuesta a la validación de la primera cuenta de usuario, otorga acceso al primer servicio de suscripción. Por ejemplo, el circuito de control 304 implementado en el servidor del proveedor de contenido puede generar y transmitir un mensaje al servidor del agregador, indicando que la cuenta está disponible para su uso. Por lo tanto, el circuito de control 304 implementado en el servidor del proveedor de contenido puede notificar al usuario que puede acceder a las ofertas del segundo servicio de suscripción.
Se contempla que los pasos o las descripciones de la figura 14 puedan usarse con cualquier otra realización de esta divulgación. Además, los pasos y las descripciones descritos en relación con la figura 14 pueden hacerse en órdenes alternativas o en paralelo para promover los propósitos de esta divulgación. Por ejemplo, cada uno de estos pasos se puede realizar en cualquier orden o en paralelo o simultáneamente para reducir el retardo o para aumentar la velocidad del sistema o del método.

Claims (15)

REIVINDICACIONES
1. Un sistema (400) para administrar la información de credenciales a través de múltiples servicios de suscripción, que incluya:
medios (304) para recibir en un servidor del proveedor de contenido que esté asociado con un primer servicio de suscripción, una primera clave de autenticación de un servidor del agregador de contenido que esté asociado con un segundo servicio de suscripción, en el que la primera clave de autenticación se reciba antes que un usuario se suscriba al primer servicio de suscripción;
medios (304) para comparar la primera clave de autenticación con una primera pluralidad de claves de autenticación aceptables para determinar si generar o no una primera cuenta de usuario para el primer servicio de suscripción en base a la primera clave de autenticación;
medios (304) para generar, en el servidor del proveedor de contenido, la primera cuenta de usuario en respuesta a la determinación de que la primera clave de autenticación coincide con una de la primera pluralidad de claves de autenticación aceptables;
medios (304) para almacenar, en el servidor del proveedor de contenido, la primera cuenta de usuario en una entrada de la base de datos que indica que la primera cuenta de usuario corresponde a la primera clave de autenticación;
medios (304) para recibir, en el servidor del proveedor de contenido y tras almacenar la primera cuenta de usuario, una solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción, en el que la solicitud incluye una segunda clave de autenticación;
medios (304) para comparar la primera clave de autenticación con la segunda;
medios (304) para validar la primera cuenta de usuario en respuesta a la determinación de que la primera clave de autenticación coincide con la segunda; y
medios (304) para otorgar acceso al primer servicio de suscripción a través de la primera cuenta de usuario en respuesta a la validación de la misma.
2. El sistema (400) de la reivindicación 1, en la que:
la primera clave de autenticación es una clave de cifrado basada en un nombre de usuario y contraseña para el usuario asignados por el segundo servicio de suscripción; y/o
el servidor del proveedor de contenido recibe del servicio de agregación de contenido la primera pluralidad de claves de autenticación aceptables.
3. El sistema (400) de las reivindicaciones 1 o 2, en el que la entrada de la base de datos incluye:
un primer campo que incluye un puntero a la primera cuenta de usuario y un segundo campo que incluye la primera clave de autenticación; y/o
un tercer campo que incluye los términos de suscripción para el primer servicio de suscripción.
4. El sistema (400) de las reivindicaciones 1, 2 o 3, donde:
el sistema está configurado para transmitir la solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio, sin más intervención del usuario, en respuesta a la selección por parte del usuario de un nivel de suscripción para el segundo servicio de suscripción en el servidor del agregador de contenido; y/o
el sistema también incluye medios (304) para transmitir, desde el servidor del proveedor de contenido, una segunda confirmación del servicio de suscripción al servidor del agregador de contenido, en respuesta a la validación de la primera cuenta de usuario.
5. El sistema (400) de cualquiera de las reivindicaciones anteriores, que además comprende:
medios (304) para recibir una segunda solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario; y
medios (304) para crear una conexión directa entre un dispositivo del equipo del usuario (402) y el servidor del agregador de contenido en respuesta a la recepción de la segunda solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario.
6. El sistema de la reivindicación 5 que comprende además:
medios (304) para recuperar una máscara de interfaz de usuario asociada con el primer servicio de suscripción en respuesta a una conexión directa entre el servidor del proveedor de contenido y el dispositivo del equipo del usuario (402); y
medios (304) para generar para mostrar listados de contenido multimedia usando la máscara de interfaz de usuario.
7. El sistema de la reivindicación 6 que comprende además:
medios (304) para recibir, desde el servidor del agregador de contenido, una selección del usuario a través de la primera cuenta de usuario de un listado de contenido multimedia; y
medios (304) para generar para mostrar un recurso multimedia correspondiente al listado de contenido de medios,
8. Un método para administrar la información de credenciales a través de múltiples servicios de suscripción, que incluya:
recibir en un servidor del proveedor de contenido que esté asociado con un primer servicio de suscripción, una primera clave de autenticación de un servidor del agregador de contenido que esté asociado con un segundo servicio de suscripción, en el que la primera clave de autenticación se reciba antes que un usuario se suscriba al primer servicio de suscripción;
comparar la primera clave de autenticación con una primera pluralidad de claves de autenticación aceptables para determinar si generar o no una primera cuenta de usuario para el primer servicio de suscripción en base a la primera clave de autenticación:
en respuesta a la determinación de que la primera clave de autenticación coincida con una de la primera pluralidad de claves de autenticación aceptables, generando en el servidor del proveedor de contenido la primera cuenta de usuario;
almacenar, en el servidor del proveedor de contenido, la primera cuenta de usuario en una entrada de la base de datos que indica que la primera cuenta de usuario corresponde a la primera clave de autenticación;
tras almacenar la primera cuenta de usuario, recibir en el servidor del proveedor de contenido, una solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción, en el que la solicitud incluye una segunda clave de autenticación;
comparar la primera clave de autenticación con la segunda;
en respuesta a la determinación de que la primera clave de autenticación coincide con la segunda, validando la primera cuenta de usuario; y
en respuesta a la validación de la primera cuenta de usuario, otorgando acceso al primer servicio de suscripción a través de la primera cuenta de usuario.
9. El método de la reivindicación número 8, donde:
la primera clave de autenticación es una clave de cifrado basada en un nombre de usuario y contraseña para el usuario asignados por el segundo servicio de suscripción; y/o
el servidor del proveedor de contenido recibe del servicio de agregación de contenido la primera pluralidad de claves de autenticación aceptables.
10. El método de las reivindicaciones 8 o 9, en las que: la entrada en la base de datos incluye:
un primer campo que incluye un puntero a la primera cuenta de usuario y un segundo campo que incluye la primera clave de autenticación; y/o
un tercer campo que incluye los términos de suscripción para el primer servicio de suscripción.
11. El método de las reivindicaciones 8, 9 o 10, donde:
la solicitud del servidor del agregador de contenido para suscribir al usuario al primer servicio de suscripción se transmite desde el servidor del agregador de contenido sin más intervención del usuario en respuesta a la selección por parte del usuario de un nivel de suscripción para el segundo servicio de suscripción en el servidor del agregador de contenido; y/o,
el método también incluye medios para transmitir, desde el servidor del proveedor de contenido, una segunda confirmación del servicio de suscripción al servidor del agregador de contenido, en respuesta a la validación de la primera cuenta de usuario.
12. El método de cualquier reivindicación de la 8 a la 11, que también incluye:
recibir una segunda solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario; y
en respuesta a la recepción de la segunda solicitud del servidor del agregador de contenido para acceder al contenido multimedia del primer servicio de suscripción a través de la primera cuenta de usuario, creando una conexión directa entre el servidor del proveedor de contenido y un dispositivo del equipo del usuario (402).
13. El método de la reivindicación 12, que comprende además:
recuperar una máscara de interfaz de usuario asociada con el primer servicio de suscripción en respuesta a una conexión directa entre el servidor del proveedor de contenido y el dispositivo del equipo del usuario (402); y
generar para mostrar listados de contenido multimedia usando la máscara de interfaz de usuario.
14. El método de la reivindicación 13, que comprende además:
recibir, desde el servidor del agregador de contenido, una selección del usuario a través de la primera cuenta de usuario de un listado de contenido multimedia; y
generar para mostrar un recurso multimedia correspondiente al listado de contenido de medios.
15. Un programa informático que incluya instrucciones legibles por ordenador que, cuando se ejecute mediante circuitos de procesamiento (306), haga que estos lleven a cabo el método de cualquiera de las reivindicaciones 8-14.
ES16798852T 2015-10-30 2016-10-24 Métodos y sistemas para la gestión de datos de suscripción a contenidos Active ES2753623T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/928,930 US9813396B2 (en) 2015-10-30 2015-10-30 Methods and systems for managing content subscription data
US14/928,934 US10178421B2 (en) 2015-10-30 2015-10-30 Methods and systems for monitoring content subscription usage
PCT/US2016/058385 WO2017074839A1 (en) 2015-10-30 2016-10-24 Methods and systems for managing content subscription data

Publications (1)

Publication Number Publication Date
ES2753623T3 true ES2753623T3 (es) 2020-04-13

Family

ID=57389505

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16798852T Active ES2753623T3 (es) 2015-10-30 2016-10-24 Métodos y sistemas para la gestión de datos de suscripción a contenidos

Country Status (10)

Country Link
EP (1) EP3369233B1 (es)
JP (5) JP6820279B2 (es)
KR (4) KR102622318B1 (es)
CN (1) CN107710717A (es)
AU (3) AU2016347023B2 (es)
CA (2) CA3286297A1 (es)
DK (1) DK3369233T3 (es)
ES (1) ES2753623T3 (es)
PT (1) PT3369233T (es)
WO (1) WO2017074839A1 (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT3369233T (pt) * 2015-10-30 2019-11-04 Rovi Guides Inc Métodos e sistemas para gerir dados de subscrição de conteúdos
US10999182B2 (en) 2019-05-13 2021-05-04 128 Technology, Inc. Routing using segment-based metrics
US12137045B2 (en) 2019-05-13 2024-11-05 Juniper Networks, Inc. Metric-based multi-hop path selection
CN112581150A (zh) * 2019-09-27 2021-03-30 北京国双科技有限公司 一种信息管理方法、装置、设备及存储介质
WO2021189070A1 (en) * 2020-03-19 2021-09-23 Sonos, Inc. Cloud-based video user interfaces
EP4146911A4 (en) * 2020-05-07 2023-12-27 Services Pétroliers Schlumberger SECURE PLATFORM FOR DATA DELIVERY
US11418942B2 (en) * 2020-12-22 2022-08-16 T-Mobile Usa, Inc. Protecting a user data repository (UDR) from over-accumulation of subscription requests in a standalone 5G network
KR102626527B1 (ko) * 2020-12-31 2024-01-18 주식회사 카카오 다중 구독 서비스를 제공하는 방법 및 장치
US20220400316A1 (en) * 2021-06-10 2022-12-15 Sony Group Corporation Personal program and channel guide database

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6239794B1 (en) 1994-08-31 2001-05-29 E Guide, Inc. Method and system for simultaneously displaying a television program and information about the program
US6388714B1 (en) 1995-10-02 2002-05-14 Starsight Telecast Inc Interactive computer system for providing television schedule information
US6177931B1 (en) 1996-12-19 2001-01-23 Index Systems, Inc. Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information
US6564378B1 (en) 1997-12-08 2003-05-13 United Video Properties, Inc. Program guide system with browsing display
EP2076033A3 (en) 1998-03-04 2009-09-30 United Video Properties, Inc. Program guide system with targeted advertising
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
AR019932A1 (es) 1998-07-17 2002-03-27 United Video Properties Inc Una disposicion de guias de programacion televisiva interactivas que tiene multiples dispositivos dentro de una residencia de un grupo familiar y un método que la emplea
AR020608A1 (es) 1998-07-17 2002-05-22 United Video Properties Inc Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto
US7165098B1 (en) 1998-11-10 2007-01-16 United Video Properties, Inc. On-line schedule system with personalization features
CA2666635C (en) 2001-02-21 2016-03-22 United Video Properties, Inc. Systems and methods for interactive program guides with personal video recording features
JP2002281472A (ja) * 2001-03-15 2002-09-27 Toshiba Corp 蓄積型有料放送受信装置
US7793326B2 (en) * 2001-08-03 2010-09-07 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator
US7464392B2 (en) * 2001-11-20 2008-12-09 Starz Encore Group Llc Viewing limit controls
JP2003256676A (ja) * 2002-03-04 2003-09-12 Nec Corp 会員管理方法、会員管理システム及び会員管理プログラム
JP2004127172A (ja) 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd コンテンツ閲覧制限装置、コンテンツ閲覧制限方法およびコンテンツ閲覧制限プログラム
US7627530B2 (en) 2004-04-26 2009-12-01 Amazon Technologies, Inc. Method and system for managing access to media files
US7873974B2 (en) * 2005-09-19 2011-01-18 Sony Corporation Identification of television programming using a portable wireless device
US20100153885A1 (en) 2005-12-29 2010-06-17 Rovi Technologies Corporation Systems and methods for interacting with advanced displays provided by an interactive media guidance application
US8656431B2 (en) * 2006-07-10 2014-02-18 Mark A. Cavicchia Global interactive program guide application and device
JP4914255B2 (ja) * 2007-03-14 2012-04-11 日本放送協会 サービス提供方法、および、属性情報管理装置、サービス提供装置、ユーザ端末ならびにそれらのプログラム
CN101742475B (zh) * 2008-11-12 2012-01-11 华为技术有限公司 订阅和通知的方法、装置和系统
US8862515B2 (en) * 2010-05-04 2014-10-14 Sony Corporation Geographic internet asset filtering for internet video client
JP5557796B2 (ja) * 2011-05-10 2014-07-23 日本電信電話株式会社 コンテンツ管理システムおよび方法
KR20140042049A (ko) * 2012-09-27 2014-04-07 한화에스앤씨주식회사 다중 콘텐츠 서버 관리 방법
US9286456B2 (en) * 2012-11-27 2016-03-15 At&T Intellectual Property I, Lp Method and apparatus for managing multiple media services
US10055598B2 (en) * 2013-03-13 2018-08-21 Synacor Inc. Content and service aggregation, management and presentation system
JP5976579B2 (ja) 2013-03-25 2016-08-23 シャープ株式会社 情報処理装置、サーバ、および情報処理システム
CN103442027B (zh) * 2013-07-23 2016-04-20 电子科技大学 基于无线传感网络和云计算的发布订阅系统及方法
JP6334920B2 (ja) 2014-01-07 2018-05-30 キヤノン株式会社 権限管理サーバー及び権限管理方法
CN104917795B (zh) * 2014-03-13 2019-09-13 腾讯科技(深圳)有限公司 一种订阅信息的提醒方法及装置
PT3369233T (pt) * 2015-10-30 2019-11-04 Rovi Guides Inc Métodos e sistemas para gerir dados de subscrição de conteúdos

Also Published As

Publication number Publication date
CA3286297A1 (en) 2025-11-29
KR20180077100A (ko) 2018-07-06
KR102562574B1 (ko) 2023-08-01
JP2021077383A (ja) 2021-05-20
CN107710717A (zh) 2018-02-16
AU2021202157A1 (en) 2021-05-06
KR102506625B1 (ko) 2023-03-03
JP2025013384A (ja) 2025-01-24
KR20230117637A (ko) 2023-08-08
AU2023202388A1 (en) 2023-05-11
PT3369233T (pt) 2019-11-04
KR102622318B1 (ko) 2024-01-05
JP2023022050A (ja) 2023-02-14
AU2023202388B2 (en) 2025-02-20
AU2016347023A1 (en) 2017-12-07
KR102459310B1 (ko) 2022-10-25
AU2023202388C1 (en) 2025-08-28
WO2017074839A1 (en) 2017-05-04
AU2021202157B2 (en) 2023-01-19
JP6820279B2 (ja) 2021-01-27
JP7174781B2 (ja) 2022-11-17
DK3369233T3 (da) 2019-09-23
AU2016347023B2 (en) 2021-04-22
KR20230034445A (ko) 2023-03-09
JP2026063075A (ja) 2026-04-10
KR20220148324A (ko) 2022-11-04
JP2018537735A (ja) 2018-12-20
EP3369233A1 (en) 2018-09-05
JP7805426B2 (ja) 2026-01-23
EP3369233B1 (en) 2019-08-28
CA2987790A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
US12028567B2 (en) Methods and systems for monitoring content subscription usage
ES2753623T3 (es) Métodos y sistemas para la gestión de datos de suscripción a contenidos
US11159500B2 (en) Methods and systems for managing content subscription data
ES3040482T3 (en) Methods and systems for generating notifications based on the interests of guests
US20240163503A1 (en) Systems and methods for storing offsets of a recorded program in a network dvr
ES3046540T3 (en) System and methods for alerting a user consuming media to the progress of others consuming media
US9807247B2 (en) Systems and methods for sharing cost of a video-on-demand subscription with another subscriber