1. Web Messaging for Open and Scalable
Distributed Sensing Applications
ICWE2010, Vienna, Austria - 6 July 2010
Vlad Trifa, Dominique Guinard, Vlatko Davidovski,
Andreas Kamilaris, and Ivan Delchev
2. The Internet of Things
Networked devices everywhere
Lots of different devices
‣ Networking protocols
‣ HTTP also possible
3. Web of Things :
Use the Web to combine
devices to create interactive
 Online at: http://www.webofthings.com
4. Show Time!
‣ Talks HTTP (over 802.15.4)
‣ Becomes a Web device
Properties and functions are
Web resources, so can be
But also use twitter, send
emails, chat, etc..
D. Guinard, V. Trifa, T. Pham, and O. Liechti. Towards Physical Mashups in the Web of Things. In Proceedings of the 6th
International Conference on Networked Sensing Systems (INSS 2009), 2009.
5. Wait - what about eventing &
The Web wasn’t quite made
6. Need more than Pull, more than Push!
Web mainly request/response (HTTP)
Need for eventing & streaming for many users
‣ Sensor data represented as sequence of messages
Scalable pub/sub for devices as substrate
‣ Use the Web to build distributed event driven apps
Parameterized subscriptions (channels/queries)
‣ Specify what sensors, devices, locations, etc...
Many solutions (XMPP, etc....)
‣ None really integrate with the Web
‣ ATOM/ATOMpub is RESTful, but not push
7. Here comes the real-time Web!
Very active community expanding
Use the Web for distributed event driven apps
‣ Keeps the HTTP connection open
‣ Long polling
‣ Ajax push
‣ Push from server to HTTP callbacks
8. RESTful Messaging System (RMS)
Similar to pubsubhubbub (PuSH) or RestMS
‣ But lighter (less options) to run on devices
Interested by a generic “Web push” mechanism
‣ Simple to use
‣ No complex client required
Minimal pub/sub support
/rms/channels - every sub-resource represents a
hierarchical channel where entities can post data to,
/rms/subscriptions - contains each subscription of
entities to individual channels
/rms/channels/x/publishers - contains all entities
that are publishing data on the channel x
/rms/channels/y/subscribers - contains all entities
that are subscribed to events on the channel y
10. Usage examples
Subscribe to a channel:
curl request POST data "rmssubscriptioncallback
Publish to a channel:
curl basic request POST data "temperature=23"
11. Show Time!
Plogg Smart Meter
‣ Talks HTTP (over Zigbee)
‣ Becomes a Web device
Posting through RMS
Browser client using Comet
(Ajax Long Polling)
12. Many devices - one receiver
13. Many receivers
14. Real deployment setup
Leverage REST as native API for devices
‣ Inherit all the tools & expertise in Web technologies
‣ Caching, security, scalability
Flexibility through real-time Web
‣ Loose coupling between application components
‣ Pub/sub helps to scale and is good for ad-hoc interactions
‣ 100 msg/s delivered with low latency, 200 subscribers
notified with 360ms delay in average
‣ Real deployment 15 devices sampling@1Hz (< 60 ms delay)
Web of Things @ Vlad Trifa - SAP/ETH Zurich
16. Take away notes
Good performances for Web messaging and integrates
devices directly with existing Web (REST).
The Web goes physical!
Tools & best practices for Web-enabled things are
Web engineering can contribute a lot towards building
a programmable world.
We need applications (deployments) and testing!
Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
17. Thanks for your