Valid XHTML 1.0!

SAC
 

   :   
 

Stockage, Archivage et Compression
partie 1 / 3 : Stockage  (gh)

 

 

Que contiennent les fichiers en général ?

Si au niveau informatique du matériel la réponse est simple (les fichiers contiennent des "bits" ou unités binaires d'information), au niveau des utilisateurs, la réponse est plus complexe car les fichiers peuvent contenir des textes lisibles pour l'homme, des codes binaires compréhensibles par la machine, des images, des photos, des sons, des vidéos, des équations, des règles pour lire d'autres fichiers...

Si on se focalise dans un premier temps sur les fichiers de texte, ceux-ci peuvent être "bruts" (c'est à dire sans codage spécial autre que "fin de ligne", "saut de page" et "fin de fichier") ou être "formatés" selon différentes normes avec des formats libres comme RTF ou propriétaires comme DOC, format du logiciel Microsoft Word , propriété de la société Microsoft (même si le "nouveau" -- pour 2008 -- format DOCX à la XML est "libre", il faut un convertisseur pour ceux et celles qui n'ont pas la toute dernière version de Microsoft Office).

Un fichier brut ou "ascii simple" peut être lu par n'importe quel ordinateur, sur n'importe quel système d'exploitation (hormis peut-être le problème de conversion des accents). Ainsi notepad sous windows, vi et emacs sous unix, simple text sous Mac Os et xedit sous (IBM) Vm/sp sont des éditeurs de texte brut. Le protocole FTP permet de transférer un tel fichier entre les divers systèmes d'exploitation et les logiciels qui utilisent ce protocole (comme Fireftp, Wsftp, Winscp, Filezilla, Gftp...) fournissent des options pour convertir les sauts de ligne, adapter les noms de fichiers... Rien de plus facile donc que d'éditer le fichier sous un système, le transférer pour continuer à l'éditer sous un autre système. C'est le cas par exemple pour ces pages que vous lisez, disponibles sur le serveur unix de l'Université. Vous pouvez les enregister sur votre ordinateur (pc, mac...) et les éditer même si votre ordinateur n'est pas sous unix. Voir à ce sujet la page dédiées aux serveurs propres au Département Informatique de l'UFR Sciences d'Angers.

Pour les formats propriétaires, les conversions sont plus délicates et nous les aborderons dans une section ultérieure.

Le format "texte" ou "brut" est aussi le format standard des programmes informatiques écrits en C, Pascal, Java... quand avec ces langages on écrit dans un fichier. C'est aussi et enfin le format des fichiers utilisés quand on effectue des redirections d'entrée ou de sortie comme



       dir  C:\*.rtf /s                          > D:\liste.txt

       find . | grep -i angers *.rtf             > /tmp/ma.ville
       perl cherche.pl gooogle "rtf rdf"         < filtre.rules
       php  ../demos/liste_sites.php ".fr deneb" > /dev/null      2>&1

Commment gérer les différentes langues et convertir les accents ?

C'est une question compliquée car il y a plusieurs façons de gérer les langues et les caractères spéciaux. Des codages "à la HTML" utilisent des macros ou entités pour définir avec un encodage sur 7 bits (ASCII, ANSI = "à l'américaine") les caractères accentués. Ainsi ô ("o circonflexe) se code &ocirc;. Une table complète pour l'Europe occidentale de ces encodages est à l'adresse

 

http://www.ramsch.org/martin/uni/fmi-hp/iso8859-1.html

 

Pour gérer plusieurs langues à la fois dans un même document, il faut plusieurs octets par caractère. Les gens pressés de savoir ce qu'est Unicode, ISO8859 et ISO 10646-1 (UTF8) liront la page

http://sebsauvage.net/comprendre/ascii/

L'article à l'adresse

http://french.joelonsoftware.com/Articles/Unicode.html

s'adresse plutot à des développeurs et fournit un autre éclairage sur ces problèmes d'encodage (il date de 2003).

Le texte suivant de 14 pages, plus technique, http://www.afnic.fr/noncvs/formations/unicode_long/index.pdf (copie locale ici) est à lire à tête reposée...

Enfin, signalons que sous Unix (mais pour Windows, cela se trouve aussi) les programmes recode et iconv qui s'utilisent en ligne de commande (ce qui permet de travailler sur des "paquets" de fichiers en une seule instruction) effectuent la plupart des conversions. Pour un serveur Web, par exemple de type Apache, la configuration par défaut, accessible par phpinfo.php peut être détournée au profit d'un encodage spécifié en PHP via la fonction header(). Voir par exemple l'exercice 25 de mon cours 5 de technologie Web (et sa solution aussi, bien sûr).

Quels types de fichiers pour quelles applications ?

Chaque application informatique classique (traitement de texte, tableur, imageur, visualiseur, navigateur...) associe aux fichiers manipulés un ou plusieurs "types" (ou "extensions") en général repérés par les caractères à droite du dernier point (celui le plus à droite). Ainsi

"c:\mes documents\lettres\felicitations.doc"

fait certainement référence à un fichier pour l'application Microsoft Word sous Windows et

"/home/users/gilhunault/crs/statgh.r"

fait certainement référence à un fichier pour le logiciel R sous Linux.

Malheureusement le dernier logiciel installé veut souvent être celui qu'on utilise pour le fameux "double-clic" sous un explorateur quelconque. Il est donc bon de savoir modifier l'association entre extension et logiciel associé. De plus, suivant les besoins, notamment pour les images et photos, on peut vouloir soit visualiser [massivement] soit éditer [en série] les images et photos, ce qui ne fait pas toujours sans mal...

De plus la disponibilité de logiciels libres capables de gérer les mêmes fichiers que les applications payantes rend impossible la bijection un type, un logiciel.

Les "grands" types de fichier image, photo, son et vidéo

Plutôt que de reproduire ici ce que tout le monde dit ailleurs sur les formats (pour le Web)

 

images photos audio video
images photos audio video
bmp bmp mid avi
gif gif mp3 divx
jpg jpg ogg mp4
png png wma rm
psd eps wav wmv

 

nous préférons fournir quelques liens mûrement choisis avec bien sûr une orientation vers les formats ouverts, d'où :

- le minimum à savoir sur ce qu'est une image (mathématique, numérique...)
 

http://fr.wikipedia.org/wiki/Image_numérique

- un tutoriel long et technique permettant l'autoformation aux images numériques
 

http://urfist.enc.sorbonne.fr/anciensite/image_numerique/Image_numerique1.htm

- un texte fort et plein de ressources sur l'exploitation générale des données numériques (il faut toutefois regretter l'absence de couleur pour les liens)
 

http://www.imageson.org/document654.html

