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

Изобретение относится к средствам обеспечения совместного редактирования документов. Техническим результатом является расширение функциональных возможностей редактирования документов за счет обеспечения редактирования документов в режиме реального времени несколькими пользователями. Совместно используемое приложение для редактирования документа обеспечивает среду для редактирования документа, в которой два или больше пользователей могут редактировать документ одновременно. Каждый пользователь редактирует копию документа, передает обновления в главную копию документа и принимает обновления из главной копии документа. Среда для редактирования документа может быть сконфигурирована в открытом режиме работы, в котором содержание и метаданные синхронизируют автоматически или в частном режиме работы, в котором метаданные синхронизируют автоматически, и содержание синхронизируют только по запросу пользователя. Приложение для редактирования документа может редактировать документы в автономном режиме работы, в открытом или в частном режиме. 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 публикации передает обновления содержания автоматически, не требуя какого-либо взаимодействия от пользователя. В еще одном варианте выполнения вторая операция 712 публикации может передавать обновления содержания по запросу устройства накопителя.

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

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

На фиг.8 схематично показана блок-схема системы 800 для редактирования документа, выполненной с возможностью воплощения цикла синхронизации в частном режиме. Система 800 для редактирования документа обычно включает в себя устройство 820 накопитель и одно или больше устройств 810 пользователя. Содержание 852 и метаданные 854 редактируемого документа сохраняют в запоминающем устройстве 825 на устройстве 820 накопителя. В примере, показанном на фиг.8, первое устройство 810А пользователя и второе устройство 810B пользователя одновременно обращаются к содержанию 852 и метаданным 854, сохраненным в устройстве 820 накопителе. Каждое вычислительное устройство 810A, 810B пользователя включает в себя локальный кэш 835A, 835B и пользовательскую копию 855A, 855B редактируемого документа.

Локальный кэш 835 каждого вычислительного устройства 810 пользователя выполнен с возможностью сохранения модуля 832 публикации, модуля 834 защиты, модуля 836 получения, модуля 838 интегрирования и модуля 839 синхронизации метаданных. Модуль 834 защиты выполнен с возможностью сохранения обновлений содержания из пользовательской копии 855 в локальном кэш 835 для последующей передачи в запоминающее устройство 825 накопителя устройства 820 накопителя. В одном варианте выполнения защитный модуль 834 выполнен с возможностью сохранения обновления содержания в соответствии с порядком, в котором эти обновления сгенерированы. Например, модуль 834 защиты может быть выполнен с возможностью формирования очереди для обновлений содержания, генерируемых пользовательской копией 855, в пределах локального кэш 835 для передачи в устройство 820 накопитель.

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

Модуль 836 получения может быть выполнен с возможностью получения (например, извлечения, приема и т.д.) обновлений содержания из запоминающего устройства 825 накопителя устройства 820 накопителя. В одном варианте выполнения модуль 836 получения выполнен с возможностью установки очередности для обновлений содержания, получаемых из запоминающего устройства 825 накопителя в локальном кэш 835 для последующей установки в пользовательскую копию 855 редактируемого документа. Модуль 838 интегрирования выполнен с возможностью способствовать установке изменений содержания в пользовательскую копию 855 документа. Например, модуль 838 интегрирования может быть выполнен с возможностью обозначения для пользователя, что новые обновления содержания доступны для установки. В другом варианте выполнения модуль 838 интегрирования может быть выполнен с возможностью автоматического представления обновления содержания в пользовательскую копию 855 редактируемого документа.

Модуль 839 синхронизации метаданных синхронизирует обновления метаданных между пользовательской копией 855 редактируемого документа и главной копией, сохраненной в устройстве 820 накопителя. В одном варианте выполнения модуль 839 синхронизации метаданных представляет собой тот же, что и модуль 639 синхронизации метаданных, описанный выше со ссылкой на фиг.6. Однако в других вариантах выполнения модуль 839 синхронизации метаданных, в остальном, может быть выполнен с возможностью синхронизации метаданных между устройством 810 пользователя и устройством 820 накопителем.

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

