Аннотация 2
Введение 5
Глава 1 Характеристика организации и анализ существующих сервисов 7
1.1 Характеристика и анализ сервисов организации с точки зрения
архитектуры 7
1.2 Характеристика реактивной архитектуры 12
1.3 Обоснование перехода с проприетарного протокола передачи
данных RAP на протокол gRPC 13
1.4 Постановка задачи на разработку 20
Глава 2 Построение интерфейса унифицированного доступа 22
2.1 Требования к разрабатываемому сервису 22
2.2 Проектирование архитектуры сервиса 23
2.3 Описание инструментов разработки сервиса 25
2.4 Разработка диаграммы классов сервиса 30
Глава 3 Разработка интерфейса унифицированного доступа 35
3.1 Выбор средств реализации 35
3.2 Реализация основных модулей сервиса и интегрирование его с
другими сервисами экосистемы 37
3.3 Тестирование работоспособности интерфейса унифицированного
доступа 43
Заключение 46
Список используемой литературы 47
Приложение А Фрагмент конфигурации Envoy-proxy 49
Приложение Б Листинг кода класса Launcher 52
Приложение В Фрагмент кода класса RestRequestListener 53
Приложение Г Фрагмент кода класса RpcRequestListener 54
В современном информационном обществе актуальной задачей является обеспечение эффективного доступа к различным источникам данных, которые могут быть распределены по разным узлам сети и иметь разную структуру и формат.
По мере роста клиентской базы, возрастает и нагрузка на сервисы в целом, что приводит к замедлению обработки и передачи ответов на запросы, что может негативно сказаться на клиентском опыте. Также происходит и увеличение числа сервисов, что делает проблематичным работу с их API, и приводит к трудностям в процессе разработки.
Для решения этой задачи необходимо разработать программный интерфейс, который позволит унифицировать и абстрагировать доступ к данным, скрыть детали реализации и хранения данных от пользователя и обеспечить высокую производительность и надежность обмена данными. Такой программный интерфейс должен быть адаптивным, то есть способным подстраиваться под разные типы данных и запросов, а также реактивным, то есть способным отвечать на изменения в данных и среде в реальном времени.
Актуальность работы заключается в необходимости перехода от устаревших архитектур и инструментов к более современным, производительным решениям, которые позволят удовлетворить нужды клиентов.
Объектом исследования является программный интерфейс унифицированного доступа к распределенной реактивной информационной системе.
Предметом исследования являются методы и технологии для разработки программного интерфейса унифицированного доступа к распределенной реактивной информационной системе.
Цель выпускной квалификационной работы - модернизация существующей экосистемы сервисов посредством разработки программного интерфейс для унифицированного доступа к распределенной реактивной информационной системе на основе анализа существующих подходов и технологий, с учетом принципов реактивной архитектуры.
Для достижения поставленной цели необходимо решить следующие задачи:
• изучить существующие подходы и технологии для организации доступа к данным в распределенных системах.
• спроектировать архитектуру программного интерфейса унифицированного доступа к РРИС, выбрать подходящие протоколы и форматы обмена данными.
• разработать алгоритмы и методы для реализации программного интерфейса унифицированного доступа к распределённой информационной системе, обеспечивающие адаптивность и реактивность.
• произвести тестирование и оценку эффективности разработанного программного интерфейса унифицированного доступа.
Научная новизна работы заключается в разработке программного интерфейса унифицированного доступа к РРИС, который позволяет абстрагировать пользователя от деталей распределения и хранения данных, адаптироваться к различным типам данных и запросов, реагировать на изменения в данных и среде в реальном времени.
В качестве методов исследования выступают микросервисная и реактивная архитектуры.
Работа состоит из трех глав. В первой главе описывается экосистема сервисов в ООО «Квартплата 24», дается характеристика текущим решениям и обосновывается причина отказа от них. Во второй главе обозначаются требования к разрабатываемому продукту, описывается процесс проектирования архитектуры сервисов, осуществляется выбор инструментов реализации и разработка диаграмм класса сервиса. В третьей главе описываются инструменты разработки и процесс разработки интерфейса унифицированного доступа.
Данная выпускная квалификационная работа посвящена построению интерфейса унифицированного доступа к высоконагруженным, отказоустойчивым информационным системам, с использованием микросервисных технологий, основанных на реактивной архитектуре.
В процессе выполнения выпускной квалификационной работы был выполнен ряд задач.
Был произведен анализ и дана характеристика существующей распределенной реактивной информационной системе, представляющую из себя группу тесно интегрированных сервисов, представляющих собой смесь монолитных и микросервисных приложений.
Подробно разобраны основные требования к разрабатываемому сервису, спроектирована его архитектура на основе паттерна API Gateway. Были подобраны инструменты разработки - прокси Envoy и OAuth 2.0 для авторизации пользователей с использованием JWT-токенов.
Основываясь на описанных требованиях, был разработан гибкий и отказоустойчивый сервис, выполняющий функцию единой точкой входа для API и авторизации и аутентификации пользователей для отдельных сервисов экосистемы ООО «Квартплата 24». Языком программирования для реализации сервиса был выбран Scala, а в качестве среды разработки была выбрана IntelliJIdea.
Выполнено тестирование основного функционала разработанного сервиса.
Результаты выполнения данной выпускной квалификационной работы имеют практический интерес и могут быть рекомендованы разработчикам высоконагруженных, производительных, отказоустойчивых информационных систем.