Page 1 sur 1

Sauvegarde des données

Posté : mar. 13 août 2013 08:22
par Xavier
Sauvegarde des données


En XT3, la sauvegarde des données est en mode "systématique" :
  • Pour tous les outils sauf 2 (Alarmes et Raccourcis), le fichier de données dédié est systématiquement lu à l'ouverture de l'outil qui en est propriétaire, et sauvé à sa fermeture, qu'il y ait eu modification ou non.
  • Les fichiers des Alarmes et Raccourcis, nécessaires à la Barre, sont pris en charge par elle.
  • Un certain nombre de sauvegardes additionnelles a été rajouté au fil du temps, comme après le déclenchement des alarmes, l'activation/désactivation du cryptage, etc.
  • Et finalement, quitter l'application déclenche également une sauvegarde des fichiers ouverts, ce qui d'ailleurs est la source de corruption des Alarmes et Raccourcis lors d'une extinction forcée de l'ordinateur : XT a déclenché une sauvegarde et s'est fermé, mais ses données sont dans le cache disque qui est bloqué par Windows... jusqu'à ce que l'utilisateur éteigne la machine.
  • Dans tous les outils ainsi que sur la Barre, il est possible de forcer une sauvegarde de tous les fichiers actuellement ouvert par [Ctrl+S].
En XT3, le fichier des options et ceux des données sont liés pour deux raisons :
  • Il est possible de déplacer les fichiers des données, et leur emplacement est donc conservé dans le fichier des options qui reste dans le même dossier que l'exécutable.
  • Si le cryptage est activé, il y a un flag dans le fichier des options.

En XT4, la gestion des fichiers a évolué :
  • Tous les outils partagent le même fichier de données.
  • Le fichier des options et celui des données seront toujours dans le même dossier, soit défini par le système, soit choisi par l'utilisateur au moment de l'installation.
  • Il n'y a plus d'information de cryptage dans les options, rendant ainsi possible d'interchanger les fichiers de données, sous certaines conditions...
  • ... qui sont que les Raccourcis ajoutés par l'utilisateur et stockés dans le fichier de données sont référencés par la configuration de la Barre qui est stockée dans le fichier des options. Afin d'éviter les crashes dus à cela, il y a un "service de sécurité" qui élimine automatiquement de la Barre tout bouton ou élément de menu qui pointe vers un Raccourci introuvable.
Pour XT4, voici ce qui est prévu pour la sauvegarde des données :
  • 1) Le fichier des données ne devra être sauvé que s'il a été modifié. (Bien sûr il restera toujours possible de forcer une sauvegarde manuellement.) Ainsi donc il devra être possible d'utiliser l'application une journée entière en lecture seule sans sauver les données une seule fois. Cela rendra possible le mode /ReadOnly qui est prévu pour plus tard. La première idée était de brancher dans le code de tous les outils des sortes d'évènements qui activerait un flag Modified, mais on s'oriente plutôt vers une activation dans les services de bas niveau des objets XData : création, modification de Property, copie, déplacement et suppression. Malheureusement il n'y a pas de services pour le champ Text, ce qui veut dire que chaque outil peut le modifier sans passer par un service de bas niveau, et donc qu'il va donc falloir en créer un et le brancher dans les outils qui modifient ce champ.
  • 2) Il y aura un décalage entre la détection d'une modification et le déclenchement de la sauvegarde. Ce délai pourra être configurable, mais disons une minute. Cela veut dire qu'une modification unique sera sauvée une minute plus tard, mais que modifier continuellement des données permettra de les sauver chaque minute. (Dans XT3, on peut travailler 8h sur des données sans qu'elles ne soient sauvées si l'outil n'est pas fermé !)
  • 3) Le système devra se constituer des archives, qui seront des versions complètes des sauvegardes dans le format standard afin de permettre la restauration totale ou sélective via double-clic et traitement dans l'outil d'import. Ces archives seront à priori stockées dans le même dossier que les fichiers, et seront automatiquement gérées par l'application. Pour le moment l'idée est de constituer une archive à chaque sauvegarde, puis de ne garder qu'une sur 5, puis une sur 10, puis une sur 100. Cela donnerait une base avec ces archives : -1, -2, -3, -4, -5, -10, -20, -30-, -40, -50, -100, -200, -300 etc... Mais cela semble lourd de maintenir une liste de ces "ages", donc peut être qu'il y aura une version plus simple consistant à conserver en archive les N dernières sauvegardes, on verra.
  • 4) Les fichiers de données ou d'archives devront être entièrement cryptables afin d'être uploadés sur un site internet de transfert. Il n'est pas certain que cette fonction soit proposée en version 4.0.0.
Aujourd'hui on va travailler sur le point 1 et la détection de modification dans les services de bas niveau. :)