Odpowiedzialne tworzenie oprogramowania: Jak zmniejszyć ślad węglowy aplikacji?
Praktyczne wskazówki jak programiści mogą aktywnie zmniejszyć emisję CO2 poprzez optymalizację kodu, infrastruktury i architektury aplikacji.
Dzisiaj chcemy dla Was kontynuować tematy związane z IOT, czyli Internetem rzeczy. Porozmawiamy sobie między innymi o innych protokołach, które występują w warstwie aplikacji i są związane z systemami IOT. Jeśli jesteście zainteresowani to zapraszamy do lektury!
Na rok 2023 najbardziej popularnym protokołem do urządzeń IOT jest MQTT, o którym pisaliśmy w ostatnim wpisie na blogu. Istnieją jednak alternatywy, które wykorzystywane są w specyficznych scenariuszach, gdzie MQTT nie może być zastosowane.
Constrained Application Protocol to protokół stworzony do działania na hardware, które z definicji jest ograniczone np. ze względu na małe zasoby pamięciowe czy obliczeniowe. Zaleca się go do urządzeń, które działają na bateriach ze względu właśnie na duże możliwości działania także na ograniczonych zasobach energii. Sam standard (RFC 7252) powstał w 2014 roku, więc jest stosunkowo nowym rozwiązaniem w porównaniu choćby do MQTT (1999). CoAP nadaje się do projektów IoT o większej skali oraz urządzeń bardziej ograniczonych pod względem zasilania. Posiada wiele cech charakterystycznych jeśli chodzi o techniczne aspekty, między innymi:
Rysunek 1: datagram CoAP w programie Wireshark, widoczna flaga Observe, źródło: journals.sagepub.com
Rysunek 2: przykład potwierdzenia komunikacji od klienta do serwera w COAP, źródło: RFC7252
Rysunek 3 – przejście pomiędzy HTTP i COAP za pomocą proxy, źródło: e2e.ti.com
Rysunek 4 – możliwy stos sieciowy urządzenia IOT korzystającego z CoAP, źródło: ARM Youtube
6LoWPAN to protokół będący poniżej warstwy transportowej i pozwalający na używanie IPv6 w niskonapięciowych sieciach bezprzewodowych. W połączeniu z CoAP (warstwa aplikacji) umożliwia on efektywną komunikację urządzeń IoT. Działa to poprzez dostosowanie pakietów IPv6 do ograniczeń takich sieci, używając adresów IPv6, kompresji nagłówków, fragmentacji, i umożliwiając tworzenie sieci mesh. CoAP, jako lekki protokół, idealnie wpasowuje się w 6LoWPAN, umożliwiając dostęp i zarządzanie zasobami urządzeń w środowiskach o ograniczonych zasobach.
Rysunek 5 – schemat komunikacji pomiędzy urządzeniami z użyciem COAP oraz 6LoWPAN, źródło: lobaro.com
CoAP posiada wiele więcej funkcjonalności, których nie zdołamy tutaj omówić. Mamy nadzieję jednak, że ten krótki artykuł pozwoli Wam na lepsze zrozumienie całości tematu jakim jest IOT.
Dzisiaj przedstawiliśmy wam alternatywę dla MQTT – protokół CoAP podobny do HTTP, efektywny na ograniczonych zasobach, bezpieczny z DTLS. Zachęcamy także do zapoznania się ze źródłami. Do usłyszenia za tydzień już w nowym temacie!
Odpowiedzialne tworzenie oprogramowania: Jak zmniejszyć ślad węglowy aplikacji?
Praktyczne wskazówki jak programiści mogą aktywnie zmniejszyć emisję CO2 poprzez optymalizację kodu, infrastruktury i architektury aplikacji.
InnowacjaZielone IT
Zielone IT: Jak technologia może wspierać ochronę środowiska?
Wprowadzenie do idei zielonego IT (Green IT) – strategii, która łączy technologię z troską o planetę.
InnowacjaZielone IT
CI/CD + Terraform – czyli jak wdrożyć swoją aplikację w AWS? – cz. 2
Poznaj możliwości GitHub Actions - czyli jak szybko wdrożyć aplikację z użyciem GitHub Actions z wykorzystaniem technologii AWS oraz Terraform.
AdministracjaProgramowanie