Web of Things Framework

advertisement
An introduction to the
Web of Things Framework
May 2015
Dave Raggett, W3C
This work is supported by the European Union's 7th Research Framework
Programme (FP7/ 2013-2015) under grant agreement nº317862 - Compose
The Promise of the IoT
With thanks to Vision Mobile
The Challenge
●
●
●
●
We expect one hundred billion IoT devices to be deployed
within ten years
But, the Internet of Things is currently beset with problems
●
Product silos that don't interoperate with each other
●
Plethora of approaches & incompatible platforms
●
This is blocking the benefits of the network effect
This is painful for developers
●
Hard to keep track of who is doing what
●
Expensive to learn and port to different platforms
●
Challenging to create services that span domains and platforms
Platform developers seeking to unlock the commercial potential
●
To reduce development costs for IoT applications and services
●
To fulfil customer demand for services requiring integration with other platforms
●
To grow the size of the overall markets
●
A small share of a huge market is better than a big share of a small market
3/26
The Web as the Solution
“Things” as virtual objects acting as proxies for physical and abstract entities
**
4/26
Many Business Opportunities
●
Homes & Offices
●
●
Life and Healthcare
●
●
Security, Energy, Entertainment, Pets, Lighting, Heating (HVAC), White Goods, ...
Fitness, monitors, medication
Cities
●
Transportation, Utilities, Planning, Security
●
●
●
Energy
●
Reducing peak demand through smart energy appliances
●
Dealing with local generation of power, and rise of electric cars
Retail & Catering
●
●
Logistics, Design, Manufacturing
●
Reduction of 1% of operational costs can save billions
●
Speeding design to delivery of bespoke products
Environment
●
●
Logistics, Beacons, Richer information on products, Loyalty schemes
Industry
●
●
Cars as an integral spart of the Web of Things
Droughts, Floods, Fires, Emergency management
Big Data
●
Creating value by analysing combinations of multiple sources of data
5/26
From Pages to Things
●
The web of pages is founded upon
●
IRIs for addressing
●
HTTP for access
●
HTML for pages and for discovery
●
●
Search engines following the links in pages
Web of Things by analogy with web of pages
●
IRIs for addressing
●
HTTP and other protocols for access
●
●
No one protocol can satisfy all needs
Thing Description Language (TDL)
●
Semantics and data formats as basis for interoperability
●
Relationships to other things as basis for discovery
** IRI is an abbreviation for Internationalised Resource Identifiers (aka URIs or web addresses)
6/26
Web of Things Framework
●
Expose IoT platforms and devices through the
World Wide Web for a Web of Things
●
Device abstraction layer to bridge IoT to the Web
●
“Things” as proxies for physical and abstract entities
●
Modelled in terms of events, properties and actions
●
●
What events does this thing generate?
●
Someone has just rung the door bell
●
Someone has just inserted a door key
What properties does this thing have?
●
●
What actions can we invoke on this thing?
●
●
●
Door is open or closed
Unlock the door
Thing with on/off property as proxy for a light switch
With bindings to scripting APIs and protocols
●
Service logic decoupled from underlying communication details
7/26
Web of Things Framework
●
Standard way to retrieve “thing” descriptions
●
Standard format for “thing” descriptions (e.g. JSON-LD)
●
Owner, purpose, version, access control, terms & conditions,
relationships to other things, security best practices, . . .
●
●
●
Semantics and data formats for events, properties & actions
Properties have discrete values, or smoothly changing values
that are interpolated between data points, e.g. for robotics
●
●
●
Delegating control to where it makes the most sense
Clock sync across controllers: 1-10 mS with NTP,
and microseconds with IEEE protocols
Communication patterns
●
●
Giving data owners control over who can access their data
and for what purposes – contract between consumer & supplier
Push, pull, pub-sub, and peer to peer
Bindings to a range of protocols
●
HTTP, Web Sockets, CoAP, MQTT, STOMP, XMPP, WebRTC
8/26
Interacting with a “Thing”
●
Representational State Transfer (REST)
●
HTTP GET to retrieve a thing's description
●
HTTP GET to retrieve all properties of a thing
●
HTTP PUT to update all properties of a thing
●
HTTP PATCH to apply changes to some properties
●
HTTP POST to invoke actions on a thing
●
HTTP POST is also used to notify events
●
●
To proxies or dependent things
REST can be used with other protocols
●
To send actions to thing within a firewall
●
To distribute updates via pub-sub model
9/26
Servers at many scales
Servers are free to choose which scripting languages they support
Could precompile service behaviour for constrained devices
10/26
Example of a Home Hub
11/26
Relationships between Things
●
“Thing” description includes the relationships to the things that this
thing depends upon
●
Server uses this to retrieve descriptions of related things as basis for
deciding how to connect to them and expose them to scripts that define
this thing's behaviour
●
With support for circular dependencies
●
Enables search engines to index the web of things
●
Supports richer search queries based upon relationships
●
Enables dependency management
●
●
●
●
Perhaps analogous with Linux package management
Decouples service behaviour from data protocols
Simpler expression of service behaviour via
local names for things
Choice between early and late bound types
●
Strong vs weak typing and implications for extensibility
12/26
End-User Service Creation
●
Event-condition-action rules
●
●
●
Trigger action upon event if condition is true
High level events defined in terms of
lower level events
Higher level actions defined in terms of
lower level actions
●
●
Ordered and unordered sequences of actions
Pre- and Post-conditions
●
Simple to use graphical editing tools
●
Vocal commands (as with Apple's Siri)
●
“turn the heating down when I leave home”
13/26
Appeal of JSON-LD
●
●
What makes JSON-LD attractive as basis for the thing description
language?
W3C Recommendation from 16 Jan 2014
●
●
Combines simplicity of JSON with the power of the Linked Data and
the Semantic Web
●
●
●
http://www.w3.org/TR/json-ld/
Out of band profiles and binary JSON formats for short packet protocols
We would define a core profile for a vocabulary common to
all “thing” descriptions
Implementers would be encouraged to re-use vocabularies for
specific application domains
●
These could be defined by industry specific groups
●
Need for better schema/vocabulary languages?
●
Dynamic data validation for greater robustness
14/26
Thing Descriptions
Server uses IRI for a thing to download its description
●
{
}
Door
“@events” : {
“bell”: null,
“key”: {
“valid” : “boolean”
}
},
“@properties” : {
“is_open” : “boolean”
},
“@actions” : {
“unlock” : null
}
●
{
}
Light switch
“@properties” : {
“on” : {
“type” : “boolean”,
“writable” : true
}
},
TDL's default JSON-LD context defines bindings of core vocabulary to IRIs
Data models may be defined explicitly or by reference to an external definition
Thing as Agent
●
Thing description
{
}
●
It's behaviour
// invoked when service starts
@context : {
@base=”http://….
},
“@dependencies” : {
“door” : “door12”,
“light” : “switch12”
}
function start () {
door.observe(“key”, unlock);
}
function unlock(key) {
If (key.valid) {
door.unlock();
light.on = true;
}
}
This “thing” is an agent that is bound to a specific door and light switch.
It unlocks the door and turns on the light when a valid key is presented.
n.b. @base defines a base IRI for resolving relative IRIs
Miscellany
●
●
For validation and specification of vocabularies
●
JSON-Schema
●
RDF-Schema
●
OWL
For efficient transfer of structured data
●
JSON (defined by RFC7159, ECMA 404)
●
●
●
Google's Protocol Buffers
●
XML with EXI
Bindings to protocols need to cover encodings
●
●
MessagePack, Universal Binary JSON, etc.
/.well-known/protocols for retrieving server's protocol support?
Actions on things are asynchronous and may return results
Thingsonomies
●
●
●
The purpose of a “thing” can be defined formally in respect
to an ontology
The purpose can be defined informally using free text, e.g.
as one or more tags chosen by the maintainer
Co-occurrence of tags across many “things” performs an
informal expression of semantics
●
●
In same way as folksonomies for images or blog posts
Statistical treatment of natural language and cognitive
models make this increasingly attractive, e.g.
●
Apple Siri
●
Google Now
●
IBM Watson
Thing Descriptions
●
Thing descriptions may be static and shared by many “things”
●
These things can define their description by reference
●
●
●
●
Relationship to statically typed programming languages
Some kinds of things may involve descriptions that change over
time, e.g. a new owner, or a new physical location for a sensor
●
Events signalling changes to metadata?
●
Thing memories that record changes over a thing's lifetime
Bindings to protocols may involve self tagged data
●
Analogous to “unions” in programming languages
●
Allows for extensibility – ignore new fields you don't know about
The properties of a “thing” may include data blobs that have a
meaning and a content-type
●
Photo of someone and encoded as image/jpeg
Focus of W3C Contribution
●
Things
●
Thing descriptions
●
Data models & relationships between things
●
Dependencies and version management
●
Discovery and provisioning
●
Bindings to APIs and protocols
Security related metadata
●
Security practices
●
Mutual authentication
●
Access control
●
Terms & conditions
●
METADATA
Security
Comms
●
Relationship to “Liability”
●
Payments
●
Trust and Identity Verification
●
Privacy and Provenance
●
Resilience
Communication related metadata
●
Protocols and ports
●
Data formats & encodings
●
Multiplexing and buffering of data
●
Efficient use of protocols
●
Devices which sleep most of the time
20/26
Semantics for Smart Appliances
●
●
Semantic Sensor Network Ontology
●
W3C SSN Incubator Group report
●
SSN Ontology
Sensor Model Language (SensorML)
●
●
Sensor Markup Language
●
●
Developed by Open Geospatial Consortium
JSON & XML/EXI – IETF draft-jennings-core-senml
TNO's smart appliance ontology for ETSI M2M
●
Developed on behalf of European Commission
IETF CoRE WG
●
CoRE WG with focus on resource oriented applications for
constrained IP networks, and responsible for CoAP protocol
●
See tracker page and CoAP website
●
CoAP is based on REST and similar to HTTP
●
●
●
GET, PUT, POST, DELETE, OBSERVE methods
CoAP is a good fit for the Web of Things
Resource discovery
●
Unicast or multicast queries
●
Link format (RFC6690) analogous to HTTP Link header
●
●
●
●
Which itself is modelled on HTML's LINK element
JSON link format under consideration
GET /.well-known/core returns list of resources
Notifications with push and pub-sub
●
Interested parties register with GET
●
Notifications are sent with OBSERVE method
The Maker Community
●
Open hardware and open source software are a huge
opportunity for a bottom up approach to growing the
Web of Things
●
Let's have lots of fun!
ESP8266: 80MHz
32 bit MCU + WiFi
Available for 2 USD
Arduino
CoAP: REST for IoT devices
MicroCoAP: 16 KB including the
Ethernet library, for more see:
https://github.com/1248/microcoap
MQTT as a lightweight binary
Pub-sub protocol with brokers, see:
https://github.com/knolleary/pubsubclient
NodeJS based Web of Things server
with many libraries available for IoT
(run on Raspberry Pi as Home Hub)
CC2530: 8051 MCU + IEEE 802.15.4
Up to 256 KB flash + 8 KB RAM
Available at 0.5 USD in quantity
C & Arduino IDE
Lua & NodeMCU
MicroPython
RIOT OS
Sensors
Web of Things Interest Group
●
Launched in January 2015
●
●
Focus on pre-standardisation work
●
●
First face to face in Munich, April 20-22
Survey of use cases and requirements across
app domains and business sectors
●
Architecture and technology landscape
●
Security, privacy and resilience
●
Discovery and provisioning
Liaison with external IoT groups
●
●
See list on IG wiki page
Preparation of proposed WG charter for launch late 2015
●
Standardise Web of Things Description Language
●
Standardise Bindings to APIs and Protocols
●
In collaboration with other groups
●
●
IETF protocols such as HTTP, WebSockets, CoAP, and XMPP
Security best practices
24/26
Join the Web of Things IG
http://www.w3.org/WoT/IG/
●
●
Help us to prepare the ground for standardizing the Web of Things
Framework by joining the Interest Group
We've recently set up the following task forces
●
Use cases and requirements
●
●
We're looking for help with broadening this
across a wide range of business sectors
You can help us to set up task forces for
specific business sectors
●
●
Web of Things Framework
●
●
●
●
●
How much money could your company benefit from the IoT?
Thing descriptions
Discovery and provisioning
Bindings to APIs and protocols
Security and Privacy
We plan to review a draft Working Group charter
at our July F2F in North America
25/26
Summary
●
The IoT is growing very fast but needs web scale standards to realise its potential
●
●
The Web of Things is based upon Linked Data to model virtual objects as proxies for physical
and abstract entities
●
●
●
●
●
Web technologies to enable web scale markets and reduce the cost for developing IoT apps and services
JSON-LD combines simplicity of JSON with the power of Linked Data
A new class of web servers that communicate with each other at
an abstract level in terms of metadata, events, properties and actions
Bound to a variety of protocols to support common communication patterns
●
Push, pull, pub-sub and peer to peer
●
Protocols like HTTP, WebSockets, CoAP, MQTT, XMPP and WebRTC
Implementable on a wide range of scales
●
Microcontrollers with CoAP
●
Smart phones and home/office hubs
●
Cloud-based server farms
Supports early and late bound data types
●
Important for extensibility and resilience to changes
●
W3C WoT IG on pre-standardisation activities, WG to follow late 2015
●
Help us to enable the IoT to realise its full potential!
26/26
Download