P2P

Origem: Wikipédia, a enciclopédia livre.

O P2P ou Peer-to-Peer(Par-a-Par) é uma tecnologia para estabelecer uma espécie de rede de computadores virtual, onde cada estação possui capacidades e responsabilidades equivalentes. Difere da arquitetura cliente/servidor, no qual alguns computadores são dedicados a servirem dados a outros. Esta definição, porém, ainda é demasiado sucinta para representar todos os significados do termo Peer-to-Peer.

Índice

[editar] Conceito

Geralmente, uma rede Peer-to-Peer é constituída por computadores ou outros tipos de unidades de processamento que não possuem um papel fixo de cliente ou servidor, pelo contrário, costumam ser considerados de igual nível e assumem o papel de cliente ou de servidor dependendo da transação sendo iniciada ou recebida de um outro par da mesma rede.

Os nós da rede Par-a-Par podem diferir em termos de configuração local, capacidade de processamento, capacidade de armazenamento, largura de banda, entre outras características particulares. O primeiro uso da expressão Peer-to-Peer foi em 1984, com o desenvolvimento do projeto Advanced Peer-to-Peer Networking Architecture na IBM.

O termo é utilizado em diferentes tecnologias que adotam um modelo conceitual ponto-a-ponto (em Portugal, conhecido como par-a-par), tal como o protocolo NNTP (para Usenet News), SMTP (para envio de mensagens eletrônicas - e-mail), e sistemas de troca de mensagens instantâneas (ICQ, MSN). Porém, o termo tornou-se popular com o surgimento de aplicações de compartilhamento de arquivo, em outras palavras, programas que possibilitam a distribuição de arquivos em rede, permitindo o acesso de qualquer usuário dessa rede a este recurso. Outros tipos de recursos podem ser compartilhados em redes Par-a-Par, tal como capacidade de processamento de máquinas, espaço de armazenamento de arquivos, serviços de programas (software, em inglês) - analogamente aos Web Services, entre outros.

Em 1999, Shawn Fanning criou o Napster, para compartilhamento de arquivos de música (principalmente MP3), e trouxe o conceito de Par-a-Par para a mídia, principalmente após tornar-se alvo de ataques jurídicos por parte das companhias fonográficas.

Após o Napster, dezenas de outras aplicações Par-a-Par foram lançadas: DreaMule, Ares, LimeWire, iMesh, WinMX, AudioGalaxy, Kazaa, Gnutella, Freenet, Shareaza, eDonkey, eMule, aMule, Bearshare, ANts P2P, entre outros.

[editar] Arquitetura Peer-to-Peer

O Napster e outras aplicações intituladas Peer-to-Peer, tais como o IRC e o ICQ, são baseadas em uma arquitetura cliente/servidor, pelo menos para algumas tarefas críticas, como indexação de informação. Por outro lado, redes como Gnutella e Freenet usam uma arquitetura Peer-to-Peer pura, sem nenhuma centralização de tarefas.

Aparentemente mal empregado, o termo Peer-to-Peer, quando usado para aplicações como o Napster, ressaltam a importância do papel exercido pelos nós da rede. Estes passam a servir como provedores de informação, e não apenas consumidores passivos; ainda que de acordo com pesquisadores do Xerox PARC, 70% dos usuários não contribuem com nenhum arquivo, enquanto 1% dos pares é responsável por 50% dos arquivos disponíveis.

A arquitetura completamente descentralizada do Gnutella faz com que os usuários tenham o mínimo de contato com o servidor central, o que além de promover maior escalabilidade ao sistema, serve de estratégia para evitar os problemas judiciais que terminaram com o Napster.

No entanto, aplicações Peer-to-Peer “puras” são raras. A maioria das arquiteturas Peer-to-Peer é híbrida, utilizando alguns elementos centralizadores na execução de tarefas cujo desempenho é crítico. Redes completamente descentralizadas já foram usadas anteriormente em aplicações de propósito específico, como a Usenet (1979) e a FidoNet (1984). Porém, as questões de desempenho induzem a uma centralização parcial das atividades em pares de maior capacidade. Outras técnicas têm sido desenvolvidas visando o aperfeiçoamento de sistemas Peer-to-Peer.

[editar] Plataformas e Frameworks para Aplicações Peer-to-Peer

Inicialmente, as aplicações Peer-to-Peer surgiram monolíticas, ou seja, o programa precisava implementar seu próprio protocolo de comunicação Peer-to-Peer para permitir a interoperabilidade entre os nós constituintes do seu sistema em rede. Porém, além de um grande re-trabalho, estes esforços em requisitos não-funcionais das aplicações implicavam na impossibilidade de comunicação entre sistemas diferentes, mesmo que os serviços providos por eles fossem equivalentes. Por exemplo, arquivos compartilhados em sistemas como o Kazaa, eMule e Gnutella ficam acessíveis exclusivamente dentro de suas próprias redes, levando usuários a manterem instalados em suas máquinas clientes para cada um dos sistemas de compartilhamento de arquivos que pretenda usar.

Com a popularização deste tipo de aplicação, surgiu um esforço em prover plataformas para desenvolvimento de aplicações Peer-to-Peer, de tal maneira que estas possam comunicar-se entre si. Entre elas, destacam-se o JXTA, o Windows Peer-to-Peer Networking e o XNap.

O JXTA e o Windows Peer-to-Peer Networking são especificações de protocolos Peer-to-Peer e de uma API para utilização dos serviços, sendo o primeiro com implementações em Java e em C.

O XNap provê, além de uma API de serviços Peer-to-Peer, também um framework para desenvolvimento das aplicações em si, incluindo recursos de interface gráfica com o usuário. Um Framework Peer-to-Peer, portanto, vai além de uma plataforma para comunicação Peer-to-Peer, provendo serviços adicionais não necessariamente relacionados com a comunicação em si, mas indispensáveis para o desenvolvimento rápido de aplicações baseadas nesta arquitetura.

Outros exemplos de frameworks para desenvolvimento de aplicações Peer-to-Peer são o Oog (Duke University), o Lancaster´s P2P Framework (University of Lancaster) e o COPPEER (UFRJ), sendo os dois últimos abstrações construídas sobre o JXTA.

[editar] Exemplos de Frameworks de Aplicações Peer-to-Peer

[editar] Exemplos de Aplicações Peer-to-Peer

[editar] Kademlia

Kademlia é conceito de rede altamente descentralizada baseada em "nós" de rede. Os próprios usuários constituem a estrutura da rede dispensando servidores. Várias redes utilizam o conceito Kademlia.

[editar] Overnet

A rede Overnet é uma espécie de eDonkey "paga". É preciso comprar o programa da empresa que a desenvolveu. É uma variante do eDonkey totalmente descentralizada e mais rápida seguindo o conceito Kademlia e foi a primeira implementação da mesma

[editar] Gnutella

Rede open-source surgida no final de 2000 utilizada inicialmente por usuários do sistema Linux. Possui uma estrutura altamente descentralizada não havendo mesmo nenhum servidor central sequer. Os usuários constituem a estrutura da própria rede. Entre os programas que a utilizam, estão o BearShare , LimeWire e agora o Shareaza.

[editar] Gnutella 2

Segundo projeto da rede Gnutella mas agora com servidores centrais optimizando buscas e o desempenho geral da rede. É conhecida principalmente no programa Shareaza. Recebeu críticas quando foi criada pelos criadores da Gnutella original.

[editar] Kad Network

Rede paralela do programa eMule introduzida pelo autor do mesmo em 2004; é uma implementação fiel ao conceito Kademlia. Essa rede tinha por objetivo inicial, oferecer mais fontes aos usuários do programa e mais tarde se tornar uma rede P2P completa.

[editar] OpenFT

OpenFT é um protocolo desenvolvido pelo projeto giFT. O nome "OpenFT" significa "Open FastTrack". Entretanto, o OpenFT é um protocolo completamente novo, apenas algumas poucas vieram do pouco que se sabia sobre a FastTrack quando o OpenFT foi desenvolvido. Assim como a FastTrack, o OpenFT é uma rede onde nodos enviam listas de arquivos compartilhados para outros nodos. Isso reduz o consumo de banda necessário para a pesquisa, entretanto, consumindo mais recursos do processador e mémoria nos nodos.

[editar] AudioGalaxy

Projeto antigo da empresa de mesmo nome, o Audiogalaxy centralizava todo o seu acervo indexando-o em seu sítio oficialmente. Foi facilmente fechada por um processo judicial na Inglaterra. Era uma implementação de FTPs sendo mais superficial ao usuário.

[editar] SoulSeek

Rede introduzida para trocas de músicas em 2000. Utiliza programa de mesmo nome. Caracteriza-se pelo fato de ter um grande número de arquivos raros, e principalmente música alternativa. O programa cliente tem uma interface simplificada, e permite a adição de usuários em uma hotlist, ou seja, uma lista de contatos que permite saber quando um usuário que tem arquivos relevantes está conectado à rede. Também há na rede SoulSeek um serviço de bate-papo (chat) parecido com o IRC, que possibilita uma melhor interação entre os usuários, que também podem criar seus próprios canais de chat.

[editar] Redes, protocolos e aplicativos

[editar] Aplicativos multi-redes

[editar] Projetos de Pesquisa

[editar] Direitos Autoriais

  • As redes p2p são acusadas no mundo todo de ferir os direitos autorais, por disponibilizar arquivos sem o consentimento dos proprietários do copiright.
  • Contudo, baixar ou disponibilizar arquivos de filmes, músicas, jogos, etc... não constitui crime ou contravenção no Brasil.

A lei sobre direitos do autor penaliza apenas reproduções não autorizadas com intuito de lucro. Usar as redes p2p para baixar arquivos para uso pessoal é legal...

Ferramentas pessoais