Neuroróżnorodność w miejscu pracy
17.08.202316 min

Podręcznik architekta rozwiązań, czyli poważnie o IoT

Poznaj fragment książki pt. „Podręcznik architekta rozwiązań. Poznaj reguły oraz strategie projektu architektury i rozpocznij niezwykłą karierę. Wydanie, autorstwa Saurabha Shrivastava oraz Neelanjali Srivastava.

Podręcznik architekta rozwiązań, czyli poważnie o IoT

Czym jest internet rzeczy?

Wyobraź sobie, że znasz stan wszystkiego i możesz wyciągać wnioski na podstawie tych danych. Jakie problemy możesz wówczas rozwiązać? IoT wiąże się z przekazywaniem informacji o stanie wszystkiego i wszędzie. IoT odwołuje się do ekosystemu sieciowego urządzeń fizycznych z adresami IP i połączeniem z internetem. Zauważmy nie tylko wzrost liczby urządzeń IoT, ale również poziom złożoności ich wykorzystania.

Konieczne jest pobieranie danych z czujników IoT, przechowywanie ich na potrzeby analizy za pomocą strumieniowania, a także szybkie dostarczanie wyników. Ogromna liczba urządzeń znajduje się w domach, jednostkach związanych z ochroną zdrowia, fabrykach, samochodach oraz w wielu innych miejscach. Coraz bardziej widać potrzebę istnienia rozwiązań pozwalających na nawiązywanie połączeń z tymi urządzeniami oraz pobieranie, przechowywanie i analizowanie ich danych w celu usprawniania sposobu działania tych urządzeń.

Dostarczane rozwiązania IoT zapewnią możliwość pobierania danych ze wszystkich tych urządzeń oraz przygotowywania wniosków na ich podstawie. IoT ma znaczenie krytyczne dla wielu pojawiających się technologii, takich jak AI/ML, robotyka, analiza wideo, urządzenia przenośne itd. IoT to serce tych technologii, ponieważ duże znaczenie ma uzyskanie dostępu do danych urządzenia w celu wytrenowania modeli uczenia maszynowego, zapewnienia możliwości sprytnego działania, a także umożliwienia efektywności biznesowej. Istnieje wiele zastosowań przemysłowych, w których korporacje wykorzystują urządzenia IoT.

  • Optymalizacja produkcji. Dzięki przechwytywaniu danych dotyczących wydajności działania maszyn można usprawniać wydajność działania i produktywność procesów przemysłowych. Można zebrać informacje dotyczące wydajności działania maszyny i korzystając z prognozowania, wymienić jej komponenty, zanim ulegną uszkodzeniu.
  • Ochrona zdrowia. Dzięki IoT pacjenci mogą mieć zawsze i wszędzie dostęp do usług związanych z ochroną zdrowia. Lekarz może zdalnie monitorować stan zdrowia pacjenta i na tej podstawie podejmować działania. Obecnie wiele osób korzysta z aplikacji zainstalowanych w urządzeniach takich jak smartwatche, aby bardziej dbać o swoje zdrowie i bezpośrednio przekazywać dane lekarzowi.
  • Monitorowanie stanów magazynowych. Urządzenia IoT pomagają w utrzymaniu stanów magazynowych oraz w optymalizacji kosztów związanych z działaniem magazynu. Pozwalają na monitorowanie stanów magazynowych i automatyczne ich uzupełnianie. Dzięki czujnikom IoT można automatyzować praktycznie wszystkie działania związane z magazynem, np. uzupełnianie stanów, pakowanie, wysyłanie itd.
  • Dom połączony z internetem. Urządzenia IoT typu smartwatche, termostaty, kamery itd. pozwalają na usprawnianie codziennych zadań domownikom oraz mieszkańcom nieruchomości i miast. Cały obiekt można obsługiwać i optymalizować jego wydajność działania za pomocą urządzenia IoT. Ponadto nieruchomość można wyposażyć w sprytnie działające urządzenia, które pomogą w monitorowaniu obiektu z każdego miejsca i w dowolnej chwili.
  • Rolnictwo. To jest bardzo ważny obszar dla człowieka. Czujniki IoT dotyczące wilgotności, pogody i temperatury pomagają w osiągnięciu lepszych plonów z upraw. Dzięki połączeniu danych dotyczących wilgotności i prognozy pogody można ustalić, kiedy należy podlać uprawy.
  • Efektywność energetyczna. Za pomocą IoT można znacznie efektywniej zarządzać zasobami energetycznymi (dzięki monitorowaniu w czasie rzeczywistym np. pola wiatraków i produkcji energii elektrycznej przez panele solarne) oraz planować konserwację.
  • Transformacja komunikacji. IoT pomoże w przekształceniu komunikacji publicznej za pomocą połączonych i samodzielnie działających pojazdów. Najlepszym przykładem są tutaj samochody firmy Tesla wyposażone w czujniki IoT — w pełni samodzielnie poruszające się pojazdy, w których w czasie rzeczywistym są zbierane dane pochodzące z dziesiątek tysięcy punktów.
  • Zwiększony poziom bezpieczeństwa. Urządzenia IoT pomagają w zapewnieniu większego poziomu bezpieczeństwa w domach, biurach i fabrykach dzięki nieustannemu monitorowaniu i ostrzeganiu jeszcze przed uszkodzeniem maszyny lub incydentem związanym z bezpieczeństwem.


