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

Изобретение относится к заполнителям файловой системы. Технический результат – уменьшение пространства хранилища данных, расходуемого локально на машине-клиенте. Для этого клиент может использовать заполнители для представления объектов удаленной файловой системы. Заполнители могут включать в себя метаданные и также могут вовсе не включать в себя или включать в себя частично или полностью контент представленных объектов удаленной файловой системы. Совместно с локальными метаданными файловой системы заполнители позволяют совершать навигацию в пространстве имен файловой системы и позволяют осуществлять другие операции на объектах файловой системы, даже когда клиент находится в автономном режиме относительно удаленной файловой системы. После восстановления возможности соединения с удаленной файловой системой заполнители могут использоваться при синхронизации изменений. 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 может включать в себя хранилище, непосредственно подключенное к машине, выступающей в качестве клиента 205. Например, локальное хранилище 215 может быть подключено к машине через линию связи USB, линию связи IEEE 1394, оптическую линию связи, другую проводную линию связи и т.п.

[0068] Удаленная система 210 хранения может включать в себя один или более компьютеров, предназначенных для хранения и обеспечения доступа к данным. Используемый здесь термин "доступ" может включать в себя чтение данных, запись данных, удаление данных, обновление данных, комбинацию, включающую в себя два или более из вышеперечисленных и пр. Удаленная система 210 хранения может быть подключена к клиенту 205 через сеть, например облако. "Облако" - это термин, который часто используется как метафора для интернета. В его основе лежит идея о том, что вычисление, программное обеспечение, доступ данным, хранение и другие ресурсы могут обеспечиваться субъектами, подключенными к интернету, при этом пользователям не нужно знать местонахождение или другие детали, касающиеся вычислительной инфраструктуры, предоставляющей эти ресурсы.

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

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

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

[0072] Заполнитель 220 демонстрирует различные иллюстративные поля данных, которые могут храниться в заполнителе, хранящемся в локальном хранилище 215. Хотя на фиг. 2 показан только один заполнитель, чаще в локальном хранилище 215 хранится несколько заполнителей. Например, для данного пространства имен, может существовать один заполнитель для каждого объекта удаленной файловой системы, если контент объекта удаленной файловой системы не полностью существует в локальном хранилище 215. В порядке другого примера, для данного пространства имен, также могут существовать заполнители для объектов удаленной файловой системы, даже когда весь контент объектов удаленной файловой системы существует в локальном хранилище 215. Этот второй набор заполнителей также может храниться в локальном хранилище 215 для файлов, контент которых имеет размер меньше данного порога, как упомянуто ранее.

[0073] Пространство имен может включать в себя идентификатор (например, имя или другой идентификатор) для каждого файла файловой системы совместно с информацией иерархии, касающейся файла. Например, пространство имен может включать в себя элемент пространства имен, соответствующий D:\DIR1\FILE1.TXT. Этот элемент пространства имен указывает имя файла (например, FILE1.TXT) и указывает, что файл существует в директории (например, DIR1). Пространство имен также может включать в себя другие метаданные. Пространство имен может иметь взаимно-однозначное или какое-либо другое соответствие с информацией файловой системы и может представлять иерархии виртуальных папок.

[0074] Согласно фиг. 3 система 300 может включать в себя клиент 305, облако 310, облачные системы 315-317 хранения, локальное хранилище 320, журнал 321 операций и другие компоненты (не показаны). Клиент 305 может включать в себя файловый менеджер 325, менеджер 326 синхронизации, менеджер 327 заполнителей и другие компоненты (не показан).

[0075] Компоненты, показанные на фиг. 3, можно реализовать с использованием оборудования и/или программного обеспечения одного или более вычислительных устройств, как описано ранее. Запоминающие устройства, которые реализуют локальное хранилище 320 и журнал 321 операций, можно реализовать аналогичным образом, как в отношении локального хранилища 215, показанного на фиг. 2, и могут быть внешними, внутренними или включать в себя некоторые компоненты, которые являются внутренними, и некоторые компоненты, которые являются внешними по отношению к клиенту 305.

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

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

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

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

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

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

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

[0083] Облачные системы 315-317 хранения могут включать в себя один или более запоминающих устройств совместно с одним или более вычислительными устройствами, которые обеспечивают доступ к этим запоминающим устройствам. В одном варианте осуществления, облачная система хранения может содержать центр обработки данных, где вычислительные устройства располагаются в единственном физическом положении. В другом варианте осуществления, облачная система хранения может включать в себя вычислительные устройства и хранилище, которые подключены к облаку в разных положениях. В одном варианте осуществления, облачная система хранения может содержать единичный сервер, который обеспечивает доступ к одному или более запоминающим устройствам. В одном варианте осуществления, облачная система хранения может содержать вычислительное устройство, которое не находится в локальной сети (LAN) клиента. В другом варианте осуществления, облачная система хранения может содержать любое хранилище, которое не располагается на клиенте или непосредственно не подключено к нему.

