MAIN ASPECTS OF MICROSERVICE WEB APPLICATION DEVELOPMENT

Review article
DOI:
https://doi.org/10.23670/IRJ.2023.133.121
Issue: № 7 (133), 2023
Suggested:
16.05.2023
Accepted:
12.07.2023
Published:
17.07.2023
1019
4
XML
PDF

Abstract

The article examines the main aspects of web application development. It is noted that web application development refers to the process of creating software applications that can be accessed and used through a web browser on a computer or mobile device. The relevance of the study of the main aspects of web application development based on microservice architecture is substantiated.

An example of the development of two algorithms is given: an algorithm for searching users via the Internet and an algorithm for adding a user using a QR code, which fully satisfies all functionality requirements within the framework of client services. The use of microservice architecture in application development is the most popular approach today. Microservice architecture has a separate package for each service, and they are stored on different servers in isolation, while duplicating each other if necessary, which allows to work with each functional element separately.

1. Введение

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

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

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

.

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

.

В настоящее время индустрия R&D (Research and Development) активно развивается, появляются новые методологии разработки ПО и разных видов архитектуры, соответственно, осложняются задачи для разработчиков. Основными требования к выбору веб-приложений становятся: возможность предоставления программного интерфейса, многофункциональность, легкомасштабиремость, гибкость, кроссплатформенность, быстрая изменяемость под задачи пользователей. В связи с этим для разработки оптимального программного обеспечения необходимо выбрать правильную архитектуру, оценить ее преимущества и недостатки, ориентируясь на требования работоспособности и функциональности ПО. Яркими примерами перехода на микросервисную архитектуру можно назвать компании Netflix, Apple, Instagram*, Pinterest и др., которые начали использовать данную архитектуру, чтобы решить проблемы обработки большого количества запросов, обеспечения высокой скорости доступа к данным, обеспечение высокой надежности отказоустойчивости и масштабируемости. Например, Netflix столкнулся со сложностью обработки информации огромного количества клиентов.

Pinterest благодаря микросервисам смог приспособиться к различным уровням трафика.

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

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

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

*(Instagram является продуктом компании Meta, деятельность которой запрещена на территории РФ).

2. Постановка задачи и методика исследования

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

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

3. Результаты исследования

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

Н.В. Панченко

, А.В. Понизов, М.А. Серов, Т.А. Галаган
к особенностям микроструктуры приложения относят:

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

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

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

.

М.С. Качков, П.А. Пахомов, И.А. Горин отмечают важность выбора инструментальных средств для разработки веб-приложения. В частности, к наиболее оптимальным авторы относят:

1. Языки программирования. В зависимости от требований и предпочтений разработчиков целесообразно использовать JavaScript, HTML, CSS, Python, Ruby и т.д.

;

2. Фреймворки, которые упрощают разработку веб-приложений, предоставляя готовые модули и инструменты, например: React, Angular, Vue.js, Django, Ruby on Rails и Laravel

;

3. Среды разработки (IDE), которые предоставляют инструменты для создания, отладки и тестирования кода, например: Visual Studio Code, WebStorm, PyCharm, Sublime Text и Atom;

4. Базы данных. К наиболее популярным относятся реляционные базы данных MySQL, PostgreSQL и SQLite. Для NoSQL баз данных можно использовать MongoDB, Firebase и другие;

5. Веб-сервер, среди которых Apache и Nginx являются наиболее распространенными;

6. API и сервисы, использование которых позволяет интегрировать сторонние сервисы и функциональность в ваше веб-приложение. Некоторые популярные API включают Google Maps API, YouTube API, Twitter API и другие;

7. Тестирование и отладка, например, Jest, Selenium, Mocha, Jasmine и другие;

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

,
.

Анализ работы С. Магомадова позволил выделить следующие принципы разработки веб-приложения (Progressive Web Application, далее PWA)

:

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

2. Адаптивный дизайн, то есть способность приложения адаптироваться к разным устройствам и размерам экранов — это обеспечивает удобство использования и оптимальное отображение интерфейса на различных платформах, включая мобильные устройства;

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

4. Быстрая загрузка и отзывчивость. Производительность является важным аспектом PWA. Для быстрой загрузки и реагирования на пользовательские действия используются оптимизации, такие как кэширование ресурсов, сжатие данных и асинхронная загрузка;

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

6. Возможность автоматического и/или ручного обновления с целью обеспечить актуальность функций и исправление ошибок

.

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

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

Клиент-серверная архитектура веб-приложений – одно из важнейших их характеристик. Клиент-серверная архитектура веб-приложений – это сетевая архитектура веб-приложений, которая предполагает разделение по типу работы компьютеров, находящихся в одной сети, на серверы и клиенты.

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

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

.

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

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

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

.

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

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

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

Разработанное в статье веб-приложение представляет собой клиент двухзвенной клиент-серверной архитектуры (рис. 1)

.

Архитектура программы

Рисунок 1 - Архитектура программы

Клиент - это программное обеспечение, которое предоставляет пользователю интерфейс для взаимодействия с системой. Клиент не взаимодействует с базой данных напрямую и не содержит большого количества бизнес-логики. Клиент отвечает за получение и отображение данных, полученных с сервера, отправку полученных от пользователя данных или выполняет к ним запрос по команде пользователя. В приложении для IOS все взаимодействия с пользователем происходят с помощью сенсорного дисплея. Архитектура IOS программы имеет 4 слоя – рис. 2
.
Архитектура IOS программы

Рисунок 2 - Архитектура IOS программы

Рассмотрим пример разработкии двух алгоритмов
:

1. Алгоритм поиска пользователей через Интернет. Данный алгоритм показывает всю бизнес-логику поиска пользователей через Интернет. В нем представлены три аспекта алгоритма – для Firebase, Backend и самого веб-приложения;

2. Алгоритм добавления пользователя с помощью QR-кода. Разработанный алгоритм показывает всю логику работы веб-приложения для обмена данными через QR-код.

Пример генерации данных через QR-код представлен на рис. 3.

Пример отправки данных для воспроизведения звуковых сигналов после кодировки

Рисунок 3 - Пример отправки данных для воспроизведения звуковых сигналов после кодировки

Опишем разработку основных экранов приложения. Разработка программы производилась в среде Xcode, с помощью языка Objective C, по паттерну Apple MVC. Разметка элементов экранов производилась с помощью Constranit, разметка масштабируется в зависимости от размера экрана с помощью Auto-Layout
,
.

Экран приветствия содержит три Lablel, две Button, одну секцию ScrollView, один ImageView – рис. 4.

Экран приветствия

Рисунок 4 - Экран приветствия

Экран регистрации позволяет пользователю ввести логин и пароль и подтверждение пароля для создания аккаунта в Firebase.

Экран регистрации содержит два Label, три Button и три TextField – рис. 5.

Экран регистрации

Рисунок 5 - Экран регистрации

Экран авторизации позволяет пользователю ввести логин и пароль, используемый в Firebase. Экран авторизации содержит два Label, четыре Button и два TextField – рис. 6.
Экран авторизации

Рисунок 6 - Экран авторизации

4. Заключение

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

Article metrics

Views:1019
Downloads:4
Views
Total:
Views:1019