Содержание 2
Глоссарий 3
Введение 5
1. Обзор предметной области 8
1.1 Разбор существующих архитектур 8
1.2 Система информеров 12
1.3 Требование к системе информеров 14
2. Проектирование системы 16
2.1. Используемые технологии 16
2.2 Сущности 18
3. Разработка системы 20
3.1 Валидация 20
3.2. Обновление информера 22
3.3. API 25
Заключение 27
Список использованных источников 29
Уже на данном этапе развития рынка IT услуг конечный пользователь программного продукта тяжело переносит сбои в работе программного обеспечения. Современный рынок информационных технологий наполнен разнообразием услуг, у каждого сервиса есть аналоги со своими плюсами и недостатками, из-за этого конечным клиентом не прощается регулярные сбои работы приложения или ответа сервера. Поэтому для бизнеса на данный момент времени выдвигаются на передний план такие показатели, как надежность и качество.
Одной из частей жизненного цикла любого приложения является разработка его архитектуры. От того как будет спроектирована его архитектура зависит безопасность, производительность, скорость добавления нового функционала а также возможность использования готовых функций текущего проекта в последующих. Архитектура - “фундамент” приложения, от которого зависит вся дальнейшая работа с ним, поэтому очень важно уделить достаточное внимание проработке всех нюансов на начальном этапе, так как рефакторинг и изменения архитектуры на последующих жизненных циклах будут стоить большого количества часов.
Также немаловажным является человеческий фактор, не стоит забывать, что после разработки архитектуры, со временем приложение будет дополнятся новым функционалом, то есть с написанным, готовым приложением будут работать люди, важно, чтобы структура проекта была понятна и не имела слишком высокого порога входа, дабы не увеличивать время разработки.
На данный момент есть несколько подходов к проектированию архитектур, самые популярные из них: “монолит” и микросервисы. При этом микросервисная архитектура появилась совсем недавно ( в середине 2010-х годов), что подтверждает актуальность данной проблемы, так как до сих пор с изменением рынка изменяются и способы проектирования информационных систем.
Целью данной работы является разработка микросервиса системы информеров для компании “Управление информационными проектами” как часть микросервисной архитектуры.
Для достижение цели поставлены следующие задачи:
1. Согласовать с компанией требования к системе информеров.
2. Разработать архитектуру приложения и выбрать технологии акцентируя внимание на расширяемость и конфигурируемость, слабую связность.
3. Реализовать микросервис.
Так как невозможно максимально точно оценить правильность выбора архитектуры приложения или же выбора тех или иных решений при реализации той или иной бизнес-логики, поэтому необходимо реализовывать приложения делая акцент на слабую связность, предполагая, что изменения в код будут вноситься часто.
В результате выполнения выпускной квалификационной работы был разработан микросервис системы информеров. Кодовая база получилась гибкой, конфигурируемой и читаемой, что позволит добавлять или изменять функционал затрачивая меньше ценных человеко-часов. По возможности максимально были использованы паттерны порождающие и поведенческие проектирования. Использованы современные технологии WEB-разработки.
В ходе работы были решены следующие задачи:
• Согласовать с компанией требования к системе информеров
• Разработать архитектуру приложения акцентируя внимание на расширяемость и конфигурируемость, выбрать технологии для реализации.
• Реализовать приложение.
• Разработать документацию к апи.
Компания «Управление информационными проектами» приняла разработанный микросервис системы информеров, как элемент микросервисной архитектуры.
В дальнейшем планируется добавить:
• модуль администрирования
• авторизацию через OAuth и JWT-token
созданный в рамках данной работы интерфейс