Hoy en día, IoT engloba al conjunto de tecnologías que permiten que objetos cotidianos puedan comunicarse a través de la red con el objetivo de recopilar información que nos permita supervisar el estado y comportamiento de dichos objetos. Un dispositivo IoT se caracteriza por ser un sistema electrónico de tamaño reducido equipado con un procesador, sensores que le permiten medir el entorno, actuadores que le permiten realizar determinadas acciones en respuesta a los datos recibidos y módulos de comunicación que utilizan protocolos de red. Un ejemplo de uso sencillo lo encontramos en los hogares inteligentes, que mediante la instalación de sensores en diferentes zonas de la vivienda, conectados a un sistema central, permiten, entre otras cosas, optimizar el gasto de luz, agua, y consumo energético.
Edge Computing
Edge Computing es un modelo de computación que acerca las capacidades de análisis y procesamiento al lugar en el que se generan los datos. Al no tener que enviarlos a infraestructuras remotas para su evaluación y análisis se reducen latencias, se mejora el tiempo de respuesta de las aplicaciones y disminuye el volumen de datos enviado a la red.
Ventajas
Mayor seguridad: Cuantos menos datos almacene un sistema en un entorno en la nube, menos vulnerable será si ese entorno se ve comprometido, se produce una descentralización de los datos.
Menores costos: Procesar los datos cerca de la fuente implica: eliminar lecturas erróneas, comprimirlos, darles formato, …, reduciendo de esta forma el volumen de datos que se debe enviar a la red.
Baja latencia: Parte de los datos se analizan cerca de la fuente, eliminando el viaje de ida y vuelta a la nube por lo que la latencia se reduce drásticamente
EdgeX Foundry
Uno de los grandes retos a los que se enfrentan las soluciones de IoT es la interoperabilidad, la capacidad que tienen los sistemas o sus componentes de comunicarse entre sí.
EdgeX Foundry se define a través de una arquitectura modular basada en microservicios que se comunican a través de APIs, lo que permite convertir aplicaciones complejas en procesos simples, interoperables y reutilizables, que se pueden modificar e implementar de forma independiente, y que pueden ser desplegados con facilidad. Las arquitecturas basadas en microservicios permiten un escalado eficiente y horizontal en función de la demanda.