Actualizaciones de IoT en tiempo real

Azure Functions
Azure IoT Edge
Azure IoT Hub
Azure Maps
Servicio Azure SignalR

En esta guía se describe una manera de que los clientes, como las páginas web o las aplicaciones móviles, reciban actualizaciones de los dispositivos en tiempo real. Las aplicaciones en la nube ya no envían solicitudes HTTP para obtener información actualizada. En su lugar, Azure SignalR Service inserta contenido en los clientes en cuanto está disponible. Como servicio administrado, Azure SignalR Service simplifica el proceso de adición de comunicación en tiempo real a las aplicaciones.

Arquitectura

Diagrama de arquitectura que muestra cómo Azure SignalR Service mantiene actualizados los clientes, como páginas web y aplicaciones móviles, con datos de IoT en tiempo real.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

  1. Las páginas web, las aplicaciones móviles y otros clientes solicitan un punto de conexión y un token de Azure SignalR Service a Azure Functions, una plataforma de proceso sin servidor. Además de integrar datos de varios orígenes, Functions también administra los puntos de información de Azure SignalR Service y la información sobre los grupos de clientes.

  2. Los clientes usan el punto de conexión y el token para conectarse a Azure SignalR Service.

  3. Los dispositivos IoT envían telemetría a Azure IoT Edge y Azure IoT Hub. IoT Edge envía telemetría de dispositivo IoT procesada a IoT Hub.

  4. La telemetría desencadena una función en Azure Functions. La función completa las tareas siguientes:

    • Ejecuta los cálculos que programa en la telemetría.
    • Transforma los datos de la manera que programe.
    • Usa el servicio administrado Azure SignalR Service para difundir los datos.
  5. Azure SignalR Service admite varias técnicas que las aplicaciones en tiempo real usan, como WebSocket, el protocolo de transporte preferido. No obstante, Azure SignalR Service usa técnicas como eventos enviados por el servidor (SSE) y sondeo prolongado cuando el protocolo WebSocket no está disponible. Azure SignalR Service detecta e inicializa automáticamente el protocolo de transporte adecuado en función de las características admitidas en el servidor y el cliente.

  6. El mensaje de Azure SignalR Service se envía a un cliente o un grupo de clientes específico. Los clientes usan los datos para actualizar las aplicaciones.

Detalles del escenario

Las aplicaciones de Internet de las cosas (IoT) a menudo necesitan datos en tiempo real de dispositivos IoT. Por ejemplo, algunas aplicaciones muestran datos de telemetría o alertas que obtienen de los dispositivos. Con los métodos de sondeo tradicionales, estas aplicaciones cliente solicitan a los dispositivos cambios de estado.

En esta guía se describe una manera de que los clientes, como las páginas web o las aplicaciones móviles, reciban actualizaciones de los dispositivos en tiempo real. Las aplicaciones en la nube ya no envían solicitudes HTTP para obtener información actualizada. En su lugar, Azure SignalR Service inserta contenido en los clientes en cuanto está disponible. Como servicio administrado, Azure SignalR Service simplifica el proceso de adición de comunicación en tiempo real a las aplicaciones.

Por ejemplo, un minorista podría tener una aplicación de panel que muestre el número actual de clientes de una tienda. Con la solución de esta guía, la aplicación no solicita el recuento de clientes más reciente. En su lugar, Azure SignalR Service introduce esa información en la aplicación cuando cambia el total.

Posibles casos de uso

Además del sector minorista, otras áreas también pueden beneficiarse de esta solución:

  • Cualquier escenario en el que los servidores insertan datos en tiempo real en los clientes para su uso en visualizaciones y aplicaciones.
  • Aplicaciones enriquecidas y altamente interactivas, como interfaces de usuario y mapas personalizados.

Entre los ejemplos específicos que proporcionan actualizaciones de datos en tiempo real se incluyen:

  • Supervisión de la flota que asigna la ubicación del vehículo (automotor).
  • Supervisión remota de la temperatura, la presión y el estado de un proceso de fabricación (también aplicable a la industria energética).
  • Sistemas de control de exploración en profundidad que usan telemetría, como revoluciones por minuto, pares de torsión y carga de enlace para optimizar los procesos.
  • Mecanismos de alerta.

Consideraciones

Tenga en cuenta estos puntos cuando use este patrón:

  • Si el sistema tiene requisitos de latencia estrictos, tenga en cuenta los factores que pueden aumentar significativamente la latencia:

    • En escenarios en tiempo real, la señalización de aplicaciones en la nube puede aumentar la latencia hasta 10 segundos.
    • Los pasos de transformación de datos que agregue a la solución pueden aumentar la latencia.
  • Azure SignalR Service define siete niveles que admiten una variedad de capacidades de rendimiento. Para determinar la capacidad de entrada y salida del escenario, comprenda los factores que afectan a estos valores. A continuación, seleccione el nivel que mejor se adapte a sus requisitos. Para obtener más información, consulte Guía de rendimiento para Azure SignalR Service.

  • Azure SignalR se basa en el protocolo SignalR y sigue el patrón de publicación y suscripción al difundir mensajes a los clientes. Considere la posibilidad de tener su propio mecanismo de reconocimiento de mensajes (ACK) cuando necesite garantizar la entrega de mensajes al publicar mensajes en varios clientes.

  • Cuando muestre datos en tiempo real en objetos visuales de Power BI, considere el streaming en tiempo real en Power BI como alternativa a esta solución.

Pasos siguientes

Para conocer soluciones relacionadas, consulte esta información:

Guías de arquitectura de IoT

Patrones de IoT

Arquitecturas de IoT