-►
Инфокоммуникационные технологии
УДК 025.4.03, 004.273
И.С. Блеканов, С.Л Сергеев., И.А. Мартыненко
построение тематико-ориентированных веб-краулеров с использованием обобщенного ядра
За последние несколько лет в области информационного веб-поиска все чаще проводятся исследования [3-5], связанные с развивающимся научным направлением вебометрика (webometrics) [4]. В частности, методами вебо-метрики исследуются такие вопросы, как оценка присутствия информационных веб-ресурсов в Вебе, ранжирование веб-сайтов университетов и научных учреждений [3, 5] или повышение вебометрического рейтинга, введенного испанской группой Cybermetrics Lab (http://www.webometrics.info), различных университетов мира.
К актуальным направлениям вебометрики относятся исследования по анализу и выявлению гиперссылочных структур различных сегментов веб-пространства (например, академический сегмент Веба, корпоративный и др.). Для получения больших объемов информации о гиперссылках используются веб-краулеры. Общей задачей таких инструментов является специализированный обход Веба с целью сбора информации или определения гиперссылочной структуры и полезности каких-либо информационных ресурсов [1, 2]. Имеющиеся в настоящее время веб-краулеры можно разделить на две группы: универсальные и специализированные (тематико-ориентированные). Универсальные обычно избыточны, сильно нагружают сетевые ресурсы и проигрывают специализированным по таким показателям, как время обхода веб-пространства, производительность обработки информации, а также возможность направленного поиска информационных источников в рамках определенной метрики значимости. В этом смысле преимущества специализированных систем очевидны, однако их минусом явля-
ются значительные затраты на изготовление - для каждой специализации нужен свой краулер.
Вместе с тем, значительное число функций всех краулеров совпадает [6-8, 10].
В данной статье предлагается модель специализированных веб-краулеров, состоящих из обобщенного ядра и специализированных дополнений. При таком подходе затраты на изготовление специализированного веб-краулера минимизируются. Предлагается архитектура обобщенного ядра поискового робота и ее реализация. Ставится эксперимент, в котором сравнивается качество работы веб-краулеров на основе обобщенного ядра с качеством работы зарубежных аналогов на примере Heritrix, OpenWebSpider и Methanol Web Crawler.
Архитектура обобщенного ядра. Масштабность веб-пространства порождает ряд проблем, влияющих на эффективность работы веб-краулеров любых типов. Анализ известных публикаций [6, 8, 10, 11], в которых затрагиваются проблемы эффективной работы поисковых роботов, показывает, что любой специализированный поисковый робот должен решать следующие основные проблемы:
построение специализированного алгоритма обхода веб-пространства;
обновление информационных веб-ресурсов в общей коллекции документов, собранной веб-краулером;
учет разновидностей форматов веб-ресурсов; организация информационного поиска по скрытому Вебу [11];
минимизация нагрузки на информационный источник;
распараллеливание и масштабирование про-
цесса сбора информационных веб-ресурсов;
минимизация нагрузки на каналы связи в веб-пространстве.
Для их решения разработана и реализована архитектура обобщенного ядра (рис. 1), которая может применяться для создания любых типов веб-краулеров. В основе этой архитектуры лежит краулер-процесс. По структуре краулер-процесс является классом, содержащим текущую информацию о состоянии поискового робота (текущий список проанализированных гиперссылок, содержимое веб-станиц, кэш адресов веб-страниц, список значимых источников информации), а также набор методов для осуществления поиска и обновления информации в индексе. Данные методы позволяют запускать и останавливать процесс поиска.
Под процессом поиска в рамках рассматриваемой архитектуры понимается итеративный процесс, останавливающийся при выполнении заданных условий (например, число пройденных
итераций, количество полученных гиперссылок, сходимость результатов), которые зависят от настроек конфигурации. Каждая итерация данного процесса заключается в последовательном выполнении следующих основных модулей (см. рис. 1).
Многопоточный загрузчик веб-страниц. Данный модуль исполняет роль загрузчика вебстраниц с сервера, на котором они расположены в веб-пространстве. Также он является менеджером безопасности, который контролирует количество потоков, выделяемое для загрузки всех информационных источников в рамках одной итерации, и не обрабатывает веб-ресурсы, время отклика которых превышает заданное. Все параметры менеджера загрузок настраиваемые, по умолчанию число потоков равно 10, а время отклика - 2 с.
Модуль извлечения гиперссылок (URLs extraction), который ищет дочерние элементы из заданного набора веб-страниц. Поиск таких элементов осуществляется путем извлечения всех гиперссылок, находящихся в начальном множе-
Рис. 1. Архитектура обобщенного ядра
стве веб-страниц, и их добавления в очередь гиперссылок. Процесс обработки элементов очереди выполняется с помощью набора параллельных и синхронизированных между собой потоков, которые независимо извлекают ссылки и добавляют результаты обработки в общую коллекцию полученных дочерних веб-страниц.
Модуль синтаксического анализа веб-страниц (HTML parser) - извлекает текст из загруженных веб-страниц и определяет его кодировку.
Нормализация гиперссылок (URLs normalization). После того как из начального множества веб-страниц извлечены все гиперссылки, необходимо отфильтровать их адреса. За данную операцию в обобщенном ядре отвечает модуль фильтрации адресов для веб-страниц. Основная задача такого модуля заключается в приведении адреса каждого веб-ресурса к стандартизированному виду по заданным критериям [12] (например, имя хоста и протокола каждого ресурса должно состоять из символов нижнего регистра или адреса всех страниц должны приводиться к одинаковой канонической форме, т. е. заканчиваться символом «/»). Другими словами, модуль фильтрации отсеивает веб-страницы с некорректными и дублированными адресами, тем самым улучшая производительность работы поискового робота.
Модуль кэширования. Операция извлечения содержимого веб-страниц затрачивает ресурсы системы (интенсивность затрат ресурсов системы зависит от роста числа веб-страниц), что значительным образом влияет на ее производи-
Рис. 2. Связь обобщенного ядра с внешними модулями
тельность. Поэтому была разработана система кэширования, предназначенная для ускорения процесса извлечения гиперссылок с веб-страниц за счет повторного использования ранее извлеченного контента. Хранение контента продолжается до тех пор, пока не превышен допустимый порог памяти компьютера, используемой приложением. Данный порог приложение определяет динамически, исходя из имеющегося объема и требований по использованию ресурсов компьютера, а также производительности. При превышении порога система освобождает память путем удаления из кэша контента веб-страниц, которые реже всего используются.
Коллекция найденных документов. Данный модуль хранит информацию обо всех веб-ресурсах и их гиперссылочных структурах, полученных веб-краулером на каждой итерации краулер-процесса, и предоставляет ее пользователю для дальнейших вебометрических исследований.
Данная архитектура обобщенного ядра предоставляет конфигурируемые настройки интеграции и интерфейсы, использование которых существенно упрощает процесс и минимизирует время добавления в архитектуру новых модулей (рис. 2), для создания потенциальных внешних модулей (новые алгоритм обхода, синтаксический и семантический анализаторы и др.).
Описанная реализация поискового робота является базовым инструментом для вебометриче-ских исследований, поэтому на ее основе могут создаваться веб-краулеры со специализированными алгоритмами обхода Веба.
Архитектурные особенности обобщенного ядра. Перед экспериментом в данных исследованиях проводилась оценка архитектурных возможностей обобщенного ядра и зарубежных аналогов веб-краулеров (Heritrix, OpenWebSpider, Methanol Web Crawler) по наличию следующей функциональности (табл. 1):
возможности многопоточной загрузки вебстраниц;
масштабирования процесса сбора веб-страниц (на программно-аппаратном уровне);
минимизации нагрузки на информационные веб-ресурсы;
минимизации нагрузки на каналы связи; гибкости архитектуры (возможности добавлять новые модули, алгоритмы обхода);
возможности специализированного обновления информационных веб-ресурсов в индексе;
Таблица 1
Сравнение особенностей архитектуры веб-краулеров
Функциональность Heritrix OpenWeb Spider Methanol Web Crawler Обобщенное ядро
Многопоточная загрузка + + + +
Масштабирование процесса сбора веб-ресурсов - - - +
Минимизация нагрузки на веб-ресурсы + + + +
Минимизация нагрузки на каналы связи + - - +
Гибкость архитектуры - - - +
Обновление индекса - - - +
Учет разновидностей форматов веб-ресурсов + + + +
Обработка текста веб-страниц - - - +
Адаптированность к российскому Вебу - - - +
Адаптированность к английскому Вебу + + + +
учета разновидностей форматов веб-ресурсов; обработки текста веб-страниц; приспособленности к российскому сегменту Веба;
приспособленности к англоязычному сегменту Веба.
Оценка архитектурных возможностей показала, что обобщенное ядро и Heritrix имеют гибкие настройки (например, объем скачиваемой информации с одного источника, время доступа к серверу веб-ресурса, количество итераций краулер-процесса и др.), которые при получении и обработке информационных веб-ресурсов легко позволяют контролировать нагрузку на ресурсы и каналы связи (см. табл. 1); веб-краулеры OpenWebSpider и Methanol Web Crawler плохо настраиваются (OpenWebSpider конфигурируется в течение 34 мин, а Methanol Web Crawler - 30 мин (табл. 2, 3)) и при обработке информации источников максимально нагружают каналы связи и используют ресурсы обрабатываемого источника. Вместе с этим зарубежные аналоги плохо адаптированы к российскому Вебу, что подтверждается далее в эксперименте.
Эксперимент. В эксперименте ставилась задача сравнения эффективности работы четырех реализаций веб-краулеров:
• веб-краулер на основе обобщенного ядра с тремя дополнительными модулями - Module_ BDD, Module_MDD и Module_SDD, ориентированные на загрузку большого количества вебстраниц, среднего и малого, соответственно;
• Heritrix (http://crawler.archive.org) [9], имеющий хорошую производительность при обработке большого количества веб-страниц;
• Methanol Web Crawler (http://metha-sys.org), имеющий хорошую производительность при обработке малого количества веб-страниц;
• Open WebSpider (http://www.openwebspider. org), имеющий хорошую производительность при обработке небольшого количества веб-страниц.
Сравнивалась производительность работы и время конфигурирования веб-краулеров на основе обобщенного ядра с зарубежными аналогами на примере загрузки 2000, 300 000 и 500 000 вебстраниц.
Производительность поисковых роботов проверялась в российском и англоязычном сегментах Веба при одинаковом тестовом наборе данных (ЭВМ, ОС, начальное множество ссылок в очереди и др.). В качестве начальных параметров были заданы начальное множество веб-страниц для каждого из сегмента (по 10 веб-страниц), и частота запуска, равная 10.
Рис. 3. Режимы поиска веб-краулера с обобщенным ядром
Результаты эксперимента. В ходе сравнительного анализа производительности веб-краулера на основе обобщенного ядра (с подключенными дополнительными модулями Module_BDD, Module_MDD и Module_SDD) с зарубежными аналогами (Heritrix, OpenWebSpider, Methanol Web Crawler) получены следующие результаты (см. табл. 2, 3).
• Небольшое время добавления внешних модулей (алгоритмы обхода веб-пространства, синтаксические анализаторы, методы обновления индекса и др.) к обобщенному ядру и их конфигурирования (см. табл. 1, 2) по сравнению с зарубежными аналогами, архитектура которых не
предусматривает возможность масштабирования и добавления в нее других модулей, и время настройки в среднем занимает 28 мин.
• Веб-краулер с обобщенным ядром имеет возможность добавления в него специализированных модулей и их адаптации для тематического поиска (рис. 3): классический (рекурсивно обходит все встречающиеся гиперссылки); интересо-ориентированный; ориентированный на популярность; ориентированный на интересы и популярность. В исследованиях [1, 2] проверялось качество поиска и полезность этих модулей, а также их интеграция с обобщенным ядром. В то время как Heritrix, OpenWebSpider и Methanol
Таблица 2
Средняя производительность обработки информации веб-краулерами в англоязычном сегменте веб-пространства и время их настройки
Веб-краулеры Время загрузки 2000 страниц (мин) Время загрузки 300 000 страниц (мин) Время загрузки 500 000 страниц (мин) Время настройки веб-краулера (мин)
Heritrix 1,9 8,0 11,2 20,0
OpenWebSpider 3,0 8,4 13,0 34,0
Methanol 1,9 8,6 14,1 30,0
Обобщенное ядро с Module_BDD модулем - - 9,1 4,0
Обобщенное ядро с Module_MDD модулем - 6,0 - 4,0
Обобщенное ядро с Module_SDD модулем 1,7 - - 4,0
Обобщенное ядро с модулем анализа текста и ссылок 2,0 8,5 11,5 4,0
Таблица 3
Средняя производительность обработки информации веб-краулерами в российском сегменте веб-пространства и время их настройки
Веб-краулеры Время загрузки 2000 страниц (мин) Время загрузки 300 000 страниц (мин) Время загрузки 500 000 страниц (мин) Время настройки веб-краулера (мин)
Heritrix 5,0 12,9 22,3 20,0
OpenWebSpider 5,5 13,0 25,0 34,0
Methanol 4,2 13,5 26,5 30,0
Обобщенное ядро с Module_SDD модулем - - 10,5 4,0
Обобщенное ядро с Module_MDD модулем - 6,4 - 4,0
Обобщенное ядро с Module_SDD модулем 2,0 - - 4,0
Обобщенное ядро с модулем анализа текста и ссылок 3,5 9,0 13,0 4,0
Web Crawler используют только классический режим обхода веб-пространства и не обрабатывают текст источников информации в Вебе, но поддерживают возможность поиска музыкальных, видеофайлов, файлов PDF.
• Веб-краулеры на основе обобщенного ядра с разными модулями загрузки веб-страниц (Module_BDD, Module_MDD и Module_SDD) в классическом режиме (обрабатывая информацию только о ссылках) показали высокую производительность среди зарубежных аналогов (табл. 2, 3) как в российском, так и в зарубежном сегменте Веба. Вместе с тем поисковый робот на основе обобщенного ядра с модулем анализа текста не уступает по производительности зарубежным аналогам, не обрабатывающим текстовую информацию веб-страниц, в англоязычном сегменте Веба, а в российском Вебе зарубежные реализации веб-краулеров сильно уступают в производительности.
• Зарубежные аналоги показали низкую производительность обработки информационных веб-ресурсов в российском сегменте Веба (табл. 2), а 70 % ресурсов из этого сегмента веб-краулеры Heritrix, OpenWebSpider и Methanol Web Crawler
не смогли загрузить и обработать. Данный факт объясняется низкой приспособленностью зарубежных аналогов к российскому Вебу.
• Среди зарубежных аналогов неплохую эффективность загрузки и обработки 2000, 300 000 и 500 000 веб-страниц показал веб-краулер НегЬпх. Его можно использовать как инструмент для поиска (с классическим алгоритмом обхода Веба) разнородной информации и добавления ее в индекс.
Таким образом, из поставленного эксперимента следует, что веб-краулер с обобщенным ядром эффективней собирает и обрабатывает информацию с веб-ресурсов, чем зарубежные аналоги, которые сильно уступают по производительности, гибкости и масштабируемости архитектуры, а также по приспособленности к обработке информации в российском сегменте Веба.
В дальнейшем созданный веб-краулер с обобщенным ядром планируется использовать в прикладных исследованиях по повышению вебометрических рейтингов университетов, научных институтов и других научных организаций.
СПИСОК ЛИТЕРАТУРЫ
1. Блеканов, ИХ. Оценка эффективности методов по- / И.С. Блеканов, Д.С. Бондаренко // Научно-технические иска тематических сообществ в веб-пространстве [Текст] ведомости СПбГПУ -2010. -№ 5 (108). -С. 18-24.
2. Блеканов, И.C. Тематический краулинг на основе алгоритма HITS [Текст] / И.С. Блеканов, Д.С. Бон-даренко // Научно-технические ведомости СПбГПУ. -2010. -№ 3 (101). -С. 111-118.
3. Печников, А.А. Вебометрические исследования Web-сайтов университетов России [Текст] / А.А. Печников // Информационные технологии. -2008. -№ 11. -С. 74-78.
4. Печников, А.А. Разработка инструментов для вебометрических исследований гиперссылок научных сайтов [Текст] / А.А. Печников, Н.Б. Луговая, Ю.В. Чуйко, И.Э. Косинец // Вычислительные технологии. -2009. -Т. 14. -№ 5. -С. 66-78.
5. Печников, А.А. Исследование связности научно-образовательного Веба [Текст] / А.А. Печников, А.В. Чирков, Ю.В. Чуйко // Ученые записки Петрозаводского государственного университета. Естественные и технические науки. -2011. -№ 8 (121). -С. 111-113.
6. Arasu, A. Searching the web [Text] / A. Arasu, J. Cho, H. Garcia-Molina [et al.] // ACM Transactions on Internet Technology. -Aug. 2001. -Vol. 1. -№ 1. -P. 2-43.
7. Bar-Ilan, J. How much information the search engines disclose on links to a web page? A case study of the
«Cybermetrics» home page [Text] / J. Bar-Ilan // Proc. VIII Intern. Conf. on Scientometrics and Informetrics. -2001. -Vol. 1. -P. 63-73.
8. Cho, J. The evolution of the web and implications for an incremental crawler [Text] / J. Cho, H. GarciaMolina // In Proc. of the XXVI Intern. Conf. on Very Large Databases. -CA, USA. -2000. -P. 200-209.
9. Mohr, G. Introduction to Heritrix: an open source archival quality web crawler [Text] / G. Mohr, M. Kimpton, M. Stack [et al.] // Proc. of the 4th International Web Archiving Workshop (IWAW'04). -Bath, UK. -2005. -P. 15.
10. Najork, M. High-Performance Web Crawling [Text] / M. Najork, A. Heydon. -MA, USA: Kluwer Academic Publishers, 2002. -P. 25-45.
11. Raghavan, S. Crawling the Hidden Web [Text] / S. Raghavan, H. Garcia-Molina. -San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2001. -P. 129-138.
12. Sang, Ho Lee. On URL normalization [Text] / Lee Sang Ho, Sung Jin Kim, Seok Hoo Hong // Proc. of the Intern. Conf. on Computational Science and its Applications (ICCSA). -2005. -Vol. 2. -P. 1076-1085.
УДК 681.3
Ю.Н. Торган, Т.В. Зубрилина
использование нереляционного подхода
в распределенной системе баз данных
Резкое увеличение объемов данных привело к появлению новых тенденций в области систем хранения. Одна из популярных тенденций - использование NoSQL баз данных (БД). Названный термин подразумевает под собой ряд подходов, которые реализуют модели БД, имеющие существенные отличия от используемых в традиционных реляционных СУБД.
Для классических реляционных СУБД проблемой является работа с данными большого объема в проектах с высокой нагрузкой. По этим причинам основными принципами NoSQL стали отказ от реляционной модели для учета специфики обрабатываемых данных, а также горизонтальная масштабируемость до сотен и тысяч серверов для обеспечения необходимой скорости работы.
Однако это выявило проблему нереляционных БД: невозможно одновременно выполнить
требования по согласованности данных, доступности системы и устойчивости к разделению. В то же время для решения проблемы скорости работы системы для реально существующей информационной системы (ИС) полное перенесение БД из реляционной СУБД в нереляционную потребовало бы значительных временных и денежных затрат.
Альтернативным вариантом является написание «нереляционной надстройки» над существующей реляционной СУБД с использованием методов нереляционного подхода [2].
Существуют три типовых метода, используемые в нереляционных БД для решения проблемы масштабирования: партиционирование (partitioning), репликация (replication) и шардинг (sharding).
Партиционирование представляет собой раз-