A Flexible Network Interface for a Real-time Simulation Framework
MetadataShow full item record
This thesis presents a flexible network interface for the real-time simulation framework, Vico. In particular, the interface allows remote clients to connect to simulations over the network using a variety of transport mechanisms. Furthermore, new transports can be added to the system due to the extensible software design. Additionally, individual clients can choose how data payloads are sent/received over the wire. Both the textual JSON format and the binary Google Protocol Buffers format are supported for static message types. Again, this mechanism is extensible such that additional formats can be supported in the future. Allowing multiple transports and encoding schemes ensures that the system is accessible, allowing a wide variety of clients to interact with the simulations. Messages from clients are handled by so called Message Handlers. The system comes bundled with a set of default handlers, some of which allows clients to implement real-time 3D visualization and plotting through pre-defined message types. The content and structure of these messages has been developed as part of the thesis. In order to facilitate special requirements, a special handler allows annotated Java methods to be exposed dynamically over the network using JSON RPC 2.0 compliant messages. Additionally, simulation designers are free to add new handlers to fit their needs. The details of the implementation will be presented, as well as performance metrics for the utilized network transports and serialization formats. To show the usefulness of the system, both a web client and Unity3d client was implemented and tested. In order to test the system as an enabler for multi-display solutions, the Unity3d client was used to project a simulation onto the cylindrical dome in the Visualization lab located at NTNU Aalesund.