SlideShare a Scribd company logo
Performance Evaluation of
XMPP on the Web
Markku Laine and Kalle Säilä
Dept. Media Technology, Aalto University
Finland




                              T-106.4000 Laboratory Course in Software Techniques
                                                                  Mini Conference
                                                                    April 25, 2012
Presentation is about...


   Real-time communication techniques on the Web
   Extensible Messaging and Presence Protocol (XMPP)
   Network performance evaluation




                            2
Presentation Outline


   Introduction
   Experiments
   Results
   Conclusions and future work




                                 3
Introduction




        4
Extensible Messaging and Presence
Protocol (XMPP)
•  XML-based, open-standard communications protocol for
   real-time applications
   –  XMPP is an application-level protocol
•  Originally developed for simple chat applications (users,
   presence, and messages) under the name Jabber
   –  Now, over 300 XMPP Extension Protocols (XEPs) for a wide
      variety of application scenarios (e.g., publish-subscribe, peer-to-
      peer file transfer, and multi-user chat)
•  Core standardized by the Internet Engineering Task
   Force (IETF)
•  Widely used outside the Web

                                         5
XMPP Communication

•  Decentralized client-server architecture
•  Two-way, full-duplex channel between the client and the
   server (two XML streams over a single TCP socket)




                                 6
Three Different Techniques to use XMPP
on the Web
•  Jabber HTTP Polling
   (XEP-0025)


•  XMPP over BOSH
   (XEP-0206)


•  XMPP sub-protocol
   for WebSocket


                         7
Three Different Techniques to use XMPP
on the Web
•  Jabber HTTP Polling   {identifier};{key},!
                         <message to="{username}@{domain}">!
   (XEP-0025)              <body>{payload}</body>!
                         </message>!


                         <body rid="{rid}” sid="{sid}” key="{key}"
                         xmlns="http://jabber.org/protocol/httpbind">
•  XMPP over BOSH         <message to="{username}@{domain}">
                           <body>{payload}</body>
   (XEP-0206)             </message>
                         </body>!




•  XMPP sub-protocol     <message to="{username}@{domain}">!
                           <body>{payload}</body>!
   for WebSocket         </message>!




                             8
Experiments




       9
Setup

•  Server: Ejabberd XMPP server running on a MacBook
   Pro with a 64-bit OS X 10.6.8 operating system and a
   2.53 GHz Intel Core 2 Duo CPU
•  Client: Test clients running on an iMac with a 64-bit OS
   X 10.6.8 operating system and a 2.4 GHz Intel Core 2
   Duo CPU
   –  Browser: Safari 5.1.5
•  Network: 100/100 Mbit/s Local Area Network (LAN)
   –  Maximum Frame Payload Size: 15928 bytes (Jumbo Frame)
       •  In general, the Maximum Ethernet Frame Size is 1500 bytes



                                         10
Network Overhead

•  Goal: Find out how much
                              example
   network traffic overhead
                               <message to=”user@xmpp.org">
   the techniques generate       <body>hello world</body>
                               </message>




                   example
                    POST /http-bind HTTP/1.1
                    Host: ksaila.local:5280
                    Content-Type: text/xml; charset=UTF-8


                                   11
Round Trip Rate

•  Goal: Find out the maximum rate in which the client can
   send messages to another client
•  30 test runs per technique per payload (10, 100, and
   1000 bytes payload)
   –  100 round trips per test run
   –  100 ms polling interval with Jabber HTTP Polling
•  Tests were performed as a round trip from a client to the
   same client via the server (XMPP does not provide any
   ”message successfully delivered” information)
   –  The client was not allowed to send new messages before
      receiving the previous message

                                       12
Message Receive Rate: Server to Client

•  Goal: Find out the maximum rate in which a client can
   receive messages from other clients
•  30 test runs per technique per payload (10, 100, and
   1000 bytes payload)
   –  10000 messages per test run
   –  100 ms polling interval with Jabber HTTP Polling
•  The messages were sent from a native XMPP client
   running on the server host machine (the traffic was
   monitored during the test runs to make sure that the
   send rate was way above the receive rate)


                                       13