Strategie IoT zapewniają przedsiębiorstwom rozwiązania niezbędne do tworzenia nowych usług i usprawniania produktów na przestrzeni czasu oraz pozwalają na utrzymywanie lepszych relacji z użytkownikami. Rozwiązania bazujące na danych prowadzą do szybszych i trafniejszych decyzji, które z kolei przekładają się na wzrost zysku i efektywności operacyjnej. Dzięki IoT organizacje stają się efektywniejsze i obniżają koszty bądź też tworzą zupełnie nowe usługi i produkty, a tym samym nowe biznesy. Każda architektura IoT wiąże się z pewnymi trudnościami, które trzeba pokonać. Poza pobieraniem danych i ich analizowaniem konieczne jest zapewnienie bezpieczeństwa i zarządzanie urządzeniami. 

Komponenty architektury IoT

W przypadku zastosowań wspomnianych w poprzednim podrozdziale organizacje dysponują wieloma urządzeniami w liniach produktów. Potrzebują więc architektury pozwalającej na pobieranie różnych danych i atrybutów wspierających w czasie rzeczywistym używanie tych produktów przez użytkowników i aplikacje. Na wysokim poziomie architektura IoT składa się z trzech komponentów, jak możesz zobaczyć na rysunku 15.1.


Rysunek 15.1. Cykl architektury IoT


Jak pokazaliśmy na rysunku 15.1, cykl architektury IoT składa się z trzech wymienionych tutaj elementów.

  1. Zarządzanie oprogramowaniem urządzeń IoT. W celu zbudowania rozwiązania IoT konieczne jest wdrożenie sporej liczby urządzeń liczonych w tysiącach lub nawet w milionach. Te urządzenia powinny mieć możliwość wygenerowania danych niezbędnych w konkretnych zastosowaniach oraz przeprowadzania wymaganych operacji na brzegu sieci. Pierwszym zadaniem jest ustalenie, jak zbudować urządzenia działające w taki sposób.
  2. Nawiązywanie połączenia z urządzeniami IoT i ich nadzorowanie. Zarządzanie milionami urządzeń i ich zabezpieczanie to żmudne zadanie. Powinny być uaktualniane do najnowszych wersji oprogramowania i firmware, a także może zachodzić potrzeba ich działania z różnymi wersjami oprogramowania. Konieczne jest grupowanie urządzeń w celu łatwiejszego zarządzania nimi i upewnienie się, że są bezpiecznie połączone. Ponadto trzeba wiedzieć, jak kontrolować i zabezpieczać urządzenia na dużą skalę oraz jak nimi zarządzać.
  3. Analizowanie zebranych danych IoT. Gdy urządzenia są wdrożone i połączone, konieczne będzie zbieranie ogromnej ilości danych nadchodzących z dużą szybkością, a następnie zamiana tych danych na pewną wartość biznesową.


W tym ostatnim zadaniu trzeba wiedzieć, jak wykorzystać dane IoT i jak na ich podstawie podejmować właściwe działania.

Zatem w celu zbudowania architektury IoT trzeba udzielić odpowiedzi na trzy pytania związane z wymienionymi warstwami architektury. Podczas zagłębiania się w architekturę warto zapoznać się z przykładami dla technologii dostępnych w wymienionych wcześniej elementach. 

Zarządzanie urządzeniami IoT

W przypadku urządzeń IoT trzeba wiedzieć, jak budować i zarządzać sprytnie działającym oprogramowaniem na brzegu sieci. Wskutek coraz większej powszechności internetu praktycznie każde urządzenie zostaje wyposażone w mikrokontroler lub mikroprocesor. Jednostka mikrokontrolera (ang. microcontroller unit, MCU) to pojedynczy układ zawierający prosty procesor i pamięć. Najczęściej układy takie są wykorzystywane w urządzeniach takich jak czujniki przemysłowe, termostaty, sprytnie działające przełączniki, inteligentne żarówki itd. Mikrokontrolery znajdują się w ponad 80% urządzeń połączonych lub pozwalających na połączenie z internetem. Z kolei jednostka mikroprocesora (ang. microprocessor unit, MPU) rozszerza możliwości obliczeniowe i charakteryzuje się większą mocą obliczeniową urządzeń brzegowych. Ma podłączone zewnętrznie komponenty pamięci i wejścia-wyjścia. To są znacznie potężniejsze urządzenia, takie jak laptop, komputer stacjonarny, kamera, router itd. W następnym punkcie dowiesz się nieco więcej na temat zarządzania mikrokontrolerami i ich możliwości w zakresie nawiązywania połączeń.


Zarządzanie urządzeniami wyposażonymi w mikrokontrolery

FreeRTOS to jeden z najpopularniejszych systemów operacyjnych działających w czasie rzeczywistym (ang. real-time operating systems, RTOS). Przeznaczony jest dla urządzeń wyposażonych w mikrokontroler. FreeRTOS obejmuje jądro i zbiór bibliotek IoT przeznaczonych do użycia we wszystkich sektorach przemysłowych, co ułatwia bezpieczne połączenie małych urządzeń o niewielkich możliwościach obliczeniowych ze znacznie potężniejszymi urządzeniami brzegowymi i bramami. FreeRTOS pomaga w łatwym programowaniu urządzeń bazujących na mikrokontrolerach, pobieraniu danych i przekazywaniu ich do analizy oraz skalowaniu aplikacji IoT w milionach urządzeń. Pomaga w zapewnieniu bezpieczeństwa urządzeniom brzegowym dzięki zarządzaniu kluczami i danymi uwierzytelniającymi, a także pozwala zapewnić bezpieczeństwo danych dzięki wykorzystaniu szyfrowania warstwy transportowej sieci.

Urządzenia wyposażone w mikrokontroler mogą nawiązywać połączenie z AWS IoT Core za pomocą systemu komunikatów MQTT Pub/Sub bądź pobierania poprzez protokół HTTPS plików z chmury lub ich przekazywania do chmury, aby w ten sposób pobierać dane przeznaczone do analizy. MQTT to przeznaczony dla IoT protokół komunikacji standardu OASIS. To lekki protokół przekazywania komunikatów typu producent-subskrybent, idealny do połączenia ze zdalnymi urządzeniami, charakteryzujący się małymi wymaganiami sprzętowymi i minimalnym zapotrzebowaniem na przepustowość sieci. FreeRTOS rozszerza warstwę abstrakcji wi-fi i sieci komórkowej LTE, co pomaga w kontynuowaniu komunikacji, zbieraniu danych i podejmowaniu działań bez połączenia z chmurą.

