How easy it is to connect the simulator to a Web front end?
NS3 is highly modular and can be configured on the basis of the features that are required. Network simulations on NS3 are created by writing code in C++ using the NS3 API. These files are supposed to have extension cc and are compiled and executed. The result can be generated as an XML file using the NetAnim module. This makes it easier to send results back to the client.
We will have certain code associated with each functionality provided on the front end. We maintain a file for each user on the server. As the user designs the network on the front end we keep adding code to this file. When the simulation is run or some action needs to be performed the file on the back end is compiled and executed to generate the xml file which is then send back to the client and rendered to show the output. This gives us the freedom of using any scripting language or framework for the back end, however the mapping between the functionality and the code that needs to be added will have to be defined. The code might become long for large networks and since debugging might involve compiling and executing the code multiple times it might slow down the system.
|Modular design allows the software to be extended||Recompiling large pieces code multiple times might slow down the system.|
|User designed network is represented as a file and results are generated in xml||Still in development and certain features are not yet supported.|
Making granular network configuration
It provides flexibility in terms of link parameters and the modular approach allows the incorporation of more open source networking software and reduce the need to rewrite models for simulation. However the project is still under active development and a lot more features need to be added. Router configurations are not very flexible and vlan tags are not supported. As the software project is still developing not all network protocols and features are supported.
The NS3 project is an open source project licensed under GNU GPLv2, which enables us to use the code and modify and publish it according to our needs.