Прокрутка изображения виртуального рабочего стола

Иллюстрации

Показать все

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

Реферат

УРОВЕНЬ ТЕХНИКИ

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

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

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

Существующие способы обеспечивают полосы прокрутки, например, графические интерфейсные элементы, для осуществления прокрутки обзорной области пользовательского интерфейса. Если полосу прокрутки перемещают, обзорная область пользовательского интерфейса плавно смещается. Этот способ, однако, является трудоемким и разрывает нормальную последовательность действий. Например, пользователь, который желает «перетаскивать» файл с одного конца пользовательского интерфейса на другой, должен перетащить файл к границе изображенной части пользовательского интерфейса (UI), переместить полосу прокрутки и перетащить файл в требуемую точку. В еще одном примере, пользователь, который работает с пользовательским интерфейсом, который проходит через множество физических мониторов, естественно перемещает свой курсор с одного монитора на другой, если изменяет центр своего внимания. Требование, чтобы пользователь перемещал полосу прокрутки, чтобы видеть различные части пользовательского интерфейса, разрывает эту естественную последовательность действий. Таким образом, будет желательным обеспечить более естественно интуитивный способ навигации по пользовательскому интерфейсу.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ФИГУР ЧЕРТЕЖЕЙ

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

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

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

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

Фиг.5 - изображение альтернативных вариантов осуществления последовательности операций 400 по Фиг.4.

Фиг.6 - иллюстрация альтернативного варианта осуществления последовательности операций 400 по Фиг.5.

Фиг.7 - иллюстрация альтернативного варианта осуществления последовательности операций.

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

Фиг.9 - изображение альтернативного варианта осуществления последовательности операций 800 по Фиг.8.

Фиг.10 - изображение альтернативного варианта осуществления последовательности операций 800 по Фиг.9.

Фиг.11 - изображение альтернативного варианта осуществления последовательности операций 800 по Фиг.10.

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

Фиг.13 - изображение альтернативного варианта осуществления последовательности операций 1200 по Фиг.12.

Фиг.14 - изображение альтернативного варианта осуществления последовательности операций 1200 по Фиг.13.

Фиг.15 - изображение альтернативного варианта осуществления последовательности операций 1200 по Фиг.12.

Фиг.16 - изображение альтернативного варианта осуществления последовательности операций 1200 по Фиг.15.

ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

Многочисленные варианты осуществления настоящего раскрытия могут исполняться на компьютере. Фиг.1 и последующее описание предназначены, чтобы обеспечить краткое общее описание подходящей вычислительной среды, в которой может быть реализовано раскрытие. Специалист в данной области техники может оценить, что вычислительная система по Фиг.1 в некоторых вариантах осуществления может реализовывать сервер 204 по Фиг.2 и клиент 201 по Фиг.3. В этих примерных вариантах осуществления, сервер 204 и клиент 201 могут включать в себя некоторые или все компоненты, описанные на Фиг.1, и в некоторых вариантах осуществления сервер 204 и клиент 201 могут включать в себя схему, конфигурированную, чтобы проиллюстрировать конкретные аспекты настоящего раскрытия. Например, термин «схема», используемый по всему раскрытию, может включать специализированные аппаратные компоненты, конфигурированные для выполнения функции(ий) посредством микропрограммного обеспечения или коммутаторов. В других примерных вариантах осуществления термин «схема» может включать в себя универсальный блок обработки, запоминающее устройство, и т.д., конфигурируемые согласно программным командам, которые заключают в себе логику, способную выполнять функцию(и). В примерных вариантах осуществления, где схема включает в себя комбинацию аппаратных средств и программного обеспечения, разработчик может написать исходный текст программы, заключающий в себе логику, и исходный текст может быть скомпилирован в машиночитаемый код, который может обрабатываться универсальным блоком обработки. Поскольку специалист в данной области техники может оценить, что уровень техники эволюционировал к стадии развития, где имеется небольшое различие между аппаратными средствами, программным обеспечением или комбинацией аппаратного/программного, выбор аппаратных средств в сравнении с программным обеспечением для реализации конкретной функции, является предметом выбора проектного решения, оставляемого разработчику. Более конкретно, специалист в данной области техники может оценить, что программно реализованный процесс может быть преобразован в эквивалентную аппаратную структуру, и аппаратная структура может быть непосредственно преобразована в эквивалентный программно реализованный процесс. Таким образом, выбор аппаратной реализации против программной реализации является предметом выбора проектного решения и оставлен разработчику.

