СМЭВ 3 бесплатный переходник

Согласно методическим рекомендациям по работе со СМЭВ при подписании XML-фрагментов электронной подписью в форме XMLDSig, обязательно использовать нормализацию urn://smev-gov-ru/xmldsig/transform.

В алгоритме нормализации мне абсолютно непонятны пункты, связанные с namespace’ами, а именно:

  • Удалить namespace prefix, которые на текущем уровне объявляются, но не используются.
  • Проверить, что namespace текущего элемента объявлен либо выше по дереву, либо в текущем элементе. Если не объявлен, объявить в текущем элементе.
  • Namespace prefix элементов и атрибутов должны заменены на автоматически сгенерированные. Сгенерированный префикс состоит из литерала «ns», и порядкового номера сгенерированного префикса в рамках обрабатываемого XML-фрагмента, начиная с единицы. При генерации префиксов должно устраняться их дублирование.

При этом есть пример правильной xml, полученной после нормализации.

* Переводы строк и отступы добавлены для удобного просмотра.

Образцовая реализация (образцовая ли она – неизвестно) алгоритма представлена в методических рекомендациях на Java для Apache Santuario.

Кто-нибудь реализовывал данный алгоритм трансформации на PHP?

Или хотя бы смог вникнуть в те правила, согласно которым должна происходить трансформация? Не на языке ГОСТ-овской документации, а на человеческом?

В цикле статей мы, команда Gems Development, расскажем о работе с «Госуслугами» по ту сторону экрана и о том, как оформить эффективное взаимодействие органов государственной власти с порталом.

Общая схема взаимодействия через СМЭВ

Представим, что «Госуслуги» — это магазин, на витрине которого представлены сервисы для граждан и организаций. Запрос «покупателя» на услугу передаётся соответствующим органам через систему межведомственного электронного взаимодействия (СМЭВ). Система передаёт сообщения между порталом и ведомством.

Работа через СМЭВ происходит по протоколу SOAP (Simple Object Access Protocol — простой протокол для доступа к объектам).

СМЭВ 3 бесплатный переходник

Участники взаимодействия, как в магазине, делятся на поставщиков и потребителей. Поставщик — это информационная система (ИС), которая предоставляет сведения по запросу, а потребитель — система, запрашивает сведения.

Одна и та же ИС может действовать сразу в двух ролях. Например, в процессе предоставления услуги нужно уведомить портал о смене её статуса. В этом случае ИС-поставщик исполняет роль потребителя — проводит информационный обмен по статусам.

Виды сведений

Участники обмениваются данным через виды сведений (протоколы обмена) — правила формирования пакетов данных для передачи от одного участника другому.

Хороший пример вида сведений — Всероссийская перепись населения 2020. Данные о переписи передают федеральным органам исполнительной власти в электронном виде. В полученных данных существует чёткая структура сведений: ФИО, пол, дата рождения, гражданство, семейное положение. Также в рамках вида сведений описан ответ, который должен быть получен, если обработка запроса прошла успешно.

На июнь 2020 года в СМЭВ зарегистрировано более 1000 промышленных (рабочих) и 2000 тестовых видов.

Обмен данными в промышленной среде по всем видам сведений ведётся через защищённые каналы связи. Все передаваемые данные сопровождаются электронной цифровой подписью, с помощью которой СМЭВ идентифицирует участников взаимодействия.

Данные передаются по протоколу SOAP, при этом каждое сообщение представляет собой вложенную структуру:

СМЭВ 3 бесплатный переходник

Виды сведений делятся на две группы — простые и универсальные. Рассмотрим схему обмена данными по простому виду сведений:

СМЭВ 3 бесплатный переходник

На схеме видно, что данные форм отображаются непосредственно в конверты обмена данными. Из-за этого появляется ограничение: необходимо разработать структуру блока данных, запроса/ответа для каждого такого вида сведений.

Обмен по универсальному виду сведений можно представить так:

СМЭВ 3 бесплатный переходник

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

  • номер заявления портала и сведения, позволяющие определить услугу;
  • целевое подразделение, к которому пользователь обращается за услугой.

Данные формы, заполненные пользователем портала, пакуются во вложение к основному сообщению.

Таким образом можно оформить предоставление практически любых услуг без необходимости проходить трудную регистрацию нового вида сведений.

Очереди сообщений и процесс взаимодействия

В процессе взаимодействия сообщения помещаются в очереди входящих запросов и очереди входящих ответов. По сути очереди — это контейнеры, в которых содержатся сообщения по видам сведений.

Взаимодействие с очередями происходит с помощью специальных запросов. Более подробно они описаны в методических рекомендациях по работе со СМЭВ. Отметим только то, что благодаря очередям становится возможным асинхронный обмен данными: потребитель может оставить заявку на получение сведений, а поставщик — разместить ответ.

Следует помнить: чтобы забрать сообщение из очереди, необходимо подтвердить его получение с помощью Ack-запроса. В противном случае СМЭВ посчитает сообщение недоставленным и вернёт его в очередь через 15 минут после извлечения.

СМЭВ 3 бесплатный переходник

