Совместная авторская подготовка документа

Иллюстрации

Показать все

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

Реферат

Область техники, к которой относится изобретение

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

Предшествующий уровень техники

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

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

Относительно этих и других соображений настоящее изобретение было реализовано.

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг.7 - схематическая блок-схема таблицы блокировок в соответствии с принципами настоящего раскрытия;

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

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

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

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

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

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

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

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

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

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

Варианты осуществления настоящего раскрытия предоставляют среду, в которой множество пользователей могут совместно подготавливать документ. Фиг.1 иллюстрирует примерную среду 100 авторской подготовки, имеющую признаки, которые являются примерами новых аспектов изобретения. Система 100 авторской подготовки включает в себя устройство 120 хранения, хранящее мастер-копию документа 150. В одном варианте осуществления устройство 120 хранения может включать в себя вычислительное устройство. В другом варианте осуществления устройство 120 хранения может включать в себя одно или более устройств хранения (например, сеть вычислительных устройств).

Система 100 авторской подготовки также включает в себя, по меньшей мере, одно пользовательское вычислительное устройство 110, которое соединено с возможностью связи с устройством 120 хранения. Каждое из пользовательских вычислительных устройств 110 может редактировать документ 150, создавая пользовательскую копию 155 документа 150 и редактируя пользовательскую копию 155. Пользовательские копии 155 документа 150 синхронизируются, когда пользовательские вычислительные устройства 110 периодически отправляют устройству 120 хранения обновления, которые должны совместно использоваться с другими пользовательскими вычислительными устройствами, и периодически получают от устройства 120 хранения обновления от других пользовательских вычислительных устройств.

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

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

Как показано на фиг.2, документ 150, сохраненный в устройстве 120 хранения, может включать в себя содержимое 152 и метаданные 154. Приложения 130 авторской подготовки в пользовательских вычислительных устройствах 110 обрабатывают и управляют содержимым и метаданными пользовательских копий 155 документа 150. В некоторых вариантах осуществления метаданные 154 могут быть сохранены отдельно от содержимого 152. Например, содержимое 152 может быть сохранено в документе 150, а метаданные могут быть сохранены в таблице (см. фиг.7) отдельно от документа 150. В других вариантах осуществления, однако, метаданные 154 могут быть сохранены в документе 150.

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

Фиг.3 - логическая блок-схема, иллюстрирующая примерный процесс 300 синхронизации, посредством которого система 100 авторской подготовки может синхронизировать копию 155 документа, сохраненного в пользовательском вычислительном устройстве 110, с мастер-копией 150 документа, сохраненного в устройстве 120 хранения. Процесс 300 синхронизации инициализируется и начинается в стартовом модуле 302 и переходит к первой операции 304 обновления.

Первая операция 304 обновления синхронизирует метаданные копии 155 с метаданными документа 150 без необходимости какого-либо взаимодействия с пользователем. Например, первая операция 304 обновления может предусматривать обмен метаданными между устройством 120 хранения и пользовательским вычислительным устройством 110 с периодическими временными интервалами. В одном варианте осуществления первая операция 304 обновления предусматривает обмен метаданными каждые пять секунд. В других вариантах осуществления, однако, первая операция 304 обновления может предусматривать обмен метаданными с более короткими или более длинными временными интервалами.

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

Если модуль 306 запроса определяет, что запрос синхронизации содержимого не был сделан, тогда процесс 300 синхронизации циклически возвращается к первой операции 304 обновления и начинается снова. Однако, если модуль 306 запроса, определяет, что запрос синхронизации содержимого был принят, тогда процесс 300 синхронизации переходит ко второй операции 308 обновления, которая предусматривает обмен содержимым между устройством 120 хранения и пользовательским вычислительным устройством 110. Процесс 300 синхронизации завершается и прекращается в модуле 310 остановки.

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

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

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

Например, фиг.4 - это схематическая блок-схема документа 400, имеющего пять блоков данных 410, 420, 430, 440, 450. В одном варианте осуществления документ 400 является документом с обработкой текста, а блоки данных 410-450 являются параграфами текста. В другом варианте осуществления документ 400 является документом-презентацией, и первый блок данных 410 - это заголовок или предметный указатель, второй блок данных 420 - это изображение или другой объект данных, а оставшиеся блоки данных 430, 440, 450 - это блоки текста.

