SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

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