Управление файлами с помощью заполнителей

Иллюстрации

Показать все

Изобретение относится к заполнителям файловой системы. Технический результат – уменьшение пространства хранилища данных, расходуемого локально на машине-клиенте. Для этого клиент может использовать заполнители для представления объектов удаленной файловой системы. Заполнители могут включать в себя метаданные и также могут вовсе не включать в себя или включать в себя частично или полностью контент представленных объектов удаленной файловой системы. Совместно с локальными метаданными файловой системы заполнители позволяют совершать навигацию в пространстве имен файловой системы и позволяют осуществлять другие операции на объектах файловой системы, даже когда клиент находится в автономном режиме относительно удаленной файловой системы. После восстановления возможности соединения с удаленной файловой системой заполнители могут использоваться при синхронизации изменений. 3 н. и 17 з.п. ф-лы, 5 ил.

Реферат

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

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

[0002] Загрузка всего контента пользователя на каждое из устройств пользователя может быть невозможна, поскольку некоторые устройства могут иметь хранилище весьма ограниченного объема. Кроме того, даже когда вычислительное устройство имеет обширное хранилище, загрузка контента на вычислительное устройство может требовать значительной полосы, финансовых затрат и продолжительного времени.

[0003] Заявленное здесь изобретение не ограничивается вариантами осуществления, которые позволяют устранить любые недостатки или которые работают только в вышеописанных средах. Напротив, в этом разделе "Уровень техники" приведен только один пример области технологии, где можно на практике реализовать некоторые описанные здесь варианты осуществления.

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

[0004] В целом, аспекты описанного здесь изобретения относятся к заполнителям файловой системы. Согласно аспектам клиент может использовать заполнители для представления объектов удаленной файловой системы. Заполнители могут включать в себя метаданные и также могут вовсе не включать в себя или включать в себя частично или полностью контент (содержимое) представленных объектов удаленной файловой системы. Совместно с локальными метаданными файловой системы, заполнители позволяют совершать навигацию в пространстве имен файловой системы и позволяют осуществлять другие операции на объектах файловой системы, даже когда клиент находится в автономном (офлайновом) режиме относительно удаленной файловой системы. После восстановления возможности соединения с удаленной файловой системой заполнители могут использоваться при синхронизации изменений.

[0005] Это краткое изложение сущности изобретения призвано кратко указывать некоторые аспекты изобретения, которые дополнительно описаны ниже в подробном описании. Данное краткое изложение сущности изобретения не призвано, ни указывать ключевые или существенные признаки заявленного изобретения, ни ограничивать объем заявленного изобретения.

[0006] Выражение “описанное здесь изобретение” относится к изобретению, представленному в подробном описании, если из контекста явно не следует обратное. Термин “аспекты” следует понимать как “по меньшей мере, один аспект.” Указание аспектов изобретения, представленных в подробном описании, не призвано обозначать ключевые или существенные признаки заявленного изобретения.

[0007] Вышеописанные аспекты и другие описанные здесь аспекты изобретения проиллюстрированы в порядке примера и не ограничиваются прилагаемыми чертежами, в которых сходные ссылочные позиции указывают аналогичные элементы.

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

[0008] Фиг. 1 - блок-схема, представляющая иллюстративную вычислительную среду общего назначения, в которую могут быть включены аспекты описанного здесь изобретения;

[0009] фиг. 2-3 - блок-схемы, которые, в целом, представляют иллюстративные компоненты систем, выполненных с возможностью использовать заполнители в соответствии с аспектами описанного здесь изобретения;

[0010] фиг. 4 - блок-схема операций, которая, в целом, представляет иллюстративные действия, которые могут осуществляться со стороны клиента, в соответствии с аспектами описанного здесь изобретения; и

[0011] фиг. 5 - блок-схема операций, которая, в целом, представляет иллюстративные действия, которые могут осуществляться со стороны облачной системы хранения, в соответствии с аспектами описанного здесь изобретения.

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

