Czym się różni embedded od IoT?
W naszym życiu bardzo często spotykamy się z urządzeniami embedded i IoT. W wielu gospodarstwach domowych na co dzień korzysta się z takich rozwiązań. Kiedy odgrzewasz sobie obiad w nowoczesnej mikrofalówce, a potem myjesz naczynia w zmywarce, prawdopodobnie wykorzystujesz do tego urządzenia embedded. Jeśli masz w domu smart żarówki lub smart lodówkę, to prawie na pewno korzystasz z rozwiązania IoT. W takim razie jaka jest między nimi różnica?

Urządzenia embedded
Żeby sobie wyobrazić, czym są urządzenia embedded, warto pomyśleć o komputerze ogólnego przeznaczenia, który większość osób ma w domu lub wykorzystuje w pracy. Można go wykorzystywać do niezliczonej liczby zadań - od celów biznesowych po rozrywkę. Najczęściej korzystamy z edytorów tekstu, przeglądamy Internet w poszukiwaniu informacji, oglądamy filmy oraz słuchamy muzyki. Oczywiście jest to bardzo skrócona lista sposobów użycia. Taki komputer, z którego korzystamy na co dzień, jest zbudowany zazwyczaj z różnych komponentów - płyty głównej, procesora, pamięci RAM, dysku twardego, monitora, myszki i klawiatury. Wszystkie razem tworzą komputer, który dzięki nim działa tak, jak się spodziewamy.
W przeciwieństwie do komputerów osobistych urządzenia embedded nie mają tak złożonego zestawu operacji, które można na nich wykonać, i zazwyczaj są skoncentrowane wokół jednego specjalistycznego zadania. Wróćmy do przykładów z początku artykułu: mikrofalówka raczej nie będzie miała możliwości odtwarzania muzyki. Ale jako urządzenie o konkretnym przeznaczeniu spełnia swoją rolę - odgrzewa i rozmraża potrawy. Można ustawić, z jaką mocą ma pracować, po jakim czasie powinna się wyłączyć itd. Starsze mikrofalówki realizowały to za pomocą mechanicznego programatora z pokrętłami; współczesne robią to za pomocą wbudowanego małego komputera. I to jest główna zasada w embedded: mały komputer - procesor z pamięcią wykonujący program - wbudowany w większe urządzenie. Taki system specjalizuje się w wąskim spektrum zastosowań, przeważnie w jednym zadaniu. Procesor i pamięć mogą występować jako osobne układy lub być zintegrowane w mikrokontrolerze (mały komputer zawierający procesor, pamięć oraz interfejsy wejścia/wyjścia w jednym układzie scalonym); korzystają też z urządzeń peryferyjnych - różnego rodzaju czujników (np. czujnik temperatury) albo urządzeń ułatwiających sterowanie czy komunikację, np. ekranu dotykowego. Urządzenia embedded mogą mieć proste oprogramowanie lub bardziej złożony system operacyjny, taki jak Linux. Projektanci embedded muszą się liczyć z ograniczonymi zasobami obliczeniowymi, nierzadko muszą także ograniczać zużycie prądu (np. gdy urządzenie jest zasilane z baterii). Jeśli urządzenie wymaga działania w czasie rzeczywistym (real time - gwarantowany czas wykonania operacji), niesie to ze sobą kolejne wyzwania.
IoT
Można powiedzieć, że urządzenia Internetu Rzeczy (Internet of Things) wprowadzają jedną, ale znaczącą zmianę w urządzeniach embedded – łączność sieciową. Dzięki niej urządzenia IoT mogą same lub z wykorzystaniem specjalnej bramki komunikować się ze światem zewnętrznym – chmurą, aplikacjami czy innymi urządzeniami. W tym celu mogą być wykorzystywane Wi‑Fi, Bluetooth, sieć komórkowa itd. Wymiana danych ze światem zewnętrznym nierzadko oznacza połączenie z chmurą, gdzie są one gromadzone i przetwarzane. Bardzo często z urządzeniami IoT możemy łączyć się przez aplikację mobilną lub webową. Można tymi urządzeniami zarządzać na dużą skalę lub aktualizować ich oprogramowanie bez konieczności interakcji z fizycznym urządzeniem. Przykładowo, smart lodówka ma możliwość automatycznego dodawania na listę produktów, które do niej wkładasz; listę możesz potem zobaczyć na swoim smartfonie. Będziesz otrzymywał powiadomienia, gdy dany produkt będzie zbliżał się do końca terminu ważności. Oprócz rzeczy związanych z żywnością możesz też np. sterować muzyką w domu z wyświetlacza lodówki.
Warto wspomnieć, że każde urządzenie IoT jest zbudowane na embedded - po prostu wprowadza tę jedną dodatkową warstwę łączności sieciowej wykorzystującą protokół IP (Internet Protocol).
Bezpieczeństwo
Zastanawiając się nad powyższą charakterystyką urządzeń embedded i IoT, można łatwo dostrzec, że wzbogacenie urządzenia o warstwę sieciową może dodać kolejne wektory ataku. Zagrożone jest już nie tylko pojedyncze urządzenie, lecz także cały ekosystem – protokoły sieciowe, backend i rozwiązania chmurowe, aplikacje webowe i mobilne. Skoro urządzenia IoT są osiągalne przez Internet, fizyczny dostęp do urządzenia nie jest potrzebny, by je zaatakować. Wymaga to poważnego podejścia do bezpieczeństwa i regularnych aktualizacji oprogramowania.

