ES2848286T3 - Señalizar qué información de versión usar en la reparación de archivo en intervalos de octetos - Google Patents
Señalizar qué información de versión usar en la reparación de archivo en intervalos de octetos Download PDFInfo
- Publication number
- ES2848286T3 ES2848286T3 ES17730022T ES17730022T ES2848286T3 ES 2848286 T3 ES2848286 T3 ES 2848286T3 ES 17730022 T ES17730022 T ES 17730022T ES 17730022 T ES17730022 T ES 17730022T ES 2848286 T3 ES2848286 T3 ES 2848286T3
- Authority
- ES
- Spain
- Prior art keywords
- etag
- file
- value
- server
- response
- 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
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/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- 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/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6131—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
-
- 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/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6181—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
-
- 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/637—Control signals issued by the client directed to the server or network components
- H04N21/6375—Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Un procedimiento para la reparación de archivo en intervalos de octetos, que comprende: determinar (652), en un dispositivo informático, si una descripción de un servicio incluye un valor de etiqueta de entidad, ETag, para un archivo en respuesta a la determinación (606) de que la reparación de archivo en intervalos de octetos es necesaria para reparar el archivo mediante el dispositivo informático, donde la descripción del servicio es un fragmento de metadatos de descripción de procedimiento de entrega asociado, ADPD; determinar (656), en el dispositivo informático, si un atributo del fragmento de metadatos ADPD indica que un servidor admite el uso de un valor hash de MD5 como valor de ETag en respuesta a la determinación de que el fragmento de metadatos de ADPD no incluye el valor de ETag; generar (654), en el dispositivo informático, una solicitud GET parcial de protocolo de transferencia de hipertexto, HTTP, para la reparación de archivo en intervalos de octetos que incluye el valor de ETag en un elemento de cabecera If-Match en respuesta a la determinación (652) de que la descripción del servicio incluye el valor de ETag; y generar (658), en el dispositivo informático, una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que incluye el valor hash de MD5 como el valor de ETag en un elemento de cabecera If- Match en respuesta a la determinación (656) de que el atributo del fragmento de metadatos de ADPD indica que el servidor admite el uso del valor hash de MD5 como ETag.
Description
DESCRIPCIÓN
Señalizar qué información de versión usar en la reparación de archivo en intervalos de octetos
ANTECEDENTES
[0001] Durante el transporte en red de archivos digitales, tales como fragmentos o piezas de vídeo que se envían en archivos individuales llamados segmentos, pueden ocurrir varios eventos o errores (por ejemplo, cambio de sintonización, errores de canal de radio, etc.) que den como resultado que solo se reciban archivos parciales. Por ejemplo, el middleware actual del servicio de radiodifusión y multidifusión multimedia evolucionado (eMBMS) en un dispositivo informático solo puede recibir un archivo parcial debido a errores de transmisión entre el centro de radiodifusión de servicios multimedia (BMSC) que envía el archivo y el dispositivo informático que recibe el archivo. En algunas redes, la reparación de archivo en intervalos de octetos se puede usar para intentar reparar un archivo cuando un dispositivo informático solo recibe un archivo parcial. La información de versión del archivo que se solicita puede permitir a un servidor distinguir entre múltiples versiones de un archivo alojado por el servidor y devolver los símbolos de origen que faltan al dispositivo informático que coinciden con la versión del archivo solicitado.
[0002] El documento "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Multimedia Broadcast/Multicast Service (MbMS); Protocols and codecs (Release 13)", BORRADOR DEL 3GPP; 26346-D50, PROYECTO DE COLABORACIÓN DE TERCERA GENERACIÓN (3GPP), describe el MBMS como un servicio de punto a multipunto en el que los datos se transmiten desde una única entidad de origen a múltiples destinatarios. La transmisión de los mismos datos a múltiples destinatarios permite compartir los recursos de la red.
[0003] El documento WO2013/067219 A2 describe un procedimiento y un aparato de entrega de archivos, donde el contenido se proporciona a un sistema de entrega de archivos de modo que los bloques y símbolos de origen que representan el contenido estén disponibles en forma de unidifusión y los bloques y símbolos de reparación se proporcionen en forma de radiodifusión o multidifusión.
BREVE EXPLICACIÓN
[0004] Los sistemas, procedimientos y dispositivos de los diversos modos de realización permiten señalizar una o más capacidades de servidores, tales como servidores web o servidores de red de entrega de contenido (CDN), para usar información de versión de archivo, tal como MD5 (valores hash del algoritmo de resumen de mensaje 5 (MD5)) y/o etiquetas de entidad (ETags), a dispositivos informáticos para la reparación de archivo en intervalos de octetos.
[0005] Diversos modos de realización pueden incluir determinar si una descripción de un servicio incluye un valor de ETag para un archivo en respuesta a determinar que la reparación de archivo en intervalos de octetos es necesaria para reparar el archivo mediante un dispositivo informático, donde la descripción del servicio es un fragmento de metadatos de descripción de procedimiento de entrega asociado, ADPD, que determina si un atributo del fragmento de metadatos de ADPD indica que un servidor admite el uso de un valor hash de MD5 como valor de ETag en respuesta a la determinación de que el fragmento de metadatos de ADPD no incluye el valor de ETag, generar una solicitud parcial de protocolo de transferencia de hipertexto (HTTP) para la reparación de archivo en intervalos de octetos que incluye el valor de ETag en un elemento de cabecera If-Match en respuesta a determinar que la descripción del servicio incluye el valor de ETag y generar, en el dispositivo informático, una solicitud GET HTTP parcial para reparación de archivo en intervalos de octetos que incluye el valor hash de MD5 como el valor de ETag en un elemento de cabecera If-Match en respuesta a determinar que el tributo del fragmento de metadatos de ADPD indica que el servidor admite el uso del valor hash de MD5 como ETag.
[0006] Otros modos de realización incluyen un dispositivo informático que tiene un procesador configurado con instrucciones ejecutables por procesador para realizar operaciones de los procedimientos resumidos anteriormente. Otros modos de realización incluyen un dispositivo informático que incluye medios para realizar funciones de los procedimientos resumidos anteriormente. Otros modos de realización incluyen un medio de almacenamiento no transitorio legible por procesador que tiene almacenadas en el mismo instrucciones ejecutables por procesador configuradas para hacer que el procesador de un dispositivo informático realice operaciones de los procedimientos resumidos anteriormente. Otros modos de realización incluyen un servidor configurado con instrucciones ejecutables por procesador para realizar operaciones de los procedimientos resumidos anteriormente. Otros modos de realización incluyen un servidor que incluye medios para realizar funciones de los procedimientos resumidos anteriormente. Otros modos de realización incluyen un medio de almacenamiento no transitorio legible por procesador que tiene almacenadas en el mismo instrucciones ejecutables por procesador configuradas para hacer que el procesador de un servidor realice operaciones de los procedimientos resumidos anteriormente.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0007] Los dibujos adjuntos, que se incorporan al presente documento y forman parte de esta memoria descriptiva, ilustran modos de realización ejemplares de la invención, y junto con la descripción general dada anteriormente y la descripción detallada dada a continuación, sirven para explicar las características de la invención.
La FIG. 1 es un diagrama de bloques del sistema de comunicación de una red, adecuado para su uso con los diversos modos de realización.
La FIG. 2 es un diagrama de flujo de proceso que ilustra un procedimiento de un modo de realización para señalizar una capacidad de un servidor.
La FIG. 3 ilustra un esquema de tabla de entrega de archivos (FDT) de ejemplo de acuerdo con un ejemplo ilustrativo de los antecedentes.
La FIG. 4 ilustra un esquema de FDT de ejemplo de acuerdo con un ejemplo ilustrativo de los antecedentes.
La FIG. 5 ilustra un esquema de descripción de procedimiento de entrega asociado (ADPD) de ejemplo de acuerdo con un modo de realización.
La FIG. 6A es un diagrama de flujo de proceso que ilustra un procedimiento de un modo de realización para admitir la reparación de archivo en intervalos de octetos.
La FIG. 6B es un diagrama de flujo de proceso que ilustra otro procedimiento de un modo de realización para admitir la reparación de archivo en intervalos de octetos.
La FIG. 7 ilustra esquemas de ejemplo de cabeceras de solicitudes GET parciales del protocolo de transferencia de hipertexto (HTTP) de acuerdo con diversos modos de realización.
La FIG. 8 es un diagrama de componentes de un dispositivo informático de ejemplo adecuado para su uso con los diversos modos de realización.
La FIG. 9 es un diagrama de componentes de un servidor de ejemplo adecuado para su uso con los diversos modos de realización.
DESCRIPCIÓN DETALLADA
[0008] Los diversos modos de realización se describirán en detalle con referencia a los dibujos adjuntos. Siempre que sea posible, se usarán los mismos números de referencia en todos los dibujos para hacer referencia a partes iguales o similares. Las referencias a ejemplos e implementaciones particulares se hacen con propósitos ilustrativos, y no pretenden limitar el alcance de la invención o de las reivindicaciones.
[0009] Tal como se usa en el presente documento, los términos "dispositivo móvil", "dispositivo receptor" y "dispositivo informático" se usan de manera intercambiable en el presente documento para referirse a uno cualquiera o todos de entre teléfonos celulares, teléfonos inteligentes, reproductores multimedia personales o móviles, asistentes de datos personales (PDA), ordenadores portátiles, ordenadores personales, tabletas electrónicas, libros inteligentes, ordenadores de mano, receptores de correo electrónico inalámbricos, teléfonos celulares multimedia habilitados para Internet, controladores de juegos inalámbricos, descodificadores alámbricos o vía satélite, reproductores multimedia de flujo continuo (tales como, ROKU™, CHRo MeCAST™ o FIRE TV™), televisores inteligentes, grabadoras de vídeo digital (DVR) y dispositivos electrónicos personales similares que incluyen un procesador programable y memoria y circuitos para recibir archivos.
[0010] Los diversos modos de realización se describen en el presente documento usando el término "servidor" para hacer referencia a cualquier dispositivo informático capaz de funcionar como un servidor, tal como un servidor de intercambio maestro, un servidor web, un servidor de correo, un servidor de documentos, un servidor de contenidos o cualquier otro tipo de servidor. Un servidor puede ser un dispositivo informático dedicado o un dispositivo informático que incluya un módulo de servidor (por ejemplo, que ejecute una aplicación que pueda hacer que el dispositivo informático funcione como un servidor). Un módulo de servidor (por ejemplo, una aplicación de servidor) puede ser un módulo de servidor de función completa o un módulo de servidor ligero o secundario (por ejemplo, una aplicación de servidor ligera o secundaria) que está configurado para proporcionar servicios de sincronización entre las bases de datos dinámicas en dispositivos receptores. Un servidor ligero o servidor secundario puede ser una versión reducida de la funcionalidad de tipo servidor que puede implementarse en un dispositivo receptor, permitiendo de ese modo a este funcionar como un servidor de Internet (por ejemplo, un servidor de correo electrónico empresarial) solo en la medida necesaria para proporcionar la funcionalidad descrita en el presente documento. En redes eMBMS actuales que funcionan de acuerdo con la especificación técnica (TS) 26.346, versión 13, del Proyecto de Colaboración de Tercera Generación (3GPP), los archivos pueden transmitirse a dispositivos informáticos por medio del procedimiento de entrega mediante descarga del servicio de radiodifusión y multidifusión multimedia (MBMS) usando el protocolo definido en la solicitud de comentarios (RFC) 6726 "FLUTE - File Delivery over Unidirectional T ransport" (FLUTE), del Grupo de Trabajo de Ingeniería de Internet (IETF). En dichas redes eMBMS actuales, la reparación de archivo en intervalos de octetos se puede usar para intentar reparar un archivo cuando un dispositivo informático solo recibe un archivo parcial. En respuesta a determinar que solo se recibe un archivo parcial, el dispositivo informático puede enviar
una solicitud GET parcial del protocolo de transferencia de hipertexto (HTTP) como se describe en la RFC 2616 "Hypertext Transfer Protocol - HTTP/1.1" del Grupo de Trabajo de la Red mediante unidifusión a un servidor, tal como un servidor web o un servidor de red de entrega de contenido (CDN), que aloja el archivo que solo se recibió parcialmente. La solicitud GET HTTP parcial puede solicitar los símbolos de origen que faltan para el archivo parcial. Por ejemplo, la cabecera de solicitud de la solicitud GET HTTP parcial puede incluir una lista de rangos de octetos del archivo original que coincidan con los símbolos de origen que faltan del archivo parcial.
[0011] Cuando un valor hash del algoritmo de resumen de mensaje (MD), tal como un valor hash de MD5 (denominado simplemente MD5 en el presente documento para facilitar la referencia), para el archivo está incluido en la descripción del archivo en la tabla de entrega de archivos (FDT) para un servicio, la solicitud GET HTTP parcial incluye el MD5 como una etiqueta de entidad (ETag) en el elemento de cabecera If-Match de la solicitud GET HTTP parcial. De esta manera, el MD5 puede servir como un número de versión para el archivo que se solicita, permitiendo que un servidor, tal como un servidor web o un servidor CDN, distinga múltiples versiones de un archivo alojado por el servidor. En respuesta a la determinación de que una versión del archivo alojado por el servidor, tal como el servidor web o el servidor CDN, coincide con la versión solicitada en base al MD5, el servidor devuelve al dispositivo informático solicitante los símbolos de origen solicitados que faltan. En respuesta a determinar que ninguna versión del archivo alojado por el servidor, tal como el servidor web o el servidor c Dn , coincide con la versión solicitada en base al MD5, el servidor devuelve una respuesta 412 "Precondición fallida" al dispositivo informático solicitante.
[0012] No todos los servidores, tales como los servidores web o los servidores CDN, admiten el uso de un MD5 como ETag. Los servidores, tales como los servidores web o los servidores CDN, que no admiten el uso de un MD5 como ETag no reconocerán solicitudes GET HTTP parciales que incluyen MD5 como ETag como solicitudes de versiones de archivo válidas y devolverán una respuesta 412 "Precondición fallida" a todas las solicitudes GET HTTP parciales que incluyen MD5 como ETag. La devolución de una respuesta 412 "Precondición fallida" a todas las solicitudes GET HTTP parciales que incluyen MD5 como ETag hace que la reparación de archivo en intervalos de octetos sea inútil cuando un servidor, tal como un servidor web o un servidor CDN, no admite el uso de MD5 como ETag.
[0013] Diversos ejemplos ilustrativos de antecedentes permiten señalizar una o más capacidades de servidores, tales como servidores web o servidores CDN, relativas al uso de información de versión de archivo, tal como los MD5 y/o las ETag, a dispositivos informáticos para la reparación de archivo en intervalos de octetos. Al señalizar una o más capacidades de servidores, tales como servidores web o servidores CDN, relativas al uso de información de versión de archivo, tal como los MD5 y/o las ETag, diversos modos de realización permiten a los dispositivos informáticos generar una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que puede adaptarse a una o más capacidades de un servidor específico que aloja un archivo específico para ser reparado. Al permitir que un dispositivo informático genere una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que puede adaptarse a una o más capacidades de un servidor específico, tal como un servidor web o un servidor CDN, que aloja un archivo específico para ser reparado, diversos modos de realización pueden permitir que un dispositivo informático envíe una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos a un servidor que no admita el uso de un MD5 como Etag, lo que no dará como resultado automáticamente que el servidor devuelva una respuesta 412 "Precondición fallida" a la solicitud GET HTTP parcial.
[0014] Diversos ejemplos ilustrativos de antecedentes pueden señalizar una o más capacidades de servidores, tales como servidores web o servidores CDN, relativas al uso de información de versión de archivo, tal como los MD5 y/o las ETag, en una descripción de un servicio, tal como una FDT y/o una descripción de procedimiento de entrega asociado (ADPD) de un servicio. En diversos modos de realización, un servidor, tal como un servidor de un centro de radiodifusión de servicios multimedia (BMSC), puede recibir indicaciones de una o más capacidades de servidores, tales como servidores web o servidores CDN, relativas al uso de información de versión de archivo, tal como los MD5 y/o las ETag, y puede generar una FDT y/o ADPD que señalice una o más capacidades. Por ejemplo, un BMSC puede recibir una indicación de que un servidor CDN no admite el uso de MD5 como ETag y puede indicar que el servidor CDN no admite el uso de MD5 como ETag en la FDT generada para archivos alojados por ese servidor CDN. Como otro ejemplo, un BMSC puede recibir una indicación de que un servidor CDN no admite el uso de MD5 como ETag y puede indicar que el servidor CDN no admite el uso de MD5 como ETag en el ADPD generado para un servicio que proporciona archivos alojados por ese servidor CDN.
[0015] En un ejemplo ilustrativo de antecedentes, un servidor, tal como un servidor BMSC, puede señalizar la capacidad de un servidor, tal como un servidor web o un servidor CDN, generando una FDT de un servicio que puede incluir una ETag del archivo. Cuando el servidor, tal como un servidor BMSC, adquiere el nombre de archivo para el archivo que se transportará a través de FLUTE, el servidor también puede recibir la ETag del archivo. El servidor, tal como un servidor BMSC, puede añadir el nombre de archivo en un atributo Content-Location de la FDT, añadir el MD5 calculado para el archivo en un atributo Content-MD5 de la FDT y añadir la ETag del archivo en un nuevo atributo fileETag de la FDT. De esta manera, el atributo fileETag de la FDT puede representar el valor de la ETag. Un dispositivo informático puede recibir la FDT, y cuando se realiza la reparación de archivo en intervalos de octetos del archivo, el dispositivo informático puede generar la solicitud GET HTTP parcial para el archivo basándose en la FDT. En respuesta a la determinación de que el atributo fileETag para el archivo está presente en la FDT, el dispositivo informático puede incluir la ETag en el elemento de cabecera If-Match de la solicitud GET HTTP parcial para la
reparación de archivo en intervalos de octetos del archivo. En respuesta a la determinación de que el atributo fileETag para el archivo no está presente en la FDT, el dispositivo informático puede generar una solicitud GET HTTP que no incluye un elemento de cabecera If-Match.
[0016] En un ejemplo ilustrativo de antecedentes, un servidor, tal como un servidor BMSC, puede señalizar la capacidad de un servidor, tal como un servidor web o un servidor CDN, generando una FDT de un servicio que puede incluir una bandera que inhabilita el uso de MD5 como ETag en solicitudes GET parciales condicionales (que incluyen la cabecera If-Match). En un ejemplo ilustrativo de antecedentes, la bandera puede inhabilitar el uso de MD5 como ETag por cada archivo. Por ejemplo, una bandera, tal como una indicación de verdadero o falso, en un atributo ByteRangeFileRepairWithMD5 de un archivo en la FDT puede indicar si el servidor, tal como un servidor web o CDN, que aloja ese archivo admite, o no, el uso de MD5 como ETag. Un dispositivo informático puede recibir la FDT y, al realizar la reparación de archivo en intervalos de octetos del archivo, el dispositivo informático puede generar la solicitud GET HTTP parcial para el archivo que también incluye la cabecera If-Match en base al estado de bandera del atributo ByteRangeFileRepairWithMD5 del archivo en la FDT. Como ejemplos, en respuesta a determinar que el atributo ByteRangeFileRepairWithMD5 del archivo en la FDT está establecido a falso (por ejemplo, el servidor que aloja el archivo no admite MD5 como ETag), el dispositivo informático puede generar una solicitud GET HTTP que no incluye un elemento de cabecera If-Match. En respuesta a determinar que el atributo ByteRangeFileRepairWithMD5 del archivo en la FDT está establecido a verdadero (por ejemplo, el servidor que aloja el archivo admite MD5 como ETag), el dispositivo informático puede incluir el MD5 como ETag en el elemento de cabecera If-Match de la solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos del archivo.
[0017] En un modo de realización, un servidor, tal como un servidor BMSC, puede señalizar la capacidad de un servidor, tal como un servidor web o un servidor CDN, generando un fragmento de metadatos de ADPD de un servicio que puede incluir una bandera que inhabilita el uso de MD5 como ETag. En un modo de realización, la bandera puede inhabilitar el uso de MD5 como ETag para todos los archivos del servicio. Por ejemplo, una bandera, tal como una indicación de verdadero o falso, en un atributo ByteRangeFileRepairWithMD5 del fragmento de metadatos de ADPD puede indicar si el servidor, tal como un servidor web o CDN, que aloja ese archivo admite, o no, el uso de MD5 como ETag. Un dispositivo informático puede recibir el fragmento de metadatos de ADPD y, al realizar la reparación de archivo en intervalos de octetos del archivo, el dispositivo informático puede generar la solicitud GET HTTP parcial para el archivo que también incluye la cabecera If-Match en base al estado de bandera del atributo ByteRangeFileRepairWithMD5 del fragmento de metadatos de ADPD. Como ejemplos, en respuesta a determinar que el atributo ByteRangeFileRepairWithMD5 del fragmento de metadatos de ADPD está establecido a falso (por ejemplo, el servidor que aloja el archivo no admite MD5 como ETag), el dispositivo informático puede generar una solicitud GET HTTP que no incluye un elemento de cabecera If-Match. En respuesta a determinar que el atributo ByteRangeFileRepairWithMD5 del fragmento de metadatos de ADPD está establecido a verdadero (por ejemplo, el servidor que aloja el archivo admite MD5 como ETag), el dispositivo informático puede incluir el MD5 como ETag en el elemento de cabecera If-Match de la solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos del archivo.
[0018] En el presente documento se analizan diversos ejemplos de diferentes middleware, tecnologías de radio y protocolos de transporte, específicamente eMBMS, FLUTE y HTTP. Los análisis de, específicamente, eMBMS, FLUTE y HTTP se proporcionan simplemente como ejemplos para ilustrar mejor los aspectos de los diversos modos de realización, y no pretenden limitar los diversos modos de realización de ninguna manera. Otros middleware, tecnologías de radio y protocolos de transporte pueden usarse con los diversos modos de realización, y los otros middleware, tecnologías de radio y protocolos de transporte pueden sustituirse en los diversos ejemplos sin apartarse del alcance de la invención.
[0019] La FIG. 1 ilustra un sistema de red celular 100 adecuado para su uso con los diversos modos de realización. El sistema de red celular 100 puede incluir múltiples dispositivos, tales como un dispositivo informático 102, una o más torres celulares o estaciones base 104 y servidores 108 y 112 conectados a Internet 110. El dispositivo informático 102 puede intercambiar datos por medio de una o más conexiones celulares 106, que incluyen acceso múltiple por división de código (CDMA), acceso múltiple por división de tiempo (TDMA), el Sistema Global de Comunicaciones Móviles (GSM), el Servicio de Comunicación Personal (PCS), tercera generación (3G), cuarta generación (4G), Evolución a Largo Plazo (LTE), o cualquier otro tipo de conexión, con la torre celular o estación base 104. La torre celular o estación base 104 puede estar en comunicación con un encaminador que se puede conectar a Internet 110. De esta manera, por medio de las conexiones a la torre celular o estación base 104, y/o a Internet 110, se pueden intercambiar datos entre el dispositivo informático 102 y el/los servidor(es) 108 y 112. En un modo de realización, el servidor 108 puede ser un servidor web o un servidor proveedor de contenido, tal como un servidor de red de entrega de contenido (CDN), que proporciona archivos para su entrega a dispositivos informáticos, tales como el dispositivo informático 102. En un modo de realización, el servidor 112 puede ser un servidor de un centro de radiodifusión de servicios multimedia (BMSC) que puede recibir archivos, tales como archivos del servidor 108, y controlar la transmisión por aire (OTA) de los archivos al dispositivo informático 102. Por ejemplo, el servidor 112 puede transmitir archivos al dispositivo informático 102 por medio del procedimiento de entrega mediante descarga MBMS usando el protocolo FLUTE. Por supuesto, si bien las características de los dispositivos informáticos, tal como el dispositivo informático 102, descritos en el presente documento se pueden describir con referencia a transmisiones OTA, estas características pueden usarse en relación con transmisiones cableadas, transmisiones inalámbricas o una
combinación de transmisiones cableadas e inalámbricas. Por lo tanto, no se requiere la transmisión OTA.
[0020] La FIG. 2 ilustra un procedimiento de modo de realización 200 para señalizar una capacidad de un servidor, tal como un servidor web o un servidor CDN. En un modo de realización, las operaciones del procedimiento 200 pueden ser realizadas por un servidor en una red eMBMS, tal como un BMSC. En el bloque 202, el servidor puede recibir un nombre de archivo para un archivo que se transportará a través de FLUTE y una indicación de la capacidad que tiene un servidor que aloja el archivo de usar un MD5 como valor de ETag. Por ejemplo, cuando un servidor BMSC adquiere el nombre de archivo para el archivo que se transportará a través de FLUTE, el servidor BMSC también puede recibir una indicación de si el servidor que aloja ese archivo admite MD5 como ETag. En algunos modos de realización, la indicación de que el servidor admite el uso de MD5 como ETag puede ser la recepción de la ETag para el propio archivo en el BMSC.
[0021] En el bloque 204, el servidor puede generar una descripción del servicio que proporciona el archivo alojado por el servidor, que indica la capacidad que tiene el servidor que aloja el archivo de usar el MD5 como un valor de ETag. En ejemplos ilustrativos de antecedentes, la descripción del servicio puede ser una FDT. Por ejemplo, el servidor, tal como un servidor BMSC, puede añadir el nombre de archivo en un atributo Content-Location de la FDT, añadir el MD5 calculado para el archivo en un atributo Content-MD5 de la FDT y añadir la ETag del archivo en un atributo fileETag de la FDT. Como otro ejemplo, el servidor puede generar una FDT del servicio que puede incluir una bandera que inhabilita el uso de MD5 como ETag, tal como una indicación de verdadero o falso, en un atributo ByteRangeFileRepairWithMD5 de archivo en la FDT que indica si el servidor, tal como un servidor web o CDN, que aloja ese archivo admite, o no, el uso de MD5 como ETag. En diversos modos de realización, la descripción del servicio puede incluir un fragmento de metadatos de descripción de procedimiento de entrega asociado (ADPD) que describe procedimientos de entrega asociados, tales como la reparación de archivo recibidos parcialmente. Por ejemplo, el servidor, tal como un servidor BMSC, puede generar un fragmento de metadatos de ADPD de un servicio que puede incluir una bandera que inhabilita el uso de MD5 como ETag, tal como una indicación de verdadero o falso, en un atributo ByteRangeFileRepairWithMD5 en la componente de reparación de archivo del fragmento de metadatos de ADPD que indica si el servidor, tal como un servidor web o CDN, que aloja ese archivo admite, o no, el uso de MD5 como ETag.
[0022] En el bloque 206, el servidor puede enviar la descripción del servicio a un dispositivo informático. En diversos modos de realización, la descripción del servicio puede enviarse por medio de una o más transmisiones OTA a un dispositivo informático por medio de una red eMBMS.
[0023] La FIG. 3 ilustra un esquema de FDT 300 de ejemplo de acuerdo con un ejemplo ilustrativo de antecedentes. En ejemplos ilustrativos de antecedentes, la FDT 300 puede generarse de acuerdo con las operaciones del procedimiento 200 descrito con referencia a la FIG. 2. Para cada archivo 302 indicado en la FDT 300, la FDT 300 puede incluir el nombre de archivo en un atributo Content-Location 304, el MD5 calculado para el archivo en un atributo Content-MD5 306 y la ETag para el archivo en un nuevo atributo fileETag 308.
[0024] La FIG. 4 ilustra un esquema de FDT 400 de ejemplo de acuerdo con un ejemplo ilustrativo de antecedentes. En ejemplos ilustrativos de antecedentes, la FDT 400 puede generarse de acuerdo con las operaciones del procedimiento 200 descrito con referencia a la FIG. 2. Para cada archivo 302 indicado en la FDT 400, la FDT 400 puede incluir el nombre de archivo en un atributo Content-Location 304, el MD5 calculado para el archivo en un atributo Content-MD5 306, y una bandera, tal como una indicación de verdadero o falso, en un nuevo atributo ByteRangeFileRepairWithMD5 402. El atributo ByteRangeFileRepairWithMD5 402 puede indicar si el servidor, tal como un servidor web o CDN, que aloja ese archivo admite, o no, el uso de MD5 como ETag.
[0025] La FIG. 5 ilustra un esquema de ADPD 500 de ejemplo de acuerdo con un modo de realización. En diversos modos de realización, la ADPD 500 puede generarse de acuerdo con las operaciones del procedimiento 200 descrito con referencia a la FIG. 2. La ADPD 500 puede incluir una bandera, tal como una indicación de verdadero o falso, en un nuevo atributo ByteRangeFileRepairWithMD5 502, que puede indicar si el servidor, tal como un servidor web o CDN, que aloja ese archivo admite, o no, el uso de MD5 como ETag.
[0026] La FIG. 6A ilustra un procedimiento 600 de modo de realización para admitir la reparación de archivo en intervalos de octetos para un archivo recibido parcialmente. En un modo de realización, las operaciones del procedimiento 600 pueden ser realizadas por un procesador de un dispositivo informático en una red eMBMS, tal como un dispositivo receptor eMBMS.
[0027] En el bloque 602, el procesador puede recibir una descripción de un servicio que proporciona un archivo que indica la capacidad que tiene un servidor que aloja el archivo de usar un MD5 como valor de ETag. En ejemplos ilustrativos de antecedentes, la descripción del servicio puede ser una FDT, tal como la FDT 300 o la FDT 400 descritas con referencia a las FIGS. 3 y 4, respectivamente. En diversos modos de realización, la descripción del servicio puede ser una ADPD, tal como la ADPD 500 descrita con referencia a la FIG. 5.
[0028] En el bloque 604, el procesador puede recibir un archivo del servicio por medio de FLUTE. En el bloque de determinación 606, el procesador puede determinar si es necesaria la reparación de archivo en intervalos de octetos
para reparar el archivo. Por ejemplo, el procesador puede determinar si el archivo se recibió total o parcialmente y si la recuperación de los símbolos de origen permitiría aplicar una técnica de corrección de errores para reparar el archivo. En respuesta a la determinación de que la reparación de archivo en intervalos de octetos no es necesaria para reparar el archivo (es decir, bloque de determinación 606 = "No"), el procesador puede recibir el siguiente archivo del servicio en el bloque 604.
[0029] En respuesta a la determinación de que la reparación de archivo en intervalos de octetos es necesaria para reparar el archivo (es decir, el bloque de determinación 606 = "Sí"), el procesador puede generar una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos basándose, al menos en parte, en la capacidad que tiene el servidor que aloja el archivo de usar un MD5 como valor de ETag, indicada en la descripción del servicio en el bloque 608.
[0030] En un ejemplo ilustrativo de antecedentes, la descripción del servicio puede ser una FDT que incluye una ETag, tal como la FDT 300 descrita con referencia a la FIG. 3, y la generación de una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos en base a, al menos en parte, la capacidad que tiene el servidor que aloja el archivo de usar un MD5 como ETag, indicada en la FDT, puede incluir determinar si la FDT del servicio incluye la ETag. En respuesta a la determinación de que la FDT del servicio incluye la ETag, el procesador puede generar una solicitud GET HTTP parcial que incluye la ETag en un elemento de cabecera If-Match de la solicitud GET HTTP parcial. En respuesta a la determinación de que la FDT del servicio no incluye la ETag, el procesador puede generar una solicitud GET HTTP parcial que no incluye un elemento de cabecera If-Match en la solicitud GET HTTP parcial.
[0031] En un ejemplo ilustrativo de antecedentes, la descripción del servicio puede ser una FDT que incluye un atributo que indica si el servidor que aloja el archivo admite, o no, el uso del MD5 como ETag, tal como la FDT 400 descrita con referencia a la FIG. 4, y la generación de una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos en base a, al menos en parte, la capacidad que tiene el servidor que aloja el archivo de usar un MD5 como ETag, indicada en la FDT, puede incluir determinar si el atributo de la FDT indica que el servidor admite el uso de MD5 como ETag. En respuesta a la determinación de que el atributo de la FDT indica que el servidor admite el uso de MD5 como ETag, el procesador puede generar una solicitud GET HTTP parcial que incluye el MD5 en un elemento de cabecera If-Match de la solicitud GET HTTP parcial. En respuesta a la determinación de que el atributo de la FDT indica que el servidor no admite el uso del MD5 como ETag, el procesador puede generar una solicitud GET HTTP parcial que no incluye un elemento de cabecera If-Match en la solicitud GET HTTP parcial.
[0032] En un modo de realización, la descripción del servicio puede ser una ADPD que incluye un atributo que indica si el servidor que aloja el archivo admite, o no, el uso del MD5 como ETag, tal como la ADPD 500 descrita con referencia a la FIG. 5, y la generación de una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos en base a, al menos en parte, la capacidad que tiene el servidor que aloja el archivo de usar un MD5 como ETag, indicada en la ADPD, puede incluir determinar si el atributo de la ADPD indica que el servidor admite el uso de MD5 como ETag. En respuesta a la determinación de que el atributo de la ADPD indica que el servidor admite el uso de MD5 como ETag, el procesador puede generar una solicitud GET HTTP parcial que incluye el MD5 en un elemento de cabecera If-Match de la solicitud GET HTTP parcial. En respuesta a la determinación de que el atributo de la ADPD indica que el servidor no admite el uso del MD5 como ETag, el procesador puede generar una solicitud GET HTTP parcial que no incluye un elemento de cabecera If-Match en la solicitud GET HTTP parcial.
[0033] En el bloque 610, el procesador puede enviar la solicitud GET HTTP parcial. Por ejemplo, el procesador puede enviar una solicitud de unidifusión al dispositivo anfitrión del archivo. El procesador puede pasar al bloque 604 para recibir el siguiente archivo del servicio por medio de FLUTE.
[0034] La FIG. 6B ilustra un procedimiento 650 de modo de realización para admitir la reparación de archivo en intervalos de octetos para un archivo recibido parcialmente. En un modo de realización, las operaciones del procedimiento 650 pueden ser realizadas por un procesador de un dispositivo informático en una red eMBMS, tal como un dispositivo receptor eMBMS.
[0035] En el bloque 602, el procesador puede recibir una descripción de un servicio que proporciona un archivo que indica la capacidad que tiene un servidor que aloja el archivo de usar un MD5 como ETag. En ejemplos ilustrativos de antecedentes, la descripción del servicio puede ser una FDT, tal como la FDT 300 o la FDT 400 descritas con referencia a las FIGS. 3 y 4, respectivamente. En algunos modos de realización, la descripción del servicio puede ser una ADPD, tal como la ADPD 500 descrita con referencia a la FIG. 5.
[0036] En el bloque 604, el procesador puede recibir un archivo del servicio por medio de FLUTE. En el bloque de determinación 606, el procesador puede determinar si es necesaria la reparación de archivo en intervalos de octetos para reparar el archivo. Por ejemplo, el procesador puede determinar si el archivo se recibió total o parcialmente y si la recuperación de los símbolos de origen permitiría aplicar técnicas de corrección de errores para reparar el archivo. En respuesta a la determinación de que la reparación de archivo en intervalos de octetos no es necesaria para reparar el archivo (es decir, bloque de determinación 606 = "No"), el procesador puede recibir el siguiente archivo del servicio en el bloque 604.
[0037] En respuesta a la determinación de que es necesaria la reparación de archivo en intervalos de octetos para reparar el archivo (es decir, bloque de determinación 606 = "Sí"), el procesador puede determinar si la descripción del servicio incluye un valor de ETag para el archivo en el bloque de determinación 652. Las descripciones de un servicio, tales como FDT, APDP, etc., pueden incluir una ETag como atributo de la descripción del servicio. Por ejemplo, una ETag puede incluirse como un atributo fileETag en una FDT. No todas las descripciones de un servicio pueden incluir una ETag. El procesador puede recorrer o explorar los atributos de la descripción del servicio para determinar si la descripción del servicio incluye una ETag.
[0038] En respuesta a la determinación de que la descripción del servicio incluye un valor de ETag (es decir, bloque de determinación 652 = "Sí"), el procesador puede generar una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que incluye el valor de ETag en un If-Match elemento de cabecera If-Match en el bloque 654.
[0039] En respuesta a determinar que la descripción del servicio no incluye un valor de ETag (es decir, bloque de determinación 652 = "No"), el procesador puede determinar si un atributo de la descripción del servicio indica que un servidor admite el uso de un MD5 como Valor ETag en el bloque de determinación 656. Las descripciones de un servicio, tal como FDT, APDP, etc., pueden incluir un MD5 como atributo de la descripción del servicio que puede indicar que el servidor admite el uso de un MD5 como ETag. Por ejemplo, un MD5 calculado para un archivo puede incluirse un atributo Content-MD5 de una FDT para indicar que el servidor admite el uso de un MD5 como ETag. No todas las descripciones de un servicio pueden incluir un MD5. El procesador puede recorrer o explorar los atributos de la descripción del servicio para determinar si un MD5 está presente y, por lo tanto, si el servidor admite el uso de un MD5 como ETag.
[0040] En respuesta a la determinación de que la descripción del servicio indica que el servidor admite el uso de un MD5 como valor de ETag (es decir, bloque de determinación 656 = "Sí"), el procesador puede generar una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que incluye el MD5 en un elemento de cabecera If-Match en el bloque 658.
[0041] En respuesta a la determinación de que la descripción del servicio indica que el servidor no admite el uso de un MD5 como valor de ETag (es decir, bloque de determinación 656 = "No"), el procesador puede generar una solicitud GET HTTP parcial que no incluye un elemento de cabecera If-Match en el bloque 660.
[0042] Después de la generación de una solicitud GET HTTP parcial en cualquiera de los bloques 654, 658 o 660, el procesador puede enviar la solicitud GET HTTP parcial en el bloque 610. Por ejemplo, el procesador puede enviar una solicitud de unidifusión al dispositivo anfitrión del archivo. El procesador puede pasar al bloque 604 para recibir el siguiente archivo del servicio por medio de FLUTE.
[0043] La FIG. 7 ilustra esquemas de ejemplo de cabeceras de solicitudes GET HTTP parciales de acuerdo con ejemplos de antecedentes ilustrativos. La cabecera de solicitud GET HTTP parcial 702 apunta al archivo que se va a reparar "/service 1/news service/latest news.mp4" e incluye el valor de indicador uniforme de recursos (URI) para el dispositivo anfitrión de archivos "www.example.com" indicado en el elemento Alternate-Content-Location en la FDT para el servicio. La cabecera de solicitud g Et HTTP parcial 702 también incluye el elemento If-Match que incluye el valor igual a la ETag indicada en la FDT. El formato de la ETag ilustrado en la cabecera de solicitud GET HTTP parcial 702 está en formato "Inode-Size-Mtime" de servidor Apache. La cabecera de solicitud GET HTTP parcial 702 también incluye el elemento de cabecera de intervalo que incluye todos los intervalos de octetos que se están solicitando.
[0044] La cabecera de solicitud GET HTTP parcial 704 apunta al archivo que se va a reparar "/service1/news_service/latest_news.mp4" e incluye el valor de indicador uniforme de recursos (URI) para el dispositivo anfitrión de archivos "www.example.com" indicado en el elemento Alternate-Content-Location en la FDT para el servicio. La cabecera de solicitud GET HTTP parcial 704 también incluye el elemento If-Match que incluye el valor igual al MD5 indicado en la FDT. El formato del MD5 ilustrado en la cabecera de solicitud GET HTTP parcial 704 puede ser una cadena de caracteres codificada en Base 64. La cabecera de solicitud GET HTTP parcial 704 también incluye el elemento de cabecera de intervalo que incluye todos los intervalos de octetos que se están solicitando.
[0045] La cabecera de solicitud GET HTTP parcial 706 apunta al archivo que se va a reparar "/service1/news_service/latest_news.mp4" e incluye el valor de indicador uniforme de recursos (URI) para el dispositivo anfitrión de archivos "www.example.com" indicado en el elemento Alternate-Content-Location en la FDT para el servicio. La cabecera de solicitud GET HTTP parcial 706 no incluye un elemento de cabecera If-Match. La cabecera de solicitud GET HTTP parcial 706 también incluye el elemento de cabecera de intervalo que incluye todos los intervalos de octetos que se están solicitando.
[0046] Las cabeceras de solicitud GET HTTP parcial 702, 704 y/o 706 pueden incluirse en una solicitud GET HTTP parcial generada de acuerdo con las operaciones de los procedimientos 600 y 650 descritos con referencia a las FIGS.
6A y 6B. Por ejemplo, la cabecera de solicitud GET HTTP parcial 702 puede incluirse en una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos en respuesta a la determinación de que una FDT del servicio incluye la ETag para el archivo a reparar. Como otro ejemplo, la cabecera de solicitud GET HTTP parcial 704
puede incluirse en una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos en respuesta a la determinación de que un atributo de la FDT o un atributo de la ADPD indica que el servidor que aloja el archivo a reparar admite el uso de MD5 como ETag. Como otro ejemplo, la cabecera de solicitud GET HTTP parcial 706 puede incluirse en una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos en respuesta a la determinación de que una FDT del servicio no incluye la ETag para el archivo a reparar. Como otro ejemplo adicional, la cabecera de solicitud GET HTTP parcial 706 puede incluirse en una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos en respuesta a la determinación de que un atributo de una FDT o una ADPD no indica que el servidor que aloja el archivo a reparar admite el uso de MD5 como ETag.
[0047] Los diversos modos de realización (que incluyen, pero no se limitan a, los modos de realización analizados anteriormente con referencia a las FIGS. 2-7) pueden implementarse en cualquiera de una variedad de dispositivos informáticos (es decir, dispositivos receptores), un ejemplo de los cuales se ilustra en la FIG. 8. Por ejemplo, el dispositivo informático 800 puede incluir un procesador 801 acoplado a un controlador de pantalla táctil 804 y una memoria interna 802. El procesador 801 puede ser uno o más circuitos integrados (IC) de múltiples núcleos designados para tareas de procesamiento generales o específicas. La memoria interna 802 puede ser una memoria volátil o no volátil, y también puede ser una memoria segura y/o cifrada, o una memoria no segura y/o no cifrada, o cualquier combinación de las mismas. El controlador de pantalla táctil 804 y el procesador 801 también pueden acoplarse a un panel de pantalla táctil 812, tal como una pantalla táctil de detección resistiva, una pantalla táctil de detección capacitiva, una pantalla táctil de detección por infrarrojos, etc.
[0048] El dispositivo informático 800 puede tener uno o más transceptores de señales de radio 808 (por ejemplo, Peanut®, Bluetooth®, ZigBee®, Wi-Fi, celular, etc.) y antenas 810, de envío y recepción, acoplados entre sí y/o al procesador 801. Los transceptores 808 y las antenas 810 se pueden usar con los circuitos mencionados anteriormente para implementar las diversas pilas e interfaces de protocolos de transmisión inalámbrica. El dispositivo informático 800 puede incluir un chip de módem inalámbrico de red celular 816 que permite la comunicación por medio de una red celular y está acoplado al procesador.
[0049] El dispositivo informático 800 puede incluir una interfaz de conexión de dispositivo periférico 818 acoplada al procesador 801. La interfaz de conexión del dispositivo periférico 818 puede configurarse de forma individual para aceptar un tipo de conexión, o configurarse de manera múltiple para aceptar diversos tipos de conexiones físicas y de comunicación, comunes o propietarias, tales como USB, FireWire, Thunderbolt o PCIe. La interfaz de conexión de dispositivo periférico 818 también puede estar acoplada a un puerto de conexión de dispositivo periférico configurado de forma similar (no mostrado).
[0050] El dispositivo informático 800 también puede incluir altavoces 814 para proporcionar salidas de audio. El dispositivo informático 800 también puede incluir una carcasa 820, hecha de plástico, metal o una combinación de materiales, para contener todos o algunos de los componentes analizados en el presente documento. El dispositivo informático 800 puede incluir una fuente de alimentación 822 acoplada al procesador 801, tal como una batería desechable o recargable. La batería recargable también se puede acoplar al puerto de conexión de dispositivo periférico para recibir una corriente de carga desde una fuente externa al dispositivo informático 800.
[0051] Los diversos modos de realización (que incluyen, pero sin limitarse a, los modos de realización analizados anteriormente con referencia a las FIGS. 2-7) también pueden implementarse en cualquiera de una variedad de dispositivos servidores disponibles en el mercado, tales como el servidor 900 ilustrado en la FIG. 9. Dicho servidor 900 incluye típicamente un procesador 901 acoplado a una memoria volátil 902 y una memoria no volátil de gran capacidad, tal como una unidad de disco 904. El servidor 900 también puede incluir una unidad de disco flexible, una unidad de disco compacto (CD) o una unidad de disco versátil digital (DVD) 906 acoplada al procesador 901. El servidor 900 también puede incluir uno o más transceptores de red 903, tales como un puerto de acceso a red, acoplados al procesador 901 para establecer conexiones de interfaz de red con una red de comunicación 907, tal como una red de área local acoplada a otros ordenadores y servidores de sistema de anuncio, a Internet, a la red telefónica pública conmutada y/o a una red celular (por ejemplo, CDMA, TDMA, GSM, PCS, 3G, 4G, LTE o cualquier otro tipo de red celular).
[0052] Los procesadores 801 y 901 pueden ser cualquier microprocesador programable, microordenador o uno o más chips de múltiples procesadores que pueden configurarse mediante instrucciones de software (aplicaciones) a fin de realizar una variedad de funciones, incluidas las funciones de los diversos modos de realización descritos anteriormente. En algunos dispositivos, pueden proporcionarse múltiples procesadores, tal como un procesador dedicado a funciones de comunicación inalámbrica y un procesador dedicado a la ejecución de otras aplicaciones. Típicamente, las aplicaciones de software pueden almacenarse en la memoria interna antes de accederse a las mismas y cargarse en los procesadores 801 y 901. Los procesadores 801 y 901 pueden incluir una memoria interna suficiente para almacenar las instrucciones de software de aplicación. En muchos dispositivos, la memoria interna puede ser una memoria volátil o no volátil, tal como una memoria flash, o una mezcla de ambas. Para los fines de esta descripción, una referencia general a memoria se refiere a una memoria accesible por los procesadores 801 y 901, incluidas una memoria interna o una memoria extraíble conectada al dispositivo y una memoria dentro de los propios procesadores 801 y 901.
[0053] Las descripciones de procedimiento y los diagramas de flujo de procesos anteriores se proporcionan simplemente como ejemplos ilustrativos y no pretenden requerir o implicar que las etapas de los diversos modos de realización deban realizarse en el orden presentado. Como apreciará un experto en la técnica, el orden de las etapas en los modos de realización anteriores puede realizarse en cualquier orden. Expresiones tales como "posteriormente", "después", "a continuación", etc. no pretenden limitar el orden de las etapas, sino que se usan simplemente para guiar al lector a través de la descripción de los procedimientos. Además, ninguna referencia en singular a elementos de las reivindicaciones, por ejemplo, mediante los artículos "un", "una", "el" o "la" se debe interpretar como limitación del elemento al singular.
[0054] Los diversos bloques lógicos, módulos, circuitos y etapas de algoritmo ilustrativos descritos en relación con los modos de realización divulgados en el presente documento se pueden implementar como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, anteriormente se han descrito en general diversos componentes, bloques, módulos, circuitos y etapas ilustrativos en lo que respecta a su funcionalidad. Que dicha funcionalidad se implemente como hardware o software depende de la aplicación particular y de las restricciones de diseño impuestas al sistema global. Los expertos en la técnica pueden implementar la funcionalidad descrita de formas distintas para cada aplicación particular, pero no debería interpretarse que dichas decisiones de implementación suponen apartarse del alcance de la presente invención.
[0055] El hardware usado para implementar las diversas lógicas, bloques lógicos, módulos y circuitos ilustrativos descritos en relación con los aspectos divulgados en el presente documento pueden implementarse o realizarse con un procesador de propósito general, un procesador de señales digitales (DSP), un circuito integrado específico de la aplicación (ASIC), una matriz de puertas programables in situ (FPGA) u otro dispositivo de lógica programable, lógica de transistores o de puertas discretos, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de propósito general puede ser un microprocesador pero, de forma alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también se puede implementar como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo. De forma alternativa, circuitos que son específicos de una función dada pueden realizar algunas etapas o procedimientos.
[0056] En uno o más aspectos ejemplares, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse como una o más instrucciones o como código en un medio no transitorio legible por ordenador o en un medio no transitorio legible por procesador. Las etapas de un procedimiento o algoritmo divulgado en el presente documento se pueden realizar en un módulo de software ejecutable por procesador y/o instrucciones ejecutables por procesador, que pueden residir en un medio de almacenamiento no transitorio legible por ordenador o no transitorio legible por procesador. Los medios de almacenamiento no transitorios legibles por servidor, legibles por ordenador o legibles por procesador pueden ser cualquier medio de almacenamiento a los que se pueda acceder mediante un ordenador o un procesador. A modo de ejemplo, y no de limitación, dichos medios no transitorios legibles por servidor, legibles por ordenador o legibles por procesador pueden incluir RAM, ROM, EEPROM, memoria FLASH, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio que pueda usarse para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Los discos, como se usan en el presente documento, incluyen discos compactos (CD), discos láser, discos ópticos, DVD, discos flexibles y discos Blu-ray, donde algunos discos normalmente reproducen datos de manera magnética y otros discos reproducen datos de manera óptica con láser. También se incluyen combinaciones de lo anterior dentro del alcance de los medios no transitorios legibles por servidor, legibles por ordenador y legibles por procesador. Adicionalmente, las operaciones de un procedimiento o algoritmo pueden residir como uno o como cualquier combinación o conjunto de códigos y/o instrucciones en un medio no transitorio legible por servidor, legible por procesador y/o en un medio legible por ordenador, que puedan incorporarse a un producto de programa informático.
[0057] La anterior descripción de los modos de realización divulgados se proporciona para permitir que cualquier experto en la técnica realice o use la presente invención. Diversas modificaciones de estos modos de realización resultarán fácilmente evidentes a los expertos en la técnica, y los principios genéricos definidos en el presente documento se pueden aplicar a otros modos de realización sin apartarse del alcance de la invención. Por lo tanto, la presente invención no pretende limitarse a los modos de realización mostrados en el presente documento, sino que se le ha de conceder el alcance más amplio conforme a las siguientes reivindicaciones.
Claims (9)
1. Un procedimiento para la reparación de archivo en intervalos de octetos, que comprende:
determinar (652), en un dispositivo informático, si una descripción de un servicio incluye un valor de etiqueta de entidad, ETag, para un archivo en respuesta a la determinación (606) de que la reparación de archivo en intervalos de octetos es necesaria para reparar el archivo mediante el dispositivo informático, donde la descripción del servicio es un fragmento de metadatos de descripción de procedimiento de entrega asociado, ADPD;
determinar (656), en el dispositivo informático, si un atributo del fragmento de metadatos ADPD indica que un servidor admite el uso de un valor hash de MD5 como valor de ETag en respuesta a la determinación de que el fragmento de metadatos de ADPD no incluye el valor de ETag;
generar (654), en el dispositivo informático, una solicitud GET parcial de protocolo de transferencia de hipertexto, HTTP, para la reparación de archivo en intervalos de octetos que incluye el valor de ETag en un elemento de cabecera If-Match en respuesta a la determinación (652) de que la descripción del servicio incluye el valor de ETag; y
generar (658), en el dispositivo informático, una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que incluye el valor hash de MD5 como el valor de ETag en un elemento de cabecera If-Match en respuesta a la determinación (656) de que el atributo del fragmento de metadatos de ADPD indica que el servidor admite el uso del valor hash de MD5 como ETag.
2. El procedimiento de la reivindicación 1, que comprende además:
generar (660), en el dispositivo informático, una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que no incluye un elemento de cabecera If-Match en respuesta a la determinación de que el atributo del fragmento de metadatos de ADPD no indica que el servidor admite el uso del valor hash de MD5 como ETag.
3. El procedimiento de la reivindicación 2, en el que el servicio es un servicio de radiodifusión y multidifusión multimedia evolucionado, eMBMS.
4. Un dispositivo informático (800), que comprende:
medios para determinar (652) si una descripción de un servicio incluye un valor de etiqueta de entidad, ETag, para un archivo en respuesta a la determinación (606) de que la reparación de archivo en intervalos de octetos es necesaria para reparar el archivo, donde la descripción del servicio es un fragmento de metadatos de descripción de procedimiento de entrega asociado, ADPD;
medios para determinar (656) si un atributo del fragmento de metadatos ADPD indica que un servidor admite el uso de un valor hash de MD5 como valor de ETag en respuesta a la determinación de que el fragmento de metadatos de ADPD no incluye el valor de ETag;
medios para generar (654) una solicitud GET parcial de protocolo de transferencia de hipertexto, HTTP, para la reparación de archivo en intervalos de octetos que incluye el valor de ETag en un elemento de cabecera If-Match en respuesta a la determinación (652) de que la descripción del servicio incluye el valor de ETag; y
medios para generar (658) una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que incluye el valor hash de MD5 como el valor de ETag en un elemento de cabecera If-Match en respuesta a la determinación (656) de que el atributo del fragmento de metadatos de ADPD indica que el servidor admite el uso del valor hash de MD5 como valor de ETag.
5. El dispositivo informático de la reivindicación 4, que comprende además: medios para generar (658) una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que no incluye un elemento de cabecera If-Match en respuesta a la determinación de que el atributo del fragmento de metadatos de ADPD no indica que el servidor admite el uso del valor hash de MD5 como valor de ETag.
6. El dispositivo informático de la reivindicación 5, en el que el servicio es un servicio de radiodifusión y multidifusión multimedia evolucionado, eMBMS.
7. Un medio de almacenamiento no transitorio legible por procesador que tiene almacenadas en el mismo instrucciones ejecutables por procesador configuradas para provocar que un procesador de un dispositivo informático realice operaciones, que comprenden:
determinar (652) si una descripción de un servicio incluye un valor de etiqueta de entidad, ETag, para un archivo en respuesta a la determinación (606) de que la reparación de archivo en intervalos de octetos es necesaria para reparar el archivo, donde la descripción del servicio es un fragmento de metadatos de descripción de procedimiento de entrega asociado, ADPD;
determinar (656) si un atributo del fragmento de metadatos ADPD indica que un servidor admite el uso de un valor hash de MD5 como valor de ETag en respuesta a la determinación (652) de que el fragmento de metadatos de ADPD no incluye el valor de ETag;
generar (654) una solicitud GET parcial de protocolo de transferencia de hipertexto, HTTP, para la reparación de archivo en intervalos de octetos que incluye el valor de ETag en un elemento de cabecera If-Match en respuesta a la determinación (652) de que la descripción del servicio incluye el valor de ETag; y
generar (658) una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que incluye el valor hash de MD5 como el valor de ETag en un elemento de cabecera If-Match en respuesta a la determinación (656) de que el atributo del fragmento de metadatos de ADPD indica que el servidor admite el uso del valor hash de MD5 como valor de ETag.
8. El medio de almacenamiento no transitorio legible por procesador de la reivindicación 7, en el que las instrucciones almacenadas ejecutables por procesador están configuradas para hacer que un procesador de un dispositivo informático realice operaciones que comprenden además: generar (660) una solicitud GET HTTP parcial para la reparación de archivo en intervalos de octetos que no incluye un elemento de cabecera If-Match en respuesta a la determinación de que el atributo del fragmento de metadatos de ADPD no indica que el servidor admite el uso del valor hash de MD5 como valor de ETag.
9. El medio de almacenamiento no transitorio legible por procesador de la reivindicación 8, en el que las instrucciones almacenadas ejecutables por procesador están configuradas para hacer que un procesador de un dispositivo informático realice operaciones de manera que el servicio sea un servicio de radiodifusión y multidifusión multimedia evolucionado, eMBMS.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201662351979P | 2016-06-19 | 2016-06-19 | |
| US15/612,460 US10599634B2 (en) | 2016-06-19 | 2017-06-02 | Signaling which version information to use on byte-range file repair |
| PCT/US2017/035927 WO2017222794A1 (en) | 2016-06-19 | 2017-06-05 | Signaling which version information to use on byte-range file repair |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2848286T3 true ES2848286T3 (es) | 2021-08-06 |
Family
ID=60659574
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17730022T Active ES2848286T3 (es) | 2016-06-19 | 2017-06-05 | Señalizar qué información de versión usar en la reparación de archivo en intervalos de octetos |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US10599634B2 (es) |
| EP (1) | EP3472995B1 (es) |
| KR (1) | KR102117116B1 (es) |
| CN (1) | CN109314720B (es) |
| AU (1) | AU2017280873B2 (es) |
| BR (1) | BR112018075550A2 (es) |
| ES (1) | ES2848286T3 (es) |
| SG (1) | SG11201809384WA (es) |
| TW (1) | TWI716602B (es) |
| WO (1) | WO2017222794A1 (es) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10721287B2 (en) * | 2018-03-23 | 2020-07-21 | Verizon Patent And Licensing, Inc. | Real-time file repair |
| CN112804071B (zh) * | 2019-11-13 | 2024-09-06 | 南京中兴新软件有限责任公司 | 在线升级方法、升级文件提供方法、设备及存储介质 |
| CN114416665B (zh) * | 2022-03-25 | 2022-06-10 | 苏州浪潮智能科技有限公司 | 一种数据一致性检测和修复的方法、装置及介质 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9052919B2 (en) * | 2010-01-15 | 2015-06-09 | Apple Inc. | Specialized network fileserver |
| EP2774347A2 (en) | 2011-11-01 | 2014-09-10 | Qualcomm Incorporated | Content delivery system with allocation of source data and repair data among http servers |
| US9424432B2 (en) * | 2012-09-20 | 2016-08-23 | Nasdaq, Inc. | Systems and methods for secure and persistent retention of sensitive information |
| EP2926233A4 (en) * | 2012-11-29 | 2016-07-13 | Edsense L L C | SYSTEM AND METHOD FOR DISPLAYING SEVERAL APPLICATIONS |
| US10127263B2 (en) * | 2013-05-30 | 2018-11-13 | Qualcomm Incorporated | Full file repair using schedule description fragment in eMBMS |
-
2017
- 2017-06-02 US US15/612,460 patent/US10599634B2/en active Active
- 2017-06-05 KR KR1020187036113A patent/KR102117116B1/ko active Active
- 2017-06-05 EP EP17730022.5A patent/EP3472995B1/en active Active
- 2017-06-05 AU AU2017280873A patent/AU2017280873B2/en not_active Ceased
- 2017-06-05 SG SG11201809384WA patent/SG11201809384WA/en unknown
- 2017-06-05 WO PCT/US2017/035927 patent/WO2017222794A1/en not_active Ceased
- 2017-06-05 CN CN201780036145.9A patent/CN109314720B/zh active Active
- 2017-06-05 ES ES17730022T patent/ES2848286T3/es active Active
- 2017-06-05 BR BR112018075550-8A patent/BR112018075550A2/pt active IP Right Grant
- 2017-06-08 TW TW106118961A patent/TWI716602B/zh active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3472995B1 (en) | 2020-11-04 |
| EP3472995A1 (en) | 2019-04-24 |
| BR112018075550A2 (pt) | 2019-03-19 |
| KR102117116B1 (ko) | 2020-05-29 |
| TW201802677A (zh) | 2018-01-16 |
| US20170364550A1 (en) | 2017-12-21 |
| AU2017280873A1 (en) | 2018-11-15 |
| WO2017222794A1 (en) | 2017-12-28 |
| US10599634B2 (en) | 2020-03-24 |
| TWI716602B (zh) | 2021-01-21 |
| CN109314720A (zh) | 2019-02-05 |
| KR20190018432A (ko) | 2019-02-22 |
| CN109314720B (zh) | 2021-09-28 |
| SG11201809384WA (en) | 2019-01-30 |
| AU2017280873B2 (en) | 2021-01-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10051031B2 (en) | Further device timing adjustments and methods for supporting DASH over broadcast | |
| BR112020021871A2 (pt) | método para sinalização de serviço de difusão | |
| ES2658838T3 (es) | Señalización de definición de servicio para servicios de eMBMS que usan diferentes portadoras en diferentes áreas | |
| JP6655093B2 (ja) | 部分的セグメント用の表示 | |
| ES2848286T3 (es) | Señalizar qué información de versión usar en la reparación de archivo en intervalos de octetos | |
| US10412138B2 (en) | Indication for partial segment | |
| US10659507B2 (en) | Indication for partial segment | |
| US20160248829A1 (en) | Availability Start Time Adjustment By Device For DASH Over Broadcast | |
| US20160269458A1 (en) | Multi-Service Initialization For Adaptive Media Streaming | |
| US20160142219A1 (en) | eMBMS Multicast Routing for Routers | |
| HK40002884B (zh) | 一种用於字节范围文件修复的方法和设备 | |
| HK40002884A (en) | Signaling which version information to use on byte-range file repair |