Upload
remo-festa
View
221
Download
0
Tags:
Embed Size (px)
Citation preview
Internet-of-Things : un mondo di device interconnessiLorenzo Maiorfi & Gianluca Ruta
TinyCLR.it – Innovactive –
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
RFID tags for facilitating routing, inventorying and loss prevention
Surveillance, security, healthcare, transport, food safety, document management
Locating people and everyday objects
Teleoperation and telepresence: ability to monitor and control distant objects
Live
llo te
cnol
ogic
o
2000 2010 2020
Supply-chain Helpers
Vertical-Market Applications
Ubiquitous Positioning
Physical-World-Web
.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”
DEMOSocket programming con .NETMF
HTTP server, client o entrambi!
• A seconda degli scenari, una soluzione “Web-of-things” 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
DEMOHTTP 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!
DEMOHTTP/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
DEMOThingSpeak 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
DEMOCosm 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 full-duplex• 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
DigitalINPUTs
DigitalOUTPUTs
AnalogINPUTs
AnalogOUTPUTs
HTTP TCP/IP
.NET MFDeviceBrowser
(Plain HTML/JS)
Server WEB
DEMOIoT real-time con
Demo «LIVE»
• Collegatevi all’Access Point WiFi il cui SSID èTP-LINK_LORENZO_GRANDE
• Aprite l’indirizzohttp://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!