×
20.12.2015
216.013.9c10

СПОСОБ ВЫДАЧИ ВЕБ-СТРАНИЦ НА ОБОРУДОВАНИЕ ПОЛЬЗОВАТЕЛЯ, А ТАКЖЕ ПРЕДНАЗНАЧЕННАЯ ДЛЯ ЭТОГО СИСТЕМА

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002571577
Дата охранного документа
20.12.2015
Краткое описание РИД Свернуть Развернуть
Аннотация: Настоящее изобретение относится к компьютерной технике, а именно к системам управления содержанием веб-страниц. Технический результат заключается в возможности быстрой выдачи веб-страниц пользователю и достигается за счет применения в веб-страницах динамических частей, которые обрабатываются на оборудовании пользователя. При первом обращении пользователя к веб-странице веб-сервером выполняется программный код с формированием html-кода, включающего html-код статической части и html-код динамических частей. Осуществляется выдача веб-сервером html-кода веб-страницы оборудованию пользователя. Обнаруживают веб-сервером в html-коде динамические части и заменяют их на JS-скрипт с формированием композитного кода. Сохраняют композитный код в запоминающем устройстве. JS-скрипт содержит предписание на получение актуального кода динамических частей с веб-сервера. При повторных обращениях оборудования пользователя к веб-странице осуществляется выдача веб-сервером оборудованию пользователя композитного кода из запоминающего устройства. Браузер в устройстве пользователя отображает указанные динамические части в соответствующих полях уже выведенной статической части веб-страницы. 2 н. и 14 з.п. ф-лы, 4 ил.
Реферат Свернуть Развернуть

Область техники

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

Уровень техники

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

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

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

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

Управление сайтами, содержащими контент динамического вида, традиционно строится с использованием CMS-систем (система управления контентом от англ. Content Management System). CMS-система - это компьютерная программа, предоставляющая разработчикам сайта удобные инструменты для хранения и публикации текстового, графического и прочего наполнения сайта. Такие системы облегчают задачу управления контентом для неквалифицированных в программировании сотрудников компаний и владельцев сайтов.

Одной из особенностей CMS-системы является то, что работа с ней не требует установки какого-либо дополнительного программного обеспечения на компьютер, с которого ведется работа с сайтом. Сама CMS-система размещена на сервере провайдера, и пользователю достаточно иметь обычный браузер для того, чтобы получить доступ к сайту и управлять им. При редактировании/добавлении контента на сайт пользователь оперирует простыми и понятными ему инструментами, не прибегая к html-коду или программному код у. К числу указанных инструментов относятся, в частности, административные разделы, модули, компоненты с шаблонами и пр.

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

Между тем, за указанное упрощение работы с веб-страницами, содержащими динамический контент, приходится расплачиваться дополнительной нагрузкой на веб-сервер. В этом случае веб-сервер вынужден формировать отправляемый пользователю html-код страницы из программного кода CMS-системы. Как правило, в качестве кода CMS-системы используется php-код. К другим примерам программного кода относятся perl, asp, jsp и пр. На формирование конечного html-кода страницы у сервера уходит достаточно много времени, поскольку ему приходится преобразовывать все динамические части страницы с программного кода (например, php-кода) в html-код и корректно объединять их с html-кодом статической части. В результате, страница для пользователя открывается с существенной задержкой, вплоть до нескольких секунд, что, конечно, неприемлемо.

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

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

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

Более эффективным средством известного уровня техники по ускорению выдачи веб-страниц на оборудование пользователя является технология Full Page Cache от компании Magento Enterprise, которую можно рассматривать в качестве ближайшего аналога настоящего изобретения. Данная технология применима только к работе с веб-страницами, в коде которых присутствуют метки, обозначающие присутствие в веб-странице всех динамических частей. При первом обращении пользователя к такой веб-странице программный модуль Full Page Cache выполняет страницу в динамическом режиме, отправляет пользователю ее код и сохраняет кэш страницы в запоминающем устройстве сервера с удалением информации из ее динамических зон. При втором обращении пользователя к этой странице сервер выполняет код динамических частей, склеивает кэш страницы, взятый из запоминающего устройства, со сформированным кодом динамических частей и отдает страницу пользователю.

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

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

Раскрытие изобретения

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

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

- при первом обращении оборудования пользователя к веб-странице, размещенной на веб-сервере:

- выполнение веб-сервером программного кода веб-страницы, в том числе имеющихся на ней динамических частей, с формированием html-кода веб-страницы, включающего html-код статической части и html-код динамических частей;

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