На каждый запрос может поступить как успешный, так и неуспешный ответ.

Представим себя в роли поставщика сведений: по запросу мы выдаём пользователю градостроительный план земельного участка, причём в рамках нашего ведомства действуют несколько территориальных подразделений, некоторые из которых такую услугу вовсе не оказывают. Допустим, пользователь портала при формировании заявления на получение услуги указал подразделение, не оказывающее услугу. Такая ситуация может возникнуть по двум причинам:

  • Произошло расхождение справочных данных на портале и у поставщика;
  • Нужного соответствия просто нет в настройках системы поставщика.

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

Успешный ответ предполагает сценарий, в котором результат услуги — это набор файлов (что бывает довольно часто). Перед отправкой результата необходимо выгрузить файлы в файловое хранилище СМЭВ на основе FTP-сервера. Названия файлов и их контрольные суммы нужно зафиксировать в пакете, который отправляем через SOAP. Таким образом, есть две операции по передачи данных, которые нужно связать общим контекстом — сведениями о файлах.

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

Постановка задачи

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

Итак, СМЭВ, как в поговорке про слова в песне, нельзя исключить из решения задачи интеграции с порталом государственных услуг. Но это к лучшему: благодаря системе у всех участников есть универсальная среда взаимодействия. Это позволяет опираться на определённый стандарт и не изобретать велосипед.

В следующих статьях мы рассмотрим, как на стороне поставщика сведений организовать обработку заявлений по данным пользователя с использованием движка автоматизации бизнес-процессов Workflow Core.

Sokolko

4 года, 1 месяц назад

СМЭВ 3 бесплатный переходник

Как мы уже писали в статье про СМЭВ 3, Система Межведомственного Электронного Взаимодействия уже давно востребована не только государственным учреждениями и органами власти, но и рядом коммерческих организаций. У наших клиентов также возникла необходимость взаимодействия со СМЭВ. История взаимодействия была начата ещё во времена “расцвета” СМЭВ 2, для которой не было готового Адаптера СМЭВ (как для СМЭВ 3). В то время для взаимодействия со СМЭВ 2 нами был разработан собственный Адаптер СМЭВ. Он всё ещё остаётся актуальным для интеграции с некоторыми сервисами СМЭВ, которые остаются работать на СМЭВ 2 (например, отправка и регистрация сертификатов в ЕСИА для Удостоверяющих Центров). Ориентировочной датой переноса всех сервисов на СМЭВ 3 называют март 2019 года, но всё может круто поменяться, учитывая специфику функционирования СМЭВ. В данной статье речь пойдёт о запуске бесплатного Адаптера СМЭВ 3 для взаимодействия с ним.

Отличия СМЭВ 2 от СМЭВ 3

Изначально мы планировали доработать наш Адаптер СМЭВ 2 собственной разработки для взаимодействия со СМЭВ 3. Но, как выяснилось, отличия двух систем не просто значительные, а радикальные. По сути, с точки зрения интеграции СМЭВ 2 не имеет почти ничего общего со СМЭВ 3. В СМЭВ 2 каждый поставщик данных (ФНС, ПФР, МВД) имел свой SOAP-сервис со своим файлом WSDL и особенностями работы. В СМЭВ 3 присутствует единый сервис, который является посредником между запрашивающей стороной (нами) и поставщиками информации. Более детально СМЭВ 3 описан в документе Методические рекомендации по работе с ЕСМЭВ

При выборе способа интеграции нужно учитывать, что передаваемые сообщения подписываются электронной подписью (ЭП) организации. Кроме того, при взаимодействии с единым сервисом СМЭВ 3 нужно использовать протокол SOAP с нестандартным алгоритмом каноникализации. Не совсем понятно, почему разработчики СМЭВ решили использовать свою каноникализацию, это уже останется на их совести. Само собой, свободных и открытых библиотек для данного алгоритма нет. Трудности есть и с подписыванием запросов SOAP по ГОСТ, т.к. не все языки программирования поддерживают ГОСТ “из коробки”. Эталонная реализация алгоритма каноникализации доступна только на Java, так что разработчики, использующие другие языки должны либо реализовывать данный алгоритм самостоятельно, либо отказаться от работы со СМЭВ.

Кроме того, при работе с российскими криптоалгоритмами по ГОСТ, согласно требованиям нашего законодательства к защите ключа электронной подписи, необходимо использовать сертифицированный криптопровайдер. То есть просто экспортировать приватный ключ из носителя ЭП и подписывать им запросы технически можно, но запрещено требованиями регуляторов в данной сфере. Это тоже накладывает свои ограничения на выбор технологии интеграции. Учитывая все эти аргументы, у нас получилось 3 варианта интеграции со СМЭВ 3.

Полностью собственное решение на удобном нам языке (Python)

СМЭВ 3 бесплатный переходник

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

Реализация собственного адаптера на Java

СМЭВ 3 бесплатный переходник