Определения

[0012] Используемый здесь термин “включает в себя” и его варианты следует понимать в расширительном смысле “включает в себя, но без ограничения”. Термин “или” следует понимать как “и/или”, если из контекста явно не следует обратное. Термин “на основании” следует понимать как “на основании, по меньшей мере, частично”. Термины “один вариант осуществления” и “вариант осуществления” следует понимать как “по меньшей мере, один вариант осуществления”. Термин “другой вариант осуществления” следует понимать как “по меньшей мере, еще один вариант осуществления”.

[0013] Употребление терминов в единственном числе подразумевает один или более указанных предметов или действий. В частности, в формуле изобретения ссылка на предмет, в целом, означает наличие, по меньшей мере, одного такого предмета и ссылка на действие означает осуществление действия, по меньшей мере, один раз.

[0014] Иногда здесь могут использоваться термины “первый”, “второй”, “третий” и т.д. Без дополнительного контекста, использование этих терминов в формуле изобретения не предусматривает упорядочение, но, напротив, ставит своей целью идентификацию. Например, выражения “первая версия” и “вторая версия” не обязательно означают, что первая версия является самой первой версией или создана до второй версии или даже что первая версия запрашивается или используется до второй версии. Напротив, эти выражения используются для идентификации разных версий.

[0015] Заголовки служат исключительно для удобства; информацию по данной теме можно найти вне раздела, заголовок которого указывает эту тему.

[0016] Другие определения, явные и неявные, могут быть включены ниже.

Иллюстративная операционная среда

[0017] Фиг. 1 демонстрирует пример подходящей среды 100 вычислительной системы, в которой можно реализовать аспекты описанного здесь изобретения. Среда 100 вычислительной системы является лишь одним примером подходящей вычислительной среды и не призвана накладывать какое-либо ограничение на объем использования или функциональных возможностей аспектов описанного здесь изобретения. Кроме того, вычислительную среду 100 не следует интерпретировать как имеющую какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, представленных в иллюстративной операционной среде 100.

[0018] Аспекты описанного здесь изобретения применимы ко многим другим средам или конфигурациям вычислительной системы общего назначения или специального назначения. Примеры общеизвестных вычислительных систем, сред или конфигураций, которые могут быть пригодны для использования с аспектами описанного здесь изобретения, содержат персональные компьютеры, компьютеры-серверы, либо на голом железе, либо как виртуальные машины, карманные или портативные устройства, многопроцессорные системы, микроконтроллерные системы, телевизионные приставки, программируемую и непрограммируемую бытовую электронику, сетевые PC, миникомпьютеры, универсальные компьютеры, карманные персональные компьютеры (PDA), игровые устройства, принтеры, электроприборы, включающие в себя приставку, медиацентр или другие электроприборы, вычислительные устройства, встроенные в автомобиль или установленные на нем, другие мобильные устройства, телефонные устройства, включающие в себя сотовые телефоны, беспроводные телефоны и проводные телефоны, распределенные вычислительные среды, которые включают в себя любые из вышеперечисленных систем или устройств, и пр.

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

[0020] Альтернативно или дополнительно, описанные здесь функциональные возможности могут осуществляться, по меньшей мере, частично, одним или более аппаратными логическими компонентами. В порядке примера и без ограничения, иллюстративные типы аппаратных логических компонентов, которые можно использовать, включают в себя вентильные матрицы, программируемые пользователем (FPGA), специализированные интегральные схемы (ASIC), специализированные стандартные продукты (ASSP), однокристальные системы (SOC), сложные программируемые логические устройства (CPLD) и пр.

