Please cite this paper when you use this simulator in your publications/lectures/presentations:
M. Aibin and M. Blazejewski, "Complex Elastic Optical Network Simulator (CEONS)," 2015 17th International Conference on Transparent Optical Networks (ICTON), Budapest, 2015, pp. 1-4. doi: 10.1109/ICTON.2015.7193519
British Columbia Institute of Technology, Faculty of Computing
All Rights Reserved
Copyright© 2019
CEONS runnable JAR file with two sample networks can be downloaded from here.
The Complex Elastic Optical Network Simulator (CEONS) is an open-source desktop application that allows network scientists visualize the statistics and behavior of various optical network topologies using different simulation settings (i.e., algorithms, traffic generators, network requests types/intensity).
This simulator was originally developed by Dr. Michal Aibin and M. Blazejewski as a test environment to allow users to design their algorithms in any programming language and implement them in the simulator as plugins to solve the problems above. The results of each simulation were displayed onto the console showing the overall requests blocking percentage and link failures.
Since then, the simulator has evolved to illustrate the network topology within a geographical region and allow users to pause the simulation in real-time to observe resource utilization within each node or link. In the future, users will have the option to create their network topologies, where node locations can be specified with their group membership type, number of regenerators, and node linkage.
This user manual is intended to guide users through the specific use-cases in the graphical user interface provided by the desktop application. To run the simulator, your operating system needs to run the Java SE Development Kit 8.
If you need to setup your environment first, please visit the following links to download the recommended resources:
JDK 8 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
IntelliJ community edition | https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC |
GitHub repository | https://github.com/BCIT-SoCAS/ceons |
Upon setup completion, you will be able to run the simulator with the following major features:
-
Load network topology from saved .eon files and have it displayed onto the map area
-
Prior to simulation start:
-
Set algorithm, traffic generator, erlang, seed, alpha, demand count values
-
Enable backup replica preservation
-
Enable ability to change modulation on path
-
Choose allowed modulations
-
Set number of candidate paths
-
-
During simulation:
-
Pause simulation
-
Select specific nodes to display their group membership, node number, linked nodes, and regenerators remaining
-
Select specific links to display their length, start/end node, link usage percentage
-
-
Cancel or clear simulation
-
-
Create network topology (Currently under development)
-
Saving Google Maps API key to file
-
Customize node locations and connected nodes, number of regenerators, and group membership type
-
Reference Letter | Component |
A | Area to hold the map and network topology |
B | Console for status updates |
C | Progress bar for map load and simulation |
D | Network, Simulation, Live Info, Full Summary pane |
A: Create topology button that opens up a dialog window where a user can enter a google maps API key. Once entered the user can generate a network topology to be loaded.
B: Load topology button that opens up a file chooser to load .eon files onto the map and network topology area.
C: Changes the drawing state to allow user to select a node or link on a loaded network topology. Once clicked, this displays information in the Live Info pane.
D: Changes the drawing state to none, which has no effect upon user interaction with a loaded network topology.
A: Choose between algorithm types (e.g., AMRA, SPF), which dictate how routing occurs in the network and/or how optical resources are allocated.
B: Choose between traffic generator types (e.g., No backup, Shared backup, and Dedicated backup). This is the ability for a network to recover from resource failures.
C: Erlang number input determines the network traffic intensity
D: Seed number input is used by a random number generator to make the same simulation multiple times (produces same result)
E: Alpha number input determines the probability of link failure
F: Demands count number input is the number of demands to be simulated in the network
G: Allows replica (data center) to be preserved for backup traffic - it means that primary and backup traffic will have the same replica.
H: Allows modulation to be changed dynamically in simulation
I: Modulation types to be used during simulation
J: Number of candidate paths for each request to reach a destination
K: Begins simulation
L: Pause simulation or Resumes simulation (if paused)
M: Cancels running simulation or reloads simulation if not running
This section holds live information when the simulation is started and paused. If a node or link is clicked on when the simulator is paused, it displays the resource usage.
A node would display it’s group membership (international/data center/standard), how many regenerators it has left, and the other nodes it is attached to.
A link would display the the length of the link, the node it originates from/the node it ends on, and the link spectrum usage.
If neither node or link is clicked on it will display current summary statistics of blocking percentages for regenerators, link and blocked spectrum.
This section is currently under development. The idea for this area is to hold aggregated graphical information after multiple simulations are run.
Reference Letter | Component |
A | Standard node (indicated by white outline)
Number refers to node number (e.g., node_) in network topology The thicker colored line in the node indicates regenerator usage |
B | Link
The thicker colored line in the link indicates the percentage of link use |
C | International node (indicated by a blue outline) |
D | Data center node (indicated by a grey outline) |
E | International and data center node (indicated by a blue and a grey outline) |
- Click Load Topology button.
Figure A: Main Menu controller showing network settings
- Select the available .eon file containing complete network topology
Figure B: File chooser to select .eon file types
Figure C: Main Menu controller showing network settings
- Once the selected file is opened, the project will be loaded to calculate the paths available in the network. You must wait for paths to calculate before starting the simulator.
Figure D: Console showing fully loaded project with calculated paths
-
In Simulation Settings section of the main window:
-
Select Algorithm.
-
Select Traffic Generator.
-
Type Erlang, Seed, Alpha and Demands Count.
-
Select/unselect Backup replica preservation?
-
Select/unselect Change modulation on path?
-
Select Allowed Modulations.
-
Type Number of candidate paths.
-
Press Start Simulation.
Figure A: Loaded Euro28 network topology
Figure B: Network simulation in progress showing link and regenerator usage
-
In Simulation Settings, click Cancel Simulation
-
Click OK
Figure A: Canceling the simulation while it’s running
-
In Simulation Settings, click Clear Simulation
-
Click OK (or Cancel to resume)
-
Wait for network topology to finish loading and calculating available paths.
Figure B: Clearing the simulation when it’s finished, simulation results shown in the console
Traffic Generator will be reset after cancel/clear simulation. Please remember to Set Generators Traffic.
-
In Simulation Settings, click Traffic Generator and select No Backup or Dedicated Backup or Shared Backup
-
Click OK
Figure C: Setting Traffic Generator after cancel/clear and map load
-
In Simulation Settings, press Pause Simulation
-
Live Info panel will automatically open
Figure A: Pausing the simulation to display the current state of the network
-
While initially paused, current blocked spectrum, blocked regenerators, and blocked link failure will be shown in the Live Info panel
-
Otherwise, to access this information again when paused, click away from node/link on map within the map region
Figure B: Live Info panel populated with current summary statistics on blockage rates
-
While paused, click on a node of interest
-
Node instance information will be populated in the Live Info panel
Figure C: Live Info panel populated with the current node information
-
While paused, click on a link of interest
-
Link instance information will be populated in the Live Info panel
Figure D: Live Info panel populated with the current link information
-
Click Simulation Settings while paused
-
Click Resume Simulation
Figure E: Simulation Settings contains the Resume Simulation button
Figure A: Console displays a logged message about the network topology not being updated
Answer: Sometimes, the canvas is not able to update (redraw) the entire topology graphically in time before the next update to the canvas occurs. An exception is thrown to the console to let the user know if the network topology is not properly updated or completely drawn. Normally this is not an issue because the updates happen fast enough so the user doesn’t notice.
Figure B: Console display different max best paths count from loading the same topology
Answer: The code to calculate the max best paths is dependent on the utilization of CPU/RAM. If it has low utilization of CPU/RAM the path count will be more accurate; However, if the application detects a high utilization then it will try to estimate the best paths to reduce loading time. This means we will generally try to find a good balance between loading speed and accurate path determination. Overall, this does not have an effect on the simulation.
Answer: In general, the color for node and link represents the resource utilization. Green means there are plenty of resources left and red means there is a sparse amount of resources. Any gradient of colors in between (i.e., yellow, orange) is indicative of moderate resource utilization. Refer to content chapter III, section 6) if you would like a detailed break down of the numbers. Otherwise, you can click on the node/link while the simulation is paused to analyze how much resource is left.