Предоставление возможности применения команды изменения графического окна к дистанционно сгенерированному графическому окну

Иллюстрации

Показать все

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

Реферат

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

Продукты, поддерживающие сеанс удаленного терминала, такие как продукт Terminal Services™, предлагаемый компанией Microsoft Corporation, предоставляют возможность сеанса удаленного терминала между клиентской машиной и серверной машиной. Сеанс удаленного терминала (СУТ) может предоставить возможность генерирования окон графического пользовательского интерфейса (в дальнейшем, "графические окна"), таких как графические окна приложений, на серверной машине. СУТ предоставляет возможность отображения на клиентской машине представления, такого как битовая карта изображения, дистанционно сгенерированного графического окна. Клиентская машина также может самостоятельно генерировать графические окна приложений для отображения на клиентской машине. Пользователь клиентской машины может задействовать или локально сгенерированные графические окна приложений или дистанционно сгенерированные графические окна приложений, или и то и другое. Существует постоянная потребность в технологии, которая обеспечивает сходные функциональные возможности и для локально сгенерированных графических окон приложений и для дистанционно сгенерированных графических окон приложений.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

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

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

Фиг.1-6 изображают иллюстративную систему для обеспечения возможности применения команды изменения графического окна для дистанционно сгенерированного графического окна в соответствии с одним вариантом осуществления.

Фиг.7 изображает иллюстративную систему для обеспечения возможности применения команды изменения графического окна для дистанционно сгенерированного графического окна в соответствии с одним вариантом осуществления.

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

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

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

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

Краткий обзор

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

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

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

Иллюстративные Системы

Для ясности рассмотрим в совокупности Фиг.1-6, которые иллюстрируют систему 100, выполненную с возможностью поддержки сеанса удаленного терминала между удаленной машиной 102 и локальной машиной 104 по вычислительной сети 106. Удаленная машина 102 выполняется с возможностью генерирования графического окна 110 серверного приложения. Специалисту в данной области техники будет понятно, что хотя графическое окно 110 серверного приложения в настоящем описании для ясности отображается визуально, настоящие варианты осуществления функционируют без генерирования в действительности видимого изображения на удаленной машине. Сеанс удаленного терминала предоставляет средство для отправки представления графического окна 110 серверного приложения удаленной машины на локальную машину 104 по вычислительной сети 106. Например, среди прочих, представление может быть битовой картой изображения. Сеанс удаленного терминала дополнительно приводит к генерированию представляющего графического окна 112 на локальной машине 104 в клиентской рабочей области 114. Представление графического окна серверного приложения, именуемое в настоящем описании как дистанционно сгенерированное графическое окно 116 приложения, может быть выведено или отображено на представляющем графическом окне 112. Для наглядности, сгенерированное локально или клиентом графическое окно 118 приложения также изображается в клиентской рабочей области 114 на локальной машине 104. Для ясности, термины «локально» и «дистанционно» используются в настоящем описании с точки зрения пользователя, находящегося за машиной, выполненной с возможностью отображения и локально и дистанционно сгенерированных графических окон приложений. Дополнительно, для наглядности, дистанционно сгенерированное графическое окно 116 приложения изображается в настоящем описании как занимающее часть области представляющего графического окна 112. Во многих случаях дистанционно сгенерированное графическое окно 116 приложения выводится по существу на все представляющее графическое окно так, что представляющее графическое окно не видно. Дополнительно, в то время как графические окна приложений повсеместно изображены в настоящем описании приблизительно прямоугольными, по меньшей мере, часть вариантов осуществления применимы для использования с любой формой графического окна приложения, в том числе сложных форм. Система 100 выполняется с возможностью разрешения применения команды изменения графического окна к дистанционно сгенерированному графическому окну 116. В данном варианте осуществления система 100 дополнительно выполняется с возможностью поддержки выбранного пользователем режима для операций перемещения/изменения размера графического окна приложения, независимо от того, генерируется ли графическое окно локально или дистанционно.

