6533b825fe1ef96bd1281db1

RESEARCH PRODUCT

P2P-PL: A pattern language to design efficient and robust peer-to-peer systems

Michele AmorettiFrancesco Zanichelli

subject

FOS: Computer and information sciencesPattern languageComputer Networks and CommunicationsComputer sciencebusiness.industryDistributed computing020206 networking & telecommunications02 engineering and technologycomputer.file_formatPeer-to-peerLoad balancing (computing)computer.software_genreSoftwareComputer Science - Distributed Parallel and Cluster ComputingRobustness (computer science)Software design patternC.2.40202 electrical engineering electronic engineering information engineering020201 artificial intelligence & image processingDistributed Parallel and Cluster Computing (cs.DC)Software systembusinesscomputerBitTorrentSoftware

description

To design peer-to-peer (P2P) software systems is a challenging task, because of their highly decentralized nature, which may cause unexpected emergent global behaviors. The last fifteen years have seen many P2P applications to come out and win favor with millions of users. From success histories of applications like BitTorrent, Skype, MyP2P we have learnt a number of useful design patterns. Thus, in this article we present a P2P pattern language (shortly, P2P-PL) which encompasses all the aspects that a fully effective and efficient P2P software system should provide, namely consistency of stored data, redundancy, load balancing, coping with asymmetric bandwidth, decentralized security. The patterns of the proposed P2P-PL are described in detail, and a composition strategy for designing robust, effective and efficient P2P software systems is proposed.

https://doi.org/10.1007/s12083-017-0551-y