Файловая система, представленная внутри базы данных

Иллюстрации

Показать все

Изобретение относится к средствам обработки и адаптации файловых систем. Техническим результатом является обеспечение согласования несопоставимых файловых систем. Адаптер файловой системы может обеспечивать согласованность и/или «бесшовную» интеграцию между первой файловой системой и второй файловой системой. Адаптер файловой системы может использовать элемент с файловой поддержкой, который «расширен» файлом для предоставления по меньшей мере одного свойства элементу и файловому потоку, ассоциированному с элементом. Элемент с файловой поддержкой может разрешать манипуляцию посредством по меньшей мере одного из API для первой файловой системы и API для второй файловой системы. 3 н. и 14 з.п. ф-лы, 12 ил.

Реферат

Ссылка на связанную заявку

Настоящая заявка испрашивает приоритет заявки на патент США № 60/657,533 "FILE SYSTEM REPRESENTED INSIDE A DATABASE", поданной 28 февраля 2005. Все содержание этой заявки включено в описание по ссылке.

Уровень техники

Усовершенствования в компьютерной технологии (например, быстродействие микропроцессоров, емкость памяти, ширина полосы частот передачи данных, функциональные возможности программного обеспечения и т.п.) внесли большой вклад в расширенное применение компьютеров в различных отраслях промышленности. Все более мощные серверные системы, которые часто конфигурируются как массив серверов, обычно обеспечиваются для обслуживания запросов, исходящих от внешних источников, например сети "всемирной паутины" (World Wide Web).

Поскольку количество доступных электронных данных растет, становится необходимым хранить такие данные управляемым способом, который облегчает дружественные пользователю и быстрые поиск и извлечение данных. В настоящее время общий подход состоит в том, чтобы сохранять электронные данные в одной или более базах данных. В общем случае типовая база данных может быть названа как организованная коллекция информации с данными, структурированными так, что компьютерная программа может быстро осуществлять поиск и выбирать требуемые части данных, например. Обычно данные в базе данных организованы посредством одной или более таблиц. Такие таблицы организуются как массив строк и столбцов.

Таблицы могут содержать также набор записей, и запись включает в себя набор полей. Записи обычно индексируются как строки в таблице, а поля записи обычно индексируются как столбцы, так что пара индексов строка/столбец может указывать конкретную данную величину (данные) в таблице. Например, строка может хранить полную запись данных, относящихся к коммерческой сделке, человеку или проекту. Аналогично, столбцы таблицы могут определять отдельные части строк, которые имеют один и тот же общий формат данных, причем столбцы могут определять поля записей.

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

При продолжении и увеличении формирования объема данных от конечных пользователей проблемы и трудности, сопровождающие нахождение, связывание и сохранение таких данных, достигают своего пика. Конечные пользователи записывают документы, сохраняют фотографии, считывают музыку с компакт-дисков, получают электронную почту, сохраняют копии посланной электронной почты и т.д. Например, в простом процессе создания музыкального компакт-диска конечный пользователь может создавать мегабайты данных. При считывании музыки с компакт-диска, при преобразовании файла в подходящий формат, при создании коробки (для компакт-диска), при создании метки компакт-диска - все эти операции требуют создания данных.

Мало того, что осложнения окружают пользователей, разработчики имеют аналогичные проблемы с данными. Разработчики создают и записывают несметное число приложений, изменяющихся от персональных приложений до высококачественно разработанных приложений предприятий. При создании и/или разработке разработчики часто, если не всегда, собирают данные. При получении таких данных эти данные должны быть сохранены. Другими словами, проблемы и трудности, окружающие нахождение, связывание и сохранение данных, затрагивают и разработчика, и конечного пользователя.

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

Сущность изобретения

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

Настоящее изобретение относится к системам и/или способам, которые облегчают адаптацию (согласование) несопоставимых файловых систем. Адаптер файловой системы может обеспечивать однородность между первой файловой системой и второй файловой системой. Однородность может позволять приложению и/или API (программному интерфейсу приложений) для первой файловой системы быть реализованным во второй файловой системе. Адаптер файловой системы может реализовывать элемент (данных) с файловой поддержкой, который может быть элементом (данных), относящимся ко второй файловой системе, которая полагается (основывается) на файл и/или файловый поток, чтобы заполнить по меньшей мере одно свойство, ассоциированное с ним. Этот элемент (данных) с файловой поддержкой может использовать файл и/или ассоциированный файловый поток, чтобы "наполнить" элемент свойствами и/или метаданными во второй файловой системе. Используя элемент с файловой поддержкой, адаптер файловой системы допускает манипулирование посредством API, ассоциированным со второй файловой системой, а также существующими API, относящимися к текущей и предыдущей версиям первой файловой системы. Адаптер файловой системы может также обеспечивать синхронизацию между первой файловой системой и второй файловой системой. Должно быть понятно, что элемент с файловой поддержкой может включать (инкорпорировать) характеристики первой файловой системы во вторую файловую систему, такие как, но не ограничиваясь ими, атрибут, характеристики защиты, поток файлов, файл и т.д.

В соответствии с одним аспектом настоящего изобретения адаптер файловой системы может включать в себя компонент атрибутов. Этот компонент атрибутов может предоставлять атрибуты, связанные с файлом и/или файловым потоком, ассоциированным (связанным) с первой файловой системой, второй файловой системе. Файл может иметь по меньшей мере один атрибут, такой как, но не ограничиваясь ими, "доступный только для чтения", "сжатый", архивированный файл и т.д., причем бит и/или биты могут представлять такие атрибуты. Компонент атрибутов может позволять элементу файловой поддержки, который представляет файл и/или файловый поток в первой файловой системе, встраивать (инкорпорировать) такие атрибуты во вторую файловую систему.

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

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

Нижеследующее описание и прилагаемые чертежи подробно излагают некоторые иллюстративные аспекты изобретения. Эти аспекты иллюстрируют, однако, только несколько различных способов, которыми принципы изобретения могут использоваться, и настоящее изобретение предназначено, чтобы охватить все такие аспекты и их эквиваленты. Другие преимущества и новые признаки изобретения очевидны из нижеследующего подробного описания изобретения при рассмотрении совместно с чертежами.

Краткое описание чертежей

Фиг.1 иллюстрирует блок-схему примерной системы, которая облегчает адаптацию ассоциированной с файловым потоком файловой системы и ассоциированной с метаданными файловой системы.

Фиг.2 иллюстрирует блок-схему примерной системы, которая облегчает адаптацию по меньшей мере двух несопоставимых файловых систем, чтобы обеспечить однородность.

Фиг.3 иллюстрирует блок-схему примерной системы, которая облегчает адаптацию ассоциированной с файловым потоком файловой системы и ассоциированной с метаданными файловой системы.

Фиг.4 иллюстрирует блок-схему примерной системы, которая облегчает синхронизацию по меньшей мере двух несопоставимых файловых систем.

Фиг.5 иллюстрирует блок-схему элемента с файловой поддержкой, который облегчает адаптацию одной файловой системы с несопоставимой файловой системой.

Фиг.6 иллюстрирует блок-схему примерной системы, которая облегчает адаптацию ассоциированной с файловым потоком файловой системы и ассоциированной с метаданными файловой системы.

Фиг.7 иллюстрирует блок-схему примерной системы, которая облегчает адаптацию ассоциированной с файловым потоком файловой системы и ассоциированной с метаданными файловой системы.

Фиг.8 иллюстрирует примерную методологию для адаптации по меньшей мере двух несопоставимых файловых систем, чтобы обеспечить однородность.

Фиг.9 иллюстрирует примерную методологию для адаптации одной файловой системы с несопоставимой файловой системой.

Фиг.10 иллюстрирует примерную методологию для адаптации ассоциированной с файловым потоком файловой системы и ассоциированной с метаданными файловой системы.

Фиг.11 иллюстрирует примерное сетевое окружение, в котором могут использоваться новые аспекты настоящего изобретения.

Фиг.12 иллюстрирует примерную среду, которая может использоваться в соответствии с настоящим изобретением.

Подробное описание

Используемые в данной заявке термины "компонент", "система", "интерфейс" и т.п. предназначены для обозначения относящегося к компьютеру объекта, любого из аппаратного обеспечения, программного обеспечения (например, при выполнении) и/или программно-аппаратных средств. Например, компонентом может быть процесс, выполняющийся на процессоре, процессор, объект, выполняемой программой, программой и/или компьютером. В качестве иллюстрации как приложение, выполняющееся на сервере, так и этот сервер, могут быть компонентом. Один или более компонентов могут постоянно находиться в процессе, и компонент может быть локализован на одном компьютере и/или распределен между двумя или более компьютерами.

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

