Fakultet organizacionih nauka, Univerzitet u Beogradu

Katedra za elektronsko poslovanje

PROTOKOLI APLIKATIVNOG SLOJA INTERNETA INTELIGENTNIH UREĐAJA

Aplikativni sloj nalazi se na vrhu IoT protokol steka i odgovoran je za isporuku aplikacija korisnicima. Izbor protokola na aplikativnom sloju nije nimalo lak, jer brzina promena i potrebe korisnika vode ka definisanju novih ciljeva i razvoju savršenijih i usavršavanju postojećih IoT aplikacija.

Pri izboru protokola u aplikativnom sloju uzima se u obzir veći broj zahteva, a osnovni se odnose na:

  • mehanizam razmene poruka,
  • bezbednost podataka,
  • interoperabilnost uređaja i
  • skalabilnost IoT sistema.

Najznačajniji protokoli aplikativnog sloja IoT su: HTTP, COAP, Web socket,MQTT, XMPP, DDS i AMQ.

HTTP (eng. Hypertext Transfer Protocol) je protokol aplikacionog sloja koji se koristi za komunikaciju i razmenu podataka na vebu. Najviše se koristi verzija HTTP1.1 , a aktuelna verzija je HTTP/2 iz 2015.

1
Slika1:HTTP komunikacija

Funkcioniše po metodu zahtev-odgovor i omogućuje razmenu hiperteksta.Klijent šalje HTTP zahtev poruku, a server odgovara HTTP odgovorom. HTTP je pull protokol, gde klijent povlači informacije sa servera, umesto da server gura(push) informaciju ka klijentu.

Osnovni elementi HTTP zahteva su: linija zahteva, zaglavlje, prazan red i poruka.
HTTP definiše osam metoda kojima se realizuju određene akcije: HEAD,GET,POST,PUT,DELETE,TRACE,OPTIONS,CONNECT.

HTTP je protokol bez stanja (eng. stateless protocol), jer pošiljalac i primalac ne znaju šta se dešavalo u prethodnim zahtevima, i ne garantuje dostavljanje poruke.

REST predstavlja model arhitekture koji se zasniva na postojećim široko prihvaćenim i korišćenim tehnologijama i protokolima. Glavna implementacija ove arhitekture je HTTP protokol u kombinaciji sa URI (Uniform Resource Identifier,drugim rečima, vebom). Sadrži pet obaveznih i jedno opciono ograničenje:

  • Uniformni interfejs
  • Klijent-server
  • Bez stanja
  • Mogućnost keširanja
  • Slojevit sistem
  • Kôd na upit (opciono)
    2
    Slika2: REST arhitektura

                      

CoAP protokol predstavlja realizaciju REST arhitekture u formi pogodnoj za Constrained uređaje i mreže (eng. Constrained network). Constrained mreže imaju ograničenja koja se odnose na brzinu prenosa, visok nivo gubitaka paketa,varijabilne veličine paketa, nedostatak naprednih servisa kao što je IP multicast,ograničenu veličinu paketa, ograničenu dostupnost uređaja u mreži itd.

Primer je 6LoWPAN mreža.

Cilj CoAP protokola jest da smanji overhead saobraćaj u mreži i time ograniči potrebu za fragmentacijom u mrežnom sloju.

CoAP zahtev sličan je HTTP zahtevu: klijent ga šalje serveru da izvrši akciju na resursu, nakon obavljenog zadatka server vraća odgovor s kôdom odgovora.

Model razmene poruka u CoAP-u zasnovan je na UDP protokolu: svaka sadrži svoj MesaggeID koji se koristi za otkrivanje duplikata.

Veb soket (eng. web socket) je dvosmerni komunikacioni protokol, nastao u okviru HTML 5 specifikacije , koji omogućuje full-duplex komunikaciju preko jedne TCP konekcije između klijenta i servera.

Kada se uspostavi konekcija, poruke idu od servera ka brauzeru. Komunikacija se pojednostavljuje jer ne postoji potreba za kompleksnom dvosmernom razmenom, gde klijent povlači podatke sa servera.

Veb soket je definisan za aplikacije koje se koriste preko veb brauzera. Namenjen je za komunikaciju u realnom vremenu, pouzdan je i minimizuje overhead, pa se može koristiti kao efikasan sistem za razmenu poruka između servera i IoT uređaja.

MQTT (eng. Message Queue Telemetry Transport) je publish-subscribe protokol, dizajniran za M2M komunikacije . Koristi se kao otvoreni standard sa osnovnim ciljem da se omogući efikasna razmena podataka i smanji potrošnja energije.

Zasnovan je na klijent-server modelu razmene poruka, gde je senzor klijent povezan sa serverom, tzv. brokerom, preko TCP veze. Centralnu ulogu u komunikaciji ima MQTT broker, zadužen za upravljanje i raspoređivanje svih poruka između pošiljaoca i odgovarajućih primalaca.

Glavna prednost MQTT protokola u odnosu na HTTP jeste što klijent ne mora da zahteva informacije koje su mu potrebne, nego ih broker gura ka klijentu u slučaju promena u podacima. MQTT omogućuje razmenu poruka u realnom vremenu,s minimalnom potrošnjom energije.

3
Slika3: XMPP razmena poruka

XMPP (eng. Extensible Messaging and Presence Protocol) je protokol namenjen razmeni tekstualnih poruka , zasnovan na zahtev-odgovor paradigmi, koji koristi XML format i radi preko TCP veze. Arhitektura XMPP protokola podrazumeva da dva klijenta komuniciraju jedan s drugim preko servera zaduženog za rutiranje poruka.

DDS (eng. Data-Distribution Service for Real-Time Systems) je prvi otvoreni standard u srednjem sloju koji se zasniva na publish-subscribe modelu. Za razliku od većine drugih protokola orijentisanih ka porukama, on je orijentisan ka podacima. U protokolima zasnovanim na podacima fokus je na podacima definisanim od strane korisnika. Jedinica razmene jeste vrednost podatka.
Protokoli zasnovani na podacima jednostavniji su za održavanje i proširivanje, omogućuju korisnicima da se fokusiraju na razvoj poslovne logike, a ne na samo pisanje poruka.

DDS protokol zasniva se na postojanju virtuelnog globalnog prostora podataka (eng. global data space) u koji „proizvođači” upisuju, a klijenti odatle čitaju podatke. Proizvođači i klijenti povezani su magistralom podataka (eng.data bus).DDS može istovremeno da dostavi milione poruka u sekundi velikom broju primalaca, a omogućuje visok nivo QoS kontrole, multicast, sveprisutnu redundantnost i pouzdanost.

AMQP  (eng. Advanced Message Queuing Protocol) je otvoreni standard aplikacionog sloja za razmenu poruka u poslovnom kontekstu [12]. Ključne funkcionalnosti su mu razmena poruka, redovi, rutiranje (point-to-point i publish-subscribe), pouzdanost i sigurnost.

Komponenta za razmenu i redovi nalaze se u brokeru.Osnovna prednost brokera ogleda se u visokom stepenu fleksibilnosti kada su u pitanju paterni za dostavljanje poruka. Komunikacija komponenata u transportnom sloju odvija se preko TCP protokola, što omogućuje pouzdanu point-to-point konekciju.
AMQP se u IoT kontekstu koristiti za razmenu transakcionih poruka između servera. U IoT kontekstu, ovaj protokol pogodan je za kontrolu ili za funkcionalnosti zasnovane na analizama podataka sa servera.

LWM2M (eng. Lightweight Machine to Machine) protokol definiše niz standardnih interfejsa i modela podataka da bi se obezbedila interoperabilnost između CoAP uređaja i lokalnih ili udaljenih servisa.
LWM2M definiše jednostavan objektni model koristeći CoAP REST API arhitekturu za upravljanje uređajima korišćenjem REST objekata i sistemske funkcionalnosti, uključujući kontrolu asinhronih notifikacija.