Данный способ использует для хранения закрытой части ключа КриптоПРО JCP. Такое решение соответствует законодательным требованиям РФ по защите ЭП, т.к. используется сертифицированный криптопровайдер. К недостаткам можно отнести поддержку не всех носителей ЭП и необходимость приобретения лицензии на КриптоПРО JCP. Библиотека для Java распространяется свободно.

Мы решили не останавливаться на этом способе, т.к. он “прибит гвоздями” к Java, а для нас удобнее несколько иные технологии разработки.

Бесплатный Адаптер СМЭВ 3

СМЭВ 3 бесплатный переходник

Мы выбрали за основу последний способ. При данном подходе за взаимодействие со СМЭВ 3 отвечает бесплатный адаптер СМЭВ от Ростелекома. Он полностью реализует функции асинхронной работы с единым сервисом СМЭВ (постановка в очередь запросов и формирование ответов). Подпись вычисляется через Trusted Java, ключ хранится в стандартном КриптоПРО CSP, который поддерживает очень большое количество носителей ЭП и имеет все необходимые сертификаты. Тут следует отметить, что требуется приобретение лицензий на Trusted Java и КриптоПРО CSP, но они довольно бюджетные и не оказали существенного влияния на общую смету проекта (порядка 3 000 руб. суммарно).

На схеме цветом выделены те сервисы, которые реализуются непосредственно нами на удобной нам технологии разработки ПО (Python). Благодаря возможности выбора способа интеграции (база данных, файловый обмен, SOAP) мы не привязаны к Java или каким-либо другим языкам программирования. Более подробно интерфейсы интеграции Адаптера СМЭВ описаны в руководстве администратора Адаптера.

Подготовка к запуску

СМЭВ 3 бесплатный переходник

В нашем случае, организация уже имела доступ к СМЭВ 2, была зарегистрирована в СМЭВ и имела все необходимые учётные записи. Но, как оказалось, для подключения к СМЭВ 3 этого недостаточно. Для получения учётной записи СМЭВ 3 необходимо снова собрать все документы и пройти процедуру подключения. Процедура описана в на Технологическом портале СМЭВ. После успешного подключения, на электронную почту будет направлено зарегистрированное наименование участника (название организации) и мнемоника, которая понадобится в дальнейшем для настройки Адаптера СМЭВ.

Выбор программной платформы для адаптера

СМЭВ 3 бесплатный переходник

Согласно официальной документации на Адатер СМЭВ 3, поддерживается как Windows, так и Linux. Это неудивительно, т.к. он написан на Java и изначально задумывался как кроссплатформенное программное обеспечение. Тем не менее, после более детального изучения документации, стало ясно, что поддержка Linux только номинальная. В частности, в руководстве администратора адаптера СМЭВ детально расписано, какие библиотеки для Java необходимо установить на Windows, представлены сведения о криптопровайдерах и т.д. В разделе об установке на Linux написано дословно “1. Развернуть и настроить java JRE в среде Linux.”. Это максимум информации, которую можно почерпнуть из официального руководства по вопросу установки на Linux. После нашего запроса в техподдержку пришла стандартная отписка, что нужно “настроить те же компоненты, что и в варианте с Windows”. После этого вопрос с выбором платформы был решён в пользу ОС Microsoft.

Установка адаптера СМЭВ

Для установки под Windows мы использовали полезную с технологического портала СМЭВ 3. Единственное. что следует учитывать: для настройки лицензии Trusted Java необходимо установить VC++ redistributable (из состава меню самой Trusted Java). Без неё окошко ввода лицензии не появляется. После установки и запуска адаптера он настраивается полностью по видеоинструкции на работу с тестовой средой (). Нужно не забыть настроить мнемонику системы и указать интеграцию через файловое хранилище (это потребуется дальше). Если планируется использовать web-интерфейс адаптера, рекомендую после установки сделать резервную копию машины: добавляемые в систему виды сведений никогда не удаляются. Такая уж особенность адаптера.

СМЭВ 3 бесплатный переходник

Тестовое взаимодействие со СМЭВ 3

Для того, чтобы иметь возможность работы с производственным контуром СМЭВ, необходимо обязательно пройти тестирование на тестовом контуре. Без соблюдения этого условия заявка на доступ к виду сведений будет сразу же отклонена. Тестирование предполагает отправку и получение эталонных запросов и ответов в адрес эмулятора СМЭВ. Результаты взаимодействия со СМЭВ по тестовому контуру отправляются в виде файлов с сообщениями адаптера как вложения к заявке на доступ к виду сведений. Для того, чтобы сообщения сохранялись в файлы, нужно в “Настройках конфигурации” Адаптера СМЭВ нажать кнопку “Показать расширенные настройки” и отметить галочку “12.2 Сохранение входящих/исходящих сообщений СМЭВ”

СМЭВ 3 бесплатный переходник

СМЭВ 3 бесплатный переходник

СМЭВ 3 бесплатный переходник

Будет загружен архив с несколькими файлами xml. Данные файлы представляют собой те сообщения, которые адаптер СМЭВ 3 должен отправить в адрес эмулятора и ответы на них.

