Web of Things - Connecting People and Objects on the WebPresentation Transcript
Web of Things - Connecting
People and Objects on the
Web
Workshop @ SXSW10, Austin, 14 March 2010
Vlad Trifa & Dominique Guinard
http://www.webofthings.com
Virtual doggy bag online:
http://www.webofthings.com/sxsw
Disclaimer: We are going to demo
undergoing research, so please bear with us.
WoT@SXSW10
Electronic things are invading us...
• Increasingly powerful CPUs
• Sensors & actuators
• Web connectivity
• Cheap
• Ubiquitous
WoT@SXSW10
Translation for geeks:
An infinite playground.
YAAAY!
Problem is...
How to create easily interactive
applications that combine various
heterogeneous devices???
That is, without a
• Tons of different devices: PhD in Computer
Science
• Capabilities/functions
• Applications/middlewares
• Networking protocols
WoT@SXSW10
We need an universal protocol
that is:
simple, lightweight, loosely-
coupled, scalable, flexible
and hopefully... standard
Sounds like the
Web
So let’s leverage it!
Use Web standards to develop applications for
networked devices.
HTTP, HTML, XML, JSON, RSS, ATOM, MIME,...
• TCP/IP & Web granted, WiFi routers ubiquitous
• Development of simple Web apps: cheap & quick
• Integrate real-world data on the Web
• Get features of the Web for free
WoT@SXSW10
RESTifying
Things
The Web of Things in a nutshell
3 steps to create a basic Web of Things:
• Connecting things to the Internet (IPv4/IPv6)
• Embedded Web servers
• Make devices part of the Web (using REST)
• Model their function as RESTful resources
WoT@SXSW10
RESTful SunSPOTs
• Properties and functions are
RESTful resources
• Devices/services become Web
resources
• URI-addressed
• Links between them (hateoas)
• Different representations (content
negotiation)
• Uniform interface (HTTP verbs,
status codes)
WoT@SXSW10
Sunspots resources modeling
• Services on embedded devices are adapted for resource oriented
architectures
• root: www.spotshost.com
• spots list: www.spotshost.com/sunspots
• spot #1: www.spotshost.com/sunspots/1
• sensors list: www.spotshost.com/sunspots/1/sensors
• LEDs : www.spotshost.com/sunspots/1/actuators/leds
• LED #1 : www.spotshost.com/sunspots/1/actuators/leds/led1
WoT@SXSW10
Representations
• XHTML ideal for browsing
http://webofthings.com/spots
• JSON ideal for parsing (& lightweight for device)
http://webofthings.com/spots.json
• XML ideal for business integration
http://webofthings.com/spots.xml
WoT@SXSW10
Uniform interface
• HTTP verbs
• GET: current temperature
• POST: add a timer
• PUT: turn a device on/off
• DELETE: delete a timer on a device
• HTTP headers
• Accept header for MIME types
• Status codes (200 ok, 401 unauthorized)
WoT@SXSW10
DEMO - RESTful spots
• Browsing the spot manager
• Poster with content negotiation
• Javascript app to change LEDs colors
WoT@SXSW10
Gateways to
Web-enable things
Embedded REST is not always possible
N on
IP es
vic
de
WoT@SXSW10
For Wireless Sensor Networks (WSN)...
WoT@SXSW10
Example application: Energie Visible
Web / Mobile
Interface GET http://10.1.1.5:8080/energievisible/ploggs/all
Gateway [{
(IP:10.1.1.5) "deviceName": "ComputerAndScreen",
"currentWatts": 50.52,
"KWh": 5.835,
"maxWattage": 100.56
},
"deviceName": "Fridge",
Sensors "currentWatts": 86.28.,
(Ploggs) "KWh": 4.421,
"maxWattage": 288.92
}, {...}]
Electric
appliances
WoT@SXSW10
DEMO - Energie Visible
More? Webofthings.com/
energievisible
WoT@SXSW10
Devices gone
Web
Devices gone
Social
SAC: Social Access Controller
• Access Control Lists
not suited for real-
world sharing
• Leverage social
networks for sharing
devices
• OAuth for delegated
authentication
WoT@SXSW10
FAT: Friends and Things
• GWT application on top of SAC
• Log in using your social networks.
• Discover, share, and advertise devices with friends.
• Serves ATOM feeds of aggregated device data.
WoT@SXSW10
DEMO - FAT
More? tinyurl.com/
ygy2kwb
WoT@SXSW10
The era of physical
Mashups
Real-world Web applications
REST URL
REST
I
AP
Ja
P
ST
va
PH
S
RE
cr
ipt
[hCp://www.pachube.com] [hCp://www.webothings.com/energievisible] [hCp://www.clickscript.ch]
WoT@SXSW10
Clickscript
• Javascript-based visual
mashup editor
• Firefox plugin/Web app
• Based on DOJO/jQuery
www.clickscript.ch
WoT@SXSW10
Clickscript component
csComponentContainer.push({
name : "cs.web.things.switch",
description : "switch on or off",
inputs : [{name: "IP",type: "cs.type.String"},
{name: "on/off", type: "cs.type.Boolean"}],
outputs: [ ],
image: "web/things/plogg.png",
exec : function(state){
this.setAsync();
var ip = state.inputs.item(0).getValue();
var aurl = "http://"+ip+":8082/EnergieVisible/ploggs/008098e7cb71/status.html";
var onoff = state.inputs.item(1).getValue() ? "on" : "off";
var component = this;
WoT@SXSW10
Err, what about eventing & streaming ?
The web wasn’t quite made for that...
And querying & search?
Here comes Real-Time Web
• Scalable pub/sub for devices is needed
• Many solutions (XMPP, etc....)
• None really integrate with the Web
• ATOM/ATOMpub is RESTful, but not push
• Push Web technologies
• Apply Web PUSH on devices
• Comet & Web hooks
• Bi-directional Web messaging (Websockets)
WoT@SXSW10
Device Discovery
• Devices serve semantic metadata: Microformats
• Similar to headers metadata for Web robots
• Machine-readable user manual
• Human-readable documentation
• MF describe
• Available resources and sub-resources
• Accepted methods and their input/output
• Keywords/tags
• Eventing, rules, channels
WoT@SXSW10
Hierarchic gateways binding: InfraWoT
• Gateways find and integrate mf-enabled devices
• Gateways bind to each other and form geographical
hierarchies
http://europe.eu/switzerland/zurich/eth/building4
http://usa.com/texas/austin/sxsw/ballroom/e
• Based on OSGi and RESTlet
WoT@SXSW10
DEMO - InfraWoT
WoT@SXSW10
Enterprise
Web of Things
Browsable EPC Network
Tag
EPC
•
standardized
Standards for Supply Chain identifiers
Management
• EPC Network set of RFID
standards Reader
• Global (closed?) network
• EPCIS is the information server Reader
Protocol
•
Standard
WS-* interface
• RESTful EPCIS
EPCIS
WoT@SXSW10
RESTful EPCIS in a Nutshell
• On top of Fosstrak EPCIS
• Based on Jersey
• Apache Abdera for Feeds
• Faster than the original EPCIS (Duh!)
WoT@SXSW10
Widgets on top!
• Business intelligence
dashboard
• Implemented in
Javascript (GWT)
• Integrating loads of
Web resources:
• Google Viz/Maps/Cal
• Wikipedia
• Twitter, etc.
Demo
WoT@SXSW10
Take home notes
• It’s time for devices to join the Web
• Tradeoff features/performance
• Huge opportunities for the Web of Things
• Tools & best practices for Web-enabled things
are needed
• Web developers need to apply their skills to
build a programmable world
WoT@SXSW10
http://tastethecloud.com/series_topics 3 years ago
Good job, I love the restful world of web 3 years ago