Results




     14
Network Overhead




          15
Frame Components




                   16
Frame Components




                   17
Total Network Overhead




                     18
Technique Network Overhead




                    19
Technique Network Overhead



     Polling vs. WebSocket: 7 times more overhead


     BOSH vs. WebSocket: 9 times more overhead




                               20
Round Trip Rate




         21
Median Round Trip Rate




                     22
Bottlenecks

•  Polling
   –  TCP connection renewal
   –  100 ms polling interval  max 9-10 round trips/second
•  BOSH
   –  TCP connection renewal
•  WebSocket
   –  Transmitted message payload size




                                      23
Message Receive Rate:
   Server to Client



            24
Median Message Receive Rate




                     25
Bottlenecks

•  Polling
   –  Multiple messages sent within a single frame
•  BOSH
   –  Multiple messages sent within a single frame
   –  Messages sent only after receiving a new request
•  WebSocket
   –  Messages sent one per frame


•  Transmitted message payload size
•  Underlying network

                                       26
Conclusions and Future Work




               27
Conclusions

•  HTTP ≠ real-time protocol
•  XMPP = real-time protocol (outside the Web)
•  Techniques to use XMPP on the Web
   1)  Jabber HTTP Polling
   2)  XMPP over BOSH
   3)  XMPP sub-protocol for WebSocket
•  Polling generates unnecessary network traffic
•  Polling and BOSH can send multiple messages within a
   single frame
•  WebSocket’s advantages are permanent TCP
   connection and extremely low overhead
                                   28
Future Work

•  Conduct an in-depth comparison of HTTP and XMPP
•  Analyze real-world Web applications to obtain
   –  Use cases & requirements
•  Expand experiments to cover
   –    10000 bytes message payload
   –    Different network environments (incl. wired and wireless)
   –    Secure connections
   –    Server CPU usage
•  Automate test runs
•  Evaluate in different real-world settings with real-world
   Web applications
                                          29
Related Work

•  Gutwin, C. et al. “Real-Time Groupware in the Browser:
   Testing the Performance of Web-Based Networking”. In
   Proceedings of CSCW’11, pages 167-176, 2011.
•  Pohja, M. “Server Push for Web Applications via Instant
   Messaging”. In Journal of Web Engineering, Vol. 9, No.
   3, pages 227-242, 2010.
•  Griffin, K. and Flanagan, C. “Evaluation of Asynchronous
   Event Mechanisms for Browser-Based Real-Time
   Communication Integration”. In Proceedings of
   TDNEA’10, pages 461-466, 2010.


                                 30
Thank you for your attention!




   Markku Laine                    Kalle Säilä
   M.Sc. (Tech.), Ph.D. student    B.Sc. (Tech.), M.Sc. student

   markku.laine@aalto.fi           kalle.saila@aalto.fi




                                  31

More Related Content

What's hot

What's up with HTTP?
What's up with HTTP?What's up with HTTP?
What's up with HTTP?
Mark Nottingham
 
Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)
maamir farooq
 
HTTP
HTTPHTTP
How Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s PerformanceHow Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s Performance
Medianova
 
Http
HttpHttp
Chat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIPChat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIP
Genora Infotech
 
HTTP Presentation
HTTP Presentation HTTP Presentation
HTTP Presentation
Lana Dujanovic
 
HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용
SangJin Kang
 
Introduction to HTTP
Introduction to HTTPIntroduction to HTTP
Introduction to HTTP
Yihua Huang
 
Http protocol
Http protocolHttp protocol
Http protocol
Arpita Naik
 
An Introduction to HTTP
An Introduction to HTTPAn Introduction to HTTP
An Introduction to HTTP
Keerthana Krishnan
 
Http/2
Http/2Http/2
Http Protocol
Http ProtocolHttp Protocol
Http Protocol
N R Z Malik
 
Http methods
Http methodsHttp methods
Http methods
maamir farooq
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to know
Gökhan Şengün
 
Http basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-pptHttp basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-ppt
Qwinix Technologies
 
