BRPI0614925A2 - método de armazenamento em cache e compartimento de arquivos - Google Patents

método de armazenamento em cache e compartimento de arquivos Download PDF

Info

Publication number
BRPI0614925A2
BRPI0614925A2 BRPI0614925-1A BRPI0614925A BRPI0614925A2 BR PI0614925 A2 BRPI0614925 A2 BR PI0614925A2 BR PI0614925 A BRPI0614925 A BR PI0614925A BR PI0614925 A2 BRPI0614925 A2 BR PI0614925A2
Authority
BR
Brazil
Prior art keywords
file
potential
pairs
peer
computer system
Prior art date
Application number
BRPI0614925-1A
Other languages
English (en)
Inventor
Anna M Hester
Barbara Harder
Edward F Reus
Jeffrey S Roberts
Kancheng Cao
Mike Zoran
Narayana Mahankali
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
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

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

"MÉTODO DE ARMAZENAMENTO EM CACHE ECOMPARTILHAMENTO DE ARQUIVOS"
ANTECEDENTES
Computação de rede permite que computadores soli-citem e recebam software e conteúdo de arquivo de servidorespara 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. 0 software pode ser solicitado e sofrer download paradiversos propósitos incluindo atualizar software de sistema,atualizar software de aplicação e atualizar arquivos de da-dos. Por exemplo, atualizações de segurança podem sofrerdownload para atualizar um sistema de operação para impedirou neutralizar ataques em um sistema de computador. Adicio-nalmente, software pode sofrer download para instalar novasaplicações em um computador. Em um sistema exemplar, softwa-re pode sofrer download em plano de fundo de maneira tal queo software pode sofrer download enquanto um computador e u-suário de computador executam outras tarefas. Um serviço e-xemplar com esta funcionalidade é o Serviço de TransferênciaInteligente de Plano de Fundo (BITS).
Freqüentemente, quando software é publicado e ficadisponível para download a partir de um servidor, existemmuitos computadores na rede que tentam obter o software si-multaneamente ou dentro de um período de tempo muito peque-no. Por exemplo, quando o software é uma atualização de se-gurança, existe um desejo para entrega do software para tan-tos computadores quanto possível em um tempo tão pequenoquanto possível para impedir ataques mal-intencionados noscomputadores ou na rede. Quando o software é uma nova apli-cação pretendida para distribuição de sistema amplo em umcampus de corporação, pode existir um desejo para distribui-ção do sistema amplo de software em um pequeno período detempo. Quando o software é uma liberação altamente esperada,um grande número de usuários pode tentar realizar downloaddo software em um esforço para ser o primeiro entre todos ausar o software. Distribuir o software em uma grande escalapode exigir grandes quantidades de servidor e capacidade derede. Tais downloads em grande escala podem ser especialmen-te desagradáveis em um ambiente de rede onde diversas fili-ais se conectam a um aparelho de interconexão de empresa emmatriz de empresa. Neste exemplo, quando software é distri-buído a partir do aparelho de interconexão de empresa, a co-nexão de rede entre o aparelho de interconexão de empresa euma filial pode limitar o número de computadores que podemser atualizados em um tempo particular, mesmo quando um ser-vidor no aparelho de interconexão de empresa tem capacidadesuficiente para fornecer software para muitos ou todos oscomputadores na filial.
Existem diversos métodos que têm sido usados paradistribuir a carga de trabalho para downloads em grande es-cala. Por exemplo, em um ambiente de corporação, distribui-ção de novo software somente pode ser realizada pela distri-buição do software para um número limitado de computadoresna rede em um dado tempo. Alternativamente, proxies de arma-zenamento em cache podem ser colocados dentro da rede paradistribuir o software para um subconjunto dos computadoresna rede. Ambas as soluções exigem planejamento cuidadoso pa-ra ser implementadas. Além do mais, no caso de proxies dearmazenamento em cache, hardware de computador adicional éacrescentado à rede aumentando o custo da rede.
Embora várias questões tenham sido identificadasnestes antecedentes, a matéria em questão reivindicada abai-xo não aborda necessariamente nenhuma ou todas as questõesidentificadas. Estes antecedentes servem simplesmente parafornecer fundamentos em um ambiente exemplar onde as modali-dades descritas neste documento podem ser praticadas.
SUMÁRIO
Uma modalidade descrita neste documento inclui ummétodo de efetuar armazenamento em cache e compartilhar ar-quivos. O método pode ser praticado, por exemplo, em um sis-tema de computador em uma rede de computador incluindo um oumais computadores de rede. -O método inclui construir umalista de pares incluindo uma listagem de potenciais servido-res pares dentre os um ou mais computadores de rede. A listade pares inclui não mais do que um número predeterminado depotenciais servidores pares. Potenciais servidores pares nalista de pares são consultados para um arquivo ou parte deum arquivo. Uma mensagem proveniente de um servidor par nalista de pares é recebida indicando que o servidor par tem oarquivo ou parte de um arquivo disponível para download. 0sistema de computador realiza download do arquivo ou partede um arquivo do servidor par.Uma outra modalidade descrita neste documento in-clui um método de efetuar armazenamento em cache e comparti-lhar arquivos. 0 método pode ser praticado, por exemplo, emum sistema de computador em uma rede de computador incluindoum ou mais computadores de rede. O método inclui enviar umamensagem de que o sistema de computador está disponível comoum par. O sistema de computador recebe uma solicitação paradescobrir se o sistema de computador tem um arquivo ou partede um arquivo. O sistema de computador envia uma mensagem deque o sistema de computador tem o arquivo ou parte de um ar-quivo. O envio da mensagem em que o sistema de computadortem o arquivo ou parte de um arquivo é executado com base emregras dinâmicas de agir para participar/agir para não par-ticipar. O sistema de computador recebe uma solicitação pararealizar download do arquivo. O sistema de computador enviao arquivo para um sistema solicitante.
Uma outra modalidade descrita neste documento in-clui um método de efetuar armazenamento em cache e comparti-lhar arquivos. O método pode ser praticado, por exemplo, emum sistema de computador em uma rede de computador incluindoum ou mais computadores de rede. O sistema de computador en-via um sinal de broadcast para sistemas de computador em umasub-rede para descobrir potenciais pares. O sistema de com-putador recebe um sinal de unicast, ou alternativamente umsinal de multicast proveniente de um dos sistemas de compu-tador na sub-rede. O sistema de computador acrescenta o umdos sistemas de computador na sub-rede a uma lista de pares.A lista de pares inclui não mais do que um número predeter-minado de pares. O sistema de computador envia um sinal deunicast para o um dos sistemas de computador na sub-rede pa-ra descobrir se o um dos sistemas de computador tem um ar-quivo ou parte de um arquivo disponível para download. Osistema de computador recebe um sinal de unicast provenientedo um dos sistemas de computador na sub-rede indicando que oum dos sistemas de computador na sub-rede tem o arquivo ouparte de um arquivo disponível para download. O sistema decomputador realiza download do arquivo ou parte de um arqui-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ãodescritos adicionalmente a seguir na descrição detalhada.Este Sumário não pretende identificar recursos chaves ou re-cursos essenciais da matéria em questão reivindicada, nemele é 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 re-latados anteriormente e outros são obtidos, será apresentadauma descrição mais particular com referência às modalidadesespecíficas que estão ilustradas nos desenhos anexos. Com oentendimento de que estes desenhos representam somente moda-lidades típicas e não são, portanto, para ser consideradoscomo limitando o escopo, as modalidades serão descritas eexplicadas com especificidade e detalhe adicionais por meiodo uso dos desenhos anexos, em que:A Figura 1 ilustra um diagrama de blocos de umarede de exemplo;
A Figura 2 mostra um fluxograma ilustrando um mé-todo para efetuar armazenamento em cache e compartilhar ar-quivos de um cliente em perspectiva; e
A Figura 3 mostra um fluxograma ilustrando um mé-todo para efetuar armazenamento em cache e compartilhar ar-quivos de um servidor par em perspectiva.
DESCRIÇÃO DETALHADA
Uma modalidade descrita neste documento inclui umsistema de distribuição de arquivo melhorado que leva emconta distribuição de arquivo a ser movido para longe de umservidor de arquivo centralizado. Neste exemplo, distribui-ção e·armazenamento em cache de arquivo são deslocados paraas bordas da rede. Isto ajuda a reduzir a carga em servido-res de arquivo centralizados e a distribuir tráfego de redeatravés de uma rede tal como o oposto a ter o tráfego de re-de concentrado em algumas conexões de rede centralizadas.
Especificamente, em uma modalidade, armazenamento em cache earquivos compartilhados de computadores usando um sistemanão hierárquico. Um sistema de computador construirá primei-ro uma lista de pares incluindo uma lista de potenciais ser-vidores pares dentre um ou mais computadores de rede. Nestamodalidade, a lista de pares é limitada a um número prede-terminado de pares. O sistema pode então autenticar os paresna lista de pares. Um sistema pode então consultar pares dalista de pares para descobrir pares que contenham um arquivoou parte de um arquivo necessitado pelo sistema de computa-dor. Se um dos pares na lista de pares responder indicandoque ele tem o arquivo ou parte de um arquivo disponível, oarquivo ou parte de um arquivo pode sofre download do parassim indicando. Se nenhum dos pares não responder indicandoque ele tem o arquivo ou parte de um arquivo, o sistema quesolicita o arquivo pode realizar download do arquivo de umservidor de arquivo central e pode então indicar para outrossistemas de computador que ele tem o arquivo ou parte de umarquivo disponível para download. Na resposta para indicarque ele tem o arquivo ou parte de um arquivo disponível paradownload, outros sistemas de computador podem acrescentar osistema de computador às suas listas de pares que incluemsuas listas de potenciais servidores pares, tal como serádescrito com mais detalhes a seguir. Notavelmente, outrossistemas pares podem acrescentar o sistema de computadorconsultante às suas listas de pares em resposta à consultapara descobrir pares que contenham um arquivo ou parte de umarquivo.
Sistemas de computador, em uma modalidade exem-plar, podem criar grupos de pares a partir de computadoresque não estejam interligados por um servidor ou aparelho deinterconexão de empresa central. Por exemplo, grupos de pa-res podem ser formados nas filiais de uma rede de empresa,em computadores em um aparelho de interconexão ou roteadorcomum, para eliminar conexões de pares através de conexõescaras, tais como conexões de modem a cabo e outras mais.Deste modo, menores quantidades de tráfego de rede e recur-sos de servidor são necessárias para distribuir arquivos pa-ra um grupo de pares onde arquivos podem ser armazenados emcache e sofrer download. Deste modo, capacidades de proces-samento e de rede exigidas para distribuir software e atua-lizações são movidas de uma localização centralizada em umarede para as bordas da rede a fim de distribuir mais unifor-memente as exigências de computação e de rede.
Referindo-se agora à Figura 1, uma topologia exem-plar 100 está ilustrada. A topologia 100 inclui os diversossistemas de computador 102, 104, 106, 108 e 110. Os sistemasde computador 102-110 são interligados por meio de qualquerum dos diversos dispositivos de interligação. Por exemplo,os sistemas de computador 102-110 podem ser interligados pormeio de conexões de rede tais como redes Ethernet estando deacordo com o IEEE 802.3, conexões Ethernet sem fio tais comoaquelas estando de acordo com o IEEE 802.11, redes sem fioBlue-Tooth, conexões de comunicação inter-rede de discagem,conexões de modem a cabo e outras mais. Na modalidade mos-trada, os sistemas de computador 102-110 são interligadospara formar um grupo de pares 112. Neste exemplo, o grupo depares 112 é um grupo de potenciais servidores pares para umsistema de computador tal como o sistema de computador por-tátil 106. Em uma modalidade, cada sistema de computadormantém uma lista de pares que inclui uma listagem de poten-ciais servidores pares dos quais um sistema de computadorpode realizar download de um arquivo. A formação do grupo depares será discutida com mais detalhes a seguir.
A Figura 1 ilustra adicionalmente que o grupo depares 112 está conectado a um servidor de arquivo central114. Embora a conexão ao servidor de arquivo central 114 es-teja mostrada como uma única conexão, em modalidades alter-nativas, várias conexões podem ser usadas de maneira tal quecada um dos computadores 102-110 pode ter acesso ao servidorde arquivo central 114 ou em outras configurações. Por exem-plo, o grupo de pares pode ser conectado em uma filial deuma sociedade anônima, onde a filial se conecta ao servidorde arquivo central 114 que está em um aparelho de intercone-xão de empresa. Várias outras interligações também podem serimplementadas.
No exemplo mostrado, o servidor de arquivo podearmazenar um arquivo 116 ou parte de um arquivo. 0 arquivo116 pode ser, por exemplo, uma atualização de software, umaatualização de segurança para um sistema de operação, umaaplicação, um arquivo de dados ou outro software. 0 arquivo116 pode sofrer download para um dos computadores tal comosistema de computador 108 ou empurrado para ele. 0 sistemade computador 108 pode então agir como um potencial servidorpar com uma cópia com armazenamento em cache do arquivo 116.Os outros sistemas de computador 102, 104, 106 e 110 podementão solicitar o arquivo 116 a partir do potencial sistemade servidor par 108. Deste modo, o tráfego de rede ao longoda conexão 118 entre o servidor de arquivo e o grupo de pa-res 112 pode ser reduzido em algumas modalidades. Adicional-mente, o processamento pelo servidor de arquivo central 114pode ser reduzido.
Tal como mencionado anteriormente, a Figura 1 i-lustra que um dos sistemas de computador é um sistema decomputador portátil 106 e que o grupo de pares 112 está emuma lista de potenciais servidores pares mantida pelo siste-ma de computador portátil 106. Computadores de colo, e ou-tros computadores portáteis incluindo dispositivos de mão,pdas, telefones celulares e outros mais, por sua naturezasão portáteis e podem se encontrar fisicamente e de formalógica em diferentes partes de uma rede. O 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 dearquivos do grupo de pares 112. Por exemplo, o computadorportátil 106 pode ser deslocado de forma lógica para umasub-rede diferente daquela do grupo de pares 112. Alternati-vamente, o computador portátil 106 pode ser deslocado fisi-camente para uma localização que exija uma quantidade exage-rada de tráfego de rede para o computador portátil 106 secomunicar com outros membros do grupo de pares 112. Na moda-lidade mostrada na Figura 1 o computador portátil 106 criaum outro grupo de pares, tal como o grupo de pares 120 mos-trado na Figura 1. O portátil 106 pode manter informação arespeito do primeiro grupo de pares 112 e do segundo grupode pares 120 de maneira tal que o portátil 106 pode receberarquivos quando ele está conectado ao primeiro grupo de pa-res 112 ou ao segundo grupo de pares 120 ou a qualquer outrogrupo de pares do qual o portátil 106 tenha uma lista de pa-res.
Quando um sistema de computador no grupo de pares112 recebe o arquivo 116, o sistema de computador deve de-terminar que o arquivo é o arquivo correto e que não estácorrompido. Determinar que o arquivo é o arquivo correto enão corrompido pode ser realizado, por exemplo, pela compa-ração de nomes de arquivo, tamanhos de arquivo, valores dedispersão, etc. Por exemplo, um sistema de computador podeter recebido informação a respeito do arquivo incluindo nomede arquivo, tamanho de arquivo e um valor de dispersão doarquivo. Valores de dispersão são valores calculados usando-se os dados no arquivo para gerar um valor de uma tal manei-ra que é extremamente improvável que alguns outros dadosproduzam o mesmo valor de dispersão. O sistema de computadorpode determinar que o arquivo correto está sendo recebidopela comparação do nome de arquivo, tamanho de arquivo e/ouvalor de dispersão. Além do mais, o valor de dispersão podeser usado para assegurar que o arquivo não foi corrompido oualterado maliciosamente.
Se um sistema de computador detectar que o arquivocorreto não está disponível, que o arquivo foi corrompido,ou que o arquivo foi alterado maliciosamente, o sistema decomputador pode então solicitar o arquivo 116 diretamente doservidor de arquivo central 114. Um sistema de computadorsolicitando diretamente o arquivo 116 do servidor de arquivocentral 114 pode então se anunciar como um potencial sistemade armazenamento contendo o arquivo 116.
Notavelmente, em uma modalidade, o grupo de pares,tal como descrito anteriormente, é mantido e específico paracada sistema de computador. Assim, gerenciamento de grupo depares é deslocado de uma localização central usando-se umsistema sem controle central. Isto elimina o único ponto defalha para a rede total. Expressado de modo diferente, aperda de uma lista de pares ou de um sistema com uma listade pares não incapacitará o sistema total para distribuiçãoe armazenamento em cache de arquivo, tal como pode ocorrerquando um único servidor centralizado é usado para gerenciargrupos de pares.
Referindo-se agora à Figura 2, um método 200 deefetuar armazenamento em cache e compartilhar arquivos estáilustrado. O método pode ser executado em um sistema de com-putador que está em uma rede de computador que inclua um oumais computadores de rede.
A Figura 2 ilustra um procedimento de construçãode uma lista de pares (procedimento 202). A lista de paresinclui uma listagem de potenciais servidores pares dentre umgrupo de computadores de rede, tais como os sistemas de com-putador 102-110 ilustrados na Figura 1. A lista de pares po-de ser de maneira tal que ela inclua não mais do que um nú-mero predeterminado de potenciais servidores pares. Por e-xemplo, a lista de pares pode ser projetada de maneira talque não mais do que 100 potenciais servidores pares estejamincluídos na lista de pares. Adicionalmente, também é dese-jável que os sistemas de computador 102-110 em um grupo depares estejam perto de uma perspectiva de comunicação inter-rede. Por exemplo, pode ser desejável que os sistemas decomputador 102-110 no grupo de pares 112 estejam localizadosna mesma filial de uma rede de empresa. Em uma modalidadealternativa, pode ser desejável que os sistemas de computa-dor 102-110 em um grupo de pares 112 estejam localizados emum aparelho de interconexão, roteador ou comutador comum. Emalgumas modalidades alternativas pode ser desejável que ne-nhum dos pares não esteja interligado uns com os outros pormeio de conexões caras, tais como aquelas entre conexões demodems a cabo ou de alto tráfego. Outras configurações pró-ximas de forma lógica também podem ser implementadas. Porexemplo, em uma modalidade, o sistema de computador pode u-sar um método de sincronização para determinar a proximidadedos computadores. Existem diversos métodos que podem ser u-sados sozinhos ou em combinação para construção de uma listade pares (202). Exemplos destes métodos serão discutidos a-gora neste documento.
Um método de construção de uma lista de pares(202) envolve enviar uma solicitação e receber respostasprovenientes dos computadores. Para limitar o número de po-tenciais pares respondendo, a solicitação pode ser, por e-xemplo, broadcast ou multicast de sub-rede para obter res-postas de uma única sub-rede. Entretanto, mesmo que somentecomputadores em uma única sub-rede respondam, o número derespostas pode ainda ser impressionante. Assim, para limitaradicionalmente o número de respostas, um sistema de computa-dor enviando uma solicitação pode incluir na solicitação umaindicação do número de pares desejado. Potenciais pares po-dem ser configurados para responder usando respostas de mul-ticast depois de um pequeno intervalo aleatório e para escu-tar as respostas de multicast de outros computadores. Um po-tencial par não responderá se ele tiver detectado respostasprovenientes 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 deseja-do já tiver respondido.
Diversos métodos podem ser usados para gerar o pe-queno intervalo aleatório. Por exemplo, na modalidade maissimples, uma distribuição aleatória uniforme pode ser usadapor cada potencial par para determinar por quanto tempo es-perar antes de responder à solicitação. Um método alternati-vo inclui usar uma distribuição não linear onde menos poten-ciais pares respondem no começo e mais pares respondem à me-dida que o retardo se torna maior. Por exemplo, um método deintegrar o retardo não linear pode incluir gerar um númeroaleatório entre 0 e 1. 0 retardo pode então ser definido pe-la 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 receberrespostas, X é o número aleatório e C é um número arbitráriotal como 256. Outros retardos aleatórios não lineares tambémpodem ser usados.
Em um outro exemplo, sistemas podem responder semum retardo, e um sistema de computador pode acrescentar pa-res a uma lista de pares até que ele tenha pares suficientespara preencher a lista de pares. Neste exemplo, os paresrespondendo mais rapidamente podem ser aqueles mais próximosde forma lógica do sistema de computador enviando a solici-tação. Neste exemplo, um sistema de computador pode acompa-nhar potenciais pares para ver quão rapidamente eles respon-dem à solicitação. Somente os potenciais pares respondendomais rapidamente serão acrescentados à lista de pares. As-sim, um sistema de computador pode ser capaz de selecionaros pares mais apropriados para um grupo de pares pela acei-tação daqueles que estão mais próximos de forma lógica ouque são capazes de responder mais rapidamente.
A solicitação também pode incluir um grupo tal co-mo um grupo de confiança. Potenciais pares ignorarão solici-tações relacionadas a outros grupos de confiança. Mesmoquando grupos de confiança são usados na solicitação podeainda existir uma necessidade de autenticar um par, tal comodescrito com mais detalhes a seguir. 0 grupo de confiançaserve como um método de eliminar respostas de outros gruposde confiança dentro da mesma sub-rede de maneira que solici-tações se sobrepondo dentro de uma sub-rede não interfiramumas com as outras. Em uma modalidade, a solicitação podeincluir uma identificação de conteúdo desejado pelo sistemade computador. Tal como descrito a seguir, potenciais paresrespondem se eles tiverem o conteúdo na identificação e sa-tisfizerem às outras restrições de agir para participar. Is-to torna o conteúdo procurado mais eficiente por causa deuma única solicitação de conteúdo alcançar todos os potenci-ais hospedeiros. Esta modalidade pode ser menos privada porcausa de hospedeiros não autenticados poderem ver qual con-teúdo está sendo solicitado. Solicitação de uma dispersãounidirecional do URL, ou de uma dispersão de conteúdo, podeser usada para aprimorar privacidade nesta modalidade.Em um outro exemplo, construir uma lista de parespode incluir um sistema de computador recebendo um auto-anúncio com um pacote de multicast de um potencial par. 0auto-anúncio inclui uma indicação de que o potencial par temarquivos ou partes de arquivos que podem ser fornecidos paracomputadores na rede. Quando um anúncio como este é recebi-do, o sistema de computador pode acrescentar o potencial parà sua lista de pares. Os auto-anúncios podem ser feitos emuma modalidade alternativa em uma base regular. Em um exem-pio, o anúncio pode ser feito uma vez em uma hora ou váriasvezes durante um dia.
Sistemas de computador podem auto-anunciar quandoeles têm arquivos para compartilhar e quando suas caracte-rísticas de hardware, carga de processamento atual, ou ou-tras características permitem que ele aja como um servidorpar. Os sistemas de computador anunciando podem receber osarquivos 116 do servidor de arquivo central 114 ou de um ou-tro par no grupo de pares 112. Sistemas de computador podemter certos arquivos para os quais eles não auto-anunciarão.
Isto permite que os sistemas de computador protejam certosarquivos.
Em uma modalidade alternativa, um potencial parpode anunciar quando ele tiver sido acrescentado a uma redetal como através de multicast. Um computador pode então a-crescentar este novo computador à sua lista de pares se e-xistir uma necessidade de pares na lista de pares. Em umadisposição similar, um sistema de computador pode acrescen-tar pares a uma lista de pares quando ele recebe outros ti-pos de anúncios e respostas de multicast. Por exemplo, umsistema de computador escutando respostas relacionadas à mo-dalidade de resposta de tempo de retardo aleatório anteriorpode acrescentar quaisquer sistemas de computador que res-pondam à solicitação original à sua lista de pares. Igual-mente, quase toda resposta ou anúncio pode ser usado paradeterminar quais computadores estão disponíveis como poten-ciais pares para uma lista de pares.
Computadores na lista de pares podem ser tanto va-lidados quanto não validados. Sistemas de computador valida-dos são aqueles que passaram por uma autenticação tal comodelineado a seguir. Pares na lista de pares não necessitamser validados imediatamente depois de serem acrescentados àlista de pares, mas em vez disso, eles podem ser validadosem um momento próximo de consultar pares na lista de parespara um arquivo ou parte de um arquivo (procedimento 206)discutido com mais detalhes a seguir. Entretanto, uma vezque um par na lista de pares tenha sido validado, o sistemade computador e o par podem compartilhar uma chave de manei-ra tal que a validação não necessita ser executada para con-sultas de arquivo subseqüentes.
Parte do processo de construir uma lista de parespode incluir atualizar a lista de pares para remover entra-das antiquadas ou para remover entradas que não são mais vá-lidas. Por exemplo, um sistema de computador pode removerentradas da lista de pares depois de as entradas terem esta-do na lista de pares por um período de tempo predeterminado.Isto assegura que entradas velhas tenham uma vida útil Iimi-tada. Em uma outra modalidade alternativa, entradas de parpodem ser removidas em resposta a multicast emitido por umpar quando o par deixa uma rede. Por exemplo, uma mensagemunidirecional de multicast "Bye" é enviada como um melhoresforç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 envi-ando a mensagem "Bye" pode ser removido da lista de pares.Mensagens "Bye" podem ser menos preferidas por causa de umcomputador mal-intencionado poder usar solicitações "bye"para fazer com que outros computadores sejam removidos daslistas de pares e fazer, assim, com que mais computadoresfaçam solicitações para o servidor de arquivo central. Em umoutro exemplo, pares podem ser removidos da lista de paresquando uma tentativa é feita para consultar o par para ar-quivos e um erro é recebido indicando que o par não estámais na rede. Em uma modalidade, um sistema de computadorpode descartar todas as entradas em uma lista de pares totalquando diversas consultas para diferentes pares na lista depares resultam em mensagens de erro. Isto pode ser uma indi-cação de que a parte da rede que o sistema de computador es-tá tentando acessar não está mais disponível. Em uma outramodalidade, um par pode ser removido de uma lista de paresse a sua validação falhar. Isto será discutido com mais de-talhes a seguir, mas em resumo, quando uma validação de parfalha é uma indicação de que o par não é confiável. Em umadisposição similar, um par pode ser removido de uma lista depares se arquivos recebidos do par falharem em certas veri-ficações de segurança tais como comparações dispersões. Istotambém será discutido com mais detalhes a seguir.
Quando um número suficiente de pares tiver sidoremovido da lista de pares, os procedimentos para construçãode uma lista de pares descritos anteriormente podem ser re-petidos. Notavelmente, os procedimentos descritos anterior-mente podem ser usados sozinhos ou em combinação.
Sistemas de computador podem manter mais de umalista de pares. Por exemplo, na Figura 1, um exemplo de umsistema de computador portátil 106 está ilustrado. Tal comoexplicado, o sistema de computador portátil 106 pode ser re-locado fisicamente e ou de forma lógica. Em uma modalidade,o computador portátil 106 pode ser relocado de forma lógicade maneira tal que ele resida em uma sub-rede diferente da-quela do primeiro grupo de pares 112. O sistema de computa-dor portátil 106 pode detectar que ele se deslocou para umanova sub-rede, e em resposta à detecção que ele se deslocoupara uma nova sub-rede, o sistema de computador portátil 106pode executar os procedimentos descritos anteriormente paraconstruir uma lista de pares, para construir uma nova listade pares para a nova sub-rede. Se o sistema de computadorportátil 106 for regularmente um membro de certas sub-redes,ele pode manter a lista de pares para aquelas sub-redes afim de evitar a necessidade de executar os procedimentos pa-ra construir uma lista de pares cada vez que ele se conectaàs sub-redes. O número de listas de pares diferentes que umsistema de computador mantém pode ser um número definido es-taticamente, ou alternativamente o número pode ser um númeroconfigurável de administrador de usuário ou de rede.
Notavelmente, podem existir situações onde um sis-tema de computador se desloca para uma nova sub-rede, masnão forma um novo grupo de pares. Por exemplo, se um compu-tador portátil se deslocar para um café de Internet, eleprovavelmente não formará um novo grupo de pares. Comunica-ção com pares disponíveis pode ser também arriscada para es-ta e outras situações.
Sistemas de computador também podem ser configura-dos para construir uma lista de pares quando eles são pri-meiramente acrescentados a uma rede. Isto pode ser feito porqualquer novo sistema de computador e não está limitado aossistemas portáteis.
Referindo-se mais uma vez à Figura 2, está mostra-do um procedimento de autenticar computadores na lista depares (procedimento 204). Autenticar inclui validar que umpar é uma máquina confiável. Em uma modalidade, um sistemade computador pode validar que um par é um membro de um gru-po de segurança específico. A validação pode ser executada,por exemplo, pelo uso de um protocolo de maneira tal quetanto o sistema de computador quanto o par executam uma au-tenticação mútua. Deste modo, a identidade tanto do sistemade computador quanto do par são validadas para impedir quetanto o sistema de computador quanto o par da lista de pares"engane" o outro por acreditar que eles estão no mesmo grupode segurança. Um protocolo para esta autenticação mútua podeser o Kerberos. Se uma validação de par falhar o par podeser removido da lista de pares.
Uma vez que um par tenha sido validado, o sistemade computador e o par podem compartilhar uma chave de manei-ra tal que validações subseqüentes não necessitam ser execu-tadas antes da consulta subseqüente. A chave pode ter um pe-ríodo de término para tornar a validação eficiente de confi-ança. Um período de término como este pode ser, em um exem-plo, um dia.
Uma vez que um par tenha sido validado, a Figura 2ilustra adicionalmente um procedimento de consultar pares nalista de pares para um arquivo ou parte de um arquivo (pro-cedimento 204). Consultar os pares na lista de pares, em umamodalidade exemplar, inclui enviar mensagens de unicast paracada um dos pares na lista de pares até que um dos paresresponda que ele tem o arquivo ou parte de um arquivo procu-rado pelo sistema de computador. Deve-se notar que, tal comousado neste documento, unicast é uma consulta de rede paraum computador específico. Unicasts descritas neste documentonão exigem necessariamente o uso de um protocolo de datagra-ma, e podem usar outros protocolos tais como TCP e outros.Em uma modalidade alternativa, o sistema de computador podeenviar um conjunto sobreposto de mensagens de unicast. Porexemplo, o sistema de computador pode enviar mensagens deunicast para pares na lista de pares antes de receber res-postas dos pares para os quais enviou anteriormente mensa-gens de unicast.A mensagem enviada no procedimento de consultarpode incluir vários parâmetros para identificar o arquivonecessário pelo sistema de computador. Por exemplo, a mensa-gem pode incluir um ou mais de um nome de arquivo, tamanhode arquivo, data de criação do arquivo, e/ou uma dispersãodo arquivo. Particularmente, pelo uso de uma dispersão doarquivo um sistema pode detectar que o arquivo correto estádisponível. Usando uma dispersão, um sistema de computadorpode ser capaz de detectar quando um arquivo disponível é oarquivo atualizado, não é um nome duplicado de um outro ar-quivo, e outras mais.
Depois de um sistema de computador ter consultadopares na lista de pares para um arquivo ou parte de um ar-quivo (procedimento 206), o método ilustrado na Figura 2mostra um procedimento de receber uma mensagem de um servi-dor par na lista de pares de que o servidor par tem o arqui-vo ou parte de um arquivo disponível para download (procedi-mento 208).
Durante a decisão de se um par agirá como um ser-vidor par, o par pode tomar como referência várias regras dediretriz. Adicionalmente, mesmo quando um par tem um arquivodisponível, esse par pode escolher não agir como um servidorpar de acordo com as regras de diretriz. Tais regras de di-retriz podem considerar a energia de processamento do siste-ma de computador. Por exemplo, um poderoso computador de me-sa ou de classe de servidor pode ter regras de diretriz quepermitam a ele agir como um servidor par para mais pares edigamos, por exemplo, para um computador portátil tal como osistema de computador portátil 106. Outras regras podem di-zer respeito à quantidade de recursos de máquina disponí-veis. Por exemplo, regras de diretriz podem restringir umacapacidade de sistemas de computador para agir como um ser-vidor par quando mais de 10% dos recursos de sistemas decomputador estão sendo usados. Os recursos de sistema podemser uma medida da maior de a carga de CPU e a carga de en-trada/saída de disco no sistema. Adicionalmente, um computa-dor portátil pode tomar como referência uma diretriz que a-justa o número de pares em que o sistema de computadoresportáteis 106 pode agir como um servidor par a ser baseadono 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 configuradopara servir a mais pares do que quando não conectado a umaestação de encaixe. Adicionalmente, quando o sistema de com-putador portátil 106 é conectado por meio de uma conexão comfio, pode ser permitido a ele servir a mais pares do quequando o sistema de computador portátil 106 é conectado emum modo sem fio aos computadores pares. Também em um outroexemplo, o número de pares permitido para se conectar aosistema de computador portátil 106 pode ser definido por umadiretriz relacionada ao nível de bateria. Por exemplo, se oportátil estiver executando com baterias e tiver menos de50% da energia então o sistema de computador portátil 106pode seguir uma diretriz que não admite nenhuma conexão decomputador par adicional.Quando um par tiver determinado agir como um ser-vidor par, o servidor par envia uma mensagem de volta para osistema de computador, a qual é recebida (procedimento 208)pelo sistema de computador.
Depois de um sistema de computador ter recebidouma mensagem de um potencial servidor par na lista de paresindicando que o potencial servidor par tem o arquivo ou par-te de um arquivo disponível para download, o sistema de com-putador realiza download do arquivo ou parte de um arquivo(procedimento 210). 0 download pode ocorrer em qualquer modoapropriado. Notavelmente, tal como aludido neste documento,um sistema de computador pode realizar download de uma partede um arquivo como o oposto ao arquivo completo. Outras par-tes do arquivo podem ser obtidas de outros servidores pares.Em alguns ambientes, isto pode ajudar a aumentar a taxa emque grandes arquivos podem sofrer download.
Em uma modalidade, o método 200 inclui validar a-dicionalmente o arquivo ou parte de um arquivo (procedimento212). A validação verifica que o arquivo é o arquivo corre-to, que o arquivo não foi alterado maliciosamente, e/ou queo arquivo não foi corrompido. Isto pode ser realizado, porexemplo, pelo cálculo de uma dispersão do arquivo ou de par-te de um arquivo. Se o valor de dispersão calculado não ca-sar com o valor de dispersão esperado, o sistema de computa-dor descartará o arquivo ou parte de um arquivo. Adicional-mente o sistema de computador pode colocar o servidor parque forneceu o arquivo em uma lista de quarentena indicandoque o servidor par é suspeito. Em uma modalidade alternati-va, o servidor par pode ser removido da lista de pares to-talmente. 0 sistema de computador pode então tentar obter oarquivo de um par diferente na lista de pares ou de um ser-vidor de arquivo central. 0 sistema de computador também po-de notificar o servidor par que forneceu o arquivo de queexiste um problema com o arquivo. Isto permitirá que o ser-vidor par descarte o arquivo. Outros sistemas de computadortambé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 armazenamentoem cache e compartilhar arquivos a partir da perspectiva deum potencial servidor par. O método ilustrado na Figura 3pode 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 umamensagem de que o sistema de computador está disponível comoum par (procedimento 302) . O envio de uma mensagem de que osistema de computador está disponível como um par (procedi-mento 302) pode ser executado usando-se um multicast em umasub-rede quando o sistema de computador tem arquivos paracompartilhar. Em uma modalidade alternativa, o envio de umamensagem de que um sistema de computador está disponível co-mo um par pode ser executado usando-se multicast ou unicastem resposta ao recebimento de uma solicitação proveniente deum sistema procurando computadores pares. Quando o envio deuma mensagem de que o sistema de computador está disponívelcomo um par (procedimento 302) é executado em resposta aorecebimento de uma solicitação, o sistema de computador poderesponder utilizando um retardo aleatório usando o procedi-mento descrito anteriormente em conjunto com a descrição daFigura 2.
0 método 300 inclui adicionalmente um procedimentode receber uma solicitação para descobrir se o sistema decomputador tem um arquivo ou parte de um arquivo (procedi-mento 304). A mensagem recebida pode ser uma solicitação deunicast proveniente de um sistema que tenha o sistema decomputador em uma lista de pares. Em modalidades alternati-vas, a solicitação pode ser unicast sobreposta tal como des-crito anteriormente. Solicitações de multicast também podemser usadas quando não é exigido segurança para o arquivo.
O método 300 inclui adicionalmente um procedimentode enviar uma mensagem de que o sistema de computador tem oarquivo ou parte de um arquivo (procedimento 304). 0 enviode uma mensagem de que o sistema de computador tem o arquivoou parte de um arquivo (procedimento 304) é executado combase em regras dinâmicas de agir para participar/agir paranão participar. Por exemplo, em uma modalidade regras de di-retriz podem considerar a energia de processamento do siste-ma de computador. Um poderoso computador de mesa ou de clas-se de servidor pode ter regras de diretriz que permitam aele agir como um servidor par para mais pares do que outrossistemas 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 siste-mas de computador para agir como um servidor par quando maisde 10% dos recursos de sistemas de computador, estão sendousados. Os recursos de sistema podem ser uma medida da maiorde a carga de CPU e a carga de entrada/saida de disco nosistema. Em uma modalidade alternativa relacionada a compu-tadores portáteis, um computador portátil pode tomar comoreferência uma diretriz que ajusta o número de pares em queo sistema de computadores portáteis 106 pode agir como umservidor par com base no estado de operação do sistema decomputador portátil 10 6. Por exemplo, quando o sistema decomputador portátil 106 é conectado a uma estação de encai-xe, ele pode ser configurado para servir mais pares do quequando não conectado a uma estação de encaixe. Adicionalmen-te, quando o sistema de computador portátil 106 é conectadopor meio de uma conexão com fio, pode ser permitido a eleservir a mais pares do que quando o sistema de computadorportátil 10 6 é conectado em um modo sem fio aos computadorespares. Também em uma outra modalidade alternativa, o númerode pares permitido para se conectar ao sistema de computadorportátil 106 pode ser definido por uma diretriz relacionadaao nivel de bateria. Por exemplo, se o portátil estiver exe-cutando com baterias e tiver menos de 50% da energia então osistema de computador portátil 106 pode seguir uma diretrizque não admita nenhuma conexão de computador par adicional.
O método 300 inclui adicionalmente um procedimentode receber uma solicitação para realizar download do arquivo(procedimento 308) . O método 300 inclui adicionalmente umprocedimento de enviar o arquivo para um sistema solicitante(310). Estes podem ser executados pelo sistema de computadoragindo como um servidor par para outros sistemas em uma re-de .
Referindo-se agora à Figura 4, está ilustrada umamodalidade mostrando um método 400 de efetuar armazenamentoem cache e compartilhar arquivos que inclui vários formatosde mensagens. O método ilustrado na Figura 4 pode ser prati-cado em um sistema de computador em uma rede, onde a redeinclui um ou mais computadores de rede.
O método inclui um procedimento do sistema de com-10 putador enviando um sinal de broadcast para sistemas de com-putador em uma sub-rede para descobrir potenciais pares(procedimento 402). O sinal de broadcast pode indicar um de-sejo para um número predeterminado de respostas. Em uma mo-dalidade alternativa, o broadcast pode incluir vários parâ-metros para permitir que o sistema de computador avaliequaisquer respostas ao sinal de broadcast. Por exemplo, osparâmetros podem levar em conta sincronização de resposta,avaliação de características de hardware de sistemas respon-dendo e outras mais.
O sistema de computador receberá então um sinal deum dos sistemas de computadores em uma sub-rede (procedimen-to 404). Este sinal pode incluir uma listagem de arquivosque podem ser fornecidos, características do sistema envian-do o sinal, etc. O sinal pode ser um sinal de multicast, ouem alguns casos, um sinal de unicast.
O sistema de computador acrescentará o um dos sis-temas de computador na sub-rede a uma lista de pares (proce-dimento 406). A lista de pares inclui não mais do que um nú-mero predeterminado de pares. Por exemplo, a lista de parespode incluir não mais de 100 pares. Isto permite que o sis-tema de computador limite a quantidade de uso de processa-mento e rede necessária para descobrir um arquivo ou partede um arquivo para download.
O sistema de computador envia um sinal de unicastpara o um dos sistemas de computador na sub-rede para desco-brir se o um dos sistemas de computador tem um arquivo ouparte de um arquivo disponível para download (procedimento408). O sistema de computador pode repetir este processo comoutros sistemas de computador para descobrir onde um arquivoou parte de um arquivo pode ser localizado. Notavelmente, ossinais de unicast podem se sobrepor de maneira tal que uni-casts possam ocorrer simultaneamente a partir do mesmo sis-tema de computador.
0 sistema de computador recebe um sinal de unicastdo um dos sistemas de computador na sub-rede indicando que oum dos sistemas de computador na sub-rede tem o arquivo ouparte de um arquivo disponível para download (procedimento410) .
0 sistema de computador pode então realizar down-load do arquivo ou parte de um arquivo do um dos sistemas decomputador na sub-rede (procedimento 412).
Os versados na técnica perceberão que a invençãopode ser praticada em ambientes de computação de rede commuitos tipos de configurações de sistema de computador, in-cluindo computadores pessoais, dispositivos de mão, sistemasmultiprocessadores, aparelhos eletrônicos de consumidor ba-seados em microprocessador ou programáveis, PCs de rede, mi-nicomputadores, computadores de grande porte, e outros mais.A invenção também pode ser praticada em ambientes de compu-tação distribuída onde tarefas são executadas por dispositi-vos de processamento locais e remotos que são ligados (tantopor vínculos conectados fisicamente, vínculos sem fio quantopor uma combinação de vínculos conectados fisicamente ou semfio) através de uma rede de comunicações. Em um ambiente decomputação distribuída, módulos de programa podem ser Ioca-lizados em dispositivos de armazenamento de memória tantolocais quanto remotos.
Modalidades dentro do escopo da presente invençãotambém incluem mídias legíveis por computador para carregarou ter instruções ou estruturas de dados executáveis porcomputador armazenadas nas mesmas. Tais mídias legíveis porcomputador podem ser quaisquer mídias disponíveis que possamser acessadas por um computador de uso geral ou de uso espe-cial. A título de exemplo, e não de limitação, tais mídiaslegíveis por computador podem compreender RAM, ROM, EEPROM,CD-ROM ou outro armazenamento de disco ótico, armazenamentode disco magnético ou outros dispositivos de armazenamentomagnético, ou qualquer outra mídia que possa ser usada paracarregar ou armazenar dispositivos de código de programa de-sejados na forma de instruções ou estruturas de dados execu-táveis por computador e que possa ser acessada por um compu-tador de uso geral ou de uso especial. Quando informação étransferida ou fornecida através de uma rede ou de uma outraconexão de comunicações (tanto conectada fisicamente, semfio, quanto uma combinação de conectada fisicamente ou semfio) para um computador, o computador de vê forma apropriadaa conexão como uma mídia legível por computador. Assim,qualquer tal conexão é denominada de forma apropriada umamídia legível por computador. Combinações das mídias mencio-nadas anteriormente também devem ser incluídas no escopo demídias legíveis por computador. Instruções executáveis porcomputador compreendem, por exemplo, instruções e dados quefazem com que um computador de uso geral, computador de usoespecial, ou dispositivo de processamento de uso especialexecute uma certa função ou grupo de funções.
Embora a matéria em questão tenha sido descrita emlinguagem específica para recursos estruturais e/ou procedi-mentos metodológicos, deve ser entendido que a matéria emquestão definida nas reivindicações anexas não está necessa-riamente limitada aos recursos ou procedimentos específicosdescritos anteriormente. Em vez disso, os recursos e proce-dimentos específicos descritos anteriormente estão reveladoscomo formas de exemplo de implementar as reivindicações.
A presente invenção pode ser incorporada em outrasformas específicas sem fugir de seu espírito ou caracterís-ticas essenciais. As modalidades descritas devem ser consi-deradas sob todos os pontos de vista somente como ilustrati-vas e não restritivas. Portanto, o escopo da invenção é in-dicado pelas reivindicações anexas em vez de pela descriçãoanterior. Todas as mudanças que aconteçam dentro do signifi-cado e faixa de equivalência das reivindicações devem serabrangidas como dentro de seu escopo..