[0084] Хотя на фиг. 2 показаны три облачные системы хранения, в других реализациях, может существовать любое количество облачных систем хранения.

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

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

[0087] На блоке 407, производится определение, находится ли клиент в автономном режиме относительно облачной системы хранения. Клиент находится в автономном режиме относительно облачной системы хранения, если клиент в данный момент не способен осуществлять связь с облачной системой хранения.

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

[0089] На блоке 415, файл обнаруживается как представленный заполнителем. Заполнитель хранится в локальной файловой системе. Заполнитель указывает, по меньшей мере, что контент объекта файловой системы существует в облачной системе хранения (даже если этот контент также существует в локальной файловой системе). Например, согласно фиг. 3 файловый менеджер 325 обнаруживает, что файл представлен заполнителем, который хранится в локальном хранилище 320.

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

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

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

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

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

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

[0096] На блоке 430, если клиент все еще в автономном режиме относительно облачной системы хранения, действия продолжаются на блоке 410, где клиент может принимать указание другого файла; иначе, действия продолжаются на блоке 435.

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

[0098] На блоке 440, изменения синхронизируются с облачной системой хранения. Например, согласно фиг. 3 менеджер 326 синхронизации может синхронизировать изменения с одной или более из облачных систем 315-317 хранения. Например, когда в изменении в автономном режиме участвуют внутренние метаданные файла, синхронизация может включать в себя предоставление метаданных из заполнителя облачной системе хранения для обновления соответствующих внутренних метаданных объекта файловой системы, который существует в облачной системе хранения.

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

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

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

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

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

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

[00105] На блоке 515, восстанавливается возможность соединения между клиентом и облачной системой хранения. Например, согласно фиг. 3 облачная система 315 хранения может относиться к возможности соединения (например, может быть способен осуществлять связь) с клиентом 305.

[00106] На блоке 520, может начинаться синхронизация. Например, согласно фиг. 3 клиент 305 и облачная система 315 хранения может начинать синхронизацию обновлений, произошедших, пока клиент находился в автономном режиме.

[00107] На блоке 525, принимается изменение, произошедшее с файлом, который представлен заполнителем, хранящимся в файловой системе клиента. Изменение может происходить после потери возможности соединения с клиентом и до восстановления возможности соединения с клиентом. Изменение может отражаться в клиентской файловой системе, по меньшей мере, частично через заполнитель в течение периода потери возможности соединения. Например, согласно фиг. 3 облачная система 315 хранения принимает изменение от менеджера 326 синхронизации клиента 305.

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

[00109] На блоке 535, могут осуществляться, при наличии, другие действия.

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

1. Реализуемый компьютером способ работы с объектами удаленной файловой системы с использованием заполнителей, причем способ содержит этапы, на которых:

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

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

определяют, что клиент находится в автономном режиме относительно удаленной системы хранения данных, причем клиент определяется находящимся в автономном режиме относительно удаленной системы хранения данных исходя из того, что клиент не способен осуществлять связь с удаленной системой хранения данных;

на основе определения того, что клиент находится в автономном режиме, осуществляют действия, в соответствии с которыми:

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

после упомянутого обновления определяют, что клиент больше не находится в автономном режиме по отношению к удаленной системе хранения данных, и на основе этого:

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

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

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

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

4. Способ по п. 1, дополнительно содержащий этапы, на которых:

взаимодействуют, на клиенте, с навигационным приложением, которое запрашивает метаданные для объектов файловой системы в пространстве имен файловой системы локальной файловой системы; и

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

5. Способ по п. 1, дополнительно содержащий этапы, на которых:

создают заполнители для объектов файловой системы пространства имен локальной файловой системы, для которых содержимое не полностью хранится в локальной файловой системе;

загружают и сохраняют из удаленной системы хранения данных метаданные для заполнителей таким образом, что в пространстве имен локальной файловой системы локально сохраняются метаданные для каждого объекта файловой системы, указываемого пространством имен; и

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

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

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

8. Способ по п. 1, в котором обновление структуры данных файловой системы локальной файловой системы для указания операции, осуществляемой в отношении объекта файловой системы, содержит этап, на котором обновляют пространство имен локальной файловой системы, если упомянутая операция является операцией перемещения, удаления, восстановления, создания или копирования; при этом синхронизация изменения с удаленной системой хранения данных содержит этап, на котором обновляют пространство имен удаленной системы хранения в соответствии с обновленным пространством имен локальной файловой системы.