FreeRTOS oferuje bibliotekę AWS IoT Device Defender przeznaczoną do zapewnienia bezpieczeństwa urządzeniu, ułatwiającą przekazywanie wskaźników dotyczących urządzenia i wykrywanie anomalii, gdy te wskaźniki odbiegają od oczekiwanych. Biblioteka Device Defender nieustannie przeprowadza audyt konfiguracji IoT powiązanej z urządzeniami IoT, aby zapewnić ich zgodność z najlepszymi praktykami w zakresie bezpieczeństwa, np. audyt i monitorowanie urządzeń, informowanie o połączeniach TCP oraz wykrywanie anomalii.

System FreeRTOS jest w pełni zintegrowany z chmurą AWS i obsługiwany przez nią. AWS obsługuje w pełni zintegrowaną usługę uaktualnienia firmware dla FreeRTOS z podpisywaniem kodu za pomocą AWS IoT Device Management, a także obsługuje uaktualnienia oprogramowania OTA (ang. over-the-air). OTA to ważny aspekt IoT oraz istotny fragment rozwiązania zapewniającego pełne szyfrowanie.

Ponieważ urządzenia wyposażone w mikrokontroler stają się znacznie potężniejsze i zapewniają możliwości w zakresie rozszerzenia analizy danych na brzeg sieci, AWS oferuje usługę IoT Greengrass pozwalającą na połączenie tych urządzeń z chmurą AWS. Ponadto system FreeRTOS zawiera wygodne API, dzięki któremu połączenie z urządzeniami AWS Greengrass jest łatwe. Załóżmy, że urządzenie AWS Greengrass utraciło połączenie z chmurą. W takim przypadku urządzenie FreeRTOS w grupie Greengrass może nadal komunikować się z innymi urządzeniami poprzez sieć lokalną, więc aplikacja kontynuuje działanie nawet pomimo braku bezpośredniego połączenia. W następnym punkcie dowiesz się nieco więcej na temat zarządzania urządzeniami wyposażonymi w mikroprocesor oraz opracowywania rozwiązań pozwalających na przetwarzanie danych w pobliżu źródła danych.


Zarządzanie urządzeniami wyposażonymi w mikroprocesor

Nie zawsze istnieje możliwość zbierania danych IoT do centralnej lokalizacji i przeprowadzania analizy w celu wyciągnięcia pewnych wniosków na podstawie tych danych. Zdarza się więc, że dane trzeba pobierać i przetwarzać lokalnie w lokalizacjach brzegowych, gdy połączenie z internetem jest niedostępne, np. w samolotach, na statkach bądź na odległych terytoriach. Istnieje również prawdopodobieństwo, że nie będzie możliwości przechowywania danych w innych miejscach, np. ze względu na lokalne prawo bądź wyjątkowo duże opóźnienie. Przykładem może być tutaj flota robotów w fabryce. W takich sytuacjach urządzenia muszą zmniejszyć opóźnienie oraz koszty i poprawić zgodność w położeniach brzegowych. Bardzo często w takich przypadkach preferowane są urządzenia wyposażone w mikroprocesor, ponieważ charakteryzują się znacznie większą mocą obliczeniową niż urządzenia wyposażone w mikrokontroler. Mogą działać jako bramy i zarządzać w lokalizacjach brzegowych wieloma urządzeniami wyposażonymi w mikrokontroler.

AWS oferuje usługę IoT Greengrass pomagającą w rozszerzeniu usług AWS na urządzenia, aby te usługi działały lokalnie z wygenerowanymi danymi, co pozwala na ich analizę i podejmowanie odpowiednich działań. Dzięki Greengrass urządzenie nie musi przekazywać danych do odległej chmury — dane są przechowywane lokalnie, co pozwala zaoszczędzić czas w sytuacjach, w których liczy się każda milisekunda. Ponadto zapewnia możliwość przekazywania do chmury jedynie niezbędnych danych, co obniża koszty. Urządzenia obsługujące Greengrass kontynuują przekazywanie komunikatów lokalnych, gdy dane muszą pozostać lokalne ze względu na prawo obowiązujące na danym terytorium. To zapewnia bezpieczeństwo danych.

