04/04/07 11:03:15
LLEGAN LOS PROGRAMAS QUE NO PIERDEN DATOS CUANDO SE VA LA LUZ
Mercè Molist
Es el más típico accidente de los usuarios de
ordenadores: estar escribiendo un documento, llevar rato sin guardarlo
y, de repente, falla la corriente eléctrica y se pierden
aquellos valiosos datos. Un nuevo concepto informático, la
"persistencia", permite crear programas que aún después
de haberse cerrado por accidente conservan la información
intacta.
Una conocida aplicación de la "informática persistente"
es la funcionalidad de hibernación de los ordenadores
portátiles: cuando hace rato que no se usan se apagan solos
pero, si se activan de nuevo, vuelven a donde estaban, con los mismos
programas abiertos y los datos contenidos en ellos.
Algo parecido sucede con algunos PDA o los teléfonos
móviles con sistema operativo Symbian: usan técnicas de
persistencia para que, cuando se acabe la batería, no se pierda
el mensaje que estábamos escribiendo. Otro ejemplo, más
primitivo, son los navegadores que al reiniciarse "recuerdan" las
direcciones web que había en las pestañas abiertas.
"En un programa tradicional, los datos se almacenan separados y deben
ser cargados y salvados de forma explícita. En un sistema de
persistencia, el programa es virtualmente eterno en el sentido de que,
si lo paras y lo lanzas de nuevo, sigue con exactamente los mismos
datos en memoria, sin que los hayas grabado", explica Jesús Cea,
único representante conocido de esta tendencia en España.
La informática persistente no precisa de un "hardware" especial,
ni de nuevos lenguajes de programación, consiste simplemente en
escribir los programas de otra manera, usando caminos que existen pero
no se habían aprovechado: "Las memorias de ferrita de los
primeros ordenadores comerciales, en los años 50, ya eran
persistentes pero hasta ahora no se ha empezado a vislumbrar el
concepto", asegura Cea.
Aunque parezca magia, no lo es, explica: "En realidad, cada cambio que
hacemos en el fichero se graba en el disco duro. Pero quien graba estos
datos no es el programa, que no lo ve ni lo nota, sino la
infraestructura, que puede ser el sistema operativo o una
librería. Esta es la clave de que los programas persistentes se
escriban de otra forma, porque aprovechan la infraestructura de otra
manera".
Así, el programa no participa en el proceso de grabación
y recuperación de datos. "Trabaja como si lo tuviese todo en
memoria", explica Cea y pone un ejemplo: "Un dibujo grabado en el disco
duro es un objeto .jpg, pero en memoria son colores, pixels, etc. Un
programa "eterno" trabaja con lo que está en memoria".
Otro ejemplo son las bases de datos: "Cuando alguien entra en un blog y
pide la entrada número 17, el programa debe conectarse a la base
de datos, pedir el objeto 17, la base de datos se lo da y el programa
lo convierte a un formato que pueda ver el usuario. Si tienes estos
datos siempre en memoria, no debes ir a buscarlos a ninguna parte, el
programa se ahorra estos pasos".
Aunque los programas "eternos" no significan el fin de las bases de
datos como almacenes de información, "sí lo son si
piensas en una base de datos relacional, como SQL, donde el programa va
a buscar la información. Desde que uso "software" persistente,
no he vuelto a necesitar SQL", asegura Jesús Cea.
Pero, ¿cómo se mete en memoria toda una base de datos?
"Funciona como la memoria virtual: cuando lanzas el programa, se van
cargando en memoria los objetos que va referenciando. Cuando la
caché está llena, se elimina lo que hace tiempo que no se
usa. Pero el programa sigue viendo todo como si estuviese en memoria y
trabajando en consecuencia, aunque "por debajo" las cosas sean
distintas".
De esta forma, explica, "el programa funciona mejor, porque no necesita
grabar ni cargar nada, y es más fácil de escribir para el
programador, que no se tiene que preocupar de estos detalles". A pesar
de ello, son pocos los programadores que utilizan la informática
persistente. La razón, según Cea, es que "exige un cambio
de mentalidad, programar en otro estilo".
David Binger, fundador del Proyecto Durus, un paquete de "software"
libre para programas persistentes, lo atribuye a "la tendencia de los
programadores a usar las tecnologías más populares,
después de todo es lo que van a pedirles en sus trabajos".
Aún así, la persistencia gana adeptos: "Al ser programas
muy simples, son más seguros".
El concepto de "informática persistente" es muy nuevo y, como
todo invento revolucionario, avanza lentamente, explica Binger: "Se
popularizó en los círculos informáticos en los
años 80 y, a finales de los 90, empezaron a aparecer
herramientas de programación dirigidas a crear sistemas
persistentes, como ZODB o Durus en Python e Hibernate en Java".
Binger creó Durus para su negocio, "MEMS and Nanotechnology
Exchange", dedicado a la fabricación de prototipos para
máquinas nanotecnológicas: "Necesitábamos manejar
mucha información en condiciones "sensibles", incluso si fallaba
el suministro eléctrico, y que nuestros programas pudiesen
acceder a los objetos que necesitasen a una gran velocidad".
Página de Jesús Cea sobre persistencia
http://www.argo.es/~jcea/artic/persistencia01.htm
Qué es la informática persistente
http://en.wikipedia.org/wiki/Persistence_(computer_science)
MEMS and Nanotechnology Exchange
http://www.mems-exchange.org/
Copyright 2007 Mercè Molist.
Verbatim copying, translation and distribution of this entire article
is permitted in any digital and no commercial medium, provide this
notice is preserved.
<<