Разработка микросервиса веб-приложения для экстренных служб компания «Zetra»
Задача
Наш клиент – компания Zetra, разработчик ПО для промышленности и государства. Специализируется на системах для коллективного принятия решений и ситуационного управления на базе стека отечественных технологий. Наш партнер предъявляет повышенные требования к своим подрядчикам. Клиента заинтересовал широкий проектный опыт SimbirSoft, большое количество профильных специалистов в штате и гибкий подход.
Наших специалистов пригласили на проект разработки микросервиса веб-приложения для экстренных служб. Особенности системы – сложная архитектура, состоящая из 50 микросервисов, отсутствие детализации ТЗ и сжатые сроки.
При участии штатных специалистов команды клиента требовалось создать микросервис-адаптер для интеграции с внешней системой видеонаблюдения с целью получения данных о происходящих событиях и поддержки работы операторов.
Как решали задачу
Задача по разработке была декомпозирована на множество подзадач, выполнив которые, мы смогли воспроизвести полный цикл работы сервиса.
Среди основных отметим:
- организация сбора данных с сервисов видеоаналитики в режиме реального времени. Для этого мы использовали асинхронный обмен данными при помощи брокера сообщений Kafka. В случае добавления или изменения сущностей системы информация уходила туда. Кроме того, использовали WebClient, чтобы получать дополнительные данные для сервиса статистики.
- разработка алгоритма обработки данных и их отображения на интерфейсе приложения. При обнаружении происшествия система, обработав информацию, выводит её на пульт диспетчера. Для реализации мы использовали WebClient и методы преобразования и группировки.
Также специалисты SimbirSoft принимали участие в обеспечении сбора статистических данных в рамках сервиса статистики для последующей визуализации в виде набора дашбордов и в доработке существующих микросервисов и обеспечении качества.
Из-за особенностей инфраструктуры системы и отсутствия возможностей локальной проверки приходилось долго настраивать окружение для воспроизведения фичи или бага на локальном и Dev стенде.
Итоги
В результате за 2 месяца мы разработали микросервис-адаптер для системы заказчика, который способен интегрироваться с внешней системой видеонаблюдения, получать и анализировать данные о происходящих событиях, передавая их на пульт оператора для принятия необходимых мер.
Технологии
Java, PostgreSQL, Hibernate, Kafka