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

Классы МПК:G06F17/24 редактирование, например, вставка/удаление
Автор(ы):,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2009-04-03
публикация патента:

Изобретение относится к методикам для модификации, изменения или иного редактирования документа через сеть с удаленного устройства. Техническим результатом является обеспечение адекватно реагирующего пользовательского интерфейса и увеличение скорости выполнения удаленного редактирования документов пользователями без необходимости устанавливать традиционную автономную прикладную программу и без ограничения функциональных возможностей редактирования. Описаны способы и устройства для модификации документа с использованием скрытой поверхности переноса. Устройство может содержать подсистему редактирования документов, содержащую модуль создания поверхности переноса, действующий, чтобы встраивать скрытую поверхность переноса в документ. Модуль управления переносом может быть коммуникативно связан с модулем создания поверхности переноса. Модуль управления переносом может действовать, чтобы принимать запрос переноса на перенос медиа-контента для документа и переносить медиа-контент с использованием скрытой поверхности переноса в ответ на запрос переноса. 3 н. и 17 з.п. ф-лы, 6 ил. способы для модификации документа с использованием скрытой поверхности   переноса, патент № 2507573

способы для модификации документа с использованием скрытой поверхности   переноса, патент № 2507573 способы для модификации документа с использованием скрытой поверхности   переноса, патент № 2507573 способы для модификации документа с использованием скрытой поверхности   переноса, патент № 2507573 способы для модификации документа с использованием скрытой поверхности   переноса, патент № 2507573 способы для модификации документа с использованием скрытой поверхности   переноса, патент № 2507573 способы для модификации документа с использованием скрытой поверхности   переноса, патент № 2507573

Формула изобретения

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

встраивают скрытую поверхность переноса в документ, при этом документ представлен в формате языка разметки, а скрытая поверхность переноса представляет собой редактируемый фрейм в этом формате языка разметки;

принимают запрос переноса на перенос медиа-контента для документа;

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

переносят преобразованный медиа-контент с использованием скрытой поверхности переноса в ответ на запрос переноса.

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

3. Способ по п.1, содержащий этап, на котором временно сохраняют медиа-контент на скрытой поверхности переноса в первом формате, не совместимом с целевым объектом запроса переноса, перед преобразованием медиа-контента в преобразованный медиа-контент.

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

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

6. Способ по п.1, содержащий этап, на котором переносят преобразованный медиа-контент из скрытой поверхности переноса в системный буфер обмена.

7. Способ по п.1, содержащий этап, на котором принимают запрос переноса вставки, чтобы вставить медиа-контент из системного буфера обмена в документ.

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

9. Способ по п.1, содержащий этап, на котором переносят преобразованный медиа-контент из скрытой поверхности переноса в документ.

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

встраивать скрытую поверхность переноса в документ, при этом документ представлен в формате языка разметки, а скрытая поверхность переноса представляет собой редактируемый фрейм в этом формате языка разметки;

принимать запрос переноса на перенос медиа-контента для документа;

преобразовывать медиа-контент на скрытой поверхности переноса в преобразованный медиа-контент, содержащий медиа-контент в формате, совместимом с целевым объектом запроса переноса; и

переносить преобразованный медиа-контент с использованием скрытой поверхности переноса в ответ на запрос переноса.

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

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

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

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

15. Устройство для модификации документа с использованием скрытой поверхности переноса, содержащее:

логическое устройство;

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

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

модуль управления переносом, коммуникационно связанный с модулем создания поверхности переноса, при этом модуль управления переносом выполнен с возможностью принимать запрос переноса на перенос медиа-контента для документа, и

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

при этом модуль управления переносом дополнительно выполнен с возможностью переносить преобразованный медиа-контент с использованием скрытой поверхности переноса в ответ на запрос переноса.

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

17. Устройство по п.15, в котором скрытая поверхность переноса временно сохраняет медиа-контент в первом формате, не совместимом с целевым объектом запроса переноса, перед преобразованием медиа-контента в преобразованный медиа-контент.

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

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

20. Устройство по п.15, содержащее клиентское устройство с наличием web-браузера, при этом клиентское устройство предназначено извлекать прикладную программу из сервера по сети с использованием web-браузера, исполнять прикладную программу в клиентском устройстве для представления документа с использованием окна web-браузера и использовать подсистему редактирования документов для редактирования документа.

Описание изобретения к патенту

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

УРОВЕНЬ ТЕХНИКИ

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

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

Другой способ обеспечения функциональности базирующейся на web прикладной программы состоит в реализации готовой прикладной программы, которая исполняется в браузере с использованием технологии кросс-браузерной среды времени исполнения (runtime), такой как технология JAVA компании SUN MICROSYSTEMS, FLASH от компании ADOBE SYSTEMS или Asynchronous JAVASCRIPT и XML («AJAX»). Хотя, допуская полный контроль разработчика над возможностями и характеристиками прикладной программы, этот способ обычно предполагает значительное усилие разработки и требует реализации низкоуровневой функциональности редактирования, такой как визуализация текста в окне, как печатает пользователь, перемещение мигающего курсора по тексту или постоянное переформатирование текста содержимого окна, которое печатает пользователь. Кроме того, поскольку прикладная программа исполняется в соответствующей браузеру технологии среды времени исполнения, зачастую она является медленной в исполнении и может быть не в состоянии обеспечить адекватно реагирующий пользовательский интерфейс.

По отношению к этим и другим соображениям были необходимы настоящие усовершенствования.

КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ФИГУР ЧЕРТЕЖЕЙ

Фиг.1 - иллюстрация варианта осуществления первой системы.

Фиг.2 - иллюстрация варианта осуществления для подсистемы редактирования документов.

Фиг.3 - иллюстрация варианта осуществления второй системы.

Фиг.4 - иллюстрация варианта осуществления схемы логики.

Фиг.5 - иллюстрация варианта осуществления вычислительной архитектуры.

Фиг.6 - иллюстрация варианта осуществления изделия.

ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

