ОПТИМИЗИРОВАННАЯ ДЛЯ ПАКЕТНОЙ ОБРАБОТКИ АРХИТЕКТУРА ВИЗУАЛИЗАЦИИ И ВЫБОРКИ Российский патент 2018 года по МПК G06F17/30 

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

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

[0001] Всемирная паутина является богатым источником информации. На сегодняшний день насчитывается более одного триллиона уникальных веб-страниц. Многие из этих страниц формируются динамическим образом, например, домашняя страница New York Times, и имеют ссылки на внедренный контент, такой как изображения и видеозаписи, который может влиять на контент и внешний вид визуализируемой веб-страницы. Например, когда браузер выполняет сценарий, такой как JavaScript-код, это может влиять на то, как веб-страница выглядит для пользователя, и изменять контент и/или визуальный внешний вид страницы, после того как браузер закончил визуализацию веб-страницы. В качестве другого примера, некоторые веб-страницы используют таблицы стилей, которые говорят браузеру, как изменять внешний вид текста. Типичная веб-страница может иметь сотни таких дополнительных внедренных элементов, некоторые из которых специально предназначаются или направлены на механизм визуализации браузера. Дополнительная информация, формируемая посредством процесса визуализации, может быть полезна последующим системам, таким как поисковая машина Интернета. В то время как относительно эффективно для единственного пользовательского веб-браузера визуализировать единственную веб-страницу в реальном времени, гораздо сложнее визуализировать большое число страниц, такое как все страницы всемирной паутины (1 триллион страниц) или даже лишь верхний 1% страниц во всемирной паутине (10 миллиардов страниц), в реальном времени.

Сущность изобретения

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

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

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

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

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

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

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

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

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

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

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

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

[0014] Одна или более реализаций предмета изучения, описанного в данном документе, могут быть реализованы так, чтобы реализовывать одно или более следующих преимуществ. В качестве одного примера, поскольку механизм пакетной визуализации не соединяется с устройствами ввода (например, клавиатурой, мышью) или устройствами вывода (например, дисплеем, сенсорным экраном и т.д.), механизм визуализации может быть более простым и изящным, чем фактический модуль визуализации браузера, например, имеющим дружественный к машине API вместо дружественного к пользователю API. Также, поскольку механизму визуализации не нужно отображать окончательно визуализированную страницу или взаимодействовать с пользователем, механизм визуализации может использовать виртуальные часы, которые идут вперед на основе законченных задач вместо фактического времени, что может ускорять процесс визуализации и устранять распространенные ошибки. Например, выборка в пакетном окружении может быть гораздо более медленной, чем в персональном веб-окружении, что может приводить к многим ошибкам из-за блокировки по времени. Виртуальные часы скрывают время ожидания выборки, избегая ошибок из-за блокировки по времени. Виртуальные часы также предоставляют возможность получения более обусловленных результатов. Например, в URL, который включает в себя компонент даты/времени, вместо замены компонента даты/времени фиксированным временем, система может использовать значение виртуальных часов. Это означает, что не все параметры времени в веб-странице будут иметь одинаковое значение, но что каждый раз, когда веб-страница визуализируется, отдельный параметр времени будет иметь одинаковое значение. Эта гибкость предоставляет возможность системе ускорять время, что важно в некоторых веб-страницах для корректности визуализированного результата, в то же время все еще гарантируя, что набор запрошенных URL остается одинаковым между визуализациями (что ведет к запросам с меньшим обходом). Система может также избегать выборки ненужных элементов, например, внесенных в черный список элементов. Хранение размеров для изображения, вместо фактического контента изображения, уменьшает требования к хранению для изображений на сервере выборки, требует меньших данных, которые должны быть переданы механизму визуализации, и дополнительно улучшает время визуализации в механизме визуализации. Перезапись URL устраняет выборку дублирующего контента, дополнительно укоряет процесс пакетной визуализации.

Краткое описание чертежей

[0015] Фиг. 1 иллюстрирует примерную систему в соответствии с раскрытым объектом.

[0016] Фиг. 2 - это блок-схема веб-страницы, имеющей внедренные элементы.

[0017] Фиг. 3 - это блок-схема механизма пакетной визуализации, согласно реализации.

[0018] Фиг. 4 - это блок-схема последовательности операций, иллюстрирующая примерный процесс, посредством которого механизм пакетной визуализации может визуализировать веб-страницу, имеющую внедренные объекты, согласно реализации.

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

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

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

[0022] Фиг. 8 показывает пример компьютерного устройства, которое может быть использовано, чтобы реализовывать описанные методы.

[0023] Фиг. 9 показывает пример распределенного компьютерного устройства, которое может быть использовано, чтобы реализовывать описанные методы.

Подробное описание изобретения

[0024] Чтобы полностью визуализировать веб-страницу, сначала должен быть получен контент всех внедренных внешних ресурсов в веб-странице. Такие ресурсы могут включать в себя, но не только, внешние изображения, JavaScript-код и таблицы стилей. Зачастую одни и те же внешние ресурсы внедряются во многие различные веб-страницы. Хотя для единственного пользовательского веб-браузера является эффективным запрашивать внешний ресурс веб-страницы, такой как Javascript-код Google Analytics, в реальном времени (т.е., когда страница, в которую ресурс внедрен, визуализируется), такое выполнение не является ни осуществимым, ни эффективным для механизма пакетной визуализации. Механизм пакетной визуализации, например, для процесса индексирования веб-страниц, предназначается, чтобы эффективно и быстро визуализировать большое число веб-страниц одновременно. Но выборка внедренных внешних ресурсов может быть медленной, а иногда такие ресурсы не являются важными для целей процесса пакетной обработки (например, без пользователя-человека, просматривающего окончательно визуализированный продукт). Чтобы улучшать время обработки для визуализации веб-страницы в пакетном окружении, механизм визуализации может работать, используя виртуальные часы, может работать с сервером выборки, чтобы избегать дублирующих и необязательных выборок, и может минимизировать обработку визуальных или других ориентированных на пользователя элементов в веб-странице.

[0025] Фиг. 1 является блок-схемой системы в соответствии с примерной реализацией. Система 100 может быть использована, чтобы эффективно и быстро визуализировать веб-страницы в пакетном режиме для запрашивающего процесса. Запрашивающий процесс, иллюстрированный в системе 100, является механизмом индексирования для поисковой машины в Интернете, но реализации не ограничиваются механизмом индексирования в качестве последующего потребителя визуализированных веб-страниц. Например, запрашивающий процесс может быть механизмом анализа, чтобы анализировать страницу, чтобы диагностировать медленность или определять, корректно ли установлено инструментальное средство, такое как Google Analytics, или рекламной системой или другими системами, которые полагаются на автоматизированное взаимодействие со сложными веб-страницами, например, заполнение форм или щелчки по элементам. Таким образом, в то время как система 100 может быть описана в качестве использующей сформированный в пакетном режиме результат визуализации для индексирования, система 100 может быть использована для других систем пакетной обработки, где информация, предоставленная в результате визуализации, является полезной.

[0026] Система 100 может быть вычислительным устройством или устройствами, которые принимают форму множества различных устройств. Например, система 100 может быть обычным сервером, группой таких серверов, клиент-серверной системой или системой стоечного сервера. Кроме того, система 100 может быть реализована в персональном компьютере. Система 100 может быть примером компьютерного устройства 800, которое изображено на фиг. 8, или компьютерного устройства 900, которое изображено на фиг. 9.

[0027] Система 100 включает в себя механизм 130 веб-обхода, запрашивающий процесс, такой как механизм 110 индексирования, сервер 140 визуализации и сервер 150 выборки. Механизм 130 веб-обхода, сервер 140 визуализации и сервер 150 выборки работают вместе, чтобы эффективно визуализировать большое число веб-страниц, таких как веб-страницы, которые могут быть найдены во всемирной паутине. Результатом визуализации веб-страницы является результат визуализации, который включает в себя различные элементы данных, полезные и в ином случае недоступные для запрашивающего процесса.

[0028] Механизм 110 индексирования может включать в себя один или более процессоров, сконфигурированных, чтобы исполнять одну или более машиноисполняемых инструкций или частей программного обеспечения, микропрограммного обеспечения или их комбинации, чтобы формировать индекс 115. Например, механизм 110 индексирования может принимать информацию от серверов 190 через механизм 130 веб-обхода. Механизм 110 индексирования может обрабатывать контент принятых веб-страниц, чтобы формировать индекс 115. Серверы 190 могут быть любым типом вычислительного устройства, доступного через Интернет, которое размещает одну или более веб-страниц или ресурсов, внедренных в одну или более веб-страниц. Веб-страницы, к которым осуществляет доступ механизм 130 обхода, могут включать в себя внедренные элементы, такие как таблицы стилей, JavaScript, изображения и т.д., некоторые из которых могут изменять контент и компоновку визуализируемой веб-страницы. В то время как механизм 110 индексирования может индексировать то, что предоставляется через механизм 130 обхода, механизм индексирования может запрашивать сервер 140 визуализации предоставить визуализированный с помощью браузера результат визуализации веб-страницы, который включает в себя информацию о компоновке и динамический контент, в ином случае недоступный механизму 110 индексирования. Механизм 110 индексирования может использовать контент результата визуализации, чтобы улучшать информацию, доступную о документе в индексе 115. Например, механизм 110 индексирования может изменять ранг текстового элемента в веб-странице на основе местоположения или размера текста в изображении веб-страницы. Например, текст, появляющийся в верхней половине полосы (например, видимый без прокрутки), может считаться более важным, чем текст под чертой. В качестве другого примера, текст в рекламном объявлении может считаться менее важным для веб-страницы. Кроме того, когда некоторый контент формируется динамическим образом, например, недоступен, пока веб-страница не будет визуализирована, механизм 110 индексирования может использовать результат визуализации, чтобы индексировать динамически сформированный контент. Хотя не показано на фиг. 1 ради краткости, в некоторых реализациях механизм 110 индексирования может быть распределен по одному или более отдельным вычислительным устройствам.

