Режимы совместного редактирования документов

Иллюстрации

Показать все

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

Реферат

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

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

В других типах традиционного совместного редактирования пользователи могут редактировать совместно используемую копию одного и того же документа. Например, в программе ONENOTE®, которая позволяет делать заметки в документе, предлагаемой компанией MICROSOFT CORPORATION, г. Редмонд, штат Вашингтон, множество пользователей могут добавлять, перемещать и удалять объекты одновременно в совместно используемом документе, выполненном в стиле блокнота. В таких продуктах изменения (замены) в документе становятся доступны для пользователей в режиме реального времени или в близкой аппроксимации к нему.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробное описание изобретения

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

Варианты выполнения настоящего раскрытия предоставляют среду, в которой множество пользователей могут совместно редактировать документ. На фиг.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 пользователя для других документов, и наоборот.

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

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

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

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

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

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

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

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

На фиг.3 схематично показана блок-схема документа 200, имеющего пять блоков данных 210, 220, 230, 240, 250. В одном варианте выполнения документ 200 представляет собой документ текстового редактора, и блоки данных 210-250 представляют собой абзацы этого текста. В другом варианте выполнения документ 200 представляет собой документ презентацию, и первый блок данных 210 представляет собой название или заголовок предмета, второй блок данных 220 представляет собой изображение или другой объект данных, и остальные блоки данных 230, 240, 250 представляют собой блоки текста.

Первый пользователь может генерировать блокирование вокруг одного или больше блоков данных 210-250 документа 200. В примере, показанном на фиг.3, первый пользователь блокировал второй блок данных 220, как обозначено перекрестной тушевкой. Путем генерирования блокирования содержания первый пользователь обозначил, что первый пользователь намеревается редактировать второй блок данных 220. Например, первый пользователь может генерировать блокирование, когда первый пользователь активно редактирует блок данных 220. В другом варианте выполнения первый пользователь может генерировать блокирование и затем редактировать блок данных 220 в более позднее время. В других вариантах выполнения блокирование генерируется автоматически, когда первый пользователь редактирует документ. Как отмечено выше, приложение для редактирования документа, управляющее документом 200, может предотвращать редактирование другими пользователями, кроме первого пользователя блокированного блока данных 220.

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

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

Обычно среда для редактирования документа, имеющая свойства, которые представляют собой примеры аспектов настоящего изобретения в соответствии с принципами данного раскрытия, может быть воплощена в вычислительном устройстве пользователя (например, в персональном компьютере, компьютере-сервере, компьютере типа ноутбук, PDA (КПК, карманный персональный компьютер) смартфоне или в любом другом таком вычислительном устройстве). Не ограничительный вариант выполнения вычислительной системы 400 пользователя, выполненной с возможностью воплощения среды для редактирования документа, описан здесь со ссылкой на фиг.4.

На фиг.4 примерная вычислительная система 400, предназначенная для воплощения принципов настоящего раскрытия, включает в себя вычислительное устройство пользователя, такое как вычислительное устройство 410 пользователя. В основной конфигурации вычислительное устройство 410 пользователя, как правило, включает в себя, по меньшей мере, один модуль 415 обработки, предназначенный для выполнения приложения и программ, сохраненных в запоминающем устройстве 420 системы. В зависимости от точной конфигурации и типа вычислительного устройства 410 запоминающее устройство 420 системы может включать в себя, но не ограничивается этим, ОЗУ, ПЗУ, ЭСППЗУ, запоминающее устройство типа флэш, 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, такие как клавиатура, мышь, ручка, устройство голосового ввода, устройство сенсорного ввода и т.д., предназначенные для ввода и манипуляции с данными. Выходное устройство (устройства) 435, такие как экран дисплея, громкоговорители, принтер и т.д., также могут быть включены в состав. Эти выходные устройства 435 хорошо известны в данной области техники, и здесь не требуется их подробное описание.

Вычислительное устройство 410 также может содержать соединения 440 для передачи данных, которые позволяют устройству 410 выполнять обмен данными с другими вычислительными устройствами, например, с устройством 120 накопителем по фиг.1, по сети в распределенной вычислительной среде (например, intranet или Интернет). В качестве примера, и не для ограничений, среда 440 устройства для передачи данных включает в себя кабельную среду, такую как кабельная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, RF (РЧ, радиочастотная), инфракрасная и другая беспроводная среда.

