A Peer-to-Peer Reference Architecture

Peer-to-peer (P2P) applications are extremely popular on the Internet because they allow users to share information in a decentralized manner. Internet users use file-sharing applications (e.g., BitTorrent, KaZaA) to share and exchange files and collaboration applications (e.g., Jabber, Groove) to exchange chat messages and work on shared documents. A reference architecture for a domain provides an architecture template which can be used as a starting point for designing the software architecture of a system in that domain. Despite the popularity of P2P applications there is no reference architecture for the P2P domain. This paper presents a reference architecture for the P2P domain. The reference architecture has been designed to satisfy the concerns that a P2P application needs to address. The reference architecture takes a service-centric view of the P2P domain. The reference architecture can be used to describe the structure of existing P2P applications and middlewares. The paper validates the reference architecture by describing the structure of some of the existing P2P applications and middlewares using the reference architecture

[1]  Krishna P. Gummadi,et al.  An analysis of Internet content delivery systems , 2002, OPSR.

[2]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[3]  Mike P. Papazoglou,et al.  Service-Oriented Computing , 2008 .

[4]  A Survey of P 2 P Middlewares , 2006 .

[5]  Richard C. Holt,et al.  A reference architecture for Web servers , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[6]  Steve Vinoski,et al.  Advanced CORBA® Programming with C++ , 1999 .

[7]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[8]  Matei Ripeanu,et al.  Peer-to-peer architecture case study: Gnutella network , 2001, Proceedings First International Conference on Peer-to-Peer Computing.

[9]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[10]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[11]  Philip A. Bernstein,et al.  Middleware: a model for distributed system services , 1996, CACM.

[12]  Robert L. Nord,et al.  Describing Software Architecture with UML , 1999, WICSA.

[13]  Ashish Singhai Quarterware: A Middleware Toolkit of Software RISC Components , 1999 .

[14]  Brian P. Gallagher,et al.  Using the Architecture Tradeoff Analysis Method SM to Evaluate a Reference Architecture: A Case Study , 2000 .

[15]  Ian Clarke,et al.  Protecting Free Expression Online with Freenet , 2002, IEEE Internet Comput..

[16]  Paul Clements,et al.  Documenting Component and Connector Views with UML 2.0 , 2004 .

[17]  James Edwards Peer-to-Peer Programming on Groove , 2002 .

[18]  Robert L. Nord,et al.  Software Architecture in Industrial Applications , 1995, 1995 17th International Conference on Software Engineering.