[0029] Аналогично механизму 110 индексирования механизм 120 обработки запросов может включать в себя один или более серверов, которые используют индекс 115, чтобы идентифицировать результаты поиска для запросов 182, например, используя традиционные или другие технологии информационного поиска. Механизм 120 обработки запросов может включать в себя один или более серверов, которые принимают запросы 182 от инициатора запроса, такого как клиент 180. Механизм 120 обработки запроса может идентифицировать документы в ответ на запрос, используя индекс 115 и предоставлять информацию из ответных документов в качестве результатов 184 поиска инициатору запроса. В некоторых реализациях механизм 120 обработки запросов может также использовать результаты визуализации в хранилище 148 данных результатов визуализации, чтобы предоставлять эскиз в качестве результатов 184 поиска. Механизм 120 обработки запросов может включать в себя механизм ранжирования, который вычисляет балльные оценки для документов, ответных для запроса, например, используя один или более сигналов ранжирования. Один или более сигналов ранжирования могут быть основаны на контенте, полученном из результата визуализации, ассоциированного с документом. Механизм ранжирования может ранжировать документы, найденные в ответ на запрос, используя балльные оценки.

[0030] Система может также включать в себя механизм 130 веб-обхода. Механизм 130 веб-обхода может включать в себя один или более процессоров, сконфигурированных, чтобы исполнять одну или более машиноисполняемых инструкций или частей программного обеспечения, микропрограммного обеспечения или их комбинации. Механизм 130 веб-обхода может быть вычислительным устройством, таким как обычный сервер, группа таких серверов, клиент-серверная система или система стоечного сервера. В некоторых реализациях механизм 130 веб-обхода может совместно использовать компоненты, такие как память или аппаратные процессоры, с другими компонентами системы 100, такими как сервер 150 выборки или механизм 110 индексирования. Механизм 130 веб-обхода может обходить веб-страницы, которые могут быть найдены во всемирной паутине. Когда механизм 130 веб-обхода принимает обойденную веб-страницу, т.е., контент для обойденной веб-страницы, механизм 130 веб-обхода может предоставлять контент инициатору запроса, который может быть механизмом 110 индексирования или сервером 150 выборки. Механизм 130 веб-обхода может также сохранять контент в хранилище данных (не показано) и предоставлять местоположение инициатору запроса. Когда используется в данном документе, контент веб-страницы ссылается на HTML-код, который предоставляется механизму визуализации веб-страницы и используется, чтобы визуализировать веб-страницу для отображения в веб-браузере, и включает в себя любые ссылки на внешние объекты, которые внедрены в веб-страницу, такие как таблицы стилей, JavaScript, другие веб-страницы или файлы изображений. Механизм 130 веб-обхода может также быть использован сервером 150 выборки, чтобы выбирать контенты для этих внедренных элементов. Механизм 130 веб-обхода может предоставлять контенты внедренных элементов серверу 150 выборки или может сохранять извлеченные контенты в хранилище данных, таком как таблица 152 внедренных элементов. Механизм 130 веб-обхода может уведомлять инициатора запроса, когда внедренный элемент был обойден.

[0031] Как ранее упомянуто, система 100 включает в себя сервер 150 выборки. Сервер 150 выборки может включать в себя один или более процессоров, сконфигурированных, чтобы исполнять одну или более машиноисполняемых инструкций или частей программного обеспечения, микропрограммного обеспечения или их комбинации. Сервер 150 выборки может быть вычислительным устройством, таким как обычный сервер, группа таких серверов, клиент-серверная система или система стоечного сервера. В некоторых реализациях сервер 150 выборки может совместно использовать компоненты, такие как память или аппаратные процессоры, с другими компонентами системы 100, такими как сервер 140 визуализации, механизм 130 веб-обхода или механизм 110 индексирования. Сервер 150 выборки конфигурируется, чтобы запрашивать, чтобы механизм 130 веб-обхода извлек контент для конкретного внедренного элемента, например, посредством его URL, и принимать извлеченный контент и время обхода запрошенного внедренного элемента. Сервер 150 выборки может принимать контент и время выборки либо непосредственно от механизма 130 веб-обхода, либо из таблицы 152 внедренных элементов, которую механизм 130 веб-обхода обновляет. Сервер 150 выборки может принимать запросы для внедренных элементов от механизмов 142 визуализации. Сервер 150 выборки может предоставлять ответ запрашивающему механизму 142 визуализации. Ответ может включать в себя контенты, либо которые извлечены, либо которые сохранены в таблице 152 внедренных элементов, фиктивное изображение на основе таблицы 156 размеров изображения, или сообщение об ошибке. В некоторых реализациях сервер 150 выборки может предоставлять содержимое внедренного элемента посредством отправки контента и времени обхода внедренного элемента механизму 142 визуализации сервера 140 визуализации, который запросил внедренный элемент. Альтернативно, сервер 150 выборки может предоставлять контент, уведомляя механизм 142 визуализации, что контент и время обхода внедренных элементов доступны через указанное местоположение в таблице 152 внедренных элементов, и механизм 142 визуализации может извлекать контент и время обхода веб-страницы из этого хранилища данных.

[0032] Сервер 150 выборки может применять правила 154 перезаписи URL к запрошенным внедренным элементам (например, запрошенным URL). Правила 154 перезаписи URL включают в себя правила для перезаписи URL, когда URL ассоциируется с контентом, который является таким же, что и другой URL. Часто происходит так, что владелец веб-сайта хочет, чтобы браузер загружал контент каждый раз, когда ресурс запрашивается, и, следовательно, предоставляет динамически формируемый URL или отключающий кэширование URL. Такие URL часто имеют временную отметку или случайную строку, внедренную как часть URL, которая вынуждает URL быть уникальным каждый раз, когда веб-страница визуализируется, например, посредством JavaScript, который формирует отключающий кэширование URL. Однако, контент для динамически формируемого URL, предоставляемого с размещающего сервера, не изменяется, или не изменяется способом, значимым для целей пакетной визуализации. Сервер 150 выборки может использовать правила 154 перезаписи URL, чтобы более эффективно отвечать на запросы для внедренных элементов. Например, правила 154 перезаписи URL могут включать в себя образцы или шаблоны, и URL, соответствующие шаблону правила, возвращают одинаковый контент, например, дублирующий контент. В некоторых реализациях шаблоны могут быть определены посредством офлайнового или пакетного процесса, который сравнивает контент различных URL, используя журнал выборки и идентификации образца в URL, общего с множеством URL с дублирующим контентом. Журнал выборки может поддерживаться, например, посредством механизма 130 веб-обхода или сервера 150 выборки. Шаблоны могут также быть введены пользователем. Если запрошенный внедренный элемент имеет URL, который соответствует одному из шаблонов, правила 154 перезаписи URL могут говорить серверу 150 выборки, что запрошенный элемент является дубликатом, и инструктировать ему перезаписывать запрошенный URL на URL перенаправления, который ассоциируется с ранее извлеченным контентом, например, URL с контентом в таблице 152 внедренных элементов. URL ранее извлеченного внедренного элемента может считаться URL перенаправления. Это предоставляет возможность серверу 150 выборки избегать необязательных выборок, ускоряя его ответ запрашивающему механизму 142 пакетной визуализации и устраняя нагрузку на размещающие сервера, вызванную избыточными запросами выборки. Конечно, если запрошенный URL не соответствует шаблону в правилах 154 перезаписи URL, перезапись URL может приводить в результате к отсутствию изменений в запрошенном URL.

