Структура Витрины данных ============================= Составные части Витрины данных -------------------------------- Программа имеет модульную архитектуру и построена на базе различных компонентов (включая разработки сторонних производителей). Общую схему взаимосвязей компонентов можно просмотреть в разделе Архитектура программы. Функционально, программа состоит из следующих частей: **Основные компоненты** - **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 | +-----------------------+---------------------------------------------+