Infraestructura y conectividad de dispositivos
En esta introducción se presentan los conceptos clave sobre cómo se conectan los dispositivos a la nube en una solución típica de Azure IoT. En el artículo también se presentan elementos de infraestructura opcionales, como puertas de enlace y puentes. Cada sección incluye vínculos a contenido que proporciona más detalles e instrucciones.
Las aplicaciones de IoT Central usan los servicios IoT Hub y Device Provisioning Service (DPS) internamente. Por lo tanto, los conceptos de este artículo se aplican tanto si usa IoT Central para explorar un escenario de IoT como para compilar la solución mediante IoT Hub y DPS.
En el diagrama siguiente se muestra una vista general de los componentes en una solución de IoT típica. Este artículo se centra en la conectividad entre los dispositivos y los servicios en la nube de IoT, incluidas las puertas de enlace y los puentes, que se muestran en el diagrama.
Primitivos
Los dispositivos de Azure IoT usan los siguientes primitivos para intercambiar datos con servicios en la nube. Los dispositivos usan:
- Mensajes del dispositivo a nube para enviar telemetría de series temporales a la nube. Por ejemplo, los datos de temperatura recopilados de un sensor conectado al dispositivo.
- Dispositivos gemelos para compartir y sincronizar los datos de estado con la nube. Por ejemplo, un dispositivo puede usar el dispositivo gemelo para notificar el estado actual de una válvula que controla a la nube y recibir una temperatura de destino deseada de la nube.
- Gemelos digitales para representar un dispositivo en el mundo digital. Por ejemplo, un gemelo digital puede representar la ubicación física de un dispositivo, sus funcionalidades y sus relaciones con otros dispositivos.
- Cargas de archivos para archivos multimedia, como imágenes capturadas y vídeo. Los dispositivos conectados de forma intermitente pueden enviar lotes de telemetría. Los dispositivos pueden comprimir cargas para ahorrar ancho de banda.
- Métodos directos para recibir comandos de la nube. Un método directo puede tener parámetros y devolver una respuesta. Por ejemplo, la nube puede llamar a un método directo para solicitar que el dispositivo se reinicie.
- Mensajes de la nube al dispositivo para recibir notificaciones unidireccionales de la nube. Por ejemplo, una notificación de que una actualización está lista para descargarse.
Para más información, consulte la Guía de comunicaciones de dispositivo a nube y la Guía de comunicaciones de nube a dispositivo.
Puntos de conexión de nube orientados al dispositivo
Un centro de Azure IoT expone una colección de puntos de conexión por dispositivo que permiten a los dispositivos intercambiar datos con la nube. Estos puntos de conexión incluyen lo siguiente:
- Envío de mensajes de dispositivo a nube. Un dispositivo usa este punto de conexión para enviar mensajes de dispositivo a la nube.
- Recuperación y actualización de las propiedades del dispositivo gemelo. Un dispositivo usa este punto de conexión para tener acceso a las propiedades del dispositivo gemelo.
- Recepción de solicitudes de métodos directos. Un dispositivo usa este punto de conexión para escuchar solicitudes de métodos directos.
Cada concentrador IoT tiene un nombre de host único que se utiliza para conectar dispositivos al concentrador. El nombre de host tiene el formato iothubname.azure-devices.net
. Si usa uno de los SDK del dispositivo, no es necesario conocer los nombres completos de los puntos de conexión individuales porque los SDK proporcionan abstracciones de nivel superior. Sin embargo, el dispositivo necesita conocer el nombre de host del centro de IoT al que se conecta.
Un dispositivo puede establecer una conexión segura a un centro de IoT:
- Directamente, en cuyo caso debe proporcionar al dispositivo una cadena de conexión que incluya el nombre de host.
- Indirectamente mediante DPS, en cuyo caso el dispositivo se conecta a un punto de conexión de DPS conocido para recuperar la cadena de conexión del centro de IoT al que está asignado.
La ventaja de usar DPS es que no es necesario configurar todos los dispositivos con cadenas de conexión específicas del centro de IoT. En su lugar, los dispositivos se configuran para conectarse a un punto de conexión de DPS conocido y común en el que detectan sus detalles de conexión. Para obtener más información, consulte Device Provisioning Service.
Para obtener más información sobre cómo implementar reconexiones automáticas a puntos de conexión, consulte Administrar reconexiones de dispositivo para crear aplicaciones resistentes.
Cadenas de conexión del dispositivo
Una cadena de conexión de dispositivo proporciona a un dispositivo la información que necesita para conectarse de forma segura a un centro de IoT. La cadena de conexión incluye la siguiente información:
- EL nombre de host del centro de IoT.
- Identificador de dispositivo registrado en IoT Hub.
- La información de seguridad que el dispositivo necesita para establecer una conexión segura al centro de IoT.
Autenticación
Los dispositivos de Azure IoT usan TLS para comprobar la autenticidad del punto de conexión del centro de IoT o DPS al que se conectan. Los SDK de dispositivo se basan en el almacén de certificados de confianza del dispositivo para incluir el certificado DigiCert Global Root G2 TLS que actualmente necesitan para establecer una conexión segura al centro de IoT. Para obtener más información, consulte Compatibilidad con seguridad de la capa de transporte (TLS) en IoT Hub y Compatibilidad con TLS en Azure IoT Hub Device Provisioning Service (DPS).
Los dispositivos de Azure IoT pueden usar tokens de firma de acceso compartido (SAS) o certificados X.509 para autenticarse en un centro de IoT. Los certificados X.509 se recomiendan en un entorno de producción. Para obtener más información acerca de la autenticación de dispositivos, consulte:
- Autenticación de dispositivos en IoT Hub mediante certificados CA X.509
- Autenticación de dispositivos en IoT Hub mediante tokens de SAS
- Atestación de clave simétrica de DPS
- Atestación de certificados X.509 de DPS
- Atestación del módulo de plataforma segura de DPS
- Conceptos de autenticación de dispositivos en IoT Central
Todos los datos intercambiados entre un dispositivo y un centro de IoT se cifran.
Para obtener más información sobre la seguridad en la solución de IoT, consulte Arquitectura de seguridad para soluciones de IoT.
Protocolos
Un dispositivo IoT puede usar uno de varios protocolos de red cuando se conecta a un punto de conexión de IoT Hub o DPS:
- MQTT
- MQTT sobre WebSockets
- Advanced Message Queuing Protocol (AMQP)
- AMQP sobre WebSockets
- HTTPS
Nota
IoT Hub tiene compatibilidad limitada con características para MQTT. Si la solución necesitase compatibilidad con MQTT v3.1.1 o v5, se recomienda la compatibilidad con MQTT en Azure Event Grid. Para más información, consulte Comparación de la compatibilidad con MQTT en IoT Hub y Event Grid.
Para obtener más información sobre cómo elegir un protocolo para que los dispositivos se conecten a la nube, consulte:
- Compatibilidad con protocolos en Azure IoT Hub
- Comunicación con DPS mediante el protocolo MQTT
- Comunicación con DPS mediante el protocolo HTTPS (claves simétricas)
- Comunicación con DPS mediante el protocolo HTTPS (X.509)
Los escenarios industriales de IoT suelen usar la interfaz abierta estándar del sector de arquitectura unificada de comunicaciones de plataforma abierta (OPC UA). Para habilitar la conectividad a la nube de Azure, use Azure IoT Operations. Para obtener más información, consulte ¿Qué es Azure IoT Edge?.
Patrones de conexión
Hay dos categorías amplias de patrones de conexión que usan los dispositivos IoT para conectarse a la nube:
Conexiones persistentes
Las conexiones persistentes son necesarias cuando la solución necesita capacidades de comando y control. En escenarios de comando y control, la aplicación de IoT envía comandos a dispositivos para controlar su comportamiento casi en tiempo real. Las conexiones persistentes mantienen una conexión de red a la nube y se vuelven a conectar cada vez que hay una interrupción. Use el protocolo MQTT o AMQP para las conexiones de dispositivo persistentes a un centro de IoT. Los SDK de dispositivo IoT habilitan los protocolos MQTT y AMQP para crear conexiones persistentes a un centro de IoT.
Conexiones efímeras
Las conexiones efímeras son conexiones breves para que los dispositivos envíen telemetría al centro de IoT. Una vez que un dispositivo envía la telemetría, cierra la conexión. El dispositivo se vuelve a conectar cuando tiene más telemetría que enviar. Las conexiones efímeras no son adecuadas para escenarios de comando y control. Un cliente de dispositivo puede usar la API HTTP si lo único que necesita hacer es enviar telemetría.
Puertas de enlace de campo
Las puertas de enlace de campo (a veces denominadas puertas de enlace de perímetro) suelen implementarse en el entorno local y cerca de los dispositivos IoT. Las puertas de enlace de campo controlan la comunicación con la nube en nombre de los dispositivos IoT. Las puertas de enlace de campo pueden:
- Realizar la traducción de protocolos. Por ejemplo, habilitar dispositivos habilitados para Bluetooth para conectarse a la nube.
- Administrar escenarios sin conexión y desconectados. Por ejemplo, almacenar en búfer la telemetría cuando el punto de conexión de nube no es accesible.
- Filtrar, comprimir o agregar telemetría antes de enviarla a la nube.
- Ejecutar lógica en el perímetro para quitar la latencia asociada a la lógica en ejecución en nombre de los dispositivos en la nube. Por ejemplo, detectar un pico de temperatura y abrir una válvula como respuesta.
Puede usar Azure IoT Edge para implementar una puerta de enlace de campo en el entorno local. IoT Edge proporciona un conjunto de características que permiten implementar y administrar puertas de enlace de campo a gran escala. IoT Edge también proporciona un conjunto de módulos que puede usar para implementar escenarios comunes de puerta de enlace. Para obtener más información, consulte ¿Qué es Azure IoT Edge?
Un dispositivo IoT Edge puede mantener una conexión persistente a un centro de IoT. La puerta de enlace reenvía la telemetría del dispositivo a IoT Hub. Esta opción permite el comando y el control de los dispositivos de bajada conectados al dispositivo IoT Edge.
Puentes
Un puente de dispositivos permite que los dispositivos conectados a una nube que no sea de Microsoft se conecten a la solución de IoT. Algunos ejemplos de nubes que no son de Microsoft incluyen Sigfox, La nube de dispositivos de partículasy The Things Network.
El puente de dispositivo de IoT Central de código abierto actúa como traductor que reenvía la telemetría a una aplicación de IoT Central. Para obtener más información, consulte Puente de dispositivo de Azure IoT Central. Hay soluciones de puente de terceros, como Tartabit IoT Bridge, para conectar dispositivos a un centro de IoT.
Pasos siguientes
Ahora que ha visto información general sobre la conectividad de dispositivos en soluciones de Azure IoT, algunos pasos siguientes sugeridos incluyen: