Aleksandar Roksandić
Autor:
Aleksandar Roksandić

.Net guru

IoT – Interoperability of Things

Prošlo je već nekoliko godina otkad se IoT (Internet of Things) termin uvukao u lokalne kuloare IT zajednice, a u posljednje vrijeme i to nekako ispod radara, počeo se i pojavljivati uz razna nova, ali i postojeća tehnološka rješenja. Također, što je pohvalno, počeli su nicati domaći startupovi čije se ideje uklapaju u IoT koncept. Pretvaranje ideje o novom, povezanom uređaju u stvarni proizvod tek započinje priču o IoT, dok interoperabilnost, skalabilnost i sigurnost infrastrukture su nužni preduvjeti za realizaciju ovog koncepta, a pravu vrijednost će dati aplikacije koje mogu smisleno obrađivati tolike informacije i smisleno ih koristiti za upravljanje i interakciju sa stvarnim svijetom.

Kad nastane ovako općenit pojam, podosta vremena (barem u mjerilima IT-a) je potrebno da se kreira neki smisleni kontekst o tome što je zapravo IoT, a uz silna istraživanja i predviđanja koja IoT tržište vežu uz brojke od 50+ milijardi instaliranih uređaja do 2020, turbulentno stanje na raznim IT frontama od proizvođača SoC-ova i sklopovskih modula, do raznih cloud rješenja ne jenjava.

U svoj toj borbi za svoj dio kolača nastaju razna, djelomična ili kompletna, no međusobno nepovezana IoT rješenja, te je vrlo brzo postalo jasno da ovom ekosistemu kronično nedostaje standardizacije, kako u komunikacijskoj infrastrukturi po pitanju skalabilnosti i sigurnosti, tako i na aplikativnoj razini  - interoperabilnosti.

Kako je sve počelo?

Znate li koja je prva 'stvar' koja je bila spojena na Internet? 

                    

Ni manje, ni više nego toster! Naime, prema informacijama koje sam uspio iskopati na netu, svojeviti  John Romkey je 1990. godine stvorio 'internet' toster koji se mogao paliti ili gasiti preko TCP/IP mreže, a koristio je SNMP  MIB  Get, Set komande.

10 godina kasnije LG je najavio i prvi 'internet' frižider, a 2004. Internet of Things termin počinje se pojavljivati u raznim publikacijama. Prema istraživanju Cisco Internet Business Solutions Group (IBSG),  2009. je godina kada je IoT rođen jer je broj 'stvari' spojenih na internet premašio broj ljudi spojenih na internet (pretpostavljam da nisu brojali 'stvari' kojima se ljudi spajaju na internet), tek se u 2014. sa osnivanjem Open Interconnect Consortium (OIC) grupe počinje nazirati smjer u kojem se razvoj IoT-a kreće. Grupa od 80-ak industrijskih lidera kao što su Intel, Samsung, Broadcom, Cisco i General Electric krenuli su zajedno usmjereni prema standardizaciji i certifikaciji IoT uređaja i platformi.

Danas smo došli u vrijeme kada se manje priča, a puno više radi na IoT fronti, no nedostatak standardizacije koji osiguravaju inteoprabilnost između raznih tipova uređaja, pogotovo na aplikacijskoj razini još uvijek koči masovne isporuke takvih rješenja. Svi koji imalo prate ovo područje znaju da svaki veći IT igrač nudi svoje rješenje za pojedini segment IoT tržišta, gdje proizvođači tradicionalno fokusirani na hardware kao što su Texas Instruments, Intel, Atmel, u zadnje vrijeme i Samsung nude razvojne module zajedno s gotovim SDK bibliotekama za razvoj povezanih uređaja, dok kompanije orijentirane na software nude svoja cloud rješenja (Microsoft Azure IoT, Google Cloud Platform, …). Dodatno, popularizacija open-source hardware rješenja (Arduino) guraju razvoj malih pametnih uređaja izvan tradicionalnih R&D odjela i tako dodatno šire već šareni spektar platformi i tehnologija.

Interoperabilnost

Generalno govoreći, IoT se svodi na podizanje automatizacije na sasvim novu razinu, gdje se uz postojanje inteligentnih uređaja koji mogu međusobno komunicirati, određeni zadatci mogu obavljati bez, ili uz vrlo malo ljudske interakcije. Primjer takve automatizacije bi bio, da budilica automatski odgodi vrijeme buđenja na temelju informacije da je let odgođen, ili da ventil automatski zatvara dovod vode kada mjerač potrošnje vode u suradnji s smart home sustavom zaključi da je došlo do poplave.

