SlideShare una empresa de Scribd logo
1 de 24
Il protocollo MQTT e il
paradigma publish-subscribe.
Applicazioni
nell’Internet of Things.
Introduzione protocollo
MQTT
Agenda
Esempio di
applicazione
pratica
Il paradigma
publish-subscribe
Broker
Registra le
sottoscrizioni
Gestisce le
pubblicazioni
Il protocollo
MQTT
• Facile implementazione
• Diversi livelli di QoS
• Overhead minimo
• Data-agnostico
• Stateful
1999
MQ Telemetry Transport
Andy Stanford-Clark (IBM)
Arlen Nipper (Arcom)
MQTT v3.1
rilasciato sotto licenza
royalty-free
2010
MQTT v3.1.1
entra a far parte degli
standard OASIS
2014
2010 2016
Applicazioni nel
Internet of Things
Perché
Internet of
Things?
Kevin Ashton (1999)
ESP8266
• Progettazione sistema per
la termoregolazione
• Interruttore
programmabile
riscaldamento/nome_stanza/temperatura_percepita
Sensore
riscaldamento/nome_stanza/temperatura_percepita
Sensore
riscaldamento/nome_stanza/temperatura_percepita
Sensore
19°
riscaldamento/nome_stanza/temperatura_percepita
riscaldamento/nome_stanza/temperatura_scelta
Attuatore
riscaldamento/nome_stanza/temperatura_percepita
riscaldamento/nome_stanza/temperatura_scelta
Attuatore
riscaldamento/nome_stanza/temperatura_percepita
riscaldamento/nome_stanza/temperatura_scelta
Attuatore
riscaldamento/nome_stanza/temperatura_percepita
riscaldamento/nome_stanza/temperatura_scelta
Attuatore
19°
21°
CloudMQTT
Grazie per l’attenzione

Más contenido relacionado

La actualidad más candente

435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf
435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf
435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf
WifiCren
 
Tcp congestion control
Tcp congestion controlTcp congestion control
Tcp congestion control
Abdo sayed
 

La actualidad más candente (20)

MQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of ThingsMQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of Things
 
ODC010001 MPLS Basic Knowledge ISSUE1.5.ppt
ODC010001 MPLS Basic Knowledge ISSUE1.5.pptODC010001 MPLS Basic Knowledge ISSUE1.5.ppt
ODC010001 MPLS Basic Knowledge ISSUE1.5.ppt
 
MQTT IOT Protocol Introduction
MQTT IOT Protocol IntroductionMQTT IOT Protocol Introduction
MQTT IOT Protocol Introduction
 
BGP Loop Prevention
BGP Loop Prevention BGP Loop Prevention
BGP Loop Prevention
 
Mikrotik VRRP
Mikrotik VRRPMikrotik VRRP
Mikrotik VRRP
 
ss7 and M3UA
ss7 and M3UAss7 and M3UA
ss7 and M3UA
 
435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf
435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf
435680909-MTCNA-CFP-UPV-Modulo-1-Introduccion-a-Mikrotik-RouterOS.pdf
 
Java Card 2.x FAQ (2001)
Java Card 2.x FAQ (2001)Java Card 2.x FAQ (2001)
Java Card 2.x FAQ (2001)
 
How MQTT work ?
How MQTT work ?How MQTT work ?
How MQTT work ?
 
MQTT
MQTTMQTT
MQTT
 
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
Intro to Single / Two Rate Three Color Marker (srTCM / trTCM)
 
MQTT - The Internet of Things Protocol
MQTT - The Internet of Things ProtocolMQTT - The Internet of Things Protocol
MQTT - The Internet of Things Protocol
 
Tcp congestion control
Tcp congestion controlTcp congestion control
Tcp congestion control
 
20CS2008 Computer Networks
20CS2008 Computer Networks20CS2008 Computer Networks
20CS2008 Computer Networks
 
Mikrotik Load Balancing with PCC
Mikrotik Load Balancing with PCCMikrotik Load Balancing with PCC
Mikrotik Load Balancing with PCC
 
