Научная статья на тему 'Анализ технических возможностей для создания системы "вуз - работодатель" на базе облачных технологий'

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

CC BY
100
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЛАЧНАЯ СИСТЕМА "ВУЗ РАБОТОДАТЕЛЬ" / ПРОГРАММНЫЕ ПЛАТФОРМЫ / ОБЛАЧНЫЙ СЕРВИС / ХОСТИНГ / ЯЗЫКИ ПРОГРАММИРОВАНИЯ / CLOUD SYSTEM "UNIVERSITY-EMPLOYER" / SOFTWARE PLATFORMS / CLOUD SERVICE / HOSTING / PROGRAMMING LANGUAGES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Миронова Людмила Ивановна, Язовцев Игорь Алексеевич

Цель статьи проведение анализа инструментария и хостингов для оптимального расположения данных и вычислительных ресурсов для создания облачной системы «вуз работодатель». Методы и методология. Исследование проводится на основе сравнительного анализа современных платформ и облачных сервисов, на базе которых будет осуществляться работа облачной системы «вуз работодатель» в целом (хостинг). Анализировалось территориальное расположение серверных мощностей, наличие поддержки необходимых программных платформ и готовой инфраструктуры для них; наличие поддержки распространённых систем управления базами данных; наличие теоретически обоснованной и простой панели управления ресурсами; наличие систем резервного копирования; стоимость эксплуатации. Результаты. Проведен анализ программных платформ с целью выбора той, на базе которой целесообразно осуществлять разработку сетевого приложения. Выводы. На основе проведенного анализа авторы пришли к выводу, что для разработки системы «вуз работодатель» целесообразно использовать готовое программно-аппаратное решение, предлагаемое рынком облачных сервисов, программную платформу Java и язык программирования Kotlin.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Миронова Людмила Ивановна, Язовцев Игорь Алексеевич

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

Analysis of technical capabilities to create the “university - employer” system based on cloud technologies

Introduction. The purpose of the article is to analyze the tools and hosting for the optimal location of data and computing resources to create a cloud system “University employer”. Methodology. The study is based on a comparative analysis of modern platforms and cloud services, on the basis of which the work of the cloud system "University-employer" as a whole (hosting) will be carried out in terms of the territorial location of server capacities, support for the necessary software platforms and the availability of ready infrastructure for them; support for common database management systems; theoretically sound and simple resource management panel; availability of backup systems; cost of operation. Results. The analysis of software platforms in order to select the one on the basis of which the development of a network application will be carried out. Conclusions. Based on the analysis, the authors came to the conclusion that for the development of the system “University-employer” it is advisable to use a ready hardware and software solution offered by the cloud services market, Java software platform and Kotlin programming language.

Текст научной работы на тему «Анализ технических возможностей для создания системы "вуз - работодатель" на базе облачных технологий»

УДК 004.383.4 DOI 10.17238/issn1998-5320.2019.35.130

Л. И. Миронова, Уральский федеральный университет им. первого Президента России Б. Н. Ельцина, Екатеринбург

И. А. Язовцев,

ООО «Нет Элемент Софтваре», Екатеринбург

АНАЛИЗ ТЕХНИЧЕСКИХ ВОЗМОЖНОСТЕЙ ДЛЯ СОЗДАНИЯ СИСТЕМЫ «ВУЗ - РАБОТОДАТЕЛЬ» НА БАЗЕ ОБЛАЧНЫХ ТЕХНОЛОГИЙ

Цель статьи - проведение анализа инструментария и хостингов для оптимального расположения данных и вычислительных ресурсов для создания облачной системы «вуз - работодатель». Методы и методология. Исследование проводится на основе сравнительного анализа современных платформ и облачных сервисов, на базе которых будет осуществляться работа облачной системы «вуз - работодатель» в целом (хостинг). Анализировалось территориальное расположение серверных мощностей, наличие поддержки необходимых программных платформ и готовой инфраструктуры для них; наличие поддержки распространённых систем управления базами данных; наличие теоретически обоснованной и простой панели управления ресурсами; наличие систем резервного копирования; стоимость эксплуатации.

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

