SlideShare a Scribd company logo
1 of 38
Download to read offline
Web of Things - Towards Open and
Sharable Networks of Embedded Devices
Internet Developer Summit
7. April 2010
Vlad Trifa - ETH Zurich/SAP Research
Disclaimer


  2001-2006               Studied Comp. Sci., Robotics, AI, Neurosciences @ EPFL


  2005-2006               M.Sc. thesis @ UCLA, Bio-acoustics & Sensor Networks



  2006-2007               Research in Humanoid Robotics @ ATR, Kyoto, Japan


  2007-now                Ph.D. @ ETH Zurich & SAP Research



Web of Things, 7.4.2010                  Vlad Trifa - SAP/ETH Zurich
Electronic things are invading us...
                     ‣ Powerful tiny computers
                     ‣ Sensors & actuators
                     ‣ Web connectivity
                          ‣ Cheap
                          ‣ Ubiquitous




Web of Things, 7.4.2010                  Vlad Trifa - SAP/ETH Zurich
Translation for hackers:
An infinite playground.


YAAAY!
Megaco   Modbus
        OGC SensorML
Zorro III
            AMQP
  OPC-UA
Problem...

          How do we combine heterogeneous devices to create
                   interactive ad-hoc applications?

                                                               That is, without a
                                                               PhD in Computer
                                                                    Science
    ‣ Tons of different devices:
          ‣ Capabilities/functions
          ‣ Applications/middlewares
          ‣ Networking protocols



Web of Things, 7.4.2010          Vlad Trifa - SAP/ETH Zurich
We need an universal protocol
that is:

simple, lightweight, loosely-
coupled, scalable, flexible

and hopefully... standard
Sounds like the Web...

                  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



Web of Things, 7.4.2010              Vlad Trifa - SAP/ETH Zurich
WWWWW                               Social Web
      Physical Web
                                                           Real-time Web




            Semantic Web                          Programmable Web
                          Web of Things

Web of Things, 7.4.2010      Vlad Trifa - SAP/ETH Zurich
RESTful devices
The Web of Things in a nutshell


        Steps to create a basic Web of Things (v1.0):

        1. Connecting things to the Internet (IPv4/IPv6)
        2. Embedded Web servers
        3. Make devices part of the Web (using REST)
                    ‣ Model their function as RESTful resources




Web of Things, 7.4.2010                 Vlad Trifa - SAP/ETH Zurich
Web of Things, 7.4.2010   Vlad Trifa - SAP/ETH Zurich
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)




Web of Things, 7.4.2010   Vlad Trifa - SAP/ETH Zurich
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




Web of Things, 7.4.2010         Vlad Trifa - SAP/ETH Zurich
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



Web of Things, 7.4.2010            Vlad Trifa - SAP/ETH Zurich
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)




Web of Things, 7.4.2010             Vlad Trifa - SAP/ETH Zurich
Gateway level integration: Energie Visible
                                  Web / Mobile 
                                  Interface
                                                            GET http://10.1.1.5:8080/energymonitor/ploggs/*
                                                            [{
                             Gateway                             "deviceName": "ComputerAndScreen",
                             (IP:10.1.1.5)                       "currentWatts": 50.52,
                                                                 "KWh": 5.835,
                                                                 "maxWattage":     100.56
                                                            },
                                                                 "deviceName": "Fridge",
                                                                 "currentWatts": 86.28.,
                                             Sensors
                                                              "KWh": 4.421,
                                             (Ploggs)
                                                              "maxWattage": 288.92
                                                            }, {...}]
                                             Electric 
                                             appliances


D. Guinard and V. Trifa. Towards the web of things: Web mashups for embedded devices. In 2nd Workshop on
    Mashups, Enterprise Mashups and Lightweight Composition on the Web (MEM 2009), Madrid, Spain, April 2009.
Web of Things, 7.4.2010                             Vlad Trifa - SAP/ETH Zurich
OSGi gateway