Ključni sastojak za realizaciju ovakvih funkcionalnosti je interoperabilnost, i to ne onu na nivou komunikacijskih protokola, već na apstraktnom nivou 'pametnih' uređaja koja sadrži i semantiku. Na žalost, realnost je ipak  takva da je IoT ekosistem prilično fragmentiran što se manifestira na način:

  • uređaji i oprema različitih proizvođača teško se integrira
  • čvrsta veza između software/firmware rješenja s operativnim sustavima
  • nekonzistentni komunikacijski protokoli/standardi
  • otežana integracija starijih i novijih uređaja itog proizvođača

Veliki igrači još uvijek umjesto da rade na otvaranju infrastrukture horizontalno, grade vertikalne stogove vlastitih tehnologija i integriranih proizvoda, pokušavajući stvoriti kompetitivnu prednost pred drugim proizvođačima. Gradnja mostova (standandarada) inherentno umanjuje diferencijaciju koju pokušavaju stvoriti, pa je fragmentacija nešto što će sigurno potrajati još neko vrijeme.

IP for Smart Objects

Da se stvari ipak kreću u dobrom smjeru ukazuje veliki interes o ovoj temi, pa osim što su se počele održavati razne međunarodne konferencije na temu interoperabilnosti (EAI International Conference on Interoperability in IoT 2015), nastaju i razne ideje, open-source rješenja koje ovom problemu pristupaju na sličan način.

Jedno od zanimljivih rješenja nudi IPSO (IP for Smart Objects) Alliance. Ova neprofitna organizacija promovira set standardnih protokola na IP mrežama za uređaje ograničenih resursa, kakvi pametni senzori , tj. tipični IoT uređaji i jesu, pa je ova organizacija sredinom prošle godine izdala Smart Object Starter Pack; prvi draft dokument koji objedinjuje Constrained Application Protocol ( CoAP) zajedno sa OMA (Open Mobile Alliance) Lightweight M2M specifikacijom kako bi stvorila temelj za stvaranje otvorene mrežne infrastrukture. Detaljniji opis svih tih specifikacija preopširan je za ovaj članak, pa ukratko;

  • CoAP je specijalni mrežni protokol za uređaje ograničenih resursa; baterijski podržani uređaji, limitiranih performansi s tipičnim zahtjevima na mrežu do 1kb/s. Tipični primjer su s smart metering senzori i building automation uređaji
  • LWM2M polako postaje globalni standard za M2M device management i mrežne servise za komunikaciju između uređaja.

IPSO uzima LWM2M specifikaciju i nastavlja je dograđivati, fokusirajući se na definiranju standardiziranih 'pametnih' objekata (Smart Objects), te na njihovu interakciju sa stvarnim uređajima, pa se tako IPSO Smart Objects  baziraju na objektnom modelu gore spomenute specifikacije, gdje je trenutno definirano 18 različitih tipova objekata kao što su digitalni ulaz, digitalni izlaz, temperaturni senzor, senzor vlage, akcelerometar, senzor tlaka i dr. Svaki objekt sastoji se od niza resursa (informacijskih jedinki), pa tako IPSO Digital Input sadrži:

  • trenutno stanje ulaza (aktivan/neaktivan)
  • stanje brojača impulsa
  • polaritet ulaza
  • odabir brida okidanja brojača
  • tip aplikacije

Osnovna ideja jest da takvi apstraktni modeli mogu biti povezani s bilo kakvim fizičkim senzorom koji po apokacijskom tipu odgovara modelu, pa tako ovakav model digitalnog ulaza generalno može apstrahirati neki mjerač protoka vode.

Kako pričati s takvim objektom? Vrlo jednostavno! Naslanjajući se na OMA LWM2M model, SmartObject Starter Pack pruža Resource Oriented Arhitecture (ROA) za pristup registriranim uređajima na mreži, gdje adresna struktura ima shemu:

     protocol :// host_name: port / ObjectID / InstanceId/ ResourceId

Primjer kako se očitava trenutna temperatura s nekog senzora:

    coap :// localhost : 8080 / 3303/ 1 / 5700

  • 3303 je IPSO identifikator objekta (tip = termometar)
  • 1 je instanca objekta (konkretni senzor)
  • 5700 predstavlja resurs objekta tipa termometar, koji u ovom primjeru predstavlja mjerenu vrijednost ("Senzor Value")

