El Blog de Trespams

Blog personal sobre tecnologia, gestió de projectes i coses que se me passen pel cap

De cachés, peresa i febre

El cap de setmana es presentava mogudet: els divendres vàrem dur els nins (els dos) al metge, ja que s'havien carregat de febre. No s'hi posen per poc, en un tres i no res es posen a 39 i busques i el gran ja ens ha donat algún ensurt, així que davant els primers simptomes febrils optam per dur-los al metge per saber si la malaltia es vírica o bacteriana i posar-hi remei l'abans possible.

Així doncs, ha tocat un cap de setmana d'estar a casa, que tampoc s'hi està malament... És sorprenent el que són els nins, en un tres i no res passen de voler jugar i no estar-se quiets a tenir febre. Tan punt volien anar amb bicileta com se carregaven de febre i no volien ni menjar. És un passar pena continuo, supòs que tothom hi ha de passar per això, però què voleu, sóc passador de pena, no hi puc fer res. Tot i així també sóc optimista de mena, un optimisme cínic, també ho he de reconèixer, però això fa que a més de veure els problemes al mateix temps intenti cercar solucions. Això va molt bé en el món informàtic :)

Entre febrada i febrada he llegit un poc. Fa temps vaig comprar Buenos días, pereza de Corinne Maier i aquest cap de setmana l'he acabat de llegir. El llibre està força bé, es interessant i bo de llegir, però no m'han agradat ni el títol ni el subtítol "Estrategias para sobrevivir en el trabajo". Crec que dóna una impresió equivocada del que és el contingut de llibre, posant-ho al nivell de "El principio de Dilbert" d'Scott Adams, quan realment el to general del llibre està lluny de l'humor, si bé traspua ironia i un poc de mala llet. Si feis feina en una empresa gran o sou funcionaris de l'estat potser us trobareu identificats (potser fins i tot retratats) per algunes situacions que s'expliquen al llibre, però més que res l'autora fa un repàs als grans mites de l'empresa moderna i posa moltes coses al seu lloc. En definitiva, recomanable per pensar un poc.

També ha donat temps per fer alguna cosa que altra en informàtica. Com sabeu darrerament estic molt centrat en Java per motius de feina. Ara ens hem trobat amb la necessitat de connectar un sistema amb el nostre fent peticions XML encapsulades en HTTP. Molt divertit tot plegat. La part mésemprenyívola és el que no tenim cap control damunt el tipus de consultes que es poden fer. Hi ha unes especificacions i prou, fins aquí tot correcte, el problema és que el gramatge de les consultes és molt gruixut, per la qual cosa el temps de resposta no és gaire bo.

Això es pot resoldre amb un sistema de caché que amagatzemi els resultats de les consultes i a partir d'aquí posar una façada que amb el gramatge fi que necessitam per a la nostra aplicació. És aquí on entra EhCache, un sistema de caché senzill i potent que permet enmagatzemar objectes java (serialitzables, es clar). Es poden crear diversos contenidors de caché i assignar-los un temps de vida a cada un, un nombre màxim d'objectes que es poden enmagatzemar, si l'enmagatzematge ha de ser en memòria o disc, etc. No està pensada per clusters però pel que necessitam ara ja anirà bé. És el sistema de caché que es fa servir normalment amb Hibernate, i això representa que sovint ja tindrem la llibreria a l'aplicació, però que també podem tenir problemes de versions si el que volem és utilitzar una versió més recent del sistema de caché.

L'altra repte era veure com funcinava això fora d'Hibernate i a més dins d'un contenidor J2EE com Tomcat. La idea del Thread Local que fa servir Hibernate per mantenir les sessions no serveix per un sistema de caché o interessa que tothom accedeixi al mateix repositori. Una possible solució l'he trobada fent servir Spring i pareix que va prou bé. Tant en el tema d'Spring com en el EhCaché estic encara en el nivell 1oI i em queda molt per aprendre, sobretot d'Spring. Estic començant a veure la potència que tenen els IoC en general i Spring en particular, però encara passarà temps per a poder dominar el tema tant com a mi m'agradaria. La documentació d'Spring és molt completa en el referent a com integrar diferents tecnologies dins el bastiment, però no ho és gens a l'hora de proporcionar exemples clarificadors i mini aplicacions per resoldre els problemes més comuns. Potser encara no he mirat als llocs adequats.

Sigui com sigui ara tenc una aplicació d'exemple basada en Equinox que em serveix de prova de concepte de com es pot injetcar la caché a un objecte i per tant fer-ho servir pels propòsits que volia. A més he comprovat que la caché es única i es compartida per tots els clients, quelcom que no em quedava massa clar dels exemples que hi havia o amb segons quins montatges que havia fet per provar-ho. Potser hi ha altres maneres de fer-ho però per mi aquesta ha resultat la més senzilla, i com diu la màxima de l'extreme programming, fes la cosa més simple que pugui funcionar, i per mi ha estat aquesta.

blog comments powered by Disqus