Building Blocks of
The Internet of Things
@ Home
Wednesday, 17 July, 13
IMO
David Janes
@dpjanes
davidjanes@davidjanes.com
http://imadeit.davidjanes.com/
July 2013
Wednesday, 17 July, 13
AKA “The Intranet of
Things”
Wednesday, 17 July, 13
Important!
The Internet of Machines
is just
The Internet with Machines!
Wednesday, 17 July, 13
The Building Blocks of
the Internet @ Home?
• Wi-Fi
• TCP/IP
• URLs / DNS
• HTTP
• HTML / JS / CSS
• JSON / XML
Wednesday,...
The same tech enables
The Intranet of Things
... more or less ...
Wednesday, 17 July, 13
What are the issues?
• Communication
• Discovery
• Control
• Interoperability
• Security
Wednesday, 17 July, 13
Communications
Wednesday, 17 July, 13
Communications
• How will things talk to things?
• How will we talk to things?
Wednesday, 17 July, 13
Protocols
• Wi-Fi
• TCP/IP
• HTTP
• JSON / XML ... for things to things
• HTML ... for us to things
• Bluetooth Low Energy...
Bluetooth Low Energy
• Ships in all modern iOS devices
• Ships in many new Androids
• 30m range (50m claimed)
• Coin-cell-...
BLE purpose
• for small sensors and devices
• for personal area networks
• for health stuff ... scales, heart-rate
monitor...
BLE use
• Think of it as “invisible wires”
• Will be controlled...
• directly by mobile devices
• indirectly through hubs
...
Discovery
Wednesday, 17 July, 13
“Google for my home”
• find what’s available...
• ... and what can I do with it?
Wednesday, 17 July, 13
Bonjour
• Lightweight Service Discovery
• Standard needed for specifying how to find
IoT services / APIs
Wednesday, 17 July...
Control
Wednesday, 17 July, 13
APIs
• IoT devices are controlled by APIs
• URLs ... from Bonjour Discovery
• HTTP
• JSON
Wednesday, 17 July, 13
REST
• URLs describe things ... not actions
• /api/light-2 ✓
• /api/light-2/off ✗
• Stateless
• ... lots of other stuff .....
HATEOAS
• Always explicitly use URLs ... not numbers
or special codes
• “devices” : [ “/api/light-1”,“/api/light-2” ] ✓
• ...
JSON
GET /api/devices
{
"devices" : [
"/api/light-1",
"/api/light-2"
]
}
Wednesday, 17 July, 13
JSON
GET /api/light-1
{
"on" : true,
"brightness" : 0.5,
"color" : "#FFFFFF"
}
Wednesday, 17 July, 13
JSON
PUT /api/light-1
{
"on" : false
}
Wednesday, 17 July, 13
Interoperability
Wednesday, 17 July, 13
Can...
• devices easily talk to each other?
• devices be controlled from one UI?
• “novel” devices be effortlessly introdu...
Standards?
• Fine grained / line level ... not on
• Everyone always does their own thing
Wednesday, 17 July, 13
But we’re almost there!
• Our standards stack gets us a long way
• i.e.Wi-Fi, HTTP, REST, HATEOAS, JSON
• We just need one...
The Semantic Web
• A kind of wide-open database, use what
you need, infinitely extendable
• Everything described by URLs
We...
schema.org
• Vocabulary for describing things and
products (and more)
• e.g. this is aToshiba 42” FlatscreenTV
Wednesday, ...
iotdb.org
• A work in progress!
• Vocabulary for describing how to control
IoT things
• e.g. this is a light, this can be ...
JSON-LD
• Links JSON documents to the Semantic
Web
• Too clumsy / difficult for the IoT
• Developers are not likely to adop...
The Rosetta Stone
• Add a single definition term to APIs
{
"@iot" : "/definitions/light",
"on" : true,
"brightness" : 0.5,
...
Security
Wednesday, 17 July, 13
We Can’t...
• Hide the devices / APIs
• Make everyone log into every device
• Get this wrong!
Wednesday, 17 July, 13
Considerations
• Some attributes can be read by everyone
but only set by a few ... e.g. temperature
• Current implementati...
Wide open
• Sorry, I’ve got nothing
• This can’t be half-baked
Wednesday, 17 July, 13
Device Limitations
Wednesday, 17 July, 13
Not that smart
• We need information outside the device
• e.g. Belkin WeMo: I can be on, I can be off
• There’s so much mo...
What is it really?
• Consider the WeMo
• connected to a table lamp
• connected to a space heater
• It doesn’t know!
• Same...
Where is it?
• Is it in the kitchen? in the living room?
• Both? ... e.g. a door open sensor
• Many? ... e.g. a HVAC subsy...
Wide open
• Assume there’s data that needs to be
“outside” the device
• But we don’t want to “go to the Internet”
to contr...
Get in touch!
David Janes
@dpjanes
davidjanes@davidjanes.com
http://imadeit.davidjanes.com/
Wednesday, 17 July, 13
Upcoming SlideShare
Loading in …5
×

Building Blocks for the Internet of Things @ Home

1,044 views
851 views

Published on

Thoughts on how Internet Standards - HTTP, TCP/IP, WiFi, Bonjour - can be used in conjunction with Semantic Web technologies to create the Internet of Things. The emphasis of this document is the home / LAN, hence "The Intranet of Things", but the broad themes are universally applicable.

Things that are up in the air are marked in read. Everything IMO.

Also see http://iotdb.org - a work in progress.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,044
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Building Blocks for the Internet of Things @ Home

  1. 1. Building Blocks of The Internet of Things @ Home Wednesday, 17 July, 13
  2. 2. IMO David Janes @dpjanes davidjanes@davidjanes.com http://imadeit.davidjanes.com/ July 2013 Wednesday, 17 July, 13
  3. 3. AKA “The Intranet of Things” Wednesday, 17 July, 13
  4. 4. Important! The Internet of Machines is just The Internet with Machines! Wednesday, 17 July, 13
  5. 5. The Building Blocks of the Internet @ Home? • Wi-Fi • TCP/IP • URLs / DNS • HTTP • HTML / JS / CSS • JSON / XML Wednesday, 17 July, 13
  6. 6. The same tech enables The Intranet of Things ... more or less ... Wednesday, 17 July, 13
  7. 7. What are the issues? • Communication • Discovery • Control • Interoperability • Security Wednesday, 17 July, 13
  8. 8. Communications Wednesday, 17 July, 13
  9. 9. Communications • How will things talk to things? • How will we talk to things? Wednesday, 17 July, 13
  10. 10. Protocols • Wi-Fi • TCP/IP • HTTP • JSON / XML ... for things to things • HTML ... for us to things • Bluetooth Low Energy (special case) Wednesday, 17 July, 13
  11. 11. Bluetooth Low Energy • Ships in all modern iOS devices • Ships in many new Androids • 30m range (50m claimed) • Coin-cell-sized devices Wednesday, 17 July, 13
  12. 12. BLE purpose • for small sensors and devices • for personal area networks • for health stuff ... scales, heart-rate monitors, etc. Wednesday, 17 July, 13
  13. 13. BLE use • Think of it as “invisible wires” • Will be controlled... • directly by mobile devices • indirectly through hubs Wednesday, 17 July, 13
  14. 14. Discovery Wednesday, 17 July, 13
  15. 15. “Google for my home” • find what’s available... • ... and what can I do with it? Wednesday, 17 July, 13
  16. 16. Bonjour • Lightweight Service Discovery • Standard needed for specifying how to find IoT services / APIs Wednesday, 17 July, 13
  17. 17. Control Wednesday, 17 July, 13
  18. 18. APIs • IoT devices are controlled by APIs • URLs ... from Bonjour Discovery • HTTP • JSON Wednesday, 17 July, 13
  19. 19. REST • URLs describe things ... not actions • /api/light-2 ✓ • /api/light-2/off ✗ • Stateless • ... lots of other stuff ... Wednesday, 17 July, 13
  20. 20. HATEOAS • Always explicitly use URLs ... not numbers or special codes • “devices” : [ “/api/light-1”,“/api/light-2” ] ✓ • “devices” : [ 1, 2 ] ✗ Wednesday, 17 July, 13
  21. 21. JSON GET /api/devices { "devices" : [ "/api/light-1", "/api/light-2" ] } Wednesday, 17 July, 13
  22. 22. JSON GET /api/light-1 { "on" : true, "brightness" : 0.5, "color" : "#FFFFFF" } Wednesday, 17 July, 13
  23. 23. JSON PUT /api/light-1 { "on" : false } Wednesday, 17 July, 13
  24. 24. Interoperability Wednesday, 17 July, 13
  25. 25. Can... • devices easily talk to each other? • devices be controlled from one UI? • “novel” devices be effortlessly introduced? Wednesday, 17 July, 13
  26. 26. Standards? • Fine grained / line level ... not on • Everyone always does their own thing Wednesday, 17 July, 13
  27. 27. But we’re almost there! • Our standards stack gets us a long way • i.e.Wi-Fi, HTTP, REST, HATEOAS, JSON • We just need one last bit of translation Wednesday, 17 July, 13
  28. 28. The Semantic Web • A kind of wide-open database, use what you need, infinitely extendable • Everything described by URLs Wednesday, 17 July, 13
  29. 29. schema.org • Vocabulary for describing things and products (and more) • e.g. this is aToshiba 42” FlatscreenTV Wednesday, 17 July, 13
  30. 30. iotdb.org • A work in progress! • Vocabulary for describing how to control IoT things • e.g. this is a light, this can be turned on and off, this has a brightness control, this has a color Wednesday, 17 July, 13
  31. 31. JSON-LD • Links JSON documents to the Semantic Web • Too clumsy / difficult for the IoT • Developers are not likely to adopt ... • ... but the technique is perfect Wednesday, 17 July, 13
  32. 32. The Rosetta Stone • Add a single definition term to APIs { "@iot" : "/definitions/light", "on" : true, "brightness" : 0.5, "color" : "#FFFFFF" } • Defines every term in the API semantically with well-known definitions • Another work in progress! Wednesday, 17 July, 13
  33. 33. Security Wednesday, 17 July, 13
  34. 34. We Can’t... • Hide the devices / APIs • Make everyone log into every device • Get this wrong! Wednesday, 17 July, 13
  35. 35. Considerations • Some attributes can be read by everyone but only set by a few ... e.g. temperature • Current implementations are bad • AirPlay: wide open • UPnP: broken Wednesday, 17 July, 13
  36. 36. Wide open • Sorry, I’ve got nothing • This can’t be half-baked Wednesday, 17 July, 13
  37. 37. Device Limitations Wednesday, 17 July, 13
  38. 38. Not that smart • We need information outside the device • e.g. Belkin WeMo: I can be on, I can be off • There’s so much more we need to know! Wednesday, 17 July, 13
  39. 39. What is it really? • Consider the WeMo • connected to a table lamp • connected to a space heater • It doesn’t know! • Same interface, effectively / collectively a very different device Wednesday, 17 July, 13
  40. 40. Where is it? • Is it in the kitchen? in the living room? • Both? ... e.g. a door open sensor • Many? ... e.g. a HVAC subsystem Wednesday, 17 July, 13
  41. 41. Wide open • Assume there’s data that needs to be “outside” the device • But we don’t want to “go to the Internet” to control our house! • Open problem Wednesday, 17 July, 13
  42. 42. Get in touch! David Janes @dpjanes davidjanes@davidjanes.com http://imadeit.davidjanes.com/ Wednesday, 17 July, 13

×