Перейти к основному содержимому

Компоненты

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

Интерфейс пользователя

Main UI

Главный интерфейс пользователя, реализованный на Vue.js. Он обеспечивает доступ к основным функциональным возможностям системы для конечных пользователей. Этот интерфейс включает такие модули, как управление бизнес-процессами, задачами, документооборотом, аналитикой и др.

Account UI

Интерфейс авторизации, регистрации, смены пароля, подтверждения почты, реализованный на Vue.js. Этот модуль позволяет пользователям управлять своими учетными записями и контролировать процесс аутентификации, включая интеграцию с внешними провайдерами OAuth2 и SSO решениями, такими как Visary ID.


API Gateway

API шлюз, который объединяет все микросервисы в единую точку доступа для внешних запросов. Это упрощает маршрутизацию и позволяет централизованно управлять безопасностью.

Services

🟦 single — сервис не поддерживает запуск в нескольких экземплярах
🟩 multi — сервис поддерживает горизонтальное масштабирование

Web Applications

  • Identity: Аутентификация и авторизация на основе OpenID Connect (OIDC) и OAuth 2.0. 🟦 single
  • WebAPI: Взаимодействие с бизнес-объектами платформы. 🟩 multi
  • Workflow: Управление бизнес-процессами. 🟦 single
  • UserProfile: Управление профилями пользователей. 🟩 multi
  • FileStorage: Хранение и организация файлов. 🟩 multi
  • BI: Бизнес-аналитика с возможностью создания отчетов и дашбордов. 🟩 multi
  • Calendar: Управление событиями и календарями. 🟩 multi
  • Notification: Система отправки уведомлений пользователям. 🟩 multi
  • Email: Отправка электронных писем. 🟩 multi
  • Tracker: Управление задачами по методологии Agile. 🟩 multi
  • Office: Работа с текстовыми документами, таблицами и PDF. 🟩 multi
  • Signature: Создание цифровых подписей и хранение данных о подписании. 🟩 multi
  • Notes: Создание и управление пользовательскими заметками. 🟩 multi
  • GPT: Управление промтами и выбор моделей ИИ. 🟩 multi
  • EventHub: Вебсокет-события для отслеживания изменений в реальном времени, аудит и регистрация webhook-событий. 🟩 multi
  • TaskHub: Централизованный реестр задач и их схем. 🟦 single
  • Chat: Мессенджер, построенный на основе протокола Matrix. 🟩 multi

Workers (Фоновые сервисы)

  • PreviewWorker: Генерация превью картинок для загружаемых файлов. 🟩 multi
  • FileIndexer: Индексация файлов с использованием OCR для распознавания текста. 🟩 multi
  • JobScheduler: Настройка и выполнение фоновых задач по расписанию (cron). 🟦 single
  • ETL: Извлечение, трансформация и загрузка данных. 🟩 multi

Dependencies

UML-схема отображает зависимости между сервисами платформы Visary Cloud.

примечание

Все сервисы используют модуль Identity для аутентификации и авторизации через OIDC / OAuth2, однако эта зависимость опущена на схеме ради упрощения.

flowchart TD subgraph subGraph0["Web Applications"] WebAPI["WebAPI"] Workflow["Workflow"] UserProfile["UserProfile"] FileStorage["FileStorage"] BI["BI"] Calendar["Calendar"] Notification["Notification"] Email["Email"] Tracker["Tracker"] Office["Office"] Signature["Signature"] GPT["GPT"] EventHub["EventHub"] TaskHub["TaskHub"] Chat["Chat"] end subgraph Workers["Workers"] PreviewWorker["PreviewWorker"] FileIndexer["FileIndexer"] end subgraph External["External"] DataHub["DataHub"] GptHub["GptHub"] end WebAPI -- профиль --> UserProfile WebAPI -- файлы --> FileStorage WebAPI -- конвертация --> Office WebAPI -- календари --> Calendar WebAPI -- история --> EventHub WebAPI -- синхронизация --> Chat WebAPI -- поиск --> DataHub Workflow -- группы --> UserProfile Workflow -- ответственные --> WebAPI FileStorage -- группы --> UserProfile BI -- файлы --> FileStorage Calendar -- профиль --> UserProfile Notification -- профиль --> UserProfile Email -- профиль --> UserProfile Email -- вложения --> FileStorage Tracker -- профиль --> UserProfile Office -- документы --> FileStorage Signature -- профиль --> UserProfile Signature -- файлы --> FileStorage GPT -- профиль --> UserProfile GPT -- модели --> GptHub TaskHub -- группы --> UserProfile PreviewWorker -- файлы --> FileStorage FileIndexer -- файлы --> FileStorage

Data Storage Services

Redis

Используется как key-value хранилище для:

  • Кэширования данных (распределенный кэш).
  • Хранения настроек.
  • Управления фоновой системой заданий (с использованием Hangfire).
  • Для хранения Saga (State Machine Sagas).

PostgreSQL

Реляционная база данных, используемая для хранения всех бизнес-данных платформы. Основные компоненты системы взаимодействуют с базой данных через Entity Framework Core.

Event Bus

Шина событий, построенная на RabbitMQ, используется для асинхронного обмена сообщениями между микросервисами системы.

S3 Storage

Объектное хранилище (MinIO), используется для:

  • Хранения файлов и документов
  • Видео, HLS-потоков и мультимедиа
  • Бэкапов и больших двоичных данных (BLOB)

Monitoring

  • Prometheus: Система мониторинга, которая собирает метрики с микросервисов и узлов системы для последующего анализа.
  • Grafana: Инструмент для визуализации данных мониторинга, позволяет строить дашборды для отслеживания состояния системы.