¿Cómo interactúa Azure IoT Hub con los dispositivos Embedded / IoT?


13

Estoy trabajando en la plataforma Azure IoT y entiendo cómo los dispositivos envían datos al centro de IoT (si no me equivoco, es solo una llamada al servicio web o algo similar).

Pero me pregunto cómo el centro de IoT envía datos / comandos / entrada a los dispositivos, porque no estamos trabajando en el centro de IoT para la comunicación del dispositivo (no tenemos ningún requisito para enviar datos a los dispositivos). ¿Puede el centro de IoT interactuar directamente con los dispositivos? (Usando la identificación única del dispositivo o usando cualquier identidad única como IP, dirección Mac, etc.).

En algún lugar he leído que los dispositivos siguen solicitando al centro de IoT si el centro de IoT tiene alguna entrada para ellos, y el centro de IoT luego envía datos / comandos / entradas a los dispositivos en respuesta. ¿Es eso cierto? Si no, entonces explique.

Respuestas:


14

El modelo que utilizan los dispositivos conectados a IoT Hub es que nunca aceptarán conexiones entrantes. Los dispositivos IoT Hub nunca actúan como un 'servidor', y esta es una parte crucial del modelo de seguridad en Azure IoT. El modelo definitivo sobre esto está encapsulado en la "Comunicación asistida por servicio" de Clemens Vasters .

Por lo tanto, los dispositivos siempre están 'sondeando' un servicio externo para enviar datos o recibir comandos. Las API hacen que parezca que se están enviando datos a un dispositivo, pero siempre es el dispositivo el que realiza la conexión saliente.

IoT Hub hace esto de dos maneras:

  1. Enviando datos al punto final del dispositivo /devices/{deviceId}/messages/devicebound. Este es un punto final de mensajería AMQP, similar a una cola o suscripción de tema. El dispositivo, cuando lee los comandos, debe acusar recibo si es necesario, lo que forma parte del protocolo AMQP subyacente. Esto funciona igual con MQTT, y https es una alternativa válida. La API envuelve todo esto para usted. Hay conceptos adicionales, como los 'métodos directos', que son una envoltura de API que se basa esencialmente en el mismo protocolo de mensaje subyacente
  2. Al usar el dispositivo gemelo del lado del servidor, que es una forma de mantener lógicamente las propiedades sincronizadas entre el dispositivo y el servidor. Establece una propiedad en el dispositivo gemelo, y cuando el dispositivo se sincronice, esa propiedad se sincronizará con el dispositivo. Esto se basa menos en mensajes y se basa en el protocolo de administración de dispositivos LWM2M.

Una gran parte del 'sondeo', la conexión, el intercambio de conexiones, los recibos, etc. deben ser atendidos como parte del protocolo AMQP (o MQTT), que a su vez está envuelto en el IoT Hub SDK. Por lo tanto, lo anterior está muy simplificado, pero para reiterar, IoT Hub no puede y nunca intentará enviar datos a una dirección IP / puerto en su dispositivo.


Gracias @ Simon, ahora tengo claro eso, los dispositivos solo son responsables de llamar al centro de IoT para enviar o recibir datos. Mencionó "Azure IoT" en su respuesta, ¿así que solo quiere confirmar eso, su aplicación de respuesta en todas las plataformas de IoT? o solo para Azure IoT.
Shri

@ShrikantBhusalwad La respuesta no puede aplicarse a todas las plataformas, porque muchas aún no se han desarrollado. Este es un modelo común , es bueno para la seguridad, pero otros modelos pueden estar justificados, particularmente en un nuevo entorno.
Sean Houlihane

2
No estoy familiarizado con todas las plataformas, pero la mayoría de las plataformas en la nube serán similares. AWS usa MQTT, que es casi lo mismo. Como observa @sean, no puede aplicarse a todas las plataformas, pero muy pocas plataformas en la nube incorporarán prácticas de seguridad riesgosas por adelantado. Los métodos que usan modelos de dispositivo como servidor serán heredados o tendrán mucho más rigor de seguridad (a medida que se desarrollen los patrones de borde o malla). Azure IoT admite arquitectónicamente las puertas de enlace de campo y en la nube para solucionar problemas con dispositivos heredados o basados ​​en bordes
Simon Munro el

Las reglas de Azure IoT Hub MQTT se detallan en docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support
Soporte de Gambit
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.