Разработка информационной подсистемы "Traffic Manager", осуществляющей управление и мониторинг межсетевого экрана Microsoft Forefront Threat Management Gateway 2010

Способы усовершенствования использования существующего Интернет-канала на предприятии ООО "Бизнес ИТ". Процесс и главные этапы разработки подсистемы управления и мониторинга межсетевого экрана Forefront TMG 2010, а также методы расширения его функционала.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.07.2011
Размер файла 3,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

- трафик по пользователям;

- трафик по сайтам;

- трафик по дням;

- трафик пользователя по сайтам;

- трафик сайта по пользователям.

Кроме того, есть возможность настроить представление отчета через сводные таблицы Microsoft Excel.

Ограничением на применение является требование постоянного сетевого соединения с контроллером домена, межсетевым экраном и сервером баз данных.

3.3 Описание логической структуры программы

Логическая структура информационной подсистемы отражена на диаграмме компонентов, разработанной в среде Microsoft Visio 2010, и приведена на рисунке 3.1.

Рисунок 3.1 - Диаграмма компонентов информационной подсистемы «Traffic Manager»

Как следует из рисунка 3.1, в логическую структуру программы входят 9 программных компонентов и база данных Active Directory, расположенная на контроллере домена, а также две базы данных на сервере, работающем под управлением СУБД Microsoft SQL Server 2008 R2.

3.4 Требования к техническому обеспечению

3.4.1 Общие требования

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

- Windows Server 2008 R2;

- Microsoft Forefront TMG 2010;

- Microsoft SQL Server 2008 R2.

Подсистема поставляется на компакт-диске. Поэтому на компьютере должен быть установлен привод CD-дисков.

3.4.2 Требования к центральному процессору

Особых требований к типу процессора, разрабатываемая программа не предъявляет. На основании проведенных контрольных прогонов и учитывая, использование операционной системы Windows Server 2008 R2 было установлено, что требованиями для удовлетворительной работы приложения является процессор с тактовой частотой от 2000 МГц [11].

Данная цифра учитывает как затраты процессора на работу самого приложения так и затраты, связанные с работой операционной системы.

3.4.3 Требования к оперативному запоминающему устройству

Минимальный объем оперативного запоминающего устройства (ОЗУ) необходимый для работы приложения V, Мбайт, определяется по формуле:

V = V1 + V2 + V3,

(3.1)

гдеV1 - минимальный объем ОЗУ, требуемый для работы операционной системы, Мбайт;

V2 - минимальный объем ОЗУ, требуемый для работы Microsoft Forefront TMG 2010, Мбайт;

V3 - минимальный объем ОЗУ, требуемый для работы приложения, Мбайт.

Для приложения, работающее под управлением операционной системы Windows Server 2008 R2 необходимое V1 = 1024 Мбайт [11].

Для стабильной работы Microsoft Forefront TMG 2010 требуется V2 = 512 Мбайт [11].

Для стабильной работы приложения требуется V3 = 20 Мбайт.

Таким образом, на основе формулы (3.1) минимальный объем ОЗУ, требуемый для работы приложения, запущенного в операционной системе Windows Server 2008 R2, составляет:

V = V1 + V2 = 1024 + 512 + 20 = 1556 Мбайт.

3.4.4 Требования к наличию сводного места на жестком диске

Минимально необходимое свободное пространство W, Мбайт, можно определить, используя формулу следующим соотношением

W = W1 + W2 + W3, (3.2)

где - размер пространства, которое занимает инсталляция информационной подсистемы, Мбайт;

- размер временных файлов, создаваемых при работе с программой, Мбайт;

- размер файлов базы данных, Мбайт.

Размер пространства , которое занимает исполняемый файл информационной подсистемы «Traffic Manager» составляет 96 Кбайт памяти жесткого диска.

Размер временных файлов (параметр ) может составить примерно 2 Мбайт памяти жесткого диска.

Размер БД (параметр ) используемой для хранения журналов межсетвого экрана составляет не менее 1024 Мбайт [11].

На основании расчета по формуле (3.2) приходим к выводу, что для нормальной работы информационной подсистемы «Traffic Manager» необходимо следующее количество свободной памяти жесткого диска:

= 0,096 + 2 + 1024= 1026,096 Мбайт.

3.4.5 Требования к монитору

Для работы с программой требуется цветной монитор SVGA. Рекомендуемое разрешение экрана для работы с программой 1024Ч768 пикселей. Если разрешение будет меньше, экранные формы не смогут поместиться на экране, что затруднит работу с программой.

Специфических требований к монитору разработанная подсистема не предъявляет.

3.4.5 Требования к принтеру

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

Специфических требований к принтеру разработанная подсистема не предъявляет.

3.4 Установка и вызов программы

Для нормального функционирования приложения необходимо предварительно выполнить следующие действия:

1) создать на SQL-сервере две базы данных для хранения журналов межсетевого экрана;

2) настроить Forefront TMG для записи журналов в две базы данных на SQL-сервере;

3) создать на SQL-сервере скалярную функцию, позволяющую преобразовывать зашифрованные ip-адреса компьютеров из журнала межсетевого экрана;

4) зарегистрировать библиотеку URLConverter.dll в операционной системе (команда: regsvr32 «Путь/URLConverter.dll»).

Для начала работы в приложении нужно запустить файл TrafficManager.exe. Приложение рекомендуется запускать на сервере TMG, так как на других компьютерах возможны проблемы с загрузкой служебных библиотек из пакета Forefront TMG 2010 SDK.

3.5 Входные данные программы

При старте программы входными данными являются имя пользователя и пароль.

Для формирования отчетов могут потребоваться следующие входные данные:

- период формирования отчета;

- имя пользователя-сотрудника;

- имя сервера баз данных;

- имя сервера с установленным межсетевым экраном;

- имя пользователя для доступа к серверу баз данных;

- размер скоростного ограничения на прием или передачу данных;

- размер квоты на прием или передачу данных;

- адрес сайта, посещаемость которого необходимо отобразить в строящемся отчете.

3.6 Выходные данные программы

Цель работы приложения Traffic Manager - получение следующих выходных данных:

- отчет «Трафик по пользователям»;

- отчет «Трафик по сайтам»;

- отчет «Трафик по дням»;

- отчет «Трафик пользователя по сайтам»;

- отчет «Трафик сайта по пользователям»;

- отчет «Использование HTTP-трафика за сегодня»;

- отчет «Использование HTTP-трафика за час»;

- отчет «Использование трафика за сегодня»;

- отчет «Использование трафика за час».

3.7 Краткая инструкция системному администратору по работе с программой

Для начала работы с программой нужно запустить файл TrafficManager.exe. На экран выведется окно авторизации (рисунок 3.2).

Рисунок 3.2 - Окно авторизации приложения TrafficManager.exe

