SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Introducing the
 QEST broker

        Matteo Collina (matteo.collina2@unibo.it)
 Giovanni Emanuele Corazza (giovanni.corazza@unibo.it)
  Alessandro Vanelli-Coralli (alessandro.vanelli@unibo.it)
Outline
• Goal of this work

• QEST architecture

• Experimental results

• Current Issues

• Roadmap
http://www.flickr.com/photos/adactio/2337914481




                                                   50 billions
                                                    interconnected


                                                  "things"
                                                         by

                                                      2020
Scalability Issues

M2M protocols are mostly      “Things” should interact with
ad-hoc, and researchers and   our lives, and all the
businesses focus on low       technology should be built to
level problems.               make them easy to use.
• “things” exposed       • “things” exposed
  with binary protocol     to the web

• publish/subscribe      • request response

• topics as the naming   • URIs as the
  system                   naming system
speaks



speaks HTTP
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
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
 SCL

AREF
 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
• 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 topics




http://www.flickr.com/photos/jurvetson/5268677/
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
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");
HTTP/MQTT Clients

How to                          Load Balancer

scale

         REST Server   MQTT Server           REST Server   MQTT Server

                 QEST
                 Data Layer
                                     ...             QEST
                                                     Data Layer




                                     Redis
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.
• 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
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 currently tries to perform data
  format adaptation to and from JSON.
Format Issues

Multiple solutions:

  • use json-compatible formats
    everywhere: ubjson, bison, ecc.

  • add to MQTT a MIME-compatible
    binary header to allow further
    processing
Roadmap

• Support standard message brokers, like
  RabbitMQ or ActiveMQ

• Improve the web interface

• Resolve format issues

• Propose a solution for the security issues
Thank You!
  Matteo Collina (matteo.collina2@unibo.it)
 Matteo Collina (matteo.collina2@unibo.it)
               @matteocollina

Weitere ähnliche Inhalte

Andere mochten auch

E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)
Matteo Collina
 
The internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayThe internet of things - Rails Girls Galway
The internet of things - Rails Girls Galway
Matteo Collina
 
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMaking things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things Day
Matteo Collina
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Matteo Collina
 
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala
floridawusergroup
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Matteo Collina
 
Operational transformation
Operational transformationOperational transformation
Operational transformation
Matteo Collina
 
Making things that work with us - Distill
Making things that work with us - DistillMaking things that work with us - Distill
Making things that work with us - Distill
Matteo Collina
 
Making your washing machine talk with a power plant
Making your washing machine talk with a power plantMaking your washing machine talk with a power plant
Making your washing machine talk with a power plant
Matteo Collina
 

Andere mochten auch (17)

Making things that works with us codemotion
Making things that works with us   codemotionMaking things that works with us   codemotion
Making things that works with us codemotion
 
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.jsCrea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
 
E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)
 
The internet of things - Rails Girls Galway
The internet of things - Rails Girls GalwayThe internet of things - Rails Girls Galway
The internet of things - Rails Girls Galway
 
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things DayMaking things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things Day
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala
 
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejsBuilding a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejs
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle App
 
Operational transformation
Operational transformationOperational transformation
Operational transformation
 
Exposing M2M to the REST of us
Exposing M2M to the REST of usExposing M2M to the REST of us
Exposing M2M to the REST of us
 
Making things that work with us - Distill
Making things that work with us - DistillMaking things that work with us - Distill
Making things that work with us - Distill
 
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
IAB-5039 : MQTT: A Protocol for the Internet of Things (InterConnect 2015)
 
Making your washing machine talk with a power plant
Making your washing machine talk with a power plantMaking your washing machine talk with a power plant
Making your washing machine talk with a power plant
 
IBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use Cases
 

Kürzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

QEST Presentation for the Eclipse Foundation M2M IWG

  • 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. Outline • Goal of this work • QEST architecture • Experimental results • Current Issues • Roadmap
  • 3. http://www.flickr.com/photos/adactio/2337914481 50 billions interconnected "things" by 2020
  • 4. Scalability Issues M2M protocols are mostly “Things” should interact with ad-hoc, and researchers and our lives, and all the businesses focus on low technology should be built to level problems. make them easy to use.
  • 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
  • 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. 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 SCL AREF 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. • 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 topics http://www.flickr.com/photos/jurvetson/5268677/
  • 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. 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. HTTP/MQTT Clients How to Load Balancer scale REST Server MQTT Server REST Server MQTT Server QEST Data Layer ... QEST Data Layer Redis
  • 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. • 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. We need OAuth for devices!
  • 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. Format Issues Multiple solutions: • use json-compatible formats everywhere: ubjson, bison, ecc. • add to MQTT a MIME-compatible binary header to allow further processing
  • 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. Thank You! Matteo Collina (matteo.collina2@unibo.it) Matteo Collina (matteo.collina2@unibo.it) @matteocollina