Осталось совсем немного времени до вступления в действие последних элементов Единой государственной автоматизированной информационной системы (ЕГАИС), предназначенной для контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции.

Для обслуживания взаимодействия с системой необходимо выполнение некоторых формальных требований:

  • выход в INTERNET со скоростью от 256 кбит/с и выше;
  • наличие личного кабинета в системе ЕГАИС;
  • наличие аппаратного крипто-ключа с встроенным криптопровайдером PKI/ГОСТ;
  • наличие усиленной квалифицированной электронной подписи;
  • проинсталлированное программное обеспечение ЕГАИС (Универсальный транспортный модуль — УТМ) на компьютерном блоке, с операционной системой от компании Microsoft, версией не ниже Windows 7.

    Поскольку, в данном случае мы говорим о типичном встраиваемом решении, тем более из индустрии ритейла, возникло желание в качестве платформы использовать одну из ОС семейства Microsoft Windows Embedded — POSReady 7. Windows Embedded POSReady 7 – это операционная система, выполненная на ядре Windows 7, но обладающая возможностями по встраиванию и, а также, самый экономичный на данный момент вариантом лицензирования профессиональной Windows 7 для индустрии торговли.

    Теперь выбираем аппаратную платформу. Взгляд становился на компьютерных блоках с пассивным охлаждением — Intel NUC DE3815TYKE и NFD10. Впрочем это не принципиально – можно использовать и другое устройство – планшет, ноутбук и т.п.
    Используя готовый дистрибутив Microsoft Windows POSReady 7 стандартным процессом производим инсталляцию ОС. Для тех, кто не знаком с этим процессом – видеоинструкция здесь.

    Далее следует процедура инсталляции компонент ЕГАИС (подробно описано в видео инструкции egais.ru/news/view?id=8). В процессе мы активируем наш аппаратный ключ JaCarta, для этого получаем ключ ГОСТ, необходимый для взаимодействия с программным обеспечением «Универсальный транспортный модуль» (далее — УТМ) и получаем RSA-ключ ФСРАР. Все это подробно описано по приведенной выше ссылке.

    Далее, определяем себя как организацию розничной торговли:
    image
    Рис. 1

    Затем входим в личный кабинет и приступаем к инсталляции требуемых компонент:
    image
    Рис. 2

    Нажимаем клавишу и ожидаем стремительного окончания инсталляции. На этапе инсталляции необходимого пакета JAVA8 возникла небольшая проблема:
    image
    Рис. 3

    Значит, входящий в комплект поставки IE8 – не лучшее решение. Это не страшно. Заходим по ссылке blogs.msdn.com/b/windows-embedded/archive/2014/01/08/internet-explorer-11-optional-update-is-now-available-for-standard-7-sp1-and-posready7.aspx и выбираем операционную систему нужной разрядности:
    image
    Рис. 4

    Загружаем апдейт и инсталлируем его. Убедились, что процесс прошел успешно. Возвращаемся в Личный кабинет и пробуем провести проверку снова, следуя указаниям на Рис. 2. И…. Превосходный результат — тест показывает, что инсталляция прошла успешно!
    Далее на аппаратной платформе, из IE выполняем запрос: localhost:8080 и получаем следующее:
    image
    Рис. 5

    Процесс закончен. Теперь мы обладаем необходимым программно-аппаратным комплексом, на который можем установить прикладное ПО, как на обычный ПК с Windows, и защитить устройство дополнительно, используя специальные возможности POSReady 7.

    Однако, хотелось бы протестировать работу модуля более серьезно. Обратимся к документу; «Универсальный транспортный модуль ЕГАИС (УТМ). ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ. Техническая документация для организаций оптовой и розничной торговли.»: www.hlvz.ru/files/upfiles/documentation1_1.pdf

    В указанном документе, в процессе создания тестовых запросов, широко используется утилита cURL и приводится пример ее использования: cURL -X GET localhost:8080. cURL — свободная служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL: ru.wikipedia.org/wiki/CURL. Одним из вариантов является скачивания утилиты с внешних ресурсов. При этом выяснилось, что очень часто утилиты curl – представлены просто как бинарные файлы, предназначенные для сборки приложения. При еще этом надо четко понимать – для какой разрядности Вашей операционной системы Вы выбираете утилиту.

    Мы воспользовались ресурсом: curl.haxx.se/gknw.net/7
    image
    Рис. 6

    Так как мы использовали 32-двух разрядную версию операционной системы нам надо использовать соответствующую сборку, перейдя в нужное дерево – dist-w32. В нашем случае положительный результат тестов был получен при выборе сборки: curl-7.40.0-ssl-sspi-zlib-static-bin-w32.zip.
    Исполнение тестовых команд из документа www.hlvz.ru/files/upfiles/documentation1_1.pdf показало полную работоспособность модуля УТМ.

