Caching Dynamic Web Content: Designing and Analysing an Aspect-Oriented Solution

  • Sara Bouchenak
  • Alan Cox
  • Steven Dropsho
  • Sumit Mittal
  • Willy Zwaenepoel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4290)

Abstract

Caching dynamic web content is an effective approach to reduce Internet latency and server load. An ideal caching solution is one that can be added transparently by the developers and provides complete consistency of the cached documents, while minimizing false cache invalidations. In this paper, we design and implement AutoWebCache, a middleware system for adding caching of dynamic content transparently to J2EE server-side applications having a backend database. For this purpose, we first present the principles involved in caching dynamic web content, including our logic to ensure consistency of the cached entries. Thereafter, we demonstrate the use of aspect-oriented (AOP) techniques to implement our system, showing how AOP provides modularity and transparency to the entire process. Further, we evaluate the effectiveness of AutoWebCache in reducing response times of applications, thereby improving throughput. We also analyze the transparency of our system for a general application suite, considering issues such as dynamic web pages aggregating data from multiple sources, presence of insufficiently structured interfaces for exchanging information and the use of application semantics while caching. We use two standard J2EE web benchmark applications, RUBiS and TPC-W, to conduct our experiments and discuss the results obtained.

Keywords

Caching aspect-oriented programming J2EE applications dynamic content 