[0033] Правила 154 перезаписи URL могут также включать в себя образцы или шаблоны для внесенных в черный список URL. Если запрошенный внедренный элемент соответствует внесенному в черный список образцу URL, система может возвращать предварительно определенную ошибку вместо попытки извлекать контент для URL. Внесенные в черный список URL могут быть введены в правила 154 перезаписи URL пользователем после определения, что контент не нужен для целей пакетной визуализации. Одним примером этого является JavaScript-код Google Analytics, который включает в себя многие веб-страницы. Этот JavaScript-код может не считаться важным для компоновки визуализируемой страницы и не должен быть запущен в целях механизма пакетной визуализации. Таким образом, для эффективности визуализации, некоторые внедренные элементы могут быть внесены в черный список, используя правила 154 перезаписи URL. В некоторых реализациях, вместо возврата ошибки для внесенных в черный список URL, система может перезаписывать URL, используя URL перенаправления, как описано выше, в запись в таблице 152 внедренных элементов, которая никогда не теряет силу и которая имеет предварительно определенное содержимое, соответствующее для внедренного элемента. В некоторых реализациях правила перезаписи URL могут помечать флагом URL как внесенный в черный список, когда он соответствует шаблону. Правила 154 перезаписи URL могут резко уменьшать число внедренных элементов, извлекаемых через механизм 130 веб-обхода, улучшая время реакции сервера 150 выборки на какой-либо запрос ресурсов и минимизируя объем выборки на каком-либо конкретном сервере 190. Минимизация объема выборки гарантирует, что система не заваливает сервер 190 запросами выборки. В некоторых реализациях сервер 150 выборки и/или механизм 130 веб-обхода могут быть сконфигурированы, чтобы ограничивать число запросов выборки, направленных на сервер 190, и если запросы превышают предельное значение, система может начинать ставить запросы в очередь. Если очередь становится слишком большой, система может не исполнять запросы выборки. Таким образом, правила 154 перезаписи URL могут также минимизировать объем выборки.

[0034] В некоторых реализациях сервер 150 выборки может включать в себя таблицу 156 размеров изображений. Таблица 156 размеров изображений может быть хранилищем пар "ключ-значение", которое ассоциирует URL изображения с известными размерами для изображения. Известные размеры могут быть определены, когда изображение извлекается. Используя размеры запрашиваемого изображения сервер 150 выборки может формировать фиктивное изображение, которое имеет такие же размеры, что и запрашиваемое изображение, но пустой контент, или простые плитки в качестве контента. Фиктивное изображение является действительным изображением с теми же размерами, что и запрашиваемое изображение, но без тех же данных изображения. Поскольку сервер 150 выборки извлекает контент для механизма пакетной визуализации, фактическое изображение может быть неважным для результата визуализации, но размеры изображения могут влиять на компоновку визуализируемой страницы. Использование фиктивного изображения вместо фактического изображения делает размер файла очень маленьким (например, только десятки байтов на каждое изображение), что экономит пропускную способность сети при передаче фиктивного изображения и ресурсы процессора и памяти для механизма пакетной визуализации. В некоторых реализациях таблица 156 размеров изображений может быть хранилищем пар "ключ-значение", таким как SSTable, но таблица 156 размеров может быть любой структурой данных, которая хранит размеры по идентификатору изображения.

[0035] Система 100 может включать в себя таблицу 152 внедренных элементов. Таблица 152 внедренных элементов может быть снабжена ключом по URL и может хранить извлеченный контент для внедренного элемента, возвращенного из механизма 130 веб-обхода. В некоторых реализациях таблица 152 внедренных элементов может также хранить историю обхода. Например, в некоторых реализациях таблица 152 внедренных элементов может включать в себя контент, извлеченный в течение периода времени, например, семи дней, двух недель и т.д. Таблица 152 внедренных элементов может также включать в себя частоту изменения на основе истории обхода. В некоторых реализациях таблица 152 внедренных элементов может быть реализована как BigTable, реляционная база данных, распределенный файл Hadoop и т.д. Сервер 150 выборки может использовать таблицу 152 внедренных элементов, чтобы быстро возвращать содержимое для ранее извлеченных внедренных элементов. Поскольку сервер 150 выборки может обрабатывать запросы для тысяч механизмов пакетной визуализации, существует высокая вероятность того, что запрошенный внедренный элемент был извлечен ранее в ответ на более ранний запрос выборки. Когда извлеченные контенты находятся в таблице 152 внедренных элементов, сервер 150 выборки может отвечать на запрос, используя контенты в таблице 152 внедренных элементов вместо запроса механизму 130 веб-обхода предоставлять контенты. Это облегчает нагрузку на серверы 190, которые хранят извлеченные контенты, и предоставляет возможность серверу 150 выборки отвечать более быстро на запросы для внедренных элементов. Сервер 150 выборки может дополнительно уменьшать запросы обхода посредством дедупликации множества URL, используя правила 154 перезаписи URL.

[0036] Если, на какой-либо стадии процесса визуализации, контент одного или более запрошенных внедренных элементов не сохраняется в таблице 152 внедренных элементов или является устаревшим, сервер 150 выборки может инструктировать механизму 130 веб-обхода планировать обход запрошенного внедренного элемента. После того как механизм 130 веб-обхода обошел запрошенный внедренный элемент, он оповещает сервер 150 выборки. Сервер 150 выборки может затем сохранять извлеченный контент в таблице 152 внедренных элементов, вместе с временем обхода. Если внедренный элемент является изображением, сервер 150 выборки может, альтернативно или дополнительно, сохранять размеры извлеченного изображения в таблице 156 размеров изображений, вместе с временем обхода. Сервер 150 выборки может затем отправлять запрошенный контент, или для файлов изображений может отправлять фиктивное изображение с размерами изображения, обратно запрашивающему механизму 142 визуализации.

[0037] Система 100 включает в себя сервер 140 визуализации. Сервер 140 визуализации может включать в себя один или более процессоров, сконфигурированных, чтобы исполнять одну или более машиноисполняемых инструкций или частей программного обеспечения, микропрограммного обеспечения или их комбинации. Сервер 140 визуализации может быть вычислительным устройством, таким как обычный сервер, группа таких серверов, клиент-серверная система или система стоечного сервера. В некоторых реализациях сервер 140 визуализации может совместно использовать компоненты, такие как память или аппаратные процессоры, с другими компонентами системы 100, такими как сервер 150 выборки или механизм 110 индексирования. Сервер 140 визуализации принимает запрос от механизма 110 индексирования, или другого запрашивающего процесса, чтобы визуализировать конкретную веб-страницу. Другими словами, сервер 140 визуализации может принимать URL запрошенной веб-страницы. Сервер 140 визуализации может включать в себя один или несколько механизмов 142 визуализации. В некоторых реализациях сервер 140 визуализации включает в себя десятки тысяч механизмов 142 визуализации и может выполнять балансировку нагрузки, чтобы выбирать механизм 142 визуализации для визуализации веб-страницы. После того как механизм 142 визуализации выбран, механизм 142 визуализации пытается визуализировать веб-страницу в результат визуализации. Веб-страница может называться веб-страницей с элементами внедрения, поскольку она типично включает в себя дополнительные внедренные элементы.

[0038] Каждый механизм 142 визуализации конфигурируется, чтобы имитировать модуль визуализации для персонального веб-браузера, но с оптимизациями для пакетной визуализации. Соответственно, после того как механизм 142 визуализации принимает веб-страницу с элементами внедрения, он может начинать заполнять список задач, задачи представляют работу, которую механизм 142 визуализации выполняет, чтобы формировать результат визуализации. В то время как множество задач может быть запланировано к запуску немедленно, некоторые задачи могут быть запланированы в будущем. Одной из пакетных оптимизаций для механизма 142 визуализации является использование виртуальных часов и добавление задачи в список задач, которая указывает, что визуализация завершается в предварительно определенное время. Например, в некоторых реализациях задача может указывать, что визуализация завершается в текущее время плюс 20 секунд. Предварительно определенное время может быть основано на времени, в которое большинство дизайнеров веб-страниц будут проектировать веб-страницу, чтобы она выглядела завершенной, например, какие-либо анимации или изменения компоновки проектируются как законченные в предварительно определенное время. Поскольку большинство пользователей не ценят очень длительное ожидание, чтобы страница загрузилась, предварительно определенное время может быть между 5 и 20 секундами, хотя оно может быть более длительным для некоторых ситуаций. Механизм 142 визуализации не будет требовать полностью 20 секунд благодаря использованию виртуальных часов, и часто полная визуализация может происходить в течение нескольких секунд, если внедренные элементы не были обойдены (например, сервер 150 выборки может определять местоположение контентов в таблице 152 внедренных элементов). Таким образом, задача, которая формирует окончательный результат визуализации, может быть добавлена в список задач, с временем начала 20 секунд от текущего времени. Текущее время основывается на инициализированном времени виртуальных часов, которое может быть нулевым или текущем временем реальных часов.

[0039] Как часть процесса визуализации, например, одна из задач визуализации, механизм 142 визуализации может определять, включает ли в себя веб-страница с элементами внедрения какие-либо внедренные элементы, такие как таблицы стилей, файлы изображений, сценарий Java и т.п. Эти внедренные элементы называются первичными внедренными объектами. Если веб-страница не содержит каких-либо внедренных объектов, механизм визуализации может немедленно обрабатывать веб-страницу в результат визуализации и может сохранять результат визуализации в хранилище 148 данных результатов визуализации. Если, однако, веб-страница содержит внедренные элементы, механизм 142 визуализации может извлекать все внедренные элементы и отправлять запрос серверу 150 выборки для контента внедренных элементов. Запрошенные внедренные элементы, каждый, представляются посредством соответствующего URL. Механизм 142 визуализации, однако, не останавливает визуализацию или не блокируется по превышению времени во время ожидания извлеченного ресурса. Вместо этого поскольку механизм 142 визуализации использует виртуальные часы, как будет объяснено более подробно ниже, ожидание ресурса, который должен быть извлечен через механизм 130 веб-обхода, не продвигает вперед часы, и механизм 142 визуализации не блокируется по превышению времени.