Usługa AWS IoT Greengrass składa się z dwóch elementów — brzegowego środowiska uruchomieniowego oraz usługi w chmurze. Korzystanie z brzegowego środowiska uruchomieniowego w urządzeniu pomaga klientom zwiększać możliwości za pomocą przetwarzania lokalnego, zarządzania danymi i użycia prognozowania bazującego na uczeniu maszynowym, a także zapewnia bezproblemowe połączenie z usługami chmury AWS.

Usługa Greengrass pozwala klientom na zdalne wdrażanie aplikacji IoT i zarządzanie nimi we flocie urządzeń. Na rysunku 15.2 możesz zobaczyć ogólny schemat wstępnie zintegrowanych za pomocą Greengrass zadań analitycznych i usług uczenia maszynowego z chmurą AWS.


Rysunek 15.2. Usługa AWS IoT Greengrass integrująca rozwiązanie z usługami chmury AWS


Czasami urządzenia IoT nie są bezpośrednio połączone z chmurą. Lokalnie komunikują się z hubami lub bramami, które mają połączenie z chmurą. W takich przypadkach brzegowe środowisko uruchomieniowe Greengrass może być zainstalowanie w hubie lub bramie oraz pomaga programistom urządzenia w tworzeniu, wdrażaniu i zarządzaniu brzegowymi aplikacjami IoT w bramach. Ponadto brama pozwala na przygotowanie sprytnie działających rozwiązań dla wszystkich urządzeń połączonych z nią lokalnie.

Usługa AWS Greengrass pozwala na działanie lokalnej funkcjonalności AWS Lambda, lokalnej wymiany komunikatów, usługi Device Shadow dla synchronizacji danych i informacji o stanie, a także zapewnia bezpieczeństwo podczas komunikacji między urządzeniami. OTA ułatwia instalowanie uaktualnionych wersji Greengrass Core w celu uzyskania dostępu do nowych funkcjonalności, wyeliminowania błędów i poprawy poziomu bezpieczeństwa dzięki wykorzystaniu AWS IoT Device Management.

Trzeba się również upewnić, że urządzenie jest połączone i działa z usługami IoT chmury. AWS dostarcza IoT Device Tester, aplikację automatyzacji testów pozwalającą na przetestowanie FreeRTOS lub AWS IoT Greengrass w wybranych urządzeniach. Sprawdzić można połączenie FreeRTOS z chmurą, OTA, poprawność funkcjonowania bibliotek bezpieczeństwa w sterownikach urządzeń wyposażonych w mikrokontroler. Natomiast w przypadku urządzeń wyposażonych w mikroprocesor można sprawdzić, czy połączenie architektury procesora urządzenia, konfiguracja jądra Linuksa i sterowniki działają z usługą AWS Greengrass.


Nawiązywanie połączenia i kontrolowanie urządzeń IoT