[0021] Согласно фиг. 1 иллюстративная система для реализации аспектов описанного здесь изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 110. Компьютер может включать в себя любое электронное устройство, которое способно выполнять инструкцию. Компоненты компьютера 110 может включать в себя блок 120 обработки, системную память 130 и одну или более системных шин (представленных системной шиной 121), которые соединяют различные системные компоненты, включая системную память, с блоком 120 обработки. Системная шина 121 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину с использованием любой из различных шинных архитектур. В порядке примера, но не ограничения, такие архитектуры включают в себя шину стандартной промышленной архитектуры (ISA), шину микроканальной архитектуры (MCA), шина расширенного ISA (EISA), локальную шину Ассоциации по стандартизации видеоэлектроники (VESA), шину взаимосоединения периферийных компонентов (PCI), также известную как шина расширения, шину расширенного стандарта взаимосоединения периферийных компонентов (PCI-X), усовершенствованный графический порт (AGP) и PCI express (PCIe).

[0022] Блок 120 обработки может быть подключен к аппаратному устройству 122 защиты. Устройство 122 защиты может хранить и генерировать криптографические ключи, которые могут использоваться для защиты различных аспектов компьютера 110. В одном варианте осуществления, устройство 122 защиты может содержать микросхему доверенного платформенного модуля (TPM), устройство защиты TPM и т.п.

[0023] Компьютер 110 обычно включает в себя различные компьютерно-считываемые носители. Компьютерно-считываемые носители могут представлять собой любые доступные носители, к которым может обращаться компьютер 110, и включать в себя как энергозависимые, так и энергонезависимые носители, и сменные и стационарные носители. В порядке примера, но не ограничения, компьютерно-считываемые носители могут содержать компьютерные носители данных и среды передачи данных.

[0024] Компьютерные носители данных включают в себя как энергозависимые, так и энергонезависимые, сменные и стационарные носители, реализованные любым способом или посредством любой технологии для хранения информации, например машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя RAM, ROM, EEPROM, твердотельное хранилище, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другое хранилище на основе оптического диска, магнитные кассеты, магнитную ленту, хранилище на основе магнитного диска или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для хранения нужной информации и к которому может обращаться компьютер 110. Компьютерные носители данных не включают в себя среды передачи данных.

[0025] Среды передачи данных обычно воплощают машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, например несущей волне или другом транспортном механизме, и включают в себя любые среды доставки информации. Термин “модулированный сигнал данных” означает сигнал, одна или более из характеристик которого задаются или изменяются таким образом, чтобы кодировать информацию в сигнале. В порядке примера, но не ограничения, среды передачи данных включают в себя проводные среды, например проводную сеть или прямое проводное соединение, и беспроводные среды передачи данных, например акустические, РЧ, инфракрасные и другие беспроводные среды передачи данных. Комбинации любых из вышеперечисленных также следует включать в объем компьютерно-считываемых носителей.

[0026] Системная память 130 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти, например постоянной памяти (ROM) 131 и оперативной памяти (RAM) 132. Базовая система 133 ввода-вывода (BIOS), содержащая базовые процедуры, которые помогают переносить информацию между элементами компьютера 110, например, при запуске, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые непосредственно доступны блоку 120 обработки и/или в данный момент обрабатываются им. В порядке примера, но не ограничения, фиг. 1 демонстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

[0027] Компьютер 110 также может включать в себя другие сменные/стационарные, энергозависимые/энергонезависимые компьютерные носители данных. Исключительно в порядке примера, фиг. 1 демонстрирует жесткий диск 141, который выполняет операции чтения или записи на стационарных, энергонезависимых магнитных носителях, привод 151 магнитных дисков, который выполняет операции чтения или записи на сменном, энергонезависимом магнитном диске 152, и привод 155 оптических дисков, который выполняет операции чтения или записи на сменном, энергонезависимом оптическом диске 156, например CD ROM, DVD, или других оптических носителях. Другие сменные/стационарные, энергозависимые/энергонезависимые компьютерные носители данных, которые можно использовать в иллюстративной операционной среде, включают в себя кассеты с магнитной лентой, карты флэш-памяти и другие твердотельные запоминающие устройства, цифровые универсальные диски, другие оптические диски, цифровую видео-ленту, твердотельную RAM, твердотельную ROM и пр. Жесткий диск 141 может быть подключен к системной шине 121 через интерфейс 140, и привод 151 магнитных дисков и привод 155 оптических дисков может быть подключен к системной шине 121 интерфейсом для сменной энергонезависимой памяти, например интерфейсом 150.

[0028] Приводы и связанные ними компьютерные носители данных, рассмотренные выше и проиллюстрированные на фиг. 1, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг. 1, например, показано, что на жестком диске 141 хранятся операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут быть идентичны или отличны от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 обозначены здесь разными ссылочными позициями для иллюстрации того, что они являются, как минимум, разными копиями.

[0029] Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, например клавиатуру 162 и указательное устройство 161, обычно именуемое мышью, шаровым манипулятором или сенсорной панелью. Другие устройства ввода (не показаны) могут включать в себя микрофон (например, для ввода голоса или другого аудиосигнала), джойстик, игровой планшет, спутниковую антенну, сканер, сенсорный экран, графический планшет, камеру (например, для ввода жестов или другого визуального ввода) и т.п. Эти и другие устройства ввода часто подключены к блоку 120 обработки через интерфейс 160 пользовательского ввода, который подключен к системной шине, но может подключаться посредством другого интерфейса и шинных структур, например, параллельного порта, игрового порта или универсальную последовательную шину (USB).

[0030] Используя один или более из вышеуказанных устройств ввода, можно устанавливать естественный пользовательский интерфейс (NUI). NUI может опираться на распознавании речи, распознавании прикосновения и стилуса, распознавании жестов, как на экране, так и рядом с экраном, жестов в воздухе, отслеживании положения головы и направления взгляда, голоса и речи, зрение, прикосновения, жестов, искусственного интеллекта и пр. Некоторая иллюстративная технология NUI, которая может применяться для взаимодействия с пользователем, включает в себя дисплеи, чувствительные к прикосновению, распознавание голоса и речи, понимание намерения и цели, регистрацию жестикуляции с использованием камер глубины (например, систем стереоскопических камер, систем инфракрасных камер, систем RGB-камер и их комбинаций), регистрацию жестикуляции с использованием акселерометров/гироскопов, распознавание лиц, 3D дисплеи, отслеживание головы, глаз и взгляда, системы дополненной реальности с эффектом присутствия и виртуальной реальности, а также технологии для регистрации мозговой активности с использованием электродов, улавливающих электрическое поле (EEG и родственные способы).

[0031] Монитор 191 или устройство отображения другого типа также подключен к системной шине 121 через интерфейс, например видеоинтерфейс 190. Помимо монитора, компьютеры также могут включать в себя другие периферийные устройства вывода, например громкоговорители 197 и принтер 196, которые могут подключаться через выходной периферийный интерфейс 195.

[0032] Компьютер 110 может работать в сетевой среде с использованием логических соединений с одним или более удаленными компьютерами, например удаленным компьютером 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой PC, равноправное устройство или другой общий сетевой узел и обычно включает в себя многие или все элементы, описанные выше в отношении компьютера 110, хотя на фиг. 1 проиллюстрировано только запоминающее устройство 181. Логические соединения, изображенные на фиг. 1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но также может включать в себя телефонные сети, сети ближнего поля и другие сети. Такие сетевые среды распространены в офисных, компьютерных сетях предприятия, интрасетях и интернете.

[0033] При использовании в сетевой среде LAN компьютер 110 подключен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 может включать в себя модем 172 или другое средство для установления связи по WAN 173, например, через интернет. Модем 172, который может быть внутренним или внешним, может быть подключен к системной шине 121 через интерфейс 160 пользовательского ввода или другой подходящий механизм. В сетевой среде, программные модули, изображенные в отношении компьютера 110 или его частей, могут храниться в удаленном запоминающем устройстве. В порядке примера, но не ограничения, на фиг. 1 показано, что удаленные прикладные программы 185 хранятся на запоминающем устройстве 181. Очевидно, что показанные сетевые соединения являются иллюстративными и могут использоваться другие средства установления линии связи между компьютерами.