Claims (12)

1. Método de armazenamento em cache e compartilha-mento de arquivos em um sistema de computador em uma rede decomputador incluindo um ou mais computadores em rede,CARACTERIZADO pelo fato de que compreende os atos de:construir uma lista de pares (202) compreendendouma listagem de servidores pares potenciais dentre os um oumais computadores em rede, a lista de pares incluindo nãomais do que um número predeterminado de servidores pares po-tenciais, em que construir uma lista de pares compreende:(a) enviar uma solicitação a um ou maispares potenciais incluindo uma indicação de um número de pa-res desejado;(b) receber respostas de mensagem dos pa-res potenciais (102-110), em que os pares potenciais esperamum intervalo de tempo aleatório, enquanto escutam respostasde multicast de outros pares potenciais, e em que os parespotenciais detectam respostas dos outros pares potenciais edeterminam o número de respostas de outros pares potenciaise apenas enviam respostas se os pares potenciais não detec-taram o número de respostas correspondendo ao número de pa-res desejado, de outros pares potenciais, e não enviam res-postas se detectaram o número de respostas de outros parespotenciais indicados no número de pares desejado;(c) com base em mensagens recebidas de pa-res potenciais, adicionar pares potenciais que enviaram res-postas como servidores potenciais para a lista de pares atéo número predeterminado com base em mensagens recebidas dosum ou mais computadores em rede, e em que servidores poten-ciais são adicionados à lista de pares de acordo com aproxi-mação lógica dos servidores potenciais ao sistema de compu-tador;(d) remover servidores potenciais da listade pares; e(e) repetir os atos (a) a (c) quando umnúmero predeterminado de servidores potenciais tiverem sidoremovidos da lista de pares;consultar servidores pares potenciais (206) nalista de pares para um arquivo (116) ou parte de um arquivo;receber uma mensagem (208) de um servidor par nalista de pares de que o servidor par tem o arquivo (116) ouparte de um arquivo disponível para download; erealizar download (210) do arquivo (116) ou partede um arquivo do servidor par.
2. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que os pares potenciais (102-110)que esperam por um pequeno intervalo de tempo aleatório usamum retardo aleatório logaritmico calculado como:RETARDO= MAX_DELAY*Log(C*X+1)/Log(C+1),onde RETARDO é o retardo antes de responder,MAX_DELAY é a quantidade máxima de tempo dada para receberrespostas, X é um número aleatório e C é um número arbitrá-rio, para determinar a quantidade de tempo a esperar antesde responder.
3. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que enviar e receber são feitoscom computadores em uma mesma primeira sub-rede.
4. Método, de acordo com a reivindicação 3,CARACTERIZADO pelo fato de que compreende adicionalmenteconstruir uma segunda lista de pares (120) pela desconexãoda primeira sub-rede, pela conexão a uma segunda sub-rede,pelo envio de uma solicitação; e receber respostas dos com-putadores na segunda sub-rede.
5. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que construir uma lista de pares(202) compreende os atos de:receber um auto-anúncio com um pacote de multicastde um par potencial (102-110), em que o auto-anúncio incluiuma indicação de que o par potencial (102-110) tem arquivosque podem ser servidos a computadores na rede; eadicionar o par potencial (102-110) à lista de pares.
6. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a solicitação inclui a iden-tificação de um grupo de confiança.
7. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que compreende adicionalmente umato de determinar que o arquivo ou parte de um arquivo nãoestá disponível a partir de nenhum dos computadores na listade pares e em resposta à determinação de que o arquivo ouparte de um arquivo não está disponível a partir de nenhumdos computadores na lista de pares, realizar o download doarquivo ou parte de um arquivo de um servidor central (114).
8. <claim missing in original page>
9. <claim missing in original page>
10. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que compreende adicionalmente au-tenticar computadores na lista de pares (204) antes de con-sultar computadores na lista de pares para um arquivo ou umaparte de um arquivo (206).
11. Método de armazenamento em cache e comparti-lhamento de arquivos em um primeiro sistema de computador emuma rede de computador incluindo um ou mais sistemas de com-putador em rede, CARACTERIZADO pelo fato de que compreendeos atos de:receber uma solicitação (304), a solicitação sendoenviada a um ou mais pares potenciais e incluindo uma indi-cação de um número de pares desejado;esperar um intervalo de tempo aleatório, enquantoescuta respostas de multicast de outros pares potenciais, edetectar respostas de outros pares potenciais para determi-nar o número de respostas de outros pares potenciais e ape-nas enviar respostas à solicitação se o número de respostascorrespondendo ao número de pares desejado não tiver sidodetectado, e não enviar respostas se o número de respostasde outros pares potenciais indicados no número de pares de-sejado tiver sido detectado;detectar após a expiração do intervalo de tempoaleatório que o número de respostas correspondendo ao númerode pares desejado não foi detectado e, como resultado, envi-ar uma mensagem a um ou mais sistemas de computador em umamesma sub-rede como o primeiro sistema de computador de queo primeiro sistema de computador está disponível como umpar;como resultado do envio de uma mensagem a um oumais sistemas de computador em uma mesma sub-rede como oprimeiro sistema de computador de que o primeiro sistema decomputador está disponível como um par, receber uma solici-tação de um sistema solicitante para descobrir se o primeirosistema de computador tem um arquivo ou parte de um arquivo;em resposta à solicitação para descobrir se o pri-meiro sistema de computador tem um arquivo ou parte de umarquivo, enviar uma mensagem (306) ao sistema solicitante deque o primeiro sistema de computador tem o arquivo ou partede um arquivo;como resultado do envio de uma mensagem de que oprimeiro sistema de computador tem o arquivo ou parte de umarquivo, receber uma solicitação (308) do sistema solicitan-te para realizar download do arquivo; eem resposta ao recebimento de uma solicitação pararealizar download do arquivo, enviar o arquivo (310) para osistema solicitante.
12. Método de armazenamento em cache e comparti-lhamento de arquivos em um sistema de computador em uma redede computador incluindo um ou mais computadores em rede,CARACTERIZADO pelo fato de que compreende os atos de:(a) enviar um sinal de broadcast (402) a sistemasde computador em uma sub-rede para descobrir pares potenci-ais, o sinal de broadcast incluindo uma indicação de um nú-mero de pares desejado;(b) receber um sinal de resposta de um dos siste-mas de computador na sub-rede, em que o um dos sistemas decomputador espera um intervalo de tempo aleatório, enquantoescuta respostas de multicast de outros pares potenciais, eem que o um dos sistemas de computador detecta respostas dosoutros pares potenciais e determina o número de respostas deoutros pares potenciais e apenas envia o sinal de respostase o um dos sistemas de computador não detectou o número derespostas de outros pares potenciais correspondendo ao núme-ro de pares desejado, e não envia um sinal de resposta setiver detectado o número de respostas de outros pares poten-ciais indicados no número de pares desejado;(c) seletivamente, adicionar o um dos sistemas decomputador na sub-rede a uma lista de pares (406) com basena aproximação lógica do um dos sistemas de computador, emque a lista de pares compreende não mais do que um númeropredeterminado de pares;(d) remover pares da lista de pares;(e) seletivamente, adicionar pares à lista de pa-res quando um número predeterminado de pares tiver sido re-movido da lista de pares;(f) enviar um sinal de unicast ao um dos sistemasde computador na sub-rede para descobrir se o um dos siste-mas de computador tem um arquivo ou parte de um arquivo dis-ponível para download;(g) receber um sinal de unicast do um dos sistemasde computador na sub-rede indicando que o um dos sistemas decomputador na sub-rede tem o arquivo ou parte de um arquivodisponível para download; e(h) realizar download do arquivo ou parte de umarquivo (412) do um dos sistemas de computador na sub-rede.
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 2005-08-30
US11/215,621 US7512943B2 (en) 2005-08-30 2005-08-30 Distributed caching of files in a network
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 true BRPI0614925A2 (pt) 2011-04-19
BRPI0614925B1 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
US7801868B1 (en) * 2006-04-20 2010-09-21 Datascout, Inc. Surrogate hashing
US7774385B1 (en) 2007-07-02 2010-08-10 Datascout, Inc. Techniques for providing a surrogate heuristic identification interface
US7991206B1 (en) 2007-07-02 2011-08-02 Datascout, Inc. Surrogate heuristic identification
US8549022B1 (en) 2007-07-02 2013-10-01 Datascout, Inc. Fingerprint generation of multimedia content based on a trigger point with the multimedia content
US8463000B1 (en) 2007-07-02 2013-06-11 Pinehill Technology, Llc Content identification based on a search of a fingerprint database
US7840540B2 (en) 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US8156132B1 (en) 2007-07-02 2012-04-10 Pinehill Technology, Llc Systems for comparing image fingerprints
US9020964B1 (en) 2006-04-20 2015-04-28 Pinehill Technology, Llc Generation of fingerprints for multimedia content based on vectors and histograms
US7814070B1 (en) * 2006-04-20 2010-10-12 Datascout, Inc. Surrogate hashing
WO2008033424A2 (en) * 2006-09-12 2008-03-20 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
WO2009095461A1 (en) * 2008-01-30 2009-08-06 International Business Machines Corporation Method and system of updating a plurality of computers
US8458285B2 (en) 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US7636759B1 (en) * 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US7599997B1 (en) 2008-08-01 2009-10-06 Gene Fein Multi-homed 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
US9848314B2 (en) * 2008-05-19 2017-12-19 Qualcomm Incorporated Managing discovery in a wireless peer-to-peer network
US9198017B2 (en) * 2008-05-19 2015-11-24 Qualcomm Incorporated Infrastructure assisted 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
US8478823B2 (en) 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8352635B2 (en) * 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted 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
WO2012154287A2 (en) * 2011-02-28 2012-11-15 Bittorrent, Inc. Peer-to-peer live streaming
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
EP1364277A4 (en) * 2001-01-25 2005-03-30 David Sidman DEVICE, METHOD AND SYSTEM FOR ESTABLISHING INFORMATION ACCESS IN A PEER ENVIRONMENT
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
WO2007027361A3 (en) 2008-01-24
CN101253488B (zh) 2010-06-02
US7512943B2 (en) 2009-03-31
US20070050761A1 (en) 2007-03-01
CN101253488A (zh) 2008-08-27
CA2616916A1 (en) 2007-03-08
RU2413981C2 (ru) 2011-03-10
EP1922615A4 (en) 2009-09-02
KR20080047353A (ko) 2008-05-28
JP4943437B2 (ja) 2012-05-30
WO2007027361A2 (en) 2007-03-08
EP1922615A2 (en) 2008-05-21
MX2008002505A (es) 2008-04-07
KR101322947B1 (ko) 2013-10-29
BRPI0614925B1 (pt) 2018-04-24
JP2009506455A (ja) 2009-02-12
EP1922615B1 (en) 2016-06-15
NO20080273L (no) 2008-03-31
RU2008107742A (ru) 2009-09-10

