ES2265549T3 - Procedimiento de difusion de contenidos de par a par. - Google Patents

Procedimiento de difusion de contenidos de par a par. Download PDF

Info

Publication number
ES2265549T3
ES2265549T3 ES03026736T ES03026736T ES2265549T3 ES 2265549 T3 ES2265549 T3 ES 2265549T3 ES 03026736 T ES03026736 T ES 03026736T ES 03026736 T ES03026736 T ES 03026736T ES 2265549 T3 ES2265549 T3 ES 2265549T3
Authority
ES
Spain
Prior art keywords
node
file
recipient
nodes
neighbor
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.)
Expired - Lifetime
Application number
ES03026736T
Other languages
English (en)
Inventor
John Vert
Eugene Mesgar
Eugene Zarakhovsky
Cesare John Saretto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2265549T3 publication Critical patent/ES2265549T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Radio Relay Systems (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Silicates, Zeolites, And Molecular Sieves (AREA)

Abstract

Procedimiento para transferir archivos entre nodos dentro de una red de par a par que tiene una pluralidad de nodos que incluye un nodo de origen, un nodo destinatario y un nodo vecino, en el que el nodo vecino está directamente conectado al nodo destinatario, comprendiendo el procedimiento: recibir en el nodo destinatario unos metadatos que han sido transmitidos por el nodo de origen y que se corresponden con un archivo poseído por el nodo de origen; recibir en el nodo destinatario procedente del nodo vecino una notificación de que el nodo vecino ha recuperado el archivo poseído por el nodo de origen; y determinar en el nodo destinatario si recuperar el archivo poseído por el nodo de origen procedente del nodo vecino en base a los metadatos.

Description

Procedimiento de difusión de contenidos de par a par.
La presente invención se refiere en general a la conectividad de grupo sobre una red y, más concretamente, se refiere a la transferencia de archivos en una red de par a par.
A medida que aumentan en número y popularidad las redes de par a par y experimentan nuevas aplicaciones, resultan más perceptibles los inconvenientes de las tecnologías de par a par actuales. El incremento de la potencia de procesamiento de los PC deja también al descubierto estos defectos al contrastarse con la falta de un incremento sustancial concomitante de la anchura de banda disponible para su uso en una conectividad de par a par.
Por ejemplo, las técnicas y metodologías existentes para la transferencia de archivos en redes de par a par son a menudo complicadas y sensiblemente lentas, impidiendo la rápida participación de la información sobre la red. Cuando se está empleando el sistema de par a par en interactividad de grupo en tiempo real, cualquier retraso sustancial en la transferencia de archivos puede dar como resultado una sensación de desconexión, en la que una interacción que se supone en tiempo real comienza a percibirse por el usuario como una interacción forzada y carente de dinamismo. Por consiguiente es importante acelerar la transferencia de archivos siempre que sea posible.
Una razón básica para la lentitud de los protocolos de transferencia de archivos de par a par reside en el procedimiento con el cual se reparte la subida de transferencia de archivos entre nodos de par a par. Por ejemplo, en una técnica de transferencia típica, un nodo que tiene un archivo para compartir con el grupo simplemente comunica el archivo a todos los miembros del grupo subiendo el archivo sobre cada uno en paralelo o de forma serial. Esto impone una anchura de banda considerable y una penalización computacional sobre el nodo de dispersión ya que tiene que servir a cada solicitante o a cada nodo que recibe el material, y tiene que hacerlo de una forma por así decir simultánea o contemporánea. Como resultado de ello, la velocidad de transferencia de archivos con respecto a la totalidad del grupo está limitada por las capacidades computacionales y la velocidad de conexión del nodo de dispersión.
Se necesita un mecanismo de transferencia de archivos de par a par que proporcione la suficiente velocidad de transferencia, de forma que puedan conseguirse interacciones de grupo sustancialmente en tiempo real utilizando una red de par a par sin interrupciones excesivas debidas a retrasos en la transferencia de archivos.
En el documento "OAI-P2P: una red de par a par para archivos abiertos" PROC. OF THE ICPPW'02, 18 de Agosto de 2002, pp 463.468, Ahlborn B. et al., describen unos protocolos de par a par para compartir información entre usuarios, en los que se utilizan unos metadatos como nexo de unión entre el contenido y la comunidad. Cada par participante puede ser consumidor y suministrador de servicios de datos. Se sugiere una estructura de par a par para almacenar, consultar e intercambiar metadatos, en la que cada par participante puede conseguir que su información de los metadatos sea disponible. Los pares publican lo que ofrecen anunciando qué tipo de servicios proporcionan.
El documento EP-A-0993163 divulga un sistema en el que paquetes de datos son servidos a un cliente mediante un sistema distribuido no determinístico, flexible, de clientes de par los cuales cachetizan los paquetes de datos con el fin de potenciar al máximo la eficacia y velocidad para servir el paquete de datos al cliente. En este sistema, siempre que un cliente solicite un paquete de datos, en primer término se determina si el paquete de datos está situado localmente en la memoria, y si no se encuentra, entonces se realiza una tentativa para recuperar el paquete de datos de un cliente de par sobre la red local, y si sigue sin encontrarse se efectúa una última tentativa para recuperar el paquete de datos obteniéndolo del
servidor.
Constituye la finalidad de la presente invención proporcionar unos procedimientos más eficaces para transferir archivos entre nodos en una red de par a
par.
Esta finalidad se resuelve mediante el objeto de las reivindicaciones independientes.
En las reivindicaciones dependientes se definen formas de realización preferentes de la presente invención.
La presente invención consiste en un sistema, procedimiento, y arquitectura para transferir eficazmente archivos en una red de par a par. El sistema está adaptado para promover el compartimiento de archivos sustancialmente en tiempo real, lo que resulta especialmente beneficioso en un entorno de interacción de grupo en línea. En una forma de realización de la invención, muchos nodos de red de par a par sirven como clientes y servidores, recibiendo ambos información de archivos y transmitiendo la información recibida a otros nodos. La subida de transferencia de archivos se reparte, en una forma de realización de la invención, más uniformemente a través de los nodos de la red de forma que típicamente ningún nodo soporta una subida de transferencia de archivos desproporcionada. Esto contribuye a asegurar que el archivo es transferido a cada nodo dentro de la red lo más rápido posible.
En una forma de realización de la invención, la diseminación de archivo se inicia mediante la publicación de metadatos de archivo. Una vez recibidos los metadatos, cada nodo determina si desea recibir el archivo asociado. Si desea recibir el archivo, el nodo o nodos relevantes utilizan un modelo de extracción para solicitar el contenido del archivo de los vecinos respectivos. En una forma de realización de la invención cada nodo que tiene o recibe el archivo anuncia su posesión del archivo de forma que otros nodos puedan obtener entonces el archivo de estas fuentes secundarias. En una forma de realización de la invención, un nodo puede recibir de forma sustancialmente simultánea un archivo mediante una descarga de flujo continuo desde un nodo particular y servir el mismo archivo mediante su descarga en otro nodo. En esta forma de realización, preferentemente se utiliza un identificador de generación para impedir que dos nodos, cada uno teniendo la misma parte de un archivo, intenten recuperar el resto del archivo uno de
otro.
Características y ventajas adicionales de la invención se pondrán de manifiesto mediante la subsecuente descripción detallada de formas de realización ilustrativas que se expone con referencia a las figuras que se acompañan.
Breve descripción de los dibujos
Aunque las reivindicaciones adjuntas desarrollan con precisión las reivindicaciones de la presente invención, la invención, junto con sus objetos y ventajas, puede ser entendida de forma óptima mediante la descripción detallada subsecuente tomada en conjunción con los dibujos que se acompañan de los cuales:
la Figura 1 es un diagrama esquemático que genéricamente ilustra un sistema de computadora ejemplar susceptible de utilización para implementar una forma de realización de la invención;
la Figura 2 es un diagrama esquemático que ilustra una red de par a par ejemplar para facilitar la transferencia de archivos de acuerdo con una forma de realización de la invención;
la Figura 3 es un diagrama de flujos que ilustra un proceso de diseminación y recuperación de archivos para su uso en una red de par a par de acuerdo con una forma de realización de la presente invención;
la Figura 4 es un diagrama de flujo que ilustra una técnica de priorización de transferencia de archivos para su uso en una red de par a par de acuerdo con una forma de realización de la presente invención;
la Figura 5 es un diagrama esquemático que muestra una arquitectura de nodo cliente/servidor de acuerdo con una forma de realización de la invención.
Descripción detallada de la invención
Con relación a los dibujos, en los que las mismas referencias numerales se refieren a los mismos elementos, a continuación se describirá la invención en el contexto de un entorno informático. Aunque no se requiere para llevar a la práctica la invención, la invención se describe tal como es implementada mediante instrucciones ejecutables por computadora, como por ejemplo módulos de programa, que son ejecutados por una Computadora Personal (PC). En general, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructura de datos y similares que llevan a cabo tareas concretas o implementan determinados tipos de datos abstractos.
La invención puede ser implementada en configuraciones de sistemas de computadora distintas de un PC. Por ejemplo, la invención puede llevarse a cabo en dispositivos portátiles, teléfonos móviles, sistemas multiprocesadores, sistemas electrónicos a base de microprocesadores o programables por el usuario, PCs de red, minicomputadoras, grandes computadoras y similares. La invención puede también llevarse a la práctica en entornos informáticos descentralizados, en los que las tareas se llevan a cabo mediante dispositivos de procesamiento remoto y se enlazan mediante una red de comunicaciones. En un entorno informático descentralizado, pueden situarse unos módulos de programa tanto en dispositivos locales como en dispositivos de almacenamiento de memoria remotos.
Por tanto, aunque la descripción detallada subsecuente de la invención se expone en el contexto de un dispositivo ejemplar de computación de finalidad general, como por ejemplo un PC convencional 20, debe entenderse que la invención puede incorporarse en muchos tipos de entornos informáticos de acuerdo con lo anteriormente señalado.
Antes de describir la invención con detalle, un entorno informático en el cual las formas de realización de la invención pueden implementarse se describe en conexión con la Figura 1A. El PC 20 incluye una unidad de procesamiento 21 una memoria 22 del sistema, y un bus 23 del sistema que acopla diversos componentes del sistema incluyendo la memoria del sistema con la unidad de procesamiento 21. El bus 23 del sistema puede ser cualquiera de los diversos tipos de estructuras de bus incluyendo un bus de memoria o un controlador de memoria, un bus periférico, y un bus local que utilice cualquiera de entre una diversidad de arquitecturas de bus. La memoria del sistema incluye una memoria de solo lectura (ROM) 24 y una memoria de acceso aleatorio (RAM) 25. Un sistema básico de entrada/salida (BIOS) 26, que contiene las rutinas básicas que ayudan a transferir la información entre los elementos existentes dentro del PC 20, como por ejemplo durante el arranque, está almacenado en el ROM 24. El PC 20 incluye así mismo una unidad de disco duro 27 para leer de y escribir a un disco duro 60, una unidad de disco magnético 28 para leer de y escribir en un disco magnético extraíble 29, y una unidad de disco óptico 30 para leer de y escribir en un disco óptico extraíble 31, como por ejemplo un CD ROM u otro medio óptico.
La unidad de disco duro 27, la unidad de disco magnético 28 y la unidad de disco óptico 30 están conectadas a un bus 23 del sistema mediante una interfaz 32 de la unidad de disco duro, una interfaz 33 de la unidad de disco magnético y una interfaz 34 de la unidad de disco óptico, respectivamente. Las unidades y sus medios de lectura por computadora asociados proporcionan un almacenaje no volátil de las instrucciones legibles por computadora, de las estructuras de datos, de los módulos de programa y de otros datos destinados al PC 20. Aunque el entorno ejemplar descrito en la presente memoria emplea uno o más discos duros 60, un disco magnético extraíble 29, y un disco óptico extraíble 31, los expertos en la materia pueden apreciar que pueden también utilizarse en el entorno operativo ejemplar otros tipos de medios legibles por computadora que pueden almacenar datos que sean accesibles mediante un dispositivo informático, como por ejemplo casetes magnéticos, tarjetas de memoria flash, discos de vídeo digitales, cartuchos Bernoulli, memorias de acceso aleatorio, memorias de solo lectura, y similares.
Un determinado número de módulos de programa puede almacenarse en el disco duro 60, en el disco magnético 29, en el disco óptico 31, en la ROM 24 o en la RAM 25, incluyendo un sistema operativo 35, uno o más programas 36 de aplicaciones, otros módulos 37 de programa y datos 38 de programa. Un usuario puede introducir mandatos e información en el PC 20 mediante dispositivos de entrada como por ejemplo un teclado 40 y un dispositivo apuntador 42. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, una palanca para juegos, un mando almohadilla para juegos, una antena parabólica o un escáner. Estos y otros dispositivos de entrada están a menudo conectados a la unidad de procesamiento 21 mediante una interfaz 46 de puerto serie que está acoplada al bus pero puede estar conectada a otras interfaces, como por ejemplo un puerto paralelo, un puerto para juegos o un bus serie universal (USB). Un monitor 47 u otro tipo de dispositivo de visualización está también conectado al bus 23 del sistema mediante una interfaz, como por ejemplo un adaptador de vídeo 48. Además del monitor, los PCs típicamente incluyen otros dispositivos de salida periféricos, no mostrados, como por ejemplo altavoces e impresoras.
El PC 20 opera en un entorno de interconexión en red que utiliza conexiones lógicas fijas o transitorias a una o más computadoras remotas, como por ejemplo una computadora remota 49. La computadora remota 49 puede ser en general otro PC, un servidor, un encaminador, un PC de red, un dispositivo de par u otro nodo de red común, o cualquier otro tipo de dispositivo distinto, como por ejemplo cualquiera de los mencionados a lo largo de la presente memoria. La computadora remota 49 típicamente incluye muchos o todos los elementos descritos anteriormente con relación al PC 20, aunque esto no es necesario, y únicamente se ha ilustrado en la Fig. 1A un dispositivo 50 de almacenamiento de memoria. Las conexiones lógicas representadas en la Fig. 1A incluyen una red de área local (LAN) 51 y una red de área extendida (WAN) 52. Dichos entornos de interconexión en red son habituales en oficinas, redes de computadora de ámbito empresarial, intranets e Internet.
Cuando se utiliza un entorno de interconexión de red LAN, el PC 20 está conectado a la red 51 mediante una interfaz o adaptador 53 de red. Cuando se utiliza en un entorno de interconexión WAN, el PC 20 típicamente incluye un módem 54 u otro medio para establecer comunicaciones sobre la WAN 52. El módem 54, que puede ser interno o externo, está conectado al bus 23 del sistema mediante una interfaz 46 de puerto serial. Aunque puede utilizarse un módem estándar en un implementación de una forma de realización de la invención, obtendrá sin embargo en general mejores prestaciones una conexión de banda ancha, como por ejemplo una que tenga una capacidad entre aproximadamente 120 kbps y 1,5 Mbps o más. Los módulos de programa representados en relación con el PC 20, o porciones de los mismos, pueden almacenarse en el dispositivo remoto de almacenaje de memoria. Debe apreciarse que las condiciones de red mostradas son ejemplares y que pueden utilizarse otros medios de establecer un enlace de comunicaciones entre las computadoras. Así mismo, la invención no pretende quedar limitada a un tipo de red concreto. Cualquier tipo de red, cableado o inalámbrico, fijo o transitorio, de conmutación de circuitos, de conmutación por paquetes u otras arquitecturas de red, pueden utilizarse para implementar la presente invención.
En la descripción que sigue, la invención se describirá con referencia a actos y representaciones simbólicas de operaciones que se llevan a cabo por uno o más dispositivos informáticos, como por ejemplo el PC 20, a menos que se indique otra cosa. En cuanto tales, debe entenderse que dichos actos y operaciones, a los que a veces se hace referencia en tanto en cuanto son ejecutados por computadora, incluyen la manipulación por la unidad de procesamiento de la computadora de las señales eléctricas que representan datos de una forma estructurada. Esta manipulación transforma los datos o los mantiene en emplazamientos dentro del sistema de la memoria de la computadora, la cual reconfigura o de otra forma altera la operación de la computadora de una manera bien conocida por los expertos en la materia. Las estructuras de datos en las que los datos se mantienen en emplazamientos físicos de la memoria que tienen unas propiedades concretas definidas por el formato de los datos. Sin embargo, aunque la invención está siendo descrita en el contexto anterior, no pretende ser limitativa y los expertos en la materia podrán apreciar que pueden implementarse en el equipo físico diversos de los actos y operaciones descritos a continuación en la presente memoria.
Una red ejemplar 201 de par a par utilizable de acuerdo con una forma de realización de la presente invención se muestra esquemáticamente en la Figura 2. Típicamente, una red de par a par que utiliza la invención contendrá aproximadamente de 2 a 10 nodos, aunque pueden utilizarse también redes más amplias para implementar la invención. Las líneas de dos terminales entre los nodos A a G de la red de par a par representan las conexiones de red de par a par. Así por ejemplo, en la disposición ilustrada, el nodo A está conectado directamente al nodo B pero solo indirectamente (esto es, no mediante un enlace único) al nodo C. Cada conexión de par a par puede efectivamente comprender un número determinado de conexiones subyacentes lógicas y/o físicas de forma que pueden estar asociadas con la red subyacente sobre la cual está tendida la red de par a par. Nótese que, aunque los nodos de red de par a par serán generalmente computadoras, ello no es necesario. Antes bien, puede utilizarse cualquier tipo de dispositivo que tenga las instalaciones de red apropiadas dependiendo de la elección de equipo del usuario.
Para incrementar la eficacia de la red de par a par, cada computadora del grupo puede también almacenar "archivos comunes" en una base de datos que se mantenga en conexión con las bases de datos de los demás miembros del grupo. Esta base de datos puede mantenerse en conexión de muchas formas diferentes. En una implementación, siempre que una computadora determinada cambie la base de datos puede propagar estos cambios a otras computadoras dentro de la red de par a par mediante las conexiones anteriormente descritas. Alternativamente, las computadoras del grupo pueden automáticamente poner al día sus bases de datos después de que transcurra un cierto periodo de tiempo, interrogar a las computadoras en conexión lógica con ellas en relación con nuevas versiones de las bases de datos. Aunque las tecnologías de par a par generalmente tienen una serie de ventajas que incluyen su independencia respecto de un servidor central y a menudo una mejor utilización de los recursos, la presente invención puede también utilizar un servidor o una instalación central (no mostrada) conectada a uno o más nodos para el almacenamiento de datos o para el mantenimiento del estado de un grupo particular de nodos de par a par o de miembros concretos desligados.
La red de par a par 201 puede construirse utilizando las tecnologías de par a par existentes. Por ejemplo, en general, un nodo se conecta a la red 201 estableciendo una conexión a uno de los nodos existentes. En este punto, el nuevo nodo puede "sobreponerse" sobre las conexiones (a otros nodos) del nodo existente evaluando las otras conexiones y nodos, si es que existen, del nodo existente, y escogiendo su conexión a algunos, todos o ninguno de aquellos otros nodos. El nodo de conexión generalmente toma en cuenta el coste de una nueva conexión en relación con los atributos beneficiosos de la nueva conexión al decidir si crear conexiones adicionales basadas en las conexiones existentes del nodo. Cada nodo de la red de par a par mantiene también un registro del estado instantáneo de las partes de la red de las cuales tiene conocimiento, para seguir la parte relevante de afiliación a la red y el estado en cualquier momento determinado como podrá apreciarse por los expertos en la materia. Es la recogida de estos diversos registros sobre los diversos nodos lo que realmente constituye la red de par a par ya que las conexiones entre nodos típicamente no están cableadas y en la mayoría de los casos son también transitorias en el sentido de ser conmutadas por paquetes más que por conmutación de circuitos.
De acuerdo con un aspecto de la invención, una distribución de archivos se inicia por un nodo de la red de par a par, como por ejemplo el nodo A. Como se describirá más adelante con mayor detalle, los datos de archivo fluyen a través de la red hasta los nodos destinatarios apropiados mientras que la técnica de transferencia distribuye los costes de transferencia de forma relativamente uniforme a través de la red. En particular, con referencia al diagrama de flujo 301 de la Figura 3, puede apreciarse que el nodo de distribución edita los metadatos asociados con el archivo de interés en la etapa 303. Los metadatos no son datos de archivo, sino que más bien representan una información acerca del archivo mismo, así como del contexto del archivo, como por ejemplo la prioridad con respecto a otros archivos. Preferentemente los metadatos son lo suficientemente pequeños como para quedar fácilmente inundados en todos los nodos mediante las conexiones existentes con el empleo de una anchura de banda mínima mediante la técnica de inundación de registros de par a par regular. De acuerdo con esta técnica, todos los nodos destinatarios secuencialmente reenvían los metadatos, hasta que los datos han alcanzado todos los nodos de la red. Nótese que cuando un nodo recibe metadatos duplicados, como por ejemplo conexiones diferentes con diferentes nodos, simplemente descarta cualquier información duplicada sin reenvío, y reenvía solo la primera copia recibida de los metadatos.
En una forma de realización de la invención, los metadatos comprenden un nombre de archivo, un tamaño de archivo, un conjunto de distribución de características, la información de expiración, y cualquier información de módulo específico que la solicitud o módulo de publicación desea proporcionar. Así mismo, los metadatos pueden también incluir cualquier otra información apropiada como por ejemplo la creación y/o modificación de fecha, titular, creador, prioridad, etc. El nombre del archivo situado dentro de los metadatos es simplemente un identificador vinculado al archivo. El nombre del archivo no necesita ser totalmente singular, aunque es preferentemente un identificador que es lo suficientemente específico para que sea improbable que se asocie con otro cualquier archivo idéntico distinto del archivo apropiado de cualquier nodo de la red 201. En el caso de archivos de música, el nombre del archivo puede incluir unos designadores de ID3 de MP3. La información del tamaño del archivo proporciona una indicación acerca de cuántos datos están contenidos en el archivo, y se proporciona preferentemente con respecto al tamaño del archivo cuando es comprimido si la compresión se utiliza en la transferencia. El conjunto de las características de distribución opcionalmente proporciona una pista o sugerencia acerca de cómo debe ser distribuido el archivo. Finalmente la información de expiración especifica el tiempo en el cual el archivo, una vez transferido, debe ser suprimido de la memoria de cada nodo destinatario. Nótese que la publicación de los metadatos originales puede incluir una declaración de que el nodo de origen tiene el archivo ofrecido, pero que cada dos nodos no hace esta declaración hasta que efectivamente tiene al menos una parte del archivo de acuerdo con lo que se expone con mayor detalle más adelante.
Una vez que el nodo de publicación ha transmitido los metadatos tal como se indica en la etapa 303, y que todos los nodos de la red de par a par han recibido los metadatos, cada nodo destinatario de los metadatos decide en la etapa 305 si solicitar o no el archivo. Un nodo puede tener cualquier motivo para solicitar el archivo. Por ejemplo, si un módulo de interacción de grupo en tiempo real en línea, como por ejemplo un módulo de experiencia de audio de grupo, indujo la publicación de los metadatos de archivo, y el nodo destinatario tiene activo el mismo tipo de módulo, entonces el nodo destinatario probablemente querrá solicitar el archivo ofrecido.
Así mismo, en una forma de realización preferente de la invención, un nodo busca sus archivos locales para determinar si tiene ya una copia del archivo relevante, y utiliza cualquiera de dichas copias mejor que solicitar de otro nodo una descarga. La decisión acerca de si una copia local es la "misma" que la copia anunciada puede basarse en muchos factores. Por ejemplo, en el caso de archivos de audio, la identidad puede deducirse de una correspondencia de tales características como el nombre del archivo, el artista productor o una tercera parte y la longitud de la música. Sin embargo, en una forma de realización adicional de la invención, este archivo obtenido de fuente local no se utiliza para servir solicitudes de otros nodos con respecto al archivo anunciado. Esto es porque puede haber diferencias entre la copia obtenida de fuente local y la copia anunciada, las cuales pueden o pueden no ser visibles en el nodo obtenido de fuente local, pero que pueden impedir la continuidad de la descarga cuando hay una conmutación de fuente durante la descarga por otro nodo. Dichas diferencias pueden residir en la precisa técnica de compresión utilizada para reducir el archivo (por ejemplo cuando el mismo archivo es comprimido de formas diferentes para producir versiones finales diferentes), o en los datos subyacentes utilizados para crear el archivo (por ejemplo cuando los archivos están asociados con cortes diferentes de la misma canción). La decisión de utilizar o no el archivo local en este contexto puede estar asociada con la medida de la identidad del archivo que se emplea.
Si el nodo destinatario decide solicitar el archivo, entonces verifica en la etapa 307 para determinar si cualquiera de sus nodos vecinos directos han declarado que tienen el archivo. Si uno o más vecinos han declarado que tienen el archivo, lo que significa que tienen al menos una parte del archivo, entonces el nodo en cuestión decide de qué vecino solicitar el archivo en la etapa 309. Esta decisión puede basarse en una serie de factores incluyendo, por ejemplo, las características computacionales y de conexión (la prestación de transferencia del archivo previamente medido, la velocidad, la fiabilidad, etc.) de los nodos.
Dado que múltiples nodos pueden recibir partes de un archivo y a continuación anunciar su posesión, existe la posibilidad teórica de que si los suministradores relevantes de estos nodos experimentan problemas, los nodos pueden intentar obtener el archivo entre sí. Esto produciría un interbloqueo puesto que ningún nodo tiene posesión del entero archivo. Para aliviar este problema, cada nodo que anuncie su posesión de un archivo preferentemente anuncia también un número de generación del archivo. Cualquier nodo que tiene u obtiene el entero archivo puede anunciar su versión como archivo de generación 0. Un nodo que anuncia una copia parcial que está obteniendo de una fuente de generación 0 anuncia su versión como generación 1. En general, cada nodo anuncia su versión como una generación mayor que la versión que está simultáneamente descargando. Cuando un nodo fuente completa su descarga de una entera copia del archivo, reduce su generación anunciada a 0, y la reducción fluye a través de la cadena de nodos en la cual está directa o indirectamente suministrando descargas. Así, el número de generación asociado con las versiones del archivo anunciadas es otro factor utilizable en otra forma de utilización de la invención para determinar de qué nodo obtener el archivo, requiriéndose generalmente una generación inferior, y no siendo típicamente aceptable una generación igual a la generación del solicitante.
Si únicamente un vecino ha declarado la posesión del archivo y tiene una versión apropiada, entonces se omite la etapa 309 para el nodo solicitante en cuestión. En la etapa 311, el nodo solicitante solicita el archivo del nodo vecino seleccionado en posesión del archivo y comienza a recibir el archivo.
En una forma de realización de la invención una vez que el nodo solicitante ha empezado a recibir el archivo, puede anunciar su posesión a los otros nodos. Ello se debe a que el nodo solicitante puede servir las partes del archivo que ya ha recibido continuando simultáneamente al tiempo recibiendo el archivo de su suministrador a aproximadamente la misma velocidad o mayor. Esto actúa en la mayoría de los casos para reducir ligeramente la demora de la distribución del archivo dado que un nodo no necesita esperar la compleción de la recepción del archivo antes de anunciar su posesión y servir el archivo a otros nodos. Así, en la etapa 313, el nodo solicitante transmite un aviso a sus nodos vecinos de que está en posesión del archivo en cuestión. En la etapa 315, el nodo en cuestión sirve cualesquiera solicitudes del archivo recibidas. Finalmente, el proceso termina en el nodo 319.
Si se determinó en la etapa 305 que el nodo en cuestión no desea poseer el archivo entonces el proceso fluye hasta la etapa 317, donde se determina si cualquier nodo vecino del nodo en cuestión ha enviado una solicitud de archivo no solicitada al nodo en cuestión. Debido a que la distribución de archivos se lleva generalmente a cabo sobre la base de una solicitud, de acuerdo con lo anteriormente expuesto, es posible que un nodo que desea el archivo no tenga ningún vecino que obtenga y anuncie el archivo por su propia iniciativa. Por tanto, después de esperar una cantidad adecuada de tiempo, por ejemplo aproximadamente un incremento de tiempo de descarga de archivo, de forma que un nodo pueda enviar una solicitud de archivo no demandada a uno de sus vecinos, indicando a aquél vecino a recuperar y servir el archivo en cuestión. En una forma de realización de la invención, cada aplicación o módulo de par a par está asociado con una concreta red de par a par compuesta exclusiva o fundamentalmente de nodos que ejecutan la misma aplicación o módulo. Por tanto, en esta forma de realización, la probabilidad de necesitar utilizar una solicitud no demandada es pequeña, dado que cada nodo probablemente deseará tener el archivo.
Si se determina en la etapa 317 que ningún nodo vecino del nodo en cuestión ha enviado una solicitud de archivo no demandada al nodo en cuestión, entonces el proceso termina en la etapa 319. Si, por el contrario, se determina en la etapa 317 que uno o más nodos vecinos del nodo en cuestión han enviado una solicitud de archivo no demandada al nodo en cuestión, entonces el proceso fluye hasta la etapa 307 y hasta las etapas que lógicamente siguen. Nótese que el nodo en cuestión puede él mismo necesitar efectuar una solicitud de archivo no demandada para obtener el archivo en una forma de realización de la invención.
Aunque no se ha expuesto con detalle anteriormente, hay situaciones en las que el nodo elige entre múltiples archivos para subir y/o descargar y/o cuándo se efectúa una elección entre la tarea de subir y la tarea de descargar para el nodo concreto. Estas situaciones se analizarán con mayor detalle con respecto al diagrama de flujo esquemático 401 de la Figura 4. Aunque la situación presentada en la Figura 4 implica la disponibilidad simultánea de múltiples oportunidades de subida y descarga, debe apreciarse que en muchos casos dichas oportunidades múltiples no existirán, y en tales situaciones, algunas de las etapas del diagrama de flujo 401 pueden ser omitidas cuando sea conveniente.
En la etapa 403, un nodo determinado ha recibido solicitudes de subir dos o más archivos determinados y ha también recibido anuncios de que dos o más archivos distintos están disponibles para su descarga en el nodo. En el caso en el que el nodo de interés tenga una capacidad de subida y descarga ilimitada, y de que la ejecución simultánea (esto es, sustancialmente al mismo tiempo o durante intervalos de tiempo solapados) de todas estas actividades puedan llevarse a cabo sin ralentizar o demorar cualquier actividad, entonces todas estas subidas y descargas son preferentemente realizadas de modo simultáneo. Si, sin embargo, como es más habitual, los recursos del nodo y/o de la red son limitados de forma que la descarga o la subida más rápida únicamente se obtienen cuando ninguna otra subida o descarga está en servicio, entonces la descarga o subida más rápida posible tendrá generalmente lugar efectuando una elección respecto a qué actividad (subir o descargar) y archivo poner en servicio. Debe apreciarse que cuando los canales de subida y descarga están enteramente separados como en ciertas tecnologías de banda ancha, la priorización de cada canal puede llevarse a cabo separadamente y no de la forma cooperativa mostrada en la Figura 4.
En la etapa 405 se priorizan las actividades de subida y descarga de los archivos potenciales. En particular, cada archivo está preferentemente asociado, como por ejemplo a través de los metadatos, con una prioridad numérica que representa su importancia actual. Las prioridades pueden representar, por ejemplo, el orden relativo de los archivos en una lista de reproducción de sonido, y puede cambiar cuando la lista de reproducción cambie. Hasta el punto en que una o más prioridades de archivo cambien durante la subida o descarga y afecten a qué archivo es el archivo actualmente preferente para su subida o descarga, el archivo objeto de elección puede conmutarse en mitad del flujo, almacenándose la parte incompleta transferida del archivo previamente escogido para la reanudación potencial futura de la transferencia. Si los canales de subida y descarga del archivo son enteramente distintos de forma que no colisionen entre sí, entonces la priorización preferentemente tiene lugar sobre una base por canal. Esto es, todas las descargas de archivo potenciales son priorizadas unas respecto de otras y todas las subidas de archivo potenciales son priorizadas unas respecto de otras. La persona experta en la materia apreciará así mismo que las técnicas descritas pueden fácilmente modificarse para incorporar múltiples canales de subida independientes o múltiples canales de descarga independientes.
En la etapa 407, se pone en servicio la prioridad más alta de transferencia de archivo. En el caso de canales de subida y descarga independientes, se pone en servicio la prioridad más alta de archivo y también se pone en servicio la prioridad más alta de descarga. Debe de nuevo destacarse que las prioridades de archivo pueden cambiar durante la transferencia del archivo, lo que puede provocar que otro archivo tenga una prioridad más alta de subida o descarga que el archivo puesto en servicio actualmente, según lo anteriormente descrito. Finalmente, en la etapa 409 el proceso termina.
La figura 5 ilustra de forma esquemática una arquitectura de cliente/servidor utilizable de acuerdo con una forma de realización de la presente invención. En particular, en la red de par a par de acuerdo con diversas formas de realización de la invención, muchos nodos operan como clientes y como servidores, aunque debe apreciarse que uno o más nodos pueden operar solo como clientes o solo como servidores. Una arquitectura ejemplar 501 de nodo cliente/servidor tiene tanto prestaciones de cliente 503 como prestaciones de servidor 505. Las prestaciones de cliente 503 son responsables de solicitar los archivos que puedan existir y de recibirlos. Con mayor detalle, las prestaciones de cliente 503 preferentemente incluyen una interfaz de cliente 507 para recibir una solicitud, como por ejemplo de un módulo o aplicación, para obtener un archivo determinado, como por ejemplo uno que ha sido anunciado, de otro nodo. Dichas solicitudes pueden ser priorizadas y puestas en cola de espera en la cola de prioridad 511. En este punto, se utiliza la interfaz 513 de conexión de nodo para ejecutar la solicitud y obtener el archivo deseado en el momento preciso en base a la prioridad de solicitud asignada.
Las prestaciones de servidor 505 de un nodo preferentemente contienen una interfaz 515 de archivo para recibir los datos del archivo, como por ejemplo de otro módulo o aplicación sobre el nodo. La información de archivo puede ser comprimida, como por ejemplo en el formato Windows Media® Audio (WMA) 64 k, o puede tener un formato unitario para una subida en masa o puede tener un formato en flujo para una subida en flujo. Por razones de claridad, dos interfaces, una interfaz de "Publicar Archivo" y una interfaz de "Publicar en Flujo", se ilustran dentro de la interfaz 515. Esta última se utiliza para facilitar la publicación en flujo de un archivo por la parte del servidor 505 mientras la primera se utiliza para facilitar la publicación unitaria del archivo completo de acuerdo con lo anteriormente expuesto. Los datos de archivo recibidos en la interfaz 515 son transmitidos hasta el caché de servidor 517 para su almacenamiento temporal, y pueden ser reordenados con respecto a otras subidas pendientes existentes en la cola 519 de prioridad de servidor. Preferentemente, los archivos de prioridad más alta son recibidos en primer lugar en la interfaz 515 de archivo, aunque las prioridades pueden cambiar durante la recepción de los datos de archivo en la interfaz 515. Finalmente, los datos de archivo se hacen disponibles en el orden de prioridad adecuado en la interfaz 513 de conexión de nodo. Debe apreciarse que los datos de archivo de subida pueden provenir alternativamente de la interfaz 513 de conexión de nodo, como por ejemplo cuando las prestaciones de cliente 503 han ocasionado el recibo de los datos de archivo procedentes de otro nodo, y las prestaciones de servidor van a subir los mismos datos en otro nodo más. En este caso, los datos de archivo entrantes pueden ser almacenados tanto en la cola de prioridad de cliente como en la cola de prioridad de servidor.
Debe apreciarse que ha sido descrito un medio novedoso de transferencia de difusión de contenidos para su uso en una red de par a par. En vista de las muchas posibles formas de realización a las cuales pueden aplicarse los principios de la presente invención, debe advertirse que las formas de realización descritas en la presente memoria con respecto a las Figuras de los dibujos, pretenden ser solo ilustrativas y no deben ser consideradas como limitativas del ámbito de la invención. Por ejemplo, los expertos en la materia advertirán que los elementos de las formas de realización ilustradas mostradas en software pueden ser implementadas en hardware y viceversa o que las formas de realización ilustradas pueden ser modificadas en cuanto a disposición y detalle. Por consiguiente, la invención tal y como se ha descrito en la presente memoria, contempla todas estas formas de realización en cuanto puedan quedar incluidas dentro del ámbito de las reivindicaciones subsecuentes.

Claims (20)

1. Procedimiento para transferir archivos entre nodos dentro de una red de par a par que tiene una pluralidad de nodos que incluye un nodo de origen, un nodo destinatario y un nodo vecino, en el que el nodo vecino está directamente conectado al nodo destinatario, comprendiendo el procedimiento:
recibir en el nodo destinatario unos metadatos que han sido transmitidos por el nodo de origen y que se corresponden con un archivo poseído por el nodo de origen;
recibir en el nodo destinatario procedente del nodo vecino una notificación de que el nodo vecino ha recuperado el archivo poseído por el nodo de origen; y
determinar en el nodo destinatario si recuperar el archivo poseído por el nodo de origen procedente del nodo vecino en base a los metadatos.
2. El procedimiento de acuerdo con la reivindicación 1, comprendiendo así mismo recuperar el archivo procedente del nodo vecino hasta el nodo destinatario si se determina en el nodo destinatario recuperar el archivo.
3. El procedimiento de acuerdo con la reivindicación 1, en el que los metadatos comprenden una prioridad asociada con el archivo.
4. El procedimiento de acuerdo con la reivindicación 2, en el que recuperar el archivo del nodo vecino comprende:
enviar una solicitud al nodo vecino del archivo; y
recibir del nodo vecino en el nodo destinatario una subida en flujo continuo del archivo.
5. El procedimiento de acuerdo con la reivindicación 4, comprendiendo así mismo difundir hasta otros nodos dentro de la red de par a par una notificación de que el nodo destinatario posee el archivo una vez que el nodo destinatario ha empezado a recibir la subida en flujo continuo del archivo.
6. El procedimiento de acuerdo con la reivindicación 5, en el que la notificación de que el nodo destinatario posee el archivo comprende también un identificador de generación, en el que el identificador de generación distingue la copia de archivo disponible procedente del nodo destinatario de la copia de archivo disponible procedente del nodo de
origen.
7. El procedimiento de acuerdo con la reivindicación 6, comprendiendo así mismo difundir una segunda notificación de que el nodo destinatario posee el archivo una vez que el nodo destinatario ha terminado de recibir una subida en flujo continuo del archivo, en el que la segunda notificación comprende un segundo identificador de generación en el que el segundo notificación de identificación no distingue la copia de archivo disponible procedente del nodo destinatario procedente de la copia de archivo disponible procedente del nodo de origen.
8. El procedimiento de acuerdo con la reivindicación 1, en el que determinar en el nodo destinatario si recuperar el archivo poseído por el nodo de origen procedente del nodo vecino en base a los metadatos comprende así mismo determinar en base a los metadatos que existe un archivo local en el nodo destinatario que se corresponde con el archivo poseído por el nodo de origen y, de esta forma, determinar no recuperar el archivo del nodo vecino.
9. El procedimiento de acuerdo con la reivindicación 3, en el que el archivo poseído por el nodo de origen es un archivo audio.
10. El procedimiento de acuerdo con la reivindicación 9, en el que la prioridad del archivo se determina en base al nivel del archivo de una lista de reproducción audio, en el que un nivel de reproducción en curso de la lista de reproducción está asociado con una prioridad más alta que un nivel de la lista de reproducción que no está en curso de reproducción.
11. Medio legible por computadora que tiene en él unas instrucciones ejecutables por computadora para llevar a cabo el procedimiento de acuerdo con la reivindicación 1.
12. Procedimiento para transferir archivos entre nodos en una red de par a par que tiene una pluralidad de nodos que incluyen un nodo de origen, un nodo destinatario y un primero y un segundo nodos vecinos, en el que el primer y segundo nodos vecinos están directamente conectados al nodo destinatario, comprendiendo el procedimiento:
recibir en el nodo destinatario procedente del primer nodo vecino una notificación de que el primer nodo vecino puede suministrar un primer archivo, en el que el nodo destinatario posee unos primeros metadatos asociados con el primer archivo, comprendiendo los primeros metadatos una primera prioridad;
recibir en el nodo destinatario una solicitud procedente del segundo nodo vecino para subir un segundo archivo desde el nodo destinatario hasta el segundo nodo vecino, en el que el nodo destinatario posee unos segundos metadatos asociados con el segundo archivo, comprendiendo los segundos metadatos una segunda prioridad;
determinar cuál de las primera y segunda prioridades se corresponde con un nivel de prioridad más alto; y
recuperar el primer archivo desde el primer archivo vecino si la primera prioridad se corresponde con un nivel de prioridad más alto que el de la segunda prioridad, y si no subir el segundo archivo hasta el segundo nodo vecino.
13. El procedimiento de acuerdo con la reivindicación 12, comprendiendo así mismo difundir una primera notificación de que el nodo destinatario puede suministrar el primer archivo una vez que el nodo destinatario ha empezado a recuperar el primer archivo, en el que la primera notificación comprende un primer identificador de generación en el que el primer identificador de generación distingue una primera copia de archivo disponible procedente del nodo destinatario de una primera copia disponible procedente del primer nodo vecino.
14. El procedimiento de acuerdo con la reivindicación 13, en el que la primera copia de archivo disponible procedente del primer nodo vecino está asociada con un segundo identificador de generación, en el que el segundo identificador de generación distingue la primera copia de archivo disponible procedente del primer nodo vecino de una primera copia de archivo disponible procedente del nodo de origen.
15. El procedimiento de acuerdo con la reivindicación 13, comprendiendo así mismo difundir una segunda notificación de que el nodo destinatario puede suministrar el primer archivo una vez que el nodo destinatario ha terminado de recibir el primer archivo, en el que la segunda notificación comprende un segundo identificador de generación, en el que el segundo identificador de generación no distingue la primera copia de archivo disponible procedente del nodo destinatario de la primera copia de archivo disponible procedente del primer nodo vecino.
16. El procedimiento de acuerdo con la reivindicación 15, en el que el primer y segundo archivos son archivos audio.
17. El procedimiento de acuerdo con la reivindicación 9, en el que la primera y segunda prioridades están basadas en los niveles de los respectivos archivos en una lista de reproducción audio, en el que un nivel de reproducción en curso de la lista de reproducción está asociado con una prioridad más alta que un nivel de la lista de reproducción que no está en curso de reproducción.
18. Medio legible por computadora que tiene en él unas instrucciones ejecutables por computadora para llevar a cabo el procedimiento de acuerdo con la reivindicación 12.
19. Procedimiento para transferir archivos entre nodos en una red de par a par que tiene una pluralidad de nodos que incluyen un nodo destinatario y al menos un primero y un segundo nodos vecinos, en el que los al menos primero y segundo nodos vecinos están directamente conectados al nodo destinatario, comprendiendo el procedimiento:
solicitar por el nodo destinatario un archivo procedente de un nodo de suministro;
recibir en el nodo destinatario procedente del nodo de suministro una parte del archivo solicitado que tiene un primer identificador de generación y asignar a la parte del archivo solicitado un segundo identificador de generación que es mayor que el primer identificador de generación;
recibir en el nodo destinatario procedente del primer nodo vecino una primera notificación de que el primer nodo vecino puede suministrar el archivo solicitado, en el que la primera notificación comprende un primer identificador de generación de copia de vecino;
recibir en el nodo destinatario procedente del segundo nodo vecino una segunda notificación de que el segundo nodo vecino puede suministrar el archivo solicitado, en el que la segunda notificación comprende un segundo identificador de generador de copia de vecino; y
determinar quien entre el primer nodo vecino y el segundo nodo vecino debe recuperar una parte restante del archivo solicitado en base a los primero y segundo identificadores de generación de copia de vecino.
20. Un medio legible por computadora que tiene en él unas instrucciones ejecutables por computadora para llevar a cabo el procedimiento de acuerdo con la reivindicación 19.
ES03026736T 2002-12-02 2003-11-21 Procedimiento de difusion de contenidos de par a par. Expired - Lifetime ES2265549T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/307,752 US20040107242A1 (en) 2002-12-02 2002-12-02 Peer-to-peer content broadcast transfer mechanism
US307752 2002-12-02

Publications (1)

Publication Number Publication Date
ES2265549T3 true ES2265549T3 (es) 2007-02-16

Family

ID=32312207

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03026736T Expired - Lifetime ES2265549T3 (es) 2002-12-02 2003-11-21 Procedimiento de difusion de contenidos de par a par.

Country Status (18)

Country Link
US (1) US20040107242A1 (es)
EP (1) EP1427170B1 (es)
JP (1) JP2004185618A (es)
KR (1) KR20040048363A (es)
CN (1) CN100364264C (es)
AT (1) ATE330409T1 (es)
AU (1) AU2003262470B2 (es)
BR (1) BR0305326A (es)
CA (1) CA2450059A1 (es)
DE (1) DE60306084T2 (es)
DK (1) DK1427170T3 (es)
ES (1) ES2265549T3 (es)
HK (1) HK1066951A1 (es)
MX (1) MXPA03010965A (es)
PL (1) PL363796A1 (es)
RU (1) RU2343536C2 (es)
TW (1) TW200420068A (es)
ZA (1) ZA200309086B (es)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002039A1 (en) 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
EP1510031A4 (en) 2002-05-06 2009-02-04 Syncronation Inc LOCALIZED AUDIO NETWORKS AND ASSOCIATED DIGITAL TOOLS
DE10255074A1 (de) * 2002-11-26 2004-06-03 Bayerische Motoren Werke Ag Riementrieb für Hilfsaggregate einer Brennkraftmaschine
EP1582051B1 (en) 2002-12-20 2018-11-21 Avaya Canada Corp. Voice mail system for packet switched networks
US7398307B2 (en) * 2003-04-30 2008-07-08 Hewlett-Packard Development Company, L.P. Method and system for managing a network
US20040243672A1 (en) * 2003-05-27 2004-12-02 Outi Markki System and method for user interaction in a peer-to-peer environment
US20040267697A1 (en) * 2003-06-25 2004-12-30 Javad Hamidi File storage network
US20050171954A1 (en) * 2004-01-29 2005-08-04 Yahoo! Inc. Selective electronic messaging within an online social network for SPAM detection
US7885901B2 (en) * 2004-01-29 2011-02-08 Yahoo! Inc. Method and system for seeding online social network contacts
US7269590B2 (en) * 2004-01-29 2007-09-11 Yahoo! Inc. Method and system for customizing views of information associated with a social network user
US8612359B2 (en) * 2004-01-29 2013-12-17 Yahoo! Inc. Method and system for sharing portal subscriber information in an online social network
US7707122B2 (en) * 2004-01-29 2010-04-27 Yahoo ! Inc. System and method of information filtering using measures of affinity of a relationship
US8359349B2 (en) * 2004-03-18 2013-01-22 Nokia Corporation System and associated terminal, method and computer program product for uploading content
US7581158B2 (en) * 2004-03-22 2009-08-25 Codemate A/S Distribution method, preferably applied in a streaming system
US8688803B2 (en) * 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US7620685B2 (en) * 2004-04-21 2009-11-17 Microsoft Corporation Smart shares and transports
GB2413407B (en) * 2004-04-22 2007-11-07 Ibm Method and system for software or data distribution
US20050246636A1 (en) * 2004-05-01 2005-11-03 Microsoft Corporation System and method for a user interface that provides contact-based sharing of resources
US8028038B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Obtaining a playlist based on user profile matching
US8028323B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Method and system for employing a first device to direct a networked audio device to obtain a media item
US20050257205A1 (en) * 2004-05-13 2005-11-17 Microsoft Corporation Method and system for dynamic software updates
US8140849B2 (en) 2004-07-02 2012-03-20 Microsoft Corporation Security for network coding file distribution
US7756051B2 (en) 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
US8316088B2 (en) * 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
CA2573214C (en) * 2004-07-09 2013-06-11 Codemate Aps Peer of a peer-to-peer network and such network
GB0420180D0 (en) * 2004-09-10 2004-10-13 Tao Group Ltd Extendible media content rendering system
US7711835B2 (en) * 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
CA2581199C (en) * 2004-09-30 2013-09-24 Avaya Canada Corp. System and methods for announcing and locating services in a distributed peer-to-peer network
US7796520B2 (en) 2004-09-30 2010-09-14 Avaya Canada Corp. System and methods for announcing and locating services in a distributed peer-to-peer network
US8099482B2 (en) 2004-10-01 2012-01-17 E-Cast Inc. Prioritized content download for an entertainment device
US20060095582A1 (en) * 2004-10-29 2006-05-04 Narasimhan Nitya Device and method for transferring apportioned data in a mobile ad hoc network
EP1681829A1 (en) * 2005-01-12 2006-07-19 Deutsche Thomson-Brandt Gmbh Method for assigning a priority to a data transfer in a network and network node using the method
US9176955B2 (en) * 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US8904463B2 (en) * 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US20080022343A1 (en) * 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US8219635B2 (en) * 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
JP4705795B2 (ja) * 2005-03-31 2011-06-22 学校法人早稲田大学 データ共用プログラム、データ共用システム用のコンピュータ及びデータ共用方法
US20060253807A1 (en) * 2005-04-05 2006-11-09 Hirokazu So Recording medium and data processing device
JP4707137B2 (ja) * 2005-04-19 2011-06-22 株式会社日立ソリューションズ データ通信方法およびシステム並びに装置
US20060265396A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US8099511B1 (en) * 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
JP4707477B2 (ja) * 2005-06-23 2011-06-22 富士通株式会社 ファイル共有プログラムおよびファイル共有装置
JP4747733B2 (ja) * 2005-08-22 2011-08-17 ブラザー工業株式会社 ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
KR100678957B1 (ko) 2005-08-31 2007-02-06 삼성전자주식회사 네트워크 상에서 존재하는 네트워크 장치들간의 멀티미디어데이터를 공유하는 장치 및 그 방법
JP4846318B2 (ja) * 2005-09-26 2011-12-28 シャープ株式会社 通信プログラム、記録媒体、通信方法および通信端末装置
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US7761503B2 (en) * 2006-01-06 2010-07-20 Microsoft Corporation Peer distribution point feature for system management server
JP4846370B2 (ja) * 2006-01-24 2011-12-28 シャープ株式会社 通信プログラム、記録媒体、通信方法および通信端末装置
US8904456B2 (en) 2006-02-13 2014-12-02 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
GB0607294D0 (en) * 2006-04-11 2006-05-24 Nokia Corp A node
US7944832B2 (en) * 2006-04-21 2011-05-17 Yongmin Zhang Method and device for realizing content flowing on P2P network
JP5124733B2 (ja) * 2006-04-25 2013-01-23 キヤノンItソリューションズ株式会社 サーバ装置および情報共有システムおよびプログラムおよび記録媒体
CN100433657C (zh) * 2006-05-11 2008-11-12 蓝汛网络科技(北京)有限公司 适用于大规模流媒体直播系统的对等网络成员管理方法
US7945689B2 (en) * 2007-03-23 2011-05-17 Sony Corporation Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model
ES2377764T3 (es) * 2006-06-13 2012-03-30 Microsoft Corporation Sistema de distribución de ficheros
US8887040B2 (en) * 2006-08-10 2014-11-11 Qualcomm Incorporated System and method for media content delivery
FR2904905A1 (fr) * 2006-08-11 2008-02-15 France Telecom Procedes et systemes d'emission et de reception d'un flux de donnees en fonction de contraintes de qualite de service
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
US20100095009A1 (en) * 2006-10-02 2010-04-15 Nokia Corporation Method, System, and Devices for Network Sharing or Searching Of Resources
US8363102B1 (en) * 2006-10-13 2013-01-29 L-3 Communications Mobile-Vision, Inc. Dynamically load balancing date transmission using one or more access points
US7958117B2 (en) * 2006-11-17 2011-06-07 Yahoo! Inc. Initial impression analysis tool for an online dating service
EP1931108B1 (en) * 2006-12-08 2011-02-09 Deutsche Telekom AG Method and system for peer-to-peer content dissemination
EP1936497A3 (en) * 2006-12-20 2009-04-08 NCR Corporation Automated wide area software distribution with reduced network bandwidth requirements
CN101227489B (zh) * 2007-01-18 2010-10-13 中国移动通信集团公司 网络存储数据的共享方法及共享系统
GB0703974D0 (en) * 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
US8125988B1 (en) * 2007-06-04 2012-02-28 Rangecast Technologies Llc Network audio terminal and method
US8370754B2 (en) * 2007-09-04 2013-02-05 Apple Inc. Method and apparatus for providing a user with dynamic sync status
CN101471861B (zh) * 2007-12-27 2012-11-07 华为技术有限公司 提高对等叠加网络服务质量的方法、装置以及对等节点
US10326812B2 (en) 2008-01-16 2019-06-18 Qualcomm Incorporated Data repurposing
US8522231B2 (en) 2008-01-30 2013-08-27 International Business Machines Corporation Updating a plurality of computers
US8744976B2 (en) * 2008-04-28 2014-06-03 Yahoo! Inc. Discovery of friends using social network graph properties
CN101465824B (zh) 2008-12-29 2012-05-16 腾讯科技(深圳)有限公司 即时通信文件多源传输系统及方法
JP5278059B2 (ja) * 2009-03-13 2013-09-04 ソニー株式会社 情報処理装置及び方法、プログラム、並びに情報処理システム
US20100235878A1 (en) 2009-03-13 2010-09-16 Creative Technology Ltd. Method and system for file distribution
DE102009002007B3 (de) * 2009-03-31 2010-07-01 Robert Bosch Gmbh Netzwerkcontroller in einem Netzwerk, Netzwerk und Routingverfahren für Nachrichten in einem Netzwerk
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
CN101674330A (zh) * 2009-10-09 2010-03-17 中兴通讯股份有限公司 业务交互方法及装置
US20110314070A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Optimization of storage and transmission of data
CN102065289B (zh) * 2010-09-09 2012-10-24 西安电子科技大学 基于网络编码的可靠性视频传输方法及装置
US8667057B1 (en) 2010-10-01 2014-03-04 Google Inc. Method and system for delivering object update messages including payloads
US9064278B2 (en) * 2010-12-30 2015-06-23 Futurewei Technologies, Inc. System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment
JP5857451B2 (ja) * 2011-06-03 2016-02-10 富士通株式会社 配信方法及び配信システム
CN103095765B (zh) * 2011-11-03 2015-06-17 陈璧超 对等通信网络及其分发数据内容的方法、通信节点
US9800423B1 (en) 2012-05-14 2017-10-24 Crimson Corporation Determining the status of a node based on a distributed system
US9319474B2 (en) * 2012-12-21 2016-04-19 Qualcomm Incorporated Method and apparatus for content delivery over a broadcast network
US10133754B2 (en) * 2013-02-10 2018-11-20 Qualcomm Incorporated Peer-to-peer picture sharing using custom based rules for minimal power consumption and better user experience
US9020469B2 (en) 2013-06-04 2015-04-28 Rangecast Technologies, Llc Network audio distribution system and method
US10038566B1 (en) 2013-10-23 2018-07-31 Ivanti, Inc. Systems and methods for multicast message routing
US9124507B1 (en) 2014-04-10 2015-09-01 Level 3 Communications, Llc Proxy of routing protocols to redundant controllers
US10075385B1 (en) 2014-07-16 2018-09-11 Ivanti, Inc. Systems and methods for discovering and downloading configuration files from peer nodes
US10834150B1 (en) * 2014-12-26 2020-11-10 Ivanti, Inc. System and methods for self-organizing multicast
US10180845B1 (en) * 2015-11-13 2019-01-15 Ivanti, Inc. System and methods for network booting
US10116526B2 (en) 2016-05-13 2018-10-30 Ivanti, Inc. Systems and methods for providing a self-electing service
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file
CN111866133B (zh) * 2020-07-20 2023-04-07 成都民航空管科技发展有限公司 一种多源大批量客户端数据同步方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948070A (en) * 1995-10-31 1999-09-07 Nec Corporation File transfer systems, file transfer methods and storage media for storing file transfer programs
US5802310A (en) * 1996-05-30 1998-09-01 International Business Machines Corporation Systems and methods for data channel queue control in a communications network
US5884031A (en) * 1996-10-01 1999-03-16 Pipe Dream, Inc. Method for connecting client systems into a broadcast network
US5928331A (en) * 1997-10-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Distributed internet protocol-based real-time multimedia streaming architecture
EP0993163A1 (en) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
US6640241B1 (en) * 1999-07-19 2003-10-28 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager
US6366907B1 (en) * 1999-12-15 2002-04-02 Napster, Inc. Real-time search engine
US6970937B1 (en) * 2000-06-15 2005-11-29 Abacast, Inc. User-relayed data broadcasting
US6731605B1 (en) * 2000-06-19 2004-05-04 Sharp Laboratories Of America, Inc. Prioritized optimal server side bandwidth allocation in a multimedia session with push and pull sources
US6505200B1 (en) * 2000-07-06 2003-01-07 International Business Machines Corporation Application-independent data synchronization technique
US6665867B1 (en) * 2000-07-06 2003-12-16 International Business Machines Corporation Self-propagating software objects and applications
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
WO2002051057A2 (en) * 2000-12-21 2002-06-27 Aspsecure Corporation Methods for rights enabled peer-to-peer networking
US7275102B2 (en) * 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
US20020168082A1 (en) * 2001-03-07 2002-11-14 Ravi Razdan Real-time, distributed, transactional, hybrid watermarking method to provide trace-ability and copyright protection of digital content in peer-to-peer networks
US7047406B2 (en) * 2001-03-21 2006-05-16 Qurlo Holdings, Inc. Method and system for providing a secure peer-to-peer file delivery network
US20020143959A1 (en) * 2001-04-03 2002-10-03 David El-Baze Method and apparatus for interactive direct peer-to-peer multimedia streaming
US7356487B2 (en) * 2001-06-14 2008-04-08 Qurio Holdings, Inc. Efficient transportation of digital files in a peer-to-peer file delivery network
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7584208B2 (en) * 2002-11-20 2009-09-01 Radar Networks, Inc. Methods and systems for managing offers and requests in a network
US7398261B2 (en) * 2002-11-20 2008-07-08 Radar Networks, Inc. Method and system for managing and tracking semantic objects
US7640267B2 (en) * 2002-11-20 2009-12-29 Radar Networks, Inc. Methods and systems for managing entities in a computing device using semantic objects
US20040260701A1 (en) * 2003-05-27 2004-12-23 Juha Lehikoinen System and method for weblog and sharing in a peer-to-peer environment
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network

Also Published As

Publication number Publication date
ZA200309086B (en) 2004-07-22
KR20040048363A (ko) 2004-06-09
BR0305326A (pt) 2004-08-31
CA2450059A1 (en) 2004-06-02
CN100364264C (zh) 2008-01-23
EP1427170B1 (en) 2006-06-14
TW200420068A (en) 2004-10-01
DE60306084T2 (de) 2006-10-19
DE60306084D1 (de) 2006-07-27
CN1514578A (zh) 2004-07-21
EP1427170A2 (en) 2004-06-09
HK1066951A1 (en) 2005-04-01
MXPA03010965A (es) 2004-09-10
RU2003134811A (ru) 2005-05-27
EP1427170A3 (en) 2004-10-27
PL363796A1 (en) 2004-06-14
AU2003262470A1 (en) 2004-06-17
US20040107242A1 (en) 2004-06-03
JP2004185618A (ja) 2004-07-02
AU2003262470B2 (en) 2009-07-02
ATE330409T1 (de) 2006-07-15
RU2343536C2 (ru) 2009-01-10
DK1427170T3 (da) 2006-10-16

Similar Documents

Publication Publication Date Title
ES2265549T3 (es) Procedimiento de difusion de contenidos de par a par.
JP5580302B2 (ja) ピアツーピアネットワークのための放送シーディング
JP6937918B2 (ja) ビデオライブブロードキャスト方法及び装置
ES2429222B1 (es) Método y nodo de extremo para distribuir flujo continuo de contenido en tiempo real en una red de distribución de contenido
CN102571930B (zh) 利用动态清单的分布式流畅的流发送
US20080016201A1 (en) Methods and apparatus for transferring data
CN102196008A (zh) 点对点下载方法、视频设备和内容发送方法
ES2430345T3 (es) Métodos y disposiciones de priorización en una red par a par
US8219618B2 (en) Information communication system, information communication method, and recording medium having information communication program stored thereon
WO2008041421A1 (fr) Système et procédé de distribution de contenu, terminal dans le système et support d'enregistrement contenant son programme
CN104115135B (zh) 信息处理系统和内容下载方法
WO2010127538A1 (zh) 实现媒体内容共享的方法及系统
JPWO2002082817A1 (ja) 映像配信システムおよび映像配信方法
WO2006059476A1 (ja) データ共有システム、及び複製コンテンツデータ保存制御装置等
Chen et al. What a juke! A collaborative music sharing system
US8655981B2 (en) Information communication system, information communication method, and recording medium having information communication program stored thereon
WO2024082688A1 (zh) 礼物特效资源播放方法及装置
JP2010258629A (ja) 管理装置、管理方法、およびプログラム
JP2007179487A (ja) コンテンツ配信システム、ソフトウェア更新方法、端末装置及びプログラム
JP5353567B2 (ja) 情報処理システム、情報処理装置、ノード装置及びプログラム並びに情報処理方法
US20100057748A1 (en) Method and Apparatus for Parameterized Promotion and Delivery of Data
JP5206719B2 (ja) カラオケネットワークシステム及び集中管理装置
TWI405440B (zh) 同儕資料傳輸的排程方法及其節點與系統
JP2008085678A (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム
JP2009200725A (ja) 情報配信システム及び同システムにおける階層構造の形成方法及びプログラム