СИСТЕМА УПРАВЛЕНИЯ ГРАФИЧЕСКИМИ ОБЪЕКТАМИ Российский патент 2024 года по МПК G06F15/16 

Описание патента на изобретение RU2813837C2

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

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

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

В данном описании используются следующие определения.

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

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

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

Локальная вычислительная сеть (ЛВС) - компьютерная сеть, покрывающая обычно относительно небольшую территорию или небольшую группу зданий (дом, офис, фирму, институт).

Интернет - информационно-коммуникационная сеть и всемирная система объединенных компьютерных сетей для хранения и передачи информации.

Сетевая модель OSI (The Open Systems Interconnection model) - сетевая модель стека (магазина) сетевых протоколов OSI/ISO. Посредством данной модели различные сетевые устройства могут взаимодействовать друг с другом. Модель определяет различные уровни взаимодействия систем. Каждый уровень выполняет определенные функции при таком взаимодействии.

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

TCP-соединения (Transmission Control Protocol) - один из основных протоколов передачи данных интернета. Предназначен для управления передачей данных интернета. Пакеты в TCP называются сегментами. В стеке протоколов TCP/IP выполняет функции транспортного уровня модели OSI.

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

API (Application Programming Interface - «программный интерфейс приложения») - описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой.

Графический интерфейс пользователя (GUI - graphical user interface) - система средств для взаимодействия пользователя с электронными устройствами, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана. Включает в себя интерактивные элементы: менеджер окон, кнопки, поля ввода, раскрывающиеся списки и прочие, которые позволяют пользователю взаимодействовать с помощью устройств ввода (клавиатура, мышь и пр.) с программой (приложением, потому что программа использует функции ОС, а не реализует эти элементы сама)

Пользовательский интерфейс (UI - user interface) - интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы.

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

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

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

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

Холст (Canvas) - элемент стандарта HTML5, предназначенный для создания растрового двухмерного изображения: контуры и заливка цветом контура, прямые линии, точки, кривые Безье, вывод текста (контуры символов в современных шрифтах описываются кривыми Безье) при помощи скриптов

Событие - действие, выполненное пользователем в приложении.

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

Уникальное событие - событие которое в итоге отправляется к серверу.

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

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

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

Контейнер: окно, которое включает элементы управления

Команды обновления: набор элементов XML (Extensible Markup Language - расширяемый язык разметки), которые исполняет браузер, чтобы синхронизироваться с деревом объектов приложения и контрольным состоянием сервера.

Структура окна: набор элементов XML, описывающих структуру текущего окна приложения. Структура окна используется для обновления состояния клиентского звена (прорисованный в данный момент UI) в соответствии с состоянием серверного звена (текущее состояние UI на сервере).

Данные на основе XML: данные XML, которые используются клиентом для хранения состояния интерфейса приложения . Состояние интерфейса приложения содержит свойства каждого элемента управления UI и включает всю информацию, необходимую клиенту для синхронизации состояния своих элементов управления в соответствии с состоянием сервера, например цвет или размер элемента управления , отображаемый им текст и т.д. Это обеспечивает клиентское звено возможностью переформировывать любую часть UI посредством использования XSLT (преобразование шаблонов) для данных на основе XML.

В настоящее время применяются две основных системы, обеспечивающие доступ клиента к ресурсам сервера: WEB и RDP.

WEB - доступ к веб-серверу посредством технологии гипертекста. Гипертекстовые документы, размещаемые либо Всемирной паутине, либо на сервере предприятия в закрытой сети (с ограниченным внешним доступом или без него), называются веб-страницами. Несколько веб-страниц, объединенных общей темой или дизайном, а также связанных между собой ссылками и обычно находящихся на одном и том же веб-сервере, называются веб-сайтом. Для загрузки и просмотра веб-страниц используются специальные программы - браузеры.

RDP (Remote Desktop Protocol - протокол удаленного рабочего стола) - протокол прикладного уровня, использующийся для обеспечения удаленной работы пользователя с сервером, на котором запущен сервис терминальных подключений. Клиенты существуют практически для всех версий Windows, Linux, FreeBSD, Mac OS X, iOS, Android, Symbian.

DLP-система - программное обеспечение, предназначенное для защиты компании от утечек информации. От англ. Data Loss Prevention (предотвращение потери данных) или Data Leakage Prevention (предотвращение утечки данных). Чаще всего для продуктов этого класса используется именно это сокращение.

