Основное взаимодействие Агента ПОДД с ядром СМЭВ4 реализовано с использованием протокола Apache Pulsar, который является распределенной платформой гарантированного обмена сообщениями между множеством систем. На основе этой платформы осуществляется возможность информационного взаимодействия ПОДД СМЭВ и подключенного к нему ИС УВ. Одним из способов обмена между несколькими Агентами ПОДД является использование регламентированных запросов (РЗ) типа REST-сервис, который поддерживает обмен по REST API спецификации.
Механизм запросов РЗ по типу REST-сервис предназначен для сквозного/прозрачного доступа к REST-сервису УВ, с которыми производится обмен через СМЭВ4 в качестве канала передачи данных. К основным преимуществам использования прозрачного механизма REST-сервиса является исключение необходимости реализации на стороне потребителя и поставщика:
- защищенного зашифрованного подключения по VPN или ограничение доступа по TLS;
- механизма идентификации, аутентификации и авторизации;
- функций поддержки геораспределенных узлов ИС и балансировки нагрузки;
- механизма ограничения скорости доступа.
Дополнительно данный механизм обеспечивает:
- возможность регистрации REST-сервиса ИС поставщика в ПОДД СМЭВ через описание REST API в виде OpenAPI спецификации;
- возможность выдачи прав на использование и взаимодействие ИС потребителя REST-сервисом ИС поставщика;
- наличие форматно-логического контроля запросов и ответов по OpenAPI спецификации как ИС потребителя, так и ИС поставщика.
Дополнительно можно сказать, что API-интерфейс или интерфейс прикладного программирования определяет лишь набор некоторых правил, по которым необходимо следовать для создания связи между множеством программных систем. В таком сетевом взаимодействии разделяют ИС потребителя, который пытается получить доступ к данным из определенной системы и ИС поставщика, который поставляет ограниченный чаще всего безопасный доступ к использованию собственных внутренних ресурсов или данных. Сам REST-сервис является программной архитектурой и определяет условия работы этого API-интерфейса.
Создать РЗ типа REST-сервис можно в ЛК УВ, используя меню «Создать регламентированный запрос REST-сервис».
Описание последовательности информационного обмена
Ниже приведена иллюстрация взаимодействия ИС Потребителя и ИС Поставщика с использованием запросов к REST-сервису ИС Поставщика (Рисунок 1).
Рисунок 1 – Последовательность обмена с использованием запросов к REST-сервису ИС Поставщика через СМЭВ4.
В контуре Потребителя данных:
1. Запрос к требуемому REST-сервису ИС Поставщика передается Агенту ПОДД СМЭВ с использованием REST-интерфейса;
2. ИС Агента Потребителя данных проверяет, что запрос и его параметры соответствуют спецификации OpenAPI и подписывает сообщение;
3. Агент Потребителя данных передает запрос в Ядро ПОДД СМЭВ.
Ядро ПОДД СМЭВ после получения запроса от Агента Потребителя данных:
4. выполняет проверку наличия у Потребителя данных полномочий на выполнение запросов к REST-сервису;
5. на основании полученного от Потребителя данных запроса формирует и отправляет запрос Агенту Поставщика данных.
В контуре Поставщика данных:
6. Агент Поставщика извлекает из сообщения запрос и формирует абсолютный URL-адрес запроса к соответствующему методу REST-сервиса ИС Поставщика;
7. Агент Поставщика отправляет запрос REST-сервису ИС Поставщика данных согласно полученному URL адресу;
8. REST-сервис ИС Поставщика выполняет полученный запрос;
9. REST-сервис ИС Поставщика возвращает в Агент ПОДД ответ на полученный запрос с HTTP кодом статуса выполнения операции и тело ответа;
Ядро ПОДД СМЭВ:
10. Перенаправляет результат Агенту Потребителя данных с использованием Протокола ПОДД СМЭВ.
В контуре Потребителя данных:
11. Агент Потребителя данных получает результат запроса, извлекает из сообщения HTTP код и тело и возвращает их в качестве ответа ИС Потребителя с использованием REST-интерфейса.
Важным замечанием при использовании РЗ REST-сервис при взаимодействии через СМЭВ4 является ограничение размера запроса в 5 Мб.
Процесс подключения к РЗ REST-сервис
Поставщик данных для участия в информационном обмене с использованием СМЭВ4 должен выполнить следующие требования:
2. реализовать в своем контуре REST-сервис;
3. зарегистрировать в СМЭВ4 спецификацию OpenAPI, соответствующую реализованному REST-сервису (выполняется при регистрации РЗ типа REST-сервис);
4. реализовать возможности REST-сервиса согласно разработанной и зарегистрированной в ПОДД СМЭВ REST API спецификации;
5. добавить критерии доступа для соответствующего информационного обмена.
Потребитель данных для участия в информационном обмене с использованием СМЭВ4 должен выполнить следующие требования:
1. зарегистрировать ИС в СМЭВ4;
2. настроить ИС, которая выполняет запросы и осуществляет обработку данных, связав ее с витриной;
3. получить доступ к РЗ типа REST-сервис;
4. развернуть в своем контуре Агента, ПО Хранилища данных по подписке и настроить его взаимодействие с Агентом.