Заполнители

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

[0035] Заполнитель может храниться в локальном запоминающем устройстве машины. В одной реализации, заполнитель может указывать, что контент, связанный с заполнителем, доступен в другом месте, чем файловая система машины (далее иногда именуемая локальной файловой системой или клиентской файловой системой). Например, заполнитель может указывать, что контент, связанный с заполнителем, хранится в одной из облачных систем хранения, проиллюстрированных на фиг. 3.

[0036] В другой реализации, заполнитель может указывать, что контент доступен через приложение, которое располагается в машине. Это приложение может сохранять контент в памяти, локальной файловой системе или удаленной файловой системе, может генерировать контент, может осуществлять комбинацию вышеперечисленных и т.п. Даже если файловая система может получать контент непосредственно, файловая система все же может опираться на приложение для осуществления доступа к контенту файла.

[0037] В одной реализации, для заполнителя, с которым связан сравнительно малый контент (например, менее заранее определенного, конфигурируемого или вычисленного порога), копия всего контента, связанного с заполнителем, также может храниться в заполнителе. Сохранение данных “в заполнителе” подразумевает сохранение данных в структуре данных заполнителя и/или сохранение данных в локальном хранилище, положение которого указано заполнителем.

[0038] В зависимости от реализации, заполнитель может включать в себя информацию о файле на различных уровнях детализации. Как минимум, заполнитель включает в себя данные, которые идентифицируют файл в удаленной системе хранения. Например, заполнитель может указывать конкретную облачную систему хранения, в которой можно найти контент, совместно с информацией (например, идентификатором) который идентифицирует файл облачной системе хранения.

[0039] Заполнитель может включать в себя внешние метаданные и/или внутренние метаданные файла. Внешние метаданные представляют собой любые метаданные, которые хранятся вне контента файла. Например, внешние метаданные могут включать в себя имя, размер, дату изменения, дату создания, дату последнего доступа, атрибуты файла, версию, другие метаданные, поддерживаемые файловой системы, и пр.

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

[0041] Вышеописанные примеры внутренних и внешних метаданных не призваны охватывать все типы внутренних и внешних метаданных. Действительно, на основании изложенных здесь принципов, специалисты в данной области техники могут, в соответствии с изложенными здесь принципами, использовать другие внешние и внутренние метаданные, не выходя за рамки сущности или объема аспектов описанного здесь изобретения.

[0042] В одной реализации, заполнитель может включать в себя внешние метаданные файла, например имя файла, размер файла, дату изменения файла и дату создания файла. В другой реализации, помимо вышеперечисленного, заполнитель также может включать в себя атрибуты файла.

[0043] В другой реализации, заполнитель может включать в себя некоторые или все внутренние метаданные файла.

[0044] В одной реализации, заполнитель может включать в себя частично или полностью доступный для поиска текст файла. Например, редактируемый документ может иметь контент, который включает в себя текст и форматирование. Заполнитель может включать в себя начальные N символов, слов, абзацев, страниц и т.п. текста редактируемого документа без форматирования, где N является заранее определенным, конфигурируемым или оперативно определяемым.

[0045] В одной реализации, заполнитель может включать в себя указание языка(ов) доступного для поиска текста. Например, заполнитель может включать в себя данные, которые указывают, что доступный для поиска текст написан по-английски. В порядке другого примера, заполнитель может включать в себя данные (например, тег или другие данные), которые указывают, что часть текста написана по-английски, и данные (например, другой тег или другие данные), которые указывают, что другая часть текста написан по-испански.