Различные варианты осуществления включают физические или логические структуры, организованные с возможностью выполнять некоторые операции, функции или услуги. Структуры могут содержать физические структуры, логические структуры или их комбинацию. Физические или логические структуры реализуются с использованием аппаратных компонентов, программных компонентов или их комбинации. Описания вариантов осуществления со ссылкой на конкретные аппаратные или программные элементы, однако, подразумеваются в качестве примеров, а не ограничений. Решения по использованию аппаратных или программных элементов для фактического исполнения на практике варианта зависят от ряда внешних факторов, таких как требуемая вычислительная скорость, уровни мощности, допуски (устойчивость) на нагрев, бюджет (баланс) цикла обработки, скорости (интенсивности) входных данных, скорости выходных данных, ресурсы памяти, частоты шины данных и другие ограничения проектного решения или рабочей характеристики. Кроме того, физические или логические структуры могут иметь соответствующие физические или логические соединения, чтобы передавать между структурами информацию в форме электронных сигналов или сообщений. Соединения могут содержать проводные и/или беспроводные соединения, как надлежит для информационной или конкретной структуры. Стоит обратить внимание, что любая ссылка на «один вариант осуществления» или «вариант осуществления» означает, что описанная в связи с вариантом осуществления конкретная функциональная возможность, структура или характеристика включена, по меньшей мере, в один вариант осуществления. Появления фразы «в одном варианте осуществления» в различных местах в тексте описания заявки необязательно ссылается на один и тот же вариант осуществления.

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

Прикладные программы могут включать в себя любой тип прикладной программы, способной создавать, модифицировать, обрабатывать и иным образом управлять документами. Примеры документов неограничительно могут включать документы текстовых процессоров, документы электронных таблиц, документы администратора персональной информации, документы презентаций, документы приложения блокнот, документы баз данных, документы (электронной) публикации, документы ввода данных, документы (графических) схем, документы проектов, документы форм, документы сети Internet, документы на языке разметки, документы на языке (HTML) разметки гипертекста, расширяемом HTML (XHTML), документы на расширяемом языке (XML) разметки гипертекста, документы на языке (GML) обобщенной разметки, документы на стандартном GML (SGML), документы на облегченном языке (LML) разметки гипертекста, языке (UIML) разметки пользовательского интерфейса, документы на языке разметки векторной графики (VGML), документы на основе web, онлайновые документы, web-страницу и т.д. Примеры прикладных программ могут включать, неограничительно, любую из прикладных программ, входящих в рабочий комплект MICROSOFT® OFFICE, разработанный корпорацией Microsoft Corporation, Redmond, Washington. В одном варианте осуществления, например, прикладная программа может содержать программу обработки текстов, такую как MICROSOFT WORD. Прикладная программа MICROSOFT WORD может быть реализована в виде базирующейся на web прикладной программы, поставляемой MICROSOFT OFFICE LIVE или GOOGLE® APPS MICROSOFT OFFICE. Варианты осуществления, однако, не ограничиваются этим примером.

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

Обычные, базирующиеся на web инструментальные средства редактирования не удовлетворяют по ряду причин. Например, существующие, базирующиеся на web инструментальные средства редактирования обычно имеют ограниченные возможности осуществления функций редактирования, особо в отношении импорта и экспорта данных в системный буфер обмена. Это происходит отчасти из-за ограничений системы обеспечения безопасности, наложенных самим web-браузером. Редактирование документов, следовательно, обусловлено командами редактирования, предоставляемыми web-браузером. Например, когда пользователю предоставляется редактируемая поверхность формирования HTML, любой произвольный медиа-контент может затем вставляться в поверхность. В этом случае программа обработки текстов имеет ограниченный контроль за стилем, форматированием и макетом (схемой расположения элементов) произвольного медиа-контента, вставленного внутрь оператором. Кроме того, трудно выявлять такие операции редактирования и фильтрацию контента, которая хорошо работает во всех web-браузерах и используется существующими приложениями. Подобные проблемы существуют относительно копирования медиа-контента в системный буфер обмена. Модель выборки (выделения контента), используемая web-браузером, обычно является ограниченной. Например, оператор не может выполнять одновременные выборки различных частей документа или выполнять выборку, которая проходит через какой-либо вложенный контент, такой как Inline Frame (IFrame) (встроенный объект фрейм). Кроме того, медиа-контент, скопированный из исходного документа (например, документ, визуализированный в виде web-страницы), может не иметь подходящий формат для целевой конечной точки.

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

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

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

На фиг.1 иллюстрируется блок-схема для системы 100. Система 100 может содержать различные элементы, разработанные для исполнения посредством среды одиночного объекта или распределенной среды многих объектов. Каждый элемент может быть осуществлен в виде аппаратного элемента, программного элемента или любой их комбинации, как требуется для данного набора проектных параметров или ограничений рабочей характеристики. Примеры аппаратных элементов могут включать в себя устройства, компоненты, процессоры, микропроцессоры, схемы, элементы схем (например, транзисторы, резисторы, конденсаторы, катушки индуктивности и т.д.), интегральные схемы, проблемно-ориентированные интегральные микросхемы (ASIC), программируемые логические устройства (ПЛУ, PLD), цифровые процессоры сигналов (ЦПС, DSP), программируемую вентильную матрицу (FPGA), модули памяти, логические вентили, регистры, полупроводниковое устройство, кристаллы, микросхемы, наборы микросхем и т.д. Примеры программных элементов могут включать в себя любые программные компоненты, программы, приложения, компьютерные программы, прикладные программы, системные программы, машинные программы, программное обеспечение операционной системы, связующее ПО, микропрограммное обеспечение, программные модули, стандартные программы, стандартные подпрограммы, функции, методы, интерфейсы, программные интерфейсы, интерфейсы (API) прикладного программирования, наборы команд, вычислительный код, машинный код, сегменты кода, сегменты машинного кода, слова, значения, символы или любую комбинацию такового.

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

Вариант осуществления, проиллюстрированный на фиг.1, показывает варьирующиеся аспекты системы 100 для редактирования документа с использованием скрытой поверхности 130 переноса. Система 100 включает в себя компьютер 120, содержащий типовую настольную или портативную вычислительную систему, способную исполнять операционную систему и одну или несколько прикладных программ. Компьютер 120 с возможностью взаимодействия соединен с устройством 104 отображения, мышью 108 и клавиатурой 110, чтобы давать возможность пользователю 102 взаимодействовать с системой и прикладными программами, исполняющимися на компьютере 120. Компьютер 120 взаимосвязан с серверным компьютером 162 через одну или несколько локальных и глобальных сетей, например, сеть 160. Следует оценить, что может использоваться намного большее число сетевых соединений, чем иллюстрируется на фиг.1.