Теперь со ссылкой на Фиг.1 изображена иллюстративная универсальная вычислительная система. Универсальная вычислительная система может включать в себя обычный персональный компьютер 20 или подобный, включающий в себя блок 21 обработки, системную память 22 и системную шину 23, которая связывает различные системные компоненты, включая системную память, с блоком 21 обработки. Системная шина 23 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину, и локальную шину, использующую любую из разнообразия шинных архитектур. Системная память включает в себя постоянное запоминающее устройство (ПЗУ, ROM) 24 и оперативное запоминающее устройство (ОЗУ, RAM) 25. Базовая система 26 ввода/вывода (БСВВ, BIOS), содержащая базовые процедуры, которые помогают передавать информацию между компонентами в рамках персонального компьютера 20, например, в течение запуска, хранится в ПЗУ 24. Персональный компьютер 20 может дополнительно включать в себя накопитель 27 на жестком диске для считывания с жесткого диска и записи на таковой, не показано, накопитель 28 на магнитом диске для считывания со съемного магнитного диска 29 или записи на таковой, и накопитель 30 на оптическом диске для считывания со съемного оптического диска 31 или записи на таковой, например, ПЗУ на компакт-диске (CD ROM) или другой оптический носитель. В некоторых примерных вариантах осуществления исполнимые компьютером команды, заключающие в себе аспекты настоящего раскрытия, могут храниться в ПЗУ 24, на жестком диске (не показано), в ОЗУ 25, на съемном магнитном диске 29, оптическом диске 31, и/или в кэш-памяти блока 21 обработки. Накопитель 27 на жестком диске, накопитель 28 на магнитном диске, и накопитель 30 на оптическом диске соединяются с системной шиной 23 посредством интерфейса 32 накопителя на жестком диске, интерфейса 33 накопителя на магнитном диске, и интерфейса 34 накопителя на оптическом диске, соответственно. Накопители и связанные с ними читаемые компьютером носители информации обеспечивают для персонального компьютера 20 энергонезависимое хранилище читаемых компьютером команд, структур данных, программных модулей и других данных. Хотя описанная в документе иллюстративная среда использует жесткий диск, съемный магнитный диск 29 и съемный оптический диск 31, специалисты в данной области техники должны оценить, что другие типы читаемых компьютером носителей информации, которые могут хранить данные, к которым может осуществлять доступ компьютер, такие как кассеты магнитной ленты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ, RAM), постоянные запоминающие устройства (ПЗУ, ROM) и подобное, также могут использоваться в иллюстративной среде.

Ряд программных модулей может храниться на жестком диске, магнитном диске 29, оптическом диске 31, в ПЗУ 24 или ОЗУ 25, включая операционную систему 35, одну или несколько прикладных программ 36, другие программные модули 37 и программные данные 38. Пользователь может вводить команды и информацию в персональный компьютер 20 через устройства ввода, такие как клавиатура 40 и указательное устройство 42. Другие устройства ввода (не показано) могут включать в себя микрофон, джойстик, игровую панель, спутниковый диск, сканер или подобное. Эти и другие устройства ввода обычно соединяются с блоком 21 обработки через интерфейс 46 последовательного порта, связанный с системной шиной, но может быть соединен посредством других интерфейсов, таких как параллельного порта, игрового порта или универсальной последовательной шины (USB). Дисплей 47 или другой тип устройства отображения может также быть соединен с системной шиной 23 через интерфейс, такой как видеоадаптер 48. В дополнение к дисплею 47, персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показано), такие как динамики и принтеры. Иллюстративная система по Фиг.1 также включает в себя контроллер 55 сервера, шину 56 интерфейса малых вычислительных систем (SCSI), и внешнее запоминающее устройство 62, соединенное с шиной 56 SCSI.

