- •Реферат
- •Введение
- •Описание объекта автоматизации
- •Краткая характеристика объекта автоматизации
- •Организационная структура ооо «рн-Информ»
- •Функциональные особенности ооо «рн-Информ»
- •Описание решаемой проблемы
- •Постановка задачи
- •Структурно-функциональная схема приложения
- •Обзор существующего программного обеспечения
- •Система мониторинга «The Dube»
- •Система мониторинга «Zabbix»
- •Система мониторинга «Nagios»
- •Система мониторинга prtg (Paessler Router Traffic Grapher)
- •Система мониторинга AggreGate Network Manager
- •Система мониторинга «rn_Monitoring»
- •Сравнительный анализ возможностей различных систем
- •Описание разработанного программного обеспечения
- •Описание протокола snmp
- •Компоненты.
- •Соединители
- •Архитектура приложения
- •Модуль DomainModel
- •Модуль Dal
- •Ядро системы
- •Модуль «Пользовательский интерфейс»
- •Контроллеры
- •Конфигураторы пользовательского интерфейса
- •Вспомогательные классы пользовательского интерфейса
- •Выбор технологий для разработки
- •Выбор платформы разработки
- •Выбор языка программирования
- •Выбор технологии разработки веб - приложения
- •Выбор системы управления базой данных
- •Выбор технологии разработки пользовательского интерфейса
- •Технология Ajax.
- •Проектирование базы данных программного обеспечения
- •Перечень таблиц
- •Входные и выходные данные
- •Описание функционала разработанного веб-приложения
- •Общий алгоритм работы системы
- •Вкладка «Отчет»
- •Описание интерфейса роли «Администратор»
- •Вкладка «Параметры»
- •Раздел «Пользователи»
- •Раздел «Заказчики»
- •Раздел «Типы устройств»
- •Раздел «Производители устройств»
- •Раздел «Модели устройств»
- •Раздел «Устройства»
- •Раздел «Оповещения»
- •Раздел «отчеты»
- •Заключение
- •Список литературы
Модуль Dal
DAL – модуль содержащий в себе реализацию интерфейсов репозиториев описанных в DomainModel.DalInterfaces. Репозиторий – это класс, обеспечивающий операции с таблицей БД. Данный модуль можно разделить на совокупность следующих классов:
SnmpDbContext – EntityFramework (EF) контекс для работы с базой данных;
DatabaseInitializer – класс для создания базы данных;
DalInit – класс для инициализации DAL. Связывает интерфейсы репозиториев с конкретными классами (используется IOC контейнер StructureMap), настраивает маппинг EF сущностей с POCO объектами (используется AutoMapper);
Repos – содержит в себе реализации конкретных репозиториев и вспомогательные классы. Для каждого интерфейса, описанного в DomainModel.DalInterfaces есть собственная реализация.
Декомпозиция модуля Dal приведена на рисунке 3.8.
Рис.3.8.Декомпозиция модуля DAL
Компоненты инициализации базы данных отображены на рисунке 3.9.
Рис.3.9.Компоненты инициализации базы данных
Взаимодействие классов-репозиториев отображены на рисунке 3.10.
Рис.3.10.Взаимодействие классов - репозиториев
Описание репозиториев:
BaseRepository – базовый репозиторий для всех других;
ConfigRepo – репозиторий для загрузки устройств в кэш;
CustomersRepository – репозиторий для манипулирования объектами заказчиков;
DeviceItemsHistoryRepository – репозиторий для манипулирования объектами истории изменения параметров;
DeviceItemsRepository – репозиторий параметров устройства;
DeviceModelsRepository – репозиторий моделей устройств;
DevicesItemsRepository – репозиторий конкретных параметров устройств;
DeviceRepository – репозиторий устройств;
DeviceTypesRepository – репозиторий типов устройств;
EmailNotificationsRepository – репозиторий оповещений по email;
EmailsRepository – репозиторий адресов электронной почты;
MakersRepository – репозиторий производителей;
NotificationsRepository – репозиторий конкретных оповещений;
PhoneNotifications – репозиторий оповещений по телефону;
PhoneNumbersRepository – репозиторий номеров телефонов;
ReportParametersDataTypesRepository – репозиторий типов данных параметров отчетов;
ReportParametersRepository – репозиторий параметров отчетов;
ReportsRepository – репозиторий отчетов.
Ядро системы
Основные классы системы:
SnmpScanServer – класс, инкапсулирующий в себе алгоритм опроса устройств, уведомления пользователя об изменении величины параметров согласно заданной конфигурации;
NotificationExecutor – класс, инкапсулирующий в себе логику уведомления пользователей;
EmailEntityComparer – вспомогательный класс;
PhoneNumberComparer – вспомогательный класс.
Схема взаимодействия классов изображена на рисунке 3.11.
Рис.3.11.Декомпозиция модуля Core
Модуль «Пользовательский интерфейс»
UI – модуль содержит в себе веб - формы и вспомогательные классы. Используется паттерн MVC:
Models – содержит в себе модель для отображения пользователю Связана с моделью в DomainModel.EfModels по идентификаторам;
Controllers – контроллеры (обработчики) действий пользователя. Для каждого элемента модели есть свой контроллер;
UI – классы для конфигурирования приложения;
Code – содержит классы, инкапсулирующие логику веб - форм;
Helpers – вспомогательные классы.
Декомпозиция пользовательского интерфейса отображена на рисунке 3.12.
Рис.3.12.Декомпозиция модуля UI.
Основные модели и их взаимодействие отображены на рисунке 3.13.
Рис.3.13.Схема взаимодействия компонентов пользовательского интерфейсаI
Модели
Описание моделей:
CustomerModel – модель заказчика;
DeviceModel – модель устройства;
DeviceModelModel – модель моделей устройства;
DeviceTypeModel – модель типа устройства;
EmailModel – модель адресов электронной почты;
EmailNotificationModel – модель оповещений по email;
ItemModel – модель параметра устройства;
MakerModel – модель производителя;
NotificationModel - модель оповещения;
PhoneNotificationModel – модель оповещения по телефону;
PhoneNumberModel – модель номера телефона;
ReportModel – модель отчета;
ReportParameterModel – модель параметра отчета;
UserModel – модуль пользователя;
WarningModel – модель аварийного устройства.
