87
Dom Guinard CTO & Co-founder Web of Things History & Platforms Compose & EVRYTHNG © EVRYTHNG Limited | 2014 @EVRYTHNG | @webofthings

Web of Things Platforms Tutorial

Embed Size (px)

DESCRIPTION

Web of Things Platforms Tutorial

Citation preview

Page 1: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Dom Guinard CTO & Co-founder

Web of Things History & Platforms Compose & EVRYTHNG

© EVRYTHNG Limited | 2014

@EVRYTHNG | @webofthings

Page 2: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Today’s Suggestion of the Chef

1.  From the IoT to the Web of Things

2.  The WoT Architecture 3.  WoT Implementation:

EVRYTHNG 4.  WoT Research:

COMPOSE 5.  Q&A

Page 3: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

SOME IOT & WOT HISTORY

Page 4: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Me in a Nutshell

§  2005 – Sun Microsystems •  Indoor location services based on RFID (EPCGlobal standards)

§  2007 – Auto-ID Labs Zurich •  Mobile IoT Project with Nokia, RFID & WSN •  Founded Webofthings.org

§  2007 – SAP Research •  IoT taskforce, working on SOA for the IoT

§  2008 – PhD at ETH Zurich •  Web of Things Architecture

§  2010 – Auto-ID Labs, MIT •  Web of Things and RFID + Sensor Networks

§  Now – Co-founder/CTO @ EVRYTHNG

Page 5: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

The Internet of Things Era

My IoT Journey started

EPC, OPC-UA, DPWS,

WS-*

Started talking Web

of Things

Google Buys Nest

EVRYTHNG

Page 6: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Back in 1999: the original Auto-ID IoT

Page 7: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

BUT THEN THINGS WENT WRONG...

Page 8: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Wifi Hockey Light

Page 9: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

New connected interfaces

Page 10: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Smart health for plants

Page 11: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Smart Home

Valleywag’s Sam Biddle tweeted: “If your house is burning down, you’ll now get gmail ads for fire extinguishers.”

Page 12: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

New connected business models

Real-time risk-adjusted, pay-as-you-go insurance.

Page 13: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Smart things for simpler, more social lives

Page 14: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

You won’t need to hunt anxiously for your missing shoes in the morning, you’ll Google them.

“ ”

Source: Bruce Sterling, ‘Shaping Things’

Real objects part of the real-time web

Page 15: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Source: Bruce Sterling, ‘Shaping Things’

Real objects part of the real-time web

Things that are persist & discoverable online, query-able, permission aware, relationship aware & actuate-able via the Web.

Page 16: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Many, MANY things joined the party…

In 2020, Over 30 Billion Connected Devices Will

Be In Use Source: IBM Investor Briefing ‘Making Markets: Smarter Planet’

Source: Cisco

One trillion connected devices by 2015.

Source: Gartner

Page 17: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

WEB OF THINGS

Page 18: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

The IoT – not quite there yet

Smart buildings Smart fridges

Smart cities

Smart cars

Smart energy

Smart [insert buzzword here...]

Page 19: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

The Internet of Things Today

§  Distributed Sensing Applications §  Tedious process that requires many resources (skills, time, $$

$) –  Various functionalities, sensors, requirements –  Incompatible protocols, standards, programming models, APIs, etc. –  “Wheel reinvention” is common (hard-wired applications)

Web Gateway

low-power radioprotocols

(ZigBee, etc.)

base-stationconnected via

serial linestorage

analysis&

processingWeb page

Page 20: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Page 21: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

2007-2008: The Web as the Application Layer for the IoT

•  Wait how about the Web? •  It did help the Internet

to become useful in a simple manner

•  “Putting Things to REST”, Erik Wilde

•  “Towards the Web of Things”, Dave Raggett @ IoT 2008

•  Webofthings.com opens, WoT Whitepaper, Vlad Trifa & Dom Guinard

Page 22: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

§  Leverage Web architecture, standards and techniques –  HTTP, HTML, JSON, RSS, MIME, caching, authentication,

etc. –  TCP/IP & Web granted, Wi-Fi routers ubiquitous

Web of Things: HTTP to bind them all!

WebHTTP

proprietary

Bluetooth

X10

IEEE802.15.4

DLNA

HTTP

HTTP

Google APIs

Flickr API

GatewayAPI

Page 23: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Web of Things

Internet of Things

Web of Things vs. 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, V. Trifa,

E. Wilde, D. Raggett ~ 2007

Page 24: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

The Web for Things? Yeah thanks but, no thanks!

Page 25: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Page 26: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

2009: The WSN / Ubicomp Community starts thinking about it again

•  Working with embedded devices requires a PhD in CS…

•  Researchers start thinking about the Web seriously…

•  “Our results show that Web service requests can be completed well below one second and with a low power consumption, even in a multi-hop setting.”, Dunkels et al. http://bit.ly/1tjxskD

•  “Towards the Web of Things: Web Mashups for Embedded Devices.”, Dominique Guinard, Vlad Trifa http://bit.ly/wot-paper

•  More publications like the WoT architecture followed:http://www.webofthings.org/publications/

•  Started the WoT Workshop series:

http://webofthings.org/wot

Page 27: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

KISS: Keep It Simple Stupid

•  RESTful Web API: –  70% easy to

very easy to learn

–  63% fast to very fast to learn

–  See: http://bit.ly/rest-vs-ws-iot

Page 28: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Page 29: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Page 30: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Page 31: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

The Web of Things

Social Web

Real-time Web

Programmable Web Semantic Web

Physical Web

Web of Things1

1 Web of Things community - http://webofthings.org

Page 32: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Connecting Objects to the Web

Web of Things Platforms

Connected Devices Sensors Tagged Products

Data from and about a diversity of products can connect with applications in a consistent and persistent way.

RESTful APIs & Application Tools

Persistent URI & URLs

TheEVRYTHNGEngine

An Active Digital Identity™for every thing

Apps Space

Page 33: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Simplifying Application Development in the Internet of Things

[flickr.com/photos/docman]

Web of Things Application Architecture

Bridging the gap between things and applications.

Page 34: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Web of Things Application Architecture

http://webofthings.org/publications

Page 35: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Device Accessibility Layer

§  How do we make smart things accessible on the Web? §  Generic design process for smart things as Web resources:

–  Based on REST and Resource Oriented Architectures –  Extend with Pub/Sub

•  E.g., MQTT, XMPP, CoAP

Page 36: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Web-Enabling Smart Things

Resource Design

Representation Design

Interface Design

Implementation Strategy

•  Based on REST and Resource Oriented Architecture.

GET, POST, PUT, DELETE, OPTIONS

Content Negotiation, Status Codes

Page 37: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

•  Identify Resources: –  Any component of an

application that needs to be used and addressed.

•  Link resources together

Resource Design

Representation Design

Interface Design

Implementation Strategy

Page 38: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

•  Smart things should offer different representations: –  HTML for browsability –  JSON for mashups

Resource Design

Representation Design

Interface Design

Implementation Strategy

