SlideShare a Scribd company logo
1 of 13
Download to read offline
A Network Architecture for the Web of Things
Vipul Gupta, Ron Goldman, Poorna Udupi
{vipul.x.gupta, ron.goldman}@oracle.com, poorna@netflix.com




              Second International Workshop on the Web of Things (WoT 2011), Pervasive 2011
                                                                                              1
Web Of Things

• What?

  “A vision where everyday devices and objects are integrated into the Web
   using well-known standards and blueprints (URIs, HTTP, REST).”

  “Seamless integration of physical and conceptual resources”

   Also: “The physical web”, “the tactile web”


• How?
          - Connect device to Internet,
          - Embed web server,
          - Model resources as URIs
          - Manipulate resources via HTTP verbs


                                                                             2
Example

• Read a resource, e.g. read the light sensor reading

                             GET /sensors/light HTTP/1.1
     Client                  Accept: */*
                                                              Sun SPOT
                             HTTP/1.1 200 OK
                             Content-Type: text/plain
                             Content-Length: 3
                             138



• Update a resource, e.g. change color of LED 4

                             PUT /actuators/leds/4 HTTP/1.1
                             Content-Type: text/plain
     Client                  Content-Length: 7
                                                              Sun SPOT
                             0,255,0


                                   HTTP/1.1 200 OK

                                                                         3
But ...

• Need to ensure URIs are:

  • Available -- when a device sleeps


  • Reachable -- when the device is
    behind a NAT or firewall


  • Stable -- even as the device moves
    around


  • Discoverable -- whether they are local
    or remote to the client



                                             4
Energy Constraints

• Devices sleep periodically to conserve battery
• Use sleep-proxy to queue requests, cache responses                                 zz




                                                                               z
                                               Sleep
                                                                           zz zz
                                               proxy
                                                                              Sun SPOT
 Client
                                                                      (sleep notification)
   GET /spots/01AB/temp HTTP/1.1
   Cache-Control: max-age=60
                                     HTTP/1.1 200 OK
                                     Age: 22
                                     Content-Length: 5
                                     86.45



  PUT /spots/01AB/leds/5 HTTP/1.1
  Content-Length: 7
  0,255,0
                                     HTTP/1.1 202 Accepted
                                     Retry-After: 45
                                     Location: spots/01AB/requests/1cqfw                    5
Network Bandwidth Constraints

• HTTP, XML are verbose. TCP connection setup/teardown adds overhead.
• Compression via binary encoding, use UDP
   • Efficient XML Interchange (http://www.w3.org/XML/EXI/)
   • HTTP header compression (draft-tolle-core-ebhttp-00, draft-frank-6lowpan-chopan-00)
                                                                                                                       Sun SPOT
                      Uncompressed                                              Compressed

 Client
          GET /spot-5317/temp HTTP/1.1
          Accept: */*                                                            13 bytes
          Host: localhost:8080                     0000 - 68 36 47 2f 74 65 6d 70-00 0e 00 00 00            h6G/temp.....
          Content-Length: 0
          User-Agent: curl/7.19.7 ... zlib/1.2.3


          HTTP/1.1 200 OK                                                        18 bytes
          Content-Type: text/plain
                                                   0000 - 48 36 40 11 b0 01 0a 00-3c 0e 00 05 00 38 39 2e   H6@.....<....89.
          Cache-Control: max-age=60
                                                   0010 - 31 35                                             15
          Content-Length: 5
          89.15                                                                                                                   6
Network Topology Constraints
• Device could be behind firewall/NAT, might move
• Use relay, with “long-poll” and Reverse HTTP (draft-lentczner-rhttp-00)

                                                                                           Sun SPOT


   Client                                   relay.net
                                                          POST /spot-5317 HTTP/1.1
                                                          Upgrade: PTTH/1.0
                                                          Connection: Upgrade
                                                          Host: relay.net

                                                        HTTP/1.1 101 Switching Protocols
                                                        Upgrade: PTTH/1.0
                                                        Connection: Upgrade
            GET /spot-5317/light HTTP/1.1
            Host: relay.net
                                                         GET /spot-5317/light HTTP/1.1

                                                            HTTP/1.1 200 OK
               HTTP/1.1 200 OK                              Connection: close
               Connection: close                            Content-Length: 3
               Content-Length: 3
                                                            216
               216                                                                                    7
Mobility

• IP address may change due to mobility or expiration of short-term lease
  (perceived mobility)


• Mobile IP and dynamic DNS


  • not widely deployed


  • don’t help when device is on a private network


• Mobile IP home agent and dynamic DNS server can be thought of as
  gateways that keep track of the current location.




                                                                            8
Discovery

• Discovering devices -- broadcast (e.g. mDNS) or registry


• Discovering URLs on a device and relationships:


    • Bootstrapping: Well defined location for metadata (/.well-known, RFC
      5785)


    • Typed links: Use the “rel” attribute in links to describe relationships
      (draft-nottingham-http-link-header-10), e.g.
                  Link: </>; rel=“http://example.net/foo’’




See also: http://hueniverse.com/2009/11/the-discovery-protocol-stack-redux      9
Putting it all together ...




                              10
Clients                                       WoT Gateway, G                                       Geotracker




                                                         1. WoT device with IP addr 10.217.217.252 in
                                                            location A opens RHTTP channel and notifies




                                                                                                                 SPOT is awake
                                                            gateway of current address and next sleep period.




C1                2. While the WoT device is awake, a request for its current location from C1 is
                  forwarded to the device. The response is cached at G and returned to C1.




           3. Client C2 requests a location reading within




                                                                                                                 SPOT is asleep

                                                                                                                                  Time
           the last 10 mins while the geotracker is asleep
C2         and the gateway returns a cached response.



             4. Client C3 requests an alert subscription and
      C3     C1 repeats its request for a current location
             while the geotracker is asleep and the gateway
             queues the requests, sends back status
C1           monitoring URIs to C3 and C1.

                                                             5. WoT device wakes up in location B and gets




                                                                                                                 SPOT is awake
                                                             address 10.217.183.21. It reopens RHTTP
                                                             channel and notifies gateway of current
                                                             address and next sleep period.


                                                             6. Gateway forwards queued request, caches                                  11
                                                             response and updates status URIs.
