Витрина НСУД – это набор структурированных данных доступных для пользователей СМЭВ. Обычно это данные по определенной теме или задаче в ведомстве. Например, витрина с данными о событиях по направлению деятельности ведомства или подведомственной организации может содержать подробные данные о датах событий, регистрационных номерах событий, их уровне критичности, имена и контакты ответственных за направление по событиям и другие сведения. Ничего лишнего, только нужные и актуальные очищенные данные, полученные из других ИС ведомства. Таких витрин даже в одном ведомстве может быть множество (Рисунок 1).
Рисунок 1 - Что такое витрин данных НСУД.
Витрины чаще всего используются в ведомствах в качестве мастер-данных, например, как справочники. Помимо этого, витрина может выступать периферическим узлом в сетях обмена данными между различными участниками при межведомственном взаимодействии.
Витрина данных конфигурации установки Стандарт имеет модульную архитектуру и построена на базе компонентов, представленных на Рисунке 2.
Рисунок 2 - Общая архитектура решения.
Функциональный состав Витрины данных конфигурации установки Стандарт
Основные компоненты:
1. ProStore – ядро витрины, обеспечивает единый интерфейс к хранилищу разнородных данных. Определяет структуры данных, запись и чтение данных витрины. Позволяет работать с входящими в состав хранилища СУБД одинаковым образом, используя единый синтаксис запросов SQL и единую логическую схему данных.ProStore включает в себя следующие компоненты:
- Сервис исполнения запросов — анализирует и исполняет SQL-запросы; предоставляет REST API для JDBC-драйвера и взаимодействует с сервисом мониторинга статусов Kafka по REST API. В свою очередь состоит из следующих компонентов:
- Коннектор Kafka-Postgres reader - считывает данные из PostrgeSQL и передает их в брокер сообщений Kafka.
- Коннектор Kafka-Postgres writer - записывает данные из брокера сообщений Kafka в PostrgeSQL.
- Сервис мониторинга статусов Kafka — отслеживает состояние топиков брокера сообщений Kafka; предоставляет REST API для сервиса исполнения запросов.
- PostrgeSQL - база данных ProStore.
- Apache ZooKeeper - необходим для поддержки информации о конфигурации и распределенной координации между компонентами Витрины, также используется как сервисная база данных ProStore, для хранения технической информации (метаданных) от поступающих в Витрину данных запросах.
- Брокер сообщений Kafka - используется для непрерывной передачи сообщений между:
- CSV-uploader и ProStore;
- ПОДД-адаптером и Агентом ПОДД.
2. ПОДД-адаптер - модуль витрины, который предоставляет подключение к ПОДД СМЭВ, как информационной системы участника взаимодействия. ПОДД-адаптер обеспечивает:
- загрузку запросов из очереди ИС УВ в ПОДД СМЭВ;
- o формирование и отправку ответов в ПОДД СМЭВ;
- инициативное формирование уведомлений об изменении данных в витрине;
- отправку уведомлений в ПОДД СМЭВ.
3. CSV-uploader - модуль витрины, который предназначен для выгрузки шаблонов файлов из витрины и загрузки пользовательских данных в витрину в форматах csv/xml-файлов.
Дополнительное программное обеспечение для администрирования и мониторинга:
- Grafana- инструмент реализован в виде панели управления и мониторинга и позволяет визуализировать системные события витрины на базе собираемых метрик.
- Docker- программное обеспечение для автоматизации развёртывания и управления витрины в виртуальных средах с поддержкой контейнеризации. Контейнер позволяет производить изолированный запуск ОС с подключённой файловой системой из образа, изолированно разворачивать приложения и реализовывать микросервисы. Настройки среды хранятся в GitHub, обеспечивая единую точку управления конфигурациями..
- Portainer- web-приложение для управления docker-контейнерами.
- Graylog- программное обеспечение для управления лог-файлами.
- МongoDB- база данных Graylog.
- Elasticsearch- утилита полнотекстового поиска и аналитики, которая позволяет быстро в режиме реального времени хранить, искать и анализировать большие объемы данных и сохраняет их для Graylog. Для передачи сообщений в Graylog использует Filebeat.
- Filebeat- агент на сервере для отправки различных типов оперативных данных в Elasticsearch.
- Node_exporter - процессы, обеспечивающие сбор и передачу системных метрик серверу Prometheus. Также, используется для сбора метрик ПОДД-адаптера и CSV-uploader.
Рисунок 3. Схема компонентов
Взаимосвязи между составными частями витрины данных конфигурации установки Стандарт:
Клиент | Сервер | Способ взаимодействия | Описание |
ПОДД-адаптер | ProStore |
JDBC Брокер сообщений Kafka |
Исполнение запросов. |
CSV-uploader | ProStore |
JDBC Брокер сообщений Kafka |
Управление логической структурой таблиц. Загрузка публикуемых данных в витрину. |
ProStore | СУБД PostgreSQL | JDBC |
Управление логической структурой таблиц. Исполнение запросов. Управление загрузкой публикуемых данных в витрину. |
Связи с другими программами
Взаимодействие с другими программами происходит путем вызова соответствующих модулей витрины данных конфигурации установки Стандарт:
- Внутренняя ИС Ведомства взаимодействует с ProStore через JDBC-driver или REST-интерфейс.
- ПОДД-адаптер для взаимодействия с ИС участников взаимодействия через Агента ПОДД.
- CSV-uploader для взаимодействия с ИС участников взаимодействия для передачи файлов в формате XML и CSV.
Связи витрины данных конфигурации установки Стандарт со сторонними программами:
Клиент |
Сервер |
Способ взаимодействия |
Описание |
Внутренняя ИС Ведомств |
CSV-uploader |
Файловый обмен (CSV) REST |
Загрузка публикуемых данных в витрину |
ProStore |
JDBC Брокер сообщений Kafka |
Управление логической структурой таблиц. Исполнение запросов. Загрузка публикуемых данных в витрину. |
|
ПОДД-адаптер |
Агент ПОДД |
Брокер сообщений Kafka |
Исполнение запросов. |
Карта портов
Компонент |
Описание |
podd-adapter |
Порт: 8083 Протокол: HTTP Описание: Взаимодействие с ПОДД-адаптером |
csv-uploader |
Порт: 8080 Протокол: HTTP Описание: Взаимодействие с CSV-uploader |
query-execution |
Порт: 8080 Протокол: HTTP Описание: номер порта сервиса метрик Порт: 9090 Протокол: TCP Описание: номер порта сервиса исполнения запросов |
status_monitor |
Порт: 9095 Протокол: HTTP Описание: сетевой адрес и путь для получения информации о статусе сервиса |
prometheus |
Порт: 9090 Протокол: HTTP Описание: Подключение к Prometheus WEB UI |
grafana |
Порт: 3000 Протокол: HTTP Описание: Web-интерфейс для работы c Grafana |
node_exporter |
Порт: 9100 Протокол: HTTP Описание: Порт для загрузки метрик |
filebeat |
Порт: нет открытых портов Протокол: - Описание: - |
mongodb |
Порт: 27017 Протокол:TCP Описание: Подключение к MongoDB. Порт по умолчанию для экземпляров mongod и mongos. Вы можете изменить этот порт с помощью port или – port. Порт: 27018 Протокол: TCP Описание: Подключение к MongoDB. Порт по умолчанию для mongod при запуске с параметром командной строки –shardsvr или значением shardsvr для параметра clusterRole в файле конфигурации. |
elasticsearch |
Порт: 9200 Протокол: HTTP Описание: Подключение к Elasticsearch. |
kafka_postgres_writer |
Порт: 8096 Протокол: HTTP Описание: Порт используется для записи топиков Kafka в ProStore |
kafka_postgres_reader |
Порт: 8094 Протокол: HTTP Описание: Порт используется для чтения топиков Kafka из ProStore |
postgres |
Порт: 5432 Протокол: TCP PostgresSQL Protocol Описание: Источник данных SQL |
kafka |
Порт: 9092 Протокол: Порт используется для Описание: TCP |
zookeeper |
Порт: 2181 Протокол: TCP Описание: Порт используется для доступа к Zookeeper |
portainer |
Порт: 9000 Протокол: HTTP Описание: Web-интерфейс для работы c Portainer |
Описание логической структуры
Рисунок 4 - Логическая схема.
1. После установки, витрина данных конфигурации установки Стандарт не содержит никакой логической модели данных. Необходимо загрузить структуру витрины через web-интерфейс витрины (для хранения данных в качестве Поставщика данных). За загрузку структуры витрины отвечает модуль CSV-uploader. При работе с ПОДД структура таблиц настраивается в ЕИП НСУД и передаются в витрину через ПОДД.
2. После того, как логическая модель данных в витрине настроена можно:
- выгрузить шаблон через web-интерфейс;
- загружать данные в витрину:
- через web-интерфейс;
- файловый обмен;
- REST.
- обрабатывать SQL-запросы в качестве Поставщика данных.
Доступные пользовательские функции Витрины данных конфигурации установки Стандарт
1. Создание структуры таблиц витрины
Для решения этой задачи администратор витрины через web-интерфейс CSV-uploader загружает заранее сконфигурированный xml-файл со структурой витрины. Витрина на основании содержимого xml-файла создает таблицы с указанными именами и полями в своей БД.
2. Выгрузка шаблона
Разработан графический интерфейс, в котором администратор витрины имеет возможность выбрать нужную таблицу и скачать ее на свой ПК (чтобы использовать ее в качестве примера для подготовки загружаемых данных).3. Загрузка данных в витрину
В витрине данных конфигурации установки Стандарт предусмотрено три варианта загрузки данных:- через графический интерфейс (csv-файлы);
- REST API;
- файловый обмен.
3.1. .Загрузка данных через графический интерфейс (csv-файлы)
Администратор витрины через графический интерфейс модуля CSV-uploader выбирает таблицу и загружает csv-файл с обновленными/добавленными данными. Витрина записывает данные в таблицу своей БД.
3.2. Загрузка данных через REST API
В витрине данных конфигурации установки Стандарт предусмотрен модуль, который выступает в качестве REST-сервера, он позволяет выполнять стандартные POST, DELETE запросы для URL, содержащих имя таблицы, полученные данные модуль передает модулю CSV-uploader, который загружает данные в витрину.
3.3. Загрузка данных через файловый обмен
В витрине данных конфигурации установки Стандарт настроена периодическая проверка папки, выбранной для файлового обмена. В случае появления в папке нового csv-файла, витрина считывает его, содержимое csv-файла передает модулю CSV-uploader, который загружает данные в витрину. После передачи данных витрина удаляет csv-файл из папки.
4. Журналирование событий функциональных блоков
Рисунок 5 - Мониторинг и журналирование событий в системе.
Доступно журналирование событий функциональных блоков витрины данных конфигурации установки Стандарт:
- Prostore;
- БД Prostore (PostgreSQL);
- Брокер сообщений;
- БД Брокера сообщений;
- ПОДД-адаптер;
- CSV-uploader.
При реализации указанного метода витрина данных конфигурации установки Стандарт выполняет следующие основные операции по обработке данных:
- запись системных событий (отдельно по каждому функциональному блоку) осуществляется в лог-файлы;
- предоставление возможности просмотра журнала событий (лог-файла).
Просмотр лог-файлов возможен через графический интерфейс web-приложения Grafana.
Настройку детализации лог-файлов осуществляет администратор.
5. Запуск модулей в кластеризованном режиме.
В кластере могут быть развернуты и работать следующие модули:
1. СУБД (ADB, ADQM, ADG, PostgreSQL (ADP);
2. ADS (Kafka, Zookeper);
3. Мониторинг и Журналирование (Elasticsearch, Filebeat, Node Exporter).