Для того, чтобы отправить эталонные сообщения, нам необходимо подготовить файлы отправки. Т.к. мы выбрали интеграцию через файловое хранилище, адаптер будет забирать файлы из папки %ADAPTER_ROOT%integrationiles%MNEMONIC%out и на их основании отправлять сообщения. Тут проблема заключается в том, что у адаптера несколько иной формат конверта (сообщения), чем у сервиса ЕСМЭВ. Подробнее о формате можно почитать в руководстве администратора адаптера СМЭВ. Ниже приводится пример содержимого файла в формате адаптера для отправки эталонного сообщения тестирования вида сведений “Выписки из ЕГРЮЛ по запросам органов государственной власти”:

Здесь 111111 – мнемоника системы, 3e83e83a-6a23-4908-b0d2-e3ad08fe2602 – идентификатор запроса. Он должен меняться при каждом запросе. Можно воспользоваться онлайн-генератором по ссылке:

Как видно из примера, в блок MessagePrimaryContent помещается тело эталонного сообщения.

После отправки сообщения нужно подождать некоторое время и в папке  %ADAPTER_ROOT%messages%MNEMONIC% появятся файлы, в которых будут находиться XML-сообщения запроса и ответа. Данные файлы следует сохранить и впоследствии прикрепить к заявке на доступ к виду сведений производственного контура СМЭВ. Операцию по тестированию следует повторить для всех эталонных сообщений в архиве.

После того, как были получены все необходимые XML-файлы, подключение к СМЭВ производственного контура становится делом техники: нужно только оформить соответствующую заявку на доступ к нужному ВС и приложить файлы тестирования. В нашем случае доступ был предоставлен в течение трёх дней.

Надеемся, наш опыт был Вам полезен. Удачи в работе со СМЭВ!

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

СМЭВ 3 бесплатный переходник

UPD 03. 2020

С момента опубликования статьи описываемая в ней версия Адаптера СМЭВ морально и функционально устарела. Решение не поддерживает:

  • новый ГОСТ электронной подписи;
  • версию 1.3 схем СМЭВ.

Техподдержка СМЭВ поддерживает только последние версии адаптера.
Первое, что отвечают коллеги на соответсвующие запросы пользователей: «Сначала обновитесь до последней версии»

В связи с этим команда Хемуль IT настоятельно рекомендует обновить решение до последней версии, опубликованной на технологическом портале СМЭВ. Все опубликованные версии ПО также можно найти в материале «История версий Адаптера СМЭВ«.

Бесплатные адаптеры СМЭВ

Те особо любознательные пользователи технологического портала СМЭВ, кто долистывал главную страницу техпортала до конца, могли видеть там следующие ссылки:

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

В следующих статьях мы расскажем об Адаптере СМЭВ 3.0 и о библиотеке для сборки клиента СМЭВ 3.

Описание Адаптера для работы со СМЭВ 3

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

Адаптер представляет собой Java-приложение, которое с одной стороны полностью интегрировано со СМЭВ 3, а с другой — предоставляет участнику взаимодействия 4 различных интерфейса:

  • web-сервис;
  • обмен сообщениями через файловую систему;
  • обмен сообщениями через базу данных;
  • обмен сообщениями через Java Message Service.

Кроме того, к Адаптеру прилагается графическое пользовательское приложение (GUI адаптера), с помощью которого можно реализовать простейшее интеграционное решение без создания дополнительной информационной системы. При этом все запросы к Поставщикам видов сведений и ответы на запросы Потребителей создаются пользователями в ручном режиме посредством графического интерфейса.

GUI адаптера взаимодействует с самим Адаптером только через web-сервис.

Требования

В силу того, что Адаптер написан на Java, он является кроссплатформенным, и его можно устанавливать как на Windows, так и на nix-системы.

Для установки Адаптера требуются следующий набор компонентов:

  • JRE (бесплатно);
  • (КриптоПро CSP + Trusted Java) или (КриптоПро CSP + КриптоПро Java CSP) или КриптоПро JСP.

Для взаимодействия с Адаптером через JMS потребуется Apache ActiveMQ, а для взаимодействия с адаптером через базу данных потребуется одна из поддерживаемых им СУБД:

  • Oracle;
  • MySQL;
  • PostgreSQL;
  • MS SQL Server.

Структура

Функциональная схема Адаптера для работы со СМЭВ представлена на рисунке.

СМЭВ 3 бесплатный переходник

К Адаптеру СМЭВ можно подключить несколько информационных систем участника взаимодействия. При этом системы могут подключаться как к одному, так и к разным интерфейсам.

Анализ логов Адаптера позволяет предположить, что он состоит из следующих модулей:

Интеграционный модуль обеспечивает взаимодействие адаптера с информационными системами участника взаимодействия и с GUI адаптера.

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

В качестве СУБД могут быть использованы базы данных Derby (этот режим устанавливается по умолчанию) или PostgreSQL (здесь потребуется исполнить пару простеньких па с бубном).

Кроме сообщений в формате Адаптера СМЭВ, которые хранятся в базе данных, специальный отладочный режим позволяет сохранять сообщения в формате СМЭВ в виде XML-файлов. О разнице форматов Адаптера СМЭВ и самого СМЭВ речь пойдет ниже, а здесь сделаем предупреждение о том, что отладочный режим генерирует очень много XML-файлов. Регистрируется каждый запрос к очереди участника в СМЭВ и ответ на него (включая сообщения о пустой очереди), а эти запросы Адаптер посылает непрерывно.

Преимущества использования Адаптера СМЭВ в интеграционных решениях

В чем же заключаются преимущества использования Адаптера СМЭВ перед разработкой интеграционного решения «с нуля»?

Во-первых, упрощаются форматы XML-сообщений.

На следующих рисунках представлены: сверху — формат СМЭВ (из Методических рекомендаций по работе с ЕСМЭВ версии 3.4), снизу — формат Адаптера СМЭВ.

СМЭВ 3 бесплатный переходник

СМЭВ 3 бесплатный переходник

ЭП-ОВ – это электронная подпись информационной системы участника взаимодействия (органа власти).

ЭП-СП – это электронная подпись должностного лица участника взаимодействия, от имени которого подается запрос (расшифровка аббревиатуры СП утеряна).

При беглом анализе обоих схем бросается в глаза то, что в схеме Адаптера отсутствует подпись ЭП-ОВ. Эту функцию адаптер СМЭВ берет на себя – запросы, ответы и сообщения-тикеты (Ack) подписываются Адаптером автоматически.

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

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

К сожалению, в тех случаях, когда запросы определенных видов сведений требуют подписи должностного лица (например, запрос данных о доходах физлиц по справкам 2-НДФЛ у ФНС), эту подпись приходится формировать самостоятельно. Адаптер тут не помощник.

Но могут быть использованы:

  • библиотека для сборки клиента СМЭВ 3, о которой будет рассказано в одной из следующих статей;
  • GUI адаптера СМЭВ, если взаимодействие осуществляется с его помощью (GUI адаптера описывается в последнем разделе данной статьи).

В-третьих, вместо элемента TransactionCode в схеме Адаптера применяются элементы комплексного типа createGroupIdentity или linkedGroupIdentity.

Первый из них используется в запросах и представляет собой нижеследующую последовательность элементов.

СМЭВ 3 бесплатный переходник

На основании значений этих элементов Адаптер СМЭВ самостоятельно получает код транзакции в СГКТ, используя сервис СПКТ.

Расшифровку этих непроизносимых аббревиатур можно посмотреть в Методических рекомендациях, но лучше не тратить на это время.

Коды транзакций были придуманы для сложных бизнес-процессов, когда одно ведомство посылает запрос во второе ведомство, которое для подготовки ответа посылает запросы в третье или четвертое ведомство. Код транзакции служит для объединения всех этих запросов в одну бизнес-транзакцию.

На практике же эта идея пока не используется, поэтому в качестве значений всех трех элементов CreateGroupIdentity можно передавать по двадцать нулей, и СПКТ вернет вполне годный код транзакции.

Элемент linkedGroupIdentity используется в ответах на запросы, полученные из СМЭВа, т.е. когда участник взаимодействия выступает в роли Поставщика вида сведений. Причем этот элемент заполняется Адаптером автоматически при обработке запроса.

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

Все вложения перемещаются в каталог файловой системы, а в элементах AttachmentHeader запроса передаются ссылки на них.

СМЭВ 3 бесплатный переходник

Адаптер самостоятельно принимает решение (на основании размера вложения), каким образом передавать вложения – MTOM или отдельным файлом через FTP.

Если вложение не подписано подписью должностного лица, то Адаптер совершенно самостоятельно подписывает его подписью ЭП-ОВ.

Еще два неочевидных преимущества работы через Адаптер СМЭВ – это возможность отправки в СМЭВ псевдосинхронных запросов (SendSyncRequest) при подключении информационной системы через web-интерфейс и реализация Адаптером службы приема от СМЭВ push-уведомлений.

SendSyncRequest со стороны информационной системы участника выглядит как запрос в СМЭВ с немедленным получением синхронного ответа на него.

Под капотом это реализуется с помощью стандартных асинхронных запросов и ответов СМЭВ.

Использование SendSyncRequest имеет смысл только в случае быстрой (секунды) реакции Поставщика на поступающие к нему запросы, а такие виды сведений еще нужно поискать.

Push-сервис – это замечательный компонент, который должен получать push-уведомления от СМЭВ о том, что в очереди участника взаимодействия появилось новое сообщение (например, ответ на запрос).

Но для того, чтобы сделать этот push-сервис видимым со стороны СМЭВ, нужно спуститься в организационно-бюрократический ад и пройти все семь его кругов сначала в одном направлении — с техническими службами Ростелекома, а потом в другом направлении — со службой безопасности.

Если бы push-уведомление содержало в себе сам ответ на запрос (для Потребителя ВС) или запрос от другого участника взаимодействия (для Поставщика ВС),  эти мытарства, может, и имели бы смысл.

Но push-уведомление от СМЭВ реализовано в семантике «Посмотри свою очередь – там что-то новенькое появилось». После такого уведомления все равно требуется посылать запрос в СМЭВ на чтение очереди.

