skip to main content
10.1145/1453101.1453151acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Doloto: code splitting for network-bound web 2.0 applications

Published:09 November 2008Publication History

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

  1. A. V. Aho, M. Lam, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Dojo Foundation. Dojo, the JavaScript toolkit. http://dojotoolkit.org, 2007.Google ScholarGoogle Scholar
  3. M. Franz. Dynamic linking of software components. Computer, 30(3):74--81, Mar 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Google Web toolkit. http://code.google.com/webtoolkit.Google ScholarGoogle Scholar
  5. G. Hunt and M. Scott. Coign automatic distributed partitioning system. In Proceedings of the Symposium on Operating System Design and Implementation, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. T. Jensen, D. L. Métayer, and T. Thorn. Security and dynamic class loading in Java: A formalization. In Proceedings of the International Conference on Computer Languages, page 4, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. Kiciman and B. Livshits. AjaxScope: a platform for remotely monitoring the client-side behavior of Web 2.0 applications. In Proceedings of Symposium on Operating Systems Principles, Oct. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Krintz, B. Calder, and U. Hölzle. Reducing transfer delay using Java class file splitting and prefetching. In OOPSLA, pages 276--291, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Lawrence. Fiddler: Web debugging proxy. http://www.fiddlertool.com/fiddler/, 2007.Google ScholarGoogle Scholar
  10. S. Liang and G. Bracha. Dynamic class loading in the Java virtual machine. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 36--44, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Microsoft Corporation. Microsoft live labs volta. http://labs.live.com/volta/, 2007.Google ScholarGoogle Scholar
  12. Microsoft Corporation. Silverlight. http://silverlight.net, 2007.Google ScholarGoogle Scholar
  13. D. S. Myers, J. N. Carlisle, J. A. Cowling, and B. H. Liskov. MapJAX: Data structure abstractions for asynchronous Web applications. In Proceedings of the Usenix Technical Conference, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Pacifici, M. Spreitzer, A. Tantawi, and A. Youssef. Performance management for cluster based Web services. Technical report, IBM Research, 2003.Google ScholarGoogle Scholar
  15. Pew Internet and American Project. Home broadband adoption 2007. http://www.pewinternet.org/pdfs/PIP_Broadband\%202007.pdf, 2007.Google ScholarGoogle Scholar
  16. C. Reis, J. Dunagan, H. Wang, O. Dubrovsky, and S. Esmeir. BrowserShield: Vulnerability-driven filtering of dynamic HTML. In Proc. OSDI, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Souders. High performance Web sites. www.stevesouders.com/docs/fowa.ppt, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Souders. High Performance Web Sites: Essential Knowledge for Front-End Engineers. O'Reilly Media, Inc., 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Squid developers. Squid Web proxy cache. http://www.squid-cache.org, 2006.Google ScholarGoogle Scholar
  20. C. Stewart and K. Shen. Performance modeling and system management for multi-component online services. In USENIX Symposium on Networked Systems Design and Implementation, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Tang, M. Steinder, M. Spreitzer, and G. Pacifici. A scalable application placement controller enterprise data centers. In WWW 2007: Track: Performance and Scalability, May 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. E. Tilevich and Y. Smaragdakis. J-orchestra: Automatic Java application partitioning. In Proceedings of the European Conference on Object-Oriented Programming, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. F. Tip, P. F. Sweeney, and C. Laffra. Extracting library-based Java applications. Commun. ACM, 46(8):35--40, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. F. Tip, P. F. Sweeney, C. Laffra, A. Eisma, and D. Streeter. Practical extraction techniques for Java. ACM Transactions of Programming Languages and Systems, 24(6):625--666, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Wikipedia. XMLHttpRequest. http://en.wikipedia.org/wiki/XMLHttpRequest.Google ScholarGoogle Scholar
  26. D. Yu, A. Chander, N. Islam, and I. Serikov. JavaScript instrumentation for browser security. In Proceedings of the Conference on the Principle of Programming Languages, Jan. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Doloto: code splitting for network-bound web 2.0 applications

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      SIGSOFT '08/FSE-16: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
      November 2008
      369 pages
      ISBN:9781595939951
      DOI:10.1145/1453101

      Copyright © 2008 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 9 November 2008

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate17of128submissions,13%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader