MQTT se usa ampliamente en IoT cuando se trata de intercambiar datos de aplicaciones entre el dispositivo final y el servicio de host. El modelo de publicación-suscripción hace que sea fácil de usar: sin apretones de manos, negociaciones, etc. (al menos por encima de la capa de protocolo MQTT). Está orientado principalmente a que los productores de datos puedan distribuir sus datos fácilmente a los consumidores.
Sin embargo, cuando se trata de un servidor central que desea configurar los ajustes en un dispositivo final, no estoy seguro de que el modelo sea muy adecuado. El servidor querrá enviar un comando al dispositivo y esperar una respuesta (por ejemplo, leer una configuración específica, esperar respuesta), que realmente no se ajusta al modelo de publicación-suscripción de MQTT.
Me preguntaba si hay protocolos existentes que estén orientados a enviar y recibir comandos y configurar dispositivos remotos.
fuente
Respuestas:
Suena como un trabajo para CoAP :
Aparentemente se puede implementar con una sobrecarga muy baja:
CoAP se especifica en RFC 7252 , y hay varias implementaciones (por ejemplo, en C ).
Está muy inspirado en REST como se usa con HTTP para las API web, por lo que si está familiarizado con ellos, rápidamente obtendrá CoAP. Si no, puede encontrar esta presentación útil para el contexto. La idea es que cada método HTTP tiene un significado semántico, por ejemplo,
GET
solicita información desde el dispositivo sin cambiar nada yPOST
,PUT
yDELETE
mutar los datos.Como usted dice, los modelos de publicación / suscripción no funcionarían para una situación en la que su dispositivo actúa como un "servidor" para la coordinación del sistema central (que actúa como un cliente para cada dispositivo). En cambio, un modelo similar a HTTP es ideal, excepto que HTTP tiene demasiada sobrecarga, que es donde entra CoAP.
fuente
Sí, hay un mejor protocolo para la administración de dispositivos en IoT. Es LwM2M : es mucho más eficiente que MQTT y por encima de COAP, MQTT y HTTP.
LwM2M viene con un modelo de gestión de datos y dispositivos bien definido, que ofrece una variedad de objetos estándar listos para usar (IPSO Smart Objects), monitoreo de conectividad, acciones remotas del dispositivo y actualizaciones estructuradas de FOTA y SOTA, mientras que en MQTT estas características son completamente proveedor y plataforma específica. Lo que sigue es que con MQTT, las actualizaciones de firmware o cualquier otra característica de administración deben crearse desde cero. En contraste, LwM2M ofrece actualizaciones de firmware como una de sus funcionalidades básicas, por lo que no es necesario inventar ningún nuevo bloque de construcción para la comunicación.
Aquí tienes una comparación MQTT vs LwM2M y todo el curso intensivo.
fuente