Jump to content

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

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

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

Мотивация

[ редактировать ]

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

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

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

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

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

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

[ редактировать ]

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

Реализации

[ редактировать ]
  1. ^ «Что такое собственное структурированное хранилище?» . Архивировано из оригинала 27 сентября 2007 г. Проверено 3 декабря 2007 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 799f3652579c4653925a0d71d1e92744__1634686500
URL1:https://arc.ask3.ru/arc/aa/79/44/799f3652579c4653925a0d71d1e92744.html
Заголовок, (Title) документа по адресу, URL1:
COM Structured Storage - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)