Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал: http://elartu.tntu.edu.ua/handle/lib/42407
Назва: Розробка високонавантаженої системи на основі парадигми реактивного програмування з використанням мови програмування Java та застосуванням мікросервісної архітектури
Інші назви: Development of a highly loaded system based on the reactive programming paradigm using the Java programming language and the application of microservice architecture
Автори: Дмитраш, Михайло Андрійович
Dmytrash, Mykhailo Andriyovych
Приналежність: Тернопільський національний технічний університет імені Івана Пулюя
Бібліографічний опис: Дмитраш М. А. Розробка високонавантаженої системи на основі парадигми реактивного програмування з використанням мови програмування Java та застосуванням мікросервісної архітектури : кваліфікаційна робота на здобуття освітнього ступеня бакалавр за спеціальністю „121 — інженерія програмного забезпечення“ / Михайло Андрійович Дмитраш . — Тернопіль: ТНТУ, 2023. — 130 с.
Дата публікації: чер-2023
Дата внесення: 26-лип-2023
Країна (код): UA
Місце видання, проведення: Тернопільський національний технічний університет імені Івана Пулюя
Науковий керівник: Цуприк, Галина Богданівна
Члени комітету: Дуда, Олексій Михайлович
УДК: 004.422.8
Теми: високонавантажені додатки
web-сайти
інтернет-кінотеатр
мікросервіси
протоколи
архітектура
реактивність
онлайн кінотеатр
реактивне програмування
Кількість сторінок: 130
Короткий огляд (реферат): Метою дипломної роботи є дослідження перспектив розробки високонавантажених систем базуючись на парадигмі реактивного програмування з використанням мікросервісної архітектури. Щоб продемонструвати це, ми розробили онлайн кінотеатр. Даний вид програм дозволить нам яскраво відобразити усю суть поставленої проблеми. У першому розділі ми проведемо аналіз програмного застосунку. Розглянемо функціональні та не функціональні вимоги. Буде розглянуто діаграми варіантів використання різних дійових осіб. Далі, у другому розділі, буде проведено аналіз архітектури. Підберемо архітектурний стиль проєкту, використовуючи найкращі практики проектування. Також, обговоримо загальні патерни проектування, які були використані під час розробки клієнтської та серверної частин. Також, дані частина буде відображена у вигляді діаграм. У наступному розділі – розділі номер три – ми проаналізуємо основні технології, які було використано при розробці системи. Ми окремо розглянемо технології клієнтської та серверної частин. Також, ми проведемо аналіз парадигм при розробці серверної частини, адже це напряму стосується теми дипломної роботи. Далі, ми проаналізуємо використані бази даних та їх типи. Та на кінець, але не менш важливіше, ми обговоримо механізм взаємодії серверної та клієнтської частин. У четвертому розділі буде розглянуто інструменти, які були використані при розробці даного проєкту. В даному розділі буде описано чому ці інструменти біли обрані та їх переваги над іншими. Далі – у розділі номер п’ять – буде розглянуто реалізацію самого продукту, де увага буде сконцентрована на серверну частину. Будуть описані основні мікросервіси, які відповідають за базову та основну логіку застосунку. Також, буде розглянуто переваги між парадигмою реактивного програмування – парадигма, яка забезпечує асинхронне виконання – та блокуючого програмування. Будуть наведені результати порівняння двох парадигм. Додатково буде опис та приклад використання механізмів подальшої розробки та подальшої доставки системного забезпечення.
The aim of the diploma work is to study the prospects for the development of highly loaded systems based on the paradigm of reactive programming using microservice architecture. To demonstrate this, we developed an online cinema. This type of programs will allow us to vividly reflect the essence of the problem. In the first section, we will analyze the software application. Let's consider functional and non-functional requirements. Use case diagrams of various actors will be considered. Further, in the second chapter, the analysis of the architecture will be carried out. We will select the architectural style of the project, using the best design practices. Also, let's discuss the general design patterns that were used during the development of the client and server parts. Also, the data part will be displayed in the form of charts. In the next chapter, chapter number three, we will analyze the main technologies that were used in the development of the system. We will separately consider the technologies of the client and server parts. Also, we will conduct an analysis of paradigms in the development of the server part, because this is directly related to the topic of the thesis. Next, we will analyze the used databases and their types. And finally, but no less importantly, we will discuss the mechanism of interaction between the server and client parts. In the fourth section, the tools that were used in the development of this project will be considered. This section will describe why these tools were chosen and their advantages over others. Next, in section number five, the implementation of the product itself will be considered, where attention will be focused on the server part. The main microservices that are responsible for the basic and core logic of the application will be described. Also, the advantages between the reactive programming paradigm – a paradigm that allows for asynchronous execution – and blocking programming will be considered. The results of the comparison of the two paradigms will be given. In addition, there will be a description and an example of the use of mechanisms for further development and further delivery of system support.
Зміст: РОЗДІЛ 1 АНАЛІЗ ВИМОГ ДО ПРОГРАМНОГО ПРОДУКТУ 13 1.1 АНАЛІЗ ФУНКЦІОНАЛЬНИХ ВИМОГ 13 1.2 АНАЛІЗ НЕФУНКЦІОНАЛЬНИХ ВИМОГ 16 РОЗДІЛ 2 АНАЛІЗ АРХІТЕКТУРИ ПРИ РОЗРОБЦІ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 19 2.1 ПІДБІР АРХІТЕКТУРИ ПРОЄКТУ 19 2.2 АНАЛІЗ СЕРВЕРНОЇ АРХІТЕКТУРИ 21 2.2.1 Огляд монолітної архітектури при проектуванні серверної частини 22 2.2.2 Огляд мікросервісної архітектури при проектуванні серверної частини 24 РОЗДІЛ 3 АНАЛІЗ ВИКОРИСТАНИХ ТЕХНОЛОГІЙ 29 3.1 ОГЛЯД ВИКОРИСТАНИХ ТЕХНОЛОГІЙ ПРИ РОЗРОБЦІ КЛІЄНТСЬКОЇ ЧАСТИНИ 29 3.1.1 Вибір мови програмування для розробки клієнтської частини 33 3.1.4 Огляд фреймворку для розробки клієнтської частини 35 3.2 АНАЛІЗ ВИКОРИСТАНИХ ТЕХНОЛОГІЙ ПРИ РОЗРОБЦІ СЕРВЕРНОЇ ЧАСТИНИ 36 3.2.1 Вибір основної мови програмування 38 3.2.2 Вибір фреймворку для пришвидшення розробки 41 3.3 АНАЛІЗ ВИКОРИСТАНИХ ПАРАДИГМ ПРИ РОЗРОБЦІ СЕРВЕРНОЇ ЧАСТИНИ 45 3.3.1 Огляд об’єктно орієнтованої парадигми 46 3.3.2 Аналіз функціональної парадигми 49 3.3.3 Огляд парадигми реактивного програмування 51 3.4 АНАЛІЗ ВИКОРИСТАНИХ БАЗ ДАНИХ 57 3.4.1 Основна база даних для збереження довгострокових даних 58 3.4.2 Опис бази даних для зберігання кешів програми 60 РОЗДІЛ 4 АНАЛІЗ ІНСТРУМЕНТІВ ПРИ РОЗРОБЦІ ПРЄКТУ 63 4.1 АНАЛІЗ ІНСТРУМЕНТІВ ДЛЯ ПОСТАНОВИ РОБОЧОГО ПРОЦЕСУ 63 4.2 АНАЛІЗ ІНСТРУМЕНТІВ ДЛЯ ПОДАЛЬШОЇ РОЗРОБКИ 65 РОЗДІЛ 5 РОЗРОБКА ОНЛАЙН КІНОТЕАТРУ 67 5.1 ВИЗНАЧЕННЯ ЗАВДАНЬ 67 5.2 АРХІТЕКТУРНИЙ СТИЛЬ ПРОЄКТУ 68 5.2 ОГЛЯД МІКРОСЕРВІСІВ ТА ЇХ АРХІТЕКТУРИ 71 5.2.1 Сервіс маршрутизації 72 5.2.2 Сервіс виявлення мікросервісів 75 5.2.3 Сервіс налаштувань 78 5.2.4 Сервіс реєстрації 81 5.2.6 Сервіс керування аккаунтами 85 5.2.9 Сервіс обробки медіа контенту 87 5.3 ПОРІВНЯННЯ БЛОКУЮЧОГО ТА НЕБЛОКУЮЧОГО ПІДХОДУ 89 5.3 CI/CD ПРОЦЕСИ ПІД ЧАС РОЗРОБКИ 92 РОЗДІЛ 6 БЕЗПЕКА ЖИТТЄДІЯЛЬНОСТІ ТА ОСНОВИ ОХОРОНИ ПРАЦІ 94 6.1 РОЛЬ ЦЕНТРАЛЬНОЇ НЕРВОВОЇ СИСТЕМИ В ТРУДОВІЙ ДІЯЛЬНОСТІ ЛЮДИНИ 94 6.2 ОЦІНКА ТРАВМОНЕБЕЗПЕКИ ТЕХНОЛОГІЧНОГО ПРОЦЕСУ 98 ВИСНОВКИ 102 ПЕРЕЛІК ПОСИЛАНЬ 104 ДОДАТОК А СЕРВІС МАРШРУТИЗАЦІЇ 107 ДОДАТОК Б СЕРВІС НАЛАШТУВАНЬ 110 ДОДАТОК В СЕРВІС РЕЄСТРАЦІЇ 113 ДОДАТОК Г СЕРВІС КЕРУВАННЯ АККАУНТАМИ 123 ДОДАТОК Д СЕРВІС ОБРОБКИ МЕДІА КОНТЕНТУ 129
URI (Уніфікований ідентифікатор ресурсу): http://elartu.tntu.edu.ua/handle/lib/42407
Власник авторського права: © Дмитраш Михайло Андрійович, 2023
Перелік літератури: 1. Harris C. Microservices vs. monolithic architecture. Atlassian. URL: https://www.atlassian.com/microservices/microservices-architecture/microservices-vs-monolith (дата звернення: 09.06.2023).
2. Fitzgibbons L. What are front end and back end? Definition from WhatIs.com. WhatIs.com. URL: https://www.techtarget.com/whatis/definition/front-end (дата звернення: 02.06.2023).
3. How to Choose a Programming Language For a Project? - GeeksforGeeks. GeeksforGeeks. URL: https://www.geeksforgeeks.org/how-to-choose-a-programming-language-for-a-project/ (дата звернення: 01.06.2023).
4. How to Choose the Right Technology Stack for Your Project? | SCAND. SCAND. URL: https://scand.com/company/blog/choosing-a-technology-stack/ (дата звернення: 02.06.2023).
5. Why Millions of Developers use JavaScript for Web Application Development?. Torque. URL: https://torquemag.io/2018/06/why-millions-of-developers-use-javascript-for-web-application-development/ (дата звернення: 03.06.2023).
6. What Is a Single Page Application? | Bloomreach. Bloomreach. URL: https://www.bloomreach.com/en/blog/2018/what-is-a-single-page-application (дата звернення: 04.05.2023).
7. Pros and Cons of Single-Page Applications. Spiceworks. URL: https://www.spiceworks.com/tech/devops/articles/what-is-single-page-application/ (дата звернення: 13.06.2023).
8. What is the Angular framework?. mDevelopers - Your Custom Software Development Company. URL: https://mdevelopers.com/blog/what-is-the-angular-framework (дата звернення: 19.05.2023).
9. What Is Java Used For?. Coursera. URL: https://www.coursera.org/articles/what-is-java-used-for (дата звернення: 12.05.2023).
10. Introduction of Object Oriented Programming - GeeksforGeeks. GeeksforGeeks. URL: https://www.geeksforgeeks.org/introduction-of-object-oriented-programming/ (дата звернення: 13.05.2023).
11. Functional Programming Paradigm - GeeksforGeeks. GeeksforGeeks. URL: https://www.geeksforgeeks.org/functional-programming-paradigm/ (дата звернення: 20.05.2023).
12. What Is Reactive Programming? | Baeldung on Computer Science. Baeldung on Computer Science. URL: https://www.baeldung.com/cs/reactive-programming (дата звернення: 11.05.2023).
13. What Is Reactive Programming? | Baeldung on Computer Science. Baeldung on Computer Science. URL: https://www.baeldung.com/cs/reactive-programming (дата звернення: 11.05.2023).
14. Introduction to Redis (What it is, what are the use cases etc) | Severalnines. Severalnines. URL: https://severalnines.com/blog/introduction-redis-what-it-what-are-use-cases-etc (дата звернення: 19.05.2023).
15. Cunha G. T. Reactive vs. Synchronous Performance Test - DZone. dzone.com. URL: https://dzone.com/articles/spring-boot-20-webflux-reactive-performance-test (дата звернення: 10.06.2023).
16. Яворовський О., Шевцова В., Зенкіна В. Безпека життєдіяльності, основи охорони праці: навчальний посібник. 2-ге вид. Всеукр. спеціаліз. вид-во «Медицина», 2018. 288 с.
17. Безпека життєдіяльності та основи охорони праці :: Державний університет телекомунікацій. Державний університет телекомунікацій. URL: https://www.dut.edu.ua/ua/lib/1/category/760/view/921 (дата звернення: 15.06.2023).
Тип вмісту: Bachelor Thesis
Розташовується у зібраннях:121 — Інженерія програмного забезпечення (бакалаври)

Файли цього матеріалу:
Файл Опис РозмірФормат 
dyplom_Dmytrash_2023.pdf2,79 MBAdobe PDFПереглянути/відкрити


Усі матеріали в архіві електронних ресурсів захищені авторським правом, всі права збережені.

Інструменти адміністратора