Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/8613
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorБАБЕНКО, Віра-
dc.contributor.authorТИМОШЕНКО, Назар-
dc.date.accessioned2026-03-15T16:33:56Z-
dc.date.available2026-03-15T16:33:56Z-
dc.date.issued2024-
dc.identifier.urihttps://er.chdtu.edu.ua/handle/ChSTU/8613-
dc.description.abstractУ сучасних умовах розвитку технологій хмарні обчислення стають ключовим інструментом для оптимізації різноманітних інформаційних систем. Система сигналізації, як одна з важливих складових забезпечення безпеки, потребує постійного вдосконалення для забезпечення швидкості, надійності та доступності. Інтеграція хмарних платформ, таких як Amazon Web Services (AWS), дозволяє значно розширити функціональні можливості сигналізаційних систем, знизити витрати на інфраструктуру та підвищити ефективність обробки даних. Метою кваліфікаційної роботи є розробка системи сигналізації, інтегрованої з хмарними технологіями. Система складається з кількох модулів, що виконують різні функції, забезпечуючи гнучкість, масштабованість та простоту обслуговування. Кожен модуль є незалежним і може бути окремо налаштований або вдосконалений, що дозволяє інтегрувати нові функціональні можливості та адаптувати систему до різних вимог. Об’єкт дослідження - це системи сигналізації та їхні методи роботи. Предмет дослідження - використання хмарних технологій AWS для оптимізації роботи систем сигналізації. Наукова новизна полягає у впровадженні комплексного підходу до оптимізації роботи систем сигналізації через використання хмарних технологій AWS. Нові методи інтеграції традиційних сигналізаційних систем із хмарними сервісами, що дозволяють автоматизувати обробку даних та забезпечити їх безперервну доступність. Практична цінність результатів полягає у можливості використання розроблених методів і рекомендацій для впровадження в реальних системах сигналізації. Результати дослідження можуть бути адаптовані для підвищення ефективності роботи сигналізаційних систем у різних секторах (житлові комплекси, підприємства, громадські установи). Також сприяють економії ресурсів завдяки використанню хмарної інфраструктури, що зменшує витрати на технічне обслуговування серверів та обладнання. Використання хмарних технологій AWS дозволяє забезпечити більшу гнучкість і адаптивність систем сигналізації до змінних потреб та навантажень. Можуть слугувати основою для подальшої модернізації систем безпеки та створення нових продуктів, які використовують сучасні хмарні технології. Таким чином, робота має значення як для теоретичного вдосконалення методів роботи сигналізаційних систем, так і для їхньої практичної реалізації у сфері безпеки. У першому розділі розглядається аналіз предметної області та постановка задачі. У другому розділі вибір технологій та інструментальних засобів розробки. У третьому розділі наведена оптимізація методів роботи системи сигналізації з використанням хмарних технологій. Висновки включають в себе основні результати роботи. У додатках наведено специфікацію, текст програми та інструкцію користувача. Загальний обсяг роботи становить 103 сторінки. Кваліфікаційна робота магістра містить 16 рисунків, 1 таблицю,uk_UA
dc.titleОптимізація методів роботи системи з використанням хмарних технологій AWSuk_UA
dc.typeMaster Thesisuk_UA
Appears in Collections:123 Комп’ютерна інженерія (Системне програмування)

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_Тимошенко-merged.pdf
  Restricted Access
