RU2598325C2 - Сериализация команд редактирования документа - Google Patents

Сериализация команд редактирования документа Download PDF

Info

Publication number
RU2598325C2
RU2598325C2 RU2013119974/08A RU2013119974A RU2598325C2 RU 2598325 C2 RU2598325 C2 RU 2598325C2 RU 2013119974/08 A RU2013119974/08 A RU 2013119974/08A RU 2013119974 A RU2013119974 A RU 2013119974A RU 2598325 C2 RU2598325 C2 RU 2598325C2
Authority
RU
Russia
Prior art keywords
document
computer
commands
command
server computer
Prior art date
Application number
RU2013119974/08A
Other languages
English (en)
Other versions
RU2013119974A (ru
Inventor
Джеффри ХУАН
Дачуань ЧЖАН
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2013119974A publication Critical patent/RU2013119974A/ru
Application granted granted Critical
Publication of RU2598325C2 publication Critical patent/RU2598325C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)

Abstract

Изобретение относится к средствам сериализации команд редактирования документа. Технический результат заключается в уменьшении появления ошибок при согласованности изменений между двумя версиями документами. Сохраняют документ на компьютере-сервере. Принимают множество пользовательских команд, используя основывающиеся на web приложения, предписывающих модифицировать документ. Выполняют сериализацию принятых команд. Сохраняют сериализованные команды в последовательном порядке в потоке команд отдельно от документа. Определяют, является ли компьютер-сервер сильно загруженным компьютером-сервером. Если компьютер-сервер является сильно загруженным компьютером-сервером, то определяют, есть ли выполняющаяся в текущий момент сессия редактирования документа для данного документа. Если есть выполняющаяся в текущий момент сессия редактирования документа, применяют поток команд к документу. Переносят документ на несильно загруженный компьютер-сервер. 3 н. и 14 з.п. ф-лы, 9 ил.

Description

