As Internet traffic continues to grow and web sites are becoming
increasingly complex, performance and scalability are major issues for
web sites. Web sites are increasingly relying on dynamic content
generation applications to provide web site visitors with dynamic,
interactive, and personalized experiences. However, dynamic content
generation comes with a cost -- each request requires computation as
well as communication across multiple components.
To address these issues, various dynamic content caching approaches have
been proposed. Proxy-based caching approaches store content at various
locations outside the site infrastructure and can improve web site
performance by reducing content generation delays, firewall processing
delays, and bandwidth required to transmit content from the back end
applications to the proxy cache. However, existing proxy-based caching
approaches either (a) cache at the page level, which does not guarantee
that correct pages are served and provides very limited reusability, or
(b) cache at the fragment level, which requires the use of pre-defined
page layouts. To address these issues, several back end caching
approaches have been proposed, including query result caching and
fragment level caching. While back end approaches guarantee the
correctness of results and offer the advantages of fine-grained caching,
they do not address firewall delays nor due they impact bandwidth
requirements.
In this research, we present an approach and an implementation of a
dynamic proxy caching technique which combines the benefits of both
proxy-based and back end caching approaches, yet does not suffer from
the above-mentioned limitations. Our dynamic proxy caching technique
allows granular, proxy-based caching where both the content and layout
can be dynamic. We present the results of an analysis characterizing the
performance of our proposed technique, which indicates that our approach
is capable of providing significant reductions in bandwidth. We have
also deployed our proposed dynamic proxy caching technique at a major
financial institution. The results of this implementation indicate that
our technique is capable of significant reductions in both bandwidth and
response times in real-world dynamic Web applications. |