SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
MQTT: il protocollo che rende possibile

l’Internet Of Things
Davide Pozza – Omnys (www.omnys.com)
davide.pozza@omnys.com
http://it.linkedin.com/in/davidepozza
1
/42
Davide Pozza
▪ Mi occupo di progettazione e delivery di infrastrutture software
“mission critical”

▪ Negli anni ho avuto modo di affrontare tematiche funzionali e
tecnologiche relative agli ambiti più svariati tra cui:
▪ Internet banking
▪ Ecommerce ed integrazione con sistemi di legacy
▪ ICT e telecomunicazioni
▪ Interazione con dispositivi “smart”

▪ Sono socio di Omnys, software house presente sul mercato dal
09/09/1999 che si occupa principalmente di:
▪ System Integration e Architetture Cloud
▪ Piattaforme web (ecommerce, turismo, infomobilità, editoria digitale)
▪ APP mobile
▪ Internet of Things (wearable, medical, home automation)
2
/42
The Internet of Things
3
▪ Smartphone & wearable
▪ Controllo veicoli, persone,
animali, …
▪ Dispositivi embedded
▪ Automazione industriale
▪ Monitoraggio consumi
energetici
▪ Impianti di sicurezza e
sorveglianza
▪ Smart Building/Home & City
▪ Telemedicina e Salute
▪ Everyday things…
/42
Verso l’interconnessione totale
“The Web is becoming more and more pervasive as an applications
platform, and effective standards are crucial for reducing the costs of
deploying applications across a wide range of devices and
environments, whether in the office, at home or on the move.
The Ubiquitous Web will provide people with access whenever and
wherever they find themselves, with applications that dynamically
adapt to the user's needs, device capabilities and environmental
conditions.”
Philipp Hoschka,
Ubiquitous Web Domain Leader
Ubiquitous
Web
Web 1.0 Web 2.0 Social Web
Mobile
Web
4
/42
Una crescita esponenziale
A fine del 2014:
9 miliardi di dispositivi connessi
Entro il 2020:
• 57.000/sec

nuovi dispositivi che
si connetteranno

• 212 miliardi

di dispositivi in grado
di connettersi

• 30 miliardi

di dispositivi
connessi
5
/42
Internet of Things: il problema
Persone +
Oggetti +
Sensori +
Dispositivi =
tantissimi endpoint 

che emettono segnali
6
/42
Internet of Things: una nuova sfida
▪ Richiede un modello di
comunicazione in real-time ed
event-driven
▪ Le informazioni devono poter
essere inviate in modalità one-to-
many
▪ Capacità di recepire (“listening”)
un evento non appena si verifica
▪ Necessità di ridurre al massimo la
dimensione dei pacchetti dati
scambiati
▪ Necessità di gestire l’invio di
messaggi anche su reti degradate
(reliability)
7
/42
L’HTTP è adatto per gestire SEGNALI?
▪ E’ “document-centric” (XML, ecc) e basato sul paradigma request/
reply
▪ Ha un elevato overhead di rete
▪ E’ estremamente verboso: PUT/POST/GET/DELETE prevedono
comunque l’invio di molti bytes e non sono sempre la scelta migliore
nello sviluppo di applicazioni dove la comunicazione deve essere
“ultralight”
▪ Non prevede nessuna garanzia built-in sulla comunicazione
8
/42
Internet of Things: non è il WEB!
▪ I firmware dei dispositivi
sono limitati (potenza,
memoria, batteria)

▪ Possono essere necessari
anche migliaia di dispositivi
per monitorare un sistema
industriale (es. gasdotti,
piattaforme petrolifere,…)
▪ La connettività può essere
molto degradata e/o
estremamente costosa
(GPRS, Satellite)
9
/42
L’alternativa
MQTT = MQ TELEMETRY
TRANSPORT
“A light weight event and message oriented 

protocol allowing devices to asynchronously 

communicate efficiently across constrained 

networks to remote systems”
10
/42
MQTT: i principali benefici
▪ Rende semplice la connessione tra il
mondo degli oggetti e il mondo dell’ IT
evitando il “polling” dei sensori

▪ Consente la trasmissione di dati su reti
soggette a frequenti interruzioni

▪ Fornisce il massimo disaccoppiamento
possibile garantendo comunque la
trasmissione/ricezione dei dati (QoS)

▪ Riesce a gestire la comunicazione
con un elevato numero di dispositivi
11
/42
Il protocollo MQTT in SINTESI
• Semplice: solo 3 funzioni:
– connect + publish + subscribe (un client può funzionare su un controller a 8 bit e
256kb di RAM)
• Affidabile: QoS per supportare reti degradate

• Leggero: overhead minimo ed estrema efficenza:
– no envelope, o headers; pacchetti anche da 2 bytes
• Aperto: standard definito e aperto (royalty-free)