BGP filter with mikrotik
BGP filter with mikrotikBGP filter with mikrotik
BGP filter with mikrotik
 
MPLS on Router OS V7 - Part 2
MPLS on Router OS V7 - Part 2MPLS on Router OS V7 - Part 2
MPLS on Router OS V7 - Part 2
 
MQTT - Protocol for the Internet of Things
MQTT - Protocol for the Internet of ThingsMQTT - Protocol for the Internet of Things
MQTT - Protocol for the Internet of Things
 
DWDM Principle
 DWDM Principle  DWDM Principle
DWDM Principle
 
A very quick introduction to HFC, DOCSIS 3.0 and 3.1
A very quick introduction to HFC, DOCSIS 3.0 and 3.1A very quick introduction to HFC, DOCSIS 3.0 and 3.1
A very quick introduction to HFC, DOCSIS 3.0 and 3.1
 

Destacado

Destacado (7)

Internet of things
Internet of thingsInternet of things
Internet of things
 
Internet of Things: mercato, tecnologie, applicazioni e competenze
Internet of Things: mercato, tecnologie, applicazioni e competenzeInternet of Things: mercato, tecnologie, applicazioni e competenze
Internet of Things: mercato, tecnologie, applicazioni e competenze
 
Inside Google's Numbers in 2017
Inside Google's Numbers in 2017Inside Google's Numbers in 2017
Inside Google's Numbers in 2017
 
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
 
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017
 
The AI Rush
The AI RushThe AI Rush
The AI Rush
 
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

Similar a Il protocollo MQTT e il paradigma publish-subscribe. Applicazioni nell'Internet of Things.

Internet of Things con .Net Micro Framework: un mondo di device interconnessi
Internet of Things con .Net Micro Framework: un mondo di device interconnessiInternet of Things con .Net Micro Framework: un mondo di device interconnessi
Internet of Things con .Net Micro Framework: un mondo di device interconnessi
Whymca
 
5 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte15 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte1
Majong DevJfu
 
Presentazione csp-ambient intelligence
Presentazione csp-ambient intelligencePresentazione csp-ambient intelligence
Presentazione csp-ambient intelligence
CSP Scarl
 

Similar a Il protocollo MQTT e il paradigma publish-subscribe. Applicazioni nell'Internet of Things. (20)

8 Www2009 Parte1
8 Www2009 Parte18 Www2009 Parte1
8 Www2009 Parte1
 
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
 
Crouzet Automation - em4 Guida alla scelta
Crouzet Automation - em4 Guida alla sceltaCrouzet Automation - em4 Guida alla scelta
Crouzet Automation - em4 Guida alla scelta
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architetture
 
Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Analysis and Characterization of Devices and Protocol Stacks for the Internet...Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Analysis and Characterization of Devices and Protocol Stacks for the Internet...
 
An IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionAn IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotion
 
Bluetooth low energy & Lumia Sensor Core per Windows Phone 8.1
Bluetooth low energy & Lumia Sensor Core per Windows Phone 8.1Bluetooth low energy & Lumia Sensor Core per Windows Phone 8.1
Bluetooth low energy & Lumia Sensor Core per Windows Phone 8.1
 
TCP IP
TCP IPTCP IP
TCP IP
 
Servizi a Rete TOUR 2023 - 28 settembre | GORI + ACMO
Servizi a Rete TOUR 2023 - 28 settembre | GORI + ACMOServizi a Rete TOUR 2023 - 28 settembre | GORI + ACMO
Servizi a Rete TOUR 2023 - 28 settembre | GORI + ACMO
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2
 
SENECA Connectivity Day alla fiera SAVE 2015
SENECA Connectivity Day alla fiera SAVE 2015SENECA Connectivity Day alla fiera SAVE 2015
SENECA Connectivity Day alla fiera SAVE 2015
 
Internet of Things con .Net Micro Framework: un mondo di device interconnessi
Internet of Things con .Net Micro Framework: un mondo di device interconnessiInternet of Things con .Net Micro Framework: un mondo di device interconnessi
Internet of Things con .Net Micro Framework: un mondo di device interconnessi
 
