Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6645| Title: | Проектування та оцінка продуктивності систем екстреного сповіщення на базі штучного інтелекту |
| Authors: | Бабенко, Віра Панасенко, Сергій |
| Issue Date: | 2025 |
| Abstract: | У сучасному світі швидке інформування населення про надзвичайні події є критично важливим для забезпечення безпеки та мінімізації негативних наслідків. Розроблено веб-орієнтовану систему екстреного сповіщення, яка з використанням технологій штучного інтелекту автоматично аналізує інформаційні джерела та оперативно повідомляє користувачів про потенційно небезпечні події. Метою кваліфікаційної роботи є розробити та оцінити продуктивність системи екстреного сповіщення на базі штучного інтелекту, яка в режимі реального часу моніторить інформаційні джерела, автоматично визначає екстрені події та оперативно надсилає користувачам сповіщення через веб- портал і мобільні пристрої, забезпечуючи швидку, достовірну та зручну комунікацію у критичних ситуаціях. Об'єкт дослідження – процес автоматизованого виявлення та сповіщення користувачів про екстрені події в інформаційних системах. Предмет дослідження – методи та технології штучного інтелекту, веб- технології та механізми сповіщення, що використовуються для автоматичного аналізу подій і доставки екстрених повідомлень користувачам. Наукова новизна у розробці інтегрованої системи екстреного сповіщення на базі штучного інтелекту, яка поєднує автоматизований аналіз великих обсягів інформації з різних джерел у режимі реального часу та механізми Web Push Notifications для миттєвої доставки критичних повідомлень користувачам. Запропонований підхід дозволяє підвищити точність визначення екстрених подій, зменшити затримки в оповіщенні та забезпечити адаптивну доставку сповіщень на різні типи пристроїв, що є відмінною рисою від існуючих систем. Практична цінність полягає в можливості впровадження розробленої системи у реальних умовах для підвищення ефективності, автоматизації та зручності процесів, що досліджуються. Таким чином, робота має значення як для теоретичного вдосконалення методів роботи сигналізаційних систем, так і для їхньої практичної реалізації у сфері безпеки. Висновки включають в себе основні результати роботи. У додатках наведено специфікацію, текст програми та інструкцію користувача. Загальний обсяг основного тексту роботи становить 83 сторінок. У кваліфікаційній роботі магістра 12 рисунків, 2 таблиці, 3 додатки. Для виконання роботи використано 25 літературних джерел. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6645 |
| Appears in Collections: | 123 Комп’ютерна інженерія (Системне програмування) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 1_ТИТУЛКА_Панасенко-merged.pdf Restricted Access | 1.73 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ
ІНЖЕНЕРІЇ
Пояснювальна записка
до кваліфікаційної роботи магістра
на тему: «Проектування та оцінка продуктивності
систем екстреного сповіщення на базі штучного
інтелекту»
ЧДТУ.252405.004 ПЗ
Виконав: студент 2 курсу, групи МСП-2406
спеціальності 123 – Комп’ютерна інженерія
за освітньою програмою – Системне
програмування
Сергій ПАНАСЕНКО
Керівник
д.т.н., професор Віра БАБЕНКО
Н. контроль
Світлана ГРЕСЬКО
Рецензент
доцент кафедри інженерної та аварійно-
рятувальної техніки ННІ оперативно-рятувальних
сил НУЦЗ України, к.т.н., с.н.с.
Ольга МЕЛЬНИК
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
к.т.н., доцент ______ Артем ЛАВДАНСЬКИЙ
Черкаси 2025 року
Форма № Н-9.01
Черкаський державний технологічний університет
Факультет інформаційних технологій і систем
Кафедра інформаційної безпеки та комп‘ютерної інженерії
Освітньо-кваліфікаційний рівень магістр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Системне програмування
«ЗАТВЕРДЖУЮ»
Завідувач кафедри _____ Артем ЛАВДАНСЬКИЙ
«08» жовтня 2025 року
ЗАВДАННЯ
на кваліфікаційну роботу магістра студенту
Панасенку Сергію Вікторовичу
(прізвище, ім‘я, по батькові)
1. Тема роботи Проектування та оцінка продуктивності систем екстреного
сповіщення на базі штучного інтелекту
Керівник роботи Бабенко Віра Григорівна, д.т.н., професор
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «07» жовтня 2025р. № 307/03-03
2. Строк подання студентом роботи
3. Вихідні дані до роботи:
Новинні стрічки (RSS, API), офіційні джерела ДСНС та державних служб, повідомлення з
соціальних мереж, текстові новини для аналізу AI, історичні дані про надзвичайні події, дані
геолокації користувачів, налаштування підписок на типи подій, параметри Web Push
Notifications, вимоги до швидкодії та обробки в реальному часі.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
Розділ 1 Аналіз предметної області та постановка задачі дослідження
Розділ 2 Вибір технології та інструментальних засобів розробки системи
Розділ 3 Розробка системи екстреного сповіщення на базі штучного інтелекту
Розділ 4 Захист інформаційної системи сповіщення на базі штучного інтелекту
Висновки
Перелік скорочень та умовних позначень
Список використаних джерел
Додатки
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи
Підпис, дата
Розділ Прізвище, ініціали та
посада завдання видав завдання прийняв
консультанта
7. Дата видачі завдання 08 жовтня 2025 року
КАЛЕНДАРНИЙ ПЛАН
№ з/п Назва етапів кваліфікаційної роботи магістра Строк виконання Примітка
етапів роботи
1. Вибір теми кваліфікаційної роботи магістра 1.10-7.10.2025 виконано
2. Збір матеріалу 08.10 – 19.10 виконано
3. Обробка матеріалу 20.10 – 25.10 виконано
4. Обґрунтування актуальності виконання досліджень 26.10 - 31.10 виконано
5. Оцінка стану проблеми, виокремлення дослідницьких виконано
задач, постановка задачі дослідження 01.11 – 07.11
6. Викладення сутності і результатів дослідження 08.11 - 18.11 виконано
7. Практичне застосування результатів дослідження. виконано
Реалізація та впровадження. 19.11 – 27.11
8. Оформлення результатів в пояснювальну записку 28.11 - 01.12 виконано
Студент-магістрант ____________________ Сергій ПАНАСЕНКО
(підпис)
Керівник роботи ____________________ Віра БАБЕНКО
(підпис)
АНОТАЦІЯ
У сучасному світі швидке інформування населення про надзвичайні
події є критично важливим для забезпечення безпеки та мінімізації негативних
наслідків. Розроблено веб-орієнтовану систему екстреного сповіщення, яка з
використанням технологій штучного інтелекту автоматично аналізує
інформаційні джерела та оперативно повідомляє користувачів про потенційно
небезпечні події.
Метою кваліфікаційної роботи є розробити та оцінити продуктивність
системи екстреного сповіщення на базі штучного інтелекту, яка в режимі
реального часу моніторить інформаційні джерела, автоматично визначає
екстрені події та оперативно надсилає користувачам сповіщення через веб-
портал і мобільні пристрої, забезпечуючи швидку, достовірну та зручну
комунікацію у критичних ситуаціях.
Об'єкт дослідження – процес автоматизованого виявлення та
сповіщення користувачів про екстрені події в інформаційних системах.
Предмет дослідження – методи та технології штучного інтелекту, веб-
технології та механізми сповіщення, що використовуються для автоматичного
аналізу подій і доставки екстрених повідомлень користувачам.
Наукова новизна у розробці інтегрованої системи екстреного
сповіщення на базі штучного інтелекту, яка поєднує автоматизований аналіз
великих обсягів інформації з різних джерел у режимі реального часу та
механізми Web Push Notifications для миттєвої доставки критичних
повідомлень користувачам. Запропонований підхід дозволяє підвищити
точність визначення екстрених подій, зменшити затримки в оповіщенні та
забезпечити адаптивну доставку сповіщень на різні типи пристроїв, що є
відмінною рисою від існуючих систем.
Практична цінність полягає в можливості впровадження розробленої
системи у реальних умовах для підвищення ефективності, автоматизації та
зручності процесів, що досліджуються.
Таким чином, робота має значення як для теоретичного вдосконалення
методів роботи сигналізаційних систем, так і для їхньої практичної реалізації
у сфері безпеки.
Висновки включають в себе основні результати роботи. У додатках
наведено специфікацію, текст програми та інструкцію користувача. Загальний
обсяг основного тексту роботи становить 83 сторінок. У кваліфікаційній
роботі магістра 12 рисунків, 2 таблиці, 3 додатки. Для виконання роботи
використано 25 літературних джерел.
ANNOTATION
In the modern world, rapid notification of the population about emergency
events is critically important for ensuring safety and minimizing negative
consequences. A web-based emergency notification system has been developed,
which, using artificial intelligence technologies, automatically analyzes information
sources and promptly notifies users about potentially dangerous events.
The purpose of the qualification work is to develop software that collects
data on the operation of IoT devices, performs energy consumption forecasting using
various machine learning algorithms, and generates reports for further analysis and
selection of the most optimal model.
The object of the study is the process of automated detection and notification
of users about emergency events in information systems.
The subject of the study is methods and technologies of artificial
intelligence, web technologies, and notification mechanisms used for automatic
analysis of events and delivery of emergency messages to users.
The scientific novelty lies in the development and research of software that
combines machine learning methods with practical energy consumption forecasting
of IoT devices. The work compares different ML algorithms to determine the most
effective approach, and also proposes a model that increases the accuracy of
prediction and can be integrated into real IoT systems to optimize their energy
consumption.
The practical value lies in the possibility of implementing the developed
system in real conditions to increase the efficiency, automation and convenience of
the processes under study.
Thus, the work is important both for the theoretical improvement of the
methods of operation of signaling systems and for their practical implementation in
the field of security.
The conclusions include the main results of the work. The appendices contain
the specification, program text and user manual. The total volume of the work is 83
pages. The master's qualification work contains 12 figures, 2 tables, 3 appendices.
25 literary sources were used to perform the work.
2
ЗМІСТ
ВСТУП………………………………………………………………………… 4
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ…………………………………………………..... 8
1.1 Аналіз предметної області……………………………………......... 8
1.2 Вибір напряму дослідження……………………………………….. 16
1.3 Постановка задачі…………………………………………………... 21
1.4 Висновки до розділу 1……………………………………………… 25
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ………………………………………………………. 26
2.1 Огляд існуючих технологій………………………………………... 26
2.2 Вибір технологій …………………………………………………... 36
2.3 Висновки до розділу 2……………………………………………… 43
РОЗДІЛ 3 РОЗРОБКА СИСТЕМИ СПОВІЩЕННЯ НА БАЗІ
ШТУЧНОГО ІНТЕЛЕКТУ……………………………................................... 45
3.1 Структура системи………………………………………………… 45
3.2 Опис функцій системи…………………………………………….. 54
3.3 Технічні вимоги для роботи з системою………………………..... 59
3.4 Оцінка ефективності …………......................................................... 62
3.5 Висновки до розділу 3……………………………………………... 66
РОЗДІЛ 4 ЗАХИСТ ІНФОРМАЦІЙНОЇ СИСТЕМИ СПОВІЩЕННЯ НА
БАЗІ ШТУЧНОГО ІНТЕЛЕКТУ……………………………………………. 68
4.1 Огляд існуючих рішень захисту системи сповіщення…………... 68
4.2 Реалізація захисту даних в системі сповіщення………………….. 74
4.3 Висновки до розділу 4……………………………………………… 77
ВИСНОВКИ…………………………………………………………………… 79
ПЕРЕЛІК СКОРОЧЕНЬ ТАУМОВНИХПОЗНАЧЕНЬ…………………..... 81
3
СПИСОКВИКОРИСТАНИХДЖЕРЕЛ……………………………………... 82
ДОДАТКИ:
А – 482.ЧДТУ.52405-01 Проектування та оцінка продуктивності
систем екстреного сповіщення на базі штучного інтелекту
4
ВСТУП
Актуальність теми дослідження. У сучасних умовах інформаційної
перенасиченості та високої динаміки подій система оперативного
інформування населення про надзвичайні ситуації є важливим елементом
забезпечення безпеки суспільства. Кількість інцидентів, пов’язаних із
природними катастрофами, техногенними аваріями, терористичними
загрозами та іншими екстреними подіями, постійно зростає, що вимагає
швидкої та достовірної передачі критичної інформації користувачам.
Традиційні методи оповіщення часто є недостатньо ефективними через
затримки в поширенні новин, обмеженість каналів комунікації та значний
обсяг неструктурованої інформації, який точиться у медіапросторі. У таких
умовах особливо актуальним стає застосування технологій штучного
інтелекту, які здатні автоматично аналізувати великі масиви текстових даних,
виділяти екстрені повідомлення та фільтрувати їх від недостовірних чи
малозначущих новин.
Крім того, сучасні користувачі очікують отримувати інформацію
миттєво та в зручному форматі, незалежно від типу пристрою, що підкреслює
важливість використання веб-технологій і механізмів Web Push Notifications.
Завдяки цим технологіям можлива безперервна доставка актуальних
сповіщень у реальному часі, що значно підвищує ефективність реагування на
потенційні загрози.
Таким чином, розробка системи екстреного сповіщення на базі
штучного інтелекту є актуальним завданням, що поєднує проблеми
інформаційної безпеки, сучасних веб-технологій та автоматизованої аналітики
даних. Реалізація такої системи здатна підвищити рівень інформованості
населення, зменшити наслідки надзвичайних ситуацій та забезпечити надійну
комунікацію у критичні моменти.
5
Метою кваліфікаційної роботи є розробити та оцінити продуктивність
системи екстреного сповіщення на базі штучного інтелекту, яка в режимі
реального часу моніторить інформаційні джерела, автоматично визначає
екстрені події та оперативно надсилає користувачам сповіщення через веб-
портал і мобільні пристрої, забезпечуючи швидку, достовірну та зручну
комунікацію у критичних ситуаціях.
Основні завдання та цілі роботи включають:
1. Проаналізувати предметну область систем екстреного оповіщення
та визначити їхні основні недоліки й потреби користувачів.
2. Дослідити сучасні технології та інструменти, що можуть бути
використані для створення системи автоматичного сповіщення.
3. Розробити архітектуру веб-орієнтованої системи, придатної для
використання на стаціонарних та мобільних пристроях.
4. Створити модуль збору даних, який отримує інформацію з новинних
ресурсів, офіційних джерел та соціальних платформ.
5. Розробити AI-модуль аналізу текстової інформації, що класифікує
події та визначає їхню екстреність.
6. Створити інтерфейс веб-порталу, який забезпечує перегляд подій,
налаштування підписок та взаємодію з користувачем.
7. Провести тестування системи, оцінити її продуктивність, швидкодію
та точність визначення екстрених подій.
8. Розробити та обґрунтувати методи захисту інформації, що
використовуються в системі.
Книга «Штучний інтелект і машинне навчання в системах раннього
попередження про природні катастрофи» авторів Джей Кумар Пандей,
Мрітунджай Рай, Едріс Алам гарно розкриває тему роботи. Книга присвячена
розробці та використанню систем раннього виявлення небезпечних подій за
допомогою технологій штучного інтелекту та машинного навчання. У ній
розглядаються сучасні методи аналізу великих даних, моделі прогнозування
6
природних катастроф (повені, землетруси, шторми, пожежі тощо), а також
підходи до обробки інформації з різних джерел ‒ сенсорів, супутників,
новинних каналів і соціальних мереж.
Об'єкт дослідження ‒ процес автоматизованого виявлення та
сповіщення користувачів про екстрені події в інформаційних системах.
Предмет дослідження ‒ методи та технології штучного інтелекту, веб-
технології та механізми сповіщення, що використовуються для автоматичного
аналізу подій і доставки екстрених повідомлень користувачам.
Наукова новизна у розробці інтегрованої системи екстреного
сповіщення на базі штучного інтелекту, яка поєднує автоматизований аналіз
великих обсягів інформації з різних джерел у режимі реального часу та
механізми Web Push Notifications для миттєвої доставки критичних
повідомлень користувачам. Запропонований підхід дозволяє підвищити
точність визначення екстрених подій, зменшити затримки в оповіщенні та
забезпечити адаптивну доставку сповіщень на різні типи пристроїв, що є
відмінною рисою від існуючих систем.
Практична цінність полягає у можливості впровадження розробленої
системи екстреного сповіщення у реальних умовах для підвищення
оперативності та ефективності інформування населення про критичні події,
автоматизації процесів моніторингу та аналізу інформації, а також
забезпечення зручного та своєчасного доступу користувачів до важливих
сповіщень на різних пристроях.
Кваліфікаційна робота складається з 4-х розділів, в яких подається
інформація про:
1. У першому розділі розглядається аналіз предметної області та
постановка задачі.
2. Другий розділ присвячений оцінюванню доступних технологій та
вибору підходів для розробки системи екстренного сповіщення.
7
3. У третьому розділі наведено опис розробки системи та здійснено
оцінку її ефективності.
4. У четвертому розділі розглядається реалізація забезпечення захисту
розробленої системи.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває тему та відображає потреби для аналізу. При
написанні кваліфікаційної роботи використано 25 літературних джерел.
8
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ
1.1 Аналіз предметної області
У сучасному інформаційному суспільстві проблема своєчасного
інформування користувачів мережі про екстрені події набуває особливої
актуальності. Щоденно зростає обсяг інформації, що надходить із різних
джерел ‒ новинних порталів, соціальних мереж, офіційних державних сайтів,
систем моніторингу та сенсорів. В умовах стрімкого поширення інформації
виникає складність у виділенні справді критичних повідомлень серед великого
потоку даних, що, у свою чергу, підвищує ризик упущення важливої
інформації або її неправильної інтерпретації.
Особливо гостро проблема проявляється під час воєнних дій та
конфліктів. Інформація про обстріли, загрозу життю населення, переміщення
військових підрозділів або евакуаційні маршрути потребує надзвичайно
швидкого розповсюдження. Традиційні засоби масової інформації та
централізовані канали сповіщення часто не забезпечують достатню
оперативність або точність, особливо у кризових регіонах, де доступ до мережі
обмежений або перевантажений.
Природні явища ‒ повені, землетруси, урагани, лісові пожежі та інші
катастрофи ‒ також потребують миттєвого оповіщення громадян. Ненадійна
або запізніла інформація може спричинити значні матеріальні збитки та
загрозу для життя людей. У сучасних умовах, коли події розвиваються в
реальному часі, ручний моніторинг новин і повідомлень стає недостатнім, що
робить критично важливим автоматизацію процесу аналізу інформації.
Одним із вирішень цієї проблеми є застосування технологій штучного
інтелекту та машинного навчання, які здатні автоматично обробляти великі
9
обсяги даних, класифікувати повідомлення за рівнем важливості, виділяти
потенційно небезпечні події та відсіювати фейкові або малозначущі
повідомлення. Інтеграція таких алгоритмів із веб та мобільними платформами
дозволяє оперативно доставляти сповіщення користувачам у зручному
форматі незалежно від їхнього пристрою та місця перебування.
Крім того, актуальність проблеми посилюється глобалізацією та
зростанням мобільності населення, коли події в одній частині світу можуть
мати наслідки для користувачів у віддалених регіонах. Розробка систем
автоматизованого інформування, здатних працювати у режимі реального часу
та забезпечувати персоналізовані сповіщення, є важливим завданням для
підвищення безпеки, ефективного реагування та зменшення негативних
наслідків екстрених ситуацій.
Таким чином, проблема своєчасного та достовірного інформування
користувачів мережі про екстрені події є надзвичайно актуальною, що
зумовлює необхідність розробки сучасних інформаційних систем із
застосуванням штучного інтелекту, аналітики великих даних і технологій веб
сповіщень. Такі рішення дозволяють підвищити ефективність реагування
населення на загрози, забезпечити зменшення ризиків та підвищити загальний
рівень безпеки суспільства.
Системи екстреного сповіщення (Emergency Alert Systems, EAS) у світі
активно розвиваються з урахуванням технологій Інтернету, мобільного
зв’язку та штучного інтелекту [1]. Мета цих систем ‒ швидке інформування
населення про небезпечні події, попередження про загрозу життю та
мінімізація наслідків надзвичайних ситуацій.
Google Public Alerts ‒ це вбудована функція у пошукову систему Google
та Google Maps, яка дозволяє оповіщати користувачів про природні
катастрофи, небезпечні погодні явища та інші надзвичайні події в режимі
реального часу.
Дані для сповіщень надходять від національних метеорологічних та
10
урядових служб. Інтерфейс системи зображено на рисунку 1.1.
Рисунок 1.1 ‒ Google Public Alerts
Основними перевагами системи є швидкість інформування та інтеграція
з мобільними пристроями.
Apple Emergency Alerts забезпечує вбудовані оповіщення на пристроях
iPhone через локальні та державні канали. Інтерфейс системи зображено на
рисунку 1.2.
Система підтримує технологію Cell Broadcast, що дозволяє миттєво
повідомляти людей, які перебувають у зоні загрози.
11
Рисунок 1.2 ‒ Apple Emergency Alerts
Amber Alert (США та міжнародні аналоги) є системою оповіщення про
викрадення дітей. Вона використовує SMS-повідомлення, мобільні додатки,
цифрові знаки на транспорті та медіаресурси. Інтерфейс системи зображено
на рисунку 1.3.
Рисунок 1.3 ‒ Amber Alert
Система здатна доставляти сповіщення лише тим користувачам, які
перебувають у зоні можливого інциденту.
12
Cell Broadcast (ЄС, Японія, США) ‒ технологія, що дозволяє одночасно
надсилати повідомлення всім користувачам мобільної мережі у певній
географічній зоні. Основна перевага цього методу ‒ миттєва доставка
сповіщень без перевантаження каналів зв’язку.
Системи на основі соціальних мереж використовують платформи
Twitter, Facebook, Telegram для автоматичного оповіщення населення про
надзвичайні події. Алгоритми штучного інтелекту можуть виявляти критично
важливі повідомлення, перевіряти їхню достовірність і поширювати лише
значущу інформацію серед користувачів.
В Україні питання швидкого оповіщення населення має особливу
актуальність у зв’язку з військовими загрозами та природними катастрофами.
Система “Повітряна тривога” (Air Alert) є найпопулярнішою
мобільною системою в Україні для сповіщення про повітряні загрози та
ракетні удари. Інтерфейс системи зображено на рисунку 1.4.
Рисунок 1.4 ‒ Система “Повітряна тривога”
Вона використовує мобільні додатки, Telegram-боти та Push-
повідомлення, а також включає інтеграцію з картами та геолокацією
13
користувача, що дозволяє точно визначати місце перебування та оперативно
надсилати попередження.
Державна система оповіщення населення (ДСНС, МВС) забезпечує
поширення сигналів через сирени, SMS-розсилку та мобільні додатки. Вона
надає централізоване управління сигналами тривоги та підключення до
офіційних веб-порталів і соціальних мереж для швидкого та надійного
розповсюдження інформації серед населення.
Телеграм-боти та мобільні додатки місцевих громад створюються,
наприклад, Офісом Президента та місцевими органами влади. Вони
доставляють новини про надзвичайні ситуації, закриття доріг, погіршення
погодних умов та інші локальні події. Боти здатні фільтрувати повідомлення
за містами та районами, забезпечуючи персоналізоване інформування
громадян.
Системи раннього попередження про природні катастрофи, такі як
попередження про повені, буревії та землетруси від Укргідрометцентру,
надсилають дані на державні портали, мобільні додатки та через партнерські
медіа. Це дозволяє швидко поширювати важливу інформацію та попереджати
населення про потенційні загрози.
Соціальні мережі та медіаплатформи використовуються як
додатковий канал інформування. Telegram-канали, Facebook-спільноти та
офіційні сторінки ДСНС активно застосовуються для оперативного
поширення повідомлень. Перевага цього підходу полягає у швидкості
доставки інформації та можливості отримати підтвердження від свідків подій.
Сучасні системи екстреного сповіщення в Україні характеризуються
акцентом на мобільність та швидкість доставки інформації, використанням
геолокації для персоналізації сповіщень, а також комбінацією офіційних і
соціальних каналів для підвищення охоплення населення. Спостерігається
поступовий перехід до автоматизації та застосування штучного інтелекту для
14
фільтрації та аналізу інформації у реальному часі, що підвищує ефективність
і надійність систем.
Порівняння систем екстреного сповіщення у світі та в Україні
розглянуто в таблиці 1.1.
Таблиця 1.1 – Порівняння систем екстреного сповіщення у світі та в
Україні
Система Країна / Канали Тип подій AI /
регіон доставки автоматизація
Google Public Світ Пошук, Природні Так
Alerts Maps, Push катастрофи,
надзвичайні події
Apple США, ЄС Push, Cell Природні Частково
Emergency Broadcast катастрофи, аварії
Alerts
Amber Alert США та SMS, Викрадення дітей Так
інші додатки
Cell Broadcast ЄС, Мобільні Будь-які НС Так
Японія, мережі
США
Air Alert Україна Telegram, Повітряні загрози, Частково
додатки, обстріли
Push
ДСНС / МВС Україна Сирени, Пожежі, аварії, Частково
SMS, веб війна
Місцеві Україна Telegram, Локальні НС, Частково
Telegram- Push погода
боти
Можна відзначити, що світові системи екстреного сповіщення (WEA,
EENA, Google Alerts) характеризуються високою автоматизацією, широким
охопленням та гнучкими каналами доставки повідомлень. В Україні ж системи
повітряної тривоги останніми роками значно розвинулися, однак здебільшого
15
спираються на локальні застосунки та регіональні рішення, що створює
нерівномірність покриття та залежність від окремих розробників [2]. Загалом
порівняння підкреслює необхідність подальшої стандартизації, інтеграції та
автоматизації національних систем для підвищення їхньої ефективності та
відповідності світовим практикам.
Розробка мобільних застосунків для систем екстрених нотифікацій є
надзвичайно витратною як у фінансовому, так і в технічному вимірі.
Створення повноцінних додатків для iOS та Android потребує двох окремих
команд або універсальних фахівців із високою кваліфікацією, що значно
збільшує бюджет. Крім початкової розробки, необхідно враховувати витрати
на регулярні оновлення, підтримку сумісності з новими версіями операційних
систем, усунення помилок та тестування на широкому спектрі пристроїв. Для
державних і муніципальних проєктів це може стати критичним бар’єром,
оскільки потребує стабільного джерела фінансування та значних людських
ресурсів.
Мобільні системи сповіщення залежать від політик Apple і Google, що
вводять суворі обмеження на автоматичні повідомлення, фонові процеси та
доступ до геолокації. Для критичних систем, де кожна секунда має значення,
такі обмеження можуть зменшувати швидкість або надійність доставки
сповіщень. Додатково, публікація застосунку в App Store і Google Play вимагає
проходження жорсткої модерації, що ускладнює швидке внесення змін або
оновлень [3]. Це створює ризики для проєктів, які повинні реагувати на
непередбачувані події в реальному часі.
На Android існують сотні виробників і тисячі моделей смартфонів,
кожна з яких має власні оптимізації, режими енергозбереження та обмеження
на фонові процеси. Це призводить до того, що одна й та сама система
нотифікацій може працювати по-різному на різних пристроях. У критичних
випадках повідомлення можуть надходити із затримками або зовсім не
доставлятися. Забезпечити стабільну роботу системи на всіх пристроях
16
практично неможливо без великих команд тестування, складної
інфраструктури та постійного моніторингу.
На відміну від мобільних застосунків, вебрішення (особливо
прогресивні вебдодатки ‒ PWA) значно спрощують процес створення системи
нотифікацій. Вони не потребують розробки двох окремих клієнтів, а
працюють на будь-якому сучасному браузері. Оновлення платформи
відбувається миттєво для всіх користувачів без проходження модерації
магазинів застосунків. Вебтехнології підтримують push-сповіщення, офлайн-
режим, доступ до локального кешу та можливість встановлення на головний
екран смартфона. Це робить їх універсальним та економічно вигідним
рішенням для державних, муніципальних і комерційних екстрених систем.
Веб додатки є більш доступними для користувачів, оскільки не
вимагають завантаження з офіційних магазинів і не займають пам’ять
пристрою. Вони автоматично масштабуються під смартфони, планшети та
комп’ютери, що забезпечує охоплення максимального кола користувачів. Для
розробників важливо, що вебдодатки легше інтегрувати з серверними
системами, базами даних і сервісами реального часу. Також вони дозволяють
швидше впроваджувати нові функції, тестувати їх і реагувати на зворотний
зв’язок користувачів. У контексті екстрених нотифікацій це критично, адже
система повинна бути гнучкою, оперативною та здатною адаптуватися до
нових загроз.
1.2 Вибір напряму дослідження
Сучасний світ стає дедалі менш передбачуваним, а кількість загроз
природного, техногенного та воєнного характеру з кожним роком зростає. У
таких умовах своєчасне отримання екстреної інформації є критичним
фактором безпеки громадян. Сповіщення про небезпеку дозволяють людям
17
оперативно реагувати, знаходити укриття, уникати небезпечних зон та
приймати рішення, що можуть зберегти життя.
Оперативне інформування відіграє ключову роль не лише під час
масштабних надзвичайних ситуацій, а й у повсякденному житті. Вчасні
попередження про дорожні перекриття, різке погіршення погоди, аварії на
комунальних мережах або технічні несправності допомагають зменшити
ризики, уникнути затримок та зберегти здоров’я. Це формує культуру
відповідального ставлення до особистої безпеки та сприяє підвищенню
загального рівня обізнаності населення.
Інформація про екстрені події має важливе значення і на державному
рівні, адже від швидкості її поширення залежить ефективність роботи служб
реагування. Наявність надійних каналів оповіщення забезпечує координацію
між установами, мінімізує людські жертви та запобігає паніці серед населення.
Саме тому дослідження систем нотифікацій є актуальним напрямом, що
безпосередньо впливає на безпеку суспільства.
У контексті цифровізації та зростання кількості мобільних пристроїв
вкрай важливо створювати технології, здатні швидко, точно та адресно
доставляти повідомлення про загрозу. Це визначає пріоритетність
дослідження сучасних систем сповіщення, методів їх оптимізації та
можливостей інтеграції штучного інтелекту. Обрання цього напряму дозволяє
не лише покращити якість інформування, а й сформувати основу для більш
безпечної та стійкої інфраструктури в майбутньому.
Вчасне інформування про екстрені події є критично важливим, оскільки
саме перші хвилини визначають, чи зможе людина уникнути небезпеки,
підготуватися або мінімізувати ризики. Під час раптових ситуацій ‒ таких як
ракетні удари, пожежі, техногенні аварії, землетруси або буревії ‒ затримка
навіть у кілька секунд може коштувати життя. Швидке сповіщення дозволяє
людині прийняти рішення: сховатися, евакуюватися, уникнути небезпечної
зони або принаймні підготуватися психологічно та фізично.
18
Важливо розуміти, що сучасний інформаційний простір переповнений
даними, серед яких важко знайти достовірне повідомлення. Саме тому
системи екстрених нотифікацій виконують функцію фільтра ‒ вони мають
доставляти лише перевірену, офіційну та точну інформацію. Це дозволяє
зменшити паніку, уникнути хаосу та запобігти поширенню фейкових новин,
що підсилюють стрес і створюють додаткові загрози.
З технічної точки зору, швидкість отримання сповіщення залежить від
архітектури системи, вибраного каналу передачі даних та ефективності
інфраструктури. Наприклад, традиційні SMS можуть затримуватися через
навантаження на мережу, тоді як push-нотифікації або web-push працюють
майже миттєво. Web-додатки дозволяють доставляти сповіщення через
браузер без встановлення програм, що значно знижує поріг доступності та
економить ресурси користувача й розробника.
Крім того, сучасні системи мають підтримувати обробку подій у
реальному часі ‒ це передбачає використання потокових сервісів, черг
повідомлень, автоматичних тригерів та алгоритмів машинного навчання, які
можуть аналізувати великі обсяги даних. Завдяки цьому зростає точність
прогнозування загроз, а швидкість поширення попереджень зменшується до
мінімальних значень.
Надійність також є ключовим фактором: системи мають працювати під
час пікових навантажень, перебоїв електроенергії та можливих кібератак.
Тому застосовуються резервні сервери, CDN-мережі, дублювання каналів
зв’язку та механізми failover, що забезпечують безперервність роботи
сповіщень навіть у надзвичайних умовах [4].
Вчасне отримання екстрених повідомлень ‒ це поєднання людського
фактору та технологічних рішень. Воно визначає рівень безпеки громадян,
ефективність реагування та стійкість суспільства до кризових ситуацій, а
правильна технічна реалізація робить таке сповіщення максимально швидким,
точним і доступним для всіх.
19
У більшості систем екстрених сповіщень ключову роль у поширенні
інформації відіграє людина ‒ оператор, модератор або черговий диспетчер,
який підтверджує подію, класифікує її та запускає процес повідомлення
населення. Саме людський фактор є найбільш вразливою ланкою таких
систем, оскільки рішення приймаються вручну, можуть містити суб’єктивну
оцінку та залежать від досвіду, психологічного стану та навантаження
оператора. Це створює ризики спотворення або затримки даних, особливо у
кризових ситуаціях, коли час реакції є критично важливим.
Наявність людського фактора може призвести до значних затримок між
моментом виникнення події та моментом її оприлюднення. Оператору
потрібно зібрати інформацію, перевірити її достовірність, отримати
підтвердження з інших джерел і лише після цього запустити сповіщення. У
пікові періоди ‒ під час масованих атак, стихійних лих або великої кількості
інцидентів - кількість подій може перевищувати можливості людини. Це часто
спричиняє накопичення необроблених запитів та зниження якості прийнятих
рішень.
Людська помилка також проявляється у вигляді хибних позитивних або
хибних негативних рішень. Модератор може недооцінити небезпеку або,
навпаки, надіслати сповіщення без достатніх підстав, що призводить до втрати
довіри користувачів до системи. Надмірна кількість помилкових тривог
зменшує уважність населення, у той час як пропущені важливі події ставлять
під загрозу життя людей. У системах, де потрібна швидка реакція, такі
помилки мають особливо критичні наслідки.
Ще одна проблема ‒ неможливість людини обробляти складні
інформаційні потоки у режимі реального часу. В епоху великих даних обсяг
інформації про можливі загрози надходить із десятків джерел: новинних
ресурсів, камер спостереження, сенсорів, соцмереж, телеметрії, супутників.
Здійснювати швидку аналітику вручну фактично нереально, що призводить
20
до фільтрації лише частини інформації та втрати корисних сигналів, які
можуть бути важливими для раннього попередження.
Тому залежність системи сповіщень від людської модерації є однією з
головних причин недостатньої швидкості реакції, низької точності даних і
підвищеного ризику помилок. Це підтверджує необхідність автоматизації
аналізу інформації, використання алгоритмів штучного інтелекту і мінімізації
впливу людського фактора.
Автоматизація процесів оповіщення про екстрені події суттєво підвищує
швидкість реагування та точність поширюваної інформації. На відміну від
систем, де дані обробляє людина, автоматизовані рішення здатні аналізувати
великі масиви інформації в режимі реального часу, одночасно відстежуючи
сотні інформаційних джерел: новинні ресурси, соціальні мережі, офіційні API,
метеорологічні дані та сигнали від сенсорів. Завдяки цьому системи можуть
виявляти критичні події на ранніх етапах та миттєво формувати попередження
для користувачів без затримок, спричинених людським фактором.
З технічної точки зору автоматизація дозволяє інтегрувати алгоритми
машинного навчання, які здатні класифікувати події за рівнем загрози,
фільтрувати фейкові або неперевірені повідомлення, а також перевіряти
кореляцію інформації з різних каналів. ML-моделі, такі як NLP-класифікатори,
системи аномалій або моделі оцінки довіри до джерел, забезпечують набагато
вищу точність у розпізнаванні патернів тривожних подій, ніж ручний аналіз
[5]. Це особливо важливо під час великої кількості повідомлень, коли людина
фізично не здатна обробити все вчасно.
Автоматизовані системи також значно надійніші з точки зору
масштабованості. У момент масових надзвичайних подій навантаження
зростає у десятки разів, а ручні процеси починають давати збої. Натомість
програмні рішення автоматично розподіляють навантаження між серверами,
кешують результати, використовують розподілені черги повідомлень та
забезпечують майже миттєву доставку сповіщень тисячам користувачів. Це
21
робить такі системи стійкими до пікових ситуацій і дозволяє працювати
безперебійно.
Ще важливим аспектом є зменшення вартості обслуговування.
Автоматизація мінімізує потребу у великих командах модераторів та
операторів, зменшуючи операційні витрати та ймовірність помилок. Системи
можуть функціонувати цілодобово, не потребуючи перерв, і виконувати
десятки процесів одночасно: моніторинг, аналіз, верифікація та розсилку
сповіщень. У довгостроковій перспективі це робить автоматизовані рішення
економічно вигіднішими та більш стабільними.
Автоматизація дозволяє впроваджувати адаптивні та персоналізовані
механізми сповіщення.
Завдяки геолокації, поведінковій аналітиці та історії взаємодії з
додатком система може надсилати різні типи оповіщень різним категоріям
користувачів, уникаючи перенавантаження зайвими повідомленнями. Це
підвищує рівень довіри до системи та ефективність екстрених попереджень
загалом.
1.3 Постановка задачі
Сучасність підходу штучного інтелекту до задачі автоматичного
екстреного сповіщення полягає у здатності технологій обробляти величезні
обсяги даних у реальному часі, виявляючи критичні сигнали швидше та
точніше, ніж це може зробити людина. У сучасному інформаційному
середовищі потоки даних надходять одночасно з офіційних API, мережевих
ресурсів, соціальних мереж, сенсорних систем, камер спостереження та
супутникових каналів. Ручна обробка таких обсягів інформації є надзвичайно
складною та в багатьох випадках неможливою, тоді як AI здатен виконувати
аналіз паралельно, забезпечуючи безперервний моніторинг без потреби у
відпочинку чи людському контролі.
22
Важливим аспектом сучасності цього підходу є використання
алгоритмів машинного навчання для ідентифікації патернів, які не очевидні
на перший погляд. Нейронні мережі можуть навчатися на історичних даних
про надзвичайні події, відрізняючи реальні загрози від шуму, фейкових
повідомлень або малозначущої інформації. Це дозволяє формувати більш
точні моделі прогнозування та підвищує надійність системи. На відміну від
традиційних методів, які працюють за статичними правилами, AI-підхід є
динамічним: він постійно вдосконалюється на основі нових даних і з часом
стає лише точнішим.
Ключовою перевагою використання AI є можливість оцінювати
контекст повідомлень. У соціальних мережах появляється велика кількість
інформації, пов’язаної з надзвичайними ситуаціями, але більшість із неї не
структурована та вимагає глибокої семантичної обробки. Сучасні моделі
природної мови (NLP) дозволяють аналізувати текст, визначати емоційний
тон, виявляти згадки про конкретні локації, тип події, ступінь небезпеки та
часову активність. Такий рівень аналізу практично неможливий за участю
людей-модераторів, особливо коли інформація з’являється хаотично та
непередбачувано.
Сучасний підхід AI також забезпечує високу масштабованість ‒ система
може обробляти тисячі подій одночасно, адаптуючись до збільшення кількості
користувачів або каналів даних. Для екстрених систем це критично, адже в
моменти небезпеки навантаження різко зростає, і лише автоматизований
механізм здатен гарантувати стабільність роботи. Крім того, AI відкриває
можливість автоматичного прийняття рішень, наприклад, визначення
пріоритетності сповіщень, фільтрації дублюючих повідомлень або
формування рекомендацій для користувачів.
Таким чином, використання штучного інтелекту в задачі екстреного
сповіщення є сучасним і виправданим підходом, який відповідає вимогам
швидкості, точності та масштабованості сучасного цифрового середовища. Це
23
не просто інструмент автоматизації ‒ це новий рівень ефективності систем
безпеки, який дозволяє мінімізувати людський фактор, покращити якість
даних і значно підвищити швидкість реагування на критичні ситуації.
Сучасні підходи до обробки великих потоків інформації в системах
екстрених сповіщень все частіше базуються на технологіях штучного
інтелекту (AI). Використання AI дозволяє автоматично збирати, аналізувати
та класифікувати дані з різних джерел - новинних порталів, соціальних мереж,
сенсорних систем та офіційних повідомлень. Завдяки алгоритмам машинного
навчання система здатна швидко виявляти потенційно небезпечні події,
оцінювати їхній рівень критичності та визначати пріоритетність сповіщень.
Такий підхід значно підвищує оперативність реагування та зменшує
ймовірність пропуску важливої інформації.
Однією з ключових переваг застосування AI є автоматизація процесу
прийняття рішень, що дозволяє мінімізувати вплив людського фактора.
Традиційні системи, де люди виступають модераторами для перевірки та
розповсюдження сповіщень, часто схильні до помилок, затримок або
суб’єктивної оцінки важливості подій. Автоматизована система здатна
працювати цілодобово, обробляти великі обсяги даних у реальному часі та
приймати рішення на основі чітких алгоритмів, що підвищує надійність та
ефективність сповіщень.
Для забезпечення високої точності роботи AI-системи
використовуються різні метрики та показники оцінки. Серед них: швидкість
доставки сповіщення (latency), точність класифікації подій (accuracy),
кількість хибних сповіщень (false positives), кількість пропущених критичних
подій (false negatives), а також рівень задоволеності користувачів і охоплення
населення. Ці показники дозволяють контролювати ефективність алгоритмів,
коригувати їх і підвищувати надійність системи.
Подібна система має бути повністю автоматизованою, щоб відкинути
людський фактор і забезпечити максимально швидке та точне сповіщення
24
користувачів про екстрені події. Використання AI не лише знижує ризики
помилок, але й дозволяє масштабувати систему на національному рівні,
інтегрувати різні джерела даних і адаптуватися до динамічного розвитку подій
у реальному часі.
Сучасні системи екстреного сповіщення потребують високого рівня
автономності, оскільки швидкість реагування є критичною під час
надзвичайних подій. Традиційні підходи, де люди контролюють потоки новин
та даних, є недостатньо ефективними через обмеження людських ресурсів,
суб’єктивність оцінок і можливі затримки. Саме тому система має бути
повністю автономною, здатною самостійно відслідковувати джерела
інформації, аналізувати їх і приймати рішення про сповіщення користувачів
без втручання людини.
Автономна система повинна моніторити новини, соціальні мережі,
державні портали та інші релевантні джерела у режимі реального часу. Вона
повинна фільтрувати інформацію, визначати критичність подій за заздалегідь
встановленими алгоритмами та аналізувати контекст повідомлень. Завдяки
цьому система здатна автоматично відкидати хибну або неповну інформацію
та відразу формувати сповіщення для кінцевого користувача.
Ще важливим аспектом є автоматичне виконання інформування у
випадку надзвичайної ситуації. Система повинна надсилати повідомлення
через різні канали: веб-сповіщення, Push-повідомлення, SMS, Telegram-боти
та інші інтегровані сервіси. Вона має забезпечувати швидке і точне охоплення
всіх користувачів у зоні події, без затримок, що можуть бути критичними для
життя людей.
Повна автономність також передбачає здатність системи до
самостійного навчання та адаптації. Використовуючи технології штучного
інтелекту, вона може постійно аналізувати ефективність власних рішень,
підвищувати точність класифікації подій та оптимізувати алгоритми
сповіщення. Це дозволяє створити надійну платформу, яка зменшує ризики
25
людських помилок, підвищує ефективність реагування на надзвичайні
ситуації та забезпечує безперервний моніторинг критичних подій у режимі
реального часу.
1.4 Висновки до розділу 1
Проведений аналіз предметної області підтверджує високу актуальність
проблеми інформування користувачів мережі про екстрені події, включно з
воєнними загрозами, природними катастрофами та іншими надзвичайними
ситуаціями. Сучасні системи екстреного сповіщення, як у світі, так і в Україні,
демонструють значні можливості щодо швидкого донесення важливої
інформації, проте більшість рішень стикається з обмеженнями, пов’язаними з
мобільною розробкою, витратністю підтримки та складністю інтеграції різних
платформ.
Дослідження показує, що своєчасне отримання сповіщення є критично
важливим для безпеки населення, а людський фактор у процесі модерації
даних створює додаткові ризики, включно із затримками, помилками або
суб’єктивною оцінкою важливості подій. Автоматизація процесів збору,
аналізу та доставки сповіщень значно підвищує ефективність системи,
дозволяючи швидко реагувати на критичні події.
У постановці задачі визначено, що сучасна система повинна базуватися
на технологіях штучного інтелекту, що забезпечують автоматичне визначення
критичних подій на основі аналізу потоків новин та даних у реальному часі.
Для підвищення надійності система має бути повністю автономною, здатною
самостійно моніторити джерела інформації, фільтрувати хибні повідомлення
та безпосередньо виконувати інформування користувачів у випадку
надзвичайної ситуації. Такий підхід дозволяє відкинути людський фактор,
підвищити швидкість та точність сповіщень і забезпечити максимальне
охоплення населення в умовах реального часу.
26
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
У процесі розробки сучасних серверних додатків особливо важливо
обрати оптимальні технології, які забезпечать надійність, масштабованість та
високу продуктивність системи. Це має ключове значення для проєктів, що
працюють у режимі реального часу, використовують складні алгоритми
аналізу даних або потребують стабільної роботи під високим навантаженням
‒таких, як системи екстреного сповіщення. Різні серверні платформи
пропонують унікальні можливості й архітектурні підходи, а правильний вибір
технологічного стеку суттєво впливає на ефективність розробки, подальшу
підтримку та якість кінцевого продукту. Нижче детально розглянуто три
найпоширеніші технології для створення серверних додатків: Node.js, Java та
Python, їх архітектурні особливості, сильні сторони та оптимальні сфери
застосування.
Node.js ‒ це серверна платформа, побудована на основі
високопродуктивного JavaScript-рушія V8, яка дозволяє виконувати JavaScript
на стороні сервера. Основною особливістю Node.js є його асинхронна,
неблокуюча модель вводу/виводу, яка забезпечує можливість обробляти
велику кількість паралельних запитів без створення надмірної кількості
потоків. Архітектура зображена на рис. 2.1.
Завдяки цьому Node.js є надзвичайно ефективним для реального часу,
зокрема для систем моніторингу, нотифікацій та веб-додатків, які працюють
з великою кількістю одночасних підключень.
27
Рисунок 2.1 – Архітектура Node.js
Node.js використовує величезну екосистему пакетів npm, що дозволяє
швидко підключати функціональні модулі: Express.js для побудови REST API,
Socket.io для реального часу, бібліотеки для роботи з Redis, MongoDB,
PostgreSQL тощо. [6]
Також Node.js дає можливість працювати в одному стеку технологій
(JavaScript) як на клієнті, так і на сервері, що значно спрощує розробку та
зменшує витрати на підтримку. Завдяки своїй архітектурі Node.js чудово
масштабується горизонтально, що робить його ефективним для
високонавантажених систем.
Java ‒ це класична, стабільна й високомасштабована мова
програмування, яка широко використовується у корпоративних серверних
рішеннях, банківських системах, телекомунікаціях та системах, де важливі
безпека й надійність.
Головною перевагою Java є її підтримка багатопотоковості, що дозволяє
обробляти складні обчислювальні задачі та велику кількість одночасних
операцій. Для розробки сучасних серверних додатків у Java екосистемі
застосовуються такі фреймворки, як Spring Boot, який значно прискорює
28
створення REST API, мікросервісів і інтеграційних рішень [7]. Spring Boot
забезпечує вбудовану підтримку безпеки, логування, роботи з базами даних,
чергами повідомлень та хмарними сервісами. Архітектура зображена на
рисунку 2.2.
Рисунок 2.2 ‒ Архітектура Java
Java працює на віртуальній машині Java (JVM), що забезпечує
переносимість коду між платформами та високу продуктивність. Завдяки
своїй стабільності та перевіреним інструментам Java є одним із найкращих
виборів для створення великих серверних систем, де критично важливі
безперебійність роботи та надійність.
Python ‒ це високорівнева мова програмування, яка стала стандартом
для розробки систем штучного інтелекту, машинного навчання та швидкого
прототипування серверних застосунків. Проста та лаконічна синтаксична
структура Python дозволяє суттєво скоротити час розробки та знизити вартість
підтримки проєкту. Архітектура зображена на рисунку 2.3.
29
Рисунок 2.3 ‒ Архітектура Python
У серверній частині Python часто використовується через популярні
фреймворки Django та Flask. Django надає повноцінну структуру для
створення великих вебсервісів, включаючи ORM, вбудовану адмінпанель і
модулі безпеки. Flask ‒ легший фреймворк, який дозволяє створювати гнучкі
REST API та мікросервіси.
Python має унікальну перевагу завдяки інтеграції з екосистемою AI/ML:
TensorFlow, PyTorch, scikit-learn, spaCy та іншими інструментами аналізу
тексту, передбачення подій і класифікації даних [8]. Це робить Python
ідеальним вибором для серверних систем, які повинні аналізувати інформацію
у реальному часі, наприклад, моніторити новини та виявляти екстрені події за
допомогою штучного інтелекту.
Для створення надійної, масштабованої та високопродуктивної
серверної частини системи екстреного сповіщення необхідно обрати
відповідні технології серверної розробки. Вибір залежить від вимог до
швидкодії, масштабованості, обробки даних у режимі реального часу,
підтримки штучного інтелекту та можливостей інтеграції з веб та мобільними
клієнтами. Найпопулярнішими та найбільш ефективними серед сучасних
технологій серверної розробки є Node.js, Java та Python, кожна з яких має
30
власні переваги, недоліки та сферу оптимального застосування. Нижче
Наведено детальну порівняльну таблицю 2.1 цих технологій.
Таблиця 2.1 – Порівняння Node.js, Python та Java
Критерій Node.js Java Python
Швидкість Дуже висока Висока, стабільна Середня
виконання (V8,
асинхронність
)
Паралельність Подієва Мультипотоки, Обмежено GIL,
модель, non- високий рівень потрібні
blocking I/O масштабування фреймворки
Легкість розробки Висока, Середня, Висока,
швидкий старт складніший стек читабельний код
Фреймворки Express, Spring, Micronaut Django, Flask,
NestJS FastAPI
Масштабованість Добра, Дуже висока, Середня
особливо для корпоративна
мікросервісів
Застосування Чат-сервіси, Банківські ML/AI сервіси,
нотифікації, системи, важкі REST-API
реальний час бекенди
Продуктивність під Висока Дуже висока Середня
навантаженням
Поріг входу Низький Вищий Низький
Підтримка AI/ML Обмежена Обмежена Найкраща
Платформи Кросплатформ Кросплатформенн Кросплатформенн
енний ий (JVM) ий
Порівняння технологій Node.js, Java та Python показує, що кожна з них
має свої сильні сторони та найкращі сфери застосування. Node.js вирізняється
високою швидкістю обробки великої кількості одночасних запитів завдяки
неблокуючій архітектурі, що робить його оптимальним для реальних-time
сервісів і нотифікаційних систем. Java забезпечує найвищу продуктивність,
стабільність і масштабованість, тому підходить для великих, навантажених та
критично важливих проєктів. Python, у свою чергу, є найзручнішою мовою
для реалізації AI-моделей і швидкої розробки, хоча має нижчу продуктивність.
31
Вибір технології залежить від вимог системи: швидкість та
паралельність ‒ Node.js, стабільність і масштаб ‒ Java, інтеграція штучного
інтелекту ‒ Python. Скомбіноване використання цих інструментів дозволяє
досягти оптимального балансу між продуктивністю, гнучкістю та якістю
системи.
Розробка сучасних вебдодатків є ключовим елементом створення
ефективних та доступних систем для користувачів. Веб технології дозволяють
забезпечити кросплатформеність, швидке оновлення та інтерактивний
інтерфейс без необхідності встановлення додаткового програмного
забезпечення. Для реалізації таких додатків застосовуються різноманітні
технології, серед яких JavaScript, React та HTML/CSS є базовими
інструментами [9].
JavaScript ‒ це основна мова програмування для вебдодатків, яка
дозволяє реалізовувати динамічну взаємодію користувача з вебсторінкою.
Вона працює у браузері, забезпечує обробку подій, маніпуляції з DOM
(Document Object Model) та інтерактивні елементи. JS також використовується
для комунікації з сервером через API, що дозволяє отримувати та відправляти
дані в режимі реального часу. Архітектура зображена на рис. 2.4.
Рисунок 2.4 ‒ Архітектура JavaScript
32
Завдяки універсальності JavaScript може використовуватися як на
клієнтській, так і на серверній стороні (через Node.js), що забезпечує єдиний
стек технологій для всього проєкту.
React ‒ це JavaScript-бібліотека, яка дозволяє створювати компонентний
інтерфейс користувача. Вона забезпечує ефективне оновлення сторінки
завдяки віртуальному DOM та дозволяє створювати масштабовані та повторно
використовувані компоненти. Архітектура зображена на рис. 2.5.
Рисунок 2.5 ‒ Архітектура React
React широко застосовується для розробки SPA (Single Page Application),
де користувач отримує інтерактивний досвід без перезавантаження сторінки.
Платформа підтримує інтеграцію з різними API, бібліотеками для стану
додатку (Redux, Context API) та фреймворками для рендерингу на сервері.
HTML (HyperText Markup Language) є структурною основою
вебсторінки, яка визначає розташування тексту, зображень, форм та інших
елементів. CSS (Cascading Style Sheets) відповідає за оформлення і зовнішній
вигляд цих елементів, включно з кольорами, шрифтами, відступами та
адаптивністю під різні екрани. Разом HTML та CSS формують базову основу
для будь-якого вебдодатку, забезпечуючи чітку структуру та привабливий
дизайн.
Комплексне використання JavaScript, React та HTML/CSS дозволяє
створювати сучасні, динамічні та кросплатформені веб-додатки. JS забезпечує
33
логіку і взаємодію з користувачем, React дозволяє ефективно керувати
компонентами та станом додатку, а HTML/CSS відповідають за структуру і
візуальне оформлення. Такий підхід дозволяє розробляти системи, які є
швидкими, зручними та доступними на різних пристроях.
Технології штучного інтелекту останніми роками стали невід’ємною
частиною сучасних інформаційних систем. Вони дозволяють аналізувати
великі обсяги даних у реальному часі, автоматизувати рутинні процеси та
генерувати зміст, який раніше вимагав участі людини. Одним із яскравих
прикладів застосування AI є мовні моделі, такі як ChatGPT, які здатні розуміти
природну мову, формувати відповіді та взаємодіяти з користувачами.
Мовні моделі, або Large Language Models (LLM), використовують
нейронні мережі трансформерного типу для обробки тексту. Вони навчаються
на величезних обсягах даних з Інтернету, включно з книгами, статтями,
форумами та вебсторінками, щоб зрозуміти структуру мови, контекст і
смислові зв’язки. Такі моделі здатні генерувати зв’язний текст, відповідати на
запитання, перекладати мови та виконувати інші завдання, що потребують
обробки природної мови.
ChatGPT ‒ це приклад LLM, створеної компанією OpenAI, яка
спеціалізується на генерації тексту та веденні діалогів у природній формі.
Аналоги включають Google Bard, Anthropic Claude, Meta LLaMA та інші.
Всі ці системи мають схожу архітектуру: вони обробляють вхідний текст,
формують внутрішнє представлення значень та генерують відповідь у
контексті запиту користувача. [10]
Особливістю таких моделей є можливість навчання та донавчання (fine-
tuning) на спеціалізованих даних, що дозволяє адаптувати їх під конкретні
задачі: аналіз новин, створення звітів, автоматизація відповідей на звернення
користувачів або інтеграція у системи екстреного сповіщення для визначення
критичних подій.
34
Для впровадження AI у веб та серверні додатки використовуються різні
технології:
API-запити до моделей AI ‒ наприклад, OpenAI API, через який
додаток відправляє текстовий запит і отримує відповідь.
Локальне розгортання моделей ‒ можливо для деяких відкритих
аналогів LLaMA або GPT-Neo, що дозволяє повністю контролювати
дані та швидкість обробки.
Обробка даних у реальному часі ‒ інтеграція з потоковими системами,
базами даних і вебсервісами для аналізу повідомлень, новин та
соціальних мереж у режимі реального часу.
Такі підходи забезпечують високий рівень автоматизації та дозволяють
системам AI швидко і точно визначати події, що потребують негайного
інформування.
Переваги використання AI для систем сповіщення:
1. Автоматизація аналізу великих даних ‒ без участі людини, що знижує
ризик помилок і затримок.
2. Розпізнавання контексту та важливості подій ‒ системи здатні
відокремлювати критичні повідомлення від вторинних.
3. Масштабованість ‒ AI може одночасно обробляти тисячі потоків
інформації з різних джерел.
4. Адаптивність та навчання ‒ з часом система підвищує точність та
швидкість визначення надзвичайних подій.
Сучасні мобільні користувачі очікують швидких, зручних та надійних
додатків, які не потребують складної інсталяції та не займають багато пам’яті
на пристрої. Progressive Web Applications (PWA) стали ефективним рішенням
цих потреб, поєднуючи переваги вебдодатків та нативних мобільних додатків.
Вони забезпечують доступ до функцій телефону, інтерактивний інтерфейс та
можливість роботи навіть при обмеженому чи відсутньому
35
Service Workers забезпечують кешування ресурсів та проміжний шар
між сервером і пристроєм користувача. Це дозволяє PWA працювати в офлайн
режимі або при нестабільному інтернет-з’єднанні. Для систем екстреного
сповіщення така функціональність критично важлива, оскільки користувачі
повинні отримувати сповіщення навіть у випадку обмеженої доступності
мережі.
PWA підтримують веб-пуш повідомлення, що дозволяє надсилати
нотифікації без необхідності відкривати додаток. Ця технологія інтегрується
з браузерами та мобільними платформами, забезпечуючи швидке
інформування користувачів про надзвичайні події в реальному часі.
Завдяки кешуванню, оптимізації ресурсів і мінімальному навантаженню
на сервер, PWA працюють швидко навіть на слабких пристроях [11]. Це
підвищує користувацький досвід та забезпечує надійну доставку сповіщень
без затримок, що критично для систем екстреного сповіщення.
Хоч PWA є вебдодатками, вони можуть бути «встановлені» на домашній
екран смартфона без проходження через магазини додатків. Користувач
отримує швидкий доступ до додатку, а система може працювати у
повноекранному режимі, наближеному до нативного мобільного додатку.
PWA використовують протоколи HTTPS для шифрування даних, що
забезпечує безпечну передачу інформації між сервером і користувачем. Це
критично для систем екстреного сповіщення, де дані мають бути достовірними
та захищеними від сторонніх втручань.
Розробка PWA дозволяє створювати вебдодатки, які поєднують
функціональність нативних мобільних додатків із доступністю та швидкістю
вебтехнологій. Адаптивний дизайн, офлайн режим, push повідомлення та
безпека роблять PWA оптимальним вибором для систем екстреного
сповіщення, забезпечуючи своєчасне інформування користувачів на будь-
яких мобільних пристроях.
36
2.2 Вибір технологій
Сучасні системи екстреного сповіщення давно перестали бути лише
наборами сирен, радіосигналів чи традиційних систем тривог, які
використовувалися десятиліттями. Сьогодні вони охоплюють значно ширший
технологічний простір, у якому ключову роль відіграють мобільні та
вебдодатки. Завдяки цифровізації саме ці платформи забезпечують миттєве
інформування населення, адаптивні канали передачі повідомлень та
інтерактивні інструменти взаємодії зі службами реагування. Мобільні додатки
дозволяють користувачам у реальному часі отримувати точні та локалізовані
попередження, мати доступ до інструкцій поведінки, передавати інформацію
про власний стан або про події, які вони спостерігають. Вебплатформи, у свою
чергу, забезпечують централізовану аналітику, публікацію офіційних
повідомлень, моніторинг ситуацій та інтеграцію з іншими інформаційними
системами.
Поєднання традиційних каналів оповіщення з мобільними та
вебдодатками створює багаторівневу систему, здатну функціонувати навіть у
складних умовах, коли окремі елементи інфраструктури виходять з ладу.
Завдяки цьому сучасні системи екстреного сповіщення перетворюються на
комплексні цифрові екосистеми, у яких штучний інтелект допомагає швидко
обробляти великий обсяг даних, аналізувати ризики та забезпечувати
персоналізоване й максимально оперативне сповіщення кожної людини.
Такий підхід не лише підвищує ефективність реагування, але й формує новий
стандарт безпеки суспільства в умовах високої динаміки загроз.
Для реалізації даної дипломної роботи буде створено спеціалізований
портал, який стане центральною точкою доступу для користувачів, що
потребують оперативної та достовірної інформації про екстрені події. Такий
портал забезпечить можливість отримувати сповіщення у режимі реального
часу, а також надаватиме інтелектуально оброблені дані, сформовані на основі
37
аналізу різноманітних джерел, включно з сенсорами, службами моніторингу
та алгоритмами штучного інтелекту. Користувачеві не доведеться
встановлювати додаткові застосунки чи здійснювати складні налаштування,
адже веб-інтерфейс буде доступний із будь-якого пристрою та
забезпечуватиме чітку, структуровану й миттєву передачу важливих
повідомлень. Портал виступатиме ключовим інструментом взаємодії між
системою екстреного сповіщення та населенням, дозволяючи не лише
отримувати інформацію, але й у перспективі розширювати функціонал для
зворотного зв’язку, персоналізації повідомлень та гнучкого управління
налаштуваннями сповіщень, що значно підвищить ефективність усієї системи.
Розробка вебпорталу в контексті системи екстреного сповіщення є не
лише спрощеним технічним рішенням, а й стратегічно виправданим кроком,
оскільки веб-технології сьогодні дозволяють створювати повноцінні
інтерактивні сервіси, які за можливостями дедалі більше наближаються до
мобільних застосунків. На відміну від нативної мобільної розробки, де
потрібно підтримувати окремі технологічні стеки, дотримуватися вимог
магазинів додатків, оптимізувати роботу під різні апаратні платформи та
вирішувати питання з оновленнями, веб-портал може бути розгорнутий
набагато швидше. Будь-які зміни або покращення вносяться миттєво і одразу
стають доступними для всіх користувачів без необхідності повторного
встановлення чи оновлення програмного забезпечення.
Крім того, сучасні підходи до веб-розробки, такі як прогресивні
вебдодатки, дозволяють веб-порталу поводитися майже так само, як і
класичний мобільний застосунок: надсилати push-сповіщення, працювати в
офлайн-режимі, кешувати дані, а також надавати користувачам можливість
додавати сайт на головний екран смартфона. Завдяки цим властивостям веб-
портал стає універсальним засобом комунікації, який охоплює максимальну
кількість користувачів, не обмежуючись операційною системою чи типом
пристрою. Це особливо важливо для систем екстреної нотифікації, де
38
швидкість та доступність інформації мають ключове значення, а кількість
охоплених людей прямо впливає на ефективність реагування.
Створення кросплатформеної системи на основі вебпорталу дозволяє
побудувати єдину інфраструктуру, у якій усі користувачі отримують
однаковий рівень доступу до критично важливої інформації. Такий підхід
сприяє підвищенню стабільності системи, адже відсутність залежності від
магазинів додатків чи обмежень платформ зменшує ризики затримок у
доставці інформації. Вебпортал також дає змогу швидко масштабувати
функціонал, інтегрувати аналітичні модулі штучного інтелекту, обробляти
великі потоки даних і адаптувати інтерфейс під різні сценарії використання.
Саме тому його використання в рамках дипломного проєкту є не лише
раціональним вибором, але й демонструє сучасний підхід до побудови
гнучких і надійних систем екстреного сповіщення.
Систему екстреного сповіщення цілком можливо розробити на базі
технології Progressive Web Application, оскільки саме PWA поєднує у собі
легкість веб-розробки та функціональність, властиву нативним мобільним
застосункам. Використання цієї технології дозволяє створити портал, який
працюватиме швидко, стабільно та буде доступним навіть у ситуаціях
обмеженого інтернет-з’єднання. Найважливішою перевагою PWA є
можливість встановлення веб-порталу у вигляді додатка на будь-який
пристрій -смартфон, планшет чи комп’ютер -без необхідності завантажувати
його з App Store чи Google Play. Це дає змогу охопити ширшу аудиторію та
усунути будь-які бар’єри, пов’язані з інсталяцією традиційних застосунків.
Завдяки PWA система отримує можливість працювати офлайн,
використовуючи попередньо кешовані дані, що є надзвичайно важливим у
контексті екстрених сповіщень, коли доступ до мережі може бути
нестабільним або повністю відсутнім. Ще однією істотною перевагою є
підтримка push нотифікацій, які забезпечують миттєве інформування
користувача навіть тоді, коли портал не відкритий у браузері. Це робить PWA
39
практично рівноцінним нативному додатку з точки зору зручності та
швидкодії, але при цьому значно спрощує процес розробки, оновлення та
підтримки.
Оскільки PWA використовує єдину кодову базу, система стає
автоматично кросплатформеною, а всі користувачі отримують однакову якість
роботи незалежно від того, яким саме пристроєм вони користуються. Усі
оновлення застосовуються миттєво й централізовано, що є критично
важливим для сервісу, який відповідає за передачу важливої інформації.
Встановлення порталу у вигляді застосунка не лише робить взаємодію з
системою швидшою й доступнішою, але й підвищує довіру користувачів,
оскільки інтерфейс стає інтегрованим у їхній повсякденний цифровий простір.
Таким чином, застосування PWA створює міцний технологічний фундамент
для побудови сучасної, гнучкої та надійної системи екстреного сповіщення,
яка відповідає високим вимогам оперативності та доступності.
Систему екстреного сповіщення цілком можливо реалізувати за
допомогою механізму web notifications, що є сучасним стандартом для
надсилання миттєвих повідомлень безпосередньо через браузер.
Використання цього підходу дозволяє охопити максимально широку
аудиторію, оскільки такі сповіщення можуть доставлятися як на мобільні
пристрої, так і на персональні комп’ютери, незалежно від операційної системи
чи типу обладнання. Це забезпечує універсальність і доступність сервісу в
будь-якій ситуації, що є критично важливим для систем, пов’язаних із
безпекою та реагуванням на надзвичайні події.
Web notifications працюють навіть тоді, коли користувач не має
відкритого порталу в браузері, за умови наданих дозволів і налаштованого
сервіс-воркера, що робить їх надзвичайно зручними для оперативного
інформування. На мобільних пристроях такі сповіщення виглядають так само,
як і стандартні push нотифікації з нативних додатків, а на комп’ютерах вони
з’являються у вигляді системних повідомлень, які важко пропустити. Це
40
дозволяє системі екстреного сповіщення бути максимально ефективною,
оскільки користувач миттєво отримує інформацію про небезпеку незалежно
від того, чи взаємодіє він у цей момент із порталом. [12]
Завдяки використанню web notifications можна створити гнучку та
масштабовану інфраструктуру сповіщення, яка не потребує інсталяції
стороннього програмного забезпечення і може функціонувати в рамках
браузерів, що підтримують відповідні стандарти. Цей підхід вирішує питання
сумісності, зменшує технічну складність системи й дозволяє забезпечити
високу швидкість доставки інформації, що є ключовим фактором для систем,
спрямованих на захист населення та оперативну реакцію.
Оскільки вебпортал буде побудований із використанням сучасних
вебтехнологій, зокрема JavaScript, цілком логічним і технічно ефективним
рішенням є реалізація серверної частини на базі Node.js. Такий вибір дозволяє
створити єдине середовище розробки, у якому і клієнтська, і серверна логіка
використовуватимуть одну мову програмування. Це значно спрощує процес
проєктування системи, пришвидшує розробку та дозволяє більш органічно
інтегрувати всі компоненти платформи. Розробник може працювати в межах
одного технологічного стеку, що зменшує кількість помилок, спрощує обмін
даними між клієнтом і сервером та робить систему більш керованою.
Node.js має подієву архітектуру та працює на основі асинхронної моделі,
що робить його надзвичайно ефективним для систем, які потребують швидкої
реакції та обробки великої кількості одночасних підключень. У контексті
екстреного сповіщення це є важливою перевагою, оскільки сервер повинен
мати можливість миттєво реагувати на події, надсилати повідомлення
численним користувачам і підтримувати безперебійну роботу навіть при
високих навантаженнях. Node.js дозволяє легко реалізувати цю логіку,
забезпечуючи стабільність та мінімальні затримки при передачі критично
важливої інформації.
41
Ще одним важливим аспектом є широка екосистема пакетів NPM, яка
суттєво пришвидшує розробку. Завдяки цьому можна швидко інтегрувати
інструменти для роботи з базами даних, системами авторизації, аналітики,
обробки сповіщень і взаємодії з API зовнішніх сервісів [13]. Node.js також
добре підходить для побудови мікросервісної архітектури, що дозволяє
масштабувати систему екстреного сповіщення в майбутньому, додаючи нові
модулі без необхідності переписувати існуючий функціонал. Це створює
гнучкий фундамент для розвитку проєкту та дозволяє адаптувати систему під
різні сценарії використання.
Завдяки компактності, швидкодії та широкій підтримці спільноти
Node.js стає оптимальним вибором для серверної частини системи екстреного
сповіщення. Поєднання JavaScript на клієнтському та серверному рівнях
забезпечує цілісність, узгодженість і продуктивність усієї платформи, що є
критично важливим під час розробки сервісів, які покликані оперативно
інформувати користувачів про події, що становлять загрозу.
Для розробки серверної частини системи екстреного сповіщення
особливо важливо правильно обрати базу даних, оскільки саме вона
забезпечуватиме надійне збереження, обробку та доступність інформації, від
якої залежить точність і швидкість роботи всієї платформи. Оскільки дані в
такій системі мають чітку структуру ‒ включно з інформацією про події, їхні
категорії, геолокацію, часові мітки, статуси обробки, користувачів та
налаштування їхніх сповіщень ‒ доцільно використовувати саме
структуровану базу даних, яка гарантує цілісність, формальність та логічну
узгодженість даних. У цьому контексті оптимальним вибором стає MySQL,
яка добре підходить для проєктів, де необхідно забезпечити стабільність,
швидкість та передбачувану поведінку системи.
MySQL є реляційною базою даних, яка широко використовується в
комерційних і масштабних проєктах, що підтверджує її надійність і
відповідність високим вимогам. Вона забезпечує можливість створення чітко
42
структурованих таблиць, застосування зовнішніх ключів, індексів та
транзакцій, що гарантує коректний і захищений обіг інформації. Це особливо
важливо в умовах екстрених сповіщень, де кожен запис повинен бути
збережений правильно і доступний без затримок. Завдяки підтримці складних
SQL-запитів MySQL дозволяє легко організувати оптимізовані вибірки даних,
що суттєво впливає на швидкість отримання критично важливої інформації.
Крім того, MySQL відзначається високою продуктивністю та низькими
вимогами до ресурсів, що робить її ефективним рішенням для систем з
великою кількістю одночасних запитів. У поєднанні з Node.js вона дозволяє
будувати швидку, масштабовану та передбачувану серверну архітектуру, у
якій кожний запит обробляється максимально оперативно. Широка підтримка
спільноти та багаторічна історія використання також гарантують наявність
готових рішень, інструментів моніторингу, бібліотек для інтеграції та
можливостей для подальшого розширення.
Таким чином, вибір MySQL як основної бази даних для системи
екстреного сповіщення є обґрунтованим і стратегічно правильним рішенням.
Вона забезпечує не лише структурованість даних, але й стабільність, високу
продуктивність і передбачувану роботу системи, що є критично важливими
факторами для проєкту, орієнтованого на оперативне та точне інформування
користувачів у надзвичайних ситуаціях.
Для розробки клієнтського додатку системи екстреного сповіщення
передбачається використання фреймворку Vue.js. Це рішення обирається
через його високу гнучкість, простоту інтеграції з різними веб-технологіями
та ефективну роботу з динамічним інтерфейсом користувача. Використання
Vue.js дозволяє створити сучасний, швидкий і зручний веб-портал, який буде
одночасно легким для підтримки та масштабування [14].
Однією з ключових переваг Vue.js є його реактивна система даних, яка
дозволяє автоматично оновлювати відображення інформації на екрані
користувача при зміні стану додатку. У контексті системи екстреного
43
сповіщення це є критично важливим, оскільки повідомлення про події та стан
системи повинні відображатися миттєво, без затримок і перезавантажень
сторінок. Крім того, Vue.js забезпечує компонентний підхід до розробки, що
дозволяє створювати повторно використовувані елементи інтерфейсу та
спрощує підтримку і розширення функціоналу.
Vue.js також добре інтегрується з PWA, що дозволяє створити
кросплатформену систему, яка працюватиме однаково добре на мобільних
пристроях і на персональних комп’ютерах. Це означає, що користувачі
зможуть встановлювати портал як додаток на свої пристрої, отримувати push-
сповіщення через service worker та взаємодіяти з системою у зручний спосіб.
Крім того, Vue.js має широку екосистему плагінів та бібліотек, що дозволяє
легко додавати нові функції, такі як інтеграція з картами, аналітика
користувачів, системи фільтрації повідомлень або персоналізація сповіщень.
Використання Vue.js також спрощує роботу команди розробників,
оскільки синтаксис фреймворку інтуїтивно зрозумілий, добре документований
і підтримується великою спільнотою. Це дозволяє швидше реалізувати
прототипи, тестувати різні сценарії взаємодії користувача з системою та
швидко вносити зміни у функціонал. Таким чином, вибір Vue.js для розробки
клієнтського додатку забезпечує зручність, швидкість і надійність роботи веб-
порталу, створюючи сучасну та гнучку платформу для екстреного
інформування користувачів.
2.3 Висновки до розділу 2
У розділі проведено огляд сучасних технологій для розробки серверних
і вебдодатків. Було розглянуто Node.js, Java та Python, їхні архітектурні
особливості, переваги та сфери застосування. Node.js ефективний для систем
реального часу завдяки асинхронній моделі та масштабованості; Java
‒стабільна та продуктивна для великих корпоративних систем; Python ‒
44
зручна для AI/ML та швидкого прототипування. Для фронтенду ключовими є
JavaScript, React і HTML/CSS, що забезпечують інтерактивність,
кросплатформеність та зручність користувача. Використання AI дозволяє
аналізувати великі обсяги даних і автоматизувати визначення критичних подій
у режимі реального часу.
Також обґрунтовано вибір технологій для системи екстреного
сповіщення. Серверна частина реалізується на Node.js із реляційною базою
даних MySQL для швидкої та стабільної обробки структурованих даних.
Клієнтська частина будується на Vue.js у форматі PWA, що забезпечує
кросплатформенність, роботу офлайн та push сповіщення. Така архітектура
дозволяє створити гнучку, надійну та ефективну систему, здатну миттєво
інформувати користувачів про надзвичайні події, охоплюючи максимальну
аудиторію та спрощуючи подальший розвиток і підтримку платформи.
45
РОЗДІЛ 3 РОЗРОБКА СИСТЕМИ СПОВІЩЕННЯ НА БАЗІ
ШТУЧНОГО ІНТЕЛЕКТУ
3.1Структура системи
Було розроблено систему екстреного сповіщення, яка дозволяє
своєчасно інформувати користувачів про виникнення потенційних загроз.
Основною особливістю системи є використання штучного інтелекту для
автоматизованого виявлення інформації про надзвичайні події та небезпеки з
різних джерел. Система постійно аналізує надходящі дані, відфільтровує
непотрібну або хибну інформацію і виділяє ті повідомлення, які можуть
становити реальну загрозу для населення або окремих територій.
Якщо загроза підтверджується, система миттєво генерує сповіщення та
надсилає його користувачам. Цей процес здійснюється автоматично, що
дозволяє мінімізувати людський фактор та скоротити час реакції на
надзвичайну ситуацію. Користувачі отримують точну, актуальну та
структуровану інформацію, що дозволяє оперативно реагувати та приймати
необхідні заходи безпеки.
Завдяки інтеграції AI та автоматизованого процесу аналізу даних,
система забезпечує високу надійність та ефективність сповіщення, роблячи її
важливим інструментом для запобігання наслідкам надзвичайних подій та
забезпечення безпеки користувачів.
Використання штучного інтелекту в системі екстреного сповіщення
забезпечує ряд важливих переваг, які підвищують ефективність та надійність
роботи платформи. По-перше, AI дозволяє автоматизувати процес збору та
аналізу великого обсягу інформації з різних джерел, включно з новинами,
соціальними мережами, державними повідомленнями та іншими відкритими
даними. Завдяки цьому система здатна швидко виявляти потенційні загрози,
46
значно скорочуючи час між появою небезпечної події та її сповіщенням
користувачів.
По-друге, штучний інтелект забезпечує високу точність у визначенні
реальних загроз. Система здатна фільтрувати хибні або неперевірені
повідомлення, аналізувати контекст і відрізняти критично важливі події від
незначної інформації. Це дозволяє мінімізувати кількість помилкових
сповіщень, що підвищує довіру користувачів до системи та забезпечує більш
цілеспрямоване реагування.
Ще однією важливою перевагою є можливість AI адаптуватися до нових
типів загроз і змін у середовищі. Навчання на нових даних дозволяє системі
ставати більш ефективною з часом, розпізнавати нові патерни небезпечних
подій і забезпечувати постійне покращення точності сповіщень. Крім того,
автоматизація обробки даних дозволяє зменшити навантаження на людські
ресурси, оскільки не потрібно вручну відстежувати сотні джерел інформації
та аналізувати їх в умовах обмеженого часу.
Використання AI також відкриває можливості для прогнозування
ризиків і попереднього оцінювання потенційного масштабу загрози. Система
може не лише реагувати на вже виниклі події, але й робити попередні оцінки,
що дозволяє органам реагування та користувачам підготуватися заздалегідь.
У сукупності ці переваги роблять штучний інтелект ключовим елементом
сучасної системи екстреного сповіщення, забезпечуючи оперативність,
точність, надійність і здатність адаптуватися до нових умов та загроз.
Розглянемо серверну частину системи екстреного сповіщення, яка є
центральним компонентом і забезпечує взаємодію між різними модулями та
користувачами. Серверна частина побудована як сукупність окремих
функціональних модулів, кожен з яких відповідає за конкретну задачу і
забезпечує цілісну роботу системи.
Модуль парсингу інформації у серверній частині системи екстреного
сповіщення є ключовим компонентом, який забезпечує збір та первинну
47
обробку даних з різних джерел. Основна мета цього модуля ‒ автоматично
отримувати новини та повідомлення, які потенційно можуть містити
інформацію про надзвичайні події, та підготувати їх для подальшого аналізу
модулем штучного інтелекту. Структура розробленої системи зображено на
рисунку 3.1.
Рисунок 3.1 – Структура розробленої системи
Модуль парсингу реалізується як набір підсистем, які відповідають за
підключення до джерел даних, отримання інформації, її структурування та
попередню фільтрацію. Джерела можуть бути різноманітними: новинні
портали, офіційні урядові сайти, соціальні мережі, форуми та інші відкриті
ресурси. Кожне джерело обробляється за допомогою спеціальних алгоритмів
парсингу, які адаптовані до формату даних конкретного сайту або платформи.
48
Це дозволяє витягувати заголовки новин, текстові матеріали, дати публікації,
категорії, географічну інформацію та інші ключові дані, які знадобляться для
подальшого аналізу.
Після отримання сирих даних модуль виконує попередню обробку,
включно з очищенням тексту від зайвої розмітки, видаленням дублікованих
повідомлень та стандартизацією форматів даних. Така підготовка необхідна
для того, щоб модуль штучного інтелекту міг більш точно оцінювати
важливість інформації та визначати, які новини потребують сповіщення
користувачів.
Модуль парсингу також може включати систему фільтрів, які
дозволяють налаштовувати тематику та пріоритети отримуваних повідомлень.
Це означає, що система може не лише збирати всі доступні дані, а й робити
первинний відбір інформації, зменшуючи навантаження на AI та підвищуючи
ефективність сповіщень. Крім того, модуль передбачає регулярне оновлення
джерел і адаптацію алгоритмів до змін у структурі сайтів або форматах
публікацій, що забезпечує стабільність та безперервність роботи системи.
Важливо, що модуль парсингу спроектований так, щоб працювати у
реальному часі або близько до нього. Це дозволяє системі отримувати новини
майже відразу після їх появи, зберігати їх у базі даних та передавати на
обробку штучному інтелекту, який визначає пріоритетність та важливість
сповіщень. У сукупності цей модуль є фундаментом для автоматизованої
роботи системи, дозволяючи ефективно збирати, обробляти та підготовляти
інформацію для оперативного інформування користувачів.
Модуль штучного інтелекту у серверній частині системи екстреного
сповіщення є ключовим елементом, який відповідає за оцінку важливості
отриманої інформації та прийняття рішення щодо надсилання сповіщень
користувачам. Основною метою цього модуля є автоматичне визначення, які
новини чи повідомлення дійсно представляють потенційну загрозу і
потребують оперативного інформування.
49
Модуль штучного інтелекту працює з даними, що надходять від модуля
парсингу. Він аналізує тексти новин, виділяє ключові факти, категорії загроз,
географічні координати та часові мітки, а також оцінює контекст події. Для
реалізації цієї функціональності планується використання ChatGPT API, що
дозволяє модулю застосовувати сучасні алгоритми обробки природної мови
(NLP) та машинного навчання для розуміння семантики тексту, його
пріоритетності та потенційного впливу на користувачів.
За допомогою ChatGPT API модуль може виконувати різні завдання:
розпізнавати сутності в тексті (наприклад, місця, організації, події), оцінювати
тональність повідомлення, визначати рівень загрози та узгоджувати отриману
інформацію з історичними даними або шаблонами подій. Це дозволяє системі
уникати помилкових сповіщень і концентрувати увагу користувачів лише на
дійсно критично важливих ситуаціях.
Модуль штучного інтелекту також планується інтегрувати з модулем
налаштувань користувачів, що дозволить персоналізувати оцінку важливості
новин. Наприклад, якщо користувач вказав, що його цікавлять певні категорії
подій або конкретні регіони, AI буде враховувати ці параметри під час аналізу
та прийняття рішення про надсилання сповіщень. Це забезпечує
індивідуальний підхід до кожного користувача та підвищує ефективність
системи.
Ще однією важливою перевагою використання ChatGPT API є
можливість модулю постійно вдосконалюватися. Завдяки доступу до
потужних моделей обробки тексту, модуль може навчатися на нових даних,
адаптуватися до змін у способах подання інформації та розпізнавати нові типи
загроз, що робить систему більш гнучкою та надійною у довгостроковій
перспективі.
Таким чином, модуль штучного інтелекту є серцем автоматизованої
системи сповіщення, що забезпечує швидкий, точний та персоналізований
аналіз новин, визначення рівня їх критичності та підготовку оперативних
50
повідомлень для користувачів, що значно підвищує ефективність і надійність
системи.
Модуль налаштувань у серверній частині системи екстреного
сповіщення відповідає за зберігання та управління персональними
параметрами користувачів, що визначають, які сповіщення вони вважають
важливими та як хочуть їх отримувати. Основною метою цього модуля є
забезпечення персоналізованого підходу до інформування, що дозволяє
кожному користувачу отримувати лише релевантні повідомлення про
надзвичайні події, підвищуючи ефективність і зручність роботи системи.
Модуль налаштувань дозволяє користувачу вибирати типи подій, про
які він хоче отримувати сповіщення, наприклад, природні катастрофи,
надзвичайні ситуації техногенного характеру, локальні загрози у визначеному
регіоні або інші критичні події. Крім того, користувач може вказати
пріоритетність повідомлень, частоту їх отримання, а також метод доставки,
наприклад, через push-сповіщення, SMS або електронну пошту, якщо такі
інтеграції передбачені системою.
З технічної точки зору, модуль налаштувань забезпечує збереження
параметрів користувачів у базі даних у структурованому вигляді, що дозволяє
швидко отримувати і використовувати ці дані для персоналізації сповіщень.
Він взаємодіє з модулем штучного інтелекту, передаючи інформацію про
інтереси користувача, що дозволяє AI оцінювати важливість новин з
урахуванням індивідуальних уподобань та налаштувань.
Модуль також передбачає можливість динамічного оновлення
налаштувань у будь-який момент. Це означає, що користувач може змінювати
свої параметри, а система миттєво адаптує логіку надсилання сповіщень
відповідно до нових уподобань. Такий підхід підвищує гнучкість системи та
дозволяє ефективно задовольняти потреби різних категорій користувачів,
забезпечуючи індивідуалізований досвід взаємодії з платформою.
51
Таким чином, модуль налаштувань є ключовим елементом
персоналізації системи екстреного сповіщення, який дозволяє користувачам
контролювати типи та форму отримуваної інформації, підвищує релевантність
сповіщень і забезпечує більш точне та ефективне інформування.
Модуль авторизації у серверній частині системи екстреного сповіщення
відповідає за управління обліковими записами користувачів та забезпечення
безпеки доступу до системи. Основна мета цього модуля ‒ гарантувати, що
тільки авторизовані користувачі можуть отримувати сповіщення, змінювати
налаштування та взаємодіяти з іншими функціями платформи.
Модуль авторизації забезпечує процес реєстрації нових користувачів,
перевірку їхніх даних та зберігання облікових записів у безпечній формі. Це
включає захист персональної інформації та паролів за допомогою сучасних
алгоритмів шифрування і хешування, що гарантує конфіденційність даних.
Також модуль відповідає за автентифікацію користувачів під час входу в
систему, перевірку токенів доступу та управління сесіями.
Важливою функцією модуля є контроль рівнів доступу, що дозволяє
визначати, які користувачі мають право змінювати налаштування, отримувати
сповіщення різного рівня важливості або виконувати адміністративні функції.
Це забезпечує безпеку роботи системи та запобігає несанкціонованому
доступу до критично важливої інформації.
Модуль авторизації інтегрується з іншими компонентами системи,
зокрема з модулем налаштувань та модулем роботи клієнтської частини. Це
дозволяє підтримувати персоналізований доступ до даних, зберігати
індивідуальні параметри користувачів та гарантувати, що сповіщення
надсилаються тільки тим користувачам, які мають на це право.
Таким чином, модуль авторизації є критично важливим елементом
серверної частини системи, який забезпечує безпечне управління обліковими
записами, захист персональних даних, контроль доступу і надійну роботу всіх
функцій системи екстреного сповіщення.
52
Модуль роботи клієнтської частини у серверній частині системи
екстреного сповіщення відповідає за організацію взаємодії між сервером та
користувачами через клієнтський інтерфейс, забезпечуючи передачу даних,
доставку сповіщень та обробку запитів від користувачів. Основною метою
цього модуля є забезпечення безперебійного зв’язку між сервером і PWA-
додатком, що дозволяє користувачам отримувати актуальну інформацію про
надзвичайні події та керувати власними налаштуваннями.
Модуль включає в себе логіку обробки запитів від клієнтського додатку,
таких як запит на отримання списку сповіщень, оновлення налаштувань
користувача або підтвердження отримання повідомлення. Він забезпечує
синхронізацію даних між сервером і клієнтом у реальному часі, що особливо
важливо для системи екстреного сповіщення, де затримки можуть мати
критичне значення.
Ключовою функцією цього модуля є доставка push сповіщень на PWA-
додаток. Сервер формує повідомлення на основі даних, отриманих від модулів
парсингу та штучного інтелекту, і надсилає їх клієнтському додатку через
service worker. Модуль гарантує, що повідомлення будуть доставлені навіть у
випадку, якщо додаток не відкритий, або користувач тимчасово не перебуває
у мережі, забезпечуючи таким чином надійність та оперативність системи.
Модуль роботи клієнтської частини також забезпечує обробку взаємодій
користувачів з інтерфейсом, наприклад підтвердження прочитання
повідомлень, активацію сповіщень про нові події або запити додаткової
інформації про подію. Це дозволяє підтримувати інтерактивність системи і
збирати статистику використання, що може бути корисним для подальшої
оптимізації алгоритмів доставки сповіщень і роботи AI.
Модуль роботи клієнтської частини є важливим зв’язковим елементом
серверної архітектури, який забезпечує швидку, надійну та персоналізовану
взаємодію користувача з системою, гарантуючи своєчасну доставку критично
53
важливих сповіщень та ефективну роботу всіх функціональних компонентів
платформи.
Усі модулі системи екстреного сповіщення, включно з модулем
парсингу інформації, модулем штучного інтелекту, модулем налаштувань,
модулем авторизації та модулем роботи клієнтської частини, є складовими
частинами одного серверного додатку, побудованого на базі Node.js. Така
архітектура дозволяє інтегрувати всі функціональні компоненти в єдину
систему, забезпечуючи ефективну взаємодію між модулями, централізовану
обробку даних та швидку реакцію на надходження нової інформації.
Дані, що використовуються в системі ‒ включно з інформацією про
користувачів, їхні налаштування, отримані новини та статуси сповіщень ‒
зберігаються у структурованій базі даних MySQL. Це забезпечує цілісність і
надійність збереження інформації, можливість швидкого виконання запитів
та легку масштабованість при збільшенні кількості користувачів та обсягу
даних.
Комунікація серверного додатку з клієнтською частиною, зокрема з
PWA-додатком, відбувається через захищений протокол HTTPS.
Використання HTTPS гарантує конфіденційність даних, що передаються,
захист від перехоплення та маніпуляцій, а також надійну доставку сповіщень
користувачам. Такий підхід забезпечує безпечну та стабільну роботу системи,
зберігаючи високий рівень довіри користувачів та ефективність роботи всіх
модулів одночасно.
Клієнтський додаток системи екстреного сповіщення побудований на
базі фреймворку Vue.js. Використання Vue.js дозволяє створити сучасний,
швидкий і інтерактивний вебпортал, який забезпечує комфортну та ефективну
взаємодію користувача з системою. Завдяки реактивній архітектурі та
компонентному підходу, додаток здатний динамічно оновлювати
відображення даних у реальному часі, миттєво відображаючи нові сповіщення
та зміни налаштувань.
54
Vue.js також забезпечує простоту масштабування та інтеграції з іншими
вебтехнологіями, що дозволяє легко додавати нові функції, такі як
персоналізація сповіщень, аналітика використання додатку або інтерактивні
елементи інтерфейсу. Крім того, фреймворк добре інтегрується з технологією
PWA, що дозволяє встановлювати вебдодаток на будь-який пристрій і
отримувати push сповіщення навіть при відсутності активного відкритого
вікна браузера.
3.2 Опис функцій системи
Основною функцією системи екстреного сповіщення є парсинг новин та
аналіз їх з використанням штучного інтелекту. Система автоматично збирає
інформацію з різних джерел, включно з новинними порталами, соціальними
мережами та офіційними повідомленнями, і передає ці дані на обробку AI.
Штучний інтелект оцінює важливість кожної новини, визначає рівень
потенційної загрози та вирішує, які повідомлення потребують негайного
сповіщення користувачів.
Такий підхід дозволяє системі працювати в режимі реального часу,
миттєво відслідковувати надзвичайні події та забезпечувати точне та
релевантне інформування користувачів. Завдяки комбінації парсингу та AI
аналізу, система здатна фільтрувати непотрібну або хибну інформацію,
зменшувати кількість помилкових сповіщень і максимально підвищувати
ефективність та оперативність реагування на критичні події.
Система має заздалегідь сформований список новинних ресурсів, з яких
здійснюється парсинг і збір інформації. До цього списку включено відомі
українські новинні медіа та портали загальнонаціонального рівня, а також
місцеві черкаські ресурси. Такий підбір джерел дозволяє охопити як
загальнодержавні, так і регіональні новини ‒ зокрема ті, що можуть
55
стосуватися безпеки, надзвичайних подій або локальних загроз у Черкаському
регіоні.
Завдяки включенню як загальноукраїнських, так і локальних черкаських
видань, система має змогу відслідковувати широкий спектр подій: від
масштабних кризових ситуацій до локальних надзвичайних ситуацій,
характерних для конкретних громад. Це робить систему більш чутливою і
релевантною ‒ користувачі можуть отримувати сповіщення не лише про
загальні загрози, але й про події, які безпосередньо стосуються їхнього
регіону.
Система також підтримує можливість додавати нові ресурси
користувачем. Це дозволяє користувачам самостійно розширювати перелік
джерел інформації відповідно до власних потреб та інтересів, включаючи
додаткові локальні або тематичні новинні портали. Така функціональність
підвищує гнучкість системи, забезпечує індивідуалізацію отримуваних
сповіщень і дозволяє користувачам відслідковувати новини саме з тих джерел,
які вони вважають надійними та важливими. Інтерфейс системи зображено на
рисунку 3.2.
Впровадження цієї можливості забезпечує користувачам відчуття
контролю над інформаційним потоком і дозволяє системі ефективніше
адаптуватися до різних регіональних та тематичних особливостей, роблячи
сповіщення більш персоналізованими і релевантними для кожного окремого
користувача.
Після того як модуль штучного інтелекту виконує аналіз новин, система
визначає, які повідомлення є важливими та потребують сповіщення
користувачів. Важливі новини зберігаються у базі даних у структурованому
вигляді, включно з інформацією про джерело, категорію події, рівень загрози,
дату публікації та географічні дані, якщо вони присутні. Збереження таких
даних дозволяє системі вести історію сповіщень, аналізувати тенденції, а
56
також забезпечувати повторне надсилання повідомлень користувачам, які
могли тимчасово пропустити їх.
Рисунок 3.2. – Інтерфейс системи
Після збереження новин відбувається процес розсилання сповіщень
користувачам. Система перевіряє налаштування користувачів, зокрема їх
підписки на конкретні джерела та категорії новин. Користувачі, які підписані
на відповідне джерело або категорію подій, отримують сповіщення у
57
реальному часі, що дозволяє їм оперативно реагувати на надзвичайні ситуації.
Відображення нотифікації у операційній системі macos на рисунку 3.3
Рисунок 3.3 – Відображення нотифікації у операційній системі Macos
Відправлення нотифікацій реалізується через Web Notifications. Сервер
формує повідомлення, передає його клієнтській частині додатку, де service
worker обробляє доставку сповіщення безпосередньо на пристрій користувача.
Завдяки цьому користувач отримує сповіщення навіть у випадку, якщо
додаток неактивний або браузер закритий, забезпечуючи надійну та своєчасну
комунікацію.
У результаті весь процес ‒ від збору новин, аналізу їх штучним
інтелектом, збереження важливих повідомлень до їх доставки через Web
Notifications ‒ працює як єдиний автоматизований ланцюг. Це дозволяє
максимально скоротити час між появою загрози та її сповіщенням
користувачів, підвищуючи оперативність, точність та ефективність системи
екстреного сповіщення.
Дані нотифікації підтримуються у всіх сучасних системах і
забезпечують доставку повідомлень на широкий спектр пристроїв, що робить
систему екстреного сповіщення максимально доступною для користувачів.
Web Notifications, які використовуються для відправлення сповіщень, сумісні
з більшістю сучасних веб-браузерів та операційних систем, що дозволяє
58
отримувати повідомлення без необхідності встановлення окремого мобільного
додатку.
Система забезпечує роботу нотифікацій на десктопних та мобільних
пристроях, включно з комп’ютерами під управлінням Windows, macOS та
Linux, а також на смартфонах і планшетах, що працюють на Android та iOS.
Крім того, завдяки використанню технології PWA, веб-додаток може бути
встановлений як прогресивний додаток на будь-який пристрій, а push
сповіщення будуть доставлятися навіть у фоновому режимі або при закритому
браузері.
Система екстреного сповіщення забезпечує кросплатформенну
підтримку нотифікацій, гарантує доступність повідомлень на всіх сучасних
операційних системах і пристроях, що робить її універсальним інструментом
для оперативного інформування користувачів про надзвичайні події.
При натисненні на сповіщення система дозволяє користувачу відкрити
повний текст новини або повідомлення у веббраузері. Це забезпечує
можливість детально ознайомитися з інформацією про надзвичайну подію,
включно з додатковими деталями, джерелами та контекстом події. Такий
підхід робить сповіщення не лише швидким способом привернути увагу
користувача до важливої інформації, а й зручним інструментом для отримання
повного обсягу даних без необхідності додаткового пошуку або переходу на
сторонні ресурси.
Кожне сповіщення стає інтерактивним, дозволяючи користувачу
миттєво переходити до повного повідомлення, що підвищує ефективність
системи та забезпечує оперативне інформування з можливістю детального
ознайомлення з критичною інформацією.
Система має вбудовану систему авторизації, яка забезпечує безпечний
доступ користувачів до функціоналу платформи. Для того щоб пройти
авторизацію, користувач повинен бути попередньо зареєстрованим у системі.
Реєстрація дозволяє створити персональний обліковий запис, де зберігаються
59
налаштування користувача, підписки на джерела новин та історія отриманих
сповіщень.
Авторизація гарантує, що доступ до важливої інформації та налаштувань
системи мають лише зареєстровані користувачі, що підвищує безпеку і
конфіденційність даних. Після успішного входу користувач отримує доступ
до персоналізованого інтерфейсу, можливості отримувати сповіщення
відповідно до своїх уподобань і керувати власними налаштуваннями в системі.
3.3 Технічні вимоги для роботи з системою
Система екстреного сповіщення являє собою комплексний програмний
продукт, що включає серверну та клієнтську частини, побудовані на сучасних
веб-технологіях, і забезпечує автоматизований збір, аналіз та доставку
сповіщень про надзвичайні події користувачам. Для забезпечення ефективної
та стабільної роботи системи необхідно дотримуватися певних технічних
вимог, що охоплюють апаратне забезпечення, програмне середовище,
мережеву інфраструктуру, сумісність браузерів, а також принципи взаємодії
між усіма компонентами.
Серверна частина системи побудована на базі Node.js та є єдиним
серверним додатком, у який інтегровані всі основні модулі системи: модуль
парсингу інформації, модуль штучного інтелекту, модуль налаштувань,
модуль авторизації та модуль роботи клієнтської частини. Використання
Node.js забезпечує асинхронну обробку запитів, високопродуктивну роботу з
великим потоком даних та можливість масштабування сервера при зростанні
кількості користувачів або обсягу оброблюваних новин.
Для стабільної роботи серверної частини рекомендовано
використовувати виділений сервер із наступними мінімальними
характеристиками: процесор не менше 4 ядер з тактовою частотою 2.5 ГГц,
оперативна пам’ять 16 ГБ, SSD-диск обсягом не менше 500 ГБ для швидкого
60
збереження та доступу до даних, а також стабільне підключення до інтернету
зі швидкістю завантаження і віддачі не менше 100 Мбіт/с. Сервер має
підтримувати роботу під операційними системами Linux (рекомендовано
Ubuntu або CentOS), оскільки Node.js у такому середовищі забезпечує
максимальну стабільність, продуктивність та безпеку.
Дані системи зберігаються у структурованій базі даних MySQL. База
даних повинна забезпечувати швидкий доступ до великих обсягів інформації,
включно з даними користувачів, їхніми налаштуваннями, підписками на
джерела новин, збереженими новинами та історією сповіщень. Для
забезпечення надійності та безпеки даних MySQL-сервер повинен мати
регулярне резервне копіювання, підтримку транзакцій, механізми
шифрування даних та контроль доступу. Також важливим є забезпечення
оптимальної структури таблиць і індексів для швидкого виконання запитів до
бази даних, особливо при масштабуванні системи.
Модуль парсингу новин відповідає за збір інформації з заздалегідь
визначених джерел, включно з відомими українськими новинними порталами
та локальними черкаськими ресурсами. Для його роботи необхідне стабільне
інтернет-з’єднання на сервері, можливість виконання регулярних
планувальників завдань (cron jobs) для періодичного опитування джерел, а
також механізми обробки помилок і повторних спроб отримання даних у
випадку тимчасових неполадок мережі або відсутності доступу до джерела.
Система також повинна підтримувати можливість додавання нових джерел
користувачами, що дозволяє персоналізувати потік інформації та
розширювати охоплення новин.
Модуль штучного інтелекту, який використовує API ChatGPT,
відповідає за аналіз новин і визначення їх важливості. Для роботи цього
модуля сервер повинен мати постійне підключення до інтернету для
відправлення запитів на сервіс OpenAI. Взаємодія з ChatGPT відбувається
через HTTP-запити до API, де сервер передає текст новини або його частину,
61
а у відповідь отримує оцінку важливості, категорію події та рекомендації щодо
відправлення сповіщення. Для стабільної роботи модуля AI необхідно
забезпечити обмеження швидкості запитів (rate limiting) відповідно до умов
ліцензії API, а також механізми кешування результатів, щоб уникати
надмірного повторного звернення до сервісу при обробці однакових новин.
Після аналізу важливі новини зберігаються у базі даних та надсилаються
користувачам, підписаним на відповідне джерело або категорію подій.
Доставка сповіщень відбувається через Web Notifications за допомогою service
worker у PWA-додатку. Для коректної роботи нотифікацій браузери
користувачів повинні підтримувати стандарти Notification API і Push API.
Серед основних вимог ‒ використання сучасних версій браузерів: Google
Chrome (версія 80 і вище), Mozilla Firefox (версія 75 і вище), Microsoft Edge
(версія 80 і вище), Safari (версія 13 і вище на macOS та iOS), а також підтримка
Chromium-базованих мобільних браузерів на Android. Браузери повинні
дозволяти показ push сповіщень і не блокувати їх за замовчуванням. Для
забезпечення безпечної доставки повідомлень всі комунікації між сервером і
клієнтською частиною відбуваються через захищений протокол HTTPS з
використанням сертифікатів SSL/TLS.
Клієнтська частина системи побудована на базі Vue.js і забезпечує
динамічний та інтерактивний інтерфейс користувача. Додаток підтримує
технологію PWA, що дозволяє встановлювати його на будь-який пристрій і
отримувати сповіщення навіть у фоновому режимі або при закритому
браузері. Для коректної роботи PWA необхідно, щоб браузер підтримував
Service Workers, Cache API та Web App Manifest, а також мав доступ до
інтернету для отримання оновленої інформації і доставки push сповіщень [16].
Система передбачає обов’язкову авторизацію користувачів. Кожен
користувач повинен бути зареєстрованим для створення персонального
облікового запису, у якому зберігаються налаштування, підписки на джерела
новин та історія сповіщень. Для роботи модуля авторизації сервер повинен
62
підтримувати безпечне зберігання паролів із використанням хешування та
шифрування, механізми автентифікації за токенами доступу, контроль сесій
та обмеження рівнів доступу до різних функціональних модулів системи.
Вимоги до продуктивності системи включають здатність обробляти
одночасно сотні або тисячі запитів користувачів, забезпечувати доставку
сповіщень у реальному часі та підтримувати стабільну роботу при збільшенні
кількості джерел новин. Сервер повинен мати достатній обсяг оперативної
пам’яті для кешування даних, щоб зменшити затримки при обробці запитів, а
також налаштовану систему логування та моніторингу, що дозволяє
відслідковувати працездатність усіх модулів, швидко виявляти помилки та
виконувати їхнє усунення.
Технічні вимоги до роботи системи включають: виділений сервер з
високопродуктивним процесором, достатнім обсягом пам’яті та SSD-диском;
використання Node.js для серверної частини; структуровану базу даних
MySQL; безпечну комунікацію через HTTPS; підтримку сучасних браузерів із
сумісністю Web Notifications і PWA; інтеграцію з API ChatGPT для аналізу
новин; стабільне інтернет-з’єднання для обміну даними; обов’язкову
авторизацію користувачів із захищеним зберіганням облікових даних; та
систему логування й моніторингу для забезпечення стабільної та
безперебійної роботи платформи. Дотримання цих вимог забезпечує надійне
та оперативне інформування користувачів, персоналізацію сповіщень і
високий рівень безпеки та доступності системи екстреного сповіщення.
3.4 Оцінка ефективності
Сучасні системи інформування користувачів про надзвичайні події, що
базуються на відображенні новин, мають обмежену ефективність у швидкому
та точному інформуванні населення. Традиційні платформи новин
забезпечують користувачів лише загальним потоком інформації, без
63
можливості оцінити її актуальність або критичність. У таких системах
користувачеві доводиться самостійно відслідковувати різні джерела,
фільтрувати новини за важливістю, а також визначати, які події є екстреними
або загрожують безпеці. Це часто призводить до затримок у реагуванні на
критичні події, підвищує ризик отримання неперевіреної або неактуальної
інформації і значно знижує ефективність сповіщення.
На противагу цьому, система екстреного сповіщення, побудована на базі
штучного інтелекту та автоматизованого аналізу новин, забезпечує значно
більш високий рівень ефективності. Основною перевагою такої системи є
повна автоматизація процесу збору, аналізу та доставки інформації, що
дозволяє миттєво ідентифікувати критично важливі події та доставляти
сповіщення безпосередньо тим користувачам, для яких ці події мають
значення. Завдяки використанню модулю AI на базі ChatGPT API система
здатна оцінювати важливість кожної новини, визначати категорію події та
прогнозувати рівень потенційної загрози. Це значно знижує ймовірність
пропуску критичних подій та забезпечує максимально релевантне
інформування користувачів [17].
Автоматизована система екстреного сповіщення дозволяє усунути один
із головних недоліків традиційних новинних платформ ‒ аналіз та відбір
інформації «вручну». У класичних системах користувач повинен переглядати
десятки або сотні новин, самостійно оцінювати їх важливість і робити
висновок про необхідність реагування. У нашій системі всі ці дії виконуються
автоматично: модуль парсингу збирає інформацію з численних джерел,
модуль AI аналізує новини та визначає їх критичність, а система сповіщень
доставляє повідомлення лише тим користувачам, для яких це актуально. Це
дозволяє економити час користувача, знижує когнітивне навантаження та
забезпечує своєчасне інформування навіть у кризових ситуаціях.
Ще одним важливим аспектом є персоналізація сповіщень. Традиційні
системи новин не враховують індивідуальні інтереси користувача: всі
64
отримують однаковий потік новин, що може містити багато непотрібної
інформації. В автоматизованій системі користувачі мають можливість
підписуватися на конкретні джерела та категорії подій, а також додавати
власні ресурси для відстеження. Модуль налаштувань зберігає ці параметри у
базі даних і забезпечує доставку лише тих сповіщень, які дійсно важливі для
конкретного користувача. Такий підхід не тільки підвищує ефективність
сповіщень, а й значно покращує користувацький досвід, дозволяючи уникнути
інформаційного шуму.
Система забезпечує доставку сповіщень у реальному часі через Web
Notifications, що дозволяє отримувати критично важливі повідомлення навіть
тоді, коли вебдодаток неактивний або браузер закритий. Традиційні новинні
платформи не мають таких можливостей: користувачеві необхідно самостійно
відкривати вебсайт або додаток, щоб переглянути новини. У нашій системі
push сповіщення миттєво повідомляють про загрози, а натискання на
повідомлення дозволяє перейти безпосередньо до повного тексту новини для
детального ознайомлення. Це значно скорочує час між появою інформації та
її отриманням користувачем, що критично важливо у надзвичайних ситуаціях,
коли кожна хвилина може мати значення.
Важливим аспектом ефективності є також здатність системи обробляти
великі обсяги інформації та одночасно забезпечувати доступ сотням або
тисячам користувачів. Використання Node.js у поєднанні з базою даних
MySQL дозволяє виконувати швидкі запити, ефективно кешувати дані та
обробляти одночасні запити користувачів без зниження продуктивності.
Традиційні платформи новин часто не забезпечують таку швидкість обробки
або потребують значних ресурсів для масштабування. Натомість наша система
спроектована для масштабованості, що дозволяє підтримувати високий рівень
сервісу навіть при збільшенні кількості користувачів або джерел інформації.
Ще однією перевагою є автоматичне збереження важливих новин у базі
даних, що дозволяє вести історію подій, аналізувати тенденції та повторно
65
надсилати повідомлення користувачам у разі потреби. Традиційні новинні
ресурси не забезпечують такого рівня організації та структурованості
інформації, оскільки новини часто розміщуються у вигляді стрічок без
можливості фільтрування за критичністю або регіоном. Автоматизована
система забезпечує структуроване зберігання даних, що дає змогу виконувати
аналітику, оцінювати ефективність сповіщень та прогнозувати подальший
розвиток подій.
Використання штучного інтелекту у системі дозволяє значно підвищити
точність і релевантність сповіщень у порівнянні з традиційними платформами.
Модуль AI здатний аналізувати тексти новин не лише за ключовими словами,
а й за контекстом, виявляти приховані загрози або важливі події, які можуть
бути неочевидними на перший погляд. Це дозволяє мінімізувати кількість
помилкових або неактуальних сповіщень і зосередитися саме на тих подіях,
що дійсно потребують уваги користувача.
Крім того, автоматизована система забезпечує безперервність роботи та
доступність інформації 24/7. У випадку традиційних новинних платформ
користувач залежить від графіку публікацій та швидкості оновлення ресурсів.
В нашій системі процес збору, аналізу та доставки сповіщень повністю
автоматизований, що гарантує, що важлива інформація не буде пропущена
навіть у нічний час або у святкові дні.
Система також забезпечує інтеграцію локальних та регіональних новин,
що робить її більш ефективною для користувачів конкретного регіону.
Наприклад, включення черкаських локальних ресурсів дозволяє оперативно
повідомляти мешканців регіону про надзвичайні ситуації, які можуть бути
пропущені загальноукраїнськими платформами. Це підвищує значущість
сповіщень та покращує адаптивність системи до місцевих потреб.
Порівняно з традиційними системами, які просто показують новини,
автоматизована система екстреного сповіщення на базі AI має низку суттєвих
переваг: вона забезпечує швидку і точну оцінку важливості подій,
66
персоналізує інформацію для кожного користувача, забезпечує доставку
сповіщень у реальному часі, мінімізує інформаційний шум, підтримує
масштабованість і безперервну роботу, а також інтегрує локальні та
регіональні новини. Такі переваги роблять систему високоефективним
інструментом для швидкого реагування на надзвичайні ситуації та
підвищують рівень безпеки і обізнаності користувачів.
3.5 Висновки до розділу 3
У розділі було детально розглянуто процес розробки системи екстреного
сповіщення на базі штучного інтелекту. Було описано структуру системи,
ключові модулі та їх функціональні можливості, а також технічні вимоги для
забезпечення стабільної та ефективної роботи платформи.
Розроблена система включає серверну та клієнтську частини,
побудовані з використанням сучасних технологій Node.js та Vue.js.
Центральним елементом системи є модуль штучного інтелекту, який
автоматично аналізує інформацію з різних джерел, оцінює рівень загрози та
генерує сповіщення для користувачів у режимі реального часу. Модуль
парсингу забезпечує збір і попередню обробку даних, а модуль налаштувань
персоналізує отримані повідомлення під інтереси кожного користувача.
Модуль авторизації гарантує безпечний доступ до системи, а клієнтська
частина забезпечує надійну та інтерактивну взаємодію користувача з
платформою, включно з доставкою Web Notifications та підтримкою PWA.
Система забезпечує високу оперативність, точність і надійність
інформування користувачів завдяки автоматизації процесів, інтеграції AI та
структурованому підходу до обробки даних. Технічні вимоги, включно з
апаратним забезпеченням, захищеним протоколом HTTPS, базою даних
MySQL та підтримкою сучасних браузерів, дозволяють гарантувати стабільну
роботу системи навіть при великій кількості користувачів і джерел інформації.
67
Розроблена система екстреного сповіщення є сучасним, ефективним і
безпечним інструментом для своєчасного інформування населення про
надзвичайні події та потенційні загрози, здатним адаптуватися до змін
середовища та нових типів загроз, забезпечуючи персоналізований підхід до
кожного користувача.
68
РОЗДІЛ 4 ЗАХИСТ ІНФОРМАЦІЙНОЇ СИСТЕМИ СПОВІЩЕННЯ НА
БАЗІ ШТУЧНОГО ІНТЕЛЕКТУ
4.1 Огляд існуючих рішень захисту системи сповіщення
У сучасних інформаційних системах безпека даних є ключовим
аспектом, особливо для серверних додатків, які обробляють великі обсяги
конфіденційної інформації. Серверні додатки взаємодіють з користувачами,
базами даних та зовнішніми сервісами, що робить їх потенційною мішенню
для кібератак. Надійний захист інформації забезпечує цілісність даних,
конфіденційність користувачів і стабільність роботи системи, що є особливо
важливим для додатків, пов’язаних із критичними або персональними даними.
Шифрування є одним із основних методів захисту інформації. Серверні
додатки повинні використовувати протоколи HTTPS для безпечної передачі
даних між клієнтом і сервером, що запобігає їх перехопленню або модифікації
сторонніми особами. Крім того, важливо застосовувати шифрування для
збереження конфіденційних даних у базах даних, таких як паролі, токени
доступу та особисті дані користувачів [18]. Використання сучасних алгоритмів
шифрування, таких як AES та RSA, дозволяє значно знизити ризик
несанкціонованого доступу до інформації.
Надійна система аутентифікації користувачів є критичною для
захисту серверних додатків. Використання протоколів OAuth 2.0 та JSONWeb
Tokens або багатофакторної аутентифікації дозволяє перевіряти особу
користувача перед наданням доступу до системи. Авторизація забезпечує
контроль прав доступу, гарантуючи, що різні категорії користувачів можуть
виконувати лише дозволені дії. Це зменшує ризик несанкціонованого доступу,
втрати або модифікації даних [19].
69
Серверні додатки можуть бути вразливими до атак, таких як SQL-
ін’єкції, Cross-Site Scripting та CSRF, а також до DDoS-атак. Для мінімізації
цих загроз важливо застосовувати перевірку та фільтрацію даних, обмеження
кількості запитів, використання веб-файрволів та регулярне оновлення
серверного програмного забезпечення. Такий підхід дозволяє значно
підвищити стійкість системи до зловмисних дій.
Постійний моніторинг та ведення журналів подій є важливими
елементами захисту серверних додатків. Системи моніторингу дозволяють
відстежувати підозрілі дії, спроби несанкціонованого доступу або збої у роботі
сервера [20]. Регулярний аудит безпеки допомагає своєчасно виявляти
потенційні вразливості та підвищує надійність роботи системи, забезпечуючи
своєчасне реагування на загрози.
Для забезпечення цілісності даних та стійкості системи до технічних
збоїв чи атак необхідно впроваджувати регулярне резервне копіювання та
плани відновлення даних. Це дозволяє мінімізувати наслідки втрати або
пошкодження інформації та швидко відновлювати роботу серверних додатків
без втрати критично важливих даних.
Захист інформації в серверних додатках включає комплекс
взаємопов’язаних заходів, таких як шифрування, аутентифікація та
авторизація, захист від атак, моніторинг та аудит, а також резервне копіювання
даних. Такий підхід забезпечує надійну роботу системи, гарантує
конфіденційність та цілісність даних користувачів, а також стабільність
роботи додатків у умовах сучасних кіберзагроз.
Захист при роботі з системою є критично важливим аспектом, особливо
для додатків, які опрацьовують конфіденційні дані користувачів або
виконують сповіщення про надзвичайні події. Надійний захист включає
механізми контролю доступу, перевірки особи користувача та обмеження прав
на виконання операцій. Це дозволяє знизити ризик несанкціонованого
доступу, підробки даних або неправомірного використання системи.
70
Авторизація визначає, які дії може виконувати користувач у системі
після успішного входу. Вона дозволяє розділити права доступу між різними
категоріями користувачів, наприклад, звичайними користувачами,
адміністраторами або модераторами. Використання авторизації гарантує, що
кожен користувач бачить лише ті дані та функції, до яких він має дозвіл. Це
знижує ризик випадкового або навмисного порушення роботи системи та
забезпечує безпеку критичних операцій.
Аутентифікація ‒ це процес перевірки особи користувача перед
наданням доступу до системи. Надійна аутентифікація забезпечує, що до
системи не можуть потрапити сторонні особи або зловмисники.
Найпоширеніші методи аутентифікації включають використання паролів,
токенів доступу, одноразових кодів та багатофакторної перевірки.
Багатофакторна аутентифікація значно підвищує рівень безпеки, оскільки
вимагає одночасного підтвердження особи через кілька каналів, наприклад,
пароль і SMS-код або застосунок-генератор кодів [21].
Сучасні системи часто використовують протоколи безпечного доступу,
такі як OAuth 2.0 або OpenID Connect, для авторизації та аутентифікації. Вони
дозволяють централізовано керувати правами доступу та безпечно передавати
облікові дані між серверами [22]. Такі підходи дозволяють інтегрувати
систему з іншими сервісами, зберігаючи високий рівень безпеки та контролю
над користувацькими даними.
Для забезпечення безпеки системи важливо відстежувати спроби входу,
зміну прав користувачів та інші критичні дії в системі. Логування всіх подій і
регулярний аудит дозволяють своєчасно виявляти підозрілі дії, потенційні
загрози та неправомірне використання ресурсів системи. Це дозволяє
оперативно реагувати на порушення безпеки та знижує ризик серйозних
наслідків у разі атак.
Захист інформації при роботі з системою базується на комплексі заходів,
серед яких авторизація, аутентифікація, використання сучасних протоколів
71
безпеки та постійний моніторинг доступу. Такий підхід забезпечує контроль
за доступом користувачів, запобігає несанкціонованому використанню
системи та гарантує цілісність і конфіденційність даних користувачів.
Захист інформації у базі даних є критично важливим для забезпечення
безпеки користувацьких даних та цілісності системи. Бази даних містять
конфіденційну інформацію, включаючи персональні дані, облікові записи
користувачів, токени доступу та історію сповіщень. Недостатній захист цих
даних може призвести до витоку інформації, втрати довіри користувачів та
порушення функціонування системи.
Одним із основних методів захисту є шифрування даних, що
зберігаються у базі. Це забезпечує безпечне зберігання інформації та
унеможливлює її читання у разі несанкціонованого доступу до серверу або
самої бази. Найпоширеніші методи включають симетричне шифрування (AES)
для зберігання великих обсягів даних та асиметричне шифрування (RSA) для
захисту ключів і критичних даних. Крім того, важливо застосовувати
хешування паролів користувачів з додаванням «сольових» значень, щоб
захистити їх від компрометації.
Кожен користувач або сервіс, який взаємодіє з базою даних, повинен
мати обмежені права доступу. Реалізація ролей і прав доступу дозволяє
забезпечити, що лише авторизовані користувачі або модулі системи можуть
виконувати операції читання, запису або зміни даних. Це запобігає
випадковим або навмисним модифікаціям, знищенню або витоку інформації.
Для забезпечення стійкості системи та збереження цілісності даних
необхідно впроваджувати регулярне резервне копіювання бази даних.
Резервні копії повинні зберігатися у безпечному місці, бажано за межами
основного сервера, і шифруватися для захисту від сторонніх осіб. Це дозволяє
відновлювати інформацію у випадку технічних збоїв, кібератак або
випадкових помилок.
72
Постійний моніторинг доступу до бази даних та аудит змін є важливими
заходами безпеки. Вони дозволяють відстежувати підозрілі дії, спроби
несанкціонованого доступу та будь-які критичні зміни у даних. Регулярний
аудит допомагає своєчасно виявляти уразливості та підвищує загальну безпеку
системи [23].
Бази даних часто стають об’єктом SQL-ін’єкцій та інших видів атак.
Захист включає використання підготовлених запитів (prepared statements),
ORM-інструментів та перевірку всіх вхідних даних перед обробкою. Це
знижує ризик компрометації бази даних і забезпечує цілісність збережених
даних.
Захист інформації при збереженні даних у базі включає комплекс
заходів: шифрування, контроль доступу, регулярне резервне копіювання,
моніторинг та захист від атак. Такі підходи гарантують цілісність,
конфіденційність і доступність даних користувачів, підвищують безпеку
системи та мінімізують ризики витоку або втрати критичної інформації.
Застосування штучного інтелекту в інформаційних системах дозволяє
автоматизувати обробку великих обсягів даних, робити прогнози та приймати
рішення у реальному часі. Разом з цим виникає питання безпеки даних,
оскільки AI системи потребують доступу до конфіденційної інформації
користувачів, новинних потоків та інших джерел. Захист інформації при
роботі з AI є критично важливим для забезпечення конфіденційності,
цілісності та достовірності оброблюваних даних.
Для AI систем особливо важливим є шифрування даних як у процесі
передачі, так і при зберіганні. Дані користувачів, результати обробки та моделі
штучного інтелекту повинні зберігатися у зашифрованому вигляді.
Використання сучасних алгоритмів шифрування, таких як AES та RSA,
дозволяє захистити конфіденційну інформацію від несанкціонованого доступу
та виключити можливість витоку даних у разі злому системи.
73
AI системи мають бути інтегровані з механізмами аутентифікації та
авторизації користувачів, щоб лише уповноважені особи могли отримувати
доступ до критичних функцій, налаштувань та даних. Використання токенів
доступу, багатофакторної аутентифікації та протоколів OAuth 2.0 дозволяє
мінімізувати ризики несанкціонованого використання системи.
Моделі AI самі по собі є цінними активами та можуть містити
інтелектуальну власність або інформацію про користувачів [24]. Захист
моделей включає контроль доступу, шифрування параметрів моделі та
обмеження прав на завантаження або модифікацію моделей. Це запобігає
витоку алгоритмів та їх використанню сторонніми особами без дозволу.
AI системи можуть піддаватися специфічним атакам, таким як атаки
через дані (data poisoning) або атакування моделі для отримання
конфіденційної інформації (model inversion). Для мінімізації цих ризиків
необхідно впроваджувати фільтрацію вхідних даних, перевірку джерел
інформації та регулярне тестування моделей на стійкість до атак. Крім того,
важливо застосовувати логування та моніторинг для відстеження підозрілих
дій або аномальної поведінки системи.
Під час тренування AI моделей часто використовуються великі обсяги
даних користувачів. Використання технологій, таких як federated learning та
differential privacy, дозволяє навчати моделі без передачі персональних даних
на центральний сервер, забезпечуючи додатковий рівень захисту та
конфіденційності
Постійний аудит дій AI систем, журналювання запитів і результатів
обробки даних дозволяє своєчасно виявляти потенційні загрози та втручання.
Моніторинг ефективності моделей та контролю їхніх рішень допомагає
запобігти використанню системи у шкідливих цілях або неправильного
інформування користувачів.
Захист інформації при роботі з AI включає комплекс заходів, таких як
шифрування даних, контроль доступу, захист моделей, стійкість до атак,
74
конфіденційність під час навчання та постійний моніторинг. Такий підхід
дозволяє забезпечити надійну роботу системи, захистити персональні дані
користувачів та підтримувати безпечне та ефективне функціонування AI-
додатків у сучасних умовах.
4.2 Реалізація захисту даних в системі сповіщення
Безпека та конфіденційність даних користувачів є критично важливими
аспектами роботи будь-якої сучасної системи, особливо системи екстреного
сповіщення, яка обробляє персональну інформацію, налаштування підписок,
історію сповіщень та взаємодіє з критично важливою інформацією про
загрози. У даній системі реалізовано комплексний підхід до захисту даних,
який включає заходи на рівні серверної та клієнтської частин, бази даних,
мережевої взаємодії та інтеграції з зовнішніми сервісами.
На серверному рівні застосовується багаторівневий захист доступу до
системи. Серверна частина побудована на Node.js, що дозволяє реалізувати
безпечну обробку запитів користувачів та централізований контроль всіх
модулів системи. Всі дані передаються між клієнтською та серверною
частинами через захищений протокол HTTPS із використанням сертифікатів
SSL/TLS, що гарантує шифрування даних під час передачі і запобігає їх
перехопленню у мережі. Це забезпечує конфіденційність інформації про
користувачів та захищає від атак типу «людина посередині» (MITM).
Для авторизації користувачів система застосовує захищені механізми
автентифікації. Користувачі зобов’язані проходити реєстрацію, після чого для
входу використовуються токени доступу (JWT) або інші безпечні методи
автентифікації. Паролі користувачів не зберігаються у відкритому вигляді, а
обробляються за допомогою криптографічного хешування із застосуванням
сучасних алгоритмів, таких як bcrypt або Argon2, що значно знижує ризик
компрометації даних у випадку несанкціонованого доступу до бази даних.
75
Крім того, система підтримує контроль сесій і автоматичне завершення сеансів
користувачів після певного часу бездіяльності, що додатково підвищує
безпеку доступу до особистих налаштувань та історії сповіщень.
Серверна частина інтегрує модуль налаштувань, який зберігає
персональні параметри користувачів, включно з підписками на джерела новин,
уподобання щодо типів сповіщень та регіональні налаштування. Дані цього
модуля захищені шляхом обмеження доступу лише до авторизованих
користувачів, а внутрішня логіка сервера гарантує, що один користувач не
може отримати доступ до даних іншого користувача. Це забезпечує ізоляцію
персональних даних та запобігає несанкціонованому доступу або витоку
конфіденційної інформації.
База даних MySQL, що використовується для зберігання даних системи,
також захищена на кількох рівнях. По-перше, доступ до бази даних
обмежується лише серверним додатком, а не прямим підключенням
користувачів, що виключає можливість прямого маніпулювання даними. По-
друге, використовується система ролей та прав доступу, яка дозволяє точно
контролювати, які частини даних і хто може читати або змінювати. Таблиці
бази даних, що містять персональні дані та історію сповіщень, додатково
шифруються на рівні зберігання, що захищає інформацію навіть у випадку
фізичного доступу до диску. Регулярне резервне копіювання даних забезпечує
їх збереження та відновлення у разі непередбачуваних ситуацій, таких як збій
обладнання або атака на сервер.
Важливим компонентом захисту є безпека обробки та передачі
новинних повідомлень. Оскільки система працює з AI модулем, який аналізує
новини за допомогою ChatGPT API, комунікація з цим сервісом відбувається
через захищені HTTP-запити (HTTPS) із використанням токенів доступу, що
гарантує конфіденційність переданої інформації. Сервер здійснює обмеження
швидкості запитів та кешування результатів аналізу, щоб уникнути
надмірного навантаження та потенційних атак на API. Крім того, система
76
логування реєструє всі звернення до AI модуля, що дозволяє відстежувати
потенційно підозрілі дії або спроби несанкціонованого доступу до сервісу.
Клієнтська частина, побудована на базі Vue.js та PWA технології, також
забезпечує безпечний доступ до даних. Всі дані, отримані від серверу,
передаються у зашифрованому вигляді, а вебдодаток забезпечує ізоляцію
сеансів користувачів та захист від атак типу Cross-Site Scripting (XSS) і Cross-
Site Request Forgery (CSRF) [25]. Service Worker PWA додатку обробляє push-
сповіщення у безпечному режимі, забезпечуючи доставку повідомлень лише
авторизованим користувачам, а браузери, що підтримують сучасні стандарти
Web Notifications та Push API, гарантують, що інформація не буде доступна
стороннім програмам або розширенням.
Для захисту даних у мережевому середовищі використовується
комбінація файрволів, обмеження доступу за IP та мережевих політик безпеки.
Сервер налаштований на блокування підозрілих запитів та відслідковування
спроб несанкціонованого доступу. Використання регулярних оновлень
операційної системи та серверного програмного забезпечення гарантує
усунення відомих вразливостей і підтримку сучасних стандартів шифрування
та безпеки.
Також реалізована система логування та моніторингу безпеки, яка
відстежує всі ключові події у системі: авторизації користувачів, доступ до бази
даних, надсилання сповіщень, обробку запитів AI модуля. Це дозволяє
оперативно виявляти аномалії, можливі спроби злому або порушення
цілісності даних та швидко реагувати на такі ситуації. У разі виявлення
підозрілої активності система може автоматично блокувати підозрілі сеанси
або обмежувати доступ до певних модулів.
Важливим аспектом є також резервування та відновлення даних.
Система реалізує регулярне автоматичне резервне копіювання бази даних і
критично важливих конфігураційних файлів сервера. Це дозволяє відновити
роботу системи у разі збоїв апаратного забезпечення, втрати даних або атак
77
шкідливого програмного забезпечення. Резервні копії зберігаються у
захищеному середовищі, що запобігає несанкціонованому доступу та
забезпечує збереження конфіденційної інформації користувачів.
Таким чином, реалізація захисту даних у системі екстреного сповіщення
базується на багаторівневому підході: захист передачі даних через HTTPS,
шифрування та хешування персональних даних, контроль доступу до бази
даних і серверного додатку, безпечна інтеграція з AI модулем, захист
клієнтської частини від атак, мережеві політики безпеки, логування та
моніторинг, а також резервування і відновлення даних. Завдяки цьому система
забезпечує високий рівень конфіденційності, цілісності та доступності даних
користувачів, що є критично важливим для функціонування платформи
екстреного сповіщення.
Застосування комплексного підходу до безпеки дозволяє не лише
захистити систему від несанкціонованого доступу, але й підвищити довіру
користувачів до платформи. Користувачі можуть бути впевнені, що їхні
персональні дані, налаштування та історія сповіщень знаходяться під
надійним захистом, а критично важлива інформація про загрози буде
доставлятися вчасно та конфіденційно. Такий підхід робить систему
безпечною, ефективною та надійною у будь-яких умовах використання.
4.3 Висновки до розділу 4
У розділі розглянуто комплекс підходів до забезпечення безпеки
інформаційної системи сповіщення на базі штучного інтелекту. Показано, що
захист даних у таких системах повинен реалізовуватися на всіх рівнях: під час
взаємодії користувача з інтерфейсом, у процесі передачі даних, при їх
збереженні в базах даних, а також під час функціонування та навчання
моделей штучного інтелекту.
78
Проаналізовано актуальні методи та технології захисту, які дозволяють
протидіяти поширеним кіберзагрозам: використання шифрування для захисту
конфіденційної інформації, багатофакторна аутентифікація та контроль
доступу для недопущення несанкціонованої взаємодії, застосування
підготовлених запитів та фільтрації даних для протидії атакам на базу даних.
Значну увагу приділено питанням моніторингу, журналювання подій та
регулярного аудиту для своєчасного виявлення аномальної активності й
мінімізації ризиків.
Особливістю системи є інтеграція алгоритмів штучного інтелекту, що
потребує додаткових заходів безпеки: захисту моделей, запобігання отруєнню
даних, забезпечення приватності під час навчання та контролю за прийнятими
рішеннями. Наведені підходи та їх практична реалізація в проєкті доводять
можливість забезпечення високого рівня конфіденційності, цілісності та
доступності інформації.
Таким чином, у системі реалізовано комплексний багаторівневий
механізм захисту, що відповідає сучасним вимогам кібербезпеки та забезпечує
безпечну роботу сервісу сповіщення щодо надзвичайних подій навіть у умовах
потенційних кіберзагроз, що гарантує захищеність персональних даних
користувачів і підвищує надійність та довіру до системи загалом.
79
ВИСНОВКИ
У результаті виконання кваліфікаційної роботи було розроблено та
обґрунтовано концепцію інформаційної системи екстреного сповіщення
населення, що використовує технології штучного інтелекту для аналізу даних
і виявлення потенційних загроз. Проведено комплексне дослідження
предметної області, визначено ключові вимоги до функціональності системи
та сформовано архітектурний підхід, що забезпечує масштабованість,
надійність і швидке реагування в умовах реального часу.
У кваліфікаційній роботі магістра виконано аналіз існуючих рішень та
технологій, окреслено проблеми традиційних систем оповіщення й
обґрунтовано необхідність застосування автоматизованих методів. У роботі
було сформовано загальну архітектуру майбутнього програмного продукту,
описано його основні модулі, взаємодію компонентів та вибір технологій для
реалізації. Також один із розділів роботи було присвячено безпосередньому
проєктуванню та впровадженню логіки роботи, включно з інтеграцією AI-
алгоритмів, модулем збору й обробки інформації, а також реалізацією
клієнтської платформи з підтримкою веб-сповіщень і PWA. Крім того,
розглянуто аспекти захисту інформації ‒ від контролю доступу до протидії
кіберзагрозам і забезпечення надійності збереження персональних даних.
Отримані результати демонструють, що розроблена система як
програмний засіб спеціального призначення є сучасним та ефективним
рішенням для оперативного інформування про надзвичайні ситуації. Вона
дозволяє автоматизувати процес аналізу даних, зменшує час реагування,
забезпечує персоналізоване оповіщення та високий рівень безпеки інформації.
Таким чином, поставлені у роботі завдання повністю виконано, а мета
‒ досягнута.
80
Запропонована система може бути використана як основа для реального
впровадження на рівні міських або національних служб безпеки, а також
подальшого розвитку шляхом розширення джерел даних, удосконалення
алгоритмів штучного інтелекту та інтеграції з сучасними цифровими
сервісами.
Таким чином, робота має значення як для теоретичного вдосконалення
методів роботи сигналізаційних систем, так і для їхньої практичної реалізації
у сфері безпеки.
81
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
AI – Artificial Intelligence, штучний інтелект.
ML – Machine Learning, машинне навчання.
PWA – Progressive Web Application, прогресивний веб-додаток.
API – Application Programming Interface, програмний інтерфейс.
DB – Database, база даних.
HTTPS – Hypertext Transfer Protocol Secure, захищений протокол передачі
даних.
SSL/TLS – Secure Sockets Layer / Transport Layer Security, протоколи
безпечного з’єднання.
JWT – JSON Web Token, токен для аутентифікації.
OAuth 2.0 – протокол авторизації та доступу.
WAF – Web Application Firewall, веб-файрвол.
SQL – Structured Query Language, мова структурованих запитів.
DSNS – Державна служба України з надзвичайних ситуацій.
SMS – Short Message Service, служба коротких повідомлень.
GeoIP – геолокаційна інформація про користувача.
Cell Broadcast – технологія масового розсилання повідомлень у зоні дії
мобільної мережі.
82
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Ковальов А. О. Інформаційна безпека в комп’ютерних системах. Київ:
КНУ, 2020. 312 с.
2. Петренко В. М. Архітектура розподілених систем. Львів: Видавництво
Львівської політехніки, 2021. 280 с.
3. Даниленко О. Г. Штучний інтелект у системах моніторингу. Київ:
Наукова думка, 2022. 256 с.
4. Мороз О. В. Захист інформації в веб-сервісах. Харків: Вид-во ХНУРЕ,
2020. 198 с.
5. Бойко С. Ю. Хмарні технології: основи та застосування. Київ: КПІ
ім. І. Сікорського, 2019. 350 с.
6. Степаненко І. І. Мережеві технології та кібербезпека. Львів: Новий Світ,
2023. 275 с.
7. Романенко Д. П. Програмування веб-додатків на Node.js. Київ: Вид-во
“Освіта”, 2021. 240 с.
8. Гнатюк С. О. Актуальні загрози та захист критичних інфраструктур. Київ:
НАУ, 2022. 310 с.
9. Мельник Є. В. Методи обробки даних у реальному часі. Одеса: ОНПУ,
2020. 190 с.
10. Дьякова Н. М. Технології PWA у веб-розробці. Харків: Фактор, 2023.
168 с.
11. Bernard Golden. Amazon Web Services for Dummies. Hoboken: Wiley, 2017.
456 p.
12. Eberhard Wolff. Microservices with Docker, Kubernetes, and AWS. Munich:
Addison-Wesley, 2020. 400 p.
13. Alan T. Norman. Artificial Intelligence for Beginners. NewYork: CreateSpace,
2019. 180 p.
83
14. Stuart Russell, Peter Norvig. Artificial Intelligence: A Modern Approach.
London: Pearson, 2021. 1136 p.
15. Martin Kleppmann. Designing Data-Intensive Applications. Sebastopol:
O’Reilly Media, 2017. 616 p.
16. Neil Smith. Learning Node.js Development. Birmingham: Packt Publishing,
2020. 350 p.
17. Prabath Siriwardena. Microservices Security in Action. New York: Manning,
2020. 375 p.
18. Robert C. Seacord. Secure Coding in C and C++. Boston: Addison-Wesley,
2019. 512 p.
19. François Chollet. Deep Learning with Python. New York: Manning, 2021. 384
p.
20. Bill Phillips, Brian Hardy. Android Programming: The Big Nerd Ranch Guide.
Boston: Big Nerd Ranch, 2021. 768 p.
21. Козлятников В. М. Інтернет речей: архітектура та протоколи. Київ: ДУТ,
2021. 224 с.
22. Гарасимчук Р. О. Машинне навчання: теорія та практичні застосування.
Львів: ЛНУ ім. І. Франка, 2022. 310 с.
23. Кузьменко В. І. Захист інформації в системах IoT. Харків: Вид-во ХНЕУ,
2020. 200 с.
24. Шевченко Д. С. Хмарні сервіси та обчислення в реальному часі. Київ: КПІ
ім. І. Сікорського, 2023. 260 с.
25. Третяк А. Ю. Архітектурні підходи в розробці веб-платформ. Одеса:
ОНАХТ, 2021. 188 с.
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
к.т.н., доцент Артем ЛАВДАНСЬКИЙ
__________________
“___” _____________ 2025р.
Проектування та оцінка продуктивності систем екстреного сповіщення
на базі штучного інтелекту
Специфікація
482.ЧДТУ.52405-01
Листів 2
Розробник _______________ Сергій ПАНАСЕНКО
Керівник _______________ Віра БАБЕНКО
Черкаси 2025
2
482.ЧДТУ.52405-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.52405-01 12 01 Текст програми
482.ЧДТУ.52405-01 34 01 Інструкція користувача
ДОДАТОК Б
Проектування та оцінка продуктивності систем
екстреного сповіщення на базі штучного інтелекту
Текс програми
482.ЧДТУ.52405-01 12 01
Листів 17
Розробник _______________ Сергій ПАНАСЕНКО
Черкаси 2025
2
482.ЧДТУ.52405-01 12 01
const pool = require('../config/database');
class NewsSource {
static async create(userId, url, sourceName, feedType = 'html') {
const connection = await pool.getConnection();
try {
const [result] = await connection.execute(
'INSERT INTO news_sources (user_id, url, source_name, feed_type)
VALUES (?, ?, ?, ?)',
[userId, url, sourceName, feedType]
);
return result.insertId;
} finally {
connection.release();
}
}
static async findByUserId(userId) {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
'SELECT * FROM news_sources WHERE user_id = ? AND is_active =
TRUE',
[userId]
);
return rows;
} finally {
connection.release();
}
}
static async findById(id) {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
'SELECT * FROM news_sources WHERE id = ?',
[id]
);
return rows[0];
} finally {
connection.release();
}
}
static async updateLastChecked(sourceId) {
3
482.ЧДТУ.52405-01 12 01
const connection = await pool.getConnection();
try {
await connection.execute(
'UPDATE news_sources SET last_checked = NOW() WHERE id = ?',
[sourceId]
);
} finally {
connection.release();
}
}
static async delete(sourceId, userId) {
const connection = await pool.getConnection();
try {
await connection.execute(
'UPDATE news_sources SET is_active = FALSE WHERE id = ? AND
user_id = ?',
[sourceId, userId]
);
} finally {
connection.release();
}
}
static async getAllActive() {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
'SELECT * FROM news_sources WHERE is_active = TRUE'
);
return rows;
} finally {
connection.release();
}
}
}
module.exports = NewsSource;
const pool = require('../config/database');
class ParsedNews {
static async create(sourceId, title, content, originalUrl, publishedDate, isCritical,
alertType,
confidenceScore, aiAnalysis) {
4
482.ЧДТУ.52405-01 12 01
const connection = await pool.getConnection();
try {
const [result] = await connection.execute(
`INSERT INTO parsed_news
(source_id, title, content, original_url, published_date, is_critical, alert_type,
confidence_score, ai_analysis)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
[sourceId, title, content, originalUrl, publishedDate, isCritical, alertType,
confidenceScore,
JSON.stringify(aiAnalysis)]
);
return result.insertId;
} finally {
connection.release();
}
}
static async findCriticalNews(limit = 50) {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
`SELECT pn.*, ns.user_id, ns.source_name
FROM parsed_news pn
JOIN news_sources ns ON pn.source_id = ns.id
WHERE pn.is_critical = TRUE
ORDER BY pn.parsed_at DESC
LIMIT ?`,
[limit]
);
return rows;
} finally {
connection.release();
}
}
static async findBySourceId(sourceId) {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
'SELECT * FROM parsed_news WHERE source_id = ? ORDER BY
published_date DESC
LIMIT 100',
5
482.ЧДТУ.52405-01 12 01
[sourceId]
);
return rows;
} finally {
connection.release();
}
}
static async findById(id) {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
'SELECT * FROM parsed_news WHERE id = ?',
[id]
);
return rows[0];
} finally {
connection.release();
}
}
static async checkExists(sourceId, title) {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
'SELECT id FROM parsed_news WHERE source_id = ? AND title
= ?',
[sourceId, title]
);
return rows.length > 0;
} finally {
connection.release();
}
}
}
module.exports = ParsedNews;
const pool = require('../config/database');
class Notification {
static async create(userId, newsId, alertType, status = 'pending') {
const connection = await pool.getConnection();
try {
6
482.ЧДТУ.52405-01 12 01
const [result] = await connection.execute(
'INSERT INTO notifications (user_id, news_id, alert_type, status) VALUES
(?, ?, ?, ?)',
[userId, newsId, alertType, status]
);
return result.insertId;
} finally {
connection.release();
}
}
static async findPending() {
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
`SELECT n.*, pn.title, pn.content, u.subscription_token
FROM notifications n
JOIN parsed_news pn ON n.news_id = pn.id
JOIN users u ON n.user_id = u.id
WHERE n.status = 'pending'`
);
return rows;
} finally {
connection.release();
}
}
static async updateStatus(notificationId, status, errorMessage = null) {
const connection = await pool.getConnection();
try {
await connection.execute(
'UPDATE notifications SET status = ?, error_message = ?, sent_at = NOW()
WHERE id =
?',
[status, errorMessage, notificationId]
);
} finally {
connection.release();
}
}
static async findByUserId(userId, limit = 50) {
7
482.ЧДТУ.52405-01 12 01
const connection = await pool.getConnection();
try {
const [rows] = await connection.execute(
`SELECT n.*, pn.title, pn.content, pn.alert_type
FROM notifications n
JOIN parsed_news pn ON n.news_id = pn.id
WHERE n.user_id = ?
ORDER BY n.created_at DESC
LIMIT ?`,
[userId, limit]
);
return rows;
} finally {
connection.release();
}
}
}
module.exports = Notification;
const webpush = require('web-push');
const logger = require('../utils/logger');
require('dotenv').config();
webpush.setVapidDetails(
'mailto:[email protected]',
process.env.VAPID_PUBLIC_KEY,
process.env.VAPID_PRIVATE_KEY
);
class NotificationService {
static async sendPushNotification(subscription, title, options = {}) {
try {
const payload = JSON.stringify({
title,
options: {
icon: '/images/alert-icon.png',
badge: '/images/badge.png',
...options
}
});
await webpush.sendNotification(subscription, payload);
return { success: true };
8
482.ЧДТУ.52405-01 12 01
} catch (error) {
logger.error('Push notification error:', error);
// Handle subscription errors
if (error.statusCode === 410 || error.statusCode === 404) {
return { success: false, invalidSubscription: true };
}
return { success: false, error: error.message };
}
}
static async sendBatchNotifications(subscriptions, title, options = {}) {
const results = await Promise.allSettled(
subscriptions.map(sub => this.sendPushNotification(sub, title, options))
);
return {
successful: results.filter(r => r.status === 'fulfilled' &&
r.value.success).length,
failed: results.filter(r => r.status === 'rejected'
|| !r.value.success).length,
results
};
}
static getNotificationOptions(alertType, analysis) {
const options = {
tag: `alert-${alertType}`,
requireInteraction: true,
vibrate: [200, 100, 200],
actions: [
{
action: 'open',
title: 'View Details'
},
{
action: 'close',
title: 'Dismiss'
}
]
};
switch (alertType) {
case 'NUCLEAR_THREAT':
case 'MISSILE_THREAT':
9
482.ЧДТУ.52405-01 12 01
options.badge = '/images/critical-badge.png';
options.icon = '/images/critical-icon.png';
break;
case 'AIR_ALERT':
options.badge = '/images/air-alert-badge.png';
options.icon = '/images/air-alert-icon.png';
break;
case 'EVACUATION':
options.badge = '/images/evacuation-badge.png';
break;
default:
options.badge = '/images/alert-badge.png';
}
if (analysis?.affected_regions?.length > 0) {
options.body = `Affected areas: ${analysis.affected_regions.join(', ')}`;
}
return options;
}
}
module.exports = NotificationService;
const axios = require('axios');
const cheerio = require('cheerio');
const logger = require('../utils/logger');
class NewsParser {
static async parseHTML(url) {
try {
const response = await axios.get(url, {
timeout: parseInt(process.env.REQUEST_TIMEOUT),
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36'
}
});
const $ = cheerio.load(response.data);
const articles = [];
// Generic selectors that work with most news sites
const articleSelectors = [
'article',
'[data-type="article"]',
10
482.ЧДТУ.52405-01 12 01
'.article',
'.news-item',
'.post',
'[role="article"]'
];
for (const selector of articleSelectors) {
$(selector).each((index, element) => {
if (articles.length >= 20) return false;
const titleSelectors = ['h1', 'h2', 'h3',
'.title', '.headline'];
const contentSelectors = ['p', '.content',
'.description', '.excerpt', '.summary'];
let title = '';
let content = '';
let url = '';
for (const sel of titleSelectors) {
title = $(element).find(sel).first().text().trim();
if (title) break;
}
for (const sel of contentSelectors) {
content = $(element).find(sel).first().text().trim();
if (content) break;
}
const linkElement = $(element).find('a').first();
url = linkElement.attr('href') || '';
if (title && content) {
articles.push({
title,
content: content.substring(0, 1000),
url: this.resolveUrl(url, new URL(url.startsWith('http') ? url : `${new
URL(url ||
'').origin}`).origin)
});
}
});
}
return articles.slice(0, 20);
} catch (error) {
logger.error(`Error parsing URL ${url}:`, error.message);
11
482.ЧДТУ.52405-01 12 01
throw error;
}
}
static async parseRSS(url) {
try {
const response = await axios.get(url, {
timeout: parseInt(process.env.REQUEST_TIMEOUT)
});
const $ = cheerio.load(response.data);
const articles = [];
$('item').each((index, element) => {
if (articles.length >= 20) return false;
const title = $(element).find('title').text().trim();
const content = $(element).find('description').text().trim();
const linkUrl = $(element).find('link').text().trim();
const pubDate = $(element).find('pubDate').text().trim();
if (title && content) {
articles.push({
title,
content: content.replace(/<[^>]*>/g, '').substring(0, 1000),
url: linkUrl,
publishedDate: new Date(pubDate)
});
}
});
return articles;
} catch (error) {
logger.error(`Error parsing RSS feed ${url}:`, error.message);
throw error;
}
}
static resolveUrl(url, baseUrl) {
if (!url) return baseUrl;
if (url.startsWith('http')) return url;
if (url.startsWith('/')) return baseUrl + url;
return baseUrl + '/' + url;
}
static async fetchWithRetry(url, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
12
482.ЧДТУ.52405-01 12 01
try {
return await this.parseHTML(url);
} catch (error) {
if (i === maxRetries - 1) throw error;
await this.delay(1000 * (i + 1));
}
}
}
static delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
}
module.exports = NewsParser;
const openai = require('../config/chatgpt');
const logger = require('../utils/logger');
class ChatGPTService {
static async analyzeNews(newsTitle, newsContent) {
try {
const prompt = `
Analyze the following news article and determine if it contains critical alerts or
emergency
information.
Specifically look for: air alerts, alarms, missile threats, nuclear threats,
evacuations, attacks, or
other critical events.
News Title: ${newsTitle}
News Content: ${newsContent}
Respond in JSON format with the following structure:
{
"is_critical": boolean,
"alert_type":
"AIR_ALERT|ALARM|MISSILE_THREAT|NUCLEAR_THREAT|EVAC
UATION|EMERGE
NCY|ATTACK|EXPLOSION|SIEGE|SHELLING|NONE",
"confidence_score": number between 0 and 1,
"summary": "brief summary of the threat",
"affected_regions": ["region1", "region2"],
"recommended_action": "description of recommended
action"
}`;
const response = await openai.chat.completions.create({
13
482.ЧДТУ.52405-01 12 01
model: 'gpt-4o-mini',
messages: [
{
role: 'system',
content: 'You are an expert news analyzer specializing in identifying critical
emergency
alerts and threats. Always respond in valid JSON format.'
},
{
role: 'user',
content: prompt
}
],
temperature: 0.3,
max_tokens: 500
});
const analysisText = response.choices[0].message.content;
const analysis = JSON.parse(analysisText);
return {
success: true,
data: analysis
};
} catch (error) {
logger.error('ChatGPT analysis error:', error);
return {
success: false,
error: error.message,
data: {
is_critical: false,
alert_type: 'NONE',
confidence_score: 0
}
};
}
}
static async generateAlertSummary(alertType, newsTitle, content) {
try {
const prompt = `
Create a concise, alarming alert message for the following news:
Alert Type: ${alertType}
14
482.ЧДТУ.52405-01 12 01
Title: ${newsTitle}
Content: ${content.substring(0, 500)}
The message should be:
- Clear and urgent
- Maximum 200 characters
- Include action items
- Use clear language`;
const response = await openai.chat.completions.create({
model: 'gpt-4o-mini',
messages: [
{
role: 'system',
content: 'You are an emergency alert message creator. Create clear, urgent
alerts.'
},
{
role: 'user',
content: prompt
}
],
temperature: 0.5,
max_tokens: 200
});
return response.choices[0].message.content;
} catch (error) {
logger.error('Alert summary generation error:', error);
return newsTitle;
}
}
}
module.exports = ChatGPTService;
const NewsSource = require('../models/NewsSource');
const ParsedNews = require('../models/ParsedNews');
const User = require('../models/User');
const Notification = require('../models/Notification');
const NewsParser = require('./newsParser');
const ChatGPTService = require('./chatgptService');
const NotificationService = require('./notificationService');
const logger = require('../utils/logger');
15
482.ЧДТУ.52405-01 12 01
class NewsService {
static async processNewsSource(sourceId) {
try {
const source = await NewsSource.findById(sourceId);
if (!source) throw new Error('News source not found');
// Determine feed type and parse accordingly
const articles = source.feed_type === 'rss'
? await NewsParser.parseRSS(source.url)
: await NewsParser.fetchWithRetry(source.url);
const criticalNews = [];
for (const article of articles) {
// Check if news already exists
const exists = await ParsedNews.checkExists(sourceId, article.title);
if (exists) continue;
// Analyze with ChatGPT
const analysis = await ChatGPTService.analyzeNews(article.title, article.content);
if (analysis.success && analysis.data.is_critical) {
// Save to database
const newsId = await ParsedNews.create(
sourceId,
article.title,
article.content,
article.url,
article.publishedDate || new Date(),
true,
analysis.data.alert_type,
analysis.data.confidence_score,
analysis.data
);
criticalNews.push({
id: newsId,
...article,
...analysis.data
});
// Create notification for the user
const source = await NewsSource.findById(sourceId);
await Notification.create(
source.user_id,
newsId,
16
482.ЧДТУ.52405-01 12 01
analysis.data.alert_type,
'pending'
);
}
}
// Update last checked time
await NewsSource.updateLastChecked(sourceId);
logger.info(`Processed source ${sourceId}: found ${criticalNews.length} critical
news
items`);
return criticalNews;
} catch (error) {
logger.error(`Error processing news source ${sourceId}:`, error);
throw error;
}
}
static async processAllSources() {
try {
const sources = await NewsSource.getAllActive();
logger.info(`Processing ${sources.length} news sources`);
const results = await Promise.allSettled(
sources.map(source => this.processNewsSource(source.id))
);
const successful = results.filter(r => r.status === 'fulfilled').length;
const failed = results.filter(r => r.status === 'rejected').length;
logger.info(`News processing completed: ${successful} successful, ${failed}
failed`);
return { successful, failed, total: sources.length };
} catch (error) {
logger.error('Error processing all sources:', error);
throw error;
}
}
static async sendPendingNotifications() {
try {
const pendingNotifications = await Notification.findPending();
logger.info(`Found ${pendingNotifications.length} pending notifications`);
for (const notification of pendingNotifications) {
try {
17
482.ЧДТУ.52405-01 12 01
if (!notification.subscription_token) {
await Notification.updateStatus(notification.id, 'failed', 'No
subscription token');
continue;
}
const subscription = JSON.parse(notification.subscription_token);
const alertSummary = await ChatGPTService.generateAlertSummary(
notification.alert_type,
notification.title,
notification.content
);
const options = NotificationService.getNotificationOptions(
notification.alert_type
);
const result = await NotificationService.sendPushNotification(
subscription,
alertSummary,
options
);
if (result.success) {
await Notification.updateStatus(notification.id, 'sent');
logger.info(`Notification ${notification.id} sent successfully`);
} else if (result.invalidSubscription) {
await Notification.updateStatus(notification.id, 'failed', 'Invalid
subscription');
} else {
await Notification.updateStatus(notification.id, 'failed', result.error);
}
} catch (error) {
logger.error(`Error sending notification ${notification.id}:`, error);
await Notification.updateStatus(notification.id, 'failed', error.message);
}
}
} catch (error) {
logger.error('Error processing pending notifications:', error);
}
}
ДОДАТОК В
Проектування та оцінка продуктивності систем
екстреного сповіщення на базі штучного інтелекту
Інструкція користувача
482.ЧДТУ.52405-01 34 01
Листів 4
Розробник _______________ Сергій ПАНАСЕНКО
Черкаси 2025
2
482.ЧДТУ.52405-01 34 01
Ця інструкція призначена для адміністратора системи, який відповідає
за запуск, налаштування, підтримку та моніторинг роботи платформи
екстреного сповіщення. Адміністратор має повний доступ до серверної
частини, бази даних і налаштувань системи.
Перед встановленням системи необхідно підготувати сервер, який
відповідатиме наступним вимогам: сучасний процесор із мінімум 4 ядрами, 8
ГБ оперативної пам’яті, SSD-диск мінімум 100 ГБ для зберігання бази даних
та журналів, стабільне підключення до Інтернету, а також встановлена
операційна система Linux (рекомендовано Ubuntu 22.04 або новіше). Для
розгортання серверної частини потрібно встановити Node.js версії 20 або
новішої та пакетний менеджер npm, а такожMySQL 8.0 або новішу версію для
роботи з базою даних.
Рекомендується також підготувати доменне ім’я для сервера та
налаштувати SSL-сертифікат для забезпечення захищеної передачі даних
через HTTPS.
Серверна частина системи побудована на Node.js і містить модулі
парсингу новин, модуль AI для аналізу важливості подій, модуль авторизації,
модуль налаштувань користувачів та модуль роботи з клієнтською частиною.
Для встановлення необхідно клонувати репозиторій з кодом системи на сервер
та виконати команду npm install для встановлення всіх залежностей. Після
завершення встановлення потрібно створити конфігураційний файл .env, у
якому вказуються наступні параметри: підключення до бази даних (ім’я
користувача, пароль, назва бази, хост), ключі API для інтеграції з ChatGPT,
порт для серверного додатку, шляхи для збереження логів та резервних копій.
Система використовує MySQL для зберігання користувацьких даних,
історії сповіщень та конфігураційних налаштувань. Після встановлення
MySQL необхідно створити базу даних та користувача з правами доступу
тільки до цієї бази. Для першого запуску системи адміністратора необхідно
3
482.ЧДТУ.52405-01 34 01
вручну додати першого користувача через SQL-запит, оскільки реєстрація
через інтерфейс доступна лише після додавання адміністратора. Наприклад,
для створення адміністратора можна виконати SQL-запит на вставку запису в
таблицю users з хешованим паролем та статусом адміністратора. Після цього
можна переходити до налаштувань підписок, джерел новин та інших
користувачів.
База даних повинна регулярно резервуватися, для чого рекомендується
налаштувати автоматичні скрипти резервного копіювання щодня. Це дозволяє
відновити систему у разі збоїв або несанкціонованого доступу.
Адміністратор повинен переконатися, що сервер має відкриті порти для
роботи Node.js (зазвичай порт 3000 або інший, зазначений у конфігурації), а
також забезпечити захищене підключення через HTTPS. Рекомендується
використовувати Nginx або Apache як зворотний проксі для обробки HTTP-
запитів, перенаправлення на сервер Node.js та автоматичного оновлення SSL-
сертифікатів через Let’s Encrypt.
Для безпеки слід налаштувати файрвол, обмеживши доступ до
адміністративних портів лише для довірених IP-адрес, та встановити
обмеження на швидкість запитів (rate limiting) для запобігання DoS-атак.
Система використовує ChatGPT API для аналізу новин та оцінки їх
важливості. Адміністратор повинен переконатися, що сервер має стабільне
підключення до Інтернету для відправки запитів до API, а також що ключ API
правильно вказаний у конфігурації. Сервер надсилає тексти новин на обробку
модулю AI, отримує оцінку важливості та категорію події, після чого приймає
рішення про сповіщення користувачів. Для моніторингу роботи AI-модуля
рекомендується ведення логів, де зберігається інформація про оброблені
новини, результат аналізу та відправлені сповіщення.
Адміністратор додає у систему джерела новин, які будуть парситися,
включаючи загальноукраїнські та локальні ресурси (наприклад, черкаські
4
482.ЧДТУ.52405-01 34 01
новинні портали). Система також підтримує можливість додавання джерел
користувачами. Після налаштування джерел необхідно перевірити, що модуль
парсингу успішно отримує новини та передає їх на аналіз у модуль AI.
Після завершення налаштувань сервер запускається командою npm start
або через менеджер процесів типу PM2, який забезпечує постійне виконання
сервера та його автоматичний перезапуск у разі збою. Адміністратор може
перевіряти логи сервера для контролю роботи всіх модулів: парсингу, AI,
авторизації та сповіщень.
Адміністратор може додавати нових користувачів, призначати права
доступу та змінювати налаштування підписок. Сповіщення надсилаються
автоматично на підставі аналізу новин AI-модулем, а адміністратор може
контролювати журнали сповіщень та при необхідності повторно відправляти
повідомлення. Важливо стежити за тим, щоб усі користувачі мали актуальні
налаштування та правильні підписки на джерела.
Адміністратор відповідає за оновлення серверної частини, залежностей
Node.js таMySQL, а також за оновлення клієнтського PWA додатку. Регулярне
оновлення гарантує безпеку системи, підтримку актуальних стандартів
шифрування та стабільну роботу всіх модулів. У разі масштабування системи
на більшу кількість користувачів адміністратор повинен коригувати
налаштування сервера, балансування навантаження та кешування бази даних.