ОСНОВНЫЕ АСПЕКТЫ РАЗРАБОТКИ МИКРОСЕРВИСНОГО ВЕБ-ПРИЛОЖЕНИЯ

Обзор
DOI:
https://doi.org/10.23670/IRJ.2023.133.121
Выпуск: № 7 (133), 2023
Предложена:
16.05.2023
Принята:
12.07.2023
Опубликована:
17.07.2023
1543
8
XML
PDF

Аннотация

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

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

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. Заключение

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

Метрика статьи

Просмотров:1543
Скачиваний:8
Просмотры
Всего:
Просмотров:1543