Первая операция 906 сохранения периодически сохраняет в локальном кэш любые обновления метаданных, генерируемые при воплощении операции 904 редактирования документа. В одном варианте выполнения первая операция 906 сохранения является такой же, что и первая операция 706 сохранения процесса 700 синхронизации в открытом режиме, описанного выше со ссылкой на фиг.7. В других вариантах выполнения, однако, могут использоваться другие процессы для сохранения обновления метаданных. Первая операция 908 публикации периодически передает обновления метаданных из локального кэш в устройство накопитель. В одном варианте выполнения первая операция 908 публикации представляет собой ту же, что и первая операция 708 публикации процесса 700 синхронизации в открытом режиме, описанном выше со ссылкой на фиг.7. Однако в других вариантах выполнения могут использоваться другие процессы для обмена обновлениями метаданных.

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

Модуль 912 определения определяет, следует ли выгружать обновления содержания в устройство накопитель. В одном варианте выполнения модуль 912 определения определяет, предоставил ли пользователь какие-либо инструкции на обмен изменениями содержания. Например, модуль 912 определения может определять, выбрал ли пользователь кнопку "Опубликовать" в интерфейсе пользователя приложения для редактирования документа. Если модуль 912 определения определяет, что пользователь передал инструкции на выполнение обмена изменения содержания, вторая операция 914 публикации передает изменения содержания в устройство накопитель. Однако если модуль 912 определения определяет, что пользователь подал инструкции на обмен содержанием, тогда процесс 900 частной синхронизации пропускает вторую операцию 914 публикации и переходит к первой операции 916 представления.

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

Вторая операция 918 представления периодически получает обновления содержания из устройства накопителя и делает обновления содержания доступными для пользователя, для их просмотра и/или внесения. Например, вторая операция 918 представления может быть той же, что и вторая операция 716 представления процесса 700 синхронизации в открытом режиме, описанного выше со ссылкой на фиг.7. Однако в других вариантах выполнения другие процессы могут использоваться для получения содержания из устройства накопителя. Процесс 900 синхронизации в частном режиме завершается и заканчивается в модуле 920 остановки.

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

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

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

На фиг.11-19 представлены принципы настоящего раскрытия, которые будут более понятны при описании примерного программного приложения. На фиг.11-19 представлены изменения, выполненные во время сеанса совместного редактирования документа в главной копии документа, сохраненной в устройстве 1120 накопителе, в первой пользовательской копии документа, редактируемой первым приложением 1130A для редактирования документа, и во второй пользовательской копии, редактируемой вторым приложением 1130B для редактирования документа. Здесь также показаны обновления содержания и метаданных, сохраненные в соответствующих локальных кэш 1135A, 1135B вычислительных устройств пользователя. В одном варианте выполнения первое приложение 1130A для редактирования документа и второе приложение 1130B для редактирования документа одновременно редактируют документ. Однако в других вариантах выполнения первое и второе приложения 1130A, 1130B для редактирования документа могут редактировать документ (то есть обращаться к нему) в разные моменты времени, используя ту же обработку.

На фиг.11 показано первое приложение 1130A для редактирования документа, сконфигурированное в открытом режиме работы, и второе приложение 1130B для редактирования документа, сконфигурированное в частном режиме работы. Однако в других вариантах выполнения каждое приложение 1130 для редактирования документа может быть сконфигурировано в любом требуемом режиме работы. Поскольку первое приложение 1130A для редактирования документа работает в открытом режиме, первое приложение 1130A для редактирования документа обычно следует процессу 700 синхронизации открытого режима, описанному выше со ссылкой на фиг.7. Поскольку второе приложение 1130B для редактирования документа работает в частном режиме, второе приложение 1130B для редактирования документа обычно следует процессу 900 синхронизации частного режима, описанному со ссылкой на фиг.9.

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

В показанном примере содержание главной копии включает в себя первый блок данных, содержащий текст "Привет, мир", и метаданные главной копии включают в себя первое блокирование E1 вокруг первого блока данных. Первое блокирование E1 назначают для первого пользователя первого приложения 1130A для редактирования документа. В соответствии с этим первое приложение 1130A для редактирования документа может редактировать первый блок данных. Другие приложения для редактирования документа, такие как второе приложение 1130B для редактирования документа, не имеют возможности редактировать первый блок данных. Содержание и метаданные главной копии отражаются в локальных кэш 1135A, 1135B устройств пользователя.

