La tecnología está cada vez más presente en la vida cotidiana, con nuevos productos con mayores prestaciones y menores costes. Una de estas tecnologías es el Internet de las Cosas (IoT, Internet of Things), el cual ha capitalizado el desarrollo de las tecnologías de telecomunicaciones, electrónica e informática. Permite disponer de aplicaciones en áreas tan diversas como la industria, agricultura, transporte, hogar, entretenimiento, gobierno, entre otras. Sin embargo, este amplio espectro de aplicaciones tiene el problema de la diversidad de productos, la falta de estandarización y la dificultad de integración. Estos problemas limitan la creación de aplicaciones complejas, debido a la mayor exigencia de conocimiento de múltiples tecnologías a un desarrollador. En este sentido, la Web de las Cosas (WoT, Web of Things) es una alternativa alentadora que permite el desarrollo de aplicaciones con tecnologías maduras y conocidas, empleadas en el diseño de servicios web. Además, mediante patrones de integración es posible incorporar estos servicios en aplicaciones que requieren de una mayor interoperabilidad, y aplicar técnicas de procesamiento de eventos complejos en datos provenientes de objetos inteligentes.
En esta tesis se propone una metodología basada en técnicas de Ingeniería Dirigida por Modelos (MDE, Model-Driven Engineering) que permite solventar las dificultades presentes en el diseño de sistemas IoT. Uno de los objetivos de esta metodología es facilitar el proceso de desarrollo, al establecer modelos que abstraen la complejidad tecnológica implícita a cada plataforma de despliegue. Como consecuencia, los desarrolladores pueden centrarse en la lógica de negocio de la aplicación. Como parte de la metodología, se han desarrollado las siguientes tareas: (a) definición de una arquitectura de integración para sistemas IoT con componentes heterogéneos; (b) definición de una metodología de implementación basada en MDE para la construcción de aplicaciones IoT; y (c) definición de un Lenguaje Específico del Dominio (DSL, Domain-Specific Language), para el modelado de Sistemas IoT.
Para la definición de la arquitectura se han planteado tres capas: Física, Lógica y Aplicación. La capa Física hace referencia a los componentes hardware, específicamente al controlador y los transductores (sensores y actuadores), con los cuales se crean los objetos inteligentes que interactúan con el entorno. La capa Lógica se corresponde con los componentes software que permiten la interacción con los objetos inteligentes en Internet, y la definición de la lógica de negocio de la aplicación. Por último, la capa de Aplicación define la interfaz gráfica con la cual el sistema IoT interactúa con los usuarios, permitiendo acceder al sistema desde interfaces tradicionales, como las presentes en la televisión digital(DTV) o los dispositivos móviles.
En la definición de la metodología de implementación, se consideran técnicas de MDE con el propósito de construir modelos para el diseño de aplicaciones IoT conforme a la arquitectura de integración propuesta previamente. Para cumplir con este propósito, se establecieron dos etapas: Especificación y Desarrollo. En la primera, un experto del dominio define un DSL, compuesto por una sintaxis abstracta y concreta, y una transformación modelo a texto (M2T, Model-To-Text). En la etapa de Desarrollo, el usuario final emplea el DSL para el diseño de las aplicaciones IoT, creando instancias específicas de la sintaxis abstracta que sirve de entrada para la transformación M2T. Como resultado de la transformación M2T, se crean artefactos software con código funcional para las plataformas de software y hardware en las que se despliega la aplicación final.
Con respecto a la definición del DSL para la Integración de Sistemas IoT, se ha considerado el ecosistema Eclipse para la construcción de cada una de sus partes: (a) para el caso de la sintaxis abstracta se emplea EMF, con el cual se construye el metamodelo; (b) para el caso de la sintaxis concreta se emplea Sirius, con el cual se construye el editor gráfico; y (c) para el caso de la transformación de modelos se emplea Acceleo, con el cual se genera código fuente funcional.
El metamodelo para la integración de los sistemas IoT consta de cinco niveles: (a) infraestructura, que permite modelar las características que deben tener los servidores que ejecutarán las aplicaciones y la red a la cual se conectarán los nodos de hardware; (b) hardware, el cual permite modelar el controlador y los transductores, los cuales componen los objetos inteligentes; (c) control, permite modelar la lógica de control de los objetos por medio de la orquestación de los servicios REST y Bridge de cada uno de los transductores; (d) DTV, el cual permite modelar la interfaz de usuario para la DTV; y (e) móvil, que permite modelar la interfaz de usuario para los móviles.
El editor gráfico permite a los desarrolladores crear instancias del metamodelo a partir de una interfaz gráfica al arrastrar iconos representativos, configurar sus características e interconectarlos con otros componentes, con el propósito de establecer la lógica de negocio del sistema. Por último, la transformación M2T permite crear código fuente de Arduino, Ballerina, Node-Red, Android y NCL-Lua, de acuerdo con el modelo creado en el editor gráfico.
Para la validación de la propuesta se usaron cinco instrumentos: (a) escala PANAS (Positive and Negative Affect Schedule); (b) escala SUS (System Usability Scale); (c) pruebas de funcionamiento; (d) costes de desarrollo; y (e) pruebas de rendimiento. Las escalas PANAS y SUS, están dentro del grupo de pruebas de usabilidad; la primera analiza las emociones experimentadas por los usuarios con el DSL, mientras que la segunda determina el grado de usabilidad del editor gráfico. Con respecto a las pruebas de funcionamiento y de costes de desarrollo, estas son pruebas funcionales que permiten, en el primer caso, comprobar el funcionamiento del DSL para crear una aplicación IoT funcional, mientras que el segundo, compara de forma teórica el proceso de desarrollo con respecto al tiempo que le tomaría a un desarrollador crear la misma aplicación con lenguajes de propósito general. Por último, para las pruebas de rendimiento se empleó Gatling para evaluar los servicios REST de los transductores, lo cual permite determinar el estrés máximo que pueden soportar los servicios antes de funcionar de forma incorrecta. Estas pruebas permitieron validar la utilidad de la metodología al facilitar el desarrollo de aplicaciones IoT con gran capacidad de gestionar nodos heterogéneos.
Como resultado derivado de la investigación realizada en la presente tesis, se ha obtenido un total de 8 contribuciones científicas, de las cuales 2 han sido en congreso nacional (Jornadas de Ingeniería del Software y Bases de Datos, España), 4 en congresos internacionales con publicaciones en las series Springer Advances in Intelligent Systems and Computing y en Advances in Intelligent Systems and Computing, y otras 2 contribuciones en las revistas internacionales de impacto Cluster Computing (Elsevier, JCR Q1, Computer Science) y Journal of Universal Computer Science (JCR Q3, Computer Science).
Finalmente, se han identificado algunas áreas de investigación que aún están abiertas y pueden ser el inicio de investigaciones futuras: (a) incorporar servicios de indexación y descubrimiento con el propósito de solventar los casos en los cuales un servicio no está disponible en tiempo real con otros servicios equivalentes usando mecanismos de mediación; (b) extender la evaluación de la metodología propuesta con el fin de verificar los niveles de aceptación y satisfacción de expertos comerciales, y ampliar las pruebas para integración y calidad de software; (c) aplicar estrategias de balanceo de carga para manejar un gran número de usuarios concurrentes; (d) extender la propuesta para emplear buses empresariales como MULE, lo que permitiría ampliar la posibilidad de patrones de integración más robustos y complejos; y (e) incorporar otros mecanismos de control a la propuesta, como controles diferencial, integral, o difuso, para permitir el diseño de aplicaciones críticas, donde el tiempo de respuesta requerido sea mucho menor.
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.
© 2001-2024 Fundación Dialnet · Todos los derechos reservados