Как стать автором
Обновить

Комментарии 18

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

Как правило у всех самописный… там в описании есть открытый код на java и на этом все… Никаких примеров с популярными фреймворками… Если вы не пишете на Яве, то придется самому пострадать… ибо описание смэва — это тошниловка… во всяком случае так было очень долгое время, последнюю версию не видел… команда смэва выпускает обычно несколько релизов в год…
и они очень любят бюрократию… система регистрации видов сведений, доступа к другим ВС построена на заполнении doc-файлов с многочисленными редакциями… то есть любая новая запятая в их форме — это требование скачать новую форму, иначе вернут..

Ничего не изменилось.
Решение получилось разноплановое: обработка сообщений реализована на .Net Core с помощью модели классов, полученной по XSD-схемам СМЭВа. Это касается как непосредственно конверта СМЭВ, так и блоков бизнес-данных.

Подпись и проверка выполняются по запросу основного решения параллельно работающим сервисом. Этот сервис реализован уже на Java и в своей работе опирается на библиотеку «КриптоПро», которая, в том числе, обеспечивает нормализацию результирующих сообщений перед отправкой.

Таким образом, как верно заметил casta001, наш «адаптер» встал в стройные ряды изделий ручной работы )

А почему не использовали КриптоПро.Net, раз уж отдельный сервис с подписью сделан? Тогда бы решение было без java

Дело в том, что года два назад мы затеяли переход на .NET Core и Linux, и на тот момент подходящего решения от «КриптоПро» не было. Зато была Java CSP, которую, к слову, мы использовали и ранее в составе упомянутого сервиса в других проектах. Собственно, потому и решили остаться на проверенном варианте, слегка дополнив его реализацию.

Это уже традиционно, однако у Крипто Про какие-то проблемы в .Net Core
или уже есть нормальный релиз?

Там всё очень интересно. Только с форума криптопро можно узнать о том, что они пилят форк corefx с поддержкой ГОСТ шифрования. У них даже есть готовый how-to как собирать приложение вместе с их форком corefx.
Справедливости ради, форк corefx сейчас — это единственный адекватный способ добавить алгоритмы шифрования и подписи в net core.
Когда я попытался собрать замечательный проект GostCryptography под net core, выяснилось, что MS не дописала возможность добавления кастомных алгоритмов во время исполнения( хотя такой функционал есть в Net Framework). И по issue на гитхабе такая возможность появится только в net 5.

Супер, благодарю!

Насчет «прочно вошли в жизнь» я бы так не сказал, но они стараются
Прелестно. Т.к. все данные во вложения конверта, то у отправителя нет никаких автоматических инструментов, для валидации сообщения (что является «фишкой» SOAP).
Из текста не понял, формат «вложения» хоть как-нибудь стандартизирован или туда можно напихать все что угодно.
ИМХО конверт тут не нужен от слова совсем.
Нужен реестр сервисов и какая-нибудь «максимально тупая» шина.

Так здесь так и сделано. Шина максимально тупая. Есть реестр сервисов https://smev3.gosuslugi.ru/portal/inquirytype.jsp?zone=fed
Для каждого сервиса(вида сведений в местной терминологии) есть схема и тестовые примеры запрос-ответ.

Из текста не понял, формат «вложения» хоть как-нибудь стандартизирован или туда можно напихать все что угодно.

Во вложении размещается файл «application.xml» со всеми данными из формы, которую заполнил пользователь (+ опись вложений). Структура документа, расположенного в файле «application.xml», может (и должна) быть проверена по XSD-схеме, которая и определяет модель вида сведений. Но это делается, как Вы верно заметили, уже по ту и/или другую сторону СМЭВа, что может добавить хлопот.

ИМХО конверт тут не нужен от слова совсем.

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

Не могли бы Вы обновить статью? Картинки не грузятся.

Прошу прощения за задержку, изображения переехали и теперь доступны для просмотра.

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

По данным техподдержки, за первый квартал 2023 года в среднем поступало по 3-4 заявки в месяц в рамках региона. Подавляющая часть неисправностей вызвана изменениями в структуре сообщений по видам сведений и изменениями в справочниках ЕСНСИ. Т.к. данные источники изменений неподконтрольны разработчику решения, приходится адаптировать решение (силами организации, обслуживающей по контракту).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории