Архитектурные элементы¶
Архитектурные элементы продукта делятся на четыре основные части:
- Управление платформой;
- Обработка событий с камер;
- Взаимодействие с пользователем;
- Функциональные решения.
Каждая часть представляет собой набор соответствующих сервисов.
Управление платформой¶
Управляющая часть включает в себя три основных сервиса: 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 |