СПОСОБЫ И СИСТЕМЫ ОБРАБОТКИ ОБЪЕКТНЫХ МОДЕЛЕЙ ДОКУМЕНТОВ (DOM) ДЛЯ ОБРАБОТКИ ВИДЕОКОНТЕНТА Российский патент 2013 года по МПК G06F17/30 G06T9/00 

Описание патента на изобретение RU2475832C1

ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИ

Испрашивается приоритет согласно заявке на патент США №61/164625, поданной 30 марта 2009, содержание которой полностью включено в настоящую заявку путем ссылки.

ОБЛАСТЬ ТЕХНИКИ

Настоящая заявка в целом относится к области сетевой связи и просмотра веб-страниц. Более конкретно, изобретение относится к системе и способу для адаптации и представления информации веб-страниц для ее отображения в клиентском устройстве.

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

Сегодня доступно множество страниц Всемирной паутины (документы на языке разметки гипертекста (HTML)), на которых предлагается множество текстового и нетекстового контента. Как известно, веб-страница обычно сформатирована посредством стандартного языка описания страниц, такого как HTML, который обычно включает текст и может иметь ссылки на графику, звук, анимацию и видеоданные. Язык HTML предусматривает форматирование основного документа и позволяет провайдеру веб-контента определять привязки или гипертекстовые ссылки на другие веб-серверы и файлы. Когда пользователь выбирает определенную гипертекстовую ссылку, веб-браузер считывает и интерпретирует адрес, называемый универсальным указателем ресурса (URL), который связан со ссылкой, осуществляет соединение с веб-сервером, расположенным по этому адресу, и инициирует запрос в рамках протокола передачи гипертекста (HTTP) на файл, указанный в ссылке. Затем веб-сервер отправляет требуемый файл в веб-браузер для трансляции и отображения файла пользователю.

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

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

В одном своем аспекте настоящее изобретение предлагает способ предоставления информационного контента для его отображения. Этот способ включает прием информационного контента, который представлен объектной моделью документа (DOM, document object model,), включающей язык сценариев, ассоциированный с указанным информационным контентом, при этом выполнение указанного языка сценариев на модели DOM приводит к модификации модели DOM. Кроме того, указанный способ включает вставку в модель DOM узла переключения в то место, где язык сценариев модифицирует модель DOM, при этом у узла переключения имеется первая ветвь, которая указывает исходный контент DOM, и вторая ветвь, которая указывает модификации, выполняемые языком сценариев. Кроме того, если узел переключения имеет ветвь, которая указывает на первый контент данных, указанный способ дополнительно включает маркировку этого узла переключения, обработку DOM путем такого следования ветвями узлов переключения, чтобы для маркированных узлов переключения переходить в модифицируемые ветви, а для немаркированных узлов переключения переходить в исходные ветви, и вывод обработанной модели DOM.

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

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

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

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

На фиг.1 показан пример системы для получения доступа, адаптации и предоставления информационного контента в электронные устройства.

На фиг.2 показана блок-схема примера компьютерного устройства.

На фиг.3 показан пример концептуальной объектной модели документа (DOM), представленной в виде древовидной структуры.

На фиг.4 показана последовательность операций, которая изображает шаги в рамках способа предоставления информационного контента.

На фиг.5 показан другой пример концептуальной модели DOM, представленной в виде древовидной структуры.

На фиг.6 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и пример, в котором язык сценариев модифицирует узел сценария.

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

На фиг.8 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и пример, в котором язык сценариев модифицирует обычный узел путем удаления дочерних элементов.

На фиг.9 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и пример, в котором язык сценариев модифицирует модель DOM путем вставки нового узла перед модифицируемым узлом.

На фиг.10 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и пример, в котором язык сценариев модифицирует модель DOM путем вставки нового узла после модифицируемого узла.

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

На фиг.12 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и пример, в котором язык сценариев модифицирует узел путем замены дочерних элементов для данного узла контентом, определенным как строка HTML (например, путем выполнения функции Javascript "setlnnerHtml").

ПОДРОБНОЕ ОПИСАНИЕ

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

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

Согласно показанным в качестве примера вариантам, узлы переключения могут быть добавлены в модель DOM во время обработки, а те из них, которые относятся к видеоконтенту, могут быть промаркированы. Как только эти узлы добавлены к модели DOM и промаркированы, сервер (например, адаптивный ускоритель контента (АСА, adaptive content accelerator)) может добавить неподвижное изображение и ссылку на протокол потоковой передачи в реальном времени (RTSP-протокол) к основному документу DOM. Имеет место предварительная обработка языка сценариев, например для идентификации узлов, связанных с видеоконтентом, и поддержки всех других исходных узлов.

На фиг.1 показана схема высокого уровня, иллюстрирующая пример системы 100 для получения доступа, адаптации и предоставления информационного контента в электронные устройства. Система 100 содержит источник 102 информации, сервер 104 и клиентское устройство 106.

Источник 102 информации включает любой тип устройства, такой как веб-сервер, сервер приложений, база данных или другая система с базой данных (бэкэнд), или любой интерфейс с поставщиком информации. Кроме того, источник 102 информации может содержать множество устройств или интерфейсов, которые обеспечивают соединение с информационным контентом. Источник 102 информации предоставляет информационный контент, выраженный на языке разметки, таком, например, как известные языки разметки, включая язык разметки гипертекста (HTML), расширяемый язык разметки (XML), с или без расширяемых таблиц стилей (XSL), язык VoiceXML, расширяемый язык разметки гипертекста (XHTML), язык разметки для беспроводной связи (WML) или другие типы языков, которые могут быть обработаны клиентским устройством 106. Кроме того, информационный контент может ссылаться на текст, изображения, видеоконтент или аудиоинформацию, которая выдается источником 102 информации. Например, информационный контент может быть веб-сайтом, веб-страницей или множеством веб-страниц.

