Архитектура - achugr/GoodsReview GitHub Wiki

архитектор

Сборщик

  • Граббер - сбор нужной информации со страниц сайтов, ее структуризация

Обработчик

  • Семантический и лексический анализ - выделение в комментариях ключевых слов, определение смыслового значения комментария
  • Кластеризация - разбиение комментариев по группам, в зависимости от их смысловой нагрузки

БД + контроллер

  • Контроллер базы данных
  • Основная база данных
  • Временная база данных

UI

  • Обработчик запросов - контроллер, отвечающий за поступающие от пользователя запросы, например "получить комментарии о товаре", добавить комментарий о товаре
  • UI - рабочая среда пользователя на сайте сервиса
  • Виджет - рабочая среда пользователя на стороннем сайте

Используемые технологии:

  • Поисковик — Lycene (В альфа-версии сбор данных будет осуществляться с помощью WebHarvest).
  • БД и индексаторы на MySQL.
  • Регулярные выражения, как механизм обработки контента
  • Фреймворк Java Spring

Сценарий пользователя

userScen

Главная страница со строкой поиска - основная страница сервиса, с которой пользователь может начать работу. Она взаимодействует с другими компонентами UI посредством (?)

  • Поисковый запрос - после введения запроса пользователю открывается страница с результатом поиска

Страница с результатом поиска - страница сервиса, предоставляющая пользователю информацию о товаре. Варианты развития событий:

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

Виджет на стороннем сайте. Варианты развития событий:

  • Пользователь оценил характеристику товара, которую предоставил ему виджет и хочет осуществить более детальный поиск. Добро пожаловать на наш ресурс!

Потоки данных

  • Передача информации между серверными блоками проекта
  • Передача информации между серверным блоком и виджетом (для автообновления последнего)
  • Поток пользовательских запросов

Параметры нагрузки

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

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

Этапы развития системы:

  • Альфа-версия: создание рабочего прототипа системы, некоторые компоненты могут быть реализованы неполноценно и не очень эффективно, но должны работать. Цель в том, чтобы была создана команда; все участники проекта хорошо ознакомились с используемыми технологиями. В альфа-версии будет хорошо налажена связь между всеми компонентами системы, каждый компонент системы будет расширяем.
  • Бета-версия: мы будем дополнять все компоненты альфа-версии, делая их работу все более эффективной и быстрой. Каждый блок будет развиваться как отдельный элемент большой системы. Тут как раз будет огромное пространство для применения на практике полученных теоретических знаний data mining.

Точки отказа

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