Блог

Что делает MQTT оптимальным выбором для сетей GPS-устройств

Протокол MQTT все чаще используется в коммуникационных устройствах с функцией GPS-слежения. Действительно, ведущие производители, включая компании TOPFLYtech, DCT, Squarell Technology, Globalmatix, Xirgo Global и Teltonika, уже предлагают совместимые с MQTT устройства.

Давайте посмотрим, что лежит в основе этой тенденции и в чем именно заключаются преимущества протокола MQTT по сравнению с традиционной связью между GPS-устройствами и приложениями.

Почему MQTT становится все популярнее в GPS-мониторинге / транспортной телематике

Телематические системы, включающие в себя устройства и приложения транспортной телематики, становятся все более сложными. Сегодня такие системы могут включать GPS-устройства, датчики, контроллеры CAN-шины и разные программные компоненты, обрабатывающие данные самостоятельно и зачастую поддерживаемые различными командами разработчиков. Устройства интернета вещей также ограничены возможностями подключения, продолжительностью автономной работы, вычислительной способностью и применением данных, что может повысить значение эффективной связи между компонентами таких сложных систем.

Схема работы протокола MQTT

Давайте рассмотрим в качестве примера каршеринговые услуги. Существует целый ряд аспектов, которые необходимо учесть: передача информации о местоположении авто, удаленный доступ и контроль, своевременная заправка и ТО, оценка водителей, ДТП, защита от угона и многое другое. Такие системы требуют обработки больших массивов данных от сотен датчиков транспортных средств и тысяч взаимодействий с пользователем, а также являются достаточно масштабируемыми для поддержки тысяч транспортных средств в разных городах.

Использование протокола MQTT в сложных и масштабируемых системах имеет преимущества за счет его практической ценности в минимизации ограничений связи с устройствами интернета вещей и почти универсальной совместимости с платформами, включая AWS IoT Core, Cloud IoT Core и Azure IoT Hub. Таким образом, протокол MQTT набирает популярность как среди разработчиков ПО, так и среди производителей устройств.

Давайте ближе рассмотрим преимущества протокола MQTT:

  • Шаблон «Издатель-подписчик» (Publish & Subscribe)
  • Технология «Качество обслуживания» (Quality of Service)
  • Унификация
  • Облегченная форма

Шаблон «Издатель-подписчик»: оптимальный способ обмена полезными частями данных

В отличие от традиционного шаблона обмена сообщениями «запрос/ответ», обычно используемого в телематических системах, протокол MQTT использует метод «Издатель/подписчик», предоставляющий возможность передачи сообщения нескольким клиентам одновременно.

Данные с устройств интернета вещей любого типа могут быть легко и быстро распределены между разными приложениями. Каждое приложение может подписаться на определенные передачи данных от клиентов, подключенных к брокеру, публикующему тему. Приложение будет получать только данные, относящиеся к теме, на которую оно подписано, что ограничивает объем трафика в сети. Например, одно приложение может быть подписано на тему GPS, а другое — на тему CAN-шины. Функция шаблона «издатель-подписчик» позволяет делать сложные системы, такие как Navixy, более масштабируемыми и адаптировать их работу с несколькими узлами и наборами данных.

Применение шаблона «издатель-подписчик» целесообразно в средах с большим количеством серверов и клиентов, которым необходимо обмениваться данными и службами. Он реализован асинхронно (с использованием очереди сообщений) и генерирует сетевой трафик гораздо меньшего объема, чем традиционные модели обмена данными «запрос/ответ», которые требуют, чтобы все клиенты и серверы, которым необходимо обмениваться данными, были подключены друг к другу. В шаблоне «запрос/ответ» службы также должны регулярно опрашивать друг друга, и потребность в определении наличия новых данных создает еще больший сетевой трафик по сравнению с шаблоном «издатель/подписчик», в котором данные отправляются только в случае изменений. Кроме того, связь между устройствами является изолированной, что означает, что обеспечить большую безопасность всей сети стало проще.

Протокол MQTT: Шаблон издатель-подписчик

«Качество обслуживания» (QoS): гарантия доставки критически важных данных без беспокойства о менее важных данных