Со ссылками на чертежи фиг.1 иллюстрирует систему 100, которая облегчает адаптацию (согласование) файловой системы с несопоставимой файловой системой. Файловая система 102 может быть системой хранения файлов, в которой структура основана на файловом потоке (потоке файлов) и/или каталоге. Файловая система 102 может использовать файловый поток так, что приложение и/или интерфейс прикладных программ (API) может расширять файловый поток, чтобы обеспечить более сложную структуру. Файловая система 104 может быть более сложной моделью, в которой элемент (данных), подэлемент, свойство и отношение определены для того, чтобы обеспечить представление информации в файловой системе 104 в качестве экземпляров сложных типов. Элемент (данных) может быть определен как самый маленький модуль целостности (связности) в файловой системе 104, который может быть независимо защищен, преобразован в последовательную форму, синхронизирован, скопирован, для него выполнено резервное копирование/восстановлен и т.д. Этот элемент является экземпляром типа, в котором все элементы в файловой системе 104 могут быть сохранены в едином глобальном экстенте (непрерывной области для определенного типа данных) элементов. Файловая система 104 может быть основана на по меньшей мере одном элементе и/или контейнерной структуре. Файловая система 104 может быть платформой хранения, которая открывает (предоставляет) метаданные с расширенными функциональными возможностями, которые скрыты в файлах, в качестве элементов. Должно быть понятно, что файловая система 104 может быть системой хранения файлов, представленная моделью данных, чтобы поддерживать описанные функциональные возможности.

Адаптер 106 файловой системы может обеспечивать совместимость и/или однородность (согласованность) между файловой системой 102 и файловой системой 104. Совместимость и/или однородность (согласованность) могут позволить осуществить приложение и/или API для файловой системы 102 в файловой системе 104. Адаптер 106 файловой системы может реализовывать элемент с файловой поддержкой, который может быть элементом, относящимся к файловой системе 104, которая основывается на файле и/или файловом потоке, чтобы заполнить по меньшей мере одно свойство, связанное (ассоциированное) с ним. Элемент с файловой поддержкой может действовать в качестве моста между файловой системой 102 и расширенной функциональными возможностями схематизированной файловой системой 104 и/или моделью данных, связанной с ней. Например, элемент изображения в файловой системе 104 может быть элементом с файловой поддержкой, причем элемент изображения поддерживается файлом, соответствующим стандартному формату изображения (например, JPEG, TIF, BMP и т.д.) файловой системы 102. Другими словами, элемент с файловой поддержкой может использовать файл и/или ассоциированный файловый поток (например, используемый файловой системой 102), чтобы заполнить элемент свойствами и/или метаданными в файловой системе 104. Используя элемент с файловой поддержкой, адаптер 106 файловой системы допускает манипуляцию API, ассоциированными с файловой системой 104, а также существующими API, относящимися к текущей и предыдущим версиям файловой системы 102. Адаптер 106 файловой системы может также обеспечивать синхронизацию между файловой системой 102 и файловой системой 104. В частности, элемент с файловой поддержкой может обеспечивать данные в синхронизме с соответствующими данными в файле поддержки. Должно быть очевидно и понятно, что элемент с файловой поддержкой может обеспечивать характеристики файловой системы 102 для файловой системы 104, такие как, но не ограничиваясь ими, атрибут, характеристику защиты, файловый поток, файл и т.д.

Система 100 дополнительно включает в себя интерфейсный компонент 108, который предоставляет различные адаптеры, соединители, каналы, тракты связи и т.д. для интеграции адаптера 106 файловой системы фактически в любую операционную(ые) систему(ы). К тому же, интерфейсный компонент 108 может обеспечивать различные адаптеры, соединители, каналы, тракты связи и т.д., которые предусматривают взаимодействие с данными и адаптером 106 файловой системы. Должно быть понятно, что хотя интерфейсный компонент 108 включен в адаптер 106 файловой системы, такое выполнение не ограничивается этим. Например, интерфейсный компонент 108 может быть автономным компонентом для приема или передачи данных, имеющих отношение к системе 100.

Фиг.2 иллюстрирует систему 200, которая облегчает адаптацию (согласование) по меньшей мере двух несопоставимых файловых систем, чтобы обеспечить однородность (согласованность). Адаптер 206 файловой системы может обеспечивать однородность и/или совместимость между файловой системой 202 и файловой системой 204. Однако должно быть понятно и очевидно, что адаптер 206 файловой системы может обеспечивать согласование множества несопоставимых файловых систем. Файловая система 202 может быть основанной на файловом потоке и каталоге файловой системой, которая использует по меньшей мере один API и/или приложение. Например, API и/или приложение, относящиеся к файловой системе 202, могут быть, но не ограничиваясь ими, 16- битной, 32- битной и т.д. версией. Файловая система 204 может быть сложной структурой, использующей элемент данных в качестве единицы совместимости (связности), причем метаданные, свойства, отношения реализованы в качестве экземпляров сложных типов. Файловая система 204 может быть моделью данных, которая может описывать форму данных, объявлять ограничения для того, чтобы заключать в себе некоторую семантическую совместимость в отношении данных и определять семантические ассоциации между данными. Используя адаптер 206 файловой системы, API и/или приложения, относящиеся к файловой системе 202, могут однородно использоваться в файловой системе 204. Должно быть понятно, что файловая система 202, файловая система 204 и адаптер 206 файловой системы могут быть по существу аналогичны файловой системе 102, файловой системе 104 и адаптеру 106 файловой системы на фиг.1, соответственно.

Адаптер 206 файловой системы может включать в себя анализирующий компонент 210, который анализирует файловую систему 202. Анализирующий компонент 210 может определять каталоги и/или файлы, ассоциированные с ними, чтобы облегчить обеспечение согласуемой и/или совместимой системы с файловой системой 204. Анализирующий компонент 210 может определять по меньшей мере один концевой узел (дерева). Должно быть понятно, что концевой узел может быть представлен в качестве элемента с файловой поддержкой, в то время как все каталоги и/или файлы файловой системы 202 могут быть представлены в качестве элементов в файловой системе 204. Таким образом, каталоги и/или файлы, которые не являются концевыми узлами, имеют присутствие в файловой системе 204, но не существует потока, связанного с ней.

Адаптер 206 файловой системы может дополнительно включать в себя генерирующий компонент 212, который создает и/или формирует элемент с файловой поддержкой. Генерирующий компонент 212 может создавать элемент с файловой поддержкой, на основании, по меньшей мере, частично на анализе файловой системы 202. Например, генерирующий компонент 212 может создавать элемент с файловой поддержкой для любого концевого узла, ассоциированного с файловой системой 202, причем элемент с файловой поддержкой является совместимым с файловой системой 204, так как элемент с файловой поддержкой расширен файлом и/или файловым потоком из файловой системы 202. Генерирующий компонент 212 может создавать элемент с файловой поддержкой по меньшей мере с одним из следующего: элемент с файловой поддержкой имеет связанный (например, поддерживающий) файловый поток; элемент с файловой поддержкой не может содержать другие элементы (например, они являются концевым узлами в пространстве имен); элемент с файловой поддержкой может быть фантомным (описано ниже); и атрибут файла (описано ниже) поддерживается для элемента с файловой поддержкой.

Элемент с файловой поддержкой может действовать в качестве моста между файловой системой 202 и файловой системой 204. Любой элемент файловой системы 204 может быть обозначен как элемент с файловой поддержкой, если 1) по меньшей мере часть содержимого (получены) из файла и/или файлового потока файловой системы 202, и/или 2) содержимое лежащего в основе файла должно подвергаться манипулированию по меньшей мере одним API и/или приложением, ассоциированными с файловой системой 202. Элемент с файловой поддержкой в файловой системе 204 может сохранять свойство метаданных, ассоциированное с элементом, а также с файловым потоком, ассоциированным с элементом. Должно быть понятно, что механизмы иерархии папка/каталог/файл файловой системы 202 могут быть представлены в файловой системе 204, используя контейнерные элементы, которые содержат другие элементы, включающие в себя элементы файловой поддержки. Таким образом, приложение, использующее API файловой системы 202, может работать "гладко" («бесшовно») с механизмом хранения файловой системы 204.