[0040] Когда контент для запрошенного внедренного элемента принимается, механизм 142 визуализации может добавлять задачи в список задач, чтобы обрабатывать контент. Часто обработки контента может включать в себя обнаружение того, имеет ли сам запрошенный внедренный объект (т.е., первичный внедренный объект) внедренные объекты (т.е., вторичные внедренные объекты). Если первичный внедренный объект не содержит вторичные внедренные объекты, механизм 142 визуализации может продолжать работу по задачам визуализации (например, выполнение JavaScript-кода), изменяющим свойства изображения. Если, однако, первичный внедренный объект содержит один или более вторичных внедренных объектов, механизм 142 визуализации запрашивает вторые внедренные объекты с сервера 150 выборки. Этот процесс обнаружения и запроса внедренных объектов повторяется до тех пор, пока механизм визуализации не обнаружит, запросит и примет контент всех объектов, которые внедрены в веб-странцу, которая должна быть визуализирована (например, первичных, вторичных, третичных и т.д.).

[0041] Каждый запрос внедренного элемента может быть задачей в списке задач, которая удаляется, после того как сервер 150 выборки возвращает контент на этот раз. Когда контент возвращается, механизм 142 визуализации может добавлять задачи для обработки контента, которые, в свою очередь, могут добавлять дополнительные задачи, такие как изменение затененности на изображении, запуск сценария и т.д. Каждая задача может быть ассоциирована с временем запуска. Некоторые задачи могут иметь будущее время запуска. Например, чтобы делать отчетливее (или затемнять) изображение, браузер может добавлять несколько задач в список задач, каждая изменяет затененность изображения в течение интервалов времени. Как будет объяснено более подробно ниже, механизм 142 визуализации может использовать виртуальные часы вместо реального времени относительно списка задач, чтобы определять, когда задача готова к запуску.

[0042] Механизм 142 визуализации работает по процессу задач визуализации в списке задач до тех пор, пока визуализация не будет закончена, например, сформирован результат визуализации. Механизм 142 визуализации может затем сохранять результат визуализации в хранилище 148 данных результатов визуализации и/или предоставлять результат визуализации запрашивающему процессу (например, механизму 110 индексирования). Запрашивающий процесс, такой как механизм 110 индексирования, может затем использовать информацию, извлеченную из результата визуализации, в обработке веб-страницы. Например, запрашивающий процесс может использовать ошибки JavaScript, информацию о компоновке, информацию о стиле, информацию о месте для рекламы, список извлеченных ресурсов, статистические данные производительности и т.д., все из которых могут быть включены в результат визуализации, но в ином случае недоступны запрашивающему процессу.

[0043] Система 100 может быть на связи с клиентом(ами) 180 и серверами 190 в сети 170. Сеть 170 может быть, например, Интернетом, или сеть 170 может быть проводной или беспроводной локальной вычислительной сетью (LAN), глобальной вычислительной сетью (WAN), их комбинацией и т.д., реализованной, используя, например, шлюзовые устройства, мосты, коммутаторы и/или т.д. Через сеть 170 механизм обработки запросов, механизм 130 веб-обхода и/или сервер 150 выборки могут связываться с и передавать данные в/от клиентов 180 и/или серверов 190.

[0044] Система 100 может также включать в себя другие компоненты, неиллюстрированные для краткости. Например, один или более из механизма 110 индексирования, механизма 120 обработки запросов, механизма 130 веб-обхода, механизма 140 визуализации и механизма 150 выборки может быть распределен между одним или более вычислительными устройствами. Аналогично, индекс 115, хранилище 148 данных результатов визуализации, таблица 152 внедренных элементов и таблица 156 размеров изображений могут также быть сохранены на множестве вычислительных устройств. В некоторых реализациях различные компоненты системы 100 могут совместно использовать аппаратные компоненты вычислительного устройства или могут быть логическими разделами одного и того же вычислительного устройства.

[0045] Фиг. 2 - это блок-схема веб-страницы, имеющей внедренные объекты. Как показано на чертеже, веб-страница 200 может содержать множество внедренных элементов. Эти внедренные объекты могут включать в себя, но не только, другие веб-страницы 210, таблицы 220 стилей, файлы 230 изображений, так называемые отключающие кэширование URL 240 и JavaScript-код 250. Дополнительные и различные типы внедренных объектов, конечно, возможны. Кроме того, каждый из объектов, которые внедрены в веб-страницу 200, может внедрять другие объекты. Например, веб-страница 210, которая внедрена в веб-страницу 200, может внедрять другие веб-страницы, файлы изображений, таблицы стилей и т.п. Аналогично, таблица 220 стилей, которая внедрена в веб-страницу 200, может внедрять другие объекты, такие как файл фонового изображения. Дополнительно, каждый из объектов, которые внедрены в веб-страницу 210, или таблица 220 стилей, могут сами внедрять даже больше объектов. Чтобы полностью визуализировать такую веб-страницу в файл изображения, механизм пакетной визуализации должен запрашивать каждый из внедренных объектов 210-250 (первичных внедренных объектов), все объекты (вторичные внедренные объекты), которые внедрены во внедренные объекты 210-250, и все объекты (третичные внедренные объекты), которые внедрены в объекты, которые внедрены во внедренные объекты 210-250, и т.д.

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

[0047] Фиг. 3 - это блок-схема некоторых компонентов механизма 142 пакетной визуализации согласно реализации. Механизм пакетной визуализации может включать в себя дополнительные компоненты, неиллюстрированные на фиг. 3. Механизм 142 пакетной визуализации включает в себя список 305 задач страницы, виртуальные часы 310 и результат 315 визуализации. Виртуальные часы 310 могут быть использованы, чтобы искажать шкалу времени для загрузки веб-страницы и избегать множества ошибок, которые могут возникать вследствие ожидания извлекаемых ресурсов. Виртуальные часы 310 могут быть инициализированы в ноль или текущее показание часов в начале процесса визуализации и могут идти вперед, только когда механизм визуализации не ожидает выборки внедренного элемента, и когда не существуют задачи в списке 305 задач страницы, которые готовы к запуску в текущее время. Когда виртуальные часы идут вперед, механизм 142 визуализации продвигает вперед виртуальные часы 310 на основе списка 305 задач страницы. Другими словами, механизм 142 визуализации продвигает вперед виртуальные часы 310 ко времени, представленному посредством следующей происходящей задачи. В этом смысле, выборка внедренного элемента и запуск JavaScript не занимают виртуальное время, что может устранять целый класс ошибок, с которым сталкивается реальный (или персональный) браузер. Кроме того, процесс визуализации может заканчиваться в реальном времени гораздо быстрее, чем времена, указанные в списке задач. Например, хотя задача "Формирование окончательной визуализации" задана, чтобы происходить в 20 секунд, виртуальные часы типично переходят к 20 секундам за несколько фактических секунд, в зависимости от того, как долго занимает фактическое завершение задач в списке 305 задач страницы. Задачей "Формирование окончательной визуализации" в списке 305 задач страницы является, например, задача остановки, которая говорит механизму 142 пакетной визуализации, когда визуализация закончена.

[0048] Механизм 142 визуализации может визуализировать результат 315 визуализации веб-страницы с элементами внедрения. Результат 315 визуализации моет включать в себя множество компонентов. Например, результат 315 визуализации может включать в себя изображение 316 визуализированной страницы. Изображение 316 может быть изображением, которое будет отображено пользователю реального (или персонального) веб-браузера и может быть использовано, например, чтобы отображать эскиз визуализированной страницы пользователю. Результат 315 визуализации может также включать в себя дерево 317 объектной модели документа (DOM). DOM-дерево 317 представляет HTML-структуру веб-страницы. Например, система может определять маркеры, или текст документа, видимый пользователю, посредством обработки DOM-дерева. Результат 315 визуализации может также включать в себя компоновку 318. Компоновка 318 включает в себя блок для каждого элемента веб-страницы, блок указывает координаты элемента в изображении 316. Например, компоновка может включать в себя блочные представления DOM-узлов в DOM-дереве (хотя не каждые DOM-элементы могут иметь соответствующий блок визуализации). Блоки могут быть организованы в древовидную структуру, также известную как дерево визуализации. Таким образом, например, таблица может быть представлена посредством блока в компоновке, а параграф может быть представлен посредством другого блока в компоновке. Таким образом, компоновка 318 предоставляет указание того, где на веб-странице элемент появляется, сколько пространства он занимает на веб-странице, и т.д. Таким образом, компоновка 318 предоставляет информацию о том, сколько на веб-странице рекламных объявлений, как выделяется параграф (например, в верхней половине полосы или нижней половине полосы), является ли элемент видимым, и т.д. Компоновка 318, таким образом, предоставляет геометрическую информацию об элементах веб-страницы. Результат 315 визуализации может также включать в себя ошибки 320. Ошибки 320 включают в себя ошибки, встречающиеся в результате работы сценария, например, JavaScript. Результат 315 визуализации может также включать в себя список внедренных ресурсов 319, извлеченных во время визуализации, и может включать в себя другие элементы, сформированные как часть процесса визуализации. Таким образом, результат 315 визуализации предоставляет информацию, недоступную запрашивающему процессу исключительно через выборку контента с размещающего сервера. Механизм индексирования, например, может использовать информацию результата визуализации, чтобы ранжировать элемент в индексе, избегать предоставления невидимых элементов как части фрагмента и индексировать динамически формируемый контент. Динамически формируемый контент - это контент, который существует после визуализации веб-страницы, но не как контент, который обходится.