Компьютер 120 действует, чтобы исполнять web-браузер 122, который с возможностью взаимодействия соединен посредством сети 160 с web-сервером 164, исполняемым серверным компьютером 162. В одном варианте осуществления web-браузером 122 является прикладная программа, способная отображать документы HTML, такая как INTERNET EXPLORER® корпорации MICROSOFT CORPORATION, FIREFOX от MOZILLA, SAFARI корпорации APPLE, INC. и другие. Средним специалистом в данной области техники будет оценено, однако, что для реализации web-браузера 122 может использоваться любой тип прикладной программы, способной визуализировать язык разметки и исполнять логику сценария. Серверный компьютер 162 может действовать в качестве web-сервера и включает в себя любую программу, способную подавать документы на web-браузер 122. Серверный компьютер 162 кроме того соединен с хранилищем 168 данных, содержащим документы и прикладную программу 140, которая будет описана более подробно ниже. Согласно одному варианту осуществления документы могут включать в себя документ 128, подлежащий подаче на web-браузер 122. Например, документ 128 может содержать HTML-документ, визуализируемый посредством web-браузера 122. По запросу пользователя 102 компьютера 120 web-браузер 122 действует, чтобы извлечь документ 128 из web-сервера 164 и визуализировать его в окне 106 на устройстве 104 отображения для представления пользователю 102.

Как кратко обсуждено выше, система 100 также включает в себя прикладную программу 140, такую как программа обработки текстов. Прикладная программа 140 действует, чтобы давать возможность пользователю 102 компьютера 120 редактировать содержимое документа 128 в окне 106. Согласно одному варианту осуществления прикладная программа 140 способна исполняться внутри среды времени исполнения, обеспечиваемой web-браузером 122. Например, прикладную программу 140 можно создать, используя способы разработки AJAX.

В одном варианте осуществления прикладную программу 140 извлекают из web-сервера 164 вместе с документом 128, подлежащим редактированию. В альтернативных вариантах осуществления прикладная программа 140 может постоянно находиться локально на компьютере 120. Прикладная программа 140 включает в себя модуль 148 прикладной программы, содержащий логику приложения, действующую для предоставления пользователю 102 заданного набора выполняемых функций (например, обработки текстов). В одном варианте осуществления прикладная программа 140 поддерживает содержимое редактируемого документа в виде внутреннего образа 150 документа. В других вариантах осуществления прикладная программа 140 поддерживает содержимое редактируемого документа непосредственно внутри документа 128. Блок 124 визуализации отображения визуализирует документ 128 для отображения. Например, блок 124 визуализации отображения может быть осуществлен в виде блока визуализации HTML.

В одном варианте осуществления прикладная программа 140 включает в себя модуль 146 обработки событий, который осуществляет контроль за событиями пользовательского ввода от процессора 126 пользовательского ввода. Как будет описано подробно ниже в отношении фиг.2, модуль 146 обработки событий действует, чтобы выявлять расположение и перемещение пользователем 102 указателя вставки в одной или нескольких позициях внутри документа 128, как отображено в окне 106. Модуль 146 обработки событий дополнительно действует, чтобы осуществлять мониторинг событий пользовательского ввода в течение редактирования содержимого документа. Например, модуль 146 обработки событий может выявлять выборку порций или множественных порций медиа-контента внутри документа 128 в подготовке команды редактирования.

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

Скрытая поверхность 130 переноса может содержать любой допускающий редактирование фрейм, подходящий для использования с данным языком разметки, используемым блоком 124 визуализации отображения, чтобы визуализировать документ 128 в окне 106 браузера на дисплее 104 для представления пользователю 102. Кроме того, скрытая поверхность переноса является скрытой, латентной или невидимой, так что пользователь 102 не может видеть или воспринимать редактируемый фрейм при просмотре документа 128 в окне 106 браузера. В одном варианте осуществления, например, скрытая поверхность 130 переноса может быть реализована в виде HTML-элемента IFRAME среди прочего. Любой допускающий редактирование фрейм, который является невидимым для пользователя 102, и подходящий для использования с конкретным документом может использоваться в качестве скрытой поверхности 130 переноса. Варианты осуществления не ограничиваются в этом контексте.

Скрытая поверхность 130 переноса может использоваться в качестве депозитария или временного хранилища для медиа-контента, который пользователь 102 вставляет в документ 128, и места для предоставления выбранного содержимого для команды вырезки или копирования. Использование невидимой или скрытой поверхности 130 переноса позволяет каждому документу 128 временно хранить медиа-контент, переносимый в документ 128 или из документа 128. Подсистема 200 редактирования документов может осуществлять мониторинг скрытой поверхностью 130 переноса и выявлять, когда медиа-контент был вложен в скрытую поверхность 130 переноса. Подсистема 200 редактирования документов затем может преобразовать или перевести медиа-контент, хранимый скрытой поверхностью 130 переноса, в формат, подходящий для целевой конечной точки (например, системного буфера обмена или документа). Таким образом, подсистема 200 редактирования документов и скрытая поверхность 130 переноса позволяют прикладной программе 140 осуществлять контроль за форматированием медиа-контента, вставляемого в документ 128 из системного буфера 142 обмена с использованием команды вставки или команды специальной вставки, а также копируемого или перемещаемого из документа 128 в системный буфер 142 обмена с использованием команды копирования или команды вырезки. Различием между этим типом модели и заданным по умолчанию поведением, обеспеченным возможностями редактирования, реализованными для обычного web-браузера, является то, что подсистема 200 редактирования документов поддерживает полный контроль над выбранным медиа-контентом, который позволяет подсистеме 200 редактирования документов предпочтительнее манипулировать стилем, форматированием, макетом и другими аспектами форматирования медиа-контента, чем являться ограничиваемой возможностями редактирования и управляющими элементами, предоставляемыми web-браузером.

