RU2813837C2 - Graphical object management system - Google Patents

Graphical object management system Download PDF

Info

Publication number
RU2813837C2
RU2813837C2 RU2022114106A RU2022114106A RU2813837C2 RU 2813837 C2 RU2813837 C2 RU 2813837C2 RU 2022114106 A RU2022114106 A RU 2022114106A RU 2022114106 A RU2022114106 A RU 2022114106A RU 2813837 C2 RU2813837 C2 RU 2813837C2
Authority
RU
Russia
Prior art keywords
server
client
user
canvas
application
Prior art date
Application number
RU2022114106A
Other languages
Russian (ru)
Other versions
RU2022114106A (en
Inventor
Дмитрий Витальевич Елгешин
Валерий Васильевич Ляшук
Денис Геннадьевич Подлевских
Original Assignee
Общество с ограниченной ответственностью "ИТ офисный сервис"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "ИТ офисный сервис" filed Critical Общество с ограниченной ответственностью "ИТ офисный сервис"
Publication of RU2022114106A publication Critical patent/RU2022114106A/en
Application granted granted Critical
Publication of RU2813837C2 publication Critical patent/RU2813837C2/en

Links

Abstract

FIELD: computer engineering.
SUBSTANCE: invention relates to web application management systems. Technical result is achieved due to configuration of client part containing local canvas Canvas. Local canvas Canvas is configured to load the web browser of a standard html document from the server side containing the client code. Client code contains a command to draw an object on the local canvas Canvas of the client side.
EFFECT: high efficiency and security of data on a server.
6 cl, 4 dwg

Description

Настоящее изобретение относится к вычислительной технике, в частности к системам управления веб-приложениями, предоставляемыми по сети передачи данных, такой как Интернет, и может быть использовано для управления объектами приложений графического интерфейса разработчиков и их взаимодействиями между пользователем и сервером.The present invention relates to computer technology, in particular to systems for managing web applications provided over a data network such as the Internet, and can be used to manage developer graphical interface application objects and their user-server interactions.

Определения, сокращения и аббревиатурыDefinitions, abbreviations and acronyms

Для упрощения и удешевления процессов обработки информации, а также для ее хранения в настоящее время применяется разновидность вычислительной техники - серверы. Пользователь (клиент), желающий получить доступ к серверу, находится в другом месте. Для передачи данных между клиентом и сервером применяется компьютерная сеть. Это может быть как локальная вычислительная сеть предприятия, так и Интернет.To simplify and reduce the cost of information processing, as well as to store it, a type of computer technology is currently used - servers. The user (client) wanting to access the server is located in a different location. A computer network is used to transfer data between the client and server. This can be either a local computer network of an enterprise or the Internet.

В данном описании используются следующие определения.The following definitions are used in this description.

Передача данных (обмен данными, цифровая передача, цифровая связь) - физический перенос данных (цифрового битового потока) в виде сигналов от точки к точке или от точки к нескольким точкам, как правило, для последующей обработки средствами вычислительной техники.Data transmission (data exchange, digital transmission, digital communication) is the physical transfer of data (digital bit stream) in the form of signals from point to point or from point to several points, usually for subsequent processing by computer technology.

Сеть передачи данных - совокупность трех и более оконечных устройств (терминалов) связи, объединенных каналами передачи данных и коммутирующими устройствами (узлами сети), обеспечивающими обмен сообщениями между всеми оконечными устройствами.Data transmission network - a set of three or more terminal devices (terminals) of communication, united by data transmission channels and switching devices (network nodes) that ensure the exchange of messages between all terminal devices.

Компьютерная сеть, вычислительная сеть - система, обеспечивающая обмен данными между вычислительными устройствами - компьютерами, серверами, маршрутизаторами и другим оборудованием или программным обеспечением. Для передачи информации могут быть использованы различные среды передачи данных.Computer network, computer network - a system that provides data exchange between computing devices - computers, servers, routers and other equipment or software. Various data transmission media can be used to transmit information.

Локальная вычислительная сеть (ЛВС) - компьютерная сеть, покрывающая обычно относительно небольшую территорию или небольшую группу зданий (дом, офис, фирму, институт).Local area network (LAN) is a computer network that usually covers a relatively small area or a small group of buildings (home, office, company, institute).

Интернет - информационно-коммуникационная сеть и всемирная система объединенных компьютерных сетей для хранения и передачи информации.The Internet is an information and communication network and a worldwide system of interconnected computer networks for storing and transmitting information.

Сетевая модель OSI (The Open Systems Interconnection model) - сетевая модель стека (магазина) сетевых протоколов OSI/ISO. Посредством данной модели различные сетевые устройства могут взаимодействовать друг с другом. Модель определяет различные уровни взаимодействия систем. Каждый уровень выполняет определенные функции при таком взаимодействии.The OSI network model (The Open Systems Interconnection model) is a network model of the OSI/ISO network protocol stack (store). Through this model, various network devices can communicate with each other. The model defines different levels of interaction between systems. Each level performs specific functions in such interaction.

WebSocket - протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.WebSocket is a communication protocol over a TCP connection designed to exchange messages between a browser and a web server in real time.

TCP-соединения (Transmission Control Protocol) - один из основных протоколов передачи данных интернета. Предназначен для управления передачей данных интернета. Пакеты в TCP называются сегментами. В стеке протоколов TCP/IP выполняет функции транспортного уровня модели OSI.TCP connections (Transmission Control Protocol) are one of the main Internet data transfer protocols. Designed to manage Internet data transfer. Packets in TCP are called segments. In the TCP/IP protocol stack, it performs the functions of the transport layer of the OSI model.

Вычислительная техника - техника, используемая для вычислений. Вычислительная техника является важнейшим компонентом процесса вычислений и обработки данных. Включает в себя аппаратное и программное обеспечение, также используется для управления и обработки информации.Computing is technology used for calculations. Computer technology is a critical component of the computing and data processing process. Includes hardware and software, also used for managing and processing information.

API (Application Programming Interface - «программный интерфейс приложения») - описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой.API (Application Programming Interface) is a description of the ways (a set of classes, procedures, functions, structures or constants) in which one computer program can interact with another program.

Графический интерфейс пользователя (GUI - graphical user interface) - система средств для взаимодействия пользователя с электронными устройствами, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана. Включает в себя интерактивные элементы: менеджер окон, кнопки, поля ввода, раскрывающиеся списки и прочие, которые позволяют пользователю взаимодействовать с помощью устройств ввода (клавиатура, мышь и пр.) с программой (приложением, потому что программа использует функции ОС, а не реализует эти элементы сама)Graphical user interface (GUI - graphical user interface) is a system of tools for user interaction with electronic devices, based on the presentation of all system objects and functions available to the user in the form of graphical screen components. Includes interactive elements: window manager, buttons, input fields, drop-down lists and others that allow the user to interact using input devices (keyboard, mouse, etc.) with the program (application, because the program uses OS functions rather than implementing these elements itself)

Пользовательский интерфейс (UI - user interface) - интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы.User interface (UI - user interface) is an interface that ensures the transfer of information between a human user and the hardware and software components of a computer system.

Клиент - или клиентское звено, клиентская часть - это терминал пользователя, в большинстве случаев удаленный, подключенный к серверу.The client - or the client link, the client part - is the user's terminal, in most cases remote, connected to the server.

Пользователь - лицо или организация, которое использует действующую систему для выполнения конкретной функции.A user is a person or organization that uses an operating system to perform a specific function.

Сервер - или серверная часть - устройство вычислительной техники или комплекс устройств, предназначенных для обработки и хранения информации, выполнения команд, поступающих с нескольких персональных устройств вычислительной техники, расположенных удаленно.Server - or server part - a computer device or a set of devices designed for processing and storing information, executing commands coming from several personal computer devices located remotely.

Приложение - прикладная программа, предназначенная для выполнения определенных задач и рассчитанная на взаимодействие с пользователем. В большинстве операционных систем (ОС) прикладные программы не могут обращаться к ресурсам компьютера напрямую, а взаимодействуют с оборудованием и другими программами посредством ОС.Application - an application program designed to perform specific tasks and designed to interact with the user. In most operating systems (OS), application programs cannot access computer resources directly, but interact with hardware and other programs through the OS.

Холст (Canvas) - элемент стандарта HTML5, предназначенный для создания растрового двухмерного изображения: контуры и заливка цветом контура, прямые линии, точки, кривые Безье, вывод текста (контуры символов в современных шрифтах описываются кривыми Безье) при помощи скриптовCanvas is an element of the HTML5 standard intended for creating a raster two-dimensional image: contours and filling the contour with color, straight lines, points, Bezier curves, text output (character contours in modern fonts are described by Bezier curves) using scripts

Событие - действие, выполненное пользователем в приложении.An event is an action performed by a user in an application.

Критическое событие - событие, которое должно быть немедленно передано серверу с целью синхронизации состояний клиента и сервера (в отличие от события, которое может быть отправлено с задержкой по времени).A critical event is an event that must be sent immediately to the server in order to synchronize the states of the client and server (as opposed to an event that may be sent with a time delay).

Уникальное событие - событие которое в итоге отправляется к серверу.A unique event is an event that is ultimately sent to the server.

Накопленные события - события на стороне клиента, которые хранятся в очереди событий до тех пор, пока не происходит критическое событие. Затем, когда происходит критическое событие, клиент пересылает всю очередь событий, которые произошли между предыдущим критическим событием и текущим критическим событиемCumulative events are client-side events that are stored in the event queue until a critical event occurs. Then, when a critical event occurs, the client forwards the entire queue of events that occurred between the previous critical event and the current critical event

Элемент управления - отображаемый компонент приложения (например, кнопка, поле и т.п.). Каждый элемент управления может выполнять определенные операции (например, получение данных, вводимых с клавиатуры, нажатие и т.д.A control is a displayed application component (for example, a button, a field, etc.). Each control can perform specific operations (for example, receiving keyboard input, pressing, etc.

Окно главной формы: первое окно, которое видит пользователь, когда получает доступ к URL, который обрабатывается по данной технологии. Это окно эквивалентно главному окну, которое открывается при запуске настольного приложения .Main Form Window: The first window that the user sees when accessing a URL that is being processed using this technology. This window is equivalent to the main window that opens when you launch a desktop application.

Контейнер: окно, которое включает элементы управленияContainer: a window that contains controls

Команды обновления: набор элементов XML (Extensible Markup Language - расширяемый язык разметки), которые исполняет браузер, чтобы синхронизироваться с деревом объектов приложения и контрольным состоянием сервера.Update commands: A set of XML (Extensible Markup Language) elements that the browser executes to keep itself in sync with the application's object tree and server control state.

Структура окна: набор элементов XML, описывающих структуру текущего окна приложения. Структура окна используется для обновления состояния клиентского звена (прорисованный в данный момент UI) в соответствии с состоянием серверного звена (текущее состояние UI на сервере).Window structure: A set of XML elements that describe the structure of the current application window. The window structure is used to update the state of the client link (the currently drawn UI) in accordance with the state of the server link (the current state of the UI on the server).

Данные на основе XML: данные XML, которые используются клиентом для хранения состояния интерфейса приложения . Состояние интерфейса приложения содержит свойства каждого элемента управления UI и включает всю информацию, необходимую клиенту для синхронизации состояния своих элементов управления в соответствии с состоянием сервера, например цвет или размер элемента управления , отображаемый им текст и т.д. Это обеспечивает клиентское звено возможностью переформировывать любую часть UI посредством использования XSLT (преобразование шаблонов) для данных на основе XML.XML-based data: XML data that is used by the client to store application interface state. The application's interface state contains the properties of each UI control and includes all the information the client needs to synchronize the state of its controls with the server's state, such as the control's color or size, the text it displays, and so on. This provides the client end with the ability to redesign any part of the UI by using XSLT (template transformation) on XML-based data.

В настоящее время применяются две основных системы, обеспечивающие доступ клиента к ресурсам сервера: WEB и RDP.Currently, two main systems are used to provide client access to server resources: WEB and RDP.

WEB - доступ к веб-серверу посредством технологии гипертекста. Гипертекстовые документы, размещаемые либо Всемирной паутине, либо на сервере предприятия в закрытой сети (с ограниченным внешним доступом или без него), называются веб-страницами. Несколько веб-страниц, объединенных общей темой или дизайном, а также связанных между собой ссылками и обычно находящихся на одном и том же веб-сервере, называются веб-сайтом. Для загрузки и просмотра веб-страниц используются специальные программы - браузеры.WEB - access to a web server via hypertext technology. Hypertext documents hosted either on the World Wide Web or on an enterprise server in a closed network (with or without limited external access) are called web pages. Multiple web pages that share a common theme or design, and are linked by links, usually residing on the same web server, are called a website. To download and view web pages, special programs are used - browsers.

RDP (Remote Desktop Protocol - протокол удаленного рабочего стола) - протокол прикладного уровня, использующийся для обеспечения удаленной работы пользователя с сервером, на котором запущен сервис терминальных подключений. Клиенты существуют практически для всех версий Windows, Linux, FreeBSD, Mac OS X, iOS, Android, Symbian.RDP ( Remote Desktop Protocol ) is an application-level protocol used to ensure remote user work with a server running a terminal connection service. Clients exist for almost all versions of Windows, Linux, FreeBSD, Mac OS X, iOS, Android, Symbian.

DLP-система - программное обеспечение, предназначенное для защиты компании от утечек информации. От англ. Data Loss Prevention (предотвращение потери данных) или Data Leakage Prevention (предотвращение утечки данных). Чаще всего для продуктов этого класса используется именно это сокращение.DLP system is software designed to protect a company from information leaks. From English Data Loss Prevention or Data Leakage Prevention. Most often, this abbreviation is used for products of this class.

Уровень техникиState of the art

Известно техническое решение по патенту RU №2420797 С2, G06F 15/16 (2006.01), G06F 9/44 (2006.01), опубл. 10.06.2011, заявка PCT: US 2006/017568 (05.05.2006), по которому ПРЕДОСТАВЛЕНИЕ ВОЗМОЖНОСТИ ПРИМЕНЕНИЯ КОМАНДЫ ИЗМЕНЕНИЯ ГРАФИЧЕСКОГО ОКНА К ДИСТАНЦИОННО СГЕНЕРИРОВАННОМУ ГРАФИЧЕСКОМУ ОКНУ осуществляет модификацию дистанционно сгенерированного графического окна приложения, при которой генерируют графическое окно приложения на первой машине. Далее отправляют представление графического окна приложения на вторую машину. Затем выявляют пользовательскую команду от второй машины на изменение представления. После чего передают пользовательскую команду от второй машины на первую машину. При этом определяют, находится ли графическое окно приложения в режиме отображения всего содержимого окна или контурном режиме. В режиме отображения всего содержимого окна периодически обновляют все графическое окно приложения во время модификации. В контурном режиме периодически обновляют линию, указывающую новую позицию и размер графического окна приложения во время модификации.A technical solution is known according to patent RU No. 2420797 C2, G06F 15/16 (2006.01), G06F 9/44 (2006.01), publ . 06/10/2011, PCT application: US 2006/017568 (05/05/2006), according to which PROVIDING THE POSSIBILITY OF APPLYING THE GRAPHICS WINDOW CHANGE COMMAND TO A REMOTELY GENERATED GRAPHICS WINDOW performs a modification of a remotely generated graphical application window, in which a graphical application window is generated on first car. Next, a representation of the application's graphical window is sent to the second machine. A user command from the second machine to change the view is then detected. Then the user command is transmitted from the second machine to the first machine. In this case, it is determined whether the application's graphical window is in the mode of displaying the entire contents of the window or the outline mode. In display-all-content mode, windows periodically update the entire graphical application window during modification. Outline mode periodically updates a line indicating the new position and size of the application's graphics window during modification.

Известное техническое решение имеет недостатки.The known technical solution has disadvantages.

Во-первых, патент RU 2420797 C2 описывает часть функционала серверной линейки продуктов компании Microsoft операционной системы Windows, поэтому не может использоваться в виде отдельной программы на ОС семейства Linux. Наша разработка предполагает использование на любых ОС поддерживающих работу современных браузеров.Firstly, patent RU 2420797 C2 describes part of the functionality of Microsoft's server product line of the Windows operating system, and therefore cannot be used as a separate program on Linux OS. Our development assumes use on any OS that supports modern browsers.

Преимущество заявляемого технического решения: заявляемая система будет работать под любой ОС, под которую разработан современный браузер.The advantage of the proposed technical solution: the proposed system will work under any OS for which a modern browser is developed.

Во-вторых, аналог RU 2420797 C2 формирует растровое изображение окон на сервере, при помощи функций графического ядра ОС Windows. Заявляемая система не требует наличия графического ядра ОС и не формирует растровое изображение окон на сервере, серверная часть создает растровое изображение окна на клиенте вызовом команд графического интерфейса клиента. Что дает следующие преимущества:Secondly, the analogue of RU 2420797 C2 generates a raster image of windows on the server using the functions of the graphics core of the Windows OS. The inventive system does not require the presence of a graphics core of the OS and does not generate a bitmap of windows on the server; the server part creates a bitmap of a window on the client by calling commands from the client's graphical interface. Which gives the following advantages:

- существенно снижается объем используемой памяти сервера, потому что не требуется выделение памяти под хранение растрового изображения окна.- the amount of server memory used is significantly reduced, because memory allocation for storing the window bitmap image is not required.

- снижается потребление вычислительной мощности процессора сервера, потому что команда рисования линии выполняется на клиенте, сервер не ожидает ответа от клиента результата выполнения этой функции и отправляет следующую в очереди команду.- the consumption of computing power of the server processor is reduced, because the line drawing command is executed on the client, the server does not wait for a response from the client with the result of executing this function and sends the next command in the queue.

В-третьих, в патенте RU 2420797 C2 отсутствует возможность передачи окон между сессиями пользователей. В заявляемой системе окна, или их части, могут передаваться или совместно использоваться клиентами. При этом реализуется преимущество: расширяется функционал работы с приложениями, т.к. имеется возможность совместной работы с приложением или его частью, ограниченному или неограниченному кругу пользователей, а так же его демонстрацией.Thirdly, the patent RU 2420797 C2 does not include the ability to transfer windows between user sessions. In the inventive system, windows, or parts thereof, can be transferred or shared by clients. At the same time, an advantage is realized: the functionality of working with applications is expanded, because It is possible to collaborate with the application or part of it, with a limited or unlimited number of users, as well as to demonstrate it.

В-четвертых, в патенте RU 2420797 C2 предполагается использование специальной программы-клиента устанавливаемой на клиентскую ОС. В заявляемой системе в качестве клиента используется веб-браузер, поддерживающий технологию HTML5. Что еще раз подтверждает преимущество заявляемой системы, которая будет работать под любой ОС, под которую разработан современный браузер.Fourthly, the patent RU 2420797 C2 assumes the use of a special client program installed on the client OS. The proposed system uses a web browser supporting HTML5 technology as a client. Which once again confirms the advantage of the proposed system, which will work under any OS for which a modern browser is developed.

Рассмотрим известные системы, предназначенные для ввода/вывода и доступа к информации, начиная от персонального компьютера.Let's consider well-known systems designed for input/output and access to information, starting from a personal computer.

Один случай: Система работы однопользовательского приложения на персональном компьютере - Архитектура персонального вычислительного устройства - система взаимодействия (управления) уровней персонального вычислительного устройства.One case: The system of operation of a single-user application on a personal computer - The architecture of a personal computing device is a system for interaction (control) of the levels of a personal computing device.

Это система с возможностью односторонней связи (запрос - ответ) от устройств ввода на уровень приложений и затем к интерфейсу пользователя, с последующим обращением на холст (Canvas).This is a system with the possibility of one-way communication (request - response) from input devices to the application level and then to the user interface, with subsequent access to the canvas (Canvas).

Помимо этой существуют следующие системы клиент-серверных приложений.In addition to this, there are the following client-server application systems.

Например, другой случай: архитектура работы WEB - система взаимодействия пользователя и сервера с использованием WEB-браузера. Связь однонаправленная - запрос только от пользователя, ответ от сервера.For example, another case: WEB architecture - a system of interaction between a user and a server using a WEB browser. Communication is unidirectional - request only from the user, response from the server.

При этом пользователь через устройства ввода обращается на WEB-браузер пользовательского устройства, от которого идет запрос на интерфейс пользователя, а затем на холст, при этом WEB-браузер через свой сетевой интерфейс посылает запрос на сервер через сетевой интерфейс сервера, запрос обрабатывается на уровне приложений сервера и отправляет ответ через сетевой интерфейс пользователю.In this case, the user, through input devices, contacts the WEB browser of the user device, from which a request is made to the user interface, and then to the canvas, while the WEB browser, through its network interface, sends a request to the server through the server’s network interface, the request is processed at the application level server and sends a response via the network interface to the user.

Отличия в системах разработки веб-приложений и обычных приложений в том, что для написания веб-приложения необходимо установить и настроить веб-сервер, использовать язык HTML, или язык программирования JavaScript, или любой другой язык для написания модуля, который интегрируется с веб-сервером, знать форматы передачи данных между клиентом и сервером.The differences in the development systems for web applications and regular applications are that to write a web application you need to install and configure a web server, use the HTML language, or the JavaScript programming language, or any other language to write a module that integrates with the web server , know the formats of data transfer between client and server.

Недостатки известных широко используемых систем:Disadvantages of known widely used systems:

- односторонняя связь клиент-сервер.- one-way client-server communication.

- использование однопоточного языка JavaScript.- use of single-threaded JavaScript language.

- использование разных языков программирования для клиентской и серверной части.- use of different programming languages for the client and server parts.

- несовпадения отображения одной и той же страницы разными браузерами.- discrepancies in the display of the same page by different browsers.

- запутанная логика взаимодействия между клиентом и сервером (обычно разные команды разработчиков frontend и backend).- confusing logic of interaction between client and server (usually different teams of frontend and backend developers).

- использование стороннего ПО (иногда без документации и из неизвестного источника).- use of third-party software (sometimes without documentation and from an unknown source).

- проблемы с безопасностью и отказоустойчивостью (стороннее ПО невозможно изменить, даже если известна ошибка).- problems with security and fault tolerance (third-party software cannot be changed, even if the error is known).

- сложность отладки приложения.- difficulty debugging the application.

Еще один пример системы взаимодействия пользователя и сервера.Another example of a user-server interaction system.

Архитектура работы RDP от MS, при которой построена система с возможностью двунаправленной связи (запросы и ответы в обе стороны). События с устройств ввода принимаются браузером, но с возможностью трансляции и обработки на сервере. Команды отрисовки объектов выполнены на сервере, что влечет за собой расход ресурсов.The RDP architecture from MS, in which a system is built with the possibility of bidirectional communication (requests and responses in both directions). Events from input devices are received by the browser, but with the ability to be broadcast and processed on the server. Object rendering commands are executed on the server, which entails resource consumption.

Система содержит устройства пользователя и сервер, с возможностью обращения пользователя на сервер через устройства ввода и RDP-клиент через сетевой интерфейс пользователя и сервера последовательно на уровень приложений сервера, который через интерфейс пользователя формирует холст пользователя, с которого картинка (изображение) передается на локальный холст пользователя.The system contains user devices and a server, with the ability for the user to contact the server through input devices and an RDP client through the network interface of the user and server sequentially to the server application level, which, through the user interface, forms a user canvas from which the picture (image) is transferred to the local canvas user.

Известная система имеет ряд преимуществ перед WEB, таких как:The well-known system has a number of advantages over WEB, such as:

1. Возможность двунаправленной связи (запросы и ответы в обе стороны).1. Possibility of bidirectional communication (requests and responses in both directions).

2. События с устройств ввода приняты клиентом, но с возможностью трансляции и обработки на сервере.2. Events from input devices are received by the client, but with the ability to be translated and processed on the server.

В то же время присутствуют существенные недостатки:At the same time, there are significant disadvantages:

1. С сервера на клиента передается не описание объекта и действия с ним, а картинки (изображения).1. What is transferred from the server to the client is not a description of the object and actions with it, but pictures (images).

2. Команды отрисовки объектов выполнены на сервере в GUI, что влечет за собой расход ресурсов.2. Commands for drawing objects are executed on the server in the GUI, which entails the consumption of resources.

3. Использован не стандартный браузер, а приложение RDP-клиент.3. Not a standard browser was used, but an RDP client application.

Клиенты (клиентская часть) могут быть:Clients (client part) can be:

1. Написаны разработчиком под популярные операционные системы и таким образом избежать ограничений браузера. Сложность очевидна - необходимо разрабатывать приложение-клиент под все популярные операционные системы, создавать свой центр обновлений.1. Written by the developer for popular operating systems and thus avoid browser limitations. The complexity is obvious - you need to develop a client application for all popular operating systems and create your own update center.

2. Можно использовать универсальные клиенты для технологии доступа к рабочим столам, но тогда сервер должен содержать графическую подсистему, что даст высокую нагрузку на серверную операционную систему: приложение будет использовать графическую подсистему ОС для формирования растрового изображения и передаче клиенту.2. You can use universal clients for desktop access technology, but then the server must contain a graphics subsystem, which will put a high load on the server operating system: the application will use the OS graphics subsystem to generate a bitmap and transfer it to the client.

3. Можно использовать веб-браузер в качестве универсального клиента. Но это не всегда возможно в силу ограничений, изложенных в начале.3. You can use your web browser as a universal client. But this is not always possible due to the limitations stated at the beginning.

Наиболее близким аналогом является техническое решение по патенту US 2012/0151372 A1, G06F 3/01, от 14.06.2012 г., METHODS AND SYSTEMS FOR FACILITATINGA REMOTE DESKTOP SESSION UTILIZINGA REMOTE DESKTOP CLIENT COMMON INTERFACE по которому в описании приведены «примеры методов, систем, устройств и машиночитаемых носителей для облегчения доступа и управления удаленным рабочим столом удаленной машины с помощью веб-браузера на клиентском устройстве через сервер транскодирования без установки проприетарных подключаемых модулей или протоколов на клиентское устройство. Сервер транскодирования может преобразовывать пользовательские запросы ввода из веб-браузера во входные вызовы, совместимые с протоколом отображения удаленного рабочего стола. Сервер транскодирования может получать команды рисования удаленного рабочего стола с удаленного компьютера и преобразовывать команды рисования удаленного рабочего стола в обновления рисования веб-браузера, совместимые с веб-браузером. Сервер транскодирования может связываться с веб-браузером через HTTP и связываться с удаленным компьютером через протокол отображения удаленного рабочего стола. Веб-браузер может быть браузером HTML5. Сервер транскодирования может отправлять координаты чертежа в веб-браузер через HTTP-заголовок и может использовать длительный опрос.The closest analogue is the technical solution according to the patent US 2012/0151372 A1, G06F 3/01, dated 06/14/2012, METHODS AND SYSTEMS FOR FACILITATINGA REMOTE DESKTOP SESSION UTILIZINGA REMOTE DESKTOP CLIENT COMMON INTERFACE for which the description provides “examples of methods, systems , devices and machine-readable media to facilitate access and control of the remote desktop of a remote machine using a web browser on the client device through a transcoding server without installing proprietary plug-ins or protocols on the client device. The transcoding server can convert user input requests from a web browser into input calls compatible with the Remote Desktop Display Protocol. The transcoding server can receive remote desktop drawing commands from the remote computer and convert the remote desktop drawing commands into web browser drawing updates compatible with the web browser. The transcoding server can communicate with a web browser via HTTP and communicate with a remote computer via the Remote Desktop Display Protocol. The web browser may be an HTML5 browser. The transcoding server can send drawing coordinates to the web browser via an HTTP header and can use long polling.

Общими признаками аналога и заявляемого технического решения является наличие серверной и клиентской части, конфигурация серверной части с возможностью предоставления API выполняемым на сервере программам сторонних производителей, с возможностью реализации стандартных сетевых протоколов HTTPS WebSocket Secure для подключения браузеров клиентов.The common features of the analog and the proposed technical solution are the presence of a server and client parts, the configuration of the server part with the ability to provide an API to third-party programs running on the server, with the ability to implement standard HTTPS WebSocket Secure network protocols for connecting client browsers.

Однако, существуют конструктивные различия в содержании серверной и клиентской части сравниваемых технических решений. Заявляемое изобретение отличается от аналога патента № US 2012/0151372 A1 местом расположения Canvas - в заявляемой системе он расположен на клиентской части. В то время как в известных графических средах, в том числе в системе аналога (патента № US 2012/0151372 A1) - на сервере. Этот существенный признак влечет за собой как следствие, различие в возможностях формирования и передачи Клиенту растрового изображения. Недостатком аналога является высокая вычислительная нагрузка, которая целиком ложится на Сервер, а на Клиента передается только результат, в результате чего у аналога имеется недостаточная производительность взаимодействия пользователя и сервера, недостаточная защищенность данных на сервере, высокое расходование ресурсов пользовательского устройства.However, there are design differences in the content of the server and client parts of the compared technical solutions. The claimed invention differs from the analogue of patent No. US 2012/0151372 A1 in the location of Canvas - in the claimed system it is located on the client side. While in well-known graphical environments, including the analogue system (patent No. US 2012/0151372 A1) - on the server. This essential feature entails, as a consequence, a difference in the possibilities of generating and transmitting a raster image to the Client. The disadvantage of the analogue is the high computational load, which falls entirely on the Server, and only the result is transferred to the Client, as a result of which the analogue has insufficient performance of interaction between the user and the server, insufficient data security on the server, and high consumption of user device resources.

Указанные выше недостатки устраняет заявляемое техническое решение, в результате которого вычислительная нагрузка по формированию финального изображения оптимально распределяется между Клиентом и Сервером, позволяя повысить производительность взаимодействия пользователя и сервера, повысить защищенность данных на сервере, снизить расходования ресурсов пользовательского устройства.The above disadvantages are eliminated by the proposed technical solution, as a result of which the computational load for generating the final image is optimally distributed between the Client and the Server, making it possible to increase the performance of interaction between the user and the server, increase the security of data on the server, and reduce the consumption of user device resources.

При этом разгружаем сервер от функций рисования, т.к. Canvas вынесен на клиента, что экономит ресурсы процессора и память выделяемую для виртуальных буферов. А также ускоряем работу приложений - например, приложение, вызвав функцию клиента по отрисовке текста, не дожидается окончания выполнения (контроль доставки команды от сервера на клиента происходит на сетевом уровне)At the same time, we unload the server from drawing functions, because Canvas is brought to the client, which saves processor resources and memory allocated for virtual buffers. We also speed up the operation of applications - for example, an application, having called a client function to draw text, does not wait for execution to complete (control of command delivery from the server to the client occurs at the network level)

Для решения поставленных задач предлагается преобразовать систему предоставления и обмена информацией, на прикладном (верхнем) уровне модели OSI, передаваемой через любую компьютерную сеть (ЛВС, Интернет).To solve these problems, it is proposed to transform the system for providing and exchanging information at the application (upper) level of the OSI model, transmitted through any computer network (LAN, Internet).

Предлагаемое решение заключается в частичной передаче функций графической системы на сторону сервера (конкретно - GUI/UI). Для этого будем использовать объект Canvas (холст) для захвата событий от устройств ввода.The proposed solution is to partially transfer the functions of the graphics system to the server side (specifically, GUI/UI). To do this, we will use the Canvas object to capture events from input devices.

Для решения односторонней направленности инициирования запроса мы будем использовать новый транспортный протокол WebSocket. Оба объекта описаны в стандарте HTML5, поддерживается всеми современными браузерами.To solve the one-way direction of request initiation, we will use the new WebSocket transport protocol. Both objects are described in the HTML5 standard and are supported by all modern browsers.

Весь обмен данными между клиентом и сервером инкапсулируется в протокол WebSocket и скрыт как от самого пользователя, так и от прикладного программиста, в результате чего программист реализует свое приложение в созданной виртуальной среде, подобной однопользовательскому персональному компьютеру, не заботясь и не озадачиваясь проблемами отображения информации на клиенте. Эти функции берет на себя заявляемая система управления графическими объектами.All data exchange between the client and the server is encapsulated in the WebSocket protocol and is hidden from both the user and the application programmer, as a result of which the programmer implements his application in a created virtual environment similar to a single-user personal computer, without worrying or being puzzled by the problems of displaying information on client. These functions are performed by the proposed graphic object management system.

Предлагаемая гибридная архитектура - это система с возможностью двунаправленной связи (запросы и ответы в обе стороны), при которой события с устройств ввода приняты браузером, но с возможностью трансляции и обработки на сервере; команды отрисовки объектов выполнены на клиенте, что дает экономию ресурсов сервера. При этом контроль доставки команды с сервера осуществлен сетевым протоколом, контроля со стороны приложения не требуется.The proposed hybrid architecture is a system with the possibility of bidirectional communication (requests and responses in both directions), in which events from input devices are received by the browser, but with the ability to be translated and processed on the server; commands for drawing objects are executed on the client, which saves server resources. In this case, control of command delivery from the server is carried out by the network protocol; control from the application is not required.

Система содержит устройства пользователя, сервер, сетевой интерфейс, включает в себя устройства ввода пользователя, Клиент, локальный холст (Canvas), а также уровень приложений сервера и интерфейс пользователя GUI, расположенный на сервере, характеризуется возможностью устройств ввода пользователя осуществлять трансляцию данных с устройств ввода на уровень приложений сервера, а интерфейс пользователя GUI на сервере возможностью передачи команды на отрисовку объекта на локальный холст (Canvas) пользователя.The system contains user devices, a server, a network interface, includes user input devices, a Client, a local canvas (Canvas), as well as a server application layer and a GUI user interface located on the server, characterized by the ability of user input devices to broadcast data from input devices to the server application level, and the GUI user interface on the server with the ability to send a command to draw an object to the user’s local canvas (Canvas).

Пользователь обращается через устройства ввода и Клиента последовательно через сетевой интерфейс пользователя и сервера на уровень приложений сервера, который через интерфейс пользователя GUI посылает команду на отрисовку объекта непосредственно на локальный холст пользователя (Canvas). При этом устройства ввода пользователя имеют возможность обращения на уровень приложений сервера как напрямую, так и через сетевой интерфейс, а команда на отрисовку объекта направлена как через сетевой интерфейс, так и непосредственно на локальный холст пользователя (Canvas).The user accesses through input devices and the Client sequentially through the network interface of the user and server to the server application layer, which, through the GUI user interface, sends a command to draw the object directly to the user's local canvas (Canvas). In this case, user input devices have the ability to access the server application level both directly and through the network interface, and the command to draw an object is sent both through the network interface and directly to the user’s local canvas (Canvas).

Так же, как и в варианте системы RDP, имеем преимущества по сравнению с WEB:Just like in the RDP system version, we have advantages compared to WEB:

- связь двунаправленная (запросы и ответы в обе стороны).- bidirectional communication (requests and responses in both directions).

- события с устройств ввода приняты браузером, но с возможностью трансляции и обработки на сервере.- events from input devices are accepted by the browser, but with the ability to be broadcast and processed on the server.

Однако присутствуют и существенные отличия:However, there are also significant differences:

- команды отрисовки объектов выполнены на клиенте, что дает экономию ресурсов сервера.- commands for drawing objects are executed on the client, which saves server resources.

- контроль доставки команды с сервера осуществлен сетевым протоколом, контроля со стороны приложения не требуется.- control of command delivery from the server is carried out by the network protocol; control from the application is not required.

Реализация предложенной гибридной архитектуры возможна через создание системы, содержащей программный интерфейс API с возможностью управления приложениями разработчиков и их взаимодействиями.The implementation of the proposed hybrid architecture is possible through the creation of a system containing an API program interface with the ability to manage developer applications and their interactions.

Система решает следующие основные задачи:The system solves the following main tasks:

1. Все приложения выполнены и взаимодействуют на сервере.1. All applications are executed and interact on the server.

2. На однопоточном клиенте отображен вывод от параллельных потоков на сервере (многопоточный вывод информации).2. The single-threaded client displays output from parallel threads on the server (multi-threaded output).

3. Возможность двухстороннего обмена данными между клиентом и сервером.3. Possibility of two-way data exchange between client and server.

4. Масштабируемость выходных данных на клиенте.4. Scalability of output data on the client.

5. Защищенность данных от доступа из вне (со стороны клиента).5. Security of data from access from outside (from the client’s side).

Система состоит из двух частей:The system consists of two parts:

1) Серверная часть, с возможностью предоставления API выполняемым на сервере программам сторонних производителей, а также реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов.1) Server part, with the ability to provide an API to third-party programs running on the server, as well as implement standard HTTPS and WebSocket Secure network protocols for connecting client browsers.

2) Клиентская часть, загруженная веб браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код написанный на языке JavaScript.2) The client part, loaded by the web browser from the server part in the form of a standard HTML document containing client code written in JavaScript.

