SlideShare a Scribd company logo
1 of 31
Download to read offline
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 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 appraisalliamedison67
 
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 Softwarewebhostingguy
 
Performance Testing
Performance TestingPerformance Testing
Performance Testingsharmaparish
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testingsonukalpana
 
PERFORMANCE EVALUATION POWERPOINT
PERFORMANCE EVALUATION POWERPOINTPERFORMANCE EVALUATION POWERPOINT
PERFORMANCE EVALUATION POWERPOINTAndrew 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 WebSteffen 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-20Nathan O'Hanlon
 
network basics
network basicsnetwork basics
network basicsAvin Ash
 
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 PushDoris Chen
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumSteven 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 .pptxAASTHAJAJOO
 
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 approachSarah 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 XPagesCsaba Kiss
 
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.pdfShanthalaKV
 
HTTP protocol and Streams Security
HTTP protocol and Streams SecurityHTTP protocol and Streams Security
HTTP protocol and Streams SecurityBlueinfy Solutions
 
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 ProtocolsAbdelkhalik 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 islandsAPNIC
 
5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvarado5 maximazing networkcapacity_v4-jorge_alvarado
5 maximazing networkcapacity_v4-jorge_alvaradoSSPI Brasil
 
cross document messaging, html 5
cross document messaging, html 5cross document messaging, html 5
cross document messaging, html 5Kristoffer 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 ProgrammingMarkku 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 LayoutsMarkku 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 FinlandMarkku 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 DevelopmentMarkku Laine
 
XIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentXIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentMarkku 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 LanguageMarkku Laine
 
Editable Documents on the Web
Editable Documents on the WebEditable Documents on the Web
Editable Documents on the WebMarkku Laine
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web ApplicationsMarkku 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 ThingsMarkku Laine
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityMarkku 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

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

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