Clients                  WoT Gateway, G                       Protocol                   Alert device
                                                              translator




                                                                                                        SPOT is asleep
     1. Client requests a POST to
        the `alert URI. Gateway
        queues request, returns
        status monitoring URI.

                                                                      2. WoT device wakes up,
                                                                         notifies the protocol
                                                                         translator of its next
                                                                         sleep period and its
                                                                         WoT gateway using its
                                                                         native (non-HTTP)
                                                                         protocol.




                                                                                                        SPOT is awake

                                                                                                                         Time
                                    3. Protocol translator opens
                                       up RHTTP channel with
                                       gateway and conveys
                                       the WoT device’s sleep
                                       schedule and its own IP
                                       address as the devices’s
                                       ``location”.




                                     4. Gateway forwards queued request to WoT device via the
                                        translator. Device buzzes and blinks LEDs. Gateway caches
                                        returned response, updates status URI.

                                                                                                                                12
Summary

• Outlined a gateway-based network
  architecture to ensure URLs are




                                        WebApp1



                                                            WebApp2
  available, reachable, stable and




                                                  /app1




                                                                         /app2
  discoverable                                                                                  ...

• Implemented a preliminary version
                                                                                    MetaApp
  on Sun SPOTs, available as a built-                                             /.well-known
  in “Web of Things” demo
                                        NanoAppServer


• Plan to make this an integral part




                                                          CHTTPHandler


                                                                                 RHTTPHandler
                                          HTTPHandler
  of SPOT libraries
                                                                                                  ...


                                                   Nano App server                                      13

More Related Content

What's hot

Distributed Web-Cache using OpenFlow
Distributed Web-Cache using OpenFlowDistributed Web-Cache using OpenFlow
Distributed Web-Cache using OpenFlowAasheesh Tandon
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyKazuho Oku
 
C L113
C L113C L113
C L113Novell
 
Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0Christopher Mueller
 
You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!Ben Ramsey
 
Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)kholis_mjd
 
Holistic Aggregate Resource Environment
Holistic Aggregate Resource EnvironmentHolistic Aggregate Resource Environment
Holistic Aggregate Resource EnvironmentEric Van Hensbergen
 
Grokking the REST Architectural Style
Grokking the REST Architectural StyleGrokking the REST Architectural Style
Grokking the REST Architectural StyleBen Ramsey
 
March 2014 CMUG Minutes
March 2014 CMUG MinutesMarch 2014 CMUG Minutes
March 2014 CMUG MinutesCM-UG.com
 
Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.Mihai Iachimovschi
 
[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate Transports[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate TransportsPerforce
 
Real-time Online Multiplayer with Godot Engine
Real-time Online Multiplayer with Godot EngineReal-time Online Multiplayer with Godot Engine
Real-time Online Multiplayer with Godot EngineFabio Alessandrelli
 
Open Source Networking with Vyatta
Open Source Networking with VyattaOpen Source Networking with Vyatta
Open Source Networking with VyattaMatthew Turland
 
The constrained application protocol (CoAP)
The constrained application protocol (CoAP)The constrained application protocol (CoAP)
The constrained application protocol (CoAP)Hamdamboy (함담보이)
 
Edge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format TodayEdge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format TodayAkamai Technologies
 

What's hot (20)

Caching on the Edge
Caching on the EdgeCaching on the Edge
Caching on the Edge
 
Distributed Web-Cache using OpenFlow
Distributed Web-Cache using OpenFlowDistributed Web-Cache using OpenFlow
Distributed Web-Cache using OpenFlow
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using ruby
 
C L113
C L113C L113
C L113
 
Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0
 
Curl
CurlCurl
Curl
 
You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!You Look Like You Could Use Some REST!
You Look Like You Could Use Some REST!
 
Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)Basic IT 2 (General IT Knowledge-2)
Basic IT 2 (General IT Knowledge-2)
 
Bittorrent
BittorrentBittorrent
Bittorrent
 
Holistic Aggregate Resource Environment
Holistic Aggregate Resource EnvironmentHolistic Aggregate Resource Environment
Holistic Aggregate Resource Environment
 
Grokking the REST Architectural Style
Grokking the REST Architectural StyleGrokking the REST Architectural Style
Grokking the REST Architectural Style
 
March 2014 CMUG Minutes
March 2014 CMUG MinutesMarch 2014 CMUG Minutes
March 2014 CMUG Minutes
 
Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.
 
[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate Transports[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate Transports
 
Real-time Online Multiplayer with Godot Engine
Real-time Online Multiplayer with Godot EngineReal-time Online Multiplayer with Godot Engine
Real-time Online Multiplayer with Godot Engine
 
Open Source Networking with Vyatta
Open Source Networking with VyattaOpen Source Networking with Vyatta
Open Source Networking with Vyatta
 
The constrained application protocol (CoAP)
The constrained application protocol (CoAP)The constrained application protocol (CoAP)
The constrained application protocol (CoAP)
 
Edge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format TodayEdge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format Today
 
Flume intro-100715
Flume intro-100715Flume intro-100715
Flume intro-100715
 
IP Multicasting
IP MulticastingIP Multicasting
IP Multicasting
 

Viewers also liked

"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011Open University, KMi
 
Internal architecture of isp 54
Internal architecture of isp  54Internal architecture of isp  54
Internal architecture of isp 54myrajendra
 
Ch2 gsm network architecture
Ch2 gsm network architectureCh2 gsm network architecture
Ch2 gsm network architectureMohamed Shaaban
 
What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...
What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...
What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...BDDazza
 
Network architecture
Network architectureNetwork architecture
Network architectureOnline
 
5G Wireless Technology - pavankumar_912
5G Wireless Technology - pavankumar_9125G Wireless Technology - pavankumar_912
5G Wireless Technology - pavankumar_912Pavan Kumar Sindgi
 
Types of Network Architecture
Types of Network ArchitectureTypes of Network Architecture
Types of Network Architecturesabari Giri
 
Types of network
Types of networkTypes of network
Types of networkishjari
 
Internet architecture
Internet architectureInternet architecture
Internet architectureNaman Rastogi
 
Network Architecture of 5G Mobile Tecnology
Network Architecture of 5G Mobile TecnologyNetwork Architecture of 5G Mobile Tecnology
Network Architecture of 5G Mobile Tecnologyvineetkathan
 

Viewers also liked (10)

"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
 
Internal architecture of isp 54
Internal architecture of isp  54Internal architecture of isp  54
Internal architecture of isp 54
 
Ch2 gsm network architecture
Ch2 gsm network architectureCh2 gsm network architecture
Ch2 gsm network architecture
 
What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...
What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...
What is internet architecture? - (Darren's Study Guide: CompTIA A+, 220-1001 ...
 
Network architecture
Network architectureNetwork architecture
Network architecture
 
5G Wireless Technology - pavankumar_912
5G Wireless Technology - pavankumar_9125G Wireless Technology - pavankumar_912
5G Wireless Technology - pavankumar_912
 
Types of Network Architecture
Types of Network ArchitectureTypes of Network Architecture
Types of Network Architecture
 
Types of network
Types of networkTypes of network
Types of network
 
Internet architecture
Internet architectureInternet architecture
Internet architecture
 
Network Architecture of 5G Mobile Tecnology
Network Architecture of 5G Mobile TecnologyNetwork Architecture of 5G Mobile Tecnology
Network Architecture of 5G Mobile Tecnology
 

Similar to A Network Architecture for the Web of Things

Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebSteffen Gebert
 
HTTP Request Smuggling
HTTP Request SmugglingHTTP Request Smuggling
HTTP Request SmugglingAkash Ashokan
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHAPNIC
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICAPNIC
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for DevelopersSvetlin Nakov
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guideSrihari
 
Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on NetscalerMark Hillick
 
加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungcheng加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungchengMichael Zhang
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."Dongwook Lee
 
Let's use modern protocols everywhere!
Let's use modern protocols everywhere!Let's use modern protocols everywhere!
Let's use modern protocols everywhere!jcak77
 

Similar to A Network Architecture for the Web of Things (20)

Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
Http/2
Http/2Http/2
Http/2
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
Http smuggling 1 200523064027
Http smuggling 1 200523064027Http smuggling 1 200523064027
Http smuggling 1 200523064027
 
HTTP Request Smuggling
HTTP Request SmugglingHTTP Request Smuggling
HTTP Request Smuggling
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOH
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
 
HTTP
HTTPHTTP
HTTP
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for Developers
 
Introduction to HTTP2
Introduction to HTTP2Introduction to HTTP2
Introduction to HTTP2
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guide
 
Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on Netscaler
 
加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungcheng加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungcheng
 
HTTP
HTTPHTTP
HTTP
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
 
Let's use modern protocols everywhere!
Let's use modern protocols everywhere!Let's use modern protocols everywhere!
Let's use modern protocols everywhere!
 

More from benaam

Speeding up secure web transactions using Elliptic Curve Cryptography
Speeding up secure web transactions using Elliptic Curve CryptographySpeeding up secure web transactions using Elliptic Curve Cryptography
Speeding up secure web transactions using Elliptic Curve Cryptographybenaam
 
SSL on Motes (The World's Smallest Secure Web Server)
SSL on Motes (The World's Smallest Secure Web Server)SSL on Motes (The World's Smallest Secure Web Server)
SSL on Motes (The World's Smallest Secure Web Server)benaam
 
Real-time, Sensor-based Monitoring of Shipping Containers
Real-time, Sensor-based Monitoring of Shipping ContainersReal-time, Sensor-based Monitoring of Shipping Containers
Real-time, Sensor-based Monitoring of Shipping Containersbenaam
 
SNViz: Analysis-oriented Visualization for the Internet of Things
SNViz: Analysis-oriented Visualization for the Internet of ThingsSNViz: Analysis-oriented Visualization for the Internet of Things
SNViz: Analysis-oriented Visualization for the Internet of Thingsbenaam
 
Building the Web of Things with Sun SPOTs
Building the Web of Things with Sun SPOTsBuilding the Web of Things with Sun SPOTs
Building the Web of Things with Sun SPOTsbenaam
 
Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...
Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...
Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...benaam
 

More from benaam (6)

Speeding up secure web transactions using Elliptic Curve Cryptography
Speeding up secure web transactions using Elliptic Curve CryptographySpeeding up secure web transactions using Elliptic Curve Cryptography
Speeding up secure web transactions using Elliptic Curve Cryptography
 
SSL on Motes (The World's Smallest Secure Web Server)
SSL on Motes (The World's Smallest Secure Web Server)SSL on Motes (The World's Smallest Secure Web Server)
SSL on Motes (The World's Smallest Secure Web Server)
 
Real-time, Sensor-based Monitoring of Shipping Containers
Real-time, Sensor-based Monitoring of Shipping ContainersReal-time, Sensor-based Monitoring of Shipping Containers
Real-time, Sensor-based Monitoring of Shipping Containers
 
SNViz: Analysis-oriented Visualization for the Internet of Things
SNViz: Analysis-oriented Visualization for the Internet of ThingsSNViz: Analysis-oriented Visualization for the Internet of Things
SNViz: Analysis-oriented Visualization for the Internet of Things
 
Building the Web of Things with Sun SPOTs
Building the Web of Things with Sun SPOTsBuilding the Web of Things with Sun SPOTs
Building the Web of Things with Sun SPOTs
 
Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...
Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...
Early Lessons from Building Sensor.Network: An Open Data Exchange for the Web...
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"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
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

A Network Architecture for the Web of Things

  • 1. A Network Architecture for the Web of Things Vipul Gupta, Ron Goldman, Poorna Udupi {vipul.x.gupta, ron.goldman}@oracle.com, poorna@netflix.com Second International Workshop on the Web of Things (WoT 2011), Pervasive 2011 1
  • 2. Web Of Things • What? “A vision where everyday devices and objects are integrated into the Web using well-known standards and blueprints (URIs, HTTP, REST).” “Seamless integration of physical and conceptual resources” Also: “The physical web”, “the tactile web” • How? - Connect device to Internet, - Embed web server, - Model resources as URIs - Manipulate resources via HTTP verbs 2
  • 3. Example • Read a resource, e.g. read the light sensor reading GET /sensors/light HTTP/1.1 Client Accept: */* Sun SPOT HTTP/1.1 200 OK Content-Type: text/plain Content-Length: 3 138 • Update a resource, e.g. change color of LED 4 PUT /actuators/leds/4 HTTP/1.1 Content-Type: text/plain Client Content-Length: 7 Sun SPOT 0,255,0 HTTP/1.1 200 OK 3
  • 4. But ... • Need to ensure URIs are: • Available -- when a device sleeps • Reachable -- when the device is behind a NAT or firewall • Stable -- even as the device moves around • Discoverable -- whether they are local or remote to the client 4
  • 5. Energy Constraints • Devices sleep periodically to conserve battery • Use sleep-proxy to queue requests, cache responses zz z Sleep zz zz proxy Sun SPOT Client (sleep notification) GET /spots/01AB/temp HTTP/1.1 Cache-Control: max-age=60 HTTP/1.1 200 OK Age: 22 Content-Length: 5 86.45 PUT /spots/01AB/leds/5 HTTP/1.1 Content-Length: 7 0,255,0 HTTP/1.1 202 Accepted Retry-After: 45 Location: spots/01AB/requests/1cqfw 5
  • 6. Network Bandwidth Constraints • HTTP, XML are verbose. TCP connection setup/teardown adds overhead. • Compression via binary encoding, use UDP • Efficient XML Interchange (http://www.w3.org/XML/EXI/) • HTTP header compression (draft-tolle-core-ebhttp-00, draft-frank-6lowpan-chopan-00) Sun SPOT Uncompressed Compressed Client GET /spot-5317/temp HTTP/1.1 Accept: */* 13 bytes Host: localhost:8080 0000 - 68 36 47 2f 74 65 6d 70-00 0e 00 00 00 h6G/temp..... Content-Length: 0 User-Agent: curl/7.19.7 ... zlib/1.2.3 HTTP/1.1 200 OK 18 bytes Content-Type: text/plain 0000 - 48 36 40 11 b0 01 0a 00-3c 0e 00 05 00 38 39 2e H6@.....<....89. Cache-Control: max-age=60 0010 - 31 35 15 Content-Length: 5 89.15 6
  • 7. Network Topology Constraints • Device could be behind firewall/NAT, might move • Use relay, with “long-poll” and Reverse HTTP (draft-lentczner-rhttp-00) Sun SPOT Client relay.net POST /spot-5317 HTTP/1.1 Upgrade: PTTH/1.0 Connection: Upgrade Host: relay.net HTTP/1.1 101 Switching Protocols Upgrade: PTTH/1.0 Connection: Upgrade GET /spot-5317/light HTTP/1.1 Host: relay.net GET /spot-5317/light HTTP/1.1 HTTP/1.1 200 OK HTTP/1.1 200 OK Connection: close Connection: close Content-Length: 3 Content-Length: 3 216 216 7
  • 8. Mobility • IP address may change due to mobility or expiration of short-term lease (perceived mobility) • Mobile IP and dynamic DNS • not widely deployed • don’t help when device is on a private network • Mobile IP home agent and dynamic DNS server can be thought of as gateways that keep track of the current location. 8
  • 9. Discovery • Discovering devices -- broadcast (e.g. mDNS) or registry • Discovering URLs on a device and relationships: • Bootstrapping: Well defined location for metadata (/.well-known, RFC 5785) • Typed links: Use the “rel” attribute in links to describe relationships (draft-nottingham-http-link-header-10), e.g. Link: </>; rel=“http://example.net/foo’’ See also: http://hueniverse.com/2009/11/the-discovery-protocol-stack-redux 9
  • 10. Putting it all together ... 10
  • 11. Clients WoT Gateway, G Geotracker 1. WoT device with IP addr 10.217.217.252 in location A opens RHTTP channel and notifies SPOT is awake gateway of current address and next sleep period. C1 2. While the WoT device is awake, a request for its current location from C1 is forwarded to the device. The response is cached at G and returned to C1. 3. Client C2 requests a location reading within SPOT is asleep Time the last 10 mins while the geotracker is asleep C2 and the gateway returns a cached response. 4. Client C3 requests an alert subscription and C3 C1 repeats its request for a current location while the geotracker is asleep and the gateway queues the requests, sends back status C1 monitoring URIs to C3 and C1. 5. WoT device wakes up in location B and gets SPOT is awake address 10.217.183.21. It reopens RHTTP channel and notifies gateway of current address and next sleep period. 6. Gateway forwards queued request, caches 11 response and updates status URIs.
  • 12. Clients WoT Gateway, G Protocol Alert device translator SPOT is asleep 1. Client requests a POST to the `alert URI. Gateway queues request, returns status monitoring URI. 2. WoT device wakes up, notifies the protocol translator of its next sleep period and its WoT gateway using its native (non-HTTP) protocol. SPOT is awake Time 3. Protocol translator opens up RHTTP channel with gateway and conveys the WoT device’s sleep schedule and its own IP address as the devices’s ``location”. 4. Gateway forwards queued request to WoT device via the translator. Device buzzes and blinks LEDs. Gateway caches returned response, updates status URI. 12
  • 13. Summary • Outlined a gateway-based network architecture to ensure URLs are WebApp1 WebApp2 available, reachable, stable and /app1 /app2 discoverable ... • Implemented a preliminary version MetaApp on Sun SPOTs, available as a built- /.well-known in “Web of Things” demo NanoAppServer • Plan to make this an integral part CHTTPHandler RHTTPHandler HTTPHandler of SPOT libraries ... Nano App server 13