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

Архитектура приложения

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

Архитектура ORBISmap 3 представляет собой взаимодействие следующих независимых модулей:

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