СПОСОБ ВСТАВКИ СООБЩЕНИЙ В ЭЛЕКТРОННЫЕ ДОКУМЕНТЫ ВНЕДРЕННЫМ КЛИЕНТСКИМ СКРИПТОМ
METHOD FOR INSERTION OF MESSAGES INTO ELECTRONIC DOCUMENTS BY INCORPORATED CLIENT SCRIPT

Настоящее изобретение относится к рекламе и информационным сообщениям в компьютерных вычислительных сетях таких, как Интернет, а также в программах, использующих эти сети как среду обмена данными.
В настоящее время существует множество систем адаптации содержимого (content adaptation). Эти системы позволяют изменять проходящий через веб-сервер или сервер-посредник данные по заданным правилам. Описаны и реализованы протоколы адаптации содержимого ICAP (RFC 3507, http://tools.ietf.org/html/rfc3507) и еСАР (http://www.e-http://cap.org), реализации их включают в себя программные продукты с открытым исходным кодом, такие как squid (http://www.squid-cache.org/), и проприетарные продукты, такие как Traffic Spicer (http://spicer.measurement-factorv.com/).
Адаптация содержимого позволяет и широко используется для вставки сообщений в веб-страницы и иные документы, получаемые из локальных сетей и сети Интернет.
Одна из сложностей во вставке сообщений при адаптации содержимого возникает из-за многообразия протоколов и форматов передачи данных в сети Интернет, большинство из которых поддерживаются существующими браузерами - это, например, различные версии формата HTML, xHTML, JSON. При этом способ отображения содержимого веб-документа может отличаться от браузера к браузеру, не говоря уже о размерах экрана того или иного устройства, используемого конечным клиентом для просмотра.
Поэтому вставка сообщения таким образом, чтобы оно не нарушало структуру документа и корректно выводилось на конечном устройстве, остается трудоемкой задачей, требует от разработчика учесть особенности форматов и протоколов, что в свою очередь повышает сложность правил и модулей адаптации, отчего возрастает нагрузка на серверы, на которых эта адаптация происходит.
В качестве ближайшего аналога заявляемого изобретения выбран патент США 7533144 «Способ обеспечения веб-страницы дополнительным содержимым, вставленным на платформе промежуточного сетевого объекта (INE)», описывающий способ вставки в веб-страницу контента с изменением содержимого в качестве ответа на первый веб-запрос и применением адаптации содержимого.
Недостатками способа, описанного в аналоге, являются:
- описанная платформа промежуточной сетевой сущности (INE platform) размещается либо на сервере адаптации контента, что ведет к потерям в производительности, либо на клиентском устройстве, что требует установки дополнительных приложений;
- размещение дополнительного содержимого в случае веб-страницы ограничено отдельным фреймом, что приводит к ограничению внешнего вида и размещения вставленного содержимого (только прямоугольная область). Также фрейм имеет отдельную сессию в браузере, и не имеет доступа к информации о родительском фрейме (т.е. модифицируемом содержимом).
Технический результат, на достижение которого направлено заявляемое изобретение, заключается в возможности перенести вставку сообщения с веб-сервера или сервера-посредника на клиентское устройство для получения данных о возможностях клиентского устройства и учесть их при вставке сообщения таким образом, чтобы отображаемая информация не теряла изначальную структуру, внешний вид и читабельность.
Технический результат достигается тем, что функции промежуточной сетевой сущности разделены между сервером адаптации контента, сервером данных и двумя клиентскими скриптами с сохранением изменения содержимого в качестве ответа на первый веб-запрос и применением адаптации содержимого. Способ, описанный в данном изобретении, существенно сокращает объем данных, необходимый для вставки, а доставка скрипта для размещения и вставляемого сообщения в два этапа (J2 и М по обозначениям ниже) позволяют реализовывать более гибкие сценарии размещения сообщения в электронном документе.
Заявляемый способ реализуется с помощью серверов, изображенных на фигуре:
- Saк - сервер адаптации контента 1;
- Sв - веб-сервер 2;
- Sк - клиентское устройство (КУ) 3;
- Scкp - сервер скриптов 4;
- Sд - сервер данных 5.
Сервер адаптации контента Saк 1 включен во взаимодействие между Sв 2 и Sк 3. Это включение может быть реализовано, например, как прозрачный прокси-сервер, причем физически Saк 1 и Sв 2 могут быть реализованы на одном устройстве или на разных.
Клиентское устройство Sк 3 отправляет в сеть запрос Q1 на получение ответа от веб-сервера Sв. Saк пропускает запрос Q1 в неизменном виде к серверу Sв 2. Веб-сервер Sв 2 формирует ответ R1.1, который может содержать в себе документ D1.1, в который необходимо вставить сообщение М (например, информационного или рекламного характера) с сервера данных 5. Ответ R1.1 может также содержать не документ, а двоичные данные, например изображение, аудио- или видеопоток.
Ответ R1.1 веб-сервера 2 приходит в Saк 1. Saк анализирует R1.1 на предмет наличия документа D1.1 и пригодности D1.1 к вставке клиентских скриптов.
Если R1.1 не содержит пригодного для вставки клиентского скрипта документа D1.1, R1.1 возвращается клиентскому устройству в неизмененном виде.
Если R1.1 содержит D1.1 таковым, что вставка клиентских скриптов в D1.1 допустима, то Saк 1 вставляет клиентский скрипт - скрипт подгрузки J1 - в тело документа D1.1. Скрипт подгрузки J1 представляет собой максимально компактный скрипт, который содержит в себе конфигурацию данного сервера Saк 1.
Saк 1 осуществляет вставку J1 в допустимое место D1.1. В случае с форматом данных HTML, например, таким местом будет начало или конец содержимого секции, отмеченной тегами<head>…</head>.
Далее Saк 1 отправляет измененный ответ R1.2, содержащий измененный документ D1.2 (представляющий из себя документ D1.1 с внедренным J1), клиентскому устройству Sк 3. На КУ при обработке полученного измененного ответа R1.2, выполняется среди прочих клиентских скриптов из D1.2 и скрипт подгрузки J1.
J1 при выполнении своем на клиентском устройстве 3 формирует запрос Q2 к серверу скриптов Scкp 4 на получение основного скрипта J2. Saк 1 пропускает Q2 и J2 без изменений.
Сервер скриптов представляет собой веб-сервер, на котором хранится J2, он может быть расположен на отдельном сервере, доступном клиенту по сети Интернет, может быть расположен на одном сервере с сервером данных или на одном сервере с сервером адаптации контента.
При выполнении клиентского скрипта J1 последовательно выполняется следующее:
- J2 анализирует содержащуюся в J1 конфигурацию сервера адаптации контента Saк, что возможно в силу того, что J1 и J2 выполняются в одной и той же среде и в контексте измененного документа D1.2. J1 передает данные в J2 путем их помещения в любое доступное J2 хранилище данных, способ передачи в которое поддерживается средой исполнения клиентских скриптов пользовательского устройства, например локальное хранилище браузера или определение глобальных переменных;
- по результатам анализа конфигурации сервера адаптации контента Saк 1, содержащейся в J1, J2 принимает решение о возможности или невозможности вставки сообщения в измененный документ D1.2. В случае невозможности вставки алгоритм прерывается и вставка не происходит. В противном случае формируется конфигурация для получения сообщения, анализ продолжается на следующем шаге;
- J2 анализирует измененный документ D1.2 из ответа R1.2, его структуру и важные для вставки сообщения особенности, включая такие, как расположение элементов в измененном документе D1.2, зависимости отображения элементов от связанных с измененным документом D1.2 клиентских скриптов, общий размер отображения измененного документа D1.2, порядок загрузки и отображения элементов;
- в результате анализа J2 принимает решение о возможности или невозможности вставки сообщения М в измененный документ D1.2. В случае невозможности вставки алгоритм прерывается и вставка не происходит. В противном случае анализ продолжается на следующем шаге;
- J2 анализирует среду, в которой он выполняется на клиентском устройстве Sк 3 (в случае с HTML это веб-браузер), возможности и особенности этой среды, включая такие, как поддерживаемые операции скрипта, размер экрана, средства ввода;
- в результате анализа J2 принимает решение о возможности или невозможности вставки сообщения М и месте вставки. В случае невозможности вставки алгоритм прерывается и вставка не происходит;
- если по результатам анализа вставка возможна, J2 формирует запрос Q3 к серверу данных Sд 4. Сервер данных Sд 4, с учетом полученных в Q3 данных о среде и измененном документе D1.2 из измененного ответа R1.2, а также на основе алгоритма выдачи сообщений, возвращает ответ R3 сервера данных, содержащий сообщение М (рекламное или информационное), клиентскому устройству. Сервер адаптации контента Saк 1 пропускает Q3 и R3 в неизмененном виде.
Обработку ответа R3 сервера данных, содержащего сообщение М для вставки в электронный документ, осуществляет также скрипт J2. Он производит манипуляции над содержимым измененного документа D1.2 таким образом, чтобы выделить место для сообщения М (используя данные анализа на предыдущих шагах), помещает в измененный документ D1.2 новый элемент для отображения сообщения М из R3 или изменяет один из существующих элементов таким образом, чтобы тот отображал сообщение М, используя при этом данные, полученные при анализе возможности вставки.