The Midgar platform as a data source for CitiSim
The concept of the Internet of Things (IoT) refers to different technologies focused on the so-called Smart Objects. The idea is to use the sensors and actuators of objects connected to a network to be able to handle their information and to be able to perform actions with such objects remotely or automatically. This has opened the door to endless new applications, in which millions of data from user actions or sensors are stored in the cloud and can be used, for example, to perform actions with other objects or to communicate something to a person. This has caused the emergence of novel concepts such as smart traffic management, smart parking, smart buildings, smart home, smart healthcare or smart cities, all with the same common objective: to make life easier and better for people.
Within the immense IoT ecosystem, CitiSim provides a platform that focuses on the Smart City concept. Thus, the main objective is to integrate different data sources to monitor interesting and important aspects of any city. For that purpose, the platform provides advanced visualization, simulation and interaction techniques. One of the most interesting aspects is the integration of different types of sensors and data sources of different kinds, which will be the basis on which the platform will convert raw data into valuable information for the different stakeholders.
A key line of work will be the integration of CitiSim with other IoT platforms. From CitiSim’s point of view, these platforms would be nothing more than other data sources from which to obtain a multitude of useful variables for smart cities. CitiSim will be the central axis that will consume data coming from any current IoT platform. Thus, after a step of data filtering, it will keep only the data of interest to the specific city.
Such integration will be important because, although with the IoT is possible to create smart networks to control almost anything, there are still two big obstacles that have caused a proliferation of different platforms that try to give solutions from different angles and for different use cases: The two main drawbacks are: 1) the objects are very heterogeneous and that makes it very difficult, and in many cases impossible, to connect and communicate them; and 2) although people have Smart Objects ready to be connected, it is still very difficult to create applications using the values of the sensors and the actuators of the objects, since it is usually necessary to have a minimal knowledge of software development to take advantage of them.
To investigate the problems of current platforms and to try to improve the state of the art of the interconnection of objects and the creation of IoT-based applications, the Midgar platform was designed. Although both CitiSim and Midgar are IoT platforms, they have two different main goals. The former is intended to convert raw data into valuable information focusing on smart cities. The latter is intended to provide a mechanism that facilitates the development of applications with intelligent objects of any kind. That is why we think that integrating Midgar with CitiSim could provide a valuable source of data for CitiSim.
In the next lines, the design of Midgar and some use cases will be briefly explained, so that its operation and what type of information is handled in it can be understood. Figure 1 shows an overview of the architecture of Midgar, which can be divided in four different layers:
Figure 1. Midgar platform architecture
- Process definition. It is designed for users to define the purpose of the application by using a Web-based Domain-Specific Language (Figure 2 shows a screenshot of the first version of the editor divided into five main work areas). Internally, an XML format model is generated that contains all the user-defined information, ready to be automatically processed on the platform.
- Service Generation. It is necessary to refine and make the model ready to be processed in the next step.
- Processor and Object Manager. It is indented to generate a Java application with all the needed information and with all the functionality that was defined by the user. Midgar compiles and executes the application that will be connected to the server and with the database. Such database contains all the data that may be of interest for CitiSim.
- Objects. They implement the common message interface to keep a permanent, bidirectional connection with the Midgar platform. The message interface is the key to allow interconnection of objects.
Figure 2. Editor for the generation of object-interconnection application
In February 2016, a PhD thesis with this first version of the platform, and with other improvements, was defended at the University of Oviedo. The main idea was to focus on how to facilitate the creation of IoT applications, allowing any user to create interconnections among objects. However, since then, several works have been carried out trying to expand and extend the potential of the platform.
For example, in order to have safe cities and homes, people usually have IP cameras-based systems. However, those systems normally need some people to check the camera or the recordings when an event occurs, or the camera notifies about any incident. The idea of this extension was to use computer vision techniques to consider images the same as if they were any other sensor, trying to automate the use of IP cameras and enter their values in the chain of sensors and actuators as any other value extracted from any sensor. Figure 3 shows some of the experiments carried out while this Midgar subsystem was being developed.
Figure 3. Some experiments performed to measure the accuracy of the module developed
Another extension focused on communication security among Smart Objects. The idea was to analyze techniques and cryptographic algorithms that can be used to protect communications, being able to exchange messages between objects safely. Midgar was used as the platform to interconnect such objects and send the messages among them. The study concludes that the use of some algorithms such as RSA (asymmetric), AES (symmetric) and SHA-3 (hash) can be the best option to protect messages, providing the best consumption-security relation among all the tested possibilities, according to the heterogeneous objects existing on the IoT.
One of the last works on Midgar focused on improving the usability of the platform and bring all people closer to its use. To that end, the MUCSL language was proposed. It allows users to specify the interconnections between heterogeneous objects using natural language. The language is based on the English syntax to define when or under what conditions which objects are going to be used. The language is equipped with a mechanism that automatically translates the specification into source code based on the Model-Driven Engineering approach. Figure 4 shows a very small example of how the interface would be used. However, the complete language has many possibilities and keywords to work with conditions, comparison and different kind of operations.
Figure 4. MUCSL language screenshot, words in square brackets are optional
While Midgar continues to include new ways of communicating objects and creating applications with Smart Objects, CitiSim continues to integrate new data sources and visualization, simulation and interaction techniques. We think that the integration of both platforms could give an enormous potential. Thus, as a result of the collaboration with the University of Oviedo as part of the growing CitiSim ecosystem, we are working on the integration mechanism, that will be based on the Midgar central repository to provide the data of interest to the smart cities. To that end, the CitiSim platform currently provides three different methods: Libcitisim library, Multiprocol adapters and ZeroC ICE.
First, Libcitisim library, that is a library that allows to create new services for CitiSim and new integrations with other solutions. The use of the Python/C# programming languages supported by the library fits perfectly in Midgar’s microservice-based architecture.
Second, Multiprotocol adapters, that is another mechanism developed to integrate other devices and platforms within the CitiSim ecosystem using well-known standards and technologies. It is useful both to obtain data from other platforms and to send data to other platforms.
Finally, ZeroC Internet Communications Engine, that is an object-oriented RPC framework that is useful to develop distributed applications with minimal effort. Basically, it provides tools, APIs and libraries to build object-oriented client-server heterogeneous applications.
Currently, the integration between both platforms is being considered using the three methods described above, since each of the methods are intended for different purposes, depending on the needs of interconnection and the specific use case. Nevertheless, regardless of the mechanism used, the integration between CitiSim and Midgar will be beneficial for both ecosystems.
Authors: Vicente García-Díaz and Cristian González García
Company: University of Oviedo – Spain