Сервер - статьи

       

Подготовка данных


На этом этапе могут выполняться некоторые простые интеграционные задачи, например, совмещение нескольких журналов и отсев ненужных для решаемой задачи данных. Найденные ассоциации полезны только в том случае, если данные в журнале показывают точную картину доступа пользователей к сайту, иногда удаление записей о файлах с «неважными» суффиксами (jpg, gif, map и др.) может существенно очистить записи. Во многих случаях требуется также очистить записи от неудачных запросов (например, оставить только строки, в которых ответ сервера имеет код 200). Обычно также требуется отсекать запросы со стороны различных автоматических агентов (в частности, это агенты поисковых систем, служащие для создания индексов страниц и слов во внутренних базах данных, автоматические верификаторы ссылок и инструментарий для управления сайтом).

Сходная, но гораздо более сложная проблема состоит в определении обращений, которые не заносятся в журнал, механизмы локального кэша или прокси-сервера искажают картину перемещений пользователей в Internet. Сейчас для преодоления этой проблемы используется метод cache bursting, однако он полностью нивелирует преимущества в скорости от использования локального кэша. Методы борьбы с этой проблемой используют топологию сайта и ссылочные журналы, вкупе с временной информацией для обнаружения пропущенных ссылок. Более-менее точную картину перемещений пользователя можно составить, только если пропуски страниц были единичными (например, если клиент использовал в своем браузере переход по журналу назад), в таком случае можно дополнять путь пользователя; эта проблема получила название «заполнение пути» (path completion).

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


A. Один IP-адрес/много пользователей. Очень распространенная ситуация, возникает при использовании провайдером прокси-сервера, кроме этого, когда любому пользователю при установке связи с провайдером выделяется случайный адрес (очень характерно при связи по телефонной линии), два разных пользователя могут получить одинаковый адрес.

B. Много IP-адресов/один пользователь. Также весьма распространенный случай, возникает при динамическом выделении адресов провайдером. В некоторых случаях (широко известный пример — America Online) новый адрес выделяется пользователю при каждом новом обращении к странице. Для случаев A или B можно выделять различных пользователей, основываясь на типе браузера, и отслеживать путь пользователя за один сеанс, находя для каждого документа вызвавший его, и таким образом выделять отдельные сеансы, от входа на сайт до страницы, с которой не было перехода внутри сайта.

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

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

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

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


Вторым широко используемым способом является поддержание «per session cookies» (на стороне пользователя хранятся данные, только от первого визита на страницу до выключения браузера; анализ этих данных позволяет отличить одно посещение пользователя от другого).

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

A. Идентификация транзакций с учетом продолжительности посещений. Данный метод основывается на том, что время, проведенное пользователем на странице, зависит от важности этой страницы для пользователя. (Статистические данные показывают, что количество страниц, где пользователь провел определенное время, обратно экспоненциально зависит от этого времени.) Таким образом, если выбрать некоторую границу времени, то можно отделить страницы, которые интересны пользователю от остальных. Этот метод предлагает формулу для вычисления такого интервала, в зависимости от распределения посещений страниц с различными временными интервалами. Концом транзакции служит первая из страниц, время посещения которой превысило выбранный порог, а началом — первая страница после конца предыдущей.

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

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

Содержание раздела