Архитектура ORBISmap
Архитектура ORBISmap представляет собой набор модулей:
- Web Server - модуль управления:
- Nginx - управляющий web-сервер
- App Server - модуль приложения:
- GIS Server - модуль отрисовки картографии:
- Mapnik - библиотека отрисовки картографических данных;
- GIS DB - модуль пространственной БД:
- PostgreSQL - свободная объектно-реляционная СУБД,
- PostGIS - расширение для работы с геопространственными данными;
- Cache Server - модуль кэширования:
- Go App - сервис кэширования тайловых карт и REST API;
- Cache DB - модуль БД кэширования:
- MongoDB - документоориентированная СУБД;
- HTML5 App - клиентское одностраничное приложение на базе HTML5 и JavaScript:
- OpenLayers - библиотека отрисовки карт средствами Canvas,
- MapBox GL - библиотека отрисовки карт средствами WebGL;
Возможности по интеграции с другими системами
- REST API - набор серверных функций интерфейсов программирования приложений;
- JavaScript API - набор клиентских функций JavaScript API;
- Extensions API - развитие функционала системы администрирования;
- ODBC - доступ к данным через прямое подключение к БД;
Все компоненты Системы реализованы на языках программирования Python
, Go
и JavaScript
с использованием программного обеспечения с открытым исходным кодом.
Docker виртуализация
Для удобства установки и управления компонентами ORBISmap используется среда виртуализации Docker.
Использование Docker
позволяет избавиться от списка зависимых компонентов операционной системы, необходимых для работы продукта - все необходимые компоненты в виде docker-контейнеров загружаются на этапе установки продукта и используются в его работе, не влияя на операционную систему.
Приложения, запущенные в контейнерах, полностью изолированы друг от друга, что повышает безопасность использования системы.
Кроме того, Docker
позволяет ограничивать используемые ресурсы для каждого из контейнеров.
Для удобства управления docker-контейнерами используется утилита Docker-Compose - это средство управления группой контейнеров, упрощающее и автоматизирующее процедуру первоначального запуска приложения и его дальнейшее обслуживание.
При необходимости, возможно динамическое масштабирование числа контейнеров.
Все необходимые компоненты и условия их запуска описываются в специальном файле docker-compose.yml
. Запись для каждого компонента (в терминологии Docker-Compose - сервиса) содержит всю необходимую информацию для запуска контейнера:
- имя образа для запуска
- перечень томов с данными для монтирования
- параметры сети
- политика запуска
- дополнительные переменные окружения.
Сервисы, используемые в ORBISmap:
nginx
- стандартный образ Nginx 1.10.3postgres
- образ PostgreSQL 9.6 с установленным расширением PostGISoms2
- образ приложения, содержащий все необходимые зависимости для полноценной работыmongo
- стандартный образ MongoDB 3.4