Уровень техники
Разработаны приложения Всемирной паутины («Web»), которые позволяют создавать и редактировать разнообразные документы. Например, имеются Web-приложения для создания и редактирования текстовых документов, электронных таблиц, презентаций и других типов документов. Эти документы можно также создавать и редактировать в совместимом клиентском приложении. Например, клиентское приложение для обработки текстов может выполняться на настольном компьютере или лэптопе и использоваться для создания текстового документа. Затем этот текстовый документ можно отредактировать, используя подходящее Web-приложение.
При использовании современных Web-приложений возникает одна проблема, когда пользователь Web-приложения редактирует документ одновременно с редактированием этого документа другим пользователем, использующим клиентское приложение. В этом сценарии создаются две версии документа. Одна версия документа содержит правки, сделанные с использованием Web-приложения, вторая версия документа содержит правки, сделанные с использованием клиентского приложения. Это может затруднить согласование изменений между двумя версиями данного документа.
Другая проблема, связанная с использованием современных Web-приложений, возникает тогда, когда клиентское приложение, такое как приложение Web-браузера, отсоединяется от сервера, разместившего Web-приложение. В этом сценарии могут возникнуть трудности при возвращении отредактированного документа в его предыдущее состояние, когда будет вновь установлено соединение приложения с сервером. Следовательно, при указанном отсоединении возможна потеря выполненных правок документа.
При использовании современных Web-приложений возможно появление других проблем, поскольку могут возникнуть трудности при переносе выполняющихся в данный момент сессий редактирования между компьютерами-серверами. Например, если Web-сервер, который реализует Web-приложение или размещает сессии редактирования, оказывается перегруженным, то могут возникнуть трудности при переносе выполняющихся в данный момент сессий редактирования на другой сервер для выравнивания нагрузки. Аналогичным образом могут возникнуть трудности при обновлении Web-приложения на компьютере-сервере, который выполняет в данный момент сессии редактирования.
В данном описании представлены вышеупомянутые и другие соображения.
Сущность изобретения
Здесь описаны технологии сериализации команд редактирования документа. Посредством реализации представленных здесь концепций и технологий можно создать единый документ, содержащий модификации к документу, выполненные с использованием как Web-приложения, так и клиентского приложения. Посредством реализации представленных здесь концепций и технологий можно также восстановить отредактированное состояние после отсоединения от Web-приложения. Вдобавок можно выровнять нагрузку между серверами, которые размещают у себя Web-приложения, и усовершенствовать их в ходе выполнения сессий редактирования.
Согласно одному представленному здесь аспекту обеспечено Web-приложение для создания и редактирования документов. Например, в одном варианте реализации Web-приложение предоставляет функциональные возможности для создания и редактирования документа презентации с использованием прикладной процедуры Web-браузера. Web-приложение запоминает документ или имеет доступ к месту в сети, где этот документ хранится.
Команды для модификации документа создаются посредством использования прикладной программы Web-браузера и передаются в Web-приложение, исполняющееся на компьютере-сервере. Web-приложение принимает упомянутые команды и выполняет их сериализацию. Она может включать в себя, например, добавление к командам данных, указывающих время приема команд и очередность этих команд во времени. Затем сериализованные команды запоминаются в виде потока команд. Этот поток команд хранится отдельно от документа. Следует понимать, что поток команд представляет различие (которое может упоминаться здесь как «дельта») между исходным документом и его текущим состоянием. Применение к документу команд, запомненных в потоке команд, переведет его в текущее состояние.
Согласно другому аспекту, поток команд можно применить к документу, когда через Web-приложение принят запрос на сохранение документа. Например, при приеме запроса на сохранение документа команды в потоке команд можно применить к документу в последовательном порядке (то есть в том порядке, в котором эти команды были первоначально созданы). Затем документ можно сохранить, как только указанные команды будут применены к указанному документу.
Согласно другому аспекту, вышеописанный поток команд можно использовать для совместной работы с документом. В одном примере клиентское приложение может модифицировать документ для создания модифицированного документа. Для редактирования одного и того же документа можно использовать Web-приложение, что приведет к созданию потока команд. Чтобы согласовать изменения между двумя версиями документа, команды в потоке команд можно применить к модифицированному документу. Таким образом, результирующий документ будет включать в себя правки, примененные к документу клиентским приложением, и правки, примененные к документу Web-приложением.
Согласно еще одному аспекту вышеописанный поток команд можно использовать для повышения качества функционирования Web-приложения. Например, Web-приложение можно сконфигурировать для поддержки потока команд в энергозависимой памяти, такой как память с произвольной выборкой («RAM»), для документов, как было описано выше. Для высвобождения памяти документ и поток команд можно хранить в запоминающем устройстве большой емкости, таком как накопитель на жестких дисках, и выгружать из энергозависимой памяти. При приеме дополнительных команд для данного документа его можно будет вернуть в текущее состояние, применив к этому документу запомненный поток команд. Затем можно выполнить сериализацию дополнительных команд и получить поток команд вышеописанным образом.
Согласно следующему аспекту, поток команд можно использовать для динамического выравнивания нагрузки на компьютерах-серверах, которые предоставляют Web-приложения. В этом варианте реализации идентифицируют один или несколько сильно загруженных компьютеров-серверов. Затем на этих сильно загруженных компьютерах-серверах идентифицируют выполняющиеся в данный момент сессии редактирования документов. Во время каждой из идентифицированных сессий редактирования к документу применяется поток команд. Затем документ перемещают на не сильно загруженный компьютер-сервер. В других вариантах осуществления поток команд и документ можно переместить на несильно загруженный компьютер-сервер без применения потока команд к данному документу. Затем на компьютер-сервер, на который был перемещен данный документ, возлагается ответственность за обработку данной сессии редактирования.
Согласно еще одному аспекту, поток команд можно использовать для выполнения без прерывания обновления на компьютере-сервере, который разместил у себя данное Web-приложение. В частности, идентифицируют выполняющуюся в данный момент сессию редактирования на компьютере-сервере, который выполняет версию Web-приложения низкого уровня. Затем документ и поток команд, связанный с идентифицированной, выполняющейся в данный момент сессией редактирования, перемещают на компьютер-сервер, исполняющий версию Web-приложения высокого уровня. Далее сессия редактирования возобновляется на компьютере-сервере, куда был перемещен документ и поток команд. Как только указанным образом все выполняющиеся в данный момент сессии редактирования будут перемещены на сервер низкого уровня, Web-приложение на этом сервере можно будет обновить. В одном варианте реализации команды в потоке команд применяют к документу до его перемещения на компьютер-сервер, исполняющий Web-приложение высокого уровня.
Следует иметь в виду, что описанный здесь поток команд можно также использовать для иных целей, таких как отмена/повторное выполнение восстановления документа и др. Также следует иметь в виду, что данный раздел предусмотрен для ознакомления в упрощенной форме с концепциями изобретения, которые подробно описаны ниже в разделе «Подробное описание изобретения». Данный раздел не претендует на идентификацию ключевых или существенных признаков заявленного изобретения, а также не предполагает использования его содержания для ограничения объема заявленного изобретения. Кроме того, заявленное изобретение не ограничивается вариантами реализации, которые устраняют какие-либо или все недостатки, отмеченные в той или иной части этого описания.
Краткое описание чертежей
Фиг.1 - схема программного обеспечения и архитектуры сети, показывающая одну, приведенную в качестве иллюстрации операционную среду для раскрытых здесь вариантов;
фиг.2 - схема архитектуры программного обеспечения, показывающая аспекты различных раскрытых здесь компонент для сериализации команд редактирования документа в одном раскрытом здесь варианте;
фиг.3 - схема структуры данных, показывающая аспекты потока команд, создаваемого и используемого в раскрытых здесь вариантах;
фиг.4 - логическая блок-схема, показывающая один иллюстративный процесс сериализации потока команд согласно одному раскрытому здесь варианту;
фиг.5 - схема структуры данных, показывающая аспекты одного процесса создания модифицированного документа, который включает в себя правки, выполненные в Web-приложении и клиентском приложении, согласно одному раскрытому здесь варианту;
фиг.6 - логическая блок-схема, показывающая один иллюстративный процесс оптимизации функционирования Web-приложения с использованием потока команд согласно одному раскрытому здесь варианту;
фиг.7 - логическая блок-схема, показывающая один иллюстративный процесс динамической балансировки нагрузки компьютера-сервера, разместившего у себя Web-приложение, с использованием потока команд согласно одному раскрытому здесь варианту;
фиг.8 - логическая блок-схема, показывающая один иллюстративный процесс обновления Web-приложения с использованием потока команд согласно одному раскрытому здесь варианту; и
фиг.9 - схема компьютерной архитектуры, показывающая в качестве иллюстрации аппаратную и программную архитектуру для вычислительной системы, способной реализовать различные, представленные здесь варианты.
Подробное описание изобретения
Последующее подробное описание раскрывает технологии сериализации команд для редактирования документов. Как кратко обсуждалось выше, можно создать поток команд, используя описанные здесь технологии, который включает в себя сериализованные команды для редактирования документа. Этот поток команд можно применить к модифицированному документу для создания единого документа, который содержит модификации документа, выполненные с использованием как Web-приложения, так и клиентского приложения. Поток команд можно также использовать: для восстановления отредактированного состояния документа после отсоединения от Web-приложения для редактирования документа; для балансировки нагрузки компьютера-сервера, разместившего у себя Web-приложение, даже в том случае, когда в данный момент выполняются сессии редактирования; для выполнения обновления сервера, разместившего у себя Web-приложение, когда в данный момент выполняются сессии редактирования, и для других целей.
Хотя описанное здесь изобретение представлено в общем контексте программных модулей, которые выполняются вместе с операционной системой и прикладными программами в компьютерной системе, специалистам в данной области техники очевидно, что могут выполняться другие варианты реализации в сочетании с другими типами программных модулей. В общем случае программные модули включают в себя стандартные программы, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют конкретные типы абстрактных данных. Кроме того, специалистам в данной области техники должно быть ясно, что описанное здесь изобретение можно реализовать на практике с помощью других конфигураций компьютерной системы, включая карманные устройства, микропроцессорные системы, бытовые электронные приборы на базе микропроцессоров или программируемые бытовые электронные приборы, миникомпьютеры, универсальные компьютеры и т.п.
В последующем подробном описании делаются ссылки на сопроводительные чертежи, образующие часть описания, на которых показаны в иллюстративных целях конкретные варианты или примеры. Обратимся теперь к этим чертежам, на которых одинаковые ссылочные позиции представляют одинаковые элементы на ряде фигур, с помощью которых далее описываются аспекты вычислительной системы и методика сериализации команд редактирования документа с получением потока команд и использования этого потока команд.
На фиг.1 представлена схема архитектуры программного обеспечения и сетевой архитектуры, иллюстрирующая одну операционную среду для раскрытых здесь вариантов. Операционная среда 100, показанная на фиг.1, сконфигурирована для предоставления Web-приложения 114 клиентскому компьютеру 104, исполняющему прикладную программу 102 Web-браузера. Следует иметь в виду, что используемый здесь термин «Web-приложение» предполагает, что речь идет о приложении, к которому возможен доступ и которое можно использовать посредством стандартных протоколов и технологий, таких как HTTP (Протокол передачи гипертекстовых файлов), SOAP (Простой протокол доступа к объектам), асинхронный JAVASCRIPT и др. Термин «Web-приложение» не ограничивается только теми приложениями, которые доступны через Всемирную паутину (www). Точнее, Web-приложение 114 может быть виртуально доступно через сеть 108 любого типа, в том числе, но не только: глобальные сети, локальные сети, беспроводные сети и сети других типов.
В операционной среде 100, показанной на фиг.1, предусмотрено несколько внешних (front-end) серверов 106А-106С для исполнения внешней компоненты 110. Запросы для Web-приложения 114, полученные от прикладной программы 102 Web-браузера, равномерно распределяются по внешним серверам 1067А-106С. Таким путем один из внешних серверов 106А-106С может быть выделен для конкретной сессии редактирования документа. Команды, созданные прикладной программой 102 Web-браузера для конкретной сессии редактирования, принимаются компонентой 110 внешнего сервера на внешнем сервере 106А-106С, выделенном для сессии редактирования. Затем эти команды направляют в копию Web-приложения 114, исполняемую на одном из внутренних (back-end) компьютеров-серверов 112А-112С. Также можно выполнить балансировку нагрузки внутренних компьютеров-серверов 112А-112С, чтобы гарантировать высококачественное функционирование Web-приложения 114.
Как также показано на фиг.1, каждый из внутренних серверов 112А-112С поддерживает один или несколько дисков 116А-116С для хранения исполняемого программного кода, такого как операционная система и Web-приложение 114. Диски 116А-116С также можно использовать для хранения документов 118А-118С. Документы 118А-118С могут также храниться в другом месте, доступном через сеть 108 или другую сеть.
Согласно одному варианту реализации Web-приложение 114 обеспечивает функциональные возможности для создания и редактирования одного или нескольких типов документов. Например, Web-приложение 114 может быть сконфигурировано для создания и редактирования текстового документа, документа в виде электронной таблицы, документа презентации или другого типа документа. Как будет более подробно описано ниже, клиентское приложение, выполняющееся на клиентском компьютере 104, можно также сконфигурировать для создания и редактирования типов документов, совместимых с документами 118А-118С, созданными Web-приложением 114. Например, можно создать документ на клиентском компьютере 104 с использованием клиентского приложения, а затем отредактировать его с помощью Web-приложения 114. Аналогичным образом документ можно создать в Web-приложении 114, а затем отредактировать его с использованием клиентского приложения, выполняющегося на клиентском компьютере 104.
Следует иметь в виду, что операционная среда 100, показанная на фиг.1, является просто иллюстрацией, то есть можно также использовать другие типы операционных сред. Например, в других вариантах внешние серверы 106А-106С могут не использоваться. Вдобавок в других вариантах также может использоваться большее или меньшее количество внутренних серверов 112А-112С. Кроме того, хотя на фиг.1 показан один клиентский компьютер 104, следует иметь в виду, что операционная среда 100, показанная на фиг.1, способна поддерживать одновременно намного большее число клиентских компьютеров 104. Специалистам в данной области техники очевидна возможность использования других типов операционных сред, способных поддерживать описанные здесь концепции и технологии.
На фиг.2 представлена схема архитектуры программного обеспечения, показывающая аспекты раскрытых здесь различных компонент для сериализации команд редактирования документа согласно одному раскрытому здесь документу. Как показано на фиг.2 и как было кратко описано выше, пользователь клиентского компьютера 104 может использовать приложение 102 Web-браузера для взаимодействия с Web-приложением 114. В частности, пользователь на клиентском компьютере 104 может создать команду 202 для модификации документа 118. Например, если документ 118 представляет собой документ презентации, то команда 202 может быть предназначена для добавления нового слайда в презентацию, добавления графического элемента в презентацию, добавления или модификации текста в презентации или выполнения задачи редактирования какого-либо другого типа. Если документ 118 представляет собой текстовый документ, команда 202 может представлять собой команду для добавления текста в этот документ, форматирования текста, добавления графических элементов или выполнения других правок в документе. Таким образом, следует иметь в виду, что используемый здесь термин «команда» относится к любому типу команд для модификации документа.
Каждая команда 202, созданная на клиентском компьютере 104, включает в себя данные, идентифицирующие, каким образом следует выполнить правку документа 118. Эти данные можно задать, используя расширяемый язык разметки («XML»), двоичное кодирование или в другом формате. Например, если команда 202 представляет собой команду для редактирования текста в документе 118, то данные, запомненные в команде 202, могут описывать позицию в документе, где должна быть выполнена правка, а также каким образом ее следует выполнить. Если команда 202 представляет собой команду для добавления слайда в презентацию, то команда 202 может включать в себя данные, указывающие позицию, на которую должен быть добавлен новый слайд, заголовок нового слайда и другую информацию. Аналогичным образом также могут быть представлены команды других типов.
Как было кратко обсуждено выше, команда 202 создается на клиентском компьютере 104 и передается на внешний сервер, такой как внешний сервер 106А. В свою очередь, внешний сервер 106А передает команду 202 на подходящий внутренний сервер 112, такой как внутренний сервер 112А. Как кратко обсуждалось выше, каждый внутренний сервер 112 работает с копией Web-приложения 114. Как кратко обсуждалось выше, каждый внутренний сервер 112 поддерживает или имеет доступ к дисковому запоминающему устройству 116, где хранится документ 118, к которому следует применить команду 202. Однако в отличие от применения команды 202 непосредственно к документу 118 Web-приложение 114 поддерживает поток 206 команд.
Как более подробно обсуждается ниже, поток 206 команд включает в себя сериализованную последовательность команд 202А-202N. Чтобы сериализовать команды 202, Web-приложение 114 может добавить в команды 202А-202N данные, указывающие абсолютное или относительное время создания этих команд. Для сериализации команд 202А-202N можно также использовать другие типы данных, например, порядковый номер. Затем команды 202А-202N запоминаются в последовательном порядке в потоке 206 команд. В примере, показанном на фиг.2, поток 206 команд запоминается в энергозависимой памяти 204 внутреннего сервера 112. Следует иметь в виду, что в других вариантах поток 206 команд может храниться на диске 116.
На фиг.3 представлена схема структуры данных, показывающая аспекты потока 206 команд, создаваемого и используемого в раскрытых здесь вариантах осуществления изобретения. В частности, на фиг.3 показаны команды 202А-202N, которые были сериализованы и размещены в последовательном порядке в соответствии с тем порядком, в котором создавались команды 202А-202N. Таким образом, следует иметь в виду, что поток 206 команд, хранящий команды 202А-202N, представляет различие между документом 118 до модификации и этим же документом в текущем состоянии. Как более подробно описано ниже, Web-приложение 114 может применить команды 202А-202N к потоку 206 команд в последовательном порядке, чтобы сформировать текущее состояние документа 118. Подробности, касающиеся этого процесса, и ряд приложений этого процесса описываются ниже со ссылками на фиг.4-8.
На фиг.4 представлена логическая блок-схема, показывающая одну типичную процедуру 400 для сериализации потока команд согласно одному раскрытому здесь варианту осуществления. Следует иметь в виду, что логические операции, описанные здесь применительно к фиг.4 и другим фигурам, реализованы: (1) в виде последовательности реализуемых на компьютере действий или программных модулей, выполняющихся в вычислительной системе; и/или (2) в виде соединенных между собой машинных логических схем или схемных модулей в вычислительной системе. Выбор того или иного варианта зависит от качества функционирования и других требований к вычислительной системе. Соответственно описанные здесь логические операции относятся к операциям, структурным устройствам, действиям или модулям. Эти операции, структурные устройства, действия или модули можно реализовать программными средствами, программно-аппаратными средствами (firmware), в специализированных цифровых логических схемах или с помощью любой комбинации вышеперечисленных средств. Также следует иметь в виду, что возможно выполнение большего или меньшего количества операций, чем здесь описано и показано на упомянутых фигурах. Эти операции также могут выполняться в порядке, отличном от здесь описанного.
Процедура 400 начинается с операции 402, в которой Web-приложение 114 принимает команду 202. В ответ на прием команды процедура 400 переходит к операции 404, в которой Web-приложение 114 выполняет сериализацию команды 202. Эта операция может включать в себя, например, добавление данных к команде 202, указывающих абсолютное или относительное время приема команды 202. Также можно использовать другие типы механизмов для сериализации команды 202. После выполнения сериализации команды 202 процедура 400 немедленно переходит от операции 404 к операции 406.
В операции 406 сериализованная команда 202 запоминается в потоке 206 команд. Затем процедура 400 переходит к операции 408, где Web-приложение 114 определяет, принят ли запрос на сохранение документа 118 в соответствии с потоком команд. Если нет, то процедура 400 переходит к операции 402, описанной выше, где принимаются дополнительные команды 202, и выполняется их сериализация вышеописанным образом. Если в операции 408 принят запрос на сохранение документа 118, то процедура 400 переходит к операции 410.
В операции 410 к документу 118 последовательно применяются команды 202А-202N в потоке 206 команд для текущего документа 118. Таким образом, команды 202А-202N, запомненные в потоке 206 команд, применяются к документу 118 в том порядке, в котором они были созданы. Документ 118 после применения потока 206 команд представляет текущее состояние документа 118. Сразу после применения к документу 118 потока 206 команд процедура 400 переходит к операции 412, где документ 118 сохраняется на диске 118. Затем процедура 400 переходит к операции 402, в которой выполняется прием, сериализация и запоминание в потоке 206 команд дополнительных команд 202.
На фиг.5 представлена схема структуры данных, показывающая аспекты одного процесса создания модифицированного документа, который включает в себя правки, сделанные как с помощью Web-приложения, так и клиентского приложения, в одном раскрытом здесь варианте. Как кратко обсуждалось выше, настольное клиентское приложение 502 можно использовать на клиентском компьютере 104, который способен редактировать документы, созданные Web-приложением 114. Например, как кратко обсуждалось выше, настольное клиентское приложение 502 для обработки текстов можно использовать для редактирования документа 118А, созданного Web-приложением 114. Аналогичным образом, Web-приложение 114 можно использовать для редактирования документа 118А, созданного настольным клиентским приложением. В примере, показанном на фиг. 5, настольное клиентское приложение 502 было использовано для создания модификаций 504 для исходного документа 118А. Результирующий документ представляет собой модифицированный документ 118D.
В одном сценарии прикладная программа 102 Web-браузера может также использовать Web-приложение 114 для создания модификаций для исходного документа 118А. Однако, как обсуждалось выше, модификации для исходного документа 118А, созданные с помощью Web-приложения 114, представлены в потоке 206 команд. Например, в показанном на фиг.5 примере был создан поток 206 команд, включающий в себя две команды 202А-202В.
Чтобы согласовать изменения между версией документа, созданного Web-приложением 114, и версией документа, созданного настольным клиентским приложением 502, Web-приложение 114 можно сконфигурировать для применения к модифицированному документу 118D команд 202А-202В в потоке 206 команд. Таким путем создают обновленный документ 118E, который включает в себя модификации 504, сделанные для документа 118А настольным клиентским приложением 502, а также включает в себя модификации, сделанные для этого документа с помощью Web-приложения 114. Благодаря созданию указанным образом обновленного документа 118Е раскрытые здесь концепции и технологии позволяют осуществлять параллельное редактирование («соредактирование»), используя настольное клиентское приложение 502 и Web-приложение 114.
Следует иметь в виду, что возможны конфликтные ситуации в обновленном документе 118Е. Например, настольное клиентское приложение 502 можно использовать для удаления части текста в документе 118А. Одновременно Web-приложение 114 можно использовать для редактирования текста, удаленного с помощью настольного клиентского приложения 502. В этом примере конфликт возникает тогда, когда поток 206 команд применяется к модифицированному документу 118D. Следует иметь в виду, что для разрешения этого конфликта можно использовать различные механизмы. Например, пользователя можно попросить сделать свой выбор между конфликтующими правками. Для разрешения конфликта между модификациями, выполненными в клиентском приложении 502 и Web-приложении 114, можно также использовать другие механизмы.
На фиг.6 представлена логическая блок-схема, показывающая одну иллюстративную процедуру 600 для оптимизации функционирования Web-приложения 114 с использованием потока 206 команд согласно раскрытому здесь варианту осуществления. Процедура 600 начинается с операции 602, где выполняется сериализация команд 202, принятых в Web-приложении 114, с образованием потока 206 команд. Затем процедура 600 переходит от операции 602 к операции 604, где документ 118 и связанный с ним поток 206 команд сохраняются на диске 116. После сохранения документа 118 и потока 206 команд процедура 600 немедленно переходит к операции 606, где выполняется загрузка потока 206 команд из памяти 204. Как показано на фиг.2, поток 206 команд может храниться в энергозависимой памяти 204 внутреннего сервера 112. В результате загрузки потока 206 команд из энергонезависимой памяти 204 память 204 может быть освобождена для использования в других целях.
От операции 600 процедура 600 переходит к операции 608, где Web-приложение 114 определяет, была ли принята дополнительная команды 202 для сохраненного документа 118. Если нет, то процедура 600 переходит к операции 608, где выполняется еще одно указанное определение. Если команда принята, то процедура 600 переходит к операции 610, где происходит загрузка документа 118 с диска. В энергозависимую память 204 внутреннего сервера 112 также может быть загружен поток команд, сохраненный на диске.
Затем процедура 600 переходит к операции 612, где к документу 118 вышеописанным образом применяется запомненный поток 206 команд. Как обсуждалось выше, результатом этого станет документ 118, который представляет текущее состояние документа после применения всех команд в потоке 206 команд. Затем процедура 600 переходит к операции 614, где выполняется сериализация вновь полученной команды в потоке 206 команд вышеописанным образом. После операции 614 процедура 600 переходит к операции 616, на которой она заканчивается.
На фиг.7 представлена логическая блок-схема, показывающая одну иллюстративную процедуру 700 для динамической балансировки нагрузки компьютера-сервера 112, разместившего у себя Web-приложение, с использованием потока команд согласно раскрытому здесь одному варианту. Процедура 700 начинается с операции 702, где идентифицируют сильно загруженный внутренний сервер 112А-112С. Сильно загруженным компьютером-сервером является компьютер-сервер, ресурсы которого, такие как циклы CPU, память, память большой емкости и/или другие типы ресурсов, используются относительно чаще, чем у других серверов. Как только сильно загруженный внутренний сервер 112А-112С идентифицирован, процедура 700 переходит к операции 704.
В операции 704 идентифицируют одну или несколько сессий редактирования на идентифицированном, сильно загруженном внутреннем сервере 112А-112С, передаваемых на другой внутренний сервер. Выполняющиеся в данный момент сессии редактирования, передаваемые на другой сервер 112, можно идентифицировать на основе ресурсов, используемых сессией редактирования, случайным образом или как-либо иначе. После идентификации одной или нескольких выполняющихся в данный момент сессий редактирования, передаваемых на другой сервер 112, процедура 700 переходит к операции 706.
В операции 706 к соответствующему документу могут быть применены некоторые либо все команды в потоке 206 команд для идентифицированных сессий редактирования. Таким путем каждый документ можно привести в его текущее состояние до передачи документа на другой внутренний сервер 112. Следует иметь в виду, что этот процесс не является обязательным, и что поток 206 команд может не применяться к документу, связанному с выполняющейся в данный момент сессией редактирования до передачи этой сессии редактирования на другой внутренний сервер 112.
От операции 706 процедура 700 переходит к операции 708, где документы 118 и потоки 206 команд для идентифицированных, выполняющихся в данный момент сессий редактирования передаются на менее загруженный внутренний сервер 112А-112С. Внутренний сервер 112А-112С, на который передаются выполняющиеся в данный момент сессии редактирования, можно идентифицировать на основе использования ресурсов внутренним сервером-адресатом, например, на основе использования CPU, использования памяти, использование диска и/или использование ресурсов других типов. Внутренний сервер 112А-112С, на который переданы выполняющиеся в данный момент сессии редактирования, берет на себя ответственность за обработку этих выполняющихся в данный момент сессий редактирования. Таким путем любые новые команды, полученные для выполняющейся в данный момент сессии редактирования, будут обрабатываться внутренним сервером-адресатом 112А-112С. Однако следует иметь в виду, что динамическая балансировка нагрузки между внутренними серверами 112А-112С может быть выполнена без прерывания выполняющихся в данный момент сессий редактирования. После операции 708 процедура 700 переходит к операции 710, где она заканчивается.
На фиг.8 представлена логическая блок-схема, показывающая одну иллюстративную процедуру 800 для обновления Web-приложения с использованием потока команд согласно одному раскрытому здесь варианту. Процедура 800 начинается с операции 802, где версия высокого уровня Web-приложения 114 реализуется на внутренних серверах 112, которые одновременно не поддерживают какие-либо сессии редактирования. Затем процедура 800 переходит к операции 804, где обновленным серверам 112 разрешается начать размещение сессий редактирования. Как только серверам 112 высокого уровня разрешается размещение у себя сессий редактирования, процедура 800 переходит к операции 806.
В операции 806 идентифицируются выполняющиеся в данный момент сессии редактирования на сервере 112, который выполняет Web-приложение 114 низкого уровня. Для каждой идентифицированной, выполняющейся в данный момент сессии редактирования к соответствующему документу применяются команды 202 в потоке 206 команд. Затем процедура 800 переходит к операции 808, где документы для выполняющихся в данный момент сессий редактирования передаются на обновленные серверы 112, на которых исполняется версия Web-приложения 114 высокого уровня. Затем серверы-компьютеры, которым были переданы указанные документы, берут на себя функцию размещения указанных, выполняющихся в данный момент сессий редактирования.
Как только все выполняющиеся в данный момент сессии редактирования будут перенесены с внутреннего сервера 112 низкого уровня, процедура 600 переходит к операции 810, где может быть выполнено обновление компьютеров-серверов низкого уровня с использованием версии Web-приложения 114 высокого уровня. Затем процедура 800 переходит с операции 810 к операции 812, где она заканчивается. С учетом вышесказанного следует иметь в виду, что Web-приложение 114 может обновляться и без воздействия на выполняющиеся в данный момент сессии редактирования.
На фиг.9 представлена схема компьютерной архитектуры, показывающая приведенные в качестве примера компьютерные аппаратные и программные средства для вычислительной системы, способной реализовать различные представленные здесь варианты. Компьютерная архитектура, показанная на фиг.9, соответствует стандартному настольному компьютеру, компьютеру типа «лэптоп» или компьютеру-серверу и может быть использована для выполнения различных описанных здесь программных компонент.
Компьютерная архитектура, показанная на фиг.9, включает в себя центральный процессор 902 («CPU»), системную память 908, включающую в себя память 914 с произвольным доступом («RAM») и память 916 только для считывания («ROM), а также системную шину 904, которая соединяет память с CPU 902. Базовая система ввода/вывода («BIOS»), содержащая базовые процедуры, которые помогают передавать информацию между элементами в компьютере 900, например, во время запуска, хранится в ROM 916. Компьютер 900 кроме того включает в себя запоминающее устройство 910 большой емкости для хранения операционной системы 918, прикладных программ и других программных модулей, которые более подробно описаны ниже.
Запоминающее устройство 910 большой емкости соединено с CPU 902 через контроллер памяти большой емкости (не показан), соединенный с шиной 904. Запоминающее устройство 910 большой емкости и соответствующий машиночитаемый носитель информации обеспечивают энергонезависимое хранение для компьютера 900. Хотя описание содержащегося здесь машиночитаемого носителя информации относится к запоминающему устройству большой емкости, такому как накопитель на жестком диске или компакт-диске (CD-ROM), специалистам в данной области техники очевидно, что машиночитаемый носитель информации может представлять собой любую имеющуюся компьютерную запоминающую среду, к которой возможен доступ со стороны компьютера 900.
Например, но не как ограничение, машиночитаемый носитель информации может включать в себя энергозависимую и энергонезависимую, съемную или несъемную среду, реализованную любым способом или по любой технологии, предназначенной для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Например, машиночитаемый носитель информации включает в себя, но не только: RAM (ОЗУ), ROM (ПЗУ), EPROM (стираемое программируемое ПЗУ), EEPROM (электрически стираемое программируемое ПЗУ), флэш-память или иная твердотельная память, выполненная по другой технологии, CD-ROM (ПЗУ на компакт-диске), цифровые универсальные диски («DVD»), HD-DVD (DVD высокой четкости), диски BLU-RAY или другое оптическое запоминающее устройство, магнитные кассеты, магнитная лента, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, либо любой другой носитель, который можно использовать для хранения необходимой информации и к которому может быть обеспечен доступ со стороны компьютера 900.
Следует иметь в виду, что описанный здесь машиночитаемый носитель информации также охватывает среды связи. Среда связи, как правило, содержит в себе считываемые компьютером команды, структуры данных, программные модули и другие данные в модулированном сигнале передачи данных, таком как несущая волна или другой механизм транспортировки, и включает в себя любую среду, обеспечивающую доставку информации. Термин «модулированный сигнал передачи данных» относится к сигналам, которые имеют одну или несколько характеристик, устанавливаемых или изменяемых таким образом, чтобы обеспечить кодирование информации в этом сигнале. Например, но не как ограничение, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная, инфракрасная или иная беспроводная среда. В понятие «машиночитаемый носитель информации», также следует включить комбинации из любых вышеперечисленных сред. Машиночитаемый носитель информации не включает в себя среду связи.
Согласно различным вариантам компьютер 900 может работать в сетевом окружении, используя логические соединения с удаленными компьютерами через сеть, такую как сеть 920. Компьютер 900 может быть подсоединен к сети 920 через блок 906 сетевого интерфейса, соединенный с шиной 904. Следует иметь в виду, что блок 906 сетевого интерфейса также можно использовать для подсоединения к сетям и удаленным компьютерным системам других типов. Компьютер 900 также может включать в себя контроллер 912 ввода/вывода для приема и обработки входных данных от ряда других устройств, в том числе клавиатуры, мыши или электронного пера (на фиг.9 не показаны). Аналогичным образом контроллер ввода/вывода может обеспечить вывод данных на экран дисплея, принтер или устройство вывода другого типа (также не показанных на фиг.9).
Как кратко упоминалось выше, в запоминающем устройстве 910 большой емкости и RAM 914 компьютера 900 может храниться несколько программных модулей и файлов данных, в том числе операционная система 918, подходящая для управления работой сетевого настольного компьютера, компьютера типа «лэптоп» или компьютера-сервера. Запоминающее устройство 910 большой емкости и RAM 914 также могут хранить один или несколько программных модулей. В частности, запоминающее устройство 910 большой емкости и RAM 914 могут хранить прикладную программу 102 Web-браузера и/или Web-приложение 114 и другие вышеописанные программные компоненты. Запоминающее устройство 910 большой емкости и RAM 914 также могут хранить другие программные модули и данные, например, поток 206 команд.
В общем случае программные приложения или модули при их загрузке в CPU 902 и исполнении позволяют преобразовать CPU 902 и весь компьютер 900, являющийся компьютерной системой общего назначения, в специализированную вычислительную систему, приспособленную к выполнению представленных здесь функций. CPU 902 может быть сформирован из некоторого количества транзисторов или других дискретных схемных элементов, которые по отдельности или вместе могут находиться в некотором количестве состояний. В частности, CPU 902 может функционировать как один или несколько конечных автоматов в соответствии с исполняемыми командами, содержащимися в программных средствах или модулях. Эти исполняемые компьютером команды могут преобразовать CPU 902, задав алгоритм перехода CPU 902 из состояния в состояние, тем самым обеспечив физическое преобразование состояний транзисторов или других дискретных аппаратных элементов, образующих CPU 902.
Кодирование программных средств или модулей в запоминающем устройстве большой емкости также обеспечивает преобразование физической структуры запоминающего устройства большой емкости или соответствующего машиночитаемого носителя информации. Конкретное преобразование физической структуры может зависеть от различных факторов в разных описанных здесь вариантах реализации. Примеры указанных факторов могут включать в себя, но не только: технологию, используемую для реализации машиночитаемого носителя информации независимо от того, является ли машиночитаемый носитель информации основной или вспомогательной памятью и т.п. Например, если машиночитаемый носитель информации реализован в виде памяти на основе полупроводников, то программные средства или модули могут преобразовать физическое состояние полупроводниковой памяти, если в ней закодированы указанные программные средства. Например, программные средства могут обеспечить преобразование состояний транзисторов, конденсаторов или других дискретных схемных элементов, образующих полупроводниковую память.
В другом примере машиночитаемый носитель информации может быть реализован с использованием магнитной или оптической технологии. В таких вариантах реализации программные средства или модули могут преобразовать физическое состояние магнитной или оптической среды, если эти программные средства в ней закодированы. Указанные преобразования могут включать в себя изменение магнитных характеристик конкретных мест в данной магнитной среде. Эти преобразования также могут включать в себя изменение физических свойств или характеристик конкретных мест в данной оптической среде для изменения оптических характеристик этих мест. Возможны другие преобразования физической среды, если они не выходят за рамки объема и существа настоящего изобретения, причем предшествующие примеры приведены только для облегчения обсуждения этого вопроса.
Из предшествующего описания очевидно, что здесь были представлены технологии для сериализации команд редактирования документа с получением потока команд, а также для использования полученного потока команд. Хотя представленное здесь изобретение было описано в терминах, характерных для описания структурных признаков компьютеров, методических действий и машиночитаемых носителей информации, должно быть понятно, что объем изобретения, определяемый в прилагаемой формуле изобретения, не ограничивается конкретными описанными здесь признаками, действиями или носителями. Скорее, раскрытые здесь конкретные признаки, действия и носители являются примерами реализации пунктов формулы изобретения.
Приведенное выше описание изобретения носит лишь иллюстративный характер, и его не следует трактовать как ограничение. Можно предложить различные модификации и изменения, касающиеся вышеописанного изобретения, не следуя описанным здесь иллюстративным вариантам и приложениям, при условии, что эти модификации и изменения не выходят за рамки существа и объема настоящего изобретения, которые изложены в нижеследующей формуле изобретения.

