Existen una variedad de entornos que, guiados por las recomendaciones de los estándares comentados en las secciones previas, permiten llevar a cabo proyectos sencillos como los que se propondrán en los siguientes módulos hasta despliegues en el campo industrial.
A continuación, comentaremos algunos de los más populares.
KAA IoT
En https://www.kaaiot.com/ tenemos información detallada sobre el producto y la posibilidad de analizar casos de estudio. Con este framework podemos integrar sensores, portales de comunicación (gateways), PLC industriales, vehículos, vestibles y smartphones.
![Figura 6: Esquema de la plataforma KAA. Fuente: [18]](UD_2_6.png)
Los dispositivos se especifican como objetos en notación JSON y se comunican con la nube mediante el servicio MQTT.
Para el procesado de los datos contamos con integración de bases de datos como Cassandra, MongoDB, InfluxDB y otras.
Además, tenemos la posibilidad de comunicarnos utilizando distintas integraciones entre sistemas como APIs Rest, websockets y usar herramientas como SAP y Salesforce.
MACCHINA.io (https://macchina.io/)
Este framework se subdivide en dos productos: Edge y Remote. El primero se centra en aplicaciones edge basadas en Linux utilizando C++ y Javascript. Con el segundo, podemos tener gestión de la infraestructura mediante paneles web y aplicaciones móviles. Dentro de las funcionalidades que nos brinda este framework, destaca ser una arquitectura débilmente acoplada proporcionando mayor flexibilidad.
![Figura 7: Diagrama de la arquitectura de Macchina. Fuente: [19]](UD2_7.png)
ZETTA (https://www.zettajs.org/)
Este framework está programado en Node.js, uno de los lenguajes interpretados con creciente popularidad. Utiliza APIs Rest, websockets y programación reactiva que permite trabajar con flujos de datos (data streams) de una manera más adecuada que con un enfoque clásico.
GE PREDIX
Este producto de General Electrics es un framework para IoT Industrial. Posee distintos módulos para gestionar los elementos de la infraestructura (assets) y sus operaciones.
![Figura 8: Diagrama de la arquitectura de Predix. Fuente: [20]](UD2_8.png)
ThingSpeak (https://thingspeak.com/)
Es un framework centrado en la parte analítica (capa 4 de abstracción) en el que es posible llevar a cabo visualizaciones y predicciones utilizando MATLAB. También proporciona la recolección de datos con API Rest y MQTT y permite comunicar acciones a los dispositivos compatibles.
![Figura 9: Diagrama de la arquitectura de ThingSpeak. Fuente:[21]](UD_2_9.png)
Device Hive https://www.devicehive.com
Es una solución de código abierto (algo con bastante importancia desde el punto de vista de cumplir normativa de protección de datos). Utiliza tecnología de contenedores para tener un despliegue flexible en lo que a infraestructura de cómputo se refiere y proporciona escalabilidad. Respecto a las conexiones, al igual que otras soluciones permite usar API Rest, Websockets y MQTT. También se integra con soluciones de big data como ElasticSearch, Apache Spark y Cassandra.
Arduino https://docs.arduino.cc/cloud/iot-cloud
Aunque Arduino hace referencia a una marca con muchos productos, también está incluido dentro de la categoría de framework ya que posee un software que engloba la parte de gestión y programación de dispositivos. Se utiliza un lenguaje de programación visual muy indicado para aspectos didácticos y encaminado al nuevo paradigma de low-code. Además, ahora existe el producto de Arduino cloud que nos presenta un panel para monitorizar y controlar los dispositivos.
Node-RED
Es otra solución en la línea de low-code orientado a aplicaciones guiadas por eventos. Sin ser tan completa como la solución propuesta por Arduino, sigue siendo interesante desde un punto de vista didáctico y, en la línea de este curso, permite hacer pruebas sencillas sin mucha dificultad.
AWS IoT y otras soluciones comerciales
Hay otras soluciones comerciales como Salesforce IoT, Oracle IoT, RTI IoT, Mocana, Azure IoT pero todas se basan en ideas ya comentadas y desarrolladas.
La solución de Amazon puede ser bastante atractiva de cara al amplio ecosistema de servicios que integra y la gran cantidad de recursos a nivel de documentación y formación que proporcionan. Concretamente, en https://aws.amazon.com/es/iot/ aparecen listados algunos de éstos servicios específicos para IoT:
- FreeRTOS: sistema operativo para microcontroladores que integra con los demás servicio.
- Greengrass: plataforma para combinar trabajo en nube y en el borde (edge)
- ExpressLink: capa de software para transformar cualquier dispositivo en uno IoT
- IoT Core: plataforma para conectar dispositivos sin desplegar infraestructura específica
- IoT Device Defender: auditoría y configuración de seguridad para dispositivos
- IoT Device Management: gestión de dispositivos
- FleetWise: recopilación y gestión de datos para flotas de vehículos
- IoT SiteWise: analítica de datos a nivel industrial
- IoT Events: detección y respuesta para eventos
- IoT Analytics : analítica de datos
- IoT TwinMaker : para crear gemelos digitales
![Figura 10: arquitectura del framework de AWS Fuente: [22]](UD_2_10.png)
Dentro de las abstracciones que se definen, existe un duplicado sombra de un dispositivo (shadow device) que mantiene la interacción con el dispositivo aunque éste esté desconectado del sistema en ese momento. Gracias a esa caché, cuando el dispositivo vuelva a conectarse, se actualizará el resultado.
También es destacable el sistema de reglas de eventos y dispositivos que especifican, a muy alto nivel, cambios de estado y eventos que queramos hacer sobre los dispositivos.