Если проверка завершилась успешно, на экран выводится главная форма приложения, представленная на рисунке 3.3.

Рисунок 3.3 - Главная форма приложения TrafficManager.exe

Управление правами пользователя осуществляется в форме «Управление пользователями» в пункте меню «Настройка» (рисунок 3.4). Пользователь может быть либо администратором с доступом к разделу с настройкой межсетевого экрана, наблюдателем, который может только производить мониторинг или обычным пользователем.

Рисунок 3.4 - Форма приложения для управления пользователями

Параметры соединения с сервером баз данных и межсетевым определяются в форме «Настройка соединения» пункта меню «Настройка» (рисунок 3.5).

Рисунок 3.5 - Форма приложения для управления пользователями

При нажатии на кнопку «Тестировать» производится проверка возможности соединения с серверами. Если проверка прошла успешно, то выводится сообщение, представленное на рисунке 3.6, иначе выводится другое, как на рисунке 3.7.

Рисунок 3.6 - Форма приложения для управления пользователями

Рисунок 3.7 - Форма приложения для управления пользователями

Вид формы «Управление межсетевым экраном» изображен на рисунке 2.11.

Работа с формами, вызываемыми из подпункта меню «Отчеты» описывалась в разделе 2.3.3. Возможные виды отчетов изображены на рисунках 2.16 - 2.19.

Особенность программы, позволяющая увеличить гибкость создания отчетов, - формирование сводной таблице в файле Excel. Для того чтобы запустить один из таких отчетов, нужно выбрать «Отчеты в Excel» - «Использование HTTP-трафика за час».

Сразу после запуска файла нужно в меню Excel зайти в раздел «Данные» и нажать кнопку «Обновить все» (рисунок 3.8).

Рисунок 3.8 - Получение последних данных с сервера

Microsoft Excel обратится к серверу SQL и получит последние данные об использовании http-трафика за последний час для первых десяти наиболее активных компьютеров (рисунок 3.9).

Рисунок 3.9 - Сводная таблица Excel с данными о входящем трафике

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

Рисунок 3.10 - График активности компьютеров за последний час

На рисунке 3.11 представлено панель настройки параметров сводной таблицы.

Рисунок 3.11 - Панель настройки параметров сводной таблицы

3.8 Результаты тестирования программы

Программа прошла тестирование в ООО «Бизнес ИТ», г. Ставрополь. В результате тестирования установлено, что она в полном объеме удовлетворяет требованиям заказчика. В настоящее время, разработанная информационная подсистема «Traffic Manager», находится в стадии опытной эксплуатации.

Выводы

1. Для корректной работы информационной подсистемы на сервере с установленным межсетевым экраном необходимо наличие:

? операционной системы Windows Server 2008 R2;

? персонального компьютера с процессором Pentium 2000 МГц;

? 1556 Мбайт оперативной памяти;

? 1026,096 Мбайт свободной памяти жесткого диска;

? любого современного цветного монитора с разрешением 1024Ч768;

? любого лазерного принтера с разрешением печати не менее 300 точек/дюйм.

2. Логическая структура программы включает в себя 9 программных компонента и три базы данных.

3. Программа не требует установке и представляет собой исполняемый файл TrafficManager.exe.

4. Общее количество разнотипных входных данных программы равно 8.

5. Была составлена краткая инструкция для работы с отчетами, выводимыми как в самом приложении, так и в документах Microsoft Excel 2010.

6. Программа прошла тестирование. По итогам тестирования установлено, что она в полном объеме удовлетворяет требованиям заказчика.

4. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ПРОЕКТА

4.1 Краткая характеристика проекта

В рамках дипломного проекта разработана информационная подсистема «Traffic Manager», предназначенная для управления и мониторинга межсетевого экрана для общества с ограниченной ответственностью «Бизнес ИТ», г. Ставрополь.

Данная информационная подсистема предназначена для получения детальной информации по использованию Интернет-трафика сотрудниками и управления настройками межсетевого экрана.

Цели создания информационной подсистемы - выражается в решении проблемы использования существующего Интернет-канала на предприятии ООО «Бизнес ИТ» и объективной оценки эффективности работы сотрудников благодаря расширению функционала межсетевого экрана Microsoft Forefront TMG 2010.

Информационная подсистема «Traffic Manager» выполняет следующие функции:

? быстрый доступ к наиболее востребованным функциям управления системой Microsoft Forefront TMG 2010;

? создание детализированных отчетов по использованию Интернет-канала пользователями организации;

? создание отчетов с помощью сводных таблиц Microsoft Excel;

? ведение списка пользователей с указанием их прав доступа к ресурсам информационной подсистемы;

? смену пароля администратора и пользователя информационной подсистемы.

При разработке информационной подсистемы использовался язык программирования C#.

В результате предпроектного обследования было установлено, что для получения информации об использовании текущего Интернет-канала пользователями ООО «Бизнес ИТ» и осуществления некоторых функций управления системным администратором тратится около 70 часов в месяц. После внедрения разработанной информационной подсистемы ожидается, что затраты времени системного администратора на эти обязанности сократятся в несколько раз.

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

Программа разрабатывается согласно техническому заданию.

Исходное число строчек кода в тексте программы 350 ед.

В данном разделе рассмотрены вопросы расчета:

? трудоёмкости выполняемых работ;

? суммарных затрат на создание программного продукта;

? экономии, достигаемой в результате перехода от ручной обработки информации на автоматизированную обработку;

? чистого дисконтированного дохода за четыре года использования информационной подсистемы;

? внутренней нормы доходности проекта и срока его окупаемости.

4.2 Трудоёмкость выполняемых работ

Создание программного продукта предполагает разработку программ и всей программной документации, предусмотренной техническим заданием.

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

Трудоёмкость разработки программного обеспечения , чел-ч., определяется по формуле:

, (4.1)

где - затраты труда на описание задачи, чел-ч;

- затраты на исследование предметной области, чел-ч;

- затраты на разработку блок-схем, чел-ч;

- затраты на программирование, чел-ч;

- затраты на отладку, чел-ч;

- затраты на подготовку документации, чел-ч.

Все составляющие в правой части формулы (4.1) определены через общее число операторов D, ед.:

(4.2)

где ? исходное число строчек кода в тексте программы, (350 ед);

с - коэффициент сложности задачи;

р - коэффициент коррекции программы, учитывающий новизну проекта.

Коэффициент сложности задачи «с» характеризует относительную сложность программы по отношению к так называемой типовой задаче, реализующей стандартные методы решения, сложность которой принята равной единице (величина коэффициента «с» лежит в пределах от 1,25 до 2). Для рассматриваемого программного продукта коэффициент сложности задачи примем равным 1,8 (с=1,8).

Коэффициент «р» коррекции программы, учитывающий новизну проекта, количественно характеризует увеличение объёма работ по реализации программного продукта, возникающего внесения изменений в алгоритм или в тексте программы по результатам её тестирования и отладки, с учётом коррекций требований к прецедентам, поддерживаемым программным продуктом, со стороны заказчика. В данном случае заказчик недостаточно хорошо представлял себе полный перечень прецедентов, которые должен поддерживать программный продукт, а это приводило к многочисленным корректировкам и доработкам текста программного кода. Поэтому примем коэффициент «р» равным 0,1.

В результате подстановки численных значений коэффициентов и параметров в формулу (4.2) получим следующее общее число строчек кода в тексте программы:

D = 350 Ч 1,8 Ч(1+0,1) = 693 ед.

Затраты труда на описание принимаем: = 40 чел.- ч. Работу по описанию задачи и все другие работы по созданию программного продукта выполняет инженер-программист первой категории с окладом 7000 руб. в месяц и коэффициентом квалификации =0,8 (опыт работы по специальности до двух лет).

Затраты труда на изучение задачи , чел.- ч., с учётом уточнения описания и квалификации программиста могут быть определены по формуле:

, (4.3)

где D - общее число строчек кода в тексте программы, ед.;

b - коэффициент увеличения затрат труда вследствие недостаточного описания задачи;

- количество строчек кода в тексте программы, приходящееся на один чел.- ч., (ед / чел.- ч.);

- коэффициент квалификации работника (определяется в зависимости от стажа работы).

В связи с тем, что решение рассматриваемой задачи потребовало уточнения и доработок, примем коэффициент b = 1,5.

Количество строчек кода в тексте программы, приходящееся на один чел.- ч., примем равным = 75 ед. / чел.- ч.

Таким образом, на основании формулы (4.3) получим:

17,33 чел.- ч.

Затраты труда на разработку алгоритма решения задачи , чел.- ч., рассчитываются по формуле:

, (4.4)

где D - общее число строчек кода в тексте программы, ед.;

- количество строчек кода в тексте программы, приходящееся на один чел.- ч., (ед / чел.- ч.);

- коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчёта по формуле (4.4) примем = 20 ед./чел.- ч.

Подставив численные значения параметров и коэффициентов в формулу (4.4), получим:

43,31 чел.- ч.

Затраты труда на составление программы по готовой блок-схеме , чел.- ч., определяется по формуле:

, (4.5)

где D - общее число строчек кода в тексте программы, ед.;

- количество строчек кода в тексте программы, приходящееся на один чел.- ч., (ед / чел.- ч.);

- коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчёта по формуле (4.5) примем = 20 ед./чел.- ч.

43,31 чел.- ч.

Затраты труда на отладку программы на персональном компьютере

, чел.- ч., рассчитываются по формуле:

, (4.6)

где D - общее число строчек кода в тексте программы, ед.;

- количество отлаживаемых операторов программы, приходящееся на один чел.- ч., (ед / чел.- ч.);

- коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчёта по формуле (4.6) примем = 5 ед./чел.- ч.

Подставив численные значения параметров и коэффициентов в формулу (4.6), получим:

173,25 чел.- ч.

Затраты труда на подготовку документации по задаче , чел.- ч., определяются по формуле:

, (4.7)

где - затраты труда на подготовку материалов в рукописи, чел.- ч.;

- затраты труда на редактирование, печать и оформление документации, чел.- ч.

Затраты труда на подготовку материалов в рукописи , чел.- ч., вычислим по формуле:

, (4.8)

где D - общее число строчек кода в тексте программы, ед.;

- количество операторов программы в рукописи, приходящееся на один чел.- ч., (ед / чел.- ч.);

- коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчёта по формуле (4.8) примем = 15 ед./чел.- ч.

Подставив численные значения параметров и коэффициентов в формулу (4.8) получим:

57,75 чел.- ч.

Затраты труда на редактирование, печать и оформление документации , чел.- ч., вычислим по формуле:

(4.9)

Подставив численное значение затраты труда на подготовку материалов в рукописи , чел.- ч., в формулу (4.9), получим:

43,31 чел.- ч.

Таким образом, подставив численные значения затраты труда на подготовку материалов в рукописи , чел.- ч., и затраты труда на редактирование, печать и оформление документации , чел.- ч., в формулу 4.7, получим:

101,06 чел.- ч.

Подставив все полученные данные, составляющие трудоёмкость разработки программного обеспечения в формулу (4.1), получим:

418,26 чел.- ч.

С учётом уровня языка программирования трудоёмкость разработки программы может быть скорректирована следующим образом:

, (4.10)

где - коэффициент коррекции, учитывающий изменения трудоёмкости в зависимости уровня языка программирования (таблица 4.1).

Таблица 4.1 - Изменение трудоемкости в зависимости уровня языка программирования

Уровень языка

программирования

Характеристика языка

программирования

Коэффициент изменения трудоемкости

1

Ассемблер

1

2

Макроассемблер

0,95

3

Алгоритмические языки высокого уровня

0,8 ? 0,9

- откорректированная трудоёмкость разработки программного обеспечения, чел.- ч.

Использованный язык разработки C# относится к объектно-ориентированным языкам высокого уровня, с учётом этого примем  = 0,8.

Таким образом, получим по формуле (4.10) итоговую откорректированную трудоёмкость разработки программы:

334,61 чел.- ч.

интернет мониторинг межсетевой экран

4.3 Расчёт себестоимости автоматизированной информационной подсистемы

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

,

(4.11)

где - основная заработная плата производственного персонала, руб.;

- дополнительная заработная плата производственного персонала, руб.;

- отчисления на страховые взносы, руб.;

- затраты на потребляемую электроэнергию, руб.;

- расходы на материалы и запасные части, руб.;

- затраты на техническое обслуживание и текущий ремонт вычислительной техники, руб.;

- затраты на амортизацию вычислительной техники, руб.

Плановый фонд рабочего времени одного специалиста производственного персонала в месяц, , ч., вычислим по формуле:

,

(4.12)

где - количество рабочих дней специалиста производственного персонала за месяц;

- продолжительность рабочего дня специалиста производственного персонала, ч.

Для расчётов по формуле (4.12) примем = 22 дня, = 8 ч. Подставив указанные числовые значения параметров и в формулу (4.12) получим, что плановый фонд рабочего времени одного специалиста производственного персонала в месяц составляет:

ч.

Таким образом, часовая тарифная ставка , руб./ч, инженера-программиста первой категории составляет:

Основная заработная плата , руб., производственного персонала определяется по формуле:

.

(4.13)

Подставив все числовые значения параметров в формулу (4.13) получим, что основная заработная плата инженера-программиста составит:

руб.

Дополнительная заработная плата , руб., производственного персонала определяется по формуле:

,

(4.14)

где - коэффициент дополнительной заработной платы.

