BRPI0614925B1 - Método de armazenamento em cache e compartilhamento de arquivos - Google Patents

Método de armazenamento em cache e compartilhamento de arquivos Download PDF

Info

Publication number
BRPI0614925B1
BRPI0614925B1 BRPI0614925-1A BRPI0614925A BRPI0614925B1 BR PI0614925 B1 BRPI0614925 B1 BR PI0614925B1 BR PI0614925 A BRPI0614925 A BR PI0614925A BR PI0614925 B1 BRPI0614925 B1 BR PI0614925B1
Authority
BR
Brazil
Prior art keywords
file
pairs
potential
list
responses
Prior art date
Application number
BRPI0614925-1A
Other languages
English (en)
Inventor
M. Hester Anna
Harder Barbara
F. Reus Edward
S. Roberts Jeffrey
Cao Kancheng
Zoran Mike
Mahankali Narayana
Original Assignee
Microsoft Technology Licensing, Llc
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 Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BRPI0614925A2 publication Critical patent/BRPI0614925A2/pt
Publication of BRPI0614925B1 publication Critical patent/BRPI0614925B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate 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/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

método de armazenamento em cache e compartilhamento de arquivos. armazenamento em cache distribuído e download de arquivo. um método está descrito que inclui construir uma lista de pares compreendendo uma listagem de potenciais servidores pares dentre um ou mais computadores de rede. a lista de pares inclui não mais do que um número predeterminado de potenciais servidores pares. potenciais servidores pares na lista de pares são consultados para um arquivo ou parte de um arquivo. uma mensagem proveniente de um servidor par na lista de pares é recebida indicando que o servidor par tem o arquivo ou parte de um arquivo disponível para download. o sistema de computador realiza download do arquivo ou parte de um arquivo do servidor par.

Description