На фиг.11 первое приложение 1130А для редактирования документа и второе приложение 1130B для редактирования документа каждое обращается к главной копии документа, и начинают ее редактирование. Первое приложение 1130A для редактирования документа редактирует копию первого пользователя документа, в ходе которого удаляет слово "Привет", как обозначено операций зачеркивания (см. операцию 704 редактирования документа по фиг.7). Второе приложение 1130B для редактирования документа редактирует копию второго пользователя документа и добавляет второй блок данных, содержащий текст "До свидания, мир" (см. операцию 904 редактирования документа на фиг.9). Второе блокирование E2, назначенное второму пользователю, генерируют вокруг второго блока данных.

На фиг.12 иллюстрируется эффект первых операций 706, 906 сохранения в процессе 700 синхронизации в открытом режиме и в процессе 900 синхронизации в частном режиме соответственно. Каждое из приложений 1130A, 1130B для редактирования документа сохраняет любые изменения метаданных, генерируемые в копии соответствующего пользователя документа в соответствующем локальном кэш 1135A, 1135B, для передачи в устройство 1120 накопителя. В показанном примере первое приложение 1130A для редактирования документа не добавило новых блоков или не отменило первый блок E1. В соответствии с этим изменения в метаданных не сохраняют в локальном кэш 1135A на фиг.12. Второе приложение 1130B для редактирования документа, однако, добавило второе блокирование E2 вокруг нового блока данных. В соответствии с этим второе блокирование E2 сохраняют в таблице метаданных локального кэш 1135B.

На фиг.13 иллюстрируются эффекты первых операций 708, 908 публикации процесса 700 синхронизации в открытом режиме, и процесса 900 синхронизации в частном режиме соответственно. Соответствующие локальные кэш 1135A, 1135B, каждый передает сохраненные метаданные в устройство 1120 сохранения. В представленном примере второй локальный кэш 1135B передает новое блокирование E2 в устройство 1120 накопитель. Первый локальный кэш 1135A, однако, не имеет каких-либо изменений метаданных, которые можно было бы передать в устройство 1120 накопитель.

В соответствии со второй операцией 710 сохранения процесса 700 синхронизации в открытом режиме первое приложение 1130A для редактирования документа сохраняет любые изменения содержания в локальном кэш 1135A для передачи в устройство 1120 накопитель, когда поступают инструкции по сохранению этого содержания (то есть явно или неявно), передаваемые пользователем. В соответствии со второй операцией 712 публикации процесса 700 синхронизации в открытом режиме инструкции на сохранение содержания инициируют публикацию локальным кэш 1135A обновлений содержания в устройстве 1120 накопителе. В представленном примере удаление слова "Привет" из первого блока данных сохраняют в локальном кэш 1135A на фиг.12 и передают в устройство 1120 накопитель по фиг.13.

В отличие от этого, в соответствии со второй операцией 910 сохранения процесса 900 синхронизации в частном режиме, второе приложение 1130B редактирования документа сохраняет любые изменения содержания в локальном кэш 1135B. В примере, показанном на фиг.12, добавление второго блока данных ("До свидания, мир") отражается в локальном кэш 1135B. В соответствии с модулем 912 определения процесса 900 синхронизации в частном режиме, однако, локальный кэш 1135B передает только обновленное содержание в устройство 1120 накопитель, когда инструкция на публикацию поступает от пользователя. В примере, показанном на фиг.13, инструкции на публикацию не предоставляются, и второй блок данных не будет передан в устройство 1120 накопитель.