- un peu de vocabulaire ne fait pas de mal : voici donc un site sur la pérennisation des informations numériques (penser à parcourir l'onglet "Ressources") :
 

http://vds.cnes.fr/pin/

- enfin, une définition de codec, de conteneur etc.
 

wikiCodecs

Mais bien sûr, il y a des formats spécialisés, comme le format SVS d'Aperio, qui est du TIF pyramidal tuilé, ce qui permet de visualiser de très grosses images, comme celle du lien suivant (7.71 Go !) : viewSvs pour des images de fibrose hépatique (maladie du foie).

Edition de documents et traitement de textes

L'édition de documents autres que ceux pour le traitement de texte, par exemple l'édition de programmes informatiques, de pages web, de textes d'explication se fait en général à l'aide d'un éditeur de base comme notepad sous windows, vi et emacs sous unix, simple text sous macos. Pour des projets de plus grande envergure, un environnement de développement intégré (IDE en anglais) est obligatoire, comme par exemple Eclipse.

Très peu d'éditeurs de logiciels se sont intéressés à la visualisation rapide de fichiers. Contrairement à l'édition, la visualisation évite toute édition malencontreuse des fichiers. De plus pour des fichiers images c'est souvent la visualisation qui est souhaitée et beaucoup moins fréquemment l'édition. Seul le logiciel LIST de Vernon BUERG pour windows était un "vrai" visualiseur de fichiers textes (on peut lui adjoindre quelques programmes pour voir aussi les images et les archives). LIST contient de plus un "grep" multi-fenêtres et de nombreuses options de visualisation et d'impression. [Version 2010 suite au décès de V. Buerg : V].

On trouvera sur notre page de tuteur Tk à l'adresse

http://www.info.univ-angers.fr/pub/gh/tuteurs/tuttk.htm

un essai d'interface "à la V" pour la visualisation de fichiers sur tout système d'exploitation (et en particulier pour Unix).

Certains explorateurs (voir la rubrique "Faut-il changer de gestionnaire de fichiers ?" plus loin dans la page) ont implémenté un mode "visualisation rapide" suite au légendaire Xtree (gold) dont le découpage en fenêtres (à l'époque sous MsDos) et l'interface clavier sont restés inégalés, même avec les explorateurs modernes, repris dans des interfaces comme AcdSee sous Xp ou Gwenview sous Linux.

Des éditeurs de textes non uniquement dédiés à la programmation et un peu plus évolués que notepad sont sous windows pspad, notepad2, notepad++, et megablocnotes qui permettent par exemple de faire lire le texte à haute voix par la machine, d'accèder rapidement à la ligne numéro n, d'afficher le texte compris entre deux "balises", de coloriser les mots en fonction de règles configurables etc.

Pour l'édition de programmes informatiques, de nombreux EDI (environnements intégrés de développement) sont disponibles, souvent liés au compilateur et donc payants comme par exemple Delphi pour windows ou son équivalent kylix pour unix. Rappelons que l'excellement environnement de développement gratuit nommé Eclipse permet de configurer l'environnement d'édition en fonction du langage et les environnement net beans et bluej eux aussi gratuit mais spécialisés pour java, et Bloodshed Dev gratuit là encore mais spécialisé pour C++.

Si l'application de traitement de textes Microsoft Word n'est plus [quasiment] incontournable grace à Open Office, il constitue encore pour l'instant de facto un standard. Il est bon de ne pas sauvegarder les fichiers Microsoft Word au format natif propriétaire en .DOC (devenu .DOCX, c'est à dire du XML -- non-propriétaire -- en 2007), mais plutôt d'utiliser le format ouvert gratuit et documenté RTF même si des extensions spécifiques à Microsoft ont été développées (voir par exemple les spécifications pour RTF version 1.8).

Les raisons d'utiliser RTF sont multiples. Citons notamment :

- RTF est un format texte "brut",
- RTF est lisible par d'autres traitements de texte comme par exemple Openoffice,
- RTF est portable et compatible avec la lecture par programme C, C++, JAVA...
- RTF ne contient pas de macros exécutables ce qui évite les problèmes de sécurité liés à des virus insérés dans les documents.

Tableurs et bases de données

On pourrait croire qu'a priori rien n'est plus simple qu'un tableur puisque "le" tableur de référence est Excel. Rien n'est si simple : au moment où nous écrivons ces lignes (en 2005), le tableur d'Openoffice fait de plus en plus d'adeptes, ne serait-ce que pour sa gratuité.

Mais revenons à Excel. Si le format de stockage (propriétaire, rappelons-le) par défaut est le type .xls il y a d'autres possibilités offertes par Excel via Enregistrer sous...

- format html classique,
- format mhtml (html archive),
- format XML,
- format modèle XLT,
- formats textes (brut, délimités, sdf, csv, dif, sylk...)
- format Dbase,
...  

Chacun de ces formats de stockage répond à un besoin particulier et il serait bon de savoir lire par programme chacun des fichiers-texte possible... Ainsi, lorsqu'on dispose d'un tableau rectangulaire de données, avec des lignes ayant le même nombre de colonnes et avec chaque colonne de type homogène, seul le format ouvert et gratuit DBF pour Dbase "standard" est fiable car il garantit l'intégrité de type des donnees (pour Dbase 7 et Dbase pour Windows -- db2k -- voir ici ). De plus la taille du fichier est calculable et fortement réduite par rapport au fichier original. Enfin, ce format est reconnu par de nombreux logiciels et il existe de nombreuses bibliothèques de programmes (C, C++, Java.., Perl) pour lire les fichiers Dbase.

Les "grands" gestionnaires de bases de données basés sur SQL à savoir MySql, PgSql, Oracle... savent sûr bien exporter en format texte, HTML et XML. Ils sont donc fortement recommandés lorsqu'Excel ne suffit plus et qu'on peut éviter Microsoft Access. A titre d'essai, vous pouvez essayer d'ouvrir les fichiers petit.csv (1 000 lignes, 288 Ko, zippé 32 Ko) et gros.csv (≈ 76 000 lignes, 35 Mo, zippé 5 Mo) avec Excel.

Quels navigateurs et serveurs pour quelles pages Web ?

Pour consulter une page Web, il faut disposer d'un interpréteur de codes HTML. Celui-ci est en général intégré à un navigateur ou à un explorateur de fichiers mais d'autres applications peuvent disposer de leur propre interpréteur. C'est ainsi le cas de Flash, de Tcl/Tk Appletviewer (Java)... et autres générateurs d'incompatibilité entre les systèmes d'exploitation.

Le navigateur Microsoft Internet Explorer est fourni en standard avec Windows, XP, Vista ; c'est sans doute pourquoi c'est le navigateur le plus utilisé dans le monde (80 % ? 90 % ?). Les anciens navigateurs comme Mosaic, Netscape ont presque disparu au profit de nouveaux navigateurs comme Firefox, Opera, Maxthon (site fr ici)...

Choisir un navigateur n'est pas anodin quand on développe des pages Web. Sous Windows, Microsoft Internet Explorer n'est pas un navigateur complet, il ne suit pas à la lettre les recommandations W3C et il est peu configurable. Opera est plus complet, plus respectueux des normes. C'est sans doute Maxthon ou Firefox qu'il est le plus agréable d'utiliser à cause des extensions et des plug-ins (écrites en XUL) qu'on peut leur adjoindre et qui permettent de modifier l'aspect et le comportement du navigateur. Sous Linux c'est sans doute Firefox aujourd'hui le plus recommandé. Notre préférence sous Windows va à Maxthon (qui utilise le "moteur" de Microsoft Internet Explorer en interne) pour sa configurabilité de base et sa vitesse de chargement des pages même si Firefox est [presque] incontournable car beaucoup plus complet et complétable que Microsoft Internet Explorer. Sous Linux, Firefox est presque incontournable même si la dernière version d'Opera est très complète et plus proche que les autres navigateurs de l'ensemble des recommandations du W3C.

Si la compatibilité W3C, XML et SVG est recherchée, seul Opera tient la route. Et il intégre un outil de téléchargement parallélisé...

Si le "tout public" est le critère important, les outils et logiciels Microsoft, mêmes imparfaits, sont sans doute à utiliser, compte tenu de leur hégémonie ubiquitaire.

Les premiers navigateurs ne faisaient qu'interpréter les codes HTML, les nouveaux interpréteurs doivent savoir

- charger un document XML,
- le transformer à l'aide d'une feuille de style XSL,
- zoomer les images en même temps que les textes -- maxthon et opera le font en standard -- à tester par exemple sur notre page jpgraph,
- supporter SVG pour les graphiques vectoriels adaptables,
- intégrer SMIL pour les pages vidéo interactives et les contenus liés aux temps,
- savoir gérer Flash, les flux RSS, le streaming...

On trouvera sur notre page

http://www.info.univ-angers.fr/pub/gh/internet/nouveauweb.htm

des exemples de ces diverses "technologies Web" afin de tester les divers navigateurs cités. Voici quelques versions de navigateurs disponibles en octobre 2005 :


navigateurs

 

En 2009, d'autres navigateurs sont présents : Google Chrome et Safari, notamment. Si votre navigateur sait ouvrir les fichiers SVG (XML), une chronologie des navigateurs est consultable sous ce lien : timeline (copie locale 2009 ici). On pourra consulter la rubrique navigateur Web du wiki français à ce sujet et la page marketshare pour avoir une idée (approximative) de l'utilisation des divers navigateurs -- à comparer avec cet autre "baromètre" des navigateurs et à la page correspondante de w3schools --, une liste un peu plus exhaustive de navigateurs et un comparatif des trois navigateurs principaux. Rappelons au passage que le test nommé acid, actuellement en version 3 a pour but de tester la conformité de rendu par rapport aux spécifications du W3C et qu'il serait bon d'avoir aussi un peu de culture sur les moteurs de recherche et les méta-moteurs, nommés meta-search engines en anglais.

 
navigateurs 2                   moteurs
 

[Ajout 2011] A propos de la part de marché des OS, des navigateurs : s'il est difficile d'avoir une vision précise et exacte de ces parts de marché, certains sites semblent pourtant affirmer des «états de fait» sans doute invérifiables... On consultera donc avec prudence les pages suivantes :   statcounter,   numerama,   netmarketshare   et Browser_Statistics (W3Schools).

 

Du coté système, la même question peut se poser pour le choix du serveur Web. Un serveur Apache est sans doute le plus agréable à installer, gérer (et de plus il est gratuit) contrairement à Microsoft Server. Certains serveurs Web sont prêts "clés en main" pour Windows comme pour Unix -- y compris pour des particuliers -- souvent couplés à un interpréteur php, un serveur de base de données, etc. comme EasyPhp, Wampserver, Xampp et le légendaire Zazou (zmws) utilisable... sur CDROM. On pourra en approfondir le contenu à l'aide de la page serveursweb.htm des divers serveurs testés sur notre machine en octobre 2005.


serveurs

 

Si l'on désire utiliser plusieurs systèmes d'exploitation en même temps, on peut utiliser des outils de virtualisation comme l'excellent VMWARE qui permet notamment de faire fonctionner XP dans une fenêtre Linux et Linux dans une fenêtre XP ou Virtualbox (gratuit ET opensource). Il existe bien sur d'autres solutions, comme l'interfaçage de serveurs X via rdesktop, Xwin32, Xming etc.

Faut-il changer de gestionnaire de fichiers ?

Lorsqu'on copie de nombreux fichiers, lorsqu'on se connecte réguliérement à un serveur FTP, l'explorateur classique de Windows parait limité. Depuis le légendaire Xtree (gold) de nombreux logiciels proposent des explorateurs plus adaptés à un travail professionnel. Si les logiciels (grauits) Dtree et Bi-Exploreur implémentent déja le découpage en plusieurs fenêtres d'explorateur, la visualisation rapide de fichiers (dont les images), la navigation entre les unités... seuls les logiciels payants PowerDesk pro et Directory Opus fournissent des découpages d'écrans paramétrables (via par exemple <Ctrl-1> et <Ctrl-2> sous Power Desk), configurables, masquables avec possibilité de filtrer les fichiers (n'afficher par exemple que ceux d'extension *.htm*, ce qui se fait par exemple avec <Ctrl-F> sous Power Desk), disposent de modes "autovue" configurables voire [re]programables pour permet de visualiser rapidement la plupart des fichiers textes, images, web etc. y compris les document Word et PDF en prévisualisation... par exemple avec <Ctrl-F9> sous Power Desk

 


gestionnaires de fichiers

On appréciera tout particulièrement les onglets et les boutons en haut et à droite des fenêtres sous Directory Opus qui apportent une plus grande ergonomie aux fenêtres :

 

opus onglets

 

et les barres d'outils et de disques sous PowerDesk pro

 

powerd desk

Sous Linux, les différents explorateurs comme Konqueror, Dolphin... posent aussi la même question : quel gestionnaire de fichiers pour quels usages ? Savoir qu'il existe plusieurs explorateurs est déjà un début de réponse...

[Ajout 2011] Si de nouveaux explorateurs de fichiers gratuits qui reprennent ces idées ont vu le jour, comme Free Commander dont voici deux copies d'écran :

free commander écran 1        free commander écran 2

Le système d'exploitation Windows 7 n'est pas en reste, puisqu'il propose désormais un visualiseur [incomplet] de fichiers ; ci-dessous, par exemple, la visualisation d'un fichier .xls sans l'ouvrir explicitement par Excel :

visu windows 7

De même, sous Linux, krusader fournit en standard deux panneaux pour faciliter la copie ou la comparaison de fichiers et répertoires :

krusader

Pourquoi faut-il savoir utiliser XML , DTD , XSD , XSL ?

Le langage XML est un standard incontournable comme [sur-méta]langage de structuration et mise en forme de contenu.

Tout fichier texte contenant des informations destinées à être controlées, gérées puis échangées et publiées sous forme de rapport, de livre, imprimées directement, diffusées sous le Web doit être aujourd'hui au format XML. A partir de ce même et unique texte de base, on pourra valider sa structuration de contenu à l'aide d'une grammaire (DTD, XSD ou autre) et le transformer à l'aide de XSL en un autre fichier par exemple de type [X]HTML] ou PDF.

