СПОСОБ УПРАВЛЕНИЯ МНОЖЕСТВОМ СОСТОЯНИЙ ФАЙЛА ДЛЯ ДУБЛИРОВАННЫХ ФАЙЛОВ Российский патент 2009 года по МПК G06F11/16 

Описание патента на изобретение RU2344468C2

РОДСТВЕННЫЕ ЗАЯВКИ

Настоящая заявка на патент является родственной по отношению к находящейся в процессе одновременного рассмотрения патентной заявке США №... от......... года, зарегистрированной под номером MSFT-1651 в досье патентного поверенного и имеющей название "Managing File Replication in Applications" ("Управление дублированием файлов в приложениях"), права на которую принадлежат настоящему заявителю.

ОБЛАСТЬ ТЕХНИКИ

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

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Обычной практикой в сетевой компьютерной среде является работа пользователя компьютера над документом совместно с другим пользователем посредством сети. Такой сетью может являться локальная сеть (ЛС), глобальная сеть (ГС), сеть Интернет и т.п. При такой совместной работе каждый пользователь может создавать и редактировать электронный файл с использованием прикладной программы, например прикладной программы общего назначения, специализированной программы, предназначенной для файла, являющегося объектом совместной работы, и т.п.

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

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

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

Однако это техническое решение имеет недостатки, и обеспечение такой непротиворечивости является затруднительным или невозможным при использовании существующих средств дублирования. Версия файла в серверном компьютере может быть изменена в тот момент времени, когда пользователь не подключен к нему. Например, версией файла, хранящегося в сервере, может являться версия A. Средство дублирования копирует эту версию A в компьютер пользователя. Пользователь редактирует файл в "автономном" режиме (то есть, когда он не подключен к серверу), создавая версию B. Тем временем, второй пользователь редактирует серверную копию файла, создавая версию C. Когда пользователь снова устанавливает соединение с сервером, то этот пользователь будет иметь доступ к текущей версии (B) пользователя и к серверной версии (C). Существующие в настоящее время средства дублирования способны осуществлять только копирование версии пользователя поверх серверной версии, в этом случае изменения, внесенные вторым пользователем, будут потеряны, или копирование серверной версии поверх версии пользователя. Пользователь не имеет доступа к какой-либо информации об изменениях по сравнению с версией A. Если пользователь синхронизируется путем сохранения версии C и отклонения изменений, то версия В больше не будет доступной для пользователя.

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

Фиг.2 - функциональная схема, показывающая связи между серверным компьютером, сетью, компьютером пользователя и другими компьютерами;

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

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

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

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

КРАТКИЙ ОБЗОР

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

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

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

Средство контроля состояния версий отслеживает состояние изменений локальных и серверных файлов. Пользователю предоставляется информация о состоянии версии и о возможных вариантах управления разрешением конфликтных ситуаций.

ПРИМЕР ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА

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

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

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

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

