Разрешение конфликтов
Иллюстрации
Показать всеИзобретение относится к области совместного редактирования документов. Техническим результатом является обеспечение возможности разрешения конфликтов редактирования, возникающих при синхронизации пользовательской копии файла данных с основной копией файла данных. Обновления контента могут синхронизироваться отдельно от обновлений метаданных. Обновления метаданных могут синхронизироваться автоматически, тогда как обновления контента могут синхронизироваться, только когда все идентифицированные конфликты редактирования разрешены. Когда конфликт редактирования идентифицирован, пользовательский интерфейс приложения авторинга может быть выполнен с возможностью переключения между отображением и сокрытием идентифицированных конфликтов редактирования. 3 н. и 17 з.п. ф-лы, 30 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
Традиционное совместное редактирование имеет тенденцию выполняться последовательно. Пользователи меняются, обращаясь к документу, редактируют документ и сохраняют результаты своего редактирования. Чтобы запретить конфликты редактирования, пользователь, получающий доступ, может установить блокировку на файл, чтобы запретить другим пользователям редактирование документа, когда пользователь, получающий доступ, редактирует документ. Итерационный процесс редактирования может вызывать задержки, так как каждый пользователь может ждать своей очереди на редактирование документа. Кроме того, итерационный процесс редактирования может быть труден для управления. Например, каждому пользователю, возможно, необходимо следить, кто какие части документа редактирует, какая версия документа является самой последней и когда наступит очередь следующего пользователя.
В других типах традиционного совместного редактирования каждый пользователь может редактировать свою копию документа. В дальнейшем все отредактированные копии могут объединяться в единый документ. Такое крупномасштабное объединение также может вызвать задержки, привести к многочисленным конфликтам редактирования и/или быть трудным для управления. Например, от пользователя, ответственного за объединение документов, может потребоваться следить за взаимодействием между документами. Пользователь также может нести ответственность за решение конфликтов между двумя или более отредактированными копиями.
Именно по этим и другим соображениям было сделано настоящее раскрытие.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Этот раздел описания сущности изобретения обеспечивается, чтобы в упрощенной форме представить выбор концепций, которые дополнительно описаны ниже в разделе "Подробное описание". Этот раздел описания сущности изобретения не предназначен для идентификации ключевых признаков или существенных признаков заявленного существа предмета, и также не предназначен быть помощью при определении объема заявленного существа предмета.
Варианты осуществления в настоящем раскрытии, в целом, направлены на то, чтобы дать возможность пользователю разрешать конфликты редактирования, возникающие при синхронизации файла данных в совместной среде. Каждый пользователь, создающий пользовательскую копию файла данных, может разрешать конфликты редактирования между основным файлом данных и пользовательской копией. Обновления, берущиеся из пользовательской копии файла данных, могут вноситься в основную копию после разрешения конфликтов редактирования.
В соответствии с аспектами раскрытия, применение авторинга дает возможность пользователю выборочно показывать и скрывать конфликты редактирования в пределах пользовательской копии файла данных. Применение авторинга позволяет свободное редактирование пользовательской копии, независимо от того, показаны или скрыты конфликты редактирования. Согласно другим аспектам, применение авторинга обеспечивает контекстный интерфейс пользователя, дающий возможность пользователю разрешать отображаемые конфликты редактирования.
В некоторых вариантах осуществления показ конфликтов редактирования содержит комментарии к контенту конфликта. В одном варианте осуществления комментарий к контенту конфликта указывает, как конфликтует контент. В другом варианте осуществления комментируется только конфликтующий контент, который вставлен, исправлен и/или удален в пределах пользовательской копии.
Эти и другие признаки и преимущества будут очевидны из чтения последующего подробного описания и рассмотрения сопроводительных чертежей. Следует понимать, что как предшествующее общее описание, так и последующее подробное описание являются только лишь пояснительными и не ограничивают аспекты, как они заявлены в формуле изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - пример системы авторинга, имеющей признаки, являющиеся примерами аспектов раскрытия изобретения;
Фиг.2 - блок-схема примера системы авторинга, содержащей запоминающее устройство, в котором хранится основная копия файла данных, средствами связи соединенное с устройством пользователя, в котором хранится пользовательская копия файла данных, соответствующая принципам раскрытия;
Фиг.3 - блок-схема последовательности выполнения операций в примере процесса авторинга, посредством которого пользовательская копия файла данных может быть создана в соответствии с принципами раскрытия;
Фиг.4 - блок-схема вычислительной системы пользователя, выполненной с возможностью осуществления среды авторинга в соответствии с принципами раскрытия;
Фиг.5 - блок-схема последовательности выполнения операций в примере процесса синхронизации, посредством которого операция синхронизации, показанная на фиг.3, может осуществляться в соответствии с принципами раскрытия;
Фиг.6 - блок-схема последовательности выполнения операций в примере процесса редактирования, посредством которого операция продолжения, показанная на фиг.5, может осуществляться в соответствии с принципами раскрытия;
Фиг.7 - блок-схема последовательности выполнения операций для примера процесса просмотра, при котором один или более конфликтов редактирования могут просматриваться и по желанию разрешаться в соответствии с принципами раскрытия;
Фиг.8 - пример интерфейса пользователя, отображаемого для пользователя, когда никакие неразрешенные конфликты редактирования не были идентифицированы в соответствии с принципами раскрытия;
Фиг.9 - пример интерфейса пользователя, отображаемого для пользователя, когда был идентифицирован, по меньшей мере, один конфликт редактирования в соответствии с принципами раскрытия;
Фиг.10 - пример интерфейса пользователя, отображаемого для пользователя, когда был идентифицирован, по меньшей мере, один конфликт редактирования и пользователь решил просмотреть идентифицированный конфликт редактирования в соответствии с принципами раскрытия;
Фиг.11 - схема интерфейса пользователя, содержащая интерфейс разрешения конфликтов, отображаемый, когда конфликт редактирования выбирается из перечня в итоговом окне в соответствии с принципами существующего раскрытия;
Фиг.12 - блок-схема последовательности выполнения операций для примера процесса осуществления, посредством которого приложение авторинга осуществляет команды разрешения конфликтов, обеспечиваемые пользователем в соответствии с принципами раскрытия;
Фиг.13 - блок-схема последовательности выполнения операций для примера процесса принятия, посредством которого принятая операция редактирования может быть введена в объединенную версию файла данных в соответствии с принципами раскрытия;
Фиг.14 - блок-схема последовательности выполнения операций для примера процесса отклонения, посредством которого отклоненная операция редактирования может быть удалена или уничтожена внутри объединенной версии файла данных в соответствии с принципами раскрытия;
Фиг.15-22 - изменения в примере интерфейса пользователя, отображаемого приложением авторинга по мере того, как первый пользователь редактирует пользовательскую копию файла данных в сетевом режиме в соответствии с принципами раскрытия; и
Фиг.23-29 - изменения в примере интерфейса пользователя, отображаемого приложением авторинга по мере того, как первый пользователь редактирует пользовательскую копию файла данных в автономном режиме в соответствии с принципами раскрытия.
ПОДРОБНОЕ ОПИСАНИЕ
В последующем подробном описании делаются ссылки на сопроводительные чертежи, являющиеся его частью, и на которых посредством иллюстраций показаны конкретные варианты осуществления или примеры. Хотя раскрытие будет описано в общем контексте программных модулей, которые выполняются вместе с программой приложения, выполняемой на операционной системе в вычислительной системе, специалисты в данной области техники должны признать, что раскрытие также может быть осуществлено в комбинации с другими программными модулями. Описанные здесь варианты осуществления могут объединяться и другие варианты осуществления могут быть использованы, не отступая от сущности или объема настоящего раскрытия. Последующее подробное описание не должно поэтому рассматриваться в ограничительном смысле и объем изобретения определяется пунктами приложенной формулой изобретения и их эквивалентами.
В соответствии с принципами настоящего раскрытия, приложение для совместного авторинга обеспечивает среду авторинга, в которой один или более пользователей могут редактировать один или более файлов данных (например, обрабатывать текстовые документы, документы презентации, документы в виде электронных таблиц, рисунки или другие изображения, звуковые файлы, прикладные программы программного обеспечения, рабочую программу и т.д.) посредством операций редактирования (например, вставка, редактирование и/или удаление контента и/или метаданных). Каждый пользователь получает пользовательскую копию файла данных, основанную на версии файла данных, представленной основным файлом. Пользователь может редактировать пользовательскую копию файла данных, чтобы создать новую версию файла данных и периодически синхронизировать новую версию с основной копией.
Синхронизация, как используемый здесь термин, относится к посылке и/или получению одного или более обновлений версии между основным файлом данных и пользовательской копией файла данных, чтобы создать общую версию файла данных. Например, каждый пользователь периодически может посылать в основную копию обновление версии, представляющее новую версию файла данных, и периодически может принимать от основной копии обновление версии, представляющее текущую версию основной копии (например, которое может отражать редактирования, выполненные другими пользователями).
Как кратко описано выше, варианты осуществления настоящего раскрытия направлены на то, чтобы позволить пользователю решать возникающие конфликты редактирования при синхронизации файла данных в совместной среде. В целом, конфликты редактирования могут возникать, когда основная копия файла данных изменяется (например, операции редактирования выполняются на основной копии) между тем моментом, когда пользовательская копия получена, и тем моментом, когда пользовательская копия синхронизируется с основной копией, или между синхронизациями. Такие изменения в основной копии будут упоминаться здесь как "промежуточные изменения".
Операция редактирования, выполненная на пользовательской копии файла данных, приводит, в результате, к конфликту редактирования, как используется здесь этот термин, когда операция редактирования сталкивается с промежуточным изменением, сделанным в основной копии (или наоборот). Например, если пользователь выполняет операцию редактирования на пользовательской копии файла данных, чтобы внести исправления в первый блок данных, который был удален в основной копии файла данных посредством промежуточного изменения, то тогда операция редактирования, приводящая к исправлению первого блока данных, может конфликтовать с операцией редактирования, приводя к удалению первого блока данных в основной копии.
Теперь со ссылкой на чертежи, на фиг.1 показан пример системы 100 авторинга, обладающей признаками, являющимися примерами аспектов изобретения в раскрытии. Система 100 авторинга содержит запоминающее устройство 120, в котором хранится основная копия 150 файла данных (например, текстовые документы, документы презентации, документы в виде электронной таблицы, картинки или другие изображения, звуковые файлы, программные приложения, рабочая программа и т.д.). В одном варианте осуществления запоминающее устройство 120 может содержать одно или более запоминающих устройств (например, сеть запоминающих устройств). В другом варианте осуществления запоминающее устройство 120 может содержать одно или более вычислительных устройств.
Система 100 авторинга также содержит, по меньшей мере, одно вычислительное устройство 110 пользователя, которое может средствами связи соединяться с запоминающим устройством 120. Как термин, используемый здесь, вычислительное устройство 110 пользователя содержит любое устройство, выполненное с возможностью получения от основной копии 150 файла данных и авторинга пользовательской копии 155 файла данных. Как термин, используемый здесь, авторинг файла данных может содержать создание файла данных и/или редактирование файла данных посредством операций редактирования. Каждое из вычислительных устройств 110 пользователя может выполнять авторинг файла данных, создавая пользовательскую копию 155 из файла данных, основанного на основной копии 150. Устройство 110 пользователя может редактировать пользовательскую копию 155, когда устройство 110 пользователя средствами связи соединено с запоминающим устройством 120 (то есть работает в сети) или когда устройство 110 пользователя отключено от запоминающего устройства 120 (то есть работает автономно).
Пользовательская копия 155 файла данных может синхронизироваться, когда вычислительное устройство 110 пользователя средствами связи подключается к запоминающему устройству 120 (то есть является сетевым) и периодически посылает в запоминающее устройство 120 одно или более обновлений, которые будут вводиться в основную копию 150 и, таким образом, будут использоваться совместно с другими вычислительными устройствами 110 пользователей. Синхронизация пользовательской копии 155 также содержит периодически получаемые от запоминающего устройства 120 обновления основной копии 150, берущие начало от вычислительных устройств 110 других пользователей. Когда вычислительное устройство 110 пользователя является автономным, вычислительное устройство 110 пользователя не синхронизируется с запоминающим устройством 120 и, следовательно, с вычислительными устройствами 110 других пользователей.
Дополнительные подробности, касающиеся синхронизации пользовательской копии файла данных с основной копией, можно найти в совместно рассматриваемой заявке №11/938082, зарегистрированной 9 ноября 2007 г. и озаглавленной "Collaborative Authoring", раскрытие которой настоящим содержится здесь во всей ее полноте. Дополнительные подробности, касающиеся синхронизации, когда вычислительное устройство 110 пользователя находится в автономном режиме, можно найти в совместно рассматриваемой заявке №11/957010, зарегистрированной 14 декабря 2007 г. и озаглавленной "Collaborative Authoring Modes", раскрытие которой настоящим содержится здесь во всей ее полноте.
В примере, показанном на фиг.1, четыре вычислительных устройства пользователей, HOA, HOB, HOC и HOD, средствами связи подключены к запоминающему устройству 120. В других вариантах осуществления, однако, к запоминающему устройству 120 может быть подключено любое количество вычислительных устройств 110 пользователей. В показанном примере вычислительное устройство 110 каждого пользователя, 110A, 110В, 110C, 110D, может посылать в запоминающее устройство 120 обновления, созданные пользователем вычислительного устройства 110, и может запрашивать у запоминающего устройства 120 обновления, созданные пользователями других вычислительных устройств 110.
Вычислительные устройства 110 пользователей 110A, 110В, 110C, 110D могут быть устройствами, отличными от запоминающего устройства 120, или могут содержать различные учетные записи пользователей, осуществленные на запоминающем устройстве 120. В одном варианте осуществления устройство, действующее как запоминающее устройство 120 для одного файла данных, может действовать как вычислительное устройство 110 пользователя для другого файла данных, и наоборот. В одном варианте осуществления запоминающее устройство 120 может быть вычислительным устройством 110 сервера, а вычислительные устройства 110A, 110В, 110C, 110D пользователей могут быть вычислительными устройствами клиентов.
В соответствии с аспектами раскрытия, обновления файла данных содержат обновления контента и/или обновления метаданных. Как этот термин используется здесь, обновления контента относятся к любой операции редактирования, сделанной в независимом контенте файла данных. Например, обновления контента для обрабатываемого текстового документа могут содержать добавленные параграфы (или их разделы), удаленные параграфы (или их разделы), исправленные параграфы (или их разделы) и добавления, удаления и/или изменения в таблицах, диаграммах, изображениях или других таких объектах. В другом варианте осуществления обновления контента для документа презентации могут содержать добавленные, удаленные и/или исправленные изображения, текст, анимации, звуки и другие подобные объекты данных.
Как этот термин используется здесь, обновления метаданных относятся к любой операции редактирования, выполняемой в метаданных файла данных. Примеры метаданных, не ограничивающиеся только этим, содержат блокировки контента, информацию о присутствии и другие подобные данные. Информация о присутствии указывает, какие пользователи сообщили о намерении редактировать документ. Блокировки контента запрещают редактирование любого контента в пределах блокировки для тех пользователей, которые не владеют блокировкой. Например, блокировки контента могут запрещать конфликты редактирования, указывая, какие части документа или другого файла данных были затребованы другим пользователем. В некоторых вариантах осуществления блокировки контента могут предотвращать (то есть ограничивать) редактирование пользователем части документа, которая затребована другим пользователем. В других вариантах осуществления, однако, пользователь может решить нарушить блокировку контента и редактировать часть файла данных. В таких случаях применение авторинга может предупредить пользователя, что при редактировании блокированной части могут возникнуть конфликты.
Как показано на фиг.2, контент 152 и метаданные 154 файла данных могут быть сохранены в памяти 125 запоминающего устройства 120. В некоторых вариантах осуществления метаданные 154 файла данных могут быть сохранены отдельно от контента 152. Например, контент 152 может быть сохранен в файле 150 данных и метаданные 154 могут быть сохранены в таблице (не показана) отдельно от файла 150 данных. В других вариантах осуществления, однако, метаданные 154 могут быть сохранены внутри файла 150 данных. Контент 152' и метаданные 154' пользовательской копии 155 файла данных могут быть сохранены в кэше (смотрите кэш 426 на фиг.4) на вычислительном устройстве 110 пользователя. Одно или более приложений 130 авторинга на вычислительном устройстве 110 пользователя обрабатывают и манипулируют контентом 152' и/или метаданными 154' пользовательской копии 155 файла данных.
В целом, вычислительные устройства 110 пользователя могут синхронизировать обновления контента отдельно от обновлений метаданных. В некоторых вариантах осуществления обновления метаданных синхронизируются автоматически между запоминающим устройством 120 и вычислительными устройствами 110 пользователей, тогда как обновления контента от вычислительного устройства 110 каждого пользователя синхронизируются по запросу соответствующего пользователя. В одном варианте осуществления среда 100 авторинга может синхронизировать обновления контента, только когда конфликты редактирования не существуют (или они были разрешены), но может синхронизировать обновления метаданных независимо от существующих конфликтов редактирования.
В одном варианте осуществления конфликт редактирования может вытекать из обновления контента, полученного от основной копии. В таком варианте осуществления изменения в контенте 152' и/или метаданных 154' пользовательской копии 155 наталкиваются на промежуточные изменения в контенте 152 основной копии 150. Такие конфликты редактирования упомянуты здесь как конфликты слияния. Например, в одном варианте осуществления, один и тот же блок данных, возможно, в промежутке между синхронизациями был отредактирован по-разному в пользовательской копии и в основной копии файла данных. В другом варианте осуществления блок данных, возможно, был отредактирован в основной копии 150 до того, как блокировка контента, полученная для блока данных в пользовательской копии 155, была синхронизирована с основной копией 150.
В другом варианте осуществления конфликт редактирования может вытекать из обновления метаданных, принятого от основной копии 150. В таком варианте осуществления изменения в контенте 152' и/или метаданных 154' пользовательской копии 155 сталкиваются с промежуточными изменениями в метаданных 154 основной копии 150 (например, добавление блокировок контента). Такие конфликты редактирования упоминаются здесь как конфликты неслияния. Например, устройство 110 пользователя может принять обновление метаданных от основной копии 150 файла данных, указывающее, что контент, исправленный в пользовательской копии 155, уже был блокирован другим пользователем.
В одном варианте осуществления изменения в метаданных 154' пользовательской копии 155 файла данных, которые сталкиваются с промежуточными изменениями в основной копии 150, отменяются промежуточными изменениями в основной копии 150. Например, если запоминающее устройство 120 принимает обновление метаданных от устройства HOA первого пользователя (фиг.1), запрашивающего блокировку контента на первом блоке данных файла данных, и определяет, что соответствующий первый блок данных основной копии 150 уже блокирован в устройстве HOB второго пользователя (фиг.1), то тогда запоминающее устройство 120 будет отклонять запрос блокировки устройства 110А первого пользователя.
На фиг.3 представлена блок-схема последовательности выполнения операций для примера процесса 300 авторинга, посредством которого применение авторинга может создавать пользовательскую копию файла данных, такую как пользовательская копия 155, показанная на фиг.2. Процесс 300 авторинга инициируется и начинается в модуле 302 запуска и переходит к операции 304 авторинга. В целом, операция 304 авторинга редактирует пользовательскую копию файла данных. В одном варианте осуществления операция 304 авторинга получает пользовательскую копию файла данных, основанную на основной копии существующего файла данных (например, от запоминающего устройства). В другом варианте осуществления операция 304 авторинга создает и редактирует новый файл данных, создает основную копию файла данных (например, периодически или когда редактирование закончено) и сохраняет основную копию файла данных (например, на запоминающем устройстве).
Операция 306 приема при применении приложения авторинга получает обновления, указывающие промежуточные изменения, сделанные в основной копии файла данных. Например, в одном варианте осуществления, операция 306 приема получает обновление контента, указывающее любые промежуточные изменения, сделанные в контенте основной копии одним или более другими пользователями, проводящими авторинг файла данных. В другом варианте осуществления операция 306 приема получает обновление метаданных, указывающее любые промежуточные изменения, сделанные в метаданных основной копии одним или более другими пользователями, проводящими авторинг файла данных. В другом варианте осуществления операция 306 приема получает как обновления контента, так и обновления метаданных.
[0045] В одном варианте осуществления операция 306 приема принимает обновления от основной копии с заданными интервалами. В другом варианте осуществления операция 306 приема принимает обновление от основной копии, когда на основной копии был выполнен пороговый объем редактирования. В другом варианте осуществления операция 306 приема принимает обновление от основной копии в ответ на запрос обновления. Например, операция 306 приема может запрашивать обновление у основной копии, чтобы обновить файл данных перед сохранением файла данных. В таком варианте осуществления операция 306 приема запрашивает у основной копии обновление, когда от пользователя принимаются команды синхронизировать файл данных.
Операция 308 обновления вводит промежуточные изменения в пользовательскую копию документа (например, посредством слияния промежуточных изменений в пользовательской копии документа). В одном варианте осуществления операция 308 обновления вводит промежуточные изменения в метаданные, способом, отличном от промежуточных изменений контента. В одном варианте осуществления операция 308 обновления может вводить обновления контента и обновления метаданных автоматически. В другом варианте осуществления операция 308 обновления может вводить обновления метаданных автоматически и может вводить обновления контента по запросу пользователя. Например, операция 308 обновления может предоставить пользователю кнопку или другой интерфейсный инструмент, указывающий на доступность обновлений, которые могут быть введены посредством включения кнопки или другого интерфейсного инструмента.
Операция 308 обновления также может определить, существуют ли какие-либо конфликты редактирования. В некоторых вариантах осуществления операция 308 обновления может вводить промежуточные изменения, по-разному зависящие от того, идентифицированы ли конфликты редактирования. Например, в одном варианте осуществления, операция 308 обновления может запретить проведение обновлений контента, если идентифицированы конфликты редактирования, но может продолжить проведение обновления метаданных автоматически, несмотря на существование конфликтов редактирования. Предпочтительно, синхронизация обновлений метаданных, несмотря на существование конфликтов редактирования, может смягчить возникновение дальнейших конфликтов редактирования. Например, синхронизация блокировки данных может запретить параллельное редактирование одного и того же блока данных разными пользователями.
Операция 310 синхронизации пытается синхронизировать пользовательскую копию с основной копией, направляя в основную копию обновления, указывающие изменения, сделанные в пользовательской копии файла данных. В одном варианте осуществления операция 310 синхронизации направляет обновления для распределения другим пользователям, совместно проводящим авторинг файла данных. Операция 310 синхронизации сохраняет пользовательскую копию как основную копию (то есть перезаписывает основную копию), только если не идентифицированы никакие конфликты редактирования между пользовательской копией и основной копией. В одном варианте осуществления операция 310 синхронизации получает самую последнюю версию основной копии и определяет, существуют ли конфликты редактирования между пользовательской копией и новой версией основной копии.
В соответствии с аспектами раскрытия, операция 310 синхронизации может позволить пользователю инициировать разрешение конфликтов редактирования по усмотрению пользователя в любое время после того, как конфликт редактирования был идентифицирован. Операция 310 синхронизации может позволить пользователю продолжить свободно редактировать пользовательскую копию файла данных, даже если было определено наличие одного или более конфликтов редактирования. В одном варианте осуществления операция 310 синхронизации может продолжить редактирование пользовательской копии при наличии конфликтов редактирования, скрытых от пользователя. В другом варианте осуществления операция 310 синхронизации может продолжать редактирование пользовательской копии при наличии конфликтов редактирования, представляемых пользователю. Если редактирование пользовательской копии продолжается, несмотря на существование одного или более конфликтов редактирования, то обновления контента, указывающие изменения в пользовательской копии, могут быть сохранены локально, пока конфликты редактирования не будут разрешены, вместо того, чтобы отправлять их в основную копию для синхронизации, как будет обсуждаться здесь более подробно.
Операция 310 синхронизации может синхронизировать обновления метаданных по-другому, чем обновления контента. Например, в одном варианте осуществления, операция 310 синхронизации может направлять обновления контента, только если все конфликты редактирования были разрешены, и может направлять обновления метаданных независимо от того, были ли разрешены конфликты редактирования. Как отмечено выше, синхронизация обновлений метаданных, несмотря на существование конфликтов редактирования, может смягчить возникновение дальнейших конфликтов редактирования. Дополнительно, прекращение синхронизации обновлений контента при существовании конфликтов редактирования может запретить введение конфликтов редактирования в основную копию файла данных. Процесс 300 авторинга завершается и заканчивается в модуле 312 остановки.
[0051] В целом, среда авторинга, имеющая признаки, являющиеся примерами аспектов изобретения в соответствии с принципами раскрытия, может быть реализована на вычислительном устройстве пользователя (например, на персональном компьютере, серверном компьютере, ноутбуке, карманном компьютере PDA, смартфоне или на любом другом таком вычислительном устройстве 110 пользователя). Вариант осуществления, в частности, для вычислительной системы 400 пользователя, выполненный с возможностью осуществления среды авторинга и выполнения процессов авторинга, таких как процесс 300 авторинга, показанный на фиг.3, описан здесь со ссылкой на фиг.4.
На фиг.4 пример вычислительной системы 400 для осуществления принципов раскрытия содержит вычислительное устройство пользователя, такое как вычислительное устройство 410 пользователя. В базовой конфигурации вычислительное устройство 410 пользователя обычно содержит, по меньшей мере, один процессор 415 для выполнения приложений и программ, хранящихся в системной памяти 420. В зависимости от точной конфигурации и типа вычислительного устройства 910 пользователя, системная память 420 может содержать, в частности, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, компакт-диск CD-ROM, цифровые универсальные диски (DVD-диски) или другие оптические запоминающие устройства, магнитные кассеты, магнитную ленту, дисковое магнитное запоминающее устройство или другие магнитные запоминающие устройства или устройства, выполненные в соответствии с другими технологиями запоминающих устройств.
В системной памяти 420 обычно хранится операционная система 422, такая как операционная система WINDOWS® компании MICROSOFT CORPORATION, Редмонд, штат Вашингтон, пригодная для управления работой вычислительного устройства 410 пользователя. Системная память 420 также может содержать кэш 426 файла данных, в котором может храниться пользовательская копия 427 документа. Метаданные 429 файла данных также могут храниться в кэше 426 пользователя.
В системной памяти 420 может также храниться одно или более приложений программного обеспечения, таких как приложения 424 авторинга для создания и редактирования файлов данных. Одним из примеров, в частности, приложения 424 авторинга, пригодного для проведения авторинга документов в соответствии с принципами настоящего раскрытия, является программное обеспечение авторинга MICROSOFT® OFFICE WORD от компании MICROSOFT CORPORATION, Редмонд, штат Вашингтон. Другие примеры приложений авторинга, не ограничивающиеся только этим, содержат программное обеспечение POWERPOINT® для создания презентаций и программное обеспечение VISIO® создания чертежей и диаграмм, которые оба также предоставляются компанией MICROSOFT CORPORATION, Редмонд, штат Вашингтон.
Вычислительное устройство 410 пользователя также может иметь устройство(-а) 430 ввода данных, такое как клавиатура, мышь, перо, голосовое устройство ввода данных, сенсорное устройство ввода данных и т.д. для ввода и управления данными. Устройство(-а) 425 вывода, такое как экран дисплея, громкоговорители, принтер и т.д., также могут содержаться в составе устройства. Эти устройства 435 вывода известны в технике и нет необходимости обсуждать их здесь подробно.
Вычислительное устройство 410 пользователя также может содержать подключения 440 для связи, позволяющие устройству 410 осуществлять связь с вычислительными устройствами 410 других пользователей, например, с запоминающим устройством 120 на фиг.1, по сети в распределенной вычислительной среде (например, Интранет или Интернет). Для примера, в частности, среда 440 устройств связи содержит проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная, инфракрасная и другие беспроводные среды.
На фиг.5 представлена блок-схема последовательности выполнения операций для примера процесса 500 синхронизации, посредством которого может осуществляться операция 310 синхронизации, показанная на фиг.3. Процесс 500 синхронизации инициируется и начинается в модуле 502 запуска и переходит к операции 504 получения. Операция 504 получения заключается в получении обновления версии от основной копии. Например, в одном варианте осуществления, операция 504 получения может запросить обновление версии от основной копии. В другом варианте осуществления операция 504 получения может принимать периодические обновления версии от основной копии (например, с заданными интервалами).
Операция 506 идентификации определяет, существуют ли конфликты редактирования между текущей версией основной копии и пользовательской копией. Более конкретно, операция 506 идентификации определяет, сталкиваются ли друг с другом какие-либо промежуточные изменения в основной копии и какие-либо операции редактирования, выполненные на пользовательской копии с момента самой последней синхронизации (или с тех пор, как была получена пользовательская копия).
Операция 508 слияния объединяет пользовательскую копию и основную копию в объединенную версию файла данных и представляет объединенную версию пользователю. В одном варианте осуществления операция 508 слияния интегрирует промежуточные изменения в пользовательскую копию файла данных. В другом варианте осуществления операция 508 слияния интегрирует сделанные пользователем изменения в основную копию файла данных. В другом варианте осуществления операция 508 слияния интегрирует промежуточные изменения и сделанные пользователем изменения в самую последнюю синхронизированную версию основной копии (то есть версию основной копии, которая была получена и отредактирована пользователем).
Первый модуль 510 определения разбивает поток процесса 500 синхронизации, основываясь на том, были ли с помощью операции 506 идентификации идентифицированы какие-либо конфликты редактирования, и/или остались ли какие-либо конфликты редактирования из ранее полученных обновлений неразрешенными. Если первый модуль 510 определения решает, что, по меньшей мере, один конфликт редактирования был идентифицирован, то операция 512 предупреждения указывает пользователю на присутствие конфликта редактирования. Например, операция 512 предупреждения может представить пользователю сообщение, указывающее на существование одного или более конфликтов редактирования. В одном варианте осуществления операция 512 предупреждения может также указывать последствия неразрешенных идентифицированных конфликтов редактирования (например, неспособность полностью синхронизировать пользовательскую копию с основной копией, пока не будет разрешен конфликт редактирования).
Второй модуль 514 определения дает возможность пользователю выбрать, когда просматривать и разрешать идентифицированный конфликт редактирования. В показанном примере второй модуль 514 определения предоставляет пользователю вариант просмотра конфликта редактирования или продолжения редактирования пользовательской копии файла данных без просмотра конфликта редактирования. Если второй модуль 514 определения решает, что пользователем был выбран вариант продолжающегося редактирования, то операция 516 продолжения дает пользователю возможность свободно редактировать файл данных, как будет здесь обсуждаться более подробно.
Если второй модуль определения 514 решает, что пользователем был выбран ва