9. Способ по п. 1, дополнительно содержащий этап, на котором выясняют, разрешена ли упомянутая операция, если клиент находится в автономном режиме, и запрещают эту операцию, если данная операция не разрешена и клиент находится в автономном режиме.

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

11. Способ по п. 1, в котором заполнитель включает в себя имя, размер, дату изменения и дату создания объекта файловой системы.

12. Способ по п. 11, в котором заполнитель дополнительно включает в себя внутренние метаданные объекта файловой системы.

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

14. Способ по п. 1, в котором заполнитель включает в себя структуру данных, которая указывает части содержимого объекта файловой системы, которые хранятся в локальной файловой системе, и указывает части содержимого объекта файловой системы, которые хранятся в удаленной файловой системе и не хранятся в локальной файловой системе.

15. Вычислительное устройство, выполненное с возможностью работы с объектами удаленной файловой системы с использованием заполнителей, при этом устройство содержит:

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

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

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

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

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

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

19. Компьютерный носитель данных, на котором имеются машиноисполняемые инструкции, которыми при их исполнении осуществляются действия, содержащие:

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

восстановление возможности соединения с клиентом, при этом в течение этой возможности соединения клиент разрешает второй набор операций в отношении объектов файловой системы;

в ходе синхронизации осуществление действий, содержащих:

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

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

20. Компьютерный носитель данных по п. 19, при этом упомянутое изменение воздействует на пространство имен клиентской файловой системы, причем данное изменение отражается в клиентской файловой системе через заполнитель во время периода потери возможности соединения.



 

Похожие патенты:

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

Изобретение относится к области химического анализа. Оптический химический анализатор содержит: источник первой величины излучения, оптический модуль, сконфигурированный с возможностью направлять первую величину излучения так, что она падает на или проходит через цель в местоположении цели, и принимать вторую величину излучения комбинационного рассеяния от цели и направлять вторую величину излучения в модуль преобразования Фурье пространственной интерференции (SIFT).

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

Изобретение относится к технологиям многопараметрического контроля телеметрической информации. Техническим результатом является расширение арсенала технических средств контроля телеметрической информации.

Изобретение относится к средствам планирования Web-обходчиков в соответствии с поиском по ключевым словам. Технический результат заключается в расширении арсенала средств планирования Web-обходчиков в соответствии с поиском по ключевым словам.

Способ защиты товаров от подделки и определения их подлинности на основе асимметричного шифрования относится к способам распознавания и может быть использовано для защиты товаров от подделки и определения их подлинности.

Группа изобретений относится к области управления проектами и обеспечению визуализации и взаимодействия с цифровыми модулями информационного моделирования зданий (BIM).

Изобретение относится к средствам для решения задач о выполнении булевых функций. Технический результат заключается в решения задачи о выполнимости булевых функций, заданных в конъюнктивной нормальной форме, имеющих N переменных и до М=2K дизъюнктов.

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

Изобретение относится к способу оптимального планирования использования виртуальных сетевых ресурсов центров обработки данных. Техническим результатом является обеспечение устранения сегментации физических ресурсов за счет миграции виртуальных ресурсов в центрах обработки данных, устранения перегрузки входящих в физическое хранилище данных каналов обмена.

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

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

Изобретение относится к способу генерирования вывода данных. Технический результат заключается в улучшении способа генерирования вывода данных.

Изобретение относится к средствам планирования Web-обходчиков в соответствии с поиском по ключевым словам. Технический результат заключается в расширении арсенала средств планирования Web-обходчиков в соответствии с поиском по ключевым словам.

Изобретение относится к средствам планирования Web-обходчиков в соответствии с поиском по ключевым словам. Технический результат заключается в расширении арсенала средств планирования Web-обходчиков в соответствии с поиском по ключевым словам.

Способ защиты товаров от подделки и определения их подлинности на основе асимметричного шифрования относится к способам распознавания и может быть использовано для защиты товаров от подделки и определения их подлинности.

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

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

Группа изобретений относится к распределенным запоминающим системам и может быть использована для сохранения данных в кэш-памяти или памяти другого типа. Техническим результатом является обеспечение улучшенного использования ресурсов кэш-памяти и ресурсов других типов памяти.

Группа изобретений относится к распределенным запоминающим системам и может быть использована для сохранения данных в кэш-памяти или памяти другого типа. Техническим результатом является обеспечение улучшенного использования ресурсов кэш-памяти и ресурсов других типов памяти.

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