Компьютерная система 110 обычно содержит множество считываемых посредством компьютера носителей информации. Считываемыми посредством компьютера носителями информации могут являться любые существующие носители информации, к которым компьютерная система 110 может осуществлять доступ, энергозависимые и энергонезависимые носители информации, сменные и стационарные носители информации. Считываемыми посредством компьютера носителями информации могут являться, например, компьютерные запоминающие среды и средства связи, но эти примеры не являются ограничивающим признаком. Компьютерными запоминающими средами являются, в том числе, энергозависимые и энергонезависимые, сменные и стационарные носители информации, реализованные любым способом или посредством любой технологии, обеспечивающей запоминание информации, например считываемых посредством компьютера команд, структур данных, программных модулей или иных данных. Компьютерными запоминающими средами являются, в том числе, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ), электрически стираемые программируемые постоянные запоминающие устройства (ЭСППЗУ), флэш-память или запоминающие устройства на основе иных технологий, постоянные запоминающие устройства на компакт-дисках (CDROM), универсальные цифровые диски (DVD) или иные запоминающие устройства на оптических дисках, магнитные кассеты, магнитная лента, запоминающие устройства на магнитных дисках или иные магнитные запоминающие устройства, либо любые иные носители информации, которые могут быть использованы для запоминания желательной информации, а доступ к ним может быть осуществлен посредством компьютерной системы 110, но эти примеры не являются ограничивающим признаком. Средства связи обычно обеспечивают реализацию считываемых посредством компьютера команд, структур данных, программных модулей или иных данных в виде модулированного информационного сигнала, например несущей, или посредством иного механизма транспортировки, и в их состав входят любые средства передачи информации. Термин "модулированный информационный сигнал" означает сигнал, один или большее количество параметров которого устанавливают или изменяют таким образом, чтобы обеспечить кодирование информации в сигнале. Примерами средств связи являются, в том числе, средства проводной связи, например сеть проводной связи или прямое проводное соединение, и средства беспроводной связи, например средства акустической связи, радиочастотной связи, инфракрасной связи и иные средства беспроводной связи, но эти примеры не являются ограничивающим признаком. Термин "считываемый посредством компьютера носитель информации" также охватывает собой совокупности любых из вышеуказанных носителей и средств.

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

Компьютерная система 110 может также содержать иные сменные/стационарные энергозависимые/энергонезависимые компьютерные запоминающие среды. Например, на Фиг.1 показан накопитель 141 на жестких дисках, который осуществляет считывание информации со стационарного энергонезависимого магнитного носителя или ее запись на него, накопитель 151 на магнитных дисках, который осуществляет считывание информации со сменного энергонезависимого магнитного диска 152 или ее запись на него, и накопитель 155 на оптических дисках, который осуществляет считывание информации со сменного энергонезависимого оптического диска 156, например, с постоянного запоминающего устройства на компакт-диске (CD-ROM) или с иного оптического носителя информации, или ее запись на него. Другими сменными/стационарными энергозависимыми/энергонезависимыми компьютерными запоминающими средами, которые могут быть использованы в приведенной в качестве примера операционной среде, являются, в том числе, кассеты с магнитной лентой, платы флэш-памяти, универсальные цифровые диски, цифровая видеолента, твердотельное ОЗУ, твердотельное ПЗУ и т.п., но эти примеры не являются ограничивающим признаком. Накопитель 141 на жестких дисках обычно подключен к системной шине 121 через интерфейс стационарных запоминающих устройств, которым является, например, интерфейс 140, а накопитель 151 на магнитных дисках и накопитель 155 на оптических дисках обычно подключены к системной шине 121 через интерфейс сменных запоминающих устройств, которым является, например, интерфейс 150.

