Internet of Things (IoT)
Ako bismo hteli da definišemo pojam Internet of Things (IoT), mogli bismo da ga podvedemo pod sledeću definiciju: To je koncept međusobnog povezivanja fizičkih uređaja, smart uređaja i drugih uređaja sa ugrađenim elektronskim komponentama, softverom, senzorima, aktuatorima i mrežnom konekcijom, koji omogućavaju tim uređajima da sakupljaju i razmenjuju podatke.
IoT nam tako omogućava da našu svakodnevicu promenimo na način kako to da sada nije bilo moguće. Zapravo ova tehnologija je već veoma prisutna u svim bitnim segmentima naših života: u medicini, proizvodnji, automobilskoj industriji, prodaji i mnogim drugim industrijama. Zato se sa danas pravom smatra da je IoT temelj takozvane četvrte industrijske revolucije, poznatije pod nazivom Industrija 4.0.
S obzirom da je IoT praktično već prisutna u našim životima, smtaramo da je dobro da se malo bliže upoznamo sa ovom tehnologijom i njenom strukturom i arhitekturom.
Arhitektura IoT
Za početak ćemo ukratko predstaviti arhitekturu IoT sistema. Na slici ispod možete videti kako ona izgleda predstavljena jednostavnim dijagramom.
Najniži sloj odnosno stadijum IoT arhitekture čine senzori i aktuatori različitih vrsta i namena koji se nalaze ugrađeni u IoT uređajima. Senzori sakupljaju podatke koji se preko IoT geteway-a/framework-a i putem nekog komunikacionog protokola (ovde Wi-Fi) transportuju do clouda. Na cloudu su se najčešće nalazi skladište podataka (data centar) gde se ujedno vrši i analiza podataka i generiše neki proces njihove obrade/analize. tako obrađeni podaci se dalje transportuju do IoT aplikacije gde korisnici mogu da iskoriste obrađene podatke, koje mogu korisiti za svoje namene. U tom sloju arhitekture IoT jeste zapravo i ona konkretna vrednost koju korisnik dobija iz obrađenih podataka. Tu se na neki način materijalizuje sva vrednost IoT i dobija svoju najpraktičniju moguću primenu.
Za sve developere koji planiraju da se u nekom trenutku upuste u IoT tehnologijju, ovde ćemo predstaviti neke ključne koncepte koje je važno poznavati.
Ključni koncepti IoT
- Hardver
- Mrežno povezivanje i integracija sa cloud okruženjem
- Dizajniranje aplikacija
- Analiza podataka
- Bezbednost
- Veštačka inteligencija (AI).
Hardver
U centru IoT se nalazi hardverski uređaj. Tačnije, milijarde (trenutno u svetu negde između 50 i 100 milijardi) međusobno povezanih hardverskih uređaja opremljenih senzorima i aktuatorima koji reaguju na spoljašnji svet i kontrolišu ponašanje tih uređaja.
Pored toga što je neophodno da budu opremljeni nekim komunikacionom modulom, potrebno je da ti uređaji imaju i neke osnovne mogućnosti za procesiranje i skladištenje prikupljenih podataka. Za to su zaduženi mikro-kontroleri ugrađeni u njih ili neko integrisano kolo kao na primer System-on-a Chip (SoC).
Zato je važno da developeri koji razmišljaju o prelasku na razvoj IoT aplikacija, imaju i dovoljno inženjerskog znanja o elektronskim mikro-komponentama. Dizajniranje prototipa IoT uređaja podrazumeva korišćenje platformi kao što su Arduino ili jednostavnih računarskih rešenja kao što je Raspberry Pi.
Razvoj protototipa na pomenute načine zahteva poznavanje dizajniranja elektronskih kola i programiranje mikro-kontrolera. Ovi emebedovani programi su najčešće razvijani uz pomoć C++ ili C programskog jezika, iako su JavaScript i Python mnogo popularniji za razvoj IoT prototipa.
Mrežno povezivanje i integracija sa cloud okruženjem
Mrežna infrastruktura i način na koji je dizajnirana umnogome određuje i utiče na funkcionisanje IoT tehnologije. Ogromna količina podataka sa isto tako ogromnog broja uređaja se isporučuje preko različitih mrežnih uređaja i zbog toga je od ključne važnosti sam dizajn mrežne infrastrukture.
Da bi mogao da prihvati i distribuira sve prikupljene podatke, kao i da bi mogla da podrži komunikaciju između povezanih uređaja, mreža mora biti adekvatno dizajnirana. Poseban izazov predstavlja činjenica da svi ti uređaji treba da komuniciraju i sa servisima i aplikacijama koje se nalaze u cloudu.
S obzrom da su cloud i IoT tehnologija prilično različite, tim pre je važno da mrežna infrastruktura i njen dizajn omogućavaju pravilan protok podataka u realnom vremenu i integraciju servisa na relaciji IoT – cloud. Posebno iz razloga što je cloud infrastruktura u ovom slučaju odgovorna i za skladištenje, procesiranje i analizu podataka, kao i za implementaciju biznis logike IoT aplikacija.
Zato je važno da developeri koji se opredele za IoT tehnologiju imaju dovoljno znanja o mrežnim standardima, protokolima i tehnologijama. Pod ovim podrazumevamo Wi-Fi, Bluetooth, Zigbee, RFID, LPWAN (Low Power Wide-Area Network) i druge slične tehnologije koje imaju malu potrošnju pa su iz tog razloga prilagođenije industrijskim IoT aplikacijama.
Dizajniranje aplikacija
Veb i mobilne aplikacije obezbeđuju korisničke interfejse za interakciju i korišćenje podataka sa IoT uređaja. Pored toga IoT uređaji mogu imati svoje korisničke interfejse.
Interfejsi koji podržavaju tehnologije zasnovane na prepoznavanju glasa ili pokreta, naročito su pogodni za upotrebu u kućnim uređajima, pa je zbog toga i velika potreba za njihovim razvojem.
Veb i mobilne aplikacije se razvijaju u Javi, Swiftu i Node Js-u uključujući i druge popularne jezike za razvoj IoT aplikacija. Veštine za razvoj GPS aplikacija su posebno tražene, imajući u vidu da je veliki broj IoT aplikacija, kao što su aplikacije za smart satove ili čak i vozila, podrazumevaju i prepoznavanje geolokacije.
Sve navedeno je od izuzetnog značaja za razvoj IoT aplikacija, pa svaki developer koji se opredeli za taj posao mora imati u vidu da tako velike mogućnosti u IoT tehnologijama zahtevaju i dosta širokog znanja kako programskih jezika tako i dizajna samih aplikacija. Imajući u vidu velike mogućnosti IoT hardvera, slobodno možemo zaključiti da su mogućnosti IoT softvera identične ako ne i veće i tehnološki zahtevnije u odnosu na hardver.
Analiza podataka
Broj IoT uređaja koji emituju neke podatke se svakim danom sve više povećava. Tu dolazi do izražaja sam pojam Big Data. Ovde se pred developera postavlja ozbiljan zadatak da pravilno prihvati, smesti i pretražuje ovu ogromnu količinu različitih podataka koji dolaze sa različitih uređaja.
Imajući u vidu da dobar deo tih podataka dolazi sa IoT uređaja sa određenom latencijom, takođe je neophodno blagovremeno filtrirati sve manje relevantne podatke, kao bi se prioritet dao podacima koji su zaista bitni.
Neke od ključnih tehnologija i platformi za analizu podataka koje bi developer za IoT trebalo da poznaje uključuju Hadoop, Spark i NoSQL baze podataka.
Bezbednost
Bezbednost svakako spada u najvažnije aspekte svih modernih tehnologija, uključujući i IoT. Imajući u vidu ogroman broj IoT uređaja i njihov svakodnevni rast, bezbednost IoT sistema je u svakom smislu imperativ i ne može biti kompromisa po tom pitanju. Ovo sigurno sa sobom nosi i veliku odgovornost i u tehnološkom i u etičkom smislu.
Sigurnost prikupljenih i uskladištenih podataka, bezbednost komunikacije između različitih uređaja i između uređaja i clouda, integritet podataka i rezultata analize podataka, pred developera postavljaju veliki zadatak koji podrazumeva dobro poznavanje svih pomenutih aspekata bezbednosti IoT sistema. Imajući u vidu složenost samih sistema preventive i zaštite od svakog vida krađe podataka i identiteta, jasno je da za ovakav zadatak ne može biti odgovornost samo na developeru.
Bezbednost IoT sistema pre svega podrazumeva sinhronizovano delovanje različitih entiteta u okviru jedne organizacije i njihov zajednički rad na prevenciji i zaštiti od svih pomenutih zlupotreba.
Ono na šta sa tehničke strane treba obratiti pažnju jeste:
- end-point zaštita
- enkripcija podataka ukoliko i kada je to moguće
- odgovarajuće metode autentifikacije.
S obzirom da se milioni novih IoT uređaja pojave svakog dana, rizik od potencijalnog napada se višestruko uvećava. Već su zabeleženi slučajevi da se IoT uređaji koriste za DDoS napade, kao i za drugu vrstu sličnih napada, pa je prema tome izuzetno važno da u takvom okruženju opasnost od napada bude svedena na najmanju moguću meru.
Ne možemo ni zamisliti šta bi se recimo dogodilo da neko zlonameran preuzme kontrolu nad našim automobilom ili nekim kućnim uređajem, a već su zabeleženi slučajevi kada se to zaista i dogodilo. Zato je ovo jedan od najvećih izazova koji je postavlje pred IoT tehnologiju.
Veštačka inteligencija (AI)
Veštačka inteligencija (AI) je postala sastavni deo IoT tehnologije. Ovo je pre svega zbog superiorne sposobnosti veštačke inteligencije u obradi ogromnog broja podataka i analizi tih podataka. Primena boljih i prilagođenih algoritama je donela sa sobom i ogromne mogućnost kada je u pitanju obrada i analiza podataka prikupljenih sa IoT uređaja.
Inteligenti algoritmi za rad sa tom ogromnom količinom podataka podrazumevaju primenu kognitivnih tehnika izračunavanja koja je zasnovana na rudarenju podataka (data mining) modelovanju, statistici, mašinskom učenju i veštačkoj inteligenciji.
Radi se o konceptu koji podrazumeva primenu različitih tehnika koje u realnom vremenu mogu biti primenjene za prediktivnu analizu ili za nezavisno donošenje odluka na osnovu ulaznih podataka dobijenih od IoT uređaja, a takođe mogu biti primenjene na istorijske podatke, kako bi se identifikovali određeni obrasci ili nepravilnosti u samim podacima.
Na taj način veštačka inteligencija postaje primenjena tehnologija u reševanju mnogih zahtevnih zadataka iz svakodnevnog života, za koje druge tehnologije jednostavno nisu dorasle.
Da li ste do sada imali prilike da radite na nekom IoT projektu? Da li ste se već negde susreli sa IoT tehnologijom? Kakva su vam iskustva? Pišite nam u komentarima i podelite svoja iskustva sa nama i drugim čitaocima.
Bez komentara