Transmission Error Detector per Wi-Fi su kernel Linux 4.0
Transmission Error Detector per Wi-Fi su kernel Linux 4.0Transmission Error Detector per Wi-Fi su kernel Linux 4.0
Transmission Error Detector per Wi-Fi su kernel Linux 4.0
 
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Network
 
5 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte15 Protocolli Trasporto Parte1
5 Protocolli Trasporto Parte1
 
Brand Rex Seminar 2009 Installation It
Brand Rex Seminar 2009 Installation ItBrand Rex Seminar 2009 Installation It
Brand Rex Seminar 2009 Installation It
 
Presentazione csp-ambient intelligence
Presentazione csp-ambient intelligencePresentazione csp-ambient intelligence
Presentazione csp-ambient intelligence
 
Global Cloud Data Center
Global Cloud Data CenterGlobal Cloud Data Center
Global Cloud Data Center
 
IOT: protocolli long range
IOT: protocolli long rangeIOT: protocolli long range
IOT: protocolli long range
 
Monitoraggio in continuo delle perdite della rete acquedottistica di Trento
Monitoraggio in continuo delle perdite della rete acquedottistica di TrentoMonitoraggio in continuo delle perdite della rete acquedottistica di Trento
Monitoraggio in continuo delle perdite della rete acquedottistica di Trento
 

Il protocollo MQTT e il paradigma publish-subscribe. Applicazioni nell'Internet of Things.

