README.md

    Типовое ПО “Витрина данных”

    Типовое ПО “Витрина данных” представляет собой комплекс программных и технических средств в составе информационно-телекоммуникационной инфраструктуры участника НСУД, а также других информационных систем.

    Составные части программы

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

    Основные компоненты

    • ProStore - основной компонент программы с открытым исходным кодом, обеспечивает единый интерфейс к хранилищу разнородных данных. Определяет структуры данных, запись и чтение данных Витрины. Позволяет работать со входящими в состав хранилища СУБД одинаковым образом, используя единый синтаксис запросов SQL и единую логическую схему данных. ProStore включает следующие компоненты:

      • Сервис исполнения запросов — анализирует и исполняет SQL-запросы; предоставляет REST API для JDBC-драйвера и взаимодействует с сервисом мониторинга статусов Kafka по REST API. В свою очередь состоит из следующих компонентов:

        • Коннектор Kafka-Postgres reader - считывает данные из PostgreSQL и передает их в брокер сообщений Kafka;
        • Коннектор Kafka-Postgres writer - записывает данные из брокера сообщений Kafka в PostgreSQL;
      • Сервис мониторинга статусов Kafka — отслеживает состояние топиков брокера сообщений Kafka; предоставляет REST API для сервиса исполнения запросов;
    • Apache ZooKeeper - необходим для поддержки информации о конфигурации и распределенной координации между компонентами Витрины, также используется как сервисная база данных ProStore, для хранения технической информации (метаданных) от поступающих в Витрину данных запросах;
    • Брокер сообщений Kafka - используется для непрерывной передачи сообщений между ПОДД-адаптером - Модуль исполнения запросов и Агентом ПОДД;
    • Слой адаптеров - общее название логических модулей программы, которые обеспечивают подключение к ПОДД СМЭВ, как информационной системы участника взаимодействия. В зависимости от предназначения логические модули обеспечивают загрузку запросов из очереди ИС УВ в ПОДД СМЭВ, формирование и отправку ответов в ПОДД СМЭВ, инициативное формирование уведомлений об изменении данных в экземпляре ПО «Витрина данных НСУД», отправку уведомлений в ПОДД СМЭВ, регистрацию реплики данных ИС УВ, подписки на репликацию и поддержку реплики в актуальном состоянии.

    Компоненты, входящие в состав слоя адаптеров

    • СМЭВ3-адаптер - обеспечивает информационное взаимодействие через единый электронный сервис единой системы межведомственного электронного взаимодействия (далее – СМЭВ).
    • Сервис формирования документов - предназначен для обеспечения возможности формирования документов, в формате XML и PDF, на основе предварительно подготовленных pebble-шаблонов, с возможностью добавления к сформированным документам электронной подписи.
    • CSV-Uploader - программный модуль Витрины данных, предназначен для следующих задач:
      • загрузка csv-файлов;
      • загрузка csv-файлов со структурой Витрины;
      • выгрузка csv-шаблонов с демо-шаблонами структуры Витрины;
      • автоматический запуск загрузки csv-файлов по расписанию из выбранного каталога;
      • просмотр Журнала операций.
    • ПОДД-адаптер - Модуль исполнения запросов - предназначен для исполнения запросов ПОДД СМЭВ (через протокол коммуникации Агент ПОДД).
    • ПОДД-адаптер – Модуль MPPR - предназначен для чтения данных в многопоточном режиме.
    • ПОДД-адаптер - Модуль MPPW - исполняет запросы в многопоточном режиме, записывающие данные в Prostore.
    • ПОДД-адаптер - Модуль группировки данных табличных параметров - предназначен для группировки данных при выполнении запросов с табличными параметрами.
    • ПОДД-адаптер - Модуль импорта табличных параметров - предназначен для создания временных таблиц при выполнении временных запросов с табличными параметрами.
    • ПОДД-адаптер - Wrapper - образует пакеты с данными табличных параметров, поступающие от Агента ПОДД в брокер сообщений Kafka, к формату, позволяющему обрабатывать их в многопоточном режиме.
    • ПОДД-адаптер - Модуль подписок - предназначен для управления подписками между Получателем данных (consumer) и Поставщиком данных (producer).
    • BLOB-адаптер - программный модуль Витрины данных, предназначен для получения доступа из Витрины данных к BLOB-объектам ведомства (BLOB-объект - это специальный тип двоичных данных, предназначенный для хранения бинарных файлов: изображений, скан-копий документов, текстовых файлов и т.д.).
    • DATA-Uploader - Модуль исполнения асинхронных заданий обеспечивает обработку очереди файлов, используя следующие функциональные особенности:
      • обработка очереди файлов производится циклами;
      • очередь файлов работает в режиме упорядочения процесса по принципу «первым пришел – первым обслужен»;
      • каждый элемент в очереди файлов содержит UUID задания, имя витрины и таблицы, содержимое CSV-файла;
      • файлы в очереди могут относится к разным витринам и/или разным таблицам одной витрины.
    • REST-Uploader - Модуль асинхронной загрузки данных из сторонних источников реализован для обеспечения параллельной загрузки данных с независимым масштабированием REST интерфейса.
    • REST-адаптер - сервис, реализующий публикацию конечных точек API для обработки запросов с использованием спецификации OpenAPI версии 3. Используется для сохранения обратной совместимости получения данных из ведомства по REST.
    • Counter-provider - Сервис генерации уникального номера (Counter-Provider) позволяет создавать неповторяющиеся уникальные порядковые номера для сквозной нумерации файлов в сервисе формирования документов Типового ПО Витрины данных конфигурации установки Стандарт;
    • СМЭВ QL Сервер - СМЭВ QL Сервер — приложение для конфигурирования и запуска типового API извлечения данных из хранилищ под управлением типового ПО «Витрина данных» от Минцифры (Ядро Prostore 6.1+). СМЭВ QL Сервер обладает характеристиками:
      • поддержка множественных источников данных Prostore;
      • выбор источника по условиям запроса;
      • защита атрибутов модели данных по их предоставлению;
      • автоматический параллелизм запросов к Prostore.
    • dtm-calcite-core - библиотека Calcite осуществляет парсинг классов, которые используются в библиотеке podd-adapter-calcite.

    Инструкция по установке компонентов Типового ПО “Витрина данных”

    Расположение исходных кодов

    Исходные коды программы располагаются в следующих публичных репозиториях:

    • dtm-calcite-core - исходные коды библиотеки Calcite;
    • dtm-prostore - исходные коды системы Prostore, предназначенной для построения витрин данных;
    • dtm-tools - исходные коды инструментов резервного копирования Типового ПО “Витрина данных”;
    • smev-adapters - исходные коды модулей Типового ПО “Витрина данных”.

    Ссылка на статью ЕСКС

    Развертывание Типового ПО Витрина данных из исходных кодов:

    https://info.gosuslugi.ru/articles/Развертывание_Типового_ПО_Витрина_данных_из_исходных_кодов/

    Обратная связь

    Портал Ситуационного центра:

    • через личный кабинет участника взаимодействия: https://sc.digital.gov.ru/home
    • при помощи электронной почты: sd@sc.digital.gov.ru
    Конвейеры
    0 успешных
    0 с ошибкой