Научная статья на тему 'РАЗРАБОТКА МЕХАНИЗМА МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ОНЛАЙН-РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ НА ПРИМЕРЕ ПРОСТЕЙШЕГО SVG-РЕДАКТОРА'

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

CC BY
2
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
многопользовательская работа / веб-приложение / обмен сообщениями / веб-сокет / SVG / multi-user / web application / messaging / web sockets / SVG

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гришин Олег Данилович, Гришунов Степан Сергеевич, Анцева Наталья Витальевна, Шадский Геннадий Викторович

В статье рассматриваются требования современных пользователей к интерфейсам информационных систем. Приводится описание механизма обеспечения многопользовательской работы пользователей информационной системы на основе обмена короткими сообщениями между всеми участниками через центральную точку – сервер приложений – с помощью веб-сокетов. В предлагаемом механизме сообщения рассылаются по всем открытым соединениям, id документа которых совпадает с id документа, для которого было отправлено сообщение; внесение локальных изменений у инициатора модификации документа происходит только после получения сообщения от сервера. На примере создания простейшего SVG-редактора приводится необходимый перечень типов сообщений для создания, удаления, изменения фигур на холсте и передачи координат курсора пользователя для рендеринга на холстах других пользователей, также описано содержимое данных сообщений. Приводится механизм сохранения очереди действий пользователя на клиенте в стеке для обеспечения возможности отмены совершенных действий за счет введения специального класса Action, сохраняющего старое и новое состояние фигур и генерирующего прямые и обратные сообщения для каждого действия пользователя. Приводится механизм обработки сообщений сервером и локально клиентами с применением паттерна «цепочка обязанностей».

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гришин Олег Данилович, Гришунов Степан Сергеевич, Анцева Наталья Витальевна, Шадский Геннадий Викторович

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

DEVELOPMENT OF A MECHANISM FOR MULTI-USER ONLINE WORK FOR INFORMATION SYSTEM USERS USING THE EXAMPLE OF A SIMPLE SVG EDITOR

The article studies the requirements of modern users for interface information systems. A description is given of the mechanism for multi-providing user experience for users of the information system based on the exchange of the shortest messages between all participants through a central point server applications using web sockets. In the proposed mechanism, messages are sent over all open connections, the document id corresponds to the id of the document for which the message was sent; local changes are made by the document modification initiator only after receiving a message from the server. The basis for creating a simple SVG editor is the choice of the type of text types to create, delete, change a shape on the canvas and transfer the user's coordinates for rendering on the canvases of other users, as well as the elementary rules of these texts. A mechanism is provided for maintaining the order of user actions on the client in the stack to provide the ability to cancel completed actions by providing a special Action class that saves the old and new state of the figure and generates forward and reverse messages for each user action. A mechanism for processing messages on the server and locally by clients using the «chain of responsibility» pattern is provided.

Текст научной работы на тему «РАЗРАБОТКА МЕХАНИЗМА МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ОНЛАЙН-РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ НА ПРИМЕРЕ ПРОСТЕЙШЕГО SVG-РЕДАКТОРА»

25. Сериков С.В., Устинов И.К., Сулина О.В., Шестернина Е.А. Исследование функциональной зависимости определения коэффициента динамической вязкости металлов // Известия Тульского государственного университета. Технические науки. 2022. Вып. 5. С. 276-281.

26. Степанов С.Е., Устинов И.К., Сулина О.В., Шестернина Е.А. Выбор модели логистической регрессии для оценки пробиваемости бронезащиты // Известия Тульского государственного университета. Технические науки. 2022. Вып. 6. С. 25-28.

27. Устинов И.К., Шкарупа И.Л., Рогов Д.А., Грачев В.А., Степанов С.Е., 27. Артеменко О.А. Результаты расчёта бронеконструкции из титановых труб // Известия Тульского государственного университета. Технические науки. 2022. Вып. 7. С. 470-475.

Устинов Игорь Кириллович, канд. техн. наук, доцент, [email protected], Россия, Калуга, Московский государственный технический университет им. Н.Э. Баумана (Калужский филиал),

Горбунов Александр Константинович, д-р физ.-мат. наук, профессор, Россия, Калуга, Московский государственный технический университет им. Н.Э. Баумана (Калужский филиал),

Силаева Наталья Альбертовна, старший преподаватель, Россия, Калуга, Московский государственный технический университет им. Н.Э. Баумана (Калужский филиал)

Крицкая Анна Ридольфовна, кандидат технических наук, доцент, Россия, Калуга, Московский государственный технический университет им. Н.Э. Баумана (Калужский филиал)

ENERGY-TECHNOLOGICAL INTERPRETATION OF THE MAGNETIC WAVE WHEN UPDATING THE PARAMETERS