В одном варианте осуществления, например, подсистема 200 редактирования документов может использовать скрытую поверхность 130 переноса для обработки команд вставки и специальной вставки. В частности подсистема 200 редактирования документов может реализовывать скрытую поверхность 130 переноса в виде нового элемента HTML в документе 128, визуализированного как web-страница в окне 106 дисплея 104. Путем программного помещения фокуса в скрытую поверхность 130 переноса действие пользователя для запуска команды вставки поместит медиа-контент в скрытую поверхность 130 переноса. Термин «фокус» относится к позиции точки вставки или текущей выборки внутри данного документа. Содержимое скрытой поверхности 130 переноса может контролироваться, чтобы выявлять, когда произошла операция вставки. Когда это происходит, содержимое скрытой поверхности 130 переноса может быть проверено и преобразовано в формат, подходящий для документа 128. После преобразования данные вставляются в пользовательское представление документа 128. Таким образом, может поддерживаться контроль над медиа-контентом, появляющимся на web-странице, и может сохраняться информация о редакционных изменениях (операциях редактирования), которые были сделаны по отношению к документу 128.

В одном варианте осуществления, например, подсистема 200 редактирования документов также может использовать скрытую поверхность 130 переноса для обработки команд копирования, перемещения и вырезки. При выборке пользователем 102 некоторого медиа-контента в документе 128 с использованием устройства ввода, такого как клавиатура или мышь, подсистема 200 редактирования документов определяет, какой медиа-контент пользователь желает выбрать. Подсистема 200 редактирования документов затем изменяет форматирование выбранного медиа-контента, чтобы указать, что он был выбран (например, синий фон относительно текста). Подсистема 200 редактирования документов задает, чтобы содержимое скрытой поверхности 130 переноса было последовательностью кода HTML или другого кода, который представляет точные данные, выбранные пользователем 102. Подсистема 200 редактирования документов программными средствами устанавливает фокус в документе 128 на точку в содержимом скрытой поверхности 130 переноса. В результате, когда пользователь 102 исполняет команду копирования, системный буфер 142 обмена будет заполняться медиа-контентом, сформированным подсистемой 200 редактирования документов.

На фиг.2 иллюстрируется более подробная блок-схема подсистемы 200 редактирования документов. Подсистема 200 редактирования документов может содержать многие компоненты и/или модули. В проиллюстрированном варианте осуществления, показанном на фиг.2, подсистема 200 редактирования документов может включать в состав компонент 220 администратора редактирования, компонент 230 хранения данных и компонент 240 ввода-вывода (I/O). Компоненты и/или модули могут быть реализованы с использованием аппаратных элементов, программных элементов или комбинации аппаратных элементов и программных элементов. Хотя подсистема 200 редактирования документов, как показано на фиг.2, имеет ограниченное число элементов в топологии определенного вида, может быть оценено, что подсистема 200 редактирования документов может включать в себя больше или меньше элементов в альтернативных топологиях, как требуется для данной реализации.

Компонент 220 администратора редактирования может быть выполнен с возможностью принимать в очереди 222 событийных сообщений различные сообщения 202 о событиях ввода. Очередь 222 событийных сообщений может содержать одну или несколько очередей для обработки сообщений о событиях. В одном варианте осуществления, например, очередь 222 событийных сообщений может обрабатывать сообщения о событиях с индивидуальными приоритетами. Модуль 146 обработки событий может использовать очередь 222 событийных сообщений, чтобы обрабатывать и управлять различными сообщениями 202 о событиях.

Компонент 220 администратора редактирования может включать в себя управляющую логику 224. Управляющая логика 224 может быть выполнена с возможностью управлять операциями компонента 220 администратора редактирования на основании информации 206 конфигурации. Например, управляющая логика 224 может исполнять алгоритм, схему логики или конечный автомат, чтобы выполнить различные операции над входными данными, принятыми от различных подсистем ввода, в ответ на различные сообщения 202 событий ввода. Управляющая логика 224 может обрабатывать входные данные на основании информации 206 конфигурации. Управляющая логика 224 может также формировать различные сообщения 204 событий вывода и посылать сообщения 204 событий вывода на планировщик и диспетчер 226 событий.

Компонент 220 администратора редактирования может включать в себя планировщик и диспетчер 226 событий. Планировщик и диспетчер 226 событий могут быть выполнены с возможностью инициировать события по отношению к другим внешним объектам, и осуществляет диспетчеризацию внутренних событий и сообщений в рамках компонента 220 администратора редактирования. Например, планировщик и диспетчер 226 событий посылает различные сообщения 204 событий вывода в ответ на сообщения 202 событий ввода на другие системы, подсистемы, компоненты или модули системы 100.

В одном варианте осуществления подсистема 200 редактирования документов может включать в состав компонент 230 хранения данных. Компонент 230 хранения данных может быть выполнен с наличием хранилища данных и логики, чтобы управлять операциями хранения для компонента 220 администратора редактирования. Компонент 230 хранения данных может хранить в хранилище 232 временных данных временную или соответствующую незафиксированным транзакциям информацию, используемую компонентом 220 администратора редактирования. Например, временная или соответствующая незафиксированным транзакциям информация может храниться в виде расширяемого языка разметки (XML), двоичных файлов или некоторого другого формата в хранилище 232 временных данных. Компонент 230 хранения данных может хранить в хранилище 234 постоянных данных постоянную или соответствующую зафиксированным транзакциям информацию, используемую компонентом 220 администратора редактирования. Хранилища 232, 234 данных могут содержать индивидуальные хранилища данных, соответственно, или множественные хранилища данных, содержащие часть более большой совокупности хранилищ данных, такой как сеть (SAN) хранения данных. Кроме того, компонент 230 хранения данных и хранилища 232, 234 данных могут осуществлять надлежащие способы и структуры буферизации и кэширования данных, если необходимо, чтобы удовлетворять параметрам задержки и емкости системы. Компонент 230 хранения данных также управляет операциями для ведения журналов регистрации и аудита хранилища.

