.. _smev_ql_component_model: Компонентная модель СМЭВ QL сервера ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Общее представление ###################### СМЭВ QL сервер представляет собой бэк-энд сервис, состоящий из определенного набора функциональных модулей, файловой системы (набор папок и yaml-файлов) и персистентного хранилища, реализованного на Reddis. Для обращения к СМЭВ QL сервер используется набор методов OpenAPI. Схема ####### .. _component_schema: .. figure:: img/component_schema.png :align: center :alt: Компонентная модель СМЭВ QL сервера Компонентная модель СМЭВ QL сервера Описание компонентов ##################### .. table:: Описание компонентов СМЭВ 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 сервера, реализующих его логику работы. Перечень | | | и функциональное назначение модулей в :numref:`tab_smev_ql_modules` | +--------------------+---------------------------------------------------------------------------------------------+ | Файловое хранилище | Структура папок и файлов СМЭВ QL сервера. Хранит настройки и описание моделей ключевых | | | сущностей: модель данных, описание источников данных, машины состояний и пр. | +--------------------+---------------------------------------------------------------------------------------------+ .. _tab_smev_ql_modules: .. table:: Модули СМЭВ 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 | Запись путей вызова обработчиков | +----+------------------------+---------------------------------------------------------------------------------------+