Архитектура приложения
Приложение построено на микросервисной архитектуре, при которой модули платформы взаимодействуют между собой посредством прикладных интерфейсов программирования (API). Каждый модуль независим в своих данных, что позволяет избежать конфликтов и улучшает общую производительность системы.
Архитектура ORBISmap 3 представляет собой взаимодействие следующих независимых модулей:
- Клиентские веб-приложения — определяют работу с системой администрирования и публичной картой через веб-браузер;
- Модуль уведомлений — обеспечивает передачу сообщений о произошедших изменениях в пользовательских данных;
- Модуль аутентификации — используется для аутентификации пользователей для последующей работы с модулями платформы, управления пользователями, а также аутентификации через внешние системы, взаимодействие с которыми настроено для модуля;
- Модуль проектов (баз данных) — используется для взаимодействия с несколькими экземплярами БД внутри приложения;
- Модуль карт — предоставляет функционал по управлению картами и изменению набора пользовательских прав доступа к картам;
- Модуль импорта и экспорта — используется для загрузки, обработки и выгрузки файлов различных форматов;
- Модуль папок — предоставляет функционал по управлению папками и получению информации о них;
- Модуль файлов — отвечает за размещение загружаемых файлов в файловом хранилище, контроль прав доступа при выдаче файлов и их метаданных, удаление неиспользуемых файлов;
- Модуль иконок — предоставляет функционал для работы со спрайтами и иконками, использующимися для отображения объектов на карте, кластеризации, в качестве иконок слоев при настройке публикации;
- Модуль дерева — используется для управления объектами внутри дерева, а также для получения информации о них;
- Модуль таблиц — предоставляет функции по управлению таблицами и объектами внутри них, а также отвечает за работу с виртуальными таблицами, содержимое которых основано на сформированном SQL-запросе;
- Модуль внешних слоев — используется для управления внешними слоям, включая изменение прав доступа;
- Модуль публикаций — обеспечивает реализацию функций приложения по настройке параметров публикации: отображение различных виджетов, а также добавление инструментов для интерактивного взаимодействия с опубликованными картами, управление темами публикации;
- Модуль растров — отвечает за настройку обработки различных параметров загружаемых изображений, предоставляет возможности для работы с набором пользовательских прав доступа на растровый слой;
- Модуль системных пользователей и групп — обеспечивает работу с внутренними пользователями СУБД;
- Брокер сообщений — Kafka используется для обработки и хранения потоков данных в реальном времени;
- Модуль кэширования — используется для повышения скорости работы с геопространственными данными;
- Модуль серверного рендеринга — используется для подготовки и выдачи уже сформированных данных (или основной их части) в клиентское приложение для отображения в веб-браузере пользователя.