Вышеописанные накопители и соответствующие им компьютерные запоминающие среды, которые изображены на Фиг.1, обеспечивают запоминание считываемых посредством компьютера команд, структур данных, программных модулей и других данных для компьютерной системы 110. Например, на Фиг.1 накопитель 141 на жестких дисках изображен как устройство, обеспечивающее запоминание операционной системы 144, прикладных программ 145, других программных модулей 146 и данных 147 программ. Следует отметить, что эти компоненты могут быть идентичными операционной системе 134, прикладным программам 135, другим программным модулям 136 и данным 137 программ или отличаться от них. На этом чертеже операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ присвоены иные ссылочные позиции для пояснения того, что они представляют собой, по меньшей мере, иные копии. Ввод команд и информации в компьютерную систему 110 пользователь может осуществлять посредством устройств ввода данных, например клавиатуры 162 и координатно-указательного устройства 161, обычно именуемого манипулятором типа "мышь", шаровым манипулятором или сенсорной панелью. Другими устройствами ввода данных (на чертеже не показаны) могут являться, в том числе, микрофон, джойстик, игровая клавишная панель, спутниковая антенна, сканер и т.п. Эти и другие устройства ввода данных часто соединяют с процессором 120 через интерфейс 160 ввода данных пользователя, подключенный к системной шине, но они могут быть также подключены через другой интерфейс и шины иной структуры, например через параллельный порт, игровой порт или через универсальную последовательную шину (USB). К системной шине 121 также может быть подключен графический интерфейс 182, например, типа Northbridge ("северный мост"). Интерфейс Northbridge представляет собой набор микросхем, обеспечивающий обмен информацией с центральным процессором или с главным процессором 120 и обеспечивающий передачу информации через ускоренный графический порт (AGP). Обмен информацией с графическим интерфейсом 182 может осуществлять один или большее количество графических процессоров (ГП) 184. Для этого графические процессоры 184 обычно содержат встроенное в микросхему запоминающее устройство, например регистровое запоминающее устройство, а графические процессоры (ГП) 184 осуществляют обмен данными с видеопамятью 186. Однако ГП 184 являются всего лишь одним из примеров сопроцессора, и, следовательно, компьютерная система 110 может содержать множество сопроцессоров, обеспечивающих совместную обработку данных. К системной шине 121 через интерфейс, например через видеоинтерфейс 190, который, в свою очередь, может осуществлять обмен данными с видеопамятью 186, также может быть подключен монитор 191 или иное устройство визуального отображения. Помимо монитора компьютерные системы также могут содержать и другие периферийные устройства вывода, например громкоговорители 197 и принтер 196, которые могут быть подключены через интерфейс 195 периферийных устройств вывода.

Компьютерная система 110 может функционировать в сетевой или в распределенной среде с использованием логических соединений с одним или с большим количеством удаленных компьютеров, например с удаленным компьютером 180. Удаленный компьютер 180 может представлять собой персональный компьютер (ПК), сервер, маршрутизатор, сетевой ПК, одноранговое устройство или иной узел общей сети и обычно содержит многие или все из тех элементов, описание которых было приведено выше применительно к компьютерной системе 110, несмотря на то что на Фиг.1 изображено всего лишь одно запоминающее устройство 181. Логические соединения, изображенные на Фиг.1, содержат локальную сеть (ЛС) 171 и глобальную сеть (ГС) 173, но также могут содержать и другие сети/шины. Такие сетевые среды обычно встречаются в домах, в офисах, в компьютерных сетях масштаба предприятия, во внутрикорпоративных сетях (интрасетях) и в сети Интернет.

При использовании компьютерной системы 110 в сетевом окружении локальной сети (ЛС) ее соединяют с локальной сетью 171 через сетевой интерфейс или адаптер 170. При использовании компьютерной системы 110 в сетевом окружении глобальной сети она обычно содержит модем 172 или иное средство установления связи через глобальную сеть 173, например через сеть Интернет. Модем 172, который может быть внутренним или внешним, может быть соединен с системной шиной 121 через интерфейс 160 ввода данных пользователя или иное надлежащее устройство. При наличии сетевого окружения запоминание программных модулей, изображенных на чертеже как относящихся к компьютерной системе 110, или их частей может быть осуществлено в удаленном запоминающем устройстве. В качестве примера, не служащего ограничивающим признаком, на Фиг.1 изображено, что удаленные прикладные программы 185 хранятся в запоминающем устройстве 181. Понятно, что показанные на чертеже сетевые соединения приведены лишь в качестве примера, и что может быть использовано иное средство установления канала связи между компьютерами.

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

Например, платформа "MICROSOFT®.NET" фирмы "Microsoft" содержит серверы, блоки типовых услуг, например хранения данных в сети на основе Web-технологий и загружаемого программного обеспечения для устройств. Несмотря на то что приведенные здесь примеры вариантов осуществления изобретения описаны применительно к программному обеспечению, хранящемуся в вычислительном устройстве, одна или большее количество частей изобретения могут быть также реализованы посредством операционной системы, прикладного программного интерфейса (API) или "объекта-посредника" между любым из следующих устройств: сопроцессором, устройством визуального отображения и запрашивающим объектом, таким образом, что выполнение операций согласно настоящему изобретению, их поддержка или доступ к ним могут быть осуществлены посредством всех языков и услуг платформы ".NET", а также в иных распределенных вычислительных структурах.

