270 likes | 365 Views
Approaches for Asynchronous Communication in Web Applications. Stefan Potthast and Mike Rowe. Stefan Potthast, M.Sc. Computer Science Department University of Applied Sciences Darmstadt, Germany stefan.potthast@sopheon.de. Mike Rowe, Ph.D. Computer Science and
E N D
Approaches for Asynchronous Communication in Web Applications Stefan Potthastand Mike Rowe
Stefan Potthast, M.Sc. Computer Science Department University of Applied Sciences Darmstadt, Germany stefan.potthast@sopheon.de Mike Rowe, Ph.D. Computer Science and Software Engineering Department University of Wisconsin - Platteville Platteville, WI 53818 rowemi@uwplatt.edu Contact Information
Outline of Topics • Synchronous Web Pages • Asynchronous Web Applications • Asynchronous Web Technologies • Metrics • Results • Conclusions
Synchronous Communication Architecture • UI direct initiates the HTTP request and is blocked until the response is returned. • This loads a complete new page often high latency – high bandwidth requirements • Page metaphor of the Web
Asynchronous CommunicationArchitecture • Transaction and Embedding (T&E) process is added to the browser. • The T&E process handles communications with the Web Server • This frees the User Interface from blocking
Asynchronous Communication Architecture • Rather than making HTTP Requests directly, the UI sends asynchronous requests to the T&E • The T&E in turn sends requests for content to the server. • When content is returned the T&E embeds the new content. • Under this mechanism the UI is not blocked and it more closely resembles a desktop application. • This mechanism has been available for many years, being initially deployed as ActiveX.
Asynchronous Communication Architecture • Blocking of the interface for User • Loading of a complete new page only the changed data needed • Often high Lower latency and Lower Bandwidth requirements. • Page metaphor of the Web User Experience is that of a Desktop Application
AJAX • In 2005 Jesse James Garrett described a combination of already existing technologies for asynchronous JavaScript and XML (AJAX). • This introduction of the term AJAX, gave the functionality a common name. • Often Ajax (lower case “jax”) is used for non-JavaScript and XML asynchronous implementations.
Asynchronous Technologies Studied Four different approaches were studied: • AJAX • HTML Inline Frames • MS Remote Data Services (RDS) • Document Object Model (DOM) Level 3 Load and Save
Tests • An application with two primary parts was implemented. • Data Loading – downloading data from the Server to the Browser • Data Sending – sending data from the Browser to the Server
Metrics • Complexity • LOCs: needed to implement applications • Dispersion (D): LOCsi in the main block, LOCso outside the main block, D = LOCso / (LOCsi + LOCso) • The fewer LOCs and low D we believe increase maintainability.
Metrics • Runtimes • Data Loading time - the time needed to download data from the Server to the Browser • Data Sending time – the time needed to sending data from the Browser to the Server • Each of above were tested with 1KB, 10KB and 100KB datasets.
Metrics • Features – subjective measure of the richness of each technologies feature set. • Drawbacks – subjective measure of shortcomings of each technology. • Browser Support – each test was attempted on Firefox, Opera, and IE 6.0
MS Remote Data Services - msecsNote RDS is only supported by IE and only on server side; very fast loading; currently this technology is deprecated
Document Object Model - msecscurrently very little support yet for this newest technology
Conclusions • Inline Frames were not originally meant for asynchronous communication; high complexity • RDS provides very fast loading, but is too specialized as well as being nearly dead • DOM3 LS is still in the fledgling stages; poor browser support • AJAX performed consistently well in all decisive criteria. • For a much more detailed report on this problem see Stefan Potthast’s Thesis.
Questions – only easy ones please!
Influence to the Web Comparison AJAX HTMLInlineFrames RDS DOM3Load &Save Asynchronous Communication Architecture