internet of things & paraimpu
DESCRIPTION
Le slide della presentazione di IoT e Paraimpu di giovedì 14 giugno 2012, Facoltà di Architettura di Cagliari, nell'ambito del ciclo di seminari del CRS4.TRANSCRIPT
Antonio Pintus - [email protected] Davide Carboni - [email protected] Andrea Piras - [email protected]
Antonio Pintus Andrea Piras Davide Carboni
Seminari CRS4, percorso E
Cagliari, 14 giugno 2012
1
Internet / Web of Things+
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Diretta Twitter
• Twittate con hash
2
#paraimpu
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 3
A che punto siamo?
Internet / Web of Things
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Evoluzione Internet / Web
4
PC, server, documenti, hypertext, hyperlink
... cellulari, motori di ricerca, notebook
... Web 2.0, partecipativo,
social
IoT, qualsiasi cosa è connessa
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Internet/Web of Things
5
Ph. Shaun Wood, http://www.flickr.com/people/mrwoodnz/
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Smart-objects: Whithings
6
http://www.withings.com/
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Smart-objects
7
http://www.nike.com/plus/products/training/
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Smart-objects: Karotz
8
http://store.karotz.com
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Smart-objects: Micro-controllers
9
Arduino
openPicus Flyport
Arduino
Sensori
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Smart-objects: smart-phones!
10
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Automotive
11
http://gadget.wired.it/news/mondo_computer/2012/03/13/internet-of-things-polimi-13714.html
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Smart-Objects vari...
12
Smart-TV
Monitoring Consumo energia
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Previsioni
• nel 2020 gli oggetti connessi saranno 50 miliardi (Cisco)
• sensori, attuatori, cellulari, smart cities, giocattoli, case, elettrodomestici, sistemi di monitoraggio ambientale, automotive, eHealth, ...
13
http://www.flickr.com/photos/erwlas/
http://www.flickr.com/photos/mike_lambert http://www.flickr.com/photos/daviddehoey
http://www.flickr.com/photos/bigpinkcookie
http://www.flickr.com/photos/erwlas/
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
EU Teaser: the Pillbox
14
http://youtu.be/RTdRUwl9JsA
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
EU Teaser: the Pillbox
14
http://youtu.be/RTdRUwl9JsA
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
EU Teaser: Traffic
15
http://youtu.be/lkIXHzcU5XA
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
EU Teaser: Traffic
15
http://youtu.be/lkIXHzcU5XA
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Problematiche
• una enorme quantità di “cose” anche molto diverse tra loro: oggetti !sici e virtuali
• come connetterli al Web in maniera semplice?
• come comporli per creare applicazioni in maniera sempli!cata?
• come realizzare agevolmente dei mashup misti, includendo oggetti
!sici e virtuali come servizi online e social network?
• come gestire l’elevato grado di eterogeneità dei dati, linguaggi e
protocolli?
16
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Il “passato”
• Ovviamente furono proposte diverse tecnologie e protocolli:
– Jini, UPnP, ...
– JXTA
– Web services: SOAP, WSDL , ...
– Soluzioni basate direttamente su TCP / UDP
17
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 18
parte #1
la nostra “vision”
Ph. http://www.flickr.com/photos/salendron/
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
“ The Web of Things
is more than
Things on the Web ”
19
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Vision /1
20
#1: connettere gli oggetti deve essere semplice
Ph. Nigel Marshall, http://www.flickr.com/photos/nige_mar/
- semplici da mettere in rete
- semplici da con!gurare
- semplici da gestire
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Vision /2
• #2: non solo oggetti !sici ma anche “virtuali”
– social network, siti Web, feed, APIs, App, ...
21
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Internet/Web of Things
22
Ph. Mike http://www.flickr.com/photos/zebble
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Vision /3
23
#3: comporre gli oggetti deve essere semplice
- mashup misti: interconnettere mondo !sico + mondo Web
- meccanismi di trasformazione / !ltro dei dati
Ph. John Thurm, http://www.flickr.com/photos/thurm
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Vision: aspetti Social /1
24
Ph. Nigel Marshall, http://www.flickr.com/photos/nige_mar/
#4: i social network esistenti sono visti come oggetti (virtuali)
- Facebook, Foursquare, Twitter, ...
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Vision: aspetti social /2
25
Ph. Ryan Roberts http://www.flickr.com/photos/ryanr
#5: condividere gli oggetti con le altre persone!
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Condividere gli oggetti
• vogliamo poter condividere i nostri oggetti con le altre persone
– condividere i dati– condividere le funzionalità
• lasciare che le altre persone usino i nostri oggetti nelle loro applicazioni
• non lontano dal concetto di “collaborative consumption” de!nito dagli autori del libro What’s mine is yours*
* What's Mine Is Yours: The Rise of Collaborative Consumption, Rachel Botsman and Roo Rogers . Harperbusiness, http://www.collaborativeconsumption.com/
26
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Come?
27
• Non abbiamo bisogno di nuovi o “oscuri” protocolli per connettere gli oggetti
• Abbiamo il Web!
• i protocolli e i formati del Web come lingua franca per (inter-)connetterli
• HTTP ( + JSON, XML, ...) --> REST
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 28
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 29
Ph. Windell Oskay http://www.flickr.com/photos/oskay/265899865/
Il modello: 4 astrazioni di base
- Oggetti:
- Sensori- Attuatori
- Connessioni
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 30
Sensori
- Qualsiasi Oggetto capace di produrre dati
- comunica attraverso HTTP
- anemometri, termometri, Arduino, ...
- Twitter, Foursquare, API, altri servizi Web, software app, ...
Ph. Windell Oskay http://www.flickr.com/photos/oskay/
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 31
Attuatori
- Qualsiasi Oggetto capace di ricevere dati e compiere un’azione
- comunica attraverso HTTP
- Illuminazione, Arduino, motori passo-passo, Karotz, ...
- Twitter, Facebook, Processing, altre applicazioni Web e non...
Ph. Dieter Drescher http://www.flickr.com/photos/cosmosfan
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Connessioni
32
Ph. supermaryan http://www.flickr.com/photos/33975256@N06/
- tra due Oggetti
- un Sensore come sorgente- un Attuatore come destinazione
- con!gurabili:
- !ltering dei dati
- trasformazione dei dati
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Filtri e trasformazioni: perchè?
33
eterogeneità degli oggetti e dei datipersonalizzazione
12,10,9,H,L
Il latte è terminato!
0xAB12CD
0,1, ON, OFF
?
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Motore di Regole
34
Regole espresse in linguaggio JavaScriptde!nite dagli utenti
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
In sintesi
35
“a cloud-based operating system for the Internet of Things”
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 36
http://www.flickr.com/photos/melitron
(alcuni) Esperimenti
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
T light
37
http://youtu.be/6LuutBhG9nU
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
T light
37
http://youtu.be/6LuutBhG9nU
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Ambient Assisted Living
38
http://youtu.be/LqqwyJV1iao
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Ambient Assisted Living
38
http://youtu.be/LqqwyJV1iao
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Jardimpu
39
- Giardinaggio sociale con Paraimpu, by Alberto Serra (@albeserra)
- http://jardimpu.blogspot.it
- Monitoring su Twitter: @jardimpu
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 40
part #2
Scelte Architetturali e di Design
Ph. Jaime Silva, http://www.flickr.com/photos/20792787@N00/
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Problema: scalabilità
– Cosa succede quando il numero degli utenti cresce?
– Cosa succede quando migliaia di oggetti vengono aggiunti?
– Cosa succede quando migliaia di dati in (quasi) real-time devono essere gestiti?
– Il sistema deve essere scalabile “by-design”!
41
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it 42
Ph. MrFaber, http://www.flickr.com/photos/mrfaber
Problemi e stili architetturali
problema C10K
Scalabilità orizzontale
Database
Nuovi Sensori/Attuatori
Web server
Load balancing
Web-based Architecture
WS-* or REST
?
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
WS-* o REST?
• per molti oggetti un WS-* stack è troppo complesso/pesante: WSDL, SOAP over HTTP, ...
• spesso, abbiamo a che fare con piccoli (limitati) oggetti !sici digitali
• Abbiamo scelto REST come stile architetturale
» Oggetti, connessioni, dati, utenti, ... , sono risorse REST
43
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
RESTful Resources
http://paraimpu.crs4.it/service/e57faedb-5823-453e-8ff1-74a74e5...
http://paraimpu.crs4.it/user/a98d4e77-9774-4fa9-b35b-b1e12cc0...
HTTP
GET PUT POST DELETE
{"category": "arduino_usb_source", "servicetype": "src", "description": "an Arduino USB sensor", "date_modified": "2012-04-13 17:24:32.157177", "uri": "/service/b58faedb-5823-453e-8ff1-74a74...", "owner": "/user/b91b4e99-9764-4fa9-b35b-a1...", "token": "f03e5d9e-a5b1-4a4a-b91d-...", "link": "http://paraimpu.crs4.it/service/f57faedb-5823-765e-6bb6-74a...", "mode": "push", "policy": "PRIVATE", "date_created": "2012-04-13 17:24:32.157177", "shortname": "ardusb", "content-type": "application/json", "icon": "/static/images/arduino_usb_source_icon.png"}
44
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Database: SQL o NoSQL?
• Considerando:
• dati molto eterogenei --> "essibilità del DB schema• richiesta scalabilità del DB su un sistema distribuito• partizionamento dei dati e gestione delle repliche
• Abbiamo scelto un database NoSQL:
• no schema pre!ssato, no tabelle, no relazioni• efficienti read-write concorrenti, scalabilità, auto-sharding• formato nativo dei dati in JSON-like (BSON)
45
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Web server, Web front-end
• sistema interamente Web-based
• problema C10K: 10,000 connessioni HTTP aperte simultaneamente (client)
• Scalabilità orizzontale: aggiungere nuove istanze del server quando richiesto
• Bilanciamento del carico
46
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Le connessioni
47
• connessioni basate su code di dati• trasformazione dei dati eseguita da processi di sistema
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Filtri sui dati
• un Filtro è una espressione booleana valutata su un dato proveniente da un sensore
–espressa in JavaScript
» sensor > 12» sensor.!eld == ‘H’» sensor.data >20 && sensor.type == ‘temp’» ...
48
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Trasformazione dati: mapping
• i Mapping sono coppie di espressioni: (cond, repl)
• cond : espressione booleana valutata su dati provenienti da un sensore (come per i !ltri)
• repl : espressione che produce/trasforma un dato
da inoltrare all’ attuatore quando cond è vera
49
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Mapping, esempi
50
Sensor data type
CONDITION REPLACE Actuator data type
numeric sensor > 30 <% sensor * 3.14 / 100 %> numeric
numeric sensor > 25Summer is coming, temperature is:
<% sensor %> °Ctext
JSON sensor.data > 30Data is <% sensor.data %>
and type is <% sensor.type %> text
JSONsensor.A0 > 30 &&
sensor.A5 <= 10
<?xml version="1.0" encoding="UTF-8"?> <value>
<% sensor.A0 * 100 %>
</value>
XML
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Principali tecnologie
• back-end scritto principalmente in Python
• piccola parte in Java
• Web stack basato su Tornado Web server
• NoSQL DBMS (MongoDB)
• HTML + jQuery
51
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
http://paraimpu.crs4.it
twitter: @paraimpu
FB: facebook.com/paraimpu
YouTube: youtube.com/paraimpu
52
• > 600 utenti world-wide
• nuovo progetto EU !nanziato sulle Smart Cities, basato su Paraimpu: CityScripts
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
Contacts
• Antonio Pintus, [email protected], Twitter: @apintux• Davide Carboni, [email protected]• Andrea Piras, [email protected]
• http://paraimpu.crs4.it/team
• LBS group @ CRS4: http://geoweb.crs4.it/
• CRS4 Home Page: http://www.crs4.it
53
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
DEMO54
next:
Antonio Pintus, Davide Carboni, Andrea Piras http://paraimpu.crs4.it
GRAZIE!
55
Q & A