Научная статья на тему 'Применение семантической сети для автоматизации контейнеризации web-приложений'

Применение семантической сети для автоматизации контейнеризации web-приложений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
183
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
онтология / семантическая сеть / виртуализация / контейнеризация / автоматизация / web-приложение / инфраструктура. / ontology / semantic network / virtualization / containerization / automation / web-application / infrastructure.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Пушкарев Роман Андреевич

Данная работа посвящена изучению возможности разработки системы интеллектуальной поддержки контейнеризации приложений. Разрабатываемая система основана на использовании семантической сети для автоматизации сборки необходимого набора компонент результирующего webприложения. Практическое значение заключается в повышении уровня автоматизации посредством внедрения семантической сети, что позволит исключить необходимость ручного подбора программного обеспечения под конкретный проект и значительно упростить множественное развертывание типовых конфигураций, реализуя возможность сбора необходимого программного обеспечения в связанные между собой контейнеры.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Пушкарев Роман Андреевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLICATION OF SEMANTIC WEB FOR AUTOMATION OF THE CONTAINERIZATION OF WEB-APPLICATIONS

This work represents the research of developing a system of intelligent support for containerization of web-applications. The developed system is based on the use of semantic network to automate the assembly of the required set of components of the resulting application. The practical value is to increase the level of automation through the introduction of a semantic network, which will eliminate the need for manual selection of software for a specific project and greatly simplify the multiple deployment of standard configurations, implementing the ability to collect the necessary software in related containers.

Текст научной работы на тему «Применение семантической сети для автоматизации контейнеризации web-приложений»

УДК 004.021

Пушкарев Роман Андреевич,

студент

ПРИМЕНЕНИЕ СЕМАНТИЧЕСКОЙ СЕТИ ДЛЯ АВТОМАТИЗАЦИИ КОНТЕЙНЕРИЗАЦИИ WEB-ПРИЛОЖЕНИЙ

Россия, Нижний Новгород, ФГБОУ ВО «Нижегородский государственный технический университет им. Р.Е. Алексеева» (603950, Нижний Новгород, ГСП-41, ул. Минина, 24), e-mail : pushkarev.roman.andreevich@ gmail.com

Аннотация. Данная работа посвящена изучению возможности разработки системы интеллектуальной поддержки контейнеризации приложений. Разрабатываемая система основана на использовании семантической сети для автоматизации сборки необходимого набора компонент результирующего web-приложения. Практическое значение заключается в повышении уровня автоматизации посредством внедрения семантической сети, что позволит исключить необходимость ручного подбора программного обеспечения под конкретный проект и значительно упростить множественное развертывание типовых конфигураций, реализуя возможность сбора необходимого программного обеспечения в связанные между собой контейнеры.

Ключевые слова: онтология, семантическая сеть, виртуализация, контейнеризация, автоматизация, web-приложение, инфраструктура.

Roman A. Pushkarev, Student

APPLICATION OF SEMANTIC WEB FOR AUTOMATION OF THE

CONTAINERIZATION OF WEB-APPLICATIONS

Russia, Nizhny Novgorod, Nizhny Novgorod State Technical University n.a. R.E. Alekseev (603950, Nizhny Novgorod, GSP-41, Minina street, 24), e-mail: pushkarev.roman.andreevich@gmail.com

Abstract. This work represents the research of developing a system of intelligent support for containerization of web-applications. The developed system is based on the use of semantic network to automate the assembly of the required set of components of the resulting application. The practical value is to increase the level of automation through the introduction of a semantic network, which will eliminate the need for manual selection of software for a specific project and greatly simplify the multiple deployment of standard configurations, implementing the ability to collect the necessary software in related containers.

Keywords: ontology, semantic network, virtualization, containerization, automation, web-application, infrastructure.

Введение

Общепризнанно, что информационная инфраструктура любого уровня должна основываться на принципах обеспечения совместимости и способности к взаимодействию входящих в информационную среду компонент (интероперабельности), а также на стандартах и технологии открытых систем, проблемы развития которых, согласно решению государственной академии наук, включены в программу фундаментальных исследований России на 2013-2020 гг.