[0046] В порядке другого примера, программа презентации может иметь относительно мало текста по сравнению с другими данными, используемыми для презентации. В этом примере, заполнитель может включать в себя весь текст презентации, исключая другие данные, используемые для презентации.

[0047] В одной реализации, заполнитель может включать в себя миниатюру изображения. Изображение может быть включено в контент файла, связанного с заполнителем, тогда как миниатюра может генерироваться из изображения или также быть включена в контент файла. В одном варианте осуществления, миниатюра, включенная в заполнитель, может иметь сравнительно малый размер, который может быть заранее заданным, конфигурируемым или оперативно определяемым.

[0048] В одной реализации, заполнитель может включать в себя данные, которые указывают, как получить более крупные миниатюры контента, связанного с заполнителем. Например, заполнитель может включать в себя адрес службы, у которой можно запрашивать более крупную миниатюру файла. Служба имеет возможность принимать ввод, который указывает размер предоставляемой миниатюры.

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

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

[0051] В одной реализации, заполнитель может иметь флаг, который указывает, доступен ли контент файла в автономном режиме работы. Как указано ранее, клиент может периодически терять возможность соединения с удаленным хранилищем, где найден контент, связанный с заполнителем. Если флаг установлен, когда клиент работает в оперативном режиме, контент для заполнителя можно загружать в локальное хранилище и поддерживать там, чтобы контент был доступен, даже когда удаленное хранилище недоступно.

[0052] Различные варианты осуществления могут иметь заполнители, которые включают в себя любые из вышеупомянутых данных.

[0053] Заполнитель может использоваться для создания впечатления, что файл располагается в локальной файловой системе, даже когда контент файла располагается удаленно. Это впечатление может поддерживаться, даже когда удаленная файловая система недоступна. Это можно делать, вставляя заполнитель в пространство имен локальной файловой системы. Файловую систему можно изменять для распознавания заполнители и, при необходимости, для отображения информации о файле, представленном заполнителем. Например, файловая система может отображать имена и соответствующие метаданные для заполнителя, когда пользователь перемещается по пространству имен локальной файловой системы.

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

[0055] Заполнители можно использовать, когда удаленная система хранения недоступна. Например, возможность сетевого соединения потеряна или недоступна, машина может использовать локально хранящиеся заполнители для навигации и осуществления других операций в пространстве имен файловой системы.

[0056] Заполнитель сохраняется, даже когда машина-клиент отключена. Таким образом, заполнитель остается доступным при перезапуске машины-клиента. Это устойчивое поведение можно реализовать путем хранения заполнителя в локальном хранилище клиента.

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

[0058] Используемый здесь термин "компонент" следует понимать в смысле, включающем в себя оборудование, например все или часть устройства, коллекцию одного или более программных модулей или их частей, некоторую комбинацию одного или более программных модулей или их частей и одного или более устройств или их частей, и пр.

[0059] Например, компоненты, представленные на фиг. 2-3, можно реализовать с использованием одного или более вычислительных устройств. Такие устройства могут включать в себя, например, персональные компьютеры, компьютеры-серверы, карманные или портативные устройства, многопроцессорные системы, микроконтроллерные системы, телевизионные приставки, программируемую бытовую электронику, сетевые PC, мини-компьютеры, универсальные компьютеры, сотовые телефоны, карманные персональные компьютеры (PDA), игровые устройства, принтеры, электроприборы, включающие в себя приставку, медиацентр или другие электроприборы, вычислительные устройства, встроенные в автомобиль или установленные на нем, другие мобильные устройства, распределенные вычислительные среды, которые включают в себя любые из вышеперечисленных систем или устройств, и пр.

[0060] Иллюстративное устройство, которое может быть выполнено с возможностью реализации одного или более из компонентов, показанных на фиг. 2-3, содержит компьютер 110, показанный фиг. 1.