К источнику 102 информации можно получить доступ через сеть любого типа с помощью сервера 104 через браузер 108 сервера. Браузер 108 сервера может связаться с клиентским устройством 106 по сети любого типа через клиентский браузер 110. Браузер 108 сервера может выполнять роль прокси-устройства между клиентским браузером 110 и источником 102 информации для просмотра контента веб-страницы. Для получения информационного контента браузер 108 сервера может работать как клиент источника 102 информации. Например, с использованием известного набора протоколов связи, таких как протокол управления передачей/межсетевой протокол (TCP/IP), браузер 108 сервера может выдать запрос по протоколу передачи гипертекста (HTTP) в источник 102 информации. С использованием http-запросов браузер 108 сервера может получить доступ к информационному контенту, включая приложения, а также статический и динамический контент, находящийся в источнике 102 информации.

Браузер 108 сервера и клиентский браузер 110 могут находиться на одной платформе или могут быть отделены друг от друга. Например, браузер 108 сервера может быть размещен на сервере бэкэнда, а клиентский браузер 110 может быть размещен на наладонном электронном устройстве, как показано на фиг.1. Альтернативно, клиентское устройство 106 и сервер 104 могут сосуществовать в одном и том же устройстве и таким образом использовать функциональные возможности друг друга. Например, браузер 108 сервера и клиентский браузер 110 могут быть размещены на одной платформе, например в электронном устройстве, если в платформе или электронном устройстве имеются соответствующие аппаратные средства и сетевые возможности. Таким образом, в рамках множества вариантов функциональные возможности можно описать как являющиеся частью клиентского браузера 110 или как являющиеся частью браузера 108 сервера. Клиентский браузер 110 может выполнять функции, описанные как выполняемые браузером 108 сервера, а браузер 108 сервера может выполнять функции, описанные как выполняемые клиентским браузером 110. С использованием сервера и клиентского браузера электронные устройства с ограниченными аппаратными возможностями могут получать доступ к информации или данным разнообразного характера.

Обычно сервер 104 и клиентское устройство 106 содержат центральный процессор, память (блок первичной и/или вторичной памяти), интерфейс ввода для приема данных, интерфейс ввода для приема входных сигналов из одного или большего количества устройств для ввода данных (например, клавиатуры, мыши и т.д.) и интерфейс вывода для связи с устройством вывода (например, монитором). В общем, должно быть понятно, что сервер 104 и клиентское устройство 106 могут содержать аппаратные средства, разработанные с использованием технологий изготовления интегральных схем или некоторых других способов, или комбинацию аппаратных и программных средств, которые могут быть упорядочены, параметризованы и соединены в рамках программной среды для выполнения различных функций, описанных в данном документе. Кроме того, аппаратные средства могут осуществлять связь с использованием электрических сигналов, при этом состояния сигналов представляют различные данные. Кроме того, следует отметить, что сервер 104 и клиентское устройство 106 обычно могут выполнять резидентную прикладную программу в сервере 104 и клиентском устройстве 106 под управлением операционной системы. Прикладные программы, такие как браузер 108 сервера и клиентский браузер 110, могут храниться в памяти в пределах сервера 104 и клиентского устройства 106 и могут быть реализованы с использованием команд на машинном языке или программного обеспечения с объектно-ориентированными инструкциями, например языка программирования Java. Однако можно использовать и другие языки программирования (например, язык программирования C++).