References

  1. 1.
    Amza, C., Cecchet, E., Chanda, A., Cox, A., Elnikety, S., Gil, R., Marguerite, J., Rajamani, K., Zwaenepoel, W.: Specification and Implementation of Dynamic Web Site Benchmarks. In: IEEE 5th Annual Workshop on Workload Characterization (WWC-5), Austin, TX, USA (November 2002), http://rubis.objectweb.org
  2. 2.
    AspectJ 1.1 (2004), http://www.eclipse.org/aspectj/
  3. 3.
    Bouchenak, S., Cox, A., Dropsho, S., Mittal, S., Zwaenepoel, W.: Caching Dynamic Web Content in J2EE Applications. EPFL Tech. Report IC/2004/82 (October 2004)Google Scholar
  4. 4.
    Candan, K.S., Li, W.S., Luo, Q., Hsiung, W.P., Agrawal, D.: Enabling Dynamic Content Caching for Database-driven Web Sites. In: ACM SIGMOD 2001, Santa Barbara, CA, USA (2001)Google Scholar
  5. 5.
    Cattell, R., Inscore, J.: J2EE Technology in Practice: Building Business Applications with the Java 2 Platform, Enterprise Edition. Pearson Education, London (2001)Google Scholar
  6. 6.
    Colyer, A.: Implementing Caching with AOP. TheServerSide.COM (June 2004), http://www.theserverside.com/blogs/showblog.tss?id=AspectJCaching
  7. 7.
    Davies, J., Huismans, N., Slaney, R., Whiting, S., Webster, M., Berry, R.: Aspect Oriented Profiler. In: 2nd Intl. Conference on AOSD, Boston, USA (March 2003)Google Scholar
  8. 8.
    Denagro, L., Iyengar, A., Lipkind, I., Rouvellou, I.: A Middleware System Which Intelligently Caches Query Results. In: Coulson, G., Sventek, J. (eds.) Middleware 2000. LNCS, vol. 1795, p. 24. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  9. 9.
    Feldmann, A., Céceres, R., Douglis, F., Glass, G., Rabinovich, M.: Performance of Web Proxy Caching in Heterogeneous Bandwidth Environments. In: IEEE Conference on Computer Communications (INFOCOM), New York (March 1999)Google Scholar
  10. 10.
    Iyengar, A., Challenger, J.: Improving Web Server Performance by Caching Dynamic Data. In: Proceedings of USITS 1997, Monterey, CA, USA (December 1997)Google Scholar
  11. 11.
    Iyengar, A., MarcNair, E., Nguyen, T.: An Analysis of Web Server Performance. In: IEEE Global Telecommunications Conference (GLOBECOM), Phoenix (1997)Google Scholar
  12. 12.
    Iyengar, A., Challenger, J.: Data Update Propagation: A Method for Determining How Changes to Underlying Data Affect Cached Objects on the Web. IBM Technical Report RC 21093(94368), IBM Research Division (February 1998)Google Scholar
  13. 13.
  14. 14.
    Kersten, M.A., Murphy, G.C.: Atlas: A Case Study in Building a Web-based Learning Environment using Aspect-oriented Programming. In: ACM Conference on OOPSLA, Denver, Colorado, USA (November 1999)Google Scholar
  15. 15.
    Kickzales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  16. 16.
    Kienzle, J., Guerraoui, R.: AOP: Does it Make Sense? The Case of Concurrency and Failures. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 37. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  17. 17.
    Laddad, R.: AspectJ in Action - Practical Aspect-Oriented Programming. Manning Publications (2003)Google Scholar
  18. 18.
    Lipasti, M.H.: Java TPC-W Implementation Distribution, http://www.ece.wisc.edu/~pharm/tpcw.shtml
  19. 19.
    Luo, Q., Naughton, J.F.: Form-Based Proxy Caching for Database-Backend Web Sites. In: 27th Very Large Data Bases Conference (VLDB 2001), Roma, Italy (2001)Google Scholar
  20. 20.
    Mittal, S.: A Consistent and Transparent Solution for Caching Dynamic Web Content. Masters thesis, Rice University (2004), http://www.cs.rice.edu/~mittal/presentations/thesis_mittal.pdf
  21. 21.
    Netscape. Persistent Client State - HTTP Cookies, http://wp.netscape.com/newsref/std/cookie_spec.html
  22. 22.
    Oracle. Oracle9iAS Caching Solutions. Oracle Technical White Paper (December 2001), http://otn.oracle.com/products/ias/web_cache/pdf/9ias_caching_twp.pdf
  23. 23.
    Rashid, A., Chitchyan, R.: Persistence as an Aspect. In: 2nd International Conference on Aspect-Oriented Software Development (AOSD), Boston (2003)Google Scholar
  24. 24.
    Ségura-Devillechaise, M., Menaud, J.M., Muller, G., Lawall, J.: Web Cache Prefetching as an Aspect: Towards a Dynamic-Weaving Based Solution. In: 2nd International Conference on AOSD, Boston, USA (March 2003)Google Scholar
  25. 25.
    Sol, S., Berznieks, G.: Instant Web Scripts with Cgi Perl. M & T Books (1996)Google Scholar
  26. 26.
    Spider Software. SpiderCache Enterprise 2.0: Dynamic Content Delivered Faster. Spider Software Technical White Paper (September 2001), http://www.spidercache.com/
  27. 27.
    Sun Microsystems. Enterprise Applications with J2EE Platform, 2nd edn., http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/
  28. 28.
    Sun Microsystems. Java DataBase Connection (JDBC), http://java.sun.com/jdbc/
  29. 29.
    TimesTen. TimesTen Real-Time Event Processing System. TimesTen White Paper (2003), http://www.timesten.com
  30. 30.
    Transation Processing Performance Council. TPC-W: a transactional web e-Commerce benchmark, http://www.tpc.org/tpcw/
  31. 31.
    PHP: Hypertext Preprocessor. Visual PHP Web Development and Web Reporting, http://www.yessoftware.com/content_simple.php?content_id=php_org
  32. 32.
    XCache Technologies. XCache Overview (2004), http://www.xcache.com
  33. 33.
    Yagoub, K., Florescu, D., Issarny, V., Valduriez, P.: Caching Strategies for Data-Intensive Web Sites. In: 26th Very Large Databases Conference (VLDB), Egypt (2000)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2006

Authors and Affiliations

  • Sara Bouchenak
    • 1
  • Alan Cox
    • 2
  • Steven Dropsho
    • 3
  • Sumit Mittal
    • 4
  • Willy Zwaenepoel
    • 3
  1. 1.INRIAIsmier CedexFrance
  2. 2.Department of Computer ScienceRice UniversityHoustonUSA
  3. 3.Department of Computer ScienceEPFLLausanneSwitzerland
  4. 4.IBM India Research LabNew DelhiIndia

Personalised recommendations