Autor: William Roger Salabert da Silva
Programa de Engenharia Elétrica COPPE-UFRJ
wroger90@ig.com.br
Publicado em 11 de junho de 2003
Última revisão em 11 de junho de 2003
O presente trabalho tem por objetivo trazer uma clara definição dos conceitos por trás
da arquitetura de rede de pares "peer-to-peer" (P2P) e exemplificar sua atual aplicabilidade tecnológica.
Ele inicia definindo os conceitos de rede P2P pura, cliente-servidor e P2P híbrida
que serão utilizados nas páginas seguintes.
Trata das condições da internet que favoreceram
o sucesso das primeiras aplicações de larga escala.
Classifica analisa e compara algumas das aplicações
mais populares de P2P ( Freenet, Gnutella e Napster).
Faz um estudo das tecnologias disponíveis para o desenvolvimento
em P2P com detalhamento da arquitetura justaposta "JXTA".
Terminando por descrever o uso de P2P em redes móveis "Ad Hoc"
com um levantamento dos principais problemas encontrados e diferenças em relação às redes P2P na Internet.
Para melhor tratarmos o assunto antes de mais nada é necessário defini-lo.
Um problema básico encontrado em publicações e discussões sobre o tema é a situação
confusa criada pelo uso, muitas vezes ambíguo, da expressão ''Peer-to-Peer" para
classificar rede de pares, doravante denominada P2P.
O principal objetivo dessa seção é deixar claras as diferenças entre os conceitos de
arquitetura de rede P2P, com suas diferentes facetas, e cliente-servidor .
Para tal seguiremos as definições propostas em [Rudi02] que além das
arquiteturas P2P e cliente-servidor "puras" considera também a possibilidade de uma arquitetura ' P2P híbrida '
como forma de classificar arquiteturas que mesmo consideradas P2P não se enquadram como
puras.
De forma geral a principal diferença entre as arquiteturas P2P e cliente-servidor é o conceito
de entidades atuando como Serventes ou "Servents" um neologismo derivado das palavras
servidor e cliente. Os Servents - como soa melhor - representam a capacidade dos nós da
rede de atuarem "ao mesmo tempo" como servidores e clientes. O que é diferente das
arquiteturas cliente-servidor onde os nós podem atuar como clientes ou como servidores
mas não podem conjugar ambas capacidades.
Esses conceitos são consolidados na seguinte definição elaborada em [Kell98]
" Uma arquitetura de rede distribuída pode ser chamada Peer-to-Peer (P-to-P, P2P, ...)
se os participantes compartilharem parte de seus próprios recursos de hardware
( poder de processamento, capacidade de armazenamento, banda de rede, impressoras, ...) .
Esses recursos são necessários para prover os serviços e conteúdo oferecidos pela rede
(ex. compartilhamento de arquivos ou espaços de trabalho para colaboração mútua).
Os serviços e recursos são acessíveis por todos os pares sem necessidade de passar por
nenhuma entidade intermediária. Os participantes dessa rede são tanto provedores de
recursos ( serviços e conteúdo ) como demandadores desses mesmos recursos
(conceito de Servent). "
Entretanto dentro deste conceito de arquitetura P2P ainda existe uma clara subdivisão
entre arquiteturas com, no caso do Napster, e sem uma entidade central, tipo Freenet .
Estas a serem consideradas "puras" e aquelas "híbridas".
Essas idéias foram consolidadas em [Rudi02] nas
seguintes definições:
" Uma arquitetura de rede distribuída pode ser classificada como P2P 'pura',
se em primeiro lugar for P2P conforme a definição anterior e em segundo lugar se qualquer
entidade terminal da rede puder ser individualmente removida sem que a rede sofra
qualquer perda em termos de 'serviço'. "
O conceito de arquitetura P2P híbrida se diferencia pela existência de uma entidade central,
conforme a definição a seguir [Rudi02]
" Uma arquitetura de rede distribuída deve ser classificada como P2P 'híbrida'
se em primeiro lugar for P2P conforme a primeira definição e em segundo lugar tiver a necessidade
de uma entidade central para prover parte dos serviços da rede. "
Em oposição ao conceito de cliente-servidor:
" Uma rede cliente-servidor possui uma arquitetura distribuída com um sistema de
alta performace , o servidor, e vários clientes , de menor performace . O servidor é uma unidade
central de registro e também o único provedor de serviço e conteúdo. Um cliente somente faz
requisições de conteúdo ou execução de serviços ao servidor, sem compartilhar nenhum de seus
próprios recursos."
Fica claro que a principal diferença entre as arquiteturas P2P híbrida e cliente-servidor está no
papel dos clientes que no primeiro caso compartilham entre si seus recursos de hardware bem como
podem prover conteúdo e serviços à rede.
Consideramos importante introduzir o tema deixando claro o significado dos conceitos por traz
do modelo P2P, uma vez que após a leitura de vários artigos sobre o tema ficou evidente que o
principal problema nas discussões e publicações são as diferentes opiniões muitas vezes contraditórias
sobre o que é P2P.
Tendo em mente esses conceitos nas seções a seguir desenvolveremos a descrição dos
principais usos tendências de P2P.
Topo -- Próxima >>