Una herramienta para automatizar la programación de dispositivos IoT

Fecha de publicación
Cateogría del artículo Tecnología
Visualizaciones del artículo Leído  990  veces
Tags del artículo

En el proyecto han participado expertos de la UOC e IKERLAN y propone la utilización de la reciente especificación AsyncAPI para trabajar más ágilmente con arquitecturas IIoT

Una herramienta para automatizar la programación de dispositivos IoT

El profesor de investigación ICREA Jordi Cabot y el investigador Abel Gómez, miembros del grupo Systems, Software and Models Research Lab (SOM Research Lab) del Internet Interdisciplinary Institute (IN3) de la UOC, en colaboración con el centro tecnológico vasco IKERLAN, han diseñado una herramienta para automatizar y facilitar la creación de sistemas que emplean comunicaciones asíncronas dirigidas por eventos, una de las arquitecturas informáticas más utilizadas en la generación de sistemas ciberfísicos y el diseño de sistemas para la INdustria 4.0. La herramienta es pionera en utilizar la reciente especificación AsyncAPI, que permite trabajar más ágilmente con este tipo de arquitecturas. El prototipo, desarrollado inicialmente en el contexto del proyecto MegaMa@Rt2, se ha realizado en código abierto y está disponible de forma gratuita.

En las infraestructuras informáticas donde hay muchos dispositivos que tienen que comunicarse entre ellos, como es el caso de fábricas con diferente maquinaria que hay que monitorizar y controlar, toda la información suele estar dirigida por un nodo central. Para evitar que estas arquitecturas colapsen por fallos de algunos de los elementos del sistema, se utilizan arquitecturas asíncronas dirigidas por eventos, que tienen la ventaja, entre otras cosas, de que en caso de que un componente no funcione correctamente, no se bloquea el resto del sistema. Uno de los paradigmas más populares en este tipo de arquitecturas es el modo llamado «publicación-suscripción», en el que las comunicaciones no se dirigen a un destinatario específico. "Lo que se hace es establecer un canal común a todos los dispositivos de la red y cuando uno de los elementos —como un ordenador, un servidor u otro tipo de dispositivo— quiere recibir determinada información, lo único que tiene que hacer es suscribirse a una determinada categoría de mensajes. De esta manera, cuando otro dispositivo es capaz de proporcionar dicha información, simplemente la publica en el canal común bajo la categoría que se haya acordado y solo los dispositivos suscritos a ella recibirán los mensajes publicados sobre este tema", explica Abel Gómez.

Aunque estas arquitecturas distribuidas son especialmente escalables y flexibles, no están exentas de problemas, ya que todavía no existe un estándar de programación establecido, como por ejemplo sí sucede en la creación de páginas web. Por tanto, es necesario acordar cuáles son las categorías de mensajes, así como su formato y estructura internos. "Al no existir un lenguaje común y tratarse de infraestructuras tan distribuidas, es muy fácil que cada uno de los elementos los haya programado una persona diferente, por lo que los mensajes pueden variar entre los distintos dispositivos. Así, en caso de que se produzca una divergencia en el nombre de los temas o en el formato utilizado, los receptores no recibirán o no sabrán descifrar el contenido", detalla el investigador.

Recientemente ha surgido una propuesta de solución estandarizada para unificar la programación de arquitecturas dirigidas por eventos: la especificación AsyncAPI. Esta especificación permite definir toda la información relevante necesaria para diseñar y ejecutar dispositivos IoT en estos entornos. Sin embargo, AsyncAPI se encuentra en las primeras etapas de desarrollo y, por lo tanto, las herramientas que le dan soporte todavía son escasas. En este contexto, los investigadores han desarrollado una herramienta basada en esta nueva propuesta que permite automatizar la creación de los mensajes en el formato adecuado, así como su envío y recepción. "Gran parte del trabajo que hay que hacer para implementar un programa para un dispositivo IoT es crear los mensajes en el formato que esperan los suscriptores al canal y también "traducir" lo que llega de otros dispositivos para poder procesar la información. Se trata, por tanto, de una gran cantidad de código que se tiene que programar y que al realizarse manualmente puede ser una fuente de errores", describe Abel Gómez.

"La adopción de esta nueva herramienta permite reducir significativamente el tiempo de desarrollo e implementación de los programas, lo que favorece la interoperabilidad, incrementa la calidad del código, y, por tanto, reduce el número de errores en el ciclo de vida del desarrollo de software", añade.

Un modelo para optimizar los programas basados en series temporales de datos

Otro de los retos de la integración de los sistemas ciberfísicos en la industria 4.0 es la mejora de la gestión informática de las series temporales de datos, como por ejemplo las que recogen temperatura u otros datos de forma continua. Este registro histórico es necesario para monitorizar el correcto funcionamiento de los sistemas, así como para mejorar los procesos industriales o para detectar las posibles fuentes de un error tras un fallo catastrófico. En esta área, los investigadores de la UOC, en colaboración con un grupo de investigación austriaco, han diseñado un modelo teórico que combina la ingeniería basada en modelos con las bases de datos de series temporales para automatizar parte del proceso de desarrollo.

Las bases de datos de series temporales permiten el registro y análisis de datos históricos masivos, como por ejemplo la medición cada cierto tiempo de la temperatura de una nevera industrial. Esta información permite después realizar diferentes operaciones, como por ejemplo calcular la temperatura máxima o la temperatura media durante un periodo de tiempo concreto. El objetivo principal del nuevo trabajo ha sido integrar este tipo de cálculos basados en bases de datos temporales en un modelo, es decir, una representación de un determinado sistema informático, que automatice todo el proceso y evite tener que codificar las funcionalidades una y otra vez para diferentes casos. "Hemos definido un modelo que permite optimizar las consultas históricas aprovechando las bases de datos temporales. Este modelo incluye tanto cómo debería ser el lenguaje de consultas como la estructura adecuada de las bases de datos temporales que darían soporte a ese modelo", describe Abel Gómez.

Según los investigadores, las ventajas de esta propuesta es que permitiría automatizar el proceso de programación y evitar el riesgo de los potenciales errores de código, ya que en el modelo estaría especificada toda la información necesaria para que funcione correctamente. «Este modelo reduciría el tiempo de programación y también los errores, ya que, al generar el código de forma automática a partir del modelo, no tienes un programador haciéndolo a mano que pueda cometer errores», concluye el investigador.

Tal y como detallan desde la UOC, esta investigación forma parte del proyecto Open Data for All: an API-based infrastructure for exploiting online data sources, financiado por las ayudas a proyectos de I+D+I correspondientes al Programa estatal de investigación, desarrollo e innovación orientada a los retos de la sociedad, en el marco del Plan estatal de investigación científica y técnica y de innovación 2013-2016 del Ministerio de Economía y Competitividad (TIN2016-75944-R).