Некоторые пакеты данных более важны, чем другие. Например, получать каждое предупреждение автомобильной сигнализации действительно важно, в то время как можно и пропустить пару измерений температуры охлаждающей жидкости. Именно здесь действительно помогает механизм «Качество обслуживания» (QoS): он позволяет разработчикам и интеграторам телематических систем устанавливать определенный уровень ожиданий для доставки данных.

QoS гарантирует доставку определенных высокоприоритетных данных на устройства или приложения или из них в условиях ограниченной пропускной способности сети. Протокол MQTT имеет три уровня качества обслуживания, которые определяются типом клиента или подписки:

  • QoS 0 (Автономный режим / Fire forget). Это самый низкий уровень, который используется, если допустима потеря некоторых пакетов данных. Например, некоторые показания температуры охлаждающей жидкости CAN-шины во многих сценариях могут быть пропущены.
  • QoS 1 (Не менее одного раза / At Least Once). Это самый распространенный уровень, который используется, если повторяющиеся сообщения допускаются и могут быть легко обработаны. Например, регулярные сообщения с GPS-данными о местоположении авто.
  • QoS 2 (Только один раз / Exactly Once). Этот уровень гарантирует только однократную доставку. Он используется в критически важных приложениях и имеет самый высокий уровень затрат ресурсов. Например, команда контроллеру отключения двигателя.

MQTT позволяет устанавливать уровни QoS для каждого конкретного типа сообщений, например, для GPS-данных о местоположении, показаний датчика топлива, команд устройства.

Унификация: более быстрый и менее дорогой способ интеграции систем

До появления протокола MQTT подключение устройств и сетей к ПО и приложениям требовало сложной, своевременной и дорогостоящей интеграции вследствие применения различных протоколов связи. MQTT широко используется в различных приложениях и отраслях и не вызывает сложностей в работе с ним у разработчиков при создании приложений и программных пакетов в облачной среде или локально. Например, Mosquitto MQTT можно развернуть с помощью моста MQTT, настроенного с помощью брокера Navixy в Navixy Central. В AWS IoT, Azure IoT и Google Cloud IoT есть MQTT-брокеры, совместимые с их платформами облачных вычислений.

Облегченная форма: экономия на трафике

Стоит отметить, что протокол MQTT изначально был разработан для мониторинга датчиков интернета вещей в пустыне по спутниковым каналам связи. Поэтому MQTT имеет минимальные требования к коду и не предусматривает высоких затрат ресурсов. Это максимизирует доступную пропускную способность канала и повышает скорость обновления до нескольких секунд. Кроме того, его также можно использовать для управления устройствами путем отправки команд из приложений. Команды может получать любое количество устройств, например, при массовом обновлении.

Преимуществом облегченной формы в транспортной телематике является возможность минимизировать затраты на сотовую и спутниковую связь.

Структуры MQTT

Благодаря низким затратам ресурсов и встроенному механизму QoS протокол обмена сообщениями MQTT можно использовать в любой физической сети. В транспортной телематике чаще всего используются сети GPRS, SAT или LPWAN.

MQTT требует наличия базового транспорта, обеспечивающего упорядоченный поток байтов между клиентом и брокером без потери качества. Он не требует поддержки какого-либо конкретного транспортного протокола, но может поддерживать, помимо прочего, TCP/IP, протокол безопасности транспортного уровня и Websocket. Сетевой транспорт без подключения, включая UDP, не подходит в качестве самостоятельного средства, поскольку не может изменить порядок данных.

MQTT — это двоичный протокол, в котором управляющими элементами являются двоичные байты, а не текстовые строки. Он имеет формат команды и подтверждения команды, поэтому, когда шаблон «издатель/подписчик» отправляет сообщение для соединения с брокером, брокер отправляет подтверждение. Дальнейшие подтверждения определяются уровнем QoS. Пакеты состоят из заголовка, скользящих колонтитулов и полезной нагрузки.

Структура протокола MQTT

На более высоком уровне сообщения MQTT могут инкапсулировать различные структуры данных. На основе наблюдений работы устройств, уже поддерживаемых Navixy, протокол MQTT выполняет одну из следующих функций:

  • Пакеты проприетарных протоколов производителей устройств
    Некоторые производители, такие как Teltonika и TOPFLYtech, используют собственные компактные форматы двоичных данных для передачи данных с использованием MQTT.
  • Сообщения в формате JSON или XML
    Например, Globalmatix предоставляет GPS-данные, необработанные данные CAN-шины вместе с другими сигналами и событиями в простых структурах JSON.