Presentation (PowerPoint File)
Presentation (PowerPoint File)Presentation (PowerPoint File)
Presentation (PowerPoint File)
webhostingguy
 
computer networking
computer networkingcomputer networking
computer networking
seyvan rahimi
 
HTTP
HTTPHTTP
HTTP Protocol Basic
HTTP Protocol BasicHTTP Protocol Basic
HTTP Protocol Basic
Chuong Mai
 

What's hot (20)

What's up with HTTP?
What's up with HTTP?What's up with HTTP?
What's up with HTTP?
 
Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)
 
HTTP
HTTPHTTP
HTTP
 
How Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s PerformanceHow Time To First Byte (TTFB) Impacts Your Site’s Performance
How Time To First Byte (TTFB) Impacts Your Site’s Performance
 
Http
HttpHttp
Http
 
Chat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIPChat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIP
 
HTTP Presentation
HTTP Presentation HTTP Presentation
HTTP Presentation
 
HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용HTTP 프로토콜의 이해와 활용
HTTP 프로토콜의 이해와 활용
 
Introduction to HTTP
Introduction to HTTPIntroduction to HTTP
Introduction to HTTP
 
Http protocol
Http protocolHttp protocol
Http protocol
 
An Introduction to HTTP
An Introduction to HTTPAn Introduction to HTTP
An Introduction to HTTP
 
Http/2
Http/2Http/2
Http/2
 
Http Protocol
Http ProtocolHttp Protocol
Http Protocol
 
Http methods
Http methodsHttp methods
Http methods
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to know
 
Http basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-pptHttp basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-ppt
 
Presentation (PowerPoint File)
Presentation (PowerPoint File)Presentation (PowerPoint File)
Presentation (PowerPoint File)
 
computer networking
computer networkingcomputer networking
computer networking
 
HTTP
HTTPHTTP
HTTP
 
HTTP Protocol Basic
HTTP Protocol BasicHTTP Protocol Basic
HTTP Protocol Basic
 

Viewers also liked

Applebees server performance appraisal
Applebees server performance appraisalApplebees server performance appraisal
Applebees server performance appraisal
liamedison67
 
Web performance optimization (WPO)
Web performance optimization (WPO)Web performance optimization (WPO)
Web performance optimization (WPO)
Mariusz Kaczmarek
 
Web Server Hardware and Software
Web Server Hardware and SoftwareWeb Server Hardware and Software
Web Server Hardware and Software
webhostingguy
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
sharmaparish
 
Web servers
Web serversWeb servers
Web servers
webhostingguy
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
sonukalpana
 
Web Servers (ppt)
Web Servers (ppt)Web Servers (ppt)
Web Servers (ppt)
webhostingguy
 
PERFORMANCE EVALUATION POWERPOINT
PERFORMANCE EVALUATION POWERPOINTPERFORMANCE EVALUATION POWERPOINT
PERFORMANCE EVALUATION POWERPOINT
Andrew Schwartz
 

Viewers also liked (8)

Applebees server performance appraisal
Applebees server performance appraisalApplebees server performance appraisal
Applebees server performance appraisal
 
Web performance optimization (WPO)
Web performance optimization (WPO)Web performance optimization (WPO)
Web performance optimization (WPO)
 
Web Server Hardware and Software
Web Server Hardware and SoftwareWeb Server Hardware and Software
Web Server Hardware and Software
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Web servers
Web serversWeb servers
Web servers
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
Web Servers (ppt)
Web Servers (ppt)Web Servers (ppt)
Web Servers (ppt)
 
PERFORMANCE EVALUATION POWERPOINT
PERFORMANCE EVALUATION POWERPOINTPERFORMANCE EVALUATION POWERPOINT
PERFORMANCE EVALUATION POWERPOINT
 

Similar to Performance Evaluation of XMPP on the Web

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
Steffen Gebert
 
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Nathan O'Hanlon
 
network basics
network basicsnetwork basics
network basics
Avin Ash
 
Network
NetworkNetwork
Network
Ynon Perek
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
Doris Chen
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming Curriculum
Steven Miller
 
