Upload
david-janes
View
105
Download
1
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
Building Blocks of The Internet of Things
@ Home
Wednesday, 17 July, 13
IMO
David Janes@dpjanes
[email protected]://imadeit.davidjanes.com/
July 2013
Wednesday, 17 July, 13
AKA “The Intranet of Things”
Wednesday, 17 July, 13
Important!
The Internet of Machinesis 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, 17 July, 13
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 (special case)
Wednesday, 17 July, 13
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
BLE purpose
• for small sensors and devices
• for personal area networks
• for health stuff ... scales, heart-rate monitors, etc.
Wednesday, 17 July, 13
BLE use
• Think of it as “invisible wires”
• Will be controlled...
• directly by mobile devices
• indirectly through hubs
Wednesday, 17 July, 13
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, 13
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 ...
Wednesday, 17 July, 13
HATEOAS
• Always explicitly use URLs ... not numbers or special codes
• “devices” : [ “/api/light-1”, “/api/light-2” ] ✓
• “devices” : [ 1, 2 ] ✗
Wednesday, 17 July, 13
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 introduced?
Wednesday, 17 July, 13
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 last bit of translation
Wednesday, 17 July, 13
The Semantic Web
• A kind of wide-open database, use what you need, infinitely extendable
• Everything described by URLs
Wednesday, 17 July, 13
schema.org
• Vocabulary for describing things and products (and more)
• e.g. this is a Toshiba 42” Flatscreen TV
Wednesday, 17 July, 13
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
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
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
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 implementations are bad
• AirPlay: wide open
• UPnP: broken
Wednesday, 17 July, 13
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 more we need to know!
Wednesday, 17 July, 13
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
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
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
Get in touch!
David Janes@dpjanes
[email protected]://imadeit.davidjanes.com/
Wednesday, 17 July, 13