- обнаружение веб-сервером в html-коде веб-страницы, полученном на этапе формирования html-кода, кода, относящегося к динамическим частям;

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

- при втором и последующих обращениях оборудования пользователя к веб-странице:

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

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

- выполнение веб-сервером программного кода динамических частей с получением актуального html-кода, соответствующего этим частям;

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

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

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

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

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

формирование веб-сервером обновленного html-кода веб-страницы включающего актуальный html-код статической части и указанный актуальный html-код динамических частей;

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

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

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

В предпочтительном случае способ дополнительно содержит этап пересохранения прежнего композитного кода с присвоением ему нового имени.

Как вариант, способ дополнительно содержит этап имитации веб-сервером первого обращения оборудования пользователя к веб-странице.

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

- при первом обращении оборудования пользователя к веб-странице совершать следующие действия:

- выполнение программного кода веб-страницы, в том числе имеющихся на ней динамических частей, с формированием html-кода веб-страницы, включающего html-код статической части и html-код динамических частей;

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

- обнаружение в html-коде веб-страницы, полученном на этапе формирования html-кода, кода, относящегося к динамическим частям;

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

- при втором и последующих обращениях оборудования пользователя к веб-странице совершать следующие действия:

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

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

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

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

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

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

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

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

формирование обновленного html-кода веб-страницы включающего актуальный html-код статической части и указанный актуальный html-код динамических частей;

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

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

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

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

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

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

Краткое описание графических материалов

Далее изобретение раскрыто более подробно на примере предпочтительных вариантов его выполнения, описанных со ссылкой на приложенные графические материалы, из которых:

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

- фиг.2 изображает скриншот веб-страницы, содержащей статические и динамические части;

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

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

Осуществление изобретения

Блок-схема заявляемой системы показана в правой части фиг.1 обведенной прерывистой линией. Как следует из этого рисунка, система 1 выдачи веб-страниц на оборудование 50 пользователя, в частности, на стационарный компьютер, ноутбук, смартфон, планшет и пр., содержит веб-сервер 10 с размещенными на нем веб-страницами 100 и запоминающее устройство 15. В частных случаях система 1 может также включать в себя отдельные приемо-передающие устройства, коммутаторы, маршрутизаторы, консоли, блоки питания, контроллеры, дисковые массивы и пр. Однако заметим, что в данной области техники принято считать, что стандартный веб-сервер уже содержит в себе функции перечисленных выше устройств, реализуемых на нем аппаратным и/или программным образом. В некоторых вариантах изобретения веб-сервер 10 может включать в свой состав и запоминающее устройство 15 (ЗУ).

Если давать определение, веб-сервер 10 - это программно-аппаратный комплекс доступный пользователю через Интернет и выполненный с возможностью приема http-запросов пользователей, обычно от веб-браузеров, и выдающий им http-ответы, как правило, вместе с html-страницей, изображением, файлом, медиа-потоком или другими данными. В качестве конкретных примеров веб-сервера 10 можно назвать http-серверы Apache, US, Cherokee и Resin на базе операционных систем Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. Неисчерпывающий список функций стандартного веб-сервера включает в себя следующее:

- Прием запросов от веб-браузеров по протоколу стандарта HTTP с использованием сетевых протоколов TCP/IP;

- Выполнение поиска и отсылки файлов с гипертекстом или каких-либо документов в браузер по протоколу HTTP;

- Обслуживание и обработка запросов, типа: mailto: …, FTP, Telnet и т.п.;

- Запуск прикладных программ на веб-сервере с последующей передачей и возвратом параметров обработки через стандарт интерфейса CGI;

- Работа и обслуживание навигационных карт изображений (Image map);

- Загрузка Java-приложений;

- Авторизация пользователей и их аутентификация;

- Ведение регистрационного журнала обращений пользователей к различным ресурсам;

- Автоматизированная работа веб-страниц;

- Поддержка страниц, которые генерируются динамически;

- Поддержка работы протокола HTTPS для защищенных соединений с клиентами.

Используемое в системе 1 запоминающее устройство 15 предназначено для записи и хранения данных, используемых веб-сервером 10, в частности, композитных html-страниц, динамических и статических частей html-страниц, контента, необходимого для наполнения html-страниц, вспомогательной информации и пр. В качестве запоминающего устройства 15 может использоваться жесткий диск веб-сервера, оперативная память этого веб-сервера или память других компьютеров, размещенных в сети Интернет, а также могут использоваться базы данных, программные продукты типа Memcache и пр.

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

- при первом обращении оборудования пользователя к веб-странице 100 совершать следующие действия:

