Architektura rozwiązania IoT: przegląd komponentów &Amp; Wskazówki projektowe
Opublikowany: 2022-05-16Firmy nadal wskakują na modę Internetu Rzeczy i zwracają się do firm konsultingowych IoT. Według ostatnich badań przeprowadzonych przez Facts & Factors, globalny rynek IoT ma osiągnąć wartość 1,842 miliardów dolarów do 2028 r., rosnąc przy CAGR na poziomie 24,5%. Wprowadzenie IoT nie jest jednak łatwe. Beecham Research informuje, że 75% wszystkich projektów IoT albo nie spełnia ustalonych oczekiwań, albo kończy się niepowodzeniem.
Częstym tego powodem jest brak planowania i wynikających z tego wyzwań technicznych. Tym, co pomaga uniknąć ryzyka niepowodzenia, jest wcześniejsze opracowanie planu architektury IoT. W tym wpisie na blogu rzucamy światło na podstawowe elementy architektury IoT i pokazujemy, jak tworzenie architektury IoT może wyglądać w praktyce na przykładzie projektu z portfolio ITRex.
Przejdźmy od razu, zaczynając od samych podstaw.
Czym jest architektura IoT?
Architektura IoT to połączenie komponentów sprzętowych i programowych, które współdziałają ze sobą, tworząc inteligentny system cyber-cyfrowy. Współdziałając ze sobą, komponenty te tworzą podstawę dla rozwiązania IoT, na którym można budować. Zanim zagłębimy się w szczegóły, wyjaśnijmy sprawę: nie ma jednego uniwersalnego podejścia do projektowania architektury IoT. Mimo to podstawowy układ pozostaje w dużej mierze taki sam bez względu na rozwiązanie.
Standardowa architektura IoT: co kryje się pod maską?
Typowe aplikacje IoT oparte na danych opierają się na standardowej architekturze IoT obejmującej cztery warstwy:
- Warstwa urządzenia
- Warstwa sieci
- Warstwa wsparcia usług i aplikacji
- Warstwa aplikacji
Ostatnio jednak coraz więcej połączonych systemów zaczęło koncentrować się na przetwarzaniu brzegowym, co doprowadziło do dodania dodatkowej warstwy do tradycyjnej czterowarstwowej architektury. Udział czynności wykonywanych na brzegu zależy od konkretnej implementacji, ale często obejmuje on umożliwienie łączności, a także filtrowanie, agregowanie, zabezpieczanie i przetwarzanie przychodzących danych.
Warstwa urządzenia
Warstwa urządzeń obejmuje wszelkiego rodzaju inteligentne, połączone urządzenia lub obiekty nieelektroniczne, które są wzbogacone o kamery i/lub czujniki oraz, opcjonalnie, siłowniki. Czujniki pobierają dane ze świata zewnętrznego i przetwarzają je na sygnały elektryczne, aby mogły być przetwarzane przez komputer. Czujniki IoT różnią się rozmiarem i przeznaczeniem. Są w stanie rejestrować wszystkie rodzaje informacji — od temperatury, przez ruch, po wilgotność i nie tylko. Siłowniki z kolei sprawiają, że podłączone urządzenia reagują na polecenia wysyłane z centrum przetwarzania. Gdy siłownik otrzyma polecenie, sprawia, że urządzenie zachowuje się w określony sposób. Na przykład inteligentny system oświetlenia może włączyć światła po wykryciu ruchu w pobliżu.
Warstwa sieci
Warstwa sieciowa obejmuje różne technologie komunikacyjne, które łączą warstwę urządzeń i kolejne warstwy architektury IoT. W zależności od danego rozwiązania IoT łączność urządzeń może być włączona bezpośrednio lub za pośrednictwem bram. To ostatnie często dotyczy starszych urządzeń, które nie mogą być połączone bezpośrednio lub gdy występuje niezgodność protokołu. Nowoczesne rozwiązania IoT opierają się na następujących technologiach komunikacyjnych:
Sieci LPWAN lub sieci rozległe o małej mocy zostały zbudowane specjalnie do obsługi rozwiązań IoT na dużą skalę. LPWAN zapewnia możliwości dalekosiężnej komunikacji, będąc jednocześnie energooszczędnym, trwałym i tanim. Minusem jest to, że sieci LPWAN przesyłają tylko niewielkie ilości danych z dość niską szybkością, więc lepiej nadają się do zastosowań, które nie są wrażliwe na czas i nie wymagają dużej przepustowości, takich jak inteligentne budynki lub przemysłowy IoT.
Zigbee to standard komunikacji bezprzewodowej krótkiego zasięgu, który najlepiej nadaje się do zastosowań IoT o średnim zasięgu z węzłami równomiernie rozmieszczonymi w pobliżu, na przykład w inteligentnych domach. W porównaniu do LPWAN, Zigbee zapewnia wyższe szybkości transmisji danych, ale jest mniej energooszczędne.
Sieci komórkowe (3G/4G/5G) oferują niezawodną komunikację szerokopasmową, dzięki czemu doskonale nadają się do obsługi takich przypadków użycia, jak samochody połączone, wyznaczanie tras, zarządzanie flotą lub zaawansowana pomoc kierowcy. Mimo to sieci komórkowe nie łączą się dobrze z sieciami czujników zasilanymi bateryjnie i wiążą się z wysokimi kosztami operacyjnymi, co ogranicza ich wykorzystanie.
Bluetooth zapewnia komunikację bliskiego zasięgu i jest używany w małych konsumenckich urządzeniach IoT, takich jak urządzenia do noszenia w sporcie lub służbie zdrowia, urządzenia Internetu Ciała i inteligentne urządzenia domowe.
Wi-Fi umożliwia transfer danych o dużej przepustowości. Mimo to, ze względu na zasięg, skalowalność i problemy z zużyciem energii, Wi-Fi często nie jest wykonalnym wyborem dla ekspansywnych sieci IoT lub urządzeń IoT zasilanych bateryjnie. Zamiast tego jest bardziej odpowiedni dla inteligentnych urządzeń podłączanych do gniazdka elektrycznego, takich jak inteligentne gadżety domowe, kamery bezpieczeństwa lub cyfrowe oznakowania.
RFID wykorzystuje fale radiowe do przesyłania niewielkich ilości danych z tagu RFID do czytnika znajdującego się w pobliżu. Ta technologia komunikacyjna jest szeroko stosowana w logistyce i handlu detalicznym.
Warstwa przetwarzania brzegowego
Warstwa przetwarzania brzegowego składa się z bram, serwerów lokalnych lub innych węzłów brzegowych rozsianych po całej sieci. Ideą wprowadzenia urządzeń brzegowych jest przechowywanie i przetwarzanie danych blisko ich źródła, wysyłanie tylko części wygenerowanych rekordów do chmury lub masowe przesyłanie danych do chmury w ustalonych odstępach czasu zamiast przesyłania ich w czasie rzeczywistym. Oprócz przetwarzania danych warstwa brzegowa może filtrować, agregować i szyfrować przychodzące informacje.
Lokalne przetwarzanie danych pomaga zaoszczędzić czas i zasoby, które w innym przypadku byłyby potrzebne do przesłania wszystkich wygenerowanych rekordów do chmury. W ten sposób skutkuje to lepszymi opóźnieniami i wyższą wydajnością. Dodanie warstwy brzegowej jest realną opcją w przypadkach użycia IoT, które wymagają analizy danych w czasie rzeczywistym i wymagają wbudowanej skalowalności i zwiększonego bezpieczeństwa, na przykład medycznych systemów IoT, systemów CCTV lub inteligentnych samochodów.
Warstwa wsparcia usług i aplikacji
To tam trafia większość danych gromadzonych przez urządzenia IoT. Tak więc warstwa usług i obsługi aplikacji służy do gromadzenia, przetwarzania i przechowywania danych. Tutaj zachodzą dwa zasadnicze procesy:
- Gromadzenie danych: systemy IoT generują ogromne ilości danych i nie wszystkie te dane muszą być natychmiast wprowadzane do działania. Dlatego architektura IoT może zawierać jezioro danych do przechowywania wszystkich wygenerowanych informacji i wysyłania tylko oczyszczonych i przefiltrowanych rekordów w dół potoku zarządzania danymi. Tak więc głównym celem tego etapu jest zebranie wszystkich danych razem, ustalenie, czy dana informacja odpowiada wymaganiom biznesowym i podjęcie decyzji o sposobie jej przechowywania — w tymczasowej bazie danych lub hurtowni danych.
- Abstrakcja danych: Na tym etapie informacje z urządzeń IoT są wzmacniane przez dane z odpowiednich źródeł zewnętrznych. Mogą to być systemy ERP, EMR i inne systemy korporacyjne. Przekształcone tak, aby pasowały do ujednoliconego formatowania, dane trafiają do scentralizowanej pamięci masowej, na przykład hurtowni danych, gdzie można do nich wygodnie uzyskać wgląd.
Warstwa aplikacji
W warstwie aplikacji zgromadzone, przetworzone i zintegrowane dane z urządzeń IoT i źródeł zewnętrznych są przetwarzane przez algorytmy analityczne, a wyniki analizy prezentowane są użytkownikom. Typy aplikacji różnią się w zależności od wymagań biznesowych systemu IoT. Mogą one obejmować aplikacje internetowe lub mobilne, które prezentują wizualizowane wglądy użytkownikom końcowym lub kontrolują urządzenia IoT za pomocą siłowników, narzędzi analizy biznesowej lub zaawansowanych rozwiązań analitycznych opartych na uczeniu maszynowym i sztucznej inteligencji.
Projektowanie architektury IoT w praktyce: co nas czeka?
Teraz, gdy rzuciliśmy światło na teoretyczną koncepcję architektury IoT, zobaczmy, jak jej projektowanie może wyglądać w praktyce. Aby zobrazować specyfikę budowy rozwiązań IoT, zwrócimy się do projektu z portfolio ITRex.
Jeden z naszych klientów zwrócił się do nas z pomysłem zbudowania inteligentnego lustra fitness, aby pomóc ludziom trenować w domu tak skutecznie, jak na siłowni. Lustro zastąpiłoby trenera fitness, „obserwującego” osobę ćwiczącą, aby przekazać informację zwrotną na temat sesji treningowych i przygotować szyte na miarę plany treningowe na przyszłe treningi. Inżynierowie ITRex podjęli wyzwanie i opracowali architekturę rozwiązania, obejmującą wszystko, od sprzętu, przez oprogramowanie sprzętowe, po aplikacje mobilne użytkownika końcowego.
Architektura, którą ostatecznie zaprojektowaliśmy, skupiała się głównie na przetwarzaniu brzegowym. Większość danych z czujników i kamer lustra jest przetwarzana na samym urządzeniu, a tylko część informacji statystycznych jest przekazywana do chmury.
Kirill Stashevski, CTO w ITRex, wyjaśnia wybór priorytetowego traktowania przetwarzania brzegowego w porównaniu z tradycyjnymi modelami opartymi na chmurze: „Przetestowaliśmy oba podejścia — i przetwarzanie brzegowe wygrało pod względem zapewniania wyższej wydajności. Tak więc dane z kamer lusterek i adhezyjnych czujników ruchu, które towarzyszą lusterku i obciążają, są analizowane blisko miejsca ich wygenerowania. Oszczędza to dużo czasu i pomaga obniżyć koszty operacyjne. I o to właśnie chodzi w projektowaniu udanych architektur IoT — musisz dokonywać wyborów i testować założenia, wybierając to, co działa najlepiej dla Ciebie”. Wysokopoziomowa architektura rozwiązania wygląda zatem następująco:
Lustro jest wyposażone w sieci AI, które są wstępnie przeszkolone w zakresie obszernych nagrań wideo osób ćwiczących. Gdy osoba ćwiczy, są one rejestrowane przez wbudowane kamery lustra, a materiał wideo jest natychmiast przesyłany przez sieci AI, które porównują trening z modelem referencyjnym.
W ten sposób silnik AI generuje w czasie rzeczywistym zalecenia dotyczące tego, czy rutynowy trening danej osoby jest zdrowy i sugeruje potrzebne ulepszenia — czy to w zakresie ciężarów, techniki, czy intensywności. Gdy praktykant korzysta z lustra, materiał wideo jest rysowany, aby spersonalizować lokalnie wdrożone sieci sztucznej inteligencji, dzięki czemu jakość sugestii poprawia się z czasem.
Według Kirilla personalizacja to kolejny powód, dla którego zdecydowaliśmy się na architekturę zorientowaną na krawędzie. Szkolenie sieci lokalnie w oparciu o filmy nagrane w kontekście, w którym lustro jest faktycznie używane, daje znacznie lepsze wyniki niż szkolenie algorytmów w chmurze w oparciu o treści ogólne. Innym powodem, dla którego warto wybrać architekturę skoncentrowaną na krawędzi, jest prywatność, ponieważ przetwarzanie danych blisko miejsca ich generowania pozwala uniknąć przesyłania materiału filmowego przez sieć w celu analizy.
Pomimo zorientowania na krawędzie, architektura rozwiązania obejmuje również część chmurową. Jednak jego głównym celem jest zbieranie danych statystycznych dotyczących wykorzystania i wydajności serwerów lustrzanych. Innym elementem rozwiązania jest społecznościowa aplikacja mobilna, dzięki której użytkownicy końcowi mogą rejestrować swoje wyniki, udostępniać je znajomym i wspólnie trenować.
Podsumowanie, czyli dlaczego ważne jest wcześniejsze zaprojektowanie planu architektury IoT
Jeśli myślisz o przyjęciu IoT, ważne jest, aby jak najwcześniej opracować przemyślaną architekturę przyszłego rozwiązania. Systemy o słabej architekturze nie są skalowalne i nie radzą sobie ze złożonością, podczas gdy dobrze zaprojektowana architektura IoT pozwoliłaby zaplanować przyszłość i zagwarantować:
- Utrzymanie. Dobrze zaprojektowane systemy IoT są łatwiejsze i tańsze w utrzymaniu. Ponieważ szerszy obraz ze wszystkimi komponentami, procesami i integracjami jest jasny, łatwiej jest przejść do mniejszych zadań. Jeśli chodzi o sourcing projektów, dobrze zaprojektowane systemy również ułatwiają pozyskiwanie nowych talentów i skracają czas potrzebny na transfer wiedzy.
- Skalowalność. Po zaplanowaniu początkowej architektury łatwiej jest skalować system IoT zarówno w pionie, jak iw poziomie, wprowadzając nową funkcjonalność lub dodając więcej węzłów końcowych.
- Opłacalność. Poświęcenie czasu na dokładne zaprojektowanie systemu IoT pomaga dokonywać lepszych wyborów technologicznych, obniżając w ten sposób koszty rozwoju i eksploatacji rozwiązań IoT.
- Wysoka wydajność. Posiadanie jasnej wizji architektonicznej pomaga budować lepsze przepływy danych, a także przetwarzać przychodzące dane za pomocą odpowiednich narzędzi, co pomaga osiągnąć wyższą wydajność systemu.
- Interoperacyjność. Architektura IoT może obejmować wiele urządzeń przy użyciu różnych protokołów komunikacyjnych, które nie zawsze dobrze się ze sobą łączą. Przemyślana architektura IoT pomaga zapewnić płynną współpracę różnych urządzeń i komponentów.
- Bezpieczeństwo. Inwestując początkowe wysiłki w projektowanie systemu, można uniknąć luk w zabezpieczeniach i zaplanować niezbędne mechanizmy bezpieczeństwa IoT.
Jeśli masz jakieś pytania bez odpowiedzi lub chcesz wskoczyć na modę IoT bez ryzyka, skontaktuj się z zespołem programistów ITRex IoT. Pomogą Ci zaprojektować niezawodną i skalowalną architekturę, która zasili Twoje przyszłe rozwiązanie.
Pierwotnie opublikowany na https://itrexgroup.com 10 maja 2022 r.