Web of Things, 7.4.2010   Vlad Trifa - SAP/ETH Zurich
The era of physical
Mashups
Real-world Web applications

                                   REST                                             URL

                                                          REST



                                        I
                                      AP




                                                                           Ja
                                                                               va
                           P




                                   ST
                          PH




                                                                               Sc
                                   RE




                                                                                rip
                                                                                    t
         [hCp://www.pachube.com]   [hCp://www.webothings.com/energievisible]        [hCp://www.clickscript.ch]




Web of Things, 7.4.2010                     Vlad Trifa - SAP/ETH Zurich
Clickscript


   ‣ Javascript-based visual
     mashup editor
   ‣ Firefox plugin/Web app
   ‣ Based on DOJO/jQuery




                                                        www.clickscript.ch

Web of Things, 7.4.2010   Vlad Trifa - SAP/ETH Zurich
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;




Web of Things, 7.4.2010                Vlad Trifa - SAP/ETH Zurich
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);
     	      	    }
     	      	 });


Web of Things, 7.4.2010      Vlad Trifa - SAP/ETH Zurich
Err, what about eventing &
streaming ?

The web wasn’t quite made for
that...
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)




Web of Things, 7.4.2010          Vlad Trifa - SAP/ETH Zurich
Data streams

   ‣     Sensor data represented as Web streams
   ‣     Publish/subscribe paradigm
   ‣     Users can create and subscribe to streams
   ‣     Parameterized
         ‣   devices
         ‣   sensors
         ‣   filter data
         ‣   sampling frequency

   ‣ Using REST...


Web of Things, 7.4.2010           Vlad Trifa - SAP/ETH Zurich
Messaging implementation

   ‣ Messages transported in JSON
   ‣ Message broker as an external entity (outsourced)
         ‣ Swappable
         ‣ Scalable
         ‣ Currently use RabbitMQ
   ‣ Web integration with pubsubhubbub
         ‣ RESTful, Web-hook based pub/sub
         ‣ Support for CometD for Web push




Web of Things, 7.4.2010             Vlad Trifa - SAP/ETH Zurich
Messaging




Web of Things, 7.4.2010   Vlad Trifa - SAP/ETH Zurich
Request



	     	 POST example.org/datastreams/ HTTP/1.1
	     	 Content-Type: application/x-www-form-urlencoded
	     	   devices=purpleSensor &
	     	   data=temperature,light &
	     	   frequency=2 &
	     	   filter=light < 200 && temperature > 19




Web of Things, 7.4.2010   Vlad Trifa - SAP/ETH Zurich
Response

	     HTTP/1.1 201
	     [...]
	     Content-Location: http://example.com:8085/datastreams/bh_0
	     [...]
	     Connection: close




     ‣ Then we just subscribe to it:


        curl -vd "hub.mode=subscribe&hub.callback=http://example.com:
        8888/client_callback_handler&hub.topic=&hub.verify=sync"
        http://example.com:8085/datastreams/bh_0



Web of Things, 7.4.2010          Vlad Trifa - SAP/ETH Zurich
Messaging JS solution

   ‣ jQuery - allows HTTP requests from Javascript
   ‣ reversehttp - allows passing HTTP requests to client




Web of Things, 7.4.2010    Vlad Trifa - SAP/ETH Zurich
function registerDatastream(devices, dataFields, frequency, filter) {
    	          var formData = "devices=" + devices + "&data=" + dataFields;
    	          if (frequency != "") {
    	      	   formData += "&frequency=" + frequency;
    	          }
    	          if (filter != "") {
    	      	   formData += "&filter=" + filter;
    	          }
    	
    	             $.ajax( {
    	      	      type : "POST",
    	      	      url : “http://example.com:8085/datastreams",
    	      	      data : formData,
    	      	      success : function(msg, textStatus, xhr) {
    	      	          if (xhr.status != 201) {
    	      	      	    alert("Error creating datastream: " + xhr.statusText);
    	      	          } else {
    	      	      	    queueURL = msg;
    	      	          }
    	      	      },
    	      	      dataType : "text"
    	             });
    	      }


Web of Things, 7.4.2010                     Vlad Trifa - SAP/ETH Zurich
function startServerList() {
  	          virtualHost = "vh" + Math.round(Math.random() * 100000);

  	              new HttpServer(virtualHost, function(req) {
  	      	      if (req.method == "get") {
  	      	           // subscription verification request
  	      	           [...]
  	      	      } else {
  	      	           // normal message (HTTP POST)
  	      	           var msg = JSON.parse(req.body);
  	      	           var light = msg.data[0].light;
  	      	           var temp = msg.data[0].temp;
  	      	           alert(“Current light level: “ + light);
  	      	           req.respond(200, "OK", {}, "");
  	      	      }
  	              });
  	      }


