Корпоративные Web-сайты представляют собой, как правило, глобальный канал мгновенного взаимодействия поставщика и заказчика, однако всеобщая усредненность сайтов не позволяет в полной мере реализовать потенциал, предоставляемый возможностью достучаться по Сети до каждого. Включение интеллектуальных аналитических средств с активной персонификацией информационного наполнения способно вызвать революцию в электронном бизнесе. В статье рассказывается о системе WebAnalyst — открытой платформе создания систем интеллектуальной поддержки бизнеса.
Внедрение технологий, основанных на интеллектуальных аналитических средствах, приведет к увеличению ценности каждого посетителя для поставщика информации и к более эффективному использованию ресурсов сайта. Создание таких технологий стало возможным благодаря достижениям в области раскопок данных (data mining), хранилищ данных (data warehouse) и генерации информационного наполнения.
WebAnalyst, разработанный российской компанией «Мегапьютер Интеллидженс» — это корпоративный аналитический сервер, предоставляющий интегрированную платформу для хранения, обработки информации, работы с Web-данными и решения задач электронного бизнеса. WebAnalyst — масштабируемый сервер приложений с открытой архитектурой, автоматизирующий сбор информации, ее преобразование, анализ и генерацию персонализированного информационного наполнения для пользователей (рис. 1). Клиентское приложение WebAnalyst Workplace предоставляет средства для визуального проектирования.
WebAnalyst может быть полезен при решении следующих задач:
- регистрации взаимодействия посетителя с Web-сайтом;
- преобразовании и хранении аналитической информации;
- использовании собранных данных для изучения интересов посетителя и его предпочтений;
- анализе эффективности ресурсов сайта и его архитектуры;
- составлении отчетов для руководства;
- использовании полученной информации для персонифицированного диалога с каждым посетителем.
В качестве «сырья» для своей работы WebAnalyst может использовать информационные потоки от Web-серверов; базы данных информационного наполнения; базы данных клиентов, продуктов и транзакций; накопленные регистрационные файлы Web-серверов; другие внешние источники данных.
Для каждой организации можно выделить следующие группы потенциальных пользователей WebAnalyst: Web-мастера и администраторы баз данных, аналитики, менеджеры, сотрудники отдела маркетинга, посетители сайта.
Web-мастера и администраторы баз данных. Автоматическая и настраиваемая регистрация различных данных о поведении посетителей избавляет администраторов от необходимости постоянно выполнять процедуры импорта регистрационных файлов. Для Web-мастеров будут полезны инструменты слияния в единое хранилище Web-данных и данных из других источников. Имеются также средства автоматической генерации информационного наполнения на основе результатов анализа и моделирования.
Аналитики. Доступны стандартные средства доступа к содержимому различных информационных каналов, арсенал инструментов анализа данных, визуальная разработка сложных аналитических процедур, настраиваемые отчеты используются аналитиками для подготовки информации руководящему звену компании.
Менеджеры и сотрудники отдела маркетинга. Производительность разработанного информационного наполнения оптимизируется, ценность каждого посетителя и каждого визита повышается. Средства, основанные на интеллектуальном рекламном «таргетинге», наличие отчетов о производительности сайта повышают привлекательность ресурса для рекламодателей.
Посетители Web-сайта. Становится возможной персонификация сайта.
Основные концепции WebAnalyst
Ядром системы является WebAnalyst Server, который берет на себя решение всех задач, связанных с управлением, с обработкой запросов клиентских приложений, со сбором, обработкой и анализом данных и генерации информационного наполнения. Клиентскими приложениями для WebAnalyst являются браузеры, WebAnalyst Workplace и другие серверы WebAnalyst. Сервер WebAnalyst — пассивный компонент, который обрабатывает запросы клиентов, формирует и возвращает результаты, а также выполняет различные задачи по системному расписанию. Модульная архитектура сервера WebAnalyst содержит встроенный механизм лицензирования компонентов, при помощи которого можно получить различные конфигурации системы.
WebAnalyst хранит все сущности, с которыми работает, в единой базе данных, называемой UDB (Unified Target Database). На сегодняшний день WebAnalyst оперирует с сущностями трех видов:
- субъекты — данные о каждом посетителе сайта или некоей сущности, которая послала запрос к серверу WebAnalyst и ожидает от сервера ответа;
- объекты данных — данные, запрошенные субъектом и обработанные каналом передачи данных (например, ресурсы сайта);
- исполняемые объекты — аналитические и управляющие процедуры, все результаты, полученные при их выполнении, а также программы (например, компилированный скрипт на языке WebAnalyst).
Кроме того, UDB хранит информацию о пользователях системы, о ресурсах, о сеансе, метаданные, а также любые другие данные, собранные из внешних источников и имеющие отношение к анализу (например, результаты аналитических процедур, в том числе, и проекты PolyAnalyst [1]).
WebAnalyst имеет модульную структуру, отдельные компоненты которого — обработчики каналов передачи данных — ответственны за работу соответствующих каналов. Каждому зарегистрированному обработчику канала соответствует программный код в динамической библиотеке. Обработчик канала решает следующие задачи:
- контролирует соответствующий канал передачи данных (например, HTTP-порт);
- анализирует весь трафик данных в канале (запросы и ответы);
- профилирует данные (т.е. выделяет значимые фрагменты информации);
- «обогащает» собранную информацию внешними данными и сохраняет полученные профили в UDB;
- модифицирует содержимое канала (персонализирует ответы).
Текущая версия программного обеспечения WebAnalyst содержит единственный обработчик канала — для HTTP-порта; обработчики для других каналов, таких как SMTP и NNTP, разрабатываются.
Виртуальная машина (VM) исполняет код объектов, написанных на специально созданном для WebAnalyst и адаптированном для визуального проектирования объектном языке WebAnalyst Script Language (WASL). Объекты WASL инкапсулируют код и данные. Они могут содержать другие объекты, могут быть созданы из динамических библиотек, текстовых WASL-файлов или из бинарных данных, хранящихся в UDB. Эти объекты могут сохранять в UDB свой откомпилированный код и данные результатов. Их можно вызывать из обработчиков каналов, из WebAnalyst Workplace (см. ниже) или из системного расписания; они допускают повторное использование и могут быть вызваны из новых объектов.
Пополняемая библиотека встроенных WASL-объектов решает самые разнообразные задачи. Встроенные WASL-объекты написаны на языке программирования C++, что делает их изначально оптимизированными по времени исполнения. Пользователи WebAnalyst могут создавать свои объекты, используя среду визуального проектирования WebAnalyst Workplace. Новые WASL-объекты создаются в этой среде путем перетаскивания объектов (действий) на рабочую область, связывания объектов однонаправленными стрелками для формирования потока управления и установкой параметров действий и связей. Используя WebAnalyst Workplace, можно создавать сложные процедуры пакетной обработки данных, генераторы информационного наполнения, различные системные скрипты. Кроме этого, можно расширять библиотеку, разрабатывая COM-объекты на любом подходящем для этого инструментарии, которые также трактуются виртуальной машиной как WASL-объекты.
WebAnalyst изначально задумывался как универсальная платформа для электронного бизнеса и для работы с приложениями, ориентированными на оперирование данными больших объемов. Как следствие, одной из важнейших концепций, заложенных в архитектуру WebAnalyst, является масштабируемость. Из нескольких серверов WebAnalyst можно построить сложную структуру, в которой одни серверы будут заниматься накоплением данных и профилированием, другие — решать автономные задачи предобработки данных и анализа, а третьи — генерировать информационное наполнение. Масштабируемость системы определяется в первую очередь тем, что все входящие в нее серверы WebAnalyst построены по одной архитектуре и равнозначны. Только сервер WebAnalyst Transaction Manager имеет отличное от других предназначение — он единственный подключен к UDB. Этот сервер обрабатывает SQL-запросы к базам данных UDB других серверов и возвращает результаты. Такое решение облегчает синхронизацию остальных серверов WebAnalyst.
Каждый сервер WebAnalyst может запускать выполнение WASL-объектов на других серверах и имеет свою собственную конфигурацию, решая свой класс задач. Все эти особенности приводят к тому, что WebAnalyst может работать в масштабируемой распределенной среде.
WebAnalyst — сложная многопользовательская система, в которой группы пользователей решают различные задачи и должны иметь различные права доступа к объектам системы. Сервер WebAnalyst постоянно отвечает на запросы посетителей Web-ресурсов; выполнение любого объекта можно инициировать простым вводом адреса в строке браузера. В UDB хранятся идентификационные данные пользователей и их права на каждый WASL-объект. WebAnalyst предоставляет в том числе и уровень безопасности, поддерживаемый протоколом HTTP — имя пользователя и пароль запрашиваются в стандартном диалоге идентификации браузера.
Архитектура сервера
Сервер WebAnalyst состоит из менеджера транзакций (TM), менеджера каналов передачи данных (CM) и менеджера WASL-объектов (рис. 2).
Рис. 2. Архитектура WebAnalyst |
В вычислительной среде с несколькими серверами WebAnalyst менеджер транзакций играет роль выделенного сервера, осуществляющего взаимодействие остальных серверов WebAnalyst с UDB. Менеджер транзакций включен в каждый сервер WebAnalyst как один из модулей, координирующий работу остальных модулей с базой данных. Необходимость в TM в системе обуславливается характерной особенностью целевой базы данных — ее минимальной ссылочной целостностью. В настоящее время менеджер приложений использует в своей реализации интерфейсы OLE DB для работы с целевой и внешними базами данных.
Целевая база данных WebAnalyst может быть построена на платформе практически любой СУБД. Единственными условиями являются поддержка стандарта ANSI-92 и наличие бинарных объектов BLOB. Большая часть ссылочной целостности UDB поддерживается непосредственно через TM.
WA хранит данные в двух форматах — реляционном и бинарном. Реляционные данные используются в часто используемых, критических по времени выполнения фрагментах программы — при помощи операторов SELECT языка SQL. Примерами таких данных являются данные о сеансах (потоки «кликов»), права пользователей и иерархии объектов. Двоичное представление используется для хранения нереляционных и неструктурированных данных. Бинарные данные поделены на две группы: данные, извлеченные из канала (профили) и WASL-объекты. Менеджер транзакций предоставляет специальный способ доступа к элементам профилей — объектный вариант SELECT.
При старте сервер WebAnalyst загружает зарегистрированные в конфигурации компоненты обработки каналов передачи данных (CP — channel processor). После старта CP начинает «прослушивать» указанный в конфигурации порт (обычно с номером 80) и при получении нового запроса производит следующие действия:
- Идентифицирует отправителя запроса (посетителя) по записи cookie.
- Профилирует http-запрос (извлекает полезную информацию, например, данные форм).
- Пересылает запрос Web-серверу и получает от него ответ (ресурс).
- Профилирует ресурс.
- Модифицирует профиль посетителя в соответствии с профилем ресурса.
- Персонализирует ресурс и возвращает его посетителю.
Шаги 2, 4, 5 и 6 выполняются модулями расширения (plug-in), представляющими собой динамические библиотеки, содержащие специально оптимизированный по времени выполнения код обработки данных и персонификации (или простой генерации) информационного наполнения. Сервер WebAnalyst автоматически определяет набор выполняемых модулей по типу запроса и ресурса.
WASL-объекты могут быть созданы тремя способами:
- визуально при помощи WebAnalyst Workplace с последующим сохранением в текстовом файле или в базе данных в откомпилированном виде;
- с помощью текстового редактора, используя синтаксис WASL, с сохранением в текстовом файле;
- путем создания программы на языке Visual C++ и компиляции в динамическую библиотеку DLL.
Каждый WASL-объект обладает программным интерфейсом, состоящим из следующих частей:
- свойства, т.е. постоянные сущности, которые могут сохранять свое значение в UDB после выполнения кода объекта; их можно читать и модифицировать; это могут быть числа, текст, дата/время и специальная информация, понимаемая отдельными WASL-объектами;
- методы (точки входа), которые можно выполнить, передав им соответствующих их определению набор аргументов;
- метаданные, используемые средой WebAnalyst Workplace.
Созданные пользователем WASL-объекты также содержат список команд (тело объекта) и агрегированные WASL-объекты, на которых ссылаются команды из списка. Каждая команда представляет собой параметризированный вызов метода какого-либо объекта.
В WebAnalyst предусмотрен специальный WASL-объект System. Методы этого объекта отображаются на ключевые слова языка WASL (IF, GOTO, SPLIT, SYNC, SET, SLEEP, SCHEDULE) и управляют потоком управления при исполнении кода объекта.
WASL-объекты, написанные на языке программирования C++, могут иметь сложную логику, а также содержать в себе двоичные данные, которые сохраняются в базе данных. Создание новых объектов — наиболее продвинутый путь расширения возможностей WebAnalyst алгоритмами, предназначенными для решения сложных и критичных по времени обработки задач.
WebAnalyst содержит поставляемый вместе с системой пополняемый набор объектов, предназначенных для решения разнообразных задач: работа с базами данных; аналитика; обработка регистрационных файлов; работа с различными серверами (в том числе, HTTP, SMTP, FTP); прочие системные объекты, функциональная логика которых наличествует в развитых системах программирования. Каждый объект может быть использован аналитиком или разработчиком для построения новых объектов.
Примеры использования WebAnalyst
Наиболее традиционный способ применения WebAnalyst — это аналитический сервер внутри организации (рис. 1). С помощью сервера WebAnalyst и клиентского приложения WebAnalyst Workplace аналитики могут разрабатывать сложные цепочки исследований, включающие в себя доступ к внешним базам данных, процедуры обработки и анализа данных и помещения результатов во внешние таблицы. Созданные алгоритмы могут быть выполнены и сохранены вместе со своими результатами в единой базе данных WebAnalyst.
Второй способ, который и дал фактически название этому программному продукту, заключается в установке WebAnalyst в организации в качестве HTTP-прокси-сервера. В данном исполнении WebAnalyst собирает из HTTP-трафика всю значимую информацию, преобразует и сохраняет ее в базе данных. Все аналитические возможности WebAnalyst в точности такие же, как и в первом способе. В дополнение к этому, WebAnalyst может периодически загружать в свою базу данных информацию из лог-файлов, накопленных за определенный период Web-сервером. Такой импорт может быть сделан для первичного наполнения базы данных WebAnalyst. Основное различие между первым и вторым способом использования WebAnalyst заключается в активизации канала обработки HTTP-трафика.
Третья, и наиболее совершенная конфигурация WebAnalyst — набор серверов WebAnalyst разной функциональности, подключенных к единой базе данных посредством выделенного сервера — менеджера транзакций. В данном случае вычислительная нагрузка — аналитическая обработка данных, профилирование ресурсов и посетителей, генерация информационного наполнения — распределяется между несколькими серверами WebAnalyst, образующими вычислительный кластер.
WebAnalyst Workplace
WebAnalyst Workplace — это интегрированная среда визуальной разработки, предназначенная для автоматизации обработки хранилищ данных, аналитической обработки и создания пользовательских объектов: генераторов информационного наполнения, управляющих и конфигурационных скриптов и т.п. WebAnalyst Workplace обладает традиционным графическим интерфейсом, который наследует некоторые детали интерфейса от PolyAnalyst.
Интерфейс WebAnalyst Workplace содержит панель иерархии объектов пользователей, панель инспектора объектов, панель журнала, окно текущих выполняемых процессов и две палитры инструментов. Окна Workplace содержат код объектов (модели) и результаты. Пользователь может буксировать объекты из панели иерархии на рабочее поле модели и соединять элементы стрелками, указывая потоки исполнения. Каждый элемент соответствует параметризированному вызову метода какого-либо объекта. При помощи инспектора объектов пользователь может изменять информацию об объекте, его элементах, а также связанные с ними метаданные.
Литература
[1] Михаил Киселев, Евгений Соломатин. Средства добычи знаний в бизнесе и финансах. «Открытые системы», 1997, № 4
Юрий Слынько (yslynko@megaputer.ru), Сергей Арсеньев (sarseniev@megaputer.ru) — сотрудники компании «Мегапьютер Интеллидженс» (Москва).