В одном варианте осуществления подсистема 200 редактирования документов может включать в состав компонент 240 ввода-вывода. Компонент 240 ввода-вывода может быть выполнен с наличием буферов и логики для управления операциями транспортировки и ввода-вывода в ходе перемещения информации по всей подсистеме 200 редактирования документов. Например, компонент 240 ввода-вывода может включать в себя один или несколько буферов 242 входных данных, чтобы принимать и сохранять входные данные от подсистемы ввода. Один или несколько модулей компонента 220 администратора редактирования могут обрабатывать входные данные для формирования обработанных данных и посылать их в один или несколько буферов 246 выходных данных. Буфер 246 выходных данных может быть выполнен с возможностью хранить и посылать выходные данные на подсистему вывода. Администратор 244 данных может осуществлять логические и сетевые интерфейсы (например, интерфейсы web-службы), чтобы контролировать и управлять услугами накопления данных и услугами распределения данных. Компонент 240 ввода-вывода может обеспечивать один или несколько буферов 248 преобразований, чтобы преобразовывать входные данные 208 и/или обработанные данные из одного формата, схемы данных или протокола, в альтернативные форматы, схемы данных или протоколы.

В общем действии подсистема 200 редактирования документов может обеспечивать выполнение различных возможностей редактирования для прикладной программы 140, используя web-браузер 122, исполняемый компьютером 120. Более конкретно, подсистема 200 редактирования документов может использовать скрытую поверхность 130 переноса, чтобы поддерживать возможности редактирования. Это может выполняться с использованием ряда модулей 228-1-p редактирования. В иллюстрируемом варианте осуществления, показанном на фиг.2, модули 228-1-p редактирования могут включать в себя модуль 228-1 создания поверхности переноса, модуль 228-2 управления переносом и модуль 228-3 преобразования медиа-контента. Хотя на фиг.2 показано точно определенное число модулей 228-1-p редактирования в качестве примера, а не ограничения, может быть оценено, что больше или меньше модулей могут быть реализованы для различных наборов операций рынка новинок, как требуется для данного исполнения. Варианты осуществления не ограничиваются в этом контексте.

Модуль 228-1 создания поверхности переноса может в целом действовать, чтобы создавать скрытую поверхность 130 переноса и встраивать ее в документ 128. Скрытая поверхность 130 переноса может использоваться в качестве структуры временного хранения, которая позволяет подсистеме 200 редактирования документов управлять импортом и экспортом медиа-контента в базирующуюся на web прикладную программу 140 и из нее. Скрытая поверхность 130 переноса является допускающим редактирование фреймом (например, IFrame), управляемым прикладной программой 140, но фактически не видимым пользователю 102 прикладной программы 140. Скрытая поверхность 130 переноса действует в качестве места промежуточного пункта назначения для команд редактирования, выдаваемых пользователем 102, web-браузером 122, прикладной программой или некоторой другой сущностью или объектом.

Модуль 228-1 создания поверхности переноса может создавать скрытую поверхность 130 переноса на различных стадиях. Например, модуль 228-1 создания поверхности переноса может создавать скрытую поверхность 130 переноса при запуске пользователем 102 прикладной программы 140. В другом примере модуль 228-1 создания поверхности переноса может создавать скрытую поверхность 130 переноса, когда, например, блок 124 визуализации отображения визуализирует документ 128 в окне 106 браузера. В любом случае прикладная программа 140 поддерживает ссылку на скрытую поверхность 130 переноса, однажды созданную.

Скрытая поверхность 130 переноса может содержать любой допускающий редактирование фрейм, подходящий для использования с заданным языком разметки, используемым блоком 124 визуализации отображения, для визуализации документа 128 в окне 106 браузера на дисплее 104 для представления пользователю 102. В одном варианте осуществления, например, скрытая поверхность 130 переноса может быть реализована в виде HTML-элемента IFRAME, среди прочего. Кроме того, скрытая поверхность переноса является скрытой или невидимой, так что пользователь 102 не может видеть или воспринимать допускающий редактирование фрейма при просмотре документа 128 в окне 106 браузера.

Модуль 228-2 управления переносом может быть коммуникативно связан с модулем 228-1 создания поверхности переноса. Модуль 228-2 управления переносом может в целом выполняться с возможностью управлять операциями переноса для подсистемы 200 редактирования документов, использующей скрытую поверхность 130 переноса. В одном варианте осуществления, например, модуль 228-2 управления переносом может принимать запрос переноса на перенос медиа-контента для документа 128 в виде перехваченного модулем 146 обработки событий. Модуль 228-2 управления переносом может затем координировать перенос медиа-контента, используя скрытую поверхность 130 переноса, в ответ на запрос переноса. Примеры запросов переноса могут включать в себя, неограничительно, любые подходящие команды редактирования, такие как запросы переноса копии, запросы переноса вырезки, запросы переноса вставки, запросы переноса специальной вставки и т.д.

Модуль 228-2 управления переносом может действовать с возможностью переносить медиа-контент из документа 128 на скрытую поверхность 130 переноса в ответ на запрос переноса копии или запрос переноса вырезки. Модуль 228-2 управления переносом обеспечивает поддержку выборки и копирования для подсистемы 200 редактирования документов. Модуль 228-2 управления переносом отслеживает действия пользователем 102 клавиатурой и мышью и обрабатывает их, чтобы определить, какой медиа-контент в документе 128 был выбран пользователем 102. В качестве сравнения традиционные web-браузеры обычно выделяют контент для базирующейся на web прикладной программы. Модуль 228-2 управления переносом вступает в действие в этой точке, однако, и поддерживает отслеживание, какие объекты (текст, изображения и т.д.) в документе 128 пользователь 102 пытается выбрать. Модуль 228-2 управления переносом будет визуально отображать это пользователю 102 некоторым заметным образом, таким как изменение цветов фона относительно текста, подсветка границы вокруг изображения и другие подходящие приемы графического пользовательского интерфейса (ГПИ, GUI).

Приблизительно в то же время модуль 228-2 управления переносом будет переносить выбранный медиа-контент на скрытую поверхность 130 переноса. Это может быть выполнено, например, путем создания соответствующего дерева объектов HTML внутри скрытой поверхности 130 переноса. Это позволяет прикладной программе 140 визуализировать медиа-контент образом, совместимым с текущими возможностями форматирования, используемыми целевой конечной точкой. Например, пусть выборка относительно документа 128 содержит последовательность текста внутри таблицы. В зависимости от целевой точки модуль 228-2 управления переносом может произвольно избирать, включать ли окружающую таблицу в виде части медиа-контента, который воспроизводится в скрытой поверхности 130 переноса. Например, модуль 228-2 управления переносом может включать окружающую таблицу, когда она используется для логической ассоциации элементов на странице, исключать окружающую таблицу, если она используется только для целей размещения, и т.д.