УПРАВЛЕНИЕ МНОЖЕСТВОМ СОСТОЯНИЙ ФАЙЛА ДЛЯ ДУБЛИРОВАННЫХ ФАЙЛОВ

КОПИРОВАНИЕ

Согласно Фиг.2 серверный компьютер 200 соединен с компьютером 220 пользователя через сеть 215. При получении сервером запроса сервер позволяет компьютеру 220 пользователя открыть файл. Дублирование файла предоставляет пользователю возможность работы с локальной версией серверного файла на компьютере 220 совместно с пользователями на других компьютерах 270 пользователей. Официальная версия файла хранится в серверном компьютере 200 в виде серверной копии 210. Управляющая программа 230 дублирования файлов создает три копии файла в компьютере пользователя 220. Ими являются: локальная копия 232, теневая копия 234 и копия 238, обеспечивающая возврат в предыдущее состояние.

В компьютере 220 пользователя прикладная программа 240 открывает локальную копию 232. В одном из вариантов осуществления изобретения в пользовательском пространстве имен компьютера 220 пользователя имеется копия локальной копии 232. В этом варианте осуществления изобретения локальная копия 232 отслеживает изменения копии в пространстве имен, а прикладная программа 240 использует копию в пространстве имен.

При использовании копии в пространстве имен управляющая программа 230 дублирования файлов не осуществляет управление копией в пространстве имен. В этом варианте осуществления изобретения файл в пространстве имен представляет собой файл, к которому пользователь обычно осуществляет доступ. Этот файл может представлять созданный им файл или файл, полученный им по электронной почте. В том случае, когда этой файл получен по электронной почте, пользователь получает "вложение, свидетельствующее о том, что файл всегда является активным" (с серверной информацией), и сохраняет его копию на своем локальном компьютере. Сама операция сохранения этого файла означает наличие двух копий: одной - в хранилище электронной почты, а другой - в локальном компьютере. Копия, имеющаяся в локальном компьютере, представляет собой копию в пространстве имен. Серверная информация, содержащаяся во вложении, позволяет осуществлять дублирование файла и создание локальной копии 232, теневой копии 234 и копии 238, обеспечивающей возврат в предыдущее состояние. При использовании пользователем копий в пространстве имен управляющая программа 220 дублирования осуществляет их синхронизацию с использованием локальной копии 232.

Теневая копия 234 сохраняет последнюю версию серверной копии 210, сведения о которой имеет компьютер 220 пользователя. Когда компьютер пользователя 220 подключен к серверному компьютеру 200, то теневая копия 234 идентична серверной копии 210.

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

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

КОНТРОЛЬ СОСТОЯНИЯ ВЕРСИЙ

Принцип действия способов дублирования файлов согласно одному из вариантов осуществления настоящего изобретения может быть понят со ссылкой на способ контроля состояний версий. Для каждого скопированного документа состояние версии описывает то, что происходит с документом в компьютере 220 пользователя. Эти состояния версии получают исходя из предыдущих состояний версии и действий, выполняемых с локальной копией 232, теневой копией 234 и серверной копией 210 (главной копией документа).

Первое состояние является "текущим". Состояние версии является текущим, если локальная копия 232 идентична теневой копии 234. Например, когда файл, сохраненный в компьютере 220 пользователя, загружается в серверный компьютер 200 для совместной работы, локальная копия 232 является идентичной теневой копии 234. Аналогичным образом, при первом копировании файла из серверного компьютера 200 в компьютер 220 пользователя локальная копия идентична теневой копии 234. Как показано на диаграмме состояний из Фиг.3, при изменении локальной копии 232 таким образом, что она больше не является идентичной теневой копии 234, происходит переход из одного состояния в другое, а именно из "текущего" состояния 300 в "измененное" состояние 310. При передаче сведений об этом измененном состоянии в сервер или при отказе, в результате чего локальная копия 232 снова становится идентичной теневой копии 234, происходит возврат в "текущее" состояние 300.