Web of Things, 7.4.2010              Vlad Trifa - SAP/ETH Zurich
Device Discovery

   ‣ Idea: all device pages contain semantic metadata
         ‣ Like the header metadata for web robots
         ‣ Machine-readable user manual
         ‣ Human-readable documentation

   ‣ Proposed solution: microformats for devices
         ‣   What resources are available?
         ‣   What are their input/output?
         ‣   What methods are accepted?
         ‣   Keywords?
         ‣   Eventing channels?
         ‣   Maybe documentation?


Web of Things, 7.4.2010             Vlad Trifa - SAP/ETH Zurich
<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>




Web of Things, 7.4.2010                Vlad Trifa - SAP/ETH Zurich
Take away notes

   ‣ It’s time for devices to join the Web
   ‣ Huge opportunities ahead for WoT
   ‣ The Web of Things is hard because
         ‣ People are good Web developers, xor
         ‣ Good embedded systems developers
   ‣ Tools & best practices for Web-enabled things are needed
   ‣ Tradeoff between performance and features
   ‣ Web developers need to apply their skills and
     expertise to build a programmable world
   ‣ We need applications (deployments)

Web of Things, 7.4.2010          Vlad Trifa - SAP/ETH Zurich
More!!!

   ‣ Some docs: http://www.webofthings.com/sxsw
   ‣ Play: http://tinyurl.com/sliderswot
   ‣ Slides: http://www.webofthings.com/talks/idd.pdf

   ‣     Demos:
   ‣     Browsing the spot manager
   ‣     Poster with content negotiation
   ‣     Javascript app to change LEDs colors
   ‣     Blink & curl!


Web of Things, 7.4.2010      Vlad Trifa - SAP/ETH Zurich
Thanks for your
             attention !




                   Vlad Trifa
            trifa@inf.ethz.ch
http://www.webofthings.com

More Related Content

What's hot

Imagining the Web of Things
Imagining the Web of ThingsImagining the Web of Things
Imagining the Web of ThingsDavid Keene
 
Vlad Trifa - Final PhD Thesis Defense at ETH Zurich
Vlad Trifa - Final PhD Thesis Defense at ETH ZurichVlad Trifa - Final PhD Thesis Defense at ETH Zurich
Vlad Trifa - Final PhD Thesis Defense at ETH ZurichVlad Trifa
 
The Web of Things
The Web of ThingsThe Web of Things
The Web of ThingsFrank Greco
 
RESTifyng Physical Products
RESTifyng Physical ProductsRESTifyng Physical Products
RESTifyng Physical ProductsVlad Trifa
 
Physical Mashups in the Web-Home
Physical Mashups in the Web-HomePhysical Mashups in the Web-Home
Physical Mashups in the Web-HomeDominique Guinard
 
When Things will Speak "Web" (Lecture)
When Things will Speak "Web" (Lecture)When Things will Speak "Web" (Lecture)
When Things will Speak "Web" (Lecture)Dominique Guinard
 
Web of things introduction
Web of things introductionWeb of things introduction
Web of things introduction承翰 蔡
 
Web of Things Application Architecture
Web of Things Application ArchitectureWeb of Things Application Architecture
Web of Things Application ArchitectureDominique Guinard
 
5 Years of Web of Things Workshops
5 Years of Web of Things Workshops5 Years of Web of Things Workshops
5 Years of Web of Things WorkshopsDominique Guinard
 
EPC Cloud: Using the Web to Simplify the Global RFID Network
EPC Cloud: Using the Web to Simplify the Global RFID NetworkEPC Cloud: Using the Web to Simplify the Global RFID Network
EPC Cloud: Using the Web to Simplify the Global RFID NetworkDominique Guinard
 
Social Sharing In a Web of Things
Social Sharing In a Web of ThingsSocial Sharing In a Web of Things
Social Sharing In a Web of ThingsDominique Guinard
 
