# Novas Tecnologias de Internet/Arquiteturas Peer-to-Peer

Arquitetura Peer-to-Peer (P2P) (do inglês: Ponto-a-Ponto), rede linear, rede distribuída ou rede não hierárquica é uma arquitetura caracterizada pela descentralização das funções, onde cada terminal realiza tanto funções de servidor quanto de cliente.

## Conceito

Geralmente, uma arquitetura 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.
Uma rede Peer-to-Peer é criada com o intuito de compartilhar dispositivos e dados, diferente de uma rede em estrela, por exemplo, que compartilha serviços. Como na rede Peer-to-Peer não existe gerenciamento central, a informação trafega por todos ou muitos dos nós da rede, desde sua origem até o destino, sendo ignorada por todos os nós exceto o destinatário. As estações intermediárias atuam simplesmente como repetidoras da informação.
Os nós da rede Peer-to-Peer 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.

### Tráfego de dados

Uma vez estabelecida a conexão entre dois nós, a transmissão de dados entre eles ocorre da mesma forma que em uma linha dedicada. No caso de redes Peer-to-Peer virtuais, uma vez estabelecida a conexão, o tráfego percorre um caminho fixo pela rede, de forma análoga ao que ocorre numa linha telefônica de serviço telefônico fixo comutado.

### Redes virtuais

O termo é utilizado em diferentes tecnologias que adotam um modelo conceitual Peer-to-Peer (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.
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.

## 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.
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.