Obecnie mamy miliony urządzeń generujących co sekundę gigabajty i terabajty danych. Tak więc następne pytanie brzmi: jak bezpiecznie nawiązać połączenie z danymi i jak obsłużyć dane generowane na dużą skalę? To nie dotyczy jedynie pobierania danych. Konieczne jest uwzględnienie także innych czynników.

  • Identyfikacja usługi. Konieczne jest zidentyfikowanie usług przeznaczonych do zarządzania autoryzacją urządzeń i przygotowaniem unikatowych identyfikatorów na dużą skalę. IoT Core pozwala na użycie własnego urzędu certyfikacji (ang. certificate authority, CA) i certyfikatów klienta bądź też pozostawienie platformie IoT zadania wygenerowania certyfikatów. Platforma IoT musi obsługiwać SigV4, X.509 i autoryzację niestandardową, a jednocześnie zapewniać szczegółową kontrolę dostępu za pomocą polityki IoT aż do poziomu tematu MQTT.
  • Brama usługi. Pozwala na bezpieczne połączenie urządzeń z centrum danych bądź z chmurą. W trakcie pierwszego połączenia brama powinna automatycznie przygotowywać ogromne floty urządzeń z użyciem unikatowych identyfikatorów, używając przygotowania floty i ułatwiając automatyczną rejestrację urządzenia na żądanie. Brama danych powinna pozwalać na bezpieczne połączenie urządzeń z chmurą, centrum danych i innymi urządzeniami na dużą skalę. W celu zapewnienia niezawodności połączenia brama powinna nawiązywać trwałe połączenia przeznaczone do komunikacji dwukierunkowej za pomocą MQTT, WebSocket lub HTTP oraz bezpiecznej komunikacji z użyciem wzajemnego uwierzytelnienia TLS 1.2.
  • Broker komunikatów. Przetwarza i kieruje komunikaty danych do centrum danych bądź chmury. Musi mieć możliwość przekierowania danych z urządzeń IoT, używając do tego skalowalnego, niezawodnego i charakteryzującego się małym opóźnieniem routingu komunikatów. Ponadto musi zapewniać obsługę trybu producent-konsument dla urządzeń i aplikacji oraz ułatwiać dwukierunkowe strumieniowanie komunikatów. Broker pomaga również w zrozumieniu i kontrolowaniu stanu urządzenia w dowolnej chwili, zachowuje komunikaty dla urządzeń w trybie offline oraz rozszerza obsługę komunikatów QoS (ang. quality of service) dla MQTT:


Poziom 0
QoS oznacza co najwyżej jednorazowe dostarczenie komunikatu. Ten poziom jest nazywany również uruchom i zapomnij, nie ma gwarancji dostarczenia komunikatu, ponieważ odbiorca nie potwierdza jego otrzymania.
Poziom 1 QoS gwarantuje co najmniej jednokrotne dostarczenie komunikatu, przy czym komunikat może być również powielony i dostarczony więcej niż tylko raz.
Poziom 2 QoS jest najwyższy w usłudze MQTT. Gwarantuje, że każdy komunikat będzie otrzymany tylko jednokrotnie. To jednocześnie najwolniejsza metoda i wymaga 4-etapowej wymiany informacji między nadawcą i odbiorcą.


  • Silnik reguł.Powoduje wykonywanie działań w urządzeniach zgodnie z wymaganiami biznesowymi. Silnik pobiera ogromne ilości danych, przetwarza je, a następnie udostępnia na potrzeby usług analizy, raportowania i wizualizacji. Silnik reguł wymaga wbudowanych funkcji dla zadań matematycznych, operacji na ciągach tekstowych, datach, przekształceń danych oraz zapewnia możliwości w zakresie filtrowania danych przed ich przekazaniem do innych usług na potrzeby analizy i uczenia maszynowego.
  • Usługa Device Shadow. Pozwala aplikacji na pracę z urządzeniami, nawet jeśli są w trybie offline, oraz pomaga zrozumieć i kontrolować stan urządzenia w dowolnej chwili. Ta usługa powinna przedstawiać ostatni znany stan urządzenia pozostającego obecnie w trybie offline, np. ostatni zarejestrowany kolor żarówki to czerwony. Usługa Device Shadow powinna pozwalać na wprowadzanie zmian stanu w czasie rzeczywistym na podstawie działań aplikacji i urządzeń kontrolnych, np. zmianę koloru żarówki na niebieski. Gdy urządzenie odzyska połączenie z internetem i przejdzie do trybu online, zostanie automatycznie zsynchronizowane.
  • Rejestr urządzeń. Pozwala na automatyczne rejestrowanie urządzeń i pomaga w zarządzaniu nimi. Rejestr urządzeń definiuje i kataloguje urządzenia w celu ułatwienia pracy z nimi, np. przez wykonywanie prostych wyszukiwań typu które urządzenia zostały zbudowane w 2016 roku lub przez zdefiniowanie ich typów, np. BMW i Audi to rzecz typu samochód. To pozwala na standaryzację atrybutów i polityk między urządzeniami. W celu dalszego uproszczenia można zdefiniować grupy, np. czujniki w silniku turbiny wiatrowej, aby tym samym umożliwić prostsze zarządzanie uruchomionymi zadaniami oraz definiowaniem polityk. Znacznie lepiej będzie wykorzystać zarządzaną platformę IoT, np. AWS IoT Core, która zapewnia dostęp do wszystkich wymienionych usług. AWS IoT Core pozwala nawiązywać bezpieczne połącznie z dowolną liczbą urządzeń w chmurze oraz z innymi urządzeniami bez konieczności przygotowania serwerów. Dane można przekierowywać, przetwarzać i używać ich z połączonych urządzeń, a także można pozwalać aplikacji na pracę z urządzeniami, nawet jeśli są aktualnie w trybie offline. Usługa IoT Core oferuje usługi AWS przeznaczone do pracy z danymi w zakresie analizy, AI i uczenia maszynowego, dostarczane jako część ekosystemu chmury.
  • Usługa AWS IoT Device Management. Ta usługa pomaga rejestrować, organizować i monitorować zwiększającą się flotę połączonych urządzeń oraz zdalnie nią zarządzać. Wiele urządzeń jest rejestrowanych hurtowo, urządzenia są organizowane w grupy, przeprowadzana jest operacja uaktualnienia firmware (OTA), a także ułatwiane jest pełne zarządzanie wszystkimi urządzeniami IoT za pomocą w pełni zarządzanej aplikacji internetowej.
  • Usługa AWS IoT Device Defender. To w pełni zarządzana usługa bezpieczeństwa IoT ułatwiająca nieustanne zapewnianie bezpieczeństwa flocie połączonych urządzeń. Monitoruje zasoby IoT powiązane z egzemplarzami i całą flotę urządzeń pod kątem nietypowego sposobu działania, który mógłby sugerować potencjalny problem zagrażający bezpieczeństwu urządzenia. Omawiana usługa przekazuje powiadomienia po wychwyceniu czegoś podejrzanego, np. ruchu sieciowego z urządzenia do nieautoryzowanego adresu IP bądź nagłego wzrostu ilości wychodzącego ruchu sieciowego, co mogłoby wskazywać, że urządzenie uczestniczy w ataku typu DDoS. Wreszcie poprzez ścisłą integrację z usługą IoT Device Management usługa IoT Device Defender pozwala na podejmowanie odpowiednich działań mających na celu zabezpieczenie urządzeń.


AWS zapewnia usługi IoT Core, Device Management i Device Defender nazywane razem usługami IoT związanymi z łącznością i kontrolą. Dzięki nim można nawiązywać połączenia z urządzeniami, a także zarządzać nimi i je zabezpieczać. Skoro będą pobierane dane z milionów urządzeń IoT, przeanalizowanie ich i wyciągnięcie na ich podstawie pewnych wniosków staje się bardzo ważne. 

Przeprowadzanie analizy danych IoT

Przeanalizowanie danych IoT może stanowić wyzwanie, ponieważ zwykle nie mają one struktury, jak w przypadku danych, które są przetwarzane przez narzędzia analityczne opracowane z myślą o BI i analizie internetowej. Zamiast tego dane IoT najczęściej pochodzą z czujników podłączonych do pewnych maszyn z połączeniami pośrednimi, kontrolerów z kiepskim zasięgiem wi-fi, a także z wielu innych miejsc, w których sygnał jest słaby lub wręcz zanika. Dane z takich urządzeń często mają poważne braki i są nieprawidłowe. Ponadto dane IoT zwykle mają sens jedynie w kontekście innych danych pochodzących ze źródeł zewnętrznych. Na przykład rolnik musi korzystać z danych czujnika wilgotności w połączeniu z prognozowaną wielkością opadów, aby na tej podstawie ustalić, czy konieczne jest nawodnienie upraw.