Module 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptxModule 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptx
AASTHAJAJOO
 
Sky x technology
Sky x technologySky x technology
Sky x technology
Soumyajit Pal
 
Chapter - 1 Introduction to networking (3).ppt
Chapter - 1 Introduction to networking (3).pptChapter - 1 Introduction to networking (3).ppt
Chapter - 1 Introduction to networking (3).ppt
Ethiopia Satlliet television
 
Aplication and Transport layer- a practical approach
Aplication and Transport layer-  a practical approachAplication and Transport layer-  a practical approach
Aplication and Transport layer- a practical approach
Sarah R. Dowlath
 
Network-aware Data Management for Large Scale Distributed Applications, IBM R...
Network-aware Data Management for Large Scale Distributed Applications, IBM R...Network-aware Data Management for Large Scale Distributed Applications, IBM R...
Network-aware Data Management for Large Scale Distributed Applications, IBM R...
balmanme
 
Websocket technology for XPages
Websocket technology for XPagesWebsocket technology for XPages
Websocket technology for XPages
Csaba Kiss
 
Chapter04
Chapter04Chapter04
Chapter04
Muhammad Ahad
 
Computer Networks Module 1-part 1.pdf
Computer Networks Module 1-part 1.pdfComputer Networks Module 1-part 1.pdf
Computer Networks Module 1-part 1.pdf
ShanthalaKV
 
HTTP protocol and Streams Security
HTTP protocol and Streams SecurityHTTP protocol and Streams Security
HTTP protocol and Streams Security
Blueinfy Solutions
 
Week8 final
Week8 finalWeek8 final
Week8 final
Irfan Ali Memon
 
Network Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and ProtocolsNetwork Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and Protocols
Abdelkhalik Mosa
 
Simulating the behavior of satellite Internet links to small islands
Simulating the behavior of satellite Internet links to small islandsSimulating the behavior of satellite Internet links to small islands
Simulating the behavior of satellite Internet links to small islands
APNIC
 
5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvarado5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvarado
SSPI Brasil
 
cross document messaging, html 5
cross document messaging, html 5cross document messaging, html 5
cross document messaging, html 5
Kristoffer Snabb
 

Similar to Performance Evaluation of XMPP on the Web (20)

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
 
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
 
network basics
network basicsnetwork basics
network basics
 
Network
NetworkNetwork
Network
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming Curriculum
 
Module 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptxModule 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptx
 
Sky x technology
Sky x technologySky x technology
Sky x technology
 
Chapter - 1 Introduction to networking (3).ppt
Chapter - 1 Introduction to networking (3).pptChapter - 1 Introduction to networking (3).ppt
Chapter - 1 Introduction to networking (3).ppt
 
Aplication and Transport layer- a practical approach
Aplication and Transport layer-  a practical approachAplication and Transport layer-  a practical approach
Aplication and Transport layer- a practical approach
 
Network-aware Data Management for Large Scale Distributed Applications, IBM R...
Network-aware Data Management for Large Scale Distributed Applications, IBM R...Network-aware Data Management for Large Scale Distributed Applications, IBM R...
Network-aware Data Management for Large Scale Distributed Applications, IBM R...
 
Websocket technology for XPages
Websocket technology for XPagesWebsocket technology for XPages
Websocket technology for XPages
 
Chapter04
Chapter04Chapter04
Chapter04
 
Computer Networks Module 1-part 1.pdf
Computer Networks Module 1-part 1.pdfComputer Networks Module 1-part 1.pdf
Computer Networks Module 1-part 1.pdf
 
HTTP protocol and Streams Security
HTTP protocol and Streams SecurityHTTP protocol and Streams Security
HTTP protocol and Streams Security
 
Week8 final
Week8 finalWeek8 final
Week8 final
 
Network Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and ProtocolsNetwork Fundamentals: Ch3 - Application Layer Functionality and Protocols
Network Fundamentals: Ch3 - Application Layer Functionality and Protocols
 
Simulating the behavior of satellite Internet links to small islands
Simulating the behavior of satellite Internet links to small islandsSimulating the behavior of satellite Internet links to small islands
Simulating the behavior of satellite Internet links to small islands
 