[0049] Фиг. 4 - это блок-схема последовательности операций, иллюстрирующая примерный процесс 400, посредством которого механизм пакетной визуализации может визуализировать веб-страницу, имеющую внедренные объекты, согласно реализации. Процесс 400 может быть выполнен посредством системы, такой как система 100 на фиг. 1. Система может использовать процесс 400, чтобы формировать результат визуализации веб-страницы в пакетном режиме по запросу последующего процесса, такого как система рекламы или Интернет-система индексирования. В некоторых реализациях процесс 400 может выполняться посредством механизма пакетной визуализации сервера визуализации и может быть инициирован в ответ на запрос из запрашивающего процесса.

[0050] Процесс 400 может начинаться с приема запроса на визуализацию веб-страницы (405). В некоторых реализациях запрос может включать в себя URL и/или извлеченный контент запрошенной веб-страницы и ассоциированные метаданные (например, время обхода). В некоторых реализациях вместо приема контента веб-страницы механизм пакетной визуализации может принимать уведомление, что контент веб-страницы доступен в базе данных, и может возвращать себе контент и ассоциированные метаданные (например, время обхода) из базы данных. Извлеченный контент может быть предоставлен, поскольку, например, запрашивающий процесс уже извлек контент. Механизм пакетной визуализации может начинать визуализацию, инициализируя виртуальные часы и добавляя задачу остановки в список задач (410). Например, механизм пакетной визуализации может устанавливать виртуальные часы в ноль и добавлять задачу остановки в список задач, которая инструктирует механизму визуализации определять, что визуализация завершена, в предварительно определенное время. Время запуска, ассоциированное с этой задачей остановки, может быть временем, в которое большинство веб-страниц заканчивают загрузку на индивидуальной пользовательской машине. Например, время может быть 15 или 20 секунд. Как часть начала визуализации, механизм пакетной визуализации может также добавлять другие задачи в список задач, такие как выборка контента для веб-страницы (если контент не был предоставлен) и обработка контента для веб-страницы. Эти задачи могут быть добавлены с виртуальным временем, равным нулю, таким образом, они могут начинаться немедленно, например.

[0051] Механизм пакетной визуализации может затем начинать работу по задачам в списке задач (415). Например, как часть обработки контента для веб-страницы, механизм пакетной визуализации может идентифицировать один или более внедренных элементов (420). Механизм пакетной визуализации может затем запрашивать контенты внедренных элементов с сервера выборки (425). Сервер выборки может быть сервером 150 выборки на фиг. 1. В некоторых реализациях механизм пакетной визуализации может отслеживать, какие внедренные элементы он идентифицировал и то, возвратил или нет сервер выборки контент для соответствующих внедренных элементов. В некоторых реализациях этот список внедренных элементов может быть включен в результат визуализации для веб-страницы. После того как механизм пакетной визуализации запросил внедренный элемент, механизм пакетной визуализации может продолжать работу по другим задачам (415), которые готовы к запуску во время ожидания, пока сервер выборки вернет содержимое. Если не существует задач, готовых к запуску в текущее виртуальное время, механизм пакетной визуализации может ожидать ответа от сервера выборки. В то время как выборка ожидает выполнения, механизм пакетной визуализации не продвигает вперед виртуальные часы, и, таким образом, механизм пакетной визуализации не блокируется по времени ожидания выборки.

[0052] Когда принимается ответ от сервера выборки, механизм пакетной визуализации может обрабатывать контент внедренного элемента (430). Например, в ответ на прием контента механизм пакетной визуализации может добавлять задачи, такие как синтаксический анализ принятого контента для внедренных элементов, в список задач. Этим задачам может быть предоставлено время запуска текущих виртуальных часов, которое указывает, что задача готова к запуску (например, текущее время на виртуальных часах). Синтаксический анализ принятого контента, будь то для первоначально запрошенной веб-страницы или для внедренного элемента, может инструктировать процессу пакетной визуализации добавлять дополнительные задачи в список задач. Например, синтаксический анализ контента для внедренного элемента может обнаруживать дополнительные внедренные элементы (например, вторичные внедренные элементы), которые могут инструктировать механизму пакетной визуализации запрашивать внедренные элементы и выполнять синтаксический анализ их контента, когда они возвращаются. Если контент включает в себя сценарий, например, JavaScript, запуск сценария может инструктировать выполнение дополнительных задач, таких как формирование компоновки или изменение внешнего вида одного или более элементов веб-страницы. Некоторые из этих задач могут быть запланированы к запуску в будущем. Например, изменение затененности изображения с фиксированными интервалами воспринимается пользователем как постепенно появляющееся. Каждое изменение в затененности является задачей, и сценарий может инструктировать добавление нескольких таких задач в список задач, каждая с временем запуска текущих виртуальных часов плюс указанный интервал.

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

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

[0055] Фиг. 5 - это блок-схема последовательности операций, иллюстрирующая примерный процесс 500, посредством которого механизм пакетной визуализации продвигает вперед виртуальные часы, согласно реализации. Процесс 500 может работать как часть определения того, завершена ли визуализация (например, этап 435 на фиг. 4), хотя он может работать также в другие моменты времени (например, периодически). Процесс 500 начинается с определения того, ожидает ли механизм пакетной визуализации запрос внедренного элемента (505). Например, если механизм пакетной визуализации запросил внедренный элемент с сервера выборки и еще не принял ответ от сервера выборки, механизм пакетной визуализации ожидает. Если механизм пакетной визуализации ожидает (505, Да), виртуальные часы не продвигаются вперед, и механизм пакетной визуализации может работать по задачам, готовым к запуску в текущее виртуальное время, если они существуют, или может ожидать (510). Этот этап может быть выполнен как часть этапа 415 на фиг. 4. Если механизм пакетной визуализации не ожидает запрос выборки (505, Нет), механизм пакетной визуализации может определять, существуют ли задачи в списке задач, которые готовы к запуску (515). Например, если задача в списке задач имеет время запуска, которое равно виртуальным часам, задача готова к запуску. Если задача готова к запуску (515, Да), механизм пакетной визуализации может работать по задаче (520). Работа по задаче может добавлять другие задачи в список задач, некоторые из которых могут быть готовы к запуску, а другие из которых могут иметь время запуска в будущем (например, текущее время виртуальных часов плюс некоторое указанное время). Этот этап может также быть выполнен как часть этапа 415 на фиг. 4. Если не существуют ожидающие выполнения задачи, готовые к запуску (515, Нет), механизм пакетной визуализации может продвигать вперед виртуальные часы к следующему времени запуска, указанному в списке задач (525). Другими словами, механизм пакетной визуализации искажает виртуальные часы вперед так, что следующая задача в очереди в списке задач готова к запуску.

[0056] Если следующая задача в очереди в списке задач является задачей остановки (530, Да), визуализация заканчивается. Если нет, механизм пакетной визуализации может продолжать работать по ожидающим выполнения задачам (520). Процесс 500 демонстрирует, как виртуальные часы не движутся вперед, пока существуют ожидающие выполнения задачи, готовые к запуску, или во время ожидания выборки внедренного элемента. Таким образом, виртуальные часы "останавливаются" для этих событий, что может устранять класс ошибок, встречающихся, когда механизм визуализации использует реальные часы. Кроме того, процесс 500 демонстрирует, как виртуальные часы могут быть скручены вперед, так что в некоторых случаях процесс визуализации может занимать меньше реального времени, чем момент, диктуемый задачами (например, ожидание в течение интервалов времени, чтобы плавно проявлять изображение или воспроизводить анимацию). Это особенно верно, когда внедренные элементы могут быть возвращены без обхода, как будет объяснено более подробно в данном документе. Конечно, понятно, что порядок проверки для ожидающих выполнения задач (515) и запросов выборки (505) может быть перевернут, и реализации не ограничиваются порядком, иллюстрированным на фиг. 5.

[0057] Фиг. 6 - это блок-схема последовательности операций, иллюстрирующая примерный процесс 600, посредством которого сервер выборки предоставляет контент внедренных элементов механизму пакетной визуализации, согласно реализации. Процесс 600 может быть выполнен посредством системы, такой как система 100 на фиг. 1. Система может использовать процесс 600, чтобы отвечать на запросы выборки для внедренных элементов от множества механизмов пакетной визуализации. В некоторых реализациях процесс 600 может быть выполнен посредством сервера выборки и может быть инициирован в ответ на запрос от одного из механизмов пакетной визуализации.

