ПРОЕКТИРОВАНИЕ МИКРОСЕРВИСНОЙ МОДЕЛИ ИНФОРМАЦИОННОЙ ЭКОСИСТЕМЫ УНАСЛЕДОВАННОГО ПРОГРАММНОГО КОМПЛЕКСА «MD-SLAG-MELT V11. 0» - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ПРОЕКТИРОВАНИЕ МИКРОСЕРВИСНОЙ МОДЕЛИ ИНФОРМАЦИОННОЙ ЭКОСИСТЕМЫ УНАСЛЕДОВАННОГО ПРОГРАММНОГО КОМПЛЕКСА «MD-SLAG-MELT V11. 0»

Сухачев Д.И. 1, Трунов А.С. 1
1Московский технический университет связи и информатики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Программный комплекс «MD-SLAG-MELT v10.0» обеспечивает реализацию комплексных компьютерных экспериментов для моделей многокомпонентных шлаковых расплавов с большим числом частиц (104 – 105 частиц). В рамках единой интегрированной среды распределенного программного комплекса реализуются компьютерное моделирование квантово-химическим, молекулярно-динамическим и статистико-геометрическим методом на основе комплексной модели многочастичной системы с сильным взаимодействием [1]. Основным методом исследования является метод молекулярной динамики, суть которого состоит в численном интегрировании уравнений движения по фазовым траекториям [2]. Задачи, которые решает данный программный комплекс, являются актуальными в области физической химии и технологии неорганических материалов, так как результаты проводимых в системе экспериментов используются при создании новых металлических материалов с заранее заданными свойствами [3].

На этапе анализа программного комплекса «MD-SLAG-MELT v10.0» была выявлена проблема сильной связанности программных компонентов. Данная проблема сильно ухудшает масштабируемость системы, а также приводит к жесткой привязке к определенным технологиям, что мешает взаимодействию данной ИИС с другими информационными системами. В статье предложен альтернативный метод проектирования информационной экосистемы «MD-SLAG-MELT v10.0», позволяющий улучшить её масштабируемость, интероперабельность, а также обеспечивающий слабую связность её компонентов [4].

Для решения проблемы интеграции унаследованного монолитного приложения «MD-SLAG-MELT v10.0» с современными веб-сервисами была проведена реорганизация приложения с применением принципов микросервисной архитектуры. Для обеспечения единого и унифицированного способа обмена сообщениями между новыми сервисами и унаследованным приложением использована технология контейнеризации Docker, которая обеспечит каждому сервису свой легковесный, быстро запускающийся и нетребовательный к ресурсам контейнер, в которой будет входить только само приложение и необходимое окружение (зависимости). Технология Docker более производительна, чем технология виртуализации, за счёт того, что все контейнеры на физической машине разделяют ядро и физические ресурсы. Для обеспечения совместной работы сервисов используется набор основных паттернов и практик микросервисной архитектуры [5].

На рисунке 1 представлена модель информационной экосистемы унаследованного программного комплекса «MD-SLAG-MELT v11.0», разработанная с применением принципов микросервисной архитектуры. Каждый элемент информационной системы представляет собой docker-контейнер. В свою очередь, контейнер содержит один сервис и его библиотеки, а также необходимые переменные окружения. Так как контейнеры изолированы друг от друга (в том числе и от host-машины, на которой они запушены), это не создаст проблемы совместимости библиотек для сервисов, запушенных на сервере [6]. Также, это позволит решить проблему с поддержкой унаследованных программ научного комплекса «MD-SLAG-MELT v10.0» – Fortran-приложения, упакованы в Linux - контейнеры c Fortran-компилятором внутри. Так как результаты экспериментов, полученные от унаследованных приложений, записываются локально в файловую систему, не нужно будет переписывать с нуля код этих приложений. Благодаря стандартному Docker API, представляющий из себя простой RESTful интерфейс, возможно будет удаленно запускать Fortran приложения и получать результаты эксперимента из файловой системы контейнера. При необходимости в контейнер может быть добавлено простое веб-приложение, по HTTP – запросу запускающее унаследованное приложение и возвращающее результаты моделирования.

На рисунке 2 отображена схема организации отдельного кластера контейнеров информационной экосистемы «MD-SLAG-MELT v11.0». Кластер состоит из контейнеров, содержащих отдельные экземпляры сервиса молекулярно-динамического моделирования, а также контейнера с базой данной этого сервиса. Нагрузка между отдельными экземплярами приложения регулируется балансировщиком. Также кластер содержит агента регистратора сервисов и Swarm – клиента главного сервера кластеров.

Рис. 1. - Модель информационной экосистемы «MD-SLAG-MELT v11.0»

Рис. 2. – Схема организации кластера контейнеров информационной экосистемы «MD-SLAG-MELT v11.0»

Благодаря данной модели интеграции унаследованных приложений подсистемы программного комплекса «MD-SLAG-MELT v11.0» остаются как есть, что является большим плюсом для решения задач моделирования сложных физических процессов – Fortran приложения долгие годы доказывают свою эффективность при решении научных задач. Единственным изменением будет разделение большого монолитного программного комплекса «MD-SLAG-MELT v11.0» на 4 сервиса (по типу моделирования), причем каждый будет в своем контейнере. Необходимость разделения на отдельные сервисы продиктована принципами микросервисной архитектуры. Это обеспечит слабую связанность, масштабируемость (можно будет запустить несколько сервисов моделирования одновременно для балансировки нагрузки), простоту в обслуживании.

