Análise sobre a arquitetura de software ponto-a-ponto (peer-to-peer ou P2P) realizada para a disciplina de Arquitetura de Software, na Universidade Federal do Ceará - Campus Quixadá
2. Descrição
● Se você é realmente um dinossauro da internet, é muito provável que já
tenha ouvido falar sobre a arquitetura peer-to-peer (p2p).
● Mas, refrescando sua memória…
● Peer-to-peer, pares em pares ou P2P para os mais íntimos, define uma
arquitetura em que os nós conectados na rede atuam como clientes e
servidores da rede ao mesmo tempo (servlents) e todos se interligam de
forma descentralizada.
3. Descrição
● Não há uma hierarquia e todos os
computadores atuam de forma
independente sem a presença de um
servidor.
● Cada par é igual aos outros e cada par
tem os mesmos direitos e deveres que os
outros.
● Os recursos compartilhados em uma rede
P2P podem ser arquivos (aquela cópia
pirata do Office) ou recursos como o uso
do processador, espaço de
armazenamento em disco ou largura de
banda da rede.
4. Isso daí é muito massa, mas pra quê eu
usaria?
● Na verdade, você já deve
ter usado
6. Requisitos de uma aplicação P2P
● Escalabilidade global
aplicações devem ser projetadas de modo a suportar o acesso a milhões de objetos
em dezenas ou centenas de milhares de hospedeiros.
● Otimização de interações locais entre vizinhos
é necessário as aplicações priorizem a colocação de recursos para nós mais
próximos.
● Disponibilidade
realocar os seus recursos quando há a entrada ou saída de hospedeiros, de modo
que os recursos estejam sempre disponíveis da melhor forma possível.
Para funcionar eficientemente, sistemas peer-to-peer devem se preocupar com os seguintes requisitos
não-funcionais
7. Quando deve ser utilizado
● Quando deseja-se compartilhar um ou vários arquivos, sem que estes
estejam armazenados num servidor central.
● Como o compartilhamento através de P2P é altamente escalável, esta
arquitetura torna-se atraente, já que todo o conteúdo é transferido
diretamente entre pares comuns, sem passar por servidores de terceiros.
● Assim, essa aplicação tira proveito dos recursos como largura de banda,
armazenamento e CPU de um grande conjunto de pares – às vezes
milhões deles.
8. Quando deve ser utilizado
● O compartilhamento da banda e a descentralização das buscas e
armazenamento dos arquivos tornam a rede mais rápida. Diminui-se a
ocorrência de gargalos e filas de espera para acesso a determinados
computadores
● Em um âmbito ideológico, quando se quer escapar de censuras na rede.
● Quando se tem muita largura de banda - o número de conexões efetivadas
pelo sistema varia de acordo com a sua largura de banda, ou seja, quanto
mais velocidade de internet, mais conexões com outros usuários, e, assim,
mais velocidade de download
● Resumidamente: uma arquitetura P2P deve ser utilizada quando se quer
uma melhor comunicação entre os nós da rede.
9. Desvantagens
● Redundância - por conta do tamanho das redes é incomum realizar duas buscas e
adquirir o mesmo resultado, mas é possível;
● Buscas complexas - Número elevado de hospedeiros; Consumo de banda, tráfego
e processamento aumentam.
● Desempenho - Poucos hosters conectados irá ocasionar perda de
desempenho, limitação de buscas e recursos.
10. Exemplos da arquitetura
Quanto à centralização, arquiteturas peer-to-peer podem ser:
● Híbridas: Supernós são escolhidos para coordenar o ingresso de novos
nós na rede e gerenciar recursos.
● Centralizadas: Um servidor central controla as entradas e saídas na rede.
● Totalmente distribuídas: servents, os nós são cliente e servidor ao mesmo
tempo (server + client).
11. Arquitetura híbrida
● Supernós escolhidos de forma aleatória possuem controle sobre recursos da
rede e sobre os nós que desejam ingressar.
● Quando um recurso é localizado pelo supernó, a comunicação pode ser feita
livremente pelo par com o outro par.
● Tolerância à falhas: se um supernó falha, outro pode ser escolhido sem
problemas.
12. Kazzaa e Skype são exemplos de serviços que utilizam arquitetura P2P híbrida.
13. Arquitetura centralizada
● Um servidor central controla as entradas e saídas de peers na rede.
● Os peers registram no servidor os recursos que irão compartilhar na rede.
● Nós buscam no servidor quais recursos estão disponíveis para serem
utilizados.
● Peers acessam os recursos diretamente aos outros peers.
14. Exemplos de serviços que utilizam arquitetura P2P centralizada: eMule e Napster, respectivamente.
15. Arquitetura descentralizada (totalmente distribuída)
● Não há elemento central.
● Todos os nós na rede possuem as mesmas responsabilidades e direitos.
● As pesquisas por recursos disponíveis são feitas por flooding.
● Isto gera um alto tráfego na rede e um desempenho ruim nas pesquisas, já que
é necessário contactar vários nós e aguardar a resposta.
18. Como mencionado em sala, o Spotify usava P2P. O aplicativo de streaming utilizava
a arquitetura em sua aplicação desktop e parou de usá-la em 2014. A empresa
utilizava P2P quando não tinha servidores suficientes espalhados pelo globo.
Antes da alteração, se você transmitisse uma música popular pela primeira vez, o
cliente faria o download da música de outros usuários, usando ponto a ponto. Tudo
isso acontecia em segundo plano, mas contribuiu muito para tornar a experiência
geral do usuário mais rápida.
No entanto, agora que a empresa tem muitos servidores, usar o peer-to-peer, além
dos downloads diretos, adiciona um pouco de sobrecarga. Além disso, a empresa
precisa manter a base de código peer-to-peer e atualizá-la a cada nova versão. Para
o serviço, não era mais viável utilizar uma arquitetura P2P.
Fonte: TechCrunch
19. ● Digital Citizen - Simple questions: What is P2P (peer-to-peer) and why is it useful?
https://www.digitalcitizen.life/what-is-p2p-peer-to-peer
● Wikipedia - peer to peer: https://pt.wikipedia.org/wiki/Peer-to-peer
● Bitcoin: A Peer-to-Peer Electronic Cash System: https://bitcoin.org/bitcoin.pdf
● Ingenico: P2P payment trends: What’s next?
https://blog.ingenico.com/posts/2017/08/p2p-payment-trends-whats-next.html
● Quora - What are the disadvantages and advantages of a peer-to-peer (P2P) network?
https://www.quora.com/What-are-the-disadvantages-and-advantages-of-a-peer-to-peer-
P2P-network
● TechSoup Brasil - Redes Peer-to-Peer: Noções Básicas
https://www.techsoupbrasil.org.br/node/1917
Referências