Как показано на фиг.5-19, обработка синхронизации, с помощью которой приложение для редактирования документа выполняет обмен содержанием и метаданными с устройством накопителем, может отличаться, в зависимости от режима конфиденциальности, выбранного пользователем приложения для редактирования документа. На фиг.5 показана блок-схема последовательности операций, иллюстрирующая примерный процесс 500 синхронизации, с помощью которого система 100 для редактирования документа, воплощенная в вычислительном устройстве 110 пользователя, может синхронизировать пользовательскую копию 155 документа, предназначенную для редактирования, с главной копией 150 документа, содержащегося в устройстве 120 накопителе. Процесс 500 синхронизации инициализируется, и начинается в начальном модуле 502, и переходит к первой операции 504 обновления.

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

Операция 506 получения периодически проверяет кэш 125 накопителя устройства 120 накопителя для определения, доступны ли какие-либо обновления содержания от других пользователей. Если такие обновления содержания доступны, операция 506 получения получает обновление содержания. В одном варианте выполнения операция 506 получения обеспечивает выполнение устройством 110 пользователя опроса устройства 120 накопителя и получения каких-либо обновлений содержания из кэш 125 накопителя. В другом варианте выполнения операция 506 получения обеспечивает передачу устройством 120 накопителем обновления содержания устройства 110 пользователя после запроса. Однако в других вариантах выполнения устройство 120 накопителя передает любые доступные обновления содержания в устройство 110 пользователя, без подсказки из устройства 110 пользователя.

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

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

В соответствии с этим, если модуль 508 определения определяет, что приложение 130 для редактирования документа сконфигурировано в открытом режиме работы, тогда операция 510 передачи передает обновления содержания, сгенерированные приложением 130 для редактирования документа, в устройство 120 накопитель.

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

На фиг.6 схематично показана блок-схема системы 600 для редактирования документа, выполненной с возможностью воплощения цикла синхронизации в открытом режиме. Система 600 для редактирования документа обычно включает в себя устройство 620 накопитель и одно или больше устройств 610 пользователя. Содержание 652 и метаданные 654 редактируемого документа сохраняют в запоминающем устройстве 625 устройства 620 накопителя. В примере, показанном на фиг.6, первое устройство 610А пользователя и второе устройство 610B пользователя оба обращаются к содержанию 652 и к метаданным 654, сохраненным в устройстве 620 накопителе. Вычислительные устройства 610A, 610B пользователя каждое включает в себя локальные кэш 635A, 635B соответственно и пользовательские копии 655A, 655B соответственно редактируемого документа.

Локальный кэш 635 вычислительного устройства 610 каждого пользователя выполнен с возможностью сохранения модуля 632 публикации, модуля 634 защиты, модуля 636 получения, модуля 638 интегрирования и модуля 639 синхронизации метаданных. Модуль 634 защиты выполнен с возможностью сохранения изменений содержания в локальном кэш 635. В одном варианте выполнения модуль 634 защиты инициирует активацию модуля 632 публикации. Модуль 632 публикации выполнен с возможностью предоставления (например, проталкивания, передачи и т.д.) обновления содержания из локального кэш 635 в запоминающее устройство 625 накопитель устройства 620 накопителя. В одном варианте выполнения модуль 632 публикации выполнен с возможностью организовывать очередь обновлений содержания, сгенерированных пользовательской копией 655, в пределах локального кэш 635 для передачи в устройство 620 накопитель.

Модуль 636 получения выполнен с возможностью получения (например, извлечения, приема и т.д.) обновления содержания из запоминающего устройства 625 накопителя устройства 620 накопителя. В одном варианте выполнения модуль 636 получения выполнен с возможностью формировать очередь из обновлений содержания, полученных из запоминающего устройства 625 накопителя в пределах локального кэш 635 устройства 610 пользователя. Модуль 638 интегрирования выполнен с возможностью представления изменений содержания в пользовательскую копию 655 документа. В одном варианте выполнения модуль 638 интегрирования выполнен с возможностью обозначения доступности обновлений содержания и приема выбора пользователя для просмотра, игнорирования или представления изменений.

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

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

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

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

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

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