3. Состав и структура ПП¶
3.1. Общая архитектура ПП¶
ПП представляет собой единый серверный процесс, выполненный в виде нативного исполняемого файла (Windows/Linux) или контейнера Docker. Процесс включает встроенные подсистемы:
- HTTPS/WSS‑сервер — обработка сигнализации, командных запросов, stateless API и раздача статических файлов (клиенты, ресурсы приложения);
- UDP‑транспорт (SRTP/RTP) — приём, маршрутизация и ретрансляция медиапотоков между участниками;
- Локальная база данных — хранение основных служебных данных ПП;
- Модуль авторизации — при наличии интеграции выполняет обращения к внешнему SSO/LDAP/AD по SPN пользователя;
- Статические файлы — клиентские дистрибутивы (Windows, Linux), web‑клиент, ресурсы интерфейса.
ПП может запускаться:
- как нативный сервис Windows;
- как systemd‑служба в Linux;
- как контейнер Docker.
Клиенты ПП:
- нативные клиенты Windows и Linux;
- web‑клиент (SPA, JavaScript), взаимодействующий через WSS/WebRTC;
- специальные клиенты‑агенты (микшер, рекордер), подключающиеся к конференции как отдельные участники.
3.2. Основные программные компоненты¶
- Core‑сервер (VGServer Process) — ядро ПП, обеспечивающее работу всех подсистем.
- HTTPS/WSS‑подсистема — управление сессиями, командами, сигналинг, работа с SPA‑клиентом.
- UDP‑транспортный модуль — работа с RTP/SRTP, маршрутизация медиапотоков.
- Translator — обработка медиапотоков отдельных пользователей.
- Mixer (консолидатор) — формирование единого смешанного потока для клиентов с низкой пропускной способностью.
- Recorder — специальный клиент для записи конференции.
- Auth/SSO модуль — взаимодействие с AD/LDAP/SSO (при наличии интеграции у Заказчика).
- Local Database Engine — работа с основными служебными данными ПП.
- Web‑клиент (SPA) — клиентская часть, поставляемая как статические файлы.
- Native Client Engine (Windows/Linux) — нативные клиенты, использующие протоколы ПП напрямую.
3.3. Взаимодействие компонентов¶
- Пользовательские клиенты устанавливают соединение с HTTPS/WSS‑подсистемой для сигналинга.
- Медиапотоки пересылаются через UDP‑транспорт (SRTP), при недоступности UDP web‑клиент использует бинарный WebSocket‑канал.
- Каждый RTP‑поток обрабатывается соответствующим Translator.
- При ухудшении канала клиента ПП автоматически подключает Mixer, формируя единый смешанный поток для данного участника.
- Recorder присоединяется к конференции как клиент и записывает медиапотоки.
- SSO/LDAP/AD используется при наличии внешней системы авторизации (интеграция опциональна).
- Все статические файлы, включая web‑клиент, отдаёт сам VGServer.
3.4. Архитектурные уровни¶
Уровень клиентов:
- Нативные клиенты (Win/Linux).
- Web‑клиент SPA.
- Спецклиенты: Mixer, Recorder.
Уровень транспортной подсистемы:
- HTTPS/WSS — сигналинг, авторизация.
- UDP (RTP/SRTP) — медиатрафик.
Уровень серверных модулей:
- VGServer Process:
- HTTP/Signal Layer
- Media Transport Layer
- Translators
- Mixer
- Recorder
- Auth Adapter
- Static Files Engine
- Local DB
Уровень хранения:
- Основная БД
- БД исторических данных
- Файлы пользователей
- Записи конференций