Your SlideShare is downloading. ×
Lan-Crawler Bachlor RU
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Lan-Crawler Bachlor RU

1,440
views

Published on

Masters degree presentation for my project Lan-Crawler: Open source indexer of shared files in a lan.

Masters degree presentation for my project Lan-Crawler: Open source indexer of shared files in a lan.

Published in: Technology, News & Politics

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,440
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • <number>
  • <number>
  • 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
        • + Релевантные запросы с лексическим анализом
        • + Фильтрация по реляционным правилами
    • 8.
      • Веб-сервер
        • встроен в программу (не требуется внешний)
        • Автоматическая MAC+IP авторизация
      • Веб-сервис
        • Отделение логики от представления ( API возвращает результаты в XML, X SLT)
      • Веб-портал
        • Веб-интерфейс Web 2 . 0 ( AJAX , XML)
      Программный интерфейс ( API)
        • График исследований работы веб-сервера:
        • Среднее время отклика ~ 50 мсек
    • 9. Сравнение скоростей сканирования созданной программы и аналогов
      • Вывод:
        • Lan-Crawler работает быстрее после первых 50-ти секунд
        • Для небольших коллекций (меньше 250 файлов) лучше использовать Windows XP
        • Для больших коллекций (больше 250 файлов) лучше использовать Lan-Crawler .Net
      • Сравнение скоростей сканирования файлов разных программ:
          • Lan-Crawler .Net
          • QuickSearch (Beagle)
          • Windows XP
    • 10. Текущие задачи
      • Поддержка спецификации OpenSearch.org для URL REST XML- поиска
      • Исследование других стратегий индексации и обхода
      • Высокая нагрузка на процессор сервера и СУБД, решения:
        • С помощью репликации базы данных на кластер СУБД
        • Очередь задач с балансировкой загруженности ЦП
      • Будущие исследования
      • Реализация « сети агентов »
        • С помощью Microsoft Sync Framework
        • Синхронизация в локальной сети
    • 11. Тестирование программы
      • Создан самотестирующийся код
        • Каждая часть программы проверяется тестами
        • Спецификации вручную переводятся в тесты один раз (написано 832 C# Unit- теста )
        • Тесты запускаются автоматически после компиляции программы
        • Тесты выполняются программой Nunit
      • Автоматическое тестирование
        • + Позволяет автоматизировать ( функциональное, модульное, интеграционное тестирование )
        • - Не позволяет проверять производительность кода
        • Покрытие кода тестами на системное тестирование -- 72% (результат программы NCover)
      • Для тестирования веб-сервера используется специальная программа Apache JMeter
    • 12. Метрики Программы
      • Код программы:
        • 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
    • 13. Заключение
      • Построена система информационного поиска Lan-Crawler
        • Соизмеримая скорость первичной и повторной индексаций
        • Выбран оптимальный алгоритм для параллельного обхода узлов сети
        • Высокая скорость ответа на поисковые запросы с лексическим анализом
      • Проект открытый; дистрибутивы и весь исходный код располагаются на сайте http://lan-crawler.sourceforge.net
      • Примеры внедрения:
      • Районная локальной сети пос. Металлострой (300 пользователей, общее объем файлов ~ 7 Тб)
      • Локальной сети общежития СПбГПУ (в тестовом режиме, общий объем файлов ~ 4 .9 Тб)
    • 14.
      • Спасибо за внимание .
    • 15. Потенциал ЛВС по сравнению с сетью Интернет
      • Физические преимущества
        • Скорость передачи данных между узлами:
          • Интернет: ~ 0.5-1.0 мегабит/сек
          • ЛВС: от 10, 100, 1000 Мегабит/сек
        • Скорость отклика узла на сообщения ( Answer timeout)
          • Интернет: до 30 секунд, в среднем 150-300 миллисекунд
          • ЛВС: до 10 миллисекунд, в среднем 1-2 миллисекунд
      • Преимущества объема
        • Локальные сети ограничены в своём размере
          • ЛВС: 300, 500, 1000+ ( домашние, корпоративные, районные)
          • Интернет: количество узлов безгранично ( IP6, NAT)
    • 16. Область применения
      • Примеры внедрения:
      • Программа используется в районной локальной сети пос. Металлостроя ( www.metallonet.ru )
        • С начала 2007 года
        • 300 пользователей
        • Общее количество файлов : ~42 000, общий объем ~ 7 Тб
      • Работает в локальной сети общежития СПбГПУ
        • В тестовом режиме над видео коллекцией
        • Общее количество файлов: ~ 14 000, общий объем ~ 4 .9 Тб
    • 17. Концепция использования
      • Схема окружения
        • Районная компьютерная сеть объединяет сотни компьютеров
        • Любой компьютер может предоставить доступ на чтение файлов другим
      • Поисковая система
        • Устанавливается на одном компьютере в локальной сети, предоставляет вебпортал
        • Анализируется и индексируется файловая структура сети, сохраняется в СУБД
        • Пользователь заходит на вебпортал через браузер и производит поиск
        • Авторизация по связке IP + Mac
        • Поиск обрабатывается лексическим анализатором, поиск по смежным словам
      • Поиск по метаинформации
        • Программы: по комментариям, описанию
        • Фильмы: актёры, режиссёры, по описанию
        • Музыка: по исполнителю, альбому, году
    • 18. Архитектура проекта
      • Слой доступа к удалённым ресурсам
      • Слой доступа к данным:
      • Модуль индексации
      • Встроенный веб-сервер
    • 19. Реализация: модули проекта
      • Слой доступа к удалённым ресурсам
        • Проверяет доступность компьютеров в локальной сети.
        • Обходит узлы сети и ставит файлы на очередь индексации
        • Производит авторизацию по связке MAC+IP
      • Слой доступа к данным:
        • Встроенная база данных SQL FireBird
        • Выполняет запросами в СУБД и индекс для быстрого, гибкого поиска
      • Модуль индексации
        • Индексирует доступные файлы удалённых машин
        • Составляет обратный индексный файл для быстрого поиска
        • Лексически обрабатывает поисковые запросы пользователей
      • Встроенный веб-сервер
        • Основной интерфейс пользователя, принимает поисковые запросы
        • Сбор дополнительной информации из Интернета
    • 20.
    • 21. Диаграмма классов модели
      • Проблемно-ориентированное проектирование приложений ( Domain-Driven Design ) – построение модели для абстрагирования бизнес логики от конкретной реализации
      • Модель предметной области позволила упростить создание абстрагированного гибридного решения хранения данных.
      • Модель может использоваться вне решения Lan-Crawler и ПС
    • 22. Модуль хранения данных
      • Реляционная СУБД 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 мс
    • 23. Сравнение показателей скорости обхода
      • График
        • показывает количество просканированных важных файлов, по сравнению с общим количеством.
        • Общее количество файлов 17 000
        • Достижение 100% - найдены все файлы
      • Вывод:
        • выгодно отдавать приоритет узлам с наибольшим количеством важных файлов
        • За первые 20% времени можно обновить 60% важных директорий
      • График показывает эффективность обхода важных ресурсов локальной сети, изменяя стратегию обхода узлов. Стратегии:
        • PageRank (глобальная важность директории)
        • Backlink ( выбирается узел, а потом важные директории)
        • Breadth ( вширь, на каждом этапе выбирается самая важная папка)
        • Random ( на каждом шаге выбирается любая папка)