Tourism and the Web of Things
Tourism and the Web of ThingsTourism and the Web of Things
Tourism and the Web of ThingsDominique Guinard
 
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...Simen Sommerfeldt
 
Smart Objects
Smart ObjectsSmart Objects
Smart Objectsamenard
 
Ethics_Internet of Things
Ethics_Internet of ThingsEthics_Internet of Things
Ethics_Internet of Thingsalengadan
 
Web-based Smart Things Ecosystems
Web-based Smart Things EcosystemsWeb-based Smart Things Ecosystems
Web-based Smart Things EcosystemsSimon Mayer
 
WoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsWoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsSimon Mayer
 

What's hot (20)

Imagining the Web of Things
Imagining the Web of ThingsImagining the Web of Things
Imagining the Web of Things
 
Vlad Trifa - Final PhD Thesis Defense at ETH Zurich
Vlad Trifa - Final PhD Thesis Defense at ETH ZurichVlad Trifa - Final PhD Thesis Defense at ETH Zurich
Vlad Trifa - Final PhD Thesis Defense at ETH Zurich
 
The Web of Things
The Web of ThingsThe Web of Things
The Web of Things
 
RESTifyng Physical Products
RESTifyng Physical ProductsRESTifyng Physical Products
RESTifyng Physical Products
 
The Web of Things
The Web of ThingsThe Web of Things
The Web of Things
 
Physical Mashups in the Web-Home
Physical Mashups in the Web-HomePhysical Mashups in the Web-Home
Physical Mashups in the Web-Home
 
WoT Tutorial @ Cisco
WoT Tutorial @ CiscoWoT Tutorial @ Cisco
WoT Tutorial @ Cisco
 
WoT @ Oracle-Labs
WoT @ Oracle-LabsWoT @ Oracle-Labs
WoT @ Oracle-Labs
 
When Things will Speak "Web" (Lecture)
When Things will Speak "Web" (Lecture)When Things will Speak "Web" (Lecture)
When Things will Speak "Web" (Lecture)
 
Web of things introduction
Web of things introductionWeb of things introduction
Web of things introduction
 
Web of Things Application Architecture
Web of Things Application ArchitectureWeb of Things Application Architecture
Web of Things Application Architecture
 
5 Years of Web of Things Workshops
5 Years of Web of Things Workshops5 Years of Web of Things Workshops
5 Years of Web of Things Workshops
 
EPC Cloud: Using the Web to Simplify the Global RFID Network
EPC Cloud: Using the Web to Simplify the Global RFID NetworkEPC Cloud: Using the Web to Simplify the Global RFID Network
EPC Cloud: Using the Web to Simplify the Global RFID Network
 
Social Sharing In a Web of Things
Social Sharing In a Web of ThingsSocial Sharing In a Web of Things
Social Sharing In a Web of Things
 
Tourism and the Web of Things
Tourism and the Web of ThingsTourism and the Web of Things
Tourism and the Web of Things
 
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
JavaZone 2014: En realitetsorientering om Tingenenes Internett, og hvordan du...
 
Smart Objects
Smart ObjectsSmart Objects
Smart Objects
 
Ethics_Internet of Things
Ethics_Internet of ThingsEthics_Internet of Things
Ethics_Internet of Things
 
Web-based Smart Things Ecosystems
Web-based Smart Things EcosystemsWeb-based Smart Things Ecosystems
Web-based Smart Things Ecosystems
 
WoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsWoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of Things
 

Viewers also liked

Planning Wars - Planning lessons from liveable cities
Planning Wars - Planning lessons from liveable citiesPlanning Wars - Planning lessons from liveable cities
Planning Wars - Planning lessons from liveable citiesAndrew Nash
 
Public Transport Efficiency: Zurich, Vienna and On-Line
Public Transport Efficiency: Zurich, Vienna and On-LinePublic Transport Efficiency: Zurich, Vienna and On-Line
Public Transport Efficiency: Zurich, Vienna and On-LineAndrew Nash
 
5. Lesson Five - Partnerships and Routines
5. Lesson Five - Partnerships and Routines5. Lesson Five - Partnerships and Routines
5. Lesson Five - Partnerships and RoutinesYorkLearning
 
Integrated public transport
Integrated public transportIntegrated public transport
Integrated public transportRayala Spandana
 