Claims (17)

1. Компьютерно-реализуемый способ сериализации команд редактирования документа, содержащий выполнение компьютерно-реализуемых операций, в соответствии с которыми:
сохраняют документ на компьютере-сервере;
принимают множество пользовательских команд, используя основывающиеся на web приложения, предписывающих модифицировать документ;
выполняют сериализацию принятых команд;
сохраняют сериализованные команды в последовательном порядке в потоке команд отдельно от документа;
определяют, является ли компьютер-сервер сильно загруженным компьютером-сервером;
если компьютер-сервер является сильно загруженным компьютером-сервером, то определяют, есть ли выполняющаяся в текущий момент сессия редактирования документа для данного документа;
если есть выполняющаяся в текущий момент сессия редактирования документа, применяют поток команд к документу; и затем
переносят документ на несильно загруженный компьютер-сервер.
2. Компьютерно-реализуемый способ по п. 1, дополнительно содержащий этапы, на которых:
принимают запрос на сохранение документа; и
в ответ на прием данного запроса применяют команды в потоке команд к документу в последовательном порядке и сохраняют документ.
3. Компьютерно-реализуемый способ по п. 2, в котором первое приложение модифицирует документ, чтобы сгенерировать модифицированный документ, при этом второе приложение применяет команды в сериализованном потоке команд к модифицированному документу.
4. Компьютерно-реализуемый способ по п. 3, в котором первое приложение представляет собой клиентское приложение рабочего стола, а второе приложение представляет собой web-приложение.
5. Компьютерно-реализуемый способ по п. 2, дополнительно содержащий этапы, на которых:
сохраняют документ и поток команд в запоминающем устройстве большой емкости;
выгружают поток команд из энергозависимой памяти;
принимают вторую команду;
в ответ на прием второй команды загружают документ из запоминающего устройства большой емкости, применяют поток команд к документу, выполняют сериализацию второй команды и сохраняют сериализованную вторую команду в потоке команд отдельно от документа.
6. Компьютерно-реализуемый способ по п. 1, дополнительно содержащий этапы, на которых:
определяют, есть ли выполняющаяся в текущий момент сессия редактирования документа на компьютере-сервере, исполняющем прикладную программу низкого уровня для редактирования документа;
если выполняющаяся в текущий момент сессия редактирования документа есть на компьютере-сервере, исполняющем такую прикладную программу низкого уровня, то переносят документ и поток команд, связанный с выполняющейся в текущий момент сессией редактирования документа, на компьютер-сервер, исполняющий прикладную программу высокого уровня для редактирования документа.
7. Компьютерно-реализуемый способ по п. 6, дополнительно содержащий этап, на котором применяют команды в потоке команд к документу в последовательном порядке перед переносом документа на компьютер-сервер, исполняющий упомянутую прикладную программу высокого уровня.
8. Машиночитаемый носитель информации, на котором сохранены машиноисполняемые команды, которые при их исполнении компьютером предписывают компьютеру:
сохранять документ на компьютере-сервере;
принимать множество пользовательских команд, используя основывающиеся на web приложения, предписывающих модифицировать документ;
выполнять сериализацию принятых команд;
сохранять сериализованные команды в последовательном порядке в потоке команд отдельно от документа;
принимать запрос на сохранение документа;
в ответ на прием данного запроса определять, является ли компьютер-сервер сильно загруженным компьютером-сервером;
если компьютер-сервер является сильно загруженным компьютером-сервером, то определять, есть ли выполняющаяся в текущий момент сессия редактирования документа для данного документа;
если есть выполняющаяся в текущий момент сессия редактирования документа, применять поток команд в потоке команд к документу в последовательном порядке и сохранять документ; и затем
переносить сохраненный документ на несильно загруженный компьютер-сервер.
9. Машиночитаемый носитель информации по п. 8, при этом первое приложение модифицирует документ, чтобы сгенерировать модифицированный документ, и второе приложение применяет команды в потоке сериализованных команд к модифицированному документу.
10. Машиночитаемый носитель информации по п. 9, при этом первое приложение представляет собой клиентское приложение рабочего стола и второе приложение представляет собой Web-приложение.
11. Машиночитаемый носитель информации по п. 8, на котором дополнительно сохранены машиноисполняемые команды, которые при их исполнении компьютером предписывают компьютеру:
определять, есть ли выполняющаяся в текущий момент сессия редактирования документа на компьютере-сервере, исполняющем прикладную программу низкого уровня для редактирования документа;
если выполняющаяся в текущий момент сессия редактирования документа есть на компьютере-сервере, исполняющем такую прикладную программу низкого уровня, то переносить документ и поток команд, связанный с выполняющейся в текущий момент сессией редактирования документа, на компьютер-сервер, исполняющий прикладную программу высокого уровня для редактирования документа.
12. Машиночитаемый носитель информации по п. 11, на котором дополнительно сохранены машиноисполняемые команды, которые при их исполнении компьютером предписывают компьютеру применять команды в потоке команд к документу в последовательном порядке перед переносом документа на компьютер-сервер, исполняющий упомянутую прикладную программу высокого уровня.
13. Машиночитаемый носитель информации по п. 8, на котором дополнительно сохранены машиноисполняемые команды, которые при их исполнении компьютером предписывают компьютеру:
сохранять документ и поток команд в запоминающем устройстве большой емкости;
выгружать поток команд из энергозависимой памяти;
принимать вторую команду;
в ответ на прием второй команды загружать документ из запоминающего устройства большой емкости, применять поток команд к документу, выполнять сериализацию второй команды и сохранять сериализованную вторую команду в потоке команд отдельно от документа.
14. Компьютерно-реализуемый способ сериализации команд редактирования документа, содержащий выполнение компьютерно-реализуемых операций, в соответствии с которыми:
сохраняют документ на компьютере-сервере;
принимают в первом приложении множество пользовательских команд, используя основывающиеся на web приложения, предписывающих модифицировать документ;
выполняют сериализацию принятых команд посредством первого приложения;
сохраняют сериализованные команды в последовательном порядке в потоке команд отдельно от документа;
модифицируют документ посредством второго приложения, создавая тем самым модифицированный документ;
определяют, является ли компьютер-сервер сильно загруженным компьютером-сервером;
если компьютер-сервер является сильно загруженным компьютером-сервером, то определяют, есть ли выполняющаяся в текущий момент сессия редактирования документа для данного документа;
если есть выполняющаяся в текущий момент сессия редактирования документа, применяют сериализованные команды в потоке команд к модифицированному документу посредством первого приложения; и затем
переносят сохраненный документ на несильно загруженный компьютер-сервер.
15. Компьютерно-реализуемый способ по п. 14, дополнительно содержащий этапы, на которых:
принимают в первом приложении запрос на сохранение документа; и
в ответ на прием данного запроса, применяют команды в потоке команд к документу в последовательном порядке и сохраняют документ.
16. Компьютерно-реализуемый способ по п. 15, дополнительно содержащий этапы, на которых:
сохраняют документ и поток команд в запоминающем устройстве большой емкости;
выгружают поток команд из энергозависимой памяти;
принимают вторую команду;
в ответ на прием второй команды загружают документ из запоминающего устройства большой емкости, применяют поток команд к документу, выполняют сериализацию второй команды и сохраняют сериализованную вторую команду в потоке команд отдельно от документа.
17. Компьютерно-реализуемый способ по п. 14, дополнительно содержащий этапы, на которых:
определяют, есть ли выполняющаяся в текущий момент сессия редактирования документа на компьютере-сервере, исполняющем прикладную программу низкого уровня для редактирования документа;
если выполняющаяся в текущий момент сессия редактирования документа есть на компьютере-сервере, исполняющем такую прикладную программу низкого уровня, то применяют команды в потоке команд к документу; и
переносят документ на компьютер-сервер, исполняющий прикладную программу высокого уровня для редактирования документа.
RU2013119974/08A 2010-11-04 2011-10-25 Сериализация команд редактирования документа RU2598325C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/939,171 2010-11-04
US12/939,171 US8527609B2 (en) 2010-11-04 2010-11-04 Serializing document editing commands
PCT/US2011/057611 WO2012061102A2 (en) 2010-11-04 2011-10-25 Serializing document editing commands