С позиций открытых информационных систем исследуются современные web-приложения, которые собираются из компонент и выполняются в гетерогенной среде глобальных вычислительных сетей.

В настоящее время ведутся активные исследования в области структурного синтеза информационных систем, и, в частности, это касается вопросов компонентной сборки web-приложений. Известные подходы и реализующие их средства, такие как Ant, Maven, Gradle и другие решают эту задачу "в лоб", запрашивая у пользователя формализованные списки с описанием компонент, на основании которых осуществляется их поиск и генерация файлового состава web-приложения. При этом вопросами подбора компонент под конкретные задачи занимается сам разработчик, что приводит зачастую к большим временным затратам и многочисленным ошибкам, из-за которых часто возникает необходимость изменения состава web-приложений даже на поздних стадиях его разработки.

Таким образом, процесс компонентной сборки и поддержки развертывания web-приложений является актуальной задачей, требующей развития семантических моделей, а также информационно-поисковых алгоритмов.

1. Постановка задачи

В рамках данной работы было необходимо построить инфраструктуру создания и развертывания web-приложений, исследовать возможность ее автоматизации посредством внедрения контейнеризации и семантической сети для автоматизации.

2. Экспериментальная модель

Перечень используемого ПО и технологий:

1. Windows 10. 2. Ubuntu 16.04 Desktop. 3. Java SE Development Kit 8. 4. IntelliJ IDEA 2017 Ultimate. 5. PostgreSQL 9. 6. Apache Tomcat. 7.Spring Framework 4. 8. PhpPgAdmin. 9. TeamCityэ 10. Slack. 11. Trello.

Схема итоговой инфраструктуры представлена на рисунке 1.

Рис. 1. Типовая инфраструктура разработки web-приложения

Из нее видно, что одним из элементов процесса создания ПО является необходимость взаимодействия заказчика с менеджером проекта, который в свою очередь взаимодействует с разработчиками. Данное взаимодействие является человеческим фактором и как следствие чаще всего становится причиной возникновения проблем в процессе разработки ПО.

3. Исследование возможной модификации

Человеческий фактор можно уменьшить посредством внедрения системы интеллектуальной поддержки развертывания приложений, которая может быть разработана с применением семантических сетей.

Семантическая сеть является одной из моделей представления знаний. Основное преимущество этой модели - в соответствии современным представлениям об организации долговременной памяти человека. Семантические сети объединяют синтаксис, морфологию и семантику языка, они используют полные словари, тезаурусы и другие семантические ресурсы, предоставляя в распоряжение пользователей встроенную базу знаний для ведения интеллектуального поиска информации. [1] Семантическая сеть - информационная модель предметной области, получившая своё название от способа представления, имеющего вид ориентированного графа, вершины которого соответствуют объектам предметной области, а дуги (рёбра) задают отношения между ними.

Для упрощения взаимодействия между элементами семантической сети возможно использование средств виртуализации -контейнеризации.

Контейнер обеспечивает виртуализацию на уровне операционной системы с помощью абстрагирования «пользовательского пространства». У них есть изолированное пространство для запуска приложений, они позволяют выполнять команды с правами суперпользователя (root), имеют частный сетевой интерфейс и IP-адрес, пользовательские маршруты и правила межсетевого экрана и т. д., однако, контейнеры разделяют ядро хоста с другими контейнерами. Контейнеры упаковывают только пользовательское пространство, а не ядро или виртуальную аппаратуру, как это делают виртуальные машины. Каждый контейнер получает свое собственное изолированное пользовательское пространство для обеспечения возможности запуска нескольких контейнеров на одном хосте. Архитектура уровня операционной системы разделяется между контейнерами, именно поэтому контейнеры настолько легковесны. [2, 3].

Исходя из всего вышеописанного можно сделать вывод о возможной применимости семантических сетей в разработке ПО следующим образом: есть множество модулей ПО, которые могут быть использованы для получения конечной требуемой конфигурации web-приложения, при этом уровень автоматизации достигает такого уровня, что заказчику достаточно описать требования к приложению в свободной форме с некоторыми ключевыми словами, после чего с помощью семантической сети автоматически будет сформирован набор необходимых модулей, который может быть сразу упакован в контейнер для виртуализации, либо доработан разработчиком под нужды заказчика.