2.47 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
Пояснювальна записка
до кваліфікаційної роботи магістра
на тему: «Оптимізація методів роботи системи з
використанням хмарних технологій AWS»
ЧДТУ. 242329.003 ПЗ
Виконав: студент 2 курсу, групи МСП-2306
спеціальності 123 – Комп’ютерна інженерія
за освітньою програмою – Комп’ютерні системи
та мережі
Назар ТИМОШЕНКО
Керівник
доктор технічних наук, професор
Віра БАБЕНКО
Н. контроль
Світлана ГРЕСЬКО
Рецензент
начальник відділу персоналу Черкаського
інституту пожежної безпеки імені Героїв
Чорнобиля НУЦЗ України, к.т.н., доцент
Віталій ЗАЖОМА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2024 року
Форма № Н-9.01
Черкаський державний технологічний університет
Факультет інформаційних технологій і систем
Кафедра інформаційної безпеки та комп‘ютерної інженерії
Освітньо-кваліфікаційний рівень Магістр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Системне програмування
«ЗАТВЕРДЖУЮ»
Завідувач кафедри _____ Віра БАБЕНКО
«10» жовтня 2024 року
ЗАВДАННЯ
на кваліфікаційну роботу магістра студенту
Тимошенку Назару Олеговичу
(прізвище, ім‘я, по батькові)
1. Тема роботи Оптимізація методів роботи системи сигналізації з
використанням хмарних технологій AWS
Керівник роботи Бабенко Віра Григорівна, доктор технічних наук, професор
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «07» жовтня 2024 р. № 299/04
2. Строк подання студентом роботи
3. Вихідні дані до роботи:
Системи сигналізації, Сервіси AWS, AWS, хмарні технології, GSM, види сигналізації,
AJAX, Pyronix, Orion NOVA X, Nest Secure, IaaS, PaaS, SaaS, Microsoft Azure,
Google Cloud Platform, MQTT, HTTP(S).
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
Розділ 1 Аналіз предметної області та постановка задачі дослідження
Розділ 2 Вибір технології та інструментальних засобів розробки системи
Розділ 3 Оптимізація методів роботи системи сигналізації з використанням хмарних технологій
AWS
Висновки
Перелік скорочень та умовних позначень
Додатки
Список використаних джерел
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи
Підпис, дата
Розділ Прізвище, ініціали та
посада завдання видав завдання прийняв
консультанта
7. Дата видачі завдання 10 жовтня 2024 року
КАЛЕНДАРНИЙ ПЛАН
№ з/п Назва етапів кваліфікаційної роботи магістра Строк виконання
етапів роботи Примітка
1 Збір матеріалу 03.09 – 10.09 виконано
2 Обробка матеріалу 11.09 – 30.09 виконано
3 Обґрунтування актуальності виконання 10.10 – 15.10 виконано
досліджень
4 Оцінка стану проблеми, виокремлення виконано
дослідницьких задач, постановка задачі 16.10 – 25.10
дослідження
5 Викладення сутності і результатів дослідження 26.10 – 28.10 виконано
6 Практичне застосування результатів виконано
дослідження 29.10 – 05.11
7 Оформлення результатів в пояснювальну записку 06.11 – 15.11 виконано
8 Подання роботи на відгук та рецензування 16.11 – 30.11 виконано
9 Подання роботи на відгук та рецензування 03.12.24 виконано
10 Захист роботи 17.12.2024
Студент-магістрант __________________________ Назар ТИМОШЕНКО
(підпис)
Керівник роботи ___________________________ Віра БАБЕНКО
(підпис)
АНОТАЦІЯ
У сучасних умовах розвитку технологій хмарні обчислення стають
ключовим інструментом для оптимізації різноманітних інформаційних
систем. Система сигналізації, як одна з важливих складових забезпечення
безпеки, потребує постійного вдосконалення для забезпечення швидкості,
надійності та доступності. Інтеграція хмарних платформ, таких як Amazon
Web Services (AWS), дозволяє значно розширити функціональні можливості
сигналізаційних систем, знизити витрати на інфраструктуру та підвищити
ефективність обробки даних.
Метою кваліфікаційної роботи є розробка системи сигналізації,
інтегрованої з хмарними технологіями. Система складається з кількох
модулів, що виконують різні функції, забезпечуючи гнучкість,
масштабованість та простоту обслуговування. Кожен модуль є незалежним і
може бути окремо налаштований або вдосконалений, що дозволяє інтегрувати
нові функціональні можливості та адаптувати систему до різних вимог.
Об’єкт дослідження - це системи сигналізації та їхні методи роботи.
Предмет дослідження - використання хмарних технологій AWS для
оптимізації роботи систем сигналізації.
Наукова новизна полягає у впровадженні комплексного підходу до
оптимізації роботи систем сигналізації через використання хмарних
технологій AWS. Нові методи інтеграції традиційних сигналізаційних систем
із хмарними сервісами, що дозволяють автоматизувати обробку даних та
забезпечити їх безперервну доступність.
Практична цінність результатів полягає у можливості використання
розроблених методів і рекомендацій для впровадження в реальних системах
сигналізації. Результати дослідження можуть бути адаптовані для підвищення
ефективності роботи сигналізаційних систем у різних секторах (житлові
комплекси, підприємства, громадські установи). Також сприяють економії
ресурсів завдяки використанню хмарної інфраструктури, що зменшує витрати
на технічне обслуговування серверів та обладнання. Використання хмарних
технологій AWS дозволяє забезпечити більшу гнучкість і адаптивність систем
сигналізації до змінних потреб та навантажень. Можуть слугувати основою
для подальшої модернізації систем безпеки та створення нових продуктів, які
використовують сучасні хмарні технології.
Таким чином, робота має значення як для теоретичного вдосконалення
методів роботи сигналізаційних систем, так і для їхньої практичної реалізації
у сфері безпеки.
У першому розділі розглядається аналіз предметної області та
постановка задачі.
У другому розділі вибір технологій та інструментальних засобів
розробки.
У третьому розділі наведена оптимізація методів роботи системи
сигналізації з використанням хмарних технологій.
Висновки включають в себе основні результати роботи. У додатках
наведено специфікацію, текст програми та інструкцію користувача. Загальний
обсяг роботи становить 103 сторінки. Кваліфікаційна робота магістра містить
16 рисунків, 1 таблицю, 3 додатки. Для виконання роботи використано 23
літературних джерела.
ANOTATION
In today's technological development, cloud computing is becoming a key
tool for optimizing various information systems. The alarm system, as one of the
important components of security, requires constant improvement to ensure speed,
reliability and availability. Integration of cloud platforms, such as Amazon Web
Services (AWS), allows you to significantly expand the functionality of alarm
systems, reduce infrastructure costs and increase the efficiency of data processing.
The purpose of the qualification work is to develop an alarm system integrated
with cloud technologies. The system consists of several modules that perform
various functions, ensuring flexibility, scalability and ease of maintenance. Each
module is independent and can be separately configured or improved, which allows
you to integrate new functionality and adapt the system to different requirements.
The object of research is alarm systems and their methods of operation.
The subject of research is the use of AWS cloud technologies to optimize the
operation of alarm systems.
The scientific novelty lies in the implementation of an integrated approach to
optimizing the operation of alarm systems through the use of AWS cloud
technologies. New methods of integrating traditional alarm systems with cloud
services that allow automating data processing and ensuring their continuous
availability.
The practical value of the results lies in the possibility of using the developed
methods and recommendations for implementation in real alarm systems. The
research results can be adapted to increase the efficiency of alarm systems in various
sectors (residential complexes, enterprises, public institutions). They also contribute
to saving resources through the use of cloud infrastructure, which reduces the cost
of maintaining servers and equipment. The use of AWS cloud technologies allows
for greater flexibility and adaptability of alarm systems to changing needs and loads.
They can serve as the basis for further modernization of security systems and the
creation of new products that use modern cloud technologies.
Thus, the work is important both for the theoretical improvement of alarm
systems operating methods and for their practical implementation in the security
sector.
The first section considers the analysis of the subject area and the formulation
of the problem.
The second section selects technologies and development tools.
The third section is about the optimization of the methods of operation of the
signaling system using cloud technologies.
The conclusions include the main results of the work. The appendices contain
the specification, the program text and the user manual. The total volume of the work
is 103 pages. The master's qualification work contains 16 figures, 1 table, 3
appendices. 23 literary sources were used to carry out the work.
2
ЗМІСТ
ВСТУП…………………………………………………………………………..
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ………………………………………………….....
1.1 Аналіз предметної області…………………………………….....
1.2 Вибір напряму дослідження……………………………………..
1.3 Постановка задачі………………………………………………..
1.4 Висновки до розділу 1……………………………………………
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ……………………………………………………….
2.1 Огляд існуючих технологій………………………………………….
2.2 Вибір технологій ……………………………………………………..
2.3 Висновки до розділу 2………………………………………………..
РОЗДІЛ 3 ОПТИМІЗАЦІЯ МЕТОДІВ РОБОТИ СИСТЕМИ
СИГНАЛІЗАЦІЇ З ВИКОРИСТАННЯМ ХМАРНИХ ТЕХНОЛОГІЙ
AWS………………………………………………………………………….....
3.1 Структура системи……………………………………………….......
3.2 Опис функцій системи……………………………………………....
3.3 Забезпечення захисту інформації при роботі зі створеною
системою …………………………………………………………………
3.4 Технічні вимоги для роботи з системою……………………….......
3.5 Оцінка ефективності застосування методів роботи системи
сигналізації з використанням хмарних технологій AWS ……………...
3.6 Висновки до розділу 3……………………………………………….
ВИСНОВКИ……………………………………………………………………
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ………………….....
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………………...
3
ДОДАТКИ:
А – 482.ЧДТУ.42329-01 Оптимізація методів роботи системи
сигналізації з використанням хмарних технологій AWS
4
ВСТУП
Актуальність теми дослідження. У сучасному світі стрімке зростання
обсягів інформації, розвиток технологій та підвищення вимог до безпеки
обумовлюють необхідність вдосконалення систем сигналізації. Традиційні
підходи до побудови та управління такими системами часто обмежуються
локальною інфраструктурою, яка має низку недоліків, серед яких високі
витрати на підтримку, складність масштабування та низька швидкість обробки
даних у критичних ситуаціях.
Хмарні технології, зокрема Amazon Web Services (AWS), пропонують
нові можливості для вирішення цих проблем. AWS надає інструменти, що
дозволяють створювати масштабовані, адаптивні та економічно ефективні
системи. Використання таких сервісів, як AWS Lambda, DynamoDB, S3 та
інші, дозволяє автоматизувати ключові процеси, забезпечити оперативну
обробку подій і підвищити надійність систем сигналізації.
Зростання потреб у сучасних рішеннях для безпеки обумовлено кількома
факторами це кіберзагрози і техногенні ризики. Інтеграція сигналізаційних
систем із хмарними платформами дозволяє підвищити швидкість реагування
на потенційні загрози та забезпечити надійний захист інформації.
Популярністю розумних будинків та IoT-рішень. Потреба у взаємодії
різноманітних пристроїв із центральними системами вимагає використання
гнучких і масштабованих інструментів, які забезпечують хмарні платформи.
Економічною ефективністю хмарних рішень. Традиційні системи сигналізації
вимагають значних інвестицій у фізичну інфраструктуру та її обслуговування,
тоді як хмарні технології значно знижують ці витрати завдяки використанню
моделі оплати за фактичне використання. У світі, де постійно змінюється
рівень загроз, хмарні платформи дозволяють адаптувати системи сигналізації
до нових викликів без суттєвих фінансових або часових витрат.
5
Таким чином, дослідження методів оптимізації роботи систем
сигналізації з використанням хмарних технологій AWS є вкрай актуальним
для сучасних умов. Воно спрямоване на вирішення практичних проблем у
сфері безпеки та забезпечує розробку універсальних рішень для різних
галузей, таких як комерційні підприємства, житлові комплекси, промисловість
та державний сектор. Це дозволить підвищити рівень безпеки, знизити витрати
та забезпечити новий рівень адаптивності сигналізаційних систем до сучасних
викликів.
Метою кваліфікаційної роботи є розробка системи сигналізації,
інтегрованої з хмарними технологіями. Система складається з кількох
модулів, що виконують різні функції, забезпечуючи гнучкість,
масштабованість та простоту обслуговування. Кожен модуль є незалежним і
може бути окремо налаштований або вдосконалений, що дозволяє інтегрувати
нові функціональні можливості та адаптувати систему до різних вимог.
Основні завдання включають:
1. Розробка архітектури системи сигналізації з використанням
хмарних технологій.
2. Створення незалежних модулів, які можуть виконувати різні
функції та інтегруватися між собою.
3. Забезпечення гнучкості налаштувань кожного модуля для
адаптації до різних потреб користувачів.
4. Створення інтерфейсу для моніторингу та керування системою
через хмару.
5. Розробка документації для налаштування, використання та
обслуговування системи.
6
Ці завдання спрямовані на створення ефективної, масштабованої та
легкої в обслуговуванні системи сигналізації, яка може адаптуватися до
змінних умов та вимог користувачів.
На цей час існує не багато джерел інформації, в яких автори описують
тематику оптимізації роботи систем із використанням хмарних технологій,
зокрема AWS. Автори Міхаель Віттіг та Андреас Віттіг у своїй книзі “Amazon
Web Services in Action”, яка є практичним посібником для розробників, які
бажають освоїти основні можливості AWS детально описуються ключові
сервіси AWS, такі як EC2, S3, Lambda, DynamoDB, а також способи їх
інтеграції для створення високопродуктивних систем. Автори особливу увагу
приділяють питанню масштабованості та автоматизації обробки даних у
хмарних середовищах. Книга також містить приклади створення систем
моніторингу та аварійного реагування, що є важливими аспектами для
побудови сучасних систем сигналізації. Автор Бернард Голден у книзі
“Amazon Web Services for Dummies” надає вступ до використання хмарних
технологій AWS. Автор пояснює основи побудови хмарних архітектур,
включаючи зберігання даних, обробку подій і управління інфраструктурою.
Особливу увагу приділено питанням безпеки, що є критично важливим для
систем сигналізації. У книзі також описуються приклади побудови систем з
використанням хмарних сервісів, які підходять для малого бізнесу і великих
корпорацій.
Об'єкт дослідження – системи сигналізації та їхні методи роботи.
Предмет дослідження – хмарні технології, зокрема AWS, для
оптимізації роботи систем сигналізації.
Наукова новизна полягає у розробці та вдосконаленні методів
інтеграції сигналізаційних систем з хмарними технологіями AWS, що
дозволяє забезпечити підвищення продуктивності, гнучкості та швидкості
обробки даних. Запропоновані підходи сприяють розширенню
функціональних можливостей сигналізаційних систем за рахунок
7
застосування інструментів AWS, таких як Lambda, DynamoDB, S3, та інших.
Практична цінність роботи полягає в тому, що одержані результати
можуть бути використані для створення або вдосконалення сучасних систем
сигналізації у різних галузях, включаючи комерційні, промислові та приватні
об’єкти. Впровадження хмарних рішень сприятиме зниженню витрат на
технічне обслуговування, підвищенню надійності роботи системи та її
адаптивності до мінливих умов.
Кваліфікаційна робота складається з 3-х розділів, в яких подається
інформація про:
1. Аналіз предметної області та постановка задачі.
2. Вибір технологій та інструментальних засобів розробки.
3. Оптимізацію методів роботи системи сигналізації з
використанням хмарних технологій.
Використані інформаційні джерела під час написання кваліфікаційної
роботи досить добре розкривають тему та відображають потреби для аналізу.
7
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ
1.1 Аналіз предметної області
Системи сигналізації відіграють ключову роль у забезпеченні безпеки
житлових, комерційних і промислових об’єктів. Їхнє основне призначення –
оперативно виявляти загрози, попереджати про них відповідальних осіб або
служби та мінімізувати можливі наслідки. [1]
Основні причини використання систем сигналізації це захист від злому
та крадіжок. Системи сигналізації допомагають виявляти несанкціонований
доступ до приміщень, активуючи звукові, візуальні або віддалені
повідомлення. Це дозволяє оперативно реагувати на загрози та запобігати
матеріальним збиткам.
Для пожежної безпеки системи можуть включати датчики диму, тепла
або вогню, що забезпечує своєчасне попередження про пожежу, мінімізуючи
ризик втрат і шкоди.
Для моніторингу екологічних умов системи сигналізації
використовуються для контролю за параметрами середовища, такими як
витоки газу, підвищена вологість, затоплення, що дозволяє уникнути
техногенних аварій або пошкодження майна. [1-5]
Для оперативної реакції завдяки сучасним технологіям сигналізації,
повідомлення про загрози може бути миттєво передано власнику, службі
охорони або рятувальним організаціям.
Наявність системи сигналізації на об’єкті часто відлякує потенційних
порушників, знижуючи ймовірність спроб злому або інших протиправних дій.
Сигналізація може працювати спільно з відеоспостереженням,
системами доступу та іншими технологіями, створюючи комплексне рішення
для захисту об’єкта.
8
Використання сигналізації допомагає зменшити витрати на страхування,
адже наявність таких систем часто є вимогою страхових компаній для
укладення договорів. [2,4]
Системи сигналізації є невід’ємною частиною сучасних рішень у сфері
безпеки, забезпечуючи захист людей, майна та інформації у швидкозмінному
світі.
Автономна сигналізація – це найпростіший вид охоронної системи,
яка працює без підключення до зовнішніх мереж або систем. Її основним
завданням є миттєве виявлення загрози (наприклад, проникнення в
приміщення або спроба злому) і сповіщення оточуючих за допомогою
звукового сигналу. У системі використовуються датчики, які реагують на рух,
відкриття дверей чи вікон, або інші тригери, після чого активується сирена.
Склад автономної сигналізації:
• Контролер або центральний блок. Основний елемент, що приймає
сигнали від датчиків і активує сирену;
• Датчики руху реагують на переміщення в зоні їхнього охоплення.
Магнітні датчики встановлюються на дверях чи вікнах і реагують на їх
відкриття. Датчики розбиття скла спрацьовують при ударі по склу або при
його руйнуванні;
• Сирена генерує гучний звуковий сигнал (до 120 дБ), який
привертає увагу та відлякує зловмисників;
• Акумулятор забезпечує роботу системи в разі відключення
електроенергії.
На рисунку 1.1 зображено приклад компонентів автономної сигналізації.
[3]
9
Рисунок 1.1 – Компоненти автономної системи
Переваги автономної сигналізації – це простота встановлення та
використання. Автономна сигналізація не вимагає спеціальних навичок для
монтажу, її легко встановити самостійно. Відсутність абонентської плати. Для
роботи системи не потрібно оплачувати послуги охоронної компанії або
абонентське обслуговування. Ефективне локальне сповіщення, гучний сигнал
сирени привертає увагу оточуючих, що може відлякати зловмисників. Система
не залежить від підключення до інтернету чи мобільного зв’язку, що робить її
стійкою до кібератак чи збоїв мережі.
Недоліки автономної сигналізації – не передає сигнал тривоги власнику
або охоронній службі, що обмежує можливість швидкого реагування. Якщо
поруч немає людей, які можуть почути сирену, зловмисники можуть
продовжити свої дії. Систему можуть пошкодити або відключити, якщо
зловмисники отримають доступ до центрального блоку. Автономні системи
зазвичай не мають можливостей віддаленого управління або інтеграції з
іншими пристроями (наприклад, камерами відеоспостереження). [5]
Сфери використання автономної сигналізації:
• Житлові приміщення: квартири, приватні будинки;
10
• Малі об’єкти: гаражі, складські приміщення, магазини;
• Мобільні об’єкти: транспортні засоби, дачі.
Цей тип сигналізації ідеально підходить для тих, хто шукає просте і
доступне рішення для базового рівня захисту об’єкта. Її можна
використовувати як тимчасовий захід або як додатковий елемент у
комплексній системі безпеки.
Пультова сигналізація – це комплексна система безпеки, яка
забезпечує постійний моніторинг об’єкта через підключення до пульта
централізованого спостереження охоронної компанії. У разі спрацювання
системи тривоги сигнал автоматично передається на пульт операторів, які
направляють на місце події групу швидкого реагування.
Система складається з центрального блоку, який координує роботу
датчиків і передає сигнал тривоги, самих датчиків (руху, відкриття дверей,
розбиття скла, диму чи газу), сирени, модуля передачі даних (GSM, інтернет,
радіозв’язок) та пульта централізованого спостереження, приклад зображено
на рисунку 1.2. [2]
Рисунок 1.2 – Частини пультової сигналізації
11
Принцип роботи простий: датчики відстежують стан об’єкта та у разі
загрози передають сигнал на центральний блок. Блок передає інформацію на
пульт охоронної компанії, після чого оператор перевіряє сигнал і направляє
групу реагування для перевірки або усунення небезпеки.
Пультова сигналізація має кілька переваг. По-перше, вона забезпечує
постійний моніторинг об’єкта. По-друге, охоронна компанія оперативно
реагує на загрози, надсилаючи професійні групи. По-третє, така система
дозволяє інтегрувати додаткові пристрої, наприклад, камери спостереження
або датчики екологічного контролю.
Проте є й недоліки. Пультова сигналізація вимагає щомісячної
абонентської плати за послуги охоронної компанії. Її робота залежить від
стабільного зв’язку, що може бути уразливим до зовнішніх факторів. Також
система потребує професійного монтажу, що може бути дорогим. [2]
Ця сигналізація ідеально підходить для житлових будинків, комерційних
приміщень, промислових об’єктів і громадських місць, де потрібен високий
рівень захисту та оперативне реагування.
GSM-сигналізація – це сучасна охоронна система, яка використовує
мобільні мережі для передачі сигналів тривоги. Вона працює на базі технології
GSM (Global System for Mobile Communications), що дозволяє системі
передавати повідомлення власнику або охоронній компанії через смс або
дзвінки за допомогою мобільного телефону. [1-3]
Основними елементами GSM-сигналізації є центральний блок, датчики
(руху, відкриття дверей, диму тощо), GSM-модуль для зв’язку та сирена.
Датчики відстежують події на об’єкті, а при спрацюванні передають сигнал на
центральний блок. Блок через GSM-модуль відправляє повідомлення або
дзвінок на мобільний телефон власника або охоронної компанії. Власник може
отримати сповіщення про загрозу в реальному часі, що дає можливість швидко
реагувати на ситуацію. Приклад сигналізації зображено на рисунку 1.3. [3]
12
Рисунок 1.3 – Приклад GSM-сигналізація
GSM-сигналізація має кілька важливих переваг. Однією з них є
можливість віддаленого управління через мобільний телефон. Власник може
отримати повідомлення про спрацювання сигналізації, а також дистанційно
ввімкнути або вимкнути систему. Іншою перевагою є відсутність необхідності
у підключенні до проводового інтернет-зв’язку чи пульта централізованого
спостереження, що робить систему більш незалежною та легкою в установці.
Проте GSM-сигналізація має і свої недоліки. Вона залежить від якості
мобільного зв’язку, тому в разі поганого покриття або відключення мережі
сигналізація може не спрацювати або не передати повідомлення. Крім того, у
разі проникнення злочинців на об’єкт вони можуть перервати зв’язок або
заблокувати мобільний сигнал. [2,4]
GSM-сигналізація є відмінним вибором для тих, хто хоче мати більш
мобільну та незалежну систему безпеки, а також для об’єктів, де важливий
віддалений контроль і простота монтажу. Вона ідеально підходить для
13
приватних будинків, дач, невеликих магазинів і офісів.
AJAX (Asynchronous JavaScript and XML) – це технологія веб-
розробки, яка дозволяє веб-сторінкам оновлювати частини своєї інформації
без необхідності повного перезавантаження сторінки. Вона використовує
асинхронні запити до сервера, що дозволяє взаємодіяти з сервером та
отримувати нові дані без переривання взаємодії користувача зі сторінкою.
AJAX зазвичай використовується для створення динамічних веб-додатків,
таких як чати, поштові сервіси, онлайн-редактори, соціальні мережі та інші
інтерактивні сайти. Приклад AJAX сигналізації зображено на рисунку 1.3. [5]
Рисунок 1.3 – Приклад AJAX сигналізації
Основною перевагою AJAX є можливість асинхронного обміну даними
з сервером. Це означає, що користувач може продовжувати працювати з веб-
сторінкою, навіть коли дані передаються на сервер або отримуються з нього.
Наприклад, при запитах до бази даних для пошуку або фільтрації інформації,
сторінка не оновлюється, і користувач залишається на тій же частині
інтерфейсу.
AJAX працює через JavaScript, який використовує об’єкт
XMLHttpRequest або сучасніші API, такі як Fetch. Коли користувач ініціює
дію, наприклад, натискання кнопки або введення тексту, JavaScript відправляє
запит на сервер без перезавантаження сторінки. Сервер обробляє запит, а
потім повертає результат у вигляді даних (наприклад, у форматі JSON або
XML). Ці дані обробляються JavaScript-ом, і на їх основі змінюється
відповідний фрагмент веб-сторінки.
14
Використання AJAX значно покращує швидкість роботи веб-додатків.
Оскільки тільки частини сторінки оновлюються, а не вся, це значно зменшує
час очікування для користувача. Крім того, технологія дозволяє зменшити
навантаження на сервер, оскільки не потрібно повторно завантажувати всю
сторінку при кожному запиті. [3,5]
Однак, незважаючи на численні переваги, AJAX має і свої недоліки.
Одним з основних є те, що при використанні цієї технології, взаємодія з веб-
сайтом може бути складнішою для пошукових систем (SEO), оскільки зміни,
які відбуваються за допомогою AJAX, не завжди можуть бути доступні для
індексації. Крім того, необхідно забезпечити обробку помилок при
асинхронних запитах, оскільки мережеві або серверні збої можуть призвести
до некоректної роботи веб-додатку.
Завдяки своїм властивостям AJAX є невід’ємною частиною сучасних
веб-додатків, забезпечуючи високу швидкість, інтерактивність і зручність для
користувачів.
Pyronix – це міжнародна компанія, що спеціалізується на розробці та
виробництві систем сигналізації та безпеки для домашніх та комерційних
об’єктів. Заснована в 1986 році, компанія швидко зарекомендувала себе як
один із провідних виробників охоронних рішень, пропонуючи широкий
асортимент продукції для різних рівнів безпеки. Pyronix є частиною
британської групи компаній, яка займається інноваціями у галузі безпеки та
автоматизації. [6]
Основним напрямком діяльності Pyronix є створення охоронних систем,
що поєднують передові технології з простотою використання. Вони
спеціалізуються на виробництві центральних станцій управління, датчиків
руху, камер відеоспостереження, систем відео- та аудіофіксації, а також
обладнання для інтеграції з іншими компонентами безпеки. Важливою рисою
продукції є надійність та можливість віддаленого моніторингу через мобільні
додатки та інші онлайн-сервіси.
15
Одна з основних переваг продуктів Pyronix – це їхня висока
технологічність і зручність для користувачів. Системи сигналізації Pyronix
можна інтегрувати з іншими рішеннями для забезпечення більш комплексної
безпеки, а також з управлінськими платформами для зручного контролю через
смартфони або комп’ютери. Багато моделей підтримують функцію
«розумного дому», що дозволяє інтегрувати сигналізацію з іншими системами
автоматизації, такими як освітлення, термостати або дверні замки. Приклад
такої сигналізація зображено на рисунку 1.4. [3,6]
Рисунок 1.4 – Бездротова система Pyronix
Pyronix також відома своїми інноваційними розробками в сфері
бездротових технологій. Бездротові системи Pyronix забезпечують легкість в
установці і гнучкість при розміщенні датчиків, що особливо важливо в умовах,
коли прокладка проводів є складною чи неможливою. Програмне
забезпечення компанії також дозволяє віддалений доступ до даних системи
через інтернет, що дає можливість моніторити стан сигналізації та отримувати
сповіщення про події в реальному часі.
Продукція Pyronix користується попитом у різних секторах – від
приватних домоволодінь до великих комерційних підприємств. Їхня продукція
підходить як для захисту приватних осель, так і для більш складних і великих
інфраструктур, таких як магазини, офіси або склади. Завдяки широкому
16
спектру рішень, включаючи пультові та автономні сигналізації, компанія
надає рішення для будь-яких потреб в охороні та безпеці.
Pyronix є одним з лідерів в області технологій безпеки, яка поєднує
інноваційні підходи до розробки охоронних систем з високим рівнем
надійності та доступності для користувачів.
Orion NOVA X – це сучасна охоронна система, яка поєднує інноваційні
технології та високий рівень надійності для забезпечення комплексного
захисту житлових і комерційних об’єктів. Виготовлена компанією Orion
Security, ця система сигналізації була створена для максимальної простоти
використання та високої ефективності, і є однією з найбільш популярних у
своєму класі.
Центральний блок Orion NOVA X є основним елементом системи, який
здійснює управління всіма датчиками та пристроями сигналізації. Він
підтримує як дротові, так і бездротові компоненти, що дозволяє гнучко
налаштовувати систему відповідно до потреб користувача та особливостей
об’єкта. Операційний процес здійснюється через інтуїтивно зрозумілий
інтерфейс, за допомогою якого можна здійснювати настройку та контроль за
системою через мобільний додаток або пульт дистанційного керування.
Приклад такої сигналізація зображено на рисунку 1.5. [4]
17
Рисунок 1.5 - Охоронна система Orion NOVA X
Orion NOVA X включає широкий асортимент датчиків для різних цілей
– датчики руху, відкриття дверей та вікон, а також спеціалізовані датчики для
виявлення диму, газу та води. Це дозволяє забезпечити всебічний захист
будинку чи підприємства. Всі ці датчики можуть працювати як окремо, так і
в комплексі, що дозволяє створити ефективну систему моніторингу та захисту.
Однією з головних переваг Orion NOVA X є його здатність до інтеграції
з іншими системами безпеки та автоматизації. Це дозволяє створювати
комплексні рішення для захисту об’єктів, включаючи відеоспостереження,
контроль доступу, автоматизацію освітлення та управління іншими
пристроями через єдину платформу. [21]
Orion NOVA X підтримує функцію віддаленого моніторингу через
мобільний додаток, що дозволяє користувачам бути в курсі стану системи в
будь-який час і з будь-якого місця. Окрім того, система оснащена вбудованою
резервною батареєю, що дозволяє забезпечити її роботу в разі відключення
електроенергії. Це гарантує неперервний захист навіть у несприятливих
умовах.
Orion NOVA X розроблений таким чином, щоб забезпечити простоту в
18
установці. Завдяки бездротовій технології можна легко встановити датчики та
інші компоненти системи без необхідності прокладання проводів. Це дозволяє
значно зменшити витрати часу на монтаж та зробити установку доступною
навіть для тих, хто не має спеціалізованих знань у сфері безпеки.
У разі спрацювання сигналізації, система NOVA X може надіслати
миттєві сповіщення користувачеві через SMS, email або через мобільний
додаток. Також можливе підключення до пульта централізованого
спостереження для оперативного реагування охоронною компанією.
Користувач може налаштувати різні типи сповіщень для кожного датчика, що
дає можливість швидко реагувати на різні загрози.
Переваги Orion NOVA X це інтуїтивно зрозуміле керування завдяки
простому інтерфейсу і можливості налаштування через мобільний додаток.
Модульність і гнучкість можливості комбінувати різні типи датчиків і
додаткових компонентів для створення персоналізованої системи. Висока
надійність система забезпечує надійний захист навіть в умовах перебоїв з
електроживленням завдяки резервним джерелам живлення. Широкі
можливості інтеграції підтримка інтеграції з іншими системами безпеки та
автоматизації. Віддалений моніторинг можливість отримувати сповіщення та
контролювати систему з будь-якої точки світу.
Orion NOVA X підходить для захисту приватних будинків, квартир,
офісів, магазинів та інших комерційних об’єктів. Його універсальність,
надійність та можливість інтеграції з іншими системами роблять його
ідеальним вибором для тих, хто шукає комплексне рішення для безпеки.
Nest Secure – це інтелектуальна система безпеки від компанії Google,
яка є частиною екосистеми розумного будинку Nest. Вона призначена для
забезпечення безпеки житлових і комерційних приміщень, пропонуючи
інтеграцію з іншими смарт-пристроями, простоту використання та широкі
можливості налаштування.
Основні компоненти системи Nest Secure зображені на рисунку 1.6. [21]
19
Рисунок 1.6 – Основні компоненти системи Nest Secure
Nest Guard – центральний елемент системи, який виконує роль хабу та
клавіатури для управління. Nest Guard включає вбудовану сирену для
сповіщення про тривоги, датчик руху з дальністю до 4,5 метрів, кнопкову
панель для вводу коду деактивації або активації.
Підключення до Інтернету через Wi-Fi для передачі даних і сповіщень.
Nest Detect – універсальні датчики, які працюють як датчики відкриття
дверей і вікон. Вони визначають, коли двері чи вікно відкриваються. Датчики
руху. Дозволяють виявляти рух у приміщенні. Особливістю Nest Detect є
функція Quiet Open, яка дозволяє відкривати двері або вікно без активації
сигналізації, якщо система налаштована на охорону.
Nest Tag – брелоки, які дають змогу швидко деактивувати сигналізацію
без введення коду. Це зручно для членів сім’ї або гостей, які не хочуть
використовувати клавіатуру. Брелок працює через NFC-технологію.
Мобільний додаток Nest – забезпечує повний контроль над системою. З
додатку можна увімкнути або вимкнути сигналізацію, отримувати сповіщення
про тривоги, налаштовувати пристрої та перевіряти стан датчиків, віддалено
переглядати історію подій.
Nest Secure працює разом із іншими продуктами Nest, такими як камери
спостереження (Nest Cam), розумні термостати (Nest Thermostat) та
відеодомофони (Nest Hello). Це дозволяє створити комплексну систему
безпеки та автоматизації будинку. [21]
Система пропонує кілька режимів роботи. У режимі Home and Guarding
20
сигналізація працює, але дозволяє вільно переміщатися всередині будинку.
Режим Away and Guarding забезпечує повний захист, коли нікого немає вдома.
У режимі Off сигналізація вимкнена, але датчики все одно можуть виконувати
інші завдання, наприклад, надсилати сповіщення про відкриття дверей.
Nest Secure розроблена так, щоб її можна було встановити самостійно
без допомоги спеціалістів. Інтуїтивно зрозумілий мобільний додаток робить
процес налаштування швидким і простим.
Система зберігає дані та налаштування в хмарі, що дозволяє
синхронізувати пристрої, отримувати оновлення та мати доступ до системи з
будь-якого місця, де є Інтернет.
Nest Secure має вбудоване резервне живлення, яке забезпечує роботу
системи у разі відключення електрики. У випадку втрати Wi-Fi система може
використовувати мобільний резервний зв’язок через LTE (доступно за
додаткову плату).
Переваги Nest Secure це простота у використанні завдяки інтуїтивному
додатку та інтелектуальним функціям, легка інтеграція з іншими продуктами
Google та Nest, можливість віддаленого управління та моніторингу, гнучкі
налаштування для різних сценаріїв використання та висока якість матеріалів і
компонентів, що гарантує довговічність системи.
Недоліки Nest Secure це висока вартість у порівнянні з іншими
системами сигналізації, обов’язкова підписка для доступу до деяких функцій,
таких як мобільний резервний зв’язок, залежність від Інтернету для
повноцінної роботи.
1.2 Вибір напряму дослідження
Вибір напряму дослідження є важливим етапом у розробці ефективних
систем сигналізації. Для забезпечення максимальної безпеки необхідно
врахувати сильні та слабкі сторони існуючих типів сигналізацій. У цьому
розділі буде розглянуто основні проблеми автономних, пультових та GSM-
21
систем сигналізації, що дозволить визначити ключові аспекти для подальшої
оптимізації їх роботи та інтеграції з сучасними технологіями, такими як хмарні
сервіси AWS.
Проблеми автономних сигналізацій полягає в тому, що у разі тривоги
сигналізація активує лише сирену або інший звуковий сигнал. Це може
налякати зловмисників, але не гарантує, що власник чи правоохоронні органи
будуть проінформовані про інцидент. Наприклад, якщо власник знаходиться
далеко від об’єкта, він може навіть не дізнатися про загрозу.
Автономна сигналізація розраховує на те, що сусіди або перехожі
почують сирену та відреагують. Проте в реальних умовах люди часто
ігнорують такі звуки, вважаючи їх хибною тривогою, або просто не хочуть
втручатися. Досвідчені зловмисники можуть швидко відключити автономну
сигналізацію, особливо якщо вона працює від мережевого живлення.
Відсутність резервних каналів зв’язку або акумуляторів робить систему ще
вразливішою. Не мають можливості надсилати повідомлення на смартфон чи
викликати службу охорони. Це знижує їхню ефективність у порівнянні з
пультовими або GSM-сигналізаціями, які мають інтегровані засоби
сповіщення. [22,23]
У разі активації через помилку (наприклад, сильний вітер, домашніх
тварин або технічний збій) сирена може спрацювати без реальної загрози. Це
не лише знижує довіру до системи, але й дратує сусідів, що може призвести до
конфліктів. Такка сигналізація не здатна працювати в умовах складних загроз,
наприклад, якщо зловмисники використовують технічні засоби для
нейтралізації сирени або відволікаючі маневри. Відсутність інтеграції з
іншими захисними системами також обмежує її ефективність. У сільській або
ізольованій місцевості автономна сигналізація може виявитися зовсім марною,
оскільки поруч немає людей, які б могли зреагувати на звуковий сигнал.
Сигналізації зазвичай мають обмежені можливості адаптації до потреб
користувача. Наприклад, вони не дозволяють створювати графіки роботи,
22
автоматично активуватися за відсутності власника чи передавати дані до
інших пристроїв. [22,23]
Таким чином, автономна сигналізація може бути корисною як базовий
захист, але для більш надійного забезпечення безпеки доцільно
використовувати сучасніші системи, які пропонують сповіщення, інтеграцію
з іншими пристроями та моніторинг у реальному часі.
Проблеми пультової сигналізації полягає у необхідності постійного
моніторингу з боку операторів охоронних компаній. Це створює додаткові
витрати для користувача, оскільки вартість послуг включає оплату праці
співробітників, які аналізують інформацію з усіх підключених сигналізацій.
Навіть професійні оператори можуть припускатися помилок, особливо
у випадках перевантаження системи або під час хибних тривог. Це може
призвести до затримки у реагуванні або навіть до ігнорування реальної
загрози.
Щомісячна абонентська плата за обслуговування пультової сигналізації
може бути значною, особливо для невеликих підприємств чи приватних осіб.
Це робить її менш доступною порівняно з іншими видами сигналізацій.
Ефективність пультової сигналізації залежить від надійності та
оперативності обраної охоронної компанії. У разі недостатньої професійності
компанії користувач може зіткнутися з низьким рівнем захисту або повільним
реагуванням на тривоги.
У ситуаціях, коли велика кількість об’єктів надсилає тривожні сигнали
одночасно, оператори можуть не встигнути обробити всю інформацію вчасно.
Це створює ризик, що частина тривог залишиться без уваги.
Якщо зв’язок між об’єктом та пультом охорони буде втрачено,
сигналізація може виявитися марною. Це може статися через технічні
несправності, навмисне глушення сигналу зловмисниками або природні
катаклізми.
23
Пультова сигналізація часто реагує на будь-яке спрацювання датчиків.
У разі хибної тривоги це може призводити до зайвих витрат, адже охоронна
компанія виїжджає на місце без реальної загрози.
Таким чином, пультова сигналізація, хоч і забезпечує високий рівень
захисту, має суттєві недоліки, які пов’язані з високими витратами, залежністю
від людського фактору та потенційною вразливістю у критичних ситуаціях.
Проблеми GSM-сигналізацій вважаються одними з найбільш надійних
і безпроблемних систем охорони завдяки їх автономності, можливості
надсилання сповіщень через мобільні мережі та простоті використання. Проте,
їх ефективність напряму залежить від роботи серверів і мережевого з’єднання,
до яких вони підключені.
Функціональність GSM-сигналізації тісно пов’язана із центральним
сервером, через який здійснюється обробка сигналів тривоги та їх передача
користувачеві. Якщо сервери охоронної компанії або виробника сигналізації
працюють із перебоями, система може не передати сповіщення вчасно, що
створює ризик для безпеки об’єкта. Використовують мобільні мережі для
передачі даних. У разі слабкого покриття мережі, перевантаження базових
станцій або навмисного глушення сигналу зловмисниками, система може
втратити зв’язок із сервером і стати тимчасово недієздатною.
Сучасні GSM-сигналізації часто мають доступ до Інтернету для
синхронізації з мобільними додатками та серверами. Це створює потенційну
вразливість до хакерських атак, які можуть спричинити як втрату
конфіденційності даних, так і повне блокування системи. У разі технічних
несправностей або необхідності оновлення програмного забезпечення
користувач залежить від служби підтримки. Затримки в оновленнях або
вирішенні проблем можуть вплинути на надійність роботи системи.
Для забезпечення стабільної роботи GSM-сигналізацій потрібна SIM-
карта з мобільним трафіком. Крім того, деякі системи вимагають платного
обслуговування для доступу до серверів чи хмарних сервісів.
24
Таким чином, попри загальну без проблемність і високу ефективність,
GSM-сигналізації мають свій недолік у вигляді залежності від серверів і
мобільного зв’язку. У критичних ситуаціях ця залежність може вплинути на
оперативність реагування та безпеку об’єкта.
1.3 Постановка задачі
Однією з ключових проблем використання GSM-сигналізацій є їх
залежність від локальних серверів, які здійснюють обробку та передачу даних.
Локальні сервери, що відповідають за функціонування сигналізації, мають
низку обмежень, які впливають на надійність і ефективність роботи системи.
Локальні сервери можуть бути схильні до технічних збоїв, що
призводить до переривання роботи сигналізації. У разі збою серверу дані про
тривогу можуть не передатися користувачеві, що створює ризик для безпеки
об’єкта.
У разі збільшення кількості користувачів чи навантаження на систему
локальні сервери можуть не впоратися з обробкою великого обсягу даних. Це
може викликати затримки у передачі сигналів тривоги або навіть тимчасову
недоступність системи.
При використанні локальних серверів зростає ймовірність втрати даних
через апаратні несправності, відсутність резервного копіювання або
недостатній рівень кіберзахисту. Це може вплинути на коректність роботи
системи та зменшити її надійність.
Локальні сервери потребують регулярного обслуговування, оновлення
та модернізації, що збільшує витрати часу і ресурсів. У разі відсутності
належної підтримки система може стати вразливою до збоїв або атак.
Локальні сервери можуть мати обмежену зону дії, що ускладнює
використання GSM-сигналізацій у віддалених регіонах або на міжнародному
рівні.
25
Виходячи з цих проблем, у роботі постає завдання дослідити способи
мінімізації залежності GSM-сигналізацій від локальних серверів шляхом
інтеграції хмарних технологій, таких як AWS. Це дозволить підвищити
надійність, масштабованість та ефективність роботи системи.
Переваги використання хмарних рішень, таких як AWS, відкриває
широкі можливості для підвищення ефективності, надійності та
функціональності. Хмарні рішення побудовані на основі сучасної
інфраструктури дата-центрів, які забезпечують стабільність роботи навіть у
непередбачуваних обставинах. Вони використовують резервні джерела
живлення, кілька каналів доступу до мережі та дублювання критично
важливих компонентів. Завдяки цьому сигналізація продовжує функціонувати
без збоїв навіть у разі перебоїв із електропостачанням або локальними
технічними проблемами. [1-3]
Однією з ключових переваг хмарних рішень є автоматичне дублювання
даних та послуг. Якщо один сервер вийде з ладу через несправність або
фізичне пошкодження, система миттєво перемикається на резервний сервер.
Цей процес відбувається без втрати інформації або тривалого простою, що
особливо важливо для систем безпеки, де кожна секунда має значення. [5]
Хмарні платформи мають практично необмежені ресурси для обробки
даних. У разі зростання кількості користувачів або підключених пристроїв
система автоматично збільшує обчислювальні потужності та обсяг пам’яті,
що використовується. Це означає, що система може рости разом із бізнесом
або потребами користувачів, не потребуючи заміни обладнання чи
модернізації локальної інфраструктури. [8-10]
Хмарні сервіси доступні з будь-якої точки світу, де є Інтернет.
Користувачі можуть керувати системою сигналізації, отримувати сповіщення
про події та переглядати записи з камер у реальному часі, навіть перебуваючи
за тисячі кілометрів від охоронюваного об’єкта.
Хмарні провайдери впроваджують найсучасніші методи захисту
інформації [10,20]:
26
• Шифрування даних: передача даних між пристроями та серверами
здійснюється у зашифрованому вигляді, що унеможливлює їх перехоплення;
• Багаторівнева автентифікація: доступ до системи обмежений
лише авторизованим користувачам;
• Постійний моніторинг: платформи хмарного зберігання регулярно
перевіряються на наявність загроз, що запобігає хакерським атакам.
Хмарні технології дозволяють відмовитися від дорогого локального
обладнання. Немає необхідності купувати сервери, оплачувати їхнє
обслуговування, встановлювати системи охолодження чи наймати технічний
персонал. Це значно скорочує початкові витрати та операційні витрати у
довгостроковій перспективі.
Хмарні системи забезпечують автоматичне оновлення програмного
забезпечення, включаючи виправлення помилок та впровадження нових
функцій. Користувачам не потрібно самостійно оновлювати систему чи
турбуватися про її застарілість – усе це здійснюється провайдером. [21]
Обчислювальні ресурси хмарних платформ оптимізовані для швидкої
обробки великих обсягів інформації. Це забезпечує мінімальні затримки при
передачі сигналів тривоги, обробці відеозаписів або інших важливих
операціях.
Хмарні рішення дозволяють налаштовувати систему під індивідуальні
потреби користувача. Наприклад [21-23]:
 Встановлення режимів роботи: охорона тільки зовнішніх зон,
