DSOL - Distributed Simulation Object Library

What is DSOL?

  • DSOL is an open source, Java based, suite for continuous and discrete event simulation.
  • Its first release was introduced at IEEE's Winter Simulation Conference 2002.
  • The starting points for DSOL were that it should be possible to create simulation models that are inherently distributed, and simulation models that are built on the premises of object oriented principles.
  • DSOL is based on Zeigler's (2000) framework for modeling and simulation, which means that the basic entities in a simulation study are a model, and a simulator, governed for experimentation by and experimental frame.
  • All these elements surface in the DSOL simulation framework: the ModelInterface, implemented by the user, the SimulatorInterface with several implementations such as the DEVSSimulator and the DESSSimulator, and the class ExperimentalFrame for setting the experiment.

Implemented formalisms

At the moment, the following formalisms have been implemented in DSOL: event scheduling, process interaction, differential equations, flow modeling, classical DEVS, Port-based DEVS, hierarchical DEVS, and agent modeling. Extensions created by others (but currently still outside the core) contain for instance Petri Nets.


DSOL-NAMING is the module that contains a JNDI naming service. It implements a hierarchical Context where simulation objects can find each other. A remote implementation and a file-backed implementation exists as well.

  • Full JNDI naming service with hierarchy and key mappings
  • In-memory JVM implementation
  • Remote implementation
  • File-backed implementation
  • Publish/subscribe mechanisms to listen to changes in the hierarchy

DSOL License

DSOL has an open source BSD 3-clause license.

  • Third party components used in DSOL can not have a license that is more restrictive than BSD, Apache, MIT, LGPL, Eclipse.
  • DSOL can be incorporated in part or in full in other products for any use (educational, commercial, whatever).
  • DSOL may be extended, evolved by anyone into anything else for any purpose.