ACM Home Page
Please provide us with feedback. Feedback
Doloto: code splitting for network-bound web 2.0 applications
Full text PdfPdf (1.12 MB)
Source Foundations of Software Engineering archive
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering table of contents
Atlanta, Georgia
SESSION: Mining and restructuring table of contents
Pages 350-360  
Year of Publication: 2008
ISBN:978-1-59593-995-1
Authors
Benjamin Livshits  Microsoft Research
Emre Kiciman  Microsoft Research
Sponsor
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 17,   Downloads (12 Months): 152,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1453101.1453151
What is a DOI?

ABSTRACT

Modern Web 2.0 applications, such as GMail, Live Maps, Face-book and many others, use a combination of Dynamic HTML, JavaScript and other Web browser technologies commonly referred to as AJAX to push application execution to the client web browser. This improves the responsiveness of these network-bound applications, but the shift of application execution from a back-end server to the client also often dramatically increases the amount of code that must first be downloaded to the browser. This creates an unfortunate Catch-22: to create responsive distributed Web 2.0 applications developers move code to the client, but for an application to be responsive, the code must first be transferred there, which takes time.

In this paper, we present Doloto, an optimization tool for Web 2.0 applications. Doloto analyzes application workloads and automatically rewrites the existing application code to introduce dynamic code loading. After being processed by Doloto, an application will initially transfer only the portion of code necessary for application initialization. The rest of the application's code is replaced by short stubs---their actual implementations are transfered lazily in the background or, at the latest, on-demand on first execution of a particular application feature. Moreover, code that is rarely executed is rarely downloaded to the user browser. Because Doloto significantly speeds up the application startup and since subsequent code download is interleaved with application execution, applications rewritten with Doloto appear much more responsive to the end-user.

To demonstrate the effectiveness of Doloto in practice, we have performed experiments on five large widely-used Web 2.0 applications. Doloto reduces the size of application code download by hundreds of kilobytes or as much as 50% of the original download size. The time to download and begin interacting with large applications is reduced by 20--40% depending on the application and wide-area network conditions. Doloto especially shines on wireless and mobile connections, which are becoming increasingly important in today's computing environments.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Dojo Foundation. Dojo, the JavaScript toolkit. http://dojotoolkit.org, 2007.
 
3
 
4
Google Web toolkit. http://code.google.com/webtoolkit.
 
5
 
6
7
8
 
9
E. Lawrence. Fiddler: Web debugging proxy. http://www.fiddlertool.com/fiddler/, 2007.
10
 
11
Microsoft Corporation. Microsoft live labs volta. http://labs.live.com/volta/, 2007.
 
12
Microsoft Corporation. Silverlight. http://silverlight.net, 2007.
 
13
 
14
G. Pacifici, M. Spreitzer, A. Tantawi, and A. Youssef. Performance management for cluster based Web services. Technical report, IBM Research, 2003.
 
15
Pew Internet and American Project. Home broadband adoption 2007. http://www.pewinternet.org/pdfs/PIP_Broadband\%202007.pdf, 2007.
 
16
 
17
 
18
 
19
Squid developers. Squid Web proxy cache. http://www.squid-cache.org, 2006.
 
20
21
 
22
23
24
 
25
Wikipedia. XMLHttpRequest. http://en.wikipedia.org/wiki/XMLHttpRequest.
26

Collaborative Colleagues:
Benjamin Livshits: colleagues
Emre Kiciman: colleagues