ES2860943T3 - Aparato y método para la distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista en una red de comunicaciones de banda ancha - Google Patents
Aparato y método para la distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista en una red de comunicaciones de banda ancha Download PDFInfo
- Publication number
- ES2860943T3 ES2860943T3 ES16882794T ES16882794T ES2860943T3 ES 2860943 T3 ES2860943 T3 ES 2860943T3 ES 16882794 T ES16882794 T ES 16882794T ES 16882794 T ES16882794 T ES 16882794T ES 2860943 T3 ES2860943 T3 ES 2860943T3
- Authority
- ES
- Spain
- Prior art keywords
- content
- response
- data
- st201f
- st201a
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 187
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 159
- 230000005055 memory storage Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 9
- 230000001413 cellular effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/02—Arrangements for relaying broadcast information
- H04H20/08—Arrangements for relaying broadcast information among terminal devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/26—Arrangements for switching distribution systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/40—Arrangements for broadcast specially adapted for accumulation-type receivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H20/00—Arrangements for broadcast or for distribution combined with broadcast
- H04H20/42—Arrangements for resource management
- H04H20/423—Transmitter side
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26291—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6405—Multicasting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6581—Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Astronomy & Astrophysics (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Un método de almacenamiento en memoria caché oportunista de datos de medios de difusión en continuo, comprendiendo el método: recibir, por un segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), una primera respuesta de contenido transmitida por un primer servidor de contenido (242), a través de un medio de comunicación de difusión o multidifusión, en respuesta a una primera petición de contenido de un primer dispositivo de cliente (221a-221f) asociado a un primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), y en donde la primera respuesta de contenido incluye un primer contenido de datos (318) solicitado por el primer dispositivo de cliente (221a-221f) a través del primer terminal de comunicaciones (134(1)a- 134(1)n, 134 (2)a-134(2)n, ST201a-ST201f); determinar, por un controlador de memoria caché (321) de un dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134 (1)a-134(1)n, 134 (2)a-134(2)n, ST201a-ST201f), que el primer contenido de datos (318) de la primera respuesta de contenido es potencialmente pertinente para al menos un dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde la determinación se basa en uno o más criterios asociados al primer contenido de datos de la primera respuesta de contenido; almacenar, por el primer controlador de memoria caché (321) del dispositivo de almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), el primer contenido de datos en el dispositivo de almacenamiento de memoria caché local (323) basándose en la determinación de que el primer contenido de datos es potencialmente pertinente para el al menos un dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), incluso aunque la primera respuesta de contenido se transmite en respuesta a la primera petición de contenido del primer dispositivo de cliente (221a-221f), que se asocia al primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), cancelar, por el primer dispositivo de cliente (221a-221f) su consumo de contenido después de solicitar el primer contenido de datos (318); y notificar a una pasarela (138a-138n), por un controlador de memoria caché (321) asociado al primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), acerca de la cancelación del primer contenido de datos solicitado (318), y en respuesta un controlador de memoria caché de pasarela (239) determina continuar o abortar la entrega de difusión o multidifusión del primer contenido de datos (318).
Description
DESCRIPCIÓN
Aparato y método para la distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista en una red de comunicaciones de banda ancha
Antecedentes
Las capacidades generales de los satélites de banda ancha están creciendo exponencialmente, y tal capacidad aumenta los desafíos únicos presentes en el sistema terrestre y diseños de red asociados. El objetivo de los diseñadores de sistema, operadores de sistema y proveedores de servicios es soportar y proporcionar servicios eficientes, robustos, fiables y flexibles, en un entorno de red de ancho de banda compartido, utilizando tales sistemas de satélite de alta capacidad.
De acuerdo con estudios de tráfico de internet recientes, el tráfico de difusión en continuo de medios (por ejemplo, difusión en continuo de vídeo) constituye más del 50 % de ancho de banda de enlace directo desde servidores a dispositivos de cliente, en los que hasta el 35 % de tal tráfico es desde servidores de Netflix. Además, la tendencia está ascendiendo ya que más y más proveedores de contenido comienzan a ofrecer servicios de difusión en continuo de medios (por ejemplo, vídeo). Por ejemplo, adiciones recientes incluyen HBO, CBS y otras redes y servicios de difusión en continuo de proveedor de contenido. Con respecto a tal tráfico de difusión en continuo, los estudios también muestran que el principio de Pareto (también conocido como la regla 80/20) se aplica a la mayoría del contenido, en el que el 20 % de todo el contenido disponible constituye hasta el 80 % o más de todo el contenido difundido en continuo a través de la Internet. En otras palabras, el mismo contenido se transmite repetidamente (una y otra vez) en momentos diferentes y a diferentes solicitantes clientes, que resultan en un uso extremadamente ineficiente de recursos de transmisión de enlace directo (desde el servidor de contenidos a los usuarios), cuyos recursos se están volviendo continuamente más escasos y más caros. De hecho, datos con respecto a uno de los servicios de difusión en continuo de vídeo superiores muestran que el 10% de los títulos de película difundidos en continuo constituye hasta casi el 80 % de la distribución de vídeo de difusión en continuo general de proveedores. Además de difusión en continuo de vídeo, las actualizaciones de software de las grandes compañías de software (por ejemplo, Apple y Microsoft) también tienden a acaparar los recursos de tráfico de Internet durante tiempos de distribución pico de nuevas actualizaciones. Por ejemplo, las recientes actualizaciones de iOS 8 proporcionadas por Apple, tras su lanzamiento, casi instantáneamente se convierte en el 16 % del tráfico de red total durante horas pico y continúan por encima del 13% del tráfico total en horas vespertinas. También, con tales actualizaciones de software (por ejemplo, actualizaciones de iOS de Apple y Windows de Microsoft), un gran número de usuarios están descargando el mismo contenido en momentos diferentes dentro de un relativamente corto periodo de tiempo.
El documento US 2010/0177642 A1 se refiere a deltadifusión anticipatoria correlativa proporcionando un optimizador de lado de servidor para interceptar y crear huellas digitales de datos de contenido a nivel de byte que atraviesan enlaces del sistema de comunicaciones. Las huella digitales de contenido se usan para identificar de forma transparente patrones de comunicación, tales como descargas repetitivas, correlaciones entre usuarios, etc., que pueden usarse a continuación en multidifusión y/o en otras oportunidades para una utilización creciente de los enlaces de comunicación.
El documento US 2013/0097236 A1 divulga que sistemas y métodos para distribuir actualizaciones de redes sociales desde entidades populares a dispositivos de receptor a través de redes de difusión o multidifusión obtienen actualizaciones desde entidades altamente populares. Las actualizaciones se ensamblan por un servidor que rastrea sitios de redes sociales. Para habilitar una recepción selectiva, las actualizaciones obtenidas pueden difundirse o multidifundirse de acuerdo con una planificación que se comunica a dispositivos de receptor por adelantado, tal como un archivo de catálogo. Los dispositivos de receptor reciben el archivo de catálogo y usan la información incluida para recibir de forma selectiva actualizaciones que son pertinentes para un usuario del dispositivo de receptor. Las actualizaciones recibidas desde difusiones o multidifusiones se almacenan en memoria caché en la memoria del dispositivo de receptor. Cuando un usuario solicita acceso a una entidad de red social particular en el dispositivo de receptor, puede satisfacerse esa petición accediendo a actualizaciones de redes sociales almacenadas en memoria caché en el dispositivo de receptor. La difusión y/o multidifusión de actualizaciones de redes sociales populares puede aliviar cargas en redes de unidifusión.
El documento US 2013/0081072 A1 da a conocer la distribución de forma preventiva de contenido a dispositivos móviles en una red inalámbrica usando técnicas de distribución de multidifusión. El método incluye analizar tráfico de red de varios usuarios. Determina basándose en el análisis, si un artículo de contenido es un artículo de contenido popular, según se determina mediante las peticiones para el artículo de contenido de los usuarios. Y transmite una señal, en respuesta a la determinación, para planificar la distribución de multidifusión preventiva del artículo de contenido a dispositivos móviles.
El documento US 7.509.667 B1 se refiere a una memoria caché para almacenar un gran repositorio de archivos de medios digitales en un disco duro local de usuarios individuales, con lo que se usa un mecanismo de entrega más lento para añadir archivos potencialmente deseados a cada memoria caché por adelantado de cualquier petición para visualizar los archivos. La combinación de un tamaño de memoria caché grande con el perfilado de usuario y contenido
permite que un archivo objetivo deseado por un usuario se encuentre en la memoria caché para una gran mayoría de peticiones de archivo. Para ver un archivo, el usuario debe proporcionar primero información de pago a un servidor de contenido para obtener autorización y una clave de desencriptado.
Los que se necesita, por lo tanto, es uno o más enfoques que proporcionen un uso eficiente de recursos de transmisión de reenvío de un sistema de comunicaciones con apoyo amplio para la distribución de contenido de difusión en continuo de alta demanda popular (de tamaños de archivo grandes) a múltiples usuarios en momentos diferentes.
ALGUNAS REALIZACIONES DE EJEMPLO
La presente invención aborda ventajosamente los requisitos y necesidades anteriores, así como otros, proporcionando sistemas y métodos que facilitan el uso eficiente de recursos de transmisión de reenvío de un sistema de comunicaciones con apoyo amplio para la distribución de contenido de difusión en continuo de alta demanda popular (de tamaños de archivo grandes) a múltiples usuarios en momentos diferentes.
A modo de ejemplo, en un sistema de comunicaciones de banda ancha que proporciona servicios de transmisión de difusión y/o multidifusión, realizaciones de la presente invención se aprovechan de las capacidades de difusión y/o multidifusión para conseguir un uso eficiente de los recursos de ancho de banda en la provisión de contenido de medios/software de difusión en continuo a múltiples dispositivos de cliente/usuario en momentos diferentes. Más específicamente, ciertos dispositivos terminales de clientes pueden estar cada uno equipado con almacenamiento local (por ejemplo, memoria caché) suficiente para almacenar un número de archivos de contenido de medios en difusión en continuo. Tales dispositivos terminales también pueden estar equipados con una funcionalidad de procesamiento que reconocería que ciertos archivos contenidos populares de alta demanda se están difundiendo en continuo a través de un canal de difusión/multidifusión que puede recibirse por los dispositivo terminales. Cuando al menos un usuario dentro del área de cobertura de un canal de difusión/multidifusión popular solicita contenido popular de alta demanda, el contenido puede transmitirse a través del canal al respectivo dispositivo terminal/de cliente para satisfacer la petición de usuario. A continuación, cada dispositivo terminal no solicitante dentro de ese área de cobertura, que está equipado con la respectiva funcionalidad de almacenamiento y procesamiento, puede detectar el flujo de contenido y almacenar de forma oportunista el contenido localmente dentro de su almacenamiento. Por consiguiente, en el caso en el que otro usuario solicita posteriormente contenido que está almacenado en memoria caché dentro del respectivo dispositivo de terminal de usuario, el dispositivo terminal puede distribuir el contenido al usuario desde su almacenamiento local sin requerir otra transmisión de red desde el respectivo servidor de contenido. El almacenamiento de memoria caché local resuelve, de este modo, el problema de servir peticiones para el mismo contenido iniciado por diferentes usuarios en momentos diferentes, incluso aunque el contenido se difunda a los usuarios únicamente una vez antes de que los usuarios realmente soliciten/consuman el contenido. En un sistema de este tipo, por lo tanto, para contenido de múltiples gigabytes (por ejemplo, películas y actualizaciones de software de alta demanda tales como actualizaciones de iOS de Apple y Windows de Microsoft), una difusión de una pieza particular de contenido potencialmente podría satisfacer a todos los usuarios dentro de la cobertura de difusión/multidifusión que desea consumir el contenido, que ahorraría una cantidad significativa de recursos de transmisión.
De acuerdo con realizaciones de ejemplo, se proporciona un método para el almacenamiento en memoria caché oportunista de datos de medios de difusión en continuo para facilitar un uso eficiente de recursos de transmisión de reenvío de un sistema de comunicaciones de banda ancha. Un segundo terminal de comunicaciones recibe una primera respuesta de contenido, transmitida por un primer servidor de contenido, a través de un medio de comunicación de difusión o multidifusión, en respuesta a una primera petición de contenido de un primer dispositivo de cliente asociado a un primer terminal de comunicaciones, en donde la primera respuesta de contenido incluye un primer contenido de datos solicitado por el primer dispositivo de cliente a través del primer terminal de comunicaciones. Un controlador de memoria caché de un dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones determina almacenar al menos el primer contenido de datos de la primera respuesta de contenido en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones, en donde la determinación de almacenar se basa en uno o más criterios asociados a la primera respuesta de contenido. A modo de ejemplo, el primer contenido de datos de la primera respuesta de contenido comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el primer dispositivo de cliente, a través del primer terminal de comunicaciones, como parte de una sesión de datos de difusión en continuo del primer dispositivo de cliente. Por medio de un ejemplo adicional, una sesión de datos de difusión en continuo del primer dispositivo de cliente comprende una de una sesión de datos de medios de difusión en continuo y una sesión de datos de descarga de software de difusión en continuo. Por medio de un ejemplo adicional, el controlador de memoria caché y el dispositivo de almacenamiento de memoria caché local son componentes del segundo terminal de comunicaciones.
De acuerdo con una realización de ejemplo adicional del método, el segundo terminal de comunicaciones recibe una pluralidad de respuestas de contenido adicionales transmitidas por el primer servidor de contenido, a través del medio de comunicación de difusión o multidifusión, en respuesta a respectivas peticiones de contenido adicionales del primer dispositivo de cliente, en donde cada respuesta de contenido adicional incluye contenido de datos adicional que comprende al menos un segmento posterior de la secuencia de segmentos del fichero de datos solicitado por el primer
dispositivo de cliente, a través del primer terminal de comunicaciones, como parte de la sesión de datos de difusión en continuo del primer dispositivo de cliente. El controlador de memoria caché del dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones determina almacenar al menos el contenido de datos adicional de cada una de las respuestas de contenido adicionales en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones, en donde la determinación de almacenar se basa en el uno o más criterios.
De acuerdo con una realización de ejemplo adicional del método, el segundo terminal de comunicaciones recibe una segunda petición de contenido de un segundo dispositivo de cliente asociado al segundo terminal de comunicaciones, solicitando la segunda petición de contenido un segundo contenido de datos desde un servidor a través del segundo terminal de comunicaciones, en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché del dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones determina que el segundo contenido de datos solicitado por la segunda petición de contenido del segundo dispositivo de cliente es sustancialmente equivalente al primer contenido de datos de la primera respuesta de contenido almacenada en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones. Se recupera el primer contenido de datos de la respuesta de contenido almacenada en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones, y se proporciona el primer contenido de datos al segundo dispositivo de cliente como una segunda respuesta de contenido en respuesta a la segunda petición de contenido.
De acuerdo con una realización de ejemplo adicional del método, el segundo terminal de comunicaciones recibe una segunda petición de contenido de un segundo dispositivo de cliente asociado al segundo terminal de comunicaciones, solicitando la segunda petición de contenido un segundo contenido de datos desde un servidor a través del segundo terminal de comunicaciones, en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché del dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones determina que el segundo contenido de datos solicitado por la segunda petición de contenido no es sustancialmente equivalente a cualquier contenido de datos almacenado en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones. La segunda petición de contenido se transmite al servidor, y se recibe una segunda respuesta de contenido desde el servidor en respuesta a la segunda petición de contenido, en donde la segunda respuesta de contenido incluye el segundo contenido de datos solicitado. La segunda respuesta de contenido se proporciona al segundo dispositivo de cliente en respuesta a la segunda petición de contenido.
De acuerdo con una realización de ejemplo adicional del método, el segundo terminal de comunicaciones recibe una pluralidad de segundas peticiones de contenido de un segundo dispositivo de cliente asociado al segundo terminal de comunicaciones, en donde cada segunda petición de contenido solicita, de un servidor, contenido de datos que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente, a través del segundo terminal de comunicaciones, como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente, y en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché del dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones determina que el contenido de datos solicitado por cada una de una o más de las segundas peticiones de contenido es sustancialmente equivalente al contenido de datos adicional de una respectiva de las respuestas de contenido adicionales almacenadas en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones. El contenido de datos adicional de la respectiva respuesta de las respuestas de contenido adicionales que se determina como que es sustancialmente equivalente al contenido de datos solicitado por cada una de la una o más segundas peticiones de contenido se recupera desde el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones, y cada tal contenido de datos adicional de la respectiva respuesta de las respuestas de contenido adicionales se proporciona al segundo cliente como una respuesta de contenido en respuesta a una respectiva de la segunda petición de contenido.
De acuerdo con una realización de ejemplo adicional del método, el segundo terminal de comunicaciones recibe una pluralidad de segundas peticiones de contenido de un segundo dispositivo de cliente asociado al segundo terminal de comunicaciones, en donde cada segunda petición de contenido solicita, de un servidor, contenido de datos que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente, a través del segundo terminal de comunicaciones, como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente, y en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché del dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones determina que el contenido de datos solicitado por cada una de una o más de las segundas peticiones de contenido no es sustancialmente equivalente a cualquier contenido de datos almacenado en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones. Cada una de la una o más segundas peticiones de contenido, para las que el contenido de datos solicitado se determina que no es sustancialmente equivalente a cualquier contenido de datos almacenado en el dispositivo de almacenamiento de memoria caché local asociado al segundo terminal de comunicaciones, se transmite al servidor, y se recibe una respectiva segunda respuesta de contenido desde el servidor en respuesta a cada una de las segundas peticiones de contenido transmitidas al mismo, en donde cada tal segunda respuesta de contenido incluye el respectivo contenido de datos solicitado. Cada una de las segundas respuestas de contenido recibidas
desde el servidor se proporciona al segundo dispositivo de cliente en respuesta a la respectiva segunda petición de contenido.
De acuerdo con realizaciones de ejemplo adicionales, un terminal de comunicaciones comprende un controlador de memoria caché, un dispositivo de almacenamiento de memoria caché, una interfaz de dispositivo cliente, un dispositivo de receptor y un dispositivo de transmisor. La interfaz de dispositivo de cliente es operable para interactuar con un segundo dispositivo de cliente. El dispositivo de receptor es operable para recibir una primera respuesta de contenido transmitida por un primer servidor de contenido, a través de un medio de comunicación de difusión o multidifusión, en respuesta a una primera petición de contenido de un primer dispositivo de cliente asociado a otro terminal de comunicaciones, en donde la primera respuesta de contenido incluye un primer contenido de datos solicitado por el primer dispositivo de cliente a través del otro terminal de comunicaciones. El controlador de memoria caché es operable para determinar almacenar al menos el primer contenido de datos de la primera respuesta de contenido en el dispositivo de almacenamiento de memoria caché, y la determinación de almacenar se basa en uno o más criterios asociados a la primera respuesta de contenido. A modo de ejemplo, el primer contenido de datos de la primera respuesta de contenido comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el primer dispositivo de cliente, a través del otro terminal de comunicaciones, como parte de una sesión de datos de difusión en continuo del primer dispositivo de cliente. Por medio de un ejemplo adicional, la sesión de datos de difusión en continuo del primer dispositivo de cliente comprende una de una sesión de datos de medios de difusión en continuo y una sesión de datos de descarga de software de difusión en continuo.
De acuerdo con una realización de ejemplo adicional del terminal de comunicaciones, el dispositivo de receptor es operable adicionalmente para recibir una pluralidad de respuestas de contenido adicionales transmitidas por el primer servidor de contenido, a través del medio de comunicación de difusión o multidifusión, en respuesta a respectivas peticiones de contenido adicionales del primer dispositivo de cliente, en donde cada respuesta de contenido adicional incluye contenido de datos adicional que comprende al menos un segmento posterior de la secuencia de segmentos del fichero de datos solicitado por el primer dispositivo de cliente, a través del otro terminal de comunicaciones, como parte de la sesión de datos de difusión en continuo del primer dispositivo de cliente. El controlador de memoria caché es operable adicionalmente para determinar almacenar al menos el contenido de datos adicional de cada una de las respuestas de contenido adicionales en el dispositivo de almacenamiento de memoria caché, y la determinación de almacenar se basa en uno o más criterios.
De acuerdo con una realización de ejemplo adicional del terminal de comunicaciones, la interfaz de dispositivo de cliente es operable adicionalmente para recibir una segunda petición de contenido del segundo dispositivo de cliente, solicitando la segunda petición de contenido un segundo contenido de datos desde un servidor a través del terminal de comunicaciones, en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché es operable adicionalmente para determinar que el segundo contenido de datos solicitado por la segunda petición de contenido del segundo dispositivo de cliente es sustancialmente equivalente al primer contenido de datos de la primera respuesta de contenido almacenada en el dispositivo de almacenamiento de memoria caché, y para recuperar el primer contenido de datos de la respuesta de contenido desde el dispositivo de almacenamiento de memoria caché. La interfaz de dispositivo de cliente es operable adicionalmente para proporcionar el primer contenido de datos al segundo dispositivo de cliente como una segunda respuesta de contenido en respuesta a la segunda petición de contenido.
De acuerdo con una realización de ejemplo adicional del terminal de comunicaciones, la interfaz de dispositivo de cliente es operable adicionalmente para recibir una segunda petición de contenido del segundo dispositivo de cliente, solicitando la segunda petición de contenido un segundo contenido de datos desde un servidor a través del terminal de comunicaciones, en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché es operable adicionalmente para determinar que el segundo contenido de datos solicitado por la segunda petición de contenido no es sustancialmente equivalente a cualquier contenido de datos almacenado en el dispositivo de almacenamiento de memoria caché. El dispositivo de transmisor es operable para transmitir la segunda petición de contenido al servidor, y el dispositivo de receptor es operable adicionalmente para recibir una segunda respuesta de contenido desde el servidor en respuesta a la segunda petición de contenido, en donde la segunda respuesta de contenido incluye el segundo contenido de datos solicitado. La interfaz de dispositivo de cliente es operable adicionalmente para proporcionar la segunda respuesta de contenido al segundo dispositivo de cliente en respuesta a la segunda petición de contenido.
De acuerdo con una realización de ejemplo adicional del terminal de comunicaciones, la interfaz de dispositivo de cliente es operable adicionalmente para recibir una pluralidad de segundas peticiones de contenido del segundo dispositivo de cliente, en donde cada segunda petición de contenido solicita, de un servidor, contenido de datos que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente, a través del terminal de comunicaciones, como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente, y en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché es operable adicionalmente para determinar que el contenido de datos solicitado por cada una de una o más de las segundas peticiones de contenido es sustancialmente equivalente al contenido de datos adicional de una respectiva de las respuestas de contenido adicionales almacenadas en el dispositivo de almacenamiento de memoria caché, y para recuperar desde el almacenamiento de memoria caché
el contenido de datos adicional de la respectiva respuesta de las respuestas de contenido adicionales que se determina como que es sustancialmente equivalente al contenido de datos solicitado por cada una de la una o más segundas peticiones de contenido. La interfaz de dispositivo de cliente es operable adicionalmente para proporcionar cada tal contenido de datos adicional de la respectiva respuesta de las respuestas de contenido adicionales al segundo cliente como una respuesta de contenido en respuesta a una respectiva de las segundas peticiones de contenido.
De acuerdo con una realización de ejemplo adicional del terminal de comunicaciones, la interfaz de dispositivo de cliente es operable adicionalmente para recibir una pluralidad de segundas peticiones de contenido de un segundo dispositivo de cliente, en donde cada segunda petición de contenido solicita, de un servidor, contenido de datos que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente, a través del terminal de comunicaciones, como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente, y en donde el servidor es uno del primer servidor de contenido y un segundo servidor de contenido. El controlador de memoria caché es operable adicionalmente para determinar que el contenido de datos solicitado por cada una de una o más de las segundas peticiones de contenido no es sustancialmente equivalente a cualquier contenido de datos almacenado en el dispositivo de almacenamiento de memoria caché asociado al segundo terminal de comunicaciones. El dispositivo de transmisor es operable para transmitir al servidor cada una de la una o más segundas peticiones de contenido, para las que el contenido de datos solicitado se determina que no es sustancialmente equivalente a cualquier contenido de datos almacenado en el dispositivo de almacenamiento de memoria caché. El dispositivo de receptor es operable adicionalmente para recibir una respectiva segunda respuesta de contenido desde el servidor en respuesta a cada una de las segundas peticiones de contenido transmitidas al mismo, en donde cada tal segunda respuesta de contenido incluye el respectivo contenido de datos solicitado. La interfaz de dispositivo de cliente es operable adicionalmente para proporcionar cada una de las segundas respuestas de contenido recibidas desde el servidor al segundo dispositivo de cliente en respuesta a la respectiva segunda petición de contenido.
Aún otros aspectos, características y ventajas de la presente invención son fácilmente evidentes a partir de la siguiente descripción detallada, simplemente ilustrando un número de realizaciones e implementaciones particulares, incluyendo el mejor modo contemplado para efectuar la presente invención. La presente invención es también capaz de otras y diferentes realizaciones, y sus varios detalles pueden modificarse en diversos aspectos obvios, todos sin alejarse del espíritu y alcance de la presente invención. Por consiguiente, los dibujos y la descripción deben considerarse como ilustrativos en naturaleza y no como restrictivos.
Breve descripción de los dibujos
Realizaciones de ejemplo de la presente invención se ilustran a modo de ejemplo, y no a modo de limitación, en las figuras de los dibujos adjuntos, en los que números de referencia similares se refieren a elementos similares, y en los que:
La Figura 1 ilustra un diagrama de bloques de un sistema de comunicaciones por satélite para proporcionar una distribución de contenido a través de comunicaciones de difusión y multidifusión a terminales de usuario en donde se emplea almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo;
La Figura 2 ilustra un diagrama de bloques de un sistema de comunicaciones por satélite adicional para proporcionar una distribución de contenido a través de comunicaciones de difusión y multidifusión a terminales de usuario en donde se emplea almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo;
La Figura 3 ilustra un diagrama de bloques de la sección de recepción y sección de memoria caché de un terminal de satélite (ST) de cliente configurado para el almacenamiento en memoria caché oportunista de contenido distribuido a través de canales de comunicaciones de difusión y multidifusión, de acuerdo con realizaciones de ejemplo;
La Figura 4A ilustra un diagrama de flujo de un proceso para una única petición de contenido, y distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo;
La Figura 4B ilustra un diagrama de flujo de un proceso para una petición de contenido de múltiples segmentos, y distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo;
La Figura 4C ilustra un diagrama de flujo de un proceso para una petición de contenido de múltiples segmentos, una recuperación de contenido de búsqueda anticipada, y distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo;
La Figura 5 ilustra un diagrama de bloques de un conjunto de chips que implementan aspectos de enfoques de almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo; y
La Figura 6 ilustra un diagrama de bloques de un sistema informático que implementa aspectos de enfoques de almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo.
Descripción detallada
Se describen sistemas y métodos que facilitan un uso eficiente de recursos de transmisión de reenvío de un sistema de comunicaciones con apoyo amplio para la distribución de popular contenido de difusión en continuo de alta demanda (de tamaños de archivo grandes) a múltiples usuarios en momentos diferentes. En la siguiente descripción, para los propósitos de explicación, se exponen numerosos detalles específicos para proporcionar un completo entendimiento de la presente invención. La presente invención no pretende estar limitada basándose en las realizaciones descritas, y diversas modificaciones serán fácilmente evidentes. Será evidente que la invención puede practicarse sin los detalles específicos de la siguiente descripción y/o con disposiciones equivalentes. Adicionalmente, pueden mostrarse estructuras y dispositivos bien conocidos en forma de diagrama de bloques para evitar la obstaculización innecesaria la invención. Además, las aplicaciones específicas analizadas en este documento se proporcionan únicamente como ejemplos representativos, y los principios descritos en este documento pueden aplicarse a otras realizaciones y aplicaciones sin alejarse del alcance general de la presente invención.
La Figura 1 ilustra un diagrama de bloques de un sistema de comunicaciones por satélite para proporcionar una distribución de contenido a través de comunicaciones de difusión y multidifusión a terminales de usuario en donde se emplea almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención. El sistema de comunicaciones por satélite 130 incluye un satélite 132 que soporta comunicaciones entre múltiples terminales de satélite (ST) 134(1)a-134(1)n y 134(2)a-134(2)n, un número de pasarelas (GW) 138a-138n y un centro de operaciones de red (NOC) 142. Las ST, Gw y NOC transmiten y reciben señales a través de las antenas 136(1)a-136(1)n y 136(2)a-136(2)n, 146a-146n y 156, respectivamente. De acuerdo con diferentes realizaciones, el NOC 142 puede residir en un sitio separado alcanzable a través de un canal de satélite separado o puede residir dentro de un sitio de GW, y como alternativa el NOC 142 puede comprender un sistema distribuido que se distribuye entre una pluralidad de sitios para propósitos de procesamiento distribuido, escalabilidad, etc. Además, como se representa, en un sistema de haz de cobertura restringida, el satélite se comunica con las diversas infraestructuras terrestres (la ST, GW y NOC) a través de una pluralidad de haces de cobertura restringida de enlace ascendente y enlace descendente 110a, 110b, 110c, 110d, 110e. A modo de ejemplo, cada uno del NOC y de cada GW puede ser servido por un par de haces de cobertura restringida de enlace ascendente y enlace descendente especializado, y cada uno de los grupos de ST (por ejemplo, el grupo de ST 134(1)a-134(2)n y el grupo de ST 134(2)a-134(2)n) pueden ser servidos por un par de haces de cobertura restringida de enlace ascendente y enlace descendente especializado como un grupo - una arquitectura de ancho de banda compartida, en la que los ST comparten el respectivo ancho de banda de enlace ascendente y enlace descendente de un haz de cobertura restringida entre los mismos. Cada haz de enlace ascendente y haz de enlace descendente cubre una respectiva área geográfica en la Tierra que se conforma de acuerdo con los respectivos diseños de antena de las antenas de enlace ascendente y enlace descendente del satélite. Además, el haz de enlace ascendente de un área de cobertura particular no necesita estar contiguo con un respectivo haz de enlace descendente de esa área - pero en su lugar, por ejemplo, el área de cobertura de un haz de enlace ascendente particular puede dividirse y cubrirse por múltiples haces de cobertura restringida de enlace descendente. Adicionalmente, los haces de cobertura restringida de enlace ascendente y enlace descendente también pueden ser orientables para un ajuste dinámico de planes de capacidad basándose en una distribución de demanda de capacidad geográfica que cambia con el paso del tiempo.
El NOC 142 realiza las funciones de plano de gestión del sistema 130, mientras las GW 138a-138n realizan las funciones de plano de datos del sistema 130. Por ejemplo, el NOC 142 realiza tales funciones como gestión y configuración de red, descargas de software (por ejemplo, a los ST 134a-134n), supervisión de estado, funciones estadísticas (por ejemplo, recopilación, agregación y notificación), funciones de seguridad (por ejemplo, generación, gestión y distribución de claves), registro y autenticación de ST y gestión de diversidad de GW. El NOC 142 se comunica con cada GW a través del satélite 132, o a través de una red de comunicaciones privada segura 152 (por ejemplo, un túnel de IPsec a través de un enlace especializado o una red privada virtual (VPN) o túnel de IPsec a través de una red pública, tal como la Internet). Se ha de observar que, de acuerdo con una realización de ejemplo, los enfoques de clasificación de tráfico de realizaciones de la presente invención abordan la clasificación de tráfico de datos que fluye a través de un punto o nodo de agregación. Adicionalmente, cada GW y el NOC tienen conectividad con una o más redes de comunicaciones públicas, tales como la Internet o una PSTN.
De acuerdo con una realización de ejemplo adicional, cada una de las GW 138a-138n incluyen una o más pasarelas de IP (IPGW) - con lo que las funciones de plano de datos se dividen entre una GW y sus respectivas IPGW. Por ejemplo, la GW 138a incluye las IPGW 148a(1)-148a(n) y la GW 138n incluye las IPGW 148n(1)-148n(n). Una GW puede realizar tales funciones como codificación y modulación fuera de ruta de capa de enlace y capa física (por ejemplo, codificación y modulación adaptativa de DVB-S2), tratamiento en ruta de capa de enlace y capa física (por ejemplo, IPOS), asignación y equilibrio de carga de ancho de banda en ruta, priorización fuera de ruta, aceleración web y compresión de HTTP, control de flujo, encriptación, conmutaciones de redundancia y aplicación de política de restricción de tráfico. Mientras que, la IPGW puede realizar tales funciones como compresión de datos, mejoras de rendimiento de TCP (por ejemplo, intermediarios de mejora de rendimiento de TCP, tales como falsificación de TCP),
funciones de calidad de servicio (por ejemplo, clasificación, priorización, diferenciación, detección temprana aleatoria (RED), control de flujo de TCP/UDP), política de uso de ancho de banda, equilibrio de carga dinámico y encaminamiento. Además, una GW y una respectiva IPGW pueden recopilarse con el NOC 142. Los ST 134a-134n proporcionan conectividad con uno o más anfitriones 144a-144n y/o encaminadores 154a-154n, respectivamente.
A modo de ejemplo, el sistema de comunicaciones por satélite 130 puede operar como un sistema de guiaondas acodado, en el que el satélite opera esencialmente como un repetidor o guiaonda acodado. En un sistema de guiaondas acodado de una realización de ejemplo, el satélite 132 opera como un repetidor o guiaonda acodado, con lo que las comunicaciones a y desde los ST 134a-134n se transmiten a través del satélite 132 a y desde respectivas IPGW asociadas con ST particulares. Además, en un sistema de haz de cobertura restringida, un haz de cobertura restringida cualquiera opera como un guiaondas acodado a una región geográfica cubierta por el haz. Por ejemplo, cada haz de cobertura restringida opera como un canal de comunicaciones de guiaondas acodado a y desde los ST y/o IPGW dentro de la región geográfica cubierta por el haz. Por consiguiente, las transmisiones de señal al satélite son o bien desde ST y destinadas para una pasarela asociada, o bien desde una pasarela y destinadas para un ST asociado. De acuerdo con una realización, varias GW/IPGW se distribuyen a través de la región geográfica cubierta por todos los haces de cobertura restringida del satélite 132, en el que, en un haz en el que se ubican una GW (y respectivas IPGW), únicamente la GW (y no ST) ocupan ese haz. Además, cada IPGW puede servir como un nodo de agregación para una multitud de nodos o ST remotos. El número total de GW/IPGW, y la distribución geográfica de las GW/IPGW, depende de un número de factores, tales como la capacidad total del satélite dedicada al tráfico de datos, carga de tráfico geográfica del sistema (por ejemplo, basándose en densidades de población y la distribución geográfica de los ST), ubicaciones de centros de datos terrestres disponibles (por ejemplo, enlaces troncales de datos terrestres para acceso a redes especializadas públicas y privadas). Por ejemplo, contenido (por ejemplo, contenido de vídeo en difusión en continuo, tal como una película en difusión en continuo) que se origina desde un servidor de contenido (no mostrado) puede proporcionarse a la GW 138a y la IPGW 148a(1). A continuación (a través de un haz de difusión o haz de cobertura restringida del satélite 132) el contenido puede difundirse posteriormente por la pasarela 138a a los terminales 134a-134n dentro de un respectivo haz de difusión del satélite, o multidifundirse a un subconjunto del terminales 134a-134n a través de un haz de cobertura restringida del satélite. Además, mientras el contenido puede dirigirse a uno o más terminales específicos (por ejemplo, que solicitaron el contenido), otros terminales dentro del haz de recepción pueden almacenar en memoria caché de forma oportunista el contenido para el caso en el que usuarios de uno o más de los otros terminales solicitan posteriormente el contenido.
La Figura 2 ilustra un diagrama de bloques de un sistema de comunicaciones por satélite adicional para proporcionar una distribución de contenido a través de comunicaciones de difusión y multidifusión a terminales de usuario en donde se emplea almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención. El sistema 200 comprende un satélite 232, un número de terminales de usuario/cliente de satélite ST201a, ST201b, ST201c, ST201d, ST201e, ST201f,..., una pasarela 238, una red de comunicaciones 250 (tal como la Internet) y un servidor web 241 y un servidor de contenido 242. A modo de ejemplo, el servidor web 241 puede ser un servidor web de empresa, tal como un servidor anfitrión de Internet de Netflix o un servidor anfitrión de Internet de Apple. Por medio de un ejemplo adicional, el servidor de contenido puede ser un servidor de contenido general accesible directamente a través de la Internet, o un servidor de contenido de empresa específico, tal como un servidor de contenido de Netflix utilizado para el almacenamiento de contenido de Netflix y accesible a través de un servidor anfitrión de Internet de Netflix. Como sería evidente para un experto en la materia, el sistema de comunicaciones 200 no necesita estar limitado a solo una pasarela, una red de comunicaciones, un servidor web y un servidor de contenido. Por ejemplo, como se representa en la Figura 1, un número de pasarelas y pasarelas de IP pueden servir respectivamente a grupos del universo de terminales en el sistema. Además, puede proporcionarse contenido a la una o más pasarelas, a través de la red de comunicaciones, desde una multitud de servidores web y servidores de contenido (proporcionándose uno o más servidores de contenido por cada uno de un número de proveedores de contenido). También, puede proporcionarse contenido desde diferentes proveedores de contenido a través de diferentes redes de distribución - por ejemplo, una gran red corporativa puede proporcionar contenido a una multitud de sitios corporativos y terminales de usuario corporativos a través de la Internet (por ejemplo, a través de una VPN) y/o una red de área extensa (WAN) corporativa privada. Además, también sería evidente para un experto en la materia que el sistema no necesita estar limitado a ningún número máximo específico de terminales de satélite 201 - el número de terminales se determinarían por factores de diseño de sistema asociados, tales como capacidad de satélite, número de haces de satélite, el número de pasarelas y pasarelas de IP, la gestión de capacidad y sistemas de gestión de terminal/cliente de la red, etc. Además, como se ha descrito anteriormente, con respecto a haces de enlace ascendente y enlace descendente del satélite, la Figura 2 representa un haz de enlace ascendente 210 y dos haces de enlace descendente 220a y 220b. El haz de enlace ascendente 210 sirve a todos los ST 201a-201f, mientras que el haz de enlace descendente 220a sirve a los ST 201a-201b y el haz de enlace descendente 220b sirve a los ST 201c-201f. El satélite 232 proporciona adicionalmente una capacidad de difusión a través del haz de enlace descendente 230, que cubriría un área geográfica relativamente grande (por ejemplo, los Estados Unidos continentales) que contienen múltiples haces de enlace ascendente y enlace descendente individuales a través de esa área de cobertura.
De acuerdo con realizaciones de ejemplo, el satélite 232 emplea capacidades de difusión y/o multidifusión. A modo de ejemplo, el satélite puede incluir una capacidad de difusión, por la que podría difundir datos (por ejemplo, contenido de medios de difusión en continuo) a toda un área de cobertura de difusión dentro del haz de enlace descendente 230. Como alternativa o adicionalmente, el satélite puede incluir una funcionalidad de multidifusión, por la que multidifunde
datos (por ejemplo, contenido de medios de difusión en continuo) a todos los terminales de satélite de cliente/usuario de un grupo de multidifusión particular, que pueden ubicarse todos en un único haz de cobertura restringida o puede distribuirse entre múltiples haces de cobertura restringida. Un grupo de multidifusión de este tipo puede comprender un grupo de terminales que subscriben a un servicio particular (tal como Netflix), o un grupo de terminales que pertenecen a una empresa particular (tal como empleados de una pequeña oficina/oficina doméstica de la misma empresa). Como sería evidente para un experto en la materia, realizaciones de la presente invención no se limitan a sistemas de satélite, sino que se aplicarían a cualquier sistema de comunicaciones que emplea capacidades de transmisión de difusión, multidifusión o similares. Por ejemplo, realizaciones de la presente invención también podrían aplicarse a dispositivos móviles dentro del área de cobertura de una estación base celular, dispositivos móviles dentro del área de cobertura de múltiples estaciones base celulares servidas por una pasarela común, dispositivos Wi-Fi dentro del área de cobertura de un punto de acceso Wi-Fi, dispositivos Wi-Fi dentro del área de cobertura de múltiples puntos de acceso Wi-Fi servidos por una pasarela común, etc.
De acuerdo con realizaciones de ejemplo adicionales, cada uno de los terminales, que es capaz de almacenar en memoria caché de forma oportunista contenido de difusión en continuo de acuerdo con realizaciones de ejemplo, está equipado con una respectiva memoria caché (como se representa, cada uno de los terminales ST201a, ST201b, ST201c, ST201d, ST201e, ST201f,..., está equipado con una respectiva memoria caché 211a, 211b, 211c, 211d, 211e, 211f,...). Adicionalmente, cada terminal sirve a uno o más respectivos dispositivos de cliente 221a, 221b, 221c, 221d, 221e, 221f,... A modo de ejemplo, los dispositivos de cliente pueden comprender ordenadores personales (PC), portátiles y dispositivos móviles (por ejemplo, dispositivos de tableta y teléfonos inteligentes, en los que el terminal puede incluir capacidades de comunicaciones inalámbricas, tales como capacidades WiFi o celulares). Aplicaciones que se ejecutan en los dispositivos de cliente (por ejemplo, aplicaciones de difusión en continuo de vídeo y sistemas operativos) solicitan contenido (por ejemplo, contenido de vídeo tal como películas y espectáculos, y actualizaciones de software, tales como actualizaciones de iOS y Windows) que se difunden en continuo desde el servidor de contenido 242 a través de la red de comunicaciones 250, la pasarela 238. La pasarela a su vez transmite el contenido difundido en continuo al satélite 232 a través del canal o haz de pasarela 240, y el satélite finalmente transmite el contenido difundido en continuo al o los ST de destino a través de respectivos haces/canales de enlace descendente 220a y/o 220b. De acuerdo con una realización adicional la pasarela 238 incluye el controlador de memoria caché central 239.
Además, como se representa, en un sistema de comunicaciones de banda ancha de este tipo, que comprende una o más pasarelas de satélite, uno o más satélites y una pluralidad de terminales de satélite de cliente/usuario, las pasarelas se comunican con servidores de contenido (por ejemplo, servidores web y de aplicación) a través de la red de comunicaciones 250 (por ejemplo, la Internet), y los terminales de cliente transmiten peticiones a y reciben respuestas de contenido desde las pasarelas a través de canales o haces del satélite. Como se usa en este documento, un enlace directo se refiere a una trayectoria o canal de comunicaciones desde una pasarela a los terminales, y un enlace de retorno se refiere a una trayectoria o canal de comunicaciones desde un terminal a una pasarela. En general, todos los terminales dentro del área de cobertura de un haz de satélite de enlace directo pueden recibir los datos transmitidos por una pasarela a través de ese enlace directo. El contenido generalmente se distribuye desde un servidor de contenido a un dispositivo cliente a través de un protocolo de petición/respuesta. A modo de ejemplo, el protocolo de transferencia de hipertexto (HTTP) es un ejemplo común de un protocolo de petición/respuesta de este tipo. Cuando un cliente quiere consumir contenido, el cliente emite una petición de contenido a un servidor de contenido. El terminal de satélite recibe la petición y el terminal transmite la petición a la pasarela que sirve al terminal a través del respectivo canal de enlace de retorno. La pasarela retransmite, a continuación, la petición al servidor de contenido. Cuando el contenido recibe la petición de contenido, adquiere o recupera el contenido y difunde en continuo el contenido de vuelta a la pasarela a través de la red de comunicaciones. La pasarela retransmite, a continuación, la respuesta de contenido al terminal/cliente solicitante a través del canal de enlace directo. En el caso en el que la difusión de respuesta de contenido de pasarela por la pasarela pueda recibirse por todos los terminales en el haz de satélite. El terminal proporciona, a continuación, la respuesta de contenido al cliente. Durante la distribución de contenido, ambas peticiones de contenido y respuestas de contenido pasan a través de la pasarela y el terminal entre un cliente y un servidor de contenido.
A modo de ejemplo, un usuario de un terminal de cliente particular (por ejemplo, el terminal de cliente 221a) puede solicitar un archivo de contenido específico, por ejemplo, un archivo de película a través de la cuenta de Netflix del usuario. Como resultado, la aplicación de cliente de explorador web del terminal 221a reenviaría la petición, dirigida al servidor anfitrión de Netflix (por ejemplo, el servidor web 241), al ST 201a. El ST 201a hace primero una determinación de si el contenido solicitado ya está almacenado en su memoria caché local, y si es así, el ST proporciona el contenido al respectivo terminal de cliente directamente desde su memoria caché. Si el contenido no está almacenado en la memoria caché local del ST 201a, el ST reempaqueta o encapsula la petición con una dirección de origen del ST 201a y una dirección de destino de la respectiva pasarela que sirve al ST (por ejemplo, la pasarela 238), mientras mantiene la dirección de origen original del terminal de cliente y la dirección de destino del servidor web dentro del paquete encapsulado, y transmite el mensaje a través del satélite 232 a la pasarela 238. La pasarela recibe el mensaje transmitido, desencapsula el mismo para obtener la dirección de destino originalmente prevista (que del servidor web 241 - en este caso el servidor anfitrión de Internet de Netflix), reencapsula la petición con una dirección de origen de la pasarela 238 y una dirección de destino del servidor web 241 (mientras aún mantiene la dirección de origen original del terminal de cliente y la dirección de destino del servidor web dentro del paquete encapsulado), y transmite el mensaje a través de la red de comunicaciones 250 al servidor web. En respuesta, el servidor web recupera el contenido
de la película del servidor de contenido 242, y difunde en continuo el contenido, a través de la red de comunicaciones 250, a la pasarela 238 (que se indicó al servidor web como el origen inmediato del mensaje de petición). Por ejemplo, el servidor web encapsula los datos de contenido difundidos en continuo con el servidor web como la dirección de origen inmediata y la pasarela como la dirección de destino inmediata, mientras que incluye el servidor web como la dirección de origen original y el terminal de cliente 221a como la última dirección de destino con los paquetes de datos encapsulados, y transmite los paquetes a la pasarela 238 a través de la red de comunicaciones 250. Como alternativa, el servidor web puede controlar el servidor de contenido 242 para procesar y transmitir los datos de contenido directamente a la pasarela a través de la red de comunicaciones 250.
En ausencia de algún controlador de memoria caché central en la pasarela o donde la pasarela determina simplemente unidifundir los paquetes de datos de contenido de difusión en continuo al terminal de cliente 221a, la pasarela desencapsula los paquetes para obtener la dirección de destino prevista (la del terminal de cliente 221a) y resuelve esa dirección como que se trata por el ST 201a, reencapsula los paquetes con una dirección de origen de la pasarela 238 y una dirección de destino del ST 201a (mientras mantiene la dirección de origen original del servidor web 241 y dirección de destino del terminal de cliente 221a dentro del paquete encapsulado), y transmite los paquetes al satélite 232. Tras recibir los paquetes, el respectivo transpondedor de satélite transmite los paquetes a través del correspondiente haz/canal de enlace descendente 220a para su recepción por el ST 201a. El ST 201a recibe los paquetes de datos de contenido, desencapsula los paquetes para determinar la resolución de dirección apropiada y resuelve la dirección de destino como el terminal de cliente 221a, y reenvía los paquetes al terminal de destino. Como se reconocería por un experto en la materia, un sistema de este tipo de acuerdo con realizaciones de ejemplo no estaría limitado a ningún protocolo de comunicaciones específico, sino que puede emplear cualquiera de diversos y diferente formatos o protocolos de comunicación conocidos para el intercambio de la mensajería y contenido a través de los diversos enlaces de la red. Por ejemplo, en la capa de Internet, el Protocolo de Internet (IP) normalizado puede aplicarse para retransmitir datagramas a través de los límites de red, distribuyendo paquetes desde el anfitrión de origen al anfitrión de destino basándose solamente en las direcciones IP en los encabezamientos de paquete. Además, en la capa de transporte, puede emplearse uno cualquiera de un número de protocolos conocidos, incluyendo Protocolo de Control de Transmisión (TCP), Protocolo de Datagrama de Usuario (UDP), etc. De manera similar, pueden aplicarse diversos protocolos bien conocidos en las capas de aplicación y de enlace.
Como alternativa, de acuerdo con realizaciones de ejemplo, cuando la pasarela 238 comienza a recibir el contenido difundido en continuo desde el servidor web 241 o directamente desde el servidor de contenido 242, el controlador de memoria caché central 239 de la pasarela realiza ciertas funciones globales con respecto a la distribución de contenido y almacenamiento en memoria caché oportunista. De acuerdo con una realización de este tipo, el controlador de memoria caché central supervisa el contenido recuperado desde el servidor de contenido (por ejemplo, el servidor de contenido 242) en respuesta a una petición de ST específica para el contenido, y determina si el contenido debería difundirse a todos los terminales dentro de un área de haz de difusión o multidifusión a uno o más grupos de terminales de multidifusión específicos, o solo unidifusión al terminal de cliente solicitante. A modo de ejemplo, después de la recepción de la pasarela 238 del contenido de medios transmitido por el servidor web 241, el controlador de memoria caché central de pasarela 239 examina información de encabezamiento de paquete u otra información de paquete para identificar el contenido. Tras identificar el contenido, por ejemplo, como un archivo de película (por ejemplo, desde Netflix), o como una actualización de software general (por ejemplo, una actualización de iOS de Apple o Windows de Microsoft), el controlador de memoria caché determinaría, basándose en diversos criterios predeterminados, si difundir o multidifundir el contenido a múltiples terminales o si solo unidifundir el contenido al terminal solicitante. En el caso de una difusión, la pasarela encapsula los paquetes de contenido como paquetes de difusión con una dirección de destino que indica el haz de enlace descendente de difusión del satélite. Además, el encapsulado por la pasarela mantiene la dirección de origen de servidor web original y la dirección de destino de terminal solicitante dentro de los paquetes para habilitar que el terminal solicitante identifique los paquetes de datos de contenido cuando se recibe a través del canal de difusión. Adicionalmente, se mantienen los identificadores de contenido dentro de los paquetes para que el terminal de cliente solicitante original identifique el contenido. En el caso de una multidifusión, la pasarela encapsula los paquetes de contenido como paquetes de multidifusión dirigidos al respectivo grupo o grupos de multidifusión, y el satélite a su vez transmite los paquetes a través de los respectivos haces/canales de enlace descendente que cubren los ST del grupo de terminales de multidifusión de destino. En este punto también, el encapsulado por la pasarela mantiene la dirección de origen de servidor web original y la dirección de destino de terminal solicitante dentro de los paquetes para habilitar que el ST solicitante identifique los paquetes de datos de contenido cuando se reciben a través de los respectivos haces/canales de enlace descendente, y se mantienen los identificadores de contenido dentro de los paquetes para que el terminal de cliente solicitante original identifique el contenido. De acuerdo con una realización adicional, en el caso de una distribución de difusión o multidifusión de contenido, la pasarela marca el contenido (por ejemplo, a través de un campo de indicador en un encabezamiento de los paquetes de datos de contenido) como designados para almacenamiento en memoria caché oportunista por los ST que reciben el contenido de difusión/multidifusión.
De acuerdo con una realización de este tipo, los criterios pueden incluir estadísticas de popularidad para el contenido en relación con los usuarios dentro del haz de difusión o los usuarios de uno o más grupos de multidifusión particulares. A modo de ejemplo, un factor puede ser la relativa popularidad del contenido (por ejemplo, el título de la película) entre abonados al servicio de contenido particular (por ejemplo, Netflix) o el público más amplio como un indicador de la probabilidad de que otros usuarios pedirían posteriormente el mismo contenido. Además, las estadísticas de
popularidad pueden relacionarse con la popularidad del público general como una base para la difusión del contenido a una base de usuario general dentro del respectivo haz de difusión. Como alternativa o adicionalmente, las estadísticas de popularidad pueden relacionarse con la popularidad entre un grupo de usuarios de multidifusión específico (por ejemplo, un grupo de usuarios de multidifusión de abonados de Netflix, o grupo de usuarios de multidifusión de terminales/dispositivos de cliente basados en iOS o Windows, o un grupo de usuarios de multidifusión de una o más demografías específicas) como una base para difundir el contenido a uno o más respectivos grupos de multidifusión. Como un ejemplo adicional, la estadísticas de popularidad puede relacionarse con popularidad entre un área geográfica particular de uno o más haces de cobertura restringida de enlace descendente del satélite (por ejemplo, el sur de los Estados Unidos, ciertas áreas metropolitanas de los Estados Unidos, etc.), en cuyo caso el contenido puede transmitirse a través de uno o más respectivos haces de enlace descendente de satélite y marcados o indicados (por ejemplo, a través de un campo de encabezamiento de paquete) como almacenables en memoria caché por todos los ST dentro de las respectivas áreas de cobertura que están configurados para el almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención.
De acuerdo con realizaciones de ejemplo adicionales, pueden aplicarse múltiples criterios juntos o aplicarse en un enfoque escalonado. De acuerdo con una realización de este tipo, además de estadísticas de popularidad, los criterios pueden incluir el respectivo caudal de transmisión o tasas de transmisión de los diferentes canales de distribución. Por ejemplo, el caudal o tasa de transmisión puede variar significativamente entre un canal de difusión, los respectivos canales de una transmisión de multidifusión y un canal de unidifusión. La tasa de transmisión de un canal de unidifusión depende únicamente de las características de enlace del ST de destino particular y puede ser tan alta como pueda soportar el terminal. A la inversa, la tasa de transmisión de un canal de difusión está limitada por la mayor tasa de transmisión que pueden soportar todos los terminales dentro del área de cobertura (el menor denominador común), que puede ser menor que la del ST específico desde el que se originó la petición de contenido. Por consiguiente, cuando las tasas de transmisión difieren significativamente entre los respectivos canales de distribución, una menor tasa de transmisión de difusión puede afectar negativamente a la última QoS conseguida (y calidad resultante de la reproducción de contenido difundido en continuo) a un grado inaceptable - en cuyo caso, la pasarela puede elegir no difundir el contenido, y puede en su lugar multidifundir el contenido a un subconjunto de los ST que son capaces de mantener una tasa de transmisión mínima necesaria para un nivel de QoS aceptable o puede simplemente unidifundir el contenido al solicitante original (independientemente de la determinación de popularidad).
Además, como sería evidente para un experto en la materia, pueden aplicarse diversos tipos diferentes y combinaciones de criterios para la determinación de pasarela de si difundir o multidifundir o no el contenido solicitado, de acuerdo con realizaciones de ejemplo. Tales criterios pueden diseñarse para abordar diversos factores diferentes, incluyendo, sin limitación, factores empresariales, factores estadísticos, factores de restricciones de red, etc. Además, como se reconocerá fácilmente, cualquiera de tales tipos y combinaciones de factores adicionales estaría dentro del alcance general de las realizaciones potenciales de la presente invención.
De acuerdo con más realizaciones de ejemplo adicionales, el controlador de memoria caché central de pasarela 239 puede ser responsable de funciones adicionales. A modo de ejemplo, el controlador de memoria caché central haría un seguimiento de las peticiones de contenido y respectivas respuestas de contenido y su asociación. Por medio de un ejemplo adicional, el controlador de memoria caché central puede buscar anticipadamente contenido basándose en una petición de contenido inicial, con lo que, basándose en la recepción de una petición para un segmento individual o inicial de un título de contenido general, el controlador de memoria caché central generaría y transmitiría una petición o peticiones al respectivo servidor de contenido para todos los segmentos del título de contenido o para el título de contenido general. Por medio de un ejemplo adicional, el controlador de memoria caché central puede configurarse para realizar un seguimiento del respectivo estado de las memorias caché de ST locales, según se necesite.
La Figura 3 ilustra un diagrama de bloques de la sección de recepción 310 y la sección de memoria caché 320 de un terminal de satélite (ST) de cliente 201 configurado para el almacenamiento en memoria caché oportunista de contenido distribuido a través de canales de comunicaciones de difusión y multidifusión, de acuerdo con realizaciones de ejemplo de la presente invención. La sección de recepción 310 comprende una antena de transmisión/recepción 311, un demodulador 313, un desintercalador 315 y decodificador de canal 317. La antena 311 recibe una forma de onda de señal 312 transmitida a través del haz/canal de enlace descendente 220 desde el satélite 232. El demodulador 313 demodula, filtra y muestrea la forma de onda de señal recibida para obtener estimadas recibidas de los símbolos 314 de los datos de origen transportados por la forma de onda de señal recibida. El desintercalador 315 reordena la secuencia de símbolos o bits basándose en una manera predeterminada de intercalado aplicado en el transmisor de origen para generar una secuencia de bits desintercalados 316. El decodificador 317, a continuación. decodifica la secuencia de bits desintercalada para regenerar los símbolos y obtener el contenido de datos de origen original 318. La sección de memoria caché 320 comprende un controlador de memoria caché 321 y una memoria caché o almacenamiento 323. De acuerdo con realizaciones de ejemplo, el controlador de memoria caché está configurado para recibir el contenido de datos decodificado, y para tomar decisiones de memoria caché (por ejemplo, si almacenar en memoria caché o no contenido recibido que se recibió por el ST 201 a través de una transmisión de multidifusión o difusión, en la que el ST no era el solicitante original del contenido). Adicionalmente, el controlador de memoria caché 321 estaría configurado para recibir un mensaje de petición de contenido 322 desde el terminal de cliente 221, y determinar si el contenido solicitado ya está almacenado en la memoria caché 323 - en cuyo caso, el controlador de memoria caché 321 serviría el contenido al terminal de cliente 221 directamente desde la memoria caché 323, sin
tener que recuperar el contenido del servidor web 241 o el servidor de contenido 242, a través del satélite 232, pasarela 238 y red de comunicaciones 250.
De acuerdo con tales realizaciones de ejemplo, en el caso en el que la pasarela 238 configura los paquetes de datos de contenido de difusión en continuo para transmisión de difusión o transmisión de multidifusión a través del satélite 232, y el ST de cliente 201 está o bien dentro del haz de difusión (en el caso de a transmisión de difusión) o bien (en el caso de a transmisión de multidifusión) está dentro de un grupo de multidifusión al que la transmisión está dirigido, el ST de cliente 201 recibirá los paquetes de datos de contenido transmitidos. A continuación, una vez que cada paquete de datos de contenido se decodifica y proporciona al controlador de memoria caché 321, el controlador de memoria caché haría una determinación de, basándose en ciertos criterios predeterminados, si almacenar o no el contenido dentro de la memoria caché 323. De acuerdo con una realización, el controlador de memoria caché puede configurarse para determinar simplemente si una copia del contenido particular ya está almacenada o no en la memoria caché, y si no, entonces para almacenar automáticamente el contenido en la memoria caché. De acuerdo con una realización adicional, el controlador de memoria caché puede configurarse para hacer una determinación más sofisticada de si almacenar o no el contenido. A modo de ejemplo, el controlador de memoria caché puede configurarse para determinar si almacenar en memoria caché o no el contenido basándose en un tipo de contenido o género con respecto a uno o más perfiles de usuario asociados al terminal o terminales de cliente 221 servidor por el respectivo cliente ST2 201. Por medio de un ejemplo adicional, el controlador de memoria caché puede configurarse para determinar si almacenar en memoria caché o no el contenido basándose en una o más suscripciones de servicio asociadas con el terminal o terminales de cliente 221 servidos por el respectivo cliente ST2201. Además, el controlador de memoria caché del ST que solicitó originalmente el contenido también puede hacer una determinación de si almacenar el contenido en su memoria caché local, por ejemplo, basándose en políticas/criterios de gestión de memoria caché de ese ST. Además, el controlador de memoria caché de cada ST estaría configurado para gestionar el almacenamiento de contenido en su memoria caché local basándose en ciertas respectivas políticas de gestión de memoria caché predeterminadas que abordan tales factores como antigüedad de los diferentes títulos de contenido almacenados en la memoria caché para escenarios en los que el controlador de memoria caché puede determinar sustituir un título de contenido existente en su memoria caché por un nuevo título de contenido que se recibe a través de una distribución de difusión/multidifusión.
Además, como con los criterios para la determinación por la pasarela de si difundir/multidifundir el contenido solicitado, pueden aplicarse diversos tipos diferentes y combinaciones de criterios para la determinación de controlador de memoria caché de ST de cliente de si almacenar o no el contenido recibido a través de la transmisión de multidifusión/difusión en la memoria caché de terminal local para un potencial consumo posterior por respectivos usuarios de terminales de cliente servidos por el ST de cliente, de acuerdo con realizaciones de ejemplo. De nuevo, tales criterios pueden diseñarse para abordar diversos factores diferentes, incluyendo, sin limitación, factores empresariales, factores estadísticos, factores de restricciones de red, restricciones de almacenamiento de ST, etc. Además, como se reconocerá fácilmente, cualquiera de tales tipos y combinaciones de factores adicionales estaría dentro del alcance general de las realizaciones potenciales de la presente invención.
Además, por otro lado, cuando un usuario selecciona contenido de difusión en continuo (por ejemplo, contenido de medios de difusión en continuo o una actualización de software) a través de una aplicación (por ejemplo, un explorador web) en el terminal de cliente 221, el terminal de cliente envía un correspondiente mensaje de petición de contenido 322 al ST de cliente 201. El controlador de memoria caché 321 recibe el mensaje de petición de contenido y, de acuerdo con realizaciones de ejemplo, el controlador de memoria caché está configurado para determinar primero si el contenido solicitado ya está almacenado en la memoria caché de una transmisión de difusión/multidifusión anterior en respuesta a una petición de contenido de un terminal diferente. Si el contenido solicitado ya está almacenado en la memoria caché 323, a continuación el controlador de memoria caché recupera el contenido solicitado desde la memoria caché 323 y distribuye el mismo directamente desde la memoria caché al terminal de cliente 221. Por consiguiente, un mecanismo de almacenamiento en memoria caché oportunista de este tipo ahorra de este modo un tiempo significativo por no tener que recuperar el contenido a través de una serie de transacciones con el respectivo servidor web remoto que controla el contenido solicitado, y ahorra recursos de red significativos (especialmente los recursos valiosos y limitados de un satélite o red inalámbrica celular) por no tener que utilizar el ancho de banda de red adicional para recuperar el contenido del servidor web remoto.
La memoria caché se ubica en los terminales de los usuarios. Tiene las siguientes funciones: capacidad de asociar una petición de contenido con contenido almacenado en la memoria caché local. Asociar una petición para todo el contenido con contenido en la memoria caché local. Asociar una petición para un segmento del contenido con contenido en la memoria caché local y servir al correspondiente segmento del contenido al cliente. Responsable de gestión de memoria caché. Decidir si el contenido tiene que almacenarse en memoria caché o no. Política de sustitución de memoria caché. La política puede basarse en la preferencia de los usuarios conectados a un terminal. Enviar estado de memoria caché al controlador de memoria caché central según se necesite.
La Figura 4A ilustra un diagrama de flujo de un proceso para una única petición de contenido, y distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención. Como se muestra en la Figura 4A, en el extremo de cliente, existen N terminales de cliente servidos por N respectivos ST de cliente, teniendo cada uno una memoria caché local para el almacenamiento
en memoria caché oportunista de contenido difundido en continuo. Cuando un usuario en el terminal de cliente 1 solicita contenido, por ejemplo, a través de una aplicación web de contenido o medios, el terminal envía una petición de contenido al ST 1 que sirve a ese terminal de cliente. El ST hace primero una determinación de si el contenido solicitado ya está almacenado en su memoria caché local, y si es así, el ST proporciona el contenido al respectivo terminal de cliente directamente desde su memoria caché. Si el contenido no está almacenado en la memoria caché local del ST, el ST a su vez envía una petición de contenido a la respectiva pasarela que sirve a ese ST, y la pasarela recupera el contenido del respectivo servidor web/servidor de contenido, a través de una protocolo de petición de respuesta, tal como un protocolo HTTP a través de la Internet. Cuando la pasarela recibe la respuesta de contenido, como se ha analizado anteriormente, hace una determinación de distribuir el contenido a través de un método de distribución de difusión/multidifusión (por ejemplo, a través de respectivos canales de comunicaciones por satélite). Como el ST 1 recibe el contenido de difusión/multidifusión, y reenvía la respuesta de contenido al respectivo terminal de cliente 1. Adicionalmente, los ST de cliente adicionales 2-N reciben la distribución de contenido de difusión/multidifusión, y determinan que el contenido se designa para almacenamiento en memoria caché oportunista (por ejemplo, basándose en el tipo de contenido o título, o un indicador proporcionado por la pasarela en un encabezamiento de los paquetes de datos de contenido). Por consiguiente, el controlador de memoria caché de cada tal ST de cliente adicional determina si el contenido ya está almacenado en su memoria caché, y si no, el controlador de memoria caché almacena el contenido en la memoria caché local del ST. Como alternativa, como se ha analizado anteriormente, el ST también puede hacer una determinación basándose en criterios locales predeterminados de si almacenar en memoria caché o no el contenido recibido. Cuando el ST solicitante recibe el contenido, el controlador de memoria caché de ese ST hace una determinación de si almacenar el contenido en su memoria caché local, y el ST comienza la distribución del contenido al respectivo terminal de cliente 1. Posteriormente, si/cuando los usuarios de los otros terminales de cliente 2-N deciden acceder al mismo contenido, el respectivo terminal de cliente envía una petición de contenido al respectivo ST que sirve al terminal, y el controlador de memoria caché de ese ST determina que el contenido ya está almacenado en su memoria caché local y por consiguiente proporciona el contenido al respectivo terminal de cliente (sin tener que recuperar el contenido del respectivo servidor web/servidor de contenido).
La Figura 4B ilustra un diagrama de flujo de un proceso para una petición de contenido de múltiples segmentos, y distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención. La Figura 4B muestra un caso en el que el contenido está segmentado en múltiples segmentos o bien virtualmente o bien físicamente y se accede al mismo usando múltiples peticiones de contenido, una petición para cada segmento. Existen "n" segmentos del contenido y el terminal de cliente/ST de cliente emite "n" peticiones, una para cada segmento del contenido. De nuevo, el controlador de memoria caché del ST que sirve al terminal de cliente solicitante hace primero una determinación en cuanto a si el contenido solicitado está almacenado en la memoria caché local del ST. Si el contenido solicitado no está almacenado en la memoria caché local del ST, a continuación el ST reenvía la petición de contenido a la pasarela, y la pasarela recupera el contenido del respectivo servidor web/servidor de contenido. La pasarela a su vez toma la decisión (como se ha analizado anteriormente) de distribuir cada segmento de contenido a través de un método de distribución de difusión o multidifusión, y los ST que reciben el contenido de difusión/multidifusión hacen una determinación (por ejemplo, basándose en sus respectivas políticas/criterios de gestión de memoria caché local) para almacenar el contenido recibido en las respectivas memorias caché locales. Posteriormente, sobre una base de segmento por segmento, los terminales de cliente adicionales pueden hacer peticiones para los mismos segmentos de contenido, que se servirían directamente a través de las respectivas memorias caché locales de ST. Cuando cada tal ST adicional recibe una petición para un segmento particular del contenido, el control de memoria caché de ese ST puede servir la petición directamente desde su memoria caché local, con la condición de que el segmento particular se ha recibido por el ST y se ha almacenado en su memoria caché local. Como sería evidente, las peticiones/respuestas para segmentos de contenido particulares pueden producirse con respecto a los diferentes pares de terminal de cliente y ST en cualquier orden, y, con la condición de que el segmento de contenido particular solicitado se ha recibido por el ST y se ha almacenado en su memoria caché local, el ST sería capaz de servir esa petición directamente desde su memoria caché local. Además, como también sería evidente, las peticiones de contenido posteriores de otro par de terminal de cliente/ST pueden solicitar el contenido del mismo servidor de contenido como la petición de contenido original que resultó en el almacenamiento de memoria caché local de los datos de respuesta, o desde un servidor diferente que proporciona servicios de medios de difusión en continuo y almacena el mismo contenido de medios y archivo de contenido particular (por ejemplo, como una PBR dada) - siempre que los segmentos del mismo archivo de contenido se almacenen en la memoria caché local, el respectivo ST puede servir las peticiones de contenido desde la memoria caché local.
La Figura 4C ilustra un diagrama de flujo de un proceso para una petición de contenido de múltiples segmentos, una recuperación de contenido de búsqueda anticipada, y distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención. El escenario representado en la Figura 4C es similar al escenario representado en la Figura 4B, siendo la única diferencia que, tras recibir la petición para el primer segmento de contenido desde el ST solicitante 1, la pasarela busca anticipadamente todo el título de contenido del servidor web/servidor de contenido. En ese caso, la pasarela puede distribuir, a continuación, todo el título de contenido al ST 1 antes de recibir peticiones para segmentos de contenido posteriores. Como alternativa, la pasarela puede almacenar todo el título de contenido en su memoria caché local, y puede servir peticiones para segmentos de contenido posteriores desde el ST 1 desde su memoria caché local sin tener que recuperar los segmentos de contenido posteriores del servidor web/servidor de contenido (obsérvese, esta
alternativa no se representa en la figura). En el caso en el que la pasarela difunde/multidifunde todo el título de contenido buscado con antelación, cada ST que recibe el contenido hace la determinación (basándose en sus respectivas políticas/criterios de gestión de memoria caché) de almacenar todo el título de contenido en su respectiva memoria caché local. Posteriormente, cuando uno cualquiera de estos ST recibe una petición para cualquiera de los segmentos de ese título de contenido, el controlador de memoria caché al que el ST sería capaz de servir la petición de contenido directamente desde su memoria caché local, sin tener que recuperar el contenido del servidor web remoto/servidor de contenido.
De acuerdo con realizaciones de ejemplo adicionales, un terminal de cliente puede cancelar su consumo de contenido después de solicitar el contenido. Para el caso de una única petición de contenido (por ejemplo, como se representa en la Figura 4A), la memoria caché local del respectivo ST no sería consciente necesariamente de la cancelación, por ejemplo, hasta que se recibe un TCP RST (restablecimiento TCP). Tras la recepción del TCP RST, el controlador de memoria caché del ST proporcionaría una notificación a la pasarela de la cancelación. En respuesta a la notificación de cancelación, el controlador de memoria caché central de la pasarela puede abortar, pero no necesitar abortar necesariamente, su distribución de difusión/multidifusión del contenido. En su lugar, de acuerdo con una realización de ejemplo, el controlador de memoria caché de pasarela estaría configurado para hacer una determinación (por ejemplo, basándose en tales factores como la popularidad relativa del contenido y la cantidad del contenido que ya se ha distribuido) para continuar la distribución de difusión/multidifusión del contenido. En un caso en el que la pasarela aborta la distribución de contenido, el controlador de memoria caché de los ST que han estado recibiendo el contenido puede vaciar el contenido ya recibido de las respectivas memorias caché locales. En un caso en el que la pasarela continúa la distribución del contenido, el controlador de memoria caché de los ST que han estado recibiendo el contenido continuarían almacenando el contenido en sus respectivas memorias caché locales para servir a potenciales peticiones posteriores para el contenido.
Para una cancelación de petición de contenido en el caso de múltiples peticiones de segmentos de contenido (por ejemplo, como se representa en la Figura 4B), la difusión/multidifusión de contenido se distribuiría hasta el segmento actual, que el cliente ha solicitado hasta el punto de cancelación (incluso aunque el terminal de cliente solicitante puede detener su consumo en mitad de la distribución del segmento). Cuando ese terminal de cliente (u otro terminal de cliente servido por un ST que ha almacenado en memoria caché el contenido) solicita el mismo contenido en el futuro, el contenido se servirá desde la memoria caché local hasta el último segmento que se distribuyó. Para el resto de segmentos del contenido, la petición/respuesta y funciones de almacenamiento en memoria caché continúa como se representa en la figura. El controlador de memoria caché central de pasarela reconocería que los segmentos son parte del título de contenido que ha distribuido parcialmente y, a continuación, puede hacer la determinación de difundir/multidifundir segmentos posteriores (no distribuidos anteriormente) a los respectivos ST.
Para una cancelación de petición de contenido en el caso de múltiples peticiones de segmentos de contenido y una búsqueda anticipada y distribución de difusión/multidifusión de todo el título de contenido, el controlador de memoria caché del ST que sirve al terminal de cliente que hace la petición de contenido inicial puede abortar el almacenamiento continuado de los segmentos de contenido y su memoria caché local y puede notificar a la pasarela de la cancelación de petición de contenido. Como alternativa, el controlador de memoria caché puede continuar almacenando los segmentos de contenido posteriores difundidos/multidifundidos por la pasarela (por ejemplo, de nuevo basándose en criterios de gestión de memoria caché tales como la popularidad relativa del contenido y la cantidad de contenido ya recibido). De manera similar, en el caso en el que el St solicitante no notifica la pasarela para terminar la transmisión de difusión/multidifusión, los controladores de memoria caché de los ST adicionales que reciben el contenido continuarían almacenando el contenido en sus respectivas memorias caché locales. Posteriormente, cualquier petición futura para el contenido se serviría por el respectivo ST directamente desde su memoria caché local, en la medida en que el ST tiene el contenido solicitado almacenado en el mismo.
De acuerdo con realizaciones de ejemplo adicionales, las realizaciones anteriores pueden aplicarse a un caso en el que un terminal de cliente envía peticiones de contenido para una reserva de contenido para un momento de consumo futuro específico. En un escenario de este tipo, el contenido podría aún distribuirse a través de métodos de distribución de difusión/multidifusión y puede aplicarse un almacenamiento en memoria caché oportunista de acuerdo con tales realizaciones. Además, en el caso de una reserva para un consumo futuro, el sistema tendría el lujo de servir una petición de este tipo en momentos cuando los recursos de sistema están disponibles más fácilmente (por ejemplo, durante horas no pico), con la condición de que el contenido se entregue finalmente antes del momento de consumo futuro específico de la petición de reserva. Además, en momentos en los que los recursos de sistema están disponibles fácilmente, el contenido popular puede distribuirse a través de difusión/multidifusión y almacenamiento en memoria caché oportunista, sin ser solicitado (por ejemplo, en el caso de una actualización de software de iOS o una actualización de software de Windows de Microsoft).
La Figura 5 ilustra un diagrama de bloques de un conjunto de chips 500 que implementa aspectos de enfoques de almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención. El conjunto de chips 500 incluye, por ejemplo, componentes de procesador y memoria incorporados en uno o más paquetes físicos. A modo de ejemplo, un paquete físico incluye una disposición de uno o más materiales, componentes y/o alambres en un conjunto estructural (por ejemplo, una placa base o placa de circuito impreso) para proporcionar una o más características tales como fuerza física, conservación de tamaño y/o limitación de interacción eléctrica.
En una realización, el conjunto de chips 500 incluye un mecanismo de comunicación tal como un bus 501 para pasar información entre los componentes del conjunto de chips. Un procesador 503 tiene conectividad con el bus 501 para ejecutar instrucciones/programas y procesa información almacenada en, por ejemplo, una memoria 505. El procesador puede incluir uno o más núcleos de procesamiento con cada núcleo configurado para funcionar independientemente. Un procesador de múltiples núcleos habilita múltiples procesamientos dentro de un único paquete físico, tal como dos, cuatro, ocho o mayor número de núcleos de procesamiento. Como alternativa o además, el procesador puede incluir uno o más microprocesadores configurados en tándem a través del bus para habilitar la ejecución independiente de instrucciones, canalización y multihilo. El procesador también puede estar acompañado de uno o más componentes especializados para realizar ciertas funciones y tareas de procesamiento tales como uno o más procesadores de señales digitales (DSP) 507 y/o uno o más circuitos integrados específicos de la aplicación (ASIC) 509. Un DSP habitualmente está configurado para procesar señales en tiempo real (por ejemplo, sonido o vídeo) en tiempo real independientemente del procesador. De manera similar, el ASIC puede configurarse para realizar funciones especializadas no realizadas fácilmente por un procesador de fin general. Otros componentes especializados para ayudar en la realización de las funciones inventivas descritas en este documento pueden incluir uno o más campos de matrices de puertas programables (FPGA) (no mostrados), uno o más controladores (no mostrados), o uno o más otros chips de ordenador de fin especial.
El procesador 503 y componentes adjuntos tienen conectividad con la memoria 505 a través del bus 501. La memoria puede incluir tanto memoria dinámica (por ejemplo, RAM) como memoria estática (por ejemplo, ROM) para almacenar instrucciones ejecutables que, cuando se ejecutan por el procesador y/o el DSP 507 y/o el ASIC 509, realizan el proceso de realizaciones de ejemplo como se describen en este documento. La memoria también puede almacenar los datos asociados a o generados por la ejecución del proceso.
Además, la funcionalidad de las realizaciones de ejemplo de la presente invención puede proporcionarse por el conjunto de chips 500, en respuesta al procesador 503 ejecutando una disposición de instrucciones de programa contenidas en la memoria 505. La ejecución de las instrucciones de programa contenidas en memoria provoca que el procesador realice las etapas de proceso y genere los resultados descritos en este documento, o equivalentes de los mismos. También pueden emplearse uno o más procesadores en una disposición de múltiples procesamientos para ejecutar las instrucciones de programa. En realizaciones alternativas, puede usarse circuitería cableada en lugar de o en combinación con instrucciones de software para implementar las realizaciones de ejemplo. Por lo tanto, las realizaciones de la presente invención no se limitan a ninguna combinación específica de circuitería de hardware y software.
Además, como se apreciará, un módulo o componente (como se denomina en este documento) puede estar compuesto de componente o componentes de software, que se almacenan en una memoria u otro medio de almacenamiento legible por ordenador, y se ejecutan por uno o más procesadores o CPU de los respectivos dispositivos. Sin embargo, como también se apreciará, un módulo puede estar compuesto alternativamente por un componente o componentes de hardware o un componente o componentes de firmware, o una combinación de componentes de hardware, firmware y/o software. Además, con respecto a las diversas realizaciones de ejemplo descritas en este documento, aunque se describen ciertas funciones como que se realizan por ciertos componentes o módulos (o combinaciones de los mismos), tales descripciones se proporcionan como ejemplos y, por lo tanto, no pretenden ser limitantes. Por consiguiente, cualquiera de tales funciones puede imaginarse como que se realiza por otros componentes o módulos (o combinaciones de los mismos), sin alejarse del espíritu y el alcance general de la presente invención. Además, los métodos, procesos y enfoques descritos en este documento pueden implementarse en procesador usando una circuitería de procesamiento que puede comprender uno o más microprocesadores, circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA) u otros dispositivos operables para configurarse o programarse para implementar los sistemas y/o métodos descritos en este documento. Para la implementación en tales dispositivos que son operables para ejecutar instrucciones de software, los diagramas de flujo y los métodos descritos en este documento pueden implementarse en instrucciones de procesador almacenadas en un medio legible por ordenador, tal como software ejecutable almacenado en un almacenamiento de memoria informática.
La Figura 6 ilustra un diagrama de bloques de un sistema informático que implementa aspectos de enfoques de almacenamiento en memoria caché oportunista, de acuerdo con realizaciones de ejemplo de la presente invención. El sistema informático 600 incluye un bus 601 u otro mecanismo de comunicación para comunicar información y un procesador 603 acoplado al bus para procesar información. El sistema informático también incluye una memoria principal 605, tal como una memoria de acceso aleatorio (RAM) u otro dispositivo de almacenamiento dinámico, acoplado al bus para almacenar información e instrucciones a ejecutar por el procesador. La memoria principal también puede usarse para almacenar variables temporales u otra información intermedia durante la ejecución de instrucciones a ejecutar por el procesador. El sistema informático incluye adicionalmente una memoria de sólo lectura (ROM) 607 u otro dispositivo de almacenamiento estático acoplado al bus para almacenar información estática e instrucciones para el procesador. Un dispositivo de almacenamiento 609, tal como un disco magnético o disco óptico, se acopla adicionalmente al bus para almacenar información e instrucciones.
De acuerdo con una realización de la invención, se proporcionan enfoques dinámicos y flexibles para el
almacenamiento en memoria caché oportunista por el sistema informático 600 en respuesta al procesador 603 ejecutando una disposición de instrucciones contenidas en la memoria principal 605. Tales instrucciones pueden leerse en la memoria principal desde otro medio legible por ordenador, tal como el dispositivo de almacenamiento 609. La ejecución de la disposición de instrucciones contenidas en memoria principal provoca que el procesador realice las etapas de proceso descritas en este documento. También pueden emplearse uno o más procesadores en una disposición de múltiples procesamientos para ejecutar las instrucciones contenidas en la memoria principal. En realizaciones alternativas, se usa circuitería cableada en lugar de o en combinación con instrucciones de software para implementar la realización de la presente invención. Por lo tanto, las realizaciones de la presente invención no se limitan a ninguna combinación específica de circuitería de hardware y software.
El sistema informático 600 también incluye una interfaz de comunicación 617 acoplada al bus 601. A modo de ejemplo, la interfaz de comunicación proporciona una comunicación de datos bidireccional que se acopla a un enlace de red 619 conectado a una red local 621. La interfaz de comunicación, por ejemplo, puede ser una tarjeta o módem de línea digital de abonado (DSL), una tarjeta de red digital de servicios integrados (ISDN), un módem de cable u otro módem para proporcionar una conexión de comunicación de datos a un correspondiente tipo de línea telefónica. Como otro ejemplo, la interfaz de comunicación puede ser una tarjeta de red de área local (LAN) (por ejemplo, para Ethernet™ o una red de Modo de Transferencia Asíncrona (ATM)) para proporcionar una conexión de comunicación de datos a una LAN compatible, o un módem óptico configurado para proporcionar comunicaciones con un enlace de red de fibra óptica. También pueden implementarse enlaces inalámbricos. Además, la interfaz de comunicación, por ejemplo, incluye dispositivos de interfaz periféricos, tales como una interfaz de Bus Serial Universal (USB), una interfaz de PCMCIA (Asociación Internacional de Tarjetas de Memoria para Ordenadores Personales), etc.
El enlace de red 619 normalmente proporciona comunicación de datos a través de una o más redes a otros dispositivos de datos. Por ejemplo, el enlace de red proporciona una conexión a través de la red local 621 a un ordenador de anfitrión 623, que tiene conectividad con una red 625, tal como una red de área extensa (WAN) privada o una WAN pública (por ejemplo, la Internet), o a un equipo de datos operado por el proveedor de servicios. El sistema informático 600 envía mensajes y recibe datos, incluyendo código de programa, a través de la red o redes, a través del enlace de red 419 y la interfaz de comunicación 617. En el ejemplo de Internet, un servidor (no mostrado) podría transmitir código o contenido solicitado que pertenece a un programa de aplicación o servicio para implementar una realización de la presente invención a través de la red 625. El procesador 603 ejecuta el código transmitido mientras se recibe y/o almacena el código en dispositivo de almacenamiento, u otro almacenamiento no volátil para una ejecución posterior.
Adicionalmente, terminología haciendo referencia a medio legible por ordenador o medio informático o similar como se usa en este documento se refiere a cualquier medio que participa en la provisión de instrucciones al procesador de un ordenador o un módulo de procesador o componente para su ejecución. Un medio de este tipo puede tomar muchas formas, incluyendo, pero sin limitación a, medios no volátiles no transitorios y medios volátiles. Los medios no volátiles incluyen, por ejemplo, medios de disco óptico, medios de disco magnético o medios de disco eléctrico (por ejemplo, disco de estado sólido o SDD). Los medios volátiles incluyen memoria dinámica, tal como memoria de acceso aleatorio o RAM. Las formas comunes de medios legibles por ordenador incluyen, por ejemplo, disquete o disco flexible, disco duro, cinta magnética, cualquier otro medio magnético, CD ROM, CDRW, DVD, cualquier otro medio óptico, memoria de acceso aleatorio (RAM), memoria programable de solo lectura (PROM), PROM borrable, EPROM flash, cualquier otro chip o cartucho de memoria o cualquier otro medio del cual un ordenador puede leer datos.
Mientras realizaciones de ejemplo de la presente invención pueden proporcionar diversas implementaciones (por ejemplo, incluyendo hardware, firmware y/o componentes de software) y, a no ser que se indique de otra manera, todas las funciones se realizan por una CPU o un procesador que ejecuta código de programa informático ejecutable almacenado en una memoria no transitoria o medio de almacenamiento legible por ordenador, los diversos componentes pueden implementarse en diferentes configuraciones de hardware, firmware, software y/o una combinación de los mismos. Excepto según se divulga de otra manera en este documento, los diversos componentes mostrados en esquema o en bloque en las figuras se conocen bien individualmente y su construcción interna y operación no son críticas o bien para la realización o uso de esta de esta invención o bien para una descripción del mejor modo de la misma.
En la especificación anterior, se han descrito diversas realizaciones con referencia a los dibujos adjuntos. Sin embargo, será evidente que pueden hacerse diversas modificaciones a las mismas, y pueden implementarse realizaciones adicionales, sin alejarse del alcance más amplio de la invención como se expone en las reivindicaciones que siguen a continuación. La memoria descriptiva y dibujos, por consiguiente, deben considerarse en un sentido ilustrativo en lugar de un sentido restrictivo.
Claims (17)
1. Un método de almacenamiento en memoria caché oportunista de datos de medios de difusión en continuo, comprendiendo el método:
recibir, por un segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), una primera respuesta de contenido transmitida por un primer servidor de contenido (242), a través de un medio de comunicación de difusión o multidifusión, en respuesta a una primera petición de contenido de un primer dispositivo de cliente (221a-221f) asociado a un primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), y en donde la primera respuesta de contenido incluye un primer contenido de datos (318) solicitado por el primer dispositivo de cliente (221a-221f) a través del primer terminal de comunicaciones (134(1)a-134(1)n, 134 (2)a-134(2)n, ST201a-ST201f);
determinar, por un controlador de memoria caché (321) de un dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134 (1)a-134(1)n, 134 (2)a-134(2)n, ST201a-ST201f), que el primer contenido de datos (318) de la primera respuesta de contenido es potencialmente pertinente para al menos un dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde la determinación se basa en uno o más criterios asociados al primer contenido de datos de la primera respuesta de contenido;
almacenar, por el primer controlador de memoria caché (321) del dispositivo de almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), el primer contenido de datos en el dispositivo de almacenamiento de memoria caché local (323) basándose en la determinación de que el primer contenido de datos es potencialmente pertinente para el al menos un dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), incluso aunque la primera respuesta de contenido se transmite en respuesta a la primera petición de contenido del primer dispositivo de cliente (221a-221f), que se asocia al primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f),
cancelar, por el primer dispositivo de cliente (221a-221f) su consumo de contenido después de solicitar el primer contenido de datos (318); y
notificar a una pasarela (138a-138n), por un controlador de memoria caché (321) asociado al primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), acerca de la cancelación del primer contenido de datos solicitado (318), y en respuesta un controlador de memoria caché de pasarela (239) determina continuar o abortar la entrega de difusión o multidifusión del primer contenido de datos (318).
2. El método de acuerdo con la reivindicación 1, en donde el primer contenido de datos (318) de la primera respuesta de contenido comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el primer dispositivo de cliente (221a-221f), a través del primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), como parte de una sesión de datos de difusión en continuo del primer dispositivo de cliente (221a-221f).
3. El método de acuerdo con la reivindicación 2, en donde la sesión de datos de difusión en continuo del primer dispositivo de cliente (221a-221f) comprende una de una sesión de datos de medios de difusión en continuo y una sesión de datos de descarga de software de difusión en continuo.
4. El método de acuerdo con la reivindicación 1, en donde el controlador de memoria caché (321) y el dispositivo del almacenamiento de memoria caché local (323) son componentes del segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f).
5. El método de acuerdo con la reivindicación 2, que además comprende:
recibir, por el segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), una pluralidad de respuestas de contenido adicionales transmitidas por el primer servidor de contenido (242), a través del medio de comunicación de difusión o multidifusión, en respuesta a respectivas peticiones de contenido adicionales del primer dispositivo de cliente (221a-221f), en donde cada respuesta de contenido adicional incluye contenido de datos adicional que comprende al menos un segmento posterior de la secuencia de segmentos del fichero de datos solicitado por el primer dispositivo de cliente (221a-221f), a través del primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), como parte de la sesión de datos de difusión en continuo del primer dispositivo de cliente (221a-221f); y
determinar, por el controlador de memoria caché (321) del dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), almacenar al menos el contenido de datos adicional de cada una de las respuestas de contenido adicionales en el dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde la determinación de almacenar se basa en el uno o más criterios.
6. El método de acuerdo con la reivindicación 1, que además comprende:
recibir, por el segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), una segunda petición de contenido de un segundo dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134 (1)a-134(1)n, 134 (2)a-134(2)n, ST201a-sT201f), solicitando la segunda petición de contenido un segundo contenido de datos (318) desde un servidor a través del segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde el servidor es uno del primer servidor de contenido (242) y un segundo servidor de contenido (242);
determinar, por el controlador de memoria caché (321) del dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), que el segundo contenido de datos (318) solicitado por la segunda petición de contenido del segundo dispositivo de cliente (221a-221f) es equivalente al primer contenido de datos (318) de la primera respuesta de contenido almacenada en el dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f); y
recuperar el primer contenido de datos (318) de la respuesta de contenido almacenada en el dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), y proporcionar el primer contenido de datos al segundo dispositivo de cliente (221a-221f) como una segunda respuesta de contenido en respuesta a la segunda petición de contenido.
7. El método de acuerdo con la reivindicación 1, que además comprende:
recibir, por el segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), una segunda petición de contenido de un segundo dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), solicitando la segunda petición de contenido un segundo contenido de datos (318) desde un servidor a través del segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde el servidor es uno del primer servidor de contenido (242) y un segundo servidor de contenido (242);
determinar, por el controlador de memoria caché (321) del dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), que el segundo contenido de datos (318) solicitado por la segunda petición de contenido no es equivalente a ningún contenido de datos (318) almacenado en el dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f);
transmitir la segunda petición de contenido al servidor, y recibir una segunda respuesta de contenido desde el servidor en respuesta a la segunda petición de contenido, en donde la segunda respuesta de contenido incluye el segundo contenido de datos solicitado (318);
proporcionar la segunda respuesta de contenido al segundo dispositivo de cliente (221a-221f) en respuesta a la segunda petición de contenido.
8. El método de acuerdo con la reivindicación 5, que además comprende:
recibir, por el segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), una pluralidad de segundas peticiones de contenido de un segundo dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde cada segunda petición de contenido solicita, de un servidor, contenido de datos (318) que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente (221a-221f), a través del segundo terminal de comunicaciones (134(1)a-134(1)n, 134 (2) a-134(2)n, ST201a-ST201f), como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente (221a-221f), y en donde el servidor es uno del primer servidor de contenido (221a-221f) y un segundo servidor de contenido (221a-221f);
determinar, por el controlador de memoria caché (321) del dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), que el contenido de datos solicitado por cada una de una o más de las segundas peticiones de contenido es equivalente al contenido de datos adicional (318) de una respectiva de las respuestas de contenido adicionales almacenadas en el dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134 (1)a-134(1)n, 134 (2) a-134(2)n, ST201a-ST201f); y
recuperar, del dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134 (1)a-134(1)n, 134 (2)a-134(2)n, ST201a-ST201f), el contenido de datos adicional (318) de la respectiva respuesta de las respuestas de contenido adicionales que se determina que es equivalente al contenido de datos (318) solicitado por cada una de la una más segundas peticiones de contenido, y proporcionar cada contenido de datos adicional (318) de este tipo de la respectiva respuesta de las respuestas de contenido adicionales al segundo cliente como una respuesta de contenido en respuesta a una respectiva de la segunda petición de contenido.
9. El método de acuerdo con la reivindicación 5, que además comprende:
recibir, por el segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), una pluralidad de segundas peticiones de contenido de un segundo dispositivo de cliente (221a-221f) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde cada
segunda petición de contenido solicita, de un servidor, contenido de datos (318) que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente (221a-221f), a través del segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente (221a-221f), y en donde el servidor es uno del primer servidor de contenido (242) y un segundo servidor de contenido (242); determinar, por el controlador de memoria caché (321) del dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), que el contenido de datos (318) solicitado por cada una de una o más de las segundas peticiones de contenido no es equivalente a ningún contenido de datos (318) almacenado en el dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f); transmitir al servidor cada una de la una o más segundas peticiones de contenido, para las que el contenido de datos solicitado (318) se determina que no es equivalente a ningún contenido de datos (318) almacenado en el dispositivo del almacenamiento de memoria caché local (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), y recibir una respectiva segunda respuesta de contenido desde el servidor en respuesta a cada una de las segundas peticiones de contenido transmitidas al mismo, en donde cada segunda respuesta de contenido de este tipo incluye el respectivo contenido de datos solicitado (318); y
proporcionar cada una de las segundas respuestas de contenido recibidas desde el servidor al segundo dispositivo de cliente (221a-221f) en respuesta a la respectiva segunda petición de contenido.
10. Un terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f) que comprende:
un controlador de memoria caché (321);
un dispositivo del almacenamiento de memoria caché (323);
una interfaz de dispositivo cliente;
un dispositivo de receptor; y
un dispositivo de transmisor;
en donde la interfaz de dispositivo de cliente es operable para interactuar con un segundo dispositivo de cliente (221a-221f);
en donde el dispositivo de receptor es operable para recibir una primera respuesta de contenido transmitida por un primer servidor de contenido (242), a través de un medio de comunicación de difusión o multidifusión, en respuesta a una primera petición de contenido de un primer dispositivo de cliente (221a-221f) asociado únicamente a otro terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde la primera respuesta de contenido incluye un primer contenido de datos (318) solicitado por el primer dispositivo de cliente (221a-221f) a través del otro terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f),
en donde el controlador de memoria caché (321) es operable para determinar que el primer contenido de datos (318) de la primera respuesta de contenido es potencialmente pertinente para el segundo dispositivo de cliente, y la determinación se basa en uno o más criterios asociados al primer contenido de datos de la primera respuesta de contenido,
en donde el controlador de memoria caché (321) es operable para almacenar el primer contenido de datos en el dispositivo de almacenamiento de memoria caché (323) basándose en la determinación de que el primer contenido de datos es potencialmente pertinente para el segundo dispositivo de cliente (221a-221f), incluso aunque la primera respuesta de contenido se transmitió en respuesta a la primera petición del primer dispositivo de cliente (221a-221f), que se asocia al otro terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde el primer dispositivo de cliente (221a-221f) es operable para cancelar su consumo de contenido después de solicitar el primer contenido de datos (318); y en donde el controlador de memoria caché (321) asociado al primer terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f) es operable para notificar a una pasarela (138a-138n) acerca de la cancelación del primer contenido de datos solicitado (318), y en respuesta un controlador de memoria caché de pasarela (239) determina continuar o abortar la entrega de difusión o multidifusión del primer contenido de datos (318).
11. El terminal de comunicaciones de acuerdo con la reivindicación 10, en donde el primer contenido de datos (318) de la primera respuesta de contenido comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el primer dispositivo de cliente (221a-221f), a través del otro terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), como parte de una sesión de datos de difusión en continuo del primer dispositivo de cliente (221a-221f).
12. El terminal de comunicaciones de acuerdo con la reivindicación 11, en donde la sesión de datos de difusión en continuo del primer dispositivo de cliente (221a-221f) comprende una de una sesión de datos de medios de difusión en continuo y una sesión de datos de descarga de software de difusión en continuo.
13. El terminal de comunicaciones de acuerdo con la reivindicación 11, en donde:
el dispositivo de receptor es operable adicionalmente para recibir una pluralidad de respuestas de contenido adicionales transmitidas por el primer servidor de contenido (242), a través del medio de comunicación de difusión o multidifusión, en respuesta a respectivas peticiones de contenido adicionales del primer dispositivo de cliente
(221a-221f), en donde cada respuesta de contenido adicional incluye contenido de datos adicional (318) que comprende al menos un segmento posterior de la secuencia de segmentos del fichero de datos solicitado por el primer dispositivo de cliente (221a-221f), a través del otro terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), como parte de la sesión de datos de difusión en continuo del primer dispositivo de cliente (221a-221f); y
el controlador de memoria caché (321) es operable adicionalmente para determinar almacenar al menos el contenido de datos adicional (318) de cada una de las respuestas de contenido adicionales en el dispositivo del almacenamiento de memoria caché (323), y la determinación de almacenar se basa en uno o más criterios.
14. El terminal de comunicaciones de acuerdo con la reivindicación 10, en donde:
la interfaz de dispositivo de cliente es operable adicionalmente para recibir una segunda petición de contenido del segundo dispositivo de cliente (221a-221f), solicitando la segunda petición de contenido un segundo contenido de datos desde un servidor a través del terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde el servidor es uno del primer servidor de contenido (242) y un segundo servidor de contenido (242);
el controlador de memoria caché (321) es operable adicionalmente para determinar que el segundo contenido de datos (318) solicitado por la segunda petición de contenido del segundo dispositivo de cliente (221a-221f) es equivalente al primer contenido de datos (318) de la primera respuesta de contenido almacenada en el dispositivo del almacenamiento de memoria caché (323), y para recuperar el primer contenido de datos de la respuesta de contenido desde el dispositivo del almacenamiento de memoria caché (323); y
la interfaz de dispositivo de cliente es operable adicionalmente para proporcionar el primer contenido de datos (318) al segundo dispositivo de cliente (221a-221f) como una segunda respuesta de contenido en respuesta a la segunda petición de contenido.
15. El terminal de comunicaciones de acuerdo con la reivindicación 10, en donde:
la interfaz de dispositivo de cliente es operable adicionalmente para recibir una segunda petición de contenido del segundo dispositivo de cliente (221a-221f), solicitando la segunda petición de contenido un segundo contenido de datos (318) desde un servidor a través del terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), en donde el servidor es uno del primer servidor de contenido (242) y un segundo servidor de contenido (242);
el controlador de memoria caché es operable adicionalmente para determinar que el segundo contenido de datos (318) solicitado por la segunda petición de contenido no es equivalente a ningún contenido de datos (318) almacenado en el dispositivo de almacenamiento de memoria caché (323);
el dispositivo de transmisor es operable para transmitir la segunda petición de contenido al servidor, y el dispositivo de receptor es operable adicionalmente para recibir una segunda respuesta de contenido desde el servidor en respuesta a la segunda petición de contenido, en donde la segunda respuesta de contenido incluye el segundo contenido de datos solicitado (318); y
la interfaz de dispositivo de cliente es operable adicionalmente para proporcionar la segunda respuesta de contenido al segundo dispositivo de cliente (221a-221f) en respuesta a la segunda petición de contenido.
16. El terminal de comunicaciones de acuerdo con la reivindicación 13, en donde:
la interfaz de dispositivo de cliente es operable adicionalmente para recibir una pluralidad de segundas peticiones de contenido del segundo dispositivo de cliente (221a-221f), en donde cada segunda petición de contenido solicita, de un servidor, contenido de datos (318) que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente (221a-221f), a través del terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente (221a-221f), y en donde el servidor es uno del primer servidor de contenido (242) y un segundo servidor de contenido (242);
el controlador de memoria caché es operable adicionalmente para determinar que el contenido de datos solicitado por cada una de una o más de las segundas peticiones de contenido es equivalente al contenido de datos adicional (318) de una respectiva de las respuestas de contenido adicionales almacenadas en el dispositivo del almacenamiento de memoria caché (323), y para recuperar desde el almacenamiento de memoria caché (323) el contenido de datos adicional de la respectiva respuesta de las respuestas de contenido adicionales que se determina que es equivalente al contenido de datos (318) solicitado por cada una de la una más segundas peticiones de contenido;
la interfaz de dispositivo de cliente es operable adicionalmente para proporcionar cada contenido de datos adicional (318) de este tipo de la respectiva de las respuestas de contenido adicionales al segundo cliente como una respuesta de contenido en respuesta a una respectiva de las segundas peticiones de contenido.
17. El terminal de comunicaciones de acuerdo con la reivindicación 13, que comprende adicionalmente:
la interfaz de dispositivo de cliente es operable adicionalmente para recibir una pluralidad de segundas peticiones de contenido de un segundo dispositivo de cliente (221a-221f), en donde cada segunda petición de contenido
solicita, de un servidor, contenido de datos (318) que comprende al menos un segmento de una secuencia de segmentos de un fichero de datos solicitado por el segundo dispositivo de cliente (221a-221f), a través del terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f), como parte de una sesión de datos de difusión en continuo del segundo dispositivo de cliente (221a-221f), y en donde el servidor es uno del primer servidor de contenido (242) y un segundo servidor de contenido (242);
el controlador de memoria caché (321) es operable adicionalmente para determinar que el contenido de datos (318) solicitado por cada una de una o más de las segundas peticiones de contenido no es equivalente a ningún contenido de datos (318) almacenado en el dispositivo de almacenamiento de memoria caché (323) asociado al segundo terminal de comunicaciones (134(1)a-134(1)n, 134(2)a-134(2)n, ST201a-ST201f);
el dispositivo de transmisor es operable para transmitir cada una de la una o más segundas peticiones de contenido, para las que el contenido de datos solicitado (318) se determina que no es equivalente a ningún contenido de datos (318) almacenado en el dispositivo del almacenamiento de memoria caché (323);
el dispositivo de receptor es operable adicionalmente para recibir una respectiva segunda respuesta de contenido desde el servidor en respuesta a cada una de las segundas peticiones de contenido transmitidas al mismo, en donde cada segunda respuesta de contenido de este tipo incluye el respectivo contenido de datos solicitado; y la interfaz de dispositivo de cliente es operable adicionalmente para proporcionar cada una de las segundas respuestas de contenido recibidas desde el servidor al segundo dispositivo de cliente (221a-221f) en respuesta a la respectiva segunda petición de contenido.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/986,318 US10609175B2 (en) | 2015-12-31 | 2015-12-31 | Apparatus and method for broadcast/multicast content delivery and opportunistic caching in a broadband communications network |
| PCT/US2016/069654 WO2017117589A1 (en) | 2015-12-31 | 2016-12-31 | Apparatus and method for broadcast/multicast content delivery and opportunistic caching in a broadband communications network |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2860943T3 true ES2860943T3 (es) | 2021-10-05 |
Family
ID=59225842
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES16882794T Active ES2860943T3 (es) | 2015-12-31 | 2016-12-31 | Aparato y método para la distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista en una red de comunicaciones de banda ancha |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US10609175B2 (es) |
| EP (1) | EP3398333B1 (es) |
| CA (1) | CA3010303C (es) |
| ES (1) | ES2860943T3 (es) |
| WO (1) | WO2017117589A1 (es) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106331084B (zh) * | 2016-08-22 | 2019-06-25 | 深圳Tcl新技术有限公司 | 软件后台自适应升级方法及装置 |
| FR3067898B1 (fr) * | 2017-06-15 | 2019-07-26 | Thales | Systeme de telecommunications comprenant un serveur de cache embarque dans une plateforme a haute altitude et procede de transmission de donnees associe |
| WO2019099390A1 (en) * | 2017-11-14 | 2019-05-23 | Atc Technologies, Llc | Localized content delivery platform |
| US10367746B2 (en) * | 2017-12-30 | 2019-07-30 | Hughes Network Systems, Llc | Statistical traffic classification with adaptive boundaries in a broadband data communications network |
| US10917165B2 (en) * | 2018-07-02 | 2021-02-09 | Intelsat US LLC | Base station architecture integrating satellite-based content delivery with 4G/LTE mobile network |
| US11647241B2 (en) * | 2019-02-19 | 2023-05-09 | Sony Interactive Entertainment LLC | Error de-emphasis in live streaming |
| CN110113306B (zh) * | 2019-03-29 | 2022-05-24 | 华为技术有限公司 | 分发数据的方法和网络设备 |
| US12041314B2 (en) * | 2019-12-16 | 2024-07-16 | Hughes Network Systems, Llc | Satellite communication system and satellite communication method |
| DE102020003383B4 (de) | 2020-06-04 | 2021-12-30 | MERCK Patent Gesellschaft mit beschränkter Haftung | Verfahren zum Speichern und Verfahren zum Übermitteln von mindestens einem Datenstück, entsprechende Computerprogrammprodukte und Vorrichtungen |
| CN114363830B (zh) * | 2020-09-28 | 2023-09-05 | 中国移动通信有限公司研究院 | 多播数据的处理方法、核心网网关、业务服务器及终端 |
| CN112468873A (zh) * | 2020-11-16 | 2021-03-09 | 北京达佳互联信息技术有限公司 | 画面显示方法、装置、系统、电子设备、服务器及介质 |
| US12248458B1 (en) | 2020-11-19 | 2025-03-11 | Quickbase Inc. | Offline structured data navigation on a mobile device |
| US11455296B1 (en) * | 2020-11-19 | 2022-09-27 | Quickbase Inc. | Offline structured data entry and data access on a mobile device |
| US11290508B1 (en) * | 2020-12-04 | 2022-03-29 | Capital One Services, Llc | Automated caching and tabling layer for finding and swapping media content |
| CN113297217B (zh) * | 2021-05-20 | 2021-12-17 | 广州光点信息科技有限公司 | 一种数据传输方法、装置及系统 |
| CN116155343B (zh) * | 2021-11-19 | 2025-10-31 | 华为技术有限公司 | 一种传输方法、系统及相关装置 |
| KR20240001625A (ko) * | 2022-06-27 | 2024-01-03 | 에스케이텔레콤 주식회사 | 로컬 웹서버를 이용한 다운로드 데이터 및 스트리밍 데이터 간 연속 재생 방법 및 이를 위한 장치 |
| US11743308B1 (en) * | 2022-07-18 | 2023-08-29 | Audacy Operations, Inc. | Efficient media storage for use in media streaming |
| US12155877B2 (en) | 2022-09-21 | 2024-11-26 | Charter Communications Operating, Llc | Network optimization through predicted local content distribution system |
| US20260052175A1 (en) * | 2024-08-19 | 2026-02-19 | Arris Enterprises Llc | Redundancy and distributed caching in multicast abr (mabr) |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6879808B1 (en) | 2000-11-15 | 2005-04-12 | Space Systems/Loral, Inc | Broadband communication systems and methods using low and high bandwidth request and broadcast links |
| US7725557B2 (en) * | 2002-06-24 | 2010-05-25 | Microsoft Corporation | Client-side caching of streaming media content |
| US7509667B1 (en) | 2002-08-15 | 2009-03-24 | Sprint Communications Company L.P. | Broadband content jukebox with profile-based caching |
| JP2007207328A (ja) | 2006-01-31 | 2007-08-16 | Toshiba Corp | 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法 |
| WO2008082891A2 (en) | 2006-12-29 | 2008-07-10 | Echostar Technologies Corporation | Incremental transmission of data |
| US20090276815A1 (en) * | 2008-04-30 | 2009-11-05 | Echostar Technologies L.L.C. | Systems, methods and apparatus for democratic allocation of bandwidth |
| US20100179984A1 (en) | 2009-01-13 | 2010-07-15 | Viasat, Inc. | Return-link optimization for file-sharing traffic |
| US8892680B2 (en) * | 2011-01-25 | 2014-11-18 | Openwave Mobility, Inc. | System and method for caching content elements with dynamic URLs |
| US20130081072A1 (en) | 2011-09-28 | 2013-03-28 | Cello Partnership | Preemptive video delivery to devices in a wireless network |
| US8874781B2 (en) | 2011-10-17 | 2014-10-28 | Qualcomm Incorporated | System and apparatus for power efficient delivery of social network updates to a receiver device in a broadcast network |
| US8978079B2 (en) | 2012-03-23 | 2015-03-10 | Time Warner Cable Enterprises Llc | Apparatus and methods for managing delivery of content in a network with limited bandwidth using pre-caching |
| US8432808B1 (en) * | 2012-06-15 | 2013-04-30 | Viasat Inc. | Opportunistically delayed delivery in a satellite network |
| US20170201596A1 (en) * | 2014-06-27 | 2017-07-13 | Convida Wireless, Llc | Achieving balanced in-network content caching freshness |
-
2015
- 2015-12-31 US US14/986,318 patent/US10609175B2/en active Active
-
2016
- 2016-12-31 EP EP16882794.7A patent/EP3398333B1/en active Active
- 2016-12-31 WO PCT/US2016/069654 patent/WO2017117589A1/en not_active Ceased
- 2016-12-31 CA CA3010303A patent/CA3010303C/en active Active
- 2016-12-31 ES ES16882794T patent/ES2860943T3/es active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3398333B1 (en) | 2021-03-10 |
| CA3010303A1 (en) | 2017-07-06 |
| CA3010303C (en) | 2021-01-19 |
| EP3398333A1 (en) | 2018-11-07 |
| US10609175B2 (en) | 2020-03-31 |
| EP3398333A4 (en) | 2019-05-15 |
| WO2017117589A1 (en) | 2017-07-06 |
| US20170195450A1 (en) | 2017-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2860943T3 (es) | Aparato y método para la distribución de contenido de difusión/multidifusión y almacenamiento en memoria caché oportunista en una red de comunicaciones de banda ancha | |
| ES2874541T3 (es) | Uso preciso de memorias intermedias en difusión adaptativa de vídeo en continuo | |
| US11863448B2 (en) | Method and apparatus for traffic optimization in virtual private networks (VPNs) | |
| US20250286923A1 (en) | Location based access control for content delivery network resources | |
| US10893118B2 (en) | Content delivery network with deep caching infrastructure | |
| ES2810859T3 (es) | Maximización de la calidad de servicio para la difusión en continuo de vídeos que se adaptan a la QOS a través de la configuración dinámica de la tasas de flujo en la capa de aplicaciones | |
| US10219290B2 (en) | Method, device, and system for content delivery network-based mobile terminal traffic processing | |
| US9161080B2 (en) | Content delivery network with deep caching infrastructure | |
| ES2833042T3 (es) | Facturación en redes de telecomunicaciones | |
| US10708377B2 (en) | Communication control device, communication control method, and non-transitory computer readable medium | |
| US10904219B2 (en) | Transport relay in communications network | |
| US11240338B2 (en) | Integrated content delivery of enhanced mobile gateway system |