Выводы. На основе проведенного анализа авторы пришли к выводу, что для разработки системы «вуз - работодатель» целесообразно использовать готовое программно-аппаратное решение, предлагаемое рынком облачных сервисов, программную платформу Java и язык программирования Kotlin.

Ключевые слова: облачная система «вуз - работодатель», программные платформы, облачный сервис, хостинг, языки программирования.

Проблема и цель. Теоретические основания бизнес-архитектуры облачной системы «вуз -работодатель», а также возможные варианты управления в ней рассмотрены в статьях [1; 2]. Однако для создания системы «вуз - работодатель» на базе облачных технологий необходимо решить ряд важных технических вопросов, связанных с выбором платформы для размещения сервиса и выбором облачного сервиса, на базе которого будет осуществляться работа системы в целом (хостинг), а также с выбором программной платформы, на базе которой будет осуществляться разработка сетевого приложения.

Современные коммерческие облачные сервисы (хостинги) предлагают пользователям огромное число поддерживаемых технологий и услуг. Потребители могут получить в своё распоряжение как физические серверы с обслуживанием и техническим контролем [3], так и готовые программные решения с возможностью точной настройки под конкретные программные платформы [4].

Методология. Если выбрать в качестве платформы для размещения физические серверы, то придётся затрачивать значительные ресурсы для администрирования всего программного обеспечения, в том числе операционной системы, системы управления базой данных, проводить диагностику работоспособности оборудования, настраивать системы резервного копирования, файервол и т. д. Если выбрать в качестве основы программные решения, то тогда можно получить не только услуги администрирования и оптимизации, но и резервного копирования. Имея определённый опыт коммерческой разработки и предполагая будущий объём работ, связанных с разработкой системы «вуз -работодатель», мы склоняемся к варианту готового программно-аппаратного решения. Это позволит не пользоваться услугами высококвалифицированного дополнительного персонала для обслуживания стандартных программных и аппаратных решений при небольшой начальной нагрузке.

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

1) территориальное расположение серверных мощностей;

2) поддержка необходимых программных платформ и наличие готовой инфраструктуры для них;

3) поддержка распространенных систем управления базами данных;

4) теоретически обоснованная и простая панель управления ресурсами;

5) наличие систем резервного копирования;

6) стоимость эксплуатации.

Кратко проанализируем каждый из перечисленных параметров.

1. В связи с текущей политической ситуацией все серверы, хранящие личные данные пользователей, необходимо располагать на территории Российской Федерации. Данное требование накладывает ограничения на хранение личных данных на серверах, территориально располагающихся в других государствах, при этом ограничений на вычислительные ресурсы нет. Поэтому крайне важно проектировать информационную систему «вуз - работодатель» таким образом, чтобы в своей работе она опиралась на российские серверы хранения данных [5].

2. Подавляющее количество облачных решений работают на операционных системах семейства Linux [6], что позволяет запускать все свободные и открытые программные платформы, такие как PHP, Node.Js, Java, Python. При этом с запуском приложения для платформы .Net могут быть проблемы, так как не все облачные сервисы поддерживают необходимую инфраструктуру компании Microsoft.

3. Панель системы управления базами данных в случае хранения данных на территории нашей страны, а выполнения вычислений на территории других стран, должна поддерживать распространенные системы управления базами данных, такие как PostgreSQL, MySQL, MongoDB [7]. Управление должно осуществляться как с помощью web-интерфейса, так и удалённо с помощью консольных утилит.

4. Панель управления ресурсами подразумевает некоторый интерфейс управления сетевым хранилищем, управления пулом доступных IP-адресов, управления доступа к сервисам (настройка файервола и систем распределения прав доступа конкретным пользователям), настройки сервисов резервного копирования и др.

5. Наличие систем резервного копирования является необходимым условием стабильной работы сетевых сервисов при различных сбоях оборудования и программного обеспечения. Идеально, когда облачная система работает по принципу распределённых RAID-массивов, расположенных на значительном удалении друг от друга, для минимизации техногенных рисков [8].

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

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

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

