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

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.

[1]  Jörg Kienzle,et al.  AOP: Does It Make Sense? The Case of Concurrency and Failures , 2002, ECOOP.

[2]  Alan L. Cox A Consistent and Transparent Solution for Caching Dynamic Web Content , 2004 .

[3]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[4]  Sumit Mittal A consistent and transparent solution for caching dynamic Web content , 2005 .

[5]  Ramnivas Laddad,et al.  Aspect-Oriented Programming Will Improve Quality / Aspect-Oriented Programming: the Real Costs? , 2003, IEEE Softw..

[6]  A. Iyengar,et al.  An analysis of Web server performance , 1997, GLOBECOM 97. IEEE Global Telecommunications Conference. Conference Record.

[7]  Jim Inscore,et al.  J2EE technology in practice : building business applications with the Java 2 platform, enterprise edition , 2001 .

[8]  Rick G. Cattell,et al.  J2EE in Practice: Building Business Applications with the Java 2 Platform Enterprise , 2001 .

[9]  Divyakant Agrawal,et al.  Enabling dynamic content caching for database-driven web sites , 2001, SIGMOD '01.

[10]  Valérie Issarny,et al.  Caching Strategies for Data-Intensive Web Sites , 2000, VLDB.

[11]  Boris Magnusson,et al.  ECOOP 2002 — Object-Oriented Programming , 2002, Lecture Notes in Computer Science.

[12]  C. Amza,et al.  Specification and implementation of dynamic Web site benchmarks , 2002, 2002 IEEE International Workshop on Workload Characterization.

[13]  Sumit Mittal,et al.  Caching Dynamic Web Content in J2EE Applications: An Automated Solution Using Aspect Programming , 2004 .

[14]  Anja Feldmann,et al.  Performance of Web proxy caching in heterogeneous bandwidth environments , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).

[15]  Mik Kersten,et al.  Atlas: a case study in building a web-based learning environment using aspect-oriented programming , 1999, OOPSLA '99.

[16]  Arun Iyengar,et al.  A Middleware System Which Intelligently Caches Query Results , 2000, Middleware.

[17]  Arun Iyengar,et al.  Improving Web Server Performance by Caching Dynamic Data , 1997, USENIX Symposium on Internet Technologies and Systems.

[18]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[19]  Wenwei Xue,et al.  Form-based proxy caching for database-backed web sites: keywords and functions , 2006, The VLDB Journal.

[20]  Gunther Birznieks,et al.  Instant Web Scripts With Cgi Perl , 1996 .

[21]  Arun Iyengar,et al.  Data Update Propagation: A Method for Determining How Changes to Underlying Data A ect Cached Objects on the Web , 1998 .

[22]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[23]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[24]  Julia L. Lawall,et al.  Web cache prefetching as an aspect: towards a dynamic-weaving based solution , 2003, AOSD '03.

[25]  Acm Sigsoft,et al.  International Conference on Aspect-Oriented Software Development : AOSD ... , 2002 .