Saltar al contenido principal

Tesis Darwin Alulema

· 7 min de lectura

Tesis Darwin

Una metodología basada en modelos y servicios para la integración de sistemas IoT

Darwin Alulema

Directores: Luis Iribarne y Javier Criado

TIN2017-83964-R, Estudio de un enfoque holístico para la interoperabilidad y coexistencia de sistemas dinámicos: Implicación en modelos de Smart Cities.

[ Descargar tesis ]


RESUMEN

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.

Agradecimientos: TIN2017-83964-R, Estudio de un enfoque holístico para la interoperabilidad y coexistencia de sistemas dinámicos: Implicación en modelos de Smart Cities.

Más información: http://acg.ual.es/projects/cosmart/si4iot/