Комментарии (15)


  1. Delphinum
    11.12.2015 22:00

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

    Так надежные или функциональные?


    1. Quarta
      14.12.2015 15:09

      POSReady 7 – это и надежно, и функционально. И, кстати, дешевле, чем классические OS Microsoft! Надежно — есть специальные возможности повышения устойчивости встраиваемых решений (их нет в обычной, настольной версии) – Keyboard Filter, Enhanced Write Filter и т.п. Функционально — есть масса готовых возможностей для использования в ритейле (например: POS for .NET – сканеры, весы и т.п.), что дает возможность исключить использование внешних или дополнительных средств для достижения требуемого результата.


      1. Delphinum
        14.12.2015 16:49

        Спасибо.


  1. Delphinum
    11.12.2015 22:03
    +5

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


  1. Aclz
    11.12.2015 23:29
    +4

    О чем пост? О том, что вы справились с установкой УТМ и скачали curl? Поздравляю, вы прошли 0.0001% веселой миссии под названием «Внедрение ЕГАИС». Веселье, в основном, состоит в хождении по поляне, густо посыпанной граблями, любезно раскиданным нашим государством в виде очередной прикормленной конторки «Центр-Информ», (занявшей достойное место в ряду таких компаний, как «РТ-Инвест», «МФИ-Софт» и т.д.), обеспечивающей техническое обеспечение проекта. И как водится с нашим государством, обеспечивающей его за миллионные контракты и на привычно дилетантском уровне, что программисты всея руси бьются головами об стенку от неработающих сервисов, отсутствующих и постоянно меняющихся форматов обмена данными, ужасно разработанного УТМа, написанного на кастрированном и некастомизируемом Jetty и прочими радостями. Впрочем, «алкоголиков» давно мурыжат всяческими декларациями, так что это уже лирика.

    Если говорить по теме, то использовать curl (фактически в статье больше нечего обсуждать) — это худшее, что можно в этой связи придумать в целях HTTP-обмена в корпоративном документообороте (неудивительно, что этот вариант и предложил Центр-Информ). Curl — это пользовательская утилита с очень длинной бородой, тянущейся из Unix-экосистемы, она не предназначена для встраивания в корпоративные системы (хотя технически это и возможно). Если уж писать под Win, то для этого есть куча куда более удобных и надежных родных средств (да хоть пауэршелл, да хоть в том же фреймворке есть куча классов для работы с HTTP, да хоть на коленке из скриптов, написанных в блокноте, вариантов миллион).


    1. Zapped
      12.12.2015 03:28
      +1

      это ещё хорошо, что cURL там приведён в качестве примера как можно посылать запрос
      curl -F xml_file=@<файл> <сервер>
      что даёт хоть представление, что запрос должен идти с Content-Type: multipart/form-data;...
      потому как другого не описано, а curl в COM-объектах использовать — муахаха!..
      а, по словам коллеги, который пилит взаимодействие с ЕГАИС, на любой неверный параметр в запросе — jetty выдаёт неинформативную белиберду…

      и да, пост — ниачом


      1. Aclz
        12.12.2015 05:17

        Всё так. Кое-что пришлось даже реверсить, т.к. интегратор создал форум, но сам там не пишет. Коль скоро зашла речь об альтернативах curl'у, мы запилили хранилище XML-ек в базу MS SQL (коль скоро корпоративные 1Сы обычно и так живут в нём, плюс данная СУБД понимает колонки таблицы типа XML: входящие/исходящие XML'и можно хранить в первозданном виде напрямую в базе, докучи сразу валидируя по XSD) с закачкой-выкачкой данных через написанный к нему же родной пакет SSIS (HTTP-часть на базе System.Net.HttpWebRequest — единственный класс в .NET, умеющий слать multipart/form-data и вменяемо обрабатывать статусы, т.к. УТМ нет-нет да любит выкинуть на какой-нибудь урл 404). Из таблиц с XML-колонкой вьюхи через cross apply парсят XML'и в обычные табличные представления, с которыми работает 1С.


        1. perfectdaemon
          14.12.2015 06:04

          Даже ваш комментарий информативнее чем этот пост :)

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

          Я тут тоже вожусь по работе с ЕГАИСом, нам нужен опт и 400 точек розницы. Взяли за основу китайские планшеты на x86 чипсетах с Windows 10. Используем самописный сервис на C#.


          1. Quarta
            14.12.2015 15:17

            Главная задача поста – предложить путь, как легко получить работающую программно-аппаратную платформу, за конечное число шагов, с использованием операционной системы POSReady 7 и конкретных аппаратных решений. А далее, конечно, интеграция платформы в учетные системы, в корпоративный документооборот и тд и тп. Но это уже другая тема.


    1. Quarta
      14.12.2015 15:12

      Коллеги, цель поста – описать процесс инсталляции УТМ ЕГАИС для тех, кто использует POSReady 7 в своих ритейловых решениях. На просторах нашей Родины таких много. Взаимодействие с ЕГАИС, периодически, приводит этих пользователей в замешательство и не на все вопросы может дать ответ «киноверсия» инсталляционного процесса. Именно для них – использующих POSReady 7 – мы описали пошаговый путь, путь гарантированной установки базовых компонент ЕГАИС.

      сURL – действительно тестовая утилита и мы ее использовали для тестирования получившегося решения. И в статье утилита приведена для примера. Надо же проверить инсталлированный софт?! Наш опыт показывает — есть много специалистов, которые вынуждены искать на форумах ответы – а как проверить, где взять, у меня ничего не получилось и т.п… Мы же предложили описание последовательности действий, без суеты, приводящих к получению позитивного результата тестирования.


  1. Quarta
    14.12.2015 15:02

    POSReady 7 – это и надежно, и функционально. И, кстати, дешевле, чем классические OS Microsoft! Надежно — есть специальные возможности повышения устойчивости встраиваемых решений (их нет в обычной, настольной версии) – Keyboard Filter, Enhanced Write Filter и т.п. Функционально — есть масса готовых возможностей для использования в ритейле (например: POS for .NET – сканеры, весы и т.п.), что дает возможность исключить использование внешних или дополнительных средств для достижения требуемого результата.


  1. Quarta
    14.12.2015 15:04

    Главная задача поста – предложить путь, как легко получить работающую программно-аппаратную платформу, за конечное число шагов, с использованием операционной системы POSReady 7 и конкретных аппаратных решений. А далее, конечно, интеграция платформы в учетные системы, в корпоративный документооборот и тд и тп. Но это уже совсем другая тема.


    1. grossws
      14.12.2015 21:49

      Количество комментариев с рекламой POSReady так велико, что я аж удивился, что вы не пишете TM или около каждого.