domingo, 3 de janeiro de 2010

Plataformas, Frameworks e 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.

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.

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.

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, Azureus e agora o Shareaza.

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.

Kad Network

Rede paralela do programa eMule introduzida pelo autor deste 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.

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.

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.

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.

DNS

O DNS (Domain Name System – Sistema de Nomes de Domínios) é um exemplo de sistema que mistura os conceitos de rede peer-to-peer com um modelo hierárquico de posse da informação. O mais incrível do DNS é quão bem ele tem escalado, dos poucos milhares de hospedeiros que ele foi projetado para suportar, em 1983, para as centenas de milhões de hospedeiros atualmente na Internet. Os problemas encontrados pelas aplicações P2P atuais, tais como compartilhamento de arquivos, são os mesmos problemas que foram resolvidos pelo DNS há 10 ou 15 anos atrás. Assim, vários elementos-chave no projeto do DNS são replicados nos sistemas distribuídos atuais. Um elemento é que hospedeiros podem operar tanto como clientes quanto como servidores. O segundo elemento é um método natural de propagar as requisições de dados pela rede. A carga é naturalmente distribuída pela rede, tanto que qualquer servidor individual de nomes só precisa servir as demandas dos seus clientes e o espaço de nomes que ele gerencia.

BitTorrent

BitTorrent é um sistema de download de arquivos P2P. A idéia basica é que quando um usuário procura por um arquivo, ele baixa “pedaços” do arquivo de outros usuários até que o arquivo fique completo. Um importante objetivo de projeto foi garantir colaboração. Na maioria dos sistemas de compartilhamento de arquivo, uma fração significante dos usuários somente baixa os arquivos e contribuem perto de nada . Para isso, um arquivo pode ser baixado somente quando o cliente que está baixando também está provendo conteúdo para alguém.

Redes, protocolos e aplicativos

•Ares: Ares Galaxy, Warez P2P, AlterGalaxy

•BitTorrent: AllPeers, ABC [Yet Another BitTorrent Client], Azureus, BitComet, BitSpirit, BitTornado, BitLord, Burst!, G3 Torrent, KTorrent, mlMac, MLDonkey, QTorrent, Shareaza, Transmission,Tribler, µTorrent

•CSpace: Uma rede peer-to-peer baseda em sistemas de comunicações

•Direct Connect: DC++, NeoModus Direct Connect, BCDC++, ApexDC++, StrongDC++

•Domain Name System

•eDonkey: aMule, eDonkey2000 (descontinuado), eMule, DreaMule, LMule, MLDonkey, mlMac, Shareaza, xMule, iMesh

•FastTrack: AlterGalaxy, giFT, Grokster, iMesh, iMesh Light (sem adware), Kazaa, Kazaa Lite (sem adware), KCeasy, Mammoth, MLDonkey, mlMac, Poisoned

•Freenet: Entropy (em sua própria rede), Freenet

•GNUnet: GNUnet, (GNUnet-gtk)

•Gnutella: AlterGalaxy, Acquisition, BearShare, Cabos, Gnucleus, Grokster, iMesh, gtk-gnutella, Kiwi Alpha, LimeWire, FrostWire, MLDonkey, mlMac, Morpheus, Phex, Poisoned, Swapper, Shareaza, XoloX

•Gnutella2: Adagio, Caribou, Gnucleus, iMesh, Kiwi Alpha, MLDonkey, mlMac, Morpheus, Shareaza, TrustyFiles

•Kad (rede) (usando o protocolo Kademlia): aMule, eMule, MLDonkey

•MANOLITO/MP2P: Blubster, Piolet

•MFPnet: Amicima

•Napster: Napigator, OpenNap, WinMX

•P2PTV type networks: TVUPlayer, CoolStreaming, Cybersky-TV, TVants

•Peercasting type networks: PeerCast, IceShare, FreeCast

•Pichat protocolo: Pichat, Pidgin, Moonchat, C4

•SoulSeek: SoulSeek, Nicotine

•Usenet

•WPNP: WinMX

•ZPoC

Direitos Autorais

•As redes P2P são acusadas no mundo todo de ferir os direitos autorais, por disponibilizar arquivos sem a autorização dos proprietários do copyright. Muitos usuários destas redes P2P defendem que a ausência de lucro na reprodução do copyright não deveria ser criminalizado. No Brasil, a lei dos direitos autorais, proíbe qualquer tipo de reprodução de conteúdo protegido que não seja autorizado (art. 105).

Caso do Napster

Os desenvolvedores do Napster argumentaram que eles não eram culpados pelo infrigimento dos direitos autorais porque eles não participavam do processo de cópia, que foi interamente realizado por máquinas de usuários. Esse argumento foi derrubado porque os servidores de indexação foram anexados como parte essencial do processo. Como esses servidores eram localizados em endereços conhecidos, os seus operadores foram incapazes de se manterem anônimos e então se tornaram alvos dos processos.

Um sistema de compartilhamento mais distribuído teria alcançado uma maior separação legal de responsabilidades, distribuindo a responsabilidade entre todos os usuários do Napster, e tornando o processo muito difícil, senão impossível.

Qualquer que seja a visão que alguém tenha sobre a legitimidade de cópia de arquivos para o propósito de compartilhamento de material protegido por direitos autorais, existe uma legítima justificativa social e política para a anonimidade de clientes e servidores em alguns contextos de aplicações. A justificativa mais persuativa é usada quando anonimidade é utilizada para superar censura e manter a liberdade de expressão para indivíduos em sociedades e organizações opressivas.




Fonte: http://www.redesbr.com/

0 comentários:

Postar um comentário