Как только модуль 228-2 управления переносом определяет визуализацию выбранного контента, хранимого скрытой поверхностью 130 переноса, модуль 228-2 управления переносом может использовать код JAVASCRIPT или некоторый другой подходящий способ, чтобы инструктировать web-браузер 122 пометить медиа-контент в качестве выбранного. Визуально это действие скрыто от пользователя 102. Предпочтительнее пользователь 102 будет видеть только визуальные элементы индикации выборки, как описано выше. В этой точке пользователь 102 может принимать решение, выдавать ли команду копирования или команду вырезки путем нажатия сокращенной клавиатурной команды («быстрой клавиши»), использования контекстного меню по щелчку правой кнопкой мыши, меню редактирования браузера и т.д. При выдаче команды copy/cut (копировать/вырезать) модуль 228-2 управления переносом переместит преобразованный медиа-контент из скрытой поверхности 130 переноса в системный буфер 142 обмена. Таким образом, предпочтительнее модуль 228-2 управления переносом может использоваться, чтобы точно определить, какой медиа-контент переносится в системный буфер 142 обмена, чем ограничиваться возможностями редактирования, предоставляемыми web-браузером 122.

Модуль 228-2 управления переносом может действовать, чтобы переносить медиа-контент из системного буфера обмена на скрытую поверхность 130 переноса в ответ на запрос переноса вставки и переносить любой преобразованный медиа-контент из скрытой поверхности 130 переноса в документ 128. Модуль 228-2 управления переносом обеспечивает поддержку вставки и фильтрации для подсистемы 200 редактирования документов. В web-браузере 122 или автономной прикладной программе фокус для документа 128 может существовать только в одном месте в любой заданный момент времени. Как предварительно описано, модуль 228-2 управления переносом помещает фокус внутри скрытой поверхности 130 переноса, чтобы допускать для операций вырезки или копирования. Подобным образом скрытая поверхность 130 переноса также может использоваться в качестве целевой для операций вставки и специальной вставки. При выдаче пользователем команды вставки или специальной вставки модуль 228-2 управления переносом выявляет это событие в соответствии с явным уведомлением или периодической проверкой содержимого скрытой поверхности 130 переноса. Если модуль 228-2 управления переносом выявляет медиа-контент внутри скрытой поверхности 130 переноса, то модуль 228-2 управления переносом может выдать директиву для модуля 228-3 преобразования медиа-контента.

Модуль 228-3 преобразования медиа-контента может быть коммуникативно связан с модулем 228-2 управления переносом. Модуль 228-3 преобразования медиа-контента может в целом действовать, чтобы преобразовывать медиа-контент, хранимый скрытой поверхностью 130 переноса, из первого формата во второй формат. Это может исполняться, например, с использованием администратора 244 данных и буферов 248 преобразования.

Поскольку скрытой поверхностью 130 переноса является скрытый элемент документа 128, пользователь 102 сначала не видит медиа-контент непосредственно после того, как была выдана команда редактирования. Это дает модулю 228-3 преобразования медиа-контента время для перевода или преобразования медиа-контента внутри скрытой поверхности переноса из исходного формата в целевой формат. В результате прикладная программа 140 поддерживает контроль над стилем и макетом документа 128 в ответ на команду вставки/специальной вставки или стиль и макет медиа-контента, перенесенного из документа 128 в системный буфер 142 обмена. Модуль 228-3 преобразования медиа-контента анализирует медиа-контент, перенесенный на скрытую поверхность 130 переноса, и переводит медиа-контент в надлежащее представление данных того, что представляет медиа-контент. Например, при перемещении текста из скрытой поверхности 130 переноса в памяти создается объект TextRunNode. Если текст во вставляемом медиа-контенте форматирован с помощью HTML-элемента <B>, который обозначает полужирный текст, модуль 228-3 преобразования медиа-контента установит атрибут в объекте TextRunNode для указания, что текст визуализируется в виде полужирного, и так далее. Это делается для всех различных типов узлов (дерева объектов) HTML, поддерживаемых прикладной программой 140 в целом и подсистемой 200 редактирования документов в частности. Как только операция преобразования завершена, модуль 228-3 преобразования медиа-контента уведомляет модуль 228-2 управления переносом, который впоследствии обновляет фактический документ 128 для включения вновь визуализированного медиа-контента способом, видимым пользователем 102.

Выступая посредником в середине операций редактирования, подсистема 200 редактирования документов обеспечивает возможность применять любое форматирование, требуемое пользователем 102 и/или прикладной программой 140. Например, перенесенный медиа-контент может быть преобразован, чтобы соответствовать заданному по умолчанию внешнему виду, осуществляемому в текущий момент для документа 128, убрать нежелательный медиа-контент и так далее. Таким образом, прикладная программа 140 может поддерживать строгий контроль над макетом и форматированием документа 128.

На фиг.3 иллюстрируется вариант осуществления системы 300. Система 300 иллюстрирует логический поток данных между некоторыми элементами, участвующими в исполнении команды редактирования.

Как показано на фиг.3, подсистема 200 редактирования документов может принимать от пользователя 102 через web-браузер 122 запрос 310 на перенос копии выбранного контента 332. Модуль 228-2 управления переносом может принять запрос 310 переноса копии и перенести выбранный контент 332 из документа 128 на скрытую поверхность 130 переноса. Скрытая поверхность 130 переноса может хранить выбранный контент 332 в качестве временного контента 334. В качестве альтернативы могут использоваться управляющие элементы редактирования web-браузера 122 для выбора и переноса выбранного контента 332. В этом случае подсистема 200 редактирования документов может перехватывать директивы управления от web-браузера 122 посредством модуля 146 обработки событий. В любом случае модуль 228-2 управления переносом может выявлять, что скрытая поверхность 130 переноса содержит медиа-контент, который готов к преобразованию, и соответственно уведомляет модуль 228-3 преобразования медиа-контента.