Персональный компьютер 20 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 49. Удаленным компьютером 49 может быть другой персональный компьютер, сервер, маршрутизатор, сетевой PC (ПК), одноранговое устройство или другой обычный сетевой узел, и обычно может включать в себя многие или все элементы, описанные выше относительно персонального компьютера 20, хотя на Фиг.1 было проиллюстрировано только запоминающее устройство 50. Логические соединения, изображенные на Фиг.1, могут включать в себя локальную сеть (ЛВС, LAN) 51 и глобальную сеть (ГВС, WAN) 52. Такие сетевые среды являются типичными в учреждениях, сетях масштаба предприятия, интрасетях и сети Internet.

При использовании в сетевой среде LAN, персональный компьютер 20 может быть соединен с LAN 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде WAN, персональный компьютер 20 может обычно включать в себя модем 54 или другое средство для установления связи по глобальной сети 52, такой как Internet. Модем 54, который может быть внутренним или внешним, может быть соединен с системной шиной 23 через интерфейс 46 с последовательным портом. В сетевой среде программные модули, изображенные относительно персонального компьютера 20, или частей такового, могут храниться в удаленном запоминающем устройстве. Будет оценено, что показанные сетевые соединения являются иллюстративными, и могут использоваться другие средства установления канала связи между компьютерами. Кроме того, хотя предполагается, что многочисленные варианты осуществления настоящего раскрытия особенно хорошо подходят для систем с применением компьютера, подразумевается, что в этом документе ничто не ограничивает раскрытие такими вариантами осуществления.

Теперь, что касается фигур Фиг.2 и Фиг.3, они в целом иллюстрируют примерные среды, в которых могут быть реализованы аспекты настоящего раскрытия. Специалист в данной области техники может оценить, что примерные элементы, изображенные посредством Фиг.2 и Фиг.3, иллюстрируются, чтобы обеспечить операционную структуру для описания настоящего раскрытия. Соответственно, в некоторых вариантах осуществления физическое размещение каждой среды может быть различным в зависимости от различных схем реализации. Таким образом, примерную операционную структуру следует трактовать в качестве лишь иллюстративной и никоим образом не ограничивающей объем формулы изобретения. Специалист в данной области техники может также оценить, что последующее описание является вводным, и изображенные на Фиг.2 и Фиг.3 элементы описаны более подробно в рамках описания операционных процедур, изображенных посредством Фиг.4 - Фиг.16.

