OSCache

RECU-0223 (Recurso Referencia)

Descripción

OSCache es una librería que tiene como objetivo proporcionar un alto rendimiento, a partir de la optimización de la configuración y manejo de caché. Esta centrado en resolver problemas en las webs dinámicas. A continuación resumimos los problemas principales:

  • Gestión de contenido dinámico. Puede darse el caso de que el contenido dinámico de algunos formularios surjan de la ejecución de una solicitud, pero puede que no se modifique este contenido. La opción de mantener las páginas completas en caché, no es viable. OSCache permite solucionar este problema mediante el empleo de taglib en las JSP.
  • Gestión de contenido binario. Los procesos de generación de archivos pdf y de visualización de imágenes suelen ser costosos desde el punto de vista del servidor. OSCache permite cachear algunas páginas a través de CachingFilter.
  • Tolerancia a fallos. Cuando se produce un error en el procesamiento de una solicitud, se devuelve un error. Da igual que se haya completado el 5 que el 95 por ciento del procesamiento de forma correcta.OSCache, permite almacenar en cache el evento que provoca el error y después devolver el mismo.

Características

Algunas características de OSCache son las siguientes:

  • Cacheo de objetos Java. La cache no se limita a almacenar contenido de HTML y JSPS, también puede almacenar objetos Java.
  • Permite controlar la cache mediante código. Para ello usa la API proporcionada por la librería.
  • Persistencia. OSCache permite la utilización de disco con el fin de conseguir la persistencia cuando utilizamos el cache. También se puede configurar para usar tanto la memoria como la cache de disco.
  • Clustering. Proporciona una estructura para gestionar cache en un cluster. Con ello aumenta la escalabilidad sin la necesidad de modificar el código de la cache.
  • Ofrece una sensible mejora de rendimiento
  • Sistema de cacheo flexibleSe permite la creación de varias caches con configuración individualizada de cada una de ellas.
  • Agrupación de objetos: Se permite la agrupación de objetos, lo que supone una mejora de rendimiento sustanciable en el manejo de los datos que se encuentran en la cache.
  • Soporta la internacionalización I18N

Buenas prácticas y recomendaciones de uso

  • Para usar la tag library requiere Servlet 2.3 y JSP 1.2 . No existe esta dependencia si se usa el OSCache API directamente.
  • El filtro de cacheo (Caching Filter) requiere y trabaja con Orion, BEA WebLogic Server y Tomcat 4.0.
  • OSCache requiere al menos Java 1.4

Ejemplos

A la par de la biblioteca de etiquetas JSP y de la CacheFilter puede utilizar OSCache a través de su API sencilla. Se puede utilizar el GeneralCacheAdministrator para crear, y administrar la memoria caché. El GeneralCacheAdministrator tiene una instancia de caché y delegados los diferentes métodos de caché. Además, el GeneralCacheAdministrator se encarga de cargar el cache.properties y crear una instancia de caché con las propiedades definidas. Se tiene que guardar una instancia de la GeneralCacheAdministrator en un valor estático o utilizar un patrón singleton para acceder a la GeneralCacheAdministrator mismo

String myKey = "myKey";
String myValue;
int myRefreshPeriod = 1000;
try {
    // Obtener de la cache
    myValue = (String) admin.getFromCache(myKey, myRefreshPeriod);
} catch (NeedsRefreshException nre) {
    try {
        // Obtener el valor
        myValue = "Este es el contenio.";
        // Almaceno en la cache
        admin.putInCache(myKey, myValue);
    } catch (Exception ex) {
        myValue = (String) nre.getCacheContent();
        admin.cancelUpdate(myKey);
    }
}

Contenidos relacionados

Pautas