На фиг.14 и 15 иллюстрируются эффекты первых операций 714, 916 представления процесса 700 синхронизации в открытом режиме и процесса 900 синхронизации в частном режиме соответственно. Каждое из приложений 1130А, 1130B для редактирования документа получает обновления метаданных из устройства 1120 накопителя и автоматически представляет эти обновления метаданных в соответствующую пользовательскую копию документа. В показанном примере второе блокирование E2 извлекают из главной копии документа устройства 1120 накопителя и сохраняют в первом локальном кэш 1135A устройства первого пользователя, как показано на фиг.14. Первое приложение 1130A для редактирования документа автоматически представляет второе блокирование E2 в копию первого пользователя документа на фиг.15. Однако поскольку первое приложение 1130A для редактирования документа не выполняет какие-либо изменения в метаданных копии первого пользователя, никакие изменения не выполняют в метаданных, ассоциированных с копией второго пользователя, и во втором локальном кэш 1135B, поскольку метаданные уже отражают метаданные, ассоциированные с главной копией документа.

Кроме того, эффект вторых операций 716, 918 представления процесса 700 синхронизации в открытом режиме и процесса 900 синхронизации в частном режиме соответственно представлен на фиг.14 и 15. Каждое приложение 1130A, 1130B для редактирования документа получает обновления содержания из устройства 1120 накопителя и выполняет обновления содержания, доступные для пользователя, для просмотра и/или представления. В показанном примере второй локальный кэш 1135B не передает какие-либо изменения содержания в устройство 1120 накопитель. В соответствии с этим первый локальный кэш 1135A и первое приложение 1130A для редактирования документа не получают каких-либо обновлений содержания из устройства 1120 накопителя по фиг.14 и 15.

Однако поскольку первое приложение 1130A для редактирования документа сохранило изменения содержания, второй локальный кэш 1135B получает из устройства 1120 накопителя обновление содержания, состоящее в удалении слова "Привет" из первого блока данных (см. фиг.14). Второе приложение 1130B для редактирования документа представляет обновление содержания из локального кэш 1135B в пользовательскую копию документа на фиг.15. В одном варианте выполнения интерфейс пользователя второго приложения 1130B для редактирования документа автоматически представляет обновление содержания в копию второго пользователя документа (см. фиг.15). В другом варианте выполнения, однако, второе приложение 1130B для редактирования документа обозначает для второго пользователя, что доступно обновление содержания. В таком варианте выполнения второе приложение 1130B для редактирования документа представляет обновление содержания, когда второй пользователь вводит инструкцию на представление.

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

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

В примере, показанном на фиг.16, второе приложение 1130B для редактирования документа переключили в открытый режим работы. Пользователь еще не выбрал сохранение изменений содержания после переключения приложения 1130B для редактирования документа. В соответствии с этим второй блок данных еще не был передан в устройство 1120 накопитель. В примере, показанном на фиг.17, второй локальный кэш 1135B принимает инструкцию на сохранение от пользователя и передает вторые данные, содержащие текст ("До свидания, мир") в устройство 1120 накопитель, в соответствии со второй операцией 712 публикации процесса 700 синхронизации в открытом режиме по фиг.7. Первый локальный кэш 1135A получает обновление содержания из устройства 1120 накопителя по фиг.18, и приложение 1130A для редактирования документа представляет обновление содержания в копию первого пользователя документа на фиг.19.

На фиг.20-22 система 2000 для редактирования документа, имеющая свойства, которые представляют собой примеры изобретательных аспектов, в соответствии с принципами настоящего раскрытия, могут обеспечивать для пользователей возможность редактирования копии пользователей документов, даже когда приложение для редактирования документа отключено от какого-либо устройства накопителя, в котором сохраняют главную копию документа. Система 2000 для редактирования документа включает в себя устройство 2010 пользователя, выполняющее приложение 2030 для редактирования документа, которое выполняет редактирование копии 2055 пользователя документа. В представленном примере устройство 2010 пользователя работает автономно (например, отключено от сети 2060). В соответствии с этим, устройство 2010 пользователя не выполняет обмен какими-либо изменениями содержания или метаданных, генерируемыми при редактировании копии 2055 пользователя документа, пока оно не будет подключено к сети 2060.

Устройство 2010 пользователя также включает в себя локальный кэш 2035, в котором сохраняют метаданные 2039, относящиеся к копии 2055 пользователя документа. В одном варианте выполнения метаданные 2039 могут периодически обновляться для отражения изменений, произведенных в отношении локальной копии 2055 документа. В другом варианте выполнения метаданные 2039 обновляют в конце каждого сеанса редактирования. Локальный кэш 2035 также включает в себя кэш 2031 накопитель, кэш 2033 выгрузки и кэш 2037 получения.

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

Локальный кэш 2035 передает любые изменения содержания, сохраненные в кэш 2033 выгрузки, в устройство накопитель (не показано) через сеть 2060, когда устройство 2010 пользователя подключено к сети 2060. Например, локальный кэш 2035 может выполнять обмен обновлениями содержания, сохраненными в кэш 2033 выгрузки, как только устройство 2010 пользователя будет подключено к сети 2060. В одном варианте выполнения локальный кэш 2035 может выполнять обмен обновлениями содержания, сохраненными в кэш 2033 выгрузки, даже если выполнение приложения для редактирования документа будет прекращено до того, как устройство 2010 пользователя будет подключено к сети 2060.

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

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

Ранее полученные обновления содержания, которые еще не были представлены в первой копии 2055 пользователя, могут быть сохранены в кэш 2037 получения. Такие обновления содержания могут быть представлены в пользовательскую копию 2055 в любое время, независимо от того, подключено ли устройство 2010 пользователя к сети 2060. В одном варианте выполнения кэш 2037 получения сохраняет упорядоченный список обновлений содержания, которые будут интегрированы в пользовательскую копию 2055. Обновления содержания могут быть удалены из кэш 2037 получения, по мере того как они будут представлены в пользовательскую копию 2055 документа. В некоторых вариантах выполнения пользователь может выбрать "отмену" обновлений содержания из кэш 2037 получения. В одном таком варианте выполнения обновление содержания может быть добавлено обратно в кэш 2037 получения, когда пользователь отменяет представление.

На фиг.21 представлен поток обработки для процесса 2100 редактирования документа, с помощью которого приложение для редактирования документа, такое как приложение 2030 для редактирования документа, может редактировать пользовательскую копию документа, такую как пользовательская копия 2055, когда приложение 2030 для редактирования документа работает в автономном режиме. В начальном модуле 2102 происходит инициализация и начало работы процесса 2100 редактирования документа, и затем обработка переходит к операции 2104 получения. Операция 2104 получения принимает инструкции редактирования, которые должны быть воплощены в пользовательской копии 2055 документа. Как правило, операция 2104 получения принимает инструкции редактирования, которые должны быть воплощены в одном или больше блоках данных в пользовательской копии 2055.

Первый модуль 2106 определения проверяет, блокирован ли блок данных, предназначенный для редактирования. Например, первый модуль 2106 определения может проверить метаданные 2039, сохраненные в локальном кэш 2035 устройства 2010 первого пользователя для определения, ассоциировано ли внешнее блокирование (то есть блокирование, ассоциированное с другим пользователем) с блоком данных, предназначенным для редактирования. Если первый модуль 2106 определения определяет, что блок данных, предназначенный для редактирования, блокирован другим пользователем, тогда операция 2108 ошибки не позволяет выполнять редактирование в этом блоке данных. Например, в одном варианте выполнения операция 2108 ошибки может информировать пользователя приложения 2030 для редактирования документа о том, что блок данных не должен быть редактирован. В другом варианте выполнения операция 2108 ошибки может информировать пользователя приложения 2030 для редактирования документа о том, что блок данных не может быть редактирован. Обработка 2100 редактирования документа циклически снова возвращается назад к операции 2104 получения для начала обработки.

Однако если первый модуль 2106 определения определяет, что блок данных, предназначенный для редактирования, не блокирован, тогда операция 2114 запроса добавляет запрос к блокированию метаданных 2039, сохраненных в локальном кэш 2035. Однако поскольку этот запрос не может быть синхронизирован с главной копией документа, операция 2114 запроса фактически не назначает блокирование для блока данных. Перед запросом блокирования дополнительная операция 2110 предупреждения может вырабатывать предупреждение для пользователя приложения 2030 для редактирования документа. Например, операция 2110 предупреждения может обозначать для пользователя, что приложение 2030 для редактирования документа работает в автономном режиме и, соответственно, изменения, выполненные в копии 2055 пользователя, не могут быть синхронизированы с главной копией документа. Операция 2110 предупреждения также может напоминать пользователю, что могут произойти конфликты в результате редактирования копии 2055 пользователя документа, когда изменения не могут быть синхронизированы.

Если будет воплощена операция 2110 предупреждения, тогда второй модуль 2112 определения определяет, должно ли приложение 2030 для редактирования документа продолжить воплощение инструкции редактирования. Например, второй модуль 2112 определения может принять вариант выбора от пользователя приложения 2030 для редактирования документа через инструмент интерфейса пользователя, представленный для пользователя. Если второй модуль 2112 определения определяет, что инструкции редактирования не должны быть воплощены, тогда процесс 2100 редактирования документа снова будет направлен обратно к операции 2104 получения, где он начинается сначала.

Если, однако, второй модуль 2112 определения определяет, что инструкция редактирования должна быть воплощена, то процесс 2100 редактирования документа переходит к описанной выше операции 2114 запроса. Операция 2116 исполнения редактирует копию 2055 пользователя в соответствии с инструкцией редактирования. Третий модуль 2118 определения определяет, должен ли быть документ сохранен в локальном кэш 2035. В одном варианте выполнения третий модуль 2118 определения определяет, была ли принята инструкция на сохранение документа от пользователя. В другом варианте выполнения третий модуль определения определяет, было ли активизировано свойство автосохранения.

Если третий модуль 2118 определения определяет, что документ не должен быть сохранен, то процесс 2100 редактирования документа циклически возвращается обратно к операции 2104 получения и снова начинается сначала. Если, однако, третий модуль 2118 определения определяет, что документ должен быть сохранен, тогда операция 2120 сохранения добавляет показатель изменения в документ, полученный в результате воплощения инструкции редактирования, в кэш 2031 накопитель локального кэш 2035. Например, операция 2120 сохранения может сама добавить инструкцию редактирования в кэш 2031 накопитель. В другом варианте выполнения операция 2120 сохранения может добавить изменения содержания (например, показатель различий в пользовательской копии, образовавшихся в результате воплощения инструкции редактирования) в кэш 2031 накопитель.

Четвертый модуль 2122 определения определяет, сконфигурировано ли приложение 2030 для редактирования документа в открытом режиме работы или в частном режиме работы. Если третий модуль 2120 определяет, что приложение 2030 для редактирования документа сконфигурировано в открытом режиме работы, тогда операция 2124 публикации выполняет обмен обновлениями содержания с устройством накопителем. Например, локальный кэш 2035 может копировать обновления содержания, сохраненные в кэш 2031 накопителе, в кэш 2033 выгрузки, и передавать содержание из кэш 2033 выгрузки в устройство накопитель. В одном варианте выполнения операция 2124 публикации обозначает порядок, в котором изменения и/или инструкции редактирования должны быть представлены в главной копии документа, когда устройство первого пользователя подключают к сети 2060. Процесс 2100 редактирования документа завершается и заканчивается в модуле 2128 остановки.

Однако если четвертый модуль 2122 определения определяет, что приложение 2030 для редактирования документа сконфигурировано в частном режиме работы, тогда пятый модуль 2126 определения определяет, были ли пользователем в явном виде представлены инструкции выполнить выгрузку изменений содержания. Если инструкции на выгрузку изменений содержания были предоставлены в явной форме, тогда процесс 2100 редактирования документа переходит к операции 2124 публикации. Однако если инструкции на выгрузку изменений содержания не были предусмотрены, тогда процесс 2100 редактирования документа завершается и заканчивается в модуле 2122 остановки, как описано выше.

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

На фиг.22 представлен дополнительный поток для переходного процесса 2200, который может быть воплощен устройством пользователя, таким как устройство 2010 пользователя, когда устройство пользователя подключено к устройству накопителю через сеть, такую как сеть 2060. В начальном модуле 2202 происходит инициализация и начало работы переходного процесса 2200, который затем переходит к операции 2204 подключения, которая подключает с возможностью передачи данных устройство 2010 пользователя к сети 2060. Устройство 2010 пользователя может подключаться с возможностью передачи данных к устройству накопителю, в котором содержится главная копия документа, через сеть 2060.

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