Building a Web of Things Talk at Lugano
Building a Web of Things Talk at LuganoBuilding a Web of Things Talk at Lugano
Building a Web of Things Talk at LuganoVlad Trifa
 
Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...
Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...
Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...Vlad Trifa
 
feasibility study on Solar based referigeration system
feasibility study on Solar based referigeration systemfeasibility study on Solar based referigeration system
feasibility study on Solar based referigeration systempatil_13pramod290
 
Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...
Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...
Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...TheLastMile
 
Web of Things Book Launch
Web of Things Book LaunchWeb of Things Book Launch
Web of Things Book LaunchVlad Trifa
 
A level-based approach to public transport network planning
A level-based approach to public transport network planningA level-based approach to public transport network planning
A level-based approach to public transport network planningAndrew Nash
 
The Art of API Crafting for the IoT
The Art of API Crafting for the IoTThe Art of API Crafting for the IoT
The Art of API Crafting for the IoTDominique Guinard
 
10 Tips for Creating Great User Stories
10 Tips for Creating Great User Stories10 Tips for Creating Great User Stories
10 Tips for Creating Great User StoriesRoman Pichler
 
Predictable Disruption - Tech Vision 2016 Trend 4
Predictable Disruption - Tech Vision 2016 Trend 4Predictable Disruption - Tech Vision 2016 Trend 4
Predictable Disruption - Tech Vision 2016 Trend 4Accenture Technology
 
Become a Great Product Manager
Become a Great Product ManagerBecome a Great Product Manager
Become a Great Product ManagerRoman Pichler
 
TRANSPORTATION PLANNING
TRANSPORTATION PLANNINGTRANSPORTATION PLANNING
TRANSPORTATION PLANNINGintan fatihah
 
Product Strategy and Product Success
Product Strategy and Product SuccessProduct Strategy and Product Success
Product Strategy and Product SuccessRoman Pichler
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedSlideShare
 

Viewers also liked (20)

T A G.cv.art.en.NEW
T A G.cv.art.en.NEWT A G.cv.art.en.NEW
T A G.cv.art.en.NEW
 
pepe271
pepe271pepe271
pepe271
 
Planning Wars - Planning lessons from liveable cities
Planning Wars - Planning lessons from liveable citiesPlanning Wars - Planning lessons from liveable cities
Planning Wars - Planning lessons from liveable cities
 
Public Transport Efficiency: Zurich, Vienna and On-Line
Public Transport Efficiency: Zurich, Vienna and On-LinePublic Transport Efficiency: Zurich, Vienna and On-Line
Public Transport Efficiency: Zurich, Vienna and On-Line
 
5. Lesson Five - Partnerships and Routines
5. Lesson Five - Partnerships and Routines5. Lesson Five - Partnerships and Routines
5. Lesson Five - Partnerships and Routines
 
Integrated public transport
Integrated public transportIntegrated public transport
Integrated public transport
 
Building a Web of Things Talk at Lugano
Building a Web of Things Talk at LuganoBuilding a Web of Things Talk at Lugano
Building a Web of Things Talk at Lugano
 
Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...
Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...
Design of a Web-based Distributed Location-aware Infrastructure for Mobile De...
 
feasibility study on Solar based referigeration system
feasibility study on Solar based referigeration systemfeasibility study on Solar based referigeration system
feasibility study on Solar based referigeration system
 
Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...
Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...
Transportation Planning for Car Free Living: The Evolution of Zurich, Switzer...
 
Web of Things Book Launch
Web of Things Book LaunchWeb of Things Book Launch
Web of Things Book Launch
 
A level-based approach to public transport network planning
A level-based approach to public transport network planningA level-based approach to public transport network planning
A level-based approach to public transport network planning
 
The Art of API Crafting for the IoT
The Art of API Crafting for the IoTThe Art of API Crafting for the IoT
The Art of API Crafting for the IoT
 
UX and Scrum
UX and ScrumUX and Scrum
UX and Scrum
 
10 Tips for Creating Great User Stories
10 Tips for Creating Great User Stories10 Tips for Creating Great User Stories
10 Tips for Creating Great User Stories
 