В целом, на Фиг.2 изображено высокоуровневое общее представление среды сервера, которая может быть конфигурирована с возможностью включения аспектов настоящего раскрытия. Со ссылкой на фигуру чертежа, изображен сервер 204, который может включать в себя схему в конфигурации с возможностью выполнения терминального сервера, или в других вариантах осуществления сервер 204 может включать в себя схему, конфигурированную для поддержания удаленных соединений рабочего стола. В изображенном примере, сервер 204 может быть конфигурирован с возможностью формировать одного или нескольких сеансов для клиентов соединения, таких как сеансы 1 - N (где N является целым числом больше 2). Вкратце, сеанс в примерных вариантах осуществления настоящего раскрытия может в целом включать в себя операционную среду, которая приводится в исполнение множеством подсистем, например, программного кода, которые конфигурированы с возможностью взаимодействовать с ядром 214 сервера 204. Например, сеанс может включать в себя процесс, создающий экземпляр пользовательского интерфейса, такого как окно рабочего стола, подсистемы, отслеживающие перемещение мыши внутри окна, подсистемы, переводящие щелчок мыши на пиктограмме в команды, которые приводят в исполнение экземпляр программы, и т.д. Сеанс может формироваться сервером 204 на основе «по каждому пользователю» посредством сервера 204, когда, например, сервер 204 принимает запрос соединения по сетевому соединению от клиента 201. В целом, запрос соединения первично может быть обработан транспортной логикой 210, которая может, например, приводиться в исполнение схемой сервера 204. Транспортная логика 210 в некоторых вариантах осуществления может включать в себя сетевой адаптер; микропрограммное обеспечение и программное обеспечение, которое может быть конфигурировано с возможностью принимать сообщения соединения и пересылать их на процессор 212. Как иллюстрировано посредством Фиг.2, транспортная логика 210 может в некоторых вариантах осуществления включать в себя экземпляры стека протоколов для каждого сеанса. В целом, каждый экземпляр стека протоколов может быть конфигурирован с возможностью маршрутизации на клиент вывода пользовательского интерфейса и маршрутизации пользовательского ввода, принятого от клиента, на базовые средства 244 сеанса, связанные с его сеансом.

В продолжение общего описания по Фиг.2, процессор 212 в некоторых примерных вариантах осуществления настоящего раскрытия может быть конфигурирован с возможностью обрабатывать запросы сеансов; определять функциональность для каждого сеанса; формировать сеансы путем распределения набора физических ресурсов для сеанса; и создания экземпляра стека протоколов для сеанса. В некоторых вариантах осуществления процессор 212 может выполняться посредством компонентов специализированных схем, которые могут реализовывать некоторые из вышеупомянутых операционных процедур. Например, схема в некоторых примерных вариантах осуществления может включать в себя запоминающее устройство и блок обработки, который конфигурирован с возможностью исполнять код, который выполняет процессор 212. Как изображено на Фиг.2, в некоторых случаях процессор 212 может принимать запросы соединения и определять, что, например, имеется лицензия, и может формироваться сеанс для запроса. В ситуации, где сервером 204 является удаленный компьютер, который включает в себя возможности удаленного рабочего стола, процессор 212 может быть конфигурирован с возможностью формирования сеанса в ответ на запрос соединения без проверки лицензии. Как иллюстрируется посредством Фиг.2, сеансовый администратор 216 может быть конфигурирован с возможностью принимать сообщение от процессора 212, и в ответ на сообщение сеансовый администратор 216 может добавлять идентификатор сеанса в таблицу; выделять память для идентификатора сеанса; и формировать переменные системного окружения и экземпляры процессов подсистем в памяти, выделенной для идентификатора сеанса.

Как иллюстрируется посредством Фиг.2, сеансовый администратор 216 может создавать экземпляры подсистем окружения, таких как подсистема 240 времени выполнения, которая может включать в себя часть привилегированного режима (ядра), такую как базовые средства 244 сеанса. Например, подсистемы среды в варианте осуществления конфигурированы с возможностью предоставления прикладным программам некоторого подмножества услуг и обеспечения точки доступа к ядру операционной системы 214. В примерных вариантах осуществления подсистема 240 времени выполнения может управлять исполнением процессов и потоков, и базовые средства 244 сеанса может посылать запросы на исполняющую программу ядра 214 для выделения памяти для потоков и планирования для них времени, чтобы подлежать исполнению. В варианте осуществления базовые средства 244 сеанса могут включать в себя интерфейс 246 (GDI) графических устройств, подсистему 250 обеспечения безопасности, и подсистему 252 ввода. Подсистема 252 ввода может в этих вариантах осуществления быть конфигурирована с возможностью принимать пользовательский ввод от клиента 201 посредством экземпляра стека протоколов, связанного с сеансом, и передавать ввод на базовые средства 244 сеанса для соответствующего сеанса. Пользовательский ввод в некоторых вариантах осуществления может включать в себя сигналы, указывающие команды абсолютного и/или относительного перемещения мыши, координаты мыши, щелчки мышью, сигналы клавиатуры, сигналы перемещения джойстика, и т.д. Пользовательский ввод, например, двойной щелчок мышью на пиктограмме, может приниматься базовыми средствами 244 сеанса, и подсистема 252 ввода может быть конфигурирована с возможностью определять, что пиктограмма находится в координатах, связанных с двойным щелчком. Подсистема 252 ввода затем может быть конфигурирована с возможностью посылать уведомление на подсистему 240 времени выполнения, которая может исполнять процесс для приложения, связанного с пиктограммой.

