MQ Telemetry Transport (MQTT) – oparty na wzorcu publikacja/subskrypcja, ekstremalnie prosty, lekki protokół transmisji danych. Przeznaczony jest do transmisji dla urządzeń niewymagających dużej przepustowości. Poprzez ograniczenie prędkości transmisji, protokół zapewnia większą niezawodność. Protokół ten idealnie sprawdza się przy połączeniach maszyna-maszyna, w internecie rzeczy (IoT), w urządzeniach mobilnych, oraz tam, gdzie wymagana jest oszczędność przepustowości, oraz energii.

Ilustracja przedstawia budowę oraz zastosowanie protokołu, opisy są w języku francuskim.

Protokół MQTT został stworzony przez Andy'ego Stanforda-Clarka z firmy IBM, oraz przez Arlena Nippera z firmy Arcom (obecnie Eurotech) w 1999 r.

MQ w nazwie MQTT pochodzi od nazwy linii produktów firmy IBM (message queuing). Najnowsza wersja protokołu to MQTTv5.0.

Broker MQTT

edytuj

Broker pełni rolę serwera, z którym łączą się klienci, aby za jego pośrednictwem publikować informacje. Niektóre brokery, to: Mosquitto[1], RabbitMQ[2], HiveMQ[3], IBM MessageSight[4], VerneMQ[5], EMQ X[6], ejabberd[7].

Działanie MQTT

edytuj

Każdy z klientów łączy się z brokerem, a następnie subskrybuje dany temat/tematy, może również publikować informacje w danym temacie. Kiedy klient opublikuje jakieś informacje, każdy klient, który subskrybuje ten sam temat, otrzyma tę informację. Tematy nie muszą być wcześniej tworzone oraz mogą mieć dowolną nazwę.

Klienci łącząc się z brokerem MQTT używają kilku funkcji do zarządzania transmisją:

  • Connect – ustanawia połączenie z brokerem.
  • Subscribe – subskrybuje (nasłuchuje) zadany temat na brokerze
  • Publish – publikuje (wysyła) informację na podany temat, poprzez broker, do wszystkich klientów subskrybujących dany temat.
  • Unsubscribe – przestaje subskrybować dany temat.
  • Disconnect – zamyka połączenie z brokerem.

MQTT w praktyce

edytuj

Z protokołu MQTT korzysta m.in. Facebook Messenger. Dzięki zastosowaniu tego protokołu w łatwy sposób możemy przenosić się podczas rozmowy z jednego urządzenia na drugie i kontynuować konwersację.

Protokół znajduje szerokie zastosowanie w rozwiązaniach dla tzw. inteligentnych domów.

Home Assistant, czyli jeden z najpopularniejszych systemów inteligentnego domu umożliwia instalację dodatku zawierającego broker MQTT.[8]

Supla, czyli polski system automatyki budynkowej umożliwia publikację przypisanych do konta urządzeń do brokera MQTT. Dzięki temu możemy sterować nimi za pośrednictwem tego protokołu[9].

Istnieje również implementacja klienta protokołu na Arduino[10].

Przypisy

edytuj
  1. Mosquitto. [dostęp 2021-02-06].
  2. RabbitMQ. [dostęp 2021-02-06].
  3. HiveMQ. [dostęp 2021-02-06].
  4. IBM MessageSight. [dostęp 2021-02-06].
  5. VerneMQ. [dostęp 2021-02-06].
  6. EMQ X [online], EMQ Technologies Co. [dostęp 2021-02-06] (ang.).
  7. ejabberd [online], ProcessOne [dostęp 2021-02-06] (ang.).
  8. Home Assistant, MQTT [online], Home Assistant [dostęp 2023-01-23] (ang.).
  9. AIS SUPLA MQTT [online], AI-Speaker [dostęp 2023-01-24].
  10. Arduino Client for MQTT [online] [dostęp 2021-02-06] (ang.).

Linki zewnętrzne

edytuj