Introducing the QEST broker        Matteo Collina (matteo.collina2@unibo.it) Giovanni Emanuele Corazza (giovanni.corazza@u...
Outline• Goal of this work• QEST architecture• Experimental results• Current Issues• Roadmap
http://www.flickr.com/photos/adactio/2337914481                                                   50 billions             ...
Scalability IssuesM2M protocols are mostly      “Things” should interact withad-hoc, and researchers and   our lives, and ...
• “things” exposed       • “things” exposed  with binary protocol     to the web• publish/subscribe      • request respons...
speaksspeaks HTTP
HTTP Clients           MQTT Clients   QEST                     REST Server          MQTT Server• MQTT broker              ...
state-of-art                  state-of-art                                             QEST-based      QEST-based         ...
• use one pub/sub channel                                                           for each topic                        ...
QEST : MQTT to REST• retains every message received                                      client.publish("temp", "30");• ev...
QEST : REST to MQTT• transform every HTTP PUT received to a MQTT message                            curl -X PUT -d { "payl...
HTTP/MQTT ClientsHow to                          Load Balancerscale         REST Server   MQTT Server           REST Serve...
Experimental Results• We compared our MQTT  implementation to the leading  ones.• QEST is slower, but the  implementation ...
• What devices can a user monitor?• What devices can listen to the state of  other devices?• Who can access the devices st...
We need OAuth for devices!
Format Issues• What data format the devices and the  web can agree upon?• Is possible that they could not agree?• QEST cur...
Format IssuesMultiple solutions:  • use json-compatible formats    everywhere: ubjson, bison, ecc.  • add to MQTT a MIME-c...
Roadmap• Support standard message brokers, like  RabbitMQ or ActiveMQ• Improve the web interface• Resolve format issues• P...
Thank You!  Matteo Collina (matteo.collina2@unibo.it) Matteo Collina (matteo.collina2@unibo.it)               @matteocollina
Upcoming SlideShare
Loading in …5
×

QEST Presentation for the Eclipse Foundation M2M IWG

12,007 views

Published on

A more technical presentation regarding QEST, as introduced by http://www.slideshare.net/matteocollina/making-things-that-works-with-us.

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
12,007
On SlideShare
0
From Embeds
0
Number of Embeds
9,838
Actions
Shares
0
Downloads
72
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

QEST Presentation for the Eclipse Foundation M2M IWG

  1. 1. Introducing the QEST broker Matteo Collina (matteo.collina2@unibo.it) Giovanni Emanuele Corazza (giovanni.corazza@unibo.it) Alessandro Vanelli-Coralli (alessandro.vanelli@unibo.it)
  2. 2. Outline• Goal of this work• QEST architecture• Experimental results• Current Issues• Roadmap
  3. 3. http://www.flickr.com/photos/adactio/2337914481 50 billions interconnected "things" by 2020
  4. 4. Scalability IssuesM2M protocols are mostly “Things” should interact withad-hoc, and researchers and our lives, and all thebusinesses focus on low technology should be built tolevel problems. make them easy to use.
  5. 5. • “things” exposed • “things” exposed with binary protocol to the web• publish/subscribe • request response• topics as the naming • URIs as the system naming system
  6. 6. speaksspeaks HTTP
  7. 7. HTTP Clients MQTT Clients QEST REST Server MQTT Server• MQTT broker QEST• REST interface• HTTP semantics Data Layer• no QoS• built on node.js and redis Redis
  8. 8. state-of-art state-of-art QEST-based QEST-based approach to IoT apps IoT apps approach to solution to IoT apps solution to IoT apps Web App Web App Web App Bridge Web App QEST Bridge QEST IoT Broker Device IoT Device 3 2 1 0 9 8 7 6 5 4 3 2 1 0 GND SCL AREF SDA 1 1 1 1 DIGITAL RX TX PWM PWM PWM PWM PWM PWM L TX Arduino UNO ON Broker RX 1 ICSP www.arduino.cc RESET IOREF POWER ANALOG IN 3V3 5V Gnd Vin 0 1 2 3 4 5 Device 3 2 1 0 9 8 7 6 5 4 3 2 1 0 GND SCLAREF SDA 1 1 1 1 DIGITAL RX TX PWM PWM PWM PWM PWM PWM L TX RX Arduino UNO ON 1 ICSP www.arduino.cc RESET IOREF POWER ANALOG IN 3V3 5V Gnd Vin 0 1 2 3 4 5 Device
  9. 9. • use one pub/sub channel for each topic QEST • has a global channel to support searches • publishes newly created topics on the global channel, so old subscribers can interact with new topicshttp://www.flickr.com/photos/jurvetson/5268677/
  10. 10. QEST : MQTT to REST• retains every message received client.publish("temp", "30");• every topic has its own URI: /topics/<NAME> curl -H "Accept: txt" http://qest.me/topics/temp
  11. 11. QEST : REST to MQTT• transform every HTTP PUT received to a MQTT message curl -X PUT -d { "payload": 42 } -H "Content-Type: application/json" http://qest.me/topics/temp• devices can listen directly to MQTT topics void callback(char* topic, byte* payload, int length) { ... } PubSubClient(server, 1883, callback); client.subscribe("temp");
  12. 12. HTTP/MQTT ClientsHow to Load Balancerscale REST Server MQTT Server REST Server MQTT Server QEST Data Layer ... QEST Data Layer Redis
  13. 13. Experimental Results• We compared our MQTT implementation to the leading ones.• QEST is slower, but the implementation is in javascript vs C.• QEST performance is not affected by handling MQTT or HTTP.
  14. 14. • What devices can a user monitor?• What devices can listen to the state of other devices?• Who can access the devices state?• Is the communication secure?Security Issues
  15. 15. We need OAuth for devices!
  16. 16. Format Issues• What data format the devices and the web can agree upon?• Is possible that they could not agree?• QEST currently tries to perform data format adaptation to and from JSON.
  17. 17. Format IssuesMultiple solutions: • use json-compatible formats everywhere: ubjson, bison, ecc. • add to MQTT a MIME-compatible binary header to allow further processing
  18. 18. Roadmap• Support standard message brokers, like RabbitMQ or ActiveMQ• Improve the web interface• Resolve format issues• Propose a solution for the security issues
  19. 19. Thank You! Matteo Collina (matteo.collina2@unibo.it) Matteo Collina (matteo.collina2@unibo.it) @matteocollina

×