12
/42
Il trend di interesse per l’MQTT
Google Trends evidenzia un interesse in forte crescita in relazione al
termine “MQTT”
13
/42
Ambito dell’MQTT
Intelligence & Analytics
Traditional Backend
Systems
BigData
Interconnection
Mobile & Web Embedded Controllers, Sensors, Actuators, …
Data/Alert
Respond
Control
Sense
14
/42
Il modello Publish/Subscribe
▪ Il PUBLISHER invia (publish) un
messaggio su un TOPIC (subject) 

▪ Il SUBSCRIBER è un consumer
che si mette in ascolto (subscribe)
sui messaggi pubblicati su un
TOPIC specifico
▪ Il BROKER (server di
smistamento messaggi) si occupa
di effettuare il matching tra
SUBSCRIBER e PUBLISHER
con il conseguente dispatching
del messaggio.
Subscriber
Broker
Publisher
Topic
Publisher
Topic Subscriber
Subscriber
15
/42
Comunicazione asincrona e bidirezionale
MQTT
Broker
1. CONNECT to MQTT broker
2. PUBLISH on:

<house_id>/s/energyConsumption

<house_id>/s/solarEnergy
3. SUBSCRIBE to:

<house_id>/thermostat/setTemp
1. CONNECT to MQTT broker
2. SUBSCRIBE on:

<house_id>/s/*
3. PUBLISH to:

<house_id>/thermostat/setTemp
16
/42
Garanzia nella comunicazione
▪ Keep-Alive message (PINGREQ, PINGRESP):
– il Broker riesce ad identificare una disconnessione non
esplicita del client
▪ Will message:
– viene impostato nel messaggio di CONNECT con topic, QoS
e retain. In caso di disconnessione inaspettata il messaggio
“Will” viene mandato ai subscribers registrati
▪ Retain message:
– un messaggio pubblicato su un topic viene mantenuto sul
broker. Un successivo subscriber che si connette sullo
stesso topic riceve il messaggio (last known good message)
▪ Persistent Session:
– dopo la disconnessione del client, tutte le sottoscrizioni
vengono mantenute nel broker e recuperate alla
connessione successiva
17
/42
Cos’è il livello di qualità del servizio (QoS) ?
E’ un “agreement” tra il mittente ed il destinatario di un messaggio in
relazione alla garanzia di “delivery” del messaggio stesso.
Il QoS è una delle più potenti caratteristiche del protocollo MQTT in quanto
rende molto più semplice lo scambio messaggi su reti degradate attraverso la
gestione automatica della ri-trasmissione.
Ci sono tre livelli disponibili:
▪ QoS 0 – at most once: garantisce il “best effort delivery”; è detto anche
“fire & forget” e non contempla la conferma di ricezione che quindi è la
medesima del trasporto TCP/IP
▪ QoS 1 – at least once: garantisce la consegna del messaggio almeno una
volta verso un ricevente; il messaggio però può essere ricevuto anche più
volte
▪ QoS 2 - exactly once: garantisce la consegna del messaggio una ed una
sola volta verso un ricevente
18
/42
Come funziona il QoS
BrokerPublisher Subscriber
BrokerPublisher Subscriber
PUBLISH (QoS = 0)
PUBLISH
Delete message
Store message
PUBLISH (QoS = 1)
Store message
Delete message
Delete message
PUBLISH
BrokerPublisher Subscriber
Store message
PUBLISH (QoS = 2)
Store message
Delete message
Delete message
PUBLISH
QoS 0: At most once (fire & forget)
QoS 1: At least once QoS 2: Exactly once
PUBREC
PUBREL
PUBCOMP
PUBACK
19
/42
Sicurezza nella comunicazione
3 livelli di sicurezza:
▪ PROTOCOLLO
▪ Username/Password in CONNECT
▪ Possibilità di criptare il Payload
▪ TRASPORTO
▪ MQTT over TLS (v1.2)
▪ Autenticazione del client con certificato
▪ BROKER
▪ Gestione dei permessi su Publish/Subscribe e Topic
▪ Possibilità di integrare altri sistemi di autenticazione/autorizzazione (es. LDAP, OAuth
2.0)
20
/42
MQTT vs HTTP (long polling): prestazioni
Test di spedizione (1024 messaggi con payload da 1 byte)
http://stephendnicholas.com/archives/1217
21
/42
MQTT vs HTTP: la struttura del messaggio
MQTT:
dimensione header
2 byte
HTTP:
dimensione header

REQ/RES > 300 byte
22
GET /service
Host: www.endpointm2m.com
Accept:text/xml
Accept-Encoding:gzip, deflate, sdch
Connection:keep-alive
HTTP/1.1 200 OK
Connection:Keep-Alive
Content-Length:33452
Content-Encoding:gzip
Content-Type:text/xml
Keep-Alive:timeout=15, max=100
Last-Modified:Fri, 17 May 2013 14:50:39 GMT
Connection:close
/42
MQTT-SN
▪ E’ un’evoluzione dello standard MQTT pensata per i dispositivi
embedded (SN = Sensor Networks)
▪ Non richiede lo stack TCP/IP: può essere utilizzato su seriale, UDP,
ZigBee, RF, …
23
/42
MQTT … in pratica
24
/42
I principali Broker MQTT
MOSQUITTO
25
/42
Soluzioni MQTT in Cloud
▪ Pagamento a consumo di risorse (“pay per
usage”)
▪ Opzione “free tier”: sotto soglie ben definite
il servizio è gratuito
▪ Soluzioni IaaS / PaaS
▪ Elevati QoS (99.9%)
▪ Elevata scalabilità
▪ Tempi di startup estremamente ridotti
26
/42
IBM Bluemix
▪ Sul fronte dei servizi Cloud MQTT/IoT sono i primi arrivati (GIU-14),
nonché i principali promotori e ideatori dello standard MQTT
▪ Fornisce un soluzioni “full stack” (boilerplate), tra cui quella dedicata
esclusivamente all’ IoT e basata su MQTT
▪ Basata su CloudFoundry con deploy in 3 step:
▪ Selezione di un Runtime (Node, Java, PHP, …)
▪ Selezione dei Servizi
▪ Installazione dell’applicazione
▪ Freemium plan:
▪ 20 dispositivi
▪ 100MB di traffico dati al mese
▪ 1GB di storage
27
/42
IBM Bluemix
28
/42
Amazon AWS IoT: overview
▪ Offre la più elevata quantità di servizi Cloud dislocati
in ben 11 regioni geografiche e vanta la miglior
offerta in termini di scalabilità e computazionalità
▪ AWS, nato nel 2006, solo pochi giorni fa (OTT-15)
ha lanciato la soluzione “AWS IoT” (attualmente in
“Beta”) che sfrutta il protocollo MQTT
▪ Free tier of 250K messages (IN/OUT) per month for
12 months. Therefore 5$ per million messages
29
/42
Amazon AWS IoT: caratteristiche
30
/42
Microsoft Azure IoT Suite
▪ La Suite IoT è stata lanciata molto recentemente (MAR-15)
▪ Microsoft ha dichiarato di puntare molto sull’IoT (Windows 10 for
Raspberry Pi)
▪ L’approccio è quello di mettere a disposizione “finished
applications to speed development of common scenarios”
▪ E’ possibile utilizzare il protocollo MQTT solo come layer
aggiuntivo in quanto non è incluso come soluzione nel “core” della
Suite.
31
/42
Eurotech
▪ La suite EDC (Everywhere Device Cloud - iPaaS)
fornisce una soluzione completa (HW & SW) che offre
la connettività sicura e scalabile basata su MQTT
▪ La suite ESF (Everywhere Software Platform) è un
framework finalizzato a rendere il più semplice
possibile l’integrazione tra i dispositivi ed il cloud (EDC)
▪ Utilizza un’enhanced version del protocollo MQTT
che ad esempio può gestire la “birth date” del
dispositivo
▪ Modello di pricing basato su numero di dispositivi e/o
numero di messaggi scambiati
▪ La suite può funzionare su AWS, Azure o anche in
modalità standalone
32
/42
Eurotech EDC/ESF
33
/42
Client di riferimento MQTT
Disponibile per i seguenti linguaggi:
▪ C++
▪ C for embedded
▪ Go
▪ Java
▪ JavaScript
▪ Lua
▪ .Net
▪ Objective-C
▪ Python
Altri: 

https://github.com/mqtt/mqtt.github.io/wiki/libraries
• Client di riferimento per
l’ecosistema MQTT
• Disponibile open-source
34
/42
Alcuni casi d’uso
35
/42
Monitoraggio oleodotti e piattaforme
36
/42
Facebook Messenger
▪ More than 850M Users
▪ Chat application
▪ Improved Battery
▪ Lower latency
▪ Less bandwidth
https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920
“By maintaining an MQTT connection and routing messages through our
chat pipeline, we were able to often achieve phone-to-phone delivery
in the hundreds of milliseconds, rather than multiple seconds.”
37
/42
Una “smart home” open source
▪ Mosquitto MQTT + openHab su Raspberry Pi
▪ Arduino per la gestione dei sensori
▪ Monitoraggio e controllo remoto da tablet/
smartphone con app openHab
http://www.instructables.com/id/Uber-Home-Automation-w-Arduino-Pi
38
/42
Infomobilità e autotrasporti
▪ Ogni mezzo dispone di un device che raccoglie e invia i dati su posizione,
velocità e consumi
▪ I dati raccolti vengono inviati “dove serve”
▪ Le informazioni sono analizzate e le decisioni sono prese in tempo reale da
un singolo backend
39
/42
Salute e medicina
▪ Ogni dispenser comunica con il server centrale in tempo reale inviando dati
su mancate/errate assunzioni
▪ Le informazioni relative ad eventi di allarme scatenano delle azioni
immediate (notifica telefonica, SMS, ecc)
1.	il	paziente	non	

assume	il	farmaco
2.	Il	dispositivo	invia	allarme	
al	server	centrale	(MQTT	over	GPRS)
3.	Il	server	centrale	(broker)	
invia	notifica	istantanea	al	
medico
4.	Il	medico	contatta	
	il	paziente
40
/42
Credits
▪ MQTT official web site : http://mqtt.org
▪ Mosquitto : http://mosquitto.org / https://www.eclipse.org/mosquitto
▪ Mosca: https://github.com/mcollina/mosca
▪ HiveMQ : http://www.hivemq.com
▪ M2Mqtt C# Client : http://m2mqtt.codeplex.com
▪ Eclipse Paho project : http://www.eclipse.org/paho/
▪ MQTT-SN: http://mqtt.org/2013/12/mqtt-for-sensor-networks-mqtt-sn
▪ Amazon AWS IoT: https://aws.amazon.com/iot/
▪ IBM Bluemix IoT: https://www.ibm.com/cloud-computing/bluemix/solutions/iot/
▪ Microsof Azure IoT Suite: http://www.microsoft.com/en-us/server-cloud/internet-of-things/
▪ Eurotech: http://www.eurotech.com/
41
/42
Grazie per l’attenzione!
DOMANDE ?
42
OMNYS	-	Information	Technology	
www.omnys.com	
@SMAU	Milano	2015:	PAD.	1	-	STAND	E11

Contenu connexe

Tendances

Wireshark Inroduction Li In
Wireshark Inroduction  Li InWireshark Inroduction  Li In
Wireshark Inroduction Li Inmhaviv
 
4 protocole de redondance(hsrp-vrrp-glbp)
4 protocole de redondance(hsrp-vrrp-glbp)4 protocole de redondance(hsrp-vrrp-glbp)
4 protocole de redondance(hsrp-vrrp-glbp)medalaa
 
Travaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxTravaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxInes Kechiche
 
CentOS Linux Server Hardening
CentOS Linux Server HardeningCentOS Linux Server Hardening
CentOS Linux Server HardeningMyOwn Telco
 
Cours Réseaux et Protocoles_Part1.pptx
Cours Réseaux et Protocoles_Part1.pptxCours Réseaux et Protocoles_Part1.pptx
Cours Réseaux et Protocoles_Part1.pptxNissrineNiss1
 
Systeme distribue
Systeme distribueSysteme distribue
Systeme distribueAfaf MATOUG
 
Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngMax Benana
 
Adressage ip stl-cours
Adressage ip stl-coursAdressage ip stl-cours
Adressage ip stl-courssaqrjareh
 
All About Snort
All About SnortAll About Snort
All About Snort28pranjal
 
Système de supervision des réseaux de capteurs sans fil
Système de supervision des réseaux de capteurs sans filSystème de supervision des réseaux de capteurs sans fil
Système de supervision des réseaux de capteurs sans filSamia HJ
 
cours le routage statique (ipv4 et ipv6)
cours le routage statique (ipv4 et ipv6)cours le routage statique (ipv4 et ipv6)
cours le routage statique (ipv4 et ipv6)EL AMRI El Hassan
 
Cours cryptographie Master 1
Cours cryptographie Master 1Cours cryptographie Master 1
Cours cryptographie Master 1Papis NIANG
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 

Tendances (20)

Wireshark Inroduction Li In
Wireshark Inroduction  Li InWireshark Inroduction  Li In
Wireshark Inroduction Li In
 
4 protocole de redondance(hsrp-vrrp-glbp)
4 protocole de redondance(hsrp-vrrp-glbp)4 protocole de redondance(hsrp-vrrp-glbp)
4 protocole de redondance(hsrp-vrrp-glbp)
 
Travaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxTravaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseaux
 
CentOS Linux Server Hardening
CentOS Linux Server HardeningCentOS Linux Server Hardening
CentOS Linux Server Hardening
 
Routage
RoutageRoutage
Routage
 
MPLS VPN
MPLS VPNMPLS VPN
MPLS VPN
 
Cours Réseaux et Protocoles_Part1.pptx
Cours Réseaux et Protocoles_Part1.pptxCours Réseaux et Protocoles_Part1.pptx
Cours Réseaux et Protocoles_Part1.pptx
 
Systeme distribue
Systeme distribueSysteme distribue
Systeme distribue
 
Tp 1
Tp 1Tp 1
Tp 1
 
Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPng
 
Active directory
Active directoryActive directory
Active directory
 
Adressage ip stl-cours
Adressage ip stl-coursAdressage ip stl-cours
Adressage ip stl-cours
 
All About Snort
All About SnortAll About Snort
All About Snort
 
Day 3.1 basic routing
Day 3.1 basic routing Day 3.1 basic routing
Day 3.1 basic routing
 
Routage ospf
Routage ospfRoutage ospf
Routage ospf
 
Système de supervision des réseaux de capteurs sans fil
Système de supervision des réseaux de capteurs sans filSystème de supervision des réseaux de capteurs sans fil
Système de supervision des réseaux de capteurs sans fil
 
Routage rip
Routage ripRoutage rip
Routage rip
 
cours le routage statique (ipv4 et ipv6)
cours le routage statique (ipv4 et ipv6)cours le routage statique (ipv4 et ipv6)
cours le routage statique (ipv4 et ipv6)
 
Cours cryptographie Master 1
Cours cryptographie Master 1Cours cryptographie Master 1
Cours cryptographie Master 1
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 

En vedette

Internet of things
Internet of thingsInternet of things
Internet of thingsSara Scotti
 
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 competenzeArmando Martin
 
Inside Google's Numbers in 2017
Inside Google's Numbers in 2017Inside Google's Numbers in 2017
Inside Google's Numbers in 2017Rand Fishkin
 
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...Edureka!
 
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, 2017NVIDIA
 
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 2017Carol Smith
 

En vedette (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
 

Similaire à MQTT: il protocollo che rende possibile l'Internet of Things (Ott. 2015)

IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureStefano Valle
 
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 - cap2pma77
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Meet Magento Italy
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsMikhail Zakharenko
 
Trasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaroTrasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaroVMEngine
 
Smart Technology 3 novembre
Smart Technology 3 novembreSmart Technology 3 novembre
Smart Technology 3 novembrecanaleenergia
 
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma SoftlayerServiceCloud - Esprinet
 
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 2015SENECA
 
Introduzione Cloud Computing
Introduzione Cloud ComputingIntroduzione Cloud Computing
Introduzione Cloud Computingsteccami
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)Giuseppe Vizzari
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Giuseppe Vizzari
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18Giuseppe Vizzari
 
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...VMEngine
 
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...Adriano Scaruffi
 
Reti e internet
Reti e internetReti e internet
Reti e internetyrcorr
 
Gordionet Education Seminario ICT Digitalizzazione e Comunicazione
Gordionet Education Seminario ICT Digitalizzazione e ComunicazioneGordionet Education Seminario ICT Digitalizzazione e Comunicazione
Gordionet Education Seminario ICT Digitalizzazione e ComunicazioneGordionet
 

Similaire à MQTT: il protocollo che rende possibile l'Internet of Things (Ott. 2015) (20)

IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architetture
 
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
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costs
 
Trasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaroTrasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaro
 
Smart Technology 3 novembre
Smart Technology 3 novembreSmart Technology 3 novembre
Smart Technology 3 novembre
 
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
7° CLOUD WEBINAR - 20141218 - Servizi Cloud Gestiti su piattaforma Softlayer
 
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
 
Introduzione Cloud Computing
Introduzione Cloud ComputingIntroduzione Cloud Computing
Introduzione Cloud Computing
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Network essentials
Network essentialsNetwork essentials
Network essentials
 
Introduzione
IntroduzioneIntroduzione
Introduzione
 
Reti di calcolatori
Reti di calcolatoriReti di calcolatori
Reti di calcolatori
 
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...
 
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
Architetture per la riservatezza, integrità e disponibilità dei dati nei sist...
 
Reti e internet
Reti e internetReti e internet
Reti e internet
 
Gordionet Education Seminario ICT Digitalizzazione e Comunicazione
Gordionet Education Seminario ICT Digitalizzazione e ComunicazioneGordionet Education Seminario ICT Digitalizzazione e Comunicazione
Gordionet Education Seminario ICT Digitalizzazione e Comunicazione
 

MQTT: il protocollo che rende possibile l'Internet of Things (Ott. 2015)

  • 1. MQTT: il protocollo che rende possibile
 l’Internet Of Things Davide Pozza – Omnys (www.omnys.com) davide.pozza@omnys.com http://it.linkedin.com/in/davidepozza 1
  • 2. /42 Davide Pozza ▪ Mi occupo di progettazione e delivery di infrastrutture software “mission critical”
 ▪ Negli anni ho avuto modo di affrontare tematiche funzionali e tecnologiche relative agli ambiti più svariati tra cui: ▪ Internet banking ▪ Ecommerce ed integrazione con sistemi di legacy ▪ ICT e telecomunicazioni ▪ Interazione con dispositivi “smart”
 ▪ Sono socio di Omnys, software house presente sul mercato dal 09/09/1999 che si occupa principalmente di: ▪ System Integration e Architetture Cloud ▪ Piattaforme web (ecommerce, turismo, infomobilità, editoria digitale) ▪ APP mobile ▪ Internet of Things (wearable, medical, home automation) 2
  • 3. /42 The Internet of Things 3 ▪ Smartphone & wearable ▪ Controllo veicoli, persone, animali, … ▪ Dispositivi embedded ▪ Automazione industriale ▪ Monitoraggio consumi energetici ▪ Impianti di sicurezza e sorveglianza ▪ Smart Building/Home & City ▪ Telemedicina e Salute ▪ Everyday things…
  • 4. /42 Verso l’interconnessione totale “The Web is becoming more and more pervasive as an applications platform, and effective standards are crucial for reducing the costs of deploying applications across a wide range of devices and environments, whether in the office, at home or on the move. The Ubiquitous Web will provide people with access whenever and wherever they find themselves, with applications that dynamically adapt to the user's needs, device capabilities and environmental conditions.” Philipp Hoschka, Ubiquitous Web Domain Leader Ubiquitous Web Web 1.0 Web 2.0 Social Web Mobile Web 4
  • 5. /42 Una crescita esponenziale A fine del 2014: 9 miliardi di dispositivi connessi Entro il 2020: • 57.000/sec
 nuovi dispositivi che si connetteranno
 • 212 miliardi
 di dispositivi in grado di connettersi
 • 30 miliardi
 di dispositivi connessi 5
  • 6. /42 Internet of Things: il problema Persone + Oggetti + Sensori + Dispositivi = tantissimi endpoint 
 che emettono segnali 6
  • 7. /42 Internet of Things: una nuova sfida ▪ Richiede un modello di comunicazione in real-time ed event-driven ▪ Le informazioni devono poter essere inviate in modalità one-to- many ▪ Capacità di recepire (“listening”) un evento non appena si verifica ▪ Necessità di ridurre al massimo la dimensione dei pacchetti dati scambiati ▪ Necessità di gestire l’invio di messaggi anche su reti degradate (reliability) 7
  • 8. /42 L’HTTP è adatto per gestire SEGNALI? ▪ E’ “document-centric” (XML, ecc) e basato sul paradigma request/ reply ▪ Ha un elevato overhead di rete ▪ E’ estremamente verboso: PUT/POST/GET/DELETE prevedono comunque l’invio di molti bytes e non sono sempre la scelta migliore nello sviluppo di applicazioni dove la comunicazione deve essere “ultralight” ▪ Non prevede nessuna garanzia built-in sulla comunicazione 8
  • 9. /42 Internet of Things: non è il WEB! ▪ I firmware dei dispositivi sono limitati (potenza, memoria, batteria)
 ▪ Possono essere necessari anche migliaia di dispositivi per monitorare un sistema industriale (es. gasdotti, piattaforme petrolifere,…) ▪ La connettività può essere molto degradata e/o estremamente costosa (GPRS, Satellite) 9
  • 10. /42 L’alternativa MQTT = MQ TELEMETRY TRANSPORT “A light weight event and message oriented 
 protocol allowing devices to asynchronously 
 communicate efficiently across constrained 
 networks to remote systems” 10
  • 11. /42 MQTT: i principali benefici ▪ Rende semplice la connessione tra il mondo degli oggetti e il mondo dell’ IT evitando il “polling” dei sensori
 ▪ Consente la trasmissione di dati su reti soggette a frequenti interruzioni
 ▪ Fornisce il massimo disaccoppiamento possibile garantendo comunque la trasmissione/ricezione dei dati (QoS)
 ▪ Riesce a gestire la comunicazione con un elevato numero di dispositivi 11
  • 12. /42 Il protocollo MQTT in SINTESI • Semplice: solo 3 funzioni: – connect + publish + subscribe (un client può funzionare su un controller a 8 bit e 256kb di RAM) • Affidabile: QoS per supportare reti degradate
 • Leggero: overhead minimo ed estrema efficenza: – no envelope, o headers; pacchetti anche da 2 bytes • Aperto: standard definito e aperto (royalty-free)
 12
  • 13. /42 Il trend di interesse per l’MQTT Google Trends evidenzia un interesse in forte crescita in relazione al termine “MQTT” 13
  • 14. /42 Ambito dell’MQTT Intelligence & Analytics Traditional Backend Systems BigData Interconnection Mobile & Web Embedded Controllers, Sensors, Actuators, … Data/Alert Respond Control Sense 14
  • 15. /42 Il modello Publish/Subscribe ▪ Il PUBLISHER invia (publish) un messaggio su un TOPIC (subject) 
 ▪ Il SUBSCRIBER è un consumer che si mette in ascolto (subscribe) sui messaggi pubblicati su un TOPIC specifico ▪ Il BROKER (server di smistamento messaggi) si occupa di effettuare il matching tra SUBSCRIBER e PUBLISHER con il conseguente dispatching del messaggio. Subscriber Broker Publisher Topic Publisher Topic Subscriber Subscriber 15
  • 16. /42 Comunicazione asincrona e bidirezionale MQTT Broker 1. CONNECT to MQTT broker 2. PUBLISH on:
 <house_id>/s/energyConsumption
 <house_id>/s/solarEnergy 3. SUBSCRIBE to:
 <house_id>/thermostat/setTemp 1. CONNECT to MQTT broker 2. SUBSCRIBE on:
 <house_id>/s/* 3. PUBLISH to:
 <house_id>/thermostat/setTemp 16
  • 17. /42 Garanzia nella comunicazione ▪ Keep-Alive message (PINGREQ, PINGRESP): – il Broker riesce ad identificare una disconnessione non esplicita del client ▪ Will message: – viene impostato nel messaggio di CONNECT con topic, QoS e retain. In caso di disconnessione inaspettata il messaggio “Will” viene mandato ai subscribers registrati ▪ Retain message: – un messaggio pubblicato su un topic viene mantenuto sul broker. Un successivo subscriber che si connette sullo stesso topic riceve il messaggio (last known good message) ▪ Persistent Session: – dopo la disconnessione del client, tutte le sottoscrizioni vengono mantenute nel broker e recuperate alla connessione successiva 17
  • 18. /42 Cos’è il livello di qualità del servizio (QoS) ? E’ un “agreement” tra il mittente ed il destinatario di un messaggio in relazione alla garanzia di “delivery” del messaggio stesso. Il QoS è una delle più potenti caratteristiche del protocollo MQTT in quanto rende molto più semplice lo scambio messaggi su reti degradate attraverso la gestione automatica della ri-trasmissione. Ci sono tre livelli disponibili: ▪ QoS 0 – at most once: garantisce il “best effort delivery”; è detto anche “fire & forget” e non contempla la conferma di ricezione che quindi è la medesima del trasporto TCP/IP ▪ QoS 1 – at least once: garantisce la consegna del messaggio almeno una volta verso un ricevente; il messaggio però può essere ricevuto anche più volte ▪ QoS 2 - exactly once: garantisce la consegna del messaggio una ed una sola volta verso un ricevente 18
  • 19. /42 Come funziona il QoS BrokerPublisher Subscriber BrokerPublisher Subscriber PUBLISH (QoS = 0) PUBLISH Delete message Store message PUBLISH (QoS = 1) Store message Delete message Delete message PUBLISH BrokerPublisher Subscriber Store message PUBLISH (QoS = 2) Store message Delete message Delete message PUBLISH QoS 0: At most once (fire & forget) QoS 1: At least once QoS 2: Exactly once PUBREC PUBREL PUBCOMP PUBACK 19
  • 20. /42 Sicurezza nella comunicazione 3 livelli di sicurezza: ▪ PROTOCOLLO ▪ Username/Password in CONNECT ▪ Possibilità di criptare il Payload ▪ TRASPORTO ▪ MQTT over TLS (v1.2) ▪ Autenticazione del client con certificato ▪ BROKER ▪ Gestione dei permessi su Publish/Subscribe e Topic ▪ Possibilità di integrare altri sistemi di autenticazione/autorizzazione (es. LDAP, OAuth 2.0) 20
  • 21. /42 MQTT vs HTTP (long polling): prestazioni Test di spedizione (1024 messaggi con payload da 1 byte) http://stephendnicholas.com/archives/1217 21
  • 22. /42 MQTT vs HTTP: la struttura del messaggio MQTT: dimensione header 2 byte HTTP: dimensione header
 REQ/RES > 300 byte 22 GET /service Host: www.endpointm2m.com Accept:text/xml Accept-Encoding:gzip, deflate, sdch Connection:keep-alive HTTP/1.1 200 OK Connection:Keep-Alive Content-Length:33452 Content-Encoding:gzip Content-Type:text/xml Keep-Alive:timeout=15, max=100 Last-Modified:Fri, 17 May 2013 14:50:39 GMT Connection:close
  • 23. /42 MQTT-SN ▪ E’ un’evoluzione dello standard MQTT pensata per i dispositivi embedded (SN = Sensor Networks) ▪ Non richiede lo stack TCP/IP: può essere utilizzato su seriale, UDP, ZigBee, RF, … 23
  • 24. /42 MQTT … in pratica 24
  • 25. /42 I principali Broker MQTT MOSQUITTO 25
  • 26. /42 Soluzioni MQTT in Cloud ▪ Pagamento a consumo di risorse (“pay per usage”) ▪ Opzione “free tier”: sotto soglie ben definite il servizio è gratuito ▪ Soluzioni IaaS / PaaS ▪ Elevati QoS (99.9%) ▪ Elevata scalabilità ▪ Tempi di startup estremamente ridotti 26
  • 27. /42 IBM Bluemix ▪ Sul fronte dei servizi Cloud MQTT/IoT sono i primi arrivati (GIU-14), nonché i principali promotori e ideatori dello standard MQTT ▪ Fornisce un soluzioni “full stack” (boilerplate), tra cui quella dedicata esclusivamente all’ IoT e basata su MQTT ▪ Basata su CloudFoundry con deploy in 3 step: ▪ Selezione di un Runtime (Node, Java, PHP, …) ▪ Selezione dei Servizi ▪ Installazione dell’applicazione ▪ Freemium plan: ▪ 20 dispositivi ▪ 100MB di traffico dati al mese ▪ 1GB di storage 27
  • 29. /42 Amazon AWS IoT: overview ▪ Offre la più elevata quantità di servizi Cloud dislocati in ben 11 regioni geografiche e vanta la miglior offerta in termini di scalabilità e computazionalità ▪ AWS, nato nel 2006, solo pochi giorni fa (OTT-15) ha lanciato la soluzione “AWS IoT” (attualmente in “Beta”) che sfrutta il protocollo MQTT ▪ Free tier of 250K messages (IN/OUT) per month for 12 months. Therefore 5$ per million messages 29
  • 30. /42 Amazon AWS IoT: caratteristiche 30
  • 31. /42 Microsoft Azure IoT Suite ▪ La Suite IoT è stata lanciata molto recentemente (MAR-15) ▪ Microsoft ha dichiarato di puntare molto sull’IoT (Windows 10 for Raspberry Pi) ▪ L’approccio è quello di mettere a disposizione “finished applications to speed development of common scenarios” ▪ E’ possibile utilizzare il protocollo MQTT solo come layer aggiuntivo in quanto non è incluso come soluzione nel “core” della Suite. 31
  • 32. /42 Eurotech ▪ La suite EDC (Everywhere Device Cloud - iPaaS) fornisce una soluzione completa (HW & SW) che offre la connettività sicura e scalabile basata su MQTT ▪ La suite ESF (Everywhere Software Platform) è un framework finalizzato a rendere il più semplice possibile l’integrazione tra i dispositivi ed il cloud (EDC) ▪ Utilizza un’enhanced version del protocollo MQTT che ad esempio può gestire la “birth date” del dispositivo ▪ Modello di pricing basato su numero di dispositivi e/o numero di messaggi scambiati ▪ La suite può funzionare su AWS, Azure o anche in modalità standalone 32
  • 34. /42 Client di riferimento MQTT Disponibile per i seguenti linguaggi: ▪ C++ ▪ C for embedded ▪ Go ▪ Java ▪ JavaScript ▪ Lua ▪ .Net ▪ Objective-C ▪ Python Altri: 
 https://github.com/mqtt/mqtt.github.io/wiki/libraries • Client di riferimento per l’ecosistema MQTT • Disponibile open-source 34
  • 37. /42 Facebook Messenger ▪ More than 850M Users ▪ Chat application ▪ Improved Battery ▪ Lower latency ▪ Less bandwidth https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920 “By maintaining an MQTT connection and routing messages through our chat pipeline, we were able to often achieve phone-to-phone delivery in the hundreds of milliseconds, rather than multiple seconds.” 37
  • 38. /42 Una “smart home” open source ▪ Mosquitto MQTT + openHab su Raspberry Pi ▪ Arduino per la gestione dei sensori ▪ Monitoraggio e controllo remoto da tablet/ smartphone con app openHab http://www.instructables.com/id/Uber-Home-Automation-w-Arduino-Pi 38
  • 39. /42 Infomobilità e autotrasporti ▪ Ogni mezzo dispone di un device che raccoglie e invia i dati su posizione, velocità e consumi ▪ I dati raccolti vengono inviati “dove serve” ▪ Le informazioni sono analizzate e le decisioni sono prese in tempo reale da un singolo backend 39
  • 40. /42 Salute e medicina ▪ Ogni dispenser comunica con il server centrale in tempo reale inviando dati su mancate/errate assunzioni ▪ Le informazioni relative ad eventi di allarme scatenano delle azioni immediate (notifica telefonica, SMS, ecc) 1. il paziente non 
 assume il farmaco 2. Il dispositivo invia allarme al server centrale (MQTT over GPRS) 3. Il server centrale (broker) invia notifica istantanea al medico 4. Il medico contatta il paziente 40
  • 41. /42 Credits ▪ MQTT official web site : http://mqtt.org ▪ Mosquitto : http://mosquitto.org / https://www.eclipse.org/mosquitto ▪ Mosca: https://github.com/mcollina/mosca ▪ HiveMQ : http://www.hivemq.com ▪ M2Mqtt C# Client : http://m2mqtt.codeplex.com ▪ Eclipse Paho project : http://www.eclipse.org/paho/ ▪ MQTT-SN: http://mqtt.org/2013/12/mqtt-for-sensor-networks-mqtt-sn ▪ Amazon AWS IoT: https://aws.amazon.com/iot/ ▪ IBM Bluemix IoT: https://www.ibm.com/cloud-computing/bluemix/solutions/iot/ ▪ Microsof Azure IoT Suite: http://www.microsoft.com/en-us/server-cloud/internet-of-things/ ▪ Eurotech: http://www.eurotech.com/ 41
  • 42. /42 Grazie per l’attenzione! DOMANDE ? 42 OMNYS - Information Technology www.omnys.com @SMAU Milano 2015: PAD. 1 - STAND E11