Tool support for evaluating topology control algorithms specified using eMoflon
Go to file
2018-12-11 10:05:01 +01:00
jupyter Add launcher for GuiRunner and add Jupyter 2018-12-07 14:52:54 +01:00
org.cobolt.algorithms Check for unnecessary code 2018-12-07 11:17:26 +01:00
org.cobolt.analysis Merge Simonstrator into Cobolt 2018-11-15 11:17:29 +01:00
org.cobolt.model Check for unnecessary code 2018-12-07 11:17:26 +01:00
org.cobolt.ngctoac Refine new Henshin rule set with graph constraints 2018-12-11 10:05:01 +01:00
org.cobolt.releng.target Update settings and add target configuration 2018-10-02 17:14:18 +02:00
org.cobolt.simbridge Check for unnecessary code 2018-12-07 11:17:26 +01:00
org.cobolt.specification Merge Simonstrator into Cobolt 2018-11-15 11:17:29 +01:00
org.cobolt.tccpa Update paths to config and output folders 2018-11-12 12:54:00 +01:00
simonstrator-api Merge Simonstrator into Cobolt 2018-11-15 11:17:29 +01:00
simonstrator-overlays Merge Simonstrator into Cobolt 2018-11-15 11:17:29 +01:00
simonstrator-peerfact Remove vulnerable dependency commons-compress 2018-12-07 14:55:18 +01:00
simonstrator-simrunner Add launcher for GuiRunner and add Jupyter 2018-12-07 14:52:54 +01:00
simonstrator-topology-control Check for unnecessary code 2018-12-07 11:17:26 +01:00
.gitignore Add launcher for GuiRunner and add Jupyter 2018-12-07 14:52:54 +01:00
.project Update settings and add target configuration 2018-10-02 17:14:18 +02:00
cobolt.psf Remove user name from project set files 2018-12-10 08:12:43 +01:00
LICENSE.txt Add license file 2018-12-07 13:51:08 +01:00
pom.xml Merge Simonstrator into Cobolt 2018-11-15 11:17:29 +01:00
README.md First version of README.md 2018-12-07 14:51:10 +01:00

Cobolt - A model-based tool for evaluating topology control algorithms

This repository hosts the code of Cobolt, a model-based tool for the rapid simulative evaluation of topology control algorithms.

The Cobolt repository comprises a modified version of the Simonstrator network simulator (version 2.5) and a set of of sample topology control algorithms specified using the modeling tool eMoflon.

Setup instructions

  1. Install Eclipse 2018-09 R with Modeling Components Oxygen (or newer)
  2. Install the Maven 2 Eclipse integration (m2e)
    1. Navigate to the Install dialog (Help → Install New Software...).
    2. Select the standard Eclipse update site (e.g., http://download.eclipse.org/releases/2018-09 for Eclipse 2018-09)
    3. Install General Purpose Tools/m2e - Maven Integration for Eclipse no need to restart Eclipse afterwards
  3. Install eMoflon 3.5.1
    1. Open the Install dialog.
    2. First, install only PlantUML 1.1.21 (or above)no need to restart Eclipse afterwards: https://hallvard.github.io/plantuml/
    3. Open the Install dialog.
    4. Paste the following Eclipse update site: https://github.com/eMoflon/eMoflon.github.io/raw/emoflon-tie-updatesite_3.5.1/eclipse-plugin/beta/updatesite
    5. Select Manage....
    6. Enable at least the following update sites:
    7. Go back via Apply and Close.
    8. Make sure that the option Contact all update sites during install to find required software is enabled.
    9. Select eMoflon::TIE-SDM and complete the installation via Next etc.
      • Note: The dependency resolution may take some time...
    10. Restart Eclipse, open a fresh workspace, and switch to the eMoflon perspective.
  4. Install Enterprise Architect 12 (or later)
  5. Set up Cobolt
    1. Right-click in Project Explorer → Import... → Team/Team Project Set
    2. URL: https://raw.githubusercontent.com/eMoflon/cobolt/master/cobolt.psf
    3. Let Eclipse check out and build all Cobolt and Simonstrator projects for you
      • Make sure that Build → Build automatically is enabled.
    4. Eclipse complains about the missing Tycho lifecycle plugin (org.eclipse.tycho:tycho-compiler-plugin:1.0.0:compile).
      • Use the quick fix (Ctrl+1 when pointing at the error marker) to discover and install the appropriate m2e connectors.
    5. Restart Eclipse and let wait until the auto-build has completed.
  6. Run a sample simulation
    1. Navigate to simonstrator-simrunner/config/dissertation/.
    2. Right-click GuiRunner.launch and select Run as... → GuiRunner.
    3. Select the simulation configuration file cobolt.xml (in the folder dissertation).
      • If you wish, you can experiment with different settings
        • size configures the number of motes
        • world_size configures the side length of the area in meters
        • topologyControlAlgorithm configures the active topology control algorithms (e.g., MAXPOWER_TC D_KTC E_KTC LSTAR_KTC GG Yao RNG GMST LMST)
        • topologyControlIntervalInMinutes configures the interval between topology control executions in minutes
    4. Press Start Simulation.
    5. Two windows pop up: the simulation progress view and the topology visualization.
      • The shown blue graph is the virtual topology of the topology control algorithm (by default, kTC with k=1).
      • The topology control algorithm is executed periodically (by default, once every simulated minute).
      • In the Eclipse Console window, you can observe the simulation output.
        • Lines with 'iter#xxx CEH' refer to the context event handling.
        • Lines with 'iter#xxx TCA' refer to the topology control algorithm execution.
        • Lines with 'iter#xxx STAT' refer to the statistics recording.
        • 'xxx' is the iteration counter
      • Additional output is available in simonstrator-simrunner/output/wsntraces/
        • The subfolder log contains the logfile (similar to the console output)
        • The subfolder energyConsumptionPerNode contains statistics about how long each mote was in each state.
        • The subfolder data contains the performance data (e.g., execution time, link state modification counts,...)
        • The file wsntraces_scenarioStatistics.csv summarizes information about the scenario (e.g., initial topology density).

Reproducing the evaluation results

Conduct the following steps to reproduce the Cobolt evaluation results.

  1. Install Jupyter: https://jupyter.org/
  2. Execute the launcher simonstrator-simrunner/config/dissertation/CoboltEvaluationExecutor.launch and wait for it to complete
    • This may take several days depending on the hardware platform.
    • Important: Abort the batch run using the 'STOP batch run' button, otherwise simulation processes may continue to run in the background.
  3. Concatenate the CSV files in output/wsntraces/[...]/data (without repeating the header!)
  4. Place the concatenated file in jupyter/data/cobolt/dataCollected.csv
  5. Execute the Jupyter notebook: jupyter/DissertationEvaluation.ipynb.
    • This notebook produces all evaluation plots (also for the tool cMoflon).

Licensing

GPLv3, see LICENSE.txt.