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

Изобретение относится к обеспечению возможности применения команды изменения графического окна для дистанционно сгенерированного графического окна. Техническим результатом является предоставление гибкого способа модификации графического окна, сгенерированного локальной машиной или удаленной машиной на устройстве отображения. Способ модификации дистанционно сгенерированного графического окна приложения начинается с того, что генерируют графическое окно приложения на первой машине. Далее отправляют представление графического окна приложения на вторую машину. Затем выявляют пользовательскую команду от второй машины на изменение представления. После чего передают пользовательскую команду от второй машины на первую машину. При этом определяют, находится ли графическое окно приложения в режиме отображения всего содержимого окна или контурном режиме. В режиме отображения всего содержимого окна периодически обновляют все графическое окно приложения во время модификации. В контурном режиме периодически обновляют линию, указывающую новую позицию и размер графического окна приложения во время модификации. 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 серверного приложения. По меньшей мере в некоторых вариантах осуществления выявление пользовательского действия происходит вслед за тем, как произошло пользовательское действие. Например, пользователь может щелкнуть на углу окна и начать перетаскивать окно с помощью манипулятора мышь, процесс изменения размера окна начинается сразу после пользовательского щелчка. Собственно, изменение размера графического окна начинается для окна серверного приложения только после того, как пользовательское действие действительно началось с точки зрения пользователя. Такие варианты осуществления избегают сценариев, в которых процесс ошибочно прогнозирует, что пользователь намеревается запустить команду изменения размера и начинает соответственное изменение размера.

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

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

На этапе 818 процесс отправляет параметры графических окон от серверной стороны на клиентскую сторону. В данной конкретной конфигурации параметры графического окна отправляются от серверного администратора 702 удаленных приложений клиентскому администратору 710 удаленных приложений.

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

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

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

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

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

• Курсор манипулятора мышь X = левая сторона прямоугольника клиентского окна + смещение X окна и позиции курсора манипулятора мышь на сервере;

• Курсор манипулятора мышь Y = верхняя сторона прямоугольника клиентского окна + смещение Y окна и позиции курсора манипулятора мышь на сервере.

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

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

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

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

На этапе 834 процесс делает запрос клиентскому администратору удаленных приложений на данные позиционирования курсора манипулятора мышь, транслированные из позиции курсора манипулятора мышь, соответствующей позиции нажатия клавиши манипулятора мышь на этапе 806. На этапе 836 клиентский администратор 710 удаленных приложений возвращает данные позиционирования курсора манипулятора мышь, соответствующие позиции курсора манипулятора мышь.

На этапе 838 процесс начинает изменение размера графического окна на клиентской стороне. На этапе 840 процесс заканчивает изменение размера графического окна на клиентской стороне.

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

На этапе 846 команда отпускания клавиши манипулятора мышь отправляется от клиентской стороны на серверную сторону, например от клиентского администратора 710 удаленных приложений серверному администратору 702 удаленных приложений. На этапе 848 клиентский администратор удаленных приложений предоставляет команду отпускания клавиши манипулятора мышь графическому окну серверного приложения. Эта последовательность этапов (844-848) соответствует команде нажатия клавиши манипулятора мышь, описанной в отношении этапов 804-808, и служит для восстановления системы или нормальных условий процесса.

На этапе 850 процесс заканчивает изменение размера графического окна для графического окна серверного приложения. На этапе 852 процесс возобновляет обновления сервера, касающиеся графического окна серверного приложения. На этапе 854 процесс предоставляет уведомление об изменении положения графического окна.

На этапе 856 процесс обновляет позицию и/или размер представляющего графического окна от серверной стороны к клиентской стороне. На этапе 858 процесс обновляет позицию и/или размер представляющего графического окна 112A удаленного приложения.

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

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

Фиг.10 представляет иллюстративную систему или вычислительную среду 1000, выполненную с возможностью применения режима изменения графического окна к дистанционно сгенерированному графическому окну. Система 1000 включает в себя вычислительную систему общего назначения в виде первой машины 1001 и второй машины 1002. В этом случае первая и вторая машины выполняются с возможностью поддержки сеанса удаленного терминала так, что или первая или вторая машина может действовать как локальная машина, на которой работает пользователь, а другая из первой и второй машин может действовать как удаленная или серверная машина.

Компоненты первой машины 1001 могут включать в себя, но не ограничиваются этим, одно или более обрабатывающих устройств 1004 (например, любые микропроцессоры, управляющие устройства, и т.п.), системную память 1006 и системную шину 1008, которая соединяет различные компоненты системы. Одно или более обрабатывающих устройств 1004 обрабатывают различные исполняемые компьютером инструкции для управления работой первой машины 1001 и для взаимодействия с другими электронными и вычислительными устройствами. Системная шина 1008 представляет собой любое число некоторых типов шинных структур, включающих в себя шину памяти или устройство управления памятью, шину периферийных устройств, ускоренный графический порт и обрабатывающее устройство или локальную шину, использующую любое разнообразие шинных архитектур.

Система 1000 включает в себя множество компьютерных читаемых сред, которые могут быть любыми средами, которые являются доступными для первой машины 1001, и включают в себя энергозависимые и энергонезависимые среды, и съемные и не съемные среды. Системная память 1006 включает в себя компьютеро-читаемые среды в виде энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) 1010, и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 1012. Базовая система ввода/вывода (BIOS) 1014 обслуживает основные процедуры, которые облегчают передачу информации между компонентами внутри первой машины 1001, например, во время запуска, и хранится в ПЗУ 1012. ОЗУ 1010 обычно содержит данные и/или программные модули, к которым одно или более обрабатывающих устройств 120 получают непосредственный доступ и/или которыми они в настоящий момент оперируют.

Первая машина 1001 может включать в себя другие съемные/несъемные энергозависимые/энергонезависимые компьютерные запоминающие среды. Для примера, накопитель 1016 на жестком диске считывает и записывает на несъемные, энергонезависимые магнитные среды (не показаны), накопитель 1018 на магнитном диске считывает и записывает на съемный, энергонезависимый магнитный диск 1020 (например, "гибкий диск"), а накопитель 1022 на оптическом диске считывает и/или записывает на съемный энергонезависимый оптический диск 1024, такой как компакт-диск (CD-ROM), цифровой диск универсального назначения (DVD), или какие-либо другие оптические среды. В этом примере каждый из накопителя 1016 на жестком диске, накопителя 1018 на магнитном диске и накопителя 1022 на оптическом диске подсоединяются к системной шине 1008 с помощью одного или более интерфейсов 1026A сред данных. Дисковые накопители и соотнесенные с ними компьютерочитаемые среды обеспечивают энергонезависимое хранение компьютерочитаемых инструкций, структур данных, программных модулей и других данных для первой машины 1001.

Любое число программных модулей может храниться на жестком диске 1016, магнитном диске 1020, оптическом диске 1024, ПЗУ 1012, и/или ОЗУ 1010, в том числе, для примера, операционная система 1026, одна или более прикладных программ 1028, другие программные модули 1030 и программные данные 1032. Любое из означенных операционной системы 1026, прикладных программ 1028, других программных модулей 1030 и программных данных 1032 (или некоторой их комбинации) может включать в себя вариант осуществления систем и способов, изложенных в настоящем описании.

Пользователь может взаимодействовать с первой машиной 1001 посредством любого числа различных устройств ввода данных, таких как клавиатура 1034 и координатно-указательное устройство 1036 (например, манипулятор "мышь"). Другие устройства ввода данных 1038 (конкретно не показаны) могут включать в себя микрофон, джойстик, игровой планшет, управляющее устройство, антенну спутниковой связи, последовательный порт, сканирующее устройство и/или тому подобное. Эти и другие устройства ввода данных соединяются с обрабатывающими устройствами 1004 посредством интерфейсов 1040 ввода-вывода, которые подключаются к системной шине 1008, но могут быть соединены с помощью другого интерфейса и шинных структур, таких как параллельный порт, игровой порт и/или универсальная последовательная шина (USB).

Монитор 1042 или другой тип устройства отображения может соединяться с системной шиной 1008 посредством интерфейса, такого как видеоадаптер 1044. В дополнение к монитору 1042, другие периферийные устройства вывода могут включать в себя компоненты, такие как динамики (не показаны) и устройство 1046 печати, которые могут быть соединены с первой машиной 1001 посредством интерфейсов 1040 ввода-вывода.

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

Логические соединения между первой машиной 1001 и второй машиной 1002 изображены в виде локальной вычислительной сети (ЛВС) 1050 и глобальной вычислительной сети (ГВС) 1052. Такие сетевые окружения являются обычными в офисах, корпоративных вычислительных сетях, внутренних сетях и глобальной сети на базе технологии Интернет. При реализации в сетевом окружении ЛВС первая машина 1001 соединяется с локальной сетью 1050 посредством сетевого интерфейса или сопрягающего устройства 1054. При реализации в сетевом окружении ГВС первая машина 1001, как правило, включает в себя модем 1056 или другое средство для установления связи по глобальной вычислительной сети 1052. Модем 1056, который может быть внутренним или внешним для первой машины 1001, может подсоединяться к системной шине 1008 посредством интерфейсов 1040 ввода-вывода или по другой подходящей схеме. Проиллюстрированные сетевые соединения являются иллюстративными, и может использоваться другое средство установления соединения(ий) между первой и второй машинами 1001, 1002.

В сетевом окружении, например, которое проиллюстрировано для системы 1000, программные модули, изображенные как относящиеся к первой машине 1001, или их части, могут храниться на удаленном запоминающем устройстве хранения. Для примера удаленные прикладные программы 1058 обслуживаются с использованием запоминающего устройства второй машины 1002. Для наглядности прикладные программы и другие исполняемые программные компоненты, такие как операционная система 1026, проиллюстрированы в настоящем описании в виде отдельных блоков, хотя понятно, что такие программы и компоненты постоянно хранятся в разное время на различных запоминающих устройствах первой машины 1001 и исполняются обрабатывающими устройствами 1004 первой машины.

Иллюстративные Процессы

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

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

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

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

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

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

На этапе 1108 процесс сообщает на клиентскую машину данные, касающиеся пользовательской команды перемещения/изменения размера. Затем процесс переходит к этапу 1112.

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

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

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

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

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

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

3. Способ по п.1, в котором этап выявления содержит этап, на котором выявляют пользовательское нажатие клавиши манипулятора мышь.

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

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

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

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

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

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

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

11. Считываемый компьютером носитель по п.10, в котором пользовательская команда изменения дистанционно сгенерированного графического окна приложения содержит пользовательскую команду перемещения или изменения размера (перемещение/изменение размера) дистанционно сгенерированного графического окна приложения.

12. Считываемый компьютером носитель по п.10, в котором выявление и определение происходят на удаленной машине.

13. Считываемый компьютером носитель по п.10, в котором выявление содержит выявление текущей пользовательской команды.

14. Считываемый компьютером носитель по п.10, в котором определение зависит, по меньшей мере частично, от режима модификации графического окна локальной машины.

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

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

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

18. Система по п.17, в которой средство для приема параметров содержит компонент сеанса удаленного терминала.

19. Система по п.17, в которой пользовательская команда модификации графического окна имеет отношение к по меньшей мере одному из перемещения графического окна или изменения размера графического окна.

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

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

22. Считываемый компьютером носитель по п.21, в котором определение зависит, по меньшей мере частично, от режима модификации графического окна приложения локальной машины.



 

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

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

Изобретение относится к области вычислительной техники и управления приоритетами системы. .

Изобретение относится к области обновления программы мобильного терминала с помощью беспроводного (Over-the-Air, ОТА) механизма программирования. .

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

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

Изобретение относится к области аппаратов плазменной обработки. .

Изобретение относится к области оптимизирующей компиляции. .

Изобретение относится к области предоставления оперативной информации в системе связи. .

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

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

Изобретение относится к запросам данных в форме схемы, имеющей пространство имен, события в пространстве имен и параметры для этих событий. .

Изобретение относится к средствам синхронизации бизнес-приложений. .

Изобретение относится к системе создания управляемого данными действия, связанного с изменением экземпляра данных сетевой формы. .

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

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

Изобретение относится к области развертывания решений в ферме серверов. .

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