Уровень техники

Известно техническое решение по патенту RU №2420797 С2, G06F 15/16 (2006.01), G06F 9/44 (2006.01), опубл. 10.06.2011, заявка PCT: US 2006/017568 (05.05.2006), по которому ПРЕДОСТАВЛЕНИЕ ВОЗМОЖНОСТИ ПРИМЕНЕНИЯ КОМАНДЫ ИЗМЕНЕНИЯ ГРАФИЧЕСКОГО ОКНА К ДИСТАНЦИОННО СГЕНЕРИРОВАННОМУ ГРАФИЧЕСКОМУ ОКНУ осуществляет модификацию дистанционно сгенерированного графического окна приложения, при которой генерируют графическое окно приложения на первой машине. Далее отправляют представление графического окна приложения на вторую машину. Затем выявляют пользовательскую команду от второй машины на изменение представления. После чего передают пользовательскую команду от второй машины на первую машину. При этом определяют, находится ли графическое окно приложения в режиме отображения всего содержимого окна или контурном режиме. В режиме отображения всего содержимого окна периодически обновляют все графическое окно приложения во время модификации. В контурном режиме периодически обновляют линию, указывающую новую позицию и размер графического окна приложения во время модификации.

Известное техническое решение имеет недостатки.

Во-первых, патент RU 2420797 C2 описывает часть функционала серверной линейки продуктов компании Microsoft операционной системы Windows, поэтому не может использоваться в виде отдельной программы на ОС семейства Linux. Наша разработка предполагает использование на любых ОС поддерживающих работу современных браузеров.

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

Во-вторых, аналог RU 2420797 C2 формирует растровое изображение окон на сервере, при помощи функций графического ядра ОС Windows. Заявляемая система не требует наличия графического ядра ОС и не формирует растровое изображение окон на сервере, серверная часть создает растровое изображение окна на клиенте вызовом команд графического интерфейса клиента. Что дает следующие преимущества:

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

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

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

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

Рассмотрим известные системы, предназначенные для ввода/вывода и доступа к информации, начиная от персонального компьютера.

Один случай: Система работы однопользовательского приложения на персональном компьютере - Архитектура персонального вычислительного устройства - система взаимодействия (управления) уровней персонального вычислительного устройства.

Это система с возможностью односторонней связи (запрос - ответ) от устройств ввода на уровень приложений и затем к интерфейсу пользователя, с последующим обращением на холст (Canvas).

Помимо этой существуют следующие системы клиент-серверных приложений.

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

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

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

Недостатки известных широко используемых систем:

- односторонняя связь клиент-сервер.

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

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

- несовпадения отображения одной и той же страницы разными браузерами.

- запутанная логика взаимодействия между клиентом и сервером (обычно разные команды разработчиков frontend и backend).

- использование стороннего ПО (иногда без документации и из неизвестного источника).

- проблемы с безопасностью и отказоустойчивостью (стороннее ПО невозможно изменить, даже если известна ошибка).

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

Еще один пример системы взаимодействия пользователя и сервера.

Архитектура работы RDP от MS, при которой построена система с возможностью двунаправленной связи (запросы и ответы в обе стороны). События с устройств ввода принимаются браузером, но с возможностью трансляции и обработки на сервере. Команды отрисовки объектов выполнены на сервере, что влечет за собой расход ресурсов.

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

Известная система имеет ряд преимуществ перед WEB, таких как:

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

2. События с устройств ввода приняты клиентом, но с возможностью трансляции и обработки на сервере.

В то же время присутствуют существенные недостатки:

1. С сервера на клиента передается не описание объекта и действия с ним, а картинки (изображения).

2. Команды отрисовки объектов выполнены на сервере в GUI, что влечет за собой расход ресурсов.

3. Использован не стандартный браузер, а приложение RDP-клиент.

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

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

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

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

Наиболее близким аналогом является техническое решение по патенту 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-заголовок и может использовать длительный опрос.

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

Однако, существуют конструктивные различия в содержании серверной и клиентской части сравниваемых технических решений. Заявляемое изобретение отличается от аналога патента № US 2012/0151372 A1 местом расположения Canvas - в заявляемой системе он расположен на клиентской части. В то время как в известных графических средах, в том числе в системе аналога (патента № US 2012/0151372 A1) - на сервере. Этот существенный признак влечет за собой как следствие, различие в возможностях формирования и передачи Клиенту растрового изображения. Недостатком аналога является высокая вычислительная нагрузка, которая целиком ложится на Сервер, а на Клиента передается только результат, в результате чего у аналога имеется недостаточная производительность взаимодействия пользователя и сервера, недостаточная защищенность данных на сервере, высокое расходование ресурсов пользовательского устройства.

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

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