OF ARMOR PROTECTION

I.K. Ustinov, A.K. Gorbunov, N.A. Silaeva, A.R. Kritskaya

The theoretical dependences arising from the dimensionless Lysenko complex for the study of the conversion of momentum and angular momentum, which determine the interpretation of the magnetic wave and the fine structure constant in relation to armor protection, are considered.

Key words: momentum, angular momentum, energy technological processes, Newton's and Coulomb's laws, magnetic wave, fine structure constant.

Ustinov Igor Kirillovich, candidate of tecnical sciences, docent, [email protected], Russia Kaluga, Bauman Moskow State Technical University (Kalyfa Branch),

Gorbunov Alexander Konstantinovich, Doctor of Physical and Mathematical Sciences, Professor, Russia Kaluga, Bauman Moskow State Technical University (Kalyfa Branch),

Natalia Albertovna Silaeva, senior lecturer, Russia Kaluga, Bauman Moskow State Technical University (Kalyfa

Branch),

Kritskay Anna Rydolfovna, candidate of tecnical sciences, docent, Russia Kaluga, Bauman Moskow State Technical University (Kalyfa Branch)

УДК 004.91

DOI: 10.24412/2071-6168-2023-12-454-455

РАЗРАБОТКА МЕХАНИЗМА МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ОНЛАЙН-РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ

ИНФОРМАЦИОННОЙ СИСТЕМЫ НА ПРИМЕРЕ ПРОСТЕЙШЕГО SVG-РЕДАКТОРА

О.Д. Гришин, С.С. Гришунов, Н.В. Анцева, Г.В. Шадский

В статье рассматриваются требования современных пользователей к интерфейсам информационных систем. Приводится описание механизма обеспечения многопользовательской работы пользователей информационной системы на основе обмена короткими сообщениями между всеми участниками через центральную точку -сервер приложений - с помощью веб-сокетов. В предлагаемом механизме сообщения рассылаются по всем открытым соединениям, id документа которых совпадает с id документа, для которого было отправлено сообщение; внесение локальных изменений у инициатора модификации документа происходит только после получения сообщения от сервера. На примере создания простейшего SVG-редактора приводится необходимый перечень типов сообщений для создания, удаления, изменения фигур на холсте и передачи координат курсора пользователя для рендеринга на холстах других пользователей, также описано содержимое данных сообщений. Приводится механизм сохранения очереди действий пользователя на клиенте в стеке для обеспечения возможности отмены совершенных действий за счет введения специального класса Action, сохраняющего старое и новое состояние фигур и генерирующего прямые и обратные сообщения для каждого действия пользователя. Приводится механизм обработки сообщений сервером и локально клиентами с применением паттерна «цепочка обязанностей».

Ключевые слова: многопользовательская работа, веб-приложение, обмен сообщениями, веб-сокет, SVG.

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

454

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

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

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

Для решения данной задачи, предполагающей постоянное соединение и обмен сообщениями между клиентами и сервером, подходит механизм веб-сокетов [5]: клиент, открывая какой-либо файл устанавливает соединение с сервером через веб-сокет - сервер сохраняет все подключения в словаре, ключом в котором служат id документа и id пользователя - совершив какое-либо фрагментарное действие клиент формирует сообщение серверу, описывающее это действие, получив и обработав для сохранения изменений в базе данных которое, сервер отправляет это же сообщение всем клиентам, имеющие подключение по тому же id документа. Это сообщение получают все клиенты, в том числе и отправитель сообщения - на этом этапе каждый клиент обрабатывает полученное сообщение и вносит соответствующие изменения в свою локальную копию документа (рис. 1). То есть изменения на клиенте происходят не в момент совершения действий пользователем, а только после того как сообщение было обработано сервером, и направлено всем «слушающим» клиентам.

Обработать сервером сообщение клиента!

Рис. 1. Схема передачи сообщений

Для создания простейшего SVG-редактора необходим минимальный набор сообщений следующих видов

[6]:

- Положение курсора пользователя - сообщает текущие координаты курсора;

- Открытие холста (проекта) - сообщение, генерируемое сервером и содержащее текущее наполнение

холста;

- Создание графического элемента - сообщает тип элемента и координаты элемента (координатами элемента могут быть, например, координаты курсора при создании элементов Drag&Drop [7]);

- Удаление графического элемента - сообщает id элемента, который необходимо удалить с холста;

- Изменение графических свойств - сообщает id элемента и новые графические свойства (положение, цвет, граница и т. д. - может генерироваться, например, при перемещении элементов мышью или при изменении свойств в какой-либо панели графических свойств элемента);

