The WiSSim project was created for building a software tool that could help researchers and
algorithm designers to test their newly proposed algorithms for wireless sensor networks.
The WiSSim software is constructed as an integrated environment for experimenting, or simply,
playing with algorithms for WSN. We support graphic tools for defining/setting a network
topology and node configuration, selecting algorithms for testing, i.e. either visualizing or
simulating or both.
Initially, we aimed at creating software to help us experimenting with sophisticated geographic
routing algorithms, a certain hot area of research in WSN for the last 10-15 years. However
later, we found out that we can extend this project to a larger landscape: to help researchers
experimenting with the geometric algorithms in WSN that are somehow exploit certain aspects
of the geometry of the WSN, where the geographic routing algorithms could be seen as typical examples.
Our WiSSim follows the Client-Server architecture where at the client side we provide the front-
end components for the user to define the test networks, algorithms and execution scripts, and
possibly ask for simulation then run the visualization and analysis tools to enjoy seeing the test
analysis results provided with care towards the user convenience and deep understanding. At the
back-end, we exploit some popular existing network simulator software, that is ns-2 for now and
possibly others. The WiSSim server acts as a connector to work with ns-2: preparing the Tcl
scripts to be executed in ns-2 and retrieving and interpreting the trace files outputted from ns-2.
Besides we also embed into the ns-2 core with our low-level implementation of certain selected algorithms (mostly about routing).
WiSSim Editor is the Client component for creating and editing network topologies and test
scripts. It provides graphic tools for creating a network of large size (up to thousands sensor
nodes) in a certain given mode (such as using a random node distribution) in a landscape of
certain conditions (such as a ground with a pool that nodes cannot be placed). The configuration
of the network components can then also be defined by using mostly mouse clicks and numeric
keys. The users then select the algorithm to be tested and define the execution scripts. In the next
step, for certain basic algorithms (such as Voronoid) the user will obtain a graphic rendering of
the result while for some sophisticated distributed algorithms (e.g. geographic routing) the user
will go through the next phases of working with simulation, visualization and analysis tools.
Once the WiSSim Server has accomplished a given simulation task, it will notify the Client and
the simulation result (e.g. trace file in ns-2) can be processed and sent back to the Client. The
Visualizer and Analyser components at the client side will help to interpret and analyze this data
results. The Analyzer helps to extract and present important factors in pre-designed forms. You
the user can use the control panel to customize the forms and tune the viewing options for better
analyzing and understanding. Moreover, the Visualizer can be used in combination with the
Analyzer for rendering a graphic interpretation of certain part of the experiment: the rendering
could be taken over all the experiment or focused on a specific part of. For example, one may
want to observe the creation of a specific packet and the path it travels (being forwarded by the
routers) during the execution of an experiment on a routing algorithm.
The built-in library of algorithms consists of two parts – one resides inside the Client and one
inside the server side. The hardest part of this project is perhaps our treatment of embedding our
C++ code into the ns-2 core so that we can simulate many sophisticated geographic routing strategies and algorithms.