Модуль 228-3 преобразования медиа-контента принимает уведомление от модуля 228-2 управления переносом и инициирует операции преобразования. Модуль 228-3 преобразования медиа-контента определяет соответствующий формат для временного контента 334. Это может выполняться рядом различных способов. Например, модуль 228-3 преобразования медиа-контента может хранить различные модули преобразования, соответствующие различным целевым конечным точкам. Модуль 228-3 преобразования медиа-контента может определять целевую конечную точку для временного контента 334, извлекать соответствующий модуль преобразования и использовать извлеченный модуль преобразования, чтобы преобразовать временный контент 334 в различные форматы, соответствующие различным целевым конечным точкам. Это может быть пригодным, если медиа-контент предназначен для различных конечных точек или если используется с существующими системами. Дополнительно или в качестве альтернативы, модуль 228-3 преобразования медиа-контента может преобразовывать временный контент 334 в стандартный или универсальный формат, приемлемый для всех целевых конечных точек. Это может быть пригодным, если медиа-контент предназначен для конечных точек, имеющих одинаковые характеристики. Модуль 228-3 преобразования медиа-контента может использовать буфер 248 преобразования для поддержки операций преобразования.

Как только операции преобразования завершены, модуль 228-3 преобразования медиа-контента уведомляет модуль 228-2 управления переносом. Модуль 228-2 управления переносом переносит преобразованный медиа-контент в целевую конечную точку, такую как системный буфер 142 обмена. Системный буфер 142 обмена теперь хранит хранимый контент 336 в формате, таком как последовательность кода HTML, спроектированного для визуализации хранимого контента 336 образом, аналогичным выбранному контенту 332 при его первоначальном копировании или вырезке из документа 128.

Подобным образом подсистема 200 редактирования документов может принимать от пользователя 102 через web-браузер 122 запрос 312 переноса вставки хранимого контента 322. Модуль 228-2 управления переносом может принимать запрос 312 переноса вставки и переносить хранимый контент 332 из системного буфера 142 обмена на скрытую поверхность 130 переноса. Скрытая поверхность 130 переноса может хранить выбранный контент 332 в качестве временного контента 324. Альтернативно, для переноса хранимого контента 322 могут использоваться управляющие элементы редактирования из web-браузера 122. В этом случае подсистема 200 редактирования документов может перехватывать директивы управления от web-браузера 122 посредством модуля 146 обработки событий. В любом случае модуль 228-2 управления переносом может выявлять, что скрытая поверхность 130 переноса содержит медиа-контент, который готов к преобразованию, и соответственно уведомляет модуль 228-3 преобразования медиа-контента.

Модуль 228-3 преобразования медиа-контента принимает уведомление от модуля 228-2 управления переносом и инициирует операции преобразования. Модуль 228-3 преобразования медиа-контента определяет надлежащий формат для временного контента 324. Это может выполняться образом, подобным таковому, описанному со ссылкой на запрос переноса копирования 310 с некоторыми исключениями. Так как в этом случае целевой конечной точкой для временного контента 324 является документ 128, тем не менее модуль 228-3 преобразования медиа-контента может преобразовать различные форматы хранимого контента 322 в конкретный формат, в настоящий момент используемый документом 128. Это может иметь следствием большое количество имеющих тип «многие-к-одному» операций преобразования формата, чем имеющих тип «многие-ко-многим» операций преобразования формата.

Как только операции преобразования завершены, модуль 228-3 преобразования медиа-контента уведомляет модуль 228-2 управления переносом. Модуль 228-2 управления переносом переносит преобразованный медиа-контент в целевую конечную точку, такую как документ 128. Документ 128 затем отображается для пользователя 102 в виде вставленного контента 326 в стиле и формате, совместимом с документом 128.

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

На фиг.4 иллюстрируется один вариант осуществления схемы 400 логики. Схема 400 логики может представлять некоторые или все операции, исполняемые согласно одному или нескольким вариантам осуществления, описанным в настоящем документе.

В проиллюстрированном на фиг.4 варианте осуществления схема 400 логики на этапе 402 может встраивать скрытую поверхность переноса в документ. Например, модуль 228-1 создания поверхности переноса может создавать и встраивать скрытую поверхность 130 переноса в документ 128. Это может происходить в течение запуска прикладной программы 140 или формирования нового документа для прикладной программы 140. Модуль 228-1 создания поверхности переноса может создавать ссылку в отношении скрытой поверхности 130 переноса и передавать ссылку в модуль 228-2 управления переносом.

Схема 400 логики на этапе 404 может принимать запрос переноса на перенос медиа-контента для документа. Например, модуль 228-1 управления переносом может принять запрос (310, 312) переноса, чтобы переносить медиа-контент (322, 332) для документа 128 в целевые конечные точки, такие как документ 128, системный буфер 142 обмена или другие конечные точки. Модуль 228-1 управления переносом может принимать запрос переноса от web-браузера 122 посредством модуля 146 обработки событий.

Схема 400 логики на этапе 406 может переносить медиа-контент, используя скрытую поверхность переноса, в ответ на запрос переноса. Например, модуль 228-1 управления переносом может переносить медиа-контент (322, 332) с использованием скрытой поверхности 130 переноса в ответ на запрос (310, 312) переноса. Во многих случаях медиа-контент (322, 332) может содержать преобразованный медиа-контент (324, 344), имеющий формат, совместимый с целевыми конечными точками (128, 142).

