УДК 004.78:025.4.036
DOI: 10.33764/2618-981X-2021-4-1-41-44
РАЗРАБОТКА ГЕОИНФОРМАЦИОННОЙ СИСТЕМЫ НА БАЗЕ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ
Александр Андреевич Донцов
Институт водных и экологических проблем СО РАН, 656038, Россия, г. Барнаул, ул. Молодёжная, 1, ведущий инженер, тел. (923)711-24-02, e-mail: alexdontsov@yandex.ru
Игорь Анатольевич Суторихин
Институт водных и экологических проблем СО РАН, 656038, Россия, г. Барнаул, ул. Молодёжная, 1, доктор физико-математических наук, профессор, главный научный сотрудник, тел. (903)910-15-86, e-mail: sia@iwep.ru; Федеральный исследовательский центр информационных и вычислительных технологий, 630090, Россия, г. Новосибирск, пр. Академика Лаврентьева, 6, старший научный сотрудник
В работе рассматривается применение микросервисной архитектуры при разработке распределенных геоинформационных систем (ГИС) сбора, обработки и анализа данных. Как правило микросервисная архитектура применяется для построения приложений в информационных системах, связанных с решением бизнес-задач, и не является широко распространенной в области разработки геоинформационных систем в научной сфере. Однако ее применение в настоящее время приобретает все большую актуальность. Декомпозиция программной реализации и инфраструктуры ГИС, связанных с вычислениями и обработкой данных на компоненты в виде микросервисов, имеет ряд преимуществ, таких как: повышение отказоустойчивости, увеличение гибкости, снижение трудоемкости сопровождения, упрощение масштабирования и другие.
Показаны первые результаты применения микросервисного подхода при разработке геоинформационной системы сбора и обработки гидрологических и гидробиологических данных о состоянии водоёмов показана архитектура, основные компоненты, особенности построения инфраструктуры.
Ключевые слова: ГИС, микросервисы, спутниковые данные, геопортал, облачные технологии, информационные системы
DEVELOPMENT OF A GEOGRAPHIC INFORMATION SYSTEM BASED ON MICROSERVICE ARCHITECTURE
Alexander A. Dontsov
Institute for Water and Environmental Problems SB RAS, 1, Molodezhnaya St., Barnaul, 656038, Russia, Leading Engineer, phone: (923)711-24-02, email: alexdontsov@yandex.ru
Igor A. Sutorikhin
Institute for Water and Environmental Problems SB RAS, 1, Molodezhnaya St., Barnaul, 656038, Russia, D. Sc., Professor, Chief Researcher, phone: (903)910-15-86, e-mail: sia@iwep.ru; Federal Research Center for Information and Computational Technologies, 6, Prospect Аkademik Lavrentiev St., Novosibirsk, 630090, Russia, Senior Researcher
The paper discusses the use of microservice architecture in the development of distributed geographic information systems (GIS) for collecting, processing and analyzing data. Microservice architecture is used to build applications in information systems related to solving business problems,
and is not widespread in the development of geographic information systems in the scientific field. However, its application is now becoming increasingly important. Decomposition of the software implementation and GIS infrastructure associated with computations and data processing into components in the form of microservices has a number of advantages, such as: increased fault tolerance, increased flexibility, reduced maintenance effort, simplified scaling, and others.
The first results of the application of the microservice approach in the development of a geoin-formation system for the collection and processing of hydrological and hydrobiological data on the state of water bodies are shown. The architecture, main components, and features of building infrastructure are shown.
Keywords: GIS, microservices, cloud technologies, satellite data, geoportal, cloud technologies, information systems
Введение
В наших предыдущих работах [1, 2] показаны результаты разработки ГИС сбора и обработки гидрологических и гидробиологических данных о состоянии водоемов, в настоящее время разрабатывается ее новая версия, основное отличие которой заключается в декомпозиции информационной системы на микросервисы. Данный подход заключается в том, что информационная система реализуется в виде набора небольших сервисов, каждый из которых исполняется как отдельный процесс и связывается с другими при помощи механизмов взаимодействия, как правило, для этого используются технологии: REST, gRPC, RabbitMQ, Apache Kafka [3].
Микросервисная архитектура имеет ряд преимуществ.
1. Сервисы получаются простыми и небольшими в обслуживании.
2. Сервисы развертываются независимо друг от друга.
3. Сервисы масштабируются независимо друг от друга.
4. Существует возможность проводить технологические ксперименты и относительно легко внедрять новые технологии.
5. Относительно высокая отказоустойчивость по сравнению с монолитным подходом.
Однако у микросервисного подхода существуют и недостатки, такие как.
1. Сложность на начальном этапе разработки и создания инфраструктуры. Распределенные системы сложнее разрабатывать, так как нужно предусмотреть независимость одного микросервиса от сбоя в другом компоненте.
2. Разработка распределенных систем накладывает дополнительные расходы на обмен данными между микросервисами: нужно правильно выбрать протоколы общения между компонентами, чтобы взаимодействие было максимально эффективно [4].
Микросервисный подход при реализации геоинформационных систем
Рассмотрим, разрабатываемую ГИС, её условно можно разделить на компоненты, связанные со сбором данных, вычислительные модули обработки и ана-
лиза, системы хранения и предоставления данных. Для развертывания и управления инфраструктурой приложений используется технология Docker [5]. Эта технология подразумевает контейнеризацию приложений, то есть приложения (компоненты ГИС) работают в независимых программных контейнерах. Их взаимодействие на уровне инфраструктуры определяется при помощи Docker Compose. Это инструментальное средство, входящее в состав Docker, оно предназначено для решения задач, связанных с развертыванием проектов. На рисунке показана общая структура ГИС, которая состоит из следующих основных компонентов (микросервисов).
1. Сервис загрузки спутниковых данных из открытых архивов ESA (European Space Agency) и USGS (United States Geological Survey).
2. Сервис работы с данными наземных измерительных комплексов и экспедиционных работ.
3. Сервис обработки спутниковых данных.
Структурная схема ГИС
Все сервисы используют общую базу данных, где наряду с обработанной информацией хранятся различные настройки системы, например расписание вычислительных задач, информация о пользователях системы и их права. Помимо сервисов в ГИС присутствуют интерфейсы взаимодействия с другими программными системами. Например, настольными пакетами QGIS, GRASS и т. д., а также веб-интерфейс и панель администрирования. Одним из наиболее сложных компонентов системы является сервис по обработке спутниковых данных, он основывается на компонентах библиотеки GDAL, его взаимодействие с дру-
гими частями системы осуществляется по технологии gRPC. В настоящее время данный сервис имеет следующие функциональные возможности.
1. Предварительная обработка.
2. Атмосферная коррекция.
3. Тематическая обработка согласно поставленной задачи.
4. Конвертация результата вычислений в формат GeoTiff.
Заключение
Представляемая геоинформационная система позволяет реализовать процессы обработки разноплановой информации о состоянии водных объектов для решения фундаментальных и прикладных задач гидрологии и гидробиологии. Однако её можно применять и в других задачах, связанных со сбором и обработкой пространственных данных. Исходный код разрабатываемой ГИС открыт и доступен по адресу https://github.com/alexdontsov/sibwater.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Донцов, А. А., Суторихин, И. А. Специализированная геоинформационная система автоматизированного мониторинга рек и водоемов. // Вычислительные технологии. - 2017. Том 22. № 5. С. 39-46.
2. Донцов, А. А., Суторихин, И. А., Коломейцев, А. А. Интегрированная геоинформационная система мониторинга состояния внутриконтинентальных водных объектов. // Обработка пространственных данных в задачах мониторинга природных и антропогенных процессов (SDM-2019): Сборник трудов всероссийской конференции с международным участием. Новосибирск: ИВТ СО РАН, 2019. С. 99-103.
3. Артамонов, Ю. С., Востокин, С. В. Разработка распределенных приложений сбора и анализа данных на базе микросервисной архитектуры // Известия Самарского научного центра Российской академии наук, т. 18, №. 4-4, 2016, С. 688-693.
4. Microservice Architecture. [Электронный ресурс]. - URL: https://microservices.io/pat-terns/microservices.html (Дата обращения: 14.05.2021).
5. Docker. [Электронный ресурс]. - URL: https://www.docker.com (Дата обращения: 14.05.2021).
© А. А. Донцов, И. А. Суторихин, 2021