- выполнение программного кода веб-страницы 100, в том числе всех имеющихся на ней динамических частей 101, 102, 103, с формированием html-кода веб-страницы 100, включающего html-код статической части и html-код динамических частей 101, 102, 103;

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

- обнаружение в html-коде веб-страницы 100, полученном на этапе формирования html-кода, кода, относящегося к динамическим частям 101,102, 103;

- замена в html-коде веб-страницы 100 указанного кода, относящегося к динамическим частям 101, 102, 103, на JS-скрипт, содержащий предписание на получение актуального кода этих динамических частей 101, 102, 103 с веб-сервера 10, с формированием композитного кода 110 и сохранение этого композитного кода 110 в запоминающем устройстве 15;

- при втором и последующих обращениях оборудования пользователя к веб-странице 100 совершать следующие действия:

- выдача оборудованию пользователя композитного кода 110, сохраненного в запоминающем устройстве 15, для отображения браузером, установленным на оборудовании пользователя, статической части этой веб-страницы 100;

- прием от браузера запроса на актуальные данные для динамических частей 101, 102, 103, направляемого браузером путем следования предписанию, содержащемуся в JS-скрипте композитного кода 110;

- выполнение по запросу от браузера программного кода динамических частей 101, 102, 103 с получением актуального html-кода, соответствующего этим частям 101, 102, 103;

- досылка актуального html-кода динамических частей 101, 102, 103 на оборудование пользователя для их отображения браузером, установленным на оборудовании пользователя, в соответствующих полях уже выведенной статической части веб-страницы 100, согласно сформированному актуальному html-коду этих динамических частей 101, 102,103.

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

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

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

Часть 101 обозначает корзину покупателя; часть 102 - телефон и время работы пункта доставки; часть 103 - цену. Данные части могут меняться в зависимости от условий и времени запрашивания страницы 100. Например, цена, телефон и условия работы, соответствующие частям 102 и 103, могут различаться в зависимости от статуса клиента. В частности, оптовые клиенты и клиенты, обладающие статусом «золотого» клиента, могут работать по одной цене и обслуживаться в одни часы работы, тогда как остальные клиенты будут обслуживаться в другое время и по другим ценам. Контент части 101, относящейся к корзине пользователя, зависит от цены товара и от числа единиц товара, заказанного пользователем.

Остальная часть страницы 100 является статической, т.е. является неизменной и не зависит от условий и времени запрашивания.

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

Рассмотрим вначале, что происходит при попытке пользователя открыть эту страницу 100 с использованием технологии известного уровня техники.

Итак, браузер оборудования пользователя посылает клиентский запрос на веб-сервер с адресом страницы 100. Веб-сервер, получив запрос на страницу 100, предпринимает действия по сборке html-кода этой страницы, в ходе которой выполняется следующее:

- выполнение программного кода динамических частей 101, 102, 103, относящегося к расчету корзины для данного пользователя, выводу телефона и времени работы пункта доставки и цены товара. Данный этап может проводиться с учетом проверки статуса и прав доступа пользователя, а также других возможных условий формирования страницы, и включает в себя выборку необходимых данных из баз данных, относящихся к клиентам, ценам и ассортименту, фильтрацию и сортировку этих данных и прочие действия, необходимые для формирования html-кода частей 101, 102, 103. В качестве программного кода обычно используется php-код, но может также выступать perl, asp, jsp и пр. Результатом этапа выполнения программного кода динамических частей является получение html-кода, соответствующего указанным частям 101, 102, 103;

- формирование html-кода веб-страницы 100, включающего html-код статической части и html-код динамических частей 101, 102, 103, полученный на предыдущем этапе путем выполнения их программного кода;

- выдача сформированного html-кода веб-страницы 100 на оборудование пользователя с последующим отображением веб-страницы 100 браузером пользователя.

Как следует из фиг.3, в рассматриваемом очень простом примере время, проходящее с момента обращения пользователя к странице 100, содержащей всего три динамические части 101, 102, 103, до момента ее вывода в браузере пользователя, составляет 483 мс, из которых собственно отображение страницы занимает 26 мс, а остальное время уходит на сборку конечного html-кода. Все это время пользователь сидит перед пустым экраном своего оборудования, ожидая когда окончатся процессы формирования кода страницы 100, а также его пересылки и отображения.

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

При первом обращении оборудования 50 пользователя к веб-странице 100, действия заявляемой системы 1 по сути совпадают с аналогичными действиями системы известного уровня техники. Последовательность этапов в этом случае такая. Браузер оборудования 50 пользователя посылает клиентский запрос на веб-сервер 10 с адресом страницы 100. Веб-сервер 10, получив запрос на страницу 100, предпринимает действия по сборке html-кода этой страницы, в ходе которой выполняется следующее:

- выполнение программного кода динамических частей 101, 102, 103, относящегося к расчету корзины для данного пользователя, выводу телефона и времени работы пункта доставки и цены товара. Данный этап может проводиться с учетом проверки статуса и прав доступа пользователя, а также других возможных условий формирования страницы, и включает в себя выборку необходимых данных из баз данных, относящихся к клиентам, ценам и ассортименту, фильтрацию и сортировку этих данных и прочие действия, необходимые для формирования html-кода частей 101, 102, 103. В качестве программного кода обычно используется php-код, но может также выступать perl, asp, jsp и пр. Результатом этапа выполнения программного кода динамических частей является получение html-кода, соответствующего указанным частям 101, 102, 103;

- формирование html-кода веб-страницы 100, включающего html-код статической части и html-код динамических частей 101, 102, 103, полученный на предыдущем этапе путем выполнения программного кода динамических частей 101, 102, 103 (данный этап в общем случае может быть объединен с предыдущим этапом способа выдачи веб-страниц по настоящему изобретению);

- выдача сформированного html-кода веб-страницы 100 на оборудование 50 пользователя с последующим отображением веб-страницы 100 браузером пользователя.

Браузер пользователя отображает страницу 100 за те же 483 мс. Однако для веб-сервера 10 действия по обработке страницы 100 на этом не закончены. Он в фоновом режиме выполняет еще два этапа, дополнительные по сравнению со способом известного уровня техники. Первый из этих этапов - обнаружение в html-коде веб-страницы 100, полученном на этапе формирования html-кода, кода, относящегося к динамическим частям 101, 102, 103. Второй дополнительный этап заключается в замене в сформированном html-коде страницы 100 указанного кода, относящегося к динамическим частям 101, 102, 103, на специальный JS-скрипт, содержащий предписание на получение актуального кода этих динамических частей 101, 102, 103 с веб-сервера 10, с формированием в результате композитного кода 110 и в сохранении этого композитного кода 110 в своем запоминающем устройстве 15. После создания и сохранения композитного кода 110 действия предложенной системы 1 по формированию и выдаче веб-страницы 100 первому пользователю считаются выполненными.

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

Одновременно с процедурой отображения статической части страницы пользователю, браузер, руководствуясь предписанием, содержащимся в JS-скрипте, посылает на веб-сервер фоновый для пользователя запрос на получение актуальных данных для динамических частей 101, 102, 103. Получив второй запрос от браузера, веб-сервер 10 выполняет программный код динамических частей 101, 102, 103, действуя по сути аналогично тому, как это описано в соответствующей части данного способа, относящейся к первому обращению пользователя к веб-странице 100. Результатом этапа выполнения программного кода динамических частей является получение html-кода, соответствующего указанным частям 101, 102, 103.

Далее, веб-сервер 10 досылает на компьютер пользователя html-код динамических частей 101, 102, 103, содержащий актуальную информацию о корзине пользователя, телефоне и времени работы пункта доставки и цене товара. Браузер пользователя сразу же после получения html-кода динамических частей отображает эти динамические части, например, последовательно по мере их получения, для пользователя в соответствующих полях уже выведенной статической части веб-страницы100.

Если обратиться к фиг.4, можно видеть, что при втором и последующих обращениях к странице 100 пользователь получает сохраненную страницу всего за 15 мс, из которых собственно отображение страницы занимает 13 мс. Сравнив это с 483 мс для способа вывода страниц, известного из уровня техники, нетрудно понять, что настоящее изобретение дает существенный выигрыш при отображении даже таких несложных страниц, характеризующихся относительно небольшим числом динамических частей. Последующие динамические данные приходят к пользователю и отображаются для него через 500 мс, но в виду того, что мозг и органы зрения человека не способны контролировать такое скоротечное изменение визуальной информации в разных частях выводимой на экран веб-страницы, пользователь не замечает процесса актуализации страницы, и у него складывается полное впечатление о моментальной загрузке запрашиваемой страницы, т.е. практически сразу же после обращения за ней к серверу. В результате, согласно техническому решению, предложенному в настоящем изобретении, работа с веб-страницами происходит в быстром, комфортном режиме, независимо от объема динамического контента на запрашиваемой странице. Кроме того, благодаря разделению процессов вывода статической и динамической частей веб-страницы на оборудование пользователя, веб-сервер загружается более равномерно, что благоприятно сказывается на сроке его службы.

