Міністерство освіти і науки України
Чернівецький національний університет
імені Юрія Федьковича
Факультет комп’ютерних наук
Кафедра комп’ютерних систем та мереж
МОДУЛЬ ВІДОБРАЖЕННЯ ЗАВАНТАЖЕНОСТІ МЕРЕЖІ
ДЛЯ СИСТЕМИ ТЕСТУВАННЯ SQL-СЕРВЕРІВ
482.362.70915-05 13 51-3
(Дипломна робота)
2007
Анотація
Даний розділ містить основні відомості структуру та функціонування модуля відображення завантаженості мережі для системи тестування SQL-серверів, опис основних складових комплексу та їх зв’язок між собою. Призначення та можливості окремих частин системи та їх зв’язок між собою, опис технічних засобів, які використовуються, формати вхідних та вихідних даних.
Опис програми займає 22 сторінок друкованого тексту та 12 рисунків.
Зміст
1.Загальні відомості
2.Функціональне призначення
3.Опис логічної структури
3.1 Опис логічної структури складових елементів модуля
3.2 Опис систем моніторингу мережі
3.3 Опис функціонування модуля в системі тестування
3.4 Опис взаємодії класів
4. Використовувані технічні засоби
5. Виклик і завантаження
6. Вхідні дані
7. Вихідні дані
Дипломна робота “Модуль відображення завантаженості мережі для системи тестування SQL-серверів” призначена для розробки деякої структури класів, які дозволили б проводити графічне відображення кількості даних, що пройшли локальною мережею між SQL та WEB-серверами. Для роботи програми необхідно мати встановлене програмне забезпечення такого типу:
1) Операційна систематипу WindowsNT.
2) Web-сервер додатків.
3) Сервер баз даних MySQL.
4) Сервер баз даних MS SQL.
5) Сервер баз даних Firebird.
6) Сервер баз даних Oracle.
7) Програма аналізу трафіку BWMeter.
8) Пристрої підключення до локальної мережі.
В нашому випадку було використано такий набір програмного забезпечення, як : Web-сервер Jakarta Tomcat 5.0, сервера баз даних MySQL, MS SQL, Firebird, Oracle, операційна система Windows XP, драйвера для вбудованої мереженої карти Realtek 10/100 Мб. Для написання програми було використано мову програмування Java.
Даний програмний продукт являється частиною більш загального комплексу, який призначений для проведення тестування SQL-серверів. Призначення даної частини комплексу полягає в розробці такої структури класів, які б дозволяли виводити статистичні дані роботи заданої системи у графічному вигляді, а також виконання деяких додаткових функції.
Розроблена структура дозволяє автоматизовано отримувати дані про проходження тесту у графічній формі різного типу. На основі цих даних користувачі можуть робити свої висновки про функціональні можливості SQL-сервера, який встановлений на визначеній платформі.
Логічну структуру модуля можна поділити на наступні складові елементи:
1) Класи, що забезпечують зв’язок з системою тестування SQL-серверів.
2) Класи, що забезпечують зв’язок з системою моніторингу мережі.
3) Класи, які призначені для формування необхідних видів зображень.
4) Xml-файли конфігурації зображень.
Опишемо принципи функціонування розроблених частин модуля.
Суть аналізу трафіку полягає в тому, що деяка програма перехоплює пакети, що надсилаються в мережу, і робить записи про їх проходження. Після створення запису, вона пересилає пакет далі в мережу. Запис про проходження пакету повинен включати в себе наступну інформацію:
1. Дата та час створення запису.
2. Ім’я хоста (або його ІР-адреса), який пересилає інформацію.
3. Номер порту, з якого здійснюється передача інформації.
4. Ім’я хоста (або його ІР-адреса), який отримує інформацію.
5. Номер порту, в який надсилається інформація.
6. Кількість байт інформації що передана.
7. Тип протоколу.
Також запис може включати додаткову інформацію про ім’я користувача, що пересилає інформацію, контрольні суми тощо. Однак наведений вище список параметрів повинен бути присутній обов’язково.
Для відображення завантаженості мережі, необхідно було розробити механізм отримання даних про проходження пакетів даних через мережну картку комп’ютера, на якому розміщувався WEB-сервер. В нашому випадку система тестування SQL-серверів була розроблена з використанням технологій сервлетів та JSP-сторінок мови Java.
Java надає програмісту багатий набір класів об'єктів для чіткого абстрагування багатьох системних функцій, використовуваних при роботі з вікнами, мережею і для вводу/виводу. Ключова риса цих класів полягає в тім, що вони забезпечують створення незалежних від платформ абстракцій для широкого спектра системних інтерфейсів. Однак, за рахунок існування віртуальної машини, це призводить до того, що класи Java не мають прямого доступу до ресурсів комп’ютера (окрім за деякими виключеннями). Звідси отримувалося, що ми не зможемо створити жодного класу, який проводив би моніторинг мережі.
Для виконання поставленого завдання необхідно було використати зовнішні програми, які б виконували аналіз трафіку. Перелік типів таких програм достатньо великий, включає в себе сканери мережі, сніфери, проксі-сервера, комплекси утиліт керування трафіком. Розглянемо їх детальніше.
Мережеві сканери призначені для виявлення мережених ресурсів за рахунок перевірки мережного трафіку, або за рахунок надсилання контрольних пакетів до визначених мережених ресурсів. В більшості випадків вони використовують саме другий спосіб, а тому не зовсім підходять до нашого випадку.
Сніфери – це програми аналізатори мережених пакетів. Вони призначені для перевірки вмісту пакетів, і виконання певних дій при виявленні пакетів, які відповідають певним заданим внутрішнім правилам. В основному сніфери використовуються для налагодження мережених драйверів або хакингу мереж. Вони можуть виконувати створення лог-файлів проходження пакетів, однак ці логи містять занадто багато додаткової інформації. Тому при розборі такого лог-файлу буде використовуватися занадто багато локальних ресурсів комп’ютера, на якому встановлено сніфер.
Проксі-сервера – це спеціалізовані програми, які здійснюють перенаправлення потоків інформації з одних портів на інші. При цьому можна виконувати їх фільтрацію за різними параметрами. Однак, проксі-сервера являються непрозорими для потоків інформації, які передаються по портах, які не визначено на сервері як фільтровані. Тому при аналізі трафіку може відбутися втрата певних пакетів, що недопустиме в нашій ситуації.
Комплекси утиліт керування трафіком в основному представляють собою файрвол, з додатково встановленими на нього елементами аналізу, відображення та фільтрації мережених пакетів. Це найбільш потужніший інструмент для збору інформації про проходження мережених пакетів. Однак, як правило, файрволи являються платними і вимагають значних навичок в настроюванні мереж, а також досвіду в їх налаштуванні. Проте, серед великої їх кількості, існують спрощені версії таких файрволів, які призначені лише для графічного відображення завантаженості мережі. Саме такий вид мереженого монітори нам необхідно вибрати для використання в нашій роботі.
При виборі мереженого монітора було проведено аналіз різних видів засобів аналізу трафіку, а саме:
1. NetLimiter Pro 2.
2. Bandwithd.
3. BMExtremt v.2.5.
4. DUMeter.
5. Kerio Winroute Firewall 6.3.
6. Пакет MRTG.
7. BWMeter та інші.
Основними вимогами при виборі засобу аналізу трафіку було:
1. Простота встановлення та настроювання.
2. Безкоштовність.
3. Використання невеликої кількості ресурсів.
4. Можливість використання логів.
5. Можливість запису в логи даних з мінімальним інтервалом 1 секунда.
Програми, які задовольняли вищевказаним вимогам серед наведених було тільки 2: Kerio Winroute Firewall та BWMeter. Однак з огляду першого пункту вимог було обрано програму BWMeter.
Робота модуля в системі розпочинається на етапі виконання будь-якого тесту, а саме при виконанні методу doGet() сервлета NThread. Запуск роботи модуля відбувається під час виклику JSP-сторінки Testing, на якій виводиться вся інформація про проходження тесту. Однак до її виклику відбувається встановлення певних значень атрибутів сесії таких, як:
1. StratTime – об’єкт Calendar, що містить дані про початок проходження тесту.
2. EndTime – об’єкт Calendar, що містить дані про кінець проходження тесту.
3. Додаткові атрибути для відображення графіків
Після завершення виконання тесту, управління передається на початкову сторінку Testing.jsp (див.рис.3.1.), де відбувається обробка параметрів сесії та вивід на екран сторінки з текстовими результатами.
Рис. 3.1. Початкова сторінка запуску тесту.
Отримання графічних результатів відбувається в результаті паралельного виклику події MyChart.chart. Виклик цієї події перехоплюється WEB-сервером, який згідно вмісту файлу web.xml визначає що необхідно виконати сервлет ChartServlet, що відповідає за генерацію графічного зображення результатів тестування.
Функціонування ChartServlet відбувається за наступним алгоритмом:
1. Визначення імені класу графіка, для подальшого його генерування.
2. Виклик додаткового класу ChartEngine, який призначений для аналізу xml-файлу конфігурацій графіків, і отримання з цього файлу за існуючим іменем графіка його параметрів.
3. Виклик реалізації класу ChartProducer, який призначений для генерації заданого графіку по існуючим даним.