Преимущества от использования заявляемой системы:Advantages of using the proposed system:

1. Перестаем зависеть от реализации GUI в браузерах (проблемы кроссбраузерности.)1. We stop depending on the GUI implementation in browsers (cross-browser compatibility problems.)

2. Код становится универсальным для любого приложения, потому что реализует только графические примитивы (Canvas) и протокол обмена с сервером поверх WebSocket.2. The code becomes universal for any application, because it implements only graphic primitives (Canvas) and an exchange protocol with the server over WebSocket.

3. Синхронизация доступа к общим объектам на клиенте не нужна, она происходит только на сервере что значительно повышает быстродействие приложений (время на запрос блокировки серверу по сети и ответ сервера на порядки дольше чем внутри ОС сервера, а также не возникает проблемы «зависающих» блокировок при нештатном отключении клиента).3. Synchronization of access to shared objects on the client is not needed, it occurs only on the server, which significantly increases the performance of applications (the time to request a lock to the server over the network and the server response is orders of magnitude longer than inside the server OS, and there is no problem of “hanging” locks in case of abnormal client disconnection).

4. За счет пункта 2 повышается защита от несанкционированного копирования не только кода приложения, но и форм и компонентов приложения (формы, кнопки, поля ввода создаются только на сервере, на клиент передается только последовательность базовых функций отрисовки, от которых не требуется ответных данных).4. Due to point 2, protection against unauthorized copying is increased not only of the application code, but also of application forms and components (forms, buttons, input fields are created only on the server, only a sequence of basic rendering functions is transferred to the client, from which no response data is required) .

