Проектирование микросервисной модели информационной экосистемы унаследованного программного комплекса "MD-Slag-Melt v11.0"

Обеспечение реализации комплексных компьютерных экспериментов для моделей многокомпонентных шлаковых расплавов с большим числом частиц с помощью программного комплекса "MD-Slag-Melt v10.0". Решение проблемы сильной связанности программных компонентов.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 25.02.2019
Размер файла 317,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1

Московский Технический Университет Связи и Информатики

Проектирование микросервисной модели информационной экосистемы унаследованного программного комплекса "MD-Slag-Melt v11.0"

Сухачев Д.И., Трунов А.С.

Основное содержание исследования

Программный комплекс "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 с.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.