[0058] Процесс 600 может начинаться с того, что сервер выборки принимает URL для внедренного элемента (605). URL может быть предоставлен механизмом пакетной визуализации и может быть одним из множества URL, запрашиваемых механизмом пакетной визуализации. Сервер выборки может применять правила перезаписи к URL запрошенного внедренного элемента (610). Правила перезаписи могут быть правилами 154 перезаписи URL на фиг. 1. Правило перезаписи может включать в себя шаблон и URL перенаправления. Применение правила перезаписи может включать в себя определение того, соответствует ли URL образцу или шаблону для одного из правил перезаписи. Например, шаблон может быть URL с какими-либо удаленными строками запроса, и система может удалять строку запроса из URL запрошенного внедренного элемента, чтобы видеть, соответствует ли он шаблону. В качестве другого примера, шаблон может включать в себя безразличные символы, например, * и ?, которые указывают места, где любой символ или символы могут соответствовать безразличным символам.

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

[0060] Другой причиной применять правила перезаписи является идентификация внесенных в черный список URL. Правила перезаписи могут также включать в себя правила, которые идентифицируют внесенные в черный список URL или образец или шаблон для внесенных в черный список URL. Например, правило перезаписи может включать в себя шаблон и ассоциированный URL перенаправления, ошибку или флаг. Если URL для запрошенного внедренного элемента совпадает с внесенным в черный список URL или шаблоном для внесенного в черный список URL, сервер выборки может идентифицировать URL как внесенный в черный список. В некоторых реализациях применение правил перезаписи может вызывать замену URL на URL перенаправления. В некоторых реализациях применение правил перезаписи может помечать флагом URL как внесенный в черный список или может предоставлять ошибку для возврата в качестве ответа на запрос для внедренного элемента, идентифицированного по URL.

[0061] Если URL внесен в черный список (615, Да), сервер выборки может возвращать ошибку запрашивающему механизму пакетной визуализации (620). Ошибка может быть обычной ошибкой браузера, указывающей, что ресурс не может быть найден, или особой ошибкой, которая говорит механизму визуализации, что ресурс не нужен или может быть пропущен, и т.д. Ошибка может быть предоставлена посредством сопоставления правила перезаписи, из таблицы внедренных элементов, если правило перезаписи предоставляет URL перенаправления, выбранного на основе флага в правиле перезаписи, жестко закодированного и т.д. Запрос выборки для этого URL затем выполняется, и процесс 600 заканчивается.

[0062] Если URL не внесен в черный список (615, Нет), сервер выборки может отыскивать URL перезаписи в хранилище данных внедренных элементов (625). Хранилище данных внедренных элементов может быть таблицей 152 внедренных элементов на фиг. 1. Перезаписанный URL может быть URL перенаправления, предоставленным посредством правил перезаписи, если оригинальный URL совпал с образцом, идентифицированным в правилах перезаписи. Перезаписанный URL может быть оригинальным URL, если URL не совпал с какими-либо шаблонами в правилах перезаписи. Если URL существует в хранилище данных внедренных элементов (625, Да), сервер выборки может необязательно определять, является ли запрошенный URL указателем для изображения (630). Это необязательно, и в реализациях, которые не выполняют проверку для изображения, этап 630 может быть опущен. Является ли запрошенный внедренный элемент изображением, может быть определено на основе информации в запросе, самого URL или на основе поля в хранилище данных внедренных элементов для перезаписанного URL. Если внедренный элемент является изображением (630, Да), система может отыскивать в таблице размеров размеры изображения и возвращать фиктивное изображение, имеющее размеры, как объяснено более подробно относительно процесса 700 на фиг. 7. Также понятно, что в некоторых реализациях сервер выборки может выполнять этап 630 перед применением правил перезаписи, перед поиском в хранилище данных внедренных элементов или после определения, является ли запись устаревшей.

[0063] Если запрошенный внедренный элемент не является изображением (630, Нет), сервер выборки может определять, является ли запись в таблице внедренных элементов устаревшей (645). Является ли запись устаревшей или нет, может зависеть от нескольких факторов, таких как частота изменения элемента, тип внедренного элемента (например, сценарий, таблица стилей, изображение и т.д.), важность веб-страницы, которую механизм визуализации браузера визуализирует, и т.д. В некоторых реализациях таблица внедренных элементов может иметь поле или значение, которое указывает, что запись никогда не устаревает, например, для URL перенаправления внесенного в черный список внедренного элемента. Если запись не устарела (645, Нет), сервер выборки может возвращать контент в таблице внедренных элементов для перезаписанного URL запрашивающему механизму пакетной визуализации (650), и процесс 600 заканчивается для этого внедренного элемента. В некоторых реализациях возврат контента может включать в себя предоставление сервером выборки местоположения записи в таблице внедренных элементов в качестве ответа, и процесс пакетной визуализации осуществляет доступ к контенту, используя местоположение.

[0064] Если запись в таблице внедренных элементов устарела (645, Да), или если перезаписанный URL не находится в хранилище данных внедренных элементов (625, Нет), сервер выборки может запрашивать выборку URL из модуля веб-обхода, например, механизма 130 веб-обхода на фиг. 1 (635). Когда сервер выборки принимает обойденный контент, он может сохранять принятый контент, без манипулирования или дополнительной обработки, в качестве записи в хранилище данных внедренных элементов (640). В некоторых реализациях сервер выборки может сохранять контент и время обхода внедренного элемента без перезаписи контента и времени обхода предыдущего обхода внедренного элемента. В некоторых реализациях сервер выборки может хранить одну запись в таблице внедренных элементов и может не сохранять предыдущий обход внедренного элемента. В любом случае, после сохранения в таблице внедренных элементов контент кэшируется и не нуждается в выборке снова до тех пор, пока он не становится устаревшим. Сервер выборки может затем возвращать извлеченный контент запрашивающему механизму пакетной визуализации (650), и процесс 600 заканчивается.

[0065] Фиг. 7 - это блок-схема последовательности операций, иллюстрирующая примерный процесс 700, посредством которого сервер выборки предоставляет фиктивные изображения механизму пакетной визуализации, согласно реализации. Процесс 700 может быть выполнен посредством системы, такой как система 100 на фиг. 1. Система может использовать процесс 700, чтобы отвечать на запросы выборки для изображений, внедренных в веб-страницу, от множества механизмов пакетной визуализации. В некоторых реализациях процесс 700 может быть выполнен посредством сервера выборки и может быть инициирован в ответ на запрос от одного из механизмов пакетной визуализации. В некоторых реализациях сервер выборки может выполнять процесс 700 независимо от других внедренных элементов (например, процесса 600 на фиг. 6). В других реализациях сервер выборки может объединять элементы процесса 700 в процесс, который включает в себя другие внедренные элементы, например, процесс 600 на фиг. 6.

[0066] Процесс 700 может начинаться с того, что сервер выборки определяет, имеет ли запрошенное изображение запись в таблице размеров изображений (705). Таблица размеров изображений может быть таблицей 156 размеров изображений на фиг. 1. Таблица размеров изображений включает в себя размеры для изображения, которые хранятся по идентификатору, такому как URL, для изображения. Если изображения нет в таблице размеров (705, Нет), или если изображение есть в таблице размеров (705, Да), но является устаревшим (710, Да), сервер выборки может планировать выборку изображения (715), например, через механизм веб-обхода, такой как механизм 130 веб-обхода на фиг. 1. В некоторых реализациях сервер выборки может использовать информацию в таблице размеров, чтобы определять, является ли запись устаревшей. В некоторых реализациях сервер выборки может использовать информацию из отдельной таблицы внедренных элементов, как описано выше относительно этапа 645 на фиг. 6, чтобы определять, являются ли размеры устаревшими. Таким образом, в некоторых реализациях, сервер выборки может выполнять этап 710 вместе или как часть этапа 645 на фиг. 6. Когда контент для изображения принимается, сервер выборки может добавлять запись для изображения в таблицу размеров, запись включает в себя размеры для извлеченного изображения (720). В некоторых реализациях сервер выборки может также сохранять извлеченный контент в таблице внедренных элементов, как описано выше, как часть этапа 640 на фиг. 6.

[0067] Если изображение существует в таблице размеров (705, Да) и не является устаревшим (710, Нет), или после того как изображение было извлечено и сохранено (720), система может формировать фиктивное изображение, используя размеры из таблицы размеров (725). Фиктивное изображение может иметь данные формата файла изображения, которые указывают те же размеры, что и запрошенное изображение, но пустой контент. Система может возвращать фиктивное изображение (730) запрашивающему механизму пакетной визуализации, и процесс 700 заканчивается.

[0068] Понятно, что в некоторых реализациях некоторые из этапов процесса 700 могут быть необязательны или выполняться как часть другой обработки. Например, определение того, являются ли размеры для изображения устаревшими, может выполняться как часть этапа 645 на фиг. 6 и может быть основано на информации в таблице внедренных элементов. Дополнительно, этап 715 может быть выполнен как часть или вместе с этапом 635 на фиг. 6. Другими словами, сервер выборки может объединять аспекты процесса 700 с аспектами процесса 600, такими как выборка контента для изображений, определение того, является ли кэшированный извлеченный контент устаревшим, и т.д. Конечно, сервер выборки может также выполнять процесс 700 полностью независимо от процесса 600. Таким образом, реализации могут включать в себя вариации процесса 700.