(54) Título: MÉTODO DE ARMAZENAMENTO EM CACHE E COMPARTILHAMENTO DE ARQUIVOS (51) Int.CI.: G06F 15/16; G06F 9/445 (30) Prioridade Unionista: 30/08/2005 US 11/215,621 (73) Titular(es): MICROSOFT TECHNOLOGY LICENSING, LLC (72) Inventor(es): ΑΝΝΑ M. HESTER; BARBARA HARDER; EDWARD F. REUS; JEFFREY S. ROBERTS; KANCHENG CAO; MIKE ZORAN; NARAYANA MAHANKALI ia
Ί -7 'V
Φ
MÉTODO DE ARMAZENAMENTO EM CACHE E
COMPARTILHAMENTO DE ARQUIVOS
ANTECEDENTES
Computação de rede permite que computadores solicitem e recebam software e conteúdo de arquivo de servidores para instalação e/ou armazenamento nos computadores. Conteúdo de arquivo pode incluir, por exemplo, arquivos de texto, arquivos de video, arquivos de dados, arquivos de imagem, etc. O software pode ser solicitado e sofrer download para diversos propósitos incluindo atualizar software de sistema, atualizar software de aplicação e atualizar arquivos de dados . Por exemplo, atualizações de segurança podem sofrer download para atualizar um sistema de operação para impedir ou neutralizar ataques em um sistema de computador. Adicionalmente, software pode sofrer download para instalar novas aplicações em um computador. Em um sistema exemplar, software pode sofrer download em plano de fundo de maneira tal que o software pode sofrer download enquanto um computador e usuário de computador executam outras tarefas. Um serviço exemplar com esta funcionalidade é o Serviço de Transferência Inteligente de Plano de Fundo (BITS).
Freqüentemente, quando software é publicado e fica disponível para download a partir de um servidor, existem muitos computadores na rede que tentam obter o software simultaneamente ou dentro de um período de tempo muito pequeno. Por exemplo, quando o software é uma atualização de segurança, existe um desejo para entrega do software para tantos computadores quanto possível em um tempo tão pequeno
Figure BRPI0614925B1_D0001
quanto possível para impedir ataques mal-intenciorados nos computadores ou na rede. Quando o software é uma nova aplicação pretendida para distribuição de sistema amplo em um campus de corporação, pode existir um desejo para distribuição do sistema amplo de software em um pequeno período de tempo. Quando o software é uma liberação altamente esperada, um grande número de usuários pode tentar realizar download do software em um esforço para ser o primeiro entre todos a usar o software. Distribuir o software em uma grande escala pode exigir grandes quantidades de servidor e capacidade de rede. Tais downloads em grande escala podem ser especialmente desagradáveis em um ambiente de rede onde diversas filiais se conectam a um aparelho de interconexão de empresa em matriz de empresa. Neste exemplo, quando software é distribuído a partir do aparelho de interconexão de empresa, a conexão de rede entre o aparelho de interconexão de empresa e uma filial pode limitar o número de computadores que podem ser atualizados em um tempo particular, mesmo quando um servidor no aparelho de interconexão de empresa tem capacidade suficiente para fornecer software para muitos ou todos os computadores na filial.
Existem diversos métodos que têm sido usados para distribuir a carga de trabalho para downloads em grande escala. Por exemplo, em um ambiente de corporação, distribuição de novo software somente pode ser realizada pela distribuição do software para um número limitado de computadores na rede em um dado tempo. Alternativamente, proxies de armazenamento em cache podem ser colocados dentro da rede para . gt·· **' Αχ '7 distribuir ο software para um subconjunto dos computadores na rede. Ambas as soluções exigem planejamento cuidadoso para ser implementadas. Além do mais, no caso de proxies de armazenamento em cache, hardware de computador adicional é acrescentado à rede aumentando o custo da rede.
Embora várias questões tenham sido identificadas nestes antecedentes, a matéria em questão reivindicada abaixo não aborda necessariamente nenhuma ou todas as questões identificadas. Estes antecedentes servem simplesmente para fornecer fundamentos em um ambiente exemplar onde as modalidades descritas neste documento podem ser praticadas.
SUMÁRIO
Uma modalidade descrita neste documento inclui um método de efetuar armazenamento em cache e compartilhar ar15 quivos. 0 método pode ser praticado, por exemplo, em um sistema de computador em uma rede de computador incluindo um ou mais computadores de rede. O método inclui construir uma lista de pares incluindo uma listagem de potenciais servidores pares dentre os um ou mais computadores de rede. A lista de pares inclui não mais do que um número predeterminado de potenciais servidores pares. Potenciais servidores pares na lista de pares são consultados para um arquivo ou parte de um arquivo. Uma mensagem proveniente de um servidor par na lista de pares é recebida indicando que o servidor par tem o arquivo ou parte de um arquivo disponível para download. O sistema de computador realiza download do arquivo ou parte de um arquivo do servidor par.
Uma outra modalidade descrita neste documento
Figure BRPI0614925B1_D0002
Ο clui um método de efetuar armazenamento em cache e compartilhar arquivos. 0 método pode ser praticado, por exemplo, em um sistema de computador em uma rede de computador incluindo um ou mais computadores de rede. 0 método inclui enviar uma mensagem de que o sistema de computador está disponível como um par. 0 sistema de computador recebe uma solicitação para descobrir se o sistema de computador tem um arquivo ou parte de um arquivo. 0 sistema de computador envia uma mensagem de que o sistema de computador tem o arquivo ou parte de um arquivo. O envio da mensagem em que o sistema de computador tem o arquivo ou parte de um arquivo é executado com base em regras dinâmicas de agir para participar/agir para não participar. O sistema de computador recebe uma solicitação para realizar download do arquivo. O sistema de computador envia o arquivo para um sistema solicitante.
Uma outra modalidade descrita neste documento inclui um método de efetuar armazenamento em cache e compartilhar arquivos. 0 método pode ser praticado, por exemplo, em um sistema de computador em uma rede de computador incluindo um ou mais computadores de rede. 0 sistema de computador envia um sinal de broadcast para sistemas de computador em uma sub-rede para descobrir potenciais pares. 0 sistema de computador recebe um sinal de unicast, ou alternativamente um sinal de multicast proveniente de um dos sistemas de computador na sub-rede. O sistema de computador acrescenta o um dos sistemas de computador na sub-rede a uma lista de pares. A lista de pares inclui não mais do que um número predeter5
Ί J
Pjb:
X.
ζ-, '%..
ρ;
minado de pares. O sistema de computador envia um sinal de unicast para o um dos sistemas de computador na sub-rede para descobrir se o um dos sistemas de computador tem um arquivo ou parte de um arquivo disponível para download. 0 sistema de computador recebe um sinal de unicast proveniente do um dos sistemas de computador na sub-rede indicando que o um dos sistemas de computador na sub-rede tem o arquivo ou parte de um arquivo disponível para download. 0 sistema de computador realiza download do arquivo ou parte de um arqui10 vo do um dos sistemas de computador na sub-rede.
Este Sumário é fornecido para introduzir uma seleção de conceitos em uma forma simplificada, os quais estão descritos adicionalmente a seguir na descrição detalhada. Este Sumário não pretende identificar recursos chaves ou re15 cursos essenciais da matéria em questão reivindicada, nem ele é pretendido para ser usado como uma ajuda na determinação do escopo da matéria em questão reivindicada.
DESCRIÇÃO RESUMIDA DAS VÁRIAS VISTAS DOS DESENHOS
A fim de mostrar a maneira em que os recursos re20 latados anteriormente e outros são obtidos, será apresentada uma descrição mais particular com referência às modalidades específicas que estão ilustradas nos desenhos anexos. Com o entendimento de que estes desenhos representam somente modalidades típicas e não são, portanto, para ser considerados como limitando o escopo, as modalidades serão descritas e explicadas com especificidade e detalhe adicionais por meio do uso dos desenhos anexos, em que:
°Χ>
'*‘'<1^ -. çiV'·
Α Figura 1 ilustra um diagrama de blocos de uma rede de exemplo;
A Figura 2 mostra um fluxograma ilustrando um método para efetuar armazenamento em cache e compartilhar arquivos de um cliente em perspectiva; e
A Figura 3 mostra um fluxograma ilustrando um método para efetuar armazenamento em cache e compartilhar arquivos de um servidor par em perspectiva.
DESCRIÇÃO DETALHADA
Uma modalidade descrita neste documento inclui um sistema de distribuição de arquivo melhorado que leva em conta distribuição de arquivo a ser movido para longe de um servidor de arquivo centralizado. Neste exemplo, distribuição e armazenamento em cache de arquivo são deslocados para as bordas da rede. Isto ajuda a reduzir a carga em servidores de arquivo centralizados e a distribuir tráfego de rede através de uma rede tal como o oposto a ter o tráfego de rede concentrado em algumas conexões de rede centralizadas. Especificamente, em uma modalidade, armazenamento em cache e arquivos compartilhados de computadores usando um sistema não hierárquico. Um sistema de computador construirá primeiro uma lista de pares incluindo uma lista de potenciais servidores pares dentre um ou mais computadores de rede. Nesta modalidade, a lista de pares é limitada a um número predeterminado de pares. O sistema pode então autenticar os pares na lista de pares. Um sistema pode então consultar pares da lista de pares para descobrir pares que contenham um arquivo ou parte de um arquivo necessitado pelo sistema de computa7 '<?
dor. Se um dos pares na lista de pares responder indicando que ele tem o arquivo ou parte de um arquivo disponível, o arquivo ou parte de um arquivo pode sofre download do par assim indicando. Se nenhum dos pares não responder indicando que ele tem o arquivo ou parte de um arquivo, o sistema que solicita o arquivo pode realizar download do arquivo de um servidor de arquivo central e pode então indicar para outros sistemas de computador que ele tem o arquivo ou parte de um arquivo disponível para download. Na resposta para indicar que ele tem o arquivo ou parte de um arquivo disponível para download, outros sistemas de computador podem acrescentar o sistema de computador às suas listas de pares que incluem suas listas de potenciais servidores pares, tal como será descrito com mais detalhes a seguir. Notavelmente, outros sistemas pares podem acrescentar o sistema de computador consultante às suas listas de pares em resposta à consulta para descobrir pares que contenham um arquivo ou parte de um arquivo.
Sistemas de computador, em uma modalidade exemplar, podem criar grupos de pares a partir de computadores que não estejam interligados por um servidor ou aparelho de interconexão de empresa central. Por exemplo, grupos de pares podem ser formados nas filiais de uma rede de empresa, em computadores em um aparelho de interconexão ou roteador comum, para eliminar conexões de pares através de conexões caras, tais como conexões de modem a cabo e outras mais. Deste modo, menores quantidades de tráfego de rede e recursos de servidor são necessárias para distribuir arquivos pa-
Figure BRPI0614925B1_D0003
Figure BRPI0614925B1_D0004
ra um grupo de pares onde arquivos podem ser armazenados em cache e sofrer download. Deste modo, capacidades de processamento e de rede exigidas para distribuir software e atualizações são movidas de uma localização centralizada em uma rede para as bordas da rede a fim de distribuir mais uniformemente as exigências de computação e de rede.
Referindo-se agora à Figura 1, uma topologia exemplar 100 está ilustrada. A topologia 100 inclui os diversos sistemas de computador 102, 104, 106, 108 e 110. Os sistemas de computador 102-110 são interligados por meio de qualquer um dos diversos dispositivos de interligação. Por exemplo, os sistemas de computador 102-110 podem ser interligados por meio de conexões de rede tais como redes Ethernet estando de acordo com o IEEE 802.3, conexões Ethernet sem fio tais como aquelas estando de acordo com o IEEE 802.11, redes sem fio Blue-Tooth, conexões de comunicação inter-rede de discagem, conexões de modem a cabo e outras mais. Na modalidade mostrada, os sistemas de computador 102-110 são interligados para formar um grupo de pares 112. Neste exemplo, o grupo de pares 112 é um grupo de potenciais servidores pares para um sistema de computador tal como o sistema de computador portátil 106. Em uma modalidade, cada sistema de computador mantém uma lista de pares que inclui uma listagem de potenciais servidores pares dos quais um sistema de computador pode realizar download de um arquivo. A formação do grupo de pares será discutida com mais detalhes a seguir.
A Figura 1 ilustra adicionalmente que o grupo de pares 112 está conectado a um servidor de arquivo central
Figure BRPI0614925B1_D0005
Figure BRPI0614925B1_D0006
.1 , , , &
r,.„XÍ~
J.
'<•7 «pv?
114. Embora a conexão ao servidor de arqud vo central 114 esteja mostrada como uma única conexão, em modalidades alternativas, várias conexões podem ser usadas de maneira tal que cada um dos computadores 102-110 pode ter acesso ao servidor de arquivo central 114 ou em outras configurações. Por exemplo, o grupo de pares pode ser conectado em uma filial de uma sociedade anônima, onde a filial se conecta ao servidor de arquivo central 114 que está em um aparelho de interconexão de empresa. Várias outras interligações também podem ser implementadas.
No exemplo mostrado, o servidor de arquivo pode armazenar um arquivo 116 ou parte de um arquivo. O arquivo 116 pode ser, por exemplo, uma atualização de software, uma atualização de segurança para um sistema de operação, uma aplicação, um arquivo de dados ou outro software. O arquivo 116 pode sofrer download para um dos computadores tal como sistema de computador 108 ou empurrado para ele. O sistema de computador 108 pode então agir como um potencial servidor par com uma cópia com armazenamento em cache do arquivo 116. Os outros sistemas de computador 102, 104, 106 e 110 podem então solicitar o arquivo 116 a partir do potencial sistema de servidor par 108. Deste modo, o tráfego de rede ao longo da conexão 118 entre o servidor de arquivo e o grupo de pares 112 pode ser reduzido em algumas modalidades. Adicionalmente, o processamento pelo servidor de arquivo central 114 pode ser reduzido.
Tal como mencionado anteriormente, a Figura 1 ilustra que um dos sistemas de computador é um sistema de
4a P,-„
Figure BRPI0614925B1_D0007
% ‘ςϋ
- ο φ *”S' ο
computador portátil 106 e que o grupo de pares 1Ί2 está em uma lista de potenciais servidores pares mantida pelo sistema de computador portátil 106. Computadores de colo, e outros computadores portáteis incluindo dispositivos de mão, pdas, telefones celulares e outros mais, por sua natureza são portáteis e podem se encontrar fisicamente e de forma lógica em diferentes partes de uma rede. 0 computador portátil 106 pode ser, por exemplo, deslocado para uma localização tanto de forma lógica quanto fisicamente onde ele não é prático para o computador portátil 106 realizar download de arquivos do grupo de pares 112. Por exemplo, o computador portátil 106 pode ser deslocado de forma lógica para uma sub-rede diferente daquela do grupo de pares 112. Alternativamente, o computador portátil 106 pode ser deslocado fisicamente para uma localização que exija uma quantidade exagerada de tráfego de rede para o computador portátil 106 se comunicar com outros membros do grupo de pares 112. Na modalidade mostrada na Figura 1 o computador portátil 106 cria um outro grupo de pares, tal como o grupo de pares 120 mostrado na Figura 1. O portátil 106 pode manter informação a respeito do primeiro grupo de pares 112 e do segundo grupo de pares 120 de maneira tal que o portátil 106 pode receber arquivos quando ele está conectado ao primeiro grupo de pares 112 ou ao segundo grupo de pares 120 ou a qualquer outro grupo de pares do qual o portátil 106 tenha uma lista de pares .
Quando um sistema de computador no grupo de pares 112 recebe o arquivo 116, o sistema de computador deve de1 1 /1 ο:
terminar que o arquivo é o arquivo correto e que não corrompido. Determinar que o arquivo é o arquivo correto e não corrompido pode ser realizado, por exemplo, pela comparação de nomes de arquivo, tamanhos de arquivo, valores de dispersão, etc. Por exemplo, um sistema de computador pode ter recebido informação a respeito do arquivo incluindo nome de arquivo, tamanho de arquivo e um valor de dispersão do arquivo. Valores de dispersão são valores calculados usandose os dados no arquivo para gerar um valor de uma tal maneira que é extremamente improvável que alguns outros dados produzam o mesmo valor de dispersão. O sistema de computador pode determinar que o arquivo correto está sendo recebido pela comparação do nome de arquivo, tamanho de arquivo e/ou valor de dispersão. Além do mais, o valor de dispersão pode ser usado para assegurar que o arquivo não foi corrompido ou alterado maliciosamente.
Se um sistema de computador detectar que o arquivo correto não está disponível, que o arquivo foi corrompido, ou que o arquivo foi alterado maliciosamente, o sistema de computador pode então solicitar o arquivo 116 diretamente do servidor de arquivo central 114. Um sistema de computador solicitando diretamente o arquivo 116 do servidor de arquivo central 114 pode então se anunciar como um potencial sistema de armazenamento contendo o arquivo 116.
Notavelmente, em uma modalidade, o grupo de pares, tal como descrito anteriormente, é mantido e específico para cada sistema de computador. Assim, gerenciamento de grupo de pares é deslocado de uma localização central usando-se um está
R>
-v.A P
Γ ;5.
Q.
/v 'Vs - 'v sistema sem controle central. Isto elimina o único ponto de falha para a rede total. Expressado de modo diferente, a perda de uma lista de pares ou de um sistema com uma lista de pares não incapacitará o sistema total para distribuição e armazenamento em cache de arquivo, tal como pode ocorrer quando um único servidor centralizado é usado para gerenciar grupos de pares.
Referindo-se agora à Figura 2, um método 200 de efetuar armazenamento em cache e compartilhar arquivos está ilustrado. 0 método pode ser executado em um sistema de computador que está em uma rede de computador que inclua um ou mais computadores de rede.
A Figura 2 ilustra um procedimento de construção de uma lista de pares (procedimento 202). A lista de pares inclui uma listagem de potenciais servidores pares dentre um grupo de computadores de rede, tais como os sistemas de computador 102-110 ilustrados na Figura 1. A lista de pares pode ser de maneira tal que ela inclua não mais do que um número predeterminado de potenciais servidores pares. Por exemplo, a lista de pares pode ser projetada de maneira tal que não mais do que 100 potenciais servidores pares estejam incluídos na lista de pares. Adicionalmente, também é desejável que os sistemas de computador 102-110 em um grupo de pares estejam perto de uma perspectiva de comunicação interrede. Por exemplo, pode ser desejável que os sistemas de computador 102-110 no grupo de pares 112 estejam localizados na mesma filial de uma rede de empresa. Em uma modalidade alternativa, pode ser desejável que os sistemas de computa13 / V__~~ , Ί
Figure BRPI0614925B1_D0008
dor 102-110 em um qrupo de pares 112 estejam localizados em um aparelho de interconexão, roteador ou comutador comum. Em algumas modalidades alternativas pode ser desejável que nenhum dos pares não esteja interligado uns com os outros por meio de conexões caras, tais como aquelas entre conexões de modems a cabo ou de alto tráfego. Outras configurações próximas de forma lógica também podem ser implementadas. Por exemplo, em uma modalidade, o sistema de computador pode usar um método de sincronização para determinar a proximidade dos computadores. Existem diversos métodos que podem ser usados sozinhos ou em combinação para construção de uma lista de pares (202). Exemplos destes métodos serão discutidos agora neste documento.
Um método de construção de uma lista de pares (202) envolve enviar uma solicitação e receber respostas provenientes dos computadores. Para limitar o número de potenciais pares respondendo, a solicitação pode ser, por exemplo, broadcast ou multicast de sub-rede para obter respostas de uma única sub-rede. Entretanto, mesmo que somente computadores em uma única sub-rede respondam, o número de respostas pode ainda ser impressionante. Assim, para limitar adicionalmente o número de respostas, um sistema de computador enviando uma solicitação pode incluir na solicitação uma indicação do número de pares desejado. Potenciais pares po25 dem ser configurados para responder usando respostas de multicast depois de um pequeno intervalo aleatório e para escutar as respostas de multicast de outros computadores. Um potencial par não responderá se ele tiver detectado respostas
X *3 ΑΧ ι-Χ.
Figure BRPI0614925B1_D0009
provenientes dos outros potenciais pares que já satisfaçam à indicação do número de pares desejado. Em outras palavras, um potencial par não responderá se o número de pares desejado já tiver respondido.
Diversos métodos podem ser usados para gerar o pequeno intervalo aleatório. Por exemplo, na modalidade mais simples, uma distribuição aleatória uniforme pode ser usada por cada potencial par para determinar por quanto tempo esperar antes de responder à solicitação. Um método alternativo inclui usar uma distribuição não linear onde menos potenciais pares respondem no começo e mais pares respondem à medida que o retardo se torna maior. Por exemplo, um método de integrar o retardo não linear pode incluir gerar um número aleatório entre 0 e 1. O retardo pode então ser definido pela seguinte equação:
RETARDO - MAX_DELAY*Log(C*X+1)/Log(C+l)
Onde RETARDO é a espera antes de responder, MAX_DELAY é a quantidade máxima de tempo dado para receber respostas, X é o número aleatório e C é um número arbitrário tal como 256. Outros retardos aleatórios não lineares também podem ser usados.
Em um outro exemplo, sistemas podem responder sem um retardo, e um sistema de computador pode acrescentar pares a uma lista de pares até que ele tenha pares suficientes para preencher a lista de pares. Neste exemplo, os pares respondendo mais rapidamente podem ser aqueles mais próximos de forma lógica do sistema de computador enviando a solicitação. Neste exemplo, um sistema de computador pode acompa15 ,λ 4a
Ω'' '%·
- X Ο /V nhar potenciais pares para ver quão rapidamente eles respondem à solicitação. Somente os potenciais pares respondendo mais rapidamente serão acrescentados à lista de pares. Assim, um sistema de computador pode ser capaz de selecionar os pares mais apropriados para um grupo de pares pela aceitação daqueles que estão mais próximos de forma lógica ou que são capazes de responder mais rapidamente.
A solicitação também pode incluir um grupo tal como um grupo de confiança. Potenciais pares ignorarão solicitações relacionadas a outros grupos de confiança. Mesmo quando grupos de confiança são usados na solicitação pode ainda existir uma necessidade de autenticar um par, tal como descrito com mais detalhes a seguir. 0 grupo de confiança serve como um método de eliminar respostas de outros grupos de confiança dentro da mesma sub-rede de maneira que solicitações se sobrepondo dentro de uma sub-rede não interfiram umas com as outras. Em uma modalidade, a solicitação pode incluir uma identificação de conteúdo desejado pelo sistema de computador. Tal como descrito a seguir, potenciais pares respondem se eles tiverem o conteúdo na identificação e satisfizerem às outras restrições de agir para participar. Isto torna o conteúdo procurado mais eficiente por causa de uma única solicitação de conteúdo alcançar todos os potenciais hospedeiros. Esta modalidade pode ser menos privada por causa de hospedeiros não autenticados poderem ver qual conteúdo está sendo solicitado. Solicitação de uma dispersão unidirecional do URL, ou de uma dispersão de conteúdo, pode ser usada para aprimorar privacidade nesta modalidade.
»*-» ο f-f.
te.
fl
- rt
Ern um nutro exemplo, construir uma lista de pares pode incluir um sistema de computador recebendo um autoanúncio com um pacote de multicast de um potencial par. 0 auto-anúncio inclui uma indicação de que o potencial par tem arquivos ou partes de arquivos que podem ser fornecidos para computadores na rede. Quando um anúncio como este é recebido, o sistema de computador pode acrescentar o potencial par à sua lista de pares. Os auto-anúncios podem ser feitos em uma modalidade alternativa em uma base regular. Em um exem10 pio, o anúncio pode ser feito uma vez em uma hora ou várias vezes durante um dia.
Sistemas de computador podem auto-anunciar quando eles têm arquivos para compartilhar e quando suas características de hardware, carga de processamento atual, ou ou15 tras características permitem que ele aja como um servidor par. Os sistemas de computador anunciando podem receber os arquivos 116 do servidor de arquivo central 114 ou de um outro par no grupo de pares 112. Sistemas de computador podem ter certos arquivos para os quais eles não auto-anunciarão.
Isto permite que os sistemas de computador protejam certos arquivos.
Em uma modalidade alternativa, um potencial par pode anunciar quando ele tiver sido acrescentado a uma rede tal como através de multicast. Um computador pode então a25 crescentar este novo computador à sua lista de pares se existir uma necessidade de pares na lista de pares. Em uma disposição similar, um sistema de computador pode acrescentar pares a uma lista de pares quando ele recebe outros ti17
7a ,ο ν·W
- u. σ>
pos de anúncios e respostas de mniticast. Por exemplo, um sistema de computador escutando respostas relacionadas à modalidade de resposta de tempo de retarde· aleatório anterior pode acrescentar quaisquer sistemas de computador que respondam à solicitação original à sua lista de pares. Igualmente, quase toda resposta ou anúncio pode ser usado para determinar quais computadores estão disponíveis como potenciais pares para uma lista de pares.
Computadores na lista de pares podem ser tanto validados quanto não validados. Sistemas de computador validados são aqueles que passaram por uma autenticação tal como delineado a seguir. Pares na lista de pares não necessitam ser validados imediatamente depois de serem acrescentados à lista de pares, mas em vez disso, eles podem ser validados em um momento próximo de consultar pares na lista de pares para um arquivo ou parte de um arquivo (procedimento 206) discutido com mais detalhes a seguir. Entretanto, uma vez que um par na lista de pares tenha sido validado, o sistema de computador e o par podem compartilhar uma chave de maneira tal que a validação não necessita ser executada para consultas de arquivo subsequentes.
Parte do processo de construir uma lista de pares pode incluir atualizar a lista de pares para remover entradas antiquadas ou para remover entradas que não são mais válidas. Por exemplo, um sistema de computador pode remover entradas da lista de pares depois de as entradas terem estado na lista de pares por um período de tempo predeterminado. Isto assegura que entradas velhas tenham uma vida útil limi25
Ty.,
Figure BRPI0614925B1_D0010
//7 tada. Em uma outra moda.] idade alternativa, entradas de par podem ser removidas em resposta a multicast emitido por um par quando o par deixa uma rede. Por exemplo, uma mensagem unidirecional de multicast Bye é enviada como um melhor esforço de notificação para outros pares quando um par está se preparando para deixar uma rede. Quando esta mensagem Bye é detectada por um sistema de computador, o par enviando a mensagem Bye pode ser removido da lista de pares. Mensagens Bye podem ser menos preferidas por causa de um computador mal-intencionado poder usar solicitações bye para fazer com que outros computadores sejam removidos das listas de pares e fazer, assim, com que mais computadores façam solicitações para o servidor de arquivo central. Em um outro exemplo, pares podem ser removidos da lista de pares quando uma tentativa é feita para consultar o par para arquivos e um erro é recebido indicando que o par não está mais na rede. Em uma modalidade, um sistema de computador pode descartar todas as entradas em uma lista de pares total quando diversas consultas para diferentes pares na lista de pares resultam em mensagens de erro. Isto pode ser uma indicação de que a parte da rede que o sistema de computador está tentando acessar não está mais disponível. Em uma outra modalidade, um par pode ser removido de uma lista de pares se a sua validação falhar. Isto será discutido com mais detalhes a seguir, mas em resumo, quando uma validação de par falha é uma indicação de que o par não é confiável. Em uma disposição similar, um par pode ser removido de uma lista de pares se arquivos recebidos do par falharem em certas veri19 α τη
----η φ ficações de segurança tais como comparações dispersões. Isto também será discutido com mais detalhes a seguir.
Quando um número suficiente de pares tiver sido removido da lista de pares, os procedimentos para construção de uma lista de pares descritos anteriormente podem ser repetidos. Notavelmente, os procedimentos descritos anteriormente podem ser usados sozinhos ou em combinação.
Sistemas de computador podem manter mais de uma lista de pares. Por exemplo, na Figura 1, um exemplo de um sistema de computador portátil 106 está ilustrado. Tal como explicado, o sistema de computador portátil 106 pode ser relocado fisicamente e ou de forma lógica. Em uma modalidade, o computador portátil 106 pode ser relocado de forma lógica de maneira tal que ele resida em uma sub-rede diferente daquela do primeiro grupo de pares 112. O sistema de computador portátil 106 pode detectar que ele se deslocou para uma nova sub-rede, e em resposta à detecção que ele se deslocou para uma nova sub-rede, o sistema de computador portátil 106 pode executar os procedimentos descritos anteriormente para construir uma lista de pares, para construir uma nova lista de pares para a nova sub-rede. Se o sistema de computador portátil 106 for regularmente um membro de certas sub-redes, ele pode manter a lista de pares para aquelas sub-redes a fim de evitar a necessidade de executar os procedimentos para construir uma lista de pares cada vez que ele se conecta às sub-redes. O número de listas de pares diferentes que um sistema de computador mantém pode ser um número definido es25
Figure BRPI0614925B1_D0011
,νΛ'ύ' taticamente, ou aiternati vamente o número pode ser um número configurável de administrador de usuário ou de rede.
Notavelmente, podem existir situações onde um sistema de computador se desloca para uma nova sub-rede, mas não forma um novo grupo de pares. Por exemplo, se um computador portátil se deslocar para um café de Internet, ele provavelmente não formará um novo grupo de pares. Comunicação com pares disponíveis pode ser também arriscada para esta e outras situações.
Sistemas de computador também podem ser configurados para construir uma lista de pares quando eles são primeiramente acrescentados a uma rede. Isto pode ser feito por qualquer novo sistema de computador e não está limitado aos sistemas portáteis.
Referindo-se mais uma vez à Figura 2, está mostrado um procedimento de autenticar computadores na lista de pares (procedimento 204). Autenticar inclui validar que um par é uma máquina confiável. Em uma modalidade, um sistema de computador pode validar que um par é um membro de um gru20 po de segurança específico. A validação pode ser executada, por exemplo, pelo uso de um protocolo de maneira tal que tanto o sistema de computador quanto o par executam uma autenticação mútua. Deste modo, a identidade tanto do sistema de computador quanto do par são validadas para impedir que tanto o sistema de computador quanto o par da lista de pares engane o outro por acreditar que eles estão no mesmo grupo de segurança. Um protocolo para esta autenticação mútua pode , -V; ο.
· όλ
Figure BRPI0614925B1_D0012
ser ο Kerberos. Se uma validação de par falhar o par pode ser removido da lista de pares.
Uma vez que um par tenha sido validado, o sistema de computador e o par podem compartilhar uma chave de maneira tal que validações subsequentes não necessitam ser executadas antes da consulta subseqüente. A chave pode ter um período de término para tornar a validação eficiente de confiança. Um período de término como este pode ser, em um exemplo, um dia.
Uma vez que um par tenha sido validado, a Figura 2 ilustra adicionalmente um procedimento de consultar pares na lista de pares para um arquivo ou parte de um arquivo (procedimento 204). Consultar os pares na lista de pares, em uma modalidade exemplar, inclui enviar mensagens de unicast para cada um dos pares na lista de pares até que um dos pares responda que ele tem o arquivo ou parte de um arquivo procurado pelo sistema de computador. Deve-se notar que, tal como usado neste documento, unicast é uma consulta de rede para um computador específico. Unicasts descritas neste documento não exigem necessariamente o uso de um protocolo de datagrama, e podem usar outros protocolos tais como TCP e outros. Em uma modalidade alternativa, o sistema de computador pode enviar um conjunto sobreposto de mensagens de unicast. Por exemplo, o sistema de computador pode enviar mensagens de unicast para pares na lista de pares antes de receber respostas dos pares para os quais enviou anteriormente mensagens de unicast.
uLnX—-í ( -7 ' -O ·' idr» - V.··
X
A mensaqen enviada no procedimento de consultar pode incluir vários parâmetros para identificar o arquivo necessário pelo sistema de computador. Por exemplo, a mensagem pode incluir um ou mais de um nome de arquivo, tamanho de arquivo, data de criação do arquivo, e/ou uma dispersão do arquivo. Particularmente, pelo uso de uma dispersão do arquivo um sistema pode detectar que o arquivo correto está disponível. Usando uma dispersão, um sistema de computador pode ser capaz de detectar quando um arquivo disponível é o arquivo atualizado, não é um nome duplicado de um outro arquivo, e outras mais.
Depois de um sistema de computador ter consultado pares na lista de pares para um arquivo ou parte de um arquivo {procedimento 206), o método ilustrado na Figura 2 mostra um procedimento de receber uma mensagem de um servidor par na lista de pares de que o servidor par tem o arquivo ou parte de um arquivo disponível para download (procedimento 208) .
Durante a decisão de se um par agirá como um servidor par, o par pode tomar como referência várias regras de diretriz. Adicionalmente, mesmo quando um par tem um arquivo disponível, esse par pode escolher não agir como um servidor par de acordo com as regras de diretriz. Tais regras de diretriz podem considerar a energia de processamento do sistema de computador. Por exemplo, um poderoso computador de mesa ou de classe de servidor pode ter regras de diretriz que permitam a ele agir como um servidor par para mais pares e digamos, por exemplo, para um computador portátil tal como o .,Α *3
Figure BRPI0614925B1_D0013
sistema de computador portátil 106. Outras regras podem dizer respeito à quantidade de recursos de máquina disponíveis. Por exemplo, regras de diretriz podem restringir uma capacidade de sistemas de computador para agir como um servidor par quando mais de 10% dos recursos de sistemas de computador estão sendo usados. Os recursos de sistema podem ser uma medida da maior de a carga de CPU e a carga de entrada/saída de disco no sistema. Adicionalmente, um computador portátil pode tomar como referência uma diretriz que ajusta o número de pares em que o sistema de computadores portáteis 106 pode agir como um servidor par a ser baseado no estado de operação do sistema de computador portátil 106. Por exemplo, quando o sistema de computador portátil 106 é conectado a uma estação de encaixe, ele pode ser configurado para servir a mais pares do que quando não conectado a uma estação de encaixe. Adicionalmente, quando o sistema de computador portátil 106 é conectado por meio de uma conexão com fio, pode ser permitido a ele servir a mais pares do que quando o sistema de computador portátil 106 é conectado em um modo sem fio aos computadores pares. Também em um outro exemplo, o número de pares permitido para se conectar ao sistema de computador portátil 106 pode ser definido por uma diretriz relacionada ao nível de bateria. Por exemplo, se o portátil estiver executando com baterias e tiver menos de 50% da energia então o sistema de computador portátil 106 pode seguir uma diretriz que não admite nenhuma conexão de computador par adicional.
4
Ρ,
r.~ <>
Ç>>
Quando um par tiver determinado agir como nm servidor par, o servidor par envia uma mensagem de volta para o sistema de computador, a qual é recebida (procedimento 208) pelo sistema de computador.
Depois de um sistema de computador ter recebido uma mensagem de nm potencial servidor par na lista de pares indicando que o potencial servidor par tem o arquivo ou parte de um arquivo disponível para download, o sistema de computador realiza download do arquivo ou parte de um arquivo (procedimento 210). O download pode ocorrer em qualquer modo apropriado. Notavelmente, tal como aludido neste documento, um sistema de computador pode realizar download de uma parte de um arquivo como o oposto ao arquivo completo. Outras partes do arquivo podem ser obtidas de outros servidores pares.
Em alguns ambientes, isto pode ajudar a aumentar a taxa em que grandes arquivos podem sofrer download.
Em uma modalidade, o método 200 inclui validar adicionalmente o arquivo ou parte de um arquivo (procedimento 212). A validação verifica que o arquivo é o arquivo corre20 to, que o arquivo não foi alterado maliciosamente, e/ou que o arquivo não foi corrompido. Isto pode ser realizado, por exemplo, pelo cálculo de uma dispersão do arquivo ou de parte de um arquivo. Se o valor de dispersão calculado não casar com o valor de dispersão esperado, o sistema de computa25 dor descartará o arquivo ou parte de um arquivo. Adicionalmente o sistema de computador pode colocar o servidor par que forneceu o arquivo em uma lista de quarentena indicando que o servidor par é suspeito. Em uma modalidade alternati25
Figure BRPI0614925B1_D0014
va, o servidor par pode ser removido da lista de pares tctalmente. O sistema de computador pode então tentar obter o arquivo de um par diferente na lista de pares ou de um servidor de arquivo central. 0 sistema de computador também pode notificar o servidor par que forneceu o arquivo de que existe um problema com o arquivo. Isto permitirá que o servidor par descarte o arquivo. Outros sistemas de computador também podem ser informados da natureza suspeita do arquivo.
Referindo-se agora à Figura 3, uma modalidade está ilustrada mostrando um método 300 de efetuar armazenamento em cache e compartilhar arquivos a partir da perspectiva de um potencial servidor par. O método ilustrado na Figura 3 pode ser praticado em um sistema de computador em uma rede, onde a rede inclui um ou mais computadores de rede.
O método 300 inclui um procedimento de enviar uma mensagem de que o sistema de computador está disponível como um par (procedimento 302) . O envio de uma mensagem de que o sistema de computador está disponível como um par (procedimento 302) pode ser executado usando-se um multicast em uma sub-rede quando o sistema de computador tem arquivos para compartilhar. Em uma modalidade alternativa, o envio de uma mensagem de que um sistema de computador está disponível como um par pode ser executado usando-se multicast ou unicast em resposta ao recebimento de uma solicitação proveniente de um sistema procurando computadores pares. Quando o envio de uma mensagem de que o sistema de computador está disponível como um par (procedimento 302) é executado em resposta ao recebimento de uma solicitação, o sistema de computador pode
Figure BRPI0614925B1_D0015
responder utilizando nm retardo aleatório usando o procedimento descrito anteriormente em conjunto com a descrição da Figura 2.
método 300 inclui adicionalmente um procedimento 5 de receber uma solicitação para descobrir se o sistema de computador tem um arquivo ou parte de um arquivo (procedimento 304). A mensagem recebida pode ser uma solicitação de unicast proveniente de um sistema que tenha o sistema de computador em uma lista de pares. Em modalidades alternati10 vas, a solicitação pode ser unicast sobreposta tal como descrito anteriormente. Solicitações de multicast também podem ser usadas quando não é exigido segurança para o arquivo.
O método 300 inclui adicionaimente um procedimento de enviar uma mensagem de que o sistema de computador tem o arquivo ou parte de um arquivo (procedimento 304). O envio de uma mensagem de que o sistema de computador tem o arquivo ou parte de um arquivo (procedimento 304) é executado com base em regras dinâmicas de agir para participar/agir para não participar. Por exemplo, em uma modalidade regras de dí20 retriz podem considerar a energia de processamento do sistema de computador. Um poderoso computador de mesa ou de classe de servidor pode ter regras de diretriz que permitam a ele agir como um servidor par para mais pares do que outros sistemas menos poderosos. Outras regras podem dizer respeito à quantidade de recursos de máquina disponível. Por exemplo, regras de diretriz podem restringir uma capacidade de sistemas de computador para agir como um servidor par quando mais de 10% dos recursos de sistemas de computador estão sendo
Figure BRPI0614925B1_D0016
usados. Os recursos de sistema podem ser uma medida da maior de a carga de CPU e a carga de entrada / saída de disco no sistema. Em uma modalidade alternativa relacionada a computadores portáteis, um computador portátil pode tomar como referência uma diretriz que ajusta o número de pares em que o sistema de computadores portáteis 106 pode agir como um servidor par com base no estado de operação do sistema de computador portátil 106. Por exemplo, quando o sistema de computador portátil 106 é conectado a uma estação de encaixe, ele pode ser configurado para servir mais pares do que quando não conectado a uma estação de encaixe. Adicionalmente, quando o sistema de computador portátil 106 é conectado por meio de uma conexão com fio, pode ser permitido a ele servir a mais pares do que quando o sistema de computador portátil 106 é conectado em um modo sem fio aos computadores pares. Também em uma outra modalidade alternativa, o número de pares permitido para se conectar ao sistema de computador portátil 106 pode ser definido por uma diretriz relacionada ao nível de bateria. Por exemplo, se o portátil estiver executando com baterias e tiver menos de 50% da energia então o sistema de computador portátil 106 pode seguir uma diretriz que não admita nenhuma conexão de computador par adicional.
O método 300 inclui adicionalmente um procedimento de receber uma solicitação para realizar download do arquivo (procedimento 308). O método 300 inclui adicionalmente um procedimento de enviar o arquivo para um sistema solicitante (310). Estes podem ser executados pelo sistema de computador
Figure BRPI0614925B1_D0017
agindo como um servidor par para outros sistemas em uma rede .
Referindo-se agora à Figura 4, está ilustrada uma modalidade mostrando um método 400 de efetuar armazenamento em cache e compartilhar arquivos que inclui vários formatos de mensagens. 0 método ilustrado na Figura 4 pode ser praticado em um sistema de computador em uma rede, onde a rede inclui um ou mais computadores de rede.
método inclui um procedimento do sistema de computador enviando um sinal de broadcast para sistemas de computador em uma sub-rede para descobrir potenciais pares (procedimento 402). O sinal de broadcast pode indicar um desejo para um número predeterminado de respostas. Em uma modalidade alternativa, o broadcast pode incluir vários parâmetros para permitir que o sistema de computador avalie quaisquer respostas ao sinal de broadcast. Por exemplo, os parâmetros podem levar em conta sincronização de resposta, avaliação de características de hardware de sistemas respondendo e outras mais.
O sistema de computador receberá então um sinal de um dos sistemas de computadores em uma sub-rede (procedimento 404) . Este sinal pode incluir uma listagem de arquivos que podem ser fornecidos, características do sistema enviando o sinal, etc. O sinal pode ser um sinal de multicast, ou em alguns casos, um sinal de unicast.
O sistema de computador acrescentará o um dos sistemas de computador na sub-rede a uma lista de pares (procedimento 406). A lista de pares inclui não mais do que um nú25 ' --- o.
... λ h <P mero predeterminado de pares. Por exemplo, a lista de pares pode incluir não mais de 100 pares. Isto permite que o sistema de computador limite a quantidade de uso de processamento e rede necessária para descobrir um arquivo ou parte de um arquivo para download.
O sistema de computador envia um sinal de unicast para o um dos sistemas de computador na sub-rede para descobrir se o um dos sistemas de computador tem um arquivo ou parte de um arquivo disponível para download (procedimento
408). O sistema de computador pode repetir este processo com outros sistemas de computador para descobrir onde um arquivo ou parte de um arquivo pode ser localizado. Notavelmente, os sinais de unicast podem se sobrepor de maneira tal que unicast s possam ocorrer simultaneamente a partir do mesmo sis15 tema de computador.
O sistema de computador recebe um sinal de unicast do um dos sistemas de computador na sub-rede indicando que o um dos sistemas de computador na sub-rede tem o arquivo ou parte de um arquivo disponível para download (procedimento
410).
O sistema de computador pode então realizar download do arquivo ou parte de um arquivo do um dos sistemas de computador na sub-rede (procedimento 412).
Os versados na técnica perceberão que a invenção 25 pode ser praticada em ambientes de computação de rede com muitos tipos de configurações de sistema de computador, incluindo computadores pessoais, dispositivos de mão, sistemas multiprocessadores, aparelhos eletrônicos de consumidor baλΛ'· da ( i
Q.
n jb.
ó Ct o
'ϊ?ς „ seados em mieroprocessador ou programáveis, PCs de rede, minicomputadores, computadores de grande porte, e outros mais. A invenção também pode ser praticada em ambientes de computação distribuída onde tarefas são executadas por dispositi5 vos de processamento locais e remotos que são ligados {tanto por vínculos conectados fisicamente, vínculos sem fio quanto por uma combinação de vínculos conectados fisicamente ou sem f io) através de uma rede de comunicações. Em um ambiente de computação distribuída, módulos de programa podem ser loca10 lizados em dispositivos de armazenamento de memória tanto locais quanto remotos.
Modalidades dentro do escopo da presente invenção também incluem mídias legíveis por computador para carregar ou ter instruções ou estruturas de dados executáveis por computador armazenadas nas mesmas. Tais mídias legíveis por computador podem ser quaisquer mídias disponíveis que possam ser acessadas por um computador de uso geral ou de uso especial. A título de exemplo, e não de limitação, tais mídias legíveis por computador podem compreender RAM, ROM, EEPROM,
CD-ROM ou outro armazenamento de disco ótico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outra mídia que possa ser usada para carregar ou armazenar dispositivos de código de programa desejados na forma de instruções ou estruturas de dados execu25 táveis por computador e que possa ser acessada por um computador de uso geral ou de uso especial. Quando informação é transferida ou fornecida através de uma rede ou de uma outra conexão de comunicações (tanto conectada fisicamente, sem
Λ
Ή' ? - % 7 Υ
V Jl.
- [U a α
L?
<./.
<Λ, ,,;V >
fio, quanto uma combinação de conectada fisicamente ou sem fio) para um computador, o computador de vê forma apropriada a conexão como uma mídia legível por computador. Assim, qualquer tal conexão é denominada de forma apropriada uma mídia legível por computador. Combinações das mídias mencionadas anteriormente também devem ser incluídas no escopo de mídias legíveis por computador. Instruções executáveis por computador compreendem, por exemplo, instruções e dados que fazem com que um computador de uso geral, computador de uso especial, ou dispositivo de processamento de uso especial execute uma certa função ou grupo de funções.
Embora a matéria em questão tenha sido descrita em linguagem específica para recursos estruturais e/ou procedimentos metodológicos, deve ser entendido que a matéria em questão definida nas reivindicações anexas não está necessariamente limitada aos recursos ou procedimentos específicos descritos anteriormente. Em vez disso, os recursos e procedimentos específicos descritos anteriormente estão revelados como formas de exemplo de implementar as reivindicações.
A presente invenção pode ser incorporada em outras formas específicas sem fugir de seu espírito ou características essenciais. As modalidades descritas devem ser consideradas sob todos os pontos de vista somente como ilustrativas e não restritivas. Portanto, o escopo da invenção é in25 dicado pelas reivindicações anexas em vez de pela descrição anterior. Todas as mudanças que aconteçam dentro do significado e faixa de equivalência das reivindicações devem ser abrangidas como dentro de seu escopo.

Claims (15)

  1. REIVINDICAÇÕES
    1. Método de armazenamento em cache e compartilhamento de arquivos em um sistema de computador em uma rede de computador incluindo um ou mais computadores em rede compreendendo as etapas de:
    construir uma lista de pares (202) compreendendo uma listagem de servidores de pares potenciais dentre um ou mais computadores em rede, a lista de pares incluindo não mais do que um número predeterminado de servidores de pares potenciais, caracterizado pelo fato de que construir uma lista de pares compreende:
    (a) enviar uma solicitação para um ou mais pares potenciais, incluindo uma indicação de um número de pares desejados;
    (b) receber respostas de mensagens dos pares potenciais, em que os pares potenciais aguardam um intervalo de tempo aleatório, ao mesmo tempo em que escutam respostas de multicast de outros pares potenciais, e em que os pares potenciais detectam respostas dos outros pares potenciais e determinam o número de respostas de outros pares potenciais e apenas enviam respostas se os pares potenciais não detectaram o número de respostas correspondentes ao número de pares desejados, de outros pares potenciais e não enviam respostas se detectaram o número de respostas de outros pares potenciais indicados no número de pares desejados;
    de 24/01/2018, pág. 7/16 (c) com base em mensagens recebidas de pares potenciais, adicionar pares potenciais que enviaram respostas como servidores potenciais para a lista de pares até o número predeterminado com base em mensagens recebidas de um ou mais computadores em rede, e em que servidores potenciais são adicionados à lista de pares de acordo com a proximidade lógica dos servidores potenciais ao sistema de computadores;
    (d) remover servidores potenciais da lista de pares; e (e) repetir as etapas (a) a (c) quando um número predeterminado de servidores potenciais tiver sido removido da lista de pares;
    consultar servidores de pares potenciais (206) na lista de pares para um arquivo (116) ou parte de um arquivo;
    receber uma mensagem (208) de um servidor de pares na lista de pares de que o servidor de pares possui o arquivo (116) ou parte de um arquivo disponível para download; e realizar o download (210) do arquivo (116) ou a parte de um arquivo do servidor de pares.
  2. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os pares potenciais (102110) que esperam por um pequeno intervalo de tempo aleatório usam um atraso aleatório logarítmico calculado como:
    de 24/01/2018, pág. 8/16
    RETARDO = MAX_DELAY * Log (c * X + 1) / Log (C +
    1) , onde RETARDO é o atraso antes de responder, MAX_DELAY é a quantidade máxima de tempo dada para rece5 ber respostas, X é um número aleatório e C é um número arbitrário para determinar a quantidade de tempo a aguardar antes de responder.
  3. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que enviar e receber são feitos
    10 com computadores na mesma primeira sub-rede.
  4. 4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que ainda compreende construir uma segunda lista de pares (120) pela desconexão da primeira sub-rede, pela conexão de uma segunda sub-rede, pe15 lo envio de uma solicitação; e pela recepção de respostas de computadores na segunda sub-rede.
  5. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que construir uma lista de pares (202) compreende as etapas de:
    20 receber um auto-anúncio com um pacote de multicast de um par potencial (102-110), em que o auto-anúncio inclui uma indicação de que o par potencial (102-110) tem arquivos que podem ser servidos a computadores na rede; e adicionar o par potencial (102-110) à lista de
    25 pares.
  6. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a solicitação inclui identificar um grupo de confiança.
    Petição 870180006050, de 24/01/2018, pág. 9/16
  7. 7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende a etapa de determinar que o arquivo ou a parte de um arquivo está corrompido e em resposta a determinar que o arquivo ou a
    5 parte de um arquivo está corrompido, fazer o download do arquivo ou a parte de um arquivo a partir de um servidor central (114).
  8. 8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que determinar que o arquivo ou
    10 a parte de um arquivo está corrompido compreende fazer referência a um valor de hash.
  9. 9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende uma etapa de determinar que o arquivo ou a parte de um arquivo não
    15 está disponível a partir de nenhum dos computadores na lista de pares e, em resposta a determinar que o arquivo ou parte de um arquivo não está disponível a partir de qualquer um dos computadores na lista de pares, fazer o download do arquivo ou a parte de um arquivo a partir de
    20 um servidor central (114).
  10. 10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende autenticar computadores na lista de pares (204) antes de consultar computadores na lista de pares para um arquivo ou uma
    25 parte de um arquivo (206) .
  11. 11. Método de armazenamento em cache e compartilhamento de arquivos em um primeiro sistema de computador em uma rede de computador incluindo um ou mais sistemas
    Petição 870180006050, de 24/01/2018, pág. 10/16 de computador em rede caracterizado pelo fato de que compreende as etapas de:
    receber uma solicitação (304), a solicitação sendo enviad a um ou mais pares potenciais e incluindo
    5 uma indicação de vários pares desejados;
    esperar um intervalo de tempo aleatório, enquanto escuta respostas de multicast de outros pares potenciais, e detectar respostas de outros pares potenciais para determinar número de respostas de outros pares po10 tenciais e apenas enviar respostas a solicitação se o número de respostas correspondendo ao número de pares desejado não tiver sido detectado, e não enviar respostas se o número de respostas de outros pares potenciais indicados no número de pares desejado tiver sido detectado;
    15 detectar após a expiração do intervalo de tempo aleatório que o número de respostas correspondendo ao número de pares desejado não foi detectado e, como resultado, enviar uma mensagem a um ou mais sistemas de computador em uma mesma sub-rede como o primeiro sistema de com20 putador de que o primeiro sistema de computador está disponível como um par;
    como resultado do envio de uma mensagem para um ou mais sistemas de computador em uma mesma sub-rede como o primeiro sistema de computador de que o primeiro siste25 ma de computador está disponível como um par, receber uma solicitação de um sistema solicitante para descobrir se o primeiro sistema de computador tem um arquivo ou parte de um arquivo;
    Petição 870180006050, de 24/01/2018, pág. 11/16 em resposta à solicitação para descobrir se o primeiro sistema de computador tem um arquivo ou parte de um arquivo, enviar uma mensagem (306) para o sistema solicitante de que o primeiro sistema de computador tem o
    5 arquivo ou parte de um arquivo;
    como resultado do envio de uma mensagem de que o primeiro sistema de computador tem o arquivo ou parte de um arquivo, receber uma solicitação (308) do sistema solicitante para realizar o download do arquivo; e
    10 em resposta ao recebimento de uma solicitação para realizar o download do arquivo, enviar o arquivo (310) para o sistema solicitante.
  12. 12. Método de armazenamento em cache e compartilhamento de arquivos em um sistema de computador em uma
  13. 15 rede de computador incluindo um ou mais computadores em rede caracterizado pelo fato de que compreende as etapas de:
    (a) enviar um sinal de broadcast (402) a sistemas de computador em uma sub-rede para descobrir pares
  14. 20 potenciais, o sinal de broadcast incluindo uma indicação de vários pares desejados;
    (b) receber um sinal de resposta de um dos sistemas de computador na sub-rede em que o sistema de computador espera um intervalo de tempo aleatório, enquanto
  15. 25 escuta respostas de multicast de outros pares potenciais, e em que um dos sistemas de computador detecta respostas dos outros pares potenciais e determina o número de respostas de outros pares potenciais e apenas envia o sinal
    Petição 870180006050, de 24/01/2018, pág. 12/16 de resposta se um dos sistemas de computador não detectou o número de respostas de outros pares potenciais correspondentes ao número de pares desejados, e faz não envia um sinal de resposta se tiver detectado o número de res5 postas de outros pares potenciais indicados no número de pares desejados;
    (c) adicionar seletivamente um dos sistemas de computador na sub-rede a uma lista de pares (406) com base na proximidade lógica de um dos sistemas de computa10 dor, em que a lista de pares compreende não mais que um número predeterminado de pares;
    (d) remover pares da lista de pares;
    (e) adicionar, seletivamente, pares à lista de pares quando um número predeterminado de pares tiver sido
    15 removido da lista de pares;
    (f) enviar um sinal de unicast a um dos sistemas de computador na sub-rede para descobrir se o um dos sistemas de computador tem um arquivo ou parte de um arquivo disponível para download;
    20 (g) receber um sinal de unicast de um dos sistemas de computador na sub-rede indicando que um dos sistemas de computador na sub-rede tem o arquivo ou parte de um arquivo disponível para download; e (h) realizar o download do arquivo ou parte de
    25 um arquivo (412) de um dos sistemas de computador na subrede.
    Petição 870180006050, de 24/01/2018, pág. 13/16 / / λ \ '» '1 ζΆ *
BRPI0614925-1A 2005-08-30 2006-08-03 Método de armazenamento em cache e compartilhamento de arquivos BRPI0614925B1 (pt)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/215,621 2005-08-30
US11/215,621 US7512943B2 (en) 2005-08-30 2005-08-30 Distributed caching of files in a network
US11/215.621 2005-08-30
PCT/US2006/030445 WO2007027361A2 (en) 2005-08-30 2006-08-03 Distributed caching of files in a network

Publications (2)

Publication Number Publication Date
BRPI0614925A2 BRPI0614925A2 (pt) 2011-04-19
BRPI0614925B1 true BRPI0614925B1 (pt) 2018-04-24

Family

ID=37805841

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0614925-1A BRPI0614925B1 (pt) 2005-08-30 2006-08-03 Método de armazenamento em cache e compartilhamento de arquivos

Country Status (11)

Country Link
US (1) US7512943B2 (pt)
EP (1) EP1922615B1 (pt)
JP (1) JP4943437B2 (pt)
KR (1) KR101322947B1 (pt)
CN (1) CN101253488B (pt)
BR (1) BRPI0614925B1 (pt)
CA (1) CA2616916A1 (pt)
MX (1) MX2008002505A (pt)
NO (1) NO20080273L (pt)
RU (1) RU2413981C2 (pt)
WO (1) WO2007027361A2 (pt)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122609A (ja) * 2005-10-31 2007-05-17 Ricoh Co Ltd 構造化文書、コンテンツ配信サーバ装置及びコンテンツ配信システム
US7761503B2 (en) * 2006-01-06 2010-07-20 Microsoft Corporation Peer distribution point feature for system management server
GB0600348D0 (en) * 2006-01-10 2006-02-15 Ibm Updating of data processing and communication devices
US20070245323A1 (en) * 2006-04-13 2007-10-18 Apple Computer, Inc. Sharing compiled versions of files
US7814070B1 (en) * 2006-04-20 2010-10-12 Datascout, Inc. Surrogate hashing
US8463000B1 (en) 2007-07-02 2013-06-11 Pinehill Technology, Llc Content identification based on a search of a fingerprint database
US7801868B1 (en) * 2006-04-20 2010-09-21 Datascout, Inc. Surrogate hashing
US8549022B1 (en) 2007-07-02 2013-10-01 Datascout, Inc. Fingerprint generation of multimedia content based on a trigger point with the multimedia content
US7991206B1 (en) 2007-07-02 2011-08-02 Datascout, Inc. Surrogate heuristic identification
US7774385B1 (en) 2007-07-02 2010-08-10 Datascout, Inc. Techniques for providing a surrogate heuristic identification interface
US8156132B1 (en) 2007-07-02 2012-04-10 Pinehill Technology, Llc Systems for comparing image fingerprints
US7840540B2 (en) 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US9020964B1 (en) 2006-04-20 2015-04-28 Pinehill Technology, Llc Generation of fingerprints for multimedia content based on vectors and histograms
US8103870B2 (en) * 2006-09-12 2012-01-24 Foleeo, Inc. Hive-based peer-to-peer network
US7953083B1 (en) 2006-12-12 2011-05-31 Qurio Holdings, Inc. Multicast query propagation scheme for a peer-to-peer (P2P) network
US8996484B2 (en) * 2007-02-13 2015-03-31 Red Hat, Inc. Recursive lock-and-propagate operation
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
KR101409991B1 (ko) 2007-04-16 2014-06-20 삼성전자주식회사 P2p 통신 환경에서의 데이터 전송 방법 및 장치
US8201164B2 (en) * 2007-07-20 2012-06-12 Microsoft Corporation Dynamically regulating content downloads
JP5007624B2 (ja) * 2007-08-10 2012-08-22 ブラザー工業株式会社 コンテンツ分散保存システム、コンテンツデータ取得方法、ノード装置、及びノード処理プログラム
US8281298B2 (en) 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
GB2452325A (en) * 2007-08-31 2009-03-04 Sony Corp Method and system for distributing software to a portable device using software on a pre-recorded medium.
US8886803B1 (en) 2007-09-20 2014-11-11 Qurio Holdings, Inc. Dynamic query response in a distributed network
US8522231B2 (en) * 2008-01-30 2013-08-27 International Business Machines Corporation Updating a plurality of computers
US7636759B1 (en) * 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US8458285B2 (en) 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US7599997B1 (en) 2008-08-01 2009-10-06 Gene Fein Multi-homed data forwarding storage
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US20090252071A1 (en) * 2008-04-02 2009-10-08 Nokia Corporation Method and deevice for network messaging
US8386585B2 (en) * 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US8452844B2 (en) * 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
US9198017B2 (en) * 2008-05-19 2015-11-24 Qualcomm Incorporated Infrastructure assisted discovery in a wireless peer-to-peer network
US9848314B2 (en) * 2008-05-19 2017-12-19 Qualcomm Incorporated Managing discovery in a wireless peer-to-peer network
US9237086B2 (en) * 2008-05-30 2016-01-12 Genband Us Llc Methods and apparatus for network traffic distribution based on random number values
US8769277B2 (en) * 2008-06-23 2014-07-01 Microsoft Corporation Content retrieval
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US7685248B1 (en) * 2008-09-29 2010-03-23 Gene Fein User interface in data forwarding network
US8352635B2 (en) * 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
US8478823B2 (en) 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US7961741B2 (en) * 2008-10-23 2011-06-14 Silver Spring Networks, Inc. Rapid dissemination of bulk information to widely dispersed network nodes
EP2234375A1 (en) * 2009-03-24 2010-09-29 Thomson Licensing device and method for controlling dissemination of content data between peers in a P2P mode, by using a two-level randomized peer overlay and a dynamic unchoke mechanism
CN101764824B (zh) * 2010-01-28 2012-08-22 深圳市龙视传媒有限公司 一种分布式缓存控制方法、装置及系统
JP2012088955A (ja) * 2010-10-20 2012-05-10 Nec Corp データ複製システム、データ複製サーバ、データ複製方法、及び、データ複製プログラム
US8681758B2 (en) 2010-12-14 2014-03-25 Symbol Technologies, Inc. Video caching in a wireless communication network
EP2477377A1 (en) * 2011-01-14 2012-07-18 Alcatel Lucent Peer node and method for improved peer node selection
BR112013021931B1 (pt) * 2011-02-28 2022-07-12 Rainberry, Inc. Método para compartilhar conteúdo segundo protocolo
CN102752335B (zh) * 2011-04-22 2017-08-08 中兴通讯股份有限公司 对等叠加网中节点过负荷信息订阅方法及系统
US20130007218A1 (en) * 2011-06-28 2013-01-03 Cisco Technology, Inc. Network Assisted Tracker for Better P2P Traffic Management
US20130073671A1 (en) * 2011-09-15 2013-03-21 Vinayak Nagpal Offloading traffic to device-to-device communications
US20130156030A1 (en) * 2011-12-16 2013-06-20 Jeremy Johnson Rapid dissemination of information to widely dispersed network nodes via patch
US9432452B2 (en) 2012-09-10 2016-08-30 Joosy, Inc. Systems and methods for dynamic networked peer-to-peer content distribution
JP5971065B2 (ja) * 2012-09-28 2016-08-17 富士通株式会社 通信方法、無線端末および通信システム
JP5487273B1 (ja) * 2012-10-26 2014-05-07 日本電信電話株式会社 情報伝達装置及びそのプログラム
CN104202362B (zh) * 2014-08-14 2017-11-03 上海帝联信息科技股份有限公司 负载均衡系统及其内容分发方法和装置、负载均衡器
US10462249B2 (en) * 2014-08-25 2019-10-29 Super Micro Computer, Inc. Globally distributed virtual cache for worldwide real-time data access
CN104461940A (zh) * 2014-12-17 2015-03-25 南京莱斯信息技术股份有限公司 网络虚拟磁盘客户端高效缓存及延迟写入方法
US10491512B2 (en) * 2015-05-20 2019-11-26 Qualcomm Incorporated Supporting packet query-response transactions at lower layer
US10693720B2 (en) * 2017-04-10 2020-06-23 Cisco Technology, Inc. Distribution of updates in an IoT network
US11553014B2 (en) * 2017-07-04 2023-01-10 Vmware, Inc. Downloading of server-based content through peer-to-peer networks
CN113660168B (zh) * 2021-10-19 2021-12-31 上海柯林布瑞信息技术有限公司 一种多中心研究数据的处理方法、装置和服务器

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128295A (en) * 1997-07-11 2000-10-03 Telefonaktiebolaget Lm Ericsson Buffering of point-to-point and/or point-to-multipoint ATM cells
EP0993163A1 (en) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
US20020062336A1 (en) * 2000-11-22 2002-05-23 Dan Teodosiu Resource coherency among resources cached in a peer to peer environment
US7035911B2 (en) * 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
JP4366078B2 (ja) * 2001-01-25 2009-11-18 デービッド・シドマン 情報アクセスを実行する登録のための装置、方法及びシステム
US6983326B1 (en) * 2001-04-06 2006-01-03 Networks Associates Technology, Inc. System and method for distributed function discovery in a peer-to-peer network environment
JP2002318720A (ja) * 2001-04-19 2002-10-31 Oki Electric Ind Co Ltd コンテンツ配信管理システム
US20030009570A1 (en) * 2001-07-03 2003-01-09 International Business Machines Corporation Method and apparatus for segmented peer-to-peer computing
US7003514B2 (en) * 2001-09-13 2006-02-21 International Business Machines Corporation Method and apparatus for restricting a fan-out search in a peer-to-peer network based on accessibility of nodes
JP3997774B2 (ja) * 2001-12-11 2007-10-24 ソニー株式会社 データ処理システム、データ処理方法、および情報処理装置、並びにコンピュータ・プログラム
US7117264B2 (en) * 2002-01-10 2006-10-03 International Business Machines Corporation Method and system for peer to peer communication in a network environment
US7574488B2 (en) * 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
US20030233455A1 (en) * 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
JP2004127168A (ja) * 2002-10-07 2004-04-22 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
EP1429513A1 (en) * 2002-12-09 2004-06-16 Koninklijke Philips Electronics N.V. Method and apparatus for searching data in a peer to peer network
US7558875B2 (en) 2003-09-15 2009-07-07 Microsoft Corporation Measurement-based construction of locality-aware overlay networks
US20050076092A1 (en) * 2003-10-02 2005-04-07 Sony Corporation And Sony Electronics Inc. User shared virtual channel via media storage
US7660889B2 (en) * 2003-11-18 2010-02-09 Cisco Technology, Inc. Initialization and acquisition of peers in a peers' list in a peer-to-peer network
US8239446B2 (en) * 2003-11-19 2012-08-07 Sony Computer Entertainment America Llc Content distribution architecture
US7627644B2 (en) * 2003-11-28 2009-12-01 Canon Kabushiki Kaisha Recipient-centred proactive caching in a peer-to-peer system
US7342900B2 (en) * 2004-05-19 2008-03-11 Hewlett-Packard Development Company, L.P. Apparatus and method for estimating device availability
US20060212542A1 (en) * 2005-03-15 2006-09-21 1000 Oaks Hu Lian Technology Development Co., Ltd. Method and computer-readable medium for file downloading in a peer-to-peer network

Also Published As

Publication number Publication date
KR20080047353A (ko) 2008-05-28
CN101253488B (zh) 2010-06-02
WO2007027361A3 (en) 2008-01-24
EP1922615A2 (en) 2008-05-21
EP1922615A4 (en) 2009-09-02
US20070050761A1 (en) 2007-03-01
JP4943437B2 (ja) 2012-05-30
RU2008107742A (ru) 2009-09-10
BRPI0614925A2 (pt) 2011-04-19
EP1922615B1 (en) 2016-06-15
RU2413981C2 (ru) 2011-03-10
KR101322947B1 (ko) 2013-10-29
JP2009506455A (ja) 2009-02-12
CA2616916A1 (en) 2007-03-08
WO2007027361A2 (en) 2007-03-08
MX2008002505A (es) 2008-04-07
CN101253488A (zh) 2008-08-27
US7512943B2 (en) 2009-03-31
NO20080273L (no) 2008-03-31

Similar Documents

Publication Publication Date Title
BRPI0614925B1 (pt) Método de armazenamento em cache e compartilhamento de arquivos
Czerwinski et al. An architecture for a secure service discovery service
Lee et al. Blockchain-based secure firmware update for embedded devices in an Internet of Things environment
US10698675B2 (en) Decentralized automated software updates via blockchain
US7127613B2 (en) Secured peer-to-peer network data exchange
US7783777B1 (en) Peer-to-peer content sharing/distribution networks
US20110066841A1 (en) Platform for policy-driven communication and management infrastructure
US8204992B2 (en) Presence detection using distributed indexes in peer-to-peer networks
US7206934B2 (en) Distributed indexing of identity information in a peer-to-peer network
US7657597B2 (en) Instant messaging using distributed indexes
US7213047B2 (en) Peer trust evaluation using mobile agents in peer-to-peer networks
US10958725B2 (en) Systems and methods for distributing partial data to subnetworks
US10693947B2 (en) Interchangeable retrieval of sensitive content via private content distribution networks
US11336463B2 (en) Information assurance (IA) using an integrity and identity resilient blockchain
US20170187831A1 (en) Universal Abstraction Layer and Management of Resource Devices
US20050120106A1 (en) System and method for distributing software updates to a network appliance
US11665232B2 (en) Newnode: decentralized content distribution network
WO2022068394A1 (zh) 加载证书的方法、服务器、介质、系统和电子设备
US8560732B2 (en) Peer-to-peer object distribution
Blähser et al. Thine—Approach for a fault tolerant distributed packet manager based on hypercore protocol
WO2023092951A1 (zh) 远程证明的应用方法、装置、设备、系统及存储介质
Yu et al. PythonRepo: Persistent In-Network Storage for Named Data Networking
AU2018302104A1 (en) Systems and methods for distributing partial data to subnetworks
Kovacs et al. A Secure, Peer-to-Peer File Locker System
Xie An Investigation of Distributed Information Search

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]
B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 14A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2594 DE 24-09-2020 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.