Для предоставления пользователям возможности отменять предыдущие действия (но не действия других пользователей), необходимо хранить на клиенте в каком-либо хранилище (глобальная js-переменная/redux/mobx/др. [8]) стек состоящий из совершенных действий пользователей (объектов-экшенов). Каждое действие пользователя (перетаскивание элемента, изменение свойств графического элемента, или его удаление) должно генерировать экшен, содержащий всю информацию, необходимую для перевода холста в новое состояние, а также для возвращения состояния в изначальное (например, старые и новые координаты графического элемента), а также два метода: do и undo, каждый из которых формирует сообщение и отправляет на сервер через веб-сокет, для совершения действия и отката действия соответственно. При совершении пользователем какого-то действия, создается и помещается в стек новый экшен, у которого тут же вызывается метод do, а по нажатию Ctrl+Z из стека экшенов берется верхний и вызывается его метод undo.

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

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

Предлагается следующий алгоритм обработки сообщений. Все текстовые сообщения, генерируемые клиентами, необходимо обрабатывать: в первую очередь сервером для сохранения изменений в базе данных, а также каждым из клиентов, у которых открыт данный проект, для сохранения согласованности локальных копий холста и холста, сохраняемого на сервере. Каждый из видов сообщений должен быть обработан по-своему: какие-то сообщения должны вызывать создание новых сущностей в базе данных, какие-то обновляют данные, некоторые, такие как положения курсоров пользователей, вообще не должны вызывать каких-либо действий на сервере и обрабатываться только на клиенте. Для реализации такого механизма подходит паттерн «цепочка обязанностей» (Chain of Responsibility) [9]: создаем для каждого нового типа экшенов свой класс-обработчик и добавляем его в цепочку обработчиков - при необходимости обработать экшен поочередно из цепочки будут извлекаться экшены до тех пор, пока какой-то из обработчиков не сможет обработать экшен данного типа (UML-диаграмма классов сервиса-обработчика сообщений представлена на рис. 2).

Servioe HanctlcrOiain \ M essageJland 1er

Do{) AddHandlerO HatidleMessageQ

SendQ HandlcMcssagcO v.

OpcnHaiidlcr

HandlcMcsMigcO

AddS hapcHand 1er

HandlcMcssa^cO

С hangcShapcH andlcr

HandlcMcssagcO

DcIctcShapcHand 1er

HandkMcssa^cO

Рис. 2. UML-диаграмма классов сервиса-обработчика сообщений

Аналогичным образом рассмотренный на примере простейшего SVG-редактора механизм для создания интерфейса многопользовательской онлайн-системы может быть применен для любой информационной системы, путем ввода необходимых типов экшенов и их обработчиков (например, при работе с текстом в Системе Электронного документооборота [10], или работе с изображениями и/или схемами корпоративной Информационной Системе).

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

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

1. Четверикова К.А. Разработка адаптивного интерфейса инфокоммуникационной системы предприятия // Молодежная школа-семинар по проблемам управления в технических системах имени А.А. Вавилова, 2023. Т.1. С. 36-40.

2. Некоторые вопросы сбора и обработки данных в информационной системе высшего учебного заведения / А.Н. Молчанов, А.В. Бурмистров, С.С. Гришунов, И.В. Чухраев // Известия Тульского государственного университета. Технические науки. 2016. Вып. 7: в 2 ч. Ч. 1. С. 191-198.

3. Воронцова П.В., Селюк Д.Д., Пухова П.Л. Автоматизация процессов разработки прототипа в Figma // Электронные системы и технологии: сб. мат. 57-й науч. конф. Минск: БГУИР, 2021. С. 323-324.

4. Останин М.Л. Особенности использования векторной SVG графики // Студенческий вестник. 2020. № 20-1 (106). С. 50-51.

5. Сухов К. WebSockets - стандарт современного веба. Часть 2: socket.io - веб-сокеты для всех! // Системный администратор. 2014. № 7-8 (140-141). С. 95-101.

6. Сурин С.А. Оценка интерфейса графических редакторов // Интернаука. 2020. № 19-1 (148). С.76-79.

7. Кизянов А.О. Использование технологии Drag-and-Drop в html5 // Постулат. 2018. №1 (27). С. 10.

8. Абдурайимов Л.Н., Москалева Ю.П., Сейдаметова З.С. Особенности работы mobx со сложными типами данных // Научно-технический вестник Поволжья. 2023. №10. С. 251-254.

9. Державин Д.М. Шаблоны проектирования в современной веб-разработке // Информационно-телекоммуникационные технологии и математическое моделирование высокотехнологичных систем, материалы всероссийской конференции с международным участием. Российский университет дружбы народов, 2021. С. 184192.