[0061] Компонент также может включать в себя код или быть представлен кодом. Код включает в себя инструкции, которые указывают действия, которые должен выполнять компьютер. Код также может включать в себя информацию помимо действий, которые должен выполнять компьютер, например данные, ресурсы, переменные, определения, соотношения, связи и пр.

[0062] Код может исполняться компьютером. Когда код исполняется компьютером, это может именоваться процессом. Используемый здесь термин “процесс” и его варианты могут включать в себя один или более традиционных процессов, потоков, компонентов, библиотек, объектов, которые выполняют задания, и пр. Процесс можно реализовать аппаратными средствами, программными средствами или комбинацией аппаратных средств и программных средств. Согласно варианту осуществления процессом является любой механизм, как бы он ни назывался, способный осуществлять действие или используемый при осуществлении действия. Процессы могут распределяться по нескольким устройствам или осуществляться в единичном устройстве. Код может исполняться в пользовательском режиме, в режиме ядра, в каком-либо другом режиме, в комбинации вышеперечисленных, и т.п.

[0063] Согласно фиг. 2 система 200 может включать в себя клиент 205, удаленную систему 210 хранения, локальное хранилище 215, заполнитель 220 и может включать в себя другие компоненты (не показаны). Клиент 205 может иметь прямой доступ к локальному хранилищу 215 и быть подключен к удаленной системе 210 хранения путем использования облачной сети.

[0064] Хотя здесь иногда используются термины “клиент” и “сервер”, следует понимать, что клиент можно реализовать на машине, которая имеет оборудование и/или программное обеспечение, которое обычно связано с сервером, и аналогично, сервер можно реализовать на машине, которая имеет оборудование и/или программное обеспечение, которое обычно связано с настольным, персональным или мобильным компьютером. Кроме того, клиент иногда может действовать как сервер и наоборот. Иногда, два или более субъектов, которые чаще действуют как клиент или сервер, могут одновременно быть равноправными устройствами, серверами или клиентами. Согласно варианту осуществления клиент и сервер можно реализовать на одной и той же физической машине.

[0065] Кроме того, каждый из используемых здесь терминов “сервер” и “клиент” может относиться к одному или более физическим или виртуальным субъектам, к одному или более процессам, выполняющимся на одном или более физических или виртуальных субъектов, и пр. Таким образом, сервер может включать в себя фактический физический узел, на котором выполняются один или более процессов, виртуальный узел, на котором выполняются один или более процессов, службу, выполняющуюся на одном или более узлов, группе узлов, которые совместно обеспечивают службу, и пр. Служба может включать в себя один или более процессов, выполняющихся на одном или более физических или виртуальных субъектов. Кроме того, единичный процесс может реализовать один или более серверов.

[0066] Локальное хранилище 215 может включать в себя любые носители данных, способные хранить данные. Например, локальное хранилище 215 может включать в себя энергозависимую память (например, кэш-память) и энергонезависимую память (например, постоянное хранилище). Термин "данные" следует понимать в широком смысле, включая в него все, что может быть представлено одним или более компьютерными элементами хранения. Логически, данные могут быть представлены последовательностью единиц и нулей в энергозависимой или энергонезависимой памяти. В компьютерах, имеющих носитель недвоичных данных, данные могут быть представлены согласно возможностям носителя данных. Данные могут быть организованы в виде структур данных разных типов, включающих в себя простые типы данных, например числа, буквы и пр., иерархические, связанные или другие родственные типы данных, структур данных, которые включают в себя несколько других структур данных или простые типы данных и пр. Некоторые примеры данных включают в себя информацию, программный код, состояние программы, программные данные, другие данные и пр.

[0067] Локальное хранилище 215 может быть внешним, внутренним или включать в себя некоторые компоненты, которые являются внутренними, и некоторые компоненты, которые являются внешними по отношению к клиенту 205. В одной реализации, локальное хранилище 215 может включать в себя любое хранилище, заключенное в машине, выступающей в качестве клиента 205. В другой реализации, локальное хранилище 215 мож