Accueil🇫🇷Chercher

Stockage structuré COM

Le stockage structuré COM (COM Structured Storage en anglais, aussi connu sous le nom de OLE structured storage) est une technologie développée par Microsoft pour son système d’exploitation Windows pour stocker des données hiérachiques dans un seul fichier. Strictement parlant, le terme stockage structuré se réfère à un ensemble d’interfaces COM qu’une implémentation conforme doit fournir, et pas à une mise en œuvre spécifique, ni à un format de fichier spécifique (en fait, une implémentation de stockage structuré n’a pas du tout besoin de stocker les données dans un fichier). En addition à l’apport d’une structure hiérarchique des données, le stockage structuré peut également fournir une forme limitée de support pour les accès aux données.

Le stockage structuré est largement utilisé dans les applications Microsoft Office, ainsi que Microsoft SQL Server, le shell de Windows, et plusieurs programmes de CAO développés par d’autres éditeurs.

Principe

Le stockage structuré résout certaines difficultés inhérentes au stockage de plusieurs objets de données dans un seul fichier. Une difficulté se pose quand un objet appartenant au fichier change de taille à la suite d'une mise à jour. Si l'application qui est en train de lire/écrire le fichier s’attend à ce que les objets dans le fichier restent dans un certain ordre, tout ce qui suit la représentation de cet objet dans le fichier peut avoir besoin d'être déplacé vers l'arrière pour faire de la place si l'objet s’élargit, ou vers l’avant pour remplir l'espace laissé si l'objet se rétrécit. Si le fichier est grand, cela pourrait être une opération coûteuse. Bien entendu, il existe plusieurs solutions possibles à ce problème, mais souvent les programmeurs d'application ne veulent pas s’occuper des détails de bas niveau comme les formats de fichiers binaires.

Le stockage structuré COM permet de stocker de manière efficace plusieurs types d’objets dans un seul fichier : dans ce seul fichier est défini tout un système de fichier. Ce système de fichier est une collection structurée de 2 types d’objets : des storages (stockages) et des streams (flux) qui jouent le rôle des répertoires et des fichiers[1]. Un stream peut résider dans la RAM, dans un fichier, ou dans un autre stream, etc. Un storage peut contenir des streams, ou d’autres storages.

Lorsqu’un nouvel objet vient s’ajouter dans le fichier, il n’y a pas de réécriture et décalage de plusieurs secteurs du disque. L’objet est simplement écrit dans le premier emplacement disponible, et la table des pointeurs du fichier est mise à jour pour indiquer cet emplacement[2]. Le stockage structuré COM permet à l’utilisateur de voir et de manipuler son fichier comme un simple fichier et non pas une hiérarchie d’objets séparés.

Un fichier composé COM est constitué d’un objet de stockage racine contenant au moins un objet stream et au moins un objet storage. Un objet stream se comporte comme un fichier et contient des données rangées comme une séquence d’octets. Un objet storage se comporte comme un répertoire et renvoie éventuellement aux autres emplacements storages et streams faisant partie du fichier composé COM. L’objet de stockage racine mappe à un nom de fichier, quel que soit le système de fichier dans lequel il est hébergé[3].

Un fichier composĂ© COM est formĂ© d’un nombre de secteurs de longueurs Ă©gales[4], par exemple 512 octets chacun[5]. Le premier secteur contient l’entĂŞte du fichier composĂ©. Les secteurs suivants sont identifiĂ©s par un nombre entier de 32 bits, donc chaque fichier composĂ© peut avoir jusqu’à 4.294.967.295 secteurs. Les secteurs Ă  l’intĂ©rieur d’un fichier composĂ© peuvent se regrouper en groupes, appelĂ©s chaĂ®nes de secteurs (sector chain). Les locations physiques des secteurs membres d’une chaĂ®ne de secteurs peuvent ĂŞtre parsemĂ©es, et les numĂ©ros de secteurs d’une chaĂ®ne de secteurs peuvent ĂŞtre non contigus. Par exemple on peut avoir une chaĂ®ne de secteur regroupant les secteurs 2-3-11-15-16, et une autre chaĂ®ne de secteurs regroupant les secteurs 4-5-14.

Avantages

Le stockage structuré COM permet également les utilisations suivantes :

  1. Accès incrémentiel : Un utilisateur peut accéder en lecture/écriture à un simple objet à l’intérieur d’un fichier, sans toucher le reste du fichier.
  2. Multi-utilisateurs : Un fichier composé peut être accessible en même temps par plusieurs utilisateurs et/ou applications en lecture/écriture.
  3. Mode transaction : Les opérations d’écriture aux fichiers composés peuvent être mises en mémoire tampon, pour être appliquées en une seule fois comme avec la commande commit[2].
  4. Mémoire faible : Les fichiers peuvent être sauvegardés dans les situations où il reste peu de mémoire disponible.
  5. Systèmes de fichiers différents : Les fichiers composés peuvent être stockés sous FAT, NTFS ou Macintosh File System (HFS) et peuvent être ouverts par les applications travaillant avec ces systèmes de fichiers[6].
  6. Navigateurs différents : Tout utilitaire navigateur utilisant les interfaces COM standards et APIs peut lister les objets d’un fichier composé, même si les données dans certains objets peuvent être codées dans un format propriétaire.

Applications

Les applications suivantes utilisent le stockage structuré COM (Compound Document Format) :

  • Microsoft Office 97-2003 pour
    • Les documents et modèles (.DOC, .DOT) de Word
    • Les feuilles et modèles (.XLS, .XLT) d’Excel
    • Les prĂ©sentations et modèles (.PPT, .POT) de PowerPoint
    • Les fichiers .PUB de Publisher
    • Les fichiers .VSD de Visio
    • Les fichiers .MPP de Project
    • Les fichiers .MIX de Microsoft PhotoDraw
    • Les fichiers .MSG d’Outlook
  • Windows Installer avec les fichiers .MSI, .MSP, .MST
  • Microsoft Picture It! / Microsoft Digital Image avec les fichiers .MIX
  • Internet Explorer RSS avec les fichiers .feed-ms
  • Windows 7
    • StickyNotes avec les fichiers .SNT
    • Les fichiers jump lists
  • Les thumbnail caches de Windows (Thumbs.db)
  • Les packages DTS de Microsoft SQL Server 2000
  • Autodesk Revit
  • Autodesk Inventor

Produits connexes ou concurrents

  • OpenDocument
  • Pour Microsoft .NET :
    • GemBox.CompoundFile - Composant .NET pour lire et Ă©crire les streams individuels et storages dans le format OLE2 Compound Document.
    • OpenMCDF - Pour manipuler les fichiers Microsoft Compound Document File Format, licence public MPL.
  • Pour Linux:
    • GNOME Structured File Library – Peut faire de la lecture et l'Ă©criture de fichiers composĂ©s de plusieurs formats, dont celui de Microsoft.
    • POLE – Bibliothèque C++ portable pour accĂ©der aux donnĂ©es de stockage structurĂ©.
  • Multiplateforme C++ pour Window/MacOSX/Linux:
  • Pour Java:
    • POIFS –ImplĂ©mentation Java du format OLE 2 Compound Document, dans le projet Apache POI.

Références

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.