Коэффициент дополнительной заработной платы инженера-программиста первой категории составляет = 0,2. Таким образом, дополнительная заработная плата , руб., инженера-программиста, вычисленная по формуле (4.14), равна:

руб.

Отчисления в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации и фонды обязательного медицинского страхования Российской Федерации согласно закону № 212-Ф3 от 24.07.2009 , руб., вычислим по формуле:

(4.15)

где - норматива страховых взносов.

В соответствие с законом № 212-Ф3 от 24.07.2009 норматива страховых взносов составляет 34 % (=34 %).

Подставив все численные значения в формулу (4.15) получим, что отчисления на страховые взносы равны:

Таким образом, размер страховых взносов составит 5429,81 руб.

Затраты на потребляемую электроэнергию , руб.:

,

(4.16)

где - мощность ЭВМ; - время работы вычислительного комплекса, ч. - стоимость 1 кВтч электроэнергии, руб./кВтч.

Мощность ЭВМ, на которой работает инженер-программист, равна  = 0,3 кВт.

Время работы вычислительного комплекса , ч., при создании программного продукта вычислим по формуле:

,

(4.17)

где - коэффициент, учитывающий затраты времени на профилактические работы на ЭВМ;

- коэффициент коррекции времени работы вычислительного комплекса.

Для расчётов по формуле (4.17) примем =1,15 и =0,8. Подставив все численные значения параметров в формулу (4.17) получим:

ч.

Стоимость 1 кВтч электроэнергии составляет = 3,74 руб./кВтч.

Подставив все численные значения параметров в формулу (4.16) получим, что затраты на потребляемую энергию составят:

327,87 руб.

Данные для расчёта затрат на материалы и запасные части занесём в таблицу 4.2.

Таблица 4.2 - Затраты на материалы и покупные изделия

Материал, покупаемое изделие

Количество, ед.

Цена за единицу, руб.

Сумма, руб.

Тонер для картриджа принтера

1

250,00

250,00

DVD-RW 4x 4,76 Гбайт

2

50,00

100,00

Бумага офисная

2

120,00

240,00

Лицензионное программное обеспечение (Microsoft Visual Studio 2010 Professional)

1

18000,00

18000,00

Итого

18590,00

В процессе разработки использовалась система управления базами данных Microsoft SQL Server 2008 R2 Express Edition, которая является бесплатным выпуском SQL Server и может использоваться в коммерческих целях, так как лицензионное соглашение не ограничивает использование приложений, созданных с помощью Express Edition. В связи с этим затраты на использование данной СУБД в таблицу затрат не включаются.

Исходя из данных таблицы 4.2 затраты на материалы, лицензионное программное обеспечение и запасные части составят:

руб.

Затраты на техническое обслуживание и текущий ремонт вычислительной техники , руб.:

(4.18)

где - балансовая стоимость вычислительной техники, руб.;

- норма отчислений на ремонт, %;

- годовой фонд времени работы вычислительной техники, ч.

Для расчётов по формуле (4.18) примем:

? балансовая стоимость вычислительной техники 85000,00 руб.;

? норма отчислений на ремонт = 4 %;

? годовой фонд времени работы вычислительной техники при 40-часовой рабочей неделе в текущем году = 1986 ч.

Подставив все числовые значения параметров в формулу (4.18) получим, что затраты на техническое обслуживание и текущий ремонт вычислительной техники составят:

Затраты на амортизацию вычислительной техники , руб.:

(4.19)

где - балансовая стоимость вычислительной техники, руб.;

- норма отчислений на амортизацию вычислительной техники, %;

- годовой фонд времени работы вычислительной техники, ч.

Для расчётов по формуле (4.19) примем:

? балансовая стоимость вычислительной техники =27500,00 руб.;

? норма отчислений на амортизацию = 10 %;

? годовой фонд времени работы вычислительной техники при 40-часовой рабочей неделе в текущем году = 1986 ч.

Подставив все числовые значения параметров в формулу (4.19) получим, что затраты на амортизацию вычислительной техники составят:

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

Таблица 4.3 - Величины затраты, составляющих себестоимость автоматизированной информационной системы

Статья расхода

Сумма, руб.

1

2

Основная заработная плата производственного персонала

13308,35

Дополнительная заработная плата

производственного персонала

2661,67

Отчисления на страховые взносы

5429,81

Затраты на потребляемую электроэнергию

327,87

Расходы на материалы и запасные части

18590,00

Затраты на техническое обслуживание и ремонт вычислительной техники

500,27

Затраты на амортизацию вычислительной техники

1250,67

Итого

42068,64

Таким образом, полные затраты на создание программного продукта составляют 42068,64 руб.

Поскольку разработка программного продукта осуществляется сторонней организацией по техническому заданию, то оптовая цена программного продукта рассчитывается по формуле:

,

(4.20)

где - норма рентабельности, %.

Для расчётов по формуле (4.20) примем  = 15%. Подставив численное значение параметров в формулу (4.20) получим:

48378,93 руб.

Капиталовложения при внедрении программного продукта равняются его оптовой цене:

К = Ц = 48378,93 руб.

4.4 Оценка экономической эффективности внедрения программного продукта

Показатель эффекта определяет все позитивные результаты, достигаемые при использовании программного продукта. Прибыль от использования программного продукта за год эксплуатации П, руб., определяется по формуле:

, (4.21)

гдеЭ - стоимостная оценка результатов применения программного продукта в течение года, руб.;

- стоимостная оценка затрат при использовании программного продукта в течение года, руб.

Приток денежных средств из-за использования программного продукта Э, руб., в течение года может составить:

, (4.22)

где - затраты на ручную обработку информации, руб.;

- затраты на автоматизированную обработку информации, руб.;

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

Данный продукт используется системным администратором ООО «Бизнес ИТ». Заработная плата работника составляет 8000 руб/мес. Тогда, цена одного часа работы наемного работника , руб./ч., составит:

В таблице 4.4 приведены данные, полученные в ходе тестирования программы, о времени, затрачиваемом на обработку информации вручную и при использовании программного продукта за один месяц.

Таблица 4.4 - Данные о времени, затрачиваемом на обработку информации вручную и при использовании программного продукта за один месяц

Наименование работы

, ч.

, ч.

Управление межсетевым экраном

20

3

Дешифровка адресов компьютеров пользователей

15

1

Распознавание URL-адресов

10

1

Составление отчётов

25

3

Итого

70

8

В таблице 4.4 использованы следующие условные обозначения:

? - затраты на ручную обработку информации в месяц, ч.;

? - затраты на автоматизированную обработку информации в месяц, ч.;

Из таблицы 4.4 следует, что общие затраты времени на ручную обработку информации в месяц , ч., составляют = 70 ч., а общие затраты на автоматизированную обработку информации - = 8 ч.

Годовые затраты (затраты за 12 месяцев) работников ООО «Бизнес ИТ» при ручной обработке информации вычислим по формуле:

. (4.23)

Тогда годовые затраты при ручной обработке информации (по данным таблицы 4.4 общие затраты времени на ручную обработку информации = 70 ч./месяц) составят:

= 38181,82 руб.

Годовые затраты (затраты за 12 месяцев) работников при автоматизированной обработке информации вычислим по формуле:

. (4.24)

Тогда годовые затраты при автоматизированной обработке информации (по данным таблицы 4.4 общие затраты времени на ручную обработку информации = 8 ч./месяц) составят:

= 4363,2 руб.

Следовательно, годовой эффект от внедрения программного продукта, даже без учёта дополнительного экономического эффекта (= 0), на основании формулы (4.22), получится равным:

33818,62 руб.

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

На основании формулы (4.16), для персонального компьютера директора за 12 месяцев затраты на электроэнергию при потребляемой мощности компьютера составят (стоимость электроэнергии =3,74 руб./кВт-ч.):

= 107,71 руб.

Балансовая стоимость вычислительной техники ООО «Бизнес ИТ»  = 85000 руб. Тогда, на основании формулы (4.18), для серверного оборудования и рабочего места системного администратора за 12 месяцев затраты на техническое обслуживание и текущий ремонт составят:

Затраты на амортизацию вычислительной техники по формуле (4.19) составят:

Тогда, эксплуатационные затраты при использовании программного продукта составят:

107,71++ = 682,94 руб.

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

П = Э - = 33818,62 - 682,94= 33135,68 руб.

Таким образом, имеем следующий денежный поток:

0 шаг (капиталовложения) ? 48378,93 руб.;

1 шаг ? 33135,68 руб.;

2 шаг ? 33135,68 руб.;

3 шаг ? 33135,68 руб.;

4 шаг ? 33135,68 руб.;

Чистый дисконтированный доход ЧДД, руб., от использования программного продукта определим по формуле:

(4.25)

гдеN - расчётный период, год;

- прибыль от использования программного продукта за k-й год его эксплуатации, руб.;

К - капиталовложения при внедрении программного продукта, руб.

Следовательно, ЧДД, руб., при N = 4, т. е. за четыре года использования программного продукта (срок до морального старения рассматриваемой информационной системы) при норме дисконта Е = 20 % в соответствие с формулой (4.25) составит:

= 27613,02+23010,85+19175,71+15979,76 - = 50716,87 руб.

Приходим к выводу, что ЧДД положителен, т. е. проект эффективен.

Внутреннюю норму доходности проекта , %, определим по формуле:

(4.26)

где ? максимальное значение внутренней нормы дисконта, %, при которой ЧДД является положительной величиной (ЧДД > 0);

? минимальное значение внутренней нормы дисконта, %, при которой ЧДД является отрицательной величиной (ЧДД < 0);

? ЧДД, руб., вычисляемый по формуле (4.25) при подстановке нормы дисконта E = ;

? ЧДД, руб., вычисляемый по формуле (4.25) при подстановке нормы дисконта E = .

Предполагаем, что лежит в диапазоне 60 … 65 %. При норме дисконта =60 % получаем ЧДД = 1580,35 руб. Таким образом, при = 60 % ЧДД положителен.

При норме дисконта =65 % получаем ЧДД = ?1569,37 руб. Таким образом, при = 65 % ЧДД отрицателен.

Следовательно, по формуле (4.26) имеем:

Рассчитаем срок окупаемости проекта. Срок окупаемости проекта , год, найдём по формуле:

(4.27)

гдеN - максимальное количество лет, прошедших с начала эксплуатации программного продукта, в течение которых величина дохода от его использования не превысила величины капиталовложения при внедрении программного продукта;

- величины приведённых (дисконтированных) годовых эффектов за j-й год, руб., прошедший с начала эксплуатации программного продукта, вычисленные по формуле (4.25) при подстановке нормы дисконта Е = 20 %.

Величина приведённого (дисконтированного) годового эффекта за первый год расчётного периода по формуле (4.25) равна:

