Developing, simulating, and deploying peer-to-peer systems using the Kompics component model

Currently, the development of overlay network systems typically produces two software artifacts: a simulator to model key protocols and a production system for a WAN environment. However, this methodology requires the maintenance of two implementations, as well as adding both development overhead and the potential for errors, through divergence in the different code bases. This paper describes how our message-passing component model, called Kompics, is used to build overlay network systems using a P2P component framework, where the same implementation can be simulated or deployed in a production environment. Kompics enables two different modes of simulation: deterministic simulation for reproducible debugging, and emulation mode for stress-testing systems. We used our P2P component framework to build and evaluate overlay systems, and we show how our model lowers the programming barrier for simulating and deploying overlay network systems.

[1]  Márk Jelasity,et al.  A Modular Paradigm for Building Self-Organizing Peer-to-Peer Applications , 2003, Engineering Self-Organising Systems.

[2]  Rui Guo,et al.  Simulating large-scale P2P systems with the WiDS toolkit , 2005, 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[3]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[4]  Robert Tappan Morris,et al.  A performance vs. cost framework for evaluating DHT design tradeoffs under churn , 2005, Proceedings IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies..

[5]  Dejan Kostic,et al.  Scalability and accuracy in a large-scale network emulator , 2002, CCRV.

[6]  Krishna P. Gummadi,et al.  King: estimating latency between arbitrary internet end hosts , 2002, IMW '02.

[7]  Seif Haridi,et al.  Practical Protocol Composition, Encapsulation and Sharing in Kompics , 2008, 2008 Second IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops.

[8]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java: Experiences with Auto-adaptive and Reconfigurable Systems , 2006 .

[9]  Brian Beckman,et al.  Time warp operating system , 1987, SOSP '87.

[10]  Karl Aberer,et al.  The essence of P2P: a reference architecture for overlay networks , 2005, Fifth IEEE International Conference on Peer-to-Peer Computing (P2P'05).

[11]  Amin Vahdat,et al.  MACEDON: Methodology for Automatically Creating, Evaluating, and Designing Overlay Networks , 2004, NSDI.

[12]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[13]  Maarten van Steen,et al.  CYCLON: Inexpensive Membership Management for Unstructured P2P Overlays , 2005, Journal of Network and Systems Management.

[14]  David E. Culler,et al.  PlanetLab: an overlay testbed for broad-coverage services , 2003, CCRV.

[15]  Danny Dolev,et al.  Programming with Live Distributed Objects , 2008, ECOOP.

[16]  Gordon S. Blair,et al.  A generic component model for building systems software , 2008, TOCS.

[17]  S. Krause,et al.  OverSim: A Flexible Overlay Network Simulation Framework , 2007, 2007 IEEE Global Internet Symposium.

[18]  Jim Dowling,et al.  The K-Component Architecture Meta-model for Self-Adaptive Software , 2001, Reflection.

[19]  Ben Y. Zhao,et al.  Towards a Common API for Structured Peer-to-Peer Overlays , 2003, IPTPS.

[20]  Amin Vahdat,et al.  Mace: language support for building distributed systems , 2007, PLDI '07.

[21]  David R. Karger,et al.  Chord: a scalable peer-to-peer lookup protocol for internet applications , 2003, TNET.