Первый пользователь может сформировать блокировку у одного или более блоков данных 410-450 документа 400. В примере, показанном на фиг.4, второй блок данных 420 был заблокирован первым пользователем, как указано перекрестной штриховкой. Формируя блокировку содержимого, первый пользователь указал, что первый пользователь намеревается редактировать блок данных 420. Например, пользователь может сформировать блокировку, когда пользователь активно редактирует блок данных 420. В другом варианте осуществления пользователь может сформировать блокировку и затем редактировать блок данных 420 в более позднее время. Как отмечено выше, приложение авторской подготовки, управляющее документом 400, может препятствовать редактированию заблокированного блока 420 данных пользователем, отличным от первого пользователя.

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

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

В некоторых вариантах осуществления блокировка содержимого может расширяться, чтобы включать в себя дополнительные блоки данных в документе, и/или сокращаться, чтобы освобождать один или более блоков данных в документе. В одном варианте осуществления блокировка содержимого может расширяться, чтобы включать в себя только смежные блоки данных. Например, как показано на фиг.5, блокировка содержимого (например, см. перекрестную штриховку) относительно второго блока 420 данных может расширяться, чтобы включать в себя третий блок 430 данных, если пользователь выбирает или редактирует третий блок 430 данных. Блокировка содержимого или ее часть, как правило, может быть снята по усмотрению пользователя, который сформировал блокировку содержимого. В некоторых вариантах осуществления пользователь, который сформировал блокировку содержимого, снимает блокировку содержимого посредством выбора или редактирования другого блока данных.

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

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

Например, в таблице 500 блокировок блоки 512 и 514 данных ассоциированы с первым пользователем 510. Другим пользователям, следовательно, запрещено редактирование блоков 512 и 514 данных. Блок 522 данных ассоциирован с пользователем 520. Другим пользователям, включая первого пользователя 510, следовательно, запрещено редактировать блок 510 данных. Четвертый пользователь 540 не заблокировал какую-либо часть документа и, таким образом, не связан с какими-либо идентификаторами блоков. В других вариантах осуществления, однако, метаданные блокировок могут храниться в другом формате или в документе. Например, таблица 500 блокировок может быть упорядочена по идентификатору блока вместо идентификатора пользователя.

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

Фиг.8 и 9 - это логические блок-схемы, иллюстрирующие примерные процессы 600, 700 синхронизации, посредством которых содержимое и блокировки могут быть синхронизированы между множеством вычислительных устройств. Первый процесс 600 синхронизации осуществляется приложением авторской подготовки, чтобы совместно использовать с другими пользователями обновления, выполненные первым пользователем с помощью приложения авторской подготовки. Второй процесс 700 синхронизации осуществляется приложением авторской подготовки, чтобы реализовывать обновления, выполненные другими пользователями, в документе, редактируемом с помощью приложения авторской подготовки.

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

Первый модуль 606 определения проверяет, заблокирован ли блок данных, по которому должна выполняться операция редактирования. Например, первый модуль 606 определения может обращаться к таблице блокировок, такой как таблица 500 блокировок на фиг.7, чтобы определять, действительно ли идентификатор блока, назначенный блоку данных, ассоциирован с каким-либо пользователем. В другом варианте осуществления первый модуль 606 определения может иначе определять, заблокирован ли блок данных.

Если первый модуль 606 определения определяет, что блок данных не заблокирован, тогда операция 608 формирования формирует блокировку содержимого в блоке данных. Например, в одном варианте осуществления операция 608 формирования может добавлять запись в таблицу 500 блокировок на фиг.7, ассоциирующую идентификатор блока данных с идентификатором первого пользователя. Операция 610 передачи отправляет метаданные блокировок, указывающие существование вновь сформированной блокировки, устройству, хранящему мастер-копию документа. Например, операция 610 передачи может отправлять метаданные о блокировках из пользовательского вычислительного устройства, такого как вычислительное устройство 110A на фиг.1, устройству хранения, такому как устройство 120 хранения. В одном варианте осуществления метаданные о блокировках включают в себя инструкции, которые описывают инкрементные корректировки (например, дельта-состояния) в метаданных блокировок. Операция 614 осуществления выполняет операцию редактирования в отношении блока данных.

Альтернативно, если первый модуль 606 определения определяет, что блок данных заблокирован, тогда второй модуль 612 определения получает информацию о владении блокировкой. В одном варианте осуществления, если второй модуль 612 определения определяет, что блокировкой владеет другой пользователь, тогда процесс 600 синхронизации завершается и прекращается в модуле 620 остановки без выполнения операции редактирования. В другом варианте осуществления (не показан) процесс 600 синхронизации может позволять первому пользователю выбирать прерывание блокировки и затем переходит к операции 608 формирования. Однако, если второй модуль 612 определения определяет, что блокировкой владеет первый пользователь, тогда процесс 600 синхронизации переходит к операции 614 осуществления, обсужденной выше. В другом варианте осуществления (не показан) процесс 600 синхронизации может определять, должна ли быть снята блокировка каких-либо блоков данных.

