Arriben els programes que no perden dades quan se'n va la llum

Compartir

És l’accident més típic dels usuaris d’ordinadors: estar escrivint un document, dur força estona sense desar-lo i, de sobte, falla el corrent elèctric i es perden aquelles valuoses dades. Un nou concepte informàtic, la "persistència", permet crear programes que encara després d’haver-se tancat per accident conserven la informació intacta.


Mercè Molist – Una coneguda aplicació de la "informàtica persistent" és la funcionalitat d’hibernació dels ordinadors portàtils: quan fa estona que no s’usen s’apaguen sols però, si s’activen de nou, tornen a on estaven, amb els mateixos programes oberts i les dades que contenien.

Quelcom semblant passa amb algunes PDAs o els telèfons mòbils amb sistema operatiu Symbian: usen tècniques de persistència per a què, quan s’acabi la bateria, no es perdi el missatge que estàvem escrivint. Un altre exemple, més primitiu, són els navegadors que en reiniciar-se "recorden" les adreces web que hi havia a les pestanyes obertes.

"En un programa tradicional, les dades s’emmagatzemen separades i han de ser carregades i desades de manera explícita. En un sistema de persistència, el programa és virtualment etern en el sentit que, si l’atures i el llances de nou, segueix amb exactament les mateixes dades en memòria, sense que les hagis gravat", explica Jesús Cea, únic representant conegut d’aquesta tendència a Espanya.

La informàtica persistent no precisa d’un "hardware" especial, ni de nous llenguatges de programació, consisteix simplement en escriure els programes d’una altra manera, emprant camins que existeixen però no s’havien aprofitat: "Les memòries de ferrita dels primers ordinadors comercials, en els anys 50, ja eren persistents però fins ara no s’ha començat a entreveure el concepte", assegura Cea.

Encara que sembli màgia, no ho és, explica: "En realitat, cada canvi que fem en el fitxer es grava en el disc dur. Però qui grava aquestes dades no és el programa, que no ho veu ni ho nota, sinó la infraestructura, que pot ser el sistema operatiu o una llibreria. Aquesta és la clau de que els programes persistents s’escriguin d’una altra manera, perquè aprofiten la infraestructura d’una altra manera".

Així, el programa no participa en el procés de gravació i recuperació de dades. "Treballa com si ho tingués tot en memòria", explica Cea i posa un exemple: "Un dibuix gravat en el disc dur és un objecte .jpg, però en memòria són colors, píxels, etc. Un programa "etern" treballa amb el que està en memòria".

Un altre exemple són les bases de dades: "Quan algú entra en un bloc i demana l’entrada número 17, el programa s’ha de connectar a la base de dades, demanar l’objecte 17, la base de dades li dóna i el programa ho converteix a un format que pugui veure l’usuari. Si tens aquestes dades sempre en memòria, no les has d’anar a buscar enlloc, el programa s’estalvia aquestes passes".

Encara que els programes "eterns" no signifiquen la fi de les bases de dades com a magatzems d’informació, "sí ho són si penses en una base de dades relacional, com SQL, on el programa va a buscar la informació. D’ençà que uso "software" persistent, no he tornat a necessitar SQL", assegura Jesús Cea.

Però, com es fica en memòria tota una base de dades? "Funciona com la memòria virtual: quan llances el programa, es van carregant en memòria els objectes que va referenciant. Quan la memòria cau està plena, s’elimina el que fa temps que no s’usa. Però el programa segueix veient tot com si estigués en memòria i treballant en conseqüència, encara que "per sota" les coses siguin diferents".

D’aquesta manera, explica, "el programa funciona millor, perquè no necessita gravar ni carregar res, i és més fàcil d’escriure per al programador, que no s’ha de preocupar d’aquests detalls". Tot i això, són pocs els programadors que empren la informàtica persistent. La raó, segons Cea, és que "exigeix un canvi de mentalitat, programar en un altre estil".

David Binger, fundador del Projecte Durus, un paquet de "software" lliure per a programes persistents, ho atribueix a "la tendència dels programadors a usar les tecnologies més populars, després de tot és el que els demanaran a la seva feina". Tot i així, la persistència guanya adeptes: "En ser programes molt simples, són més segurs".

El concepte d’"informàtica persistent" és molt nou i, com tot invent revolucionari, avança lentament, explica Binger: "Es va popularitzar en els cercles informàtics en els anys 80 i, a finals dels 90, van començar a aparèixer eines de programació dirigides a crear sistemes persistents, com ZODB o Durus en Python i Hibernate en Java".

Binger va crear Durus per al seu negoci, "MEMS and Nanotechnology Exchange", dedicat a la fabricació de prototips per a màquines nanotecnològiques: "Necessitàvem gestionar molta informació en condicions "sensibles", fins i tot si fallava el subministrament elèctric, i que els nostres programes poguessin accedir als objectes que necessitessin a una gran velocitat".

Pàgina de Jesús Cea sobre persistència
http://www.argo.es/~jcea/artic/persistencia01.htm

Què és la informàtica persistent
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.

Arriben els programes que no perden dades quan se'n va la llum
Valoreu aquesta publicació

Guillem Alsina
Periodista freelance especialitzat en noves tecnologies, redactor d'YCOM.cat