Internet of Things Interactions’ Simulator
IoTIS (initially developed under the name of MobileJINQS), is an open-source library for building simulations encompassing constraints of IoT applications. IoTIS is an extension of JINQS, a Java simulation library for multiclass queueing networks, developed by Tony Field (Imperial College London). JINQS provides a suite of primitives that allow developers to rapidly build simulations for a wide range of QNMs.
IoTIS retains the generic model specification power of JINQS while providing additional features of IoT systems such as: (i) lifetime limitation for each message entering a queue; (ii) intermittently available (on-off) (queue) server or with variable service rate over time to represent the mobile IoT devices behavior across multiple layers; (iii) probabilistic dropping based on the message importance or the IoT device’s intermittent connectivity; (iv) message prioritization depending the message importance, the message size and the available network bandwidth; and (iv) arrival rates with variable message rate over time to represent real-traces.
The above individual queueing models are leveraged to develop performance modeling patterns. These patterns can be utilized by IoT system designers to model the performance of their applications. Such applications may employ different middleware protocols following different interaction paradigms such as Client/Server, Publish/Subscribe and Data Streaming. Thus, an application designer is able to use IoTIS to define the QoS semantics (lifetime, ON/OFF connectivity, IoT protocol, etc) and requirements of the end-IoT devices. Then, IoTIS composes the corresponding performance pattern that simulates its performance.