Joueb.com
Envie de créer un weblog ?
ViaBloga
Le nec plus ultra pour créer un site web.
Débarrassez vous de cette publicité : participez ! :O)
Miellaby's Log

Joueb de pensées marsupiales

Sommaire - Ecrire un article

Présentation
Bienvenue sur le Joueb de Miellaby.

logo Idées et réflexions à partager.


Rubriques

Liens pour rebondir

Idées en vrac: download multiple ; backup intelligent

Sur le download multiple

  • 1er constat: les informaticiens sont des idiots. Les navigateurs web évoluent  en intégrant toujours plus de fonctionnalités "bling bling" alors que certaines interactions de base sont toujours aussi peu ergonomiques.
  • Exemple: le download multiple. Alors que les sites web permettant de gérer des collections de données (vidéo, images, fichier) se multiplient, pourquoi n'existe t'il pas une méthode simple permettant de rappatrier plusieurs fichiers à la fois depuis son navigateur?
  • La solution simple pourrait être de standardiser par une RFC un type mime "ensemble de fichiers" correspondant à une archive (à la zip) que le navigateur décompacterait à la volée.
  • Si les navigateurs étaient modifiés en ce sens, alors on pourrait sélectionner plusieurs items dans une application web, appuyer sur un bouton download, et le navigateur ouvrirait une boîte de sélection de dossier local. Une fois le téléchargement terminé, tous les items téléchargés se retrouveraient sagement posés dans le dossier choisi. En cas de conflits avec des fichiers locaux existants, ce serait bien que le navigateur négocie avec l'utilisateur le "comment faire"...
  • En attendant, certains sites fabriquent des zips à la volée. Problème: la décompression du zip nécessite un utilitaire et une action utilisateur pas forcément évidente.
  • D'autres fabriquent des archives auto-extractibles. Problème, l'auto-extractible affiche souvent une IHM pas très sexy.
  • Pour l'instant, la meilleure solution consiste en un auto-extractible complétement "seamless": un double click = décompression dans le répertoire courant + suppression du fichier compressé.

Backup intelligent

J'ai étudié récemment la stratégie employée dans 2 outils récents, robustes et efficaces concernant la copie, le versionnage et la synchronisation de fichiers, à savoir "git" et "rdiff-backup". J'en ai déduis une stratégie très simple et redoutablement efficace pour synchroniser 2 arborescences de fichiers sans la nécessité d'installer une paire de logiciels dédiés sur les 2 conteneurs.
  • Soient un dossier local et un conteneur de fichiers distant traditionnels, sans fonctionnalités particulières pour faciliter la synchro (à la SyncML ou rdiff). Par exemple: une clef USB, un partage CIFS, un serveur FTP, un dossier sur un File System ordinaire, une solution de stockage en ligneà la box.net, etc.
  • On va exécuter le script de backup sur la machine qui héberge le dossier local. Le but est de synchroniser ce dossier local avec une copie sur le support distant en limitant le transfert de données vers ce support (très couteux) et en essayant le plus possible de faire appels à des opérateurs de déplacement/renommage/copie du support, que l'on suppose au contraire peut coûteux.
  • Lors d'une synchro, le script commence à générer une table des signatures de tous les fichiers locaux. Une signature pourrait être un haché cryptographique SHA-2 (comme "git") réputé capable d'identifier de manière unique n'importe quel fichier présent et futur. La table répertorie toutes les paires (chemin-de-fichier/signature). Le raffraîchissement ultérieure de cette table peut être accéléré en stockant une deuxième signature locale afin d'identifier les fichiers immobiles entre 2 synchro successives (inode,taille,timestamp).
  • Puis le script télécharge la table correspondante sur le conteneur distant.
  • Enfin, le script fait des comparaisons entre les 2 tables et applique les changements. Par exemple pour un fonctionnement en mirror source/destination classique, cela donne:
    • signature dans la source absente dans la destination: on transmet le fichier à l'emplacement prévu (si plusieurs emplacements, on copie le fichier dans la destination sur les autres emplacements)
    • Signature à des emplacements différents entre la source et la destination (suite, à déplacement, renommage ou copie de fichiers). on copie ou on déplace le fichier destination. Si le conteneur est bien fichu, l'opération ne nécessite pas le transfert de données sur le réseau.
    • Signature dans la destination absente de la source: on supprime le fichier (ou les copies multiples du fichier).
  • ce qui est vraiment génial (toute humilité mise à part), c'est que non seulement on synchronise que ce qui est nécessaire, mais en plus, lorsqu'on fait du rangement dans le conteneur source (renommage, classement...), le conteneur destination va être resynchronisé sans faire le moindre transfert de données. On va simplement faire appel aux opérateurs de copie/déplacement du support distant.

par Miellaby, paru le Mercredi 11 Février 2009, 12:14 dans la rubrique "Organic Geek".