Статическая типизация в языке программирования подразумевает, что все создаваемые переменные должны быть обязательно описаны с указанием их типа, и в дальнейшем, при необходимости преобразовать переменную к другому типу, нужно явно вызывать различные подпрограммы и конструкции языка [9]. При динамической типизации сам компилятор/интерпретатор «догадывается», какой тип приобрела та или иная переменная. Для создания больших и сложных систем рекомендуется использовать языки программирования со статической типизацией, так как с их помощью можно намного проще создавать программные системы с прогнозируемым функционалом и сложной логикой. С другой стороны, языки с динамической типизацией позволяют разрабатывать приложения намного быстрее.

Если готовое приложение распространяется в виде набора скриптов, то для его работы не нужно отдельно компилировать исходные коды, а достаточно просто запустить код в специальном

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

При создании сетевых приложений разработчику доступен широкий спектр программных платформ, позволяющих создавать эффективные приложения, наиболее распространенными из которых являются: PHP, Node.JS, Java (Kotlin), Python, .NET Framework (C#) [10].

Платформа PHP - специально разработанное решение для создания веб-приложений [11]. Первый релиз продукта состоялся в 1995 году, и через несколько лет он обрёл огромную популярность среди разработчиков веб-сайтов. Платформа имеет собственный скриптовый язык, называемый так же, как и вся платформа, - PHP. Скрипты исполняются специальным интерпретатором, язык программирования имеет динамическую типизацию. Все запросы от клиентов обрабатываются синхронно, то есть пока текущий запрос не будет выполнен, все остальные запросы будут ожидать своей очереди. Данное решение идеально подходит для реализации небольших проектов, а также для проектов с несложной логикой.

Платформа Node.Js является относительно молодой, первый релиз состоялся в 2009 году [12]. В качестве языка программирования используется JavaScript. Благодаря своей архитектуре, всё сетевое взаимодействие является асинхронным, то есть при обращении клиента к серверу происходит формирование задачи на выполнение требуемых действий, при этом другие клиенты могут тоже обращаться к серверу, и их запросы также будут выполняться. Как только результат запроса конкретного клиента будет выполнен, сервер отправит ему результат. Решение идеально подходит для создания высоконагруженных сетевых приложений. Кроме этого, существует набор библиотек для работы с оборудованием компьютеров.

Программная платформа Java является универсальной, то есть её можно свободно использовать как для написания серверного программного обеспечения, так и пользовательского с продвинутым графическим интерфейсом. В ней используется язык программирования Java. Программы, написанные на данном языке, компилируются в промежуточный байт-код, который затем выполняется на виртуальных машинах Java. На данный момент виртуальные машины есть для большинства операционных систем и процессорных архитектур. Язык является строго типизированным, что позволяет сразу при компиляции определить большое число ошибок. Для данной платформы существует большое число библиотек для решения разного рода задач. Эта программная платформа довольно продолжительное время является одним из главных решений для корпоративной разработки. В последнее время платформа обрела огромную популярность благодаря широкому использованию в операционной системе Android. На основе этой платформы был разработан язык программирования Kotlin от отечественного разработчика JetBrains. Этот язык создан сравнительно недавно, но за короткое время он обрёл огромную популярность среди сообщества разработчиков для ОС Android благодаря своей универсальности, современности, практичности.

Python является достаточно старым языком программирования общего назначения с поддержкой большого сообщества [13]. Его разработка началась в конце 80-х годов прошлого века. В настоящее время наблюдается значительный рост популярности данного языка и платформы, благодаря его широкому использованию в системах искусственного интеллекта. Современные инструменты позволяют компилировать код, написанный на Python, в бинарный или промежуточный байт-код. Кроме этого, есть возможность распространять программы в виде обычных скриптов. Данный язык имеет динамическую типизацию и при этом чёткий и последовательный синтаксис.

Язык программирования C# был выпущен инженерами компании Microsoft в 2000 году [14]. С самого начала это был коммерческий продукт с мощной корпоративной поддержкой. Данный язык поддерживает множество парадигм программирования, является статически типизированным. Для работы приложений, написанных на нём, требуется платформа .NET Framework для операционной системы семейства Microsoft Windows. Также существуют способы запуска приложений на других операционных системах, но для этого требуются альтернативные среды выполнения, такие как Mono или portable.NET. Данный язык разработки является де-факто решением для корпоративной разработки для операционных систем Windows.

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

и достаточный набор отзывов технических специалистов, мы пришли к выводу, что для разработки системы «вуз - работодатель» на базе облачных технологий целесообразно использовать платформу Java и язык программирования Kotlin. Данная связка позволяет создавать с помощью одного универсального современного языка как сетевые, так и мобильные приложения. К тому же существует огромное количество готовых комплексных решений на данной платформе, позволяющих создавать современные сетевые приложения, работающие как по принципу блокировок, так и по принципу событий. Данная платформа поддерживается всеми популярными провайдерами на рынке хостинг-услуг.

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

Библиографический список

1. Миронова Л. И., Язовцев И. А. Теоретические основания бизнес-архитектуры облачной системы «вуз - работодатель» // V Межд. научно-практ. конф. «Постсоветское пространство - территория инноваций» : сборник трудов; 24 января 2018. Московский региональный социально-экономический институт, г. Видное.

2. Миронова Л. И., Язовцев И. А. Варианты управления облачной системой «вуз - работодатель» // Педагогическая информатика. 2018. № 4.

3. Гачко Д., Стародубцев А. IaaS для бизнеса по кирпичикам. СПб.: Изд-во ИТ-ГРАД, 2014.

4. Thomas E., Zaigham M., Ricardo P. Cloud computing. Concepts, Technology & Architecture. Prentice Hall, ServiceTech press, 2014.

5. Федеральный закон «О персональных данных» № 152-ФЗ от 27 июля 2006 [Электронный ресурс]. URL: http://www.consultant.ru/document /cons_doc_LAW_166051/ (дата обращения 10.09.2018)

6. Рейтинг серверных операционных систем [Электронный ресурс]. Tagline. URL: https://tagline.ru/server-operating-systems-rating/ (дата обращения 12.10.2018).

7. Самые популярные СУБД: Рейтинг 2018-го года [Электронный ресурс]. URL: https://itsource.com.ua/blog/samye-populjarnye-subd-rejting-2018-go-goda/ (дата обращения 15.09.2018).

8. Диомидис С., Георгиос Г. Идеальная архитектура. Ведущие специалисты о красоте программных архитектур. СПб., М.: Символ, 2010.

9. Нимейер П., Леук Д. Программирование на Java. М.: Изд-во Эксмо, 2014.

10. Наиболее востребованные языки программирования - 2018 [Электронный ресурс]. URL: https://habr.com/company/hh/blog/418079/ (дата обращения 20.12.2018).

11. Котеров Д. PHP 7. Наиболее полное руководство. СПб.: БХВ-Петербург, 2016.

12. Пауэрс Ш. Изучаем Node.js. СПб.: Изд-во Питер, 2013.

13. Лутц М. Изучаем Python. СПб., М.: Изд-во Символ, 2011.

14. Албахари Б., Албахари Д. C# 7.0. Справочник. Полное описание языка. СПб., М.: Изд-во Вильямс, 2018.

L. I. Mironova,

Candidate of Technical Sciences, Associate Professor, Ural Federal University, 19 Mira st., Ekaterinburg, 620002, Russian Federation

ORCID ID https://orcid.org/0000-0002-3675-6008

e-mail: mirmila@mail.ru I. A. Jazovtsev, PhD in the theory of vocational education, Limited liability Company "Net Element Software", 6a office 1501 Radishcheva st., Ekaterinburg, 620014, Russian Federation

e-mail: gc986@list.ru

ANALYSIS OF TECHNICAL CAPABILITIES TO CREATE THE "UNIVERSITY - EMPLOYER" SYSTEM BASED ON CLOUD TECHNOLOGIES

Introduction. The purpose of the article is to analyze the tools and hosting for the optimal location of data and computing resources to create a cloud system "University - employer".

Methodology. The study is based on a comparative analysis of modern platforms and cloud services, on the basis of which the work of the cloud system "University-employer" as a whole (hosting) will be carried out in terms of the territorial location of server capacities, support for the necessary software platforms

and the availability of ready infrastructure for them; support for common database management systems; theoretically sound and simple resource management panel; availability of backup systems; cost of operation.

Results. The analysis of software platforms in order to select the one on the basis of which the development of a network application will be carried out.

Conclusions. Based on the analysis, the authors came to the conclusion that for the development of the system "University-employer" it is advisable to use a ready hardware and software solution offered by the cloud services market, Java software platform and Kotlin programming language.

Keyword: cloud system "University-employer", software platforms, cloud service, hosting, programming languages.

References

1. Mironova L. I., Jazovtsev I. A. Theoretical Foundation of business architecture cloud system "University-employer". VInter. scientific practice Conf. "Post-Soviet space-the territory of innovation". Moscow regional socioeconomic Institute, Vidnoye, Moscow region, Russia, January 24, 2018 (In Russian).

2. Mironova L. I., Jazovtsev I. A. Variants of management of the cloud system "University-employer". Pedagogical Informatics, no 4, 2018 (In Russian).

3. Gachko D., Starodubtsev A. IaaSfor business bricks. St. Petersburg: IT GRAD publ., 2014 (In Russian).

4. Thomas E., Zaigham M., Ricardo P. Cloud computing. Concepts, Technology & Architecture. Prentice Hall Publ., ServiceTech press, 2014. (In Russian).

5. Federal law "A personal data" no. 152-FZ of 27 July 2006. URL: http://www.consultant.ru/document /cons_doc_LAW_166051/ (accessed 10.09.2018). (In Russian).

6. Rating of server operating systems. URL: https://tagline.ru/server-operating-systems-rating/ (accessed 12.10.2018) (In Russian).

7. The most popular DBMS: Rating of 2018. URL: https://itsource.com.ua/blog/samye-populjarnye-subd-rejting-2018-go-goda/ (accessed 15.09.2018). (In Russian).

8. Diomides S., Georgios G. A Perfect architecture. Leading experts about the beauty of software architecture. St. Petersburg, Moscow. Symbol publ., 2010 (In Russian).

9. Niemeyer P., Leuk D. Java Programming. Moscow. Exmo publ., 2014 (In Russian).

10. The most popular programming languages - 2018. URL: https://habr.com/company/hh/blog/418079/ (accessed 20.12.2018) (In Russian).

11. Koterov D. PHP 7. The most complete guide. St. Petersburg: BHV-Petersburg publ., 2016 (In Russian).

12. Powers S. Study of the Node.js. St. Petersburg: Peter publ., 2013 (In Russian).

13. Lutz M. Learning Python. St. Petersburg, Moscow: Symbol publ., 2011 (In Russian).

14. Albahari B., Albahari D. C# 7.0. Handbook. Full description of the language. St. Petersburg, Moscow: Williams publ., 2018 (In Russian

Поступила в редакцию 4.02.2019 © Л. И. Миронова, И. А. Язовцев, 2019

Авторы статьи:

Людмила Ивановна Миронова, кандидат технических наук, доцент кафедры гидравлики, Уральский федеральный университет им. первого Президента России Б. Н. Ельцина, 620002, Екатеринбург, ул. Мира, 19, e-mail: mirmila@mail.ru

Игорь Алексеевич Язовцев, доктор PhD в области теории профессионального образования, ведущий программист, ООО «Нет Элемент Софваре», 620014, Екатеринбург, ул. Радищева, 6а, оф. 1501, e-mail: gc986@list.ru

Рецензенты:

Н. В. Герова, доктор педагогических наук, доцент, профессор кафедры информатики и вычислительной техники, Рязанский государственный университет им. С. А. Есенина.

М. В. Лапенок, доктор педагогических наук, доцент, зав. кафедрой информатики, информационных технологий и методики обучения информатике, Уральский государственный педагогический университет, Екатеринбург.

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