Description

PlanetSim is an object oriented simulation framework for overlay networks and services. This framework presents a layered and modular architecture with well defined hotspots documented using classical design patterns. In PlanetSim, developers can work at two main levels: creating and testing new overlay algorithms like Chord or Pastry, or creating and testing new services (DHT, CAST, DOLR, etc) on top of existing overlays.

PlanetSim also aims to enable a smooth transition from simulation code to experimentation code running in the Internet. Because of this, we provide wrapper code that takes care of network communication and permits us to run the same code in network testbeds such as PlanetLab. Moreover, distributed services in the simulator use the Common API for Structured Overlays. This enables complete transparency to services running either against the simulator or the network.

PlanetSim has been developed in the Java language to reduce complexity and smooth the learning curve in our framework. We however have profiled and optimised the code to enable scalable simulations in reasonable time. To validate the utility of our approach, we have implemented two overlays (Chord and Symphony) and a variety of services like CAST, DHT, and object middleware. We have proved that PlanetSim reproduces the measures of these environments and is also efficient in its network implementation.

PlanetSim Architecture

PlanetSim’s architecture comprises three main extension layers constructed one atop another. Applications are built in the upper layer using the standard Common API façade. This façade is built on the routing services offered by the underlying overlay layer. Besides, the overlay layer obtains proximity information to other nodes asking information to the Network layer.

The Simulator dictates the overall life cycle of the framework by calling the appropriate methods in the overlay's Node and obtaining routing information to dispatch messages through the Network.

 

 

Downloads

Distribution: Source and binary code, written and compiled in Java v1.4.2. License: PlanetSim is available under a LGPL-like license.

  • April 11, 2005. Release 2.0.2 Alpha.
    • Release Notes: Fixed bugs that correct the selected nodes as bootstrap on the behaviours based implementation.
      This version will be optimized to guarantee the same efficiency and speedup found in the release 1.0.
  • April 8, 2005. Release 2.0.1 Alpha.
    • Release Notes: Fixed bugs that permits run correctly the application layer over the new Symphony implementation, based on behaviours.
      This version will be optimized to guarantee the same efficiency and speedup found in the release 1.0.
    • Download: planetsim_2.0.1.zip [source + binaries + javadoc]
  • March 13, 2005. Release 2.0 Alpha.
    • Release Notes: This version mantains the Chord and Symphony overlay implementations under the simulation framework.
      Also includes GML output generation, fixed bugs on Id generation, added new methods as upcalls and downcalls between application and node layer and more.
      The Symphony overlay implementation has been replaced with another one based on Behaviours.
      It also includes the Javadoc html documentation.
      This version will be optimized to guarantee the same efficiency and speedup found in the earlier release.
    • Download: planetsim_2.0.zip [source + binaries + javadoc]
  • July 09, 2004. Release 1.0.
    • Release Notes: This version includes the Chord and Symphony overlay implementations under the simulation framework.
      It also includes the Javadoc html documentation.
    • Download: planetsim_1_0.zip [source + binaries ]

 

Authors

Jordi Pujol Ahulló, M. Sc. Computer Science Student in the Department of Computer Science and Mathematics at Universitat Rovira i Virgili in Tarragona, Catalonia, Spain. Contact <jordi.pujol@estudiants.urv.es>

Rubén Mondéjar Andreu, M. Sc. Computer Science Student in the Department of Computer Science and Mathematics at Universitat Rovira i Virgili in Tarragona, Catalonia, Spain. Contact <ruben.mondejar@estudiants.urv.es>

Helio Tejedor Navarro, M. Sc. Computer Science Student in the Department of Computer Science and Mathematics at Universitat Rovira i Virgili in Tarragona, Catalonia, Spain. Contact <heliodoro.tejedor@estudiants.urv.es>

Marc Sanchez Artigas, PhD student in the Department of Computer Science and Mathematics at Universitat Rovira i Virgili in Tarragona, Catalonia, Spain. Contact <marc.sanchez@estudiants.urv.es>

Pedro García López, full-time professor in the Department of Computer Science and Mathematics at Universitat Rovira i Virgili in Tarragona, Catalonia, Spain. Contact <pgarcia@etse.urv.es>

Carles Pairot Gavaldà, PhD student in the Department of Computer Science and Mathematics at Universitat Rovira i Virgili in Tarragona, Catalonia, Spain. Contact <cpairot@etse.urv.es>

Publications

 

2005

  • Pedro García, Carles Pairot, Rubén Mondéjar, Jordi Pujol, Helio Tejedor, and Robert Rallo. PlanetSim: A New Overlay Network Simulation Framework. Lecture Notes in Computer Science (LNCS), Volume 3437. Software Engineering and Middleware, SEM 2004, Linz, Austria. Revised Selected Papers. March 2005, pp. 123-137. ISSN: 0302-9743. ISBN: 3-540-25328-9.
2004
  • Pedro García, Carles Pairot, Rubén Mondéjar, Jordi Pujol, Helio Tejedor, and Robert Rallo. PlanetSim: A New Overlay Network Simulation Framework. Proceedings of the 19th IEEE International Conference on Automated Software Engineering (ASE 2004). Workshop on Software Engineering and Middleware (SEM 2004). Linz, Austria, September 2004. ISBN: 3-902457-02-3. Acceptance Rate: 34%.

 

Related Work

The Chord Project

http://www.pdos.lcs.mit.edu/chord/

Pastry, Scribe, FreePastry

http://freepastry.rice.edu/

P2Psim

http://www.pdos.lcs.mit.edu/p2psim/

MACEDON

http://macedon.kcubes.com/
 

TODO List

This framework is an open project, we present the new features that can be implement by anyone.

Priority messages

Now priority of the all message are the same.

Proximity

In the current version, for the framework the real distance between the nodes does not have importance.

NetworkWrapper evolution

In this moment, the experimentation part is a alpha version.

Viewer Tools

It would be interesting that the results be presented in a 3D model for example.

Distributed simulator

It would be interesting too, that the framework don't only works in a unique machine, to distributed the load in a machine set (LAN,cluster, etc).

New overlay protocols

We have said one of the few extension of the framework is the protocol extension, so can be implement new overlays as Pastry, Kademlia, etc....

New applications

The same of the previous feature, but in this case the extension is at the application level.