А Адаптер СМЭВ и так непрерывно отправляет такие запросы.

Собственно, поэтому «синхронный» запрос и push-уведомления отнесены нами в разряд неочевидных преимуществ СМЭВ-Адаптера.

Работа с GUI-адаптера (готовое решение из бесплатной коробки)

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

  • В двух командных оболочках последовательно запускаем два приложения – Адаптер СМЭВ и GUI адаптера СМЭВ.
  • Открываем интернет-браузер, и в строке адреса вводим «http://localhost:8082/».
  • Откроется интерфейс администратора, в котором заполним сведения о нашей информационной системе.

    Наименование системы может быть любым понятным пользователю.
    Мнемоника системы должна совпадать с той, которая зарегистрирована в СМЭВ и настроена в адаптере СМЭВ.
    Путь к файлу вложений должен совпадать с путем, настроенным в адаптере СМЭВ. Но может и вовсе отсутствовать, если виды сведений, обмен которыми предполагается реализовать, не используют вложений.

  • Переходим на закладку «Управление видами сведений» и добавляем описание вида сведений.

    Наименование вида сведений может совпадать с приведенным на технологическом портале, а может быть любым, удобным и понятным пользователям участника взаимодействия.
    Наименование схемы – необходимо указывать namespace из схемы вида сведений.
    Загрузить файл схемы – прикрепляется либо сам XSD-файл, либо, если в схеме есть импортируемые схемы, zip-архив, содержащий все схемы, используемые для вида сведений.
    Обычно в виде таких архивов схемы ВС хранятся на технологическом портале, но иногда их приходится собирать руками.
    Наименования корневых элементов запроса и ответа копируются из схемы вида сведений.
    В списке связанных информационных систем нужно указать те ИС, которые будут работать с создаваемым видом сведений. Для каждой ИС (если их много) могут быть указаны разные ВС (если их много).
    Нажимаем кнопку «Добавить».

  • Выходим из системы и осуществляем вход под учетной записью пользователя.

    У простого пользователя есть возможность создавать и отправлять в СМЭВ запросы, просматривать полученные ответы, просматривать полученные запросы и писать на них ответы.

  • Пользователю предоставляется интерфейс, в котором он может отслеживать состояние всех отправленных запросов и просматривать полученные ответы.
  • Пользователю предоставляется возможность просматривать как запрос, так и ответ на него.

    Возможность вывода сообщений на печать у пользователя, к сожалению, отсутствует.

Работа с входящими запросами, где участник взаимодействия выступает в роли поставщика вида сведений, происходит аналогичным образом.

В качестве заключения

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

Главный вывод заключается в том, что продукт вполне работоспособен, несмотря на несовершенство документации к нему и определенные трудности в установке и настройке, обусловленные этим несовершенством.

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

Также вы можете передать задачи организации СМЭВ-взаимодействия участникам нашего проекта. Качественная настройка СМЭВа и интеграция Адаптера с различными ИС — наш нехемульский долг.

В материале приводится обзор Универсального интерфейса (General Interafce, GI) – решения, разработанного командой Хемуль IT и позволяющего упростить и расширить возможности работы конечных пользователей с бесплатным Адаптером СМЭВ Минкомсвязи России. В состав универсального интерфейса входят собственный пользовательский интерфейс (UI) и программный интерфейс (API) для работы со СМЭВ.

СМЭВ 3 бесплатный переходник

Преимущества и недостатки бесплатного Адаптера СМЭВ

В настоящий момент многие органы исполнительной власти, негосударственные пенсионные фонды, кредитные организации для обеспечения взаимодействия в Системе электронного межведомственного взаимодействия (СМЭВ) используют программный продукт «Адаптер СМЭВ», разработанный Минкомсвязи России. Адаптер СМЭВ позволяет реализовать полноценное межведомственное взаимодействие. Кроме того, у решения существует несколько значимых преимуществ, по сравнению с другими продуктами, доступными на рынке на рынке:

  • ПО распространяется бесплатно;
  • ПО является официальным решением, рекомендуемым Минкомсвязи России;
  • ПО регулярно обновляется и поддерживает большинство нововведений, реализуемых в СМЭВ;
  • ПО не связано с отдельным вендором (интегратором), имеет подробную документацию и может поддерживаться различными коммерческими компаниями, а также силами штатных специалистов организации.

Тем не менее, в ходе практического использования Адаптера СМЭВ обнаруживается ряд существенных недостатков. Некоторые замечания, отмеченные коллективном Хемуль IT в статье «Реализация СМЭВ-проекта на базе бесплатного адаптера СМЭВ», были оперативно исправлены разработчиками. Другие были пропущены. Наконец, в очередном обновлении Адаптера был изменен тип и структура СУБД, что существенно ограничило возможности администрирования и доработки решения.