В дополнение к приему ввода от клиента 201, команды вычерчивания могут приниматься от приложений и/или рабочего стола и обрабатываться посредством GDI 246. GDI 246 в целом может включать в себя процесс, который может формировать команды вычерчивания графических объектов. GDI 246 в этом примерном варианте осуществления может быть конфигурирован с возможностью передать свои выходные данные на подсистему 254 удаленного дисплея, где команды форматируются для драйвера дисплея, присоединенного к сеансу. В некоторых примерных вариантах осуществления один или несколько физических дисплеев могут быть присоединенными к серверу 204, например, в ситуации удаленного рабочего стола. В этих примерных вариантах осуществления подсистема 254 удаленного дисплея может быть конфигурирована с возможностью зеркально дублировать команды вычерчивания, которые визуализируются драйвером(ами) дисплея удаленной вычислительной системы, и передавать зеркально дублированную информацию на клиент 201 через связанный с сеансом экземпляр стека. В другом примерном варианте осуществления, где сервером 204 является терминальный сервер, подсистема 254 удаленного дисплея может быть конфигурирована с возможностью включать в себя драйвер(ы) виртуального дисплея, который может не быть связанным с дисплеями, физически присоединенными к серверу 204, например, сервер 204 может быть автономно исполняющимся. Подсистема 254 удаленного дисплея в этом варианте осуществления может быть конфигурирована с возможностью приема команд вычерчивания для одного или нескольких виртуальных дисплеев и передачи их на клиент 201 через экземпляр стека, связанный с сеансом. В варианте осуществления настоящего раскрытия, подсистема 254 удаленного дисплея может быть конфигурирована с возможностью определять разрешение изображения для каждого драйвера дисплея, например, определять разрешение изображения для драйвера(ов) виртуального дисплея, связанного с виртуальными дисплеями, или разрешение изображения для драйверов дисплея, связанных с физическими дисплеями; и маршрутизировать пакеты на клиент 201 через связанный экземпляр стека протоколов.

В некоторых примерных вариантах осуществления сеансовый администратор 216 может дополнительно создавать экземпляр процесса регистрации пользователя, связанного с идентификатором сеанса для сеанса, который может быть конфигурирован с возможностью обрабатывать для сеанса вход в систему и выход из системы. В этих примерных вариантах осуществления команды вычерчивания, указывающие графический пользовательский интерфейс, связанный с процессом регистрации пользователя, могут передаваться на клиент 201, где пользователь клиента 201 может вводить в экран регистрации идентификатор учетной записи, например, комбинацию имени пользователя/пароля, идентификатор микропроцессорной карточки и/или биометрическую информацию. Информация может передаваться на сервер 204 и направляться на процессор 212 и подсистему 250 безопасности в составе базовых средств 244 сеанса. Например, в некоторых примерных вариантах осуществления процессор 212 может быть конфигурирован с возможностью определять, связана ли учетная запись пользователя с лицензией; и подсистема 250 безопасности может быть конфигурирована с возможностью формировать маркер доступа для сеанса.

Теперь, что касается Фиг.3, показано изображение примерного клиента 201, в котором могут быть реализованы аспекты настоящего раскрытия. В целом, примерный клиент 201 по Фиг.3 может быть с возможностью взаимодействия связан с сервером 204 посредством сети Internet. В варианте осуществления клиентом 201 может быть компьютер, терминал, реализованный аппаратными средствами, конфигурированный с возможностью направлять пользовательский ввод на сервер 204 и визуально отображать информацию пользовательского интерфейса, формируемую сервером 204. В другом варианте осуществления, клиентом 201 может быть компьютер, который включает компоненты, сходные с таковыми для персонального компьютера 20 по Фиг.1. В этом примерном варианте осуществления, клиент 201 может включать в себя схему, конфигурированную для выполнения операционной системы 312, и схему, конфигурированную для эмуляции функциональности терминала. Специалист в данной области техники может оценить, что схема, конфигурированная для выполнения операционной системы 312, также может быть конфигурирована с возможностью эмулировать терминал. Продолжая общее описание Фиг.3, клиент 201 может включать в себя клиентскую подсистему 306, которая может в некоторых вариантах осуществления предоставлять подмножество диспетчерских услуг, и библиотеки (DLL) динамической компоновки связей, которые переводят вызовы интерфейса (API) прикладного программирования в вызовы привилегированного режима для ядра 314. В варианте осуществления клиентская подсистема 306 может включать в себя драйвер дисплея для дисплея, который может быть соединен с клиентом 201. Клиентская подсистема 306 может быть конфигурирована с возможностью приема от сервера 204 команд вычерчивания и управления драйвером дисплея, чтобы вычерчивать изображения на виртуальном рабочем столе 302. Как только виртуальный рабочий стол 302 вычерчен в памяти, драйвер дисплея может быть конфигурирован для визуализации обзорной области виртуального рабочего стола 302 на физическом дисплее, например, клиентская подсистема 306 может дать указание драйверу дисплея выбрать область 304 виртуального рабочего стола 302 и визуализировать ее на дисплее. В продолжение общего описания Фиг.3, изображена подсистема 308 прокрутки, которая в некоторых вариантах осуществления может являться частью клиентской подсистемы 306 или отдельной подсистемой, которая взаимодействует с клиентской подсистемой 306. Подсистема 308 прокрутки в целом может быть конфигурирована с возможностью определять, когда осуществлять прокрутку обзорной области 304 виртуального рабочего стола 302, отслеживая различные переменные.

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

Теперь, что касается Фиг.4, на ней изображена примерная блок-схема для практического осуществления аспектов настоящего раскрытия, включающая операции 400-412. Примерная операция 400 начинает операционную процедуру, и операция 402 изображает формирование, исходя из информации о геометрии, принятой от удаленного компьютера, виртуального рабочего стола, содержащего разрешение изображения, соответствующее драйверу дисплея удаленного компьютера. Например, и со ссылкой на Фиг.2 вместе с Фиг.3, клиент 201 может быть конфигурирован с возможностью принимать от сервера 204 сигнал, например, один или несколько пакетов информации, указывающей информацию о геометрии, и клиентская подсистема 306 по Фиг.3 может быть конфигурирована с возможностью обрабатывать информацию, чтобы формировать виртуальный рабочий стол 302 в памяти. В примерном варианте осуществления информация геометрии может задавать разрешение изображения для драйвера дисплея сервера 204, и клиентская подсистема 306 может формировать виртуальный рабочий стол 302, например, битовый образ, который имеет такое же разрешение изображения, как и сервер 204.

