4. ОБРАЩЕНИЕ К ПРОГРАММЕ
4.1. СМЭВ3-адаптер
СМЭВ3-адаптер обеспечивает информационное взаимодействие через единый электронный сервис единой системы межведомственного электронного взаимодействия (далее – СМЭВ3). С помощью СМЭВ3-адаптер Витрина выступает участником взаимодействия в роли поставщика данных, получая запросы из очереди СМЭВ3 и отправляя ответы на них.
4.1.1. Способы передачи управления
Процедура запуска и остановки описана в документе «Руководство системного программиста».
4.1.2. Способы передачи параметров данных
Файл application.yml – основной конфигурационный файл СМЭВ3-адаптер.
Большинство его параметров настраивается системным программистом
(описано в документе «Руководство системного программиста»). Список
параметров, которые необходимо настроить для обработки собственно
запросов, и их назначения приведены в таблице ниже (см. Таблица 4.21).
Остальные параметры следует оставить без изменения. Для каждого вида
сведений, предоставляемых Витриной, следует создать отдельное
сопоставление с именем verticles.name и значением
dev.nsud.connector.smev.receiver.SmevReceiverVerticle. Логика
взаимодействия вертиклов при обработке одного запроса из СМЭВ изображена
на Рисунок - 4.42
Параметр |
Значение |
|---|---|
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 |
Пароль пользователя учетной записи служебной БД, которая используется для хранения журнала дельт. |
Рисунок - 4.42 Взаимодействие вертиклов СМЭВ3-адаптера (обработка запросов)
Рисунок - 4.43 Взаимодействие вертиклов СМЭВ3-адаптера (отправка дельт)
4.2. ПОДД-адаптер
ПОДД-адаптер обеспечивает информационное взаимодействие с Программой через федеральную государственную информационную систему «Единая информационная платформа Национальной системы управления данных». С помощью ПОДД-адаптер Витрина выступает участником взаимодействия в роли Поставщик данных и/или получателя реплицированных данных. Все взаимодействие с ЕИП НСУД производится через Агент ПОДД.
4.2.1. Способы передачи управления
Процедура запуска и остановки описана в документе «Руководство системного программиста».
4.2.2. Способы передачи параметров данных
Конфигурирование ПОДД-адаптер описано в документе «Руководство системного программиста».
4.3. REST-адаптер
4.3.1. Способы передачи управления
Процедура запуска и остановки описана в документе «Руководство системного программиста».
4.3.2. Способы передачи параметров данных
Файл application.yml – основной конфигурационный файл REST-адаптер. Список параметров, которые необходимо настроить, и их назначения
приведены в таблице ниже (см. Таблица 4.22). Остальные параметры следует оставить без изменения.
Параметр |
Значение |
|---|---|
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-шаблона. |
Пример:
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
4.4. Сервис извлечения данных
4.4.1. Способы передачи управления
Процедура запуска и остановки сервиса описана в документе «Руководство системного программиста».
Запуск DAG в Airflow может производиться в автоматическом или ручном режиме. Эта процедура описана в документе «Руководство оператора».
4.4.2. Способы передачи параметров данных
Сервис извлечения построен с помощью фреймворка 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-файла, в котором заданы настройки этого элемента.
4.5. JDBC-драйвер
4.5.1. Способы передачи управления
Отправка запросов к экземпляру Программы «Витрина данных НСУД» производится в соответствии со стандартом JDBC с использованием JDBC-драйвер, входящего в состав Программы.
4.5.2. Способы передачи параметров данных
Для подключения к экземпляру Программы «Витрина данных НСУД» необходимо использовать параметры, приведенные в таблице ниже (см. Таблица 4.23).
Параметр |
Значение |
Примечание |
|---|---|---|
Имя класса |
io.arenadata.dtm.jdbc.DtmDriver |
|
URL |
jdbc:adtm://{host}:{port}[/db] |
host: DNS-имя или IP адрес сервера, на котором запущено ядро витрины (ADTM). port: tcp-порт REST-сервиса, обеспечивающего исполнение SQL запросов. По умолчанию: 9092. db: имя БД, используемой по умолчанию (до первого вызова инструкции USE). Опционально. |
Авторизация |
Без авторизации |