7. Компонентная модель СМЭВ QL сервера

7.1. Общее представление

СМЭВ QL сервер представляет собой бэк-энд сервис, состоящий из определенного набора функциональных модулей, файловой системы (набор папок и yaml-файлов) и персистентного хранилища, реализованного на Redis. Для обращения к СМЭВ QL серверу используется набор методов OpenAPI.

7.2. Схема

Компонентная модель СМЭВ QL сервера

Рисунок - 7.43 Компонентная модель СМЭВ QL сервера

7.3. Описание компонентов

Таблица 7.3 Описание компонентов СМЭВ QL сервера

Компонент

Описание

Утилита создания и запуска smevql

Утилита, позволяющая в терминальном режиме запускать команды для создания и запуска экземпляра СМЭВ QL сервера, а так же выполнять операции по работе с ключевыми сущностями СМЭВ QL (генерация моделей данных, подключение источников данных и т.д.).

Перечень доступных команд:

  1. Создание нового экземпляра СМЭВ-QL сервера: java -jar smevql-server-all.jar new;

  2. Добавление источника данных: ./smevql g source;

  3. Добавление модели данных: ./smevql g model;

  4. Запуск приложения: ./smevql start -e;

  5. Генерация openAPI: yaml g openapi.

Reddis

Хранилище персистентных данных СМЭВ QL сервера.

Модули smevql

Набор функциональных модулей СМЭВ QL сервера, реализующих его логику работы. Перечень и функциональное назначение модулей в Таблица 2.18

Файловое хранилище

Структура папок и файлов СМЭВ QL сервера. Хранит настройки и описание моделей ключевых сущностей: модель данных, описание источников данных, машины состояний и пр.

Таблица 7.4 Модули СМЭВ QL

Модуль

Функциональное назначение

1

configureKoin

2

configureSerialization

3

configureMetrics

4

accessModule

Управление доступами потребителей данных. Конфигурирование «чёрных» и «белых» списков

5

serverModule

6

pingModule

Проверка доступности СМЭВ QL сервера

7

limitModule

Управление лимитами входящих запросов от потребителей данных

8

dataSourceModule

Управление моделями источников данных

9

dataModelModule

Управление моделями данных

10

dataModule

Обработка входящих запросов

11

stateMachineModule

Управление моделями, запуск и исполнение машин-состояний

12

pushModule

Управление подписчиками на изменение данных витрины и передача уведомлений

13

swaggerModule

Создание и предоставление внешнему клиенту описания openAPI спецификации

14

printRoutes

Запись путей вызова обработчиков