5. Значительно повышаем сетевую безопасность за счет того, что от клиента мы получаем только данные ввода пользователя (движения мыши, нажатия клавиатуры и тачпада и пр. устройств ввода) - данных мало, поэтому контроль реализовать проще по сравнению с программными интерфейсами где используются десятки методов и свойств для множества объектов.5. We significantly increase network security due to the fact that we receive from the client only user input data (mouse movements, keyboard and touchpad presses, etc. input devices) - there is little data, so control is easier to implement compared to software interfaces where dozens of methods are used and properties for many objects.

6. За счет очень быстрой синхронизации мы получаем возможность расширить функционал веб-приложений: создать полноценный диспетчер окон с возможностью рисования из N потоков в N окон, а также перенаправлять ввод от N пользователей в одно окно, как в обычной ОС.6. Due to very fast synchronization, we are able to expand the functionality of web applications: create a full-fledged window manager with the ability to draw from N threads in N windows, and also redirect input from N users to one window, as in a regular OS.

7. Можно передавать приложения вместе с окнами от пользователя к пользователю. К примеру открыв на своем рабочем столе приложение «блокнот» и записав туда текст можно передать его как приложение другому пользователю, не сохраняя файл и не закрывая приложение.7. You can transfer applications along with windows from user to user. For example, by opening the Notepad application on your desktop and writing text there, you can transfer it as an application to another user without saving the file or closing the application.

