stringtranslate.com

Almacenamiento estructurado COM

El almacenamiento estructurado COM (también conocido como almacenamiento estructurado COM o almacenamiento estructurado OLE ) es una tecnología desarrollada por Microsoft como parte de su sistema operativo Windows para almacenar datos jerárquicos dentro de un solo archivo. Estrictamente hablando, el término almacenamiento estructurado se refiere a un conjunto de interfaces COM que una implementación conforme debe proporcionar, y no a una implementación específica ni a un formato de archivo específico (de hecho, una implementación de almacenamiento estructurado no necesita almacenar sus datos en un archivo). en absoluto). Además de proporcionar una estructura jerárquica para los datos, el almacenamiento estructurado también puede proporcionar una forma limitada de soporte transaccional para el acceso a los datos. Microsoft proporciona una implementación que admite transacciones, así como otra que no (llamada almacenamiento en modo simple , esta última implementación también está limitada en otros aspectos, aunque funciona mejor).

El almacenamiento estructurado se utiliza ampliamente en las aplicaciones de Microsoft Office , aunque las versiones más recientes (a partir de Office 2007 ) utilizan Office Open XML basado en XML de forma predeterminada. También es una parte importante de COM y de las tecnologías relacionadas de vinculación e incrustación de objetos (OLE). Otras aplicaciones notables de almacenamiento estructurado incluyen SQL Server , el shell de Windows y muchos programas CAD de terceros .

Motivación

El almacenamiento estructurado aborda algunas dificultades inherentes al almacenamiento de múltiples objetos de datos en un solo archivo. Una dificultad surge cuando un objeto persistente en el archivo cambia de tamaño debido a una actualización. Si la aplicación que está leyendo/escribiendo el archivo espera que los objetos en el archivo permanezcan en un orden determinado, es posible que todo lo que sigue a la representación de ese objeto en el archivo deba desplazarse hacia atrás para hacer espacio si el objeto crece, o hacia adelante para completarlo. el espacio que queda si el objeto se encoge. Si el archivo es grande, esto podría resultar en una operación costosa. Por supuesto, hay muchas soluciones posibles a esta dificultad, pero a menudo el programador de aplicaciones no quiere lidiar con detalles de bajo nivel, como los formatos de archivos binarios.

El almacenamiento estructurado proporciona una abstracción conocida como flujo , representada por la interfaz IStream. Una secuencia es conceptualmente muy similar a un archivo y la IStreaminterfaz proporciona métodos de lectura y escritura similares a la entrada/salida de archivos. Una secuencia podría residir en la memoria , dentro de un archivo, dentro de otra secuencia, etc., según la implementación. Otra abstracción importante es la de un almacenamiento , representada por la interfaz IStorage. Un almacenamiento es conceptualmente muy similar a un directorio en un sistema de archivos . Los almacenamientos pueden contener transmisiones, así como otros almacenamientos.

Si una aplicación desea conservar varios objetos de datos en un archivo, una forma de hacerlo sería abrir un archivo IStorageque represente el contenido de ese archivo y guardar cada uno de los objetos en un solo archivo IStream. Una forma de lograr esto último es a través de la interfaz COM estándar IPersistStream. OLE depende en gran medida de este modelo para incrustar objetos dentro de documentos.

Formato

La implementación de Microsoft utiliza un formato de archivo conocido como archivos compuestos , y todas las implementaciones de almacenamiento estructurado ampliamente implementadas leen y escriben este formato. Los archivos compuestos utilizan una estructura similar a FAT para representar almacenamientos y transmisiones. Los fragmentos del archivo, conocidos como sectores (que pueden corresponder o no a sectores del sistema de archivos subyacente), se asignan según sea necesario para agregar nuevas secuencias y aumentar el tamaño de las existentes. Si las transmisiones se eliminan o reducen, dejando sectores sin asignar, esos sectores se pueden reutilizar para nuevas transmisiones.

Las siguientes aplicaciones utilizan el almacenamiento estructurado OLE (formato de documento compuesto)

Almacenamiento estructurado nativo

Durante la fase de prueba beta de Windows 2000 , incluyó una función titulada Almacenamiento estructurado nativo ( NSS ) para el almacenamiento de documentos de almacenamiento estructurado (como los formatos binarios de Microsoft Office y el thumbs.dbarchivo que Windows Explorer usa para almacenar en caché las miniaturas) con cada flujo que conforma un documento almacenado en un flujo de datos NTFS separado . Incluía utilidades que dividían automáticamente los flujos de un documento de almacenamiento estructurado normal en flujos de datos NTFS y viceversa. Sin embargo, la función se eliminó después de la Beta 3 debido a incompatibilidades con otros componentes del sistema operativo y todos los archivos NSS se convirtieron automáticamente al formato de flujo de datos único. [1]

Implementaciones

Referencias

  1. ^ "¿Qué es el almacenamiento estructurado nativo?". Archivado desde el original el 27 de septiembre de 2007 . Consultado el 3 de diciembre de 2007 .

enlaces externos