что меньше величины капиталовложений (К = 48378,93 руб., значит необходимо определить величину приведенного годового эффекта за второй год расчетного периода:

Сумма дохода за первые два года, прошедшие с начала эксплуатации программного продукта будет равна 50623,87 руб., что больше величины начальных капиталовложений (К = 48378,93 руб.)

Тогда, в формуле (4.27) имеем N = 1 и срок окупаемости составит:

4.5 Основные технико-экономические показатели проекта

Для удобства анализа, все основные технико-экономические показатели проекта сведены в таблицу 4.5.

Таблица 4.5 - Основные технико-экономические показатели проекта

Основные характеристики

Единицы измерения

Проект

Итоговая трудоёмкость разработки

чел-ч.

334,61

Полные затраты на создание подсистемы

руб.

42068,64

Оптовая цена программного продукта

руб.

48378,93

Годовой экономический эффект от внедрения программного продукта

руб.

33818,62

Чистый дисконтированный доход

руб.

50716,87

Внутренняя норма доходности

%

62,5

Срок окупаемости проекта

год

1,9

Выводы

1. Итоговая трудоёмкость разработки программного продукта составила 334,61 чел.-ч.;

2. Полные затраты на создание программного продукта составляют 42068,64 руб.;

3. Оптовая цена программного продукта - 48378,93 руб.;

4. Годовой эффект от внедрения программного продукта составляет 33818,62 руб.;

5. Чистый дисконтированный доход - 50716,87 руб.;

6. Внутренняя норма доходности - 62,5 %;

7. Срок окупаемости проекта 1,9 года;

8. После внедрения программного продукта ежемесячные затраты времени системного администратора ООО «Бизнес ИТ» на проведение операций по учету движения товаров сократились с 70 до 8 часов.

Таким образом, разработка информационной подсистемы «Traffic Manager» для ООО «Бизнес ИТ» является экономически эффективной и обоснованной.

ЗАКЛЮЧЕНИЕ

Основным результатом дипломного проекта является разработка информационной подсистемы «Traffic Manager», осуществляющей управление и мониторинг межсетевого экрана Microsoft Forefront Threat Management Gateway 2010, а также ее внедрение в ООО «Бизнес ИТ», г. Ставрополь. Это позволило оперативно решать возникающие проблемы и объективно анализировать эффективность работы сотрудников, а также точно оценить интенсивность использования канала Интернет.

Разработанная в данном проекте подсистема использует все современные технологии. В качестве среды разработки использовалась Microsoft Visual Studio 2010 Professional, а также в СУБД Microsoft SQL Server 2008 R2, которая уже имелась на предприятии..

После внедрения программного продукта ежемесячные затраты времени сотрудников предприятия ООО «Бизнес ИТ» на выполнение работ, связанных с обработкой заказов сократились с 70 до 8 часов.

Таким образом, можно сделать заключительный вывод о том, что разработка информационной подсистемы «Traffic Manager» является экономически обоснованной и эффективной.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Шилдт, Г. Полный справочник по С# [Текст]. М.: Издательский дом «ВильямсInAdmin.r, 2004. - 752с.

2. Троелсен, Э. С# и платформа .NET. Библиотека программиста [Текст]. СПб.: Питер, 2004. - 796с.

3. Анфилатов, В.С. Системный анализ в управление [Текст]. М.: Финансы и статистика, 2002. - 700с.

4. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений [Текст]. СПб.: КОРОНА принт, 2000. - 416с.

5. Кренке, Г. Теория и практика построения баз данных [Текст]. СПб.: Питер, 2001. - 858с.

6. Ульман Дж., Уидом Дж. Введение в системы баз данных [Текст]. М.: Лори, 2000. - 374с.

7. Microsoft Forefront Threat Management Gateway 2010 SDK [Электронный ресурс] // Библиотека для разработчиков MSDN. - 2011. - Режим доступа к электрон, дан.: http://msdn.microsoft.com/en-us/library/ff827462 (v=VS.85).aspx

8. Свободная энциклопедия Википедия [Электронная энциклопедия] // Сетевая энциклопедия Wikipedia. 2000. - Forefront TMG 2010: http://ru.wikipedia.org/wiki/TMG . - Загл. с экрана.

9. Информационный портал IsaServer.org - все для межсетевых экранов [электронный ресурс]: - Режим доступа: http://www.isaserver.org - Загл. с экрана.

10. Информационный портал ITband.ru - Статьи об IT. Доступно о сложном [электронный ресурс]: - Режим доступа: http://www.itband.ru - Загл. с экрана.

11. Информационный портал technet.microsoft.com - Центральный ресурс для ИТ-специалиста [электронный ресурс]: - Режим доступа: http://www.technet.microsoft.com - Загл. с экрана.

12. Информационный портал Forefront-TMG.ru - Microsoft Forefront TMG [электронный ресурс]: - Режим доступа: http://www.forefnt-tmg.ru - Загл. с экрана.

13. Информационный портал OSzone.net - компьютерный информационный портал [электронный ресурс]: - Режим доступа: http://www.oszone.net - Загл. с экрана.

14. Информационный портал W2A.ru - социальная сеть системных администраторов [электронный ресурс]: - Режим доступа: http://www.w2a.ru - Загл. с экрана.

15. Информационный портал InAdmin.ru - просто о сложном [электронный ресурс]: - Режим доступа: http://www.inadmin.ru - Загл. с экрана.

16. Информационный портал Microsoft Learning - учебный центр Microsoft для ИТ-специалистов [электронный ресурс]: - Режим доступа: http://www.microsoft.com/learning/ru/ru/default.aspx - Загл. с экрана.

17. Форум по продуктам компании Microsoft social.technet.microsoft.com - форум ISA Server и Forefront TMG [электронный ресурс]: - Режим доступа: http://social.technet.microsoft.com/Forums/ru-RU/isaru/threads - Загл. с экрана.

18. Информационный портал mka.ru - Мир компьютерной автоматизации [электронный ресурс]: - Режим доступа: http://www.mka.ru - Загл. с экрана.

19. Информационный портал Rtsoft.ru - средства и системы автоматизации [электронный ресурс]: - Режим доступа: http://www.rtsoft.ru - Загл. с экрана.

20. Информационный портал Asutp.ru - cредства и системы компьютерной автоматизации [электронный ресурс]: - Режим доступа: http://www.asutp.ru - Загл. с экрана.

ПРИЛОЖЕНИЯ

Приложение А

Листинги скриптов автоматического создания таблиц

Листинг файла fwsrv.sql

IF NOT EXISTS (SELECT name FROM sysobjects WHERE name = 'sp_batch_insert' AND type = 'P')

exec sp_executesql N'CREATE PROCEDURE sp_batch_insert @tempTableName nvarchar(100), @tableName nvarchar(100) AS

EXECUTE (''INSERT into ['' + @tableName + ''] SELECT * FROM ['' + @tempTableName + '']'')

EXECUTE (''truncate table ['' + @tempTableName + '']'')'

GO

IF NOT EXISTS (SELECT name FROM sysobjects WHERE name = 'sp_batch_discard' AND type = 'P')

exec sp_executesql N'CREATE PROCEDURE sp_batch_discard @tempTableName nvarchar(100) AS

EXECUTE (''truncate table ['' + @tempTableName + '']'')'

GO

CREATE TABLE FirewallLog (

[servername] nvarchar(128),

[logTime] datetime,

[protocol] varchar(32),

[SourceIP] uniqueidentifier,

[SourcePort] int,

[DestinationIP] uniqueidentifier,

[DestinationPort] int,

[OriginalClientIP] uniqueidentifier,

[SourceNetwork] nvarchar(128),

[DestinationNetwork] nvarchar(128),

[Action] smallint,

[resultcode] int,

[rule] nvarchar(128),

[ApplicationProtocol] nvarchar(128),

[Bidirectional] smallint,

[bytessent] bigint,

[bytessentDelta] bigint,

[bytesrecvd] bigint,

[bytesrecvdDelta] bigint,

[connectiontime] int,

[connectiontimeDelta] int,

[DestinationName] varchar(255),

[ClientUserName] varchar(514),

[ClientAgent] varchar(255),

[sessionid] int,

[connectionid] int,

[Interface] varchar(25),

[IPHeader] varchar(255),

[Payload] varchar(255),

[GmtLogTime] datetime,

[ipsScanResult] smallint,

[ipsSignature] nvarchar(128),

[NATAddress] uniqueidentifier,

[FwcClientFqdn] varchar(255),

[FwcAppPath] varchar(260),

[FwcAppSHA1Hash] varchar(41),

[FwcAppTrusState] smallint,

[FwcAppInternalName] varchar(64),

[FwcAppProductName] varchar(64),

[FwcAppProductVersion] varchar(20),

[FwcAppFileVersion] varchar(20),

[FwcAppOrgFileName] varchar(64),

[InternalServiceInfo] int,

[ipsApplicationProtocol] nvarchar(128),

[FwcVersion] varchar(32)

)

CREATE CLUSTERED INDEX [IX_FirewallLog_DateTime] ON [FirewallLog]([logTime]) ON [PRIMARY]

GO

Листинг файла w3proxy.sql

IF NOT EXISTS (SELECT name FROM sysobjects WHERE name = 'sp_batch_insert' AND type = 'P')

exec sp_executesql N'CREATE PROCEDURE sp_batch_insert @tempTableName nvarchar(100), @tableName nvarchar(100) AS

EXECUTE (''INSERT into ['' + @tableName + ''] SELECT * FROM ['' + @tempTableName + '']'')

EXECUTE (''truncate table ['' + @tempTableName + '']'')'

GO

IF NOT EXISTS (SELECT name FROM sysobjects WHERE name = 'sp_batch_discard' AND type = 'P')

exec sp_executesql N'CREATE PROCEDURE sp_batch_discard @tempTableName nvarchar(100) AS

EXECUTE (''truncate table ['' + @tempTableName + '']'')'

GO

CREATE TABLE WebProxyLog (

[ClientIP] uniqueidentifier,

[ClientUserName] nvarchar(514),

[ClientAgent] varchar(128),

[ClientAuthenticate] smallint,

[logTime] datetime,

[service] smallint,

[servername] nvarchar(32),

[referredserver] varchar(255),

[DestHost] varchar(255),

[DestHostIP] uniqueidentifier,

[DestHostPort] int,

[processingtime] int,

[bytesrecvd] bigint,

[bytessent] bigint,

[protocol] varchar(13),

[transport] varchar(8),

[operation] varchar(24),

[uri] varchar(2048),

[mimetype] varchar(32),

[objectsource] smallint,

[resultcode] int,

[CacheInfo] int,

[rule] nvarchar(128),

[FilterInfo] nvarchar(256),

[SrcNetwork] nvarchar(128),

[DstNetwork] nvarchar(128),

[ErrorInfo] int,

[Action] varchar(32),

[GmtLogTime] datetime,

[AuthenticationServer] varchar(255),

[ipsScanResult] smallint,

[ipsSignature] nvarchar(128),

[ThreatName] varchar(255),

[MalwareInspectionAction] smallint,

[MalwareInspectionResult] smallint,

[UrlCategory] int,

[MalwareInspectionContentDeliveryMethod] smallint,

[UagArrayId] varchar(20),

[UagVersion] int,

[UagModuleId] varchar(20),

[UagId] int,

[UagSeverity] varchar(20),

[UagType] varchar(20),

[UagEventName] varchar(60),

[UagSessionId] varchar(50),

[UagTrunkName] varchar(128),

[UagServiceName] varchar(20),

[UagErrorCode] int,

[MalwareInspectionDuration] int,

[MalwareInspectionThreatLevel] smallint,

[InternalServiceInfo] int,

[ipsApplicationProtocol] nvarchar(128),

[NATAddress] uniqueidentifier,

[UrlCategorizationReason] smallint,

[SessionType] smallint,

[UrlDestHost] varchar(255),

[SrcPort] int,

[SoftBlockAction] nvarchar(128)

)

CREATE CLUSTERED INDEX [IX_WebProxyLog_DateTime] ON [WebProxyLog]([logTime]) ON [PRIMARY]GO

Приложение Б

Листинг функции преобразования ip-адреса компьютера

Листинг файла fnIpAddressToText.sql

CREATE FUNCTION [dbo].[fnIpAddressToText]

(

@Ipv6Address [uniqueidentifier]

)

RETURNS varchar(40) AS

BEGIN

DECLARE @strInAddress varchar(40)

DECLARE @strOutAddress varchar(40)

SET @strInAddress = LOWER(CONVERT(varchar(40), @Ipv6Address))

SET @strOutAddress = ''

IF (SUBSTRING(@strInAddress, 10, 4) = 'ffff')

BEGIN

-- ipv4 (hex to int conversion)

DECLARE @IsNum int, @ZERO int, @IsAlpa int

set @ZERO = ASCII('0')

set @IsNum = ASCII('9')

set @IsAlpa = ASCII('a') - 10

DECLARE @intH int, @intL int

SET @intH = ASCII(SUBSTRING(@strInAddress, 1, 1))

IF (@intH <= @IsNum) SET @intH = @intH - @ZERO ELSE SET @intH = @intH - @IsAlpa

SET @intL = ASCII(SUBSTRING(@strInAddress, 2, 1))

IF (@intL <= @IsNum) SET @intL = @intL - @ZERO ELSE SET @intL = @intL - @IsAlpa

SET @strOutAddress = CONVERT(varchar(3), @intH * 16+ @intL)+'.'

SET @intH = ASCII(SUBSTRING(@strInAddress, 3, 1))

IF (@intH <= @IsNum) SET @intH = @intH - @ZERO ELSE SET @intH = @intH - @IsAlpa

SET @intL = ASCII(SUBSTRING(@strInAddress, 4, 1))

IF (@intL <= @IsNum) SET @intL = @intL - @ZERO ELSE SET @intL = @intL - @IsAlpa

SET @strOutAddress = @strOutAddress + CONVERT(varchar(3), @intH * 16 + @intL) + '.'

SET @intH = ASCII(SUBSTRING(@strInAddress, 5, 1))

IF (@intH <= @IsNum) SET @intH = @intH - @ZERO ELSE SET @intH = @intH - @IsAlpa

SET @intL = ASCII(SUBSTRING(@strInAddress, 6, 1))

IF (@intL <= @IsNum) SET @intL = @intL - @ZERO ELSE SET @intL = @intL - @IsAlpa

SET @strOutAddress = @strOutAddress + CONVERT(varchar(3), @intH * 16 + @intL) + '.'

SET @intH = ASCII(SUBSTRING(@strInAddress, 7, 1))

IF (@intH <= @IsNum) SET @intH = @intH - @ZERO ELSE SET @intH = @intH - @IsAlpa

SET @intL = ASCII(SUBSTRING(@strInAddress, 8, 1))

IF (@intL <= @IsNum) SET @intL = @intL - @ZERO ELSE SET @intL = @intL - @IsAlpa

SET @strOutAddress = @strOutAddress + CONVERT(varchar(3), @intH * 16 + @intL)

END

ELSE

BEGIN

-- ipv6

SET @strOutAddress = @strOutAddress + SUBSTRING(@strInAddress, 1, 4) + ':' + SUBSTRING(@strInAddress, 5, 4) + ':' + SUBSTRING(@strInAddress, 10, 4) + ':' + SUBSTRING(@strInAddress, 15, 4) + ':' + SUBSTRING(@strInAddress, 20, 4) + ':'+ SUBSTRING(@strInAddress, 25, 4) + ':'+ SUBSTRING(@strInAddress, 29, 4) + ':' + SUBSTRING(@strInAddress, 33, 4)

END

---- guid sample '6F9619FF-8B86-D011-B42D-FFF34FC964FF'

RETURN @strOutAddress

END

Приложение В

Листинг создания библиотеки для веб-фильтра

Листинг файла URLConverter.cpp

#include <windows.h>

#include <httpfilt.h>

static DWORD OnPreprocHeaders (PHTTP_FILTER_CONTEXT pfc, PHTTP_FILTER_PREPROC_HEADERS pHeaderData);

static DWORD OnLogging(PHTTP_FILTER_CONTEXT pfc, PHTTP_FILTER_LOG pLogData);

BOOL WINAPI TerminateFilter (DWORD dwFlags)

{

UNREFERENCED_PARAMETER(dwFlags);

return TRUE;

}

BOOL WINAPI GetFilterVersion (PHTTP_FILTER_VERSION pVer)

{

if (pVer == NULL)

{

SetLastError(ERROR_INVALID_PARAMETER);

return FALSE;

}

pVer->dwFilterVersion = HTTP_FILTER_REVISION;

pVer->dwFlags = SF_NOTIFY_PREPROC_HEADERS | SF_NOTIFY_LOG;

return TRUE;

}

DWORD WINAPI HttpFilterProc (PHTTP_FILTER_CONTEXT pfc, DWORD NotificationType, LPVOID pvNotification)

{

switch (NotificationType)

{

case SF_NOTIFY_PREPROC_HEADERS:

return OnPreprocHeaders(pfc, (PHTTP_FILTER_PREPROC_HEADERS)pvNotification);

case SF_NOTIFY_LOG:

return OnLogging(pfc, (PHTTP_FILTER_LOG)pvNotification);

default:

SetLastError(ERROR_INVALID_PARAMETER);

return SF_STATUS_REQ_ERROR;

}

}

static DWORD OnPreprocHeaders (PHTTP_FILTER_CONTEXT pfc, PHTTP_FILTER_PREPROC_HEADERS pHeaderData)

{

DWORD hostlen = 200;

DWORD cbSize = 1024;

DWORD dwReserved = 0;

if (NULL == pfc || NULL == pHeaderData)

{

SetLastError( ERROR_INVALID_PARAMETER);

return SF_STATUS_REQ_ERROR;

}

if (NULL == pfc->pFilterContext)

{

pfc->pFilterContext = pfc->AllocMem(pfc, cbSize, dwReserved);

if (NULL == pfc->pFilterContext)

{

pfc->ServerSupportFunction(pfc, SF_REQ_DISABLE_NOTIFICATIONS, NULL, SF_NOTIFY_PREPROC_HEADERS | SF_NOTIFY_LOG, 0);

SetLastError(ERROR_NOT_ENOUGH_MEMORY);

return SF_STATUS_REQ_ERROR;

}

}

if (!pHeaderData->GetHeader(pfc, "Host:", pfc->pFilterContext, &hostlen))

strcpy((CHAR*)pfc->pFilterContext, "hostname.not.found");

else

{

if (hostlen < 2)

strcpy((CHAR*)pfc->pFilterContext, "hostname.is.empty");

if (hostlen > 100)

strcpy((CHAR*)pfc->pFilterContext, "hostname.too.long");

}

return SF_STATUS_REQ_NEXT_NOTIFICATION;

}

static DWORD OnLogging (PHTTP_FILTER_CONTEXT pfc, PHTTP_FILTER_LOG pLogData)

{

char hostname[210];

CHAR* pSource;

CHAR* pDest;

int slash = 0;

int i;

if (NULL == pfc || NULL == pLogData)

{

SetLastError(ERROR_INVALID_PARAMETER);

return SF_STATUS_REQ_ERROR;

}

if (NULL != pfc->pFilterContext && NULL != pLogData->pszTarget)

{

strncpy(hostname, (CHAR*)pfc->pFilterContext, 200);

hostname[200] = '\0';

pSource = (CHAR*)pLogData->pszTarget;

pDest = (CHAR*)pfc->pFilterContext;

for (i = 0; i < 820; i++)

{

if (*pSource == '\0') break;

if (slash == 2)

{

strcpy(pDest, hostname);

while(*pDest != '\0') pDest++;

while(*pSource != '/' && *pSource !='\0'&&i <820)

{

pSource++;

i++;

}

if (*pSource == '/')

{

while (*pSource != '\0' && i < 820)

{

*pDest = *pSource;

pSource++;

pDest++;

i++;

}

}

break;

}

*pDest = *pSource;

if (*pSource == '/') slash++; else slash = 0;

pSource++;

pDest++;

}

*pDest = '\0';

pLogData->pszTarget = (const CHAR*)pfc->pFilterContext;

}

return SF_STATUS_REQ_NEXT_NOTIFICATION;

}

Приложение Г

Листинг приложения Traffic Manager

Листинг файла MainForm.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Form1

{

public partial class frmView : Form

{

public frmView()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "dBClientDataSet.ClientBase". При необходимости она может быть перемещена или удалена.

this.clientBaseTableAdapter.Fill(this.dBClientDataSet.ClientBase);

// TODO: данная строка кода позволяет загрузить данные в таблицу "dBClientDataSet.State". При необходимости она может быть перемещена или удалена.

this.stateTableAdapter.Fill(this.dBClientDataSet.State);

// TODO: данная строка кода позволяет загрузить данные в таблицу "dBClientDataSet.Report". При необходимости она может быть перемещена или удалена.

this.ReportTableAdapter.Fill(this.dBClientDataSet.Report);

}

private void frmView_Activated(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "dBClientDataSet.ClientBase". При необходимости она может быть перемещена или удалена.

this.clientBaseTableAdapter.Fill(this.dBClientDataSet.ClientBase);

FormatDGR();

}

private void fillToolStripButton_Click(object sender, EventArgs e)

{

try

{

this.ReportTableAdapter.Fill(this.dBClientDataSet.Report);

}

catch (System.Exception ex)

{

System.Windows.Forms.MessageBox.Show(ex.Message);

}

}

private void cmbReport_KeyDown(object sender, KeyEventArgs e)

{

cmbReport.DroppedDown = true;

}

private void btnNewClient_Click(object sender, EventArgs e)

{

var f = new frmNewClient(Convert.ToInt32(cmbReport.SelectedValue));

f.ShowDialog();

}

private void btnChangeClient_Click(object sender, EventArgs e)

{

var f = new frmChangeClient(Convert.ToInt32(dgrClients.Rows[dgrClients.CurrentCell.RowIndex].Cells[0].Value));

f.ShowDialog();

}

private void dgrClients_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)

{

var f = new frmChangeClient(Convert.ToInt32(dgrClients.Rows[dgrClients.CurrentCell.RowIndex].Cells[0].Value));

f.ShowDialog();

}

#Report Поиск

void FormatDGR()

{

for (int i = 0; i < dgrClients.RowCount; i++)

{

if (dgrClients.Rows[i].Cells[1].Value.ToString()=="1")

{

dgrClients.Rows[i].Cells[2].Style.BackColor = System.Drawing.Color.FromName("white");

dgrClients.Rows[i].Cells[3].Style.BackColor = System.Drawing.Color.FromName("white");

}

else if (dgrClients.Rows[i].Cells[1].Value.ToString()=="2")

{

dgrClients.Rows[i].Cells[2].Style.BackColor = System.Drawing.Color.FromArgb(192, 192, 255);


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.