8. Можно совместно использовать одно окно для совместной работы в интерактивном режиме или только для показа, с неограниченным количеством пользователей.8. You can share one window for interactive or display-only collaboration with an unlimited number of users.

9. Для каждого приложения нет необходимости открывать новую страницу в браузере, а работать как с обычным рабочим столом.9. For each application there is no need to open a new page in the browser, but work as with a regular desktop.

10. Можно реализовать «растянутый» рабочий стол на несколько мониторов, которые не обязательно подключать к одному компьютеру - синхронизацию и позиционирование обеспечит сервер.10. You can implement a “stretched” desktop across several monitors, which do not have to be connected to one computer - synchronization and positioning will be provided by the server.

11. Получая функционал очень близкий к терминальным технологиям (когда копируется картинка созданная на сервере), мы в тоже время разгружаем сервер от функций рисования, т.к. Canvas вынесен на клиента, что экономит ресурсы процессора и память выделяемую для виртуальных буферов. А также ускоряем работу приложений - например, приложение, вызвав функцию клиента по отрисовке текста не дожидается окончания выполнения (контроль доставки команды от сервера на клиента происходит на сетевом уровне).11. By obtaining functionality very close to terminal technologies (when a picture created on the server is copied), we at the same time relieve the server of drawing functions, because Canvas is brought to the client, which saves processor resources and memory allocated for virtual buffers. We also speed up the operation of applications - for example, an application, having called a client function to draw text, does not wait for execution to complete (control of command delivery from the server to the client occurs at the network level).

