УРОВЕНЬ ТЕХНИКИ
[0001] Системы совместной работы над документами в режиме он-лайн могут поддерживать коллективную работу над документами. Коллективная работа позволяет многочисленным пользователям осуществлять доступ к одному и тому же документу, вносить изменения в документ и объединять изменения в системе совместной работы над документами. Когда разные пользователи редактируют одну и ту же часть документа, могут возникнуть трудности.
[0002] Например, двое пользователей могут вносить изменения в одну и ту же часть документа, и при объединении модификаций в отдельный документ система должна согласовывать эти изменения. Кроме того, могут возникнуть разногласия, когда пользователь попытается вернуться к предыдущему состоянию документа, когда другие пользователи тем временем модифицировали документ. Это может привести к неожиданным поступкам, например, когда некоторый пользователь пытается отменить изменения, которые пользователь внес в соавторский документ.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Варианты осуществления раскрытия направлены на сохранение метаданных во время операции отмены на клиентском компьютере. Первая секция документа модифицируется в приложении обработки текста на клиентском компьютере. Модификация первого раздела документа содержит выполнение одного или более действий пользователя в первом разделе документа. При модификации первого раздела документа на клиентский компьютер принимают метаданные для второго раздела документа. Второй раздел документа отличается от первого раздела документа. После приема метаданных для второго раздела документа метаданные вставляются во второй раздел документа.
[0004] После того как метаданные вставлены во второй раздел документа, в приложении обработки текста выполняется операция отмены. Операция отмены включает в себя этапы удаления метаданных из второго раздела документа, отмены последнего действия пользователя одного или более действий пользователя в первом разделе документа и восстановления метаданных для второго раздела документа.
[0005] Детали одного или более методов излагаются на прилагающихся чертежах и в нижеследующем описании. Другие признаки, цели и преимущества этих методов будут очевидны из описания, чертежей и формулы изобретения.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] На фиг.1 показана примерная система для обеспечения возможности отмены/возврата в документе при объединениях метаданных.
[0007] На фиг.2 показаны примерные модули примерного клиентского компьютера с фиг.1, которые реализуют возможность обеспечения возможности отмены/возврата в документе при объединениях метаданных.
[0008] На фиг.3 показаны примерные моментальные снимки примерного стека отмены/возврата.
[0009] На фиг.4 показана блок-схема последовательности операций примерной операции отмены, выполняемой на примерном клиентском компьютере.
[0010] На фиг.5 показан примерный клиентский компьютер с фиг.2, который реализует обеспечение возможности отмены/возврата в документе при объединениях метаданных.
ПОДРОБНОЕ ОПИСАНИЕ
[0011] Настоящее раскрытие направлено на системы и способы для обеспечения возможности отмены/возврата при объединениях метаданных в документе, который является коллективным (соавторским). Соавторский документ является документом, к которому могут осуществлять доступ и модифицировать многочисленные пользователи в одно и то же время.
[0012] По некоторым описанным в настоящем документе примерам возможность отмены/возврата обеспечивается при объединениях метаданных. Объединение метаданных происходит, когда метаданные, обычно абзац, блокируются от другого соавторствующего пользователя, вставляются в документ. Системы и способы раскрывают использование основанного на состоянии стека отмены/возврата, который хранит действия пользователя и который также хранит метаданные. Системы и способы эффективно позволяют пропускать хранящиеся в стеке метаданные, так что объединение метаданных не влияет на возможность отмены/возврата.
[0013] На фиг.1 показана примерная система 100 для обеспечения возможности отмены/возврата в документе при объединениях метаданных. Примерная система 100 включает в себя клиентов 102 и 104, сеть 106 и сервер 108. Может использоваться больше или меньше клиентов, серверов и сетей. В этом раскрытии термины "клиент" и "клиентский компьютер" используются взаимозаменяемо и термины "сервер" и "серверный компьютер" используются взаимозаменяемо.
[0014] В примерных вариантах осуществления клиенты 102 и 104 являются вычислительными устройствами, как дополнительно описано ниже.
[0015] Среди множества информации, хранимой клиентами 102, 104, существует клиентская операционная система ("ОС") и клиентские приложения. Клиентская ОС является программой, которая управляет ресурсами аппаратного обеспечения и программного обеспечения клиентской системы. Клиентские приложения используют ресурсы клиентов 102, 104 для непосредственного выполнения задач, указанных пользователем. Например, клиенты 102, 104 включают в себя одно или более приложений программного обеспечения, таких как программы обработки текста, которые используются для создания и редактирования файлов документов. Одним примером такого приложения является приложение обработки текста Microsoft Word от корпорации Microsoft из Редмонда, Вашингтон. Также применимы другие примеры таких приложений.
[0016] В примерных вариантах осуществления сеть 106 является локальной сетью (LAN), глобальной сетью (WAN) или Интернетом. Клиенты 102 и 104 могут осуществлять удаленный доступ к серверу 108 и ресурсам, присоединенным к серверу 108.
[0017] Примерный сервер 108 обычно включает в себя операционную систему, подходящую для управления работой сетевого компьютера, такую как операционные системы WINDOWS® от корпорации Microsoft из Редмонда, Вашингтон, или сервера, такую как Windows Server 2008 также от корпорации Microsoft из Редмонда, Вашингтон.
[0018] В примерном варианте осуществления примерная система 100 является системой совместной работы над документами на основе браузера в режиме он-лайн. Примером системы совместной работы над документами на основе браузера в режиме он-лайн является программное обеспечение командных сервисов SHAREPOINT® от корпорации Microsoft из Редмонда, Вашингтон. В примерной системе 100 сервер 108 является сервером Microsoft SharePoint, например Microsoft Office SharePoint Server 2007, от корпорации Microsoft из Редмонда, Вашингтон.
[0019] В примерных вариантах осуществления клиенты 102 и 104 могут соавторствовать над документом, хранящимся на сервере 108. Примерный документ включает в себя один или более разделов. Каждый раздел документа обычно представляет собой абзац. Однако разделом может быть любая подчасть документа, например предложения, абзацы, заголовки, чертежи, таблицы и так далее. Документ может содержать только один раздел, например одиночную таблицу, предложение, или многочисленные разделы, как, например, многочисленные таблицы, предложения или абзацы. Для раскрытого в настоящем документе примерного варианта осуществления раздел документа является абзацем документа.
[0020] Когда соавторствующий пользователь на клиенте 102 набирает в абзац документа, примерный клиент 102 отправляет касающиеся абзаца метаданные на сервер 108. Метаданные находятся обычно в виде блокировки абзаца, указывающей то, что клиент 102 заблокировал редактируемый абзац. В одном примере абзац идентифицируется как редактируемый, когда пользователь вносит модификацию в абзац. В другом примере абзац идентифицируется как редактируемый, когда пользователь помещает курсор в абзац. Примерный клиент блокирует редактируемый абзац, потому что только одному соавторствующему пользователю позволено редактировать конкретный абзац документа в одно и то же время.
[0021] Когда сервер 108 принимает метаданные от клиента 102, сервер 108 идентифицирует всех других соавторствующих пользователей, у которых может быть открыт документ. Сервер 108 передает метаданные идентифицированным соавторствующим пользователям. Например, если у соавторского пользователя на примерном клиенте 104 открыт документ, то сервер 108 вставляет метаданные в документ, открытый соавторствующим пользователем на клиенте 104.
[0022] В примерных вариантах осуществления сервер 108 вставляет блокировку абзаца в абзац документа, открытого соавторствующим пользователем на клиенте 104, который соответствует абзацу, редактируемому соавторствующим пользователем на клиенте 102. Блокировка предотвращает редактирование соавторствующим пользователем на клиенте 104 абзаца, в который вставлена блокировка. Однако соавторствующий пользователь на клиенте 104 может редактировать любой другой абзац в документе, который не заблокирован. Соавторствующий пользователь на клиенте 104 может также создать один или более новых абзацев в документе, открытом на клиенте 104, и редактировать эти абзацы.
[0023] В течение курса редактирования на клиенте 104 соавторствующий пользователь может захотеть отменить действие пользователя. Например, соавторствующий пользователь может набрать неверную клавишу или, возможно, сделал форматирующее изменение, которое соавторствующий пользователь желал бы отменить, или соавторствующий пользователь мог выполнить операцию вырезания и вставки, которую коллективный пользователь может захотеть отменить. Возможны другие действия пользователя, которые соавторствующий пользователь может захотеть отменить.
[0024] Дополнительные примеры операций отмены описаны в патенте США № 7499955, поданном 30 марта 2005 года, и в патентной заявке США № 11/623234, поданной 15 января 2007 года, оба из которых включены в настоящий документ по ссылке.
[0025] Одним способом отмены действия пользователя для соавторствующего пользователя на примерном клиенте 104 является выполнение операции отмены, например, посредством нажатия примерной клавиши отмены на клиенте 104. Обычно операция отмены отменяет последнее действие и возвращает документ к предыдущему действию. Например, если соавторствующий пользователь набирает в документе буквы "t", "h" и "e", то, нажимая примерную клавишу отмены на примере 104, удаляет последнее действие (например, набор буквы "e"), так что после операции отмены документ содержит буквы "t" и "h".
[0026] Действия пользователя обычно сохраняются в программном стеке, например стеке отмены/возврата, для того чтобы позволить отменить действия пользователя. Например, если пользователь набрал букву "t", то буква "t" будет сохранена в стеке отмены/возврата. Затем, когда набрана буква "h", буква "h" сохраняется в стеке отмены/возврата, и когда набрана буква "e", буква "e" сохраняется в стеке отмены/возврата. В примерных вариантах осуществления действительная буква может не сохраняться в стеке. Вместо этого может быть сохранен указатель на область в памяти. Область в памяти может содержать действительную букву.
[0027] Программные стеки, например стек отмены/возврата, работают по принципу последний пришел/первым ушел. Для вышеуказанного примера, буква "e" первая уходит из стека, потому что буква "e" была последней из трех букв сохранена в стеке. Во время примерной операции отмены буква "e" выталкивается из стека, оставляя букву "h" на вершине стека.
[0028] Блокировки метаданных также хранятся в примерном стеке отмены/возврата. Если пользователь набирает в абзаце, то каждая буква, которую набирает пользователь, последовательно сохраняется в стеке отмены/возврата. Однако если блокировка метаданных принимается при наборе пользователем, то блокировка также сохраняется в стеке отмены/возврата. Причина того, что блокировка сохраняется в стеке отмены/возврата, состоит в том, что в приложениях обработки текста, подобных Microsoft Word, стек отмены/возврата обычно хранит каждое действие, в том числе блокировки. Следовательно, желательно, чтобы, когда пользователь выполняет операцию отмены, блокировка обычно сохранялась вместо того, чтобы отбрасываться, так как блокировка размещается на вершине стека отмены/возврата. Это приводит к такому поведению отмены/возврата, которое ожидается пользователем. То есть пользователь обычно ожидает операцию отмены для отмены последнего действия пользователя, а не удаления любых блокировок в документе.
[0029] Для того чтобы сохранить блокировку абзаца во время операции отмены, в примерных вариантах осуществления, когда происходит операция отмены, блокировка абзаца удаляется из стека отмены/возврата и временно сохраняется в памяти на клиентском компьютере. Затем действие пользователя, сохраненное на вершине стека отмены/возврата, отменяется. После того как действие пользователя, сохраненное на вершине стека отмены/возврата, отменено, блокировка абзаца берется из памяти и сохраняется обратно в стек. Таким образом, с воспринимаемой позиции пользователя операция отмены проходит, как ожидалось, и в документе обеспечивается блокировка.
[0030] На фиг.2 показаны примерные модули на примерном клиенте 102. Примерный клиент 102 включает в себя примерный модуль 202 обработки данных, примерный модуль 204 объединения метаданных, примерный модуль 206 пользовательского интерфейса и примерный модуль 208 отмены/возврата. Примерный модуль 202 обработки данных содержит программу обработки текста, такую как приложение обработки текста Microsoft Word от корпорации Microsoft из Редмонда, Вашингтон.
[0031] Примерный модуль 204 объединения метаданных обрабатывает принятые от примерного сервера 108 метаданные и вставляет метаданные в соответствующие разделы документов, открытых на клиентском компьютере 102. Обычно метаданные представляют блокировки разделов документа, редактируемого другими соавторствующими пользователями. Когда примерный модуль 204 объединения метаданных принимает блокировку от сервера 108 для конкретного раздела документа, то примерный модуль 204 объединения метаданных вставляет блокировку в соответствующий раздел документа, открытого на клиентском компьютере 102. Блокировка предотвращает редактирование соавторствующим пользователем на клиенте 102 раздела документа, на который направлена блокировка. В примерных вариантах осуществления раздел документа соответствует абзацу документа. В других вариантах осуществления степень разбиения разделов документа может варьироваться, как описано выше.
[0032] Примерный модуль 206 пользовательского интерфейса принимает блокировку от примерного модуля 204 объединения метаданных и отображает блокировку в соответствующем разделе документа. Например, примерный модуль 206 пользовательского интерфейса может поставить скобку вблизи абзаца, чтобы указать, что абзац заблокирован. В качестве примера, примерный модуль пользовательского интерфейса может вставить иконку, представляющую блокировку, рядом с абзацем, который должен быть заблокирован. Кроме того, примерный модуль пользовательского интерфейса может отображать имя пользователя, который соавторствует над абзацем. Возможны другие примеры. Когда пользователь видит графическое указание, что абзац заблокирован, то пользователь проинформирован, что редактирование этого абзаца отключено до тех пор, пока не будет удалена блокировка.
[0033] Дополнительные подробности относительно таких блокировок могут быть найдены в патентной заявке США № 12/145536, поданной 25 июня 2008 года, которая в полном объеме включена в настоящий документ посредством ссылки. Возможны другие конфигурации.
[0034] Примерный модуль 208 отмены/возврата обрабатывает запросы отмены и возврата и выполняет операции отмены и возврата в документе при обеспечении целостности любых блокировок метаданных в документе. Примерный модуль 208 отмены/возврата включает в себя примерный стек отмены/возврата. Примерный стек отмены/возврата включает в себя раздел отмены и раздел возврата. Тогда как традиционные программные стеки проталкивают записи в стек и выталкивают записи из стека, то примерный стек отмены/возврата предоставляет маркер для конкретной части стека отмены/возврата. Действия пользователя и блокировки метаданных сохраняются или удаляются из стека отмены/возврата в зависимости от того, куда указывает маркер в стеке отмены/возврата. Как было рассмотрено, в примерных вариантах осуществления примерный стек отмены/возврата может хранить указатели на действия пользователя и указатели на блокировки метаданных.
[0035] Когда принят запрос отмены, примерный модуль 208 отмены/возврата проверяет стек отмены/возврата на клиентском компьютере 102 и удаляет любые блокировки метаданных из части отмены стека отмены/возврата. Все удаленные блокировки метаданных из части отмены стека отмены/возврата затем временно сохраняются в памяти на клиентском компьютере 102. Затем последнее действие пользователя удаляется из стека отмены/возврата и последнее действие пользователя возвращается. Например, если последним действием пользователя было выделение символа жирным начертанием, операция отмены удаляет жирное начертание с символа.
[0036] После того как операция отмены завершена, примерный модуль 208 отмены/возврата извлекает блокировки, временно сохраненные в памяти, и восстанавливает блокировки в стек отмены/возврата. Примерный модуль отмены/возврата восстанавливает блокировки в порядке, обратном тому, в котором блокировки были удалены из стека отмены/возврата. Например, если из стека отмены/возврата были удалены две блокировки, вторая удаленная блокировка восстанавливается в стек первой, а первая удаленная блокировка восстанавливается в стек следующей. Затем блокировки в стеке находятся в том же порядке, как и до удаления последнего действия пользователя из стека отмены/возврата. Таким образом, блокировки восстанавливаются при минимизации какого-либо отрицательного воздействия на восприятие пользователя, такого как неотзывчивое и неправильное поведение пользовательского интерфейса.
[0037] Стек отмены/возврата также позволяет повторять операции отмены. Например, если действие пользователя удаляется из раздела отмены стека отмены/возврата в результате операции отмены, то действие пользователя сохраняется в части возврата стека отмены/возврата. Если определено, что операция отмены должна быть обращена, например, посредством нажатия примерной кнопки возврата на примерном клиентском компьютере 102, то действие пользователя удаляется из части возврата стека отмены/возврата и восстанавливается в документ и в часть отмены стека отмены/возврата. Например, если операция отмены удаляет букву "e" из документа, то операция возврата восстанавливает букву "e". К тому же операция возврата восстанавливает букву "e" в часть отмены стека отмены/возврата.
[0038] На фиг.3 показан примерный стек отмены/возврата и примерный документ на моментальных снимках сессии пользовательского редактирования. По примерным иллюстрациям каждая буква представляет содержимое конкретного абзаца, например абзацев А, В, С и D.
[0039] На моментальном снимке 302 пользователь открывает документ, который содержит содержимое в абзаце А. Так как не было сделано редактирований, то примерный стек отмены/возврата пуст.
[0040] На моментальном снимке 304 пользователь создает содержимое для параграфа B. Примерный стек отмены/возврата показывает горизонтальную линию 314, которая показывает разграничение между частью возврата примерного стека отмены/возврата и частью отмены примерного стека отмены/возврата. Часть отмены примерного стека отмены/возврата является нижней частью 316. На моментальном снимке 304 нижняя часть 316 примерного стек отмены/возврата показывает "-B". "-B" представляет действия отмены для абзаца B. Каждое сделанное действие пользователя в примерном абзаце B представлено символом "-B". Например, если пользователь набрал в абзаце B только символы "T", "h" и "e", то каждый символ вставляется в стек отмены/возврата в наборном порядке, первый "T", затем "h" и затем "e". Для простоты все эти действия представлены символом "-B".
[0041] На моментальном снимке 306 пользователь создает содержимое для абзаца C. Следовательно, раздел документа снимка 306 показывает, что теперь документ имеет содержимое в абзацах А, В и С. К тому же символ "-C" добавлен в нижнюю часть 318 стека отмены/возврата.
[0042] На моментальном снимке 308 принята блокировка на примерном клиентском компьютере 102 для абзаца A в качестве результата объединения метаданных. Блокировка представлена символом 320 блокировки вблизи абзаца A. Блокировка является метаданными, представляющими, что соавторствующий пользователь на клиентской системе, например клиентском компьютере 104, редактирует абзац A. Когда блокировка принята на клиентском компьютере 102, блокировка также добавляется в раздел отмены стека отмены/возврата. Это представлено примерным символом 322 блокировки. Блокировка 322 также показана со скобкой, посредством скобки 324, вблизи предыдущей записи "-C" в части отмены стека отмены/возврата. Причина, по которой блокировка показана со скобкой вблизи предыдущей записи "-C", состоит в выделении состояния документа до объединения метаданных.
[0043] На моментальном снимке 310 пользователь на примерном клиентском компьютере 102 решает выполнить операцию отмены, чтобы отменить последнюю сделанную запись в абзаце C. Когда операция отмены выполнена, то примерный модуль 208 отмены/возврата временно удаляет блокировку в примерном документе 330, выполняет операцию отмены для последней сделанной записи в абзаце C и затем повторно вставляет блокировку в примерный документ 330. Эти действия добавлены в часть 326 возврата примерного стека отмены/возврата. Эти действия добавлены в часть 326 возврата примерного стека отмены/возврата, то есть действия могут быть обращены, если необходимо, посредством операции возврата.
[0044] Примерная часть 326 возврата примерного стека отмены/возврата показывает, что для возврата действия отмены для последней сделанной записи в абзац C, идущей снизу вверх примерной части 326 возврата примерного стека отмены/возврата, сначала удаляется текущая блокировка (указанная символом "-L"), затем последняя запись в абзац C повторно вставляется в абзац C, и затем блокировка повторно вставляется в документ (указанная символом "L").
[0045] Моментальный снимок 310 также показывает, что после операции отмены для абзаца C примерный документ 330 включает в себя абзацы A и B. Для простоты это предполагает, что операция отмены для абзаца C удаляет весь текст в абзаце C. Моментальный снимок 310 также показывает, что после того как последнее действие пользователя отменено в абзаце C, то часть возврата примерного стека 328 отмены/возврата показывает блокировку и последнее действие пользователя из абзаца B. Это указывает на то, что следующая операция отмены настроена временно удалять блокировку и отменять последнее действие пользователя из абзаца B.
[0046] На моментальном снимке 312 пользователь на примерном клиентском компьютере 102 начинает набирать в новом абзаце D. Всегда, когда пользователь начинает новое действие, часть возврата стека отмены/возврата очищается. Это происходит потому, что, как только инициировано новое действие, предыдущая операция отмены больше не может быть обращена. Например, если пользователь набрал "t", "h" и "s", затем сделал операцию отмены для "s" и затем набрал "e", если стек возврата не был очищен, когда было набрано "e", то операция возврата восстановит "s", в результате "t", "h", "e", "s" очевидно не то, что предполагалось.
[0047] Часть 330 примерного документа моментального снимка 312 показывает, что абзац D добавлен в документ. Примерная часть 332 отмены примерного стека отмены/возврата для моментального снимка 312 показывает добавленный символ "-D". Так как абзац D создан после приема блокировки абзаца A, то последнее действие пользователя для абзаца D может быть отменено без предварительного удаления блокировки. Однако если последнее действие пользователя для абзаца D возвращено, для того чтобы отменить последнее действие пользователя для абзаца A, блокировка в примерном документе 330 должна быть временно удалена, как рассмотрено.
[0048] На фиг.4 показана блок-схема последовательности операций, иллюстрирующая примерную операцию 400, выполненную примерным клиентским компьютером 102. При операции 402 совместно используемый документ открыт на примерном клиентском компьютере 102. Совместно используемым документом является тот, который храниться на сервере совместной работы над документами на основе браузера в режиме он-лайн, например Microsoft SharePoint Server 2007. Совместно используемый документ также доступен для соавторства посредством других пользователей, например пользователя на примерном клиентском компьютере 104. Совместно используемый документ открыт и обработан с использованием примерного модуля 202 обработки документа.
[0049] При операции 404 соавторствующий пользователь на клиентском компьютере 102 модифицирует первый абзац документа. Пользователь может модифицировать первый абзац посредством набора в первом абзаце, удаления части первого абзаца или внесения форматирующих изменений в первом абзаце. Набор в первом абзаце включает в себя создание первого абзаца и редактирование текста в первом абзаце.
[0050] При операции 406 примерный модуль 204 объединения метаданных на клиентском компьютере 120 принимает блокировку метаданных для второго абзаца документа. При операции 408 примерный модуль 204 объединения метаданных вставляет блокировку метаданных во второй абзац документа. Блокировка метаданных указывает на то, что соавторствующий пользователь на другой клиентской системе, для клиентского компьютера 104, модифицирует второй абзац документа. Блокировка метаданных предотвращает модификацию пользователем на клиентском компьютере 102 второго абзаца документа.
[0051] При операции 410 примерный модуль 206 пользовательского интерфейса отображает блокировку метаданных в графическом виде в документе, так что соавторствующий пользователь на клиенте 102 может быстро увидеть, какие абзацы документа заблокированы. При операции 412 примерный модуль 204 объединения метаданных хранит блокировку метаданных в стеке отмены/возврата на клиентском компьютере 102.
[0052] При операции 414 соавторствующий пользователь на клиентском компьютере 102 инициирует операцию отмены. Например, соавторствующий пользователь на клиентском компьютере 102 может захотеть отменить последнее действие пользователя в первом абзаце документа. Операция отмены обрабатывается примерным модулем 208 отмены/возврата. Последним действием пользователя может являться действие редактирования, которое может включать в себя набор символов, удаление части первого абзаца и внесение форматирующих изменений в первом абзаце. Обычно пользователь инициирует операцию отмены посредством нажатия клавиши на клиентском компьютере 102, связанной с операцией отмены, например посредством нажатия клавиши отмены.
[0053] При операции 416 примерный модуль 204 объединения метаданных удаляет блокировку метаданных в стеке отмены/возврата и временно сохраняет блокировку метаданных в памяти, в области, отличной от стека отмены/возврата, на примерном клиентском компьютере 102. При операции 418 последнее действие пользователя отменено и при операции 420 примерный модуль 204 объединения метаданных восстанавливает блокировку метаданных в стек отмены/возврата.
[0054] На фиг.5 показана структурная схема, иллюстрирующая примерные физические компоненты клиента 102. Клиентский компьютер 104 и серверный компьютер 108 и/или электронные вычислительные устройства внутри клиентских компьютеров 102 и 104 и/или серверного компьютера 108 могут быть реализованы подобным клиенту 102 образом.
[0055] Как проиллюстрировано в примере фиг.5, клиент 102 является электронным вычислительным устройством, таким как настольный компьютер, портативный компьютер, терминальный компьютер, карманный компьютер, или устройством сотового телефона.
[0056] Клиент включает в себя блок 501 памяти. Блок 501 памяти является считываемым компьютером носителем хранения данных, который способен хранить данные и инструкции. Блок 501 памяти может быть любым из многообразия разных типов считываемых компьютером носителей для хранения данных, в том числе, но не ограничиваясь этим, динамической оперативной памятью (DRAM), синхронной динамической оперативной памятью с удвоением скорости передачи данных (DDR SDRAM), DRAM со сниженным временем ожидания, DDR SDRAM, DDR3 SDRAM, Rambus RAM или другими типами считываемых компьютером носителей хранения данных.
[0057] Клиент 102 может также включать в себя среды связи. Обычно среды связи могут быть осуществлены посредством считываемых компьютером инструкций, структур данных, программных модулей или других данных в модулированном сигнале данных, как, например, волна несущей или другой транспортный механизм, и включают в себя любые среды доставки информации. Термин "модулированный сигнал данных" является сигналом, у которого один или более параметров установлены или изменены таким образом, чтобы кодировать информацию в сигнале. В качестве примера, среды связи включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустическая, RF, инфракрасная и другие беспроводные среды.
[0058] К тому же клиент 102 включает в себя блок 502 обработки. В первом примере блок 502 обработки может исполнять программные инструкции, которые заставляют блок 502 обработки предоставить специфическую функциональность. В первом примере блок 502 обработки может быть реализован как один или более ядер обработки и/или один или более отдельных микропроцессоров. Например, в этом первом примере блок 502 обработки может быть реализован как один или более микропроцессоров Intel Core2. Блок 502 обработки может быть способен исполнять инструкции из набора инструкций, как, например, набора инструкций x86, набора инструкций POWER, набора инструкций RISC, набора инструкций SPARC, набора инструкций IA-64, набора инструкций MIPS или другого набора инструкций. Во втором примере блок 502 обработки данных может быть реализован как специализированная интегральная микросхема (ASIC), которая предоставляет специфическую функциональность. В третьем примере блок 502 обработки может предоставить специфичную функциональность посредством использования ASIC и посредством исполнения программных инструкций.
[0059] Клиент 102 также содержит видеоинтерфейс 504, который позволяет клиентскому компьютеру (102 и 104) или серверному компьютеру 108 выводить видеоинформацию на отображающее устройство 506. Отображающее устройство 506 может быть любым из многообразия разных типов отображающих устройств. Например, отображающим устройством 506 может быть отображающее устройство с электронно-лучевой трубкой, LCD отображающая панель, отображающая панель с плазменным экраном, сенсорная отображающая панель, LED матрица или другой тип отображающего устройства.
[0060] К тому же клиент 102 включает в себя энергонезависимое запоминающее устройство 508. Энергонезависимое запоминающее устройство 508 является считываемым компьютером носителем хранения данных, который способен хранить данные и/или инструкции. Энергонезависимое запоминающее устройство 508 может быть любым из многообразия разных типов энергонезависимых запоминающих устройств. Например, энергонезависимое запоминающее устройство 508 может быть одним или более накопителями на жестком диске, накопителями на магнитной ленте, CD-ROM накопителями, DVD-ROM накопителями, накопителями на Blu-Ray дисках или другими типами энергонезависимых запоминающих устройств.
[0061] Клиент 102 также включает в себя интерфейс 510 внешних компонентов, который позволяет клиентским компьютерам 102 и 104 и серверному компьютеру 108 осуществлять связь с внешними компонентами. Как проиллюстрировано в примере с фиг.5, интерфейс 510 внешних компонентов осуществляет связь с устройством 512 ввода и внешним запоминающим устройством 514. В одной реализации клиента 102 интерфейсом 510 внешних компонентов является интерфейс универсальной последовательной шины (USB). В других реализациях клиента 102 клиент 102 может включать в себя другой тип интерфейса, который позволяет клиенту 102 осуществлять связь с устройством ввода и/или устройствами вывода. Например, клиент 102 может включать в себя PS/2 интерфейс. Устройство 512 ввода может быть любым из многообразия разных типов устройств, в том числе, но не ограничиваясь, клавиатурами, мышками, трекболами, устройствами ввода с пером, сенсорными панелями, сенсорными отображающими устройствами, сенсорными отображающими экранами или другими типами устройств ввода. Внешнее запоминающее устройство 514 может быть любым из многообразия разных типов считываемых компьютером носителей хранения данных, в том числе магнитной лентой, модулями флэш-памяти, накопителями на магнитных дисках, накопителями на оптических дисках или другими считываемыми компьютером носителями хранения данных.
[0062] К тому же клиент 102 включает в себя сетевой интерфейс 516, который позволяет клиенту 102 отправлять данные в и принимать данные из сети 106. Сетевой интерфейс 516 может быть любым из многообразия разных типов сетевых интерфейсов. Например, сетевым интерфейсом 516 может быть Ethernet интерфейс, интерфейс кольцевой сети с маркерным доступом, оптоволоконный интерфейс, беспроводной сетевой интерфейс (например, WiFi, WiMax и так далее) или другой тип сетевого интерфейса.
[0063] Клиент 102 также включает в себя средство 518 связей, которое облегчает связь между различными компонентами клиента 102. Средство 518 связей может содержать одни или более различных типов средства связи, в том числе, но не ограничиваясь этим, шину PCI, шину PCI Express, шину ускоренного графического порта (AGP), межкомпонентное соединение Infiniband, межкомпонентное соединение по последовательному присоединению по передовой технологии (ATA), межкомпонентное соединение по параллельному присоединению по передовой технологии (ATA), межкомпонентное соединение по волоконно-оптическому каналу, шину USB, интерфейс малых компьютерных систем (SCSI) или другой тип средства связи.
[0064] На примере фиг.5 проиллюстрированы несколько считываемых компьютером носителей хранения данных (то есть блок 501 памяти, энергонезависимое запоминающее устройство 508 и внешнее запоминающее устройство 514). Вместе эти считываемые компьютером носители хранения данных могут составить одиночный логический считываемый компьютером носитель хранения данных. Этот одиночный логический считываемый компьютером носитель хранения данных может хранить инструкции, исполняемые блоком 502 обработки. Действия, описанные в вышеуказанном описании, могут происходить вследствие исполнения инструкций, хранящихся в этом одиночном логическом считываемом компьютером носителе хранения данных. Таким образом, когда это описание говорит, что конкретный логический модуль выполняет конкретное действие, такая формулировка может интерпретироваться как означающая, что инструкции программного модуля заставляют блок обработки, такой как блок 502 обработки, выполнять действие.
[0065] Вышеописанные различные варианты осуществления предоставлены только для иллюстрации и не должны толковаться как ограничивающие. В вышеописанные варианты осуществления могут быть внесены различные модификации и изменения без отступления от фактической сущности и объема раскрытия.
название | год | авторы | номер документа |
---|---|---|---|
ПОДДЕРЖКА БЫСТРОГО СЛИЯНИЯ ДЛЯ УСТАРЕВШИХ ДОКУМЕНТОВ | 2010 |
|
RU2527744C2 |
СОГЛАСОВАННОСТЬ КОЛЛЕКТИВНОЙ РАБОТЫ ПО ПЕРЕКРЕСТНЫМ КАНАЛАМ | 2010 |
|
RU2544754C2 |
ПОДДЕРЖКА АСИНХРОННОЙ МНОГОУРОВНЕВОЙ ОТМЕНЫ В СЕТКЕ JAVASCRIPT | 2008 |
|
RU2501069C2 |
СИНХРОНИЗАЦИЯ В РЕАЛЬНОМ ВРЕМЕНИ ДАННЫХ XML МЕЖДУ ПРИЛОЖЕНИЯМИ | 2006 |
|
RU2439680C2 |
ИНТЕРФЕЙСЫ ДЛЯ ПРИКЛАДНОГО ПРОГРАММИРОВАНИЯ ДЛЯ КУРИРОВАНИЯ КОНТЕНТА | 2014 |
|
RU2666302C2 |
АВТОМАТИЗАЦИЯ ПРОВЕРКИ ДОСТОВЕРНОСТИ ИЗОБРАЖЕНИЯ | 2017 |
|
RU2740702C2 |
УПРАВЛЕНИЕ ДОСТУПОМ К ДОКУМЕНТАМ С ИСПОЛЬЗОВАНИЕМ БЛОКИРОВОК ФАЙЛА | 2009 |
|
RU2501082C2 |
ВЫСОКОТОЧНОЕ ОТОБРАЖЕНИЕ ДОКУМЕНТОВ В КЛИЕНТАХ ПРОСМОТРА | 2009 |
|
RU2487400C2 |
ПРОГРАММИРУЕМОСТЬ ДЛЯ ХРАНИЛИЩА XML ДАННЫХ ДЛЯ ДОКУМЕНТОВ | 2006 |
|
RU2417420C2 |
МНОГОПОЛЬЗОВАТЕЛЬСКОЕ СЕТЕВОЕ СОТРУДНИЧЕСТВО | 2009 |
|
RU2507567C2 |
Группа изобретений относится к средствам для совместной работы над документами. Технический результат заключается в обеспечении сохранения метаданных во время операции отмены на клиентском компьютере при совместной работе над документами. Для этого представлен способ для сохранения метаданных во время операции отмены на клиентском компьютере. Первый раздел документа модифицируется в приложении обработки текста на клиентском компьютере посредством выполнения одного или более действий пользователя в первом разделе документа. При модификации первого раздела документа на клиентский компьютер принимаются метаданные для второго раздела документа. Метаданные вставляются во второй раздел документа. После того как метаданные вставлены во второй раздел документа, в приложении обработки текста выполняют операцию отмены. Операция отмены содержит этапы удаления метаданных из второго раздела документа, отмены последнего действия пользователя одного или более действий пользователя в первом разделе документа и восстановления метаданных для второго раздела документа. 3 н. и 15 з.п. ф-лы, 5 ил.
1. Способ сохранения метаданных во время операции отмены на клиентском компьютере, причем способ содержит:
модификацию, на клиентском компьютере, первого раздела документа в приложении обработки текста на клиентском компьютере, причем модификация первого раздела документа содержит выполнение одного или более действий пользователя в первом разделе документа;
при модификации первого раздела документа прием метаданных на клиентском компьютере для второго раздела документа, причем второй раздел документа отличается от первого раздела документа;
после приема метаданных для второго раздела документа вставку метаданных во второй раздел документа; и
после того как метаданные вставлены во второй раздел документа, выполнение операции отмены в приложении обработки текста, при этом операция отмены включает в себя этапы, на которых:
удаляют метаданные на клиентском компьютере для второго раздела документа;
отменяют последнее действие пользователя из одного или более действий пользователя в первом разделе документа; и
восстанавливают метаданные для второго раздела документа,
при этом удаление метаданных на клиентском компьютере для второго раздела документа содержит удаление метаданных из программного стека и сохранение метаданных в области памяти на клиентском компьютере, которая отличается от программного стека.
2. Способ по п. 1, в котором метаданные, принятые на клиентском компьютере для второго раздела документа, являются блокировкой для второго раздела документа.
3. Способ по п. 1, в котором первый раздел документа соответствует некоторому абзацу в документе.
4. Способ по п. 1, дополнительно содержащий сохранение принятых метаданных для второго раздела документа в программном стеке.
5. Способ по п. 4, в котором программный стек является стеком отмены/возврата.
6. Способ по п. 4, в котором одно или более действий пользователя сохраняются в программном стеке.
7. Способ по п. 4, в котором отмена последнего действия пользователя содержит удаление последнего действия пользователя из программного стека.
8. Способ по п. 7, в котором восстановление метаданных для второго раздела документа содержит получение метаданных из области памяти в клиентском компьютере, которая отличается от программного стека, и сохранение полученных метаданных в программном стеке.
9. Способ по п. 1, в котором одно или более действий пользователя включают в себя набор в первом разделе документа, изменения форматирования в первом разделе документа и удаление текста в первом разделе документа.
10. Способ по п. 1, в котором первый раздел документа соответствует первому абзацу в документе, который редактирует первый пользователь, и второй раздел документа соответствует второму абзацу, который редактирует второй пользователь.
11. Способ по п. 10, дополнительно содержащий отправку первой блокировки, которая препятствует модификации вторым пользователем первого абзаца.
12. Способ по п. 11, дополнительно содержащий прием второй блокировки, которая препятствует модификации первым пользователем второго абзаца.
13. Вычислительное устройство, содержащее: блок обработки,
системную память, соединенную с блоком обработки, причем системная память содержит инструкции, которые при исполнении блоком обработки заставляют блок обработки создать:
модуль обработки документа, который позволяет пользователю создавать и редактировать документы на вычислительном устройстве;
модуль объединения метаданных, который принимает метаданные от серверного компьютера и вставляет метаданные в один или более разделов документа, открытого модулем обработки документа;
модуль отмены/возврата, который сохраняет одно или более действий пользователя и который сохраняет метаданные, принятые от серверного компьютера, причем модуль отмены/возврата включает в себя стек отмены/возврата, метаданные и действия пользователя сохраняются в стеке отмены/возврата, модуль отмены/возврата позволяет пользователю отменять одно или более действий пользователя посредством удаления метаданных из одного или более разделов документа, до отмены действия пользователя, и повторной вставки удаленных метаданных в один или более разделов документа, после отмены действия пользователя; и
модуль пользовательского интерфейса, который отображает в документе метаданные, принятые от серверного компьютера,
при этом модуль отмены/возврата удаляет метаданные из стека отмены/возврата и сохраняет метаданные в области памяти на клиентском компьютере, которая отличается от стека отмены/возврата.
14. Вычислительное устройство по п. 13, в котором один или более разделов документа являются абзацами.
15. Вычислительное устройство по п. 14, в котором метаданные являются блокировками, причем блокировки препятствуют записи пользователем в один или более разделов документа, в которые вставлены упомянутые блокировки.
16. Вычислительное устройство по п. 13, в котором метаданные являются блокировками, причем блокировки препятствуют записи пользователем в один или более разделов документа, в которые вставлены упомянутые блокировки.
17. Вычислительное устройство по п. 13, в котором модуль отмены/возврата дополнительно включает в себя программный стек возврата, причем программный стек возврата хранит одно или более действий пользователя и метаданные, причем программный стек возврата позволяет отменить операцию отмены в отношении действия пользователя, при этом поддерживая целостность метаданных в документе.
18. Считываемый компьютером носитель, содержащий инструкции, которые при исполнении блоком обработки клиентского компьютера заставляют блок обработки упомянутого клиентского компьютера:
редактировать первый абзац документа на упомянутом клиентском компьютере, причем первый абзац редактируется пользователем на упомянутом клиентском компьютере,
редактирование первого абзаца документа содержит одно или более действий пользователя в первом абзаце документа, причем одно или более действий пользователя включает в себя набор в первом абзаце, удаление текста в первом абзаце, внесение изменений стиля в первом абзаце и форматирование первого абзаца, причем одно или более действий пользователя в первом абзаце документа хранятся в стеке отмены/возврата на упомянутом клиентском компьютере;
при редактировании первого абзаца документа принимать блокировку на упомянутом клиентском компьютере для второго абзаца документа, причем блокировка принимается от серверного компьютера, причем блокировка указывает, что другой пользователь на втором клиентском компьютере в данный момент редактирует второй абзац документа, и блокировка препятствует редактированию упомянутым пользователем второго абзаца;
после приема блокировки для второго абзаца документа заставляют блок обработки упомянутого клиентского компьютера:
вставить блокировку во второй абзац документа, причем блокировка препятствует редактированию пользователем на упомянутом первом клиентском компьютере второго абзаца на упомянутом первом клиентском компьютере;
сохранить блокировку в стеке отмены/возврата упомянутого клиентского компьютера; и
после сохранения блокировки в стеке отмены/возврата упомянутого клиентского компьютера выполнить операцию отмены на упомянутом клиентском компьютере, при этом операция отмены заставляет блок обработки на упомянутом первом клиентском компьютере:
удалить блокировку для второго абзаца документа из стека отмены/возврата на упомянутом первом клиентском компьютере;
когда блокировка удалена из стека отмены/возврата на упомянутом клиентском компьютере, временно сохранить блокировку в памяти на упомянутом первом клиентском компьютере, причем блокировка сохраняется в области памяти, не включающей в себя стек отмены/возврата;
когда блокировка удаляется из стека отмены/возврата на упомянутом первом клиентском компьютере, отменить последнее из одного или более действий пользователя на упомянутом первом клиентском компьютере, причем последнее из одного или более действий пользователя удаляется из стека отмены/возврата; и
после отмены последнего из одного или более действий пользователя на упомянутом первом клиентском компьютере удалить блокировку из области памяти на упомянутом первом клиентском компьютере, в которой временно хранится блокировка, и восстановить блокировку в стеке отмены/возврата.
Топчак-трактор для канатной вспашки | 1923 |
|
SU2002A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
US 7107294 B2, 12.09.2006 | |||
СПОСОБ ИНИЦИИРОВАНИЯ ВЫПОЛНЯЕМОЙ НА БАЗЕ СЕРВЕРА СОВМЕСТНОЙ РАБОТЫ НАД ВЛОЖЕНИЯМИ ЭЛЕКТРОННОЙ ПОЧТЫ | 2004 |
|
RU2340936C2 |
Авторы
Даты
2015-06-27—Публикация
2010-04-21—Подача