Операция 2208 сравнения определяет любые различия между полученной главной копией и копией 2055 пользователя. Например, операция 2208 сравнения определяет любые различия в метаданных и/или любые различия в содержании. Первый модуль 2210 определения определяет, существуют ли какие-либо конфликты между копией 2055 пользователя и полученной главной копией, на основе сравнения. Например, первый модуль 2210 определения может определять, редактировало ли приложение 2030 для редактирования документа какие-либо блоки данных, которые были блокированы и/или редактированы в главной копии, после того как устройство 2010 пользователя было переведено в автономный режим работы. В одном варианте выполнения операции 2208 сравнения и первый модуль 2210 определения воплощены, когда устройство 2010 пользователя подключается к сети 2060, независимо от того, выполняется ли приложение 2030 для редактирования документа.

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

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

Вторая операция 2216 определения устанавливает режим работы (например, открытый режим или частный режим) приложения 2030 для редактирования документа. Если вторая операция 2216 определения определяет, что приложение 2030 для редактирования документа работает в открытом режиме, то вторая операция 2222 обмена передает обновления содержания в устройство накопитель для интеграции в главную копию документа. В одном варианте выполнения вторая операция 2222 обмена передает все изменения содержания, сохраненные в кэш 2033 выгрузки (фиг.21) в локальный кэш 2035. Переходный процесс 2200 завершается и заканчивается в модуле 2224 остановки.

Если, однако, вторая операция 2216 определения определяет, что приложение 2030 для редактирования документа работает в частном режиме, тогда третий модуль 2220 определения определяет, представил ли пользователь инструкции на обмен обновлениями содержания. Например, третий модуль 2218 определения может принять инструкции через интерфейс пользователя приложения 2030 для редактирования документа, для обмена изменениями, несмотря на то что приложение 2030 для редактирования документа имеет конфигурацию частного режима работы. В одном варианте выполнения третий модуль 2218 определения устанавливает команду пользователя, представленную через интерфейс пользователя приложения 2030 для редактирования документа.

Если третий модуль 2218 определения определяет, что были представлены инструкции для выполнения обмена содержанием, тогда переходный процесс 2200 переходит к операции 2220 установки очереди, в которой обновления содержания подготавливают для передачи в устройство накопитель. Например, обновления содержания могут быть сохранены в кэш обновления, таком как кэш 2033 обновления (фиг.20). Переходный процесс 2200 переходит ко второй операции 2222 обмена и выполняет ее, как описано выше.

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

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

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

1. Система для редактирования документа, предназначенная для редактирования пользовательской копии (155, 655, 855, 2055) документа в устройстве (110, 610, 810, 2010) пользователя, причем пользовательскую копию генерируют на основе главной копии (150) документа, при этом система для редактирования документа содержит:
локальный кэш (426, 635, 835, 2035), сохраненный в устройстве пользователя, локальный кэш включает в себя кэш (2031) накопитель и кэш (2033) выгрузки;
приложение (130, 424, 1130, 2030) для редактирования документа, выполненное с возможностью выполнения в устройстве пользователя приложения для редактирования документа, которое выполнено с возможностью редактирования пользовательской копии документа, причем приложение для редактирования документа выполнено с возможностью избирательной установки конфигурации в рабочий режим, выбранный из группы, состоящей из открытого режима работы и частного режима работы, приложение для редактирования документа выполнено с возможностью генерирования обновления метаданных на основе редактирования, выполненного в пользовательской копии документа, и для генерирования обновления содержания на основе редактирования, произведенного в пользовательской копии документа;
модуль (639, 839, 2039) синхронизации метаданных, выполненный с возможностью синхронизации обновления метаданных между пользовательской копией документа и главной копией документа, независимо от режима работы, в котором сконфигурировано приложение для редактирования документа;
модуль (634, 834) защиты, выполненный с возможностью сохранения сгенерированных обновлений содержания в кэш накопитель содержания локального кэша, когда защитный модуль принимает инструкции на сохранение документа, причем модуль защиты также дополнительно выполнен с возможностью сохранения сгенерированных обновлений содержания в кэш выгрузки, когда сгенерированные обновления содержания сохраняют в кэш накопитель, если приложение для редактирования документа сконфигурировано в открытом режиме работы; и
модуль (632, 832) публикации, выполненный с возможностью обмена обновлениями содержания, сохраненными в кэш выгрузки, с главной копией документа, в которой обмен обновлениями содержания с главной копией документа интегрирует обновления содержания в главную копию документа.

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

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

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

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

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

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

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

