Проектирование микросервисной модели информационной экосистемы унаследованного программного комплекса "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
...Подобные документы
Назначение и основные особенности программного комплекса Euler 6.0. Практические навыки моделирования законов движения многокомпонентных механических систем на примере трехзвенного манипулятора. Этапы моделирования, формирование динамической модели.
методичка [1,3 M], добавлен 25.06.2013Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013Оснащенность предприятия системным программным обеспечением, используемым для организации производственного процесса. Проектирование, внедрение и эксплуатация системного и прикладного программного обеспечения. Тестирование и отладка программного продукта.
отчет по практике [272,2 K], добавлен 29.12.2014Выбор базовых программных средств для разработки оригинального программного обеспечения. Компоненты программно-методического комплекса проектирования токарных операций. Программное обеспечение для организации интерфейса программно-методического комплекса.
дипломная работа [2,8 M], добавлен 14.05.2010Проектирование серверного компонента, исполняющегося на узле кластера EMC Centera. Протокол взаимодействия компонентов, способный восстанавливаться после разрыва соединения между компонентами. Графический интерфейс пользователя для программного комплекса.
дипломная работа [1,1 M], добавлен 18.07.2014Создание программного комплекса, обеспечивающего работу со структурой данных "Q-дерево", представленной в виде модели. Методы, применяемые в разработке. Особенности проектирования модуля UnitModel. Требования к информационной и программной совместимости.
курсовая работа [2,8 M], добавлен 11.02.2010Разработка программного обеспечения для автоматизированной системы калибровки и поверки комплекса технических средств ПАДК "Луг-1". Аналитический обзор аналогов. Проектирование пользовательского интерфейса. Средства разработки программного обеспечения.
дипломная работа [1,4 M], добавлен 17.12.2014Проектирование структуры информационной базы и разработка программного комплекса, позволяющего автоматизировать процесс учета налогоплательщиков. Разработка конфигурации и создание интерфейса базы данных, форм и отчетов в программе "1С Предприятие".
дипломная работа [3,2 M], добавлен 21.06.2015Преимущества выбора программного комплекса АВК-5. Создание списка строек, учетные реквизиты и значения ряда новых параметров. Способ расчета прибыли. Создание объектов строительства, проектирование локальной сметы. Заполнение графы "Виды работ и затрат".
дипломная работа [2,9 M], добавлен 14.08.2013Функциональная структура приложения. Спецификация и структурная диаграмма программного комплекса. Блок-схемы алгоритмов ряда модулей. Данные для тестирования программных модулей и программного комплекса в целом, инструкция пользователя по работе с ним.
курсовая работа [58,5 K], добавлен 25.02.2012Результаты предпроектного обследования завода. Разработка и реализация программного комплекса "Subсontraсting". Информационное и программное обеспечение продукта. Технико-экономическое обоснование внедрения проекта, его безопасность и экологичность.
дипломная работа [5,4 M], добавлен 22.06.2011Моделирование вариантов объектно-ориентированных программных систем. Проектирование статический структуры, интерфейса, диаграмм компонентов и архитектуры приложения для разработки имитационной модели информационной системы "Центр обслуживания абонентов".
дипломная работа [951,4 K], добавлен 24.10.2010Характеристика предметной области и актуальность разработки информационной подсистемы для пункта обмена валюты с помощью программного продукта Rational Rose 2003, с использованием языка UML. Создание программных диаграмм. Генерация программного кода С++.
курсовая работа [646,5 K], добавлен 21.06.2011Практические навыки моделирования законов движения многосвязных механических систем на примере трехзвенного манипулятора. Основные этапы моделирования: исходная система; формирование исходных данных, геометрической, динамической и математической модели.
презентация [535,0 K], добавлен 25.06.2013Современное планирование и управление информационными ресурсами предприятия. Интеграция организаций на базе информационных технологий. Разработка программного комплекса "ФОЛИО-КУПЕЦ". Задачи, решаемые применением корпоративной информационной системы.
курсовая работа [93,2 K], добавлен 12.10.2013Проектирование программного комплекса на языке С++ с использованием принципов объектно-ориентированного программирования. Разработка разных меню, помогающих пользователю работать с программой. Описание процесса формирования статистики по памятникам.
курсовая работа [799,9 K], добавлен 01.12.2016Разработка для ОАО "КБ "Луч" технологического программного обеспечения комплекса технических средств радиосвязи С-диапазона. Предназначение комплекса для контроля и управления аппаратурой посредством внешних интерфейсов через порты Ethernet и COM.
презентация [577,1 K], добавлен 14.07.2012Анализ методов реализации интеллектуальных игр в системе человек-робот. Разработка архитектуры программного комплекса, выбор языка программирования. Алгоритм преобразования данных. Тестирование программного комплекса, редактирование и исправление ошибок.
дипломная работа [2,6 M], добавлен 27.10.2017Основные принципы, которыми следует руководствоваться в процессе создания и функционирования информационной системы. Проектирование системы программного обеспечения холодильника. Построение диаграммы классов, компонентов, размещения и состояний.
курсовая работа [733,4 K], добавлен 10.06.2011Программная и техническая характеристика информационных систем предприятия. Требования к информационной и программной совместимости. Проектирование программного обеспечения с использованием специализированных программных пакетов. Разработка базы данных.
отчет по практике [1,3 M], добавлен 11.04.2019