12. Наш GUI спроектирован как масштабируемый, поэтому разработчик может сам добавлять специфические для его приложения компоненты или выставлять наборы новых визуальных компонентов на продажу другим разработчикам, если не хватает встроенных.12. Our GUI is designed to be scalable, so the developer can add components specific to his application or offer sets of new visual components for sale to other developers if there are not enough built-in ones.

Плюсы заявляемой системы:Advantages of the proposed system:

1. Однообразность отображения информации, выводимой на экран.1. Uniformity in the display of information displayed on the screen.

2. Ресурсы пользовательского устройства расходуются в минимальной степени.2. User device resources are consumed to a minimum.

3. Приложения выполняются на стороне сервера и взаимодействуют с пользователем на уровне ввода данных.3. Applications run on the server side and interact with the user at the data input level.

4. Защищенность данных на сервере (перехват данных клиента на стороне сервера исключен).4. Data security on the server (interception of client data on the server side is excluded).

5. Скорость и облегченность разработки оконных процедур, за счет использования графических примитивов.5. Speed and ease of development of window procedures through the use of graphic primitives.

6. Полный контроль за процессами и приложениями пользователя, а также переданной информации клиента на стороне сервера.6. Full control over user processes and applications, as well as transferred client information on the server side.

7. Возможность создания управления и взаимодействия между пользователями, а также наблюдения за взаимодействием пользователей со стороны различных структур (администраторы, пользователи, программные средства).7. The ability to create control and interaction between users, as well as monitoring user interaction from various structures (administrators, users, software).

8. Возможность внедрения DLP систем без возможности их обнаружения или компрометации со стороны пользователя.8. The ability to implement DLP systems without the possibility of their detection or compromise by the user.

9. Значительное повышение производительности разработки пользовательских приложений за счет двух факторов: снижение порога вхождения для разработчика; ускорение разработки (п.5)9. Significant increase in the productivity of custom application development due to two factors: lowering the barrier to entry for a developer; acceleration of development (item 5)

Техническая задача: спроектировать систему для упрощения разработки приложений графического интерфейса для веб-браузеров и расширения их функционала, повышения защищенности данных на сервере, снижения расходования ресурсов пользовательского устройства.Technical task: to design a system to simplify the development of graphical interface applications for web browsers and expand their functionality, increase the security of data on the server, and reduce the consumption of user device resources.

Цель изобретения - создать систему управления приложениями разработчиков и их взаимодействиями, предоставляющую программный интерфейс (API), решающую следующие основные задачи:The purpose of the invention is to create a system for managing developer applications and their interactions, providing a program interface (API) that solves the following main tasks:

- приложения обладают возможностью выполнения и взаимодействия на сервере.- applications have the ability to run and interact on the server.

- на однопоточном клиенте отображены вывод от параллельных потоков на сервере.- on a single-threaded client, output from parallel threads on the server is displayed.

- возможность двухстороннего обмена данными между клиентом и сервером.- possibility of two-way data exchange between client and server.

- масштабируемость выходных данных на клиенте.- scalability of output data on the client.

- защищенность данных от доступа извне (со стороны клиента).- data security from outside access (from the client).

Заявляемая система, включая аппаратные устройства (персональные компьютеры, устройства ввода и вывода, сервер, компьютерная сеть и т.д.) содержит две основные части:The inventive system, including hardware devices (personal computers, input and output devices, server, computer network, etc.) contains two main parts:

серверная часть, предоставляющая API выполняемым на сервере программам сторонних производителей, а так же реализующая стандартные сетевые протоколы HTTPS и WebSocket Secure для подключения браузеров (клиентов);the server part, which provides an API for third-party programs running on the server, and also implements standard HTTPS and WebSocket Secure network protocols for connecting browsers (clients);

клиентская часть, загружаемая веб браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код, написанный на языке JavaScript.the client part, downloaded by the web browser from the server part in the form of a standard HTML document containing client code written in JavaScript.