В том случае, когда компьютер 220 пользователя подключен к серверному компьютеру 200 и замечает, что серверная копия 210 была обновлена, то осуществляется копирование новой серверной копии 210 в виде теневой копии 234. Локальная копия 232 сохраняется как копия 238, обеспечивающая возврат в предыдущее состояние, а затем теневая копия 234 копируется в виде локальной копии 232. В одном из вариантов осуществления изобретения отслеживается последняя копия, просмотренная пользователем. Таким образом, если пользователь просмотрел версию A, а из сервера загружена версия B, то копией, обеспечивающей возврат в предыдущее состояние, будет являться копия версии A. Но в том случае, если теперь из сервера загружена версия C, то копия, обеспечивающая возврат в предыдущее состояние, не будет заменена версией B до тех пор, пока пользователем не будет осуществлен доступ к версии B. Следовательно, в качестве копии, обеспечивающей возврат в предыдущее состояние, сохраняется последняя версия, просмотренная пользователем.

Как видно из Фиг.3, если из сервера загружен измененный вариант файла в качестве теневого файла и запомнена копия, обеспечивающая возврат в предыдущее состояние, а состоянием является "текущее" состояние 300, то новым состоянием будет являться состояние 320 "возможен возврат в предыдущее состояние". Однако, если это происходит в "измененном" состоянии 310, то имели место два изменения: локальные изменения предыдущей версии серверной копии, которые сохранены в локальной копии 232, и некоторые другие изменения (сделанные другими пользователями), в результате которых была создана новая версия серверной копии 210. Это приводит к состоянию 330 "конфликтная ситуация".

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

ЗАГРУЗКА СВЕДЕНИЙ ОБ ИЗМЕНЕНИЯХ В СЕРВЕР

В каждом из состояний версии для пользователя доступны различные варианты синхронизации. Доступ к этим вариантам может быть осуществлен отдельно из управляющей программы 230 дублирования файлов, или же они могут быть встроены в прикладную программу 240. Если были сделаны изменения, то одним из вариантов является загрузка (или "проталкивание") сведений об изменениях в серверную копию 210. Этот вариант синхронизации позволяет пользователю устанавливать соединение компьютера 200 с сервером (если такое соединение возможно) и осуществлять синхронизацию локальной копии 232 с серверной копией 210.

Если состояние версии является "текущим" состоянием 300 или состоянием 320 "возможен возврат в предыдущее состояние", то это означает, что не было сделано никаких изменений, и, следовательно, файл не передается в сервер. Если же состояние версии является "измененным" состоянием 310, то определяются различия между локальной копией 232 и теневой копией 234. Этот процесс известен как "генерация разности" (то есть сведений о различиях) двух файлов. Если состоянием версии является "измененное" состояние 310, то теневая копия 234 является идентичной серверной копии 210 (в противном случае состоянием версии являлось бы состояние 330 "конфликтная ситуация"). Следовательно, в сервер не обязательно следует загружать весь файл, поскольку вся необходимая информация имеется в файле, содержащем всю информацию о различии между локальной копией 232 и теневой копией 234. Серверный компьютер 200 использует этот файл различий для обновления серверной копии 210. После обновления серверной копии 210 необходимо выполнить ее копирование в виде теневой копии 234 и надлежащим образом изменить состояние версии.

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

Если же состояние версии является состоянием 330 "конфликтная ситуация", то должен быть активизирован интерфейс пользователя, предназначенный для разрешения конфликтных ситуаций. Этот интерфейс пользователя, предназначенный для разрешения конфликтных ситуаций, должен предоставить пользователю возможность принятия решения в отношении различий между локальной копией 232 и теневой копией 234, например, путем сохранения локальной копии 232 в каком-либо ином месте на компьютере 220 пользователя и копирования теневой копии 234 в качестве новой локальной копии 232. Интерфейс пользователя может также представлять собой более сложный интерфейс, описанный в вышеупомянутой родственной заявке на изобретение.

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

ВЕРСИЯ, ОБЕСПЕЧИВАЮЩАЯ ВОЗМОЖНОСТЬ ВОЗВРАТА В ПРЕДЫДУЩЕЕ СОСТОЯНИЕ

Другим возможным вариантом действий для пользователя является тот, в котором состоянием версии является состояние 320 "возможен возврат в предыдущее состояние" или "измененное" состояние 310. В этом случае пользователю предоставляют доступ к интерфейсу пользователя, который позволяет ему осуществить возврат к ранее просмотренной или отредактированной пользователем версии документа, которая запомнена в виде копии 238, обеспечивающей возврат в предыдущее состояние.

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

Копия, обеспечивающая возврат в предыдущее состояние, используется только в некоторых вариантах осуществления изобретения. Как показано на Фиг.4, дублирование серверного файла в компьютере пользователя выполняется, соответственно, при сохранении локальной копии (этап 400) и при сохранении теневой копии (этап 410). Разрешается доступ к локальной копии для ее видоизменения (этап 420). В некоторых вариантах осуществления настоящего изобретения это осуществляется посредством копии локальной копии в пространстве имен. Если компьютер пользователя подключен к серверному компьютеру и произошли изменения в главном файле, то обновляется теневая копия (этап 430). В одном из вариантов осуществления изобретения при дублировании отслеживаются состояния версий.

При сохранении копии, обеспечивающей возврат в предыдущее состояние, как показано на Фиг.5, дублирование серверного файла в компьютере пользователя, как и в предыдущем варианте, выполняется, соответственно, при сохранении локальной копии (этап 500) и при сохранении теневой копии (этап 510). Разрешен доступ к локальной копии для ее видоизменения (этап 520). Если компьютер пользователя подключен к серверному компьютеру и произошли изменения в главном файле, то осуществляется обновление теневой копии (этап 530). На этом этапе, при обновлении теневой копии, также при необходимости, обновляется копия, обеспечивающая возврат в предыдущее состояние. Сначала локальная копия сохраняется в виде копии, обеспечивающей возврат в предыдущее состояние, а затем обновляется локальная копия с использованием теневой копии. В одном из вариантов осуществления настоящего изобретения это выполняется только, если после предыдущей операции возврата в предыдущее состояние осуществляется доступ к локальной копии.

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

название год авторы номер документа
СПОСОБ ЗАДЕРЖКИ БЛОКИРОВКИ ФАЙЛОВ СЕРВЕРА ПРИ РЕДАКТИРОВАНИИ 2004
  • Эдельштайн Ноа
  • Лиу Хай
  • Салиба Хани
RU2344476C2
ОПТИМИЗАЦИЯ РЕПЛИКАЦИИ ФАЙЛОВ С ИСПОЛЬЗОВАНИЕМ ДВОИЧНЫХ СРАВНЕНИЙ 2004
  • Лю Хай
  • Антонофф Лаурен Н.
RU2357280C2
СПОСОБ УПРАВЛЕНИЯ РЕПЛИКАЦИЕЙ ФАЙЛОВ В ПРИЛОЖЕНИЯХ 2004
  • Эдельштайн Ноа
  • Салиба Хани
  • Лиу Хай
  • Рэйсон Стивен Джэймс
RU2349952C2
ГРАНУЛЯРНОЕ УПРАВЛЕНИЕ ПОЛНОМОЧИЯМИ ДУБЛИРУЕМОЙ ИНФОРМАЦИИ ПРИ ПОМОЩИ ОГРАНИЧЕНИЯ И СНЯТИЯ ОГРАНИЧЕНИЯ 2004
  • Теодосиу Дэн
  • Бьорнер Николай С.
RU2372649C2
АВТОМАТИЧЕСКОЕ ОБНАРУЖЕНИЕ УЯЗВИМЫХ ФАЙЛОВ И УСТАНОВКА ЗАПЛАТОК НА НИХ 2004
  • Иванов Олег
  • Иванов Сергей
