Тип работы:
Предмет:
Язык работы:


Система уведомлений для модемов компании “Систематикс”

Работа №169315

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы41
Год сдачи2022
Стоимость4330 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
3
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 4
1 Анализ задания 6
1.1 Анализ существующих аналогов 6
1.2 Спецификация требований на приложение 7
1.2.1 Функциональные требования 7
1.2.2 Структуры данных приложения 9
1.4 Выбор инструментов 13
1.5 Выводы по главе 13
2 Этапы проектирования 14
2.1 Прецеденты 14
2.2 База данных 18
2.3 Алгоритмы приложения 22
2.3.1 Алгоритм получения текущего состояния триггеров 22
2.3.2 Алгоритм добавления новых уведомлений 26
2.4 Диаграмма классов 29
2.5 Выводы по главе 29
3 Реализация 30
3.1 API на сайте мониторинга 30
3.1.1 Конечные точки 30
3.2 Окружение 32
3.3 Alertd 33
3.3.1 Инициализация 33
3.3.2 Формирование списка уведомлений 33
3.3.3 Проверка состояний 34
3.4 Alertd Sender 34
3.5 Завершение приложений 35
ЗАКЛЮЧЕНИЕ 37
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 39
ПРИЛОЖЕНИЕ А 40


Интернет в современном мире позволяет каждому желающему в любой момент обратиться к неограниченной базе знаний, чтобы совершенствоваться и открывать для себя что-то новое. По мере роста пропускающих способностей, стали появляться ресурсы иного характера, такие как: youtube.com, twitch.tv и т. д., где мы можем потреблять как развлекательный, так и познавательный контент в превосходном качестве и без задержек.
Но для того, чтобы пользоваться этими ресурсами, нужны некоторые устройства. Это может быть стационарный роутер (маршрутизатор) или телефон с GSM (Global System for Mobile Communications) модулем, который может выходить в сеть посредством сотовой связи (Cellular Network).
Проблема заключается в том, что роутер нельзя взять с собой, так как он соединен с сетью провайдера и, за счет этого, маршрутизируется в глобальную сеть. Телефон же, с одним GSM модулем, редко может дать желаемую скорость интернет-подключения, а где-то, и вовсе, какую бы то ни было скорость. Это связано с тем, что разным операторам предоставлены разные базовые станции, и зоны покрытия сотовой связи отличаются от провайдера к провайдеру.
Эту проблему и решает продукт компании «Систематикс» - Мульти Модем (Мульти Роутер), далее ММ. ММ объединяет в себе всю вариативность настроек обычного домашнего роутера (DHCP, бриджевание интерфейсов, NAT, Firewall и др.) и 4 LTE (Long-Term Evolution) модуля, которые устанавливаются в современные мобильные устройства.
Благодаря тому, что есть возможность использовать до 4 SIM-карт, зона доступности сотовой связи увеличивается, а скорость достигается за счет агрегации каналов связи нескольких SIM-карт.
Покупателями подобных устройств зачастую являются юридические лица, такие как владельцы заправочных станций или передвижных медицинских центров.
Так как устройства позволяют пользователям выходить в интернет практически из любой местности, где ММ попадает в зону покрытия как минимум одного из операторов, за ними требуется постоянный мониторинг. В случае сбоев или полного выхода ММ из строя, заказчик, по понятным причинам, будет недоволен.
Для того, чтобы минимизировать подобные случаи, на помощь приходят системы мониторинга, которые, с некоторой периодичностью проверяют состояние устройств, и в случае, если, какой-нибудь из параметров достигнет критического значения, отправляют уведомление техподдержке, или, непосредственно, пользователю, чтобы, после согласования, оперативно устранить неполадку.
Целью работы является разработка ПО, которое позволит следить за состояниями ММ и уведомлять пользователя или техподдержку о сбоях в работе устройств. Приложение представляет собой демона, задача которого заключается в постоянном мониторинге базы данных на предмет каких-либо изменений в состоянии Модема или группы Модемов, в зависимости от выбора пользователя. Для достижения цели в работе решаются следующие задачи:
- проанализировать техническое задание на разработку приложения «Alertd», основываясь на прецедентах. Выполнить проектирование и разработку ПО.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В процессе написания выпускной квалификационной работы:
- была разработана архитектура БД, которая позволила бы расширять функционал по мере надобности без непосредственного изменения кода;
- разработано API, которое, вкупе с пользовательским интерфейсом, дает возможность легко конфигурировать объекты уведомлений;
- были описаны структуры, соответствующие моделям в БД;
- был разработан базовый алгоритм, который собирает достаточные данные моделей для проверки состояний выбранных пользователем устройств или групп устройств и добавления записи в очередь на отправку;
- была разработана логика, которая позволяет с легкостью добавлять больше возможных параметров для отслеживания без времени простоя;
- в алгоритм заложена возможность отложенной отправки сообщения благодаря тому, что при добавлении записи в очередь на отправку вместе с данными о получателе и другой необходимой информацией, в базе данных обозначается временная метка, которая описывает время, когда требуется отправить сообщение. Благодаря этому механизму шанс ложной отправки уведомления сводится к минимуму;
- благодаря полю daemon_id в модели уведомления и соответствующей логике, достигается возможность горизонтального масштабирования, то есть распределение обработки уведомлений на несколько экземпляров Alertd;
- был разработан отправитель уведомлений. Он выбирает все записи из очереди на отправку, уведомление по которым еще не было отправлено, получает тип канала связи (telegram, email, ... реализован только telegram) и сверяет время, когда требуется отправить уведомление. Если текущее время становится меньше, чем то, что было обозначено в БД, уведомление отправляется и помечается, как отправленное в случае, если не возникло ошибок при отправке;
- приложение было собрано в Docker образ, в основе которого лежит ОС Alpine. Данные о настройке экземпляра, именах хостов БД и пароли записываются внутрь контейнера в виде переменных окружения.
В итоге решены все поставленные задачи, получен Акт о внедрении в производственный процесс компании Систематикс (ПРИЛОЖЕНИЕ А). В настоящий момент, приложение используется компанией в полной мере.



1. Ресурс мониторинга за Мульти Модемами [Электронный ресурс]: - Режим доступа:https://my.sistematics.ru/#/modem-list
2. Система уведомления Zabbix [Электронный ресурс]: - Режим доступа: https://www.zabbix.com/ru
3. SNMP [Электронный ресурс]: - Режим доступа:
https://selectel.ru/blog/snmp/
4. Система контейнерной виртуализации Docker [Электронный ресурс]: - Режим доступа:https://www.docker.com
5. Pprof [Электронный ресурс]: - Режим доступа:
https: //github.com/goo gle/pprof
6. Сайт компании «Систематикс» [Электронный ресурс]: - Режим доступа: http://sistematics.ru
7. Язык программирования Golang [Электронный ресурс]: - Режим доступа: https://go.dev
8. Язык программирования PHP [Электронный ресурс]: - Режим доступа: https://www.php.net
9. База данных Clickhouse [Электронный ресурс]: - Режим доступа: https://clickhouse.com/docs/en/intro
10. База данных MariaDB [Электронный ресурс]: - Режим доступа: https: //mariadb.org/documentation/
11. Обработка системных сигналов с использованием языка Golang
[Электронный ресурс]: - Режим доступа:
https://stackoverflow.com/questions/18106749/golang-catch-signals


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