Сервисная архитектура

Редактировал(а) Александра Баруткина 2024/06/27 13:20

Сервисная архитектура

1. Системная архитектура решения

1.1 Описание сервисов

№ п/пНаименование сервисаСистема и ПООписание
ПОПоставщик
1Сервис точки входаNginxNginxСервис единой точки входа на базе Nginx
2Сервис веб приложенийNginxNginxСервис веб приложений на базе Nginx
3Сервис логирования действий пользователяNginxNginx

Сервис, реализующий логирование действий

пользователя на основании запросов, отправляемых им на веб сервер.

4Сервис авторизацииKeycloakKeycloakСервис авторизации с поддержкой SSO и различных систем авторизации на базе Keycloak (LDAP, AD и т.д.)
5Сервис управления ролями и полномочиямиJavaGoodtСервис управления ролями и полномочиями пользователей системы. Настройка доступа к объектам и данным системы.
6Сервис конфигурации системыJavaGoodtСервис для конфигурирования системы.
7Сервис приложения Ядро системыJavaGoodt

Сервис оргструктуры и работы с базовыми компонентами системы.

Любые данные по организационной структуре получаются у данного сервиса. Необходим для работы практически любого сервиса бизнес

процессов.

Работа с “тасками” (карточки целей, цели, карточки развития и т.д.), сервисы справочных данных и другие.

Является логическим центром системы, объединяющим логику выполнения большинства бизнес задач системы. Например, задач, требующих ряд последовательных вызовов различных сервисов с последовательной обработкой результата,

полученного от каждого из них.

8Сервис приложения ОпросыJavaGoodtСервис управления и прохождения опросов, включающий в себя работу с каталогами опросов, назначение участников и фиксацию результатов.
9Сервис приложения ОтчетыJavaGoodtСервис формирования печатных форм.
10Сервис приложения Оценка эффективностиJavaGoodtСервис оценки эффективности персонала на базе мониторинга основных показателей по процессу управления сотрудниками.
11Сервис приложения Менеджер управления сообщениямиJavaGoodtСервис управления конфигурациями и правилами отправки сообщений. Формирование и отправка сообщений в каналы брокера сообщений.
12Сервис приложения Менеджер отправки сообщенийJavaGoodtСервис, осуществляющий передачу сообщений системы их адресатам (пользователям системы).
13Сервис приложения Менеджер загрузки файловJavaGoodtСервис загрузки и хранения файлов, появляющихся в процессе работы системы.
14Сервис фоновых процессовJavaGoodtСервис хранения и выполнения фоновых процессов системы. С собственным планировщиком выполнения задач.
15Коннектор данныхJavaGoodtСервис обработки запросов к витринам.
16Фронт приложения РедакторNginxGoodtСервис фронтэнд редактора приложений (СУП). Для работы с приложениями и их метаданными.
17Сервис приложения РедакторJavaGoodtСервис бэкэнд редактора приложений (СУП). Для работы с приложениями и их метаданными.
18Брокер сообщенийApache KafkaApacheБрокер, осуществляющий сбор сообщений в системе на базе Apache Kafka.
19Сервис СУБДPostgreSQLPostgreSQL

Структурированное хранилище данных на базе PostgreSQL. Обеспечивает данными практически

любой сервис системы, в том числе витрины данных.

20Сервис хранилища S3S3CustomХранилище данных на базе архитектуры S3.
21

Сервис приложения

Интеграционная шина

JavaGoodtСервис для получения данных по интеграции.

1.2 Схема соответствия сервисов и баз данных

Сервисная архитектура 20240125-1_84f002e06ef648b0.jpg

1.3 Таблица соответствия сервисов и баз данных.

п/пНаименование сервисаСхема Базы ДанныхБаза Данных
1Сервис авторизацииpublickeycloak
2Сервис управления ролями и полномочиямиpublicauthority
3Сервис конфигурации системыconfigurationrtl
4Сервис приложения Ядро системыrt_corertl
5Сервис приложения Опросыquizrtl
6Сервис приложения Отчетыreportrtl
7Сервис приложения Оценка эффективностиmonitorrtl
8Сервис приложения Менеджер управления сообщениямиnotificationsrtl
9Сервис приложения Менеджер отправки сообщенийfileuploadrtl
10Сервис приложения Менеджер загрузки файловkafka_messengerrtl
11Сервис фоновых процессовpublicjob
12Коннектор данныхpublicconnector
13Сервис приложения Редакторpublicsupeditor
14Сервис приложения Интеграционная шинаintegrationrtl

1.4 Схема соответствия сервисов и программного обеспечения

Сервисная архитектура 20240125-1_5e6b2915be2a96ca.jpg

1.5 Таблица соответствия сервисов и программного обеспечения

№ п/пНаименование сервисаПрограммное обеспечение
1Сервис приложения Ядро системыS3
2Сервис приложения Менеджер отправки сообщенийApache Kafka
3Сервис приложения Менеджер загрузки файловS3
4Сервис фоновых процессовApache Kafka
S3
5Сервис приложения Менеджер управления сообщениямиS3

1.6 Схема соответствия процессов системы и сервисов

Сервисная архитектура 20240125-1_c805e6b7166876b4.jpg

1.7 Таблица соответствия процессов системы и сервисов

№ п/пПроцесс модуляМодуль системыНаименования сервисов
1

Профиль

подразделения

Базовая функциональностьСервис приложения Ядро системы
2Организационная структураБазовая функциональностьСервис приложения Ядро системы
3Фоновые процессыБазовая функциональностьСервис фоновых процессов
4Ролевая модельБазовая функциональностьСервис управления ролями и полномочиями
5Главная страницаБазовая функциональностьСервис конфигурации системы
6Профиль работникаБазовая функциональностьСервис приложения Ядро системы
7Целеполагание V1ЦелеполаганиеСервис приложения Ядро системы
8Целеполагание V2ЦелеполаганиеСервис приложения Ядро системы
9Оценка персоналаОценкаСервис приложения Ядро системы
10Управление компетенциямиОценкаСервис приложения Ядро системы
11АттестацияОценкаСервис приложения Ядро системы
Сервис приложения Опросы
12

Управление

профилями должностей

ОценкаСервис приложения Ядро системы
13АдаптацияАдаптацияСервис приложения Ядро системы
14

Управление

преемственностью

Карьера и развитиеСервис приложения Ядро системы
15Управление кадровым резервомКарьера и развитиеСервис приложения Ядро системы
16Управление ротациейКарьера и развитиеСервис приложения Ядро системы
Сервис приложения Опросы
17Управление планами развитияКарьера и развитиеСервис приложения Ядро системы
18Управление карьерным планированиемКарьера и развитиеСервис приложения Ядро системы
Сервис приложения Опросы
19Управление проектным персоналомКарьера и развитиеСервис приложения Ядро системы
20Рассылка нотификацийСервис системных нотификацийСервис приложения Менеджер отправки сообщений
21Средства аналитики нотификацийСервис системных нотификацийСервис приложения Менеджер управления сообщениями
22Типовые нотификацииСервис системных нотификацийСервис приложения Менеджер управления сообщениями
23Оформление нотификацийСервис системных нотификацийСервис приложения Менеджер управления сообщениями
24Подписчики нотификацийСервис системных нотификацийСервис приложения Менеджер управления сообщениями
25Массовые нотификацииСервис системных нотификацийСервис приложения Менеджер управления сообщениями

1.8 Схема взаимодействия между сервисами

Сервисная архитектура 20240125-1_4e153383e5843e66.jpg

1.9 Порты и протоколы взаимодействия

№ п/п Наименование сервисаИмя хостаПорты
1Сервис точки входа[host]-balancer22, 443
2Сервис веб приложений[host]-webserver22, 443
3Сервис логирования действий пользователя[host]-weblog22, 443
4Сервис авторизации[host]-auth22, 9443
5Сервис управления ролями и полномочиями[host]-app-authority22, 8091
6Сервис конфигурации системы[host]-configuration22, 8092
7Сервис приложения Ядро системы[host]-app-rt-core22, 8071
8Сервис приложения Опросы[host]-app-quiz22, 8025
9Сервис приложения Отчеты[host]-app-report22, 8089
10Сервис приложения Оценка эффективности[host]-app-monitor22, 8095
11Сервис приложения Менеджер управления сообщениями[host]-notify22, 8094
12Сервис приложения Менеджер отправки сообщений[host]-app-messenger22, 8030
13Сервис приложения Менеджер загрузки файлов[host]-fileupload22, 8099, 9000, 9090
14Сервис фоновых процессов[host]-job22, 8094
15Коннектор данных[host]-connector22, 4000
16Фронт приложения Редактор[host]-editor-front22, 443
17Сервис приложения Редактор[host]-editor-back22, 8097
18Брокер сообщений[host]-kafka22, 9092
19Сервис СУБД[host]-db22, 5432
20Сервис хранилища S3[host]-s322, 443
21

Сервис приложения

Интеграционная шина

[host]-integration22, 8080

2. Взаимодействие с системой авторизации

Аутентификация и авторизация пользователей выполняется в KeyCloak с использованием внутреннего логина и пароля пользователя для системы заказчика.

Пользовательский процесс аутентификации и авторизации:

  1. При переходе без авторизации на защищенную страницу, пользователь переходит на страницу аутентификации Keycloak.
  2. Пользователь вводит валидную пару username:password или использует иной провайдер авторизации, доступный на странице аутентификации.
  3. После успешной аутентификации пользователь получает JWT ключ авторизации и возвращается на защищенную страницу.
  4. Все последующие обращения к страницам или бэкэнд методам производятся с использованием полученного JWT ключа.

Сервисы приложений получают и расшифровывают JWT ключ пользователя по заложенному в них RSA ключу. Следующим этапом, сервисы опознают инициатора и предоставляют ему информацию в соответствии с его правами доступа.

Дополнительную информацию о сервисе Keycloak можно получить из официальной документации по ссылке https://www.keycloak.org/documentation.