01 Описание системы Luxms BI
Платформа Luxms BI создана для интерактивной визуализации данных с целью проведения экспресс-анализа их структуры и динамики. Реализовано на трёх слоях:
- Представление (Front-End Layer).
- Обработка (Back-End Layer).
- Хранение (Storage Layer).
Слой “Представления”
- Реализован на базе NGinx (компонент
luxmsbi-web
) и усилен использованием Lua-скриптов. Дополнительно функционал Front-End-а использует HTTP API компонентаluxmsbi-appserver
(Java). Предоставляет следующие интерфейсы:
- HTTP/HTTPS - 80,443/TCP.
Tребует взаимодействия с:
- KeyDB сервером.
- БД Luxms BI.
- Компонентом
luxmsbi-appserver
. - Компонентом
luxmsbi-datagate
. - Компонентом
luxmsbi-importer
.
Компонент luxmsbi-web
включает в себя базовые конфигурационные файлы для организации SSO-авторизации и шифрование сессий с помощью SSL.
2) luxmsbi-bins
(Javascript) - предоставляет функционал обработки WebSocket соединений с браузером клиента. Имеет следующие интерфейсы:
- HTTP API - 8888/TCP.
Tребует взаимодействия с:
- KeyDB сервером;
- БД Luxms BI.
Слой “Обработки”
Текущая версия требует наличия только компонента luxmsbi-appserver
, поставляемый с пакетом luxmsbi-appserver-mono, который включает в себя консолидированный функционал по управлению системой и взаимодействия с источниками данных.
Но при необходимости выноса взаимодействия с внешними источниками данных, можно использовать выделенные компоненты:
luxmsbi-appserver
, поставляемый пакетом luxmsbi-appserver, без функционала работы с Источниками данных;luxmsbi-datagate
, поставляемый пакетом luxmsbi-datagate.
Компонент luxmsbi-importer
- устаревший компонент для обеспечения интеграции с внешними Источниками данных. Поддерживаемый для существующих Клиентских инсталляций, но не рекомендуемый для новых развертываний.
luxmsbi-appserver
(Java) - предоставляет API для управления настройками приложения Luxms BI и функционал работы с Источниками данных, в консолидированном варианте. Имеет следующие интерфейсы:
- HTTP API - 8080/TCP;
- RSocket - 7200/TCP, при использовании консолидированного компонента luxmsbi-appserver-mono.
Tребует взаимодействия с:
- NATS сервером;
- БД Luxms BI.
luxmsbi-datagate
(Java) - обеспечивает взаимодействие со сторонними источниками данных. Имеет следующие интерфейсы:
- HTTP API - 8200/TCP.
- RSocket - 7200/TCP.
Tребует взаимодействия с:
- NATS сервером;
- БД Luxms BI.
3) luxmsbi-importer
(Java) - реализует функционал импорта, обработки и загрузки данных по расписанию. Имеет следующие интерфейсы:
- HTTP API - 8192/TCP;
- RSocket - 7192/TCP.
Tребует взаимодействия с:
- KeyDB сервером;
- NATS сервером;
- БД Luxms BI;
- Компонентом
luxmsbi-appserver
; - Компонентом
luxmsbi-datagate
.
Слой Хранения
- Хранение данных реализовано на PostgreSQL - свободная объектно-реляционная система управления базами данных. Предоставляет другим компонентам интерфейс доступа:
- PostgreSQL - 5432/TCP.
Tребует взаимодействия с:
- KeyDB сервером.
- Компонентом
luxmsbi-appserver
. - Компонентом
luxmsbi-datagate
.
Компоненты Luxms BI поддерживают подключение к БД с использованием SSL-шифрования, но для снижения ресурсной нагрузки рекомендуется использовать нешифрованные соединения, особенно во внутренних закрытых сегментах сети.
- NATS сервер - распределённое хранилище объектов, в том числе в формате key:value и брокер функционала pub/sub. Используется для консолидации конфигурационных объектов и обеспечения доступности сгенерированных отчетов в распределенной архитектуре. Предоставляет другим компонентам интерфейсы доступа:
- NATS cluster protocol - 6222/TCP
- NATS client protocol - 4222/TCP
ETL-решение
luxms-databoring
(NodeJS) - обеспечивает исполнение сценариев получения и трансформации данных из сторонних источников данных. Имеет следующие интерфейсы:
- HTTP API - 1880/TCP.
Tребует взаимодействия с:
- Компонентом
luxmsbi-importer
, если он используется; - Компонентом
luxmsbi-appserver
и/илиluxmsbi-datagate
, если он используется; - Компонентом
luxmsbi-web
.