[0069] Фиг. 8 показывает пример обычного компьютерного устройства 800, которое может работать в качестве системы 100, и/или клиента 170 на фиг. 1, которая может быть использована с технологиями, описанными здесь. Вычислительное устройство 800 предназначается, чтобы представлять различные примерные формы вычислительных устройств, таких как портативные компьютеры, настольные компьютеры, рабочие станции, персональные цифровые помощники, сотовые телефоны, смартфоны, планшеты, серверы и другие вычислительные устройства, включающие в себя носимые устройства. Компоненты, показанные здесь, их соединения и взаимосвязи, и их функции, предназначены быть только примерами и не предназначены ограничивать реализации изобретения, описанные и/или заявленные в этом документе.

[0070] Вычислительное устройство 800 включает в себя процессор 802, например, кремниевый аппаратный процессор, память 804, устройство 806 хранения и порты 810 расширения, соединенные через интерфейс 808. В некоторых реализациях вычислительное устройство 800 может включать в себя приемопередатчик 846, интерфейс 844 связи и модуль 844 приемника GPS (системы глобального позиционирования), среди других компонентов, соединенных через интерфейс 808. Устройство 800 может связываться беспроводным образом через интерфейс 844 связи, который может включать в себя схему обработки цифровых сигналов, где необходимо. Каждый из компонентов 802, 804, 806, 808, 810, 840, 844, 846 и 848 может быть установлен на общей материнской плате или другими способами при необходимости.

[0071] Процессор 802 может обрабатывать инструкции для исполнения в вычислительном устройстве 800, включающие в себя инструкции, сохраненные в памяти 804 или на устройстве 806 хранения, чтобы отображать графическую информацию для GUI на внешнем устройстве ввода/вывода, таком как дисплей 816. Дисплей 816 может быть монитором или дисплеем с плоским сенсорным экраном. В некоторых реализациях может быть использовано множество процессоров и/или множество шин, при необходимости, вместе с множеством запоминающих устройств и типов запоминающего устройства. Также множество вычислительных устройство 800 может быть соединено, при этом каждое устройство предоставляет фрагменты необходимых операций (например, в качестве банка серверов, группы blade-серверов или многопроцессорной системы).

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

[0073] Устройство 806 хранения способно предоставлять запоминающее устройство большой емкости для вычислительного устройства 800. В одной реализации устройство 806 хранения может быть или включать в себя компьютерно-читаемый носитель, такой как накопитель на гибких дисках, накопитель на жестких дисках, накопитель на оптических дисках или ленточное устройство, флэш-память или другое аналогичное твердотельное запоминающее устройство, или массив устройств, включающий в себя устройства в сети устройств хранения данных или других конфигурациях. Компьютерный программный продукт может быть материально осуществлен на таком компьютерно-читаемом носителе. Компьютерный программный продукт может также включать в себя инструкции, которые, когда исполняются, выполняют один или более способов, таких как способы, описанные выше. Компьютерно- или машиночитаемый носитель является устройством хранения, таким как память 804, устройство 806 хранения, или память в процессоре 802.

[0074] Интерфейс 808 может быть высокоскоростным контроллером, который управляет интенсивными в терминах пропускной способности операциями для вычислительного устройства 800, или низкоскоростным контроллером, который управляет более низкими по интенсивности в терминах пропускной способности операциями, или комбинацией таких контроллеров. Внешний интерфейс 840 может быть предусмотрен с тем, чтобы предоставлять возможность связи в ближней области устройства 800 с другими устройствами. В некоторых реализациях контроллер 808 может быть соединен с устройством 806 хранения и портом 814 расширения. Порт расширения, который может включать в себя различные порты связи (например, USB, Bluetooth, Ethernet, беспроводной Ethernet), может быть соединен с одним или более устройствами ввода/вывода, такими как клавиатура, указывающее устройство, сканер, или сетевым устройством, таким как коммутатор или маршрутизатор, например, через сетевой адаптер.

[0075] Вычислительное устройство 800 может быть реализовано во множестве различных форм, как показано на чертеже. Например, оно может быть реализовано как обычный сервер 830, или множество раз в группе таких серверов. Оно может также быть реализовано как часть системы стоечного сервера. Кроме того, оно может быть реализовано в персональном компьютере, таком как портативный компьютер 832, настольный компьютер 834 или смартфон 836. Вся система может быть составлена из множества вычислительных устройств, связывающихся друг с другом. Возможны другие конфигурации.

[0076] Фиг. 9 показывает пример обычного компьютерного устройства 900, которое может быть системой 100 на фиг. 1, которая может быть использована с технологиями, описанными в данном документе. Вычислительное устройство 900 предназначается для того, чтобы представлять различные примерные формы крупномасштабных устройств обработки данных, таких как серверы, blade-серверы, центры обработки данных, универсальные компьютеры и другие крупномасштабные вычислительные устройства. Вычислительное устройство 900 может быть распределенной системой, имеющей множество процессоров, возможно включающей в себя соединенные в сеть узлы хранения, которые взаимосвязаны друг с другом посредством одной или более сетей передачи данных. Компоненты, показанные здесь, их соединения и взаимосвязи, и их функции, предназначены быть только примерами и не предназначены ограничивать реализации изобретения, описанные и/или заявленные в этом документе.

[0077] Распределенное вычислительное устройство 900 может включать в себя любое число вычислительных устройств 980. Вычислительные устройства 980 могут включать в себя сервер или стоечные сервера, универсальные компьютеры и т.д., связывающиеся через локальную или глобальную вычислительную сеть, выделенные оптические линии связи, модемы, мосты, маршрутизаторы, коммутаторы, проводные или беспроводные сети и т.д.

[0078] В некоторых реализациях каждое вычислительное устройство может включать в себя множество стоек. Например, вычислительное устройство 980a включает в себя множество стоек 958a-958n. Каждая стойка может включать в себя один или более процессоров, таких как процессоры 952a-952n и 962a-962n. Процессоры могут включать в себя процессоры данных, подсоединенные к сети устройства хранения и другие компьютерные управляемые устройства. В некоторых реализациях один процессор может работать в качестве главного процессора и управлять планированием и задачами распределения данных. Процессоры могут быть взаимно соединены через один или более коммутаторов 958 стойки, и одна или более стоек могут быть соединены через коммутатор 978. Коммутатор 978 может управлять обменами данных между множеством соединенных вычислительных устройств 900.

[0079] Каждая стойка может включать в себя память, такую как память 954 и память 964, и хранилище, такое как 956 и 966. Хранилище 956 и 966 может предоставлять запоминающее устройство большой емкости и включать в себя энергозависимое или энергонезависимое хранилище, такое как подключенные к сети диски, гибкие диски, жесткие диски, оптические диски, ленты, флэш-память или другие аналогичные твердотельные запоминающие устройства, или массив устройств, включающий в себя устройства в сети устройств хранения данных или других конфигурациях. Хранилище 956 или 966 может совместно использоваться между множеством процессоров, множеством стоек или множеством вычислительных устройств и может включать в себя компьютерно-читаемый носитель, хранящий инструкции, исполняемые одним или более процессорами. Память 954 и 964 может включать в себя, например, энергозависимое запоминающее устройство или устройства, энергонезависимое запоминающее устройство или устройства и/или другие формы компьютерно-читаемых носителей, таких как магнитные или оптические диски, флэш-память, кэш, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM) и их комбинации. Память, такая как память 954, может также совместно использоваться между процессорами 952a-952n. Структуры данных, такие как индекс, могут быть сохранены, например, между хранилищем 956 и памятью 954. Вычислительное устройство 900 может включать в себя другие непоказанные компоненты, такие как контроллеры, шины, устройства ввода/вывода, модули связи и т.д.

[0080] Вся система, такая как система 100, может быть составлена из множества вычислительных устройств 900, связывающихся друг с другом. Например, устройство 980a может связываться с устройствами 980b, 980c и 980d, и они могут совокупно быть известны как система 100. В качестве другого примера, система 100 на фиг. 1 может включать в себя одно или более вычислительных устройств 900. Некоторые из вычислительных устройств могут находиться географически близко друг к другу, а другие могут находиться географически удаленно. Компоновка вычислительного устройства 900 является лишь примером, и система может принимать другие компоновки или конфигурации.

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

[0082] Эти компьютерные программы (также известные как программы, программное обеспечение, приложения системы программного обеспечения или код) включают в себя машинные инструкции для программируемого процессора и могут быть реализованы на процедурном и/или объектно-ориентированном языке программирования высокого уровня и/или на языке ассемблера/машины. Когда используются в данном документе, термины "машиночитаемый носитель", "компьютерно-читаемый носитель" ссылаются на любой энергонезависимый компьютерный программный продукт, аппаратную систему и/или устройство (например, магнитные диски, оптические диски, память (включающую в себя оперативное запоминающее устройство), программируемые логические устройства (PLD)), используемые, чтобы предоставлять машинные инструкции и/или данные программируемому процессору.

