For anyone attending JavaOne 2007 at the Moscone Centre in San Francisco I will be presenting a session entitled “Distributed Caching, Using the JCACHE API and ehcache, Including a Case Study”.
Abstract follows:
Title: Distributed Caching, Using the JCACHE API and ehcache, Including a Case Study on Wotif.com
Abstract: Java EE web applications are typically used in e-commerce systems. They generally involve multiple application servers communicating with a database. Caching can play an important role in enabling scaling out. Caching can be applied to servlet responses, collection caching, and Java Persistence API caching. JSR 107 (JCACHE) is an effort to standardize the cache API. It benefits users by providing a lowest common denominator for caches and by reducing the cost of change of caching implementations. This presentation looks at the features of JCACHE and the ehcache implementation of JCACHE (ehcache-1.3) in particular. It also includes a case study of wotif.com, the third-largest e-commerce site in Australia by revenue, which does a large amount of caching at each of the levels mentioned above. The case study shows how wotif.com achieved horizontal scaling by using the distributed caching features available in ehcache–all running on the GlassFish project application server. It demonstrates how to replicate servlet responses across a cluster, so that regardless of the view generator–whether it be JavaServer Pages (JSP) software, Velocity, or XML responses to Ajax calls–the servers can share a cache of responses. Next the presentation looks at how to cache computed results represented as collections. It examines pull-through-cache patterns and gives examples. Last, it discusses caching with the Java Persistence API. Wotif.com uses Hibernate, which enables pluggable second-level caching, and the presentation shows how the site uses Hibernate with a distributed cache to minimize database access. The session closes with a discussion of the timeline for release of the JCACHE specification and how to get started.