Фиг.3 иллюстрирует систему 300, которая облегчает согласование файловой системы, ассоциированной с файловым потоком, и файловой системы, ассоциированной с метаданными. Адаптер 306 файловой системы может обеспечивать однородное (согласованное) и/или совместимое взаимодействие между файловой системой 302 и файловой системой 304, которая является несопоставимой с ней. Адаптер 306 файловой системы может использовать элемент с файловой поддержкой в качестве элемента в файловой системе 304, которая может заполнять по меньшей мере одно свойство и/или метаданные файлом и/или файловым потоком, ассоциированным с файловой системой 302. Элемент с файловой поддержкой может выступать в качестве моста между файловой системой 302 (например, формат файла) и файловой системой 304 (например, расширенные схематизированные экземпляры сложных типов).

Адаптер 306 файловой системы может включать в себя компонент 310 атрибутов, который обеспечивает атрибуты, ассоциированные с файлом и/или файловым потоком, ассоциированные с файловой системой 302, для файловой системы 304. Например, файловая система 302 использует основанную на файловом потоке систему хранения, в которой файл может иметь по меньшей мере один атрибут, например, но не ограничиваясь ими, доступный только для чтения, сжатый, архивированный файл и т.д., причем бит и/или биты могут представлять такие атрибуты. Компонент 310 атрибутов может допускать, что элемент с файловой поддержкой, который представляет файл и/или файловый поток в файловой системе 302, встраивает такие атрибуты в файловую систему 304. Должно быть понятно, что компонент 310 атрибутов может представлять и/или соотносить такие атрибуты в качестве свойства с соответствующим элементом с файловой поддержкой. В одном примере компонент 310 атрибутов может обеспечивать обновление атрибута файла после закрытия файлового потока посредством запроса от файловой системы 302. Свойства могут быть обновлены посредством API, ассоциированным с файловой системой 304 (описано ниже).

Компонент 310 атрибутов может также обеспечивать атрибут элемента, который является вложенным типом, который может содержать атрибуты, обычные для всех элементов. Атрибуты могут быть устанавливаемым любым приложением, работающим посредством файловой системы 304 и/или API, ассоциированным с файловой системой 304. В качестве примера можно обеспечивать следующие атрибуты, которые должны быть использованы приложением и/или совместимостью с файловой системой 302.

Имя Тип Описание
IsArchive FileStorageSystem.Boolean ИСТИНА (TRUE), если элемент помечен как Архивный. Приложения могут устанавливать и использовать это свойство. FileStorageSystem может не интерпретировать/предписывать семантику этого свойства.Имеет значение по умолчанию, равное "истина"
IsHidden FileStorageSystem.Boolean ИСТИНА, если элемент помечен как скрытый. Приложения могут использовать этот атрибут, чтобы показать или скрыть элемент.FileStorageSystem может не интерпретировать/предписывать семантику этого свойства.Имеет значение по умолчанию, равное "ложь".
IsReadOnly FileStorageSystem.Boolean Элемент помечен как доступный только для чтения. Приложения могут «пожелать» предотвратить обновления для этих элементов.FileStorageSystem может не интерпретировать/предписывать семантику этого свойстваИмеет значение по умолчанию, равное "ложь".
IsSystem FileStorageSystem.Boolean Указывает, если элемент является частью операционной системы. Приложения могут обновлять это свойство и могут использовать для интерпретации его для отображения или других целей. FileStorageSystem может не интерпретировать/предписывать семантику этого свойства.Имеет значение по умолчанию, равное "ложь".
IsTemporary FileStorageSystem.Boolean Указывает, что элемент используется для временного хранения.FileStorageSystem может не интерпретировать/предписывать семантику этого свойства.Имеет значение по умолчанию, равное "ложь".

Адаптер 306 файловой системы может включать в себя компонент 312 обработчика метаданных, который позволяет по меньшей мере одному свойству оставаться в синхронизме между элементом, элементом с файловой поддержкой и файлом поддержки (например, файл в файловой системе 302, который представлен элементом с файловой поддержкой). Например, свойство может быть модифицировано в потоке файлов поддержки, причем компонент 312 обработчика метаданных может внедрять новое значение в соответствующее поле в элементе данных в файловой системе 304. В другом примере свойство может быть изменено посредством API, связанным с файловой системой 304; компонент 312 обработчика метаданных может смещать (переводить на более низкий уровень) новое значение в поток файлов поддержки в файловой системе 302. Должно быть понятно и очевидно, что отличный тип элемента с файловой поддержкой может иметь отличный компонент 312 обработчика метаданных, ассоциированный с ним.

