42
Building Blocks of The Internet of Things @ Home Wednesday, 17 July, 13

Building Blocks for the Internet of Things @ Home

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

Page 1: Building Blocks for the Internet of Things @ Home

Building Blocks of The Internet of Things

@ Home

Wednesday, 17 July, 13

Page 2: Building Blocks for the Internet of Things @ Home

IMO

David Janes@dpjanes

[email protected]://imadeit.davidjanes.com/

July 2013

Wednesday, 17 July, 13

Page 3: Building Blocks for the Internet of Things @ Home

AKA “The Intranet of Things”

Wednesday, 17 July, 13

Page 4: Building Blocks for the Internet of Things @ Home

Important!

The Internet of Machinesis just

The Internet with Machines!

Wednesday, 17 July, 13

Page 5: Building Blocks for the Internet of Things @ Home

The Building Blocks of the Internet @ Home?• Wi-Fi

• TCP/IP

• URLs / DNS

• HTTP

• HTML / JS / CSS

• JSON / XML

Wednesday, 17 July, 13

Page 6: Building Blocks for the Internet of Things @ Home

The same tech enables The Intranet of Things

... more or less ...

Wednesday, 17 July, 13

Page 7: Building Blocks for the Internet of Things @ Home

What are the issues?

• Communication

• Discovery

• Control

• Interoperability

• Security

Wednesday, 17 July, 13

Page 8: Building Blocks for the Internet of Things @ Home

Communications

Wednesday, 17 July, 13

Page 9: Building Blocks for the Internet of Things @ Home

Communications

• How will things talk to things?

• How will we talk to things?

Wednesday, 17 July, 13

Page 10: Building Blocks for the Internet of Things @ Home

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

Page 11: Building Blocks for the Internet of Things @ Home

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

Page 12: Building Blocks for the Internet of Things @ Home

BLE purpose

• for small sensors and devices

• for personal area networks

• for health stuff ... scales, heart-rate monitors, etc.

Wednesday, 17 July, 13

Page 13: Building Blocks for the Internet of Things @ Home

BLE use

• Think of it as “invisible wires”

• Will be controlled...

• directly by mobile devices

• indirectly through hubs

Wednesday, 17 July, 13

Page 14: Building Blocks for the Internet of Things @ Home

Discovery

Wednesday, 17 July, 13

Page 15: Building Blocks for the Internet of Things @ Home

“Google for my home”

• find what’s available...

• ... and what can I do with it?

Wednesday, 17 July, 13

Page 16: Building Blocks for the Internet of Things @ Home

Bonjour

• Lightweight Service Discovery

• Standard needed for specifying how to find IoT services / APIs

Wednesday, 17 July, 13

Page 17: Building Blocks for the Internet of Things @ Home

Control

Wednesday, 17 July, 13

Page 18: Building Blocks for the Internet of Things @ Home

APIs

• IoT devices are controlled by APIs

• URLs ... from Bonjour Discovery

• HTTP

• JSON

Wednesday, 17 July, 13

Page 19: Building Blocks for the Internet of Things @ Home

REST

• URLs describe things ... not actions

• /api/light-2 ✓

• /api/light-2/off ✗

• Stateless

• ... lots of other stuff ...

Wednesday, 17 July, 13

Page 20: Building Blocks for the Internet of Things @ Home

HATEOAS

• Always explicitly use URLs ... not numbers or special codes

• “devices” : [ “/api/light-1”, “/api/light-2” ] ✓

• “devices” : [ 1, 2 ] ✗

Wednesday, 17 July, 13

Page 21: Building Blocks for the Internet of Things @ Home

JSON

GET /api/devices{ "devices" : [ "/api/light-1", "/api/light-2" ]}

Wednesday, 17 July, 13

Page 22: Building Blocks for the Internet of Things @ Home

JSON

GET /api/light-1{ "on" : true, "brightness" : 0.5, "color" : "#FFFFFF"}

Wednesday, 17 July, 13

Page 23: Building Blocks for the Internet of Things @ Home

JSON

PUT /api/light-1{ "on" : false}

Wednesday, 17 July, 13

Page 24: Building Blocks for the Internet of Things @ Home

Interoperability

Wednesday, 17 July, 13

Page 25: Building Blocks for the Internet of Things @ Home

Can...

• devices easily talk to each other?

• devices be controlled from one UI?

• “novel” devices be effortlessly introduced?

Wednesday, 17 July, 13

Page 26: Building Blocks for the Internet of Things @ Home

Standards?

• Fine grained / line level ... not on

• Everyone always does their own thing

Wednesday, 17 July, 13

Page 27: Building Blocks for the Internet of Things @ Home

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

Page 28: Building Blocks for the Internet of Things @ Home

The Semantic Web

• A kind of wide-open database, use what you need, infinitely extendable

• Everything described by URLs

Wednesday, 17 July, 13

Page 29: Building Blocks for the Internet of Things @ Home

schema.org

• Vocabulary for describing things and products (and more)

• e.g. this is a Toshiba 42” Flatscreen TV

Wednesday, 17 July, 13

Page 30: Building Blocks for the Internet of Things @ Home

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

Page 31: Building Blocks for the Internet of Things @ Home

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

Page 32: Building Blocks for the Internet of Things @ Home

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

Page 33: Building Blocks for the Internet of Things @ Home

Security

Wednesday, 17 July, 13

Page 34: Building Blocks for the Internet of Things @ Home

We Can’t...

• Hide the devices / APIs

• Make everyone log into every device

• Get this wrong!

Wednesday, 17 July, 13

Page 35: Building Blocks for the Internet of Things @ Home

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

Page 36: Building Blocks for the Internet of Things @ Home

Wide open

• Sorry, I’ve got nothing

• This can’t be half-baked

Wednesday, 17 July, 13

Page 37: Building Blocks for the Internet of Things @ Home

Device Limitations

Wednesday, 17 July, 13

Page 38: Building Blocks for the Internet of Things @ Home

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

Page 39: Building Blocks for the Internet of Things @ Home

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

Page 40: Building Blocks for the Internet of Things @ Home

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

Page 41: Building Blocks for the Internet of Things @ Home

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

Page 42: Building Blocks for the Internet of Things @ Home

Get in touch!

David Janes@dpjanes

[email protected]://imadeit.davidjanes.com/

Wednesday, 17 July, 13