В варианте осуществления настоящего раскрытия подсистема 254 удаленного дисплея для сервера 204 может быть конфигурирована с возможностью формировать информацию о геометрии, например, путем формирования ограничивающего прямоугольника, который включает в себя количество пикселов, равное количеству пикселов изображения, связанных с драйвером(ами) дисплея сервера 204. В конкретном примере, сервером 204 могут быть созданы экземпляры четырех драйверов дисплея, и каждый может иметь разрешение 1280 на 1024 пикселов. В этом примере подсистема 254 удаленного дисплея может формировать ограничивающий прямоугольник, который имеет геометрию в 5120 на 1024 пикселов. Подсистема 254 удаленного дисплея дополнительно может быть конфигурирована с возможностью переводить позицию пиктограмм и т.п. из координат, специфических для каждого драйвера дисплея, в координаты ограничивающего прямоугольника и посылать информацию геометрии на клиент 201 посредством транспортной логики 210. В этом примере клиент 201 может быть конфигурирован с возможностью формировать ограничивающий прямоугольник исходя из информации геометрии. В продолжение конкретного примера, клиентская подсистема 306 может быть конфигурирована с возможностью принимать сигнал и давать указание драйверу дисплея формировать в памяти виртуальный рабочий стол 302 размером 5120 на 1024 пикселов. В этом примере клиентская подсистема 306 может затем конфигурировать драйвер дисплея, чтобы вычерчивать графику в виде битового образа относительно их положения в ограничивающем прямоугольнике. В другом конкретном примере, подсистема 254 удаленного дисплея может быть конфигурирована с возможностью определять, что драйвер дисплея, присоединенный к серверу 204, конфигурирован для вывода с разрешением изображения в 2048 на 1536 пикселов. В этом примере, подсистема 254 удаленного дисплея могла быть конфигурирована с возможностью передавать на клиент 201 информацию геометрии, указывающую разрешение изображения, посредством транспортной логики 210. В этом конкретном примере, клиентская подсистема 306 может быть конфигурирована с возможностью принимать сигнал и формировать в памяти виртуальный рабочий стол 302 размером 2048 на 1536 пикселов, и клиентская подсистема 306 может конфигурировать драйвер дисплея для вычерчивания графических данных в виде битового образа относительно их положения в ограничивающем прямоугольнике.

В продолжение описания Фиг.4, операция 404 изображает вычерчивание принятых от удаленного компьютера графических данных внутри виртуального рабочего стола. Например, и в продолжение предыдущего примера, клиентская подсистема 306 может быть конфигурирована с возможностью принимать от подсистемы 254 удаленного дисплея сигнал, например, один или несколько пакетов, указывающих команды вычерчивания. Команды могут обрабатываться клиентской подсистемой 306, и драйвер дисплея в составе клиента 201 может быть конфигурирован с возможностью вычерчивать изображения внутри виртуального рабочего стола 302. В конкретном примере, от сервера 204 может приниматься сигнал, который задает среду рабочего стола с наличием множества пиктограмм наряду с позиционной информацией для каждой пиктограммы относительно сервера 204. Клиентская подсистема 306 может обрабатывать информацию и давать указание драйверу дисплея вычерчивать рабочий стол и пиктограммы относительно ограничивающего прямоугольника.

В продолжение описания Фиг.4, операция 406 изображает визуализацию обзорной области виртуального рабочего стола, причем обзорная область задается посредством границ и изображает часть виртуального рабочего стола. В продолжение описания примера операционной процедуры, после того, как графические данные приняты от сервера 204 и вычерчены по отношению к виртуальному рабочему столу 302, драйвер дисплея клиентской подсистемы 306 может быть конфигурирован с возможностью визуализировать обзорную область 304 виртуального рабочего стола 302. Например, в одном варианте осуществления настоящего раскрытия, тогда как полный виртуальный рабочий стол 302 может быть вычерчен в памяти, драйвер дисплея может визуализировать только подмножество графических данных на присоединенном к клиенту 201 дисплее на основании того, находится ли подмножество в текущей обзорной области виртуального рабочего стола 302. В варианте осуществления настоящего раскрытия драйвер дисплея клиента 201 может иметь конкретное разрешение изображения, которое меньше разрешения изображения виртуального рабочего стола 302, например, разме