Internet-of-Things : un mondo di device interconnessi

Report
TinyCLR.it – Innovactive
–
Internet-of-Things : un mondo
di device interconnessi
Lorenzo Maiorfi & Gianluca Ruta
IoT : cos’è…
• Il termine nasce nel 1999 per indicare una
tecnologia di identificazione univoca di oggetti
all’interno di una “rete”
• Con il tempo, il termine assume significati sempre
più ampi, che mano a mano si “confondono” con
le applicazioni della tecnologia:
•
•
•
•
•
•
Wireless Sensor Networks
Machine to Machine (M2M)
Physical computing
Connected Environments
Physical Internet
…e molti altri!
…e cosa non è!
• Oggi il “focus” di IoT è più definito, dal momento che
si è comunemente convenuto che IoT NON è (o meglio,
non solo, o non necessariamente):
•
•
•
•
•
ubiquitous/pervasive computing
Internet Protocol
communication technologies
embedded devices
the applications
• The Internet of Things is a global network of
computers, sensors and actuators connected through
Internet protocols.
• The Web of Things consists of RESTful Web services
that measure or manipulate physical properties.
Roadmap di IoT
Physical-World-Web
Livello tecnologico
Teleoperation and
telepresence: ability to
monitor and control
distant objects
Ubiquitous Positioning
Locating people and
everyday objects
Vertical-Market Applications
Surveillance, security,
healthcare, transport, food
safety, document management
Supply-chain Helpers
RFID tags for facilitating
routing, inventorying
and loss prevention
2000
2010
2020
.NET Micro Framework & IoT
• Gli stack di rete “embedded” implementano ogni layer
del modello ISO/OSI, dall’applicativo al fisico (non c’è un
sistema operativo, non c’è un device driver, e mano a mano che si
scende nello stack le cose si fanno meno portabili !)
• Lo stack open-source più diffuso è lwIP, .NETMF lo ha
integrato nel proprio PAL, ma ogni porting richiede lo
sviluppo di componenti software specifici (ad es. driver per
controller MAC e PHY, oppure per controller autonomi, come ENC28 o
WizNet5100)
• .NETMF definisce uno strato di astrazione dello stack
di rete basato su due “modelli”:
• Network Interface
• Socket
• Gli strati più alti (HTTP, FTP, ecc.) sono “managed”
DEMO
Socket programming con .NETMF
HTTP server, client o entrambi!
• A seconda degli scenari, una soluzione “Web-ofthings” tipica richiede che il dispositivo sia un
client REST, un server REST, o entrambi allo stesso
tempo
• Le funzionalità HTTP client sono implementate
dalla classe HttpWebRequest
• Le funzionalità HTTP server sono implementate
dalla classe HttpListener
• Esistono molti contributi della community per
l’interazione con servizi che espongono API REST
(twitter, facebook, google, flickr, ecc.)
• Nei casi in cui sia applicabile, ci sono WCF e DPWS
DEMO
HTTP programming con .NETMF
PTTH? Come sarebbe a dire?
• In molti casi l’esposizione di un endpoint HTTP
server non è possibile o conveniente (IP statico,
NAT-ting, DNS dinamico, firewall, ecc.)…
• …ma le sole funzionalità HTTP client non bastano
(ad es. per servizi on-demand)…quindi?
• Si può utilizzare un servizio che gestisca il PTTH,
come Yaler (http://yaler.net)
• La libreria open Gsiot.Server di Cuno Pfister (autore
di “Getting Started with IoT”) permette di implementare un
server HTTP o PTTH configurabile a run-time!
DEMO
HTTP/PTTH programming con Gsiot.Server
Piattaforme publiche per IoT
• ThingSpeak
• Pro:
•
•
•
•
Molto veloce da configurare
API semplice e funzionale
Update delle dashboard veloce (5-10 secondi)
Libreria client per .NETMF disponibile come parte della
strepitosa “μP” di Paolo Patierno (http://uplibrary.codeplex.com)
• Contro
•
•
•
•
Modello dei trigger poco flessibile e complicato
Numero dei field di un datastream limitato a 10
Sito web di amministrazione migliorabile
Poche applicazioni disponibili per la piattaforma
DEMO
ThingSpeak programming con «μP» di Paolo Patierno
Piattaforme publiche per IoT
• COSM (Pachube)
• Pro:
Piattaforma attiva da diversi anni senza discontinuità di servizio
API flessibile e potente (CSV, XML, JSON)
Modello di trigger molto ricco
Engine per il rendering dei grafici utilizzabile in applicazioni
esterne
• Grande flessibilità nella definizione dei datastream
• Supporto a Websocket e TCP Socket (in realtà usano una API
TCP/JSON per definire richieste HTTP/JSON!)
•
•
•
•
• Contro
• Interfaccia web poco adatta al monitoraggio continuo
• Il supporto ai trigger è possibile solo in formato JSON (no XML,
no CSV)
• Piani commerciali non più chiari come quando si chiamava
Pachube
DEMO
Cosm programming e trigger Cosm/ThingSpeak con Yaler
Ultima frontiera: IoT real-time
• COSM e ThingSpeak sono piattaforme che favoriscono
un modello di comunicazione simplex rispetto al fullduplex
• In COSM e ThingSpeak le variazioni dello stato del
device sono campionate ogni 5-10 secondi, quindi c’è
poca «banda» e poca «responsività»
• Serve una piattaforma per il monitoraggio ed il
controllo remoto che possa agire entro 0.1 secondi,
full-duplex e che permetta un modello di interazione
arbitrario
• In Innovactive stiamo mettendo a punto un framework
per lo sviluppo di applicazioni Iot real-time: TiberJS
IoT real-time con Tiber.js
Digital
INPUTs
TCP/IP
HTTP
Digital
OUTPUTs
Server WEB
Browser
(Plain HTML/JS)
.NET MF
Device
Analog
INPUTs
Analog
OUTPUTs
DEMO
IoT real-time con
Demo «LIVE»
• Collegatevi all’Access Point
WiFi il cui SSID è
TP-LINK_LORENZO_GRANDE
• Aprite l’indirizzo
http://192.168.0.51/demoiot
IoT: quali evoluzioni a breve?
• Integrazione con il cloud-computing (ad es.
StreamInsight)
• Sviluppo delle tecnologie per la creazione di reti
periferiche wireless mesh (Bluetooth low-energy,
ZigBee, ANT)
• Sviluppo e diffusione di dispositivi IoT indossabili
(bracciali, orologi, collane, cinture, giacche, scarpe sono stati in gran
parte già sviluppati come prototipi!)
• Maggiore diffusione nel campo della domotica
• Integrazione più spinta nel settore professionale
della automazione industriale
Ringraziamo gli sponsor!

similar documents