[0083] Системы и методы, описанные здесь, могут быть реализованы в вычислительной системе, которая включает в себя внутренний компонент (например, в качестве сервера данных), или которая включает в себя промежуточный компонент (например, сервер приложений), или которая включает в себя компонент первичной обработки данных (например, клиентский компьютер, имеющий графический пользовательский интерфейс или веб-браузер, посредством которого пользователь может взаимодействовать с реализацией систем и методов, описанных здесь), или любую комбинацию таких внутренних, промежуточных или компонентов первичной обработки данных. Компоненты системы могут быть взаимосвязаны посредством любой формы или носителя для обмена цифровыми данными (например, сети связи). Примеры сетей связи включают в себя локальную вычислительную сеть ("LAN"), глобальную вычислительную сеть ("WAN") и Интернет.

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

[0085] Был описан ряд реализаций. Тем не менее, различные модификации могут быть выполнены без отступления от духа и рамок изобретения. Кроме того, логические потоки, изображенные на чертежах, не требуют показанного конкретного порядка или последовательного порядка, чтобы добиваться желаемых результатов. Кроме того, могут быть предусмотрены отличные этапы, или этапы могут быть устранены от описанных последовательностей операций, и другие компоненты могут быть добавлены или удалены в/из описанных систем. Соответственно, эти и другие реализации находятся в пределах объема прилагаемой формулы изобретения.

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

название год авторы номер документа
ОПТИМИЗИРОВАННЫЙ ПРОЦЕСС ВИЗУАЛИЗАЦИИ В БРАУЗЕРЕ 2014
  • Мэн Бипин
  • Фан Хао
  • Сюй Хой
RU2665920C2
ГЛУБИННЫЕ ССЫЛКИ ДЛЯ НАТИВНЫХ ПРИЛОЖЕНИЙ 2015
  • Чанг Лоуренс
  • Сюй Хой
RU2668726C2
ГЛУБИННЫЕ ССЫЛКИ ДЛЯ НАТИВНЫХ ПРИЛОЖЕНИЙ 2015
  • Чанг, Лоуренс
  • Сюй, Хой
RU2774319C2
ОПТИМИЗИРОВАННЫЙ ПРОЦЕСС ВОСПРОИЗВЕДЕНИЯ БРАУЗЕРА 2017
  • Мэн Бипин
  • Истхэм Майкл
  • Сюй Хой
  • Чжоу Сяобо
RU2756482C2
ОПТИМИЗИРОВАННЫЙ ПРОЦЕСС ВОСПРОИЗВЕДЕНИЯ БРАУЗЕРА 2014
  • Мэн Бипин
  • Истхэм Майкл
  • Сюй Хой
  • Чжоу Сяобо
RU2638726C1
БРОКЕР И ПРОКСИ ОБЕСПЕЧЕНИЯ БЕЗОПАСТНОСТИ ОБЛАЧНЫХ УСЛУГ 2014
  • Коэм Авирам
  • Мойси Лиран
  • Люттвак Ами
  • Резник Рой
  • Вишнепольски Грег
RU2679549C2
СПОСОБ, СИСТЕМА И УСТРОЙСТВО ДЛЯ ФИЛЬТРАЦИИ РЕКЛАМНЫХ ОБЪЯВЛЕНИЙ ВЕБ-СТРАНИЦ НА МОБИЛЬНОМ ТЕРМИНАЛЕ 2013
  • Жуань Шудун
  • Чжан Кай
  • Сюй Юй
RU2614572C2
ПОИСКОВЫЕ РЕЗУЛЬТАТЫ ДЛЯ НАТИВНЫХ ПРИЛОЖЕНИЙ 2015
  • Ли Донг Ха
  • Йеом Дзаелиун
RU2665888C2
ПОИСКОВЫЕ РЕЗУЛЬТАТЫ ДЛЯ НАТИВНЫХ ПРИЛОЖЕНИЙ 2015
  • Ли Донг Ха
  • Йеом Дзаелиун
RU2710293C2
Гибридная автоматическая система управления доступом пользователей к информационным ресурсам в публичных компьютерных сетях 2018
  • Ашманов Игорь Станиславович
  • Иванов Алексей Петрович
  • Отарбиев Эльдар Отарбиевич
  • Пашко Дмитрий Алексеевич
  • Тихонов Максим Викторович
RU2697925C1

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

Реферат патента 2018 года ОПТИМИЗИРОВАННАЯ ДЛЯ ПАКЕТНОЙ ОБРАБОТКИ АРХИТЕКТУРА ВИЗУАЛИЗАЦИИ И ВЫБОРКИ

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

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

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

по меньшей мере, один процессор; и

память, хранящую:

хранилище данных контента для внедренных элементов и

инструкции, которые, когда исполняются, по меньшей мере, одним процессором, инструктируют систему:

принимать запрос, из процесса пакетной обработки, чтобы визуализировать веб-страницу,

инициализировать виртуальные часы для веб-страницы,

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

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

идентифицировать внедренный элемент в веб-странице,

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

в ответ на определение предоставлять контент для ранее извлеченного внедренного элемента из хранилища данных,

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

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

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

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

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

3. Система по п. 2, в которой шаблон включает в себя URL без строки запроса.

4. Система по п. 1, в которой внедренный элемент является первым внедренным элементом, а инструкции дополнительно включают в себя инструкции, которые, когда исполняются, по меньшей мере, одним процессором, инструктируют систему:

идентифицировать второй внедренный элемент в веб-странице;

определять, внесен ли второй внедренный элемент в черный список;

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

формировать результат визуализации без контента для второго внедренного элемента.

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

6. Система по п. 1, в которой внедренный элемент является первым внедренным элементом, а инструкции дополнительно включают в себя инструкции, которые, когда исполняются, по меньшей мере, одним процессором, инструктируют систему:

идентифицировать второй внедренный элемент в веб-странице;

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

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

использовать фиктивное изображение в формировании результата визуализации.

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

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

принимают запрос от запрашивающего процесса, чтобы визуализировать веб-страницу;

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

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

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

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

предоставляют результат визуализации запрашивающему процессу.

9. Способ по п. 8, в котором предварительно определенное время, добавленное к виртуальным часам, - между 5 и 20 секундами.

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

11. Способ по п. 8, в котором запросы ожидания обработки для внедренных элементов являются задачами, ожидающими запуска.

12. Способ по п. 8, дополнительно содержащий этапы, на которых:

идентифицируют внедренное изображение в веб-странице;

запрашивают контент для внедренного изображения;

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

используют фиктивное изображение при формировании результата визуализации.

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

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

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

запрашивают внедренный ресурс из сервера; и

работают по второй задаче во время ожидания ответа на запрос.

16. Способ по п. 15, дополнительно содержащий этапы, на которых:

принимают контент для внедренного ресурса из сервера, и

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

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

18. Способ по п. 16, причем задача, добавленная в список задач, извлекает второй внедренный элемент, идентифицированный в контенте.

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

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

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

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

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

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

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

применяют, используя, по меньшей мере, один процессор, правила перезаписи, чтобы определять перезаписанный URL;

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

когда контент существует, предоставляют контент процессу пакетной визуализации; и

когда контент не существует:

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

принимают контент от механизма веб-обхода,

предоставляют контент процессу пакетной обработки, и

сохраняют контент в хранилище данных,

причем первая задача завершается следом за сохранением контента в хранилище данных.

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

21. Способ по п. 19, в котором применение правил перезаписи включает в себя этап, на котором:

сопоставляют URL с шаблоном, шаблон ассоциируется с URL перенаправления,

при этом, когда URL совпадает с шаблоном, URL перенаправления определяется в качестве перезаписанного URL, и

при этом, когда URL не совпадает с шаблоном, URL определяется в качестве перезаписанного URL.

22. Способ по п. 19, дополнительно содержащий этапы, на которых:

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

в ответ на определение, что контент для перезаписанного URL устарел:

принимают обновленный контент от механизма веб-обхода,

обновляют хранилище данных обновленным контентом, и

предоставляют обновленный контент в качестве контента для перезаписанного URL.

23. Способ по п. 19, причем фактическое время, потраченное на обработку списка задач, меньше, чем предварительно определенное время для веб-страницы, которая не имеет внедренного элемента.

24. Способ по п.19, причем ожидающие обработки запросы для внедренных элементов являются незавершенными задачами.

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

US 8346755 B1, 01.01.2013
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
Пломбировальные щипцы 1923
  • Громов И.С.
SU2006A1
US 7548915 B2, 16.06.2009
ПЛАТФОРМА СОСТАВНЫХ ПРИЛОЖЕНИЙ НА БАЗЕ МОДЕЛИ 2008
  • Вулф Кеннет Дэвид
  • Эшнер Дэниел
  • Седухкин Игорь
  • Лукко Стивен
  • Бокс Дональд Ф.
  • Худ Дэстри В.
  • Лаверинг Брэдфорд Х.
  • Швартц Стефен Т.
  • Андерсон Кристофер Л.
  • Пинкстон Джеффри С.
  • Миллет Стефен Дж.
  • Пинто Эдмунд Св.
  • Эббот Майкл Р.
  • Блоуш Энтони К.
  • Джонсон Джеймс Е.
  • Шорт Кейт В.
RU2502127C2

RU 2 659 481 C1

Авторы

Фан Хао

Хендрикс Эрик Арьян

Сюй Хой

Тейпес Кристиан

Капур Рупеш

Даты

2018-07-02Публикация

2014-06-26Подача