повний моніторинг або часткове відключення датчиків;
 Керування доступом: створення різних рівнів доступу для
користувачів;
 Інтеграція з іншими пристроями: підключення камер, розумних
замків чи датчиків руху.
Таким чином, хмарні технології пропонують сучасний, економічно
ефективний і безпечний підхід до управління системами сигналізації, що
відповідає викликам сучасності та потребам користувачів.
27
1.4 Висновки до розділу 1
Використання хмарних технологій для оптимізації методів роботи
систем сигналізації є важливим кроком у розвитку сучасних систем безпеки.
Хмарні рішення забезпечують значні переваги порівняно з традиційними
методами, такими як локальні сервери чи автономні системи. Зокрема, вони
пропонують високу стабільність і надійність, завдяки розподіленій
інфраструктурі, що гарантує безперервну роботу навіть у випадку технічних
неполадок або збою. Автоматичне дублювання даних та резервування серверів
забезпечують високу відмовостійкість системи. Крім того, хмарні платформи
дозволяють зручно масштабувати ресурси під зростаючі потреби
користувачів, що робить їх універсальними і гнучкими в різних сценаріях.
Іншою важливою перевагою є зниження витрат на обслуговування і
утримання інфраструктури, оскільки відсутня потреба в дорогому локальному
обладнанні та технічній підтримці. Хмарні рішення також гарантують високу
безпеку даних, завдяки використанню шифрування та багаторівневої
автентифікації. Враховуючи глобальну доступність і простоту інтеграції з
іншими пристроями, хмарні технології стають оптимальним рішенням для
сучасних систем сигналізації, підвищуючи їх ефективність і зручність
використання.
На підставі отриманої інформації було поставлено задачі до розробленої
системи, які потрібно реалізувати в рамках роботи.
28
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
Принципи роботи хмарних серверів базуються на використанні
сучасних технологій віртуалізації, зберігання даних і розподіленої обробки
інформації. Вони дозволяють надавати потужності серверів, які не обмежені
фізичними характеристиками окремих машин, а також дають змогу
масштабувати ресурси в залежності від потреб користувача. [5-8]
Хмарні сервери використовують технології віртуалізації, щоб дозволити
одному фізичному серверу працювати як кілька незалежних віртуальних
машин. Це дозволяє ефективно використовувати ресурси (пам’ять, процесор,
дисковий простір) і забезпечує гнучкість у розподілі обчислювальних
потужностей між різними користувачами. Віртуалізація дає змогу швидко
створювати нові сервіси та змінювати їх конфігурацію без фізичного
втручання. [5,8]
Дані в хмарі не зберігаються на одному сервері, а розподіляються по
численних дата-центрах. Це забезпечує високу доступність, надійність і
швидкий доступ до даних незалежно від їхнього місцезнаходження.
Розподілене зберігання також дозволяє уникати втрат даних при виході з ладу
окремих серверів або частин інфраструктури.
Однією з основних характеристик хмарних серверів є здатність до
масштабування ‒ тобто можливість збільшення чи зменшення кількості
ресурсів (пам’яті, процесорної потужності, дискового простору) у реальному
часі, залежно від потреб користувача. Це може бути як вертикальне
масштабування (збільшення ресурсів на одному сервері), так і горизонтальне
(додавання нових серверів до інфраструктури). [6,7]
29
У хмарних середовищах автоматизація відіграє важливу роль у
керуванні та підтримці серверів. Завдяки оркестрації системи можуть
самостійно виконувати оновлення, балансування навантаження між
серверами, резервне копіювання даних і моніторинг. Це забезпечує зручне
управління хмарною інфраструктурою без потреби в постійному втручанні
користувача. [8,9]
Безпека даних у хмарі є пріоритетним завданням. Дані, які передаються
між користувачем і сервером, шифруються за допомогою стандартів безпеки,
таких як SSL/TLS, а доступ до серверів обмежений багаторівневою
автентифікацією. Крім того, провайдери хмарних послуг зазвичай реалізують
додаткові заходи безпеки, такі як системи виявлення вторгнень та автоматичне
виявлення аномальної поведінки. [5-8]
Хмарну архітектуру за моделями “IaaS”, “PaaS”, “SaaS зображено на
рисунку 2.1. [6]
Рисунок 2.1 ‒Хмарна архітектура за моделями
IaaS (Infrastructure as a Service) ‒ надається базова інфраструктура для
створення серверів, зберігання даних, мережеві ресурси. Користувач може
орендувати необхідні ресурси для розміщення власних додатків.
PaaS (Platform as a Service) ‒ платформа для розробки, тестування та
запуску додатків без необхідності управляти серверним середовищем.
30
SaaS (Software as a Service) ‒ надаються готові програмні продукти,
доступні через інтернет, без необхідності їх встановлення чи обслуговування.
У хмарних серверах також реалізовані автоматизовані системи
резервного копіювання та відновлення даних. Це дозволяє зберігати копії
важливих даних і швидко відновлювати їх у разі аварії або втрати даних.
Хмарні рішення зазвичай мають декілька варіантів резервування, включаючи
розподілене резервне копіювання в різних регіонах для додаткової безпеки.
Системи моніторингу на хмарних серверах дозволяють постійно
відстежувати стан інфраструктури, використання ресурсів і продуктивність
сервера. Вони забезпечують аналітичні дані про навантаження на сервери,
використання пам’яті та пропускну здатність мережі, що дозволяє оперативно
реагувати на проблеми і оптимізувати використання ресурсів. [9]
Хмарні сервери надають значні переваги в плані гнучкості,
масштабованості, безпеки та надійності. Вони дозволяють організаціям
ефективно управляти своїми ІТ-ресурсами, забезпечуючи безперервну
доступність даних і додатків, мінімізуючи при цьому витрати на фізичну
інфраструктуру та обслуговування. [10]
Ось деякі з кращих хмарних сервісів, які пропонують широкий спектр
послуг для різних потреб, таких як зберігання даних, обчислювальні
потужності, аналітика, автоматизація та розробка.
Microsoft Azure ‒ це хмарна платформа, яка надає понад 200 послуг для
будівництва, розгортання та керування додатками та сервісами через
глобальну мережу дата-центрів. Azure підходить для широкого спектра
застосувань, від зберігання даних до аналітики та машинного навчання.
Перелік можливостей зображено на рисунку 2.2. [9,10,13]
31
Рисунок 2.2 ‒ Сервіси, які пропонує Microsoft Azure
Azure пропонує сервіси для віртуалізації серверів, включаючи Azure
Virtual Machines, а також для безсерверних обчислень за допомогою Azure
Functions.
Azure Storage пропонує різні рішення для зберігання даних, включаючи
Blob Storage для великих обсягів даних, Disk Storage для віртуальних машин,
і Cosmos DB для розподілених баз даних.
Azure Analytics включає потужні сервіси для обробки великих даних,
такі як Azure Data Lake, Azure SQL Database і Azure Synapse Analytics, що
дозволяють здійснювати складну обробку та аналіз.
Azure Machine Learning надає засоби для створення, навчання та деплою
моделей машинного навчання.
Переваги Azure дозволяє інтегрувати локальні системи з хмарними, що
особливо корисно для компаній, які використовують змішану інфраструктуру.
Платформа пропонує різноманітні послуги, включаючи обчислювальні
потужності, зберігання даних, мережі, штучний інтелект та аналітику.
Azure надає потужні інструменти захисту даних і сертифікації для
відповідності різним стандартам безпеки. Можливість швидко масштабувати
32
ресурси в залежності від вимог бізнесу. Azure має центри обробки даних по
всьому світу, що забезпечує високу доступність та низьку затримку.
Google Cloud Platform пропонує користувачам надійні та масштабовані
послуги хмарних обчислень, які забезпечують можливості для обробки та
зберігання даних, а також для розробки, тестування та розгортання
програмного забезпечення. Ця платформа включає в себе рішення для
серверних, мобільних і веб-додатків, що використовують Інтернет,
охоплюючи додатки, сховища та обчислювальні сервіси. Понад чотири
мільйони додатків використовують ці послуги для різноманітних завдань.
[9,10,23]
Google прагне спростити процес роботи з бекендом, використовуючи
просту файлову систему, яка обробляє запити через основні операції, такі як
запис, читання та відкриття, що утворюють розподілену систему обчислень.
Google Cloud Platform підходить для великих даних та складних
обчислювальних задач, а також має потужні інструменти для розробки
додатків, зображено на рисунку 2.3. [9,23]
Рисунок 2.3 ‒ Послуги хмарних обчислень, які пропонує Google Cloud
Platform
33
Google Compute Engine надає віртуальні машини, а Kubernetes Engine ‒
інструменти для управління контейнерами.
Google Cloud Storage пропонує гнучкі рішення для зберігання великих
обсягів даних. BigQuery дозволяє ефективно обробляти великі набори даних
для аналітики в реальному часі.
BigQuery є потужним інструментом для аналітики великих даних,
дозволяючи користувачам виконувати запити до мільйонів рядків даних за
лічені секунди.
Google Cloud AI пропонує різні сервіси для машинного навчання,
включаючи AutoML, який дозволяє користувачам створювати моделі без
глибоких знань у програмуванні.
Не так давно компанія Google придбала технологію Cornerstone для
оптимізації міграції робочих навантажень на мейнфрейми в хмару. Ці
інновації активно впроваджуються як малими, так і великими підприємствами
завдяки безпечним і адаптованим рішенням, що знижують витрати на ІТ-
персонал та забезпечують ефективне масштабування онлайн-платформ.
Інтерфейс прикладного програмування (API) Google Cloud дає змогу
інтегрувати функціональність з MS Office, що дозволяє кільком користувачам
одночасно редагувати документи. Хмара забезпечує синхронізацію змін та
відстеження їх за допомогою метаданих, що сприяє ефективній співпраці.
Основними перевагами використання Google Cloud є підвищення
продуктивності, зменшення збоїв при впровадженні нових функцій, доступ до
інформації з будь-якого пристрою в будь-якому місці та високий рівень
безпеки. Крім того, клієнти отримують гарантовану безпеку та можливість
масштабувати свої ресурси відповідно до змінюваних вимог.
AmazonWeb Services (AWS) ‒ це найбільша та найпопулярніша хмарна
платформа в світі, яка пропонує понад 200 сервісів для обчислень, зберігання
даних, аналітики, машинного навчання, та багато іншого зображені на рисунку
2.4. [9,15,16]
34
Рисунок 2.4 – Сервіси Amazon Web Services (AWS)
AWS є лідером на ринку хмарних рішень і забезпечує широкі
можливості для підприємств та стартапів.
Amazon EC2 дозволяє запускати віртуальні сервери в хмарі,
забезпечуючи потужні ресурси для різних потреб. Користувачі можуть
налаштовувати інстанси з різними характеристиками, що оптимізовані для
різних навантажень, таких як обчислення, пам’ять чи зберігання. EC2
підтримує різні операційні системи, дозволяючи масштабувати ресурси в
залежності від потреб, а також інтегрується з іншими сервісами AWS для
надання додаткових функцій. AWS також має сервіси для безсерверного
обчислення, такі як AWS Lambda.
Amazon S3 є одним з найбільш надійних та масштабованих рішень для
зберігання даних. Для реляційних баз даних AWS пропонує Amazon RDS, а
для NoSQL ‒ Amazon DynamoDB. Організовує дані в “бакетах” (контейнери),
забезпечуючи гнучке та масштабоване зберігання. Користувачі можуть
налаштовувати політики доступу та захисту даних, використовувати
шифрування та контролювати рівень доступу через API. Amazon S3 забезпечує
35
високу надійність та доступність, що робить його ідеальним для зберігання
даних підприємств і розробників.
Amazon Redshift високопродуктивна аналітична база даних для великих
даних, оптимізована для швидкої обробки запитів. Вона дозволяє зберігати і
аналізувати величезні обсяги структурованих та напівструктурованих даних
за допомогою SQL. Redshift підтримує масштабування, що дозволяє
користувачам збільшувати потужність обчислень і обсяг зберігання
відповідно до потреб бізнесу. Він інтегрується з іншими сервісами AWS та
забезпечує високу доступність і безпеку даних. [18-20]
Amazon SageMaker ‒ це хмарна платформа для машинного навчання,
що спрощує процес розробки, тренування та розгортання моделей. Вона
пропонує інтегровані інструменти для підготовки даних, налаштування
моделей, оцінки та виведення результатів. SageMaker автоматизує багато
етапів, таких як вибір алгоритмів, налаштування гіперпараметрів і
масштабування ресурсів. Платформа підтримує різні типи моделей та
інтерфейси, зокрема TensorFlow та PyTorch, і є підходящою для як досвідчених
розробників, так і для тих, хто тільки починає працювати з машинним
навчанням.
Переваги AWS (Amazon Web Services) включають можливість
збільшувати або зменшувати ресурси за потребою. Висока доступність і
відмовостійкість завдяки розподіленій інфраструктурі. Різноманітні
інструменти для захисту даних, таких як шифрування, контроль доступу та
моніторинг. Платформа працює на основі моделі “плата за використання”, що
дозволяє зменшити витрати. Постійне оновлення та впровадження нових
сервісів для підтримки інноваційних бізнес-рішень. [16,23]
AWS відомий своєю великою кількістю послуг і глобальним
охопленням. Це ідеальне рішення для великих підприємств та компаній, які
потребують широких можливостей для розгортання хмарних рішень.
36
Azure відзначається потужною інтеграцією з продуктами Microsoft, що
робить його ідеальним вибором для організацій, які вже використовують ці
продукти.
Google Cloud спеціалізується на аналітиці великих даних та машинному
навчанні, ідеально підходить для стартапів і компаній, які орієнтовані на
великі обсяги даних і потребують потужних аналітичних інструментів.
Ці три хмарні платформи є основними на ринку та пропонують
масштабовані, безпечні та ефективні рішення для різних типів користувачів.
Сигналізації можуть взаємодіяти з хмарними серверами через різні
протоколи, зокрема MQTT, HTTP(S) та інші.
MQTT (Message Queuing Telemetry Transport) це легкий протокол
обміну повідомленнями, оптимізований для використання в умовах
обмежених ресурсів і низької пропускної здатності мереж. Він використовує
модель «публікація-підписка», де клієнти підписуються на канали (темами), а
сервер (брокер) пересилає їм повідомлення. Архітектура протоколу зображено
на рисунку 2.5.
Рисунок 2.5 ‒ Архітектура протоколу MQTT
37
MQTT підходить для застосувань в Інтернеті речей (IoT), де потрібно
забезпечити з’єднання між пристроями з низьким енергоспоживанням,
високою надійністю та швидким обміном даними. Протокол також підтримує
гарантовану доставку повідомлень з різними рівнями надійності. [23]
HTTP(S) використовується для більш традиційних комунікацій через
інтернет. HTTP(S) забезпечує простий механізм запитів і відповідей, часто
використовується для передавання даних через RESTful API, зображено на
рисунку 2.6. [15]
Рисунок 2.6 – Протокол HTTP(S)
Це захищена версія HTTP, яка використовує SSL/TLS для шифрування
каналу зв’язку, що забезпечує конфіденційність і цілісність переданих даних,
особливо при обробці чутливої інформації, як-от паролі чи номери кредитних
карток.
CoAP (Constrained Application Protocol) протокол прикладного рівня,
розроблений для використання в обмежених мережах, де пристрої мають
обмежену обчислювальну потужність, пам’ять або пропускну здатність. CoAP
є легким і ефективним для застосування в Інтернеті речей (IoT), працюючи за
принципом запит-відповідь, подібно до HTTP, але використовує менш
затратні механізми, такі як UDP замість TCP. Принцип роботи зображено на
рисунку 2.7. [20,21]
38
Рисунок 2.7 – Протокол CoAP
Завдяки використанню UDP, CoAP забезпечує більш низькі затримки та
знижує вимоги до ресурсу мережі. Підтримує механізми для роботи в
обмежених пристроях із низькими вимогами до пам’яті та потужності.
Подібно до HTTP, CoAP працює на основі запитів і відповідей, але
забезпечує механізм підтверджень. Підтримує багатоадресну передачу, що
дозволяє ефективно взаємодіяти з великою кількістю пристроїв одночасно.
Хоча протокол не є за замовчуванням захищеним, можна використовувати
додаткові протоколи, такі як DTLS (Datagram Transport Layer Security), для
забезпечення конфіденційності й автентифікації.
CoAP є оптимальним для сценаріїв, де потрібно забезпечити надійну та
енергозберігаючу комунікацію між пристроями з обмеженими ресурсами.
Ці протоколи дозволяють сигналізаціям ефективно передавати інформацію до
хмарних платформ для подальшого аналізу, зберігання та обробки.
39
2.2 Вибір технологій
Системи сигналізації створені для виявлення загроз, таких як пожежа,
витік газу, злом або інші надзвичайні ситуації. Стабільна інфраструктура
гарантує, що ці системи працюють безперебійно та можуть миттєво
попередити про небезпеку, що зменшує ризики для життя, здоров'я та майна.
Ненадійна інфраструктура може призвести до помилкових
спрацьовувань або, що гірше, до невиявлення реальних загроз. Це може мати
катастрофічні наслідки, особливо у випадках, коли секунди мають вирішальне
значення.
Стабільна інфраструктура дозволяє оперативно передавати сигнали
тривоги до відповідних служб (пожежна, поліція, служба охорони). Це
мінімізує час реагування, що критично важливо в ситуаціях, коли кожна
секунда має значення.
Інфраструктура в контексті системи сигналізації ‒ це сукупність
апаратних, програмних і комунікаційних компонентів, які забезпечують
надійну та безперебійну роботу системи для виявлення та повідомлення про
загрози.
Надійна та правильно спроектована інфраструктура є запорукою
стабільної роботи системи сигналізації. Вона забезпечує швидке виявлення
загроз, їхню обробку та сповіщення відповідних осіб або служб.
Інфраструктура також гарантує захист від технічних збоїв, атак зловмисників
і зовнішніх факторів, таких як відключення електроенергії чи перешкоди в
мережі. [15,23]
Існуючі системи сигналізації часто базуються на застарілих технологіях
та підходах, що впливає на їх ефективність, надійність і здатність відповідати
сучасним викликам. Це зумовлено низкою факторів, серед яких поступовий
розвиток технологій, консервативність у сфері безпеки, а також високі витрати
на модернізацію.
40
Сучасні системи безпеки генерують великий обсяг даних від
різноманітних датчиків (руху, диму, температури тощо). Слабкі процесори та
малий обсяг пам’яті старих контрольних панелей не здатні оперативно
обробляти ці дані. Це може призводити до затримки в реагуванні на реальні
загрози, що є критично небезпечним у надзвичайних ситуаціях.
Застаріле обладнання не може використовувати складні алгоритми
аналізу даних. Сучасні системи безпеки покладаються на машинне навчання
та штучний інтелект для підвищення точності виявлення загроз і зменшення
кількості хибних спрацьовувань. У застарілих системах такі технології просто
недоступні через обмежену обчислювальну потужність. Обмежена
обчислювальна потужність не дозволяє одночасно виконувати кілька завдань,
наприклад, обробляти сигнали від датчиків і передавати дані до хмарної
платформи чи центру моніторингу. Це може спричиняти збої або тимчасове
припинення роботи окремих функцій системи.
Старі системи сигналізації часто використовують прості логічні
алгоритми для прийняття рішень (наприклад, "якщо датчик виявив рух ‒
увімкнути сирену"). Це підвищує ризик помилкових тривог, оскільки системи
не можуть враховувати контекст (наприклад, визначати, чи дійсно це
зловмисник, чи просто домашній улюбленець).
Старі системи не можуть взаємодіяти з сучасними пристроями або
платформами через обмежену обчислювальну потужність. Наприклад, вони
не можуть ефективно обробляти відеопотоки з камер, інтегруватися з IoT-
пристроями або працювати з хмарними сервісами для віддаленого
моніторингу.
Однією з головних проблем застарілих систем сигналізації є відсутність
підтримки хмарних технологій. Це значно обмежує їх функціональність,
знижує ефективність і ускладнює адаптацію до сучасних вимог безпеки.
Без хмарних технологій користувачі та оператори систем сигналізації не
мають можливості дистанційно контролювати та управляти системою в
реальному часі. Це означає, що всі дії, пов’язані з налаштуванням,
41
моніторингом чи реагуванням на інциденти, вимагають фізичної присутності
на об’єкті. У сучасних системах хмарні платформи дозволяють отримувати
сповіщення, переглядати стан датчиків та активувати або деактивувати
сигналізацію зі смартфона чи комп’ютера незалежно від місця перебування.
Системи без підтримки хмарних сервісів працюють як автономні блоки,
що не об’єднані в єдину мережу. Це ускладнює управління безпекою для
великих об’єктів або розгалужених інфраструктур (наприклад, офісних
комплексів, промислових зон або мереж магазинів). Хмарні рішення
дозволяють централізовано контролювати та аналізувати дані з усіх систем
сигналізації, встановлених на різних об’єктах. [15]
Системи без хмарної інтеграції вимагають встановлення потужного
локального обладнання для обробки даних і зберігання інформації. Це не лише
збільшує початкові витрати, але й потребує регулярного обслуговування та
оновлення. Використання хмарних сервісів дозволяє знизити ці витрати, адже
обробка і зберігання даних здійснюються на віддалених серверах.
Системи, що працюють без хмарних технологій, є більш уразливими до
технічних збоїв. У разі відмови локального обладнання користувачі втрачають
доступ до даних і функцій системи до моменту усунення несправності. Хмарні
рішення забезпечують резервне копіювання та зберігання даних, що дозволяє
швидко відновити роботу системи після збою.
Застарілі системи сигналізації мають обмежені можливості для
розширення та модернізації. Наприклад, додавання нових датчиків або
інтеграція з іншими системами безпеки вимагають значних змін у локальній
інфраструктурі. Хмарні платформи пропонують гнучке масштабування, що
дозволяє швидко додавати нові функції та пристрої без значних технічних
змін. Модернізація систем сигналізації з впровадженням хмарних технологій
дозволяє значно підвищити їхню ефективність, гнучкість і надійність,
забезпечуючи відповідність сучасним стандартам безпеки.
Інтеграція систем сигналізації з хмарними рішеннями є важливим
кроком для підвищення їхньої ефективності, гнучкості та надійності. Однак
42
для успішної роботи з хмарними платформами необхідно перейти на сучасні
протоколи передачі даних, такі як MQTT, які забезпечують швидку, безпечну
та стабільну комунікацію.
MQTT (Message Queuing Telemetry Transport) ‒ це легкий протокол
передачі даних, розроблений спеціально для пристроїв з обмеженими
ресурсами та для роботи в нестабільних мережах. Він став стандартом для
Інтернету речей (IoT) і чудово підходить для інтеграції систем сигналізації з
хмарними сервісами. [9,15,20]
Перехід на MQTT та інші сучасні протоколи (наприклад, HTTPS,
AMQP) дає системам сигналізації такі переваги:
 Забезпечує передачу інформації в режимі реального часу;
 Надійність зв’язку у випадку перебоїв у мережі, дані не будуть
втрачені;
 Сучасні протоколи легко адаптуються до нових хмарних
платформ і сервісів;
 Шифрування даних захищає систему від перехоплення або
несанкціонованого доступу.
Інтеграція з хмарними рішеннями є ключовою для підвищення
функціональності та ефективності систем сигналізації. Для цього необхідно
перейти на сучасні протоколи, такі як MQTT, які забезпечують стабільну,
безпечну та ефективну передачу даних. Незважаючи на початкові витрати на
оновлення інфраструктури, цей перехід дозволить системам сигналізації
відповідати сучасним вимогам та адаптуватися до майбутніх викликів. [23]
Для ефективної інтеграції систем сигналізації з хмарними технологіями
недостатньо лише перейти на сучасні протоколи, такі як MQTT. Важливо
також обрати хмарний сервіс, який підтримує цей протокол і надає
відповідний набір функцій для безпечної та ефективної роботи системи.
Не всі хмарні платформи забезпечують роботу з MQTT. Обраний сервіс
повинен мати інтегровану підтримку цього протоколу, щоб забезпечити
швидкий і надійний обмін даними між пристроями та хмарою. MQTT працює
43
за моделлю "публікація-підписка", що дозволяє системі передавати та
отримувати повідомлення в реальному часі з мінімальною затримкою.
Для забезпечення надійної інтеграції систем сигналізації з хмарними
платформами одним із найкращих рішень є використання AWS IoT Core. Ця
платформа від Amazon Web Services надає повну підтримку протоколу MQTT
і пропонує широкий набір інструментів для побудови сучасної, безпечної та
масштабованої інфраструктури. [15,18-20]
AWS IoT Core дозволяє обробляти мільйони одночасних з'єднань, що
робить його ідеальним для масштабних систем сигналізації. Платформа
автоматично масштабується в міру зростання кількості пристроїв або обсягу
даних, що гарантує стабільну роботу навіть за високого навантаження.
[15,17,21]
AWS має розгалужену мережу дата-центрів по всьому світу, що
забезпечує високу доступність сервісів і мінімізує затримки. Крім того,
платформа автоматично створює резервні копії даних, що гарантує їхню
збереженість навіть у разі збою.
AWS IoT Core є ідеальним вибором для інтеграції систем сигналізації з
хмарними рішеннями. Ця платформа забезпечує надійність, масштабованість
і безпеку, що дозволяє створювати сучасні та ефективні системи, які
відповідають найвищим стандартам індустрії. [14,16]
Щоб наочно продемонструвати переваги інтеграції систем сигналізації
з хмарними сервісами, необхідно розробити прототип системи сигналізації та
хмарної платформи, яка буде її обслуговувати. Такий підхід дозволить оцінити
ефективність, надійність і масштабованість сучасної архітектури в реальних
умовах.
Вибір мікроконтролера є одним із ключових етапів розробки системи
сигналізації, оскільки саме він відповідає за збір, обробку і передачу даних від
датчиків. Серед великої кількості доступних рішень, ESP32 виділяється як
ідеальний варіант для цієї задачі.
44
ESP32 ‒ це потужний і багатофункціональний мікроконтролер,
розроблений компанією Espressif Systems, який має такі ключові
характеристики:
 Двоядерний процесор забезпечує високу продуктивність і
дозволяє виконувати кілька завдань одночасно;
 Вбудована підтримка Wi-Fi та Bluetooth ідеально підходить для
бездротової передачі даних;
 Низьке енергоспоживання забезпечує тривалу роботу від батареї,
що важливо для автономних пристроїв;
 Підтримка аналогових і цифрових входів/виходів, I2C, SPI, UART,
що дозволяє підключати різноманітні датчики.
ESP32 підтримує Wi-Fi, що дозволяє безпосередньо передавати дані до
хмарного сервісу через протокол MQTT. Це спрощує архітектуру системи та
забезпечує швидкий і надійний обмін інформацією з хмарою.
Bluetooth Low Energy (BLE) може бути використаний для локальної
конфігурації або комунікації з іншими пристроями, наприклад, смартфонами.
Двоядерний процесор забезпечує достатню потужність для обробки
даних з кількох датчиків одночасно. Один ядро можна використовувати для
збору даних із сенсорів, а інше — для обробки та передачі цих даних у хмару.
Для систем сигналізації, які працюють на батареях або мають обмежене
джерело живлення, ESP32 пропонує різні режими енергозбереження,
включаючи Deep Sleep. Це дозволяє суттєво знизити споживання енергії, коли
система перебуває в стані очікування.
ESP32 є економічно вигідним рішенням. При цьому він підтримується
широкою спільнотою розробників, що забезпечує доступ до великої кількості
бібліотек, прикладів коду та документації. Це значно спрощує процес
розробки та інтеграції.
ESP32 ‒ це ідеальний вибір для створення системи сигналізації завдяки
поєднанню високої продуктивності, підтримки бездротового зв’язку, низького
45
енергоспоживання та доступності. Він дозволяє легко інтегрувати систему з
хмарними сервісами, забезпечуючи її гнучкість, надійність і масштабованість.
При розробці прототипу системи сигналізації для демонстрації її роботи
та інтеграції з хмарними сервісами важливо зосередитись на принципах
комунікації між системою та хмарним середовищем. Для цієї мети не
обов’язково вибирати конкретний датчик або тип пристрою, оскільки
головною метою є показати, як система передає дані, обробляє події та
взаємодіє з хмарним сервісом.
Для забезпечення комунікації між системою сигналізації та хмарним
середовищем буде використана стандартна мережа Інтернет. Це дасть змогу
інтегрувати систему сигналізації з потужними хмарними платформами,
використовуючи існуючу інфраструктуру без необхідності впровадження
складних або дорогих спеціалізованих мережевих рішень.
Для ефективної та надійної передачі даних між системою сигналізації та
хмарним середовищем буде використовуватися протокол MQTT. Цей
протокол оптимізований для передачі повідомлень у реальному часі через
мережу Інтернет і є дуже популярним для IoT-систем. [19]
У розробленій системі сигналізації комунікація буде здійснюватися
напряму з хмарним середовищем, без потреби в додаткових проміжних
системах або серверах. Це значно спрощує архітектуру та знижує витрати на
підтримку інфраструктури.
Система сигналізації, оснащена мікроконтролером, таким як ESP32,
буде безпосередньо з’єднуватися з хмарним сервісом, наприклад, через MQTT
протокол, що дозволяє передавати дані в реальному часі. Це означає, що
сигналізація буде передавати інформацію про події, такі як спрацьовування
датчиків руху, відкриття дверей чи детекція диму, безпосередньо в хмару для
подальшої обробки та зберігання.
Навіть при прямому з'єднанні між сигналізацією та хмарою,
забезпечується високий рівень безпеки. Шифрування даних під час передачі
за допомогою TLS/SSL гарантує конфіденційність та цілісність інформації.
46
Аутентифікація пристроїв забезпечує, що тільки авторизовані пристрої
можуть передавати дані в хмару, запобігаючи несанкціонованому доступу.
Пряма комунікація між системою сигналізації та хмарним середовищем
дозволяє значно спростити архітектуру системи, знизити витрати на додаткову
інфраструктуру та забезпечити більш швидку та ефективну обробку даних. Це
робить систему більш гнучкою, масштабованою та економічно вигідною.
Для ефективної обробки даних, що надходять від системи сигналізації,
в хмарному середовищі необхідно використовувати серверне програмне
забезпечення, яке буде отримувати повідомлення з MQTT брокера. Це
дозволяє організувати централізовану обробку даних, моніторинг та
управління системою сигналізації.
У хмарному середовищі буде використовуватися спеціалізоване
серверне програмне забезпечення, яке підключатиметься до MQTT брокера та
оброблятиме отримані повідомлення. Це програмне забезпечення може
включати наступні функції:
 Сервер буде підключатися до MQTT брокера і отримувати
повідомлення про події, що виникають у системі сигналізації, як-от
спрацьовування датчиків;
 Сервер може обробляти отримані дані, наприклад, аналізувати
події, здійснювати порівняння з заданими порогами або фільтрувати
інформацію для подальших дій;
 Отримані повідомлення можуть бути збережені в базі даних для
подальшого аналізу або звітності;
 На основі отриманих даних сервер може надсилати сповіщення
користувачам через різні канали (email, push-повідомлення тощо) у разі
тривоги.
Для ефективної роботи системи сигналізації з хмарним середовищем
важливо використовувати серверне програмне забезпечення, яке
отримуватиме інформацію від MQTT брокера. Це програмне забезпечення
47
дозволить централізовано обробляти та зберігати дані, забезпечуючи високий
рівень масштабованості, безпеки та зручності в управлінні системою.
Для реалізації серверного програмного забезпечення, яке буде
отримувати та обробляти дані з MQTT брокера в хмарному середовищі,
Node.js є ідеальним вибором. Ця мова програмування володіє низкою переваг,
які роблять її ідеальною для розробки високопродуктивних і масштабованих
систем у реальному часі.
Node.js є ідеальним вибором для реалізації серверного програмного
забезпечення, яке буде отримувати інформацію з MQTT брокера в хмарному
середовищі. Його висока продуктивність, масштабованість і простота
інтеграції з хмарними платформами роблять його оптимальним рішенням для
створення ефективної та надійної системи сигналізації.
2.3 Висновки до розділу 2
Можна зробити висновок, що перехід від локальних серверів до хмарних
рішень є важливим кроком для забезпечення стабільності та відмовостійкості
в системах сигналізації, зокрема в GSM сигналізації.
Хмарні платформи, такі як AWS, Azure та Google Cloud, забезпечують
масштабованість, надійність і гнучкість, що є важливими для безперервної
роботи сервісів.
Взаємодія через протоколи, такі як MQTT, HTTP(S) та CoAP, дозволяє
ефективно обробляти повідомлення в реальному часі, що забезпечує швидку
реакцію систем на різні події.
Крім того, використання хмарних технологій дозволяє значно спростити
процес обслуговування та оновлення системи сигналізації. Інтеграція з
хмарними сервісами надає можливість централізованого моніторингу та
керування системою з будь-якої точки світу, що підвищує зручність
експлуатації та безпеку. Масштабованість хмарних рішень забезпечує
можливість швидкого збільшення потужностей системи у разі необхідності
48
без значних витрат на оновлення фізичної інфраструктури. Це особливо
важливо для адаптації систем до змінних умов та підвищення вимог до
безпеки.
49
РОЗДІЛ 3 ОПТИМІЗАЦІЯ МЕТОДІВ РОБОТИ СИСТЕМИ
СИГНАЛІЗАЦІЇ З ВИКОРИСТАННЯМ ХМАРНИХ
ТЕХНОЛОГІЙ AWS
3.1 Структура системи
У рамках даної випускної кваліфікаційної роботи, з метою
продемонструвати принцип роботи сучасних систем сигналізації,
інтегрованих з хмарними технологіями було розроблено систему сигналізації.
Розроблену систему сигналізації можна поділити на кілька модулів,
кожен з яких є незалежним і виконує свою специфічну роль у загальній
архітектурі системи. Така модульна структура дозволяє забезпечити високу
гнучкість та масштабованість системи, адже кожен модуль може бути окремо
налаштований або вдосконалений без впливу на інші частини системи.
Наприклад, один модуль відповідає за збір та обробку даних від датчиків,
інший ‒ за передачу сигналів до хмарної платформи, а ще один ‒ за взаємодію
з користувачем через інтерфейс. Завдяки такому підходу кожен компонент
може бути самостійно оновлений чи змінений, що підвищує ефективність і
простоту обслуговування системи в цілому. Крім того, незалежність модулів
дозволяє легко інтегрувати нові функціональні можливості або адаптувати
систему під різні вимоги.
Система сигналізації поділяється на віртуальні та фізичні модулі.
Фізичний модуль є апаратною частиною системи, яка виконує конкретні
функції, такі як збирання даних від датчиків чи управління різними
пристроями. Кожен фізичний модуль може включати в себе кілька
віртуальних модулів, які відповідають за специфічні програмні функції, такі
як обробка сигналів, передача даних до хмарного середовища або взаємодія з
користувацьким інтерфейсом. Така архітектура дозволяє зберігати чітке
розмежування між апаратною та програмною частинами системи, а також
50
забезпечує гнучкість у налаштуванні та масштабуванні функціональності.
Завдяки такому поділу, система стає більш модульною, що полегшує її
розширення, обслуговування та адаптацію під різні умови експлуатації.
Система складається з таких фізичних модулів:
 Модуль хмарної інфраструктури;
 Модуль сигналізації
Модуль хмарної інфраструктури є ключовим елементом системи
сигналізації, оскільки відповідає за зберігання, обробку та доступ до даних
через Інтернет. Детально, цей модуль складається з кількох основних
складових. Він використовує хмарні сервіс Amazon Web Services для
зберігання даних. Всі сигнали та інформація, що надходять від фізичних
датчиків сигналізації, передаються в хмару для подальшої обробки та
збереження. Це дозволяє забезпечити надійність зберігання даних, їх резервне
копіювання та захист від втрат.
За допомогою різних хмарних сервісів, таких як обчислювальні інстанси
чи сервіси для обробки даних в реальному часі, модуль хмарної
інфраструктури здійснює аналіз отриманих сигналів. Це може включати
фільтрацію, сортування та інтерпретацію даних, виявлення аномалій чи
небезпечних ситуацій, таких як спрацювання датчика диму чи руху.
Хмарний модуль також включає веб-інтерфейс, через який користувачі
можуть здійснювати моніторинг стану системи сигналізації. Завдяки хмарній
платформі, доступ до цього інтерфейсу можна отримати з будь-якого
пристрою, підключеного до Інтернету. Інтерфейс дозволяє переглядати
історію подій, налаштовувати параметри сигналізації та отримувати
сповіщення про події в реальному часі.
Таким чином, модуль хмарної інфраструктури є важливим компонентом
системи сигналізації, який забезпечує обробку, зберігання і доступність даних
у реальному часі, а також інтеграцію з іншими системами для моніторингу та
управління. Опис структури системи зображено на рисунку 3.1.
51
Модуль хмарної інфраструктури
AWS RDS
AWS EC2
AWS S3
AWS
AWS IoT Core
CLOUDFRONT
Інтернет
Twilio (смс та
Модуль сигналізації телефонні дзвінки)
Рисунок 3.1 – Опис структури системи
Модуль сигналізації є фізичним компонентом системи, який відповідає
за виявлення небезпек, обробку сигналів від датчиків та передачу інформації
в хмару для подальшої обробки і зберігання.
52
Датчики і сенсори є ключовими компонентами модуля сигналізації,
оскільки саме вони відповідають за виявлення різноманітних небезпек у
приміщенні або на об'єкті. Ці пристрої здійснюють моніторинг навколишнього
середовища, зокрема фіксують такі параметри, як рух, температура, наявність
диму або газів, що може свідчити про загрозу. Датчики руху, наприклад,
використовують інфрачервоні технології або ультразвук для визначення
переміщення об'єктів у контрольованій зоні. Датчики диму здатні виявити
частинки, що виникають при горінні, і швидко реагувати на їх появу. Інші
типи датчиків, такі як датчики температури та газу, забезпечують контроль за
рівнем температури в приміщенні або виявляють небезпечні гази, які можуть
свідчити про витік або загрозу вибуху. Всі ці датчики працюють у тісній
взаємодії, надаючи систему сигналізації інформацією про потенційні
небезпеки, що дає змогу своєчасно реагувати на ситуацію та попереджати про
загрозу.
Обробка сигналів є критично важливим етапом у роботі системи
сигналізації, оскільки від неї залежить точність і ефективність реагування на
події, що виникають. Після того як датчики та сенсори фіксують певну подію
або зміну в навколишньому середовищі, зібрані сигнали передаються до
центрального блоку для подальшої обробки. Цей процес складається з кількох
етапів, які забезпечують правильну інтерпретацію даних та мінімізують
ймовірність хибних спрацьовувань.
Першим етапом є фільтрація сигналів. Датчики можуть виявляти
тимчасові або незначні зміни, які не є серйозними загрозами. Наприклад, деякі
датчики руху можуть реагувати на незначні коливання або зміни температури,
що не призводять до реальної небезпеки. Щоб уникнути хибних
спрацьовувань, система фільтрує слабкі сигнали або шукає певні шаблони, які
свідчать про справжнє виникнення небезпеки.
Другим етапом є аналітика сигналів. Після фільтрації сигналів система
проводить більш глибоке аналізування даних, щоб визначити, чи дійсно є
підстави для тривоги. Наприклад, датчик диму може відразу передавати
53
сигнал про появу диму, але система також перевіряє, чи цей сигнал пов'язаний
із реальною загрозою, або ж він може бути результатом короткочасного
підвищення вологості чи іншого тимчасового явища. Обробка сигналів може
включати в себе коригування порогових значень для різних типів датчиків,
щоб досягти оптимальної чутливості.
Далі відбувається етап прийняття рішень. Після того як сигнал був
проаналізований, система оцінює його важливість і приймає рішення про
подальші дії. Якщо виявлено реальну загрозу, система може автоматично
активувати сигналізацію, включити сирену, увімкнути освітлення для
залучення уваги або виконати інші заходи. Якщо ж сигнал не підтвердився,
система знову переходить у спокійний режим. Прийняття рішень також може
включати логічні оператори, які дозволяють комбінувати кілька сигналів
(наприклад, спрацьовування датчика диму та температури) для підвищення
точності визначення небезпеки.
Важливим елементом обробки сигналів є обробка в реальному часі.
Система сигналізації повинна реагувати швидко, тому всі процеси, від
фільтрації до прийняття рішень, здійснюються миттєво або в межах декількох
мілісекунд. Це дає змогу оперативно реагувати на ситуації, коли кожна
секунда може бути важливою, наприклад, у випадку пожежі або витоку газу.
Обробка сигналів також включає в себе моніторинг і відправку даних в
хмарну інфраструктуру для подальшого зберігання та аналізу. Після того як
сигнал був оброблений і система прийняла відповідне рішення, дані про подію
можуть бути відправлені до хмари, де зберігаються всі історичні записи про
події, що дозволяє проводити аналіз і створювати звіти про роботу системи.
Це також забезпечує можливість віддаленого моніторингу і керування
системою через веб-інтерфейс або мобільний додаток.
Таким чином, обробка сигналів в системі сигналізації є складним
процесом, що включає кілька етапів ‒ від фільтрації і аналізу даних до
прийняття рішень і передачі результатів в хмару. Цей процес дозволяє
забезпечити точність і надійність системи, а також мінімізувати кількість
54
хибних спрацьовувань, що є важливим для ефективності роботи системи
сигналізації.
Комунікація між фізичними модулями системи сигналізації
здійснюється з використанням протоколу MQTT (Message Queuing Telemetry
Transport). Цей легкий протокол обміну повідомленнями, орієнтований на
ефективну передачу даних у реальному часі, ідеально підходить для
застосування в системах з обмеженими ресурсами, таких як IoT-пристрої.
MQTT працює за принципом "публікація-підписка", що дозволяє
фізичним модулям передавати дані без необхідності прямого з'єднання між
ними. Кожен модуль може бути підписаний на певні теми (наприклад, дані від
конкретного датчика), і при спрацюванні події або зміни стану датчика,
модуль автоматично публікує повідомлення на відповідну тему. Інші модулі,
які підписані на цю тему, отримують повідомлення і можуть відповідно
реагувати на подію, наприклад, передаючи сигнал в хмару або активуючи
відповідні механізми сигналізації.
Такий підхід дозволяє забезпечити гнучкість і масштабованість системи,
оскільки нові модулі можна легко додавати, підключаючи їх до існуючої
інфраструктури без необхідності кардинальних змін у архітектурі системи.
ПротоколMQTT також забезпечує низьку затримку при передачі повідомлень,
що є важливим для швидкого реагування на критичні події, а також гарантує
ефективне використання мережевих ресурсів при обміні даними між
модулями.
Завдяки можливостям AWS, налаштування взаємодії MQTT з серверним
програмним забезпеченням стає простим і ефективним процесом. AWS надає
потужні інструменти та сервіси, які значно спрощують впровадження MQTT
у масштабованих і надійних системах.
Одним із таких сервісів є AWS IoT Core, який спеціально розроблений
для підключення IoT-пристроїв та ефективної роботи з протоколом MQTT.
Цей сервіс дозволяє легко налаштувати публікацію та підписку на теми,
керувати з'єднаннями пристроїв і забезпечувати безпечну передачу даних між
55
фізичними модулями системи сигналізації та сервером. AWS IoT Core
забезпечує надійну доставку повідомлень навіть в умовах з перебоями зв'язку,
гарантуючи, що важливі дані не будуть втрачені.
Також AWS надає вбудовані функції для авторизації та аутентифікації,
що дозволяє захистити з'єднання між пристроями та сервером, а також
запобігти несанкціонованому доступу до системи. Завдяки інтеграції з іншими
сервісами AWS, такими як AWS Lambda для обробки даних або Amazon S3
для зберігання, можна легко реалізувати серверну логіку для обробки сигналів
і збереження історії подій.
Інтеграція MQTT з серверним програмним забезпеченням через AWS
забезпечує гнучкість, масштабованість та високу доступність системи,
дозволяючи ефективно управляти даними, отриманими від IoT-пристроїв, та
забезпечити їх надійну обробку і передачу.
Основною особливістю використання хмарних технологій, зокрема
AWS, є здатність забезпечити високу стійкість системи до можливих
стихійних і технологічних проблем. Завдяки інфраструктурі, побудованій на
принципах масштабованості, надійності та безпеки, AWS дозволяє
створювати системи, які можуть витримувати навантаження та
непередбачувані ситуації.
WS надає можливості для автоматичного масштабування ресурсів, що
дозволяє системі адаптуватися до змін у навантаженні без втрати
продуктивності. У разі технологічних збоїв або неполадок, хмарні сервіси
автоматично перерозподіляють робоче навантаження на доступні ресурси,
забезпечуючи безперервну роботу системи.
Також, завдяки розподіленій архітектурі та глобальній мережі дата-
центрів, можна забезпечити високу доступність системи навіть в умовах
стихійних лих або інших кризових ситуацій. Данні можуть бути збережені в
різних географічних регіонах, що дозволяє захистити їх від локальних
проблем, таких як відключення електроенергії, природні катастрофи або інші
аварії.
56
Таким чином, хмарні технології AWS додають системі додатковий
рівень надійності, стійкості та безпеки, що дозволяє мінімізувати ризики,
пов'язані з можливими технічними чи природними катастрофами, і
забезпечити безперервну роботу навіть у найскладніших умовах.
Хмарна система на базі AWS також дає можливість налаштувати
клієнтський веб-додаток з використанням Amazon S3 та CloudFront, що
забезпечує ефективне зберігання та доставку контенту користувачам.
Amazon S3 (Simple Storage Service) дозволяє зберігати статичні файли
веб-додатка, такі як HTML, CSS, JavaScript, зображення та інші ресурси.
Завдяки високій доступності та масштабованості S3, ці файли можуть бути
доступні в будь-який час і з будь-якої точки світу. Крім того, S3 забезпечує
надійне зберігання даних і можливість автоматичного резервного копіювання.
Amazon CloudFront, у свою чергу, є мережею доставки контенту (CDN),
яка дозволяє швидко доставляти веб-ресурси користувачам, розташованим в
різних географічних точках. CloudFront розподіляє вміст через глобальні
точки присутності (PoP), що значно знижує затримки та підвищує швидкість
завантаження веб-додатка, незалежно від місцезнаходження користувача.
Інтеграція S3 та CloudFront дозволяє створити швидкий, масштабований
і надійний веб-додаток, що може обслуговувати великий обсяг трафіку без
втрати продуктивності. Таким чином, хмарна система на базі AWS дозволяє
зручно налаштувати інфраструктуру для клієнтських веб-додатків,
забезпечуючи їх ефективну роботу та надійне масштабування.
Всі вищезазначені підходи, що включають використання хмарних
технологій, протоколу MQTT для комунікації між модулями, а також
інтеграцію з такими сервісами, як AWS IoT Core, S3 та CloudFront, дозволяють
максимально спростити спосіб роботи системи сигналізації. Це дає змогу
значно підвищити її ефективність та зручність у використанні, одночасно
забезпечуючи високу доступність і стабільність роботи навіть в умовах
непередбачених ситуацій.
57
Завдяки хмарній інфраструктурі та автоматизованим процесам
налаштування і масштабування, система стає більш стійкою до збоїв, що
гарантує відмовостійкість для користувачів системи. Це означає, що навіть у
разі технічних проблем або стихійних лих, система продовжить працювати
без значних перерв у обслуговуванні.
Крім того, завдяки використанню таких сервісів, як AWS, зменшується
потреба у складному і дорогому апаратному забезпеченні, що значно знижує
вартість обслуговування системи. Масштабованість і автоматизація також
дозволяють зменшити витрати на управління і моніторинг, а інтеграція з
хмарними рішеннями полегшує налаштування і підтримку системи. Все це
дозволяє створити економічно ефективну та надійну систему сигналізації з
мінімальними витратами на обслуговування та високим рівнем надійності для
кінцевих користувачів.
3.2 Опис функцій системи
Основною функцією розробленої системи є забезпечення безпеки
приміщення. Система сигналізації покликана своєчасно виявляти та реагувати
на різноманітні загрози, такі як несанкціоноване проникнення, пожежі, витоки
газу або зміни в навколишньому середовищі, що можуть загрожувати безпеці
людей і майна. Завдяки інтеграції з хмарними технологіями та використанню
сучасних датчиків і сенсорів, система може оперативно відправляти
сповіщення про небезпеку до користувачів та відповідних служб,
забезпечуючи швидке реагування на ситуацію.
Це дозволяє не лише своєчасно запобігти можливим катастрофам, а й
підтримувати постійний моніторинг стану приміщення, гарантує надійний
захист від несанкціонованого доступу та мінімізує ризики, пов'язані з
техногенними або природними катастрофами. Розроблена система
сигналізації забезпечує високий рівень безпеки, надаючи користувачам спокій
та впевненість у захищеності їхнього майна.
58
Розроблена система дозволяє легко додавати різні типи пристроїв,
зокрема системи сигналізації та різноманітні датчики, що дає можливість
масштабувати систему відповідно до змінюваних потреб користувачів.
Користувачі можуть підключати різні типи сигналізацій, такі як сирени або
світлові індикатори, а також встановлювати різноманітні датчики, включаючи
датчики руху, диму, температури, газу та інші.
Це дозволяє налаштувати систему відповідно до конкретних вимог
об'єкта, створюючи гнучку і адаптовану до різних умов систему безпеки.
Завдяки можливості додавання нових пристроїв, система зберігає свою
ефективність навіть при зміні чи розширенні об'єкта, забезпечуючи
максимальний рівень захисту та безпеки.
На даний момент для реалізації системи розроблено систему сигналізації
на базі ESP32, яка виконує кілька ключових функцій. Ця система отримує дані
з різноманітних датчиків, таких як датчики руху, температури, диму та інші,
аналізує їх у реальному часі для виявлення потенційних загроз і ситуацій, що
потребують реагування. Після обробки даних система генерує звіти про
виявлені події та передає їх у хмарне середовище для подальшого зберігання,
моніторингу та аналізу.
Використання ESP32 дозволяє створити ефективне рішення, яке
забезпечує високу швидкість обробки даних і надійний зв'язок між датчиками
та сервером. Це дозволяє оперативно реагувати на зміни у навколишньому
середовищі та надсилати повідомлення в реальному часі, що є важливим для
забезпечення безпеки об'єкта. Хмарне середовище гарантує збереження даних
і можливість віддаленого доступу для моніторингу та управління системою.
Маючи два ядра, розроблена сигналізація на базі ESP32 може одночасно
виконувати кілька завдань, не блокуючи процеси. Одне ядро відповідає за
отримання та обробку даних від датчиків, аналізуючи сигнали на наявність
загроз або аномалій, тоді як інше ядро займається відправкою даних в хмарне
середовище або до інших підключених пристроїв. Така архітектура дозволяє
59
системі працювати ефективно та без затримок, забезпечуючи безперервну
обробку інформації і миттєве реагування на зміни в середовищі.
Такий підхід дозволяє уникнути ситуацій, коли обробка даних або
передача повідомлень могла б призвести до зниження продуктивності або
затримок у реакції системи, що особливо важливо для критичних застосувань,
де час має вирішальне значення для забезпечення безпеки.
Для системи було також розроблено серверний додаток на мові
програмування Node.js, який виконує кілька важливих функцій. Цей додаток
збирає дані, що надходять від сигналізацій, аналізує їх і зберігає на сервері або
в хмарному середовищі для подальшого використання. Завдяки використанню
Node.js, серверний додаток може обробляти великі обсяги даних у реальному
часі, забезпечуючи високу продуктивність і масштабованість.
Node.js, завдяки своїй асинхронній архітектурі, дозволяє ефективно
обробляти численні запити одночасно без блокувань, що є важливим для
системи, яка постійно отримує нові дані від пристроїв сигналізації. Аналіз
даних здійснюється без затримок, що дозволяє швидко виявляти аномалії або
загрози. Зібрані дані зберігаються на сервері або в хмарному середовищі, що
гарантує їхню безпеку та доступність для подальшого аналізу або
використання в звітності.
У разі виявлення протиправних дій або спрацювання датчиків, система
сигналізації може приймати різні рішення для оперативного реагування.
Одним з таких рішень є відправка push-нотифікацій клієнтам, що дозволяє
негайно інформувати користувачів про події, які потребують уваги, такі як
несанкціоноване проникнення або інші загрози. Push-нотифікації
забезпечують швидке сповіщення на мобільні пристрої користувачів, що
дозволяє їм оперативно оцінити ситуацію та вжити необхідних заходів.
Окрім цього, система також може виконувати дзвінок на мобільний
телефон відповідальних осіб або користувачів, що дає змогу ще швидше
повідомити про виникнення надзвичайної ситуації. Такий підхід забезпечує
60
високий рівень реагування та дозволяє користувачам бути в курсі подій навіть
за відсутності доступу до інтернету або мобільного додатку.
Для відправки push-нотифікацій у системі використовується AWS
Pinpoint, що є потужним сервісом від AWS для доставки повідомлень
користувачам. Цей сервіс інтегрований з WEB додатком і дозволяє ефективно
надсилати повідомлення про важливі події, такі як спрацьовування датчиків
або виявлення протиправних дій. AWS Pinpoint надає можливість відправки
персоналізованих push-нотифікацій на мобільні пристрої та веб-браузери, що
гарантує своєчасне сповіщення користувачів про події, які потребують їх
уваги.
Інтеграція з веб-додатком дозволяє зручно налаштувати процеси
повідомлення, забезпечуючи надійну доставку та можливість масштабування
в разі великої кількості користувачів. AWS Pinpoint також забезпечує
аналітику та статистику щодо доставки повідомлень, що дозволяє покращити
взаємодію з користувачами і забезпечити високий рівень обслуговування.
Зовнішній вигляд списку пристроїв системи зображено на рисунку 3.2
Рисунок 3.2 – Список пристроїв системи
61
Для виконання дзвінків у системі використовується сервіс Twilio, який
є міжнародним лідером у галузі комунікаційних технологій. Twilio надає
потужні можливості для інтеграції голосових дзвінків та текстових
повідомлень у додатки, що дозволяє здійснювати дзвінки на мобільні
телефони користувачів у разі виявлення протиправних дій або спрацьовування
датчиків.
Цей сервіс забезпечує високу надійність та якість дзвінків, підтримує
глобальне покриття, що дозволяє здійснювати дзвінки в різні країни без
додаткових складнощів. Інтеграція з Twilio дозволяє системі сигналізації
швидко і ефективно повідомляти користувачів через голосові дзвінки,
забезпечуючи ще один канал для негайного інформування про надзвичайні
ситуації.
У розробленій системі є система управління користувачами, яка
дозволяє гнучко налаштовувати доступ до різних функцій та можливостей
сигналізації. Користувачі можуть бути підключені до певної сигналізації та
отримувати доступ до її налаштувань або статусу, залежно від їхніх ролей.
Кожен користувач може мати певну роль, що визначає його права в
системі. Наприклад, можуть бути доступні ролі, такі як адміністратор, який
має повний доступ до налаштувань і управління сигналізацією, або
користувач, який може тільки отримувати сповіщення про події. Це дозволяє
ефективно розподіляти обов'язки та забезпечувати безпеку, контролюючи
доступ до важливої інформації та функцій системи.
Система управління користувачами дає змогу налаштовувати, хто має
право змінювати налаштування сигналізації, моніторити її стан та отримувати
сповіщення, забезпечуючи тим самим високий рівень персоналізації та
безпеки для кожного користувача в межах конкретної сигналізації.
Фізичні користувачі сигналізацій мають спеціальні RFID ключі, які
використовуються для включення та виключення сигналізації. Система
дозволяє користувачам з відповідними RFID ключами здійснювати доступ до
сигналізації, що забезпечує зручний та безпечний спосіб управління системою
62
без необхідності вводити паролі або використовувати інші засоби
автентифікації.
Користувачі можуть просто піднести свій RFID ключ до спеціального
зчитувача, і система автоматично виконує команду на включення або
виключення сигналізації, залежно від налаштувань користувача та його ролі.
Цей підхід підвищує рівень безпеки, оскільки тільки авторизовані особи
можуть керувати системою сигналізації, і знижує ризик несанкціонованого
доступу.
Використання RFID ключів дає можливість не лише керувати
сигналізацією, але й ідентифікувати особу, що здійснює доступ до системи.
Кожен RFID ключ має унікальний ідентифікатор, що дозволяє системі
визначити, хто саме активує чи деактивує сигналізацію. Це важливо для
забезпечення високого рівня безпеки та точності обробки подій.
Ідентифікація особи за допомогою RFID ключа дає змогу відправляти
правильні push-нотифікації усім користувачам системи, враховуючи їх ролі та
налаштування доступу. Наприклад, якщо сигналізація була деактивована або
виявлена підозріла активність, система може надіслати сповіщення
відповідним користувачам, таким як адміністратори або інші авторизовані
особи, інформуючи їх про події, що вимагають уваги. Це дозволяє забезпечити
точність у передачі інформації та швидке реагування на можливі загрози.
Для доступу до WEB додатка користувачам необхідно авторизуватися в
систему. Система авторизації використовує зв'язку логіна та пароля, які
видаються адміністратором системи. Логін та пароль надаються кожному
користувачу індивідуально, що забезпечує захист від несанкціонованого
доступу та гарантує, що тільки авторизовані особи можуть увійти в систему.
Система авторизації користувачів зображена на рисунку 3.3.
63
Рисунок 3.3 – Система авторизації користувачів
Під час процесу авторизації користувач вводить свої облікові дані, які
перевіряються системою на відповідність, і в разі успішної перевірки,
користувач отримує доступ до функціоналу веб-додатку. Цей підхід дозволяє
здійснювати контроль за доступом до системи, забезпечуючи високий рівень
безпеки та захисту інформації.
Адміністратор системи має можливість виконувати адміністрування
системи напряму в AWS акаунті, без необхідності в спеціальному
програмному забезпеченні. Завдяки використанню інтерфейсу AWS
Management Console, адміністратор може керувати всіма компонентами
системи, такими як налаштування хмарної інфраструктури, моніторинг
ресурсів, управління доступом користувачів, налаштування безпеки та
масштабування сервісів.
Це дозволяє адміністраторам здійснювати налаштування та управління
системою через інтуїтивно зрозумілий веб-інтерфейс, що значно спрощує
процес адміністрування і знижує потребу в додаткових інструментах або
програмному забезпеченні. Тому адміністратор може безперешкодно керувати
64
всіма аспектами роботи системи без додаткових витрат на підтримку
сторонніх засобів.
3.3 Забезпечення захисту інформації при роботі зі створеною
системою
Піклування про захист систем під час розробки програмного
забезпечення є критично важливим аспектом, що безпосередньо впливає на
безпеку даних, надійність і стабільність роботи системи в майбутньому. Під
час розробки програмного забезпечення, особливо для складних та чутливих
систем, таких як система сигналізації, важливо враховувати різні аспекти
захисту на кожному етапі розробки, щоб запобігти можливим загрозам та
вразливостям.
Захист даних є першочерговим завданням. Програмне забезпечення
повинно забезпечувати захист від несанкціонованого доступу, зловмисних
атак і витоків інформації. Це включає в себе використання шифрування для
передачі даних, надійні методи аутентифікації та авторизації користувачів, а
також правильне управління доступом. Захист даних є особливо важливим у
випадку чутливої інформації, наприклад, персональних даних користувачів
або інформації про події в системах сигналізації.
Ідентифікація та автентифікація користувачів також є важливим
аспектом. Використання надійних механізмів для перевірки особи, таких як
паролі, двофакторна аутентифікація або спеціальні RFID ключі, допомагає
гарантувати, що лише авторизовані особи мають доступ до системи. Це
захищає систему від несанкціонованого доступу, що може призвести до
серйозних наслідків.
Протидія зловмисним атакам також має велике значення. Вразливості в
програмному забезпеченні можуть бути використані хакерами для атак, таких
як SQL-ін'єкції, крос-сайтові скрипти (XSS) або атаки відмови в
65
обслуговуванні (DoS). Ретельне тестування коду, аудит безпеки та своєчасне
виправлення вразливостей допомагають мінімізувати ризик таких атак.
Крім того, постійний моніторинг системи після розгортання важливий
для виявлення потенційних загроз на ранніх етапах. Включення логування,
моніторингу подій безпеки та регулярні оновлення програмного забезпечення
допомагають підтримувати систему в актуальному стані, забезпечуючи її
захищеність від нових загроз.
Загалом, піклування про захист систем під час розробки програмного
забезпечення дозволяє створити надійні та безпечні рішення, що забезпечують
конфіденційність, цілісність та доступність даних, а також мінімізують
можливість негативного впливу на користувачів та організації.
В охоронних системах, а саме тих, які працюють з хмарним
середовищем, важливість захисту та безпеки стає ще більш очевидною та
критичною. Оскільки такі системи обробляють великий обсяг чутливої
інформації, включаючи дані про події в реальному часі, стан сигналізації, а
також персональні дані користувачів, вони повинні бути захищені від
різноманітних загроз та атак.
Основними викликами в охоронних системах, які інтегруються з
хмарним середовищем, є забезпечення безпеки передачі даних між
пристроями сигналізації та хмарними сервісами. Всі дані, що передаються
через Інтернет, повинні бути шифровані за допомогою сучасних методів
криптографії, щоб запобігти їх перехопленню або зміненню зловмисниками.
Особливу увагу слід приділяти захисту хмарної інфраструктури, де
зберігаються важливі дані про систему сигналізації. Це включає в себе
налаштування міжмережевих екранів (firewalls), контроль доступу та
регулярні оновлення безпеки для забезпечення захисту від відомих
вразливостей. Хмарні сервіси повинні підтримувати можливості
автентифікації та авторизації, щоб переконатися, що тільки уповноважені
користувачі мають доступ до критичних функцій системи.
66
У таких системах, де важливість оперативного реагування на
спрацювання сигналізації є високою, також необхідно мати надійні механізми
для захисту від DDoS атак та інших видів відмов у обслуговуванні, щоб
гарантувати стабільну роботу сервісів навіть у випадку атаки.
Крім того, моніторинг безпеки в реальному часі є важливим
компонентом таких охоронних систем. Регулярне сканування на наявність
вразливостей, аудит доступу та постійне оновлення безпекових політик
допомагають своєчасно виявляти потенційні загрози.
Розроблена система під час передачі даних у хмарне середовище за
допомогою протоколу MQTT забезпечує високий рівень безпеки,
використовуючи алгоритм шифрування AES-256. Цей алгоритм є одним із
найнадійніших стандартів симетричного шифрування, який широко
застосовується для захисту даних у чутливих системах.
Шифрування повідомлень перед їх відправкою гарантує, що навіть у
випадку перехоплення даних зловмисниками вони залишаться недоступними
для розшифрування без відповідного ключа. Це забезпечує конфіденційність
переданої інформації, а також захищає систему від ризику витоку даних.
Використання AES-256 дозволяє системі відповідати сучасним вимогам
до безпеки, забезпечуючи захист даних як під час їх передачі, так і під час
зберігання в хмарному середовищі. Це гарантує надійність і безпеку всієї
системи сигналізації навіть в умовах потенційних кіберзагроз.
Ключ шифрування, необхідний для роботи алгоритму AES-256,
зберігається як у модулі сигналізації, так і в хмарному середовищі. Такий
підхід дозволяє забезпечити ефективну реалізацію шифрування і
розшифрування даних, що передаються між фізичними модулями та хмарною
інфраструктурою.
Зберігання ключа в модулі сигналізації гарантує, що дані шифруються
ще на пристрої, перед їх передачею через MQTT протокол. З іншого боку,
збереження ключа в хмарному середовищі забезпечує можливість безпечної
розшифровки даних на стороні сервера. Це дозволяє системі дотримуватися
67
високих стандартів безпеки, захищаючи дані від несанкціонованого доступу
під час їх передачі та обробки.
Такий підхід забезпечує не тільки конфіденційність і цілісність даних,
але й дозволяє дотримуватися принципу розподіленого зберігання ключів, що
підвищує загальну стійкість системи до можливих атак.
Користувачі системи використовують RFID-технологію, яка гарантує
високий рівень безпеки при доступі до приміщення. Кожен RFID ключ має
унікальний ідентифікатор, який неможливо підробити або скопіювати без
спеціального обладнання. Це забезпечує надійний контроль доступу, оскільки
тільки авторизовані користувачі можуть активувати або деактивувати систему
сигналізації.
Система автоматично розпізнає ідентифікатор RFID ключа, перевіряючи
його відповідність у базі даних користувачів. У разі позитивної перевірки
надається доступ або виконується відповідна дія, як-от вимкнення
сигналізації. Такий підхід дозволяє мінімізувати ризики несанкціонованого
доступу, забезпечуючи конфіденційність і надійність у роботі системи
доступу.
Інформацію про стан системи може отримати лише авторизований
користувач. Для доступу до системи користувач повинен пройти процедуру
авторизації за допомогою логіна і пароля. Це забезпечує високий рівень
безпеки, оскільки лише особи з дійсними обліковими даними можуть
отримати доступ до критичних функцій системи.
Пароль користувача зберігається в базі даних у вигляді хешу, що
гарантує його безпеку навіть у випадку компрометації бази. Хешування
виконується із застосуванням сучасних криптографічних алгоритмів, таких як
bcrypt або SHA-256 із сольовим значенням, що унеможливлює відновлення
оригінального пароля навіть при доступі до хешів.
Цей підхід забезпечує конфіденційність облікових даних та знижує
ризик несанкціонованого доступу до системи, роблячи її захищеною від
потенційних атак, таких як злом пароля або підбір облікових даних.
68
Виходячи з усього зазначеного, можна зробити висновок, що розроблена
система має надійну систему безпеки. Вона забезпечує захист даних і доступу
на всіх рівнях, гарантує конфіденційність інформації та дозволяє
користувачам безпечно взаємодіяти із системою. Завдяки багаторівневому
підходу до безпеки система стійка до можливих загроз і несанкціонованого
доступу, забезпечуючи надійне функціонування та захист даних.
3.4 Технічні вимоги для роботи з системою
Технічні вимоги для роботи системи ‒ це сукупність умов,
характеристик і параметрів, яким повинні відповідати апаратні та програмні
компоненти для забезпечення коректного функціонування розробленої
системи. Вони визначають мінімальні та рекомендовані ресурси, необхідні
для встановлення, налаштування та експлуатації системи, включаючи
обчислювальну потужність, обсяг пам’яті, мережеву інфраструктуру,
програмне забезпечення та інші технологічні складові.
Для розробленої системи важливо визначити технічні вимоги, необхідні
для її функціонування. Це дозволяє забезпечити оптимальну роботу всіх
компонентів системи, від апаратного забезпечення до хмарної інфраструктури
та клієнтського програмного забезпечення. Правильно сформульовані технічні
вимоги дають змогу гарантувати стабільність, продуктивність і безпеку
системи, а також полегшують її інтеграцію в існуючі середовища.
Для функціонування системи необхідно забезпечити стабільне з'єднання
з мережею Інтернет. Хоча система не потребує високої пропускної здатності,
мінімальна швидкість передачі даних повинна становити 2-3 Мбіт/сек. Це
забезпечує своєчасну передачу даних між модулями системи та хмарним
середовищем, гарантуючи коректну роботу навіть за умов обмеженого
доступу до мережевих ресурсів.
Для зменшення вартості системи можна використовувати 3G модеми
від національних провайдерів. Вони забезпечують необхідну швидкість
69
передачі даних на рівні 2-3 Мбіт/с, що є достатнім для коректного
функціонування системи. Це рішення дозволяє значно знизити витрати на
підключення до Інтернету, забезпечуючи при цьому стабільний зв'язок за
мінімальною вартістю. Такий підхід є особливо ефективним у регіонах, де
доступ до високошвидкісного Інтернету обмежений або фінансово
невигідний.
Для роботи сигналізації необхідно мати мережу Wi-Fi в приміщенні, де
встановлена система. Це забезпечує безперешкодну передачу даних між
пристроями сигналізації та хмарним середовищем. Наявність стабільного Wi-
Fi з'єднання є критично важливою для коректної роботи системи, оскільки
вона покладається на бездротову мережу для моніторингу та управління
сигналізацією в реальному часі.
Для забезпечення безперервної роботи системи можна також додати
безперебійник (UPS), який забезпечить безперервне живлення для Wi-Fi
маршрутизатора та модема (у випадку наявності). Це допоможе підтримати
стабільне з'єднання з мережею Інтернет у випадку, коли в приміщенні
пропадає світло, забезпечуючи безперебійне функціонування сигналізації та
передачу даних у хмарне середовище навіть під час перебоїв з
електропостачанням.
Сигналізація спроектована на базі мікроконтролера ESP32, однак
теоретично її можна адаптувати для використання й на інших
мікроконтроллерах. Важливо, щоб система відповідала наступним вимогам:
наявність 2 ядер та 520 кб оперативної пам'яті або більше. Це дозволяє
забезпечити достатню обчислювальну потужність для ефективної роботи
системи, обробки даних з датчиків та передачі інформації в хмарне
середовище без блокувань процесів.
Наявність 2 ядер в мікроконтролері необхідна для забезпечення
мультизадачності. Це дозволяє одночасно виконувати кілька задач, таких як
обробка даних з датчиків, комунікація з хмарним середовищем та управління
сигналізацією, без блокування процесів. Завдяки мультизадачності система
70
стає більш ефективною, швидкою та стійкою до збоїв, оскільки різні операції
можуть виконуватись паралельно, не впливаючи одна на одну.
Хмарне середовище, описане в даній роботі (AWS), є одним з можливих
варіантів побудови хмарної інфраструктури. Користувач системи може
розгорнути інфраструктуру й на інших хмарних сервісах, таких як Azure або
Google Cloud. Ці платформи також надають всі необхідні інструменти для
розгортання, управління та масштабування хмарних рішень, що дозволяє
користувачам вибирати найбільш підходящий варіант залежно від вимог,
бюджету та переваг у роботі з різними хмарними сервісами.
3.5 Оцінка ефективності застосування методів роботи системи
сигналізації з використанням хмарних технологій AWS
Оцінка ефективності ‒ це процес визначення ступеня досягнення
поставлених цілей та результатів у порівнянні з витраченими ресурсами, часом
чи іншими показниками. Вона дозволяє оцінити, наскільки ефективно
використовуються доступні ресурси для досягнення бажаних результатів, та є
важливим етапом у прийнятті рішень для оптимізації процесів, підвищення
продуктивності та зниження витрат. Оцінка ефективності може бути
проведена за різними критеріями, залежно від об'єкта аналізу (наприклад,
програмного продукту, бізнес-процесів чи технологічних рішень).
Основою перевагою використаних методів роботи системи сигналізації
є її хмарне рішення, яке забезпечує значні переваги як для користувачів, так і
для розробників системи.
Хмарна інфраструктура дозволяє системі бути масштабованою та
гнучкою. Завдяки використанню хмарних сервісів, таких як AWS, система
може автоматично масштабувати свої ресурси залежно від навантаження, що
робить її більш ефективною у випадку збільшення кількості користувачів або
підключених пристроїв. Це дозволяє уникнути необхідності у фізичних
71
серверах та інфраструктурі, зменшуючи витрати на апаратне забезпечення і
обслуговування.
Хмарне рішення забезпечує доступність та зручність використання.
Користувачі можуть отримувати доступ до системи з будь-якого місця через
інтернет, без необхідності інсталювати спеціальне програмне забезпечення на
своїх пристроях. Це зменшує складність налаштування та експлуатації
системи, забезпечуючи зручний доступ до її функцій в будь-який час.
Також хмарне середовище забезпечує високий рівень надійності та
безпеки. Завдяки інтеграції з такими сервісами, як шифрування даних, захист
від атак та резервне копіювання, система може гарантувати конфіденційність
і цілісність переданих даних. Важливою є також можливість відновлення після
збоїв, оскільки хмарні платформи зазвичай забезпечують механізми
аварійного відновлення і надійні системи зберігання даних.
Ще однією важливою перевагою є економічність. Хмарні сервіси
дозволяють зменшити витрати на фізичну інфраструктуру, обслуговування
серверів і оновлення програмного забезпечення. Користувачі можуть обирати
тільки необхідні ресурси і сплачувати лише за фактичне використання, що
дозволяє оптимізувати витрати на підтримку системи.
Таким чином, основною перевагою розробленої системи ‒ це хмарне
рішення, яке забезпечує масштабованість, доступність, надійність та
економічність. Ці характеристики дозволяють системі працювати з високою
ефективністю, знижуючи витрати на інфраструктуру та підвищуючи зручність
і безпеку для користувачів. Порівняння існуючих системи зображено в
таблиці 3.1.
Наведене вище порівняння існуючих систем показує, що використання
хмарного середовища позитивно впливає на роботу системи, особливо в
моменти, коли потрібно виконувати автоматичне збільшення продуктивності
або автоматичне відновлення після стихійного лиха. Хмарні сервіси
забезпечують гнучкість, дозволяючи автоматично масштабувати ресурси в
залежності від навантаження, що робить систему більш ефективною та
72
надійною. Крім того, можливість швидкого відновлення після аварій або
природних катастроф, завдяки хмарним резервним копіям і механізмам
аварійного відновлення, значно підвищує загальну стабільність і безпеку
системи.
Таблиця 3.1 - Порівняння існуючих системи
Розроблена система Ajax System Orion NOVA X
Масове виробництво Ні Так Так
Комунікація з Мережа Інтернет Мережа Інтернет Мережа Інтернет
сигналізацією
Використання Ні Так Так
власних серверів
Можливість Так Ні Ні
підвищення
продуктивності
Автоматичне Так Ні Ні
відновлення після
стихійного лиха
Розроблена система також демонструє достатній рівень швидкодії, що
є важливим аспектом для ефективного функціонування в реальному часі.
Завдяки використанню потужних мікроконтролерів та оптимізованого
програмного забезпечення, система швидко обробляє сигнали від датчиків,
реагує на зміни в стані та без затримок передає дані до хмарного середовища.
Це забезпечує оперативне виявлення тривог, моментальну реакцію на події та
відправку повідомлень користувачам, не створюючи значних затримок. Така
швидкодія критична для охоронних систем, де кожен момент має значення
для гарантування безпеки приміщень та своєчасного реагування на загрози.
Орієнтовна собівартість користування розробленою системою
становить 3 долари на місяць, з урахуванням оплати хмарних сервісів та
початкових налаштувань системи. Ця сума включає витрати на використання
хмарної інфраструктури, зокрема на зберігання даних, обробку запитів і
73
доступ до сервісів, а також витрати на налаштування і інтеграцію системи на
етапі її запуску. Така вартість робить систему доступною для широкого кола
користувачів, забезпечуючи ефективну та економічно вигідну експлуатацію.
3.6 Висновки до розділу 3
У даному розділі було представлено структуру системи, яка включає
розподілені модулі, що працюють з хмарними сервісами AWS, забезпечуючи
масштабованість та гнучкість у роботі системи.
У розділі описано функції системи, які включають інтеграцію з різними
протоколами для обробки повідомлень у реальному часі, а також можливість
моніторингу та налаштування параметрів системи через хмару.
Особливу увагу було приділено забезпеченню захисту інформації, що є
критично важливим для систем сигналізації, де конфіденційність і цілісність
даних повинні бути гарантовані. Використання хмарних технологій AWS
дозволяє забезпечити високий рівень безпеки завдяки шифруванню даних та
механізмам контролю доступу.
Також були визначені технічні вимоги для роботи з системою, які
включають необхідні ресурси.
Оцінка ефективності застосування хмарних технологій AWS показала
високий рівень надійності, масштабованості та безпеки при використанні цієї
платформи для побудови системи сигналізації. AWS забезпечує можливість
оперативного реагування на зміни навантаження та підтримку безперебійної
роботи.
Отже, використання хмарних технологій AWS для оптимізації роботи
системи сигналізації дозволяє значно покращити її ефективність, гнучкість,
безпеку та масштабованість.
75
ВИСНОВКИ
Метою випускної кваліфікаційної роботи була розробка системи
сигналізації, інтегрованої з хмарними технологіями, для забезпечення
гнучкості, масштабованості та простоти обслуговування. Основним
досягненням є створення системи, що складається з кількох незалежних
модулів, кожен з яких виконує окрему функцію. Такий підхід дозволяє
налаштовувати або вдосконалювати окремі компоненти, інтегрувати нові
можливості та адаптувати систему до різних вимог.
Використання хмарних технологій, таких як AWS, стало важливим
кроком у підвищенні стабільності та відмовостійкості систем сигналізації.
Хмарні платформи пропонують значні переваги порівняно з локальними
серверами чи автономними системами. Розподілена інфраструктура хмар
забезпечує безперебійну роботу навіть за умов технічних збоїв, автоматичне
дублювання даних і резервування серверів. Це гарантує високу стабільність і
надійність.
Інтеграція з хмарними технологіями дозволила оптимізувати
обслуговування та оновлення системи. Зокрема, централізований моніторинг
і керування забезпечують глобальну доступність системи та зручність її
експлуатації. Масштабованість хмарних рішень дозволяє швидко адаптувати
систему до змінних умов без значних витрат на фізичну інфраструктуру.
У роботі представлена структура системи, яка включає розподілені
модулі, інтегровані з хмарними сервісами AWS, що забезпечує високу
продуктивність і гнучкість. Описані функції системи включають інтеграцію з
протоколами для обробки повідомлень у реальному часі, можливість
моніторингу та централізованого налаштування параметрів через хмару.
Особлива увага приділена захисту інформації, оскільки
конфіденційність і цілісність даних є критично важливими для систем
сигналізації.
76
Оцінка ефективності застосування хмарних технологій AWS показала
їхню значну перевагу у забезпеченні надійності, масштабованості та
гнучкості. Платформа AWS дозволяє оперативно реагувати на зміну
навантаження та підтримувати безперебійну роботу системи, що особливо
важливо для забезпечення високих стандартів безпеки.
Таким чином, розробка системи сигналізації на основі хмарних
технологій AWS дозволяє значно підвищити її ефективність, безпеку,
зручність обслуговування та адаптивність до нових вимог. Це робить її
сучасним і надійним рішенням для широкого спектра задач у сфері безпеки.
77
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
AWS (Amazon Web Services)
RESTful API (Representational State Transfer Application Programming Interface)
MQTT (Message Queuing Telemetry Transport)
CoAP (Constrained Application Protocol)
HTTP(S) (Hypertext Transfer Protocol Secure)
S3 (Simple Storage Service)
EC2 (Elastic Compute Cloud)
IAM (Identity and Access Management)
RDS (Relational Database Service)
VPC (Virtual Private Cloud)
CDN (Content Delivery Network)
EBS (Elastic Block Store)
ELB (Elastic Load Balancer)
API Gateway (Application Programming Interface Gateway)
SNS (Simple Notification Service)
SQS (Simple Queue Service)
Lambda (AWS Lambda Serverless Computing Service)
DynamoDB (NoSQL Database Service)
CloudWatch (Monitoring and Logging Service)
KMS (Key Management Service)
ECS (Elastic Container Service)
Fargate (Serverless Compute Engine for Containers)
CloudFront (Content Delivery Network Service)
EKS (Elastic Kubernetes Service)
WAF (Web Application Firewall)
ALB (Application Load Balancer)
78
Glue (AWS Glue Data Integration Service)
SES (Simple Email Service)
ACM (AWS Certificate Manager)
EFS (Elastic File System)
Kinesis (Real-Time Data Streaming Service)
78
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Bernard Golden “Amazon Web Services for Dummies.” – Hoboken:
Wiley, 2017. – 456 p.
2. Jeffrey Barr “AWS for Architects: A Complete Guide.” – Berkeley:
Apress, 2019. – 372 p.
3. Andreas Wittig “Amazon Web Services in Action”, Michael Wittig –
Shelter Island: Manning, 2018. – 400 p.
4. Yan Cui “Serverless Architectures on AWS.” – Birmingham: Packt
Publishing, 2020. – 328 p.
5. Simon Sinek “AWS Security Best Practices.” – Hoboken: Wiley, 2019.
– 276 p.
6. Michael J. Kavis “Architecting the Cloud: Design Decisions for Cloud
Computing Service Models.” – Hoboken: Wiley, 2014. – 256 p.
7. Adnan Aziz “Designing Data-Intensive Applications.” Tsung-Hsien
Lee, Amit Prakash. – Sebastopol: O’Reilly, 2019. – 380 p.
8. Jon Gallagher “Introduction to Cloud Computing on AWS.” – San
Francisco: Cloud Academy, 2020. – 240 p.
9. Andrew Zahuranec “AWS Certified Solutions Architect Study Guide.”
– Indianapolis: Sybex, 2021. – 512 p.
10. Eric Sammons “Practical AWS Networking.” – Berkeley: Apress,
2022. – 340 p.
11. Lorin Hochstein “Ansible for AWS: Deploying Applications.” –
Sebastopol: O’Reilly, 2017. – 298 p.
12. John Paul Mueller “AWS Administration for Beginners.” – Hoboken:
Wiley, 2018. – 352 p.
13. Boris Feldman “Building Serverless Applications on AWS”. –
Birmingham: Packt Publishing, 2021. – 288 p.
79
14. Rene Luis “Efficient AWS Serverless Applications.” – Boston:
Addison-Wesley, 2021. – 310 p.
15. Dean Leffingwell “AWS Certified Developer Exam Guide.” – New
York: McGraw-Hill, 2020. – 290 p.
16. David Linthicum “Cloud Computing and SOA Convergence in Your
Enterprise.” – Indianapolis: Wiley, 2009. – 376 p.
17. Richard Monson-Haefel “Cloud Architecture Patterns.” – Sebastopol:
O’Reilly, 2014. – 240 p.
18. Scott Jeschonek “AWS Monitoring and Logging” – San Francisco:
Cloud Academy, 2020. – 256 p.
19. Andreas Graubner “Data Engineering on AWS.” – Birmingham: Packt
Publishing, 2021. – 320 p.
20. Brian Beach “AWS Cost Optimization: Practical Tools and
Techniques.” – Sebastopol: O’Reilly, 2022. – 220 p.
21. Steve Elmore “IoT Integration with AWS.” – Birmingham: Packt
Publishing, 2021. – 348 p.
22. James Wood “AWS Lambda in Action: Event-Driven Programming
with Serverless.” – Shelter Island: Manning, 2020. – 320 p.
23. Bradley Campbell “Advanced AWS Security Practices.” – Hoboken:
Wiley, 2021. – 290 p.
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
“___” _____________ 2024р.
Оптимізація методів роботи системи сигналізації з використанням
хмарних технологій AWS
Специфікація
482.ЧДТУ.42329-01
Листів 2
Розробник _______________ Назар ТИМОШЕНКО
Керівник _______________ Віра БАБЕНКО
Черкаси 2024
2
482.ЧДТУ.42329-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.42329-01 12 01 Текст програми
482.ЧДТУ.42329-01 34 01 Інструкція користувача
ДОДАТОК Б
Оптимізація методів роботи системи сигналізації з використанням
хмарних технологій AWS
Текс програми
482.ЧДТУ.42329-01 12 01
Листів 15
Розробник _______________ Назар ТИМОШЕНКО
Черкаси 2024
2
482.ЧДТУ.42329-01 12 01
import { Injectable } from '@nestjs/common';
import { Device } from './device.entity';
import { Sensor } from './sensor.entity';
import { DeviceRepository } from './device.repository';
import { SensorRepository } from './sensor.repository';
import { CreateDeviceDto } from './dto/create-device.dto';
import { UpdateDeviceDto } from './dto/update-device.dto';
import { CreateSensorDto } from './dto/create-sensor.dto';
import { UpdateSensorDto } from './dto/update-sensor.dto';
@Injectable()
export class AlarmSystemService {
constructor(
private readonly deviceRepository: DeviceRepository,
private readonly sensorRepository: SensorRepository,
) {
}
async createDevice(createDeviceDto: CreateDeviceDto): Promise<Device> {
const device = new Device();
device.name = createDeviceDto.name;
device.type = createDeviceDto.type;
device.status = createDeviceDto.status;
return this.deviceRepository.save(device);
}
async updateDevice(id: string, updateDeviceDto: UpdateDeviceDto):
Promise<Device> {
const device = await this.deviceRepository.findOne(id);
if (!device) {
throw new Error('Device not found');
}
device.name = updateDeviceDto.name || device.name;
device.type = updateDeviceDto.type || device.type;
device.status = updateDeviceDto.status || device.status;
return this.deviceRepository.save(device);
}
async deleteDevice(id: string): Promise<void> {
const device = await this.deviceRepository.findOne(id);
if (!device) {
3
482.ЧДТУ.42329-01 12 01
throw new Error('Device not found');
}
await this.deviceRepository.remove(device);
}
async getDeviceById(id: string): Promise<Device> {
const device = await this.deviceRepository.findOne(id);
if (!device) {
throw new Error('Device not found');
}
return device;
}
async getAllDevices(): Promise<Device[]> {
return this.deviceRepository.find();
}
async createSensor(createSensorDto: CreateSensorDto): Promise<Sensor> {
const sensor = new Sensor();
sensor.name = createSensorDto.name;
sensor.type = createSensorDto.type;
sensor.deviceId = createSensorDto.deviceId;
sensor.status = createSensorDto.status;
return this.sensorRepository.save(sensor);
}
async updateSensor(id: string, updateSensorDto: UpdateSensorDto):
Promise<Sensor> {
const sensor = await this.sensorRepository.findOne(id);
if (!sensor) {
throw new Error('Sensor not found');
}
sensor.name = updateSensorDto.name || sensor.name;
sensor.type = updateSensorDto.type || sensor.type;
sensor.status = updateSensorDto.status || sensor.status;
return this.sensorRepository.save(sensor);
}
async deleteSensor(id: string): Promise<void> {
const sensor = await this.sensorRepository.findOne(id);
if (!sensor) {
4
482.ЧДТУ.42329-01 12 01
throw new Error('Sensor not found');
}
await this.sensorRepository.remove(sensor);
}
async getSensorById(id: string): Promise<Sensor> {
const sensor = await this.sensorRepository.findOne(id);
if (!sensor) {
throw new Error('Sensor not found');
}
return sensor;
}
async getAllSensors(): Promise<Sensor[]> {
return this.sensorRepository.find();
}
async getSensorsByDeviceId(deviceId: string): Promise<Sensor[]> {
return this.sensorRepository.find({ where: { deviceId } });
}
async activateDevice(id: string): Promise<Device> {
const device = await this.deviceRepository.findOne(id);
if (!device) {
throw new Error('Device not found');
}
device.status = 'active';
return this.deviceRepository.save(device);
}
async deactivateDevice(id: string): Promise<Device> {
const device = await this.deviceRepository.findOne(id);
if (!device) {
throw new Error('Device not found');
}
device.status = 'inactive';
return this.deviceRepository.save(device);
}
async activateSensor(id: string): Promise<Sensor> {
const sensor = await this.sensorRepository.findOne(id);
5
482.ЧДТУ.42329-01 12 01
if (!sensor) {
throw new Error('Sensor not found');
}
sensor.status = 'active';
return this.sensorRepository.save(sensor);
}
async deactivateSensor(id: string): Promise<Sensor> {
const sensor = await this.sensorRepository.findOne(id);
if (!sensor) {
throw new Error('Sensor not found');
}
sensor.status = 'inactive';
return this.sensorRepository.save(sensor);
}
async getDeviceStatus(id: string): Promise<string> {
const device = await this.deviceRepository.findOne(id);
if (!device) {
throw new Error('Device not found');
}
return device.status;
}
async getSensorStatus(id: string): Promise<string> {
const sensor = await this.sensorRepository.findOne(id);
if (!sensor) {
throw new Error('Sensor not found');
}
return sensor.status;
}
async getAllActiveDevices(): Promise<Device[]> {
return this.deviceRepository.find({ where: { status: 'active' } });
}
async getAllInactiveDevices(): Promise<Device[]> {
return this.deviceRepository.find({ where: { status: 'inactive' } });
}
async getAllActiveSensors(): Promise<Sensor[]> {
6
482.ЧДТУ.42329-01 12 01
return this.sensorRepository.find({ where: { status: 'active' } });
}
async getAllInactiveSensors(): Promise<Sensor[]> {
return this.sensorRepository.find({ where: { status: 'inactive' } });
}
async linkSensorToDevice(sensorId: string, deviceId: string): Promise<Sensor> {
const sensor = await this.sensorRepository.findOne(sensorId);
if (!sensor) {
throw new Error('Sensor not found');
}
sensor.deviceId = deviceId;
return this.sensorRepository.save(sensor);
}
async unlinkSensorFromDevice(sensorId: string): Promise<Sensor> {
const sensor = await this.sensorRepository.findOne(sensorId);
if (!sensor) {
throw new Error('Sensor not found');
}
sensor.deviceId = null;
return this.sensorRepository.save(sensor);
}
async getDeviceSensors(deviceId: string): Promise<Sensor[]> {
return this.sensorRepository.find({ where: { deviceId } });
}
async getSensorDevice(sensorId: string): Promise<Device> {
const sensor = await this.sensorRepository.findOne(sensorId);
if (!sensor) {
throw new Error('Sensor not found');
}
return this.deviceRepository.findOne;
}
}
import { Injectable } from '@nestjs/common';
import { User } from './user.entity';
import { Role } from './role.entity';
7
482.ЧДТУ.42329-01 12 01
import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private userRepository: Repository<User>,
@InjectRepository(Role)
private roleRepository: Repository<Role>,
) {}
async createUser(username: string, password: string, roleIds: number[]):
Promise<User> {
const user = this.userRepository.create({ username, password });
await this.assignRoles(user, roleIds);
return this.userRepository.save(user);
}
async findUserById(id: number): Promise<User> {
return this.userRepository.findOne({ where: { id }, relations: ['roles'] });
}
async findAllUsers(): Promise<User[]> {
return this.userRepository.find({ relations: ['roles'] });
}
async updateUser(id: number, updateData: Partial<User>): Promise<User> {
await this.userRepository.update(id, updateData);
return this.findUserById(id);
}
async deleteUser(id: number): Promise<void> {
await this.userRepository.delete(id);
}
async assignRoles(user: User, roleIds: number[]): Promise<void> {
const roles = await this.roleRepository.findByIds(roleIds);
user.roles = roles;
}
8
482.ЧДТУ.42329-01 12 01
async createRole(name: string): Promise<Role> {
const role = this.roleRepository.create({ name });
return this.roleRepository.save(role);
}
async findRoleById(id: number): Promise<Role> {
return this.roleRepository.findOne({ where: { id } });
}
async findAllRoles(): Promise<Role[]> {
return this.roleRepository.find();
}
async updateRole(id: number, updateData: Partial<Role>): Promise<Role> {
await this.roleRepository.update(id, updateData);
return this.findRoleById(id);
}
async deleteRole(id: number): Promise<void> {
await this.roleRepository.delete(id);
}
async assignRoleToUser(userId: number, roleId: number): Promise<User> {
const user = await this.findUserById(userId);
const role = await this.findRoleById(roleId);
user.roles.push(role);
return this.userRepository.save(user);
}
async removeRoleFromUser(userId: number, roleId: number): Promise<User> {
const user = await this.findUserById(userId);
user.roles = user.roles.filter(role => role.id !== roleId);
return this.userRepository.save(user);
}
async getUserRoles(userId: number): Promise<Role[]> {
const user = await this.findUserById(userId);
return user.roles;
}
async getRoleUsers(roleId: number): Promise<User[]> {
9
482.ЧДТУ.42329-01 12 01
return this.userRepository.createQueryBuilder('user')
.innerJoinAndSelect('user.roles', 'role')
.where('role.id = :roleId', { roleId })
.getMany();
}
}
import { MqttClient, connect } from 'mqtt';
import { EventEmitter } from 'events';
interface Message {
topic: string;
payload: string;
}
interface Topic {
name: string;
qos: number;
}
class MqttService extends EventEmitter {
private client: MqttClient;
private topics: Topic[];
constructor(brokerUrl: string, options?: object) {
super();
this.client = connect(brokerUrl, options);
this.topics = [];
this.initialize();
}
private initialize() {
this.client.on('connect', () => {
console.log('Connected to MQTT broker');
this.subscribeToTopics();
});
this.client.on('message', (topic: string, message: Buffer) => {
this.handleMessage(topic, message.toString());
});
10
482.ЧДТУ.42329-01 12 01
this.client.on('error', (error: Error) => {
console.error('MQTT Client Error:', error);
});
}
public addTopic(topicName: string, qos: number = 0) {
const topic: Topic = { name: topicName, qos };
this.topics.push(topic);
this.subscribeToTopics();
}
private subscribeToTopics() {
const topicNames = this.topics.map(topic => topic.name);
this.client.subscribe(topicNames, (err) => {
if (err) {
console.error('Failed to subscribe to topics:', err);
} else {
console.log('Subscribed to topics:', topicNames);
}
});
}
private handleMessage(topic: string, payload: string) {
const message: Message = { topic, payload };
console.log('Received message:', message);
this.emit('messageReceived', message);
}
public publishMessage(topic: string, payload: string, qos: number = 0) {
this.client.publish(topic, payload, { qos }, (err) => {
if (err) {
console.error('Failed to publish message:', err);
} else {
console.log('Message published to topic:', topic);
}
});
}
public disconnect() {
this.client.end(() => {
console.log('Disconnected from MQTT broker');
11
482.ЧДТУ.42329-01 12 01
});
}
}
// Example usage
const mqttService = new MqttService('mqtt://broker.hivemq.com');
mqttService.on('messageReceived', (message: Message) => {
console.log('Processing received message:', message);
});
// Adding topics
mqttService.addTopic('home/alarm');
mqttService.addTopic('home/temperature', 1);
// Publishing messages
mqttService.publishMessage('home/alarm', JSON.stringify({ status: 'triggered' }));
mqttService.publishMessage('home/temperature', JSON.stringify({ value: 22.5 }));
import { Injectable } from '@nestjs/common';
import { Location } from './location.entity';
import { LocationRepository } from './location.repository';
import { CreateLocationDto } from './dto/create-location.dto';
import { UpdateLocationDto } from './dto/update-location.dto';
@Injectable()
export class LocationService {
constructor(private readonly locationRepository: LocationRepository) {}
async createLocation(createLocationDto: CreateLocationDto):
Promise<Location> {
const location = new Location();
location.name = createLocationDto.name;
location.latitude = createLocationDto.latitude;
location.longitude = createLocationDto.longitude;
location.radius = createLocationDto.radius;
return this.locationRepository.save(location);
}
async findAllLocations(): Promise<Location[]> {
return this.locationRepository.find();
12
482.ЧДТУ.42329-01 12 01
}
async findLocationById(id: number): Promise<Location> {
return this.locationRepository.findOne(id);
}
async updateLocation(id: number, updateLocationDto: UpdateLocationDto):
Promise<Location> {
const location = await this.findLocationById(id);
if (!location) {
throw new Error('Location not found');
}
location.name = updateLocationDto.name || location.name;
location.latitude = updateLocationDto.latitude || location.latitude;
location.longitude = updateLocationDto.longitude || location.longitude;
location.radius = updateLocationDto.radius || location.radius;
return this.locationRepository.save(location);
}
async deleteLocation(id: number): Promise<void> {
const location = await this.findLocationById(id);
if (!location) {
throw new Error('Location not found');
}
await this.locationRepository.remove(location);
}
async findLocationsWithinRadius(latitude: number, longitude: number, radius:
number): Promise<Location[]> {
const locations = await this.findAllLocations();
return locations.filter(location => {
const distance = this.calculateDistance(latitude, longitude, location.latitude,
location.longitude);
return distance <= radius;
});
}
private calculateDistance(lat1: number, lon1: number, lat2: number, lon2:
number): number {
const R = 6371; // Radius of the Earth in km
const dLat = this.degreesToRadians(lat2 - lat1);
13
482.ЧДТУ.42329-01 12 01
const dLon = this.degreesToRadians(lon2 - lon1);
const a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(this.degreesToRadians(lat1)) *
Math.cos(this.degreesToRadians(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R * c; // Distance in km
}
private degreesToRadians(degrees: number): number {
return degrees * (Math.PI / 180);
}
}
import * as jwt from 'jsonwebtoken';
import * as crypto from 'crypto';
class AuthService {
private secretKey: string;
private jwtSecret: string;
private algorithm: string;
constructor() {
this.secretKey = crypto.randomBytes(32).toString('hex');
this.jwtSecret = 'your_jwt_secret'; // Change this to a secure secret
this.algorithm = 'aes-256-cbc';
}
private encrypt(text: string): string {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv(this.algorithm,
Buffer.from(this.secretKey), iv);
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
return iv.toString('hex') + ':' + encrypted;
}
private decrypt(text: string): string {
const parts = text.split(':');
const iv = Buffer.from(parts.shift()!, 'hex');
14
482.ЧДТУ.42329-01 12 01
const encryptedText = Buffer.from(parts.join(':'), 'hex');
const decipher = crypto.createDecipheriv(this.algorithm,
Buffer.from(this.secretKey), iv);
let decrypted = decipher.update(encryptedText, 'hex', 'utf8');
decrypted += decipher.final('utf8');
return decrypted;
}
public hashPassword(password: string): string {
return this.encrypt(password);
}
public verifyPassword(password: string, hash: string): boolean {
const decryptedPassword = this.decrypt(hash);
return password === decryptedPassword;
}
public generateToken(userId: string): string {
const payload = { id: userId };
return jwt.sign(payload, this.jwtSecret, { expiresIn: '1h' });
}
public verifyToken(token: string): any {
try {
return jwt.verify(token, this.jwtSecret);
} catch (error) {
return null;
}
}
public async login(username: string, password: string): Promise<string | null> {
const user = await this.findUserByUsername(username);
if (user && this.verifyPassword(password, user.passwordHash)) {
return this.generateToken(user.id);
}
return null;
}
public async register(username: string, password: string): Promise<void> {
const passwordHash = this.hashPassword(password);
await this.saveUser({ username, passwordHash });
15
482.ЧДТУ.42329-01 12 01
}
private async findUserByUsername(username: string): Promise<any> {
// Simulate a database call
return { id: '1', username: username, passwordHash:
this.hashPassword('password123') }; // Example user
}
private async saveUser(user: any): Promise<void> {
// Simulate saving user to a database
console.log('User saved:', user);
}
}
ДОДАТОК В
Оптимізація методів роботи системи сигналізації з використанням
хмарних технологій AWS
Інструкція користувача
482.ЧДТУ.42329-01 34 01
Листів 5
Розробник _______________ Назар ТИМОШЕНКО
Черкаси 2024
2
482.ЧДТУ.42329-01 34 01
Для початку користування системою адміністратору необхідно створити
аккаунт в AWS. Це дозволить налаштувати хмарну інфраструктуру для
зберігання даних, обробки запитів та інтеграції з іншими сервісами. Після
створення акаунта адміністратор зможе отримати доступ до необхідних
інструментів та ресурсів для розгортання системи, налаштування безпеки,
управління користувачами та моніторингу роботи системи. Аккаунт AWS є
основною платформою для підтримки функціонування хмарного середовища,
яке забезпечує надійність та масштабованість системи.
Далі адміністратору необхідно налаштувати політику доступу, яка
регулює дозволи для пристроїв, зокрема, визначає, які операції можуть бути
виконані на конкретних темах, таких як публікація чи підписка на
повідомлення через MQTT. Створену політику потрібно прив'язати до
сертифікатів пристрою для забезпечення належного рівня безпеки та
обмеження доступу лише до необхідних операцій.
Після цього сертифікати та ключі необхідно завантажити на пристрій,
наприклад, на мікроконтроллер ESP32, щоб він міг підключитися до AWS IoT
Core. Підключення здійснюється за допомогою протоколу MQTT або HTTP.
Коли пристрій підключено, він може публікувати дані на визначену тему або
отримувати повідомлення. У AWS IoT Core можна налаштувати правила для
обробки цих повідомлень, що дозволяє автоматично виконувати певні дії на
основі отриманих даних, такі як збереження даних у базах даних або активація
інших сервісів AWS, як-от Lambda чи S3.
Крім того, важливо налаштувати моніторинг пристроїв за допомогою
AWS CloudWatch, що дозволяє стежити за їхнім станом і відстежувати будь-
які проблеми з підключенням або функціонуванням. Також адміністратор
може використовувати AWS IoT Rules Engine для створення складних
сценаріїв обробки даних і інтеграції з іншими сервісами AWS. Тестування
налаштувань дозволяє переконатися, що пристрої можуть успішно
3
482.ЧДТУ.42329-01 34 01
підключатися до хмарної інфраструктури, а всі повідомлення обробляються
коректно.
Налаштування AWS EC2 для роботи з серверним додатком на Node.js
вимагає кілька етапів, від створення віртуальної машини (екземпляру EC2) до
налаштування середовища для запуску Node.js додатку.
Першим кроком є створення екземпляра EC2 у консолі AWS. Для цього
потрібно увійти в обліковий запис AWS і перейти в розділ EC2. Після цього
слід вибрати тип інстансу, який відповідає вимогам вашого додатку, зокрема,
тип інстансу та розмір ресурсів (пам'ять, процесор, диск). Потім вибирається
операційна система для інстансу, найчастіше використовується Ubuntu або
Amazon Linux, оскільки ці системи зручні для роботи з Node.js.
Після запуску інстансу слід налаштувати безпеку. Для цього потрібно
створити або вибрати вже існуючий Security Group, яка дозволить доступ до
порту, на якому буде працювати Node.js додаток (наприклад, порт 80 для
HTTP або 443 для HTTPS). Важливо переконатися, що дозволено підключення
до EC2 інстансу через SSH для управління сервером.
Після того, як інстанс EC2 створено і підключено через SSH, слід
встановити необхідне програмне забезпечення для Node.js. Спочатку
оновлюється список пакетів, а потім встановлюється Node.js. Це можна
зробити за допомогою пакетного менеджера, наприклад, apt для Ubuntu:
sudo apt update
sudo apt install nodejs
sudo apt install npm
Після цього можна перевірити, чи правильно встановлено Node.js за
допомогою команд:
node -v
npm -v
4
482.ЧДТУ.42329-01 34 01
Наступним етапом є розгортання самого серверного додатку на Node.js.
Для цього додаток копіюється на сервер через SCP, SFTP або іншим способом.
Якщо додаток зберігається на GitHub, його можна клонувати безпосередньо з
репозиторію за допомогою git:
git clone <URL репозиторію>
Тепер потрібно налаштувати додаток для роботи в продакшн-
середовищі. Для цього можна використовувати PM2 — процесний менеджер
для Node.js, який дозволяє запускати додатки як фонові процеси і забезпечує
їх автоматичний перезапуск у разі помилок або перезавантаження сервера:
sudo npm install -g pm2
pm2 start app.js pm2 save
Щоб забезпечити автоматичний запуск додатку після перезавантаження
сервера, можна налаштувати PM2 для автоматичного запуску:
pm2 startup
Тепер ваш Node.js додаток повністю налаштований і працює на
екземплярі AWS EC2. Ви можете підключитися до сервера за допомогою веб-
браузера, ввівши IP-адресу сервера або доменне ім’я, якщо воно налаштоване,
і перевірити, чи працює додаток. Це базове налаштування для запуску Node.js
додатку на AWS EC2, яке можна розширювати в залежності від вимог,
наприклад, налаштування SSL сертифікатів для безпечного з'єднання або
автоматизації розгортання через CI/CD.
Для забезпечення доступу до вебсайту через AWS S3, необхідно
налаштувати відповідне сховище та дозволи, щоб S3 міг бути використаний
як статичний вебсайт.
Спочатку необхідно створити новий бакет у Amazon S3. Це робиться
через консоль AWS: потрібно вказати унікальне ім’я для бакета, яке має бути
глобально унікальним, і вибрати регіон для його розміщення.
5
482.ЧДТУ.42329-01 34 01
Після створення бакету потрібно налаштувати його для використання
як вебсайт. Для цього в налаштуваннях бакету слід увімкнути функцію Static
Website Hosting. У цій секції можна вказати основний файл вебсайту (зазвичай
це index.html) і сторінку помилки (наприклад, error.html). Ці файли повинні
бути завантажені до бакету, і вони будуть використовуватися для обробки
запитів, які надходять до вашого вебсайту.
Далі необхідно налаштувати правильні політики доступу до бакету, щоб
дозволити публічний доступ до файлів вебсайту. Для цього створюється
політика Bucket Policy, яка дозволяє всім користувачам доступ до файлів у
бакеті для перегляду вебсайту.
Крім того, для оптимізації доступу до вашого вебсайту можна
налаштувати CloudFront — глобальну систему доставки контенту (CDN), яка
дозволяє прискорити доставку вебсторінок і файлів, таких як зображення чи
JavaScript. Налаштування CloudFront включає створення нового CloudFront
distribution, де в якості джерела контенту вказується ваш S3 бакет.
В результаті, після налаштування S3 для статичного вебсайту та, при
необхідності, CloudFront, ваш вебсайт стане доступним через URL, наданий
AWS S3, або через власне доменне ім’я, якщо налаштувати відповідні записи
DNS для вашого домену.
Це дозволяє забезпечити ефективне та безпечне розміщення статичного
вебсайту з мінімальними витратами.