Табличная маршрутизация – это метод передачи СМЭВ-сообщения от системы-отправителя к системе-получателю, при котором система-получатель определяется по таблице (связке кода маршрутизации и системы-получателя), хранимой в СМЭВ. Реализация данного метода доступна при наличии зарегистрированных в СМЭВ информационных систем (ИС) - участников взаимодействия (УВ).
Перечень (таблица) возможных систем-ответчиков для каждого протокола обмена (вида сведений) ведётся в СМЭВ, и каждый его пункт содержит:
· указание на систему-ответчика, в адрес которой может быть направлено сообщение-запрос в рамках данного протокола обмена (вида сведений);
· значение кода маршрутизации.
Код маршрутизации – это составная часть СМЭВ-документа, которая передаётся в сообщениях-запросах. Код маршрутизации в сообщении заполняется и передается внутри передаваемых сведений в соответствии с требованиями вида сведений с табличной маршрутизацией. СМЭВ в сообщении определяет код маршрутизации по xpath-выражению. Xpath-выражение необходимо передавать для регистрации в СМЭВ в заявке на регистрацию вида сведений с табличной маршрутизацией.
Пример блока запроса по приведенной схеме вида сведений нескольким системам-получателям:
<?xml version="1.0" encoding="UTF-8"?> <tns:RoutingRequest xmlns:tns="urn://version_table/3.0.0"> <tns:OrganizationCode>1600001</tns:OrganizationCode> <tns:RequestContent>Запрос</tns:RequestContent> </tns:RoutingRequest> <tns:RoutingRequest xmlns:tns="urn://version_table/3.0.0"> <tns:OrganizationCode>1600002</tns:OrganizationCode> <tns:RequestContent>Запрос2</tns:RequestContent> </tns:RoutingRequest> |
/*[local-name()="RoutingRequest"]/*[local-name()="OrganizationCode"]/text() |
Сопоставляя его значение с перечнем возможных ответчиков, СМЭВ определяет единственную систему-ответчика. В её очереди размещается сообщение-клон, содержимое которого полностью соответствует содержимому исходного сообщения-запроса. Перечень возможных ответчиков изменяется через ЛК УВ.
Передача сообщений с табличной маршрутизацией схематично представлена на (Рисунке 1).
Рисунок 1 – Схема табличной маршрутизации
Для системы-отправителя УВ необходимо зарегистрировать вид сведений (ВС). Вид сведений разрабатывается одним из участников взаимодействия в Личном кабинете (ЛК УВ) самостоятельно в соответствии с Методическими рекомендациями по работе со СМЭВ. Для системы-получателя УВ необходимо получить доступ к ВС.
Необходимый метод маршрутизации задается при регистрации ВС через ЛК УВ. Для начала, нужно выбрать режим сеанса обмена (Рисунок 2).
Рисунок 2 – Выбор режима сеанса обмена
На следующем этапе задать необходимый тип (Рисунок 3).
Рисунок 3 – Выбор типа маршрутизации
Также при добавлении комплекта схем необходимо указать где в схеме располагается код маршрутизации, в атрибуте или элементе. От указанного варианта будет формироваться xpath-выражение. Пример представлен на (Рисунке 4).
Рисунок 4 - Ввод элемента схемы версии ВС, содержащий код маршрутизации
После успешной регистрации ВС в карточке ВС появляется соответствующая отметка в строке Тип маршрутизации (Рисунок 5).
Рисунок 5 – Карточка ВС
Раздел Ответчики для ВС с табличной маршрутизацией должен иметь следующий вид (Рисунок 6).
Рисунок 6 – Раздел Ответчики в карточке ВС
Исходя из вышеуказанных данных можно сделать вывод, что по данному ВС есть несколько ответчиков: ИС с мнемоникой U3833 с кодом маршрутизации (1600001) и ИС с мнемоникой U3834 с кодом маршрутизации (1600002). Данные ИС являются получателями сообщений по данному ВС. Пример простого запроса с табличной маршрутизацией без вложений, где мнемоника U3836 – является мнемоникой ИС инициатора сообщения, а “ urn://version_table/3.0.0” – адрес ВС в ЛК УВ, будет иметь следующий вид:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:typ="urn://x-artefacts-smev-gov-ru/services/service-adapter/types"> |
Данный пример описывает передачу сообщения с текстом “Запрос” системе-получателю по коду маршрутизации “1600001”.
Если же необходимо отправить сообщения нескольким системам-получателям, то текст запроса будет иметь следующий вид:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="urn://x-artefacts-smev-gov-ru/services/service-adapter/types"> |
После чего каждая система-получатель получит каждая свой текст запроса. Пример конверта запроса для одного из получателей представлен на (Рисунке 7).
Рисунок 7 – Конверт запроса для ИС получателя с кодом маршрутизации 1600002