СМЭВ 3
Процесс взаимодействия
Работа СМЭВ 3 существенно отличается от работы СМЭВ 2. В частности изменился процесс взаимодействия ИС потребителя, СМЭВ, ИС поставщика.
Для именования пространств имен элементов в сообщениях зарезервированы два источника со схемой URN (базовые URI):
- urn://x-artefacts-smev-gov-ru/
- urn://smev-gov-ru/
- передача в СМЭВ запроса из ИС потребителя (//SendRequestRequest);
- получение из СМЭВ запроса в ИС поставщика (//GetRequestResponse);
- подтверждение поставщиком получения запроса из СМЭВ (//AckRequest);
- передача в СМЭВ ответа из ИС поставщика (//SendResponseRequest);
- получение из СМЭВ ответа в ИС потребителя (//GetResponseResponse);
- подтверждение потребителем получения ответа из СМЭВ (//AckRequest).
Типы сообщений
Сообщения типа "Запрос" - request
К сообщениям типа «Запрос»
(далее – запрос) относятся
сообщения, исходящие от инициатора взаимодействия: межведомственные запросы, запросы
на оказание государственных или муниципальных услуг, широковещательные рассылки.
Сообщения типа «запрос» проходят контроль
корректности данных в два этапа – синхронная
и асинхронная (необязательная) проверка.
Первый этап – синхронная
проверка. После выполнения всех синхронных проверок, запрос помещается в
очередь на асинхронную проверку. Если проверка прошла успешно, то в ответе
возвращается сообщение об успешной проверке, при наличии ошибок метод {urn://x-artefacts-smev-gov-ru/services/message-exchange/1.1:SendRequest} возвращает fault.
Асинхронная проверка осуществляется
после успешного завершения этапа синхронной проверки. При передаче сообщения в асинхронную
проверку СМЭВ в ответ на запрос возвращает в синхронном режиме сообщение, где в
блоке MessageMetadata содержится следующий тег: <ns2:Status>requestIsQueued</ns2:Status>.
Если
какая-либо асинхронная проверка показала ошибку, СМЭВ помещает во входящую
очередь ответов отправителя запроса сообщение об ошибке. Сообщение об ошибке
будет получено отправителем запроса при очередном запросе GetResponse.
Отличить
ответы поставщика данных от сообщений СМЭВ об ошибках асинхронного
контроля можно по содержимому элемента
{urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1:GetResponseResponse}:
если его дочерний элемент SenderProvidedResponseData содержит
элемент MessagePrimaryContent, то это ответ Поставщика, а если элемент
AsyncProcessingStatus – ответ об ошибке асинхронной
обработки СМЭВ.
Допустимо
направление несколько запросов в рамках одной бизнес-транзакции (запрос
сведений, дозапрос сведений, сообщение статуса Потребителя о получении сведений
и т.д.). В случае множественных запросов идентификатор первичного запроса
помещается в поле ReferenceMessageID всех последующих запросов в рамках
бизнес-транзакции.
Сообщения типа "Запрос" - response
Сообщения типа «Ответ» (далее – ответ)
могут содержать либо запрошенные данные, либо мотивированный отказ в приеме
запроса к исполнению. Запросы, представляющие собой широковещательные рассылки,
не требуют ответов.
Сообщения типа «Ответ» проходят контроль корректности данных аналогично сообщениями типа «Запрос».
Комментарии
Отправить комментарий