Для решения поставленных задач предлагается преобразовать систему предоставления и обмена информацией, на прикладном (верхнем) уровне модели OSI, передаваемой через любую компьютерную сеть (ЛВС, Интернет).

Предлагаемое решение заключается в частичной передаче функций графической системы на сторону сервера (конкретно - GUI/UI). Для этого будем использовать объект Canvas (холст) для захвата событий от устройств ввода.

Для решения односторонней направленности инициирования запроса мы будем использовать новый транспортный протокол WebSocket. Оба объекта описаны в стандарте HTML5, поддерживается всеми современными браузерами.

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

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

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

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

Так же, как и в варианте системы RDP, имеем преимущества по сравнению с WEB:

- связь двунаправленная (запросы и ответы в обе стороны).

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

Однако присутствуют и существенные отличия:

- команды отрисовки объектов выполнены на клиенте, что дает экономию ресурсов сервера.

- контроль доставки команды с сервера осуществлен сетевым протоколом, контроля со стороны приложения не требуется.

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

Система решает следующие основные задачи:

1. Все приложения выполнены и взаимодействуют на сервере.

2. На однопоточном клиенте отображен вывод от параллельных потоков на сервере (многопоточный вывод информации).

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

4. Масштабируемость выходных данных на клиенте.

5. Защищенность данных от доступа из вне (со стороны клиента).

Система состоит из двух частей:

1) Серверная часть, с возможностью предоставления API выполняемым на сервере программам сторонних производителей, а также реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов.

2) Клиентская часть, загруженная веб браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код написанный на языке JavaScript.

Преимущества от использования заявляемой системы:

1. Перестаем зависеть от реализации GUI в браузерах (проблемы кроссбраузерности.)

2. Код становится универсальным для любого приложения, потому что реализует только графические примитивы (Canvas) и протокол обмена с сервером поверх WebSocket.

3. Синхронизация доступа к общим объектам на клиенте не нужна, она происходит только на сервере что значительно повышает быстродействие приложений (время на запрос блокировки серверу по сети и ответ сервера на порядки дольше чем внутри ОС сервера, а также не возникает проблемы «зависающих» блокировок при нештатном отключении клиента).

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

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

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

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

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

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

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

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

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

Плюсы заявляемой системы:

1. Однообразность отображения информации, выводимой на экран.

2. Ресурсы пользовательского устройства расходуются в минимальной степени.

3. Приложения выполняются на стороне сервера и взаимодействуют с пользователем на уровне ввода данных.

4. Защищенность данных на сервере (перехват данных клиента на стороне сервера исключен).

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

6. Полный контроль за процессами и приложениями пользователя, а также переданной информации клиента на стороне сервера.

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

8. Возможность внедрения DLP систем без возможности их обнаружения или компрометации со стороны пользователя.

9. Значительное повышение производительности разработки пользовательских приложений за счет двух факторов: снижение порога вхождения для разработчика; ускорение разработки (п.5)

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

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

- приложения обладают возможностью выполнения и взаимодействия на сервере.

- на однопоточном клиенте отображены вывод от параллельных потоков на сервере.

- возможность двухстороннего обмена данными между клиентом и сервером.

- масштабируемость выходных данных на клиенте.

- защищенность данных от доступа извне (со стороны клиента).

Заявляемая система, включая аппаратные устройства (персональные компьютеры, устройства ввода и вывода, сервер, компьютерная сеть и т.д.) содержит две основные части:

серверная часть, предоставляющая API выполняемым на сервере программам сторонних производителей, а так же реализующая стандартные сетевые протоколы HTTPS и WebSocket Secure для подключения браузеров (клиентов);

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

Таким образом, для решения поставленной задачи предлагается система управления графическими объектами, содержащая серверную часть и клиентскую часть, при этом серверная часть выполнена с возможностью предоставления API выполняемым на сервере программам сторонних производителей, а так же реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов, а клиентская части выполнена с возможностью загрузки веб-браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код, выполненный на языке JavaScript. При этом система выполнена с возможностью трансляции данных с устройств ввода клиентской части и Клиента последовательно через сетевой интерфейс пользователя и сервера на уровень приложений сервера, откуда через интерфейс пользователя GUI серверной части команда на отрисовку объекта может быть послана непосредственно на локальный холст Canvas клиентской части. При этом устройства ввода пользователя имеют возможность обращения на уровень приложений сервера как напрямую, так и через сетевой интерфейс, а команда на отрисовку объекта от интерфейса пользователя GUI серверной части выполнима как через сетевой интерфейс, так и непосредственно на локальный холст Canvas клиентской части.

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

Технический результат достигается заявляемой системой управления графическими объектами, включающая управление элементами графического интерфейса пользователя GUI, содержащая серверную и клиентскую части, отличающаяся конфигурацией серверной части с возможностью предоставления API выполняемым на сервере программам сторонних производителей, с возможностью реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов; конфигурацией клиентской части, содержащей локальный холст Canvas, с возможностью загрузки веб-браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код, выполненный на языке JavaScript, содержащий команду на отрисовку объекта на локальный холст Canvas клиентской части, при этом контроль доставки команды на отрисовку с сервера осуществлен сетевым протоколом.

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

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

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

Сущность заявляемого технического решения поясняют изображения на Фиг. 1-4.

Фиг. 1. Архитектура (система взаимодействия уровней) локального однопользовательского приложения - персонального вычислительного устройства.

Фиг. 2. Архитектура (система взаимодействия пользователя и сервера) WEB

Фиг. 3. Архитектура (система взаимодействия уровней) пользователя и сервера.

Фиг. 4. Система управления графическими объектами на примере взаимодействия пользователя и сервера с использованием гибридной архитектуры.

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

Графические подсистемы всех популярных Операционных Систем (OC) можно условно разделить на два логических уровня:

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

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

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

Состоит из базового объекта вывода растровой графики на монитор. Представляет из себя двухмерный массив пикселей (обычно называется Canvas (холст)) и базовые функции для формирования растровых изображений: контуры и заливка цветом контура, прямые линии, точки, кривые Безье, вывод текста (контуры символов в современных шрифтах описываются кривыми Безье), а так же копирование участков изображений с других холстов.

Для решения задачи наиболее эффективного управления графическими объектами и разработки приложений предлагается преобразовать систему предоставления и обмена информацией, на прикладном (верхнем) уровне модели OSI, передаваемой через любую компьютерную сеть (ЛВС, Интернет).

Предлагаемое решение заключается в частичной передаче функций графической системы на сторону сервера (конкретно - GUI/UI). Для этого будем использовать объект Canvas, а также для захвата событий от устройств ввода.

Для решения односторонней направленности инициирования запроса мы будем использовать новый транспортный протокол WebSocket. (Оба объекта описаны в стандарте HTML5, поддерживается всеми современными браузерами).

Весь обмен данными между Клиентом и Сервером инкапсулируется в протокол WebSocket и скрыт как от самого пользователя, так и от прикладного программиста, в результате чего программист реализует свое приложение в созданной виртуальной среде подобной однопользовательскому персональному компьютеру, не заботясь и не озадачиваясь проблемами отображения информации на Клиенте. Эти функции берет на себя заявляемая система управления.

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

Система содержит (Фиг. 4) устройства пользователя, сервер, сетевой интерфейс, включает в себя устройства ввода пользователя, Клиента, локальный холст Canvas, а также уровень приложений сервера и интерфейс пользователя GUI, расположенный на сервере, характеризуется возможностью устройств ввода пользователя осуществлять трансляцию данных с устройств ввода на уровень приложений сервера, а интерфейс пользователя GUI на сервере возможностью передачи команды на отрисовку объекта на локальный холст Canvas пользователя.

Пользователь обращается через устройства ввода и Клиента через сетевой интерфейс пользователя и сервера последовательно на уровень приложений сервера, который через интерфейс пользователя GUI посылает команду на отрисовку объекта сразу на локальный холст пользователя Canvas. При этом устройства ввода пользователя имеют возможность обращения на уровень приложений сервера как напрямую, так и через сетевой интерфейс, а команда на отрисовку объекта направлена как через сетевой интерфейс, так и напрямую с интерфеса пользователя GUI серверной части на локальный холст пользователя Canvas клиентской части.

Таким образом, реализованы преимущества по сравнению с WEB:

- Связь двунаправленная (запросы и ответы в обе стороны).

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

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

