Структура программы =================== В данном разделе приведены сведения о структуре программы, ее составных частях, о связях между составными частями и о связях с другими программами. Структура программы ------------------- Функционально, витрина данных НСУД состоит из следующих частей: - :term:`ProStore` - Интеграционная система, обеспечивающая единый интерфейс к хранилищу разнородных данных. Определяет структуры данных, запись и чтение данных витрины. Позволяет работать со входящими в состав хранилища СУБД одинаковым образом, используя единый синтаксис запросов SQL и единую логическую схему данных. - СУБД хранилища: - Arenadata DB (ADB) — СУБД с массивно-параллельной архитектурой (Massive parallel processing, MPP), построенная на основе Greenplum; - Arenadata QuickMarts (ADQM) — кластерная колоночная СУБД на основе Yandex ClickHouse; - Arenadata Grid (ADG) — система распределенных вычислений в оперативной памяти, построенная на основе :term:`Tarantool`. - :term:`СМЭВ3-адаптер` – Необходим для подключения витрины к СМЭВ 3 как информационной системы участника взаимодействия. Обеспечивает загрузку запросов из очереди ИС УВ СМЭВ 3, формирование и отправку ответов в СМЭВ 3, инициативное формирование уведомлений об изменении данных в экземпляре ПО «Витрина данных НСУД» и отправку уведомлений в СМЭВ 3. - :term:`ПОДД-адаптер` - Необходим для подключения витрины к ПОДД СМЭВ, как информационной системы участника взаимодействия. Обеспечивает загрузку запросов из очереди ИС УВ в ПОДД СМЭВ, формирование и отправку ответов в ПОДД СМЭВ, инициативное формирование уведомлений об изменении данных в экземпляре ПО «Витрина данных НСУД», отправку уведомлений в ПОДД СМЭВ, регистрацию реплики данных ИС УВ, подписки на репликацию и поддержку реплики в актуальном состоянии; - **ETL** - решение, используемое при выгрузке данных из различных источников ведомств и дальнейшего хранения их в Витрине ProStore для чтения, использования и взаимодействия с другими ведомствами; - :term:`REST-адаптер`- сервис, реализующий публикацию конечных точек API для обработки запросов с использованием спецификации OpenAPI версии 3. Используется для сохранения обратной совместимости получения данных из ведомства по REST. Составные части программы ------------------------- Состав компонентов в дистрибутиве ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Перечень типового ПО ведомственной витрины данных НСУД приведен в таблице ниже (см. :numref:`tab_gost_spg_2`) .. _tab_gost_spg_2: .. table:: Состав типового ПО ведомственной витрины данных НСУД +----------------------+----------------------+----------------------+ | Компонент | Версия | Дополнительно | +======================+======================+======================+ | Менеджер кластера | 20 | https:// | | (ADCM) | 20.12.16.15-7aaf9b59 | docs.arenadata.io/ad | | | | cm/user/install.html | +----------------------+----------------------+----------------------+ | ProStore | 3.4.0 | `ht | | | | tps://g.info.gov.ru/ | | | | datamart/nsud-datama | | | | rts/-/blob/master/%D | | | | 0%94%D0%B8%D1%81%D1% | | | | 82%D1%80%D0%B8%D0%B1 | | | | %D1%83%D1%82%D0%B8%D | | | | 0%B2%D1%8B%20%D0%9F% | | | | D0%9E%20%D0%92%D0%B8 | | | | %D1%82%D1%80%D0%B8%D | | | | 0%BD%20%D0%B4%D0%B0% | | | | D0%BD%D0%BD%D1%8B%D1 | | | | %85%20%D0%9D%D0%A1%D | | | | 0%A3%D0%94/% `__ | +----------------------+----------------------+----------------------+ | JDBC-драйвер | 3.4.0 | ht | | ProStore | | tps://g.info.gov.ru/ | | | | datamart/nsud-datama | | | | rts/-/blob/master/%D | | | | 0%94%D0%B8%D1%81%D1% | | | | 82%D1%80%D0%B8%D0%B1 | | | | %D1%83%D1%82%D0%B8%D | | | | 0%B2%D1%8B%20%D0%9F% | | | | D0%9E%20%D0%92%D0%B8 | | | | %D1%82%D1%80%D0%B8%D | | | | 0%BD%20%D0%B4%D0%B0% | | | | D0%BD%D0%BD%D1%8B%D1 | | | | %85%20%D0%9D%D0%A1%D | | | | 0%A3%D0%94/%D0%94%D0 | | | | %B8%D1%81%D1%82%D1%8 | | | | 0%D0%B8%D0%B1%D1%83% | | | | D1%82%D0%B8%D0%B2%D1 | | | | %8B%20DTM/Arena | | | | Data%20Core%20&%20Se | | | | rvices/aDTM-3.4.0-ma | | | | ster@c3279ff89d8.zip | +----------------------+----------------------+----------------------+ | Сервис мониторинга | 3.4.0 | ht | | статусов Kafka | | tps://g.info.gov.ru/ | | (DTM | | datamart/nsud-datama | | .KafkaStatusMonitor) | | rts/-/blob/master/%D | | | | 0%94%D0%B8%D1%81%D1% | | | | 82%D1%80%D0%B8%D0%B1 | | | | %D1%83%D1%82%D0%B8%D | | | | 0%B2%D1%8B%20%D0%9F% | | | | D0%9E%20%D0%92%D0%B8 | | | | %D1%82%D1%80%D0%B8%D | | | | 0%BD%20%D0%B4%D0%B0% | | | | D0%BD%D0%BD%D1%8B%D1 | | | | %85%20%D0%9D%D0%A1%D | | | | 0%A3%D0%94/%D0%94%D0 | | | | %B8%D1%81%D1%82%D1%8 | | | | 0%D0%B8%D0%B1%D1%83% | | | | D1%82%D0%B8%D0%B2%D1 | | | | %8B%20DTM/Arena | | | | Data%20Core%20&%20Se | | | | rvices/aDTM-3.4.0-ma | | | | ster@c3279ff89d8.zip | +----------------------+----------------------+----------------------+ | Кластер серверов ADS | ADS: 1.5.0, | https://store.ar | | Community Edition | включается в себя: | enadata.io/#products | | (Kafka, Zookeeper) | | /arenadata_streaming | | | Kafka: 2.4, | | | | | | | | Zookeeper: 3.5.6 | | +----------------------+----------------------+----------------------+ | Кластер серверов | 6.13.0 | Установка | | MPP-СУБД (ADB | | опциональна | | Community Edition) | | | | | | https://ci | | | | .arenadata.io/artifa | | | | ctory/ADB/6.13.0_are | | | | nadata13/centos/7/en | | | | terprise/x86_64/kafk | | | | a-fdw-0.10-377.git3f | | | | e5e36.el7.x86_64.rpm | +----------------------+----------------------+----------------------+ | Кластер серверов | 2.9 | Установка | | Column-СУБД (ADQM | | опциональна | | Community Edition) | | | | | | https://docs.aren | | | | adata.io/adqm/instal | | | | l/adcm/ru/index.html | | | | | | | | https://clickhou | | | | se.tech/docs/ru/gett | | | | ing-started/install/ | +----------------------+----------------------+----------------------+ | Кластер серверов | 2.5 | Установка | | In-memory-СУБД (ADG | | опциональна | | Community Edition) | | | | | | Memstorage | | | | (mem | | | | storage-0.3.2-0.rpm) | | | | | | | | https://g.info.gov.r | | | | u/datamart/nsud-data | | | | marts/-/blob/master/ | | | | %D0%94%D0%B8%D1%81%D | | | | 1%82%D1%80%D0%B8%D0% | | | | B1%D1%83%D1%82%D0%B8 | | | | %D0%B2%D1%8B%20%D0%9 | | | | F%D0%9E%20%D0%92%D0% | | | | B8%D1%82%D1%80%D0%B8 | | | | %D0%BD%20%D0%B4%D0%B | | | | 0%D0%BD%D0%BD%D1%8B% | | | | D1%85%20%D0%9D%D0%A1 | | | | %D0%A3%D0%94/%D0%94% | | | | D0%B8%D1%81%D1%82%D1 | | | | %80%D0%B8%D0%B1%D1%8 | | | | 3%D1%82%D0%B8%D0%B2% | | | | D1%8B%20:DTM/Bun | | | | dles%20for%20ADCM/me | | | | mstorage-0.3.2-0.rpm | | | | | | | | Kafka | | | | (`librdkafka- | | | | 1.5.0-1.el7.x86_64.r | | | | pm `__) | | | | | | | | https://g.i | | | | nfo.gov.ru/datamart/ | | | | nsud-datamarts/-/blo | | | | b/master/%D0%94%D0%B | | | | 8%D1%81%D1%82%D1%80% | | | | D0%B8%D0%B1%D1%83%D1 | | | | %82%D0%B8%D0%B2%D1%8 | | | | B%20%D0%9F%D0%9E%20% | | | | D0%92%D0%B8%D1%82%D1 | | | | %80%D0%B8%D0%BD%20%D | | | | 0%B4%D0%B0%D0%BD%D0% | | | | BD%D1%8B%D1%85%20%D0 | | | | %9D%D0%A1%D0%A3%D0%9 | | | | 4/%D0%94%D0%B8%D1%81 | | | | %D1%82%D1%80%D0%B8%D | | | | 0%B1%D1%83%D1%82%D0% | | | | B8%D0%B2%D1%8B%20Pro | | | | store/Bundles%20for% | | | | 20ADCM/librdkafka-1. | | | | 5.0-1.el7.x86_64.rpm | | | | | | | | Авро-схема | | | | (avroc-1.10 | | | | .0-1.el7.x86_64.rpm) | | | | | | | | https:/ | | | | /g.info.gov.ru/datam | | | | art/nsud-datamarts/- | | | | /blob/master/%D0%94% | | | | D0%B8%D1%81%D1%82%D1 | | | | %80%D0%B8%D0%B1%D1%8 | | | | 3%D1%82%D0%B8%D0%B2% | | | | D1%8B%20%D0%9F%D0%9E | | | | %20%D0%92%D0%B8%D1%8 | | | | 2%D1%80%D0%B8%D0%BD% | | | | 20%D0%B4%D0%B0%D0%BD | | | | %D0%BD%D1%8B%D1%85%2 | | | | 0%D0%9D%D0%A1%D0%A3% | | | | D0%94/%D0%94%D0%B8%D | | | | 1%81%D1%82%D1%80%D0% | | | | B8%D0%B1%D1%83%D1%82 | | | | %D0%B8%D0%B2%D1%8B%2 | | | | 0DTM/Bundles%20 | | | | for%20ADCM/avroc-1.1 | | | | 0.0-1.el7.x86_64.rpm | | | | | | | | libzstd-1. | | | | 4.5-3.el7.x86_64.rpm | | | | | | | | https:// | | | | g.info.gov.ru/datama | | | | rt/nsud-datamarts/-/ | | | | blob/master/%D0%94%D | | | | 0%B8%D1%81%D1%82%D1% | | | | 80%D0%B8%D0%B1%D1%83 | | | | %D1%82%D0%B8%D0%B2%D | | | | 1%8B%20%D0%9F%D0%9E% | | | | 20%D0%92%D0%B8%D1%82 | | | | %D1%80%D0%B8%D0%BD%2 | | | | 0%D0%B4%D0%B0%D0%BD% | | | | D0%BD%D1%8B%D1%85%20 | | | | %D0%9D%D0%A1%D0%A3%D | | | | 0%94/%D0%94%D0%B8%D1 | | | | %81%D1%82%D1%80%D0%B | | | | 8%D0%B1%D1%83%D1%82% | | | | D0%B8%D0%B2%D1%8B%20 | | | | DTM/Bundles%20f | | | | or%20ADCM/libzstd-1. | | | | 4.5-3.el7.x86_64.rpm | +----------------------+----------------------+----------------------+ | Группа коннекторов | 3.4.0 | http:// | | Kafka Greenplum | | github.com/arenadata | | | | /kafka-pxf-connector | | | | | | | | h | | | | ttps://github.com/ar | | | | enadata/kafka-adb-os | +----------------------+----------------------+----------------------+ | Группа коннекторов | 3.4.0 | https://github. | | Kafka Clickhouse | | com/arenadata/kafka- | | | | clickhouse-connector | +----------------------+----------------------+----------------------+ | Группа коннекторов | 3.4.0 | Является частью ADG | | Kafka Tarantool | | | +----------------------+----------------------+----------------------+ | СМЭВ3-адптер | 3.4.0 | http | | | | s://g.info.gov.ru/da | | | | tamart/nsud-datamart | | | | s/-/blob/master/%D0% | | | | 94%D0%B8%D1%81%D1%82 | | | | %D1%80%D0%B8%D0%B1%D | | | | 1%83%D1%82%D0%B8%D0% | | | | B2%D1%8B%20%D0%9F%D0 | | | | %9E%20%D0%92%D0%B8%D | | | | 1%82%D1%80%D0%B8%D0% | | | | BD%20%D0%B4%D0%B0%D0 | | | | %BD%D0%BD%D1%8B%D1%8 | | | | 5%20%D0%9D%D0%A1%D0% | | | | A3%D0%94/%D0%94%D0%B | | | | 8%D1%81%D1%82%D1%80% | | | | D0%B8%D0%B1%D1%83%D1 | | | | %82%D0%B8%D0%B2%D1%8 | | | | B%20%D0%A1%D0%9C%D0% | | | | AD%D0%923%20%D0%90%D | | | | 0%B4%D0%B0%D0%BF%D1% | | | | 82%D0%B5%D1%80/smev3 | | | | -connector-3.4.1.jar | | | | | | | | Установка | | | | опциональна | +----------------------+----------------------+----------------------+ | Сервисная база | 10 и выше | Является частью | | данных СМЭВ3 | | СМЭВ3-адаптер | | адаптера | | | | PostrgeSQL | | | +----------------------+----------------------+----------------------+ | ПОДД-адаптер | 3.4.0 | https://g. | | | | info.gov.ru/datamart | | | | /nsud-datamarts/-/bl | | | | ob/master/%D0%94%D0% | | | | B8%D1%81%D1%82%D1%80 | | | | %D0%B8%D0%B1%D1%83%D | | | | 1%82%D0%B8%D0%B2%D1% | | | | 8B%20%D0%9F%D0%9E%20 | | | | %D0%92%D0%B8%D1%82%D | | | | 1%80%D0%B8%D0%BD%20% | | | | D0%B4%D0%B0%D0%BD%D0 | | | | %BD%D1%8B%D1%85%20%D | | | | 0%9D%D0%A1%D0%A3%D0% | | | | 94/%D0%94%D0%B8%D1%8 | | | | 1%D1%82%D1%80%D0%B8% | | | | D0%B1%D1%83%D1%82%D0 | | | | %B8%D0%B2%D1%8B%20%D | | | | 0%9F%D0%9E%D0%94%D0% | | | | 94%20%D0%90%D0%B4%D0 | | | | %B0%D0%BF%D1%82%D0%B | | | | 5%D1%80/DTM-adapter- | | | | reader-das-3.4.0-3-2 | | | | 0210323.072335-6.jar | | | | | | | | Установка | | | | опциональна | +----------------------+----------------------+----------------------+ | База данных ПОДД | 10.5.3 | Является частью | | коннектора «MariaDB» | | ПОДД-адаптер | +----------------------+----------------------+----------------------+ | Диспетчер сообщений | 2.4.0 | Установка | | для PODD «Kafka» | | опциональна | | (ADSP) | | | | | | https://store.ar | | | | enadata.io/#products | | | | /arenadata_streaming | +----------------------+----------------------+----------------------+ | ETL | Apache Airflow 2.0.1 | Apache Airflow 2.0.1 | | | | | | | Apache Spark 3.0.1 | https://github.co | | | | m/apache/airflow.git | | | Apache Hadoop 3.2.1 | | | | | Apache Spark 3.0.1 | | | Tarantool 6.13.0 | | | | | https://git | | | | hub.com/big-data-eur | | | | ope/docker-spark.git | | | | | | | | Apache Hadoop 3.2.1 | | | | | | | | https://gith | | | | ub.com/big-data-euro | | | | pe/docker-hadoop.git | | | | | | | | Tarantool 6.13.0 | | | | | | | | https://github.com/ | | | | tarantool/docker.git | +----------------------+----------------------+----------------------+ | REST-адаптер | 1.0 | https://g.info.gov. | | | | ru/datamart/nsud-dat | | | | amarts/-/blob/master | | | | /%D0%94%D0%B8%D1%81% | | | | D1%82%D1%80%D0%B8%D0 | | | | %B1%D1%83%D1%82%D0%B | | | | 8%D0%B2%D1%8B%20%D0% | | | | 9F%D0%9E%20%D0%92%D0 | | | | %B8%D1%82%D1%80%D0%B | | | | 8%D0%BD%20%D0%B4%D0% | | | | B0%D0%BD%D0%BD%D1%8B | | | | %D1%85%20%D0%9D%D0%A | | | | 1%D0%A3%D0%94/%D0%94 | | | | %D0%B8%D1%81%D1%82%D | | | | 1%80%D0%B8%D0%B1%D1% | | | | 83%D1%82%D0%B8%D0%B2 | | | | %D1%8B%20%D0%A1%D0%B | | | | 5%D1%80%D0%B2%D0%B5% | | | | D1%80%20%D0%9A%D0%BE | | | | %D0%BD%D0%B5%D1%87%D | | | | 0%BD%D1%8B%D1%85%20% | | | | D0%A2%D0%BE%D1%87%D0 | | | | %B5%D0%BA/swagger2pe | | | | bble-adapter-3.4.0-2 | | | | 0210407.085926-8.jar | | | | | | | | Установка | | | | опциональна | +----------------------+----------------------+----------------------+ «Установка опциональна» означает - что необходимость установки компонента определяется из схемы развертывания витрины в конкретном ведомстве. Конкретная конфигурация Витрины данных определяется Участником взаимодействия на этапе реализации Витрины данных в составе ИТ-инфраструктуры Участника взаимодействия. Состав и назначение серверов, участвующих в функционировании типового ПО ведомственной витрины данных НСУД, приведено в :numref:`tab_program_composition`. .. _tab_program_composition: .. table:: Состав и назначение серверов типового ПО ведомственной витрины данных НСУД +----------------------------------+----------------------------------+ | Компонент | Дополнительно | +==================================+==================================+ | Менеджер кластера (ADCM) | Управляющая консоль | +----------------------------------+----------------------------------+ | JDBC-драйвер ProStore | Предоставляет JDBC-интерфейс | | | подключения из сторонних систем | | | к ProStore` | +----------------------------------+----------------------------------+ | ProStore (ядро Витрины) | Принимает и направляет на | | | исполнение SQL запросы, | | | поступающие от JDBC – драйвера. | | | Отслеживает выполнение данных | | | запросов. | +----------------------------------+----------------------------------+ | Сервис мониторинга статусов | Отслеживает состояние топиков | | Kafka (DTM.KafkaStatusMonitor) | брокера сообщений Kafka | +----------------------------------+----------------------------------+ | Кластер серверов ADS Community | Брокер сообщений и сервисная | | Edition (Kafka, Zookeeper) | СУБД (возможно несколько | | | серверов) | +----------------------------------+----------------------------------+ | Кластер серверов MPP-СУБД (ADB | MPP-СУБД | | Community Edition) | | | | ADBM – первичный мастер | | | | | | ADBS – хосты сегментов | | | | | | (возможно несколько серверов) | +----------------------------------+----------------------------------+ | Кластер серверов Column-СУБД | Column-СУБД (возможно несколько | | (ADQM Community Edition) | серверов) | +----------------------------------+----------------------------------+ | Кластер серверов In-memory-СУБД | In-memory-СУБД (возможно | | (ADG Community Edition) | несколько серверов) | +----------------------------------+----------------------------------+ | Группа коннекторов Kafka | Коннекторы между Kafka и СУБД | | Greenplum | Greenplum (устанавливается | | | вместе с СУБД) | +----------------------------------+----------------------------------+ | Группа коннекторов Kafka | Коннекторы между Kafka и СУБД | | Clickhouse | Clickhouse | | | | | | (устанавливается отдельно) | +----------------------------------+----------------------------------+ | Группа коннекторов Kafka | Коннекторы между Kafka и СУБД | | Tarantool | Tarantool | | | | | | (устанавливается вместе с СУБД) | +----------------------------------+----------------------------------+ | СМЭВ3-адаптер | Установка опциональна | +----------------------------------+----------------------------------+ | Сервисная база данных СМЭВ3 | Является частью СМЭВ3-адаптера | | адаптера PostrgeSQL | | +----------------------------------+----------------------------------+ | ПОДД Коннектор | Установка опциональна | +----------------------------------+----------------------------------+ | База данных ПОДД-адаптера | Является частью ПОДД-адаптера | | «MariaDB» | | +----------------------------------+----------------------------------+ | Apache Airflow | Менеджер процессов Apache Spark, | | | является частью ETL | +----------------------------------+----------------------------------+ | Apache Spark | Фреймворк для реализации | | | распределенной обработки | | | неструктурированных и | | | слабоструктурированных данных, | | | является частью ETL. Состоит из: | | | | | | Apache Spark мастер управляющий | | | исполнителями Apache Spark ETL | | | | | | Apache Spark исполнители ETL | | | (несколько серверов) | +----------------------------------+----------------------------------+ | Apache Hadoop | Набор утилит, библиотек и | | | фреймворк для разработки и | | | выполнения распределённых | | | программ, работающих на | | | кластерах из множества узлов | +----------------------------------+----------------------------------+ | Tarantool | СУБД ETL (несколько серверов) | +----------------------------------+----------------------------------+ | REST-адаптер | Публикатор конечных точек API | | | | | | Установка опциональна | +----------------------------------+----------------------------------+ Схема развертывания ~~~~~~~~~~~~~~~~~~~ На рисунке ниже (см. :numref:`image_gost_spg_1`) приведена схема развертывания для типового ПО ведомственной витрины данных НСУД .. _image_gost_spg_1: .. figure:: img/image1.png :align: center :alt: Схема развертывания Схема развертывания Связи между составными частями ------------------------------ Общая архитектура решения ~~~~~~~~~~~~~~~~~~~~~~~~~ Схематичное отображение общей архитектуры решения приведено на рисунке ниже (см. :numref:`image_gost_spg_2`) .. _image_gost_spg_2: .. figure:: img/image2.png :align: center :alt: Общая архитектура решения Общая архитектура решения Архитектура ProStore ~~~~~~~~~~~~~~~~~~~~ Схема компонентов ProStore """""""""""""""""""""""""" Схема компонентов :term:`ProStore` представлена на рисунке ниже (см. :numref:`image_gost_spg_3`). .. _image_gost_spg_3: .. figure:: img/image3.png :align: center :alt: Схема компонентов ProStore Схема компонентов ProStore ПО :term:`ProStore` включает в себя следующие части:  - :term:`JDBC-драйвер` – размещается на стороне системы, использующей :term:`ProStore` (клиента :term:`ProStore`), и предоставляет JDBC-интерфейс подключения из этой системы к :term:`ProStore`; взаимодействует с сервисом исполнения запросов по REST API, предоставляемым сервисом исполнения запросов; - ProStore – анализирует и исполняет SQL-запросы; предоставляет REST API для :term:`JDBC-драйвер` и взаимодействует с сервисом мониторинга статусов Kafka по REST API, предоставляемым сервисом мониторинга статусов Kafka; - сервис мониторинга статусов Kafka (KafkaStatusMonitor) – отслеживает состояние топиков брокера сообщений Kafka; предоставляет REST API для ProStore. Связи ProStore с другими программами """""""""""""""""""""""""""""""""""" :term:`ProStore` взаимодействует со следующим внешним ПО: - информационной системой-клиентом (по JDBC-интерфейсу), - сервисной базой данных (по API ZooKeeper), - СУБД хранилища данных (по интерфейсу :term:`JDBC` или REST API — в зависимости от типа СУБД хранилища данных), - адаптерами (по API адаптеров); - брокером сообщений Kafka (по API Kafka). Схема взаимодействия :term:`ProStore` с внешним ПО показана на :numref:`image_gost_spg_4` .. _image_gost_spg_4: .. figure:: img/image4.png :align: center :alt: Схема взаимодействия ProStore с внешним ПО Схема взаимодействия ProStore с внешним ПО Cвязи между составными частями ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Взаимосвязи между составными частями витрины приведены в :numref:`tab_gost_spg_3`. .. _tab_gost_spg_3: .. table:: Взаимодействие между составными частями +----------------+----------------+----------------+----------------+ | Клиент | Сервер | Способ | Описание | | | | взаимодействия | | +================+================+================+================+ | Сервисная СУБД | Ядро витрины | TCP | Хран | | | | | ение/получение | | | | | метаданных | +----------------+----------------+----------------+----------------+ | | СУБД хранилища | | | +----------------+----------------+----------------+----------------+ | | Apache Kafka | | | +----------------+----------------+----------------+----------------+ | | Адаптер ПОДД | | | +----------------+----------------+----------------+----------------+ | | ETL | | | +----------------+----------------+----------------+----------------+ | Ядро витрины | Хранилище СУБД | JDBC | П | | ProStore | | | еренаправление | | | | REST API | запросов в | | | | | конкретную | | | | в зависимости | СУБД | | | | от типа СУБД | | | | | хранилища | | | | | данных | | +----------------+----------------+----------------+----------------+ | REST-адаптер | Ядро витрины | JDBC | Исполнение | | | | | запросов | +----------------+----------------+----------------+----------------+ | ETL | Ядро витрины | Kafka | Исполнение | | | | (Диспетчер | запросов | | | | сообщений) | | | | | | | | | | JDBC | | +----------------+----------------+----------------+----------------+ | ПОДД-адаптер | Ядро витрины | Kafka | Исполнение | | | | (Диспетчер | запросов | | | | сообщений) | | | | | | | | | | JDBC | | +----------------+----------------+----------------+----------------+ | СМЭВ3-адаптер | Ядро витрины | Kafka | Исполнение | | | | (Диспетчер | запросов | | | | сообщений) | | | | | | | | | | JDBC | | +----------------+----------------+----------------+----------------+ Связи с другими программами ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Связи витрины со сторонними программами приведены в см. :numref:`tab_gost_spg_5`. .. _tab_gost_spg_5: .. table:: Связи с другими программами +----------------+----------------+----------------+----------------+ | Клиент | Сервер | Способ | Описание | | | | взаимодействия | | +================+================+================+================+ | ETL | Файловое | S3, FTP и т.п. | Считывание CSV | | | хранилище | | файлов с | | | ведомства | | данными, | | | | | импортируемыми | | | | | в витрину | +----------------+----------------+----------------+----------------+ | ETL | БД ведомства | JDBC Driver | Считывание | | | | | данных, | | | | | импортируемых | | | | | в витрину | +----------------+----------------+----------------+----------------+ | Внутренняя ИС | Сервер | REST API | Имитация | | Ведомств | конечных точек | | поведения, | | | | | существующего | | | | | REST API | +----------------+----------------+----------------+----------------+ | Внутренняя ИС | Ядро витрины | JDBC Driver | Доступ к БД | | Ведомств | | | ведомства | +----------------+----------------+----------------+----------------+ | ПОДД-адаптер | Агент ПОДД | Kafka | Регистрация | | | | | репликаций, | | | | | подписок на | | | | | репликации, | | | | | работа с | | | | | дельтами | | | | | данных, | | | | | запросами | | | | | данных | +----------------+----------------+----------------+----------------+ | СМЭВ3-адаптер | СМЭВ3 | SOAP | Запрос | | | | | необходимости | | | | | подготовки | | | | | данных, | | | | | передача | | | | | подготовленных | | | | | данных | +----------------+----------------+----------------+----------------+ | СМЭВ3-адаптер | ViPNet PKI | HTTP | Получение | | | | | электронной | | | | | подписи для | | | | | запроса в | | | | | СМЭВ3 | +----------------+----------------+----------------+----------------+