В рамках выпускной квалификационной работы был спроектирован и реализован модуль уведомлений серверной части системы поддержки принятия решений.
Был проведён анализ предметной области и рассмотрены существующие аналоги. Выявлено, что большинство из них не соответствует требованиям проекта, поскольку требуют наличия доступа к интернету. Вследствие этого возникла необходимость создания собственного решения, работающего в условиях локальной сети.
Для реализации модуля был выбран язык программирования Java и фреймворк Spring. В качестве протокола передачи данных использованы WebSocket и STOMP.
Проведено интеграционное тестирование модуля, в результате которого была подтверждена корректная работа всех компонентов как отдельно, так и в связке с другими модулями системы. Разработанный модуль успешно интегрирован в систему поддержки принятия решений.
СОДЕРЖАНИЕ
СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ .......................................................7
ВВЕДЕНИЕ ...................................................................................................................8
ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ .................................................. 10
1.1. Описание предметной области, обоснование актуальности ....................... 10
1.2. Требования к реализуемому модулю ............................................................. 11
1.3. Обзор имеющихся аналогов ........................................................................... 12
1.3.1. Pusher ............................................................................................................. 12
1.3.2. PubNub ........................................................................................................... 13
1.3.3. Ably Realtime ................................................................................................. 13
1.3.4. Выводы по рассмотренным аналогам ........................................................ 14
1.4. Постановка задачи ........................................................................................... 14
ГЛАВА 2. АНАЛИЗ И ВЫБОР СРЕДСТВ РАЗРАБОТКИ .................................. 16
2.1. Выбор языка программирования.................................................................... 16
2.1.1. Описание языка программирования Java ................................................... 16
2.1.2. Описание языка программирования Kotlin ................................................ 18
2.1.3. Сравнение языков программирования ....................................................... 20
2.2. Выбор среды разработки ................................................................................. 21
2.3. Анализ и выбор сторонних модулей и компонентов ................................... 22
2.3.1. Описание фреймворка Spring ...................................................................... 22
2.3.2. Выбор технологии отправки уведомлений ................................................ 24
2.3.3. Описание протокола STOMP ...................................................................... 27
2.4. Разработка архитектуры программного средства ........................................ 28
2.5. Разработка структуры базы данных ............................................................... 30
ГЛАВА 3. ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ПРОГРАММНОГО СРЕДСТВА ................. 33
3.1. Разработка бизнес-объектов ........................................................................... 33
3.2. Разработка слоя доступа к данным ................................................................ 37
3.3. Реализация функциональности слоя бизнес-логики .................................... 39
3.4. Разработка слоя представления ...................................................................... 51
ГЛАВА 4. ТЕСТИРОВАНИЕ................................................................................... 55
4.1. Интеграционное тестирование модуля .......................................................... 55
4.2. Интеграционное тестирование модуля в составе серверной части ............ 61
ЗАКЛЮЧЕНИЕ ......................................................................................................... 64
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ............................................... 66
Приложение 1. Содержимое файла NotificationEntity.java ................................... 68
Приложение 2. Содержимое файла NotificationEvent.java .................................... 69
Приложение 3. Содержимое файла UserChannelInterceptor.java .......................... 70
Приложение 4. Содержимое файла WsNotificationSender.java ............................ 71
Приложение 5. Содержимое файла MailNotificationSender.java .......................... 72
Приложение 6. Содержимое файла NotificationSenderSource.java ....................... 74
Приложение 7. Содержимое файла NotificationEventManager.java ..................... 75
Приложение 8. Содержимое файла NotificationServiceImpl.java ......................... 80
Приложение 9. Содержимое файла NotificationV1Controller.java........................ 82
Приложение 10. Содержимое файла NotificationTests.kt ...................................... 84
Приложение 11. Код тестов для модуля уведомлений ApplicationTests.kt ......... 92
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Ably Realtime: [Электронный ресурс]. URL: . (дата обращения 15.11.2024)
2. Email. Spring: [Электронный ресурс] // Spring. URL: . (дата обращения 13.02.2025)
3. Get started with Kotlin: [Электронный ресурс] // Kotlin. URL: (дата обращения 05.12.2024)
4. Getting Started with Java: [Электронный ресурс] // Java. URL: . (дата обращения 05.12.2024)
5. Intro to WebSockets with Spring: [Электронный ресурс] // Baeldung. URL: . (дата обращения 04.02.2025)
6. Junior of IntelliJ IDEA: [Электронный ресурс] // Хабр. URL: . (дата обращения 05.12.2024)
7. Krossbow: [Электронный ресурс]. URL: . (дата обращения 26.04.2025)
8. Mockito framework: [Электронный ресурс]. URL: . (дата обращения 23.04.2025)
9. PubNub: [Электронный ресурс]. URL: . (дата обращения 15.11.2024)
10. Pusher: [Электронный ресурс]. URL: . (дата обра-щения 15.11.2024)
всего 20 источников