Thesis Darwin Alulema
A methodology based on models and services for the integration of IoT systems
Supervisors: Luis Iribarne y Javier Criado
TIN2017-83964-R, Study of a holistic approach for the interoperability and coexistence of dynamic systems: Implication in Smart Cities models.
Technology is increasingly present in everyday life, with new products with higher performance and lower costs. One of these technologies is the Internet of Things (IoT), which has capitalised on the development of telecommunications, electronics and computing technologies. It enables applications in areas as diverse as industry, agriculture, transport, home, entertainment, government, among others. However, this broad spectrum of applications has the problem of product diversity, lack of standardisation and difficulty of integration. These problems limit the creation of complex applications, due to the greater demand on a developer's knowledge of multiple technologies.
In this sense, the Web of Things (WoT) is an encouraging alternative that allows the development of applications with established and well-known technologies used in the design of web services. Moreover, by means of integration patterns it is possible to incorporate these services in applications that require greater interoperability, and to apply complex event processing techniques to data coming from intelligent objects. In this thesis, a methodology based on Model-Driven Engineering (MDE) techniques is proposed to overcome the difficulties present in the design of IoT systems. One of the objectives of this methodology is to facilitate the development process by establishing models that abstract the technological complexity implicit in each deployment platform. As a result, developers can focus on the business logic of the application. As part of the methodology, the following tasks have been developed: (a) definition of an integration architecture for IoT systems with heterogeneous components; (b) definition of an implementation methodology based on MDE for the construction of IoT applications; and (c) definition of a Domain-Specific Language (DSL), for the modelling of IoT Systems.
For the definition of the architecture, three layers have been proposed: Physical, Logic and Application. The Physical layer refers to the hardware components, specifically the controller and transducers (sensors and actuators), with which the smart objects that interact with the environment are created. The Logic layer corresponds to the software components that enable the interaction with the smart objects on the Internet, and the definition of the business logic of the application. Finally, the Application layer defines the graphical interface with which the IoT system interacts with users, allowing access to the system from traditional interfaces, such as those present in digital television (DTV) or mobile devices.
In the definition of the implementation methodology, DEM techniques are considered in order to build models for the design of IoT applications conforming to the previously proposed integration architecture. To full this purpose, two stages were established: Specification and Development. In the first one, a domain expert defines a DSL, composed of an abstract and concrete syntax, and a Model-to-Text transformation (M2T). In the Development stage, the end-user uses the DSL for the design of IoT applications, creating specific instances of the abstract syntax that serve as input for the M2T transformation. As a result of the M2T transformation, software artifacts are created with functional code for the software and hardware platforms on which the final application is deployed.
Regarding the definition of the DSL for IoT Systems Integration, the Eclipse ecosystem has been considered for the construction of each of its parts: (a) for the case of the abstract syntax, EMF is used, with which the metamodel is built; (b) for the case of the concrete syntax, Sirius is used, with which the graphical editor is built; and (c) for the case of the model transformation, Acceleo is used, with which functional source code is generated.
The metamodel for IoT systems integration consists of five levels: (a) infrastructure, which allows modelling the characteristics that the servers that will run the applications and the network to which the hardware nodes will be connected must have; (b) hardware, which allows modelling the controller and transducers, which compose the smart objects; (c) control, which allows modelling the control logic of the objects by orchestrating the REST and Bridge services of each of the transducers; (d) DTV, which allows modelling the user interface for the DTV; and (e) mobile, which allows modelling the user interface for the mobiles.
The graphical editor allows developers to create instances of the metamodel from a graphical interface by dragging representative icons, configuring their characteristics and interconnecting them with other components, in order to establish the business logic of the system. Finally, the M2T transformation allows the creation of source code for Arduino, Ballerina, Node-Red, Android and NCL-Lua, according to the model created in the graphical editor.
Five instruments were used to validate the proposal: (a) Positive and Negative Aspect Schedule (PANAS); (b) System Usability Scale (SUS); (c) functional testing; (d) development costs; and (e) performance testing. The PANAS and SUS scales fall into the usability testing group; the former analyses the emotions experienced by users with the DSL, while the latter determines the degree of usability of the graphical editor. With regard to the performance and development cost tests, these are functional tests that allow, in the first case, to check the performance of the DSL to create a functional IoT application, while the second one compares in a theoretical way the development process with respect to the time it would take a developer to create the same application with general-purpose languages. Finally, for the performance tests, Gatling was used to evaluate the REST services of the transducers, which allows determining the maximum stress that the services can withstand before malfunctioning. These tests validated the usefulness of the methodology in facilitating the development of IoT applications with high capacity to manage heterogeneous nodes.
As a result of the research carried out in this thesis, a total of 8 scientific contributions have been obtained, of which 2 have been in national conferences (Jornadas de Ingeniería del Software y Bases de Datos, Spain), 4 in international conferences with publications in the Springer series Advances in Intelligent Systems and Computing and Advances in Intelligent Systems and Computing, and another 2 contributions in the in international journals of impact Cluster Computing (Elsevier, JCR Q1, Computer Science) and Journal of Universal Computer Science (JCR Q3, Computer Science).
Finally, some research areas have been identified which are still open and may be the start of future research: (a) incorporating indexing and discovery services with the purpose of solving cases in which a service is not available in real time with other equivalent services using mediation mechanisms; (b) extending the evaluation of the proposed methodology in order to verify the levels of acceptance and satisfaction of commercial experts, and extending the tests for software integration and quality; (c) apply load balancing strategies to handle a large number of concurrent users; (d) extend the proposal to employ enterprise buses such as Mule ESB, which would extend the possibility of more robust and complex integration patterns; and (e) incorporate other control mechanisms into the proposal, such as differential, integral, or fuzzy controls, to enable the design of critical applications, where the required response time is much lower.
Acknowledgments: TIN2017-83964-R, Study of a holistic approach for the interoperability and coexistence of dynamic systems: Implication in Smart Cities models