.. _soft_callout: ОБРАЩЕНИЕ К ПРОГРАММЕ ===================== СМЭВ3-адаптер ------------- СМЭВ3-адаптер обеспечивает информационное взаимодействие через единый электронный сервис единой системы межведомственного электронного взаимодействия (далее – СМЭВ3). С помощью СМЭВ3-адаптер Витрина выступает участником взаимодействия в роли поставщика данных, получая запросы из очереди СМЭВ3 и отправляя ответы на них. Способы передачи управления ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Процедура запуска и остановки описана в документе «Руководство системного программиста». Способы передачи параметров данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Файл ``application.yml`` – основной конфигурационный файл СМЭВ3-адаптер. Большинство его параметров настраивается системным программистом (описано в документе «Руководство системного программиста»). Список параметров, которые необходимо настроить для обработки собственно запросов, и их назначения приведены в таблице ниже (см. :numref:`tab_application_file_options_smev3`). Остальные параметры следует оставить без изменения. Для каждого вида сведений, предоставляемых Витриной, следует создать отдельное сопоставление с именем ``verticles.name`` и значением ``dev.nsud.connector.smev.receiver.SmevReceiverVerticle``. Логика взаимодействия вертиклов при обработке одного запроса из СМЭВ изображена на :numref:`pg_image1` .. Обновить!!! Вставить из модулей! .. _tab_application_file_options_smev3: .. table:: Параметры файл application.yml СМЭВ3-адаптера +-------------------------------------------------------+----------------------------------+ | Параметр | Значение | +=======================================================+==================================+ | verticles.name: | | | dev.nsud.connector.smev.receiver.SmevReceiverVerticle | | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.selector.namespace | Пространство имен | | | обрабатываемого ВС (как указано | | | в заявке на регистрацию ВС). | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.selector.rootElementName | Имя корневого элемента запроса | | | обрабатываемого ВС (как указано | | | в заявке на регистрацию ВС) | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.template | Имя файла, содержащего | | | pebble-шаблон обработки запросов | | | для данного ВС. | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.idleDelay | Периодичность опроса очереди | | | СМЭВ 3 для получения новых | | | запросов (в формате ISO 8601). | +-------------------------------------------------------+----------------------------------+ | verticles.name: | | | dev.nsud.connector.smev.ack.AckVerticle | | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.instances | Количество одновременно | | | работающих экземпляров данного | | | вертикла с такими настройками. | +-------------------------------------------------------+----------------------------------+ | verticles.name: | | | dev.nsud.connector.processor.ProcessorVerticle | | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.instances | Количество одновременно | | | работающих экземпляров данного | | | вертикла с такими настройками. | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.db.jdbcUrl | Connection string подключения | | | JDBC драйвера к Витрине. См. | | | 3.5.2 Способы передачи | | | параметров данных. | +-------------------------------------------------------+----------------------------------+ | verticles.name: | | | dev.nsud.connector.smev.sender.SmevSenderVerticle | | | | | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.instances | Количество одновременно | | | работающих экземпляров данного | | | вертикла с такими настройками. | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.db.jdbcUrl | Connection string подключения | | | JDBC драйвера к Витрине. См. | | | 3.5.2 Способы передачи | | | параметров данных. | +-------------------------------------------------------+----------------------------------+ | verticles.name: | | | dev.nsud.connector.scheduler.SchedulerVerticle | | | | | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.instances | Количество одновременно | | | работающих экземпляров данного | | | вертикла с такими настройками. | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.interval | Периодичность опроса очереди | | | СМЭВ 3 для проверки наличия | | | новых данных (в формате ISO | | | 8601). | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.template | Имя файла, содержащего | | | pebble-шаблон для отсылки дельты | | | данных по расписанию. | +-------------------------------------------------------+----------------------------------+ | verticles.name: | | | dev.nsud.connector.delta.DeltaStorageVerticle | | | | | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.instances | Количество одновременно | | | работающих экземпляров данного | | | вертикла с такими настройками. | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.db.jdbcUrl | Connection string подключения | | | JDBC драйвера к служебной БД, | | | которая используется для | | | хранения журнала дельт. | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.db.username | Имя пользователя учетной записи | | | служебной БД, которая | | | используется для хранения | | | журнала дельт. | +-------------------------------------------------------+----------------------------------+ | deploymentOptions.config.db.password | Пароль пользователя учетной | | | записи служебной БД, которая | | | используется для хранения | | | журнала дельт. | +-------------------------------------------------------+----------------------------------+ .. _pg_image1: .. figure:: img/image1.png :align: center :alt: Взаимодействие вертиклов СМЭВ3-адаптера (обработка запросов) Взаимодействие вертиклов СМЭВ3-адаптера (обработка запросов) .. _pg_image2: .. figure:: img/image2.png :align: center :alt: Взаимодействие вертиклов СМЭВ3-адаптера (отправка дельт) Взаимодействие вертиклов СМЭВ3-адаптера (отправка дельт) ПОДД-адаптер ------------ ПОДД-адаптер обеспечивает информационное взаимодействие с Программой через федеральную государственную информационную систему «Единая информационная платформа Национальной системы управления данных». С помощью ПОДД-адаптер Витрина выступает участником взаимодействия в роли Поставщик данных и/или получателя реплицированных данных. Все взаимодействие с ЕИП НСУД производится через Агент ПОДД. Способы передачи управления ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Процедура запуска и остановки описана в документе «Руководство системного программиста». Способы передачи параметров данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Конфигурирование ПОДД-адаптер описано в документе «Руководство системного программиста». REST-адаптер ------------ Способы передачи управления ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Процедура запуска и остановки описана в документе «Руководство системного программиста». Способы передачи параметров данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. Обновить!!! Вставить из модулей! Файл ``application.yml`` – основной конфигурационный файл REST-адаптер. Список параметров, которые необходимо настроить, и их назначения приведены в таблице ниже (см. :numref:`tab_application_file_options_api`). Остальные параметры следует оставить без изменения. .. _tab_application_file_options_api: .. table:: Параметры файл application.yml REST-адаптер +-------------------------------------+----------------------------------+ | Параметр | Значение | +=====================================+==================================+ | spring.datasource.url | Connection string подключения | | | JDBC драйвера к Витрине. См. | | | 3.5.2 Способы передачи | | | параметров данных. | +-------------------------------------+----------------------------------+ | spring.datasource.driver-class-name | Имя класса драйвера. См. | | | 3.5.2 Способы передачи | | | параметров данных. | +-------------------------------------+----------------------------------+ | swagger.file-path | Имя файла, содержащего описание | | | REST API (спецификация OpenAPI). | +-------------------------------------+----------------------------------+ | swagger.templates | Сопоставление каждому | | | operationId (см. файл | | | swagger.file-path) имени своего | | | pebble-шаблона. | +-------------------------------------+----------------------------------+ Пример: .. code-block:: ruby spring: datasource: url: jdbc:adtm://192.168.0.101:9876/MyTestDb username: admin password: 12345678 type: com.zaxxer.hikari.HikariDataSource driver-class-name: ru.ibs.dtm.jdbc.DtmDriver hikari: connection-timeout: 15000 max-lifetime: 1800000 maximum-pool-size: 20 pool-name: API-pool swagger: file-path: sample.yaml templates: execquery: sample.peb Сервис извлечения данных ------------------------ Способы передачи управления ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Процедура запуска и остановки сервиса описана в документе «Руководство системного программиста». Запуск DAG в Airflow может производиться в автоматическом или ручном режиме. Эта процедура описана в документе «Руководство оператора». Способы передачи параметров данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Сервис извлечения построен с помощью фреймворка Apache Spark и предоставляет программные интерфейсы для языков Java, Scala, Python, R. Совместно с Витриной предоставляются готовые Java-реализации: - ``jdbc EXTRACTOR`` – извлекает данные из jdbc-источника (ведомства) в хранилище сервиса; - ``csv EXTRACTOR`` – извлекает данные из файла csv в хранилище сервиса; - ``xml EXTRACTOR`` – извлекает данные из файла xml в хранилище сервиса; - ``jdbc_csv TRANSFORMER`` – приводит колонки в таблицах хранилища сервиса (извлеченных ранее CSV или ``jdbc EXTRACTOR``’ом) в соответствие структуре логических таблиц Витрины (по набору, именам и типам данных колонок); - ``xml TRANSFORMER`` – приводит колонки в таблицах хранилища сервиса (извлеченных xml EXTRACTOR) в соответствие структуре логических таблиц Витрины (по набору, именам и типам); - ``kafka LOADER`` – загружает данные, извлеченные и приведенные в соответствие логической структуре данных Витрины, собственно в Витрину. Исходные коды перечисленных выше компонентов могут быть использованы как примеры при реализации собственных ``EXTRACTOR``, ``TRANSFORMER`` и ``LOADER``. При использовании этих Java-реализаций в составе ``DAG Aitflow`` для каждого элемента ``DAG`` указываются: - путь и имя jar-файла, в котором располагается Java-реализация; - имя используемого main-класса; - путь и имя properties-файла, в котором заданы настройки этого элемента. JDBC-драйвер ------------ Способы передачи управления ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Отправка запросов к экземпляру Программы «Витрина данных НСУД» производится в соответствии со стандартом JDBC с использованием JDBC-драйвер, входящего в состав Программы. Способы передачи параметров данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для подключения к экземпляру Программы «Витрина данных НСУД» необходимо использовать параметры, приведенные в таблице ниже (см. :numref:`tab_program_connection_parameters`). .. _tab_program_connection_parameters: .. table:: Параметры подключения к витрине +-------------+---------------------------------+----------------------------------------------+ | Параметр | Значение | Примечание | +=============+=================================+==============================================+ | Имя класса | io.arenadata.dtm.jdbc.DtmDriver | | +-------------+---------------------------------+----------------------------------------------+ | URL | jdbc:adtm://{host}:{port}[/db] | host: DNS-имя или IP адрес сервера, | | | | на котором запущено ядро витрины (ADTM). | | | | | | | | port: tcp-порт REST-сервиса, обеспечивающего | | | | исполнение SQL запросов. По умолчанию: 9092. | | | | | | | | db: имя БД, используемой по умолчанию | | | | (до первого вызова инструкции USE). | | | | Опционально. | | | | | | | | Пример: jdbc:adtm://192.168.0.100:9090/MyDb | | | | | | | | или jdbc:adtm://my-adtm.test.internal | +-------------+---------------------------------+----------------------------------------------+ | Авторизация | Без авторизации | | +-------------+---------------------------------+----------------------------------------------+