RU2358313C2
КОМПЬЮТЕРНАЯ ДУБЛИРУЮЩАЯ СИСТЕМА, ДЕЙСТВУЮЩАЯ С ОТКРЫТЫМИ ФАЙЛАМИ 1996
  • Питер Брайан Мэлкольм
RU2155373C2
СПОСОБ РАСШИРЕНИЯ, ОСНОВАННЫЙ НА СЕРВЕРЕ АРХИТЕКТУРЫ ДЕСКТОПНОЙ ВИРТУАЛЬНОЙ МАШИНЫ НА КЛИЕНТСКИЕ МАШИНЫ, И МАШИНОЧИТАЕМАЯ СРЕДА 2009
  • Хэлперин Ярон
  • Чэмчэм Джад
  • Лерой Кристиан М.
  • Чеонг Джералд И. Л.
  • Экклестон Мэтью
  • Фенг Джи
RU2432605C1
СИСТЕМЫ И СПОСОБЫ ДЛЯ ОБЕСПЕЧЕНИЯ УСЛУГ СИНХРОНИЗАЦИИ ДЛЯ БЛОКОВ ИНФОРМАЦИИ, УПРАВЛЯЕМЫХ АППАРАТНОЙ/ПРОГРАММНОЙ ИНТЕРФЕЙСНОЙ СИСТЕМОЙ 2004
  • Шах Ашиш
  • Шах Даршаткумар А.
  • Худис Ирена
  • Новик Лев
  • Джхавери Вивек Джавахир
  • Ву Винни К.
  • Дим Майкл Э.
  • Шеппард Эдвард Дж.
  • Фанг Лицзян
  • Ли Цзянь
  • Тэйлор Майкл Б.
RU2377646C2
СПОСОБЫ ДЛЯ АДАПТИРОВАНИЯ ИНТЕРПРЕТИРУЮЩЕГО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ ДЛЯ МНОЖЕСТВЕННЫХ КЛИЕНТОВ 2012
  • Рудольф Кристофер
  • Хаммонд Майкл
  • Андерсон Роберт
  • Ниссен Эрик
  • Нанненга Джон
  • Ингаллс Эндрю
RU2608472C2
СИСТЕМА И СПОСОБ ДЛЯ ОБНОВЛЕНИЯ ФАЙЛОВ С ИСПОЛЬЗОВАНИЕМ КОРРЕКТИРОВАНИЯ СЖАТЫМИ ИЗМЕНЕНИЯМИ 2004
  • Макгуаир Томас Д.
  • Мензис Дерек П.
  • Слайджер Майкл В.
  • Ченг Дерек
  • Мохаммед Мазхар
  • Уилльямс Петер
  • Хендерсон Гари
RU2367005C2

Иллюстрации к изобретению RU 2 344 468 C2

Реферат патента 2009 года СПОСОБ УПРАВЛЕНИЯ МНОЖЕСТВОМ СОСТОЯНИЙ ФАЙЛА ДЛЯ ДУБЛИРОВАННЫХ ФАЙЛОВ

Изобретение относится к области обработки файлов, в частности раскрывает сервер с видоизмененной операцией открытия файла. Технический результат, заключающийся в обеспечении усовершенствованного разрешения конфликтных ситуаций для пользователя, достигается за счет использования трех копий дублируемого файла. Открытие файла пользователем с использованием видоизмененной операцией открытия обеспечивает первоначальное открытие файла без захвата файла. Когда пользователь указывает (явно или неявно), что он предпринимает попытку или намеревается открыть файл, то в этом случае может быть осуществлен захват файла для его редактирования. Таким образом, когда пользователь выдает запрос на получение файла, то заданным по умолчанию действием является такое открытие файла, при котором доступ к этому файлу для других пользователей не запрещен. Затем, если пользователь указывает, что он намеревается выполнить редактирование, то осуществляют захват этого файла. 3 н. и 22 з.п. ф-лы, 5 ил.

