J-Sim: A Simulation Library
J-Sim is a scientific library for discrete-time process-oriented simulation in Java. J-Sim's primary domain is simulation of queuing networks but it can be easily used for any other simulation using discrete time.
J-Sim mimics the famous Simula language and brings you some of its main concepts, on a 21st-century programming platform.
J-Sim is a scientific library for process-oriented discrete-time simulation. It is written in Java 5 and allows you to create your own Java programs that use the concept of process interleaving in discrete model time that simulates real-world phenomena. The primary use of J-Sim is simulation of queuing networks but it can be used for any other discrete-time simulation.
J-Sim was originally developed at the University of West Bohemia; later, it was re-written to provide better performance and offer more features. All new versions and documentation will be published on this site.
Features
The basic building blocks of every J-Sim simulation are processes, optionally queues, semaphores, message boxes, random-number generators, and other user-defines objects. Processes are active while other elements of the simulation are passive. The simulation is executed in a step-by-step manner. During a step, just one process is given an chance to run.
J-Sim is built up upon some very well known principles inherited from the Simula language, such as:
- life of processes, described as a sequence of actions;
- model time, shared by all processes within a simulation world;
- process state manipulation routines (hold(), passivate(), ...), controlling simulation progress;
- queue facilities HEAD and LINK, used for easy manipulation with queues and elements contained within them.
In addition to the standard features that a Simula user might expect, some extra features are provided:
- simulation of Dijkstra semaphores – processes may get blocked and unblocked on them;
- simulation of message passing – blocking and non-blocking send and receive operations; symmetric, asymmetric, and indirect communication supported;
- independent random-number generators (exponential, Gaussian, boolean, and uniform distribution) that can be initialized by user-defined seed and therefore guarantee repeatability of experiments;
- console mode and two GUI modes (batch and interactive).
Learn it!
J-Sim comes with many examples that you can use. They cover all J-Sim features, starting with trivial ones (a couple of lines of code) and ending with complex ones. Using the examples, you can learn J-Sim even without reading the documentation.
Also, reading the J-Sim Tutorial is a great way to learn how to use the library and to see how it works internally. First, it explains the concepts of discrete-time process-oriented simulation in general; then, it explains the internals of the library. A Postscript version is available in the distribution.
Browse the J-Sim API documentation generated automatically from the source code by JavaDoc. It's also available off-line as a part of the distribution.
License
J-Sim is open source, licensed under the Academic Free License version 2.1. The license has been approved by the Open Source Initiative and complies with the Open Source Definition.
Download
| File | Size [B] | Description | Release Date |
|---|---|---|---|
| JSim-0.6.0.ZIP | 1.453.249 | J-Sim 0.6.0 packed with ZIP. For DOS-like systems: Windows, DOS, OS/2, ... |
2006-Aug-15 |
| JSim-0.6.0.tar.gz | 718.662 | J-Sim 0.6.0 packed with tar and gzip. For Unix-like systems: Linux, BSD, Solaris, ... |
2006-Aug-15 |
Each archive contains: Java sources, compiled classes, JAR, tutorial in HTML and Postscript, generated JavaDoc, examples, Ant build file, read-me/license/install/credits text file.
See Install.TXT to set up your classpath.