Перейти к содержанию

Архитектурные элементы

Архитектурные элементы продукта делятся на четыре основные части:

  • Управление платформой;
  • Обработка событий с камер;
  • Взаимодействие с пользователем;
  • Функциональные решения.

Каждая часть представляет собой набор соответствующих сервисов.

Управление платформой

Управляющая часть включает в себя три основных сервиса: api-gateway, main-api и camera-syncer. Она обеспечивает авторизацию и аутентификацию пользователей, принимает внешние пользовательские запросы и маршрутизирует их к соответствующему сервису-потребителю. С помощью указанных сервисов внешние потребители могут управлять сущностями и правами на них, запускать или останавливать обработку данных с видеокамер, а также выполнять другие операции.

Компонент Описание Поставщик
api-gateway Сервис для авторизации, приема и маршрутизации всех пользовательских запросов публичного API платформы и функциональных решений. Собственная разработка NtechLab
main-api Основной сервис управляющей части платформы. Реализует взаимодействие пользователей организаций с функциональными решениями, камерами и процессингами. Собственная разработка NtechLab
camera-syncer Сервис, отвечающий за синхронизацию задач на обработку видеопотока/кадров между main-api и video-manager/shot-manager. Собственная разработка NtechLab

Обработка событий с камер

Обработкой входящих событий, поступающих от компонента video-worker или сервиса интервальных скриншотов (shot-worker), занимается каскадный набор сервисов.

В процессе работы сервисов выполняются следующие действия:

  • декодирование информации о поступившем событии;
  • сохранение изображений в хранилище;
  • приведение события к структуре данных, используемой внутри платформы;
  • обогащение события необходимыми признаками.

Процесс обогащения события необходимыми признаками реализуется посредством запросов к сервису findface-extraction-api, а конкретный набор признаков определяется пользователем системы в управляющей части платформы через включение или отключение функциональных решений для камер.

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

Компонент Описание Поставщик
shot-manager Сервис, отвечающий за управление задачами по интервальному получению скриншотов из видеопотока. Не выполняет получение скриншотов, а только направляет задания в сервис shot-worker в определенные моменты времени в соответствии с настройками задачи. Для постоянного хранения задач используется база данных MongoDB. Собственная разработка NtechLab
shot-worker Сервис, получающий кадры из видеопотока. Может получать кадр по прямой ссылке или из видеопотока в зависимости от настроек камеры. Собственная разработка NtechLab
pipeline-router Сервис, необходимый для приема входящих детектов от video-worker, кадров от shot-worker и их последующей обработки. Собственная разработка NtechLab
events-enrichment Сервис, предназначенный для обогащения событий пайплайна (кадров от shot-worker и детектов от video-worker) данными из extraction-api. Обогащенные события публикуются в топики Kafka и передаются потребителям (функциональным решениям). Собственная разработка NtechLab
processing-trigger Сервис, предназначенный для обработки shot-процессингов вне расписания. Принимает HTTP-запросы от main-api, на основе полученных данных формирует задание ShotTask и передает его в сервис shot-manager. Собственная разработка NtechLab
media-source-provider Интеграционный сервис для получения камер и мета-информации из внешних источников (VMS-систем). Собственная разработка NtechLab

Взаимодействие с пользователем

За взаимодействие с пользователем отвечает набор сервисов, основной из которых — веб-интерфейс, позволяющий работать с платформой и функциональными решениями. Остальные сервисы позволяют раздавать статические данные (изображения, отчеты) и настраивать рассылку уведомлений через различные каналы.

Компонент Описание Поставщик
core-ui Веб-приложение, позволяющее работать с платформой и функциональными решениями. Собственная разработка NtechLab
blober Сервис, отвечающий за раздачу статических файлов (изображений и отчетов). Собственная разработка NtechLab
notifier Компонент, позволяющий настроить рассылку уведомлений о событиях системы через различные каналы. Собственная разработка NtechLab

Функциональные решения

Функциональные решения (ФР) — потребители сообщений, которые генерирует платформа. Реализуют любую необходимую бизнес-логику, используя полученные сообщения. Каждое функциональное решение имеет собственную конфигурацию, включающую в том числе набор типов событий, необходимых для его работы.

Компонент Описание Поставщик
fs-trash Функциональное решение для мониторинга состояния площадок твердых бытовых и коммунальных отходов. Собственная разработка NtechLab
fs-object-counter Функциональное решение для подсчета объектов на кадрах и в видеопотоке. Собственная разработка NtechLab
fs-vox Функциональное решение для голосовой реакции на события, происходящие в видеопотоке. Собственная разработка NtechLab