Una arquitectura de procesamiento de flujos de IoT flexible basada en microservicios
Autores: Bixio, Luca; Delzanno, Giorgio; Rebora, Stefano; Rulli, Matteo
Idioma: Inglés
Editor: MDPI
Año: 2020
Acceso abierto
Artículo científico
2020
Una arquitectura de procesamiento de flujos de IoT flexible basada en microservicios
Categoría
Gestión y administración
Subcategoría
Gestión de la tecnología y la inovación
Palabras clave
Internet de las cosas
Análisis de datos
Procesamiento en tiempo real
Nivel de borde
Nivel central
Procesamiento de flujos
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 1
Citaciones: Sin citaciones
El Internet de las Cosas (IoT) ha creado nuevas y desafiantes oportunidades para el análisis de datos. El IoT representa una fuente infinita de datos masivos y heterogéneos, cuyo procesamiento en tiempo real es un tema cada vez más importante. Las aplicaciones de IoT suelen consistir en múltiples capas tecnológicas que conectan "cosas" a un núcleo en la nube remoto. Estas capas generalmente se agrupan en dos niveles macro: el nivel de borde (que consiste en los dispositivos en el límite de la red cerca de los dispositivos que producen los datos) y el nivel central (que consiste en los componentes en la nube remota de la aplicación). El objetivo de este trabajo es proponer una arquitectura de microservicios adaptativa para plataformas IoT que proporcione funcionalidades de procesamiento de flujos en tiempo real que puedan llevarse a cabo sin problemas tanto en el nivel de borde como en el nivel de nube. Con más detalle, introducimos la noción de -servicio, una unidad de procesamiento de flujos que puede ser asignada indiferentemente en el nivel de borde y en el nivel central, y una Arquitectura de Referencia que proporciona todos los servicios necesarios (a saber, Proxy, Adaptador y -servicios de Procesamiento de Datos) para tratar con el procesamiento de flujos en tiempo real de una manera muy flexible. Además, para abstraer de la capa de procesamiento de flujos subyacente y de las capas de IoT (borde/nube), proponemos: (1) un lenguaje de definición de servicios que consiste en un lenguaje de configuración basado en objetos JSON (interoperabilidad), (2) un lenguaje de consulta basado en reglas con operaciones de filtro básicas que pueden ser compiladas en la mayoría de los motores de procesamiento de flujos existentes (portabilidad), y (3) un lenguaje combinatorio para construir tuberías de definiciones de filtros (composicionalidad). Aunque nuestra propuesta ha sido diseñada para extender la plataforma Senseioty, una plataforma IoT propietaria desarrollada por FlairBit, podría adaptarse a cualquier plataforma basada en tecnologías similares. Como prueba de concepto, proporcionamos detalles de un prototipo preliminar basado en el marco Java OSGi.
Descripción
El Internet de las Cosas (IoT) ha creado nuevas y desafiantes oportunidades para el análisis de datos. El IoT representa una fuente infinita de datos masivos y heterogéneos, cuyo procesamiento en tiempo real es un tema cada vez más importante. Las aplicaciones de IoT suelen consistir en múltiples capas tecnológicas que conectan "cosas" a un núcleo en la nube remoto. Estas capas generalmente se agrupan en dos niveles macro: el nivel de borde (que consiste en los dispositivos en el límite de la red cerca de los dispositivos que producen los datos) y el nivel central (que consiste en los componentes en la nube remota de la aplicación). El objetivo de este trabajo es proponer una arquitectura de microservicios adaptativa para plataformas IoT que proporcione funcionalidades de procesamiento de flujos en tiempo real que puedan llevarse a cabo sin problemas tanto en el nivel de borde como en el nivel de nube. Con más detalle, introducimos la noción de -servicio, una unidad de procesamiento de flujos que puede ser asignada indiferentemente en el nivel de borde y en el nivel central, y una Arquitectura de Referencia que proporciona todos los servicios necesarios (a saber, Proxy, Adaptador y -servicios de Procesamiento de Datos) para tratar con el procesamiento de flujos en tiempo real de una manera muy flexible. Además, para abstraer de la capa de procesamiento de flujos subyacente y de las capas de IoT (borde/nube), proponemos: (1) un lenguaje de definición de servicios que consiste en un lenguaje de configuración basado en objetos JSON (interoperabilidad), (2) un lenguaje de consulta basado en reglas con operaciones de filtro básicas que pueden ser compiladas en la mayoría de los motores de procesamiento de flujos existentes (portabilidad), y (3) un lenguaje combinatorio para construir tuberías de definiciones de filtros (composicionalidad). Aunque nuestra propuesta ha sido diseñada para extender la plataforma Senseioty, una plataforma IoT propietaria desarrollada por FlairBit, podría adaptarse a cualquier plataforma basada en tecnologías similares. Como prueba de concepto, proporcionamos detalles de un prototipo preliminar basado en el marco Java OSGi.