- Команды отрисовки объектов выполнены на клиенте. что дает экономию ресурсов сервера.

- Контроль доставки команды с сервера осуществлен сетевым протоколом, контроля со стороны приложения не требуется.

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

Система решает основные задачи:

- Все приложения выполнены и взаимодействуют на сервере.

- На однопоточном клиенте отображен вывод от параллельных потоков на сервере (многопоточный вывод информации).

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

- Масштабируемость выходных данных на клиенте.

- Защищенность данных от доступа из вне (со стороны клиента).

В итоге система состоит из двух основных частей:

серверная часть, с возможностью предоставления API выполняемым на сервере программам сторонних производителей, а также реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров (клиентов).

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

Что мы получаем от использования заявляемой системы:

1. Перестаем зависеть от реализации GUI в браузерах (проблемы кроссбраузерности.)

2. Код становится универсальным для любого приложения, потому что реализует только графические примитивы (Canvas) и протокол обмена с сервером поверх WebSocket.

3. Синхронизация доступа к общим объектам на клиенте не нужна, она происходит только на сервере что значительно повышает быстродействие приложений (время на запрос блокировки серверу по сети и ответ сервера на порядки дольше чем внутри ОС сервера, а также не возникает проблемы «зависающих» блокировок при нештатном отключении клиента).

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

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

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

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

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

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

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

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

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

Преимущества заявляемой системы:

1. Однообразность отображения информации, выводимой на экран.

2. Ресурсы пользовательского устройства расходуются в минимальной степени.

3. Приложения выполняются на стороне сервера и взаимодействуют с пользователем на уровне ввода данных.

4. Защищенность данных на сервере (перехват данных клиента на стороне сервера исключен).

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

6. Полный контроль за процессами и приложениями пользователя, а также переданной информации клиента на стороне сервера.

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

8. Возможность внедрения DLP систем без возможности их обнаружения или компрометации со стороны пользователя.

9. Значительное повышение производительности разработки пользовательских приложений за счет двух факторов: снижение порога вхождения для разработчика; ускорение разработки (п. 5)

Система управления графическими объектами содержит серверную часть и клиентскую часть. Серверная часть выполнена с возможностью предоставляющая API выполняемым на сервере программам сторонних производителей, а так же реализующая стандартные сетевые протоколы HTTPS и WebSocket Secure для подключения браузеров (клиентов).

Клиентская часть, загружается веб браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код написанный на языке JavaScript.

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

Предлагаемое техническое решение заключается в частичном перемещении функций графической системы на сторону сервера (конкретно - GUI/UI). Для этого будем использовать объект Canvas, а так же для захвата событий от устройств ввода.

Для решения односторонней направленности инициирования запроса мы будем использовать новый транспортный протокол WebSocket. Оба объекта описаны в стандарте HTML5, поддерживается всеми современными браузерами.

Похожие патенты RU2813837C2

название год авторы номер документа
АВТОМАТИЗИРОВАННОЕ ПРЕОБРАЗОВАНИЕ ОБЪЕКТА ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ И ГЕНЕРАЦИЯ КОДА 2012
  • Пател Руши
  • Ларсон Курт
  • Мареска Луиз
  • Рони Брайан
  • Ниссен Эрик
  • Нанненга Джон
RU2604431C2
СПОСОБЫ ДЛЯ АДАПТИРОВАНИЯ ИНТЕРПРЕТИРУЮЩЕГО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ ДЛЯ МНОЖЕСТВЕННЫХ КЛИЕНТОВ 2012
  • Рудольф Кристофер
  • Хаммонд Майкл
  • Андерсон Роберт
  • Ниссен Эрик
  • Нанненга Джон
  • Ингаллс Эндрю
RU2608472C2
СПОСОБ И СИСТЕМА ДЛЯ СОЗДАНИЯ ИТ-ОРИЕНТИРОВАННЫХ СЕРВЕРНЫХ СЕТЕВЫХ ПРИЛОЖЕНИЙ 2008
  • Пелед Гай
RU2466450C2
ИНФОРМАЦИОННАЯ СИСТЕМА КЛИЕНТ - СЕРВЕР И СПОСОБ ПРЕДОСТАВЛЕНИЯ ГРАФИЧЕСКОГО ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА 2005
  • Беляев Михаил Васильевич