Таким образом, для решения поставленной задачи предлагается система управления графическими объектами, содержащая серверную часть и клиентскую часть, при этом серверная часть выполнена с возможностью предоставления API выполняемым на сервере программам сторонних производителей, а так же реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов, а клиентская части выполнена с возможностью загрузки веб-браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код, выполненный на языке JavaScript. При этом система выполнена с возможностью трансляции данных с устройств ввода клиентской части и Клиента последовательно через сетевой интерфейс пользователя и сервера на уровень приложений сервера, откуда через интерфейс пользователя GUI серверной части команда на отрисовку объекта может быть послана непосредственно на локальный холст Canvas клиентской части. При этом устройства ввода пользователя имеют возможность обращения на уровень приложений сервера как напрямую, так и через сетевой интерфейс, а команда на отрисовку объекта от интерфейса пользователя GUI серверной части выполнима как через сетевой интерфейс, так и непосредственно на локальный холст Canvas клиентской части.Thus, to solve this problem, a graphical object management system is proposed, containing a server part and a client part, while the server part is designed to provide an API to third-party programs running on the server, as well as implement standard HTTPS and WebSocket Secure network protocols for connecting browsers clients, and the client part is designed to be downloaded by a web browser from the server part in the form of a standard HTML document containing client code written in JavaScript. In this case, the system is designed to transmit data from the input devices of the client part and the Client sequentially through the network interface of the user and server to the server application level, from where, through the GUI user interface of the server part, the command to draw an object can be sent directly to the local Canvas canvas of the client part. In this case, user input devices have the ability to access the server application level both directly and through the network interface, and the command to draw an object from the GUI user interface of the server part is executable both through the network interface and directly to the local Canvas canvas of the client part.

Технический результат - повышение производительности взаимодействия пользователя и сервера, повышение защищенности данных на сервере, снижение расходования ресурсов пользовательского устройства.The technical result is an increase in the productivity of interaction between the user and the server, an increase in the security of data on the server, and a decrease in the consumption of resources of the user device.

Технический результат достигается заявляемой системой управления графическими объектами, включающая управление элементами графического интерфейса пользователя GUI, содержащая серверную и клиентскую части, отличающаяся конфигурацией серверной части с возможностью предоставления API выполняемым на сервере программам сторонних производителей, с возможностью реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов; конфигурацией клиентской части, содержащей локальный холст Canvas, с возможностью загрузки веб-браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код, выполненный на языке JavaScript, содержащий команду на отрисовку объекта на локальный холст Canvas клиентской части, при этом контроль доставки команды на отрисовку с сервера осуществлен сетевым протоколом.The technical result is achieved by the claimed graphical object management system, including control of elements of the graphical user interface GUI, containing server and client parts, characterized by the configuration of the server part with the ability to provide an API to third-party programs running on the server, with the ability to implement standard network protocols HTTPS and WebSocket Secure for connection client browsers; configuration of the client part containing local Canvas canvas, with the ability to be downloaded by a web browser from the server part in the form of a standard HTML document containing client code executed in JavaScript, containing a command to draw an object onto the local Canvas canvas of the client part, while control of the delivery of the drawing command from the server is carried out network protocol.

Система управления графическими объектами выполнена с возможностью трансляции данных с устройств ввода пользователя последовательно через Клиента через сетевой интерфейс пользователя и сервера на уровень приложений сервера, откуда через интерфейс пользователя GUI серверной части может быть реализована команда на отрисовку объекта на локальный холст Canvas клиентской части.The graphical object management system is configured to transmit data from user input devices sequentially through the Client through the network interface of the user and server to the server application level, from where a command to draw an object can be implemented through the GUI user interface of the server part to the local Canvas canvas of the client part.

При этом клиентская часть выполнена с возможностью трансляции данных с устройств ввода непосредственно на уровень приложений сервера. Также клиентская часть выполнена с возможностью трансляции данных с устройств ввода на уровень приложений сервера через сетевой интерфейс.In this case, the client part is designed to transmit data from input devices directly to the server application level. The client part is also designed to transmit data from input devices to the server application level via a network interface.

Система управления графическими объектами выполнена таким образом, что команда с сервера на отрисовку объекта может быть реализована через сетевой интерфейс, кроме того команда с сервера на отрисовку объекта может быть реализована непосредственно на локальном холсте Canvas клиентской части.The graphical object management system is designed in such a way that a command from the server to draw an object can be implemented through the network interface, in addition, a command from the server to draw an object can be implemented directly on the local Canvas canvas of the client part.

Сущность заявляемого технического решения поясняют изображения на Фиг. 1-4.The essence of the proposed technical solution is illustrated by the images in Fig. 1-4.

Фиг. 1. Архитектура (система взаимодействия уровней) локального однопользовательского приложения - персонального вычислительного устройства.Fig. 1. Architecture (level interaction system) of a local single-user application - a personal computing device.

Фиг. 2. Архитектура (система взаимодействия пользователя и сервера) WEBFig. 2. Architecture (user-server interaction system) WEB

Фиг. 3. Архитектура (система взаимодействия уровней) пользователя и сервера.Fig. 3. Architecture (system of interaction between levels) of the user and server.

Фиг. 4. Система управления графическими объектами на примере взаимодействия пользователя и сервера с использованием гибридной архитектуры.Fig. 4. A system for managing graphic objects using the example of interaction between a user and a server using a hybrid architecture.

Пример осуществленияImplementation example

Графические подсистемы всех популярных Операционных Систем (OC) можно условно разделить на два логических уровня:The graphics subsystems of all popular Operating Systems (OC) can be divided into two logical levels:

1. Графический Интерфейс Пользователя (GUI):1. Graphical User Interface (GUI):

Включает в себя интерактивные элементы: менеджер окон, кнопки, поля ввода, раскрывающиеся списки и прочие, которые позволяют пользователю взаимодействовать с помощью устройств ввода (клавиатура, мышь и пр.) с программой (приложением, потому что программа использует функции ОС, а не реализует эти элементы сама)Includes interactive elements: window manager, buttons, input fields, drop-down lists and others that allow the user to interact using input devices (keyboard, mouse, etc.) with the program (application, because the program uses OS functions rather than implementing these elements itself)

2. Графическое Устройство Вывода:2. Graphic Output Device:

Состоит из базового объекта вывода растровой графики на монитор. Представляет из себя двухмерный массив пикселей (обычно называется Canvas (холст)) и базовые функции для формирования растровых изображений: контуры и заливка цветом контура, прямые линии, точки, кривые Безье, вывод текста (контуры символов в современных шрифтах описываются кривыми Безье), а так же копирование участков изображений с других холстов.Consists of a basic object for outputting raster graphics to the monitor. It is a two-dimensional array of pixels (usually called Canvas) and basic functions for generating raster images: contours and filling the contour with color, straight lines, points, Bezier curves, text output (character contours in modern fonts are described by Bezier curves), and also copying sections of images from other canvases.

Для решения задачи наиболее эффективного управления графическими объектами и разработки приложений предлагается преобразовать систему предоставления и обмена информацией, на прикладном (верхнем) уровне модели OSI, передаваемой через любую компьютерную сеть (ЛВС, Интернет).To solve the problem of the most effective management of graphic objects and application development, it is proposed to transform the system for providing and exchanging information at the application (upper) level of the OSI model, transmitted through any computer network (LAN, Internet).

Предлагаемое решение заключается в частичной передаче функций графической системы на сторону сервера (конкретно - GUI/UI). Для этого будем использовать объект Canvas, а также для захвата событий от устройств ввода.The proposed solution is to partially transfer the functions of the graphics system to the server side (specifically, GUI/UI). We will use the Canvas object for this, as well as to capture events from input devices.

Для решения односторонней направленности инициирования запроса мы будем использовать новый транспортный протокол WebSocket. (Оба объекта описаны в стандарте HTML5, поддерживается всеми современными браузерами).To solve the one-way direction of request initiation, we will use the new WebSocket transport protocol. (Both objects are described in the HTML5 standard, supported by all modern browsers).

Весь обмен данными между Клиентом и Сервером инкапсулируется в протокол WebSocket и скрыт как от самого пользователя, так и от прикладного программиста, в результате чего программист реализует свое приложение в созданной виртуальной среде подобной однопользовательскому персональному компьютеру, не заботясь и не озадачиваясь проблемами отображения информации на Клиенте. Эти функции берет на себя заявляемая система управления.All data exchange between the Client and the Server is encapsulated in the WebSocket protocol and is hidden from both the user and the application programmer, as a result of which the programmer implements his application in a created virtual environment similar to a single-user personal computer, without worrying or being puzzled by the problems of displaying information on the Client . These functions are performed by the proposed control system.

Предлагаемая гибридная архитектура (Фиг. 4) - это система с возможностью двунаправленной связи (запросы и ответы в обе стороны). События с устройств ввода принимаются браузером, но с возможностью трансляции и обработки на сервере. Команды отрисовки объектов выполняются на клиенте, что дает экономию ресурсов сервера. Контроль доставки команды с сервера осуществлен сетевым протоколом, контроля со стороны приложения не требуется.The proposed hybrid architecture (Fig. 4) is a system with bidirectional communication capabilities (requests and responses in both directions). Events from input devices are received by the browser, but with the ability to be broadcast and processed on the server. Object rendering commands are executed on the client, which saves server resources. Control of command delivery from the server is carried out by the network protocol; control from the application is not required.

Система содержит (Фиг. 4) устройства пользователя, сервер, сетевой интерфейс, включает в себя устройства ввода пользователя, Клиента, локальный холст Canvas, а также уровень приложений сервера и интерфейс пользователя GUI, расположенный на сервере, характеризуется возможностью устройств ввода пользователя осуществлять трансляцию данных с устройств ввода на уровень приложений сервера, а интерфейс пользователя GUI на сервере возможностью передачи команды на отрисовку объекта на локальный холст Canvas пользователя.The system contains (Fig. 4) user devices, a server, a network interface, includes user input devices, a Client, a local Canvas canvas, as well as a server application layer and a GUI user interface located on the server, characterized by the ability of user input devices to broadcast data from input devices to the server application level, and the GUI user interface on the server with the ability to send a command to draw an object to the user’s local Canvas canvas.

Пользователь обращается через устройства ввода и Клиента через сетевой интерфейс пользователя и сервера последовательно на уровень приложений сервера, который через интерфейс пользователя GUI посылает команду на отрисовку объекта сразу на локальный холст пользователя Canvas. При этом устройства ввода пользователя имеют возможность обращения на уровень приложений сервера как напрямую, так и через сетевой интерфейс, а команда на отрисовку объекта направлена как через сетевой интерфейс, так и напрямую с интерфеса пользователя GUI серверной части на локальный холст пользователя Canvas клиентской части.The user accesses through input devices and the Client through the network interface of the user and server sequentially to the server application layer, which, through the GUI user interface, sends a command to draw the object directly to the user's local Canvas. In this case, user input devices have the ability to access the server application level both directly and through the network interface, and the command to draw an object is sent both through the network interface and directly from the GUI user interface of the server part to the local Canvas user canvas of the client part.

Таким образом, реализованы преимущества по сравнению с WEB:Thus, the advantages compared to WEB are realized:

- Связь двунаправленная (запросы и ответы в обе стороны).- Bidirectional communication (requests and responses in both directions).

- События с устройств ввода приняты браузером, но с возможностью трансляции и обработки на сервере.- Events from input devices are received by the browser, but with the ability to be broadcast and processed on the server.

Существенные отличия:Significant differences:

- Команды отрисовки объектов выполнены на клиенте. что дает экономию ресурсов сервера.- Object drawing commands are executed on the client. which saves server resources.

- Контроль доставки команды с сервера осуществлен сетевым протоколом, контроля со стороны приложения не требуется.- Control of command delivery from the server is carried out by the network protocol; control from the application is not required.

Реализация данной гибридной архитектуры возможна через создание системы, содержащей программный интерфейс (API) с возможностью управления приложениями разработчиков и их взаимодействиями.The implementation of this hybrid architecture is possible through the creation of a system containing a program interface (API) with the ability to manage developer applications and their interactions.

Система решает основные задачи:The system solves the main tasks:

- Все приложения выполнены и взаимодействуют на сервере.- All applications are executed and interact on the server.

- На однопоточном клиенте отображен вывод от параллельных потоков на сервере (многопоточный вывод информации).- On a single-threaded client, output from parallel threads on the server is displayed (multi-threaded output).

- Возможность двухстороннего обмена данными между клиентом и сервером.- Possibility of two-way data exchange between client and server.

- Масштабируемость выходных данных на клиенте.- Scalability of output data on the client.

- Защищенность данных от доступа из вне (со стороны клиента).- Data security from access from outside (from the client side).

В итоге система состоит из двух основных частей:As a result, the system consists of two main parts:

серверная часть, с возможностью предоставления API выполняемым на сервере программам сторонних производителей, а также реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров (клиентов).server part, with the ability to provide an API to third-party programs running on the server, as well as implement standard HTTPS and WebSocket Secure network protocols for connecting browsers (clients).

клиентская часть, загруженная веб браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код написанный на языке JavaScript.the client part, loaded by the web browser from the server part in the form of a standard HTML document containing client code written in JavaScript.

Что мы получаем от использования заявляемой системы:What do we get from using the proposed system:

1. Перестаем зависеть от реализации GUI в браузерах (проблемы кроссбраузерности.)1. We stop depending on the GUI implementation in browsers (cross-browser compatibility problems.)

2. Код становится универсальным для любого приложения, потому что реализует только графические примитивы (Canvas) и протокол обмена с сервером поверх WebSocket.2. The code becomes universal for any application, because it implements only graphic primitives (Canvas) and an exchange protocol with the server over WebSocket.

3. Синхронизация доступа к общим объектам на клиенте не нужна, она происходит только на сервере что значительно повышает быстродействие приложений (время на запрос блокировки серверу по сети и ответ сервера на порядки дольше чем внутри ОС сервера, а также не возникает проблемы «зависающих» блокировок при нештатном отключении клиента).3. Synchronization of access to shared objects on the client is not needed, it occurs only on the server, which significantly increases the performance of applications (the time to request a lock to the server over the network and the server response is orders of magnitude longer than inside the server OS, and there is no problem of “hanging” locks in case of abnormal client disconnection).

4. За счет пункта 2 повышается защита от несанкционированного копирования не только кода приложения, но и форм и компонентов приложения (формы, кнопки, поля ввода создаются только на сервере, на клиент передается только последовательность базовых функций отрисовки, от которых не требуется ответных данных).4. Due to point 2, protection against unauthorized copying is increased not only of the application code, but also of application forms and components (forms, buttons, input fields are created only on the server, only a sequence of basic rendering functions is transferred to the client, from which no response data is required) .

5. Значительно повышаем сетевую безопасность за счет того, что от клиента мы получаем только данные ввода пользователя (движения мыши, нажатия клавиатуры и тачпада и пр. устройств ввода) - данных мало, поэтому контроль реализовать проще по сравнению с программными интерфейсами где используются десятки методов и свойств для множества объектов.5. We significantly increase network security due to the fact that we receive from the client only user input data (mouse movements, keyboard and touchpad presses, etc. input devices) - there is little data, so control is easier to implement compared to software interfaces where dozens of methods are used and properties for many objects.

6. За счет очень быстрой синхронизации мы получаем возможность расширить функционал веб-приложений: создать полноценный диспетчер окон с возможностью рисования из N потоков в N окон, а также перенаправлять ввод от N пользователей в одно окно, как в обычной ОС.6. Due to very fast synchronization, we are able to expand the functionality of web applications: create a full-fledged window manager with the ability to draw from N threads in N windows, and also redirect input from N users to one window, as in a regular OS.

7. Можно передавать приложения вместе с окнами от пользователя к пользователю. К примеру открыв на своем рабочем столе приложение «блокнот» и записав туда текст можно передать его как приложение другому пользователю, не сохраняя файл и не закрывая приложение.7. You can transfer applications along with windows from user to user. For example, by opening the Notepad application on your desktop and writing text there, you can transfer it as an application to another user without saving the file or closing the application.

8. Можно совместно использовать одно окно для совместной работы в интерактивном режиме или только для показа, с неограниченным количеством пользователей.8. You can share one window for interactive or display-only collaboration with an unlimited number of users.

9. Для каждого приложения нет необходимости открывать новую страницу в браузере, а работать как с обычным рабочим столом.9. For each application there is no need to open a new page in the browser, but work as with a regular desktop.

10. Можно реализовать «растянутый» рабочий стол на несколько мониторов, которые не обязательно подключать к одному компьютеру - синхронизацию и позиционирование обеспечит сервер.10. You can implement a “stretched” desktop across several monitors, which do not have to be connected to one computer - synchronization and positioning will be provided by the server.

11. Получая функционал, очень близкий к терминальным технологиям (когда копируется картинка созданная на сервере), мы в тоже время разгружаем сервер от функций рисования, т.к. Canvas вынесен на клиента, что экономит ресурсы процессора и память, выделяемую для виртуальных буферов. А также ускоряем работу приложений - например, приложение, вызвав функцию клиента по отрисовке текста не дожидается окончания выполнения (контроль доставки команды от сервера на клиента происходит на сетевом уровне).11. By obtaining functionality very close to terminal technologies (when a picture created on the server is copied), we at the same time relieve the server of drawing functions, because Canvas is brought to the client, which saves processor resources and memory allocated for virtual buffers. We also speed up the operation of applications - for example, an application, having called a client function to draw text, does not wait for execution to complete (control of command delivery from the server to the client occurs at the network level).

12. Наш GUI спроектирован как масштабируемый, поэтому разработчик может сам добавлять специфические для его приложения компоненты или выставлять наборы новых визуальных компонентов на продажу другим разработчикам, если не хватает встроенных.12. Our GUI is designed to be scalable, so the developer can add components specific to his application or offer sets of new visual components for sale to other developers if there are not enough built-in ones.

Преимущества заявляемой системы:Advantages of the proposed system:

1. Однообразность отображения информации, выводимой на экран.1. Uniformity in the display of information displayed on the screen.

2. Ресурсы пользовательского устройства расходуются в минимальной степени.2. User device resources are consumed to a minimum.

3. Приложения выполняются на стороне сервера и взаимодействуют с пользователем на уровне ввода данных.3. Applications run on the server side and interact with the user at the data input level.

4. Защищенность данных на сервере (перехват данных клиента на стороне сервера исключен).4. Data security on the server (interception of client data on the server side is excluded).

5. Скорость и облегченность разработки оконных процедур, за счет использования графических примитивов.5. Speed and ease of development of window procedures through the use of graphic primitives.