5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvarado5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvarado
 
cross document messaging, html 5
cross document messaging, html 5cross document messaging, html 5
cross document messaging, html 5
 

More from Markku Laine

Responsive and Personalized Web Layouts with Integer Programming
Responsive and Personalized Web Layouts with Integer ProgrammingResponsive and Personalized Web Layouts with Integer Programming
Responsive and Personalized Web Layouts with Integer Programming
Markku Laine
 
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web LayoutsLayout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Markku Laine
 
Monitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in FinlandMonitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in Finland
Markku Laine
 
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application DevelopmentXFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
Markku Laine
 
XIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentXIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web Development
Markku Laine
 
Connecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup LanguageConnecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup Language
Markku Laine
 
Editable Documents on the Web
Editable Documents on the WebEditable Documents on the Web
Editable Documents on the Web
Markku Laine
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web Applications
Markku Laine
 
Web Services for the Internet of Things
Web Services for the Internet of ThingsWeb Services for the Internet of Things
Web Services for the Internet of Things
Markku Laine
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side Functionality
Markku Laine
 

More from Markku Laine (10)

Responsive and Personalized Web Layouts with Integer Programming
Responsive and Personalized Web Layouts with Integer ProgrammingResponsive and Personalized Web Layouts with Integer Programming
Responsive and Personalized Web Layouts with Integer Programming
 
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web LayoutsLayout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
 
Monitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in FinlandMonitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in Finland
 
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application DevelopmentXFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
 
XIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentXIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web Development
 
Connecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup LanguageConnecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup Language
 
Editable Documents on the Web
Editable Documents on the WebEditable Documents on the Web
Editable Documents on the Web
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web Applications
 
Web Services for the Internet of Things
Web Services for the Internet of ThingsWeb Services for the Internet of Things
Web Services for the Internet of Things
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side Functionality
 

Recently uploaded

What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 

Recently uploaded (20)

What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 

Performance Evaluation of XMPP on the Web

  • 1. Performance Evaluation of XMPP on the Web Markku Laine and Kalle Säilä Dept. Media Technology, Aalto University Finland T-106.4000 Laboratory Course in Software Techniques Mini Conference April 25, 2012
  • 2. Presentation is about... Real-time communication techniques on the Web Extensible Messaging and Presence Protocol (XMPP) Network performance evaluation 2
  • 3. Presentation Outline Introduction Experiments Results Conclusions and future work 3
  • 5. Extensible Messaging and Presence Protocol (XMPP) •  XML-based, open-standard communications protocol for real-time applications –  XMPP is an application-level protocol •  Originally developed for simple chat applications (users, presence, and messages) under the name Jabber –  Now, over 300 XMPP Extension Protocols (XEPs) for a wide variety of application scenarios (e.g., publish-subscribe, peer-to- peer file transfer, and multi-user chat) •  Core standardized by the Internet Engineering Task Force (IETF) •  Widely used outside the Web 5
  • 6. XMPP Communication •  Decentralized client-server architecture •  Two-way, full-duplex channel between the client and the server (two XML streams over a single TCP socket) 6
  • 7. Three Different Techniques to use XMPP on the Web •  Jabber HTTP Polling (XEP-0025) •  XMPP over BOSH (XEP-0206) •  XMPP sub-protocol for WebSocket 7
  • 8. Three Different Techniques to use XMPP on the Web •  Jabber HTTP Polling {identifier};{key},! <message to="{username}@{domain}">! (XEP-0025) <body>{payload}</body>! </message>! <body rid="{rid}” sid="{sid}” key="{key}" xmlns="http://jabber.org/protocol/httpbind"> •  XMPP over BOSH <message to="{username}@{domain}"> <body>{payload}</body> (XEP-0206) </message> </body>! •  XMPP sub-protocol <message to="{username}@{domain}">! <body>{payload}</body>! for WebSocket </message>! 8
  • 10. Setup •  Server: Ejabberd XMPP server running on a MacBook Pro with a 64-bit OS X 10.6.8 operating system and a 2.53 GHz Intel Core 2 Duo CPU •  Client: Test clients running on an iMac with a 64-bit OS X 10.6.8 operating system and a 2.4 GHz Intel Core 2 Duo CPU –  Browser: Safari 5.1.5 •  Network: 100/100 Mbit/s Local Area Network (LAN) –  Maximum Frame Payload Size: 15928 bytes (Jumbo Frame) •  In general, the Maximum Ethernet Frame Size is 1500 bytes 10
  • 11. Network Overhead •  Goal: Find out how much example network traffic overhead <message to=”user@xmpp.org"> the techniques generate <body>hello world</body> </message> example POST /http-bind HTTP/1.1 Host: ksaila.local:5280 Content-Type: text/xml; charset=UTF-8 11
  • 12. Round Trip Rate •  Goal: Find out the maximum rate in which the client can send messages to another client •  30 test runs per technique per payload (10, 100, and 1000 bytes payload) –  100 round trips per test run –  100 ms polling interval with Jabber HTTP Polling •  Tests were performed as a round trip from a client to the same client via the server (XMPP does not provide any ”message successfully delivered” information) –  The client was not allowed to send new messages before receiving the previous message 12
  • 13. Message Receive Rate: Server to Client •  Goal: Find out the maximum rate in which a client can receive messages from other clients •  30 test runs per technique per payload (10, 100, and 1000 bytes payload) –  10000 messages per test run –  100 ms polling interval with Jabber HTTP Polling •  The messages were sent from a native XMPP client running on the server host machine (the traffic was monitored during the test runs to make sure that the send rate was way above the receive rate) 13
  • 14. Results 14
  • 20. Technique Network Overhead Polling vs. WebSocket: 7 times more overhead BOSH vs. WebSocket: 9 times more overhead 20
  • 22. Median Round Trip Rate 22
  • 23. Bottlenecks •  Polling –  TCP connection renewal –  100 ms polling interval  max 9-10 round trips/second •  BOSH –  TCP connection renewal •  WebSocket –  Transmitted message payload size 23
  • 24. Message Receive Rate: Server to Client 24
  • 26. Bottlenecks •  Polling –  Multiple messages sent within a single frame •  BOSH –  Multiple messages sent within a single frame –  Messages sent only after receiving a new request •  WebSocket –  Messages sent one per frame •  Transmitted message payload size •  Underlying network 26
  • 28. Conclusions •  HTTP ≠ real-time protocol •  XMPP = real-time protocol (outside the Web) •  Techniques to use XMPP on the Web 1)  Jabber HTTP Polling 2)  XMPP over BOSH 3)  XMPP sub-protocol for WebSocket •  Polling generates unnecessary network traffic •  Polling and BOSH can send multiple messages within a single frame •  WebSocket’s advantages are permanent TCP connection and extremely low overhead 28
  • 29. Future Work •  Conduct an in-depth comparison of HTTP and XMPP •  Analyze real-world Web applications to obtain –  Use cases & requirements •  Expand experiments to cover –  10000 bytes message payload –  Different network environments (incl. wired and wireless) –  Secure connections –  Server CPU usage •  Automate test runs •  Evaluate in different real-world settings with real-world Web applications 29
  • 30. Related Work •  Gutwin, C. et al. “Real-Time Groupware in the Browser: Testing the Performance of Web-Based Networking”. In Proceedings of CSCW’11, pages 167-176, 2011. •  Pohja, M. “Server Push for Web Applications via Instant Messaging”. In Journal of Web Engineering, Vol. 9, No. 3, pages 227-242, 2010. •  Griffin, K. and Flanagan, C. “Evaluation of Asynchronous Event Mechanisms for Browser-Based Real-Time Communication Integration”. In Proceedings of TDNEA’10, pages 461-466, 2010. 30
  • 31. Thank you for your attention! Markku Laine Kalle Säilä M.Sc. (Tech.), Ph.D. student B.Sc. (Tech.), M.Sc. student markku.laine@aalto.fi kalle.saila@aalto.fi 31