Файл - YouConf

advertisement
УДК 004.42
С.А. ШАЛИМОВ, С.В. ТЕРЕНТЬЕВ
S.A. SHALIMOV, S.V. TERENTEV
Разработка программного средства контроля изменений информационных
ресурсов сети Интернет
Development of software to monitor changes in online information resources
Статья посвящена разработке программного средства контроля изменений информационных
ресурсов сети Интернет. Результатом работы является система, реализующая контроль изменений
Интернет-ресурсов, оценку важности этих изменений с точки зрения конечного пользователя, а также
рассылку необходимых уведомлений подписчикам.
Ключевые слова: контроль изменений, мониторинг информационных ресурсов, программное средство.
This paper is devoted to development of software to control changes in online information resources. The
result of this work is a system that controls changes in Internet resources, assesses the importance of these changes to
the end user, and sends necessary notifications to subscribers.
Keywords: change control, monitoring information resources, software.
Потребность в контроле изменений на информационных ресурсах в последнее время
растет вместе с развитием информационных технологий. С каждым днем все больше
информации человек получает из сети Интернет. Во многих случаях очень важно именно
своевременное получение достоверной информации.
По частоте обновления информационные ресурсы можно разделить на периодически
обновляющиеся и не периодически обновляющиеся. На тех ресурсах, которые обновляются
периодически, пользователь может отслеживать изменения самостоятельно. На ресурсах с
непериодическим обновлением отслеживать изменения намного сложнее.
В качестве наиболее распространенной технологии оповещения может быть
упомянута RSS-лента, в функции которой входит сбор наиболее интересных обновлений с
точки зрения администрации ресурса [1]. Однако уже опубликованная новость может быть
существенно отредактирована и в таком случае имеющаяся на сайте RSS-лента не сможет
оповестить пользователя о произошедших изменениях. Также на большинстве
информационных ресурсов такая лента вообще отсутствует, соответственно, в таком случае
пользователю придется вручную проверять наличие изменений на страницах.
В связи с вышесказанным, видится актуальной разработка программного средства для
контроля изменений содержания информационных ресурсов на основе выделения значимого
контента, которое будет анализировать произошедшие изменения и в случае важности этих
изменений, уведомлять об этом пользователя.
В ходе анализа предметной области был выделен ряд требований, предъявляемых к
разрабатываемой системе, а именно:
– универсальность основного алгоритма – способность системы отслеживать
изменения как можно большего числа информационных ресурсов, вне зависимости от их
структуры и содержания, что, в свою очередь, позволит большему числу пользователей
использовать ее для своих нужд;
– интуитивно-понятный веб-интерфейс разрабатываемой системы – простота и
удобство ее освоения и использования даже для начинающего пользователя;
– возможность удобной регистрации пользователей в системе;
– гибкость контроля изменений контента информационных ресурсов – возможность
индивидуальной настройки чувствительности контроля изменений каждым пользователем
для каждого выбранного им ресурса;
– возможность своевременного оповещения пользователей о произошедших
изменения на выбранных ими ресурсах.
В ходе выполнения работы был предложен общий подход к реализации системы
контроля изменений контента информационного ресурса. Ключевым элементом
предлагаемого подхода является реализация операции хеширования (вычисления хешфункции) на этапе сравнения предыдущего и текущего содержимого информационного
ресурса. Хеш-функцией называется алгоритм, конвертирующий строку произвольной длины
(сообщение) в битовую строку фиксированной длины, называемой хеш-кодом, проверочной
суммой или цифровым отпечатком [2].
Работу по контролю изменений контента информационного ресурса можно
представить в виде определенной последовательности действий (рисунок 1).
1. Получение хеш-функции всего контента страницы и последующее ее сравнение с
сохраненной ранее.
2. В случае отрицательного результата сравнения (значения хеш-функций не
совпадают), выделение существенного контента страницы без служебных конструкций.
3. Получение хеш-функции существенного контента страницы и последующее ее
сравнение с сохраненной ранее.
4. В случае отрицательного результата сравнения, вычисление количества изменений,
произошедших на странице с момента последней проверки.
5. В случае, если количество изменений превысило порог чувствительности системы,
запуск подсистемы рассылки уведомлений, которая сообщит подписчику о произошедших
изменениях на интересующем его ресурсе сети Интернет.
Ниже подробнее рассмотрен каждый из перечисленных выше этапов.
1. Получение хеш-функции всего контента страницы. Первоначальным этапом
сравнения контента является сравнение хеш-функций последней полной версии страницы
(вместе с html-кодом) и текущего состояния. Это необходимо для того, чтобы не выполнять
ресурсоемкое выделение важного контента, проверку его на наличие изменений, очистку от
ненужных служебных конструкций, если информационный ресурс не подвергся изменениям.
В данной работе использован алгоритм хеширования MD5, поскольку он является
наиболее распространенным в настоящее время и лучше всего подходит для ее выполнения [3].
2. Выделение существенного контента страницы. В случае неравенства хешфункций полного контента после их обновления в базе данных (БД) производится выделение
значимого контента путем очистки его от html-тегов и служебных конструкций. На этом
этапе выполняется очистка контента от ненужных тегов и конструкций, например таких как:
<html> – </html>, <table> – </table>, <div> – </div>, <!DOCTYPE>, <!-- -->, <h1>, <h2>, <h3>,
<h4>, <h5>, <h6>, <link> и многие другие. Все теги удаляются вместе с вложенными в них,
их параметрами и парами, если они есть. Некоторые теги, такие как <head> – </head>, <form>
– </form>, удаляются вместе со всем их содержимым, так как оно носит только технический
характер и не несет в себе информации, важной для контроля изменений контента.
В данной работе рассматриваются только информационные ресурсы в формате
HTML. Имеется в виду именно структура контента ресурса, а не расширение его страниц.
Для данной формы представления канонической является Document Object Model (DOM), в
соответствии с которой документ представляется в виде иерархии объектов. Часть из этих
объектов, которые могут составлять целые поддеревья, представляют собой элементы
оформления и интерфейса пользователя, которые не представляют интереса. Другие объекты
или иерархии объектов как раз являются значимым информационным содержимым
документа, они должны быть извлечены и сверены с хранимой копией.
Документы HTML, представленные на сайтах сети Интернет, могут изменяться как по
форме, так и по содержанию. Современные реалии таковы, что форма документа изменяется
значительно реже, чем содержание. Тем не менее, изменения формы должны отслеживаться,
поскольку от них зависит, какие объекты DOM [4] информационного ресурса являются
значимыми. Таким образом, необходимо различать следующие характеристики ресурса:
– основные технические и стилистические формы документа;
– части документа, содержащие существенную информацию.
Начало
Получить хэш
контента страницы
Полученный хэш
совпадает с
имеющимся в БД?
да
нет
Обновить в БД хэш полного
контента страницы
Выделить значимый контент
страницы и получить его хэш
Хэш значимого
контента совпадает с
имеющимся в БД?
да
нет
Обновить хэш значимого
контента в БД и вычислить
кол-во изменений
Был ли превышен
заданный порог
чувствительности?
да
Уведомить подписчиков
нет
Обновить служебные файлы и
записи в БД
Конец
Рисунок 1 - Общий подход к реализации системы контроля изменений контента
информационного ресурса
Форма документа, как и сам документ, описывается посредством HTML.
Данные, считающиеся важными, могут иметь самую различную организацию. В
простейшем случае на странице ресурса требуется отслеживать лишь определенный
фрагмент. Однако в общем случае значимых логических частей может быть несколько, при
этом каждая логическая часть может представлять собой множество однотипных элементов.
3. Получение хеш-функции существенного контента страницы. На данном этапе
вычисляется хеш-функция значимого контента и сравнивается с сохраненным в БД
значением. Если эти хеш-функции оказываются равны, значит, изменения произошли не в
значимой части контента, а в служебных конструкциях, соответственно, это не имеет
никакого существенного значения для конечного пользователя. В данном случае не
производится никаких операций.
Если же сохраненная в БД и полученная текущая хеш-функции значимого контента не
равны, то это сигнал к тому, что сам контент был изменен. В этом случае происходит
обновление значения хеш-функции в БД, а также вычисляется количество изменений на
отслеживаемой странице информационного ресурса.
4. Вычисление количества изменений. На данном этапе необходимо определить
количество произошедших изменений. Используя определенную метрику сравнения
последней сохраненной копии отслеживаемого ресурса и текущего его состояния, можно
получить количественную оценку изменений, которая в дальнейшем будет использоваться
для определения важности изменений на основе выбранного пользователем уровня
чувствительности. В ходе выполнения работы были исследованы различные алгоритмы
вычисления количественной оценки степени изменения информационного ресурса. В
частности, был рассмотрен алгоритм, основанный на так называемой метрике Левенштейна
[5]. Однако данный алгоритм показал неудовлетворительные результаты для случаев, когда
изменения происходили в начале текстового контента. В связи с этим было принято решение
использовать алгоритм, основанный на сравнении количества вхождений каждого символа
таблицы ASCII в прошлом и текущем состоянии существенного контента ресурса. Общая
схема данного алгоритма представлена на рисунке 2.
Рисунок 2 – Алгоритм вычисления количественной оценки степени изменения
информационного ресурса
Основная идея алгоритма заключается в том, что при первоначальной подписке
пользователя на отслеживание изменений информационного ресурса сети Интернет
происходит подсчет количества каждого символа в контенте страницы в соответствии с
таблицей ASCII-символов и расчет фактических пороговых границ чувствительности,
установленной пользователем в настройках, на основании текущего содержания контента.
При каждой следующей проверке данного информационного ресурса происходит подсчет
количества символов значимого контента и посимвольно вычисляется разница между
сохраненным и текущим значениями. После этого производится суммирование всех
полученных на предыдущем этапе значений, и эта сумма сравнивается с пороговыми
значениями чувствительности, на основе чего принимается решение об отправке
уведомления пользователям. Также при каждой проверке после принятия решения об
отправке уведомления происходит перерасчет фактических границ пороговой
чувствительности на основе измененного контента, а также перезапись информации о
посимвольном количественном составе контента отслеживаемого информационного ресурса.
5. Запуск подсистемы рассылки уведомлений. Если произошедшие изменения
оказались существенными для пользователя, посылается соответствующий сигнал
подсистеме рассылки уведомлений, которая, в свою очередь, используя контактные данные,
указанные пользователем при регистрации, сообщает подписчику о произошедших
изменениях на интересующем его информационном ресурсе сети Интернет.
Вне зависимости от того, был превышен порог или нет, в конце выполняется
обновление всех служебных файлов, а также осуществляются соответствующие записи в БД.
После определения общей стратегии реализации функционала программного
средства, необходимо осуществить непосредственно проектирование системы. Заметим, что
разрабатываемая система должна обеспечивать выполнение следующих основных функций:
просмотр заданного множества информационных ресурсов и выявление значимых
изменений; организация подписки и отписки пользователей на просмотр определенных
информационных ресурсов и изменение дополнительных настроек; организация
уведомления подписанных пользователей об изменениях информационного ресурса по
различным телекоммуникационным каналам.
Представленные требования и определяют основные модули системы: модуль-агент,
модуль взаимодействия с пользователем и модуль рассылки уведомлений об изменениях.
Была разработана общая архитектура системы, которая представлена на рисунке 3.
Графический
интерфейс
пользователя
Подсистема
управления
пользователями
БД
Подсистема
рассылки
уведомлений
Служебные
файлы
Агент 1
…
Агент N
Среда исполнения
Рисунок 3 – Общая архитектура системы
Модуль-агент определяет необходимость разработки общего механизма контроля
изменений, который может быть легко адаптирован к специфике конкретного сайта.
Модуль взаимодействия с пользователем определяет необходимость разработки
подсистемы управления пользователями, в задачи которой входит регистрация
пользователей и их авторизация на сервере, оформление подписок и отписок на
отслеживание изменений каких-либо ресурсов, а также возможность отправки сообщений об
ошибках администратору системы. Необходимость обеспечения взаимодействия ИС с
пользователями, в свою очередь, требует наличие пользовательского интерфейса. Учитывая
специфику решаемой задачи, адекватным решением в данном случае представляется
разработка web-интерфейса и организация взаимодействия между пользователем и
инструментальными средствами посредством протокола HTTP.
Модуль рассылки уведомлений также требует разработки специализированной
подсистемы. Агенты при обнаружении существенных изменений обращаются к данной
подсистеме, указывая измененный ресурс и сами изменения, подсистема уведомления, в
свою очередь, создает сообщение-уведомление и отправляет его подписчикам измененного
ресурса через выбранный телекоммуникационный канал. В роли телекоммуникационного
канала могут выступать электронная почта, социальные сети, сотовые сети и т.п. В данной
работе в качестве базового канала рассылки уведомлений принята электронная почта.
На рисунке 3 можно видеть, что агенты имеют средства взаимодействия с БД. Таким
образом, каждый агент активно использует данные не только из служебных файлов, но и
напрямую из БД. В его задачи входит отслеживание обновлений, а также информирование
подсистемы рассылки уведомлений о необходимости сообщить пользователям о
произошедших изменениях.
Описанное программное средство было реализовано с использованием языка
программирования PHP, СУБД MySQL 5, а также языка гипертекстовой разметки HTML.
Таким образом, разработка описанного программного средства позволяет решить
прикладную задачу, с которой сталкиваются многие пользователи сети Интернет, - задачу
своевременного получения информации об изменениях информационных ресурсов. Этим
обуславливается практическая значимость описанной работы.
Шалимов Сергей Александрович
Государственный университет – учебно-научно-производственный комплекс, г. Орёл
Магистрант кафедры «Информационные системы»
Тел.: +7(953) 470-48-51
E-mail: ssa.999@mail.ru
Терентьев Сергей Викторович
Государственный университет – учебно-научно-производственный комплекс, г. Орёл
К.э.н., доцент кафедры «Информационные системы»
Тел.: +7(910) 307-46-53
E-mail: terser76@inbox.ru
СПИСОК ЛИТЕРАТУРЫ
1. Краткое руководство по формированию RSS-лент [Электронный ресурс]: – Режим
доступа: http://www.opennet.ru/docs/RUS/rss_naklon/
2. Мир защиты информации [Электронный ресурс]: – Режим доступа:
http://infoch.info/view_lesson.php?id=37
3. PHP, MySQL и другие веб-технологии [Электронный ресурс]: – Форум по
программированию. – Режим доступа: http://www.php.su/md5/
4. DOM: работа с HTML-страницей [Электронный ресурс]: – Режим доступа:
http://javascript.ru/tutorial/dom
5. Веб-разработка
[Электронный
ресурс]:
–
Режим
доступа:
http://dayte2.com/levenshtein
Download