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.


<<