Conceptos de IoT&Edge

Arquitecturas IoT&Edge

Como se comentó en secciones anteriores, en las arquitecturas de Edge Computing (o arquitecturas de topologías distribuidas) el procesamiento de información se coloca más cerca de las cosas, personas o sistemas que producen y / o consumen la información relevante. En estas arquitecturas distribuidas, las cadenas de información y procesamiento se dividen en varios niveles. Solo la información procesada que es verdaderamente relevante para el negocio está centralizada, y las aplicaciones o servicios que deben interactuar rápidamente con los activos o las personas se implementan en las infraestructuras.

MEC: Multi-Access Edge Computing, ETSI-CE model for Telco Edge Computing market. / PAC: Point of Automation Controller, OpenFog Consortium.

Dentro de los distintos sectores y clusters tecnológicos han surgido muy distintos modelos de arquitecturas de Edge Computing que estandarizan de forma diferente (i) el número de niveles de procesamiento, así como (ii) la tecnología de base que permiten su implementación. Comúnmente se habla de Fog Computing a la arquitectura que da más peso al procesamiento desarrollado en la infraestructura intermedia, empleando el concepto Edge Computing para aquellas que centran el foco en los dispositivos con capacidad media o alta de proceso que se encuentran muy cerca de donde se produce la información y se pueden ejecutar las acciones.

En comparación con los elementos implicados en una Arquitectura IoT tradicional, las arquitecturas distribuidas de Edge Computing presentan:

 

  • Infraestructura Distribuida: mejora en las capacidades del Gateway simple mediante (i) elementos especializados dentro de los Edge Devices que permiten desplegar una micro arquitectura local de servicios y aplicaciones de alto nivel (sobre lenguajes como Java, Node.js, Python o Go) o la gestión de clusters, (ii) elementos de proceso local de stream o motores de reglas, (iii) conectores especializados para la interacción con equipos y elementos de automatización, lo  que permiten implementar esquemas de Industrial Internet of Things (IIoT) y (iv) integración con elementos especializados de IA para el proceso de streams de imagen/video.

  • Infraestructura Centralizada: mejoras en el IoT Hub básico mediante (v) gestión avanzada de datos de comando y control, que proporciona una visión completa sobre el estado de toda la infraestructura y el despliegue/repliegue de aplicaciones, (vi) repositorios integrados de las aplicaciones o el firmware validado para ser desplegado en la infraestructura distribuida y (vii) un sistema de alarmas y notificaciones.

 

Con relación a las técnicas y tecnologías empleadas para la implementación de estas arquitecturas, se puede indicar que actualmente la virtualización (VM y contenedores) y la implementación de runtimes de ejecución (servicios o agentes) son las tendencias para proporcionar una forma coordinada, adaptable y holísticamente manejable de distribuir la necesidad de proceso y la entrega rápida de servicios allí donde es necesario.  La evolución del Edge Computing es un proceso paralelo a la evolución de las tecnologías de virtualización que se han producido en el mundo del Cloud Computing. Los distintos mecanismos de encapsulación y distribución de aplicaciones en este tipo de arquitecturas comenzaron por las VMs (IaaS), se están consolidando con las tecnologías de virtualización ligera de contenedores (CaaS) y ya tienen claros ejemplos de players apostando por la virtualización de funciones (FaaS).

 

Esta rápida evolución en la adopción de técnicas de virtualización en el mundo del Edge Computing está favoreciendo lo que se ha llamado convergencia IT/OT, siendo las OTs aquellas  tecnologías relacionadas con la operación de los sistemas directamente implicados con la ejecución de procesos productivos o distibución, es decir,  la automatización tradicional. 

