Статьи по применению RFID

Каковы преимущества MQTT по сравнению с традиционным протоколом HTTP?

HTTP является наиболее широко используемым и популярным протоколом. Но MQTT быстро завоевал популярность за последние несколько лет. При обсуждении разработки IoT разработчикам приходится выбирать между этими двумя.

MQTT фокусируется на данных, а HTTP — на документах. HTTP — это протокол запроса-ответа для клиент-серверных вычислений, который не всегда оптимизирован для мобильных устройств. С этой точки зрения основными преимуществами MQTT являются: легкость (MQTT передает данные в виде массивов байтов) и модель публикации/подписки, что делает MQTT очень подходящим для устройств с ограниченными ресурсами и помогает экономить заряд батареи. Кроме того, модель публикации/подписки позволяет клиентам быть независимыми друг от друга, тем самым повышая надежность всей системы. В случае сбоя клиента вся система продолжает нормально функционировать.

У MQTT по-прежнему есть много преимуществ, а именно:

1. Низкие накладные расходы протокола, MQTT уникален тем, что его заголовок на сообщение может быть всего 2 байта. И MQ, и HTTP имеют гораздо более высокие накладные расходы на сообщение. В HTTP повторное установление HTTP-соединения для каждого нового сообщения-запроса влечет за собой значительные накладные расходы. Постоянные соединения, используемые MQ и MQTT, значительно сокращают эти накладные расходы.

2. Устойчивость к нестабильным сетям, MQTT и MQ могут восстанавливаться после сбоев, таких как отключение, и нет никаких дополнительных требований к коду. Однако HTTP не может сделать это изначально, требуя от клиентов повторной попытки кодирования, что может добавить проблем с идемпотентностью.

3. Низкое энергопотребление, MQTT специально разработан для низкого энергопотребления. HTTP не был разработан с учетом этого, что увеличивает энергопотребление.

4. Клиенты с миллионами подключений в стеке HTTP, поддержание миллионов одновременных подключений требует больших усилий для обеспечения поддержки. Хотя такая поддержка возможна, большинство коммерческих продуктов оптимизированы для обработки постоянных соединений такого порядка величины. IBM предлагает IBM MessageSight, один стоечный сервер, протестированный для обработки до 1 миллиона одновременно подключенных устройств по MQTT. Напротив, MQTT не предназначен для большого количества одновременных клиентов.

5. Push-уведомления, вам необходимо иметь возможность доставлять уведомления клиентам своевременно. Для этого необходимо использовать какой-либо периодический опрос или push-уведомления; push-уведомления являются лучшим решением с точки зрения батареи, нагрузки на систему и пропускной способности.

Нашему бизнесу может потребоваться отправлять конфиденциальную информацию без посредничества третьей стороны. Это снижает ценность решений для конкретных ОС (таких как уведомления Apple iOS, Google Play) в качестве основного транспортного механизма.

HTTP допускает только один метод, называемый COMET, использующий постоянные HTTP-запросы для выполнения push-уведомлений. Этот подход является дорогостоящим как с точки зрения клиента, так и с точки зрения сервера. И MQ, и MQTT поддерживают push как свою фундаментальную функцию.

6. Различия клиентских платформ, клиенты HTTP и MQTT были реализованы на большом количестве платформ. Простота MQTT помогает реализовать MQTT на дополнительных клиентах с минимальными усилиями.

7. Устойчивость к отказам брандмауэра, некоторые корпоративные брандмауэры ограничивают исходящие соединения некоторыми определенными портами. Эти порты обычно ограничены HTTP (порт 80), HTTPS (порт 443) и т. д. HTTP, очевидно, может работать в этих ситуациях. MQTT можно обернуть в соединение WebSockets, которое отображается как запрос на обновление HTTP, разрешая работу в этих случаях. MQTT не допускает такой шаблон.

По сравнению с HTTP, протокол MQTT гарантирует высокую скорость передачи. Существует три уровня качества обслуживания:

A. Не более одного раза: попытаться обеспечить доставку.

B. По крайней мере один раз: убедитесь, что электронное письмо отправлено по крайней мере один раз, но сообщение также может быть доставлено более одного раза.

C. Только один раз: убедитесь, что каждое сообщение получено другой стороной только один раз.

На самом деле MQTT широко используется. Вы можете найти MQTT практически в любой крупной аппаратной и интернет-компании, такой как Facebook, BP, alibaba, baidu и т. д.

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

1. Не существует полного SDK, и различным гетерогенным терминалам нужны соответствующие программные пакеты SDK для связи с сервером MQTT. Например, для достижения взаимосвязи между MCU, Linux, Android, IOS, WEB и т. д. должны потребоваться различные пакеты SDK.

2. Файл и AV не поддерживаются. В некоторых сценариях приложений передаваемая информация может не ограничиваться инструкциями, такими как аудиосигналы и видеосигналы, которые должны сообщаться через Файл и AV.

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

4. Он не поддерживает балансировку нагрузки. Чтобы предотвратить высокий параллелизм и вредоносные атаки, также необходим сервер балансировки нагрузки.

5. Он не поддерживает интерфейс управления пользователями. Для пользователей особенно важно анализировать данные о поведении устройств, что является неизбежным требованием Industry 4.0 и эпохи больших данных.

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

7. Связь точка-точка не поддерживается, и принят стандартный протокол MQTT. Теоретически связь точка-точка может быть реализована посредством взаимной подписки, но логика относительно сложна, и есть опасения по поводу безопасности устройства. Когда устройство B и устройство C находятся на одной и той же теме, устройство A не может знать, отправило ли сообщение устройство B или устройство C, и также возможно, что сообщение прослушивается устройством D.

8. Он не поддерживает групповое общение и управление группами, а реализует управление членами группы, и члены группы могут общаться друг с другом. В сценарии, когда одно устройство контролируется несколькими людьми или несколько устройств контролируются одним человеком, особенно полезно.

Scan the qr codeclose
the qr code