Aktualizacje IoT w czasie rzeczywistym

Azure Functions
Azure IoT Edge
Azure IoT Hub
Azure Maps
Azure SignalR Service

W tym przewodniku opisano sposób odbierania aktualizacji z urządzeń w czasie rzeczywistym przez klientów, takich jak strony internetowe lub aplikacje mobilne. Aplikacje w chmurze nie przesyłają już żądań HTTP dotyczących aktualnych informacji. Zamiast tego usługa Azure SignalR Service wypycha zawartość do klientów, gdy tylko jest dostępna. Jako usługa zarządzana usługa Azure SignalR Service upraszcza proces dodawania komunikacji w czasie rzeczywistym do aplikacji.

Architektura

Diagram architektury przedstawiający sposób, w jaki usługa Azure SignalR Service utrzymuje klientów, takich jak strony internetowe i aplikacje mobilne, aktualizowane przy użyciu danych IoT w czasie rzeczywistym.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

  1. Strony internetowe, aplikacje mobilne i inni klienci żądają punktu końcowego i tokenu usługi Azure SignalR Service z usługi Azure Functions, bezserwerowej platformy obliczeniowej. Oprócz integracji danych z różnych źródeł usługa Functions zarządza również punktami końcowymi usługi Azure SignalR Service i informacjami na temat grup klientów.

  2. Klienci używają punktu końcowego i tokenu do nawiązywania połączenia z usługą Azure SignalR Service.

  3. Urządzenia IoT wysyłają dane telemetryczne do usług Azure IoT Edge i Azure IoT Hub. Usługa IoT Edge wysyła przetworzone dane telemetryczne urządzenia IoT do usługi IoT Hub.

  4. Telemetria wyzwala funkcję w usłudze Azure Functions. Funkcja wykonuje następujące zadania:

    • Uruchamia wszystkie obliczenia programowe w telemetrii.
    • Przekształca dane w dowolny sposób, w jaki programujesz.
    • Używa usługi zarządzanej Azure SignalR Service do emisji danych.
  5. Usługa Azure SignalR Service obsługuje kilka technik, których używają aplikacje w czasie rzeczywistym, takich jak WebSocket, preferowany protokół transportu. Jednak usługa Azure SignalR Service używa technik, takich jak zdarzenia wysyłane przez serwer (SSE) i długie sondowanie, gdy usługa WebSocket nie jest dostępna. Usługa Azure SignalR Service automatycznie wykrywa i inicjuje odpowiedni protokół transportowy na podstawie funkcji, które obsługują serwer i klient.

  6. Komunikat usługi Azure SignalR Service jest kierowany do określonego klienta lub grupy klientów. Klienci używają danych do aktualizowania aplikacji.

Szczegóły scenariusza

Aplikacje Internetu rzeczy (IoT) często potrzebują danych w czasie rzeczywistym z urządzeń IoT. Na przykład niektóre aplikacje wyświetlają dane telemetryczne lub dane alertów, które uzyskują z urządzeń. W przypadku tradycyjnych metod sondowania te aplikacje klienckie proszą urządzenia o zmiany stanu.

W tym przewodniku opisano sposób odbierania aktualizacji z urządzeń w czasie rzeczywistym przez klientów, takich jak strony internetowe lub aplikacje mobilne. Aplikacje w chmurze nie przesyłają już żądań HTTP dotyczących aktualnych informacji. Zamiast tego usługa Azure SignalR Service wypycha zawartość do klientów, gdy tylko jest dostępna. Jako usługa zarządzana usługa Azure SignalR Service upraszcza proces dodawania komunikacji w czasie rzeczywistym do aplikacji.

Na przykład sprzedawca detaliczny może mieć aplikację pulpitu nawigacyjnego, która wyświetla bieżącą liczbę klientów w sklepie. Dzięki rozwiązaniu tego przewodnika aplikacja nie żąda najnowszej liczby klientów. Zamiast tego usługa Azure SignalR Service przekaże te informacje do aplikacji, gdy suma się zmieni.

Potencjalne przypadki użycia

Oprócz branży detalicznej inne obszary mogą również korzystać z tego rozwiązania:

  • Każdy scenariusz, w którym serwery wypychają dane w czasie rzeczywistym do klientów do użytku w wizualizacjach i aplikacjach.
  • Rozbudowane i wysoce interaktywne aplikacje, takie jak dostosowane interfejsy użytkownika i mapy.

Konkretne przykłady, które udostępniają aktualizacje danych w czasie rzeczywistym, obejmują:

  • Monitorowanie floty mapujące lokalizację pojazdów (motoryzacyjne).
  • Zdalne monitorowanie temperatury, ciśnienia i stanu procesu produkcyjnego (dotyczy również przemysłu energetycznego).
  • Systemy sterowania wiercenia korzystające z telemetrii, takie jak rewolucje na minutę, moment obrotowy i obciążenie haka w celu optymalizacji procesów.
  • Mechanizmy alertów.

Kwestie wymagające rozważenia

Podczas korzystania z tego wzorca należy wziąć pod uwagę następujące kwestie:

  • Jeśli system ma ścisłe wymagania dotyczące opóźnień, należy pamiętać o czynnikach, które mogą znacznie zwiększyć opóźnienie:

    • W scenariuszach w czasie rzeczywistym sygnalizowanie aplikacji w chmurze może zwiększyć opóźnienie do 10 sekund.
    • Wszelkie kroki przekształcania danych dodane do rozwiązania mogą zwiększyć opóźnienie.
  • Usługa Azure SignalR Service definiuje siedem warstw, które mieszczą się w zakresie pojemności wydajności. Określ pojemność ruchu przychodzącego i wychodzącego scenariusza, rozumiejąc czynniki wpływające na te wartości. Następnie wybierz warstwę, która najlepiej spełnia Twoje wymagania. Aby uzyskać więcej informacji, zobacz Przewodnik dotyczący wydajności usługi Azure SignalR Service.

  • Usługa Azure SignalR bazuje na protokole SignalR i jest zgodna ze wzorcem publikowania-subskrybowania podczas nadawania komunikatów do klientów. Rozważ posiadanie własnego mechanizmu potwierdzania komunikatów (ACK), jeśli musisz zagwarantować dostarczanie komunikatów podczas publikowania komunikatów na wielu klientach.

  • Podczas wyświetlania danych w czasie rzeczywistym w wizualizacjach usługi Power BI rozważ przesyłanie strumieniowe w czasie rzeczywistym w usłudze Power BI jako alternatywę dla tego rozwiązania.

Następne kroki

Aby dowiedzieć się więcej o powiązanych rozwiązaniach, zobacz następujące informacje:

Przewodniki dotyczące architektury IoT

Wzorce IoT

Architektury IoT