{ "resource": { "methods":["GET"], "name":"Temperature", "links":["/feed", "/rules"], "content": [ { "description":"Current Temperature", "name":"Current Ambient Temperature", "value":"24.0", "unit": "celsius“ } ] } }

Page 39: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Resource Design

Representation Design

Interface Design

Implementation Strategy

§  Leverage content negotiation: –  Accept: application/json

§  Use the HTTP Verbs extensively: –  GET, PUT, POST, OPTIONS, DELETE –  GET /genericNodes/2/sensors/temperature –  PUT /genericNodes/2/actuators /led/1

§  Map status codes: –  200 OK, 201 Created, 400 Bad Request, etc.

§  The presented design process can be automated

Page 40: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Resource Design

Representation Design

Interface Design

Implementation Strategy

Mediated (Smart Gateways)

•  The API is served via mediator(s): –  Mobile phone –  Smart Gateways (e.g.,

CISCO iOX, Intel IoT Gateway, Open WRT)

–  EVRYTHNG API

§  The API is served by the device itself: •  IP connectivity •  6lowpan •  CoAP •  Ethernet + PoE •  GSM •  Etc.

•  + Webserver

Direct access

Page 41: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Resource Design

Representation Design

Interface Design

Implementation Strategy

Page 42: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Findability Layer

•  Once smart things are accessible on the Web, how do we enable users to find the right service for their application?

•  Enabling Smart Things to be indexed by search engines (lightweight semantic metadata: microdata, schema.org, Swagger, JSON-LD)

•  Local lookup and discovery infrastructure

Page 43: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Swagger

“The goal of Swagger™ is to define a standard, language-agnostic interface to REST APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection.”

Page 44: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Swagger Example

Page 45: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Sharing Layer

•  Once smart things are accessible and findable on the Web, how do we share them?

•  Sharing implies security issues have to be addressed. •  As much end to end as possible. •  Novel approach “Social Web of Things”

15.08.2011 45 Dominique Guinard

Page 46: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Social Access Controller (SAC)

§  Existing systems: –  Require dedicated access

control lists (e.g., HTTP Digest or Basic Authentication, ACL… )

§  OR …Leverage social graphs of social networks: –  Are walled-gardens [Ber2009]

–  Allow sharing data, not services

§  Social Access Controller as proxy between clients and smart things

[Ber2009] Tim Berners-Lee. Twenty years: Looking forward, looking back. WWW 2009

Page 47: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Social Access Controller (SAC)

Page 48: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Sharing in Friends and Things

https://SOCIAL-ACCSES-CONTROLLER-URL/gateways/GATEWAYURL/ /resources/sunspots/spot1/sensors/temperature

Page 49: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Composition Layer

•  Once smart things are accessible, findable, shareable on the Web, how do we enable their easy composition by non-specialists, into new applications?

•  Physical Mashups

15.08.2011 49 Dominique Guinard

Page 50: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

From Web 2.0 Mashups to Physical Mashups

§  Web 2.0 Mashups: –  “Web applications

generated by combining […] disparate Web sources […] to create useful new services” [Yu2008]

–  Ad-hoc applications accessible to a larger public

§  Physical Mashups: –  Composite Web

applications involving smart things and virtual Web services

–  Three development approaches [Yu2008] Yu, J., Benatallah, B., Casati, F., &

Daniel, F. Understanding Mashup Development. IEEE Internet Computing

Page 51: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Energie Visible: An Energy-Aware Mashup

•  Developers: –  Smart Meters as a

RESTful Web API: –  Mashup with any

language supporting HTTP

•  Users: –  Used by several

families around the world (Energie Visible)

Page 52: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

•  Developers: –  RFID Readers & Data in a

black-board approach –  Wizard-based creation of

Widgets –  Merging Web data and

real-world RFID data •  Users:

–  Simple Web page providing real-time business intelligence

–  Deployed at the SAP future store

Widgets Dashboards

Page 53: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Electronic Article Surveillance 3.0

15.08.2011 53 Dominique Guinard

[Naef2009] Naef, L. ClickScript a visual programming language in the browser. Master Thesis, ETH Zurich

[Gui2010d] Guinard, D., Floerkemeier, C., & Sarma, S. Cloud Computing, REST and Mashups to Simplify RFID Applications, WoT 2011

Page 54: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Physical Mashups WoT-a-mashup

Condition if bought or not RFID reader

ERP EPCIS

Camera and websocket push

Page 55: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Physical Mashups

nodered.org

github.com/webofthings/wot-a-mashup

Page 56: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

All together…

Page 57: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Web of Things Follow up

§  Blog: www.webofthings.org §  Software: www.webofthings.org/projects §  Publications: www.webofthings.org/publications

Page 58: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

W3C Interest Group

§  http://www.w3.org/2014/09/wot-ig-charter.html

Page 59: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

A WOT IMPLEMENTATION:

EVRYTHNG API

Page 60: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

The Web of EVRYTHNG!

A RESTful API for objects - even “dumb” ones

Web

Maintenance

information

Tech

support

API

API

API

API

History of

ownership

VIP Forum

for owners

Native/Web

Mobile apps

Native/Web

Desktop apps

Page 61: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Web of Things - Requirements

To be on the Web, products need: §  A unique, permanent URL with a secure RESTful API §  A container for storing historical data about it §  A semantic format for machine-readable metadata §  Services to manage millions of objects & their real-time

data –  Supports “heavy” processing applications (analytics) –  Connectors/entry points to 3rd party apps (ERP, etc.)

These combined form an Active Digital Identity (ADI). Every object needs an ADI to speak Web.

Tech infos: http://www.evrythng.com/technology/

Page 62: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Terminology & Resources

EVRYTHNG Terminology : §  Product = Product class (SKU)

§  THNG = Unique product instance (S#) –  Metadata, Properties, Locations, …

§  App = Client application that talks to the engine and thngs/products

§  Action = A notification/event by a customer on a THNG or Product

§  User = Real or digital event by a customer on a THNG or Product

§  Short ID = crypto-secure URL for Thngs/Products (for QRs, NFC tags etc.)

§  Active Digital Identity™ = Object profile in the EVRYTHNG ENGINE (Product+THNG+ShortId+User+Actions, etc.)

Resources :

§  http://dev.evrythng.com - EVRYTHNG Engine developer documentation.

§  http://bit.ly/Vx8V8L - EVRYTHNG Web of Things Technology White Paper.

§  http://bit.ly/1gVXOPP - EVRYTHNG Product Relationship Management White Paper.

§  http://www.webofthings.org/ - EVRYTHNG’s research community, with Web of Things technical papers & conferences.

Page 63: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Core Concept - Thngs

Metadata

Location

Properties

Actions

ID: 5332deeee4b046b86a72be5d

- Name- Description- Tags- Serial Number

THNG

Short URL: http://tn.gg/ABc3X53C

Physical Object

Receives & reacts to Events

Reads/updatesits data

Page 64: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Core Concept - Products

THNG

PhysicalObjects

THNG

THNG

THNG

THNG

Metadata

Properties

Actions

ID: UUsAGSeNsepwQ2GhUqgC9mtc

- Name- Description- Tags- SKU # / EAN

Product

- Color- Size- Specifications- Images

Thngs

Page 65: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Core Concept - Applications

THNG

PhysicalObjects

THNG

THNG

THNG

THNG

App 1API K AA

Apps

Engine

App 2API K BB

App 3API K CC

Web User Interface

Device debugger iOS

App

Device Management

App

Apps

Read/writethng data

Sendactions

Updateproperties

Page 66: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Core Concept - Users

THNG

Objects

THNG

THNG

THNG

THNG

App - User Interface

UsersADIs

App - Debug App

App - Admin UI

Case 1Anonymous Users

Case 2Developerssignup/loginvia Facebook

Case 3Company Adminsaccess App data & stats

Apps

Page 67: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Core Concept – Rules Engine

THNG

PhysicalObjects

THNG

THNG

THNG

THNG

RulesEngine

Rules

Engine

Web User Interface

Web Monitoring

App

Actions

Actions

Actions

Apps

Device debugger iOS

App

Page 68: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Resource Model in a Nutshell

Page 69: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Thng-push

Thng-push is a multi-protocol pub/sub for the EVRYTHNG engine: §  Supports several pub/sub

protocols: –  MQTT –  CoAP –  REST Webhooks –  HTML5 Websockets

§  Ideal to overcome the mobility of thngs (changing IP addresses)

§  Enables more reactive use-cases (no-polling) for Smart devices

§  Uniform access control and API for all pub/subs

§  Covers the protocols of virtually all major embedded devices

§  Currently in Beta

•  Based on a core of open-source technologies

•  Enables end-to-end Web communication from Smart devices to browsers (e.g., MQTT -> Websockets)

Technology :

1010 0101 1010

MQTT

1010 0101 1010

1010 0101 1010

CoAP REST or or

THNG-push

1010 0101 1010

WebSocket

1010 0101 1010

REST

Page 70: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

EXAMPLE DEEP-DIVE

Wake up! We’ll be coding!

Page 71: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Connected Devices Demo

§  Idea: Smart Street Lamp 1.  Street lamps come with NFC tags & QR &

Embedded device (Flyport) 2.  Scan lamp 3.  Get real time information 4.  Get actuation possibilities 5.  Get additional services (reporting status) 6.  Dashboard

Page 72: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

1010 0101 1010

1010 0101 1010

MQTT WebSocket

THNG-push

ENGINE & Rules

EVRYTHNG Dashboard

Weather

FB Login Lamp ID Phone Streetlamp

Embedded Sensors

Lamp

1010 0101 1010

REST

1010 0101 1010

1010 0101 1010

1010 0101 1010

1010 0101 1010

CoAP REST or or

1010 0101 1010

1010 0101 1010

1010 0101 1010

REST

1010 0101 1010

1010 0101 1010

Page 73: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Open & Free for the Community

§  Free for academic and personal projects

§  Key features –  REST APIs –  Pub/sub

•  MQTT, CoAP - WS –  Lots of device SDKs (JS,

Arduino, OpenPicus, Nodered, etc.)

–  Web SDKs •  EVRYTHNG.js, Java, .Net,

PHP, etc. –  Dashboard –  Analytics –  Low latency & scale

Register on evrythng.com

Page 74: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

THE RESEARCH: COMPOSE

Page 75: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Collaborative Open Market to Place Objects at your Service

Page 76: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Open and Scalable Marketplace infrastructure

Internet of Things

Internet of

Services

from Smart Objects

to Services

To Applications & Store

FROM the Internet of Things TO the Internet of Services…

Compose Project

Page 77: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Ease the task of developers creating applications based on Internet-connected smart objects

PaaS and MarketPlace for IoT

Compose In Details

Easily: o  register and absorb data from

smart objects o  access historical and real-time

data o  provide analytics services on

incoming data o  send notifications based on

incoming data o  control smart objects (PubSub) o  discover and re-use existing

building blocks o  combine existing building blocks o  build new applications o  deploy new applications

Cloud deployment – CloudFoundry

Do all the above in a secure manner

Page 78: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

COMPOSE Platform in a nutshell

Page 79: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

COMPOSE: Data Processing Pipelines

§  Provide simple data processing logic •  JSON for definition •  JavaScript for processing logic (no loops – finite

computation)

§  Design principles •  Event-driven •  Lock-free •  Stream-oriented

COMPOSE Consortium 79

SO CSO Location

WO

Inside

GeoFence?

UserID

Discard

CSO

SO

Sunny

I want to be notified of users near my location

on a suny day!

Location

Inside GeoFence

and Sunny?

Page 80: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

COMPOSE: Data Processing Pipelines

COMPOSE  Consor,um   80  

{ "groups": { "group1": { "soIds": [ "1393322724658c4f69d27627f496bbb6fadf64bb65f4c", "13933230199264843a282ca8c471e962b4c61c53dadf5" ], "stream": "location" }, "group2": { "soIds": [ "139332303660140b55563e1b34751a9496ecffb0c64a5", "139332304556888d068cef3e645fd803bb4d2a60a15ea" ], "stream": "location" } }, … }

Page 81: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

COMPOSE: Data Processing Pipelines

"streams": { "proximity": {

"pre-filter": "{$group1.}!=null

&& {$group2.}!=null",

"channels": {

"proximity": {

"current-value":

"Math.sqrt(Math.pow({$group1.channels.latitude.current-value} - {$group2.channels.latitude.current-value}, 2) + Math.pow({$group1.channels.longitude.current-value} - {$group2.channels.longitude.current-value}, 2))", "type": "number"

}

}

Page 82: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

•  Unified and integrated security architecture –  Identity management –  Policy specifications

•  Data provenance •  Trust and reputation •  Secure information flow –  Analysis and monitoring –  Instrumentation and reconfiguration

COMPOSE: Security and Privacy

Page 83: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

COMPOSE PUB/SUB

§  Support for MQTT and STOMP –  servIoTicy allows for the interaction with the platform

through protocols that are not HTTP/REST. –  Support for MQTT, STOMP, Web Sockets.

§  They can be used in three different forms

–  For cient/server interaction with servIoTicy, emulating the behaviour of the REST API.

–  For data streams subscriptions: A client can subscribe to a data stream and receive all the updates being send to a SO stream.

–  For  actuations: requesting actions on devices. Actuations allow for the invocation of remote action on a device connected to the platform.

Page 84: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

COMPOSE Components

https://github.com/compose-eu servIoTicy IoT streaming made easy

COMPOSE SDKs http://www.servioticy.com

http://www.gluethings.com

http://iserve.kmi.open.ac.uk/

Page 85: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

SHOW TIME!

Page 86: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

What did we learn?

§  The Web as the Application layer of the IoT –  Key is in translating to Web –  Not the one-size-fits all but best effort, best chances –  Needs some extensions

§  The tools + ecosystem around the WoT is growing fast –  Web tech dominate the app world

Page 87: Web of Things Platforms Tutorial

@EVRYTHNG | @webofthings © Evrythng Limited | 2014

Game Over!

Dom Guinard dom.guinard.org @domguinard @webofthings @evrythng [email protected] webofthings.org slideshare.com/misterdom