icono_twiter icono Facebook
Carlos García Pérez

Técnico especialista en informática de empresa (CEU).

Ingeniero Técnico en Informática de Sistemas (UPM)

Creador de MobileTest, Haaala!, Girillo, toi18n.

Charla sobre desarrollo de aplicaciones en Android.

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2009-01-02

Tutorial visitado 9.382 veces Descargar en PDF
OSCache: Sistema de caché para aplicaciones Java

OSCache: Sistema de caché para aplicaciones Java

Índice de contenido

Introducción

Normalmente hay secciones y datos dentro de nuestras aplicaciones que no varían con frecuencia o cuya frecuencia está controlada y es conocida. Además, obtener esta información es costosa en tiempo o recursos informáticos.. pues bien, es obvio que si cacheamos esta información el rendimiento de nuestra aplicación incrementará y por lo tanto la satisfacción de los usuarios que la utilizan también mejorará.

En este tutorial vamos a ver uno de los sistemas de caché más extendidos y aceptados, se trata de OSCache

Caso de estudio: Aplicación de escritorio

A continuación, vamos a programar una sencilla aplicación de escritorio en donde aprenderemos a realizar las tareas de cacheo, descacheo y acceso a la información cacheada. Se trata de una sencilla aplicación en donde cada operación se realiza al hacer clic en un botón, y en donde se mostrará el tiempo que transcurre desde que se inicia la tarea hasta que finaliza. Para ello, se simula el acceso a una fuente de datos cuyo costo en tiempo es bastante elevado, por lo que decidimos cachearlo.

La intención de esta sencilla aplicación es que aprenda y observe lo que va sucediendo al acceder a datos cacheados, acceder a datos que no han sido cacheados, etc.

Configuración de OSCache para este ejemplo

OSCache se configura fácilmente a través de un archivo de configuración de nombre oscache.properties.
Aunque para usarlo no hay por que tocar nada, en este tutorial vamos a cambiar el comportamiento de por defecto (cache en memoria sin límite en el número de elementos a cachear) para habilitar el cacheo en disco, de manera que si la aplicación se cierra no haya que volver a cachear los datos.

Desde mi punto de vista las propiedades que he modificado son las más importantes, así que observe los comentarios para conocer su significado.

# Habilitamos el cache en disco      
cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener

# Especificamos el directorio donde se cacheará la información
cache.path=c:\\oscache_temp

# Indicamos que queremos un límite también para los elementos cacheados en disco 
cache.unlimited.disk=false

# Como mucho serán cacheados 500 objetos simultánemente
cache.capacity=500

# Cuando se supere el límite de 500 objetos, se aplicará el algoritmo LRU (Least Recently Used) para obtener espacio en disco y cachear los nuevos elementos.
cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
    

Para más información dirigase a la documentación de configuración oficial.

Código fuente de la aplicación:

La siguiente clase simula un acceso lento (2 segundos) para obtener una información que luego será cacheada.

La siguiente clase representa una ventana con distintos botones cuyas tareas estarán realicionadas con operaciones con la caché.

Si observa la configuración de OSCache para esta aplicación, la caché en disco está habilitada, de manera que en la siguiente imagen se puede observar como OSCache crea y destruye los archivos en donde guarda la información cacheada:

Nota: Al estar habilitada la cache en disco, si cierra la aplicación y la vuelve abrir verá que los datos sigen estando cacheados, es decir, los tiempos de lectura tienden a cero.
(En este caso la cache tiene un tiempo de validez de 120 segundos desde que fué cacheada).

Caso de estudio: Aplicación Web.

OScache, además de ser un sistema de cache de propósito general sobre el cuál podemos cachear objetos. Incluye una librería de Tags y un filtro que proporcionan de forma sencilla la posibilidad de cachear secciones o páginas completas de JSP de nuestras aplicaciones Web.

Si desea más información al respecto, le recomiendo que lea el siguiente tutorial. Ver el tutorial.

Referencias a otros sistemas de caché Open Source

El siguiente enlace se enumeran otros sistemas de caché Open Source:

Open Source cache Solutions in Java

Conclusiones

Bueno como veis es bastante sencillo de integrar en nuestras aplicaciones y las mejoras de rendimiento pueden ser notables.. Eso sí, para la gente nueva en este tema, conviene profundizar más al respecto y elegir bien los puntos estratégicos a cachear.

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.
cgpcosmad@gmail.com

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2009-01-14-01:02:08

Autor:

[Daniel Alonso] Artista! Que soy Dani, el de IECI :D. Muy bueno el tutorial, a ver si le echo un vistazo ^_^ A cuidarse ;D