Второй подход может показаться более удобным для разработчиков, поскольку он не требует сложного декодирования. Однако в масштабируемых и инвариантных к типам устройств системах предпочтительно использовать протокол Navixy MQTT Central, который снижает сложность протокола устройства, унифицирует форматы данных и обеспечивает интеграцию приложений. Для получения дополнительной информации о структурах MQTT посетите Академию Navixy.

Применение устройств на базе MQTT с Navixy

Одним из основных атрибутов Navixy является простота интеграции с широким спектром типов устройств. В настоящее время оно интегрируется более чем с 1200 типами устройств, подключаемых к Navixy с помощью протокола MQTT или любого другого проприетарного протокола. При использовании MQTT Navixy выступает в качестве MQTT-брокера и поддерживает протокол MQTT v3.1.1 и все уровни QoS. Navixy также использует REST API для простого доступа к собранным данным. Эти функции позволяют поставщикам и интеграторам GPS удобно подключать устройства, совместимые с MQTT, к Navixy и создавать сложные сети устройств интернета вещей и GPS.

Применение протокола MQTT

Navixy также можно настроить как MQTT-клиент для получения опубликованных обновлений от других клиентов, подключенных к стороннему брокеру. В этом случае Navixy подписывается на соответствующие темы MQTT, публикуемые другими клиентами. Navixy получает опубликованные данные только по темам, на которые подписан клиент. Типы интегрируемых устройств определяются сторонним брокером, а не Navixy. Это может ограничить спектр типов устройств, пригодных для сбора данных.

Как в настоящее время производители GPS-устройств используют MQTT

Многие ведущие производители GPS-устройств уже выпускают совместимое с MQTT оборудование, и спектр таких типов устройств постоянно расширяется.

TOPFLYtech недавно использовала протокол MQTT в своей новой серии 4G-устройств. По словам директора по продажам Блейзера Хоу, MQTT значительно оптимизирует связь в больших системах с множеством серверов и приложений. Поэтому компания видит принципиально новые возможности в создании масштабных решений интернета вещей на основе MQTT.

Немецкая производственная компания Globalmatix считает, что целесообразно использовать протокол MQTT при работе с данными CAN-шины. Специфическим свойством таких устройств является возможность работы с большим количеством параметров CAN-шины. Благодаря возможности использования тем MQTT разработчики приложений могут легко подписаться только на необходимый им набор параметров.

Производитель устройств Xirgo Global, недавно приобретенный холдингом Sensata, также использует MQTT в своих самых современных устройствах, таких как XG3700. Эта линейка ориентирована на применение в нестандартных решениях: интеграторы могут использовать SDK для создания собственных сценариев управления периферийными устройствами, в том числе посредством CAN-шины. Выбор протокола MQTT в качестве протокола связи для устройств, предназначенных для таких сложных проектов, кажется разумным.

Аналогичного подхода придерживается компания Digital Communications Technologies (DCT), которая является производителем встроенного шлюза для телематических данных Syrus 4G, также использующего MQTT для связи. Шлюз создан на платформе Linux и предоставляет API и SDK для интеграторов.

Кроме того, Teltonika, Aplicom, Squarell Technology, InHand, Thinkrace и многие другие компании применяют протокол MQTT в своих устройствах. Поэтому можно сказать, что существует тенденция к использованию MQTT для связи с гибко конфигурируемыми GPS-устройствами.

Самое время рассмотреть возможность применения MQTT в вашем следующем проекте

Неправильный выбор протокола обмена сообщениями может дорого стоить, замедлить процесс разработки и поставить реализацию на грань провала. Если вы выстраиваете телематическую систему с перспективой серьезного развития, вам следует внимательно присмотреться к использованию MQTT в качестве основного протокола связи между GPS-устройствами и приложениями интернета вещей.

Интеграторы и разработчики могут использовать любые IoT и GPS устройства, работающее на основе протокола MQTT с платформой Navixy. Возможности брокера Navixy MQTT и Navixy MQTT Central позволяют создавать гибкие и надежные решения, готовые к высоким затратам ресурсов.

← Предыдущий постСледующий пост →
Готовы попробовать продвинутый и гибкий
GPS-мониторинг?
Начать
Недавние посты