Predictable Disruption - Tech Vision 2016 Trend 4
Predictable Disruption - Tech Vision 2016 Trend 4Predictable Disruption - Tech Vision 2016 Trend 4
Predictable Disruption - Tech Vision 2016 Trend 4
 
Become a Great Product Manager
Become a Great Product ManagerBecome a Great Product Manager
Become a Great Product Manager
 
TRANSPORTATION PLANNING
TRANSPORTATION PLANNINGTRANSPORTATION PLANNING
TRANSPORTATION PLANNING
 
Product Strategy and Product Success
Product Strategy and Product SuccessProduct Strategy and Product Success
Product Strategy and Product Success
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-Presented
 

Similar to Web of Things Towards Open Sharable Networks

Building a Scalable and Open World Wide Web of Things
Building a Scalable and Open World Wide  Web of ThingsBuilding a Scalable and Open World Wide  Web of Things
Building a Scalable and Open World Wide Web of ThingsVlad Trifa
 
Web Messaging for Open for Web of Things
Web Messaging for Open for Web of ThingsWeb Messaging for Open for Web of Things
Web Messaging for Open for Web of ThingsDominique Guinard
 
The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...OVHcloud
 
Gluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWANGluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWANPance Cavkovski
 
API Design and WebSocket
API Design and WebSocketAPI Design and WebSocket
API Design and WebSocketFrank Greco
 
Node-RED Interoperability Test
Node-RED Interoperability TestNode-RED Interoperability Test
Node-RED Interoperability TestBoris Adryan
 
AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...
AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...
AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...Tish Shute
 
Azure & WP7 at GRDevDay
Azure & WP7 at GRDevDayAzure & WP7 at GRDevDay
Azure & WP7 at GRDevDaySam Basu
 
QuadraSpace Protocol
QuadraSpace ProtocolQuadraSpace Protocol
QuadraSpace Protocolquadraspace
 
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTWebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTFrank Greco
 
Explore how to build dapp
Explore how to build dappExplore how to build dapp
Explore how to build dappCHUN-WEI CHIANG
 
Are you Energy Efficient? Sense it the WEB way
Are you Energy Efficient? Sense it the WEB wayAre you Energy Efficient? Sense it the WEB way
Are you Energy Efficient? Sense it the WEB wayDominique Guinard
 
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaIPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaVijiPriya Jeyamani
 
Open Cloud Computing Interface Presentation
Open Cloud Computing Interface PresentationOpen Cloud Computing Interface Presentation
Open Cloud Computing Interface PresentationIntel Corporation
 
A Distributed Simulation of P-Systems
A Distributed Simulation of P-SystemsA Distributed Simulation of P-Systems
A Distributed Simulation of P-SystemsApostolos Syropoulos
 
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"Paco Nathan
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkSam Basu
 
iguazio - nuclio Meetup Nov 30th
iguazio - nuclio Meetup Nov 30thiguazio - nuclio Meetup Nov 30th
iguazio - nuclio Meetup Nov 30thiguazio
 
Let's Peel Mangos
Let's Peel MangosLet's Peel Mangos
Let's Peel MangosSam Basu
 
Sparkling Water Webinar October 29th, 2014
Sparkling Water Webinar October 29th, 2014Sparkling Water Webinar October 29th, 2014
Sparkling Water Webinar October 29th, 2014Sri Ambati
 

Similar to Web of Things Towards Open Sharable Networks (20)

Building a Scalable and Open World Wide Web of Things
Building a Scalable and Open World Wide  Web of ThingsBuilding a Scalable and Open World Wide  Web of Things
Building a Scalable and Open World Wide Web of Things
 
Web Messaging for Open for Web of Things
Web Messaging for Open for Web of ThingsWeb Messaging for Open for Web of Things
Web Messaging for Open for Web of Things
 
The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...The advantages of Arista/OVH configurations, and the technologies behind buil...
The advantages of Arista/OVH configurations, and the technologies behind buil...
 
Gluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWANGluing the IoT world with Java and LoRaWAN
Gluing the IoT world with Java and LoRaWAN
 
API Design and WebSocket
API Design and WebSocketAPI Design and WebSocket
API Design and WebSocket
 
Node-RED Interoperability Test
Node-RED Interoperability TestNode-RED Interoperability Test
Node-RED Interoperability Test
 
AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...
AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...
AR Wave: A Proof of Concept - Federation, Game Dynamics, Semantic Search, Mob...
 
Azure & WP7 at GRDevDay
Azure & WP7 at GRDevDayAzure & WP7 at GRDevDay
Azure & WP7 at GRDevDay
 
QuadraSpace Protocol
QuadraSpace ProtocolQuadraSpace Protocol
QuadraSpace Protocol
 
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTWebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
 
Explore how to build dapp
Explore how to build dappExplore how to build dapp
Explore how to build dapp
 
Are you Energy Efficient? Sense it the WEB way
Are you Energy Efficient? Sense it the WEB wayAre you Energy Efficient? Sense it the WEB way
Are you Energy Efficient? Sense it the WEB way
 
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaIPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
 
Open Cloud Computing Interface Presentation
Open Cloud Computing Interface PresentationOpen Cloud Computing Interface Presentation
Open Cloud Computing Interface Presentation
 
A Distributed Simulation of P-Systems
A Distributed Simulation of P-SystemsA Distributed Simulation of P-Systems
A Distributed Simulation of P-Systems
 
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon Talk
 
iguazio - nuclio Meetup Nov 30th
iguazio - nuclio Meetup Nov 30thiguazio - nuclio Meetup Nov 30th
iguazio - nuclio Meetup Nov 30th
 
Let's Peel Mangos
Let's Peel MangosLet's Peel Mangos
Let's Peel Mangos
 
Sparkling Water Webinar October 29th, 2014
Sparkling Water Webinar October 29th, 2014Sparkling Water Webinar October 29th, 2014
Sparkling Water Webinar October 29th, 2014
 

