Мультиочередность в СМЭВ

В материале рассмотрены возможности разделения очередей входящих и исходящих сообщений на уровне СМЭВ, Адаптера СМЭВ и информационной системы Участника СМЭВ.

Задача разделения очередей

В стандартном режиме чтение сообщений из очереди СМЭВ осуществляется по приницпу «все подряд». При вызове метода GetResponse web-сервиса СМЭВ возвращается первый ответ из очереди сообщений. Аналогично, при вызове метода GetRequest возвращается первый входящий запрос.

Очередь сообщений не сортируется по видам сведений. Для некоторых конфигураций информационных систем Участников взаимодействия возвращаемый вид сведений может иметь существенное значение. Сложности, как правило, начинаются в тот момент, когда у Участника СМЭВ фактически несколько ИС, или система имеет децентрализованный характер, но при этом используется одна мнемоника. Адаптеры СМЭВ в разных системах начинают «воровать» друг у друга сообщения.

Также отсутствие очередей для каждого вида сведений затрудняет процесс тестирования ВС в продуктивном контуре. Такое тестирование иногда необходимо для обеспечения корректного отображения сообщений в ИС.

Реализация мультиочередности 

Раздельное чтение очереди в СМЭВ

Формат запросов GetResponse и GetRequest позволяет задать пространство имен схемы ВС, ответы (запросы) на который требуется получить, а также имя корневого элемента сообщения:

Мультиочередность СМЭВ

Подробнее реализация «фильтрации по протоколу обмена» (так этот механизм называется в документации СМЭВ) описана в п. 5.3.2 «Методических рекомендаций по работе с Единой системой межведомственного электронного взаимодействия, версии 3.5.0.1».

Раздельное чтение очереди в Адаптере СМЭВ

В текущей версии Адаптера СМЭВ метод Get не имеет механизма фильтрации возвращаемого ответа по виду сведений:

Мультиочередность Адаптер

Критерий messageTypeCriteria позволяет выбрать только между ответом на исходящий запрос и входящим запросом – допустимые значения этого элемента: RESPONSE и REQUEST.

Никакой фильтрации по пространству имен схемы ВС в Адаптере сейчас нет.

У команды Хемуль IT есть основания предполагать, что в одной из следующих версий решения такая функция будет реализована.

Раздельное чтение очереди в ИС

Как всегда в подобных ситуациях, хемули бесстрашно берут инициативу в свои лапки. И разрабатывают решение, нивелирующее выявленные недостатки Адаптера СМЭВ.

Суть решения заключается в реализации промежуточных (между ИС участника и Адаптером СМЭВ) очередей и web-сервиса, который принимает запросы Get с указанием конкретного вида сведений в параметре и возвращает ответ из соответствующей очереди.

Мультиочередность ИС

Промежуточные очереди реализуются в виде представлений (view) непосредственно в базе Адаптера СМЭВ. Поэтому их наполнение происходит автоматически по мере получения адаптером новых сообщений из СМЭВ.

 

Если у Вас остались вопросы, комментарии или замечания по организации мультиочередности в СМЭВ, пожалуйста, напишите их в комментариях или свяжитесь с командой Хемуль IT любым удобным для Вас способом.

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
3 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
UArt
UArt
4 лет назад

функцию мультиочереди не торопятся внедрять в адаптер

Евгений
Евгений
3 лет назад
Ответить на  UArt

Создание мультиочередей https://smev.gosuslugi.ru/catalog/portal/inquiry

Андерс
Андерс
2 лет назад

> Адаптеры СМЭВ в разных системах начинают «воровать» друг у друга сообщения
Это что ж за архитектура такая…