RU2313824C2
ОБСЛУЖИВАНИЕ СОБЫТИЙ ДЛЯ ЛОКАЛЬНЫХ ПРИЛОЖЕНИЙ-КЛИЕНТОВ ПОСРЕДСТВОМ ЛОКАЛЬНОГО СЕРВЕРА 2012
  • Бар-Зеев Ави
  • Кимчи Гур
  • Бекман Брайан К.
  • Айзакс Скотт
  • Бэн-Итай Мейр
  • Ярив Еран
  • И Аркас Блейз Агуэра
RU2616162C2
ПЕРЕВОДЧЕСКИЙ СЕРВИС НА БАЗЕ ЭЛЕКТРОННОГО СООБЩЕСТВА 2015
  • Ян Давид Евгеньевич
  • Осипова Мария Александровна
RU2604984C1
УЛУЧШЕНИЕ ДОЛИ УСПЕШНЫХ ПОПЫТОК ИНТЕРАКТИВНОЙ ТРАНЗАКЦИИ 2017
  • Ван, Цзюнь
RU2720442C1
ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС ДЛЯ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ И УДАЛЕННОГО УПРАВЛЕНИЯ СЕТЕВЫМИ КОНЕЧНЫМИ ТОЧКАМИ 2015
  • Чебере Богдан-Константин
  • Аким Йоан-Александру
  • Падина Мирела-Луйза
  • Мирон Моника-Мария
  • Стан Козмин-Клаудиу
  • Албистяну Каталина
  • Берте Дан-Раду
  • Думитраке Богдан-Теодор
  • Мирческу Даньел-Александру
  • Новак Александру
RU2697935C2
Способ записи, редактирования и воссоздания компьютерного сеанса 2018
  • Бекмамбетов Тимур
  • Гай Бедфорд
  • Даниэль Кехо
RU2733919C2
СИСТЕМЫ И СПОСОБЫ ОБЕСПЕЧЕНИЯ УПРАВЛЕНИЯ ЦВЕТОМ 2003
  • Стоукс Майкл Д.
  • Секкья Адриан
RU2337392C2

Иллюстрации к изобретению RU 2 813 837 C2

Реферат патента 2024 года СИСТЕМА УПРАВЛЕНИЯ ГРАФИЧЕСКИМИ ОБЪЕКТАМИ

Изобретение относится к вычислительной технике, в частности к системам управления веб-приложениями. Технический результат заключается в повышении производительности и защищенности данных на сервере. Технический результат достигается за счет конфигурации клиентской части, содержащей локальный холст Canvas. Локальный холст Canvas выполнен с возможностью загрузки веб-браузером стандартного HTML документа с серверной части, содержащего клиентский код. Клиентский код содержит команду на отрисовку объекта на локальном холсте Canvas клиентской части. 5 з.п. ф-лы, 4 ил.

Формула изобретения RU 2 813 837 C2

1. Система управления графическими объектами, включающая управление элементами графического интерфейса пользователя GUI, содержащая серверную и клиентскую части, отличающаяся конфигурацией серверной части с возможностью предоставления API выполняемым на сервере программам сторонних производителей, с возможностью реализации стандартных сетевых протоколов HTTPS и WebSocket Secure для подключения браузеров клиентов; конфигурацией клиентской части, содержащей локальный холст Canvas, с возможностью загрузки веб-браузером с серверной части в виде стандартного HTML документа, содержащего клиентский код, выполненный на языке JavaScript, содержащий команду на отрисовку объекта на локальный холст Canvas клиентской части, при этом контроль доставки команды на отрисовку с сервера осуществлен сетевым протоколом.

2. Система управления графическими объектами по п. 1, отличающаяся тем, что выполнена с возможностью трансляции данных с устройств ввода пользователя последовательно через Клиента через сетевой интерфейс пользователя и сервера на уровень приложений сервера, откуда через интерфейс пользователя GUI серверной части может быть реализована команда на отрисовку объекта на локальный холст Canvas клиентской части.

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2024 года RU2813837C2

US 20120151372 A1, 14.06.2012
Способ и система для управления устройствами и контроля устройств 2017
  • Муравьев Олег Викторович
  • Конохов Константин Юрьевич
RU2648564C1
US 20120324365 A1, 20.12.2012
US 20110276661 A1, 10.11.2011
US 20110276619 A1, 10.11.2011.

RU 2 813 837 C2

Авторы

Елгешин Дмитрий Витальевич

Ляшук Валерий Васильевич

Подлевских Денис Геннадьевич

Даты

2024-02-19Публикация

2022-05-26Подача