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


Модернизация архитектуры существующей распределенной информационной системы в ООО «Квартплата 24»

Работа №107996

Тип работы

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

Предмет

информатика

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

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


Введение 6
1 Характеристика организации и экосистемы сервисов 8
1.1 Характеристика организации 8
1.2 Анализ экосистемы сервисов с точки зрения архитектуры 8
1.3 Микросервисная и реактивная архитектуры 12
1.4 Постановка задачи на разработку микросервиса 15
2 Построение микросервиса 17
2.1 Требования к разрабатываемому микросервису 17
2.2 Проектирование архитектуры микросервиса, основанного на
командах и событиях 18
2.3 Описание инструмента разработки реактивных микросервисов . 24
2.4 Доставка сообщений между сервисами экосистемы 29
2.5 Разработка диаграммы классов микросервиса 35
2.6 Архитектура микросервиса в контексте интеграции в
существующую экосистему 38
3 Разработка микросервиса 40
3.1 Выбор средств реализации микросервиса 40
3.2 Реализация основных модулей микросервиса 43
3.3 Тестирование работоспособности микросервиса 47
Заключение 50
Список используемых источников 52
Приложение А Классы, реализующие интерфейс Command 55
Приложение Б Архитектура экосистемы сервисов 56
Приложение В Реализация команд, обрабатываемых микросервисом . 58
Приложение Г Реализация событий сервиса 61
Приложение Д Фрагмент кода с методами и запросами сервиса 67
Приложение Е Фрагмент кода с реализацией методов API 68
Приложение Ж Подключение базы данных к сервису 70
Приложение И Конфигурация брокера сообщений Apache Kafka 71

Широкое распространение информационных технологий способствует их скорейшему развитию, еще 15 лет назад мы могли видеть приложения, запущенные на нескольких серверах, которые обрабатывали гигабайты данных, находящихся в состоянии покоя. Нередким был случай, когда при попытке получения доступа к какому-либо ресурсу вы могли наблюдать сообщение о недоступности сервиса и ведущихся технических работах.
В наше время люди слишком сильно полагаются на различные технологии в своей повседневной жизни, поэтому современные системы должны удовлетворять требованиям современного пользователя, быть отзывчивыми и отказоустойчивыми. Как недоступность сервисов в течение пары часов повлияет на вашу жизнь? Это может не оказать существенного влияния на вас, если вы не пользуетесь веб-сервисами на постоянной основе, но что будет, если поисковая система, такая как Google, будет отвечать на ваш запрос не за секунду, а за тридцать секунд?
Пользователи неотзывчивого программного обеспечения со временем устанут от подобных проблем и начнут смотреть в сторону конкурентов. Для решения подобных проблем существуют микросервисы на основе реактивной архитектуры.
Актуальность данной работы заключается в необходимости отказа от классических принципов построения информационных систем в пользу современных архитектурных решений, позволяющих разрабатывать высоконагруженные, отказоустойчивые, масштабируемые и отзывчивые системы.
Целью данной выпускной квалификационной работы является модернизация архитектуры, существующей распределенной информационной системы путем внедрения микросервисных технологий на основе реактивной архитектуры, что послужит основой для последующего полного перехода к микросервисной архитектуре.
Для достижения поставленной цели необходимо выполнить промежуточные задачи:
- изучить текущее архитектурное решение экосистемы сервисов в ООО «Квартплата 24»;
- описать альтернативное архитектурное решение в виде микросервисной и реактивной архитектур;
- разработать микросервис, соблюдая принципы построения реактивных микросервисов;
Объект исследования - экосистема сервисов в ООО «Квартплата 24».
Предметом исследования является построение распределенной информационной системой, разделенной на модули-микросервисы, каждый из модулей сконцентрирован не на решении комплекса задач, а одной конкретной бизнес-задаче.
Методы исследования - микросервисные и реактивные архитектуры, построение реактивных микросервисов.
Первая глава содержит описание экосистемы сервисов в ООО «Квартплата 24», характеристику текущего архитектурного решения и преимуществ микросервисной, реактивной архитектур.
Вторая глава посвящена построению микросервисного приложения на основе команд и событий, а также решению проблемы доставки данных между микросервисами.
В третьей главе описаны инструменты разработки и процесс разработки микросервиса, тестирование работоспособности.
Результаты выполнения данной выпускной квалификационной работы имеют практический интерес и могут быть рекомендованы разработчикам высоконагруженных информационных систем.


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

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

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


Данная выпускная квалификационная работа посвящена построению высоконагруженных, отказоустойчивых распределенных систем при помощи микросервисных технологий, основанных на реактивной архитектуре.
Соблюдение принципов построения микросервисов, основывающихся на принципах реактивных систем, позволяют разрабатывать информационные системы, соответствующие требованиям современного пользователя.
В процессе работы над выпускной квалификационной работой были решены следующие задачи:
Произведен анализ и дана характеристика существующей распределенной информационной системы, представляющую из себя группу тесно интегрированных сервисов, являющихся приложениями, построенными по принципам монолитной архитектуры. Описаны преимущества и недостатки монолитной архитектуры.
Рассмотрен альтернативный вариант проектирования приложений, описаны основные принципы построения реактивных систем, приведены преимущества микросервисов над монолитами.
Подробно разобраны основные требования к разрабатываемому микросервису. Построена архитектура разрабатываемого микросервиса на основе шаблона источника событий и фреймворка Lagom, служащего для построения реактивных микросервисов. Решена проблема передачи данных между сервисами экосистемы, в результате сравнительного анализа в качестве инструмента для доставки сообщений был выбран брокер сообщений Apache Kafka, с помощью которого разработанный микросервис был интегрирован в существующую информационную распределенную систему. Были описаны алгоритмы, по которым обрабатываются полученные сервисом команды. Представлены основные команды и события разрабатываемого сервиса, диаграмма классов-команд, архитектура распределенной информационной системы с интегрированным в нее микросервисом.
Основываясь на требованиях к данной выпускной квалификационной работе, был разработан гибкий, отказоустойчивый, горизонтально масштабируемый, реактивный микросервис, выполняющий функцию создания, изменения и закрытия договоров компании ООО «Квартплата 24» с организациями клиентами и платежными системами. Языком программирования для реализации кодовой базы микросервиса был выбран Scala.
Выполнено тестирование основного функционала разработанного микросервиса, а именно создание договора, изменение договора.
Результаты выполнения данной выпускной квалификационной работы имеют практический интерес и могут быть рекомендованы разработчикам высоконагруженных, производительных, отказоустойчивых информационных систем.



1. Вигерс К. Разработка требований к программному обеспечению // К. Вигерс, Д. Битти. - Спб:BHV,2014.-736с
2. Галимянов А.Ф., Галимянов Ф.А. Архитектура информационных систем. - Казань: Казан. ун-т, 2019. - 117 с.
3. Ездаков А.Л. Функциональное и логическое программирование. - М.: Бином. Лаборатория знаний, 2009. - 120 с.
4. Трутнев Д. Р. Архитектуры информационных систем. Основы проектирования: Учебное пособие. - СПб.: НИУ ИТМО, 2012. - 66 с.
5. Фаулер М. Рефакторинг. Улучшение существующего кода // М. Фаулер. - СПб : Символ Плюс, 2015. - 415с.
6. Шаблон источников событий [Электронный ресурс]. URL: https://docs.microsoft.com/ru-RU/azure/architecture/patterns/event-sourcing (дата обращения: 15.04.2022)
7. Шаблон материализованного представления [Электронный
ресурс]. URL: https://docs.microsoft.com/ru-
RU/azure/architecture/patterns/materialized-view (дата обращения: 16.04.2022)
8. Шаблон CQRS [Электронный ресурс]. URL:
https://docs.microsoft.com/ru-ru/azure/architecture/patterns/cqrs (дата
обращения 15.04.2022)
9. Akka Documentation [Электронный ресурс]. URL: https: //doc.akka.io/docs/akka/current/typed/actors .html (дата обращения: 10.02.2022)
10. Apache Kafka Introduction [Электронный ресурс]. URL: https://kafka.apache.org/intro (дата обращения 08.03.2022)
11. Baesens, B. Beginning Java Programming: The Object-Oriented Approach / B. Baesens, A. Backiel, S. Vanden Broucke. - 1st edition, Wrox, 2015.
12. CQRS, Event Sourcing and DDD FAQ [Электронный ресурс]. URL: https://cqrs.nu/Faq (дата обращения: 15.04.2022)
13. Deitel, H. Java How to Program / H. Deitel, P. Deitel. - 9th edition, Prentice Hall, 2015.
14. Duncan C. E. Winn. Cloud Foundry: The Definitive Guide: Develop, Deploy, and Scale 1st Edition, Kindle Edition. С. : O'Reilly Media, 2017. 478 с.
15. Functional Programming For The Rest of Us [Электронный ресурс]. - URL: https://www.defmacro.org/2006/06/19/fp.html (дата обращения: 02.02.2022)
16. Git Book [Электронный ресурс]. URL: https://git-
scm.com/book/en/v2 (дата обращения: 02.02.2022)
17. Hudson O. Getting started with IntelliJ IDEA // O. Hudson, Birmingham: Packt Publishing, 2013. - 114p.
18. JavaFX Overview [Электронный ресурс]. URL:
https://openjfx.io/javadoc/18/ (дата обращения: 15.04.2022)
19. Kleppmann M. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems Paperback. С. : O'Reilly Media, 2017. 616 с.
20. Krochmalski J. IntelliJ IDEA Essentials // J. Krochmalski. - Birmingham: Packt Publishing, 2014.-263p.
21. Lagom Documentation [Электронный ресурс]. URL: https://www.lagomframework.com/documentation/ (дата обращения: 15.04.2022)
22. PostgreSQL Documentation [Электронный ресурс]. URL: https://www.postgresql.org/docs/current/index.html (дата обращения: 10.04.2022)
23. RabbitMQ Tutorials [Электронный ресурс]. URL: https://www.rabbitmq.com/getstarted.html (дата обращения: 09.03.2022)
24. Scala Book [Электронный ресурс]. URL: https://docs.scala-
lang.org/overviews/scala-book/introduction.html (дата обращения:
02.02.2022)
25. Tutorials Technology [Электронный ресурс]. URL: http://www.gwtproject.org/doc/latest/tutorial/index.html (дата обращения: 09.03.2022)


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



Подобные работы


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