Similar Documents

Publication Publication Date Title
BRPI0614925A2 (pt) método de armazenamento em cache e compartimento de arquivos
Czerwinski et al. An architecture for a secure service discovery service
US8560654B2 (en) Change management
US7783777B1 (en) Peer-to-peer content sharing/distribution networks
Hodes et al. An architecture for secure wide-area service discovery
US7263560B2 (en) Decentralized peer-to-peer advertisement
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
EP1253766B1 (en) Peer group name server
US7644182B2 (en) Reconfiguring a multicast tree
JP5855867B2 (ja) コンテンツ中心ネットワークを介するサービス仮想化
Zhang et al. Distributed hash table: Theory, platforms and applications
US20090157829A1 (en) Peer-to-peer service system and method using e-mail service
KR20120067949A (ko) 콘텐츠 중심 네트워크에서 네트워크 주소 변환기를 갖는 관리자 라우팅
US20080040420A1 (en) Content distribution network
US8219614B2 (en) Edge peer device, pan gateway device, super peer device, and P2P network-based interconnection method
JP2009534939A (ja) アクティブなデバイスのリストなど動的データの発見および取出しのためのアドホックプロキシ
El Dick et al. Flower-CDN: a hybrid P2P overlay for efficient query processing in CDN
El Dick et al. Building a peer-to-peer content distribution network with high performance, scalability and robustness
KR20120067948A (ko) 콘텐츠 중심 네트워크에서 sip-기반 관리자 라우팅
JP5798638B2 (ja) ピアツーピアネットワーク内のトラフィック位置特定
Ahmed et al. Service discovery protocols: A comparative study
Durmus et al. Service knowledge discovery in smart machine networks
Vithoft et al. SP2MS: a MANET-based P2P service

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.