Teniendo en cuenta los escenarios de proceso, la conectividad de los sistemas distribuidos, la propiedad de las infraestructuras y los criterios de ciberseguridad a aplicar, podemos hablar de dos esquemas generales de soluciones o arquitecturas de Edge Computing en este momento: (i) Sistemas Aislados de Edge Devices (Edge#1) o (ii) Sistemas en Cluster contando con Edge Devices y Edge Servers (Edge#2). Los primeros están indicados en escenarios donde las comunicaciones end-2-end no son robustas y la responsabilidad funcional de cada infraestructura está muy definida, los segundos requieren buenas comunicaciones entre los dispositivos para mantener de forma continua la integridad del cluster y pueden aplicarse donde el movimiento de la carga entre máquinas no es un problema.

1.- Sistemas Aislados de Edge Devices(Edge#1)

En estos escenarios  la arquitectura permite la implementación distribuida de aplicaciones entre muchos puntos de proceso cuya gestión y ciclo de vida se realiza de forma centralizada. Una técnica habitual aunque no la única para implementar estas arquitecturas es el uso de contenedores   (fabricantes como VMWARE o la iniciativa Eclipse Kura mantienen agentes de Java ModularOSGI, mientras que fabricantes como AWS emplean runtimes especializados en funciones Lambda). Soluciones de fabricantes como  IBM Edge Device Computing , Azure Edge IoTCisco Kinetic o iniciativas como EdgeXFoundry o Edge Linux Foundation, permiten este esquema basado en contenedores empleando distintos motores de ejecución (todos ellos compatibles con CNI/OCI). Para la orquestación de conjuntos pequeños o medianos de contenedores se emplean frameworks como docker-compose y el movimiento de ficheros .yml entre los nodos (o la orquestación basada en Podman y Kompose).Habitualmente, este trabajo lo lleva a cabo un agente especializado (Edge Agent) sincronizado con el IoT/Edge Hub que debe integrarse en los dispositivos durante el proceso de producción o manualmente para la creación rápida de prototipos.  Ejemplos de casos de uso: - reconocimiento de imagen / video con AI-DL utilizando VPU (tipo Intel (R) Movidius) o TPU (tipo Google (R) Coral (R)) en un punto de una calle o tienda; adquisición de datos de consumo y gestión de la demanda de energía mediante la integración de elementos de automatización del hogar (Zigbee, zWave, Wifi) con inversores, baterías y paneles solares.

2.- Sistemas en Cluster Distribuidos(Edge#2):

En estos escenarios la arquitectura permite la gestión de conjuntos de máquinas que constituyen clusters distribuidos de proceso. En este caso la capacidad de cómputo es puesta en común entre todas las máquinas que forma un cluster de cara a gestionar procesos muy intensivos o asociados a una infraestructura  muy amplia (Ejemplos:- toda una planta de manufactura donde es necesario hacer control del transporte de material entre secciones, un parque de generación eólica donde los algoritmos de optimización permiten seleccionar las turbinas en funcionamiento).Una técnica cada vez más habitual para la constitución de estos clústeres es el uso de Kubernetes distribuido y la gestión global de las aplicaciones desde un sistema tipo Edge/IoT Hub. Soluciones como IBM Edge Server Computing, Openshift Compact o Azure Stack son buenos ejemplos de esta aproximación. En este esquema de Edge Computing, la constitución del cluster de proceso se apoya a su vez en la gestión de VMs distribuidas siendo los productos habituales vSphere u OpenStack. Entre los productos que fusionan la gestión de VM como de clusters k8s podemos mencionar VMWARE Tanzu. Dada la importancia que los clusters de Kubernetes ligeros están tomando en estos nuevos escenarios, ya es posible disponer de la orquestación de pods empleando distribuciones optimizadas para el Edge Computing como K3s de Racher, o MicroK8s.io.

 

Estos dos tipos de aproximaciones a Edge Computing no son excluyentes, como ejemplo podemos poner la transformación digital que está sufriendo el negocio de la generación y distribución de la energía. Si tomamos como ejemplo la integración de generación distribuida mediante paneles solares en residencias particulares o en fábricas, el modelo de Edge#1 es muy adecuado para desplegar aplicaciones que gestionen la carga y la previsión de producción y consumo de forma local. Gracias a este esquema el usuario final, ya sea un cliente particular o una pequeña o mediana empresa  (propietario de la infraestructura), puede gestionar su infraestructura de forma eficiente y consumir servicios que le proporcionan información sobre la cantidad de energía producida o el valor de la energía volcada al grid. Generalmente, las comunicaciones disponibles serán de una calidad media y el coste de las mismas recaerá en el propio usuario. Por contra, el distribuidor energético, encargado de integrar la energía producida, puede optar por una arquitectura Edge#2 donde las sucesivas subestaciones (CTEs, secundarias o primarias) se agrupen en cluster de proceso permitiendo, además de la gestión de la generación, la ejecución distribuida de algoritmos de fraude, falta, etc. En este caso contar con un conjunto de clusters asegura una mayor resiliencia del sistema y la optimización de los recursos desplegados.

Comunicaciones IoT&Edge

Debido al crecimiento exponencial del IoT, existen miles y miles de dispositivos conectados. Debido a las restricciones cada vez mayores que tienen estos dispositivos, ya sea, por ejemplo, a nivel de consumo de energía, la comunicación entre estos dispositivos acarrea varios desafíos:

  • Direccionamiento e identificación

  • Comunicaciones con bajo consumo de energía

  • Protocolos de enrutamiento eficientes y bajos requerimientos de memoria.

  • Alta velocidad y comunicaciones con capacidad de perdida de paquetes y sin ella.

  • Entornos de movilidad

Descontando que los dispositivos IoT/Edge pueden emplear las comunicaciones de banda ancha disposibles hasta el momento (tanto cableadas como inalambricas)en entornos LAN y WAN, no es una simplificación centranse en las comunicaciones específicas del escenario de IoT/Edge y  hablar de (i )comunicaciones de corto alcance(1m- 100m) y (ii) comunicaciones de medio y largo alcance (100m - 10km+), ambas con limitaciones en el consumo de los dispositivos.  Las primeras se conocen como redes PAN o personal área network, las segundas  LPWAN o low power wide area network.  También es común la clasificación de las  comunicaciones según la regulación sobre las bandas en las que trabajan, distinguiéndose entre : (i) bandas licenciadas bajo el control técnico de 3GGP,  que dependen de las  regulaciones del espectro de cada país o región, donde encontramos LTE-M y NB-IoT,  y (ii) bandas libres  ISM industrial, scientific y medical,  siendo las más comunes las bandas de los 433MHz, 868MHz o 2,4GHz, y donde se encuadran protocolos como LoRA o Sigfox.

Como resumen de las comunicaciones compatibles con las tecnologías Onesait Platform Things, podemos relacionar estas con los parámetros de ancho de banda proporcionado y alcance de cobertura, según el siguiente gráfico:

Todas tecnologías de comunicación  usan un modelo de red común, el modelo OSI Open System InterconectEl modelo de interconexión de sistemas abiertos o modelo OSI, es un modelo de red creado por la Organización Internacional de Normalización (ISO). Se consideran 7 niveles, en cada uno de ellos se procesan unidades de información denominadas PDU protocol data unit. En los dispositivos emisores las PDU se transmiten del nivel superior al inferior, y en cada uno de ellos se añade información de control, correspondientes a cada uno de los niveles. Sin embargo, en los dispositivos receptores la información se procesa desde el nivel inferior, comprobando y eliminando en cada nivel la información de control correspondiente a dicho nivel.

La capa física es donde se especifican los parámetros mecánicos y eléctricos de las conexiones físicas. Las unidades de información que consideran se llaman bits, y trata de la transmisión de cadenas de bits en el canal de comunicación.

La capa de enlace define la conexión segura entre dos dispositivos, de manera que no se pierdan datos, y en el caso de múltiples dispositivos compartiendo el mismo medio, es un modo de arbitrar quién puede usar el medio en cada momento. Lo realiza descomponiendo los mensajes que recibe del nivel superior en tramas o bloques de información, en las que añade cabecera e información redundante para el control de errores. En esta cabecera suele contener información de direcciones de origen y destino, ruta que se va a seguir, etc.

En la capa de red, las funciones principales son las siguientes:

  • Se encarga de fragmentar los segmentos que se transmiten entre dos equipos de datos en unidades denominadas paquetes. En el destino, se ensamblan los paquetes recibidos.

  • Realiza el encaminamiento de los paquetes. Utiliza algoritmos eficientes para la elección de la ruta más adecuada en cada momento, para remitir los paquetes a cada uno de los nodos de la red que estos deban atravesar para llegar a su destino.

  • Previene la producción de bloqueos, así como la congestión en los nodos de la red de transporte que pudiesen producirse en horas punta por la llegada de paquetes en forma masiva.

La capa 4 o capa de transporte es la encargada de proporcionar una comunicación confiable entre aplicaciones que esté libre de errores y que asegure la comunicación entre el cliente y el servidor de la información independientemente de la tecnología subyacente. 

Dada la influencia del stack de comunicaciones establecido por Internet, las capas 5 - 7 suelen ser referidas como de protocolo de aplicación. Dentro de estas capas se produce la gestión de la sesión de comunicación, la presentación del modelo de datos y la orquestación de la funcionalidad concreta que define el protocolo.

Los protocolos de aplicación generlaistas más habituales en IoT/Edge son : MQTT, CoAP, HTTP/REST, LwM2M, AMQP y DDS 

 

Para conocer en detalle las cuatro primeras capas de comunicación, así como el detalle de los protocolos compatibles con tecnología Onesait Platform Things, continuar con los capítulos:

 

Para conocer en detalle los protocolos de aplicación principales de IoT/Edge, proceder a la sección.

Para conocer en detalle las normas de utilización de estas tecnologías ver las Guías de Phygital Edge