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

Иллюстрации

Показать все

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

Реферат

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

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

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

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