|Home||Services||Portfolio||Blog||Contact||Casa dei due Mori|
What is the JCache Standard?First published in SpiritSoft Digital Newsletter, January 2002
Caching has been successfully used since the dawn of the computer age to speed up applications. Data items used by applications may be expensive to create or fetch, but can be reused several times. For example, a servlet might create an HTML fragment - a news summary, for example - from multiple databases, network connections, and expensive computations and transformations; the result may be reusable over a period of time by one or many users. Holding the result in memory saves the cost of recalculating it many times.
The JCACHE specification - still in development under the Java Community Process as JSR-107 - standardizes in process caching of Java objects in a way that allows an efficient implementation, and removes from the application programmer the burden of implementing standard cache features such as data validation, locking, eviction, distribution and exception management.
SpiritCache provides application specific caching for any variety of process or application architecture, based around the JCACHE model, with extensions for additional functionality. These provide a set of pre-defined pluggable implementations, strategies and tools for working with cached data objects and administering cache networks.
In particular, SpiritCache combines JCACHE with JMS - Java Message Service - so distributed caches can communicate on JMS queues and topics to offer an extremely flexible multi-level caching architecture.
SpiritCache can be used to provide:
- Page level caching - to act as a front end web cache to existing Web Services
- 'Last image' and delta caching of rapidly changing information - such as market data - that is being sent around a network
- Multi-level (N-tier) caching services, providing reliable caching to remote or disconnected devices
- Event notification mechanism, allowing applications to subscribe to and get notified of later changes in the underlying cached data
SpiritCache is designed to substantially improve the performance of distributed applications accessing read-only or infrequently updated data items.
Business BenefitsHigh performance applications: From an end-user's point of view, applications respond more quickly; this increases user satisfaction and helps to ensure that partners and customers return more frequently to your web service or application. In terms of raw numbers one of our beta customers saw a 90-95% reduction in database hits, a large reduction in network traffic and a performance boost of around 400-10,000%. Reduced cost of server infrastructure: Because 90% or more of requests for data can be satisfied in the cache, your server infrastructure can be downgraded, or the same infrastructure can be used to support a larger number of users and a wider range of applications. One SpiritCache customer reports a saving of several million dollars per year from this effect alone - making this the most easily quantifiable component of ROI calculations. Surge protection: According to the Giga Information Group, the minimal extra processing capacity required for an ecommerce site is 6 times the average load, while some major sites may want to be prepared to handle up to 50 times their average load. Reduced application outages: Giga also estimates that a one-hour outage or service denial at a B2B site can cost 0.3% of annual revenue, while a one-hour outage at a B2C site during the peak holiday season could cost 1.5% of the site's total annual revenue. With SpiritCache, sites can afford to ensure that there is sufficient overload protection to handle even the largest peak crowds without a crippling service outage. Reduced cost and risk of development: The SpiritCache open framework provides a consistent, interface in any Java environment. Developers use a single, standard JCACHE API to manage any kind of object - XML, Java, Relational or whatever you choose; one caching technology meets all application requirements. Developers can avoid vendor lock-in and so reduce current and future operational risk.
The performance envelope of distributed systems is dictated by three distinct elements:
- Server performance
- Network and middleware latency
- Presentation and transformation complexity (in any tier of the application)
A well-designed cache can help a developer address all of these issues by allowing one or more of these steps to be avoided much of the time. Data - either raw or processed - is stored for repeated reuse without the overhead of revisiting the central server and passing the data through the inevitable chain of re-formatting and re-presentation.
SpiritCache provides all the necessary components - based on the JCACHE standard - to realise optimum application performance while saving on infrastructure costs.
|Copyright © 2000-2013 Nigel Thomas, Preferisco Limited. Last modified [an error occurred while processing this directive].|