Requisitos de uma Aplicação Peer-to-Peer
Para funcionar eficientemente, sistemas peer-to-peer devem se preocupar com os seguintes requisitos não-funcionais.
Escalabilidade global
Um dos objetivos das aplicações peer-to-peer é explorar os recursos de hardware de um grande número de hospedeiros conectados à Internet. Assim, essas aplicações devem ser projetadas de modo a suportar o acesso a milhões de objetos em dezenas ou centenas de milhares de hospedeiros.
cançado através da colocação aleatória de recursos, juntamente com a utilização de réplicas dos recursos mais utilizados.
Otimização de interações locais entre nodos vizinhos
A “distância de rede” entre os nós que interagem tem um impacto substancial na latência das interações individuais, como por exemplo, clientes requisitando acesso à recursos. A carga do tráfico da rede também é impactada por isso. As aplicações devem colocar os recursos perto dos nós que mais os utilizam.
Disponibilidade
A maioria dos sistemas peer-to-peer são constituídos de computadores hospedeiros que são livres para se juntar ou sair do sistema à qualquer hora. Além disso, os segmentos de rede utilizados nos sistemas peer-to-peer não são gerenciados por alguma autoridade; nem possuem garantias de qualidade de serviço. Um grande desafio para os sistemas peer-to-peer é prover um sistema confiável apesar desses fatos. Quando novos hospedeiros se juntam, eles devem ser integrados ao sistema e a carga deve ser redistribuída para explorar esses novos recursos. Quando eles saem do sistema voluntariamente ou involuntariamente, o sistema deve detectar a partida deles, e redistribuir as suas cargas e os seus recursos.
Segurança dos dados
Em sistemas de escala global com participantes de origens diversas, confiança deve ser construída com o uso de autenticação e mecanismos de criptografia para garantir a privacidade dos dados e da informação.
Anonimidade, negabilidade e resistência à censura
Anonimidade é uma preocupação legitima em muitas situações que demandam resistência à censura. Um requisito relacionado é que hospedeiros que guardam dados devem ser capazes de negar plausivelmente a responsabilidade sobre a posse e o suprimento deles. A utilização de um grande número de hospedeiros em sistemas peer-to-peer pode ser útil em alcançar essas propriedades.