Rad s resursima ovakvih objekata prilično je jednostavan i direktan jer se  koriste RESTfull principi (GET, PUT, POST, DELETE), što omogućuje da slobodno iskoristimo IPSO objektni model, dogradimo ga, te koristeći istu adresnu shemu i semantiku definiramo kompleksnije upite prema uređajima. 

Ako pogledamo cijeli model sa pripadajućim standardima po slojevima dobivamo ovakav model: 

                       

Iz ove perspektive, sustav počinje baratati s stvarnim procesnim modelima, te upravljački algoritmi postaju potpuno nesvjesni opreme, proizvođača i same komunikacijske infrastrukture, donekle rušeći barijere inkompatibilnosti: drugim riječima Internet of Things postaje Network of Everything

Kad malo sagledamo širu sliku, jasno je da neke industrijske grane moraju ostat zatvorene u svom ekosustavu, jer medicinski, ili industrijski sektor imaju strikino definirane upravljačke i nadzorne  parametre sa vrlo specifičnim zahtjevima na sigurnost, performanse i dostupnost sustava, ali čak i unutar ovakvih IoT vertikala, sličan objektni model i dalje ima smisla.

 

Što dalje?

Dok u SAD-u kreće u masovni deploy takozvane Machine Network, kojima će cijela zemlja biti pokrivena novom bežičnom infrastrukturom za milijarde IoT uređaja, kompanije poput Samsunga lansiraju SoC koji sadrži sve što jednom consumer IoT uređaju treba u pakiranju od 1x1cm, a tvrtke poput kanadskog Connio su razvili svoju cloud platformu za IoT, gdje se tu nalazimo mi?

Po broju domaćih startupova, proizvođača smart metering sustava i sistem integratora, nismo na lošem tragu, te je vjerojatno industrijska grana mjesto gdje će se generirat novi IoT momenti, još je uvijek u našoj okolini relativno mirno i malo interoperabilne turbulencije ne bi nam škodilo  :)

Popularne teme
.NET ABAP ADFS Agile Always On Anemic Model Angular Azure Backbone benchmark BI BI projekti Bootstrap building people business inteligence Business Intelligence Change Chrome CI CITCON Claims compile Continuous Delivery continuous deployment Continuous Integration CSR d3js data data visualization Data visualization alati DDD dekompozicija dependency injection dinamička forma dinamički parametri dinamički query distribuirani razvoj Domain-Driven design DOP društvena odgovornost edge-based video analytics Eliminating waste enkapsulacija enterprise razvoj softvera ERP ETL Excel FIORI Frontend game Geopackage GPKG GIS Git Groovy heat map HICCUPS Hichert HTML IBCS interoperability invision IoT IPSO izvještavanje java JavaFX Javascript Jazz Build Engine JBE Jenkins jquery jqueryui jsfiddle JVM Kaizen Kanban king KING ICT Kingovci Knockout kvaliteta lambde leadership Lean legacy code M language Management Maven Metodologija microservices Microsoft mobile Mobility mockups moć monday game NetWeaver network nodejs oblikovni obrasci OGC OKR open source optimizacija organizacija organizacijska struktura OutOfMemoryError outsourcing overengineering paginacija Performance performanse PERT PMI PMP; Agile; Project management; Scrum; KING ICT; razvoj; metodologija podatkovni skup pouzdanost Power BI Power Map Power Pivot Power Query Power View pretraga proces procjena Product Owner programming proizvod Project manager projektni plan radar Rational Team Concert razvoj tima refaktoriranje Release resize responsive charts REST retrospektiva Rich-Domain model Roko Roić rolling wave planning RTC SAP scale scatterplot chart Scrum scrum team scrum tim service boundaries single responsibility principle Single Sign-On smart metering SoapUI social responsibility softver Software software prototyping Software Testing Club Spring Boot SQL standard sustav videonadzora svg tdd Team team building team development Team Foundation Server tech tehnologije terminski plan Testing tim timesheet timovi Toggl.com touch transakcijski nadzor tražilica underengineering unit testing Uspjeh Visual Studio vodstvo vodstvo leadership moć društvena odgovornost DOP social responsibility CSR vođenje projekata WBS Web Zagreb STC

PRIJAVA NA NEWSLETTER

Najnovije novosti iz ICT svijeta