Giter Club home page Giter Club logo

ceons's Introduction

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.

I. Introduction

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

II. Reference Overview

Upon setup completion, you will be able to run the simulator with the following major features:

  1. Load network topology from saved .eon files and have it displayed onto the map area

  2. Prior to simulation start:

    1. Set algorithm, traffic generator, erlang, seed, alpha, demand count values

    2. Enable backup replica preservation

    3. Enable ability to change modulation on path

    4. Choose allowed modulations

    5. Set number of candidate paths

  3. During simulation:

    1. Pause simulation

      1. Select specific nodes to display their group membership, node number, linked nodes, and regenerators remaining

      2. Select specific links to display their length, start/end node, link usage percentage

    2. Cancel or clear simulation

  4. Create network topology (Currently under development)

    1. Saving Google Maps API key to file

    2. Customize node locations and connected nodes, number of regenerators, and group membership type

III. Navigating the application

1) Major components

image alt text

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

2) Network Settings Controller

image alt text

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.

3) Simulation Settings Controller

image alt text

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

4) Live Info Pane

image alt text

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.

5) Full Summary Pane

This section is currently under development. The idea for this area is to hold aggregated graphical information after multiple simulations are run.

6) Network topology with nodes and links

image alt text

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
Green: Has more than 50 regenerators remaining
Yellow: Less than 50 regenerators remaining
Red: Less than 20 regenerators remaining

B Link

The thicker colored line in the link indicates the percentage of link use
Green: 50% or less link utilization
Yellow: More than 50% link utilization
Red: More than 80% link utilization

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)

IV. To load network topology

  1. Click Load Topology button.

image alt text

Figure A: Main Menu controller showing network settings

  1. Select the available .eon file containing complete network topology

image alt text

Figure B: File chooser to select .eon file types

image alt text

Figure C: Main Menu controller showing network settings

  1. 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.

image alt text

Figure D: Console showing fully loaded project with calculated paths

V. To run simulation

  1. In Simulation Settings section of the main window:

  2. Select Algorithm.

  3. Select Traffic Generator.

  4. Type Erlang, Seed, Alpha and Demands Count.

  5. Select/unselect Backup replica preservation?

  6. Select/unselect Change modulation on path?

  7. Select Allowed Modulations.

  8. Type Number of candidate paths.

  9. Press Start Simulation.

image alt text

Figure A: Loaded Euro28 network topology

image alt text

Figure B: Network simulation in progress showing link and regenerator usage

VI. To cancel/clear simulation

1) Simulation in progress

  1. In Simulation Settings, click Cancel Simulation

  2. Click OK

image alt text

Figure A: Canceling the simulation while it’s running

2) Simulation Finished

  1. In Simulation Settings, click Clear Simulation

  2. Click OK (or Cancel to resume)

  3. Wait for network topology to finish loading and calculating available paths.

image alt text

Figure B: Clearing the simulation when it’s finished, simulation results shown in the console

3) Restarting a simulation after cancel/clear

Traffic Generator will be reset after cancel/clear simulation. Please remember to Set Generators Traffic.

  1. In Simulation Settings, click Traffic Generator and select No Backup or Dedicated Backup or Shared Backup

  2. Click OK

image alt text

Figure C: Setting Traffic Generator after cancel/clear and map load

VII. To see live simulation statistics

1.0) Pause Live Simulation

  1. In Simulation Settings, press Pause Simulation

  2. Live Info panel will automatically open

image alt text

Figure A: Pausing the simulation to display the current state of the network

1.1) Blocked Percentages (Spectrum, Regenerators, Link Failure)

  1. While initially paused, current blocked spectrum, blocked regenerators, and blocked link failure will be shown in the Live Info panel

  2. Otherwise, to access this information again when paused, click away from node/link on map within the map region

image alt text

Figure B: Live Info panel populated with current summary statistics on blockage rates

1.2) Individual Node statistics

  1. While paused, click on a node of interest

  2. Node instance information will be populated in the Live Info panel

image alt text

Figure C: Live Info panel populated with the current node information

1.3) Individual Link statistics

  1. While paused, click on a link of interest

  2. Link instance information will be populated in the Live Info panel

image alt text

Figure D: Live Info panel populated with the current link information

2): Resuming simulation

  1. Click Simulation Settings while paused

  2. Click Resume Simulation

image alt text

Figure E: Simulation Settings contains the Resume Simulation button

VIII. Frequently Asked Questions

1) Why do I get an exception on updating the network UI?

image alt text

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.

2) Different best paths count between each project load?

image alt text

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.

3) Why does node and link color change during 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.

ceons's People

Contributors

hallymiao avatar iceslab avatar maibin avatar maksymchumak avatar mblaze avatar rafalekn avatar shaun92168 avatar wongderek94 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.