Abstract
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.
Similar content being viewed by others
References
Albert R, Jeong H, Barabasi A-L (2000) Error and attack tolerance of complex networks. Nature 406:378–482
Aleksy M, Korthaus A, Seifried C (2006) Design Patterns Usage in Peer-to-Peer Systems - An Empirical Analysis IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology (WI-IAT 2006 Workshops), Hong Kong
Onana Alima L, El-Ansary S, Brand P, Haridi S (2003) D K S(N, k, f): A Family of Low Communication, Scalable and Fault-Tolerant Infrastructures for P2P Communications 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID ’03), Tokyo, Japan
Amoretti M, Reggiani M, Zanichelli F, Conte G (2005) Peer: An Architectural Pattern 12th Pattern Languages of Programs (PLop) 2005, Monticello, Illinois
Amoretti M, Zanichelli F, Conte G (2005) SP2A: A Service-oriented Framework for P2P-based Grids 3rd International Workshop on Middleware for Grid Computing, co-located with the 6th ACM International Middleware Conference, Grenoble, France
Amoretti M, Bisi M, Zanichelli F, Conte G (2005) Introducing Secure Peergroups in SP2A 2nd IEEE International Workshop on Hot Topics in Peer-to-Peer Systems, co-located with Mobiquitous 2005, San diego, california
Amoretti M, Zanichelli F, Conte G (2006) Performance Evaluation of Advanced Routing Algorithms for Unstructured Peer-to-Peer Networks 1st ICST/ACM International Conference on Performance Evaluation Methodologies and Tools (VALUETOOLS 2006), Pisa, Italy
Amoretti M (2012) A modeling framework for unstructured supernode networks. IEEE Commun Lett 16 (10):1707–1710
Amoretti M., Picone M., Zanichelli F. (2012) Global Ambient Intelligence: An Autonomic Approach SENAmi 2012 co-located with IEEE PerCom 2012, Lugano, Switzerland
Amoretti M, Picone M, Zanichelli F, Ferrari G (2013) Simulating Mobile Distributed Systems with, DEUS ns-3 High Performance Computing and Simulation (HPCS 2013), Helsinki, Finland
Androutsellis-Theotokis S, Spinellis D (2004) A survey of peer-to-peer content distribution technologies. ACM Computing Surveys 36(4)
Barabasi A-L, Albert R (1999) Emergence of scaling in random networks. Science 286(5439):509–512
Bharambe A, Douceur J R, Lorch J R, Moscibroda T, Pang J, Seshan S, Zhouang X (2008) Donnybrook: enabling large-scale, high-speed, peer-to-peer games. ACM SIGCOMM Computer Communication Review 38(1):389–400
Belmonte M-V, Díaz M, Pérez-de-la-Cruz J L, Reyna A (2013) COINS: COAlitions and INcentives for effective Peer-to-Peer downloads. J Netw Comput Appl 36(1):484–497
BitTorrent homepage. http://www.bittorrent.org
ButTyrant homepage. http://bittyrant.en.softonic.com
Bollobas B. (1985) Random graphs, Academic Press
Brambilla G, Picone M, Amoretti M, Zanichelli F (2014) An Adaptive Peer-to-Peer Overlay Scheme for Location-based Services 13th IEEE International Symposium on Network Computing and Applications (NCA 2014), Boston, MA, USA
Buschmann F, Henney K, Schmidt D C (2007) Pattern-oriented Software Architecture, vol 5, Wiley
Buyukkaya E, Abdallah M (2008) Data management in voronoi-based P2P gaming 5th IEEE Consumer Communications and Networking Conf (CCNC 2008), Las Vegas, Nevada, USA
Cameron C, Khalil I, Tari Z (2014) An ID-based approach to the caching and distribution of peer-to-peer, proxy-based video content. J Netw Comput Appl 37:293–314
Castano S, Ferrara A, Montanelli S, Pagani E, Rossi G P (2003) Ontology-addressable Contents in P2P Networks 1st semPGRID Workshop, co-located with WWW’03, Budapest, Hungary
Chun B, Wu P, Weatherspoon H, Kubiatowicz J (2006) Chunkcast: An Anycast Service for Large Content Distribution 5th Int.l Workshop on Peer-to-Peer Systems (IPTPS 2006), Santa Barbara, CA, USA
Daswani N, Garcia-Molina H, Yang B (2003) Open Problems in Data-Sharing Peer-to-Peer Systems 9th International Conference on Database Theory (ICDT 2003), Siena, Italy
Dhurandhera S K, Misrab S, Pruthic P, Singhala S, Aggarwala S, Woungang I (2011) Using bee algorithm for peer-to-peer file searching in mobile ad hoc networks. J Netw Comput Appl 34(5):1498–1508
Elser B, Groh G, Fuhrmann T (2010) Group Management in P2P Networks 19th International Conference on Computer Communications and Networks (ICCCN 2010), Zurich, Switzerland
eMule homepage. http://www.emule-project.net
Kulbak Y, Bickson D (2005) The eMule Protocol Specification
Lu K, Wang J, Li M (2016) An Eigentrust dynamic evolutionary model in P2P file-sharing systems. Peer-to-Peer Networking and Applications 9(3):599–612
Kamvar S D, Schlosser M T, Garcia-Molina H (2003) The EigenTrust Algorithm for Reputation Management in P2P Networks The World Wide Web Conference, Budapest, Hungary
Gupta R, Singha N, Singh Y N (2016) Reputation based probabilistic resource allocation for avoiding free riding and formation of common interest groups in unstructured P2P networks. Peer-to-Peer Networking and Applications 9(6):1101–1113
Chtcherbina E, Volter M (2002) Results from the EuroPlop 2002 Focus Group (v0.4) EuroPlop 2002, Kloster irsee, Germany
FastTrack documentation on WikiPedia. http://en.wikipedia.org/wiki/FastTrack
Fauzie M D, Thamrin A H, Van Meter R, Murai J (2011) A Temporal View of The Topology of Dynamic Bittorrent Swarms 3rd International Workshop on Network Science for Communication Networks (NetSciCom), in conjunction with IEEE INFOCOM, Shangai, China
Feldman M, Chuang J (2005) Overcoming free-riding behavior in peer-to-peer systems. ACM SIGecom Exchanges 5(4):41–50
Freenet homepage. http://freenet.sourceforge.net
Gao G, Li R, Wen K, Gu X (2012) Proactive replication for rare objects in unstructured peer-to-peer networks. J Netw Comput Appl 35(1):85–96
Garbacki P, Iosup A, Epema D H J, van Steen M (2006) 2Fast: Collaborative downloads in P2P networks 6th IEEE International Conference on Peer-to-Peer Computing, Cambridge, UK
Gnutella RFC homepage. http://rfc-gnutella.sourceforge.net
Olszak A (2016) Hycube: A distributed hash table based on a variable metric, Peer-to-Peer Networking and Applications. vol. and no. to be assigned
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns - elements of reusable Object-Oriented software, Addison Wesley
Grolimund D, Muller P (2006) A Pattern Language for Overlay Networks in Peer-to-Peer Systemsm, euroPLop 2006, Irsee, Germany
Hohpe G, Woolf B (2003) Enterprise integration patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley Professional
iMesh homepage. http://www.imesh.com
Jia J, Wang W, Hei X (2014) An efficient caching algorithm for peer-to-peer 3D streaming in distributed virtual environments. J Netw Comput Appl 42:1–11
The JXTA project homepage. http://jxse.kenai.com
Korzun D, Gurtov A (2014) Hierarchical architectures in structured peer-to-peer overlay networks. Peer-to-Peer Networking and Applications 7(4):359–395
Kao H-H, Lee C-N, Kao Y-C, Wu P-J (2016) I2CC: Interleaving two-level cache with network coding in peer-to-peer VoD system. J Netw Comput Appl 60:180–191
Kassinen O, Koskela T, Harjula E, Ylianttila M (2009) Mechanism for Peer-to-Peer Group Management using Multiple Overlays Internet Draft
KaZaA homepage. http://www.kazaa.com
Kleinberg J (1999) The Small-World Phenomenon: An Algorithmic Perspective 31st ACM Symposium on Theory of Computing, Atlanta, Georgia, USA
Knoll M, Wacker A, Schiele G, Weis T (2008) Bootstrapping in Peer-to-Peer Systems 14th IEEE International Conference on Parallel and Distributed Systems (ICPADS ’08), Melbourne, Victoria, Australia
Kircher M, Jain P (2000) Lookup Pattern euroPLop 2000 conference, Irsee, Germany
Laghi M C, Amoretti M, Conte G (2009) Secure Service Invocation in a Peer-to-Peer Environment Using JXTA-SOAP International Conference on Security and Privacy in Mobile Information and Communication Systems (MobiSec), Turin, Italy
Legout A, Urvoy-Keller G, Michiardi P (2006) Rarest first and choke algorithms are enough 6th ACM SIGCOMM Conference on Internet Measurement, Rio de Janeiro, Brazil
Li J (2007) A Survey of Peer-to-Peer Network Security Issues. http://www.cse.wustl.edu/~jain/cse571-07/ftp/p2p/
Li B, Xie S, Qu Y, Keung G Y, Lin C, Liu J, Zhang X (2008) Inside the new coolstreaming: Principles, Measurements and Performance Implications IEEE INFOCOM, Phoenix, AZ, USA
Liang W, Wu R, Bi J, Li Z (2009) PPSTream characterization: Measurement of P2P live streaming during Olympics IEEE ICCC, Sousse, Tunisia
Liu Z, Shen Y, Ross K W, Panwar S S, Wang Y (2009) LayerP2P: Using Layered video chunks in P2P live streaming. IEEE Transactions on Multimedia 11(7):1340–1352
Liu Z, Wu C, Li B, Zhao S (2010) UUSEe: Large-scale Operational On-Demand Streaming with Random Network Coding IEEE INFOCOM, San Diego, CA, USA
Liu M, Koskela T, Ou Z, Zhou J, Riekki J, Ylianttila M (2011) Super-peer-based coordinated service provision. J Netw Comput Appl 34(4):1210–1224
Mashayekhi H, Habibi J (2014) L-overlay: a layered data management scheme for peer-to-peer computing. Peer-to-Peer Networking and Applications 7(2):199–212
Mezsaros G, Doble J (1997) A Pattern Language for Pattern Writing, Pattern Languages of Program Design 3, ed Addison-Wesley Professional
MUTE homepage. http://mute-net.sourceforge.net
Napster homepage. http://free.napster.com
P2PNext homepage. http://www.p2p-next.org
Piatek M, Isdal T, Anderson T, Krishnamurthy A, Venkataramani A (2007) Do incentives build robustness in BitTorrent? 4th Usenix Symposium on Networked Systems Design & Implementation, Cambridge, MA
Picone M, Amoretti M, Zanichelli F (2010) Geokad: A P2P distributed localization protocol 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops), Mannheim, Germany
Picone M, Amoretti M, Zanichelli F (2011) Evaluating the Robustness of the DGT Approach for Smartphone-based Vehicular Networks 5th IEEE Workshop On User MObility and VEhicular Networks (ON-MOVE), Bonn, Germany
Picone M, Amoretti M, Zanichelli F (2012) A decentralized smartphone based traffic information system 4th, IEEE Intelligent Vehicles Symposium, Alcal de Henares, Madrid, Spain
Picone M, Amoretti M, Ferrari G, Zanichelli F (2015) D4V: A peer-to-peer architecture for data dissemination in smartphone-based vehicular applications. PeerJ Computer Science 1(15)
Schmidt D, Stal M, Rohnert H, Buschmann F (2000) Pattern-Oriented Software architecture: Patterns for Concurrent and Networked Objects, Wiley
Pucha H, Andersen D G, Kaminsky M (2007) Exploiting Similarity for Multi-Source Downloads Using File Handprints 4th Symposium on Networked System Design and Implementation (NSDI’07), Cambridge, MA, USA
Pouwelse J A, Garbacki P, Wang J, Bakker A, Yang J, Iosup A, Epema D H J, Reinders M, van Steen M R, Sips H J (2007) TRIBLER: a social-based peer-to-peer system. Concurrency and Computation: Practice & Experience - Recent Advances in Peer-to-Peer Systems and Security (P2P 2006) 20(2):127–138
Rhea S, Eaton P, Geels D, Weatherspoon H, Zhao B, Kubiatowicz J (2003) Pond: The OceanStore Prototype 2nd USENIX Conference on File and Storage Technologies (FAST’03), San Francisco, CA, USA
Ripeanu M, Foster I, Iamnitchi A (2002) Mapping the Gnutella Network: Properties of Large-Scale Peer-to-Peer Systems and Implications for System Design. IEEE Internet Computing Journal (special issue on peer-to-peer networking) 6(1):50–57
Rius J, Cores F, Solsona F (2013) Cooperative scheduling mechanism for large-scale peer-to-peer computing systems. J Netw Comput Appl 36(6):1630–1631
Kurose J F, Ross K W (2012) Computer networking: A Top-Down Approach. Addison-Wesley
Sasson Y, Cavin D, Schiper A (2003) Probabilistic broadcast for flooding in wireless mobile ad hoc networks IEEE Wireless Communications and Networking (WCNC), New Orleans, USA
Schoder D, Fischbach K (2004) Peer-to-peer Paradigm 37th IEEE International Conference on System Sciences, Hawaii, USA
Sebastio S, Amoretti M, Murga J R, Picone M, Cagnoni S (2014) Honests vs Cheating Bots in PATROL-based Real-Time Strategy MMOGs, Complexity and Artificial Life, Springer
Shark homepage. http://sharksystem.net
Sip2Peer homepage. https://github.com/dsg-unipr/sip2peer
Skype homepage. http://www.skype.com
Soulseek homepage. http://www.slsknet.org
Spoto S, Gaeta R, Grangetto M, Sereno M (2009) Analysis of PPLive through active and passive measurements, IPDPS 2009, Rome, Italy
Stoica I, Morris R, Liben-Nowell D, Karger D R, Kaashoek M F, Dabek F, Balakrishnan H (2003) Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications. IEEE/ACM Transactions on Networking 11(1):17–32
Tribler homepage. http://www.tribler.org
Voelter M, Kircher M, Zdun U (2004) Remoting patterns, Wiley
Watts D J, Strogatz S H (1998) Collective dynamics of small-world networks. Nature 393(6684):440–442
Wuala homepage. http://www.wuala.com
Wurhofer D, Obrist M, Beck E, Tscheligi M (2010) A quality criteria framework for pattern validation. International Journal on Advances in Software 3(1-2):252–264
Zhang Q, Lazos L (2014) Collusion-Resistant Query anonymization for Location-Based services IEEE communication and information systems security symposium (ICC), Sidney, Australia
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Amoretti, M., Zanichelli, F. P2P-PL: A pattern language to design efficient and robust peer-to-peer systems. Peer-to-Peer Netw. Appl. 11, 518–547 (2018). https://doi.org/10.1007/s12083-017-0551-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12083-017-0551-y