Skip to main content
Log in

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

  • Published:
Peer-to-Peer Networking and Applications Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28

Similar content being viewed by others

References

  1. Albert R, Jeong H, Barabasi A-L (2000) Error and attack tolerance of complex networks. Nature 406:378–482

    Article  Google Scholar 

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

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

  4. Amoretti M, Reggiani M, Zanichelli F, Conte G (2005) Peer: An Architectural Pattern 12th Pattern Languages of Programs (PLop) 2005, Monticello, Illinois

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

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

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

  8. Amoretti M (2012) A modeling framework for unstructured supernode networks. IEEE Commun Lett 16 (10):1707–1710

    Article  Google Scholar 

  9. Amoretti M., Picone M., Zanichelli F. (2012) Global Ambient Intelligence: An Autonomic Approach SENAmi 2012 co-located with IEEE PerCom 2012, Lugano, Switzerland

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

  11. Androutsellis-Theotokis S, Spinellis D (2004) A survey of peer-to-peer content distribution technologies. ACM Computing Surveys 36(4)

  12. Barabasi A-L, Albert R (1999) Emergence of scaling in random networks. Science 286(5439):509–512

    Article  MathSciNet  MATH  Google Scholar 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

  15. BitTorrent homepage. http://www.bittorrent.org

  16. ButTyrant homepage. http://bittyrant.en.softonic.com

  17. Bollobas B. (1985) Random graphs, Academic Press

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

  19. Buschmann F, Henney K, Schmidt D C (2007) Pattern-oriented Software Architecture, vol 5, Wiley

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

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

    Article  Google Scholar 

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

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

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

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

    Article  Google Scholar 

  26. Elser B, Groh G, Fuhrmann T (2010) Group Management in P2P Networks 19th International Conference on Computer Communications and Networks (ICCCN 2010), Zurich, Switzerland

  27. eMule homepage. http://www.emule-project.net

  28. Kulbak Y, Bickson D (2005) The eMule Protocol Specification

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

    Article  Google Scholar 

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

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

    Article  Google Scholar 

  32. Chtcherbina E, Volter M (2002) Results from the EuroPlop 2002 Focus Group (v0.4) EuroPlop 2002, Kloster irsee, Germany

  33. FastTrack documentation on WikiPedia. http://en.wikipedia.org/wiki/FastTrack

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

  35. Feldman M, Chuang J (2005) Overcoming free-riding behavior in peer-to-peer systems. ACM SIGecom Exchanges 5(4):41–50

    Article  Google Scholar 

  36. Freenet homepage. http://freenet.sourceforge.net

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

    Article  Google Scholar 

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

  39. Gnutella RFC homepage. http://rfc-gnutella.sourceforge.net

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

  41. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns - elements of reusable Object-Oriented software, Addison Wesley

  42. Grolimund D, Muller P (2006) A Pattern Language for Overlay Networks in Peer-to-Peer Systemsm, euroPLop 2006, Irsee, Germany

  43. Hohpe G, Woolf B (2003) Enterprise integration patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley Professional

  44. iMesh homepage. http://www.imesh.com

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

    Article  Google Scholar 

  46. The JXTA project homepage. http://jxse.kenai.com

  47. Korzun D, Gurtov A (2014) Hierarchical architectures in structured peer-to-peer overlay networks. Peer-to-Peer Networking and Applications 7(4):359–395

    Article  Google Scholar 

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

    Article  Google Scholar 

  49. Kassinen O, Koskela T, Harjula E, Ylianttila M (2009) Mechanism for Peer-to-Peer Group Management using Multiple Overlays Internet Draft

  50. KaZaA homepage. http://www.kazaa.com

  51. Kleinberg J (1999) The Small-World Phenomenon: An Algorithmic Perspective 31st ACM Symposium on Theory of Computing, Atlanta, Georgia, USA

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

  53. Kircher M, Jain P (2000) Lookup Pattern euroPLop 2000 conference, Irsee, Germany

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

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

  56. Li J (2007) A Survey of Peer-to-Peer Network Security Issues. http://www.cse.wustl.edu/~jain/cse571-07/ftp/p2p/

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

  58. Liang W, Wu R, Bi J, Li Z (2009) PPSTream characterization: Measurement of P2P live streaming during Olympics IEEE ICCC, Sousse, Tunisia

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

    Article  Google Scholar 

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

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

    Article  Google Scholar 

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

    Article  Google Scholar 

  63. Mezsaros G, Doble J (1997) A Pattern Language for Pattern Writing, Pattern Languages of Program Design 3, ed Addison-Wesley Professional

  64. MUTE homepage. http://mute-net.sourceforge.net

  65. Napster homepage. http://free.napster.com

  66. P2PNext homepage. http://www.p2p-next.org

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

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

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

  70. Picone M, Amoretti M, Zanichelli F (2012) A decentralized smartphone based traffic information system 4th, IEEE Intelligent Vehicles Symposium, Alcal de Henares, Madrid, Spain

  71. 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)

  72. Schmidt D, Stal M, Rohnert H, Buschmann F (2000) Pattern-Oriented Software architecture: Patterns for Concurrent and Networked Objects, Wiley

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

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

    Article  Google Scholar 

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

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

    Google Scholar 

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

    Article  Google Scholar 

  78. Kurose J F, Ross K W (2012) Computer networking: A Top-Down Approach. Addison-Wesley

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

  80. Schoder D, Fischbach K (2004) Peer-to-peer Paradigm 37th IEEE International Conference on System Sciences, Hawaii, USA

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

  82. Shark homepage. http://sharksystem.net

  83. Sip2Peer homepage. https://github.com/dsg-unipr/sip2peer

  84. Skype homepage. http://www.skype.com

  85. Soulseek homepage. http://www.slsknet.org

  86. Spoto S, Gaeta R, Grangetto M, Sereno M (2009) Analysis of PPLive through active and passive measurements, IPDPS 2009, Rome, Italy

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

    Article  Google Scholar 

  88. Tribler homepage. http://www.tribler.org

  89. Voelter M, Kircher M, Zdun U (2004) Remoting patterns, Wiley

  90. Watts D J, Strogatz S H (1998) Collective dynamics of small-world networks. Nature 393(6684):440–442

    Article  MATH  Google Scholar 

  91. Wuala homepage. http://www.wuala.com

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

    Google Scholar 

  93. Zhang Q, Lazos L (2014) Collusion-Resistant Query anonymization for Location-Based services IEEE communication and information systems security symposium (ICC), Sidney, Australia

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michele Amoretti.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

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

Keywords

Navigation