Przychodzące rzeczywiste dane IoT muszą być wzbogacone przez ich połączenie z innymi danymi, takimi jak data i godzina, położenie, informacje dodatkowe, co stanowi kolejne wyzwanie dla firmy. Aby zapewnić świetne działanie aplikacji, często konieczne jest opracowanie niestandardowej logiki przeznaczonej do obsługi niepoprawnych odczytów, radzenia sobie z brakami w danych oraz uzupełnianiem ich informacjami kontekstowymi. Trzeba również odpowiednio przechowywać przetworzone dane, nawet jeszcze przed ich przekazaniem aplikacji. To oznacza potrzebę opracowania kodu, co wymaga czasu na kompilację, testowanie i późniejszą obsługę techniczną oraz zwiększa koszt przetwarzania danych IoT przez aplikację.

Istnieje wiele tych samych zadań związanych z zarządzaniem i analizą danych w aplikacjach IoT, m.in. przetwarzanie i uzupełnianie danych, przygotowanie i partycjonowanie baz danych, tworzenie skomplikowanych zapytań. Wszystkie te wymagania związane z przetwarzaniem danych muszą być nieustannie obsługiwane ze względu na ewolucję urządzeń, zmiany wielkości floty, pojawianie się nowych wymagań dotyczących przetwarzania itd. Firma taka jak C3 IoT dostarcza zaawansowane narzędzia analityczne, a dostawcy usług chmury, np. AWS, opracowali usługi typu AWS IoT Analytics do przeprowadzania na dużą skalę analizy danych IoT.

AWS IoT Analytics to usługa zarządzana pobierająca, wstępnie przetwarzająca, uzupełniająca, przechowująca, analizująca i wizualizująca na dużą skalę dane urządzenia IoT. Pozwala na pobieranie tylko tych danych, które mają być przechowywane, oraz konwertuje dane nieprzetworzone na postać dostarczającą cennych informacji.

Większość danych IoT jest powiązana ze znacznikiem czasu, więc AWS IoT Analytics przechowuje dane urządzenia w szeregach czasu na potrzeby dokładniejszej analizy, aby na ich podstawie zebrać dokładniejsze informacje o stanie i wydajności działania zasobu, oraz wizualizuje zbiory danych IoT.

Ogólnie rzecz biorąc, w celu zaprojektowania architektury IoT należy wybrać odpowiednie oprogramowanie urządzenia na potrzeby projektu IoT, uwzględniając sprzęt, środowisko programowe i sposób użycia rozwiązania. Jeżeli masz do czynienia z urządzeniami o ściśle ograniczonych możliwościach — zwykle to mikrokontrolery — wówczas zaleca się użycie FreeRTOS i IoT Device SDK. W przypadku urządzeń IoT wyposażonych w mikroprocesory możesz skorzystać z AWS IoT Greengrass. To pozwoli zwiększyć tempo pracy nad aplikacjami dla urządzenia, wykorzystać jego możliwości obliczeniowe oraz w zakresie nawiązywania połączeń, a także umożliwi zdalne wdrożenia i zarządzanie oprogramowaniem urządzenia.

Gdy masz przygotowane urządzenie, możesz użyć usług AWS IoT Core, Device Management i Device Defender w celu nawiązania połączenia z urządzeniem, kontrolowania go i przeprowadzania analizy zebranych danych, korzystając z narzędzi analizy AWS IoT. Skoro chmura staje się coraz częściej wybieranym rozwiązaniem do pobierania danych i ich analizy na dużą skalę, warto zapoznać się z przykładami usług IoT oferowanych przez jednego z wiodących dostawców chmury, Amazon Web Services.


*Artykuł stanowi fragment książki pt. „Podręcznik architekta rozwiązań. Poznaj reguły oraz strategie projektu architektury i rozpocznij niezwykłą karierę. Wydanie II” Saurabh Shrivastava, Neelanjali Srivastav (Helion 2023)

<p>Loading...</p>