Recently uploaded

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Recently uploaded (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Web of Things Towards Open Sharable Networks

  • 1. Web of Things - Towards Open and Sharable Networks of Embedded Devices Internet Developer Summit 7. April 2010 Vlad Trifa - ETH Zurich/SAP Research
  • 2. Disclaimer 2001-2006 Studied Comp. Sci., Robotics, AI, Neurosciences @ EPFL 2005-2006 M.Sc. thesis @ UCLA, Bio-acoustics & Sensor Networks 2006-2007 Research in Humanoid Robotics @ ATR, Kyoto, Japan 2007-now Ph.D. @ ETH Zurich & SAP Research Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 3. Electronic things are invading us... ‣ Powerful tiny computers ‣ Sensors & actuators ‣ Web connectivity ‣ Cheap ‣ Ubiquitous Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 4. Translation for hackers: An infinite playground. YAAAY!
  • 5. Megaco Modbus OGC SensorML Zorro III AMQP OPC-UA
  • 6. Problem... How do we combine heterogeneous devices to create interactive ad-hoc applications? That is, without a PhD in Computer Science ‣ Tons of different devices: ‣ Capabilities/functions ‣ Applications/middlewares ‣ Networking protocols Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 7. We need an universal protocol that is: simple, lightweight, loosely- coupled, scalable, flexible and hopefully... standard
  • 8. Sounds like the Web... 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 Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 9. WWWWW Social Web Physical Web Real-time Web Semantic Web Programmable Web Web of Things Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 11. The Web of Things in a nutshell Steps to create a basic Web of Things (v1.0): 1. Connecting things to the Internet (IPv4/IPv6) 2. Embedded Web servers 3. Make devices part of the Web (using REST) ‣ Model their function as RESTful resources Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 12. Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 13. 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) Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 14. 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 Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 15. 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 Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 16. 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) Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 17. Gateway level integration: Energie Visible Web / Mobile  Interface GET http://10.1.1.5:8080/energymonitor/ploggs/* [{ Gateway  "deviceName": "ComputerAndScreen", (IP:10.1.1.5) "currentWatts": 50.52, "KWh": 5.835, "maxWattage": 100.56 }, "deviceName": "Fridge", "currentWatts": 86.28., Sensors "KWh": 4.421, (Ploggs) "maxWattage": 288.92 }, {...}] Electric  appliances D. Guinard and V. Trifa. Towards the web of things: Web mashups for embedded devices. In 2nd Workshop on Mashups, Enterprise Mashups and Lightweight Composition on the Web (MEM 2009), Madrid, Spain, April 2009. Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 18. OSGi gateway Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 19. The era of physical Mashups
  • 20. Real-world Web applications REST URL REST I AP Ja va P ST PH Sc RE rip t [hCp://www.pachube.com] [hCp://www.webothings.com/energievisible] [hCp://www.clickscript.ch] Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 21. Clickscript ‣ Javascript-based visual mashup editor ‣ Firefox plugin/Web app ‣ Based on DOJO/jQuery www.clickscript.ch Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 22. 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; Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 23. 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); } }); Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 24. Err, what about eventing & streaming ? The web wasn’t quite made for that...
  • 25. 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) Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 26. Data streams ‣ Sensor data represented as Web streams ‣ Publish/subscribe paradigm ‣ Users can create and subscribe to streams ‣ Parameterized ‣ devices ‣ sensors ‣ filter data ‣ sampling frequency ‣ Using REST... Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 27. Messaging implementation ‣ Messages transported in JSON ‣ Message broker as an external entity (outsourced) ‣ Swappable ‣ Scalable ‣ Currently use RabbitMQ ‣ Web integration with pubsubhubbub ‣ RESTful, Web-hook based pub/sub ‣ Support for CometD for Web push Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 28. Messaging Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 29. Request POST example.org/datastreams/ HTTP/1.1 Content-Type: application/x-www-form-urlencoded devices=purpleSensor & data=temperature,light & frequency=2 & filter=light < 200 && temperature > 19 Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 30. Response HTTP/1.1 201 [...] Content-Location: http://example.com:8085/datastreams/bh_0 [...] Connection: close ‣ Then we just subscribe to it: curl -vd "hub.mode=subscribe&hub.callback=http://example.com: 8888/client_callback_handler&hub.topic=&hub.verify=sync" http://example.com:8085/datastreams/bh_0 Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 31. Messaging JS solution ‣ jQuery - allows HTTP requests from Javascript ‣ reversehttp - allows passing HTTP requests to client Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 32. function registerDatastream(devices, dataFields, frequency, filter) { var formData = "devices=" + devices + "&data=" + dataFields; if (frequency != "") { formData += "&frequency=" + frequency; } if (filter != "") { formData += "&filter=" + filter; } $.ajax( { type : "POST", url : “http://example.com:8085/datastreams", data : formData, success : function(msg, textStatus, xhr) { if (xhr.status != 201) { alert("Error creating datastream: " + xhr.statusText); } else { queueURL = msg; } }, dataType : "text" }); } Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 33. function startServerList() { virtualHost = "vh" + Math.round(Math.random() * 100000); new HttpServer(virtualHost, function(req) { if (req.method == "get") { // subscription verification request [...] } else { // normal message (HTTP POST) var msg = JSON.parse(req.body); var light = msg.data[0].light; var temp = msg.data[0].temp; alert(“Current light level: “ + light); req.respond(200, "OK", {}, ""); } }); } Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 34. Device Discovery ‣ Idea: all device pages contain semantic metadata ‣ Like the header metadata for web robots ‣ Machine-readable user manual ‣ Human-readable documentation ‣ Proposed solution: microformats for devices ‣ What resources are available? ‣ What are their input/output? ‣ What methods are accepted? ‣ Keywords? ‣ Eventing channels? ‣ Maybe documentation? Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 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> Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 36. Take away notes ‣ It’s time for devices to join the Web ‣ Huge opportunities ahead for WoT ‣ The Web of Things is hard because ‣ People are good Web developers, xor ‣ Good embedded systems developers ‣ Tools & best practices for Web-enabled things are needed ‣ Tradeoff between performance and features ‣ Web developers need to apply their skills and expertise to build a programmable world ‣ We need applications (deployments) Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 37. More!!! ‣ Some docs: http://www.webofthings.com/sxsw ‣ Play: http://tinyurl.com/sliderswot ‣ Slides: http://www.webofthings.com/talks/idd.pdf ‣ Demos: ‣ Browsing the spot manager ‣ Poster with content negotiation ‣ Javascript app to change LEDs colors ‣ Blink & curl! Web of Things, 7.4.2010 Vlad Trifa - SAP/ETH Zurich
  • 38. Thanks for your attention ! Vlad Trifa trifa@inf.ethz.ch http://www.webofthings.com