## 2 State of the Art
### Overview of IoT Simulators
#### 2.1.1 \(S^{3}\) and OMNeT++
The hybrid simulation approach to this is an extension of the multi-level simulation from [9]: The top level simulator that advances the simulation as a whole is again implemented by \(S^{3}\), this time with a more refined broadcasting approach, called geoPbB. Level 1 is realized by two simulators this time, which work in succession. The first of the two is an ADVISOR (ADVanced VehIcle SimulatOR) based simulator. ADVISOR in turn, is based on Matlab/Simulink and developed for the analysis of performance and fuel economy of vehicles [11]. The simulator uses a component based approach in which the components are modeled by equations and quasi steady approximations. It is utilized by the upper level in batch mode to simulate vehicles arriving at the neighborhood of the market place and the parking activity of these customers and reports the emissions back to it. The results of this simulation are then used to provide the second simulator on this level with the number of novel customers entering the market place. This second simulator on the level is again OMNeT++ in the same configuration as in [9]. The different simulators were employed on different operating systems: The top level simulator \(S^{3}\), as well as the lower level simulator OMNeT++ were executed in a Linux environment while the ADVISOR based simulator was executed on Windows. Communication between the levels again was message based, implemented through TCP socket connections. Since both simulators on Level 1 run consecutively, both are encapsulated in a wrapper that executes them successively and handles the synchronization with Level 0. After a series of experiments focused on the individual performance of the simulators \(S^{3}\) and OMNeT++ on the same hardware setup as in [8] before, the authors conducted a series of tests with only \(S^{3}\) and OMNeT++ on a single Linux host. It proved the assumption: if more than one logical process in Level 0 creates multiple Level 1 instances, the memory consumption can increase vastly. The authors recommended the partition of Level 1 in multiple interconnected hosts. Subsequently, [PERSON], [PERSON] and [PERSON] continued testing with a parallel and distributed approach. While Level 0 (\(S^{3}\)) and Level 1b (OMNeT++) reside on a Linux host as described above, Level 1a (ADVISOR) is created on a windows host whose detailed specifications can be reviewed in [10]. The two hosts are interconnected by fast ethernet LAN. When the number of simulated entities, which were transferred to Level 1, was limited to one, experiments showed relevant costs arising due to the sequential execution of Level 1a and Level 1b. This could possibly be balanced through a parallel setup for Level 0. However, a possible speedup would be rather low, due to the nature of the used model, which lacks embarrassingly parallel problems. Finally, tests regarding the partition of simulated entities in more and more logical processes showed a linear increase of overhead and the addition of logical processes would only cause memory thrashing. The three thus far presented works used multi-level simulation to model rough movements and services on the top-level by agent-based modeling and finer grained movement and communication on the lower levels by discrete event simulation and other simulation approaches. This stands in contrast to this work that only uses discrete event simulation techniques. In addition, the approach proposed in this work does not necessarily rely on single domain-specific simulators for specific levels, since in every level multiple simulators can manage their respective models.