9. Реализуемый компьютером способ синхронизации пользовательской копии документа с главной копией документа, причем пользовательская копия документа сохранена в устройстве (110, 610, 810, 2010) пользователя, и главная копия (150) документа сохранена в устройстве (120, 620, 820, 1120) накопителе, которое выполнено с возможностью соединения с передачей данных с устройством пользователя, способ, содержащий этапы, на которых:
соединяют устройство (110, 610, 810, 2010) пользователя с устройством накопителем;
выбирают частный режим работы для приложения (130, 424, 1130, 2030) для редактирования документа;
редактируют в устройстве пользователя пользовательскую копию (155, 655, 855, 2055) документа с помощью приложения для редактирования документа, для генерирования, по меньшей мере, первого обновления содержания;
периодически передают из устройства пользователя в устройство-накопитель любые обновления метаданных, генерируемых путем редактирования пользовательской копии документа, в котором обновления метаданных представляют в главную копию (150), сохраненную в устройстве-накопителе;
сохраняют в устройстве пользователя обновление содержания, сгенерированное путем редактирования пользовательской копии документа;
периодически принимают в устройстве пользователя внешние обновления метаданных из главной копии документа, если главная копия была обновлена так, что она включает в себя внешние обновления метаданных;
представляют внешние обновления метаданных, принятые из главной копии документа в пользовательскую копию документа;
периодически принимают в устройстве пользователя внешние обновления содержания из главной копии документа после обновления главной копии так, что она включает в себя внешние обновления содержания.

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

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

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

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

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

15. Считываемый компьютером носитель информации, в котором содержатся выполняемые компьютером инструкции, которые выполняют способ редактирования документа для пользовательской копии (155, 655, 855, 2055) документа, сохраненной в устройстве (110, 610, 810, 2010) пользователя, при выполнении с помощью вычислительного устройства, способ, содержащий этапы, на которых:
конфигурируют приложение (130, 424, 1130, 2030) для редактирования документа в открытом режиме работы, в котором приложение для редактирования документа выполнено с возможностью выполнения в устройстве (110, 610, 810, 2010) пользователя для редактирования пользовательской копии (155, 655, 855, 2055) документа, в котором устройство пользователя находится в автономном режиме работы;
редактируют пользовательскую копию документа с помощью приложения для редактирования документа, для генерирования множества обновлений содержания;
сохраняют в устройстве пользователя любые метаданные, сгенерированные приложением для редактирования документа;
сохраняют в очереди (2031) в устройстве пользователя обновления содержания, сгенерированные приложением для редактирования документа;
соединяют устройство пользователя с устройством накопителем;
выполняют обмен метаданными с главной копией (150) документа, когда устройство пользователя подключают к устройству накопителю, даже если приложение для редактирования документа будет закрыто до подключения устройства пользователя.

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

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

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

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

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



 

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

Изобретение относится к вычислительной технике. .

Изобретение относится к области обнаружения и реагирования на уязвимости. .

Изобретение относится к стратегии для оценки и подавления уязвимостей в окружении обработки данных. .

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

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

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

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

Изобретение относится к вычислительной технике

Изобретение относится к вычислительной технике

Изобретение относится к средствам идентификации и аутентификации пользователя преимущественно электронных платежных средств

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

Изобретение относится к блоку, включающему в себя встроенный центральный процессор (CPU), и устройству формирования изображений, использующему встроенный центральный процессор
Наверх