Приложение я1 Приложение #1 Приложение S3

Системные Системные Системные

файлы и файлы и файлы и

библиотеки библиотеки библиотеки

Docker Engine ОС хоста Сервер

Рис. 2. Архитектура платформы контейнеризации Docker

Семантическое описание

Описание простейшей семантической сети для web-приложения для наглядности может быть представлено в виде графа (рис. 3).

Виртуальная машина

Рис. 3. Семантическая сеть в виде графа

Так элемент «ngmx» одновременно принадлежит «web_seгver» и «Proxy_Seгver», так как обладает именно такой функциональностью. Каждый элемент можно описать набором свойств, которые далее помогут выполнять глобально однозначные запросы с помощью языка SPARQL и формировать конфигурационное описание для множественной связанной контейнеризации.[4, 5].

Заключение

Таким образом в ходе работы был продемонстрирован сценарий использования компонентной сборки на базе семантической сети, что позволяет снизить временные затраты и сократить число ошибок на этапе структурного синтеза web-приложения. На основе таких моделей и алгоритмов могут быть построены инженерные решения, которые рекомендованы к применению при проектировании, реализации и сопровождения web-приложений, а также при создании интегрированных решений на основе различных программных компонент. Может быть создана технология формирования облачных

баз знаний поддержки генерации стандартизированных профилей web-приложений с возможностью последующего развертывания.

Список литературы

1. Балашова Т.И. Базы данных. Семантические модели данных. // Нижний Новгород. - 2010. - URL http://isu.nntu.ru/doc/bd_2.pdf.

2. Подорожный И. В., Светличный А. Н., Подлеснов А. В. Введение в контейнеры, виртуальные машины и docker // Молодой ученый. - 2016. - №19. - С. 49-53. - URL https://moluch.ru/archive/123/33873/

3. Joakim Verona. Practical DevOps: Implement DevOps in your organization by effectively building, deploying, testing, and monitoring code. // Packt Publishing. - 2018.

4. Ontology Engineering with Ontology Design Patterns: Foundations and Applications. Pascal Hitzler, Aldo Gangemi, Krzysztof Janowicz, Adila Krishnadi, Valentina Presutti. // IOS Press. - 2016.

5. Jez Humble, David Farley. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. // Addison-Wesley Professional. - 2010.

УДК 004.942

Мяэ Михаил Александрович,

студент

МОДЕЛИРОВАНИЕ И ОПТИМИЗАЦИЯ ЭВАКУАЦИИ ПОСРЕДСТВОМ КЛЕТОЧНОГО АВТОМАТА

Россия, г. Санкт-Петербург, студент СПбПУ, michail.myae@gmail.com

Аннотация. В наше время, несмотря на новейшие технологии и высокие вычислительные мощности компьютерных средств, до сих пор существует проблема долгого моделирования путей эвакуации при чрезвычайных ситуациях. Это можно наблюдать при работе с большинством программных средств, применяемых для решения таких задач и использующих алгоритмы, применяемые к каждому эвакуирующемуся субъекту в отдельности. В настоящей статье описаны различные методы моделирования и оптимизации эвакуации с использованием клеточного автомата и ориентированных графов типа «транспортная сеть». В качестве примера приводится модель эвакуации с палубы наводного судна.

Ключевые слова: эвакуация, моделирование, клеточный автомат, оптимизация.

Mikhail A. Miae, Student

SIMULATION AND OPTIMIZATION OF EVACUATION USING A

CELLULAR AUTOMATA

Russia, Saint Petersburg, student SPbPU, michail.myae@gmail.com

Abstract. Nowadays, despite the latest technologies and high computing power of computer tools, there is still a problem of long-term modeling of evacuation routes in emergency situations. This can be observed when working with most software tools used to

i Надоели баннеры? Вы всегда можете отключить рекламу.