В результате, с точки зрения пользователя текущая реализация Адаптера СМЭВ обладает следующими недостатками:

  • отсутствие расширенных инструментов фильтрации и поиска по реестрам запросов;
  • отсутствие функционала для реализации бизнес-логики – формирования групп
  • отсутствие функционала конфигурации карточек запросов, вынуждающее пользователя при отправке запроса заполнять техническую информацию, вплоть до идентификатора запроса в СМЭВ;
  • невозможность параллельной работы пользовательского интерфейса (UI) и программного (API) интерфейсов Адаптера СМЭВ;
  • отсутствие документации для работы с СУБД H2;
  • сложности с разграничением прав доступа к функционалу Адаптера СМЭВ.

Для устранения выявленных недостатков командой проекта Хемуль-IT был разработан Универсальный интерфейс (General Interafce, GI) Адаптера СМЭВ. Универсальный интерфейс – оболочка, реализующая расширенный функционал пользовательского и программного интерфейса, и взаимодействующая с Адаптером СМЭВ посредством стандартного web-сервиса и обращения к недокументированным возможностям СУБД.

Описание Универсального интерфейса

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

Универсальный интерфейс обладает следующим функционалом:

  • гибкая настройка бизнес-логики обработки запросов, включая массовые запросы, последовательные запросы, запросы по расписанию;
  • формирование упрощенных карточек запросов и автоматическое заполнение технической информации в запросе (мнемоника, uuid, timetsmp) — для отправки запроса пользователю остается заполнить только содержательную информацию;
  • возможность создания в системе реестров и карточек объектов, объединяющих данные направляемые/получаемые из СМЭВ – например, если можно создать объект «организация», добавить в карточку объекта значения ИНН и ОГРН и направлять запросы в ФНС по данной организации кликом на одну кнопку;
  • настройка внешнего вида реестров запросов путем выбора набора колонок (атрибутов) в строке записи, изменения количества и последовательности колонок;
  • фильтрация записей в реестре запросов, в т.ч. по нескольким признакам;
  • поиск записей в реестре запросов, в т.ч. по сложным условиям;
  • собственная реализация программного интерфейса, поддерживающая параллельную работу UI и API;
  • авторизация и разграничение прав доступа пользователей – каждый пользователь может просматривать/ создавать/ редактировать только доступные для него запросы и объекты;
  • управление пользователями (создание, редактирование, настройка прав доступа);
  • визуализация процесса обработки запросов в СМЭВ – графический и визуальный мониторинг статусов обработки запросов в СМЭВ;
  • система уведомлений о событиях (получение запроса, поступление ответа на запрос).

Примеры функционала Универсального интерфейса

Пользовательский интерфейс (UI) Универсального интерфейса имеет серверную реализацию, доступен через интернет-браузер и не привязан к конкретному АРМ. При корректной настройке сети UI может быть доступен из любой точки мира. Решение не имеет ограничения на количество пользователей.

СМЭВ 3 бесплатный переходник

Регистрация новых пользователей производится Администратором.

Структура UI состоит из нескольких функциональных блоков:

  • набор взаимосвязанных реестров для обработки СМЭВ-запросов;
  • блок администрирования пользователей;
  • блок мониторинга обработки СМЭВ-запросов.
Реестры

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

СМЭВ 3 бесплатный переходник

Реестр запросов СМЭВ

Каждый реестр поддерживает функционал:

  • поиск по всем записям, поиск по колонке (отдельному атрибуту всех записей), поиск по нескольким колонкам или условиям;
  • сортировка по колонкам;
  • настройка набора и последовательности отображаемых колонок.

Любой реестр может быть выгружен пользователю в формате csv или xls. При этом результат выгрузки будет учитывать заданные пользователем настройки отображения колонок, а также результаты поисковых запросов, сортировки или выборки.

Универсальный интерфейс может содержать произвольное число реестров. Базовыми реестрами являются «Реестр входящих запросов СМЭВ» и «Реестр исходящих запросов СМЭВ». Кроме того, можно создавать реестры произвольных объектов – например, реестр организаций.

В карточке реестра отображается подробная структурированная информация о записи. Например, в карточке запроса СМЭВ отображается информация:

  • содержательные данные из полей запроса (ИНН, ФИО, СНИЛС и т.д.);
  • содержательные данные полей ответа на запрос;
  • статус обработки запроса в СМЭВ;
  • служебная информация (время направления запроса, автор запроса, время ответа, мнемоника и т.д.);
  • объекты или списки объектов, связанных с запросом (если запрос сформирован по ранее созданному объекту).

СМЭВ 3 бесплатный переходник

Настройка столбцов реестра

Произвольные объекты

Помимо стандартных объектов «входящие запросы» и «исходящие запросы» в Универсальном модуле могут быть созданы произвольные объекты. Произвольные объекты позволяют объединять информацию, необходимую для отправки запросов, или получаемую из ответов.

СМЭВ 3 бесплатный переходник

Например, если Потребитель часто делает запросы по юридическим лицам (ЕГРЮЛ, ЕГРН, задолженность, штатная численность сотрудников и т.д.), целесообразно создать отдельный «реестр организаций». В карточке записи «реестра организаций» будут содержаться:

  • базовые сведения, необходимые для направления СМЭВ-запроса (например, ИНН);
  • кнопки для направления типовых запросов «в один клик»;
  • результаты ответов по всем запросам в отдельных блоках;
  • информация о времени последнего обновления каждого блока информации;
  • ссылки на перечень всех связанных с организацией СМЭВ-запросов.