Publications (2)

Publication Number Publication Date
RU2013119974A RU2013119974A (ru) 2014-11-10
RU2598325C2 true RU2598325C2 (ru) 2016-09-20

Family

ID=46020675

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013119974/08A RU2598325C2 (ru) 2010-11-04 2011-10-25 Сериализация команд редактирования документа

Country Status (11)

Country Link
US (1) US8527609B2 (ru)
EP (1) EP2635978A4 (ru)
JP (1) JP5898685B2 (ru)
KR (1) KR101805959B1 (ru)
CN (1) CN102541831B (ru)
AU (1) AU2011323848B2 (ru)
CA (1) CA2816019C (ru)
RU (1) RU2598325C2 (ru)
SG (1) SG189479A1 (ru)
WO (1) WO2012061102A2 (ru)
ZA (1) ZA201302899B (ru)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120192064A1 (en) * 2011-01-21 2012-07-26 Oudi Antebi Distributed document processing and management
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US8874682B2 (en) * 2012-05-23 2014-10-28 Sybase, Inc. Composite graph cache management
US9110807B2 (en) 2012-05-23 2015-08-18 Sybase, Inc. Cache conflict detection
US20140082473A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies Of Event Content Based Document Editing, Generating Of Respective Events Comprising Event Content, Then Defining A Selected Set Of Events, And Generating Of A Display Presentation Responsive To Processing Said Selected Set Of Events, For One To Multiple Users
US20140082472A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies For Event Processing Of Events For Edits Made Relative To A Presentation, Selecting A Selected Set Of Events; And Generating A Modified Presentation Of The Events In The Selected Set
CN105630757B (zh) * 2014-11-07 2019-11-26 珠海金山办公软件有限公司 一种数据编辑方法及装置
US20160306782A1 (en) * 2015-04-20 2016-10-20 Infraware Inc. Method and apparatus for sharing common documents using dualized server
US10909080B2 (en) * 2015-05-04 2021-02-02 Microsoft Technology Licensing, Llc System and method for implementing shared document edits in real-time
US10102190B2 (en) * 2015-12-28 2018-10-16 Microsoft Technology Licensing, Llc. Memory conserving versioning of an electronic document
KR102187543B1 (ko) * 2019-02-07 2020-12-07 주식회사 한글과컴퓨터 문서 편집 서버와 연동하여 웹 기반의 문서 작성을 처리하는 전자 단말 장치 및 그 동작 방법
US11825142B2 (en) * 2019-03-21 2023-11-21 Divx, Llc Systems and methods for multimedia swarms

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220417A1 (en) * 2006-03-17 2007-09-20 Sonolink Communications Systems, Llc System and method for editing online documents
US20080077848A1 (en) * 2006-09-21 2008-03-27 International Business Machines Corporation Capturing and Processing Change Information in a Web-Type Environment
US7607129B2 (en) * 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
RU2379755C2 (ru) * 2004-04-01 2010-01-20 Майкрософт Корпорейшн Система и способ для совместного использования объектов между компьютерами по сети
US7769810B1 (en) * 2007-04-26 2010-08-03 Adobe Systems Incorporated Method and system for collaborative editing

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339389A (en) * 1991-12-31 1994-08-16 International Business Machines Corporation User selectable lock regions
US6901425B1 (en) 1996-12-23 2005-05-31 International Business Machines Corporation Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web
JP4541465B2 (ja) * 1998-09-10 2010-09-08 ミルストーン トランスファー エージー、エル.エル.シー. 電子タグ、電子タグ識別システム
JP2002091813A (ja) * 2000-09-18 2002-03-29 Ricoh Co Ltd 統合文書管理システム、方法、及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US6993528B1 (en) 2000-10-04 2006-01-31 Microsoft Corporation Methods and systems for allowing third party client applications to influence implementation of high-level document commands
JP2003122732A (ja) * 2001-10-16 2003-04-25 Nec Corp 情報通信システム
US20030163570A1 (en) 2002-02-26 2003-08-28 Sun Microsystems, Inc. Command line interface session tool
JP2003288285A (ja) * 2002-03-28 2003-10-10 Fujitsu Ltd サービス要求代行方法、サービス要求代行サーバ、及び、サービス要求代行システム
US7395203B2 (en) * 2003-07-30 2008-07-01 Tegic Communications, Inc. System and method for disambiguating phonetic input
US7409693B2 (en) 2003-10-30 2008-08-05 International Business Machines Corporation Method and system for providing version control of parameters in a command-based API using Java serialization
US7770181B2 (en) * 2004-01-16 2010-08-03 Microsoft Corporation System and method for transferring computer-readable objects across a remote boundary
US20060129634A1 (en) * 2004-11-18 2006-06-15 Microsoft Corporation Multiplexing and de-multiplexing graphics streams
US7814210B1 (en) * 2005-04-29 2010-10-12 Network Appliance, Inc. Non-disruptive server replacement for server-based clients
US8131860B1 (en) * 2006-03-30 2012-03-06 Emc Corporation Serialization and deserialization
US7810076B2 (en) * 2006-09-22 2010-10-05 International Business Machines Corporation Method and system for scaling standalone applications to be executed as internet applications
US7707191B2 (en) 2007-01-18 2010-04-27 Microsoft Corporation Synchronizing undo/redo operations between different document views
US8115773B2 (en) 2007-06-07 2012-02-14 Apple Inc. Serializing command streams for graphics processors
US8269780B2 (en) 2007-06-07 2012-09-18 Apple Inc. Batching graphics operations with time stamp tracking
CN101241505B (zh) * 2008-02-01 2013-08-21 张建中 一种生成、部署和运行多维地址可扩展关联标记语言的方法和装置以及系统
US8368705B2 (en) 2008-07-16 2013-02-05 Google Inc. Web-based graphics rendering system
JP2010092141A (ja) * 2008-10-06 2010-04-22 Konica Minolta Business Technologies Inc 画像処理システム、画像読取装置、画像処理装置および画像処理プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2379755C2 (ru) * 2004-04-01 2010-01-20 Майкрософт Корпорейшн Система и способ для совместного использования объектов между компьютерами по сети
US7607129B2 (en) * 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
US20070220417A1 (en) * 2006-03-17 2007-09-20 Sonolink Communications Systems, Llc System and method for editing online documents
US20080077848A1 (en) * 2006-09-21 2008-03-27 International Business Machines Corporation Capturing and Processing Change Information in a Web-Type Environment
US7769810B1 (en) * 2007-04-26 2010-08-03 Adobe Systems Incorporated Method and system for collaborative editing

