Redes de Computadores

Sobre Peer-to-Peer / P2P

Distribuição Horizontal
A organização de uma aplicação cliente-servidor numa arquitetura multi-camadas distribui o processamento colocando componentes logicamente diferentes em máquinas diferentes. A essa distribuição se dá o nome de distribuição vertical. Uma distribuição vertical facilita o gerenciamento dos sistemas pois divide as funções lógica e fisicamente entre várias máquinas, onde cada máquina é responsável por um grupo especifico de funções.

Uma abordagem alternativa à distribuição horizontal, bastante comum nas arquiteturas modernas, se baseia na distribuição dos clientes e dos servidores, o que se chama de distribuição horizontal. Nessa distribuição, um cliente ou um servidor pode estar fisicamente dividido em partes logicamente equivalentes, onde cada parte opera sobre a sua própria porção dos dados, o que balanceia a carga. Os sistemas peer-to-peer se baseiam na distribuição horizontal.

Olhando de uma perspectiva de alto nível, os processos que constituem um sistema peer-to-peer são todos iguais. Isso significa que as funções necessárias devem estar em todos os processos que constituem o sistema distribuído. Como consequência, a maior parte da interação entre os processos é simétrica: cada processo atua como um “cliente” e um “servidor” ao mesmo tempo.

Características
Sistemas peer-to-peer compartilham essas características:
- O seu design garante que cada usuário contribui com recursos para o sistema.
- Apesar de que eles podem diferir nos recursos que contribuem, todos os nodos em um sistema peer-to-peer possuem as mesmas capacidades funcionais e responsabilidades.

Descentralização

A correta operação de sistemas P2P não depende da existência de um sistema de administração centralizado. Assim, sistemas P2P se confudem com sistemas descentralizados. Num sistema totalmente descentralizado, não só todos os hospedeiros são iguais, mas também não há hospedeiros com atribuições especiais, como administração e descoberta de serviços. Na prática, construir sistemas totalmente descentralizados pode se tornar difícil, o que faz os projetistas geralmente adotarem paradigmas híbridos na construção de aplicações P2P. O DNS por exemplo, é um protocolo peer-to-peer, porém com um senso embutido de hierarquia. Há outros exemplos de sistemas P2P no seu núcleo e com alguma organização semi-centralizada, como o Napster e BitTorrent.

Heterogeneidade

Em redes peer-to-peer, a heterogeneidade dos recursos envolvidos é uma preocupação que deve ser levada em conta durante o seu projeto. Computadores e conexões administrados por diferentes usuários e organizações não têm garantias de ficarem ligados, conectados ou sem falhas, o que os torna necessariamente recursos voláteis. Isso torna a disponibilidade dos nodos de uma rede peer-to-peer imprevisível. Essa imprevisibilidade não permite garantir acesso a recursos individuais, já que eles podem falhar. Para contornar isso, é possível lançar mão da técnica de replicação, diminuindo consideravelmente a probabilidade de falha ao acessar um objeto replicado. A replicação pode também tornar o sistema mais confiável se utilizada para neutralizar a ação de nodos maliciosos, que interceptam o sistema e corrompem os dados, através de técnicas de tolerância à falhas bizantinas.

Sistemas Híbridos

Os sistemas centralizados são simples de implementar e gerenciar, entretanto são um gargalo em potencial, uma vez que o servidor central tem capacidade limitada e pode não suportar o aumento da demanda. Por outro lado, os sistemas descentralizados são escaláveis e robustos, mas isso demanda certa complexidade de implementação, principalmente nas questões de tolerância à falhas e descoberta de recursos. Muitos sistemas distribuídos combinam características das duas arquiteturas, parte do sistema no tradicional modelo cliente-servidor e outra parte peer-to-peer.

Estruturas híbridas são implantadas notavelmente em sistemas distribuídos colaborativos. A principal preocupação em muitos desses sistemas é como se juntar ao sistema, para o qual muitas vezes um esquema tradicional cliente-servidor é adotado. Uma vez que o nodo se junta ao sistema, ele pode utilizar um esquema totalmente descentralizado para colaboração. Um exemplo de servidor que utiliza essa abordagem é o BitTorrent.

Para um usuário de um serviço de comunicação instantânea, a aplicação parece peer-to-peer ao enviar os dados diretamente ao amigo sendo contactado. Mas todos os serviços de comunicação instantânea possuem uma espécie de servidor por trás que facilita a comunicação entre os nodos. Por exemplo, o servidor mantém uma associação entre o nome do usuário e o seu endereço IP, grava mensagens quando o usuário está offline, e roteia mensagens para usuários que estão atrás de firewalls. Um sistema totalmente descentralizado de comunicaçao instantânea não iria funcionar na Internet de hoje, mas existem grandes vantagens de escalabilidade em pemitir comunicação cliente-cliente, quando possível. Assim, grande parte dos sistemas utiliza um esquema de diretório centralizado enquanto a função é distribuída.

Rede

P2P / Peer-to-Peer by Rede on March 10th, 2008
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.

Arquitetura Peer-to-Peer by Rede on March 10th, 2008
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.

Redes P2P estruturadas e não-estruturadas by Rede on July 5th, 2009
Redes P2P estruturadas e não-estruturadas Rede Sobreposta Um conceito importante do paradigma P2P é a rede sobreposta, ou rede overlay.

Requisitos de uma Aplicação Peer-to-Peer by Rede on June 23rd, 2009
Para funcionar eficientemente, sistemas peer-to-peer devem se preocupar com os seguintes requisitos não-funcionais.

Plataformas, Frameworks e Aplicações Peer-to-Peer by Rede on July 5th, 2009
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.



Thank you for reading this post. You can now Leave A Comment (0) or Leave A Trackback.

Post Info

This entry was posted on Tuesday, June 23rd, 2009 and is filed under P2P, Peer-to-Peer.

You can follow any responses to this entry through the Comments Feed. You can Leave A Comment, or A Trackback.



Previous Post: Configurar rede: Compartilhando Internet Wireless ou a Rádio »
Next Post: Requisitos de uma Aplicação Peer-to-Peer »

Read More

Related Reading:



    Leave a Reply

    Note: Any comments are permitted only because the site owner is letting you post, and any comments will be removed for any reason at the absolute discretion of the site owner.

    You must be logged in to post a comment.