Attention: We are in the process of moving J-Sim to Google Sites. Many links still go back to the original site. The situation will be getting better in a few months.

Latest Version: version 1.3 + patch4


J-Sim (formerly known as JavaSim) is a component-based, compositional simulation environment. It has been built upon the notion of the autonomous component programming model. Similar to COM/COM+, JavaBeansTM, or CORBA, the basic entity in J-Sim is components, but unlike the other component-based software packages/standards, components in J-Sim are autonomous and are realization of software ICs (see the white paper "autonomous component architecture" for details).

The autonomous component architecture mimics the IC design architecture in the closest possible way. The behavior of J-Sim components are defined in terms of contracts (in much the same way IC chips are defined in the specification in the cookbook) and can be individually designed, implemented, tested, and incrementally deployed in a software system.  A system can be composed of individual components in much the same way a hardware module is composed of IC chips. Moreover, components can be plugged into a software system, even during execution.

For the purpose of network modeling and simulation, we have defined, on top of the autonomous component architecture, a generalized packet switched network model.  The model defines the generic structure of a node (either an end host or a router) and the generic network components, both of which  can then be used as base classes to implement protocols across various layers.  Although the model is derived by featuring out the common attributes of network entities in the current best-effort Internet, it is general enough to accommodate other network architectures, such as the IETF differentated services architecture, the mobile wireless network architecture, and the WDM-based optical network architecture. 

J-Sim has been developed entirely in JavaTM.  This, coupled with the autonomous component architecture, makes J-Sim a truly platform-neutral, extensible, and reusable environment.  J-Sim also provides a script interface to allow integration with different script languages such as Perl, Tcl, or Python. In the current release,  we have fully integrated J-Sim with a Java implementation of the Tcl interpreter called Jacl. So, similar to ns-2, J-Sim is a dual-language simulation environment in which classes are written in Java (for ns-2, in C++) and "glued" together using Tcl/Java.  However, unlike ns-2, classes/methods/fields in Java need not be explicitly exported in order to be accessed in the Tcl environment.  Instead, all the public classes/methods/fields in Java can be accessed (naturally) in the Tcl environment.

We outline the salient features of J-Sim below:

J-Sim consists of several packages, containing about 125K lines of source codes.  The current release can be approximately broken down as follows (size as in class files, uncompressed):

The base package that defines the component-based architecture, along with the simulation runtime (drcl.comp, drcl.sim)  359KB
 The NET package (drcl.net)  129KB
 The INET package (drcl.inet)  825KB
 The Diffserv package (drcl.diffserv)  48KB
 The Intserv package (drcl.intserv)  67KB
 The RUV system (drcl.ruv)  158KB
 Common class library (drcl.data, drcl.util)  204KB
 J-Sim Total (uncompressed)  1,790KB
 Third party:  
           Jacl 1.3.1 (tcl)  872KB
           Jython (org.python, jxxload_help, org.apache.oro.text.regex)  1,010KB
          PtPlot 5.1 (ptolemy.gui, ptolemy.plot, com.microstar.xml)  192KB
 Grand Total (J-Sim + 3rd party, uncompressed)  3,864KB
 Grand Total (J-Sim + 3rd party, .zip)  1,955KB

Active Contributors (in alphabetical order): Wei-peng Chen, Ye Ge, Guanghui He, Chunyu Hu, Hwangnam Kim, Lu-chan Kung, Ning Li, Hyuk Lim, Ahmed Sobeih, Hung-ying Tyan, Honghai Zhang, Rong Zheng.

Past Contributors: Yuan Gao, Yifei Hong, Yung-Ching Hsiao, Shankar Kalyanaraman, Wei Lin, Seok-Bae Park, Ling Su, Bin Wang, Yi Ye, Jing Zhang.

Project Supervisor: Jennifer Hou.

Sponsors: This project has been partially supported by NSF Next Generation Software program, DARPA/IPTO network modeling and simulation program, MURI/AFOSR, Cisco Systems, Inc., Ohio State University, and University of Illinois at Urbana-Champaign.

Last updated: 01/28/2005

* JAVA and all JAVA-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.

News

2013/05/08  gEditor v0.7

A minor release to simplify installation. Refer to README.txt in the package for installation instruction.


2006/07/05  v1.3-patch4

Much belated patch, including bug fixes over the past two years...


2006/05/13  Component architecture whitepaper in Spanis

A kind contribution from Juan Martinez Romo.


2005/01/18 sensorsim-patch

Localization and Diffusion protocols are added. Some classes are added and modified to extend the previous version.


2005/01/14  GPSR

Greedy Perimeter Stateless Routing (GPSR) protocol is contributed by Wei-peng Chen, Honghai Zhang and Hyuk Lim at UIUC.


2004/09/18 gEditor v0.6

The J-Sim Graphical Editor v0.6! Brought to you by Dan Clemmensen.


2004/05/14  v1.3-patch3

Enhancements to allow real applications to run in simulation runtime; many other enhancements and a few bug fixes.


2004/03/16  v1.3-patch2

Enhancements and a correction over a fix in patch1.


2004/03/05 Infonet Suite 1.3

The code contributed by the Infonet group (ie, MPLS, BGP4...) is revised to be compatible with J-Sim v1.3-patch1.


2004/03/05 v1.3-patch1

A few enhancements and adjustments.


2004/02/20 Release1.3

This release has included extension to wireless/mobile networks and sensor networks: drcl.inet.mac, drcl.inet.sensorsim, and drcl.inet.protocol.aodv.


~ Past News Here ~


Milestones

9/18/2004 gEditor v0.6
2/20/2004 Release1.3
9/16/2003 Registered at sourceforge
6/30/2003 Renamed to J-Sim
2/24/2003 gEditor v0.4
12/12/2002 Release1.2.1
11/15/2002 Release1.2
11/30/2001 gEditor v0.3
10/20/2001 Release1.0 (build#21)
7/23/1999 build#1