Научная статья на тему 'ПРИМЕНЕНИЕ АСИНХРОННОГО ОБМЕНА ИНФОРМАЦИЕЙ В ВЕБ-ПРИЛОЖЕНИЯХ'

ПРИМЕНЕНИЕ АСИНХРОННОГО ОБМЕНА ИНФОРМАЦИЕЙ В ВЕБ-ПРИЛОЖЕНИЯХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
165
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕБ-ПРИЛОЖЕНИЕ / ОЧЕРЕДИ СООБЩЕНИЙ / АСИНХРОННЫЙ ОБМЕН / RABBITMQ / БАЗА ДАННЫХ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Скрыпников А.В., Денисенко В.В., Амирханян А.О.

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

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

USING ASYNCHRONOUS INFORMATION IN WEB APPLICATIONS

This article discusses what a web application is, asynchronous processing of information, when you might need to use it, and why using a database for this purpose is not the best option. The article also discusses the functions of message queues, how they work. The advantages of introducing a message queue into the system architecture are presented.

Текст научной работы на тему «ПРИМЕНЕНИЕ АСИНХРОННОГО ОБМЕНА ИНФОРМАЦИЕЙ В ВЕБ-ПРИЛОЖЕНИЯХ»

ПРИМЕНЕНИЕ АСИНХРОННОГО ОБМЕНА ИНФОРМАЦИЕЙ В

ВЕБ-ПРИЛОЖЕНИЯХ

A.В. Скрыпников, д-р техн. наук, профессор

B.В. Денисенко, канд. техн. наук, доцент А.О. Амирханян, студент

Воронежский государственный университет инженерных технологий (Россия, г. Воронеж)

DOI:10.24412/2500-1000-2021-12-3-105-108

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

Ключевые слова: веб-приложение, очереди сообщений, асинхронный обмен, RabbitMQ, база данных.

Web-приложение - это интернет-приложение с архитектурой «клиент - сервер», где клиентом является браузер, а сервером - веб-сервер. Логика его распределена между клиентом и сервером, по сети реализуется обмен информацией, преимущественно, на сервере происходит хранение данных [1].

Web-приложения можно разделить на несколько типов:

1. Backend, иными словами серверная часть приложения, работает на удаленном компьютере. Ее можно написать на разных языках программирования: С#, PHP, Python и так далее.

2. Frontend, что означает клиентская часть приложения, выполняется в браузере пользователя. Пишется на языке программирования Javascript.

3. SPA или одностраничное приложение. Здесь используются и backend, и frontend. Благодаря этому можно реализовать приложение, которое будет работать без перезагрузок страницы в браузере или, когда переходы вызывают перезагрузку, но при этом действия в разделе обходятся без них.

Web-приложения содержат большое количеств кода, который выполняется как часть цикла HTTP - запроса или ответа (рис. 1). Это подходит для более быстрых задач, которые могут быть выполнены в течение сотен миллисекунд. Но любая обработка, которая займет более секунды, будет слишком медленной для синхронного выполнения [2].

Запрос

Ответ

Сервер

Рис. 1

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

Теперь вместо задачи, выполняемой как часть фактического веб-ответа, обработка

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

Рис. 2

Традиционная база данных плохо подходит для случаев асинхронной обработки. Существуют два аспекта у любой асинхронной обработки:

1. Служба, которая создает задачи обработки.

2. Служба, которая использует и обрабатывает эти задачи.

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

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

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

Этот интерфейс соединяет производителей, которые создают сообщения, и потребителей, которые после их обрабатывают. В контексте веб-приложения одним из распространенных случаев является то, что производитель - это клиентское приложение, которое создает сообщения на основе взаимодействия с пользователем [3]. В этом случае потребителем являются задачи гаке, которые после могут обрабатывать поступающие сообщения (рис. 3).

Рис. 3

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

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

Помимо всего очереди сообщений могут обеспечить большую видимость объема сообщений.

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

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

Существует десятки очередей сообщений со всевозможными именами и функциями. AMQP и STOMP являются новыми открытыми стандартными протоколами для очередей сообщений (рис. 4).

Очереди

Рис. 4

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

Одной из хорошо поддерживаемым очередями сообщений общего назначения является RabbitMQ.

Лучше всего для веб-приложения Ruby или Python выбирать RabbitMQ на AMQP.

Большинству популярных веб-приложений действительно нужен только

Библиографический список 1. Лисенкова А.А. Новые медиа: от web 1.0 к семантической паутине web 4.0 // Вестник Московского государственного университета культуры и искусств. - 2018. - №1 (81). -С. 110-118.

2. Защита web-приложений / А.В. Скрыпников, Д.В. Арапов, В.В. Денисенко, Т.Д. Герасимова. - Воронеж: Воронежский государственный университет инженерных технологий, 2020. - 75 с. - ISBN 978-5-00032-469-1.

3. Волосникова П.М. Использование веб-интерфейсов для сервисов на основе сетевой близости / П.М. Волосникова, Д.Е. Намиот // International Journal of Open Information Technologies. - 2020. - Т. 8. - №6. - С. 83-90.

4. Security threats to personal data in the implementation of distance educational services using mobile technologies / V.N. Popov, V.N. Vasilenko, V.A. Khvostov [et al.] // Journal of Theoretical and Applied Information Technology. - 2021. - Vol. 99. - №15. - P. 3935-3946.

5. Nikitin N. Development of web service for generating musical composition from an image / N. Nikitin, V. Rozaliev, Yu. Orlova // Открытые семантические технологии проектирования интеллектуальных систем. - 2020. - №4. - P. 345-348.

USING ASYNCHRONOUS INFORMATION IN WEB APPLICATIONS

A.V. Skrypnikov, Doctor of Technical Sciences, Professor

V.V. Denisenko, Candidate of Technical Sciences, Associate Professor

A.O. Amirkhanyan, Student

Voronezh State University of Engineering Technologies (Russia, Voronezh)

Abstract. This article discusses what a web application is, asynchronous processing of information, when you might need to use it, and why using a database for this purpose is not the best option. The article also discusses the functions of message queues, how they work. The advantages of introducing a message queue into the system architecture are presented.

Keywords: web application, message queues, asynchronous exchange, RabbitMQ, database.

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