Связь контейнеров между собой, а также с внешним миром настраивается перед запуском и осуществляется посредством HTTP-запросов. При этом контейнеры могут располагаться как на одном физическом сервере (в данном случае контейнеры общаются по UNIX-сокетам), так и на разных машинах [7]. Это обеспечит унаследованному комплексу распределенность и гибкость, так как можно будет легко добавлять новые модули – сервисы (в том числе и сторонние сервисы) и заменять имеющиеся. Стандартныe RESTful интерфейсы контейнеров, а, соответственно, и находящихся в них сервисов научного комплекса – гарантия того, что «MD-SLAG-MELT v11.0» можно будет легко интегрировать со сторонними веб-сервисами. Архитектурный принцип HATEOAS (Hypermedia as the Engine of Application State) позволит получать контракт сторонних RESTful веб-сервисов «на лету». Контракт будет получен при простом HTTP-запросе этого сервиса в формате JSON, следовательно, отпадает необходимость заранее (до компиляции) получать контракт веб-сервиса для генерации программного кода веб-службы на стороне клиента, как это происходит в случае SOAP веб-сервисов (WSDL - контракт) [8].

Благодаря поддержки в Docker оверлейных сетей, возможно организовать локальную сеть для сервисов программного комплекса «MD-SLAG-MELT v11.0», физически расположенных в разных сетях (в т. ч. и территориально). Для проведения высокопроизводительных вычислений будет использоваться кластер из docker-контейнеров с унаследованными приложениями внутри под управлением Docker Swarm (сервер управления контейнерами) [9]. Связка технологии контейнеризации и микросервисной архитектуры также позволит развернуть унаследованный научно-исследовательский комплекс «MD-SLAG-MELT v11.0» в облаке. Контейнеры можно развернуть в том числе и на виртуальных машинах, используемых в центрах обработки данных (ЦОД). Это положительно скажется на результатах экспериментов, проводимых программным комплексом, так как можно будет воспользоваться внушительными вычислительными ресурсами центров обработки данных.

Слой данных программного комплекса «MD-SLAG-MELT v11.0» также потерпел изменения: вместо одной базы данных, в которую заносят свои данные сразу несколько приложений, теперь для каждого сервиса будет своя база данных. Это снимет проблему в обеспечении согласованности данных разных приложений, а также облегчит администрирование таких баз данных, так как они будут содержать данные только одного сервиса. Каждый сервер баз данных будет находится в своем контейнере. Связь с приложением осуществляется по HTTP протоколу, если сервис и сервер баз данных находится на разных физических машинах, или по UNIX сокету, если они находится на одной физической машине.

Декомпозиция монолитного программного комплекса основана на функциональном разделении подсистем «MD-SLAG-MELT v11.0»:

  • молекулярно-динамическое моделирование;

  • квантово-химическое моделирование;

  • статистико-геометрическое моделирование;

  • анализ и обработка результатов эксперимента.

Соответственно, в новой архитектуре программного комплекса появятся четыре обособленных микросервиса, представляющие собой Docker-контейнеры c унаследованными Fortran-приложениями внутри. Каждый такой микросервис будет обладать своей базой данных PostgreSQL (тоже в отдельном контейнере), куда будут записываться результаты экспериментов. Так как унаследованное приложение записывает результаты в локальную файловую систему, в контейнер добавится небольшое Spring Boot приложение, которое будет автоматически отслеживать изменения в директории с результатами моделирования и записывать их в базу данных этого сервиса.

Запуск сервисов моделирования «MD-SLAG-MELT v11.0» и визуализация полученных результатов будет осуществляться через веб-интерфейс, предоставляемый отдельным микросервисом в Docker-контейнере. Сервис предоставляет собой MVC-приложение («Модель-Представление-Контроллер»), написанное на Java-фреймворке Spring Boot.

Список использованной литературы:

1. Воронова Л.И., Григорьева М.А., Воронов В.И., Трунов А.С. «Программный комплекс "MD-Slag-Melt" для моделирования наноструктуры и свойств многокомпонентных расплавов» - Расплавы. 2013. № 4. С. 36-49.

2. Воронова Л.И., Григорьева М.А., Воронов В.И., Трунов А.С. «Программный комплекс "MD-Slag-Melt" информационно-исследовательской системы "шлаковые расплавы" версии 10.0» - депонированная рукопись № 29-В2012 26.01.2012

3. Voronova L.I., Trunov A.S., Voronov V.I. The distributed calculators model for molecular-dynamic simulation of strong interaction systems - Международный журнал экспериментального образования. 2013. № 12. С. 82-88.

4. Трунов A.C., Сухачев Д.И. «Проектирование структуры программного комплекса «MD-SLAG-MELT» на основе сервисно-ориентированной архитектуры». - IX Международная студенческая научная конференция «Студенческий научный форум» - 2017

5. Ньюмен С. «Создание микросервисов» — СПб.: Питер, 2016. — 304 с.

6. John Carnell «Spring Microservices in Action» — Manning Publications Company, 2017 — 384 с.

7. Adrian Mouat «Using Docker: Developing and Deploying Software with Containers» — O’Relly Media, Inc, 2015. — 335 с.

8. Sebastien Goasguen «Docker Cookbook» — O’Relly Media, Inc, 2016. — 336 с.

6

Просмотров работы: 192