Направление СМЭВ-запросов

Направление СМЭВ-запроса возможно одним из двух способов:

  • в реестре запросов СМЭВ выбрать тип запроса, внести в карточку запроса содержательную информацию и подтвердить отправку запроса;
  • в карточке произвольного объекта (организация, человек и т.д.) нажать на кнопку соответствующего запроса.

СМЭВ 3 бесплатный переходник

Выбор типа запроса

СМЭВ 3 бесплатный переходник

Заполнение запроса СМЭВ

После того как запрос отправлен в карточке запроса и в реестре отображаются статусы его обработки. По получении содержательного ответа на запрос (responseresponse) Пользователь получает уведомление.

Содержательный ответ в зависимости от вида сведений может быть представлен в виде информации в поле карточки или в виде приложенного файла.

СМЭВ 3 бесплатный переходник

СМЭВ-запрос с ответом

СМЭВ 3 бесплатный переходник

Пример отображения ответа

Администрирование пользователей

Блок администрирования пользователей состоит из двух разделов:

  • создание пользователя или группы;
  • управление ролями.

Раздел создание пользователя или группы представляет собой древовидную структуру, в которой доступен функционал:

  • создание групп и подгрупп;
  • включение пользователей в группы и подгруппы.

СМЭВ 3 бесплатный переходник

Управление пользователями и группами

СМЭВ 3 бесплатный переходник

В разделе управления ролями осуществляется назначение группам, подгруппам и пользователям ролей для работы в Универсальном интерфейсе.

Существует два типа ролей: «администратор», «специалист службы поддержки» и функциональные роли. Пользователь с ролью «администратор» имеет доступ к функционалу управления пользователями. Пользователь с ролью «специалист службы поддержки» имеет доступ к разделу мониторинга СМЭВ-запросов.  Функциональные роли предназначены для конечных пользователей решения и дают право на просмотр / редактирование / создание записей в определенных реестрах. Если у пользователя нет прав на просмотр реестра, соответствующий реестр не отображается в его интерфейсе.

СМЭВ 3 бесплатный переходник

Мониторинг обработки СМЭВ-запросов

Раздел мониторинга запросов СМЭВ представляет собой дашборд, содержащий блоки с графической информацией:

  • о текущем состоянии и работоспособности отдельных элементов Универсального интерфейса и Адаптера СМЭВ;
  • о статистике обработки запросов на стороне решения и в СМЭВ
  • лог взаимодействия Адаптера со СМЭВ, обновляемый в реальном времени.

Информация представлена в виде графиков, гистограмм и флажков-индикторов.

Статистика обработки запросов представлена в разрезе отдельных видов сведений.

Мониторинг обработки СМЭВ-запросов реализован на недокументированных функциях СУБД H2 (реализованы Минкомсвязи по запросу заказчиков Хемуль IT). Функционал может использоваться службой технической поддержки (IT-департаментом) организации для контроля работоспособности инфраструктуры СМЭВ и оперативного решения возникающих инцидентов.

Функционал мониторинга обработки СМЭВ-запросов обладает следующими преимуществами (по сравнению с использованием стандартных программных решений):

  • оператор службы технической поддержки видит только информацию о запросе, но не его содержание, таким образом, решается проблема защиты персональных данных, содержащихся в сообщениях, передаваемых посредством СМЭВ;
  • в разделе отображается расширенный список статусов обработки СМЭВ-запросов, в том числе информацию о том, что запрос был получен Поставщиком данных;
  • в разделе отображается информация по всем ключевым параметрам работы инфраструктуры СМЭВ;
  • осуществляется визуализация общей статистики взаимодействия через СМЭВ за заданный период времени.

Программный интерфейс

В настоящий момент программный интерфейс реализован на базе файлового обмена. В папку «in» поступают файлы с данными СМЭВ-запросов, сгенерированные внешней интегрируемой информационной системой. В папку «out» выкладываются полученные ответы для внешней ИС.

Поступающие посредством API запросы могут отображаться в пользовательском интерфейсе решения.

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

  • о типе запросе или виде сведений, к которому направляется запрос;
  • содержательная информация для запроса;
  • идентификатор запроса.

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

Таким образом, обеспечивается интеграция бесплатного Адаптера СМЭВ с любой информационной системой пользователя: 1С, внедрённой CRM, собственной корпоративной ИС предприятия.

Преимущества Универсального интерфейса

Основными преимуществами Универсального интерфейса по сравнению со стандартным Адаптером СМЭВ выступают:

  • расширенный функционал работы с запросами СМЭВ;
  • возможность одновременного использования UI и API решения;
  • расширенный функционал разграничения прав доступа;
  • наличие системы мониторинга статуса запросов СМЭВ;
  • наличие системы уведомлений;
  • максимально гибкий API.

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

Больше проверок:  Налоговые проверки бизнеса в 2023 году изменения