Сервис адаптер обращения к СМЭВ 4
Атрибут | Значение |
---|---|
Название | smev4 |
Тип | Монолитный сервис |
Область применения | Межведомственное взаимодействие |
Сервис содержит в себе ряд сервисов, каждый из которых представляет доступ к сервисам посредством регламентированных запросов СМЭВ 4.
Описание
Сервис предназначен для обмена данными с ПОДД СМЭВ (СМЭВ 4) в качестве потребителя с помощью регламентированных запросов.
Подсистема обеспечения доступа к данным федеральной государственной информационной системы «Единая система межведомственного электронного взаимодействия» (ПОДД СМЭВ) — часть транспортной подсистемы СМЭВ, обеспечивающая доступ к данным, размещённым на Витринах данных.
Потребитель (потребитель данных ПОДД СМЭВ) — участник взаимодействия, получающий данные от Поставщиков данных с использованием ПОДД СМЭВ.
Регламентированный запрос — SQL-запрос, выраженный в терминах Модели данных, загруженной в ПОДД, и зарегистрированный в Ядре ПОДД СМЭВ под символической мнемоникой, используемой ИС Потребителя ПОДД СМЭВ для выполнения регламентированного запроса. Может иметь параметры, значения которых задаются Потребителем данных ПОДД СМЭВ при выполнении регламентированного запроса.
Для работы сервиса требуется доступ к работающему Агенту ПОДД СМЭВ.
Агент ПОДД СМЭВ — типовое программное обеспечение, устанавливаемое в контуре ИС участника взаимодействия и обеспечивающее сопряжение Экземпляров ПО «Витрина данных», ИС УВ с ПОДД СМЭВ.
Чтобы установить Агент ПОДД СМЭВ из Docker, скачайте архив докер-образа. Распакуйте и выполните команду:
docker load < image.tgz
Проверить загрузку можно командой:
docker images
Она должна вернуть примерно следующую запись:
einfahrt latest 60d405216c72 2 months ago 1.24GB
Сформируйте конфигурационный файл агента application.yml и положите в корень einfahrt.
В einfahrt создайте каталог certs, куда загрузите файл cp_ca_store, который находится внутри архива.
Ключи контейнера закрытого ключа сертификата вашей организации загрузите в директорию keys. Должно получиться так:
keys
dproex.000
header.key
masks.key
masks2.key
name.key
primary.key
primary2.key
Запустите Агента командой:
run_agent.sh
Об успешности запуска говорит сообщение, подобное этому:
Application started. Container name: einfahrt. Available ports: 8183 (jdbc), 8192 (REST, driver download, OpenAPI specifications), 8171 (API gateway), 8172 (API gateway 'target architecture')
Также Агент ПОДД СМЭВ предоставляет следующие возможности:
-
настроить расширенные логи. Соответствующие настройки поместите в файл customLogLevels.xml;
-
получить архив с логами от момента старта до настоящего времени с помощью команды diag.sh;
-
запустить просмотр логов реалтайм с помощью команды log.sh;
-
получить логи в виде файла с помощью команды log_save.sh.
Проверить успешность установки и запуска Агента ПОДД СМЭВ можно, выполнив запрос к ядру СМЭВ4:
curl -X POST -H "Accept-Version:1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select 1"}}' http://localhost:8192/query --silent -m 30
Успешное выполнение выглядит так:
{
"created_at": "2022-09-13T17:00:17Z",
"query_id": "1ed33858-88bb-687d-9426-2f1dded2ee1b",
"meta": [
{
"name": "EXPR$0",
"type": "INTEGER"
}
],
"rows": [
[
"1"
]
]
}
Чтобы получить «Сведения о государственной регистрации самоходных машин и прицепов к ним, зарегистрированных на физ. лицо» через Агента ПОДД СМЭВ, нужно отправить такой запрос, где первый параметр (1234) — серия паспорта, второй параметр (123456) — номер паспорта:
curl -X POST -H "Accept-Version:1" -H "application/x-www-form-urlencoded; charset=utf-8" -d "priority=NORMAL" -d "sql=SELECT * FROM mcx_datamart.1.1.usmt_vehicles(?,?)" -d 'params={"type": "STRING", "value": "1234"},{"type": "STRING", "value": "123456"}' http://localhost:8192/query
или
sh
curl -X POST -H "Accept-Version:1" -H "Content-Type: application/json" -d '{"sql": {"sql": "select * from mcx_datamart.usmt_vehicles('\''1234'\'', '\''123456'\'')"}}' http://localhost:8192/query
В результате получим:
{
"created_at": "2023-09-18T09:09:54Z",
"query_id": "1ee56031-e8e2-65f6-acaa-d169f724a0a3",
"meta": [
{
"name": "vehicles_org_email",
"type": "STRING"
},
{
"name": "vehicles_surname",
"type": "STRING"
},
{
"name": "vehicles_birthday",
"type": "DATE"
},
...100500 meta
{
"name": "vehicles_is_registration_action_prohibited",
"type": "BOOLEAN"
}
],
"rows": [
[
null,
"ХРАМОВ",
"1968-10-06T00:00:00Z",
...100500 значений
null
],
[
null,
"ХРАМОВ",
"1968-10-06T00:00:00Z",
...100500 значений
null
],
[
null,
"ХРАМОВ",
"1968-10-06T00:00:00Z",
...100500 значений
null
]
]
}
Для указания адреса Агента ПОДД СМЭВ в сервисе используется переменная окружения SMEV4_AGENT_HOST (значение по умолчанию http://localhost:8192
). Помимо этого, есть стандартные настройки (в рамках Агредатора) для подключения к БД и RabbitMQ.
В рамках работы сервису отправляются стандартные запросы, как любому обычному сервису (ожидаемые параметры описаны в документации сервиса). Ответ также описан в документации соответствующего сервиса адаптера.
Взаимодействие Агентов ПОДД СМЭВ и Ядра ПОДД СМЭВ реализовано c использованием Протокола ПОДД СМЭВ, который представляет собой (в зависимости от вида информационного обмена):
- Бинарный протокол Apache Pulsar с предварительной аутентификацией.
- Бинарный протокол Rsocket.
Бинарный протокол Apache Pulsar — протокол, реализующий команды, которыми обмениваются между собой клиент (Агент ПОДД СМЭВ) и брокер Apache Pulsar в составе ПОДД СМЭВ. Команды имеют формат, базирующийся на Protocol Buffers (protobuf). Набор данных, пересылаемый ПОДД СМЭВ по этому протоколу, кодируется в формат Apache Avro.
В рамках предварительной аутентификации клиенты (Агенты ПОДД СМЭВ), устанавливающие подключение по бинарному протоколу Apache Pulsar, получают аутентификационный токен с использованием OpenID Connect (OIDC) — протокола, базирующегося на Oauth 2.0.
Бинарный протокол Rsockеt является более предпочтительным (т.к. лимит на тело запроса выше), но не все витрины могут поддерживать работу с ним (на их стороне должен использоваться клиент версии не ниже 3.7.0). Но на текущий момент сервисы работают через Pulsar и соответственно ПОДД должен быть настроен на использование Pulsar. Также Агент ПОДД СМЭВ разрешает использование как синхронных запросов, так и асинхронных — в сервисе предпочтительным является использование асинхронных запросов, что в ряде случаев может приводить к повторной переотправке запроса.
Пример получаемого сервисом сообщения (сервис для регламентированного запроса):
Headers:
{
"action": "default",
"consumer": "admin",
"reply_to": "admin",
"ticket": "61c16305-9061-4ca0-ae45-4714805b09cc",
"type": "ActionRequest"
}
Payload:
{
"service": "mcx-usmt-vehicles",
"request": {
"doc_series": "1234",
"doc_number": "123456"
}
}
Пример сообщения с ответом:
Headers:
{
"action": "ticket_result",
"service": "smev4",
"ticket": "61c16305-9061-4ca0-ae45-4714805b09cc",
"type": "result"
}
Payload:
{
"id": "61c16305-9061-4ca0-ae45-4714805b09cc",
"service": "smev4",
"status": "success",
"metadata": {
"request_meta": {}
},
"result": {
"data": [
{
"org_email": null,
"surname": "ХРАМОВ",
"birthday": "1968-10-06T00:00:00Z",
"full_address": "115142,,МОСКВА Г,,,,,,,КОЛОМЕНСКАЯ УЛ,21,3,108",
"document_series": "1234",
"org_ogrn": null,
"org_kpp": null,
"registration_date": "2018-06-14T00:00:00Z",
"seizure": null,
"vehicle_category": null,
"has_been_debited": false,
"first_name": "Игорь",
"sex": "Мужской",
"birthplace": "КАЗАХСТАН,ТАЛДЫ-КУРГАНСКАЯ ОБЛАСТЬ,,ТЕКЕЛИ,",
"citizenship_code": "РОССИЯ",
"snils": null,
"inn": null,
"kladr_code": null,
"email": null,
"document_type": "Паспорт гражданина РФ",
"document_number": "123456",
"document_date": "2018-01-01T00:00:00Z",
"issuing_authority": "МОСКВА",
"code_podrazd": null,
"org_short_name": null,
"org_inn": null,
"org_phone": null,
"deregistration_date": null,
"registration_action": "Постановка",
"registration_action_ban": null,
"vehicle_type": "ЗЕРНОУБОРОЧНЫЙ КОМБАЙН",
"vehicle_model": "ДЖОН ДИР МОД.9640",
"production_year": 2008,
"guid": "3cb3aa00-9639-4e2e-8338-f887dd284766",
"middle_name": "МИХАЙЛОВИЧ",
"phone": null,
"org_full_name": null,
"registration_type": "Временная",
"has_been_stolen": false,
"is_registration_action_prohibited": null
},
{
"org_email": null,
"surname": "ХРАМОВ",
"birthday": "1968-10-06T00:00:00Z",
"full_address": "115142,,МОСКВА Г,,,,,,,КОЛОМЕНСКАЯ УЛ,21,3,108",
"document_series": "1234",
"org_ogrn": null,
"org_kpp": null,
"registration_date": "2018-06-14T00:00:00Z",
"seizure": null,
"vehicle_category": null,
"has_been_deb03ited": false,
"first_name": "Игорь",
"sex": "Мужской",
"birthplace": "КАЗАХСТАН,ТАЛДЫ-КУРГАНСКАЯ ОБЛАСТЬ,,ТЕКЕЛИ,",
"citizenship_code": "РОССИЯ",
"snils": null,
"inn": null,
"kladr_code": null,
"email": null,
"document_type": "Паспорт гражданина РФ",
"document_number": "123456",
"document_date": "2018-01-01T00:00:00Z",
"issuing_authority": "МОСКВА",
"code_podrazd": null,
"org_short_name": null,
"org_inn": null,
"org_phone": null,
"deregistration_date": null,
"registration_action": "Постановка",
"registration_action_ban": null,
"vehicle_type": "ТРАКТОР",
"vehicle_model": "JOHN DEERE 8420 II",
"production_year": 2005,
"guid": "9f6eb233-ebe3-4dcc-8a55-8327a451dc2e",
"middle_name": "МИХАЙЛОВИЧ",
"phone": null,
"org_full_name": null,
"registration_type": "Временная",
"has_been_stolen": false,
"is_registration_action_prohibited": null
},
{
"org_email": null,
"surname": "ХРАМОВ",
"birthday": "1968-10-06T00:00:00Z",
"full_address": "115142,,МОСКВА Г,,,,,,,КОЛОМЕНСКАЯ УЛ,21,3,108",
"document_series": "1234",
"org_ogrn": null,
"org_kpp": null,
"registration_date": "2018-06-14T00:00:00Z",
"seizure": null,
"vehicle_category": null,
"has_been_debited": false,
"first_name": "Игорь",
"sex": "Мужской",
"birthplace": "КАЗАХСТАН,ТАЛДЫ-КУРГАНСКАЯ ОБЛАСТЬ,,ТЕКЕЛИ,",
"citizenship_code": "РОССИЯ",
"snils": null,
"inn": null,
"kladr_code": null,
"email": null,
"document_type": "Паспорт гражданина РФ",
"document_number": "123456",
"document_date": "2018-01-01T00:00:00Z",
"issuing_authority": "МОСКВА",
"code_podrazd": null,
"org_short_name": null,
"org_inn": null,
"org_phone": null,
"deregistration_date": null,
"registration_action": "Постановка",
"registration_action_ban": null,
"vehicle_type": "ЗЕРНОУБОРОЧНЫЙ КОМБАЙН",
"vehicle_model": "JOHN DEERE 9670STS",
"production_year": 2008,
"guid": "d757d0e7-b893-480b-9f4b-143c879d74e4",
"middle_name": "МИХАЙЛОВИЧ",
"phone": null,
"org_full_name": null,
"registration_type": "Временная",
"has_been_stolen": false,
"is_registration_action_prohibited": null
}
]
}
}
Полезные ссылки:
Список сервисов СМЭВ 4
Сервис | Описание |
---|---|
mcx-usmt-vehicles | Сведения о государственной регистрации самоходных машин и прицепов к ним, зарегистрированных на физ. лицо |
mvd-reg-status | Проверка действительности регистрации граждан Российской Федерации по месту жительства |
mvd-rfp-check | Проверка действительности паспорта гражданина Российской Федерации, удостоверяющего личность гражданина Российской Федерации на территории Российской Федерации |
mvd-reg-correlation | Проверка соответствия информации о документе, удостоверяющем личность гражданина РФ, и информации об адресе регистрации по месту жительства владельца такого документа |
Сервисы могут иметь различия и функциональные особенности.