Towards the Web of Things: Web Mashups for Embedded Devices Dominique Guinard and Vlad Trifa Institute for Pervasive Computing, ETH Zurich and SAP Research Zurich [email protected] www.guinard.org 1
Jan 15, 2015
Towards the Web of Things:Web Mashups for Embedded DevicesDominique Guinard and Vlad TrifaInstitute for Pervasive Computing, ETH Zurich and SAP Research [email protected] www.guinard.org
1
Discussing the Web of Things
2Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
[http://www.flickr.com/photos/sharynmorrow/]
MEM @ WWW 2009, Madrid
Embedded Devices Invade us!
3Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
Emergence of the physical Web Embedded devices get more
powerful. They are also getting connected to the
Web.
MEM @ WWW 2009, Madrid
From a Large Ecosystem to a Large Playground
4Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
Huge eco-system of devices. About 1000 smart objects / person:
and… about 1000 systems to use them and build applications on top of them.
How do we enable people to create applications on top of this great eco-system?
“re-think the way we design computing
systems in order to take into account the
>1000 smart objects per people we will soon
have to deal with.” David Orban
“re-think the way we design computing
systems in order to take into account the
>1000 smart objects per people we will soon
have to deal with.” David Orban
MEM @ WWW 2009, Madrid
Web 2.0 Mashups
5Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
Mashups are a nice example of « easily » building new applications on top of a virtual eco-system of services.
Not the universal answer but seemingly adapted to dynamic and moderately big use-cases involving end-users.
How about creating real-world mashups?
MEM @ WWW 2009, Madrid
Web of Things (WOT) in a Nutshell
Fully integrating embedded devices to the Web, by designing “web-oriented” APIs for embedded devices: A Web-page for each “service”. A RESTful API to access and consume them.
As a result: Embedded devices are easier to build upon. We get the goodies of the web almost for free (caching, linking,
searching, authenticating, etc.) And enable physical mashups, i.e. small, ad-hoc composite
applications involving real-world embedded devices.
MEM @ WWW 2009, Madrid 6Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
Our 5 Courses Menu
Discussing the Web of Things A Web Oriented Architecture for the Real-World
Building RESTful APIs for Real-World Devices Integration Patterns: Gateway vs Direct Integration
Implementation and Prototypes RESTful Sun SPOTs RESTful Ploggs
Real-World Mashups Energie Visible Google Web Toolkit UI Ambient Meter
7Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
A Web Oriented Architecture for the Real-World
Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
8
[http://www.flickr.com/photos/julianbleecker]
MEM @ WWW 2009, Madrid
Our 5 Courses Menu
Discussing the Web of Things A Web Oriented Architecture for the Real-World
Building RESTful APIs for Real-World Devices Integration Patterns: Gateway vs Direct Integration
Implementation and Prototypes RESTful Sun SPOTs RESTful Ploggs
Real-World Mashups Energie Visible Google Web Toolkit UI Ambient Meter
9Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
1. Resource Design
Thanks to their atomicity services on embedded devices are quite adapted to Resource-Oriented Architectures.
Root: http://webofthings.com/ Resources:
Spots: http://webofthings.com/spots Spot 2: http://webofthings.com/spots/2 Light Sensor: http://webofthings.com/spots/2/sensors/light Led Actuator:
http://webofthings.com/spots/2/actuators/led/
10Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
XHTML as default, ideal for browsing: http://webofthings.com/spots
JSON, ideal for parsing: http://webofthings.com/spots.json
XML, ideal for integration http://webofthings.com/spots.xml
2. Representation Design
11Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
3. Uniform Interface
12Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
[HTTP: http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol]
MEM @ WWW 2009, Madrid
3. Uniform Interface
• HTTP Verbs: What do you want to do?– GET: retrieve the representation of a resource.– PUT: create or update a resource.– DELETE: remove a resource.– POST: create a subordinate (or custom: RPC!)
• HTTP Headers: What type of data are you sending me?– Metadata:
• Content type: application/json, text/html, etc.
– Status:• 200 OK, 201 Create, 400 Bad Request, 401 Unauthorized
• HTTP Body: The actual data.– The content in its representation.
13Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Integration Patterns: Gateway vs Direct
14Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
IPv6(lowpan)
Web CloudWeb Cloud
ComposeCompose VisualizeVisualizeSearchSearch PhysicalMashups
Smart GatewaySmart Gateway
RESTful API
BTBT ZigbeeZigbee ……API1 API2
Web CloudWeb Cloud
ComposeCompose VisualizeVisualizeSearchSearch PhysicalMashups
Web Server
RESTful API
Web ServerRESTful API
Web ServerEventing
MEM @ WWW 2009, Madrid
Implementation and Prototypes
15Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
[http://www.flickr.com/photos/sharynmorrow/47086098/]
MEM @ WWW 2009, Madrid
Our 5 Courses Menu
Discussing the Web of Things A Web Oriented Architecture for the Real-World
Building RESTful APIs for Real-World Devices Integration Patterns: Gateway vs Direct Integration
Implementation and Prototypes RESTful Sun SPOTs RESTful Ploggs
Real-World Mashups Energie Visible Google Web Toolkit UI Ambient Meter
16Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Direct Integration
17Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
IPv6(lowpan)
Web CloudWeb Cloud
ComposeCompose VisualizeVisualizeSearchSearch PhysicalMashups
Smart GatewaySmart Gateway
RESTful API
BTBT ZigbeeZigbee ……API1 API2
Web CloudWeb Cloud
ComposeCompose VisualizeVisualizeSearchSearch PhysicalMashups
Web Server
RESTful API
Web ServerRESTful API
Web ServerEventing
MEM @ WWW 2009, Madrid
The RESTful SunSPOTs Project
Create a « SmartLogger » that can be attached to shipments.
www.webofthings.com/tag/smartlogger/
18Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Architecture
MEM @ WWW 2009, Madrid 19Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
Integration using Gateways
20Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
IPv6(lowpan)
Web CloudWeb Cloud
ComposeCompose VisualizeVisualizeSearchSearch PhysicalMashups
Smart GatewaySmart Gateway
RESTful API
BTBT ZigbeeZigbee ……API1 API2
Web CloudWeb Cloud
ComposeCompose VisualizeVisualizeSearchSearch PhysicalMashups
Web Server
RESTful API
Web ServerRESTful API
Web ServerEventing
MEM @ WWW 2009, Madrid
The « Energie Visible » Project
21Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
• Aim:• Monitor and control
your energy consumption at home.
• Fully integrate the monitoring and control to the web.
• www.webofthings.com/energievisible/
Gateway and Mini Webserver
Sensors(Ploggs)
Devices
Web / Mobile Interface
MEM @ WWW 2009, Madrid
RESTful Plogg Gateway
22Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Talk to devices: The WEB Way
23Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Demo
24Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Examples of Real-World Mashups
25Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
[http://www.flickr.com/photos/kevlar]
MEM @ WWW 2009, Madrid
Our 5 Courses Menu
Motivation Discussing Real-World Integration Schemes
WS-* Web Services RESTful APIs
A Web Oriented Architecture for the Real-World Building RESTful APIs for Real-World Devices Integration Patterns: Gateway vs Direct Integration
Implementation and Prototypes RESTful Sun SPOTs RESTful Ploggs
Real-World Mashups Energie Visible Google Web Toolkit UI Ambient Meter
26Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Enable Real-World Mashups
27Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
URL
URL
URL
URL
MEM @ WWW 2009, Madrid
Physical-Virtual Mashup:Energy Visualizer for RESTful Ploggs
28Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Physical-Physical Mashup:Ambient Energy Meter
Create an ambient device that can assess the energy consumption of the current place it is in.
Mashup of: The RESTful Ploggs
The RESTful Sun Spots
The Smart Gateways.
29Dominique Guinard, ETH / SAP Research Zurich, webofthings.comMEM @ WWW 2009, Madrid
Outlook
REST is quite suitable for composing small, ad-hoc applications [1], why not for small embedded applications?
Need to go beyond REST: Need for asynchronous mechanisms. Currently exploring systems such as XMPP and Twitter.
Need to provide mashup editors for physical mashups (à la “yahoo pipes” or “rooftop”).
MEM @ WWW 2009, Madrid 30Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
[1] Pautasso, Cesare, Olaf Zimmermann, and Frank Leymann. “Restful web services vs. "big"' web services: making the right architectural decision.” In WWW '08: Proceeding of the 17th international conference on World Wide Web, 805―814. New York, NY, USA: ACM, 2008.
Thanks a lot for your attention
31Dominique Guinard, ETH / SAP Research Zurich, webofthings.com
www.webofthings.comMEM @ WWW 2009, Madrid