Третья операция 616 определения определяет, предоставил ли первый пользователь инструкцию (либо явно, либо неявно), чтобы совместно использовать изменения в блоке данных, получающиеся в результате осуществления операции редактирования. Например, третья операция 616 определения может определять, предоставил ли первый пользователь инструкцию сохранения документа. В другом варианте осуществления третья операция 616 определения может определять, выбрал ли первый пользователь кнопку "совместное использование изменений" или другие подобные указатели. В другом варианте осуществления третья операция 616 определения может определять, что признак автоматического сохранения был реализован приложением. Если третья операция 616 определения определяет, что инструкции для совместного использования не были предоставлены, тогда процесс 600 синхронизации циклически возвращается к операции 604 приема и начинается снова.

Однако если операция 616 определения определяет, что инструкции для совместного использования были предоставлены, тогда процесс 600 синхронизации переходит к операции 618 передачи, которая отправляет обновления содержимого устройству, хранящему мастер-копию документа. Обновления содержимого указывают изменения, выполненные в содержимом документа посредством операции редактирования. Например, операция 618 передачи может отправлять обновления содержимого из пользовательского вычислительного устройства 110A на фиг.1 устройству 120 хранения. В одном варианте осуществления обновления содержимого включают в себя вновь сформированную версию документа. В другом варианте осуществления обновления содержимого указывают инкрементные корректировки (например, дельта-состояния) в содержимом между текущей пользовательской копией документа и мастер-копией документа. Процесс 600 синхронизации завершается и заканчивается в модуле 620 остановки, как обсуждалось выше.

Второй процесс 700 синхронизации на фиг.9 инициализируется и начинается в начальном модуле 702 и переходит к операции 704 приема. Операция 704 приема принимает обновление, основанное на изменениях, выполненных в документе другими пользователями. Обновление может включать в себя изменения в содержимом и/или метаданных документа. В одном варианте осуществления операция 704 приема может опрашивать устройство, хранящее мастер-копию документа, и запрашивать обновления. В другом варианте осуществления устройство, хранящее мастер-копию, может принудительно отправлять изменения приложению авторской подготовки.

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

Если первый модуль 706 определения определяет, что обновление метаданных было принято, тогда операция 708 осуществления автоматически реализует принятые обновления метаданных. Например, операция 708 осуществления может заставлять приложение авторской подготовки обновлять таблицу блокировок, такую как таблица 500 блокировок на фиг.7, на основе обновления метаданных. Однако, если первый модуль 706 определения определяет, что обновление метаданных не было принято, тогда второй процесс 700 синхронизации переходит ко второму модулю 710 определения.

Второй модуль 710 определения определяет, включает ли в себя обновление какие-либо изменения в содержимом документа. Например, второй модуль 710 определения может определять, действительно ли какие-либо блоки данных были добавлены, удалены, исправлены или перемещены. Если второй модуль 710 определения определяет, что обновление содержимого не было принято, тогда второй процесс 700 синхронизации циклически возвращается к операции 704 приема, чтобы начаться снова. Однако, если второй модуль 710 определения определяет, что обновление содержимого было принято, тогда второй процесс 700 синхронизации переходит к операции 712 указания.

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

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

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

Фиг.10-12 предоставляют больше деталей того, как синхронизация между пользовательской копией и мастер-копией документа реализуется пользовательским вычислительным устройством. Фиг.10 - это схематическая блок-схема системы 800 авторской подготовки, включающей в себя устройство 820 хранения, на котором должна храниться мастер-копия документа, который должен быть подготовлен. Система 800 авторской подготовки также включает в себя, по меньшей мере, одно пользовательское вычислительное устройство 810, соединенное с возможностью связи с устройством 820 хранения.

Пользовательское вычислительное устройство 810 включает в себя приложение 812 авторской подготовки, сконфигурированное, чтобы предоставлять среду авторской подготовки, в которой пользователь может создавать и/или манипулировать документом, который должен быть подготовлен. Пользовательское вычислительное устройство 810 также включает в себя кэш 814, сопрягающий объект (объект-прослойку) ("LO") 816 и средство 818 управления синхронизацией ("менеджер синхронизации"). Кэш 814 хранит пользовательскую копию документа, который должен быть подготовлен. Кэш 814 также хранит метаданные, включающие в себя метаданные о блокиров