Web of Things - Connecting People and Objects on the Web
Web of Things - Connecting
People and Objects on the
Workshop @ SXSW10, Austin, 14 March 2010
Vlad Trifa & Dominique Guinard
Virtual doggy bag online:
Disclaimer: We are going to demo
undergoing research, so please bear with us.
Electronic things are invading us...
• Increasingly powerful CPUs
• Sensors & actuators
• Web connectivity
Translation for geeks:
An infinite playground.
How to create easily interactive
applications that combine various
That is, without a
• Tons of different devices: PhD in Computer
• Networking protocols
We need an universal protocol
simple, lightweight, loosely-
coupled, scalable, flexible
and hopefully... standard
So let’s leverage it!
Use Web standards to develop applications for
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
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
• Properties and functions are
• Devices/services become Web
• Links between them (hateoas)
• Different representations (content
• Uniform interface (HTTP verbs,
Sunspots resources modeling
• Services on embedded devices are adapted for resource oriented
• 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
• XHTML ideal for browsing
• JSON ideal for parsing (& lightweight for device)
• XML ideal for business integration
• 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)
DEMO - RESTful spots
• Browsing the spot manager
• Poster with content negotiation
SAC: Social Access Controller
• Access Control Lists
not suited for real-
• Leverage social
networks for sharing
• OAuth for delegated
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.
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)
• 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
• Eventing, rules, channels
Hierarchic gateways binding: InfraWoT
• Gateways find and integrate mf-enabled devices
• Gateways bind to each other and form geographical
• Based on OSGi and RESTlet
Browsable EPC Network
Standards for Supply Chain identifiers
• EPC Network set of RFID
• Global (closed?) network
• EPCIS is the information server Reader
• RESTful EPCIS
RESTful EPCIS in a Nutshell
• On top of Fosstrak EPCIS
• Based on Jersey
• Apache Abdera for Feeds
• Faster than the original EPCIS (Duh!)
Widgets on top!
• Business intelligence
• Implemented in
• Integrating loads of
• Google Viz/Maps/Cal
• Twitter, etc.
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
• Web developers need to apply their skills to
build a programmable world
Thanks for your attention !
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.