Upload
dominique-guinard
View
1.423
Download
1
Tags:
Embed Size (px)
Citation preview
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
© EVRYTHNG | 2014 COMMERCIAL AND CONFIDENTIAL
@EVRYTHNG | evrythng.com
Web Thing Model Towards a Lightweight Standard to Make Things talk Web
W3C WoT Interest Group Meeting, 20.05.2015
Dom Guinard CTO & Co-founder, EVRYTHNG Vlad Trifa R&D Lead and Co-founder, EVRYTHNG
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
1. THE IOT & THE WOT
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
What is the Internet of Things?
The Internet of Things is a science primarily focusing on creating the
most complex ways of turning lights on and off.
“ “
[@domguinard]
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
+
Before
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
After
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
What is the Web of Things?
The Web of Things is about bringing order in the IoT chaos by
using Web good practices
“ “ [@domguinard]
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
WoT Web
Web
Web
Web
Web
Web
Internet Of Things Web Of Things
ZigBee
Bluetooth
X10
Bacnet
enOcean
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Web of Things
Internet of Things
How do we connect things to the Internet?
How do we connect applications & things?
Applications? § OSI Layer 7 + § HTTP, REST,
JSON § Social nets,
semantics § Mashups
Networking? § OSI Layer 4 – § IPv6lowpan,
EPC, WiFi, BLE Zigbee / 800.15.04
“Uniquely identifiable objects and their virtual representations in an Internet-like structure” § Auto-ID Labs (K.
Ashton, S. Sarma, F. Mattern) ~ 1999
“Application architecture for physical objects” § D. Guinard, D.
Raggett, V. Trifa, E. Wilde ~ 2007 http://bit.ly/wot-pub
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
§ Simplifying Application Development in the Internet of Things
[flickr.com/photos/docman]
Our mission: “Bridging the gap between Things and Web”
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Social Web Real-time Web
Semantic Web Programmable Web
Mashups Rest APIs
JSONWeb Services
WebSockets
Web HooksPush Notifications
Facebook Twitter
OAuth
Microdata
RDFaschema.org
Link Headers
RSS/ATOM
The Web of Things
JSON-LD
DelegatedAuthentication
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
http://bit.ly/wot-phd http://webofthings.org/publications
Initial Web of Things Architecture Framework
Things
Level 4Compose
Node-red
Clickscript
Mashups
Applications
Level 3Share
Social WoT
SSL/TLS
OAuth
ACLDelegated
Authentication
Level 2Find
Link Header
Hateoas
Microdata
Linked Data
JSON-LDREST Crawler
JSONHTML
HTTPNetwork Discovery
Web search
URI / URLLevel 1Access
REST API
Gateways
Web Hooks WebSockets
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
TOWARDS A WOT STANDARD
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Output of experiences / feedback
+ +
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
BACK TO 2007-2009
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014 http://webofthings.org/publications
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
GET
GET, PUT
GET, DELETE
Resource Design
Representa0on Design
Interface Design
Implementa0on Strategy
h<p://<DOMAIN>:<PORT>/genericNodes /temperature /sensors /node1
h<p://<DOMAIN>:<PORT>/genericNodes
Source: http://bit.ly/wot-phd
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
REFERENCE IMPLEMENTATION
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Root URL ofRaspberry Pi
devices.webofthings.io/pi
actuators/actuators
LEDs/leds
LED #/{led#}
sensors/sensors
light sensor/light
temperature sensor/temperature
buttons/buttons
acceleration/accel
gyroscope/tilt
/x
/y
/z
/x
/y
/z
/1
/2
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
DEVICES.WEBOFTHINGS.IO
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
OK? Why do we need a standard?
§ Web of Things != Internet of Things § Web is a very good step in the right direction but
§ Web APIs have also created thousands of semi-isolated silos
§ Need for a simple set of rules § Protocol (REST with JSON over HTTP) § Resource models (what is in the JSON) § Support for extensions (semantics, social, etc.)
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Goal of the proposal in a nutshell
1. Blueprints on how to implement APIs for Web Things (REST, HTTP, JSON, etc.)
2. Standard resources and data-model for the representations
3. Reference implementation of a compliant gateway
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
What would this help for?
§ Blueprints = no brainer = faster implementation for companies § Avoid some horrible options (like WS-* on devices)
§ Automatic generation of User Interfaces including 100% Web-based UIs
§ Automatic generation of mashup building blocks § API to API integrations § Automatic, spontaneous integration?
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Current proposal in a nutshell
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
1. WEB THINGS INTEGRATION PATTERNS
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Direct Connectivity
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Gateway Proxied Connectivity
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Cloud Proxied Connectivity
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
So what?
§ We should not care about whether it’s a Gateway, a Thing or an IoT/WoT Cloud platform they should use the same blueprints, resources, formats and payloads: § The Web Thing API
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
2. WEB THINGS REQUIREMENTS
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
SEE: HTTP://WEBOFTHINGS.GITHUB.IO/WOT-COMPOSE/
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Level 0 – MUST
§ R0 - WT MUST be an HTTP 1.1 server § R0 - WT MUST have a root resource accessible via
an HTTP URL § R0 - WT MUST support GET, POST, PUT, and
DELETE HTTP verbs § R0 - WT MUST implement HTTP status codes 200,
400, 500
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Level 0: MUST (2/2)
§ R0 - WT MUST support JSON as default representation
§ R0 - WT MUST support UTF8 encoding for requests and responses
§ R0 - WT MUST support GET on its root URL
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Level 1: SHOULD
§ R1- WT SHOULD use secure HTTP connections (HTTPS )
§ R1 - WT SHOULD support additional HTTP status codes as needed
§ R1 – WT SHOULD have a “doc” link in their root representation
§ R1 - WT SHOULD support the Web Streams Protocol (explained next)
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Level 2: MAY
§ R2 - WT MAY support OPTIONS for each of its resources
§ R2 - WT MAY have a default machine-readable documentation
§ R2 - WT MAY provide additional representation semantic mechanisms (RDF, XML, JSON-LD)
§ R2 - WT MAY offer an HTML interface/representation (UI)
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
3. WEB THINGS MODEL
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
From Web Thing to Extended Web Thing
§ Web Thing § A Web Thing is a digital representation of a physical object
accessible via a RESTful Web API. A Web Thing conforms to this specification if it follows the statements defined in 5. Web Things requirements.
§ Extended Web Thing § An Extended Web Thing that also supports the REST API and data
model defined in this specification, thus enabling its automatic inclusion in more complex systems.
§ An Extended Web Thing conforms to this specification if it follows the statements defined in § Web Things requirements § Web Things model.
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Entities § Client
§ A Client refers to any physical or digital entity that can interact with a Web Thing. This can be a mobile application, a Web browser, a proxy, a desktop application, but also another Web Things (e.g., in the case of Machine to Machine communication).
§ Property § A Property is a variable of a Web Thing. § Properties represent the internal state of a Web Thing. Clients can subscribe to properties
to receive a notification message when specific conditions are met (e.g. value of one or more properties changed).
§ Action § An Action is a function offered by a Web Thing. § A Client invokes a function on a Web Thing which initiates a state transition by sending it
an Action. Examples of Actions are “open” or “close” for a garage door; “enable” or “disable” for a smoke alarm; “check-in” or “scan” for a bottle of soda or a place. The direction of an Action is from the Client to the Web Thing.
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Resources
Provided by: D = Device, G = Gateway, C = Cloud
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Models
§ Can be used in JSON, JSON-LD, HTML, etc. § Web Link Headers § See http://webofthings.github.io/wot-compose
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Subscriptions
§ WebHooks § WebSockets § Using protocol
upgrade mechanism
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Details & Updates
§ This is work in progress! § Will be an official W3C submission
§ End of August 2015 § See the details and up to date version on
§ http://webofthings.github.io/wot-compose/ § Join the discussion: comment!
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
WHAT’S NEXT?
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Next steps
§ Document now open for comments on: § http://webofthings.github.io/wot-compose
§ Major protocols integration § CoAP § MQTT
§ Need to look at integration points § Semantic Web (JSON-ld, etc.) § Social Networks, oAuth, etc. § Etc.
§ Official W3C Submission end of August 2015
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Links § http://webofthings.org/publications
§ A number of WoT related publications including the initial 2009 WoT architecture implementation papers, books, PhD theses, etc.
§ http://webofthings.org/wot § International Web of Things Workshop (yearly, 2010 – now)
§ http://evrythng.com § First WoT cloud platform, free accounts for developers
§ http://twitter.com/webofthings § WoT twitter community group
§ https://www.linkedin.com/grp/home?gid=1818463 § Linkedin WoT group
§ http://www.w3.org/WoT/ § W3C WoT activities
@ConnectEvrythng © EVRYTHNG Limited | Confidential | 2013 @EVRYTHNG © EVRYTHNG | Confidential | 2014
Thank you
Dominique ‘Dom’ Guinard CTO & Co-founder
[email protected] @domguinard