En amont, ce fichier pourra lui même provenir d'une base de données, être le résultat de l'exécution d'un programme. En aval, les données transformées pourront être réintégrées dans des bases de données, archivées, restructurées...

L'unicité de la source, la définition (éventuellement externe, mondiale, ou tout au moins "supportée" par diverses communautés) des grammaires et la facilité à faire exécuter les transformations XSL par un navigateur Web ou une application quelconque (notamment en C, C++ et Java) garantissent une grande qualité des données et une fiabilité dans leur utilisation.

On trouvera à l'adresse

http://www.info.univ-angers.fr/pub/gh/tuteurs/tutxml.htm

quelques pages destinées à une introduction soutenue à XML. Des exercices d'application corrigés sont à l'adresse

http://www.info.univ-angers.fr/pub/gh/internet/tds.htm#c7

Les gens pressés pourront se concentrer sur notre section "technologie" XML dont nous reproduisons ici quelques illustrations importantes trouvées sur le Web :

xmls1          xmls2          interop          publie1          publie2          applisxml

 

Pour ceux et celles qui ont "quelques connaissances" en XML, nous leur proposons d'approndir les domaines de XML qu'ils (elles) ne connaissent pas à l'aide de ce schéma cliquable des technologies XML :

 

big pix of xml

Pour les autres, nous proposons un détour par quelques exemples de transformations XSL afin d'approfondir la notion d'élément (et de contenu), d'attribut (et de valeur), et surtout de chemin XPATH dans nos pages d'exemple de programmation XSL. Pour une présentation générale imprimable, nous conseillons le texte de Yannis HARALAMBOUS (copie locale).

On trouvera sur le site de l'association Aristote des cours en ligne au format smil (vidéos + transparents) liés à XML dont ceux de Ecole d'Eté d'Informatique CEA - EDF - INRIA 2003 liés au "Modelware" et qui s'intitulent "Vers la modélisation et la sémantisation de l'information"...

Et puisque ce cours s'inscrit dans le cadre d'un Master tourné vers le TALN et l'IA, on pourra consulter avec profit les pages nommées

"Notions sur l'indexation automatisée du langage naturel"

"Applications des outils sémantiques au référencement
et aux moteurs de recherche
"
Ajout du 13/12/2006 : compléments SVG.

 

Exercices associés à cette page

 

 

retour gH    Retour à la page principale de   (gH)