В общем случае, этап обнаружения в html-коде веб-страницы 100 кода, относящегося к динамическим частям, выполняется веб-сервером 10 путем анализа ее html-кода при помощи соответствующего распознающего программного модуля. При этом согласно предпочтительному варианту изобретения, обнаружение динамических частей происходит по специальным указаниям, расставленным в коде страницы разработчиками сайта. Например, установленная на веб-сервере CMS-система анализирует код веб-страницы при сохранении ее на сервер. Если CMS-система встречает установленные разработчиком сайта программные указания, то система заменяет их на собственные метки, по которым она впоследствии определяет места замены устаревших данных на актуальные. В этом случае этапы обнаружения динамических частей и их замены JS-скриптом протекают наиболее быстро, что дает дополнительный выигрыш в скорости при отображении веб-страницы.

Согласно другому предпочтительному варианту изобретения, веб-сервер 10 на этапе выдачи оборудованию 50 пользователя композитного кода 110, сохраненного в запоминающем устройстве 15, направляет оборудованию пользователя дополнительно код объекта, предназначенного для временной подмены динамических частей 101, 102, 103 веб-страницы, т.е. до того момента, пока от сервера 10 не придет актуальная информация, относящаяся к этим динамическим частям. Это сделано для того, чтобы пользователь по внешнему виду отображенной статической части мог определить, что процесс вывода страницы выполнен не до конца. В соответствии с некоторыми типовыми случаями, на месте динамических частей в веб-странице может временно отображаться, например, некий информирующий пользователя текст, в частности, слово «Загрузка», или информация, которая выводилась при прошлом посещении страницы, а может вообще ничего не отражаться. Код объекта, отображаемого в динамической части до обращения JS-скрипта к серверу, как правило, зависит от предпочтений разработчика сайта. Его можно регулировать программным путем при настройке шаблонов компонентов.

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

В этой связи, чтобы корректно учитывать возможные изменения в статической части запрашиваемой веб-страницы, предложенный способ (а значит, и с соответсвующими изменениями предложенная система) может включать в себя дополнительный этап высчитывания веб-сервером 10 контрольной суммы композитного кода 110, осуществляемый после этапа его формирования при первом обращении пользователя к веб-странице 100, а также следующие этапы, выполняемые после этапа досылки веб-сервером 10 актуального html-кода динамических частей 101, 102, 103 на оборудование 50 пользователя:

- формирование веб-сервером 10 обновленного html-кода веб-страницы 100 включающего актуальный html-код статической части и указанный актуальный html-код динамических частей 101, 102, 103;

- замена веб-сервером 10 в обновленном html-коде веб-страницы 100 указанного кода, относящегося к динамическим частям 101, 102, 103, на JS-скрипт, содержащий предписание на получение актуального кода этих динамических частей 101, 102, 103 с веб-сервера 10, с формированием обновленного композитного кода 110;

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

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

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

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

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

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

ПЕРЕЧЕНЬ ССЫЛОЧНЫХ НОМЕРОВ

1 - предложенная система формирования и выдачи веб-страниц пользователю

10 - веб-сервер

15 - запоминающее устройство

50 - оборудование пользователя

100 - веб-страница

101, 102, 103 - динамические части веб-страницы

110 - композитный код.


СПОСОБ ВЫДАЧИ ВЕБ-СТРАНИЦ НА ОБОРУДОВАНИЕ ПОЛЬЗОВАТЕЛЯ, А ТАКЖЕ ПРЕДНАЗНАЧЕННАЯ ДЛЯ ЭТОГО СИСТЕМА
СПОСОБ ВЫДАЧИ ВЕБ-СТРАНИЦ НА ОБОРУДОВАНИЕ ПОЛЬЗОВАТЕЛЯ, А ТАКЖЕ ПРЕДНАЗНАЧЕННАЯ ДЛЯ ЭТОГО СИСТЕМА
СПОСОБ ВЫДАЧИ ВЕБ-СТРАНИЦ НА ОБОРУДОВАНИЕ ПОЛЬЗОВАТЕЛЯ, А ТАКЖЕ ПРЕДНАЗНАЧЕННАЯ ДЛЯ ЭТОГО СИСТЕМА
СПОСОБ ВЫДАЧИ ВЕБ-СТРАНИЦ НА ОБОРУДОВАНИЕ ПОЛЬЗОВАТЕЛЯ, А ТАКЖЕ ПРЕДНАЗНАЧЕННАЯ ДЛЯ ЭТОГО СИСТЕМА
Источник поступления информации: Роспатент
+ добавить свой РИД