Peer-to-Peer Networking and Applications

, Volume 11, Issue 3, pp 518–547 | Cite as

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

  • Michele Amoretti
  • Francesco Zanichelli


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.


Peer-to-peer Pattern language Efficiency Robustness 


  1. 1.
    Albert R, Jeong H, Barabasi A-L (2000) Error and attack tolerance of complex networks. Nature 406:378–482CrossRefGoogle Scholar
  2. 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 KongGoogle Scholar
  3. 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, JapanGoogle Scholar
  4. 4.
    Amoretti M, Reggiani M, Zanichelli F, Conte G (2005) Peer: An Architectural Pattern 12th Pattern Languages of Programs (PLop) 2005, Monticello, IllinoisGoogle Scholar
  5. 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, FranceGoogle Scholar
  6. 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, californiaGoogle Scholar
  7. 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, ItalyGoogle Scholar
  8. 8.
    Amoretti M (2012) A modeling framework for unstructured supernode networks. IEEE Commun Lett 16 (10):1707–1710CrossRefGoogle Scholar
  9. 9.
    Amoretti M., Picone M., Zanichelli F. (2012) Global Ambient Intelligence: An Autonomic Approach SENAmi 2012 co-located with IEEE PerCom 2012, Lugano, SwitzerlandGoogle Scholar
  10. 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, FinlandGoogle Scholar
  11. 11.
    Androutsellis-Theotokis S, Spinellis D (2004) A survey of peer-to-peer content distribution technologies. ACM Computing Surveys 36(4)Google Scholar
  12. 12.
    Barabasi A-L, Albert R (1999) Emergence of scaling in random networks. Science 286(5439):509–512MathSciNetCrossRefzbMATHGoogle Scholar
  13. 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–400CrossRefGoogle Scholar
  14. 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–497CrossRefGoogle Scholar
  15. 15.
    BitTorrent homepage.
  16. 16.
  17. 17.
    Bollobas B. (1985) Random graphs, Academic PressGoogle Scholar
  18. 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, USAGoogle Scholar
  19. 19.
    Buschmann F, Henney K, Schmidt D C (2007) Pattern-oriented Software Architecture, vol 5, WileyGoogle Scholar
  20. 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, USAGoogle Scholar
  21. 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–314CrossRefGoogle Scholar
  22. 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, HungaryGoogle Scholar
  23. 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, USAGoogle Scholar
  24. 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, ItalyGoogle Scholar
  25. 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–1508CrossRefGoogle Scholar
  26. 26.
    Elser B, Groh G, Fuhrmann T (2010) Group Management in P2P Networks 19th International Conference on Computer Communications and Networks (ICCCN 2010), Zurich, SwitzerlandGoogle Scholar
  27. 27.
  28. 28.
    Kulbak Y, Bickson D (2005) The eMule Protocol SpecificationGoogle Scholar
  29. 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–612CrossRefGoogle Scholar
  30. 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, HungaryGoogle Scholar
  31. 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–1113CrossRefGoogle Scholar
  32. 32.
    Chtcherbina E, Volter M (2002) Results from the EuroPlop 2002 Focus Group (v0.4) EuroPlop 2002, Kloster irsee, GermanyGoogle Scholar
  33. 33.
    FastTrack documentation on WikiPedia.
  34. 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, ChinaGoogle Scholar
  35. 35.
    Feldman M, Chuang J (2005) Overcoming free-riding behavior in peer-to-peer systems. ACM SIGecom Exchanges 5(4):41–50CrossRefGoogle Scholar
  36. 36.
  37. 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–96CrossRefGoogle Scholar
  38. 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, UKGoogle Scholar
  39. 39.
    Gnutella RFC homepage.
  40. 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 assignedGoogle Scholar
  41. 41.
    Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns - elements of reusable Object-Oriented software, Addison WesleyGoogle Scholar
  42. 42.
    Grolimund D, Muller P (2006) A Pattern Language for Overlay Networks in Peer-to-Peer Systemsm, euroPLop 2006, Irsee, GermanyGoogle Scholar
  43. 43.
    Hohpe G, Woolf B (2003) Enterprise integration patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley ProfessionalGoogle Scholar
  44. 44.
    iMesh homepage.
  45. 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–11CrossRefGoogle Scholar
  46. 46.
    The JXTA project homepage.
  47. 47.
    Korzun D, Gurtov A (2014) Hierarchical architectures in structured peer-to-peer overlay networks. Peer-to-Peer Networking and Applications 7(4):359–395CrossRefGoogle Scholar
  48. 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–191CrossRefGoogle Scholar
  49. 49.
    Kassinen O, Koskela T, Harjula E, Ylianttila M (2009) Mechanism for Peer-to-Peer Group Management using Multiple Overlays Internet DraftGoogle Scholar
  50. 50.
    KaZaA homepage.
  51. 51.
    Kleinberg J (1999) The Small-World Phenomenon: An Algorithmic Perspective 31st ACM Symposium on Theory of Computing, Atlanta, Georgia, USAGoogle Scholar
  52. 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, AustraliaGoogle Scholar
  53. 53.
    Kircher M, Jain P (2000) Lookup Pattern euroPLop 2000 conference, Irsee, GermanyGoogle Scholar
  54. 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, ItalyGoogle Scholar
  55. 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, BrazilGoogle Scholar
  56. 56.
    Li J (2007) A Survey of Peer-to-Peer Network Security Issues.
  57. 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, USAGoogle Scholar
  58. 58.
    Liang W, Wu R, Bi J, Li Z (2009) PPSTream characterization: Measurement of P2P live streaming during Olympics IEEE ICCC, Sousse, TunisiaGoogle Scholar
  59. 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–1352CrossRefGoogle Scholar
  60. 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, USAGoogle Scholar
  61. 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–1224CrossRefGoogle Scholar
  62. 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–212CrossRefGoogle Scholar
  63. 63.
    Mezsaros G, Doble J (1997) A Pattern Language for Pattern Writing, Pattern Languages of Program Design 3, ed Addison-Wesley ProfessionalGoogle Scholar
  64. 64.
  65. 65.
    Napster homepage.
  66. 66.
    P2PNext homepage.
  67. 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, MAGoogle Scholar
  68. 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, GermanyGoogle Scholar
  69. 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, GermanyGoogle Scholar
  70. 70.
    Picone M, Amoretti M, Zanichelli F (2012) A decentralized smartphone based traffic information system 4th, IEEE Intelligent Vehicles Symposium, Alcal de Henares, Madrid, SpainGoogle Scholar
  71. 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)Google Scholar
  72. 72.
    Schmidt D, Stal M, Rohnert H, Buschmann F (2000) Pattern-Oriented Software architecture: Patterns for Concurrent and Networked Objects, WileyGoogle Scholar
  73. 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, USAGoogle Scholar
  74. 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–138CrossRefGoogle Scholar
  75. 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, USAGoogle Scholar
  76. 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–57Google Scholar
  77. 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–1631CrossRefGoogle Scholar
  78. 78.
    Kurose J F, Ross K W (2012) Computer networking: A Top-Down Approach. Addison-WesleyGoogle Scholar
  79. 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, USAGoogle Scholar
  80. 80.
    Schoder D, Fischbach K (2004) Peer-to-peer Paradigm 37th IEEE International Conference on System Sciences, Hawaii, USAGoogle Scholar
  81. 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, SpringerGoogle Scholar
  82. 82.
    Shark homepage.
  83. 83.
  84. 84.
    Skype homepage.
  85. 85.
    Soulseek homepage.
  86. 86.
    Spoto S, Gaeta R, Grangetto M, Sereno M (2009) Analysis of PPLive through active and passive measurements, IPDPS 2009, Rome, ItalyGoogle Scholar
  87. 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–32CrossRefGoogle Scholar
  88. 88.
    Tribler homepage.
  89. 89.
    Voelter M, Kircher M, Zdun U (2004) Remoting patterns, WileyGoogle Scholar
  90. 90.
    Watts D J, Strogatz S H (1998) Collective dynamics of small-world networks. Nature 393(6684):440–442CrossRefzbMATHGoogle Scholar
  91. 91.
    Wuala homepage.
  92. 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–264Google Scholar
  93. 93.
    Zhang Q, Lazos L (2014) Collusion-Resistant Query anonymization for Location-Based services IEEE communication and information systems security symposium (ICC), Sidney, AustraliaGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2017

Authors and Affiliations

  1. 1.Dipartimento di Ingegneria e ArchitetturaUniversità degli Studi di Parma, ItalyParmaItaly

Personalised recommendations