Web of Things - Connecting People and Objects on the Web

11,695 views

Published on

Talk at SXSW 2010, Austin, Texas on our current research in the Web of Things, with a focus on how to interact with Things using Javascript

Published in: Technology, Design
3 Comments
41 Likes
Statistics
Notes
No Downloads
Views
Total views
11,695
On SlideShare
0
From Embeds
0
Number of Embeds
1,814
Actions
Shares
0
Downloads
489
Comments
3
Likes
41
Embeds 0
No embeds

No notes for slide

Web of Things - Connecting People and Objects on the Web

  1. 1. Web of Things - Connecting People and Objects on the Web Workshop @ SXSW10, Austin, 14 March 2010 Vlad Trifa & Dominique Guinard http://www.webofthings.com
  2. 2. Virtual doggy bag online: http://www.webofthings.com/sxsw Disclaimer: We are going to demo undergoing research, so please bear with us. WoT@SXSW10
  3. 3. Electronic things are invading us... • Increasingly powerful CPUs • Sensors & actuators • Web connectivity • Cheap • Ubiquitous WoT@SXSW10
  4. 4. Translation for geeks: An infinite playground. YAAAY!
  5. 5. 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
  6. 6. We need an universal protocol that is: simple, lightweight, loosely- coupled, scalable, flexible and hopefully... standard
  7. 7. Sounds like the Web
  8. 8. 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
  9. 9. RESTifying Things
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. DEMO - RESTful spots • Browsing the spot manager • Poster with content negotiation • Javascript app to change LEDs colors WoT@SXSW10
  16. 16. Gateways to Web-enable things
  17. 17. Embedded REST is not always possible N on IP es vic de WoT@SXSW10
  18. 18. For Wireless Sensor Networks (WSN)... WoT@SXSW10
  19. 19. 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
  20. 20. DEMO - Energie Visible More? Webofthings.com/ energievisible WoT@SXSW10
  21. 21. Devices gone Web
  22. 22. Devices gone Social
  23. 23. 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
  24. 24. 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
  25. 25. DEMO - FAT More? tinyurl.com/ ygy2kwb WoT@SXSW10
  26. 26. The era of physical Mashups
  27. 27. 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
  28. 28. Clickscript • Javascript-based visual mashup editor • Firefox plugin/Web app • Based on DOJO/jQuery www.clickscript.ch WoT@SXSW10
  29. 29. 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
  30. 30. jQuery HTTP request $.ajax({ url: aurl, type: "PUT", data: ({status : onoff}), success: function(html){ alert("status of Plogg : " +onoff); component.finishAsync(); }, error: function(msg){ alert("Error on: "+aurl); } }); Demo WoT@SXSW10
  31. 31. Advanced Web of Things
  32. 32. Err, what about eventing & streaming ? The web wasn’t quite made for that... And querying & search?
  33. 33. 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
  34. 34. 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
  35. 35. <span class="service"> <span class="mftitle">Label: </span><span class="label"></span><br/> <span class="mftitle">Data Format: </span><span class="data-format">Integer</ span><br/> <span class="mftitle">Operation: </span><span class="operation"><br/> <span class="mftitle">Method: </span><span class="method">POST</span><br/> <span class="mftitle">Address: </span><span class="address">http://spotmanager: 8081/sunspots/Core2TestSpot/actuators/leds/led1</span><br/> <span class="mftitle">Input: </span><span class="input">Red</span><br/> <span class="mftitle">Output: </span><span class="output">The updated Resource</ span><br/> </span> WoT@SXSW10
  36. 36. Does that scale?
  37. 37. 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
  38. 38. DEMO - InfraWoT WoT@SXSW10
  39. 39. Enterprise Web of Things
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. Thanks for your attention ! www.webofthings.com

×