10. Иванов А. Проблемы и перспективы СЭД в современной России // Системный администратор. 2020. № 7-8 (212-213). С. 44-47.

Гришин Олег Данилович, студент, oleg. grishin. [email protected], Россия, Калуга, Московский государственный технический университет им. Н.Э. Баумана (Калужский филиал),

Гришунов Степан Сергеевич, старший преподаватель, [email protected], Россия, Калуга, Московский государственный технический университет им. Н.Э. Баумана (Калужский филиал),

Анцева Наталья Витальевна, канд. техн. наук, доцент, [email protected], Россия, Тула, Тульский государственный университет,

Шадский Геннадий Викторович, д-р. техн. наук, профессор, [email protected]. Россия, Тула, Тульский государственный университет

DEVELOPMENT OF A MECHANISM FOR MULTI-USER ONLINE WORK FOR INFORMATION SYSTEM USERS USING

THE EXAMPLE OF A SIMPLE SVG EDITOR

O.D. Grishin, S.S. Grishunov, N.V. Antseva, G.V. Shadsky

The article studies the requirements of modern users for interface information systems. A description is given of the mechanism for multi-providing user experience for users of the information system based on the exchange of the shortest messages between all participants through a central point - server applications - using web sockets. In the proposed mechanism, messages are sent over all open connections, the document id corresponds to the id of the document for which the message was sent; local changes are made by the document modification initiator only after receiving a message from the server. The basis for creating a simple SVG editor is the choice of the type of text types to create, delete, change a shape on the canvas and transfer the user's coordinates for rendering on the canvases of other users, as well as the elementary rules of these texts. A mechanism is provided for maintaining the order of user actions on the client in the stack to provide the ability to cancel completed actions by providing a special Action class that saves the old and new state of the figure and generates forward and reverse messages for each user action. A mechanism for processing messages on the server and locally by clients using the «chain of responsibility» pattern is provided.

Keywords: multi-user, web application, messaging, web sockets, SVG.

Oleg Danilovich Grishin, student, oleg. grishin. 0 7@mail. ru, Russia, Kaluga, Bauman Moscow State Technical University (Kaluga Branch),

Stepan Sergeevich Grishunov, senior lecturer, [email protected], Russia, Kaluga, Bauman Moscow State Technical University (Kaluga Branch),

Antseva Natalia Vitalievna, candidate of technical sciences, docent, [email protected], Russia, Tula, Tula State University,

Gennady Viktorovich Shadsky, doctor of technical sciences, professor, [email protected], Russia, Tula, Tula State University

УДК 004.032.26

DOI: 10.24412/2071-6168-2023-12-457-458

РАСПРЕДЕЛЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ НАГРУЗКИ В СЕРВЕРНОМ КОМПЛЕКСЕ С ПОМОЩЬЮ

ДЕРЕВЬЕВ РЕШЕНИЙ

Е. О. Викулов

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

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

Введение. На сегодняшний день повышение быстродействия высоконагруженных клиент-серверных приложений является актуальной задачей [1-4]. Обычно распределение запросов пользователей выполняется с использованием сервера-балансира [2], который получает запрос и производит выбор подходящего для его выполнения сервера. Следует отметить, что существующие технологии балансировки нагрузки не учитывают состояние аппаратного обеспечения сервера, его загруженность и скорость работы [3, 4], что сказывается на времени обработки запросов пользователей. В статье предлагается производить распределение вычислительной нагрузки на основе данных о состоянии серверов. При поступлении запроса пользователя сервер-балансир оценивает параметры состояния серверов, обрабатывающих запросы пользователей, и принимает решение о выборе сервера. Для выбора сервера предложено использовать деревья решений, которые принимают на вход параметры состояния и выдают решение о выборе сервера.

Задача выбора сервера ставится следующим образом. Необходимо распределить вычислительную нагрузку в серверном комплексе с учетом таких параметров состояния серверов, как расстояние от пользователя до серверной станции, (Ds, км); загруженность жесткого диска (Uhd, %); загруженность оперативной памяти (Uram, %). Введем функцию F(Ds,Uram,Uhd), зависящую от параметров состояния серверов и характеризующую временные затраты на выполнение запросов пользователей. Необходимо минимизировать затраты на обработку запросов, поэтому примем следующий критерий выбора сервера:

Ч п ч п

£ £ a11 F^^U^U^) = Y^Lali tli " min, (1)

i=i i=i _ i=i i=i _

где al1 - признак отправки l-го запроса (1 = 1,q, q - количество запросов), на i-ый сервер (i = 1,п, n - количество серверов) комплекса (а11 = 1, если запрос отправлен; а11 = 0 - если не отправлен); tl1 - время, затраченное i-ым сервером на выполнение l-го запроса.

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