Osnovi računarskih mreža 2 Bežične telekomunikacione mreže i IoT dr Marija Antić, marija.antic@rt-rk.uns.ac.rs Predavanje XII
Protokoli aplikativnog sloja IoT Osnovni zahtevi: Asinhronost Minimalna veličina paketa (mali višak protokola) Mala potrošnja energije Radi sa malim propusnim opsegom MQTT (Message Queuing Telemetry Transport) AMQP (Advanced Message Queuing Protocol) WAMP (Web Application Messaging Protocol) STOMP (Streaming Text Oriented Messaging Protocol) XMPP (Extensible Messaging and Presence Protocol) CoAP (Constrained Application Protocol)
MQTT (Message Queuing Telemetry Transport) Osnovnu specifikaciju održava OASIS konzorcijum, a usvojena je i kao IEEE standard Jednostavan protokol, baziran na sistemu pretplate i objave Prenosi kratke poruke, podržava nekoliko nivoa QoS (garantovanja isporuke) Protokol aplikativnog sloja, koristi TCP/IP stek
Mehanizam objave i pretplate (Pub/Sub) Koristi se tema (topic) kako bi se poruka isporučila zainteresovanim stranama Klijenti koji šalju objavljuju poruku na neku temu Klijenti koji primaju se pretplaćuju na temu Broker raspoređuje poruke između onih koji objavljuju i onih koji primaju poruke
Mehanizam objave i pretplate (Pub/Sub) Klijent je bilo koji uređaj koji koristi neku MQTT biblioteku i povezan je sa brokerom Broker prima sve poruke, filtrira ih prema temi i šalje klijentima koji su se pretplatili na temu Pošiljalac i primalac poruke ne moraju znati detalje jedan o drugom (adresu, port i sl.) Razlika u odnosu na tradicionalne redove: nije cilj da se posao podeli među pretplatnicima, već da svi zainteresovani mogu da prime istu poruku
Format MQTT poruka
Povezivanje
Objava
Pretplata
Brisanje pretplate
MQTT teme UTF-8 string, sa više nivoa, razdvojenih kosom crtom
Kvalitet servisa (QoS) Odnosi se na garanciju isporuke poruke QoS 0 – najviše jednom QoS 1 – barem jednom QoS 2 – tačno jednom
Prekid veze sa brokerom Broker može da zaključi da je došlo do prekida veze sa klijentom i da pošalje LWT (Last Will and Testament) poruku, ako je tako specificirano Pomaže da se neregularne diskonekcije u mreži ispravno obrade Na inicijativu klijenta šalje se DISCONNECT poruka
AMQP (Advanced Message Queuing Protocol) OASIS održava specifikaciju Kao IEEE standard postoji AMQP 1.0, ali se u praksi mnogo više primenjuje verzija 0.9.1, koja je značajno drugačija Objava i obrada poruke Podržava različite tipove rutiranja u centrali (exchange) Primena: Distribucija posla (skaliranje sistema) Pouzdanost (lokalni redovi osiguravaju isporuku poruke serveru)
Komponente AMQ modela Centrala (Exchange) Prima poruke od aplikacije koja ih generiše i rutira ih ka odgovarajućem redu Red poruka (Queue) Čuva poruke i isporučuje ih ka primaocu Veza reda i centrale (Binding) Uspostavlja odnos između reda i centrale, i određuje način rutiranja poruka Generator poruka (Publisher) Aplikacija koja generiše zadatke (taskove) Primalac poruka (Consumer) Aplikacija koja izvršava zadatke (taskove)
Direktno rutiranje (direct) Ključ (routing key) je atribut svake poruke koja dolazi do centrale Poruka ima i zaglavlje (key- value mapa) koje se može koristiti za prenos nekih informacija i druge šeme rutiranja
Razgranato rutiranje (fanout) Svi redovi primaju sve poruke koje dođu do centrale Omogućava da se ista poruka na različite načine obradi
Rutiranje prema temi (topic) Princip objave i pretplate Nivoi teme razdvojeni su tačkom * menja jedan nivo u temi # menja više nivoa
Rutiranje prema zaglavlju (header) Podaci iz zaglavlja poruke se koriste za rutirnje Ako je x-match=all, potrebno je da se poklope sva polja iz zaglavlja Ako je x-match=any, dovoljno je da se poklopi neko polje