Обновления для Интернета вещей в режиме реального времени

Функции Azure
Azure IoT Edge
Центр Интернета вещей Azure
Azure Maps
Служба SignalR Azure

В этом руководстве описывается, как клиенты, такие как веб-страницы или мобильные приложения, могут получать обновления с устройств в реальном времени. Облачные приложения больше не отправляют HTTP-запросы для получения актуальной информации. Вместо этого Служба Azure SignalR отправляет содержимое клиентам, как только оно становится доступным. Являясь управляемой службой, Служба Azure SignalR упрощает процесс добавления возможности обмена данными в реальном времени в приложения.

Архитектура

Схема архитектуры, показывающая, как Служба Azure SignalR позволяет клиентам, таким как веб-страницы и мобильные приложения, обновляться с помощью данных Интернета вещей в режиме реального времени.

Схема содержит несколько полей. Поле в правом нижнем углу указывает, что серые стрелки представляют поток данных, а синие стрелки — поток управления. Слева два поля имеют метку "Устройства". Серая стрелка от верхнего поля устройства к прямоугольнику для Центр Интернета вещей Azure. Другая серая стрелка из другого поля устройства в поле для Azure IoT Edge. Метка над полем Azure IoT Edge считывает шлюз Field. Третья серая стрелка из Azure IoT Edge в поле Центр Интернета вещей Azure. Четвертая серая стрелка от Центр Интернета вещей Azure до поля для Функции Azure. Пятая серая стрелка ведет от поля "Функции" к полю "Служба Azure SignalR". Справа находится большой прямоугольник, содержащий значки и метки для веб-приложений и мобильных приложений. Над большим прямоугольником находится метка "Представление и взаимодействие". Серая стрелка Ведет от Службы Azure SignalR к большому полю. Двунаправленная синяя стрелка соединяет большое поле с полем "Служба Azure SignalR". Другая двунаправленная синяя стрелка соединяет большое поле с полем "Функции". Числа на схеме соответствуют пронумерованным шагам в документе.

Скачайте файл Visio для этой архитектуры.

Рабочий процесс

  1. Веб-страницы, мобильные приложения и другие клиенты запрашивают конечную точку Службы Azure SignalR и токен из Функций Azure — бессерверной вычислительной платформы. Помимо интеграции данных из различных источников, Функции также управляют конечными точками Службы Azure SignalR и информацией о клиентских группах.

  2. Клиенты используют конечную точку и токен для подключения к Службе Azure SignalR.

  3. Устройства Интернета вещей отправляют данные телеметрии в Azure IoT Edge и Центр Интернета вещей Azure. IoT Edge отправляет обработанную телеметрию для устройств Интернета вещей в Центр Интернета вещей.

  4. Телеметрия активирует функцию в Функциях Azure. Функция выполняет следующие задачи:

    • Выполняет любые вычисления, которые вы запрограммируете для телеметрии.
    • Преобразует данные любым способом, который вы запрограммируете.
    • Использует управляемую Службу Azure SignalR Service для трансляции данных.
  5. Служба Azure SignalR поддерживает несколько методов, которые используют приложения реального времени, например WebSocket — предпочтительный транспортный протокол. Но Служба Azure SignalR использует такие методы, как события, отправленные сервером (SSE), и длительный опрос, когда доступа к WebSocket нет. Служба Azure SignalR автоматически определяет и инициализирует соответствующий транспортный протокол на основе функций, поддерживаемых сервером и клиентом.

  6. Сообщение Службы Azure SignalR отправляется определенному клиенту или группе клиентов. Клиенты используют данные для обновления приложений.

Подробности сценария

Приложениям Интернета вещей (IoT) часто требуются данные в реальном времени с устройств Интернета вещей. Например, некоторые приложения отображают данные телеметрии или оповещения, получаемые с устройств. При использовании традиционных методов опроса эти клиентские приложения запрашивают у устройств изменения состояния.

В этом руководстве описывается, как клиенты, такие как веб-страницы или мобильные приложения, могут получать обновления с устройств в реальном времени. Облачные приложения больше не отправляют HTTP-запросы для получения актуальной информации. Вместо этого Служба Azure SignalR отправляет содержимое клиентам, как только оно становится доступным. Являясь управляемой службой, Служба Azure SignalR упрощает процесс добавления возможности обмена данными в реальном времени в приложения.

Например, у розничного продавца может быть приложение панели мониторинга, которое отображает текущее количество покупателей в магазине. При использовании решения из этого руководства приложение не будет запрашивать последние сведения о количестве клиентов. Вместо этого Служба Azure SignalR передаст эту информацию приложению при изменении общего количества.

Потенциальные варианты использования

Помимо розничной торговли, это решение может принести пользу и в других областях:

  • Любой сценарий, в котором серверы передают данные в реальном времени клиентам для использования в визуализациях и приложениях.
  • Многофункциональные и интерактивные приложения, такие как настраиваемые пользовательские интерфейсы и карты.

Конкретные примеры, обеспечивающие обновление данных в реальном времени, включают:

  • Мониторинг парка, который сопоставляет расположение транспортного средства (автомобиль).
  • Удаленный мониторинг температуры, давления и состояния производственного процесса (также применимо к энергетической отрасли).
  • Системы управления бурением, использующие телеметрию, такие как революции в минуту, моментальный момент и нагрузку крючка для оптимизации процессов.
  • Механизмы создания оповещений.

Рекомендации

При использовании этого шаблона учитывайте следующие моменты:

  • Если ваша система имеет строгие требования к задержке, помните о факторах, которые могут значительно увеличить задержку:

    • В сценариях реального времени сигнализация облачных приложений может увеличить задержку до 10 секунд.
    • Любые шаги преобразования данных, которые вы добавляете в решение, могут увеличить задержку.
  • Служба Azure SignalR определяет семь уровней, обеспечивающих разные возможности, связанные с производительностью. Определите входящую и исходящую пропускную способность вашего сценария, проанализировав факторы, влияющие на эти значения. Затем выберите уровень, который лучше всего соответствует вашим требованиям. Дополнительные сведения см. в статье Общие сведения о производительности для Службы Azure SignalR.

  • Azure SignalR основывается на протоколе SignalR и следует шаблону публикации-подписки при трансляции сообщений клиентам. Рассмотрите возможность наличия собственного механизма подтверждения сообщений (ACK), когда необходимо гарантировать доставку сообщений при публикации сообщений нескольким клиентам.

  • При отображении данных в реальном времени в визуальных элементах Power BI рассмотрите возможность потоковой передачи в реальном времени в Power BI в качестве альтернативы этому решению.

Следующие шаги

Сведения о связанных решениях см. в следующих статьях:

Руководства по архитектуре Интернета вещей:

Шаблоны Интернета вещей

Архитектура Интернета вещей