На фиг.5 дополнительно иллюстрируется более подробная блок-схема вычислительной архитектуры 510, подходящей для реализации различных вариантов осуществления, такой как компьютер 120, серверный компьютер 162 и т.д. В основной конфигурации вычислительная архитектура 510 обычно включает в себя, по меньшей мере, один блок 532 обработки и запоминающее устройство 534. Запоминающее устройство 534 может быть реализовано с использованием любых машиночитаемых или читаемых компьютером носителей, способных хранить данные, включая и энергозависимое, и энергонезависимое запоминающее устройство. Например, запоминающее устройство 534 может включать в себя постоянное запоминающее устройство (ПЗУ, ROM), оперативное запоминающее устройство (ОЗУ, RAM), динамическое ОЗУ (DRAM), SDRAM с удвоенной скоростью обмена (DDRAM), синхронное ДОЗУ (СДОЗУ, SDRAM), статическое ОЗУ (SRAM), программируемое ПЗУ (ППЗУ, PROM), стираемое программируемое ПЗУ (СППЗУ, EPROM), электрически стираемое программируемое ПЗУ (ЭСППЗУ, EEPROM), флэш-память, запоминающее устройство на полимерах, такое как сегнетоэлектрическое ЗУ на полимерах, ЗУ на аморфных полупроводниках, ЗУ на сегнетоэлектриках с фазовым переходом или ЗУ на сегнетоэлектриках, ЗУ по технологии кремниево-окисного-нитридо-окисного-кремния (SONOS), магнитные или оптические карты или любой другой тип носителя, подходящий для хранения информации. Как показано на фиг.5, запоминающее устройство 534 может хранить различные программно реализованные программы, такие как одна или несколько программ 536-1-t, и сопутствующие данные. В зависимости от реализации примеры программ 536-1-t могут включать в себя системную программу 536-1 (например, операционную систему), прикладную программу 536-2 (например, web-браузер 122, прикладную программу 140 и т.д.), подсистему 200 редактирования документов и т.д.

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

Вычислительная архитектура 510 кроме того может включать в себя одно или несколько соединений 546 связи, которые позволяют вычислительной архитектуре 510 осуществлять связь с другими устройствами. Соединения 546 связи могут представлять, например, различные типы стандартных элементов связи, такие как один или несколько интерфейсов связи, сетевые интерфейсы, сетевые интерфейсные платы (NIC), радиостанции, беспроводные передатчики/приемники (приемопередатчики), проводные и/или беспроводные среды (носители) переноса данных, физические соединители и т.д. Среды переноса данных обычно заключают в себе читаемые компьютером команды, структуры данных, программные модули или другие данные в виде модулируемого сигнала данных, такого как сигнал несущей или другой транспортный механизм, и включают в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или несколько своих характеристик, задаваемых или изменяемых таким образом, чтобы закодировать информацию в сигнале. В качестве примера, а не ограничения, среды переноса данных включают в себя проводные среды и беспроводные среды. Примеры проводных сред переноса данных могут включать в себя провод, кабель, металлические проводники, печатные платы (PCB), объединительные платы, многовходовые системы коммутации, полупроводниковый материал, витую пару, коаксиальный кабель, оптоволоконный кабель, переносимый через среду сигнал и т.д. Примеры беспроводных сред переноса данных могут включать в себя акустические среды, спектр радиочастот (РЧ, RF), инфракрасные и другие беспроводные среды переноса данных. Предполагается, что термины «машиночитаемый носитель» и «читаемый компьютером носитель», как используется в описании, включают в себя и носители данных, и среды переноса данных.

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

В одном варианте осуществления, например, изделие 600 и/или читаемый компьютером носитель 602 данных может хранить логику 604, содержащую команды исполнимой компьютерной программы, которые при исполнении компьютером обеспечивают выполнение компьютером способов и/или операций в соответствии с описанными вариантами осуществления. Команды исполнимой компьютерной программы могут включать в себя любой подходящий тип кода, такой как исходный текст, компилированный код, интерпретируемый код, исполнимый код, статический код, динамический код и т.п. Команды исполнимой компьютерной программы могут быть реализованы в соответствии с предписанным языком программирования, способом или синтаксисом для дачи указания компьютеру выполнять некоторую функцию. Команды могут быть реализованы с использованием любого подходящего высокоуровневого, низкоуровневого, объектно-ориентированного, визуального, компилируемого и/или интерпретируемого языка программирования, такого как C, C++, Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, язык ассемблера и других.

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

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

Подчеркивается, что краткое изложение сущности изобретения обеспечивается, чтобы соответствовать пункту 1.72(b) Раздела 37 Свода федеральных правил (C.F.R.), требующего наличие реферата, который позволит читателю быстро устанавливать характер технического раскрытия. Оно представляется с пониманием, что не будет использоваться для толкования или ограничения объема или смысла формулы изобретения. Кроме того, в предшествующем подробном описании можно видеть, что различные признаки сгруппированы вместе в один вариант осуществления с целью упрощения формы раскрытия. Этот способ раскрытия не должен толковаться отражающим намерение, что заявленные варианты осуществления требуют больше признаков, чем в прямой форме изложено в каждом пункте формулы изобретения. Предпочтительнее, как отражает нижеследующая формула изобретения, объект изобретения заключается в менее чем всех признаках одного раскрытого варианта осуществления. Таким образом, нижеследующие пункты формулы изобретения тем самым включены в подробное описание сущности изобретения, причем каждый пункт точно следует своему собственному в виде отдельного варианта осуществления. В прилагаемой формуле изобретения термины «включающий» и «в котором» используются как прямые английские эквиваленты соответственных терминов «содержащий» и «в чем», соответственно. Кроме того, термины «первый», «второй», «третий» и т.д. используются просто как метки и не подразумевают наложения числовых требований на их объекты.

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

Класс G06F17/24 редактирование, например, вставка/удаление

представление функций, не относящихся к авторской разработке, посредством информации о состоянии документа в пользовательском интерфейсе внешнего пространства -  патент 2498402 (10.11.2013)
редактирование документа с использованием временной поверхности редактирования -  патент 2493589 (20.09.2013)
разрешение конфликтов -  патент 2491621 (27.08.2013)
объединение документов -  патент 2481624 (10.05.2013)
общая система редактирования моделей -  патент 2479016 (10.04.2013)
гибкое редактирование гетерогенных документов -  патент 2473118 (20.01.2013)
указание, задание и обнаружение параметров документов электронных таблиц -  патент 2421797 (20.06.2011)
система и способ автоматического завершения формул электронной таблицы -  патент 2406131 (10.12.2010)
форматы файлов, способы и компьютерные программные продукты для представления презентаций -  патент 2400816 (27.09.2010)
способ и система форматирования по условию, активируемая одним щелчком мыши, для программ -  патент 2398271 (27.08.2010)
Наверх