Структурированное хранилище COM

редактировать
Компьютерная технология, разработанная Microsoft

Структурированное хранилище COM (также известное как COM структурированное хранилище или OLE структурированное хранилище) - это технология, разработанная Microsoft как часть ее Windows операционной системы для хранения иерархических данных в отдельный файл. Строго говоря, термин структурированное хранилище относится к набору интерфейсов COM , которые должна предоставлять соответствующая реализация, а не к конкретной реализации или конкретному формату файла (фактически, реализация структурированного хранилища может вообще не хранить свои данные в файле). В дополнение к обеспечению иерархической структуры для данных, структурированное хранилище может также предоставлять ограниченную форму транзакционной поддержки доступа к данным. Microsoft предоставляет реализацию, которая поддерживает транзакции, а также реализацию, которая не поддерживает (называемая хранилищем в простом режиме, последняя реализация также ограничена другими способами, хотя работает лучше).

Структурированное хранилище широко используется в приложениях Microsoft Office, хотя в более новых выпусках (начиная с Office 2007 ) используется на основе XML Office Open XML по умолчанию. Это также важная часть как COM, так и связанных с ним технологий связывания и встраивания объектов (OLE). Другие известные приложения структурированного хранения включают SQL Server, оболочку Windows и многие сторонние программы CAD.

Содержание
  • 1 Мотивация
  • 2 Формат
  • 3 Собственное структурированное хранилище
  • 4 Ссылки
  • 5 Внешние ссылки
    • 5.1 Реализации
Мотивация

Адреса структурированного хранилища некоторые неотъемлемые трудности с хранением нескольких объектов данных в одном файле. Одна трудность возникает, когда объект, сохраняющийся в файле, изменяется в размере из-за обновления. Если приложение, которое читает / записывает файл, ожидает, что объекты в файле останутся в определенном порядке, все, что следует за представлением этого объекта в файле, может потребоваться сдвинуть назад, чтобы освободить место, если объект растет, или вперед, чтобы заполнить пространство, оставшееся, если объект сжимается. Если файл большой, это может привести к дорогостоящей операции. Конечно, есть много возможных решений этой проблемы, но часто программист приложений не хочет иметь дело с деталями низкого уровня, такими как форматы двоичных файлов.

Структурированное хранилище предоставляет абстракцию, известную как поток, представленный интерфейсом IStream. Поток концептуально очень похож на файл, а интерфейс IStreamпредоставляет методы для чтения и записи, аналогичные файловому вводу / выводу. Поток может находиться в памяти, в файле, в другом потоке и т.д., в зависимости от реализации. Еще одна важная абстракция - это хранилище, представленное интерфейсом IStorage. Хранилище концептуально очень похоже на каталог в файловой системе. Хранилища могут содержать потоки, как и другие хранилища.

Если приложение хочет сохранить несколько объектов данных в файле, один из способов сделать это - открыть IStorage, представляющий содержимое этого файла, и сохранить каждый из объектов внутри один IStream. Один из способов добиться последнего - использовать стандартный COM-интерфейс IPersistStream. OLE сильно зависит от этой модели для встраивания объектов в документы.

Формат

Реализация Microsoft использует формат файла, известный как составные файлы, и все широко распространенные реализации структурированного хранилища читают и записывают этот формат. Составные файлы используют структуру, подобную FAT, для представления хранилищ и потоков. Фрагменты файла, известные как секторы (они могут соответствовать или не соответствовать секторам базовой файловой системы), выделяются по мере необходимости для добавления новых потоков и увеличения размера существующих потоков. Если потоки удаляются или сжимаются, оставляя нераспределенные сектора, эти секторы можно повторно использовать для новых потоков.

Следующие приложения используют структурированное хранилище OLE (составной формат документа)

Собственное структурированное хранилище

Во время фазы бета-тестирования Windows 2000, он включал функцию под названием Собственное структурированное хранилище (NSS ) для st хранение документов структурированного хранилища (таких как двоичные форматы Microsoft Office и файл thumbs.dbПроводник Windows, используемый для кэширования эскизов) с каждым потоком, который составляет документ хранится в отдельном потоке данных NTFS . Он включает в себя служебные программы, которые автоматически разделяют потоки в обычном документе структурированного хранилища на потоки данных NTFS и наоборот. Однако после бета-версии 3 эта функция была отменена из-за несовместимости с другими компонентами ОС, и все файлы NSS автоматически преобразовывались в формат единого потока данных.

.

Ссылки
Внешние ссылки

Реализации

Последняя правка сделана 2021-05-13 11:35:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте