Структура Витрины данных
=============================
Составные части Витрины данных
--------------------------------
Программа имеет модульную архитектуру и построена на базе различных компонентов (включая разработки сторонних производителей).
Общую схему взаимосвязей компонентов можно просмотреть в разделе Архитектура программы.
Функционально, программа состоит из следующих частей:
**Основные компоненты**
- **ProStore** - основной компонент программы с открытым исходным кодом, обеспечивает единый интерфейс к хранилищу разнородных данных. Определяет структуры данных, запись и чтение данных Витрины. Позволяет работать со входящими в состав хранилища СУБД одинаковым образом, используя единый синтаксис запросов SQL и единую логическую схему данных. ProStore включает следующие компоненты:
- *Сервис исполнения запросов* — анализирует и исполняет SQL-запросы; предоставляет REST API для JDBC-драйвера и взаимодействует с сервисом мониторинга статусов Kafka по REST API. В свою очередь состоит из следующих компонентов:
- Коннектор *Kafka-Postgres reader* - считывает данные из PostgreSQL и передает их в брокер сообщений Kafka;
- Коннектор *Kafka-Postgres writer* - записывает данные из брокера сообщений Kafka в PostgreSQL;
- *Сервис мониторинга статусов Kafka* — отслеживает состояние топиков брокера сообщений Kafka; предоставляет REST API для сервиса исполнения запросов;
- **Apache ZooKeeper** - необходим для поддержки информации о конфигурации и распределенной координации между компонентами Витрины, также используется как сервисная база данных ProStore, для хранения технической информации (метаданных) от поступающих в Витрину данных запросах;
- **Брокер сообщений Kafka** - используется для непрерывной передачи сообщений между ПОДД-адаптером - Модуль исполнения запросов и Агентом ПОДД;
- **Слой адаптеров** - общее название логических модулей программы, которые обеспечивают подключение к ПОДД СМЭВ, как информационной системы участника взаимодействия. В зависимости от предназначения логические модули обеспечивают загрузку запросов из очереди `ИС УВ `_ в `ПОДД СМЭВ `_ , формирование и отправку ответов в ПОДД СМЭВ, инициативное формирование уведомлений об изменении данных в экземпляре ПО «Витрина данных НСУД», отправку уведомлений в ПОДД СМЭВ, регистрацию реплики данных ИС УВ, подписки на репликацию и поддержку реплики в актуальном состоянии.
**Компоненты, входящие в состав слоя адаптеров**
- **СМЭВ3-адаптер** - обеспечивает информационное взаимодействие через единый электронный сервис единой системы межведомственного электронного взаимодействия (далее – СМЭВ).
- **Сервис формирования документов** - предназначен для обеспечения возможности формирования документов, в формате XML и PDF, на основе предварительно подготовленных pebble-шаблонов, с возможностью добавления к сформированным документам электронной подписи.
- **CSV-Uploader** - программный модуль Витрины данных, предназначен для следующих задач:
- загрузка csv-файлов;
- загрузка csv-файлов со структурой Витрины;
- выгрузка csv-шаблонов с демо-шаблонами структуры Витрины;
- автоматический запуск загрузки csv-файлов по расписанию из выбранного каталога;
- просмотр Журнала операций.
- **ПОДД-адаптер - Модуль исполнения запросов** - предназначен для исполнения запросов ПОДД СМЭВ (через протокол коммуникации Агент ПОДД).
- **ПОДД-адаптер – Модуль MPPR** - предназначен для чтения данных в многопоточном режиме.
- **ПОДД-адаптер - Модуль MPPW** - исполняет запросы в многопоточном режиме, записывающие данные в Prostore.
- **ПОДД-адаптер - Модуль группировки данных табличных параметров** - предназначен для группировки данных при выполнении запросов с табличными параметрами.
- **ПОДД-адаптер - Модуль импорта табличных параметров** - предназначен для создания временных таблиц при выполнении временных запросов с табличными параметрами.
- **ПОДД-адаптер - Wrapper** - образует пакеты с данными табличных параметров, поступающие от Агента ПОДД в брокер сообщений Kafka, к формату, позволяющему обрабатывать их в многопоточном режиме.
- **ПОДД-адаптер - Модуль подписок** - предназначен для управления подписками между Получателем данных (consumer) и Поставщиком данных (producer).
- **BLOB-адаптер** - программный модуль Витрины данных, предназначен для получения доступа из Витрины данных к BLOB-объектам ведомства (BLOB-объект - это специальный тип двоичных данных, предназначенный для хранения бинарных файлов: изображений, скан-копий документов, текстовых файлов и т.д.).
- **DATA-Uploader** - Модуль исполнения асинхронных заданий обеспечивает обработку очереди файлов, используя следующие функциональные особенности:
- обработка очереди файлов производится циклами;
- очередь файлов работает в режиме упорядочения процесса по принципу «первым пришел – первым обслужен»;
- каждый элемент в очереди файлов содержит UUID задания, имя витрины и таблицы, содержимое CSV-файла;
- файлы в очереди могут относится к разным витринам и/или разным таблицам одной витрины.
- **REST-Uploader** - Модуль асинхронной загрузки данных из сторонних источников реализован для обеспечения параллельной загрузки данных с независимым масштабированием REST интерфейса.
- **REST-адаптер** - сервис, реализующий публикацию конечных точек API для обработки запросов с использованием спецификации OpenAPI версии 3. Используется для сохранения обратной совместимости получения данных из ведомства по REST.
- **Counter-provider** - Сервис генерации уникального номера (Counter-Provider) позволяет создавать неповторяющиеся уникальные порядковые номера для сквозной нумерации файлов в сервисе формирования документов Типового ПО Витрины данных конфигурации установки Стандарт;
- **СМЭВ QL Сервер** - СМЭВ QL Сервер — приложение для конфигурирования и запуска типового API извлечения данных из хранилищ под управлением типового ПО «Витрина данных» от Минцифры (Ядро Prostore 6.1+). СМЭВ QL Сервер обладает характеристиками:
- поддержка множественных источников данных Prostore;
- выбор источника по условиям запроса;
- защита атрибутов модели данных по их предоставлению;
- автоматический параллелизм запросов к Prostore.
- **dtm-calcite-core** - библиотека Calcite осуществляет парсинг классов, которые используются в библиотеке podd-adapter-calcite.
**Дополнительные компоненты**
Рекомендуемое программное обеспечение для администрирования и мониторинга (не входит в поставку программы):
- **Grafana** - инструмент реализован в виде панели управления и мониторинга и позволяет визуализировать системные события программы на базе собираемых метрик. Официальный сайт разработчика приложения: https://grafana.com/docs/
- **Prometheus** - используется как система мониторинга системных ресурсов программы. Связь компонентов реализована через HTTP. Данные хранятся локально, в собственной TSBD базе, индексы хранятся в LevelDB. Метрики представляют собой time-series данные. Каждая метрика состоит из имени метрики, временной метки и пары «ключ – значение». Визуализация осуществляется через подключение к Grafana. Официальный сайт разработчика приложения: https://prometheus.io/.
- **Graylog** - программное обеспечение для управления лог-файлами. Официальный сайт разработчика приложения: https://www.graylog.org/.
- **МongoDB** - база данных *Graylog*. Официальный сайт разработчика приложения: https://www.mongodb.com/
- **Elasticsearch** - система поиска и аналитики, позволяет быстро в режиме реального времени хранить, искать и анализировать большие объемы данных и сохраняет их для *Graylog*. Для передачи сообщений в *Graylog* использует *Filebeat*. Официальный сайт разработчика приложения: https://www.elastic.co/elasticsearch/
- **Filebeat** - агент на сервере для отправки различных типов оперативных данных в *Elasticsearch*. Официальный сайт разработчика приложения: https://www.elastic.co/elasticsearch/
- **Node_exporter** - процессы, обеспечивающие сбор и передачу системных метрик серверу *Prometheus*. Также, используется для сбора метрик модулей *ПОДД-адаптера* и *CSV-uploader* см. https://github.com/prometheus/node_exporter.
- **Docker** - программное обеспечение для автоматизации развёртывания и управления программы в виртуальных средах с поддержкой контейнеризации. Используется для установки Arenadata Cluster Manager (ADCM). Официальный сайт разработчика приложения: https://www.docker.com/
Модули Витрины данных
-----------------------
BLOB-адаптер
~~~~~~~~~~~~
.. Описание Блоб-адаптер
.. Подключаем файл с описанием БЛОБ-адаптер
.. include:: ../../modules/blob-adapter/doc/blob_adapter_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
Сервис формирования документов
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание Сервис формирования документов
.. Подключаем файл с описанием Сервис формирования документов
.. include:: ../../modules/printable-form-service/doc/printable_form_service_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
СМЭВ3-адаптер
~~~~~~~~~~~~~
.. Описание СМЭВ3-адаптер
.. Подключаем файл с описанием СМЭВ3-адаптер
.. include:: ../../modules/smev3-adapter/doc/smev3_adapter_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
ПОДД-адаптер-Модуль исполнения запросов
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание ПОДД-адаптер-Модуль исполнения запросов
.. Подключаем файл с описанием ПОДД-адаптер-Модуль исполнения запросов
.. include:: ../../modules/podd-adapter-query/doc/podd_adapter_query_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
ПОДД-адаптер – Модуль MPPR
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание ПОДД-адаптер – Модуль MPPR
.. Подключаем файл с описанием ПОДД-адаптер – Модуль MPPR
.. include:: ../../modules/podd-adapter-mppr/doc/podd_adapter_mppr_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
ПОДД-адаптер-Модуль MPPW
~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание ПОДД-адаптер-Модуль MPPW
.. Подключаем файл с описанием ПОДД-адаптер-Модуль MPPW
.. include:: /modules/podd-adapter-mppw/doc/podd_adapter_mppw_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
ПОДД-адаптер - Модуль группировки данных табличных параметров
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание ПОДД-адаптер - Модуль группировки данных табличных параметров
.. Подключаем файл с описанием ПОДД-адаптер - Модуль группировки данных табличных параметров
.. include:: ../../modules/podd-adapter-group-tp/doc/podd_adapter_group_tp_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
ПОДД-адаптер - Модуль импорта табличных параметров
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание ПОДД-адаптер - Модуль импорта табличных параметров
.. Подключаем файл с описанием ПОДД-адаптер - Модуль импорта табличных параметров
.. include:: ../../modules/podd-adapter-import-tp/doc/podd_adapter_import_tp_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
ПОДД-адаптер - Wrapper
~~~~~~~~~~~~~~~~~~~~~~
.. Описание ПОДД-адаптер - Wrapper
.. Подключаем файл с описанием ПОДД-адаптер - Wrapper
.. include:: ../../modules/podd-avro-defragmentator/doc/podd_avro_defragmentator_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
Модуль группировки чанков репликации
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание модуля
.. Подключаем файл с описанием модуля
.. include:: ../../modules/podd-adapter-group-repl/doc/podd_adapter_group_repl_doc.rst
DATA-Uploader - Модуль исполнения асинхронных заданий
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание DATA-Uploader - Модуль исполнения асинхронных заданий
.. Подключаем файл с описанием DATA-Uploader - Модуль исполнения асинхронных заданий
.. include:: ../../modules/data-uploader/doc/data_uploader_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
REST-Uploader - Модуль асинхронной загрузки данных из сторонних источников
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание REST-Uploader - Модуль асинхронной загрузки данных из сторонних источников
.. Подключаем файл с описанием REST-Uploader - Модуль асинхронной загрузки данных из сторонних источников
.. include:: ../../modules/rest-uploader/doc/rest_uploader_doc.rst
.. Подключаем файл с описанием ФЛК
.. include:: ../../modules/rest-uploader/doc/rest_uploader_format_control.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
ПОДД-адаптер - Модуль подписки
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. Описание ПОДД-адаптер - Модуль подписки
.. Подключаем файл с описанием ПОДД-адаптер - Модуль подписки
.. include:: ../../modules/podd-adapter-replicator/doc/podd_adapter_replicator_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
REST-адаптер
~~~~~~~~~~~~
Схема взаимодействия через СМЭВ3-адаптер
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
REST-адаптер представляет возможность подключения Внешней ИС к Витрине данных через REST-адаптер (см. :numref:`static_uml_modules_rest`).
.. _static_uml_modules_rest:
.. uml:: /_static/uml/modules/rest.uml
:align: center
:alt: Взаимодействие Внешней ИС через REST-адаптер
:caption: *Взаимодействие Внешней ИС через REST-адаптер*
Внешняя ИС формирует REST-запрос и отправляет его в REST-адаптер.
REST-адаптер:
- На основании своих настроек преобразует полученный REST-запрос в SQL-запрос.
- Отправляет сформированный SQL-запрос в Витрину данных.
- Преобразует полученный от Витрины данных ответ на SQL-запрос в REST-ответ.
- Отправляет сформированный REST-ответ Внешней ИС.
При взаимодействии через REST-адаптер программа выполняет следующие основные операции по обработке данных:
- предоставляет программный интерфейс к конечным точкам API по протоколу HTTP.
- конечная точка доступа поддерживает конфигурирование, которое позволяет:
- с использованием атрибутов HTTP-запроса построить и выполнить SQL-запросы из Внешней ИС к программе;
- с использованием атрибутов HTTP-запроса и результатов SQL-запросов построить и отправить ответ на HTTP-запрос из программы к Внешней ИС;
- документировать сконфигурированный API с использованием спецификации OpenAPI версии 3.
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
СМЭВ QL Сервер
~~~~~~~~~~~~~~~
.. Описание СМЭВ QL Сервер
.. Подключаем файл с описанием СМЭВ QL Сервер
.. include:: ../../modules/smev-ql/doc/smev_ql_doc.rst
Описание настроек модуля, запуск и остановка модуля см. "Руководстве администратора".
Состав компонентов в дистрибутиве
---------------------------------
Перечень состава компонентов программы версии 1.12.0 приведен в таблице ниже (см. :numref:`tab_4`)
.. _tab_4:
.. table:: Состав компонентов в дистрибутиве программы
======================== ========== ==============================
Наименование компонента Версия Техническое наименование
======================== ========== ==============================
ПОДД Агент 3.8.0 ПОДД-Агент:3.8.0
СМЭВ3-адаптер 1.12.0 smev3-adapter:1.12.0
printable-form-service 1.12.0 printable-form-service:1.12.0
rest-adapter 1.12.0 rest-adapter:1.12.0
rest-uploader 1.12.0 rest-uploader:1.12.0
data-uploader 1.12.0 data-uploader:1.12.0
blob-adapter 1.12.0 blob-adapter:1.12.0
podd-adapter-query 1.12.0 podd-adapter-query:1.12.0
podd-adapter-replicator 1.12.0 podd-adapter-replicator:1.12.0
podd-adapter-group-repl 1.12.0 podd-adapter-group-repl:1.12.0
podd-adapter-mppr 1.12.0 podd-adapter-mppr:1.12.0
podd-adapter-mppw 1.12.0 podd-adapter-mppw:1.12.0
podd-adapter-group-tp 1.12.0 podd-adapter-group-tp:1.12.0
podd-adapter-import-tp 1.12.0 podd-adapter-import-tp:1.12.0
podd-avro-defragmentator 1.12.0 podd-avro-defragmentator:1.12.0
smevql-server 1.12.0 smevql-server:1.12.0
csv-uploader 1.12.0 csv-uploader:1.12.0
counter-provider 1.12.0 counter-provider:1.12.0
backup-manager 1.12.0 backup-manager:1.12.0
query-execution 6.7.0 query-execution:6.7.0
status-monitor 6.7.0 status-monitor:6.7.0
kafka 2.6.0 kafka:2.6.0
zookeeper 3.5.7 zookeeper:3.5.7
redis 7.0.11 redis:7.0.11
fdw 0.10.2 fdw:0.10.2
pxf 1.0 pxf:1.0
======================== ========== ==============================
«Установка опциональна» означает - что необходимость установки компонента определяется из схемы развертывания витрины в конкретном ведомстве.
Конкретная конфигурация Витрины данных определяется Участником взаимодействия на этапе реализации Витрины данных в составе ИТ-инфраструктуры Участника взаимодействия.
Cвязи между составными частями
------------------------------
Взаимосвязи между составными частями программы приведены в :numref:`tab_5`.
.. _tab_5:
.. table:: Взаимодействие между составными частями
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| Клиент | Сервер | Способ | Описание |
| | | взаимодействия | |
+================+================+================+=============================================================================================+
| Сервисная база | Prostore | TCP | Хранение/получение метаданных |
| данных | | | |
| Prostore | | | |
| (PostgreSQL) | | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | СУБД хранилища | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | Apache Kafka | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | Адаптер ПОДД | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | ETL | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| Prostore | Хранилище СУБД | REST API | Перенаправление запросов в конкретную СУБД |
| | | | |
| | | в зависимости | |
| | | от типа СУБД | |
| | | хранилища | |
| | | данных | |
| | | | |
| | | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| REST-адаптер | ProStore | REST API | Исполнение запросов |
| | | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| ETL | ProStore | Kafka | Исполнение запросов |
| | | (Диспетчер | |
| | | сообщений) | |
| | | | |
| | | JDBC | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| Сервис | ProStore | REST API | Запрашивает данные для формирования ПФ |
| формирования | | | |
| документов | | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| СМЭВ3-адаптер | ProStore | Kafka | Исполнение запросов |
| | | (Диспетчер | |
| | | сообщений) | |
| | | | |
| | | REST API | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | BLOB-адаптер | HTTP | Запрашивает бинарное содержимое BLOB. |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| ПОДД-адаптер - | ProStore | REST API | - исполняет полученный запрос (LLR); |
| Модуль | | | |
| исполнения | | | - запрашивает структуру таблиц при подписании на репликацию (источник данных); |
| запросов | | | |
| | | | - создает структуру таблиц при подписании на репликацию (потребитель данных); |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | Диспетчер | Kafka | - получает сообщение о закрытии новой дельты в ProStore (для репликации, источник данных); |
| | сообщений | (Диспетчер | |
| | Kafka | сообщений) | - обменивается управляющей информацией с модулем импорта ТП; |
| | | | |
| | | | - отправляет запросы, перенаправленные в Модуль MPPR. |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| ПОДД-адаптер - | ProStore | REST API | Подает запрос MPPR. |
| Модуль MPPR | | | |
| | | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | Диспетчер | Kafka | - получает запросы данных ПОДД, перенаправленные Адаптером ПОДД; |
| | сообщений | | |
| | Kafka | | - получает запрошенные данные из ProStore (в формате MPPR); |
| | | | |
| | | | - передает запрошенные данные в ПОДД в формате ПОДД; |
| | | | |
| | | | - обменивается управляющей информацией с модулем импорта ТП. |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| ПОДД-адаптер - | ProStore | REST API | Подает запрос MPPW. |
| Модуль MPPW | | | |
| | | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | Диспетчер | Kafka | - получает записываемые данные, подготовленные модулем Группировки данных ТП; |
| | сообщений | | |
| | Kafka | | - передает записываемые данные в ProStore (в формате MPPW); |
| | | | |
| | | | - обменивается управляющей информацией с модулем импорта ТП. |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| ПОДД-адаптер - | ProStore | REST API | - создает табличный параметр (перед выполнением запроса); |
| Модуль | | | |
| импорта ТП | | | - удаляет табличный параметр (после выполнения запроса). |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | Диспетчер | Kafka | Обменивается управляющей информацией с модулями: |
| | сообщений | | |
| | Kafka | | - MPPW; |
| | | | |
| | | | - MPPR; |
| | | | |
| | | | - Адаптер ПОДД; |
| | | | |
| | | | - Группировки данных ТП. |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| ПОДД-адаптер - | Диспетчер | Kafka | - Получает сообщения с ТП, подготовленные Wrappers’ (из единого топика); |
| Модуль | сообщений | | |
| Группировки | Kafka | | - создает отдельные топики для каждого ТП и передает в них сообщения с данными этого ТП. |
| данных ТП | | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| ПОДД-адаптер - | Диспетчер | Kafka | Передает сообщения с ТП, в формате пригодном для параллельной обработки |
| Wrapper | сообщений | | |
| | Kafka | | |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
| | Сервисная СУБД | TCP | Сохраняет список обрабатываемых сообщений ТП |
| | Zookeeper | | |
| | | | Хранение метаданных о подписках на репликацию (источник данных). |
+----------------+----------------+----------------+---------------------------------------------------------------------------------------------+
Связи с другими программами
---------------------------
Взаимодействие с другими программами происходит путем вызова соответствующих модулей программы:
Связи программы с другими программами приведены в :numref:`tab_6`.
.. _tab_6:
.. table:: Связи с другими программами
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| **Клиент** | **Сервер** | **Способ | **Описание** |
| | | взаимодействия** | |
+================+================+==================+================================================================================================================+
| Сервис | Агент ПОДД | REST | Передает сформированные документы для формирования ЭП. |
| формрования | | | |
| документов | | | |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| ПОДД-адаптер | Агент ПОДД | Через брокера | Получает запросы и предоставляет ответы на них согласно протоколу ПОДД: |
| - Модуль | | сообщений | |
| исполнения | | Kafka | - запрос/подзапрос на получение публикуемых данных (в т. ч. с использованием ТП или в режиме оценки запроса); |
| запросов | | | |
| | | | - предоставление структуры таблиц при подписании на репликацию (источник данных); |
| | | | |
| | | | - создание структуры таблиц при подписании на репликацию (потребитель данных); |
| | | | |
| | | | - предоставление реплицируемых данных (источник данных); |
| | | | |
| | | | - получение реплицируемых данных (потребитель данных); |
| | | | |
| | | | - запрос генерации ПФ. |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| ПОДД-адаптер - | Агент ПОДД | Через брокера | Предоставляет Результат запрос/подзапрос на получение публикуемых данных (в т. ч. с использованием ТП), |
| Модуль MPPR | | сообщений | делегированного ПОДД-адаптером. |
| | | Kafka | |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| ПОДД-адаптер | Агент ПОДД | Через брокера | Получает сообщения с ТП, подготовленные Агентом ПОДД. |
| - Wrapper | | сообщений | |
| | | Kafka | |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| BLOB-адаптер | Агент ПОДД | Через брокера | - Получает запрос на предоставление содержимого BLOB-объекта; |
| | | сообщений | |
| | | Kafka | - Передает бинарное содержимое запрошенного BLOB-объекта. |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| | Хранилище BLOB | HTTP | Запрашивает бинарное содержимое BLOB. |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| СМЭВ3-адаптер | СМЭВ3 | SOAP | - Получает запрос вида сведений от СМЭВ3; |
| | | | |
| | | | - Передает Результат запроса вида сведений; |
| | | | |
| | | | - Инициативно рассылает сведения об изменении публикуемых данных. |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| | FTP-сервер | FTP | Загружает на сервер бинарное содержимое запрошенных BLOB-объектов. |
| | СМЭВ3 | | |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| | VipNet | REST | - Проверяет ЭП получаемых от СМЭВ3 сообщений; |
| | | | |
| | | | - Формирует ЭП для отправляемых в СМЭВ сообщений. |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| ETL | Файловое | S3, FTP и т.п. | Считывание CSV файлов с данными, импортируемыми в витрину |
| | хранилище | | |
| | ведомства | | |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| | БД ведомства | JDBC Driver | Считывание данных, импортируемых в витрину |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| Внутренняя ИС | Сервер | REST API | Имитация поведения, существующего REST API |
| Ведомств | конечных точек | | |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
| Внутренняя ИС | Ядро витрины | JDBC Driver | Доступ к БД ведомства |
| Ведомств | | | |
+----------------+----------------+------------------+----------------------------------------------------------------------------------------------------------------+
Карта портов
------------
Карта портов компонентов программы представлена в :numref:`tab_7`.
.. _tab_7:
.. table:: Карта портов
+-----------------------+---------------------------------------------+
| Компонент | Описание |
+=======================+=============================================+
| podd-adapter-query | Порт: 8083 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: Взаимодействие с ПОДД-адаптером |
+-----------------------+---------------------------------------------+
| query-execution | Порт: 8080 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: номер порта сервиса метрик |
| | |
| | Порт: 9090 |
| | |
| | Протокол: TCP |
| | |
| | Описание: номер порта сервиса исполнения |
| | запросов |
+-----------------------+---------------------------------------------+
| status_monitor | Порт: 9095 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: сетевой адрес и путь для |
| | получения информации о статусе сервиса |
+-----------------------+---------------------------------------------+
| prometheus | Порт: 9090 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: Подключение к Prometheus WEB UI |
+-----------------------+---------------------------------------------+
| grafana | Порт: 3000 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: WEB-интерфейс для работы c |
| | Grafana |
+-----------------------+---------------------------------------------+
| node_exporter | Порт: 9100 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: Порт для загрузки метрик |
+-----------------------+---------------------------------------------+
| filebeat | Порт: нет открытых портов |
| | |
| | Протокол: - |
| | |
| | Описание: - |
+-----------------------+---------------------------------------------+
| mongodb | Порт: 27017 |
| | |
| | Протокол:TCP |
| | |
| | Описание: Подключение к MongoDB. Порт по |
| | умолчанию для экземпляров mongod и mongos. |
| | Вы можете изменить этот порт с помощью port |
| | или ``--port``. |
| | |
| | Порт: 27018 |
| | |
| | Протокол: TCP |
| | |
| | Описание: Подключение к MongoDB. Порт по |
| | умолчанию для mongod при запуске с |
| | параметром командной строки ``--shardsvr`` |
| | или значением ``shardsvr`` для параметра |
| | ``clusterRole`` в файле конфигурации |
+-----------------------+---------------------------------------------+
| elasticsearch | Порт: 9200 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: Подключение к Elasticsearch. |
+-----------------------+---------------------------------------------+
| kafka_postgres_writer | Порт: 8096 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: Порт используется для записи |
| | топиков Kafka в ProStore |
+-----------------------+---------------------------------------------+
| kafka_postgres_reader | Порт: 8094 |
| | |
| | Протокол: HTTP |
| | |
| | Описание: Порт используется для чтения |
| | топиков Kafka из ProStore |
+-----------------------+---------------------------------------------+
| postgres | Порт: 5432 |
| | |
| | Протокол: TCP PostgresSQL Protocol |
| | |
| | Описание: Источник данных SQL |
+-----------------------+---------------------------------------------+
| kafka | Порт: 9092 |
| | |
| | Протокол: Порт используется для |
| | |
| | Описание: TCP |
+-----------------------+---------------------------------------------+
| zookeeper | Порт: 2181 |
| | |
| | Протокол: TCP |
| | |
| | Описание: Порт используется для доступа к |
| | Zookeeper |
+-----------------------+---------------------------------------------+