Also Published As

Publication number Publication date
EP2635978A2 (en) 2013-09-11
CA2816019C (en) 2017-11-07
AU2011323848B2 (en) 2016-05-05
KR101805959B1 (ko) 2017-12-07
WO2012061102A2 (en) 2012-05-10
JP2013543190A (ja) 2013-11-28
WO2012061102A3 (en) 2012-07-19
US20120117194A1 (en) 2012-05-10
JP5898685B2 (ja) 2016-04-06
ZA201302899B (en) 2014-07-25
RU2013119974A (ru) 2014-11-10
AU2011323848A1 (en) 2013-05-23
US8527609B2 (en) 2013-09-03
EP2635978A4 (en) 2018-01-03
CN102541831B (zh) 2015-04-22
CA2816019A1 (en) 2012-05-10
CN102541831A (zh) 2012-07-04
KR20140003419A (ko) 2014-01-09
SG189479A1 (en) 2013-05-31

Similar Documents

Publication Publication Date Title
RU2598325C2 (ru) Сериализация команд редактирования документа
US10977438B2 (en) Latency reduction in collaborative presentation sharing environment
CN109388766B (zh) 页面加载的方法和装置
US11550819B2 (en) Synchronization cache seeding
RU2462749C2 (ru) Унифицированное предоставление физических и виртуальных образов
CN101650660B (zh) 从中央存储装置引导计算机系统
US9864528B2 (en) Data object observation among domain-restricted containers
US10261898B1 (en) Concurrent marking of location and shape changing objects
US9483493B2 (en) Method and system for accessing a distributed file system
US20110185360A1 (en) Multiprocessing transaction recovery manager
US7721278B2 (en) Modular server architecture for multi-environment HTTP request processing
CN111752901A (zh) 索引创建方法及装置、电子设备、存储介质
US20220188126A1 (en) Systems and methods for running applications associated with browser-based user interfaces within multi-developer computing platforms
CN109347936B (zh) Redis代理客户端的实现方法、系统、存储介质及电子设备
US8090769B2 (en) Dynamically generating web contents
US11683354B2 (en) Systems for resolving conflicts in collaborative digital content editing
US10579373B2 (en) Seamless extension porting
US8495558B2 (en) Modifier management within process models
CN105260231A (zh) 一种降低物理磁盘io读写的方法
JP2011165129A (ja) 要実行パッチリスト作成装置および方法

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant
MM4A The patent is invalid due to non-payment of fees

Effective date: 20181026