Например, клиентский браузер 110 может находиться в клиентском устройстве 106, которое может быть электронным устройством, содержащим любое из следующих устройств: персональный компьютер (PC), беспроводной телефон, персональный цифровой секретарь (PDA), наладонный компьютер, сетевой компьютер и различные другие типы электронных устройств, обладающих возможностями навигации (например, клавиатурой, сенсорным экраном, мышью и т.д.) и дополнительным дисплеем для просмотра загруженного информационного контента. Кроме того, клиентское устройство 106 может содержать устройства любых типов, у которых имеется возможность использования разметку синтеза речи, такую как язык VoiceXML Консорциума World-Wide Web (World Wide Web Consortium (W3C) Voice Extensible Markup (VoiceXML). Специалистам в области компьютерных систем очевидно, что приведенные в качестве примера варианты не ограничены никаким определенным классом или моделью компьютера, используемого для клиентского устройства 106, и они смогут выбрать подходящую систему.

В рамках рассматриваемого примера клиентский браузер 110 находится в клиентском устройстве 106, а персональный компьютер (PC) является ведущим узлом браузера 108 сервера, при этом клиентское устройство 106 и персональный компьютер - оба соединены с сетью Ethernet. Кроме того, клиентский браузер 110 и браузер 108 сервера могут выполнять обмен информацией по сети Ethernet. При таком обмене информации используется Ethernet или протоколы IEEE 802.3. Однако в этом примере браузеры клиента и сервера связываются по проводной сети. Связь может также включать беспроводную сеть, такую как локальная беспроводная сеть (LAWN, local area wireless network), беспроводная локальная сеть (WLAN, wireless local area network) или сотовая беспроводная сеть. Кроме того, связь может включать использование беспроводных сетей, в которых используются другие известные протоколы и технологии, например Bluetooth, протокол приложений для беспроводной связи (WAP, wireless application protocol), многостанционный доступ с временным разделением каналов (TDMA) или многостанционный доступ с кодовым разделением каналов (CDMA).

На фиг.1 клиентский браузер 110 может отправить запрос на информацию в браузер 108 сервера. Клиентский браузер 110 может содержать транслятор 112 событий для преобразования протокола запроса/ответа, такого как запрос HTTP, из клиентского браузера 110 (например, WML, XHTML, cHTML и т.д.) в событие, которое способен распознать браузер 108 сервера. Процесс преобразования может включать информацию о событии, информацию о контенте и контекст события в таком виде, чтобы поддерживать обмен данными между клиентским браузером 110 и источником 102 информации (например, представление в форме HTML).

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

Для обеспечения таких возможностей браузер 108 сервера или клиентский браузер 110 могут содержать модули (не показаны), содержащие, например, пользовательский агент, обработчик данных типа cookie, объектную модель документа (DOM), исполнитель сценариев, нормализатор и преобразователь данных в последовательную форму (сериализатор). Дополнительная информация, имеющая отношение к преобразованию информационного контента или настройке, раскрыта в патенте США №7072984 "System and method for accessing customized information over the internet using a browser for a plurality of electronic devices", заявке на патент США 2004/0049737 "System and Method for Displaying Information Content with Selective Horizontal Scrolling", патенте США №7500188 "System and Method for Adapting Information Content for an Electronic Device", заявке на патент США 2007/0073777 "System and Method for Web Navigation Using Images" и заявке на патент США 2008/0195692 "Method and System for Converting Interactive Animated Information Content for Display on Mobile Devices", - содержание каждого из перечисленных документов полностью включено в настоящее описание путем ссылки.

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

На фиг.2 показана блок-схема компьютерного устройства 200, представленного в качестве примера. В одном из примеров компьютерное устройство 200 может работать в качестве клиентского устройства, показанного на фиг.1. В другом примере компьютерное устройство 200 может работать в качестве сервера, показанного на фиг.1. Компьютерное устройство 200 принимает информационный контент во входной интерфейс 202. Информационный контент может быть принят, например, из источника информации или из промежуточного прокси-сервера. Информационный контент может быть представлен в виде данных веб-сайта и может быть перекодирован для просмотра в клиентском устройстве или, альтернативно, может быть принят в исходном виде и перекодирован (если это требуется) компьютерным устройством 200.

Входной интерфейс 202 соединяет процессор 204 и браузер 206. Процессор 204 может обрабатывать данные и управлять работой компонентов в компьютерном устройстве 200. Процессор 204 может быть выполнен как процессор с доступом к памяти 208 для выполнения хранимого в ней программного обеспечения. Специалисту в области проектирования компьютерных систем очевидно, что варианты показанной в качестве примера конструкции не ограничены никаким конкретным классом или моделью процессора. Процессор 204 может работать под управлением операционной системы, которая может быть любой подходящей коммерчески доступной встроенной хранящейся на диске операционной системой или любой частной операционной системой. Кроме того, процессор 204 может содержать один или большее количество малых центральных процессоров, включая, например, программируемый механизм цифровой обработки сигналов, или может быть реализован как одиночная специализированная интегральная схема (ASIC), что позволяет повысить быстродействие и сэкономить пространство. В общем случае подразумевается, что процессор 204 может содержать аппаратные средства, разработанные с использованием технологий изготовления интегральных схем или некоторых других способов, или комбинацию аппаратных и программных средств, которые могут быть упорядочены, параметризованы и соединены в рамках программной среды для выполнения различных функций, описанных в данном документе. Кроме того, аппаратные средства могут осуществлять связь с использованием электрических сигналов, при этом состояния сигналов представляют различные данные.

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

Браузер 206 может включать механизм 210 TCP/IP и видеоплеер 212. Браузер 206 может принимать информационный контент и подготавливать его к отображению. Для этого браузер 206 может форматировать информационный контент по мере необходимости путем перекодирования контента для отображения на наладонном устройстве. В этом отношении браузер 206 может работать в качестве браузера сервера и перекодировать информационный контент, посылаемый в клиентское устройство. Альтернативно, браузер 206 может работать в качестве клиентского браузера со всеми возможностями перекодирования информационного контента, например после получения этого контента из сервера. Или же браузер 206 может работать в качестве клиентского браузера не в полном объеме и может принимать информационный контент и выводить его на экран в том виде, в котором он был получен.

Механизм 210 TCP/IP работает для осуществления приема и передачи запросов на информационный контент. Компьютерное устройство 200 может работать под управлением процессора 204 для преобразования информационного контента в форму, доступную запрашивающим клиентским устройством. Например, клиентское устройство может запросить обычную веб-страницу, и таким образом компьютерное устройство 200 получит доступ в Интернет и извлечет запрашиваемую веб-страницу, и затем браузер 206 может преобразовать эту веб-страницу в форму, доступную для клиентского устройства. В некоторых случаях веб-страница будет включать видеообъект, фильм или контент для flash-проигрывателя, и таким образом компьютерное устройство 200 извлечет и загрузит веб-страницу в браузер 206 с использованием видеоплеера 212. Затем браузер 206 может модифицировать веб-страницу или видеоконтент так, как требуется, и передать модифицированный контент в клиентское устройство. Альтернативно, компьютерное устройство может работать в качестве клиентского устройства и выполнять модификацию и перекодирование в клиентском устройстве.

Компьютерное устройство 200 может дополнительно содержать нормализатор, выполненный как отдельный элемент 214 или как компонент процессора 204 или браузера 206. Например, нормализатор 214 может преобразовывать или перекодировать информационный контент в формат, предназначенный для отображения этого контента на клиентском устройстве.

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

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

На фиг.3 показан пример концептуальной модели DOM, представленной в виде древовидной структуры. Модель DOM включает документ HTML. Документ HTML включает элементы HTML, у которых в общем имеется три компонента: пара тэгов элемента с тэгом начала и тэгом конца, атрибуты элементов, присвоенные элементу внутри тэгов, и текстовый и графический информационный контент, который будет отображен на дисплее. Внутри контента веб-страницы тэги заключены в угловые скобки. Кроме того, документ HTML может включать или может загружать сценарии на таких языках, как Javascript, которые влияют на работу процессоров HTML, таких как веб-браузеры, и каскадные таблицы стилей (CSS), для определения внешнего вида и расположение текста и другого материала. В примере, показанном на фиг.3, документ HTML может иметь вид, представленный в Таблице 1.

Для представления документа HTML в виде древовидной структуры, корневой элемент <html> начинает дерево и предлагает ветви для следующего подуровня элементов, таких как элементы «голова» (head) и «тело» (body) документа HTML. Ветвь головы содержит элемент title (название) и заканчивается текстом title. Ветвь тела сама содержит две ветви, включая элемент ссылки (link) <a> и элемент <h1> заголовка (header). Каждая из этих ветвей содержит текст, а ветвь элемента ссылки включает также атрибут гиперссылки.

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

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

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

В зависимости от типа и стиля клиентского устройства могут быть реализованы различные способы. Например, в клиентских устройствах (например, беспроводных телефонах), обладающих определенными функциями браузера, например функциями браузера, аналогичными функциям настольного компьютера (например, в телефоне высокого технического уровня (НЕР, high-end phone)), видеопросмотр для клиентского устройства может быть обеспечен посредством клиентского браузера в режиме видеопотока. Возможности браузера могут меняться в зависимости от клиентского устройства, а кроме того, требования к браузеру могут меняться в зависимости от типа и количества видеоконтента, поставляемого в клиентское устройство и отображаемого в нем.

На фиг.4 показана последовательность шагов для способа 400 предоставления информационного контента. В одном из примеров способ 400 может быть реализован в сервере или прокси-сервере, как показано на фиг.1. В другом примере способ 400 может быть реализован в клиентском устройстве, как показано на фиг.1.

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

В примере, в котором способ 400 реализован в сервере, этот сервер может принять запрос на информационный контент, например, от клиентского устройства, а этот информационный контент сервер получает из источника информации, как показано в блоке 402.

Затем сервер может определить, содержит ли информационный контент выбранные данные (например, видеоданные), как показано в блоке 404. Например, сервер может сослаться на список, включающий веб-сайты, на которых имеются видеоданные, и, если информационный контент находится в этом списке, сервер может определить, что информационный контент включает видеоданные. Пример списка может включать список операций, администрирования, сопровождения и предоставления (ОАМР, operations, administration, maintenance and provisioning) для веб-сайтов с видеоконтентом для телефонов высокого технического уровня (НЕР). Альтернативно, сервер может производить поиск информационного контента по идентификаторам HTML, таким как тэги встраивания или объекта, которые указывают, что информационный контент включает видеоданные. В зависимости от типа данных, по которым производится поиск, сервер может определить местоположение контента и выяснить, содержит ли этот информационный контент такие данные.

Альтернативно, блок 404 может быть удален, и способ 400 может быть выполнен на всем информационном контенте. Однако выполнение блока 404 может научить обрабатывать информационный контент для объектов, в которых информационный контент не содержит видеоданных. Кроме того, блок 402 может быть выполнен на информационном контенте, если информационный контент, по меньшей мере потенциально, включает видеоданные.

В еще одном варианте блок 404 может быть удален, и способ 400 может быть выполнен только для запроса устройств, которые, например, не поддерживают видеоконтент.

Видеоданные могут включать любой тип данных, включая анимацию, например Adobe Flash, Microsoft Silverlight, Sun JavaFX, W3C SVG, Windows media, RealMedia, Quicktime, MPEG и т.д. Такие данные могут находиться в файлах различного формата, например с расширениями (swf), (flv), (fla) для исходного материала, и расширением MPEG. Кроме того, данные могут считаться видеоданными в зависимости от идентификатора данных в пределах информационного контента. Например, если данные вставлены или на них делается ссылка посредством HTML-тэгов встраивания или объекта, такие данные можно считать видеоданными.

Если информационный контент не содержит видеоданных, то при необходимости сервер может выполнить перекодирование информационного контента, как показано в блоке 406. Можно выполнить множество различных преобразований или перекодировок контента на основе информации, имеющейся в пределах затребованной веб-страницы. В частности, интерактивная анимированная информация о контенте требует соответствующего преобразования. Анимация и спецэффекты могут быть включены в контент веб-страницы с использованием файлов масштабируемой векторной графики с покадровым управлением, и такой контент будет преобразован для просмотра на клиентском устройстве. Например, можно представить анимацию, которая содержит начальный и конечный кадры и анимацию для промежуточных кадров. Можно варьировать размер объекта, угол поворота, цвет или другие атрибуты между начальным и конечным ключевыми кадрами, создавая видимость перемещения. Альтернативно, анимацию можно представить путем изменения контента последовательных кадров. Любые или все кадры файла для интерактивного анимированного контента могут модифицироваться сервером и затем передаваться в клиентское устройство, сделавшее запрос.

Дополнительная информация, имеющая отношение к типам преобразования информационного контента или его модификации под требования заказчика, содержится в патенте США №7072984 "System and method for accessing customized information over the internet using a browser for a plurality of electronic devices", заявке на патент США №2004/0049737 "System and Method for Displaying Information Content with Selective Horizontal Scrolling", патенте США №7500188 "System and Method for Adapting Information Content for an Electronic Device", заявке на патент США №2007/0073777 "System and Method for Web Navigation Using Images", и заявке на патент США №2008/0195692 "Method and System for Converting Interactive Animated Information Content for Display on Mobile Devices", содержание которых полностью включено в настоящее описание путем ссылки.

Затем сервер может послать перекодированный контент в клиентское устройство, как показано в блоке 408.

Если информационный контент содержит видеоданные, то сервер выполняет язык сценариев, который может быть связан с информационным контентом, как показано в блоке 410. Например, язык сценариев, такой как Javascript, может быть связан с информационным контентом или включен в него. Сервер может содержать механизм языка сценариев, который связан с браузером сервера или включен в него и который может выполнять язык сценариев, при выполнении которого производится изменение модели DOM информационного контента. Например, после извлечения информационного контента сервер может загрузить информационный контент в браузер сервера и при этом браузер сервера выполнит встроенные элементы сценария. Выполнение языка сценариев приведет к изменениям в модели DOM. Например, в случае видеоданных выполнение языка сценариев в отношении видеоданных может привести к добавлению к узлу видеоданных нового дочернего узла, который представляет собой или тэг встраивания или тэг объекта, содержащего исходные видеоданные. Альтернативно, выполнение языка сценариев в отношении видеоданных может привести к добавлению к узлу видеоданных дочернего узла, который содержит текст сообщения «В этом браузере видеоконтент не поддерживается». В другом примере, в случае данных, не являющихся видеоданными, выполнение языка сценариев может привести к добавлению или замене дочерних узлов для узла данных, не являющихся видеоданными, в исходной модели DOM. В еще одном примере для заданного узла в исходной модели DOM выполнение языка сценариев может привести к удалению тэга привязки, который указывает на веб-страницу, и замене тэга привязки на другой тэг привязки, указывающий на другую веб-страницу.

В каждой позиции в модели DOM, в которой в результате выполнения языка сценариев выполняется модификация, вставляют узел переключения, как показано в блоке 412. Например, при выполнении языка сценариев, если нужно выполнить модификацию модели DOM, узел переключения вставляют при модификации конкретного узла. Узел переключения заменяет исходный узел и содержит две ветви. Первая ветвь узла переключения ведет в исходный узел, а вторая ветвь узла переключения ведет к модификациям, сделанным в модели DOM благодаря выполнению языка сценариев. Таким образом, узел переключения поддерживает исходный формат модели DOM и также включает модифицированный формат модели DOM.

Как показано в блоке 414, если узел переключения включает первый контент данных (например, видеоконтент), этот узел переключения маркируют. Узел переключения представляет собой узел DOM и таким образом может быть маркирован включением в узел переключения HTML-атрибута. Для идентификации ситуации, когда узел переключения включает видеоконтент, в модели DOM после модификации языком сценариев можно произвести поиск тэгов встраивания или объектов или других идентификаторов видеоданных. Тэг встраивания, тэг объекта или другой установленный или определенный тэг могут указывать, что узел модели DOM включает видеоданные или ссылку на видеоданные.

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

Затем модифицированную модель DOM передают к нормализатор и обрабатывают подходящим образом, как показано в блоке 416. Например, модель DOM обрабатывают, следуя ветвям узлов переключения так, чтобы для маркированных узлов переключения переходить в модифицированные ветви, а для немаркированных узлов переключения переходить в исходные ветви. Таким образом, в одном из примеров, как только парсинг документа завершен и язык сценариев выполнен, могут быть выполнены логические операции для определения, какие ветви вставленных узлов переключения следует использовать во время нормализации модели DOM: только исходные, только модифицированные или же следует обнаружить атрибут "переопределение" в узле переключения. Затем сервер нормализует информационный контент, следуя указанным ветвям DOM, и передает нормализованный информационный контент в клиентское устройство. Для нормализации информационного контента этот информационный контент можно, при необходимости, перекодировать.

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

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

Альтернативно, видеоконтент можно обработать путем перекодирования этого видеоконтента и вставки ссылки на этот перекодированный видеоконтент в модель DOM. Преобразование цифрового видеоконтента из потока цифрового видеоконтента, имеющего одну характеристику, в видеопоток, имеющий другую характеристику, обычно носит название транскодирования видеосигнала, и видеофайл можно транскодировать в формат, пригодный для отображения в клиентском устройстве, с использованием множества различных способов. Примеры различных характеристик включают формат видеокодирования (например, MPEG1 и MPEG2) и скорость передачу данных, влияющую на различные значения дискретизации. Если вся видеоинформация для одного видеопотока в процессе перекодирования сохраняется, говорят, что видеопоток перекодирован без потерь. Для перекодирования без потерь пропускная способность, доступная второму видеопотоку, должна быть достаточной для поддержки данных, имеющихся в исходном видеопотоке. В одном примере перекодирование без потерь между форматами видеокодирования может быть выполнено путем декодирования первого видеопотока, имеющего первый формат видеокодирования для генерации представляемых данных (данные изображения), с последующим кодированием представляемых данных для генерации второго потока видеоданных, имеющего второй формат видеокодирования.

Другие примеры перекодирования включают преобразование типичного видеофайла в формате MPEG2 для просмотра в клиентском устройстве путем уменьшения видеоразрешения или уменьшения частоты воспроизведения кадров путем удаления некоторых кадров. Более конкретно, поток MPEG2, который транслируется в телевизионные приемники, может быть преобразован в поток с низким разрешением, например поток MPEG4. Перекодировщик (транскодер) может принимать поток MPEG2 и распаковывать сжатые видеоданные, содержащиеся в потоке MPEG2. Перекодировщик может затем преобразовать принятые видеоданные для мобильного клиентского устройства, например, с разрешением 360 пикселей в строке при 240 строках и 10 кадрах в секунду.

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

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

Поскольку для видеоконтента имеется много различных кодекса или типов сжатия (как для видео-, так и для аудиокомпонентов видеофайла), может быть полезным знать, какие клиенты поддерживают какие кодеки. Знание, какой клиент поддерживает какие форматы, позволяет выбирать качество видеоконтента, который будет отправлен определенному клиенту. Например, AMR-NB (узкополосный) представляет собой тип аудиокодека, который оптимизирован на малый размер файла и хорош для человеческой речи, однако этот кодек не обеспечивает хорошего качества при воспроизведении музыки. С другой стороны, аудиостандарт МР4 представляет собой формат, который характеризуется большим объемом файла и может поддерживаться меньшим количеством клиентов, однако считается приемлемым для воспроизведения музыки и данных мультимедиа.

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

Для получения дополнительной информации относительно перекодирования видеоданных читатель отсылается к заявке на патент США №2008/0195698 "Method and System for Transforming and Delivering Video File Content for Mobile Devices" и заявке на патент США №2008/0195692 "Method and System for Converting Interactive Animated Information Content for Display on Mobile Devices", содержание которых полностью включено в настоящее описание путем ссылки.

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

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

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

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

Альтернативно, после приема ссылки, выбранной пользователем, сервер может перекодировать видеоданные и уведомить пользователя о завершении этого преобразования. Сервер может уведомить пользователя любым из множества способов, например с использованием службы коротких сообщений (SMS) или службы активной передачи сообщений (Push messaging), при этом уведомление содержит ссылку, позволяющую пользователю смотреть видеоматериал. Уведомление может включать идентификатор, который обеспечивает ссылку на ассоциированный перекодированный видеофайл. Сервер может разместить идентификатор видеофайла в уведомлении до того, как сервер отправит уведомление в клиентское устройство. Клиентское устройство, в свою очередь, может отправить идентификатор серверу для извлечения ассоциированного перекодированного видеофайла.

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

На фиг.5 показан другой пример концептуальной модели DOM, представленной в виде древовидной структуры. В этом примере исходная модель DOM содержит элемент body (тело), у которого имеются ветви к тэгу division (раздел) (например, div) и тэгу script (сценарий). После выполнения языка сценариев, связанного с моделью DOM, узлы «раздел» и «сценарий» могут быть модифицированы, и таким образом узлы переключения вставляются в модель DOM в позициях исходных узлов «раздел» и «сценарий». Узлы переключения хранят две версии узлов - «раздел» и «сценарий». Например, первая версия содержит исходный контент DOM, а вторая версия включает модифицированные данные. Для узла переключения, представляющего узел «сценарий», вставляют две ветви, которые представляют исходный узел (например, узел «сценарий») и модифицированный узел. Модифицированная ветвь узла «сценарий» является нулевой, поскольку этот узел обязательно будет выполнен.

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

Логика сервера по поиску тэгов «встраивание»/«объект» в этом примере может быть расширена поиском этих тэгов в исходной модели DOM. Если такой тэг найден, то следующий шаг заключается в нахождении всех родительских узлов переключения в этой ветви и установлении в этих узлах атрибута, называемого "переопределением" (override). Это заставит во всех дальнейших операциях модели DOM в этих узлах использовать модифицированные ветви. Затем нормализатор сервера может выполнить тэги «встраивание»/«объект» с помощью перекодировщика видеоконтента и обновить нормализованную модель DOM полученным контентом.

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

На фиг.6-12 показан пример концептуальных моделей DOM, представленных в виде древовидной структуры, и случаев, когда модели DOM модифицированы вследствие выполнения языка сценариев.

На фиг.6 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и случай, когда язык сценариев модифицирует узел сценария. Когда синтаксический анализатор документа выполняет язык сценариев и находит узел сценария, состояние переключателя QuickDom устанавливают так, чтобы вставить указание, что изменение модели DOM должно заключаться во вставке узла переключения. Как показано на фиг.5, исходный узел сценария будет заменен на узел переключения, у которого имеются две ветви. Атрибут состояния узла переключения устанавливают на "исходный". Узел с исходным тэгом «сценарий» и все дочерние элементы узла с тэгом «сценарий» становятся первым дочерним элементом (в исходной ветви) узла переключения, а "нуль" остается в модифицированной ветви узла переключения, который установлен в качестве последнего или второго дочернего элемента узла переключения.

На фиг.7 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и случай, когда язык сценариев модифицирует обычный узел. Если родитель узла А уже является узлом переключения, то дочерние элементы узла А могут быть просто добавлены к копии узла А. Однако если родитель узла А не является узлом переключения, то узел переключения создают и вставляют вместо узла А. Исходный узел А становится первым дочерним элементом узла переключения, а копия узла А становится вторым дочерним элементом (модифицированной ветви). Затем все дочерние элементы могут быть добавлены к копии узла А.

На фиг.8 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и случай, когда язык сценариев модифицирует обычный узел путем удаления дочерних элементов. Если родитель узла А уже является узлом переключения, дочерние элементы узла А могут быть просто удалены. Однако если родитель узла А не является узлом переключения, то узел переключения создают и вставляют вместо узла А. Исходный узел А и дочерние элементы становится первым дочерним элементом узла переключения, а копия узла А становится вторым дочерним элементом (например, модифицированной ветви). Все дочерние элементы удаляют из копии узла А (например, модифицированной ветви).

На фиг.9 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и случай, когда язык сценариев модифицирует модель DOM путем вставки нового узла перед модифицируемым узлом. Если родитель узла А уже является узлом переключения, новый узел может быть вставлен перед узлом А. Однако если родитель узла А не является узлом переключения, то узел переключения создают и вставляют вместо узла А. Исходный родительский узел становится первым дочерним элементом узла переключения, а копия родительского узла и его дочерние элементы становятся вторым дочерним элементом (например, модифицированной ветви). С использованием копии родительского узла новый узел вставляют перед узлом А.

На фиг.10 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и случай, когда язык сценариев модифицирует модель DOM путем вставки нового узла после модифицируемого узла. Если родитель узла А уже является узлом переключения, новый узел может быть вставлен после узла А. Однако если родитель узла А не является узлом переключения, то узел переключения создают и вставляют вместо узла А. Исходный родительский узел становится первым дочерним элементом узла переключения, а копия родительского узла и его дочерние элементы становятся вторым дочерним элементом (например, модифицированной ветви). С использованием копии родительского узла новый узел вставляют после узла А.

На фиг.11 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, в случае, когда язык сценариев модифицирует узел путем изменения значения атрибута. Если родитель узла А уже является узлом переключения, можно установить новый атрибут узла А. Однако если родитель узла А не является узлом переключения, то узел переключения создают и вставляют вместо узла А. Исходный узел А становится первым дочерним элементом узла переключения, а копия узла А становится вторым дочерним элементом (например, модифицированной ветви). С использованием копии узла А можно установить новый атрибут А.

На фиг.12 показан пример концептуальной модели DOM, представленной в виде древовидной структуры, и случай, когда язык сценариев модифицирует дочерние элементы путем замены данного узла контентом, определяемым строкой HTML (например, выполняя функцию Javascript "setlnnerHtml"). Если родитель узла А уже является узлом переключения, все дочерние элементы узла А можно удалить, и добавить новые дочерние элементы. Однако если родитель узла А не является узлом переключения, то узел переключения создают и вставляют вместо узла А. Исходный узел А и дочерние элементы становятся первым дочерним элементом узла переключения, а копия узла А становится вторым дочерним элементом (например, модифицированной ветви). Затем дочерние узлы могут быть удалены из копии узла А, и новые дочерние элементы, сгенерированные входным текстом HTML, могут быть добавлены к копии узла А (например, они показаны как узлы D и Е).

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

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

После того как узлы переключения вставлены, модифицированную модель DOM передают в нормализатор для обработки видеоданных. Нормализатор может попытаться нормализовать узел переключения, однако если в узле переключения установлен атрибут "переопределить", то выполняется проход вдоль модифицированной ветви, копирование первого дочернего узла модифицированной ветви и возврат. Нормализация продолжается вдоль модифицированной ветви при игнорировании исходной ветви. Если тэг «встраивание» или «объект» обнаружен, этот тэг передают в схему логики, которая пропускает узел через обработку видеоданных, а полученный видеоконтент добавляют к нормализованной модели DOM. Все другие встреченные узлы переключения нормализуют дочерние элементы исходной ветви в зависимости от состояния узла переключения. В конечном счете нормализованная модель DOM не будет содержать каких-либо узлов переключения, но будет содержать только те узлы, которые принадлежат ветвям, определяемым состоянием узла переключения.

Для реализации различных функций в исходной модели DOM в описанных в качестве примера способах может использоваться функция нормализатора QuickDom. Нормализатор QuickDom может содержать классы, например SwitchState, которые описывают, какой ветви следовать для данного узла переключения (например, по умолчанию - исходной). Значения SwitchState включают «исходная» (следовать исходной ветви), «вставка» (вставка контента в данное место), «модифицированная» (следовать модифицированной ветви) и «переопределение» (замена установок состояния переключения для всей модели DOM).

Кроме того, нормализатор может включать выполняемые методы, включая приведенные в Таблице 2. Другие описанные классы и методы также могут быть включены в нормализатор QuickDom.

Таблица 2 setDOMSwitch(int mode, String override)/getDOMSwitch() Установка атрибута для узла переключения getParentSwitchNode Определение местоположения родительского узла переключения getAncestorSwitchNode/getAncestorSwitchNodes Определение местоположения прародительского узла переключения getDescendantSwitchNode/getDescendantSwitchNodes Определение местоположения порожденного узла переключения getChildSwitchNode Определение местоположения дочернего узла переключения appendChild/appendChildren Добавление дочерних узлов buildTagNode Создание узла с тэгом «видео» countAllDescendants Подсчет всех порожденных узлов createTagNode Создание узла с тэгом createAttributeNode Создание атрибутов для узла copyNode Копирование узла getAIIDescendants/getAllTruncatedDescendants/ getTruncatedDescendants/ getTruncatedDescendantsByAttributeValue Определение местоположение всех потомков по значению getAllAncestors/getAncestor/ getAllAncestorslnSameWindow Определение местоположения всех предков getFirstDescendant Определение местоположения первого потомка getNearestPreviousElement Определение местоположения ближайшего узла getChildren/getChildrenNoTextNodes Определение местоположения дочерних элементов getFirstChild/getLastChild Определение местоположения первого дочернего элемента getNextSibIing/getPreviousSibling Определение местоположения следующего одноуровневого элемента getParent Определяет местоположение родительского узла insertAfter/insertBefore Вставка узла перед/после remove/removeAttribute/removeChildren/ removeKeepChildren Удаление дочерних элементов

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

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

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

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

название год авторы номер документа
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ СОДЕРЖИМОГО ВЕБ-РЕСУРСА В БРАУЗЕРЕ 2014
  • Никитин Константин Сергеевич
  • Чигрин Вячеслав Олегович
RU2595524C2
УПРАВЛЕНИЕ ОНЛАЙНОВОЙ КОНФИДЕНЦИАЛЬНОСТЬЮ 2011
  • Гудвин Джошуа К.
  • Мэнион Джошуа Р.
RU2550531C2
БРОКЕР И ПРОКСИ ОБЕСПЕЧЕНИЯ БЕЗОПАСТНОСТИ ОБЛАЧНЫХ УСЛУГ 2014
  • Коэм Авирам
  • Мойси Лиран
  • Люттвак Ами
  • Резник Рой
  • Вишнепольски Грег
RU2679549C2
ОПТИМИЗИРОВАННЫЙ ПРОЦЕСС ВИЗУАЛИЗАЦИИ В БРАУЗЕРЕ 2014
  • Мэн Бипин
  • Фан Хао
  • Сюй Хой
RU2665920C2
Способ и система для модификации текста в документе 2015
  • Смуглый Арсений Иванович
RU2610585C2
Способ записи, редактирования и воссоздания компьютерного сеанса 2018
  • Бекмамбетов Тимур
  • Гай Бедфорд
  • Даниэль Кехо
RU2733919C2
СПОСОБ И УСТРОЙСТВО ДЛЯ МОДЕЛИРОВАНИЯ ПРОСМОТРА ВЕБ-СТРАНИЦ 2010
  • Ян Гуан
RU2517381C2
ОПТИМИЗИРОВАННЫЙ ПРОЦЕСС ВОСПРОИЗВЕДЕНИЯ БРАУЗЕРА 2017
  • Мэн Бипин
  • Истхэм Майкл
  • Сюй Хой
  • Чжоу Сяобо
RU2756482C2
ОПТИМИЗИРОВАННЫЙ ПРОЦЕСС ВОСПРОИЗВЕДЕНИЯ БРАУЗЕРА 2014
  • Мэн Бипин
  • Истхэм Майкл
  • Сюй Хой
  • Чжоу Сяобо
RU2638726C1
Способ обнаружения фишинговых сайтов и система его реализующая 2023
  • Тушканов Владислав Николаевич
RU2813242C1

Иллюстрации к изобретению RU 2 475 832 C1

Реферат патента 2013 года СПОСОБЫ И СИСТЕМЫ ОБРАБОТКИ ОБЪЕКТНЫХ МОДЕЛЕЙ ДОКУМЕНТОВ (DOM) ДЛЯ ОБРАБОТКИ ВИДЕОКОНТЕНТА

Изобретение относится к системам для адаптации и представления информации веб-страниц для ее отображения в клиентском устройстве. Технический результат заключается в повышении удобства обработки видеоданных. Раскрыты способы и системы для обработки объектных моделей документов (DOM) и обработки видеоконтента. Принимают информационный контент, который представлен моделью DOM и содержит язык сценариев, ассоциированный с этим информационным контентом, и сохраняют исходный контент модели DOM после выполнения языка сценариев. Затем видеоконтент адаптируют к клиентским устройствам. Язык сценариев, ассоциированный с информационным контентом, может быть передан в клиентское устройство наряду с модифицированной моделью DOM и обработанным видеоконтентом. Производят предварительную обработку языка сценариев, например, для идентификации узлов, ассоциированных с видеоконтентом и для охранения всех других исходных узлов. 3 н. и 20 з.п. ф-лы, 12 ил., 2 табл.

Формула изобретения RU 2 475 832 C1

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

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

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

4. Способ по п.1, в котором маркировка узла переключения включает обеспечение наличия атрибута в узле переключения, если узел переключения включает тэг <embed> (встраивание) или <object> (объект).

5. Способ по п.1, в котором первый контент данных представляет собой видеоконтент.

6. Способ по п.5, в котором видеоконтент включает контент, выбранный из группы, содержащей флэш-контент и контент MPEG.

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

8. Способ по п.7, дополнительно включающий в пределах обработанной DOM обеспечение наличия идентификаторов в узлах, включающих обработанный видеоконтент, при этом идентификаторы указывают языку сценариев не производить модификацию узлов, если язык сценариев выполняется в клиентском устройстве.

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

10. Способ по п.9, дополнительно включающий:
прием выбора пользователем ссылки;
перекодирование видеоконтента и
предоставление перекодированного видеоконтента.

11. Способ по п.1, в котором вывод обработанной модели DOM включает предоставление языка сценариев, ассоциированного с информационным контентом.

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

13. Способ по п.1, дополнительно включающий:
определение, включает ли информационный контент видеоконтент, и на основе этого определения выполнение языка сценариев на модели DOM.

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

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

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

17. Способ по п.16, дополнительно включающий добавление дочерних элементов узла к копии указанного узла.

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

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

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

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

22. Сервер по п.21, в котором узел модели DOM модифицируется языком сценариев и в котором функция вставки узла переключения в DOM включает:
замену указанного узла узлом переключения;
размещение указанного узла в первой ветви узла переключения в качестве первого дочернего элемента узла переключения и размещение копии указанного узла во второй ветви узла переключения в качестве второго дочернего элемента узла переключения.

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

Документы, цитированные в отчете о поиске Патент 2013 года RU2475832C1

Трехшарошечное долото с продольным и поперечным расположением зубцов на шарошках 1949
  • Киселев Д.К.
SU80296A1
Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
US 2848426 A, 08.12.1988
EP 1443390 A1, 04.08.2004.

RU 2 475 832 C1

Авторы

Чэбот Тимоти Дж.

Уиндс Эдвин Д.

Этэс Грегори Дж.

Ли Гэнг

Хэйош Томас И.

Морено Сизар

Даты

2013-02-20Публикация

2010-03-30Подача