6. Полный контроль за процессами и приложениями пользователя, а также переданной информации клиента на стороне сервера.6. Full control over user processes and applications, as well as transferred client information on the server side.

7. Возможность создания управления и взаимодействия между пользователями, а также наблюдения за взаимодействием пользователей со стороны различных структур (администраторы, пользователи, программные средства).7. The ability to create control and interaction between users, as well as monitoring user interaction from various structures (administrators, users, software).

8. Возможность внедрения DLP систем без возможности их обнаружения или компрометации со стороны пользователя.8. The ability to implement DLP systems without the possibility of their detection or compromise by the user.

9. Значительное повышение производительности разработки пользовательских приложений за счет двух факторов: снижение порога вхождения для разработчика; ускорение разработки (п. 5)9. Significant increase in the productivity of custom application development due to two factors: lowering the barrier to entry for a developer; acceleration of development (clause 5)

Система управления графическими объектами содержит серверную часть и клиентскую часть. Серверная часть выполнена с возможностью предоставляющая API выполняемым на сервере программам сторонних производителей, а так же реализующая стандартные сетевые протоколы HTTPS и WebSocket Secure для подключения браузеров (клиентов).The graphical object management system contains a server part and a client part. The server part is designed to provide an API to third-party programs running on the server, as well as implement standard HTTPS and WebSocket Secure network protocols for connecting browsers (clients).

Клиентская часть, загружается веб браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код написанный на языке JavaScript.The client part is loaded by the web browser from the server part in the form of a standard HTML document containing client code written in JavaScript.

При этом пользователь обращается через устройства ввода и RDP-клиент через сетевой интерфейс пользователя и сервера последовательно на уровень приложений сервера, который через интерфейс пользователя посылает команду на отрисовку объекта сразу холст пользователя локальный. При этом устройства ввода пользователя имеют возможность обращения на уровень приложений сервера как напрямую, так и через сетевой интерфейс, а команда на отрисовку объекта посылается как через сетевой интерфейс, так и напрямую на локальный холст пользователя.In this case, the user accesses through input devices and an RDP client through the network interface of the user and server sequentially to the server application level, which, through the user interface, sends a command to draw the object immediately to the user’s local canvas. In this case, user input devices have the ability to access the server application level both directly and through the network interface, and the command to draw an object is sent both through the network interface and directly to the user’s local canvas.

Предлагаемое техническое решение заключается в частичном перемещении функций графической системы на сторону сервера (конкретно - GUI/UI). Для этого будем использовать объект Canvas, а так же для захвата событий от устройств ввода.The proposed technical solution consists in partially moving the functions of the graphical system to the server side (specifically, GUI/UI). For this we will use the Canvas object, as well as to capture events from input devices.

Для решения односторонней направленности инициирования запроса мы будем использовать новый транспортный протокол WebSocket. Оба объекта описаны в стандарте HTML5, поддерживается всеми современными браузерами.To solve the one-way direction of request initiation, we will use the new WebSocket transport protocol. Both objects are described in the HTML5 standard and are supported by all modern browsers.

Claims (6)

1. Система управления графическими объектами, включающая управление элементами графического интерфейса пользователя GUI, содержащая серверную и клиентскую части, отличающаяся конфигурацией серверной части с возможностью предоставления API выполняемым на сервере программам сторонних производителей, с возможностью реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов; конфигурацией клиентской части, содержащей локальный холст Canvas, с возможностью загрузки веб-браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код, выполненный на языке JavaScript, содержащий команду на отрисовку объекта на локальный холст Canvas клиентской части, при этом контроль доставки команды на отрисовку с сервера осуществлен сетевым протоколом.1. A graphical object management system, including management of elements of the graphical user interface GUI, containing server and client parts, characterized by the configuration of the server part with the ability to provide an API to third-party programs running on the server, with the ability to implement standard network protocols HTTPS and WebSocket Secure for connecting client browsers ; configuration of the client part containing the local Canvas canvas, with the ability to be downloaded by a web browser from the server part in the form of a standard HTML document containing client code executed in JavaScript, containing a command for drawing an object to the local Canvas canvas of the client part, while controlling the delivery of the command for rendering from the server is carried out using a network protocol. 2. Система управления графическими объектами по п. 1, отличающаяся тем, что выполнена с возможностью трансляции данных с устройств ввода пользователя последовательно через Клиента через сетевой интерфейс пользователя и сервера на уровень приложений сервера, откуда через интерфейс пользователя GUI серверной части может быть реализована команда на отрисовку объекта на локальный холст Canvas клиентской части.2. The graphical object management system according to claim 1, characterized in that it is designed to transmit data from user input devices sequentially through the Client through the network interface of the user and server to the server application level, from where a command can be implemented through the GUI user interface of the server part drawing an object to the local Canvas canvas of the client part. 3. Система управления графическими объектами по п. 1, отличающаяся тем, что клиентская часть выполнена с возможностью трансляции данных с устройств ввода непосредственно на уровень приложений сервера.3. The graphical object management system according to claim 1, characterized in that the client part is designed to transmit data from input devices directly to the server application level. 4. Система управления графическими объектами по п. 1, отличающаяся тем, что клиентская часть выполнена с возможностью трансляции данных с устройств ввода на уровень приложений сервера через сетевой интерфейс.4. The graphical object management system according to claim 1, characterized in that the client part is configured to transmit data from input devices to the server application level via a network interface. 5. Система управления графическими объектами по п. 1, отличающаяся тем, что команда с сервера на отрисовку объекта может быть реализована через сетевой интерфейс.5. The graphical object management system according to claim 1, characterized in that a command from the server to draw an object can be implemented via a network interface. 6. Система управления графическими объектами по п. 1, отличающаяся тем, что команда с сервера на отрисовку объекта может быть реализована непосредственно на локальном холсте Canvas клиентской части.6. The graphical object management system according to claim 1, characterized in that the command from the server to draw an object can be implemented directly on the local Canvas canvas of the client part.
RU2022114106A 2022-05-26 Graphical object management system RU2813837C2 (en)

Publications (2)

Publication Number Publication Date
RU2022114106A RU2022114106A (en) 2023-11-27
RU2813837C2 true RU2813837C2 (en) 2024-02-19

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110276661A1 (en) * 2010-05-09 2011-11-10 Ashish Gujarathi Methods and systems for delivering applications from a desktop operating system
US20110276619A1 (en) * 2010-05-04 2011-11-10 Microsoft Corporation Desktop screen sharing over http
US20120151372A1 (en) * 2010-12-10 2012-06-14 Wyse Technology Inc. Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface
US20120324365A1 (en) * 2011-03-03 2012-12-20 Citrix Systems, Inc. Reverse Seamless Integration Between Local and Remote Computing Environments
RU2648564C1 (en) * 2017-05-25 2018-03-26 Общество с ограниченной ответственностью "Новэлект" Method and system for device management and device control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110276619A1 (en) * 2010-05-04 2011-11-10 Microsoft Corporation Desktop screen sharing over http
US20110276661A1 (en) * 2010-05-09 2011-11-10 Ashish Gujarathi Methods and systems for delivering applications from a desktop operating system
US20120151372A1 (en) * 2010-12-10 2012-06-14 Wyse Technology Inc. Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface
US20120324365A1 (en) * 2011-03-03 2012-12-20 Citrix Systems, Inc. Reverse Seamless Integration Between Local and Remote Computing Environments
RU2648564C1 (en) * 2017-05-25 2018-03-26 Общество с ограниченной ответственностью "Новэлект" Method and system for device management and device control

Similar Documents

Publication Publication Date Title
US10601633B2 (en) Virtual window screen renderings using application connectors
JP6092381B2 (en) Method, system, and computer-readable storage medium for providing access to a remote application via a web client
EP1214667B1 (en) Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language
US6832380B1 (en) Client-server application partitioning with metering technique for distributed computing
US10223062B1 (en) Method and apparatus of capturing a screen image of a remotely managed machine
US20100082733A1 (en) Extensible remote programmatic access to user interface
JP2006318499A (en) System and method for managing connection between server and client node
US20040049530A1 (en) Distributed computer system using a graphical user interface toolkit
US20210099553A1 (en) Integration of a standard network protocol layer in a web browser by compilation to webassembly and use of a websocket
US20030182469A1 (en) Distributed computer system using a graphical user interface toolkit
US11509707B1 (en) Embedding remote applications into HTML pages
US7849472B1 (en) System for instrumenting resources utilizing WS-management resource MBean wrappers for JAXB beans
RU2813837C2 (en) Graphical object management system
US8856651B2 (en) Remote user interface cooperative application
US11003463B2 (en) Virtual desktop
US8132189B1 (en) WS-management resource MBean wrapper for JAXB beans
US11870837B2 (en) Computer-implemented co-browsing method and system for web platform virtualization of web applications using a network proxy and function-wrapping engine
Lu et al. A generic application sharing architecture based on message-oriented middleware platform
Book et al. An Instant Message-Driven User Interface Framework for Thin Client Applications
Montagnat et al. 3D objects visualization for remote interactive medical applications
Yu et al. XUPClient–a thin client for rich internet applications
WO2022250642A1 (en) Method and system for co-browsing a web page
Meerasa Design and Implementation of SAGE Display Controller
Puder et al. Accessing x applications over the world-wide web