|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
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 (with the Tcl/Java extension), 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):
We are currently working on the GUI support and expect to release more components soon. Software Architecture Designer: Hung-ying Tyan 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: * JAVA and all JAVA-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
|
News 2006/07/05 v1.3-patch4Much belated patch, including bug fixes over the past two years... 2006/05/13 Component architecture whitepaper in Spanish
|
| 9/18/2004 Graphical Editor v0.6 2/20/2004 Release1.3 9/16/2003 Registered at sourceforge 6/30/2003 Renamed to J-Sim 2/24/2003 Graphical Editor v0.4 12/12/2002 Release1.2.1 11/15/2002 Release1.2 11/30/2001 Graphical Editor v0.3 10/20/2001 Release1.0 (build#21) 8/3/2001 pre-release8 (build#20) 7/3/2001 pre-release7 (build#19) 4/29/2001 pre-release4.2 (build#16) 4/17/2001 pre-release4.1 (build#15) 4/11/2001 pre-release4 (build#14) 4/11/2001 GUI editor! 1/29/2001 pre-release3 (build#12) 12/27/2000 pre-release2 (build#11) 10/18/2000 pre-release1 (build#10) 3/5/2000 build#9 1/12/2000 build#8 12/7/1999 build#7 9/20/1999 build#6 8/23/1999 build#5 8/17/1999 build#4 8/13/1999 build#3 7/23/1999 build#1 |