Blockchain – płatności w świecie kryptowalut
Blockchainie - poznaj świat transakcji, kryptowalut i elektronicznych płatności.
Dzisiaj zajmiemy się znowu bardziej techniczną stroną urządzeń IOT i porozmawiamy dokładniej o protokołach warstwy aplikacji. Jakie są dostępne technologie, jakie konkretne paczki programistyczne można zastosować oraz co czym różnią się od siebie poszczególne protokoły charakterystyczne dla IOT? O tym już dzisiaj. Zapraszamy do lektury!
W ostatnim artykule rozmawialiśmy od podejściu warstwowym w sieciach komputerowych i o tym jak właściwie działa na poziomie sieciowym system IOT. Dzisiaj zaczniemy od tego co dla programistów jest najistotniejsze z perspektywy sieciowca, czyli o warstwie aplikacji i protokołach takich jak MQTT czy COAP.
Rysunek 1: Protokoły używane w IOT, TCP/IP model, źródło: fb.com/IoTResearch
Jeśli chcielibyśmy się zapoznać jak wyglądają trendy w domenie protokołów aplikacji IOT możemy skorzystać z porównywarki Google Trends, która wskazuje jakie technologie są najczęściej wyszukiwane.
Rysunek 2 – wykres Google Trends
https://trends.google.com/trends/explore?date=today%205-y&q=MQTT,COAP,XMPP,AMQP
Warto zobaczyć jak wyglądają trendy poszczególnych technologii, ponieważ występują pewne różnice w rozkładzie zainteresowania szczególnie w takich krajach jak Chiny czy USA. Globalnie jednak, można zauważyć znaczącą przewagę rozwiązania MQTT, które postaramy się zaprezentować poniżej.
MQTT IN IOT – czym jest i jaka jest jego historia?
MQTT (ang. MQ Telemetry Transport) jest lekkim protokołem, który powstał w 1999 roku i działa w modelu publish/subscribe. Służy do kolejkowania wiadomości i jest szeroko stosowanym rozwiązaniem w urządzeniach IOT. Standard MQTT definiuje dwa rodzaje obiektów w sieci – klienta oraz broker wiadomości. W 2012 roku powstał jeden z popularniejszych open-source brokerów – Mosquitto 1.0. W 2013 natomiast powstało szeroko stosowane rozwiązanie cloudowe HiveMQ. W roku 2014 natomiast została wydana aktualizacja do standardu MQTT w wersji 3.1.1, a następnie w 2018 MQTT 5.
Rysunek 3 – historia MQTT, źródło hivemq.com
MQTT posiada wiele charakterystyk zarówno upodabniających jak i odróżniających go od innych protokołów warstwy aplikacji jak np. HTTP. Można wśród nich wymienić:
Połączenie pomiędzy klientem i brokerem zaczyna się od ustanowienia połączenia TCP (jeśli nie używamy QUIC’a) a następnie wymiany pakietów charakterystycznych dla MQTT.
Rysunek 4 – pakiety MQTT używane do zarządzania połączeniem między klientem i brokerem, źródło: Ravi Kishore Kodali, researchgate.net
Jak widać na powyższym rysunku MQTT wykorzystuje kilka typów wiadomości do komunikacji, które postaramy się krótko opisać:
Rysunek 5: Zawartość wiadomości CONNECT, źródło: hivemq.com
„lastWIll” w protokole MQTT to funkcja pozwalająca klientowi określić wiadomość, którą broker opublikuje na określonym temacie w przypadku niespodziewanej utraty połączenia klienta. Klient definiuje temat, na którym ma być opublikowana ostatnia wola, oraz samą treść wiadomości.
Parametry związane z „lastWill” obejmują:
Istnieje także wiele innych rodzajów wiadomości MQTT takich jak: PUBACK, PUBREC, PUBREL, PUBCOMP, UNSUBSCRIBE, UNSUBACK.
Mamy nadzieję, że dzisiejszy wpis był czymś ciekawym szczególnie dla ludzi technicznych. Dotknęliśmy różnych aspektów technologii zarówno związanych z programowaniem jak i sieciami komputerowymi. Jeśli jesteście zainteresowani, to zapraszamy za tydzień, gdzie nadal pozostajemy w temacie IOT.
Blockchain – płatności w świecie kryptowalut
Blockchainie - poznaj świat transakcji, kryptowalut i elektronicznych płatności.
BezpieczeństwoFinanse
FastAPI – czyli jak napisać proste REST API w Pythonie? – część 3
REST API z użyciem frameworka FastAPI. Ostatniej części artykułów o API w Pythonie. Zacznij z nami już dziś swoją przygodę z FastAPI!
Programowanie
FastAPI – czyli jak napisać proste REST API w Pythonie? – część 2
REST API z użyciem frameworka FastAPI. Część druga tutoriala. Zacznij z nami już dziś swoją przygodę z FastAPI!
Programowanie