Making your Washing
Machine Talk with a
Power Plant
@matteocollina
What was the greatest
invention of the Industrial
Revolution?
Washing	

Machines

http://www.flickr.com/photos/gnarlsmonkey/260809150
•

We all need laundry	


•

10% jobs destroyed	


•

Women were freed from
their laundry, and can now
have a job	


•

Wa...
What form of energy	

would you choose?

http://www.flickr.com/photos/jalte/1687116108
http://www.flickr.com/photos/mikewest...
Would you postpone your	

laundry to use a different energy source?

http://500px.com/photo/47496528
How
Let’s connect all the things!
Pidgeons are not a
communication
protocol

See RFC1149

http://500px.com/photo/32895129
A new communication
paradigm

???
Pop-up Dialog

This message come
from the thing!

Cancel

OK

We code a program that
rea...
A new communication
paradigm

???
Pop-up Dialog

This message come
from the thing!

Cancel

We want to receive	

live data...
A new communication
paradigm
Publi
sh
???
Pop-up Dialog

ish
bl

This message come
from the thing!

Cancel

Pu

OK

!

How...
A new communication
paradigm

Subsc

Tap

ribe

Publish
???
Pop-up Dialog

ish
bl

This message come
from the thing!

Canc...
Problems
1. Application Protocols	

Developing IoT
applications is hard for
the developer. Why?

2. Data Formats	

3. Devi...
Problems

Application Open Protocols
Pattern

Live Updates

Format

Transport

HTTP

REST

with custom protocol
over Webso...
.ORG

CoAP

•

Developed by IBM, in
standardization at OASIS	


•

In standardization by the IETF
as Constrained Applicati...
.ORG

Client/Server Architecture

CoAP

P2P Architecture
Problems

Data Formats
Encdoding

Tipology

XML

textual

Tree-Based, values as strings

EXI

binary

Tree-Based, differen...
Problems

Device Identification & Privacy
•

What devices can a user monitor?	


•

What devices can 'listen' to the state ...
http://eclipse.org/ponte
We want to bring
developers to the
(real) world.

http://500px.com/photo/26425201
API
http(s)://<your ponte>/resources/<your thing>
!

coap://<your ponte>/r/<your thing>
!

mqtt(s)://<your ponte>/<your th...
Internals
1. key-value store for latest data lookup	

2. publish-subscribe with wildcards	

3. storing and forwarding offli...
Data Formats
•

How?

Binary 	


•

Textual	


•

Semantic

Automatic
conversion 	

with semantic
One format to rule them all
JSON-LD
•

Full support for RDF and graph data	


•

Developer friendly	


•

Convertible to XML, MsgPack, Bysant, BSON.	
...
ponte’s pillars
•
• Ascoltatori, the pub/sub library for node
backed by every broker out there! npm.im/
ascoltatori	

• Mo...
6000
4000

5000

CoAP.to.MQTT
HTTP.to.MQTT
MQTT.to.MQTT
Mosquitto

3000

milliseconds

4000
3000

0

1000

2000
1000
0

mi...
10k clients to One

10000

15000

CoAP.to.MQTT
HTTP.to.MQTT
MQTT.to.MQTT
Mosquitto

0

5000

milliseconds

10000
5000
0

m...
Todo List
•

Develop a multiprocol broker
and bridge	


•

Official Eclipse Release	


•

JSON-LD based data format	


•

D...
DEMO!

http://www.flickr.com/photos/oneaustin/1261907803
http://eclipse.org/ponte
Install it:	

!

$ npm install ponte bunyan -g
Run it:	

!

$ ponte -v | bunyan
…but why?
IoT development
happens in silos

http://www.flickr.com/photos/10775233@N00/4370646/
Build a Ponte between them!
(Ponte means Bridge in Italian :))

http://500px.com/photo/31083423
Making your washing machine talk with a power plant
Making your washing machine talk with a power plant
Making your washing machine talk with a power plant
Making your washing machine talk with a power plant
Making your washing machine talk with a power plant
Making your washing machine talk with a power plant
Upcoming SlideShare
Loading in...5
×

Making your washing machine talk with a power plant

11,147

Published on

Published in: Technology

Making your washing machine talk with a power plant

  1. 1. Making your Washing Machine Talk with a Power Plant @matteocollina
  2. 2. What was the greatest invention of the Industrial Revolution?
  3. 3. Washing Machines http://www.flickr.com/photos/gnarlsmonkey/260809150
  4. 4. • We all need laundry • 10% jobs destroyed • Women were freed from their laundry, and can now have a job • Watch this awesome TED talk by Hans Rosling.
  5. 5. What form of energy would you choose? http://www.flickr.com/photos/jalte/1687116108 http://www.flickr.com/photos/mikeweston/1462086624 http://www.flickr.com/photos/tommy-ironic/3437613067
  6. 6. Would you postpone your laundry to use a different energy source? http://500px.com/photo/47496528
  7. 7. How
  8. 8. Let’s connect all the things!
  9. 9. Pidgeons are not a communication protocol See RFC1149 http://500px.com/photo/32895129
  10. 10. A new communication paradigm ??? Pop-up Dialog This message come from the thing! Cancel OK We code a program that reacts to real-world events
  11. 11. A new communication paradigm ??? Pop-up Dialog This message come from the thing! Cancel We want to receive live data from the things OK
  12. 12. A new communication paradigm Publi sh ??? Pop-up Dialog ish bl This message come from the thing! Cancel Pu OK ! How can we know which user should be notified?
  13. 13. A new communication paradigm Subsc Tap ribe Publish ??? Pop-up Dialog ish bl This message come from the thing! Cancel Pu OK
  14. 14. Problems 1. Application Protocols Developing IoT applications is hard for the developer. Why? 2. Data Formats 3. Device Identification and Privacy
  15. 15. Problems Application Open Protocols Pattern Live Updates Format Transport HTTP REST with custom protocol over Websocket textual with binary support TCP CoAP REST with observe spec binary UDP MQTT Pub/Sub Yes binary TCP
  16. 16. .ORG CoAP • Developed by IBM, in standardization at OASIS • In standardization by the IETF as Constrained Application Protocol (CoAP) Optional confirmable messages • Various levels of QoS 0, 1, 2 • • Offline support • Partial offline support through a proxy • Retained Messages • Multicast support
  17. 17. .ORG Client/Server Architecture CoAP P2P Architecture
  18. 18. Problems Data Formats Encdoding Tipology XML textual Tree-Based, values as strings EXI binary Tree-Based, different data types N3/RDF textual Graph-Based, values as strings JSON textual Object-Oriented, values as strings MsgPack binary Object-Oriented, different data types ProtoBuf binary Object-Oriented, different data types Bysant binary Object-Oriented, different data types BSON binary Object-Oriented, different data types
  19. 19. Problems Device Identification & Privacy • What devices can a user monitor? • What devices can 'listen' to the state of other devices? • Who can access the devices state? • Is the communication secure?
  20. 20. http://eclipse.org/ponte
  21. 21. We want to bring developers to the (real) world. http://500px.com/photo/26425201
  22. 22. API http(s)://<your ponte>/resources/<your thing> ! coap://<your ponte>/r/<your thing> ! mqtt(s)://<your ponte>/<your thing> Use retained messages in MQTT
  23. 23. Internals 1. key-value store for latest data lookup 2. publish-subscribe with wildcards 3. storing and forwarding offline updates
  24. 24. Data Formats • How? Binary • Textual • Semantic Automatic conversion with semantic
  25. 25. One format to rule them all
  26. 26. JSON-LD • Full support for RDF and graph data • Developer friendly • Convertible to XML, MsgPack, Bysant, BSON. • schema.org initiative for the IoT?
  27. 27. ponte’s pillars • • Ascoltatori, the pub/sub library for node backed by every broker out there! npm.im/ ascoltatori • Mosca, the multi-transport MQTT broker for node.js. npm.im/mosca • MQTT.js, the MQTT library for node: npm.im/mqtt • Node-CoAP, the CoAP library for node: npm.im/coap
  28. 28. 6000 4000 5000 CoAP.to.MQTT HTTP.to.MQTT MQTT.to.MQTT Mosquitto 3000 milliseconds 4000 3000 0 1000 2000 1000 0 milliseconds 5000 CoAP.to.CoAP HTTP.to.CoAP MQTT.to.CoAP 2000 6000 One to 10k clients 0 2000 4000 6000 clients 8000 10000 0 2000 4000 6000 clients 8000 10000
  29. 29. 10k clients to One 10000 15000 CoAP.to.MQTT HTTP.to.MQTT MQTT.to.MQTT Mosquitto 0 5000 milliseconds 10000 5000 0 milliseconds 15000 CoAP.to.CoAP HTTP.to.CoAP MQTT.to.CoAP 0 2000 4000 6000 messages 8000 10000 0 2000 4000 6000 messages 8000 10000
  30. 30. Todo List • Develop a multiprocol broker and bridge • Official Eclipse Release • JSON-LD based data format • Device Identification & Privacy
  31. 31. DEMO! http://www.flickr.com/photos/oneaustin/1261907803
  32. 32. http://eclipse.org/ponte
  33. 33. Install it: ! $ npm install ponte bunyan -g Run it: ! $ ponte -v | bunyan
  34. 34. …but why?
  35. 35. IoT development happens in silos http://www.flickr.com/photos/10775233@N00/4370646/
  36. 36. Build a Ponte between them! (Ponte means Bridge in Italian :)) http://500px.com/photo/31083423
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×