Lan-Crawler Bachlor RU

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Lan-Crawler Bachlor RU - Presentation Transcript

    1. Система информационного поиска для локальных компьютерных сетей СПбГПУ , 200 8 Докладчик : Садаков Дмитрий (6084/4) Руководитель к.т.н. Амосов В.В.
    2. Актуальность проблемы
      • Рост числа локальных компьютерных сетей
        • Объединение домашних локальных сетей
        • ЛВС общежитий и организаций, региональные сети
      • Коллекции файлов
        • Дистрибутивы программ
        • Медиа-файлы: видео , фильмы, музыка
        • Большая общая ёмкость информационного пространства
      • Неэффективность существующих поисковых систем для ЛВС по сравнению с поиском в сети Интернет
        • В интернете: Google, категории файлов, описания фильмов
      • Сравнение скоростей передачи данных
        • Интернет-каналы (256 Kb/s) : 1 GB = 8 часов.
        • Локальная сеть (100 Kb/s) : 1 GB = 2 мин.
      • Вывод: Востребованность поисковых систем, ориентированных на локальные компьютерные сети
    3. Цель проекта
      • Создание эффективной поисковой системы для локальной сети, превосходящей аналоги
        • по скорости индексации и
        • по скорости обработки поисковых запросов
      • Этапы проекта
      • Построение поискового робота
        • Сбор данных о доступных файлах в локальной сети в СУБД
        • Выбор эффективной стратегии сканирования удалённых машин
        • Ранжирование узлов при повторной индексации
      • Создание эффективного модуля индексации
        • Обработка собранной информации лексическим анализатором
        • Скорость поиска по обратному индексу
      • Создание эффективного модуля обработки поисковых запросов
        • Создание синхронизированных БД и обратного индекса
    4. Исходные данные и ограничения
      • Исходные данные
        • СУБД SQL Firebird 2.0
        • Индексатор и анализатор Lucene.Net
          • Лексический анализ, построение обратного индекса
        • Алгоритмы поисковых систем: HITS, PageRank , Beagle
      • Ограничения
        • Ограничения на локальную компьютерную сеть
          • Наличие сервиса NetBIOS ,
          • Минимум скорости Ethernet – 100 Mbit/sec ,
          • Размеры локальной сети (меньше 1000 машин)
        • Операционные системы Windows Server, XP, или Vista
      • Среда разработки:
        • Microsoft Visual Studio 2003, .Net Framework , C# 2.0
    5. Функциональная схема программы
      • Модуль доступа к удалённым ресурсам
      • Модуль индексации
      • Модуль хранения данных
      • Встроенный веб-сервер
    6. Поисковый робот
      • Сканирование машин локальной сети и создание очереди на индексацию
      • Создан для одновременной работы многих экземпляров:
        • Разбиение алгоритма на отдельные задачи, которые могут выполняться параллельно
        • Сохранение файлов на индексацию в очередь
        • Получение изменённой директории от узла
        • Сравнение полученной директории с копей в БД
        • Сохранение изменений в БД
      • Исполнение набора политик:
        • Политика выборки узлов сети
        • Политика повторного посещения
        • Политика вежливости
        • Политика параллельного сканирования
      • Используется модуль балансирующий нагрузки на ЦП
    7. Модуль хранения данных
      • Реляционная СУБД Firebird 2 .0
        • + Быстрая скорость хранения и выборка по реляционным правилам
        • + Не требует отдельного сервера
        • - Отсутствует поиск с лексическим анализом
      • Лексический анализатор и индексатор Lucene.Net
        • + Поиск с лексическим анализом и релевантным ранжированием
        • + Быстрый поиск по обратному индексу: 30-50 мс
        • - Нет фильтрации по реляционным правилам
      • Комбинирование СУБД + Lucene
        • + Релевантные запросы с лексическим анализом
        • + Фильтрация по реляционным правилами
      • Веб-сервер
        • встроен в программу (не требуется внешний)
        • Автоматическая MAC+IP авторизация
      • Веб-сервис
        • Отделение логики от представления ( API возвращает результаты в XML, X SLT)
      • Веб-портал
        • Веб-интерфейс Web 2 . 0 ( AJAX , XML)
      Программный интерфейс ( API)
        • График исследований работы веб-сервера:
        • Среднее время отклика ~ 50 мсек
    8. Сравнение скоростей сканирования созданной программы и аналогов
      • Вывод:
        • Lan-Crawler работает быстрее после первых 50-ти секунд
        • Для небольших коллекций (меньше 250 файлов) лучше использовать Windows XP
        • Для больших коллекций (больше 250 файлов) лучше использовать Lan-Crawler .Net
      • Сравнение скоростей сканирования файлов разных программ:
          • Lan-Crawler .Net
          • QuickSearch (Beagle)
          • Windows XP
    9. Текущие задачи
      • Поддержка спецификации OpenSearch.org для URL REST XML- поиска
      • Исследование других стратегий индексации и обхода
      • Высокая нагрузка на процессор сервера и СУБД, решения:
        • С помощью репликации базы данных на кластер СУБД
        • Очередь задач с балансировкой загруженности ЦП
      • Будущие исследования
      • Реализация « сети агентов »
        • С помощью Microsoft Sync Framework
        • Синхронизация в локальной сети
    10. Тестирование программы
      • Создан самотестирующийся код
        • Каждая часть программы проверяется тестами
        • Спецификации вручную переводятся в тесты один раз (написано 832 C# Unit- теста )
        • Тесты запускаются автоматически после компиляции программы
        • Тесты выполняются программой Nunit
      • Автоматическое тестирование
        • + Позволяет автоматизировать ( функциональное, модульное, интеграционное тестирование )
        • - Не позволяет проверять производительность кода
        • Покрытие кода тестами на системное тестирование -- 72% (результат программы NCover)
      • Для тестирования веб-сервера используется специальная программа Apache JMeter
    11. Метрики Программы
      • Код программы:
        • MS С # 2.0: 6761 строк , классов 147 , 94 файла
        • Комментарий: 4034 строк ( 37% )
        • SQL: генерация схемы БД – 908
        • Таблиц – 21, View – 3, Trigger - 26
      • Используемые библиотеки - 4
        • Firebird, Lucene.Net, log4net, nUnit
      • Файлов – 356, директорий - 44
        • 94 C# , 4 XML,
        • 13 XSLT , 32 HTML, 15 JavaScript
        • CSS, изображения и файлы веб-портала
      • Качество кода проверяется метриками в NDepend
        • 832 NUnit– тестов
      • Сроки проекта:
        • Июнь 2006: версия 1.0, РНР , MS Access
        • Август 200 6: версия 2.0, C# , SQL Firebird
        • Ноябрь 2007 : версия 3.0, C#, NHibernate
    12. Заключение
      • Построена система информационного поиска Lan-Crawler
        • Соизмеримая скорость первичной и повторной индексаций
        • Выбран оптимальный алгоритм для параллельного обхода узлов сети
        • Высокая скорость ответа на поисковые запросы с лексическим анализом
      • Проект открытый; дистрибутивы и весь исходный код располагаются на сайте http://lan-crawler.sourceforge.net
      • Примеры внедрения:
      • Районная локальной сети пос. Металлострой (300 пользователей, общее объем файлов ~ 7 Тб)
      • Локальной сети общежития СПбГПУ (в тестовом режиме, общий объем файлов ~ 4 .9 Тб)
      • Спасибо за внимание .
    13. Потенциал ЛВС по сравнению с сетью Интернет
      • Физические преимущества
        • Скорость передачи данных между узлами:
          • Интернет: ~ 0.5-1.0 мегабит/сек
          • ЛВС: от 10, 100, 1000 Мегабит/сек
        • Скорость отклика узла на сообщения ( Answer timeout)
          • Интернет: до 30 секунд, в среднем 150-300 миллисекунд
          • ЛВС: до 10 миллисекунд, в среднем 1-2 миллисекунд
      • Преимущества объема
        • Локальные сети ограничены в своём размере
          • ЛВС: 300, 500, 1000+ ( домашние, корпоративные, районные)
          • Интернет: количество узлов безгранично ( IP6, NAT)
    14. Область применения
      • Примеры внедрения:
      • Программа используется в районной локальной сети пос. Металлостроя ( www.metallonet.ru )
        • С начала 2007 года
        • 300 пользователей
        • Общее количество файлов : ~42 000, общий объем ~ 7 Тб
      • Работает в локальной сети общежития СПбГПУ
        • В тестовом режиме над видео коллекцией
        • Общее количество файлов: ~ 14 000, общий объем ~ 4 .9 Тб
    15. Концепция использования
      • Схема окружения
        • Районная компьютерная сеть объединяет сотни компьютеров
        • Любой компьютер может предоставить доступ на чтение файлов другим
      • Поисковая система
        • Устанавливается на одном компьютере в локальной сети, предоставляет вебпортал
        • Анализируется и индексируется файловая структура сети, сохраняется в СУБД
        • Пользователь заходит на вебпортал через браузер и производит поиск
        • Авторизация по связке IP + Mac
        • Поиск обрабатывается лексическим анализатором, поиск по смежным словам
      • Поиск по метаинформации
        • Программы: по комментариям, описанию
        • Фильмы: актёры, режиссёры, по описанию
        • Музыка: по исполнителю, альбому, году
    16. Архитектура проекта
      • Слой доступа к удалённым ресурсам
      • Слой доступа к данным:
      • Модуль индексации
      • Встроенный веб-сервер
    17. Реализация: модули проекта
      • Слой доступа к удалённым ресурсам
        • Проверяет доступность компьютеров в локальной сети.
        • Обходит узлы сети и ставит файлы на очередь индексации
        • Производит авторизацию по связке MAC+IP
      • Слой доступа к данным:
        • Встроенная база данных SQL FireBird
        • Выполняет запросами в СУБД и индекс для быстрого, гибкого поиска
      • Модуль индексации
        • Индексирует доступные файлы удалённых машин
        • Составляет обратный индексный файл для быстрого поиска
        • Лексически обрабатывает поисковые запросы пользователей
      • Встроенный веб-сервер
        • Основной интерфейс пользователя, принимает поисковые запросы
        • Сбор дополнительной информации из Интернета
    18. Диаграмма классов модели
      • Проблемно-ориентированное проектирование приложений ( Domain-Driven Design ) – построение модели для абстрагирования бизнес логики от конкретной реализации
      • Модель предметной области позволила упростить создание абстрагированного гибридного решения хранения данных.
      • Модель может использоваться вне решения Lan-Crawler и ПС
    19. Модуль хранения данных
      • Реляционная СУБД Firebird 2 .0
        • + Быстрая скорость хранения и выборка по реляционным правилам
        • + Не требует отдельного сервера
        • - Отсутствует поиск с лексическим анализом
      • Анализатор и индексатор Lucene.Net
        • + Гибкий поиск с опечатками и релевантностью
        • + Быстрый поиск по обратному индексу: 30-50 мс
        • - Нет фильтрации по реляционным правилам
      • Комбинирование модулей ( СУБД + Lucene )
        • + Релевантные запросы с лексическим анализом
        • + Фильтрация по реляционным правилами
      Тип запроса разные источники данных СУБД Индекс Гибрид Кэшир. Запрос по фиксированному полю 15- 20 мс 20-30 мс 15-20 мс 5-15 мс Запрос по нескольким фиксированным полям 20-40 мс 50-60 мс 20-40 мс 5-15 мс Запрос по ключевым словам (full text search) 520-750 мс 30 мс 50-80 мс 5-15 мс Запрос, требующий лексический анализ n/a 20-50 мс 50-80 мс 5-15 мс
    20. Сравнение показателей скорости обхода
      • График
        • показывает количество просканированных важных файлов, по сравнению с общим количеством.
        • Общее количество файлов 17 000
        • Достижение 100% - найдены все файлы
      • Вывод:
        • выгодно отдавать приоритет узлам с наибольшим количеством важных файлов
        • За первые 20% времени можно обновить 60% важных директорий
      • График показывает эффективность обхода важных ресурсов локальной сети, изменяя стратегию обхода узлов. Стратегии:
        • PageRank (глобальная важность директории)
        • Backlink ( выбирается узел, а потом важные директории)
        • Breadth ( вширь, на каждом этапе выбирается самая важная папка)
        • Random ( на каждом шаге выбирается любая папка)

    + cDimacDima, 8 months ago

    custom

    519 views, 1 favs, 0 embeds more stats

    Masters degree presentation for my project Lan-Craw more

    More Info

    © All Rights Reserved

    Go to text version
    • Total Views 519
      • 519 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 3
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as innappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel

    Categories