Notas del editor

  1. Presento la mia Tesi di Laurea che ha come titolo «Il protocollo MQTT e il paradigma publiish-subscribe. Applicazioni nell’Internet of Things».
  2. Il paradigma publish-subscribe è un design pattern per la messaggistica, per lo scambio di contenuti ed informazioni in una rete. I nodi della rete possono essere publisher, quando creano e inviano i contenuti, e/o subscriber, quando si iscrivono ad un certo tipo di contenuti. Il paradigma prevede che quando un publisher pubblica un messaggio tutti i subscriber iscritti a quel tipo di messaggio lo ricevano.
  3. Un esempio ad alto livello del paradigma publish-subscribe è il social network Twitter. Un utente diventa subscriber quando segue un altro utente e publisher quando pubblica un tweet. È compito di Twitter ogni volta che viene pubblicato un tweet inoltrarlo e farlo apparire nelle timeline di tutti gli utenti che seguono l’autore del tweet.
  4. Il paradigma ha quindi bisogno di un tramite per permettere la trasmissione in multicast dal publisher ai subscriber. L’intermediario viene chiamato broker (o dispatcher) e ha il ruolo di registrare le sottoscrizioni dei vari client e di inoltrare ogni messaggio pubblicato da ogni client verso tutti i client iscritti a quel tipo di messaggi.
  5. Il protocollo MQTT è un protocollo del livello Applicativo dello standard ISO/OSI. Solitamente usato in cima allo stack TCP/IP ma implementabile su qualsiasi protocollo di rete e trasporto che forniscano una connessione bi-direzionale, ordinata e senza perdite di dati.
  6. Gli autori del protocollo hanno definito le caratteristiche in un manifesto ufficioso. Il protocollo deve essere implementabile anche in dispositivi con scarse risorse computazionali e che utilizzino canali di comunicazione instabili. QoS: garanzia di effettivo invio/ricezione dei messaggi. Data-agnostico: il payload può essere strutturato in qualsiasi modo a seconda dell’use case (file binari, testo, JSON, XML). Stateful: se il client lo richiede il broker salva il suo stato tra le varie sessioni (sottoscrizioni, messaggi con richiesta di garanzia di ricezione).
  7. Il protocollo è stato creato da Andy Stanford-Clark e Arlen Nipper per IBM nel 1999. La sua prima applicazione è stata il controllo di oleodotti e gasdotti tramite una rete di sensori connessi via satellite.
  8. Nel 2010 la versione 3.1 delle specifiche del protocollo è stata rilasciata sotto licenza royalty-free, rendendo quindi liberamente implementabile il protocollo.
  9. Dal rilascio con licenza royalty-free, nel 2010, la popolarità del protocollo è in continua crescita (come si può vedere dal grafico fornito da Google Trends per la chiave di ricerca «MQTT») anche grazie ai progetti Open Source dell’Eclipse Foundation PAHO e mosquitto. Paho è un insieme di librerie per l’implementazione di client MQTT in vari linguaggi di programmazione come C, Java, Python, C++, Go, .NET ed altri. Mosquitto è un broker open-source scritto in C disponibile per i maggiori sistemi operativi ma anche per dispositivi come il Raspberry Pi.
  10. Vediamo adesso come il protocollo può essere utilizzato nell’ambito dell’internet of Things per la realizzazione di progetti per l’automazione e la domotica utilizzando componenti a basso costo e librerie software open-source.
  11. Il termine Internet of Things è stato coniato da Kevin Ashton lo stesso anno in cui è nato MQTT, nel 1999. Molti analisti definiscono questi anni come l’era dell’Internet of Things (smartphone, macchine, frigoriferi, e applicazioni come le smart city, l’e-health, ecc…). I dispositivi connessi ad internet hanno superato in numero la popolazione mondiale ed è previsto che nel 2020 ci saranno più di 20 miliardi di dispositivi connessi alla rete globale.
  12. Per i miei progetti nell’«Internet delle cose» la cosa che ho scelto per la connettività è questo SoC (system-on-a-chip), l’ESP8266. È dotato di un processore che lavora a 80Mhz e di una manciata di kilobyte di memoria di sistema e da 1 a 16MB di memoria flash per la memorizzazione e l’esecuzione di semplici programmi. Inoltre implementa un modulo per la connessione alle reti Wi-Fi e alcuni pin GPIO (general purpose input/output) che permette di collegargli diversi sensori e attuatori.
  13. Nella tesi ho parlato di due progetti IoT che utilizzano l’ESP8266, un sistema per la termoregolazione nelle case e un’interruttore programmabile e comandabile da remoto.
  14. Il sistema di termoregolazione permette tramite una rete di sensori di temperatura e di attuatori che agiscono sulle valvole dei caloriferi (una coppia per ogni stanza) di gestire il riscaldamento di una abitazione.
  15. Il sensore di temperatura (in questo caso il TMP36, acquistabile per un paio di euro) comunica alla rete ad intervalli regolari la temperatura percepita in una stanza sul topic temperatura/nome_stanza/temperatura_percepita tramite MQTT. Queste sono due righe del codice del programma che viene eseguito dall’ESP8266.
  16. L’attuatore consiste in delle valvole che vengono applicate sui caloriferi e che si aprono quando vengono alimentate a 220V e si chiudono quando l’alimentazione viene interrotta. Tramite un relè è possibile programmarne il comportamento con un segnale a basso voltaggio come quello fornito dai pin GPIO dell’ESP8266.
  17. L’ESP8266 si iscrive ai topic per conoscere la temperatura attuale dell’ambiente e quella scelta dall’utente e se quest’ultima è maggiore della temperatura percepita apre la valvola attivando il relè.
  18. I sensori e gli attuatori si connettono al broker (rappresentato da un’istanza di mosquitto eseguita in locale, ad esempio su un Raspberry Pi) utilizzando un porting open source della libreria PAHO per il linguaggio C modificata per essere eseguita sull’ESP8266. Tramite la funzione di bridging offerta da mosquitto è possibile collegare il broker locale ad un broker remoto per permettere l’interazione con i dispositivi dentro casa anche senza essere connessi alla rete locale. Mentre in locale è possibile utilizzare MQTT su TCP senza criptazione della comunicazione, è possibile impostare per il bridge una connessione sicura, criptata end-to-end, utilizzando il protocollo TLS/SSL.
  19. Le foto mostrano altre esempi di implementazione del protocollo MQTT per usi nell’IoT per connettere alla rete un sensore di pioggia, un accellerometro e un interruttore.