Например, внедрение может быть выполнено компонентом 312 обработчика метаданных асинхронно после того, как файл был закрыт приложением. С другой стороны, смещение на более низкий уровень может быть асинхронным. Специальное свойство элемента может задавать, находятся ли внедренные свойства в синхронизме между элементом и файлом поддержки или нет. Состояние внедрения может задавать состояние ошибки внедрения элемента. Состояние может быть установлено асинхронно с закрытием файла на заданном по умолчанию потоке для элемента с файловой поддержкой. Состояние может быть равно NULL для элемента, не являющегося элементом с файловой поддержкой. Таблица, представленная ниже, изображает возможные значения для состояния внедрения.

Тип Значение Состояние Описание
int32 0 READY (ГОТОВ) Элемент изменен; внедрение выполнялось успешно.
1 STALE (Устаревший) Элемент изменен; внедрение не выполнялось.
2 ERROR_STALE (Ошибка_устаревший) Элемент изменен; внедрение выполнялось и потерпело неудачу по некоторой фатальной причине.
3 ERROR_DELAYED(Ошибка_задержанная) Элемент изменен; внедрение выполнялось и потерпело неудачу по некоторой случайной причине.

Должно быть понятно, что файловая система 306 может использовать таблицу элементов, в которой сохранен по меньшей мере один элемент и/или элемент с файловой поддержкой. Таблица элементов может использовать таблицу файловых потоков и/или таблицу атрибутов файла, которая ассоциирует (связывает) файловый поток и/или атрибут файла с соответствующим элементом с файловой поддержкой, который может быть сохранен в таблице элементов. Таблица файловых потоков и/или таблица атрибутов файла могут сохранять соответствующий файловый поток и атрибут файла в связи с элементом, который должен быть элементом с файловой поддержкой (например, содержащим файловый поток и/или файл для предоставления функциональных возможностей и/или заполнения по меньшей мере одного свойства). Должно быть понятно, что атрибуты файла могут быть сохранены в таблице элементов. Семантика атрибутов файла может быть осуществлена, например, с помощью обновления API.

Кроме того, глобальная таблица элементов может содержать следующие добавления для элемента с файловой поддержкой.

Имя Тип Описание
(Текущие столбцы Tableltem)
LastAccessTime FileStorageSystem.DateTime Последний раз, когда обращались к файлу или каталогу. «База» не обновляет этот атрибут: может обновляться при необходимости. Имеет очень высокую частоту обновления и, следовательно, не является синхронизированным.
StreamSize BigInt Размер потока.
AllocationSize Bigint Размер распределения (назначения) для файлового потока.
PromotionStatus Int32 Флаги ошибки внедрения.

Например, таблица файловых потоков может иметь следующие свойства.

Имя Тип Описание
Itemld Uniqueidentifier не null (не пустой) Идентификационная информация элемента FileStorageSystem.
Rowld Uniqueidentifier не null (не пустой). ROWGUIDCOL уникальное значение по умолчанию (newid()) Уникальный идентификатор для каждого файлового потока.
Поток varbinary(max) FILESTREAM не null (не пустой) Файловый поток.

Ниже иллюстрируется пример файловой системы, которая использует хранилище файлового потока, в котором осуществлена 32-битовая система, и не рассматривается как ограничение настоящего изобретения. Ниже приведен пример атрибутов для 32-разрядной файловой системы, которая может быть поддержана системой 300 и системой хранения файлов (FSS, СХФ) (например, файловой системой 304).

Продолжая предыдущий пример, следующие атрибуты могут частично поддерживаться и/или полностью поддерживаться.