Предположим для ясности, что пользователь локальной машины 104 выбрал контурный режим перемещения/изменения размера графического окна для локальной машины 104. Предположим также, что пользователь хочет увеличить локально сгенерированное графическое окно 118 приложения от первого размера, показанного на Фиг.1, до большего размера, наблюдаемого на Фиг.3. Пользователь может совершить такое перемещение при помощи различных пользовательских команд, которые инициализируют процесс перемещения/изменения размера графического окна. Например, одним типом пользовательской команды является системная команда с помощью системного меню. Другие типы пользовательских команд, которые могут инициализировать процесс перемещения/изменения размера графического окна, могут включать в себя, среди прочих, распознавание голоса, распознавание жестов с помощью камеры, и ввод с клавиатуры. Еще один тип пользовательской команды задействует наведение курсора манипулятора мышь на графическое окно и нажатие и удержание клавиши манипулятора мышь во время перетаскивания в новое положение. Например, пользователь может щелкнуть клавишей на границе локально сгенерированного графического окна, например, на нижней правой границе локально сгенерированного графического окна 118 приложения, что обозначено в целом ссылочным значением 120. Например, пользователь может нажать и удерживать клавишу манипулятора мышь и перетаскивать вниз и вправо, что обозначено в целом стрелками 202. Локальная машина 104 создает контур 204 локально сгенерированного графического окна 118 приложения, которое получится в результате движения манипулятора мышь, пока клавиша манипулятора мышь не будет освобождена как, например, обозначено в целом ссылочным значением 206. Освобождение клавиши манипулятора мышь указывает, что изменение размера пользователем завершено. После завершения пользователем изменения размера локально сгенерированное графическое окно 118 приложения корректируется, чтобы соответствовать контуру 204, что можно увидеть на Фиг.3.

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

В данном случае пользователь захватывает манипулятором мышь правую нижнюю границу или угол дистанционно сгенерированного графического окна 116 приложения и/или лежащего в основе представляющего графического окна 112. Предположим, что пользователь щелкает клавишей на позиции 402 и начинает перетаскивание вниз и вправо, что обозначено в целом стрелками 502. Система 100 в ответ генерирует контур 504 представляющего графического окна 112, которое следует за пользовательским курсором 506 до тех пор, пока пользователь не освободит или не отпустит курсор, например, в положении, обозначенном наличием курсора 506 на Фиг.5. Во время операции перетаскивания часть контура 504 выходит за пределы области графического окна удаленного приложения. Собственно, в этом случае, когда пользователь выбрал контурный режим, пользовательские команды для перемещения/изменения размера обрабатываются на локальной машине 104, чтобы начать перемещение/изменение размера, соответствующие клиентским командам.

После завершения пользовательской команды изменения размера представляющее графическое окно 112 обновляется в соответствии с размером контура 504. Затем удаленная машина обновляет графическое окно 110 приложения относительно размера/положения обновленного представляющего графического окна. Соответствующее обновленное дистанционно сгенерированное графическое окно 116 приложения отправляется на локальную машину 104, чтобы синхронизировать дистанционно сгенерированное графическое окно 116 приложения и представляющее графическое окно 112, как можно увидеть на Фиг.6. Система 100 обеспечивает функциональные возможности перемещения/изменения размера для дистанционно сгенерированного графического окна приложения, которые почти соответствуют или имитируют функциональные возможности перемещения/изменения размера локально сгенерированного графического окна приложения. В то время как выше для ясности описывалось изменение размера графического окна, подобным образом может быть проведено перемещение графического окна.

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

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

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

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

Рассмотрим Фиг.7, которая изображает систему 100A, выполненную с возможностью обеспечения аналогичного внешнего представления или пользовательского интерфейса для пользовательских команд изменения, касающихся локально сгенерированных графических окон приложений и дистанционно сгенерированных графических окон приложений. Система 100A выполняется с возможностью поддержки сеанса удаленного терминала между удаленной машиной 102A и локальной машиной 104A по сети 106A.

Удаленная машина 102A включает в себя серверный администратор 702 удаленных приложений, администратор 704 графических окон и одно или более серверных приложений 706, работающих в серверной операционной системе (ОС) 708. Локальная машина 104A включает в себя клиентский администратор 710 удаленных приложений, и может включать в себя одно или более клиентских приложений 712, работающих в клиентской операционной системе (ОС) 714. Примеры серверных приложений 706 и клиентских приложений 712, которые используются в настоящем описании, могут включать в себя любое кодовое (программное) средство, которое раскрывает графический интерфейс. Например, такие приложения могут включать в себя, среди прочих, приложения обработки текстов, приложения электронных таблиц, приложения обмена сообщениями, приложения записи в блокнот, приложения работы с графикой, инструментальные средства просмотра файлов, такие как средство просмотра файлов под маркой Windows Explorer, предлагаемое компанией Microsoft Corporation, инструментальные средства панели управления, графические инструментальные средства для добавления оборудования, сетевые соединения и компьютерные игры.

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

Система 100A выполняется с возможностью определения выбранного пользователем на локальной машине режима перемещения/изменения размера. В таком случае система 100A выполняется с возможностью обработки пользовательских команд перемещения/изменения размера графического окна, исходя из выбранного пользователем режима для операций перемещения/изменения размера графического окна приложения, независимо от того, сгенерировано графическое окно локально или дистанционно. Пользовательские команды, касающиеся локально сгенерированных графических окон приложений, обрабатываются на локальной машине обычным способом. Система 100A выполняется с возможностью обработки пользовательских команд, касающихся дистанционно сгенерированного графического окна приложения, исходя из выбранного пользователем режима. Если пользователь выбрал режим полного изображения, команды обрабатываются на серверной стороне с результатами, наблюдаемыми на клиентской стороне. Если пользователь выбрал контурный режим, то система 100A конфигурируется для инициализации команд перемещения/изменения размера на клиентском представляющем графическом окне 112A, а затем графическое окно 110A приложения на серверной стороне соответственно обновляется для восстановления синхронизации представляющего графического окна 112A и дистанционно сгенерированного графического окна 116A приложения. Ниже описываются некоторые компоненты системы 100A, касательно обеспечения вышеупомянутых функциональных возможностей.

Серверный администратор 702 удаленных приложений выполняется с возможностью содействия (облегчения) функциональным возможностям сеанса удаленного терминала на серверной стороне. Серверный администратор удаленных приложений выполняется с возможностью администрирования серверного приложения 706 так, чтобы представление графического окна 110A серверного приложения могло быть отправлено на локальную машину 104A во время сеанса удаленного терминала. Также серверный администратор 702 удаленных приложений выполняется с возможностью облегчения передачи данных, имеющих отношение к графическому окну 110A серверного приложения, от сервера клиенту. Например, на сервере могут выполняться множественные приложения, тогда как только одно из приложений является удаленным для клиента 104A. В некоторых вариантах осуществления серверный администратор 702 удаленных приложений выполняется с возможностью гарантирования того, что данные от соответствующего окна приложения отправляются клиенту.

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

Клиентский администратор 710 удаленных приложений выполняется с возможностью установления сеанса удаленного терминала с сервером и управления межсоединениями с сервером, имеющими отношение к сеансу удаленного терминала. Кроме того, клиентский администратор удаленных приложений выполняется с возможностью вызывать генерирование представляющего графического окна 112A на локальной машине 104A и вызывать вывод представления графического окна 110A серверного приложения на представляющем графическом окне 112A в виде дистанционно сгенерированного графического окна 116A приложения. Клиентский администратор удаленных приложений выполняется с дополнительной возможностью обработки сведений, касающихся размера и указания координат клиентского представляющего графического окна 112A, на основании, по меньшей мере, частично, принятой от серверного администратора 702 удаленных приложений информации о графическом окне 110A соответствующего серверного приложения.

Кроме того, клиентский администратор 710 удаленных приложений выполняется с возможностью приема информации, касающейся режима перемещения/изменения размера локальной машины 104A. Например, как уже упоминалось выше, в некоторых вариантах осуществления локальная машина может находиться в контурном режиме или в режиме отображения всего содержимого окна. Клиентский администратор 710 удаленных приложений выполняется с возможностью совместного использования режима перемещения/изменения размера локальной машины с серверным администратором 702 удаленных приложений.

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

Система 100A выполняется с возможностью выявления (обнаружения) пользовательских команд, имеющих отношение к изменению графического окна, задействованного в сеансе удаленного терминала, такого как представляющее графическое окно 112A. Например, такое выявление может быть выполнено клиентским администратором 710 удаленных приложений или на серверной стороне, например, серверным администратором 702 удаленных приложений. Например, серверный администратор 702 удаленных приложений может быть выполнен с возможностью оценки оконных команд, относящихся к представляющему графическому окну 112A, чтобы выявлять, что пользователь инициирует перемещение или изменение размера графического окна по отношению к представляющему графическому окну 112A. Пользователь может начать перемещение/изменение размера графического окна, применяя один из многочисленных возможных подходов. Например, пользователь может отправить соответствующую системную команду перемещения/изменения размера графического окна, например, используя системное меню. В другом примере пользователь может нажать клавишу манипулятора мышь на заголовке/рамке графического окна и затем перетащить графическое окно. Например, для выполнения команды перемещения/изменения размера графического окна пользователь может щелкнуть клавишей манипулятора мышь на участке нерабочей области графического окна. Такие участки нерабочей области могут включать в себя, наряду с другими, границу (изображенную на Фиг.1-6) или заголовок 720, который обозначен для представляющего графического окна 112A. Во многих конфигурациях пользователь щелкает клавишей на границе графического окна, если пользователь хочет изменить размеры графического окна, и щелкает клавишей на заголовке, если пользователь хочет переместить графическое окно.

Для случая, когда обнаруживается перемещение/изменение размера, система 100A выполняется с дополнительной возможностью установления различия между перемещением графического окна и изменением размера графического окна. Исходя из того, находится ли локальная машина в режиме полного изображения или в контурном режиме, как упомянуто выше, система 100A выполняется с возможностью совершения соответствующего действия, чтобы выполнить пользовательскую команду. В одном таком примере конкретной системной конфигурации серверный администратор 702 удаленных приложений выполняется с возможностью обнаружения пользовательской команды перемещения/изменения размера для представляющего (прокси-) графического окна сеанса удаленного терминала между удаленной машиной 102A и локальной машиной 104A. Кроме того, серверный администратор 702 удаленных приложений выполняется с возможностью совершения соответствующих действий, чтобы выполнить команду перемещения/изменения размера в соответствии с выбранным пользователем режимом перемещения/изменения размера, или режимом полного изображения, или контурным режимом.

В этом случае серверный администратор 702 удаленных приложений выполняется с возможностью определения, имеет ли пользовательская команда отношение к операции изменения размера окна по отношению к графическому окну, задействованному в сеансе удаленного терминала. Как только определено, что команда перемещения/изменения размера инициализирована, серверный администратор 702 удаленных приложений предпринимает действие, исходя из выбранного пользователем режима перемещения/изменения размера графического окна. Для этого конкретного варианта осуществления, если режимом перемещения/изменения размера является полное изображение, то серверный администратор 702 удаленных приложений обрабатывает команду на сервере и соответственно обновляет графическое окно 110A серверного приложения. Когда графическое окно серверного приложения обновлено, соответствующие представления отправляются клиенту, и представления проявляются как обновленное дистанционно сгенерированное графическое окно 116A приложения. Размер или положение представляющего графического окна 112A корректируются, чтобы соответствовать обновленному дистанционно сгенерированному графическому окну 116A приложения.

Дополнительно, в этом варианте осуществления, в случае, если выбранный пользователем режим перемещения/изменения размера является контурным режимом, серверный администратор 702 удаленных приложений выполняется с возможностью отправки пользовательских команд клиентскому администратору 710 удаленных приложений. Контур представляющего графического окна 112A, отражающего пользовательскую команду, генерируется в клиентской рабочей области 116A. После выполнения клиентской команды данные позиционирования, касающиеся новых размера и/или положения представляющего графического окна, отправляются на удаленную машину, на которой обновляется графическое окно серверного приложения для синхронизации с новым представляющим графическим окном. Обновленное представление отправляется на локальную машину и проявляется как обновленное дистанционно сгенерированное графическое окно 116A приложения, которое выводится в представляющем графическом окне 112A.

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

Рассмотрим Фиг.8-9, которые в совокупности изображают процесс 800, который является примером того, как система 100A может предоставлять схожий пользовательский интерфейс для пользовательских команд перемещения/изменения размера, относящихся к локально сгенерированным графическим окнам приложений и к дистанционно сгенерированным графическим окнам приложений. Конечно, система 100A обеспечивает только одну структурную конфигурацию, которая может соблюсти выбранный пользователем режим перемещения/изменения размера и для локально сгенерированных и для дистанционно сгенерированных графических окон приложений. Фиг.8-9 подразумевают сценарий, в котором пользователь локальной машины 104A выбрал контурный режим перемещения/изменения размера для графических окон приложений на локальной машине 104A. Как упоминалось выше, другой вариант осуществления может обрабатывать контурный режим и режим полного изображения и тем же самым способом вместо того, чтобы различать их. Несмотря на то, что данный пример предоставляется в контексте сценария перемещения/изменения размера окна, аналогичным образом процесс может быть применен к другим пользовательским командам для изменения дистанционно сгенерированного окна приложения.

На этапе 802 выявляется пользовательская команда нажатия клавиши манипулятора мышь в представляющем графическом окне на локальной машине. На этапе 804 уведомление о нажатии клавиши манипулятора мышь отправляется клиентскому администратору 710 удаленных приложений. Так как серверный администратор 702 удаленных приложений еще не давал инструкций клиентскому администратору удаленных приложений инициализировать изменение размера на клиентской стороне, процесс переходит к передаче серверной стороне информации о нажатии на клавишу манипулятора мышь на этапе 806.

На этапе 806 уведомление о нажатии на клавишу манипулятора мышь отправляется от клиентской стороны серверной стороне. В данной конкретной конфигурации уведомление о нажатии на клавишу манипулятора мышь отправляется от клиентского администратора 710 удаленных приложений серверному администратору 702 удаленных приложений. Серверный администратор удаленных приложений передает уведомление о нажатии на клавишу манипулятора мышь графическому окну 110A серверного приложения на этапе 808.

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