Формула изобретения RU 2 344 468 C2

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

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

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

предоставление возможности доступа к локальной копии для видоизменения;

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

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

сохранение состояния версии, ассоциированного с упомянутым копированием,

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

4. Способ по п.1, в котором этап обновления теневой копии, когда главный

файл изменяется, включает в себя

обнаружение, что локальная копия была изменена, и

разрешение конфликтов ситуации между локальной копией и обновленной теневой копией.

5. Способ по п.4, дополнительно содержащий

сохранение состояния версии, ассоциированного с дублированием,

причем этап разрешения конфликтов между локальной копией и

обновленной теневой копией включает в себя изменение состояния версии

на конфликтное состояние, указывающее на наличие конфликта.

6. Способ по п.4, в котором этап разрешения конфликтов между локальной

копией и обновленной теневой копией включает в себя

предоставление интерфейса конфликтов,

получение команды разрешения конфликта и

реализацию команды разрешения конфликта.

7. Способ по п.6, в котором реализация команды разрешения конфликта включает в себя

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

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

генерацию информации о различиях между локальной копией и главным файлом и

передачу информации о различиях в главный файл.

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

обновление локальной копии посредством теневой копии.

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

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

12. Способ по п.9, дополнительно содержащий

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

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

запоминающее устройство теневой копии для хранения теневой копии главного файла;

модуль изменения локальной копии для предоставления возможности доступа к локальной копии для изменения;

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

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

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

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

17. Система по п.14, в которой модуль обновления теневой копии содержит модуль обнаружения изменения локальной копии для обнаружения, что локальная копия была изменена, и

модуль разрешения конфликтов для разрешения конфликтов между локальной копией и обновленной теневой копией.

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

причем модуль разрешения конфликтов изменяет состояние версии на конфликтное состояние, указывающее на наличие конфликта.

19. Система по п.17, в которой модуль разрешения конфликтов содержит модуль интерфейса конфликтов для предоставления интерфейса конфликтов,

модуль ввода разрешения конфликта для приема команды разрешения конфликта и

средство реализации разрешения конфликта для реализации команды разрешения конфликта.

20. Система по п.19, в которой средство реализации разрешения конфликта содержит

модуль определения изменения для определения, следует ли выполнить изменение главного файла, и

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

21. Система по п.20, в которой модуль передачи изменения на первый компьютер содержит

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

22. Система по п.14, в которой модуль обновления теневой копии содержит

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

модуль обновления локальной копии для обновления локальной копии посредством теневой копии.

23. Система по п.22, в которой модуль обновления локальной копии содержит

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

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

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

причем запоминающее устройство восстановления предыдущего состояния изменяет состояние версии на состояние доступности восстановления предыдущего состояния.

25. Система по п.22, в которой, по меньшей мере, подмножество из множества других компьютеров дополнительно содержит модуль отслеживания доступа к локальной копии для отслеживания, осуществлялся ли доступ к локальной копии,

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

Документы, цитированные в отчете о поиске Патент 2009 года RU2344468C2

US 20020049718 A1, 25.04.2002
Устройство для испытания замкнутых объемов на герметичность 1962
  • Рассохин А.А.
SU152116A1
US 2003005244, 02.02.2003
СПОСОБ ОБРАЩЕНИЯ К ДАННЫМ, ХРАНИМЫМ В КОМПЬЮТЕРНОЙ СИСТЕМЕ, СПОСОБ АРХИВИРОВАНИЯ ДАННЫХ И КОМПЬЮТЕРНАЯ СИСТЕМА ДЛЯ ОСУЩЕСТВЛЕНИЯ СПОСОБОВ 1995
  • Малькольм Питер Брайен
RU2182360C2

RU 2 344 468 C2

Авторы

Эдельштайн Ноа

Антонофф Лорен

Салиба Хани

Лиу Хай

Рэйсон Стивен Джэймс

Даты

2009-01-20Публикация

2004-02-27Подача