Фиг.4 иллюстрирует систему 400, которая облегчает адаптацию и/или встраивание файловой системы с несопоставимой файловой системой. Адаптер 406 файловой системы может обеспечивать согласование с файловой системой 402 и файловой системой 404. Файловая система 402 может быть основана на файловом потоке и включать в себя каталог, папку и файл. Например, файловая система 402 может быть 16-битовой файловой системой, 32-битовой файловой системой (например, файловой системой с FAT), в которой API (например, 16-битовый API, 32-битовый API) использует такую файловую систему для соответствующей операционной системы. Файловая система 404 может быть системой, основанной на сложном типе, и включает в себя тип, элемент, свойство, отношения, экземпляр типа, контейнер и т.д. Должно быть понятно, что файловая система 404 должна представить единицы информации в качестве объектов с ассоциированными метаданными и/или свойствами. Кроме того, файловая система 402 и файловая система 404 могут быть по существу подобны файловым системам 302, 304, 202, 204, 102, и 104 на фиг. 3, 2 и 1, соответственно.

Адаптер 406 файловой системы может создавать элемент с файловой поддержкой на основании, по меньшей мере, файловой структуры файловой системы 402, чтобы обеспечить "бесшовную" интеграцию в файловую систему 404. Элемент с файловой поддержкой может быть заполнен и/или расширен файлом и/или файловым потоком, чтобы создать и/или подключить свойства, используемые файловой системой 404. Этот элемент с файловой поддержкой может позволить использовать API для файловой системы 402 в файловой системе 404 независимо от формата API, требующего этот файловый поток, потому что элемент с файловой поддержкой является типом, который имеет файл и/или файловый поток, ассоциированный с ним. Другими словами, элемент с файловой поддержкой является мостом между файловой системой 402 и файловой системой 404.

Адаптер 406 файловой системы может включать в себя фантомный компонент 410, который обеспечивает синхронизацию для свойства элемента с файловой поддержкой. Фантомный компонент 410 может создавать фантомный элемент, который является точной копией (репликой) другого элемента с файловой поддержкой, но не содержит файловый поток. Кроме того, фантомный компонент 410 может обеспечивать "создание фантома", что является операцией создания фантомного элемента и/или преобразования существующего элемента в фантомный элемент. Фантомный компонент 410 может также обеспечивать "расформирование фантома", что является операцией для преобразования фантомного элемента в регулярный (обычный) элемент. Хотя фантомный компонент 410 включен в адаптер 406 файловой системы, должно быть понятно, что фантомный компонент 410 может быть отдельным компонентом и/или автономным модулем.

Нижеследующая таблица может обеспечивать дальнейшее описание относительно возможностей фантомного компонента 410.

Имя Направление Тип Описание
Itemld В Guid Идентификатор элемента для формирования фантома/расформирования фантома
IsGhost В BIT Определяет, должен ли элемент быть создан как фантомный или расформирован из фантома.
concurrencyToken В BIGINT concurrencyToken - ожидаемое значение маркера взаимосовместимости элемента. Если входное значение равно NULL, никакой проверки не делают. Значение по умолчанию - NULL.

В одном примере фантомный компонент 410 может создавать объект как фантомный для файловой системы 404. Если элемент не является элементом с файловой поддержкой, может быть возвращена ошибка. Если элемент уже является фантомным, эта операция является пустой операцией и возвращает "успешное выполнение". Фантомный компонент 410 может копировать эту информацию на все подобъекты в этом фантомном дереве элементов (например, все внедренные элементы, отношения и/или расширения) и устанавливает бит истины, чтобы информировать, что состояние объекта - "фантомный". Содержимое файлового потока может быть удалено для фантомного элемента после того, как произошло создание фантома (например, оно устанавливает файловый поток равным NULL).

В другом примере объект может быть расформированным фантомом посредством фантомного компонента 410. Если элемент не является элементом с файловой поддержкой, возвращается ошибка. Если элемент не является фантомным, операция является пустой операцией и возвращает "успешное выполнение". Бит может быть установлен равным "ложь", чтобы информировать о состоянии объекта, согласно которому объект не является фантомным. Файловый поток нулевой длины может быть создан и добавлен к таблице файлового потока. Расформирование фантома не восстанавливает содержимое файлового потока, и вызывающий (объект) должен явно заполнить файловый поток соответствующим содержимым (например, предпочтительно, по существу посредством аналогичной транзакции). В одном случае шаблон использования для операции расформирования фантома может быть следующим: открыть транзакцию; расформировать фантомный элемент; заполнить/восстановить содержимое файлового потока; и зафиксировать транзакцию.

Адаптер 406 файловой системы может включать в себя компонент туннелирования атрибутов (ATC)