JP2008544399A - リモートで生成されたグラフィカルウィンドウへのグラフィカルウィンドウ修正コマンドの適用 - Google Patents

リモートで生成されたグラフィカルウィンドウへのグラフィカルウィンドウ修正コマンドの適用 Download PDF

Info

Publication number
JP2008544399A
JP2008544399A JP2008518156A JP2008518156A JP2008544399A JP 2008544399 A JP2008544399 A JP 2008544399A JP 2008518156 A JP2008518156 A JP 2008518156A JP 2008518156 A JP2008518156 A JP 2008518156A JP 2008544399 A JP2008544399 A JP 2008544399A
Authority
JP
Japan
Prior art keywords
graphical window
window
user
machine
graphical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008518156A
Other languages
English (en)
Other versions
JP5123176B2 (ja
Inventor
マハジャン ラジニーシュ
ジェイ.レイクトリング イバン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008544399A publication Critical patent/JP2008544399A/ja
Application granted granted Critical
Publication of JP5123176B2 publication Critical patent/JP5123176B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にすることに関する技術を説明する。一例としてプロセスは、リモートターミナルセッションにおいてリモートで生成されたアプリケーショングラフィカルウィンドウを修正するユーザコマンドを検出する。プロセスはユーザコマンドを、リモートで生成されたアプリケーショングラフィカルウィンドウが表示されたローカルマシンで開始するか、リモートで生成されたアプリケーショングラフィカルウィンドウを生成したリモートマシンで開始するかを判定する。

Description

リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にすることに関する。
マイクロソフト社が提供しているTerminal Services(商標)のようなリモートターミナルとのセッションをサポートする製品はクライアントマシンとサーバマシン間のリモートターミナルセッションを可能にする。リモートターミナルセッション(RTS)はアプリケーショングラフィックウィンドウのようなグラフィカルユーザインタフェースウィンドウ(以後「グラフィカルウィンドウ」と呼ぶ)が、サーバマシン上に生成されることを可能にする。RTSはビットマップ画像のようなリモートで生成されたグラフィカルウィンドウ表現を、クライアントマシン上に表示することを可能にする。クライアントマシン自身もまたクライアントマシン上に表示するアプリケーショングラフィカルウィンドウを生成する。クライアントマシンのユーザはローカルで生成されたアプリケーショングラフィカルウィンドウとリモートで生成されたアプリケーショングラフィカルウィンドウの一方もしくは両方を扱うことができる。ローカルで生成されたアプリケーショングラフィカルウィンドウとリモートで生成されたアプリケーショングラフィカルウィンドウの双方に類似した機能を提供する技術が継続的に求められている。
リモートで生成されたグラフィカルウィンドウに適用されるグラフィカルウィンドウ修正コマンドを可能にすることに関する技術について述べる。一例を挙げると、リモートターミナルのセッションにおいて、リモートで生成したアプリケーショングラフィカルウィンドウを修正するためのユーザコマンドを、プロセスが検出する。ユーザコマンドを開始するのを、リモートで生成されたアプリケーショングラフィカルウィンドウが表示されているローカルマシン上にするか、リモートで生成されたアプリケーショングラフィカルウィンドウを生成したリモートマシン上にするのかはプロセスが判定する。
全体像
スタンドアローンのコンピューティングシナリオでは、ユーザは1つまたは複数のアプリケーショングラフィカルウィンドウを含むユーザインタフェースを生成するマシン構成に関与している。ユーザが個々のアプリケーショングラフィカルウィンドウを修正したい場合もある。例えば、ユーザがグラフィカルウィンドウを移動する、またはサイズを変更して、個々のアプリケーショングラフィカルウィンドウを修正したい場合もある。移動やサイズ変更プロセス中に、マシンのオペレーティングシステムは一般に、何らかのグラフィカルウィンドウの可視表示を提供し、ユーザが新しいグラフィカルウィンドウのサイズおよび/または位置を目で見ることができるようにする。少なくともオペレーティングシステムのいくつかは、移動/サイズ変更プロセス中にアプリケーショングラフィカルウィンドウがどのように見えるかをユーザが選択できるようにしている。例えば、ユーザにフルウィンドウモードかアウトラインモードかどちらかを選択させるオペレーティングシステムがある。フルウィンドウモードでは移動/サイズ変更プロセス中に基本的にアプリケーショングラフィカルウィンドウ全体を継続的に更新する。ユーザが移動/サイズ変更コマンドを終了して移動/サイズ変更が完了すると更新が終了する。アウトラインモードでは、移動/サイズ変更プロセス中のグラフィカルウィンドウの新たな位置/サイズを示す破線が生成される。(例えば、マウスボタンを持ち上げることにより)移動/サイズ変更プロセスが終了すると、破線が消えてアプリケーショングラフィカルウィンドウは更新され、新たな位置/サイズになる。
リモートターミナルセッションは、サーバとして動作する第一のリモートマシンを含み、クライアントとして動作する第二のローカルマシンにデータをリモート(remote)するように構成されている。スタンドアローン構成と同じように、ユーザが関与するローカルマシンは、1つまたは複数のローカルで生成されたアプリケーショングラフィカルウィンドウを生成するように構成されることができ、さらにローカルで生成されたアプリケーショングラフィカルウィンドウの移動/サイズ変更操作のモードをユーザが指定することができる。リモートマシン上で動作するアプリケーションは、サーバアプリケーショングラフィカルウィンドウを生成できる。リモートターミナルセッションは、出力またはサーバアプリケーショングラフィカルウィンドウ(複数)のグラフィックをローカルマシンに転送可能なように構成されている。ローカルマシン上にプロキシウィンドウが形成されてサーバアプリケーションのグラフィックがプロキシグラフィカルウィンドウ上に描かれ、リモートで生成されたサーバアプリケーショングラフィカルウィンドウのローカル表示を形成する。本実装は、ユーザが選択したローカルマシンの移動/サイズ変更モードを、リモートで生成されたアプリケーショングラフィカルウィンドウに適用可能にする。少なくとも幾つかの実装では、リモートで生成されたアプリケーショングラフィカルウィンドウとローカルで生成されたアプリケーショングラフィカルウィンドウとを、ユーザが移動/サイズ変更特性に基づいては区別できないようなシームレスな移動/サイズ変更操作を達成している。
一般的な意味においては、本実装の少なくとも幾つかでは、リモートターミナルセッションに含まれるグラフィカルウィンドウを修正するユーザコマンドが、クライアントマシンからグラフィカルウィンドウを生成したサーバマシンに送信される。コマンドはサーバマシンで処理されることができ、それによってグラフィカルウィンドウを更新する。更新は引き続きクライアント側に送信および反映される。また、コマンドをクライアントマシンに返送することができる。クライアントマシンはクライアント側でコマンドを実装することが可能であり、サーバにデータを戻してサーバにグラフィカルウィンドウを再同期させてクライアント側の修正を反映させることができる。
例示的システム
説明のために、ネットワーク106上でリモートマシン102とローカルマシン104との間のリモートターミナルセッションをサポートするように構成されたシステム100を図示する図1〜6についてまとめて考察する。リモートマシン102はサーバアプリケーショングラフィカルウィンドウ110を生成するように構成されている。サーバアプリケーショングラフィカルウィンドウ110がここでは説明のために可視表示されているが、リモートマシンに可視画像を実際に生成しなくても本実装は機能するということは当業者には認識されよう。リモートターミナルセッションは、リモートマシンのサーバアプリケーショングラフィカルウィンドウ110がネットワーク106を経由してローカルマシン104に送信されることを表現する手段を提供する。例えば、この表現はとりわけビットマップ画像であってもよい。さらにリモートターミナルセッションにより、ローカルマシン104に、プロキシグラフィカルウィンドウ112がクライアントデスクトップ114上で生成される。リモートで生成されたアプリケーショングラフィカルウィンドウ116としてここで指定されているサーバアプリケーショングラフィカルウィンドウの表現は、プロキシグラフィカルウィンドウ上に描写か表示することができる。説明のために、ローカルで、あるいはクライアントにより生成されたアプリケーショングラフィカルウィンドウ118もまたローカルマシン104のクライアントデスクトップ114上に示される。説明のために、ローカルとリモートとの両方で生成されたアプリケーショングラフィカルウィンドウを表示するように構成されたマシンに置かれたユーザの視点から、ローカルおよびリモートという用語をここでは使用する。更に説明のために、リモートで生成されたアプリケーショングラフィカルウィンドウ116は、ここではプロキシグラフィカルウィンドウ112の領域のサブセットを占めるものとして説明される。多くの場合、リモートで生成されたアプリケーショングラフィカルウィンドウ116は、プロキシグラフィカルウィンドウが見えないように本質的にプロキシグラフィカルウィンドウ全体の上に描かれている。更に、ここで説明したアプリケーショングラフィカルウィンドウは、一般的に長方形に近似しているが、少なくとも実装の幾つかは変則的な形も含む任意の形状をしたアプリケーショングラフィカルウィンドウの使用に適したものである。システム100はグラフィカルウィンドウ修正コマンドがリモートで生成されたグラフィカルウィンドウ116に適用可能なように構成されている。この特定の実装では、グラフィカルウィンドウがローカルで生成されるかあるいはリモートで生成されるかにかかわらず、アプリケーショングラフィカルウィンドウの移動/サイズ変更操作に対しユーザが選択したモードをサポートするようにシステム100は構成されている。
説明のために、ローカルマシン104のユーザがローカルマシン104に対しグラフィカルウィンドウの移動/サイズ変更アウトラインモードを選択したと仮定する。更に、ローカルで生成されたアプリケーショングラフィカルウィンドウ118を、図1に示す第一のサイズから図3に明示するより大きなサイズへ拡張することをユーザが望んでいるとする。ユーザはグラフィカルウィンドウの移動/サイズ変更プロセスを開始する様々なユーザコマンドを通じてそのような動作を完了することができる。例えば、ユーザコマンドの1つのタイプはシステムメニューを経由するシステムコマンドである。グラフィカルウィンドウの移動/サイズ変更プロセスを開始することができるユーザコマンドの他のタイプには、音声認識、カメラベースのジェスチャー認識、キーボード入力等が含まれる。更に別のタイプのユーザコマンドには、マウスのカーソルをグラフィカルウィンドウ上に向けて、マウスボタンを押し込んだまま新たな場所にドラッグすることも含まれる。例えば、ユーザはローカルで生成されたグラフィカルウィンドウの端部、つまり一般的に120で示されるようにローカルで生成されたアプリケーショングラフィカルウィンドウ118の右下端の位置をクリックすることができる。例えば、ユーザはマウスボタンを押したままにして右下へ、一般的に矢印202で示されるようにドラッグすることができる。ローカルマシン104は、一般的に206で示されるように、マウスボタンを離すまでマウスの動きが追随するようにしてローカルに生成された、アプリケーショングラフィカルウィンドウ118のアウトライン204を生成する。マウスボタンを離すと、ユーザによるサイズ変更が完了したことになる。ユーザのサイズ変更が完了すれば、ローカルに生成されたアプリケーショングラフィカルウィンドウ118は図3から分かるようにアウトライン204と一致するように調整される。
ここで更に、ユーザがリモートで生成されたアプリケーショングラフィカルウィンドウ116のサイズ変更をしたいと仮定する。そのユーザは、リモートで生成されたアプリケーショングラフィカルウィンドウ116がローカルで生成されたのかリモートで生成されたのかを識別できるかもしれないし、できないかもしれない。例えばユーザは、402として一般的に示されている、リモートで生成されたアプリケーショングラフィカルウィンドウ116の右下隅だと考えたところをクリックすることができる。ユーザはリモートで生成されたアプリケーショングラフィカルウィンドウ116を見ているが、リモートターミナルセッションの観点からはプロキシウィンドウ112をクリックしていることになり、プロキシウィンドウ112上にリモートで生成されたアプリケーショングラフィカルウィンドウ116が描かれている。システム100は、プロキシグラフィカルウィンドウ112の移動/サイズ変更に関するユーザコマンドを検出してサーバ側に転送するように構成されている。
この場合、ユーザはマウスボタンを押してリモートで生成されたアプリケーショングラフィカルウィンドウ116および/またはその下にあるプロキシグラフィカルウィンドウ112の右下端部か隅をクリックする。ユーザは402をクリックして、矢印502で一般的に示すように右下にドラッグを開始する。システム100はそれに応答して、ユーザが例えば図5にあるカーソル506で示す位置でカーソルを離すかアップクリックするまでユーザのカーソル506に追随して動くプロキシグラフィカルウィンドウ112のアウトライン504を生成する。ドラッグ操作中、アウトライン504の一部はリモートのアプリケーショングラフィカルウィンドウ領域の外側にある。このため、この場合ユーザがアウトラインモードを選択すると、移動/サイズ変更のためのユーザコマンドはローカルマシン104上で処理され、クライアントコマンドに対応した移動/サイズ変更を開始する。
ユーザのサイズ変更コマンド完了後、プロキシグラフィカルウィンドウ112はアウトライン504のサイズに更新される。リモートマシンはその後、更新されたプロキシグラフィカルウィンドウのサイズ/位置に関連してアプリケーショングラフィカルウィンドウ110を更新する。これに対応するリモートで生成されたアプリケーショングラフィカルウィンドウ116は、ローカルマシン104に送付され、図6からも分かるようにリモートで生成されたアプリケーショングラフィカルウィンドウ116とプロキシグラフィカルウィンドウ112とを同期する。システム100は、ローカルで生成されたアプリケーショングラフィカルウィンドウの移動/サイズ変更機能の近似あるいは真似をして、リモートで生成されたアプリケーショングラフィカルウィンドウに対する移動/サイズ変更機能を可能にする。上記では、説明のためにグラフィカルウィンドウのサイズ変更について記述したが、グラフィカルウィンドウの移動に関しても同様に扱うことができる。
上述および後述する実装は、現時点で普通直面するコンピューティング環境の状況を元に記載されている。パーソナルコンピュータ(PC)などのコンピュータにより実行されるプログラムモジュールのような、コンピュータ実行可能命令やコード手段による様々な実装例が可能である。一般的にプログラムモジュールは、特定のタスクを実行したり特定の抽象データ型を実装したりする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含んでいる。
PC以外のコンピュータシステム構成でも様々な実装例がある。例えば、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースあるいはプログラム可能家電製品、ネットワークPC,ミニコンピュータ、メインフレームコンピュータ、携帯電話等で様々な実装が実現できる。更に、技術が引き続き進歩するのに伴い、デバイスの種類として未確認のものについても様々な実装が実現できる。例えば、処理能力ユニットの価格が下落し続けワイヤレス技術が拡大するにつれて、今日の携帯電話に類似したコンピューティングデバイスが、今日のPC,ビデオカメラ、携帯電話の機能、およびそれ以上の機能を1つのモバイルデバイスで行うことができる。この1つのデバイスが、サーバとして動作するシナリオもあるし、クライアントとして動作するシナリオもりえる。これは前述の実装を行うための、既存あるいは開発中である数多くの事例の一つにすぎない。
ここで使用しているサーバとクライアントという用語は、2台のデバイスの相対的な能力を意味するものではない。クライアントはサーバよりも優れた、劣る、あるいは同等の処理能力を有することができる。むしろこの出願書では、サーバとクライアントという名前は2つのコンポーネントの相対的な関係を記述するものである。例えば、第一のもしくはサーバ装置のコンピューティング経験(experience)が、第二のもしくはクライアント装置にリモートされるのである。
上述のように様々な実装を多種の動作環境に組み込むことができるが、典型的な環境1つだけの説明が図11における典型的な汎用コンピューティングデバイスのコンテキストの中にあらわれている。その典型的な環境についてはこの明細書において「典型的なオペレーティング環境」という見出しの下でより詳細に後述する。
ローカルで生成されたアプリケーショングラフィカルウィンドウとリモートで生成されたアプリケーショングラフィカルウィンドウとが、同様な外観もしくはユーザ修正コマンドのためのユーザインタフェースを提供するように構成されたシステム100Aを説明する図7について考える。システム100Aはネットワーク106Aを介して、リモートマシン102Aとローカルマシン104Aとの間のリモートターミナルセッションを支援するように構成されている。
リモートマシン102Aは、サーバリモートアプリケーションマネジャ702、グラフィカルウィンドウマネジャ704、サーバオペレーティングシステム(OS)708上で動作する1つまたは複数のサーバアプリケーション706を含む。ローカルマシン104Aは、クライアントリモートアプリケーションマネジャ710を含み、クライアントオペレーティングシステム(OS)714上で動作する1つまたは複数のクライアントアプリケーション712を含むことができる。ここで使用するサーバアプリケーション706とクライアントアプリケーション712の例はグラフィックインタフェースを開くいかなるコード手段でも含むことができる。例えば、このアプリケーションに含まれるのは、ワードプロセッシングや、表計算や、メッセージングや、ノートパッドや、グラフィックや、マイクロソフト社が提供しているウィンドウズエクスプローラブランドのファイルブラウザのようなファイルブラウザツールや、コントロールパネルツールや、ハードウェア追加用グラフィックツールや、ネットワーク接続や、ビデオゲーム他がある。
システム100Aは、ローカルマシン104Aのユーザが、アプリケーショングラフィカルウィンドウ118Aなどのローカルで生成されたアプリケーショングラフィカルウィンドウと、リモートで生成されたアプリケーショングラフィカルウィンドウ116Aなどのリモートで生成されたアプリケーショングラフィカルウィンドウとに、移動/サイズ変更のような修正をし、両方のインスタンスで類似あるいは同等のユーザインタフェースを受け取ることができるように構成されている。例えば、ユーザが移動/サイズ変更グラフィカルウィンドウ操作用アウトラインモードを選択した場合、システム100Aはローカルで生成されたアプリケーショングラフィカルウィンドウと、リモートで生成されたアプリケーショングラフィカルウィンドウとの両方に対してアウトラインモードの移動/サイズ変更操作を提供するように構成される。
システム100Aは、ローカルマシンのユーザが選択した移動/サイズ変更モードを判定するように構成されている。そこでシステム100Aは、グラフィカルウィンドウがローカルで生成されたものかリモートで生成されたものか、ユーザが選択したアプリケーショングラフィカルウィンドウの移動/サイズ変更操作のモードに基づいて、ユーザグラフィカルウィンドウの移動/サイズ変更コマンドを処理するように構成されている。ローカルで生成されたアプリケーショングラフィカルウィンドウに関するユーザコマンドは、従来の方法でローカルマシンが処理する。システム100Aは、ユーザが選択したモードに基づいて、リモートで生成されたアプリケーショングラフィカルウィンドウに関するユーザコマンドを処理するように構成されている。ユーザがフルイメージモードを選択した場合、コマンドはサーバ側で処理され、結果はクライアント側で明示される。ユーザがアウトラインモードを選択した場合は、システム100Aはクライアントプロキシグラフィカルウィンドウ112Aで移動/サイズ変更コマンドを開始するように構成され、その後サーバ側のアプリケーショングラフィカルウィンドウ110Aが更新され、それに伴ってプロキシグラフィカルウィンドウ112Aとリモートで生成されたアプリケーショングラフィカルウィンドウ116Aとが再同期する。上記の機能を実現するため、システム100Aの幾つかのコンポーネントに関して以下で説明する。
サーバリモートアプリケーションマネジャ702はサーバ側のリモートターミナルセッション機能を容易にするように構成されている。サーバリモートアプリケーションマネジャはサーバアプリケーション706を管理するように構成されている。これによりサーバアプリケーショングラフィカルウィンドウ110Aの表現をリモートターミナルセッション中のローカルマシン104Aに送ることができる。サーバリモートアプリケーションマネジャ702はまた、サーバからクライアントにサーバアプリケーショングラフィカルウィンドウ110Aに関するデータ転送を容易にするように構成されている。例えば、複数のアプリケーションがサーバ上で動作する間、そのアプリケーションのうちの1つだけをクライアント104Aにリモートすることができる。実装によっては、サーバリモートアプリケーションマネジャ702が、適切なアプリケーションウィンドウからのデータをクライアントに送ることを保証するように構成されているものもある。
グラフィカルウィンドウマネジャ704は個々のサーバグラフィカルウィンドウに関するユーザの相互作用を処理するように構成されている。グラフィカルウィンドウマネジャは、アプリケーションのアイコンをマウスでクリックする等のユーザコマンドを介して個々のグラフィカルウィンドウを立ち上げるのを手始めとして、個々のグラフィカルウィンドウとの相互作用を処理する。グラフィカルウィンドウマネジャはユーザコマンドに応答してグラフィカルウィンドウを開き、以降グラフィカルウィンドウに関するユーザコマンドはグラフィカルウィンドウマネジャを介して指示される。この場合、サーバリモートアプリケーションマネジャ702は更に、グラフィカルウィンドウマネジャ704にグラフィカルウィンドウに関係したいかなるイベントについてもサーバリモートアプリケーションマネジャ702に報告するように依頼するように構成されている。グラフィカルウィンドウマネジャは、新しいグラフィカルウィンドウが立ち上がった時、グラフィカルウィンドウが移動および/またはサイズ変更、かつ最小化された時のイベント等をサーバリモートアプリケーションマネジャに報告する。サーバリモートアプリケーションマネジャ702は、グラフィカルウィンドウマネジャ704から受け取った情報を分析するように構成されており、リモートターミナルセッションでクライアントにリモートされるグラフィカルウィンドウがあるか、もしあるとすれば、どのような情報に関係するのかを判定する。サーバリモートアプリケーションマネジャはまた、リモートターミナルセッションに関与するグラフィカルウィンドウ(複数)に関連する情報をクライアントに取り次ぐように構成されている。例えば、サーバリモートアプリケーションマネジャ702は情報をクライアントに送信して、サーバアプリケーショングラフィカルウィンドウとそれに対応するクライアントプロキシグラフィカルウィンドウとの同期を容易にする。
クライアントリモートアプリケーションマネジャ710はサーバとのリモートターミナルセッションを確立して、リモートターミナルセッションに関連するサーバとの相互接続を処理する。クライアントリモートアプリケーションマネジャはまた、プロキシグラフィカルウィンドウ112Aをローカルマシン104A上に生成させ、サーバアプリケーショングラフィカルウィンドウ110Aの表現をリモートで生成されたアプリケーショングラフィカルウィンドウ116Aの形式でプロキシグラフィカルウィンドウ112A上に描写させるように構成されている。クライアントリモートアプリケーションマネジャ710はさらに、それに対応するサーバアプリケーショングラフィカルウィンドウ110Aに関するサーバリモートアプリケーションマネジャ702から受け取った情報の少なくとも一部は基づいて、クライアントのプロキシグラフィカルウィンドウ112Aのサイズと範囲に関する詳細を処理するように構成されている。
クライアントリモートアプリケーションマネジャ710はまた、ローカルマシン104Aの移動/サイズ変更モードに関する情報を受信するように構成されている。例えば、上述のように、実装によって、ローカルマシンはアウトラインモードかフルウィンドウモードになりえる。クライアントリモートアプリケーションマネジャ710はサーバリモートアプリケーションマネジャ702とローカルマシンの移動/サイズ変更モードを共有するように構成されている。
クライアントリモートアプリケーションマネジャ710はまた、個別のプロキシグラフィカルウィンドウに関するクライアントコマンドを、サーバリモートアプリケーションマネジャ702によりコマンドが受信される、リモートマシン102Aに転送するよう構成される。サーバリモートアプリケーションマネジャは、クライアントコマンドをグラフィカルウィンドウマネジャ704と協力してサーバ側に実装するよう構成されている。
システム100Aは、プロキシグラフィカルウィンドウ112Aのような、リモートターミナルセッションに含まれるグラフィカルウィンドウを修正することに関連するユーザコマンドを検出するように構成されている。例えば、そのような検出は、クライアントリモートアプリケーションマネジャ710によってか、サーバリモートアプリケーションマネジャ702によってというように、サーバ側でなされることができる。例えば、サーバリモートアプリケーションマネジャ702はプロキシグラフィカルウィンドウ112Aに関するウィンドウコマンドを評価して、ユーザがプロキシグラフィカルウィンドウ112Aに関してグラフィカルウィンドウを移動もしくはサイズ変更を開始したかどうかを検出するように構成されている。ユーザは、多数の可能性のある手段の1つを利用してグラフィカルウィンドウの移動/サイズ変更を開始することができる。例えば、ユーザはシステムメニューの利用等により、グラフィカルウィンドウを移動/サイズ変更する適切なシステムコマンドを送信できる。別の例では、ユーザはグラフィカルウィンドウのキャプション/ボーダ上でマウスボタンを押してグラフィカルウィンドウをドラッグすることができる。例えば、グラフィカルウィンドウの移動/サイズ変更コマンドを遂行するためには、ユーザはグラフィカルウィンドウの作業箇所でない部分でマウスクリックすることができる。そのような作業箇所でない部分は、プロキシグラフィカルウィンドウ112Aについて指示されているように特に端(図1〜6に示される)またはキャプション720を含むことができる。多くの構成では、ユーザがグラフィカルウィンドウのサイズを変えたければグラフィカルウィンドウの端をクリックするし、グラフィカルウィンドウを移動させたければキャプションをクリックする。
移動/サイズ変更が検出された場合、システム100Aはさらにグラフィカルウィンドウの移動とグラフィカルウィンドウのサイズ変更とを区別するように構成される。上述のように、ローカルマシンがフルイメージモードであるかアウトラインモードであるかに基づいて、システム100Aは適切な行動を取りユーザコマンドを遂行するように構成されている。特定のシステム構成のそのような例の1つとして、サーバリモートアプリケーションマネジャ702は、リモートマシン102Aとローカルマシン104Aとの間のリモートターミナルセッションのプロキシグラフィカルウィンドウに関するユーザの移動/サイズ変更コマンドを検出するように構成されている。サーバリモートアプリケーションマネジャ702はまた、フルイメージモードかアウトラインモードかどちらかのユーザが選択した移動/サイズ変更モードに適応した移動/サイズ変更コマンドを遂行するために適切な行動を取るように構成されている。
この場合、サーバリモートアプリケーションマネジャ702は、ユーザコマンドがリモートターミナルセッションに伴うグラフィカルウィンドウに関するウィンドウ/サイズ変更操作に関連するか否かを判定するように構成されている。移動、サイズ変更コマンドが開始されたと判定されると、サーバリモートアプリケーションマネジャ702はユーザが選択したグラフィカルウィンドウ移動/サイズ変更モードに基づいて行動を起こす。特にこの実装の場合は、移動/サイズ変更モードがフルイメージであれば、サーバリモートアプリケーションマネジャ702はサーバでコマンド処理を行い、それに従ってサーバアプリケーショングラフィカルウィンドウ110Aを更新する。サーバアプリケーショングラフィカルウィンドウが更新されると、それに対応する表現がクライアントに送信され、その表現は更新済みのリモートで生成されたアプリケーショングラフィカルウィンドウ116Aとして表示される。プロキシグラフィカルウィンドウ112Aのサイズまたは位置は、更新済みのリモートで生成されたアプリケーショングラフィカルウィンドウ116Aに対応するように調整される。
更に、この実装では、ユーザが選択した移動/サイズ変更モードがアウトラインモードの場合、サーバリモートアプリケーションマネジャ702は、ユーザコマンドをクライアントリモートアプリケーションマネジャ710に送信するように構成されている。ユーザコマンドを反映したプロキシグラフィカルウィンドウ112Aのアウトラインは、クライアントのデスクトップ116Aで生成される。クライアントコマンドが終了すると、プロキシグラフィカルウィンドウの新しいサイズおよび/または場所に関する位置データがリモートマシンに送信され、リモートマシンでは、サーバアプリケーショングラフィカルウィンドウが新しいプロキシグラフィカルウィンドウに同期するように更新されている。更新された表現はローカルマシンに送信され、プロキシグラフィカルウィンドウ112A上に描かれている更新済みのリモートで生成されたアプリケーショングラフィカルウィンドウ116Aとして表示される。
アウトラインとフルイメージモードとを区別する上述の実装の代わりに、あるいはそれに加えて、システム100Aはフルスクリーンとアウトラインモード双方を同じように処理することができる。例えば、アウトラインもしくはフルスクリーンといったユーザが選択したモードにかかわらず、システム100はサーバでユーザの移動/サイズ変更コマンドを受信し、クライアントにユーザの移動/サイズ変更コマンドおよび/または関連するデータを送信することができる。ユーザコマンドはクライアント側で開始でき、サーバ側はその後で更新されてサーバとクライアントの再同期が行われる。同様に、システム100Aはユーザが選択した修正モードにかかわらず、サーバ側で全てのユーザコマンドを開始する決定をする場合もある。
ローカルで生成されたアプリケーショングラフィカルウィンドウとリモートで生成されたアプリケーショングラフィカルウィンドウに関するユーザの移動/サイズ変更コマンドのための同様のユーザインタフェースを、システム100Aがどのように提供できるのかという例を示すプロセス800をまとめて説明している図8,9について考察する。もちろんシステム100は、ローカルおよびリモートで生成されたアプリケーショングラフィカルウィンドウ双方に対してユーザが選択した移動/サイズ変更モードが使えるような構成一つだけを提供する。図8,9はローカルマシン104Aのユーザが、ローカルマシン104Aのアプリケーショングラフィカルウィンドウ用のアウトライン移動/サイズ変更モードを選択したというシナリオを含む。上述のように、他の実装ではアウトラインモードとフルイメージモードを区別しないで、同じように処理することができる。同様に、この例はウィンドウ/移動・サイズ変更シナリオというコンテキストを提供する一方で、そのプロセスは他のユーザコマンドにも適用してリモートで生成されたアプリケーションウィンドウを修正することができる。
ステップ802では、ユーザのマウスボタンダウンコマンドがローカルマシンのプロキシグラフィカルウィンドウ上で検出される。ステップ804ではマウスボタンダウン通知がクライアントリモートアプリケーションマネジャ710に送信される。サーバリモートアプリケーションマネジャ702はクライアント側のサイズ変更を開始するようにクライアントリモートアプリケーションマネジャにまだ指示していないので、プロセスは先に進んでマウスボタンダウン情報をステップ806にてサーバ側に転送する。
ステップ806では、マウスボタンダウン通知がクライアント側からサーバ側へ送信される。この特定の構成では、マウスボタンダウン通知はクライアントリモートアプリケーションマネジャ710からサーバリモートアプリケーションマネジャ702へ送信される。サーバリモートアプリケーションマネジャはマウスボタンダウン通知をステップ808のサーバアプリケーショングラフィカルウィンドウ110Aに転送する。
ステップ810では、グラフィカルウィンドウのサイズ変更がサーバアプリケーションウィンドウ110Aで開始される。少なくとも幾つかの実装では、ユーザ動作が起こってからユーザ動作の検出が行われる。例えば、ユーザはウィンドウの隅をクリックしてマウスでそのウィンドウのドラッグを開始することができるが、ウィンドウのサイズ変更プロセスが開始されるのはユーザがクリックした後である。それはつまり、ユーザから見て実際にユーザ動作が始まった後でなければ、サーバアプリケーションウィンドウ上でグラフィカルウィンドウのサイズ変更は開始されない。そのような実装にしておけば、ユーザがサイズ変更コマンドを発行しようとしただけで関連したサイズ変更が開始されてしまうというプロセスを間違って予測するシナリオを回避できる。
ステップ812でプロセスは、サーバリモートアプリケーションマネジャ702に、特定のグラフィカルウィンドウがサイズ変更されているという連絡を通知する。移動もしくはサイズ変更のどちらが起きているか区別するために、グラフィカルウィンドウが適当なパラメータにより移動あるいはサイズ変更されているという連絡を通知する実装もある。また、このイベントに対する関連パラメータが、移動/サイズ変更の種類を示すことができる構成もある。
ステップ814では、グラフィカルウィンドウパラメータ入手要求が、サーバリモートアプリケーションマネジャ702からサーバアプリケーショングラフィカルウィンドウ110Aに送信される。このグラフィカルウィンドウパラメータ入手要求は、プロキシグラフィカルウィンドウがサーバにより課せられた制限を超えてクライアントでサイズ変更されないことを保証するのに利用される。ステップ816では、プロセスはサーバアプリケーショングラフィカルウィンドウ710からサーバリモートアプリケーションマネジャ702へグラフィカルウィンドウパラメータを送信する。
ステップ818では、プロセスはサーバ側からクライアント側へグラフィカルウィンドウズパラメータを送信する。この特定の構成では、グラフィカルウィンドウズパラメータがサーバリモートアプリケーションマネジャ702からクライアントリモートアプリケーションマネジャ710へ送信される。
ステップ820では、プロセスは望ましいマウスの位置を計算する。このステップではローカルとリモートマシン間通信に関わる潜在的な待ち時間(latency)の問題に取り組んでいる。例えば、ユーザがプロキシグラフィカルウィンドウ上の第一の位置にあるクライアント側のマウスボタンをクリックしてマウスを新たな位置に移動し始めると、第二の位置にマウスを移動もしくはドラッグしたユーザに待ち時間または遅延の問題が起こる。誤った結果を避けるため、サーバで検出されたマウス入力がクライアントに戻されないうちにマウスは第一の位置に効果的に戻される。このステップにより、状態はユーザがマウスを「クリックした」時点に効果的に戻る。
説明のために、クライアントがマウスをクリックした時にマウスはローカルマシンのx00上にあったとして、待ち時間のために、その後の時点でサーバよりクライアントへデータが戻ってきた時に、マウスはx11にあるとする。このステップはマウスをx00に戻し、クリックを開始してマウスを素早くドラッグしてx11に戻す。そのようなプロセスは一般的に早すぎてユーザが検出することはできない。このステップは、ユーザが1つのアプリケーショングラフィカルウィンドウ上をクリックしてマウスを別のグラフィカルウィンドウ上にドラッグしたときに、そのような待ち時間の調整がないためにプロセスが第一のアプリケーショングラフィカルウィンドウを看過してしまい、第二のアプリケーショングラフィカルウィンドウをドラッグし始めるという状態を回避するのに役立つ。このステップでマウスは第一の位置に戻り、その後新たな場所に移動する。多くの場合このプロセスは非常に早く起こるので、ユーザは単にマウスが存在した最後の場所にドラッグしたグラフィカルウィンドウがあらわれるのを目にするだけである。
ステップ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に関連して説明したステップは、ローカルで生成されたアプリケーショングラフィカルウィンドウとリモートで生成されたアプリケーショングラフィカルウィンドウに関するユーザの移動/サイズ変更コマンド用に対し、類似のユーザインタフェースを達成するための典型的な実装を1つだけ提供している。他の実装では類似の機能を達成するためのステップは、これより少ないか多くなる。
例示的システム環境
図10は、リモートで生成されたグラフィカルウィンドウに適用されるグラフィカルウィンドウ修正モードを可能にするように構成されたシステム例またはコンピューティング環境例1000を表す。システム1000は第一のマシン1001と第二のマシン1002の形式における汎用コンピューティングシステムを含む。その場合、第一か第二のマシンのどちらかがユーザが操作するローカルマシンとして動作でき、他方のマシンがリモートもしくはサーバマシンとして動作できるように、第一と第二のマシンはリモートターミナルセッションを支援するように構成されている。
第一のマシン1001のコンポーネントは、これに限られたものでないが、1つまたは複数のプロセッサ1004(例えば、任意のマイクロプロセッサ、コントローラ等)、システムメモリ1006、様々なシステムコンポーネントを繋ぐシステムバス1008を含む。1つまたは複数のプロセッサ1004は様々なコンピュータ実行可能命令を処理して、第一のマシン1001の操作を制御し、他の電子デバイスやコンピュータデバイスとの通信を行う。システムバス1008は数種類のバス構造の幾つかを表し、メモリバスあるいはメモリコントローラ、周辺バス、加速グラフィックスポート、プロセッサあるいは任意の様々なバスアーキテクチャを使用したプロセッサまたはローカルバスを含む。
システム1000は、様々なコンピュータ可読媒体からなるが、第一のマシン1001がアクセス可能であり、揮発性および不揮発性メディア、リムーバブルおよび非リムーバブルメディアの両方を含む任意のメディアであることができる。システムメモリ1006は、ランダムアクセスメモリ(RAM)1010のような揮発性メモリ形式、および/またはリードオンリメモリ(ROM)1012のような不揮発性メモリ形式のコンピュータ可読媒体を含む。基本入出力システム(BIOS)1014はROM1012に格納されており、基本的なルーチンを保持しスタートアップの際に第一のマシン1001内部のコンポーネント間で情報転送を容易にする。RAM1010は典型的に、データおよび/またはすぐにアクセスできるプログラムモジュール、および/または1つまたは複数のプロセッサ1004により現在操作されているプログラムモジュールを含んでいる。
第一のマシンは、他のリムーバブル/非リムーバブル、揮発性/非揮発性のコンピュータ記憶媒体を含むことができる。例として、ハードディスクドライブ1016は非リムーバブル、不揮発性磁気メディア(図示せず)から読出し、書込みを行ない、磁気ディスクドライブ1018は、リムーバブル、不揮発性磁気ディスク1020(例えば、「フロッピー(登録商標)ディスク」)から読出し、書込みを行い、光ディスクドライブ1022は、CD−ROM,デジタル多用途ディスク(DVD)、または任意の他種光学メディアのようなリムーバブルで不揮発性の光ディスク1024から読出し、書込みを行う。この例では、ハードディスクドライブ1016、磁気ディスクドライブ1018、光ディスクドライブ1022はそれぞれ1つまたは複数のデータメディアインタフェース1026によりシステムバス1008に接続されている。ディスクドライブと関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、第一のマシン1001に対するその他データの不揮発性ストレージを提供する。
プログラムモジュールはハードディスク1016、磁気ディスク1020、光ディスク1024、ROM1012、および/またはRAM1010上に格納することができ、例えば、オペレーティングシステム1026、1つまたは複数のアプリケーションプログラム1028、他のプログラムモジュール1030、プログラムデータ1032を含んでいる。そのようなオペレーティングシステム1026、アプリケーションプログラム1028、他のプログラムモジュール1030、プログラムデータ1032(あるいはその組合せの幾つか)の各々は、ここで説明したシステムや方法の態様を含むことができる。
ユーザは、キーボード1034やポインティングデバイス1036(例えば、「マウス」)のような任意の様々な入力装置を介して第一のマシン1001とインタフェースをとることができる。他の入力装置1038(特に図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、コントローラ、パラボラアンテナ、シリアルポート、スキャナ等を含むことができる。これらと他の入力装置は、システムバス1008に結合されている入出力インタフェース1040を介してプロセッサ1004に接続されているが、パラレルポート、ゲームポート、および/またはユニバーサルシリアルバス(USB)のような他のインタフェースやバス構造により接続することもできる。
モニタ1042または他の種類の表示装置はビデオアダプタ1044のようなインタフェースを介してシステムバス1008に接続することができる。モニタ1042に加えて、他の出力周辺装置も、入出力インタフェース1040を介して第一のマシン1001に接続することができるスピーカ(図示せず)やプリンタ1046のようなコンポーネントを含むことができる。
第一のマシン1001は、第二のマシン1002のような1つまたは複数のリモートコンピュータへの論理的接続を使用したネットワーク環境で操作できる。例として、第二のマシン1002は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア装置、または他の共通ネットワークノード等であってもよい。第二のマシン1002は、第一のマシン1001に関してここで述べた多くの、あるいは全ての要素や特徴を含むことができるポータブルコンピュータとして説明されている。
第一のマシン1001と第二のマシン1002間の論理的接続は、ローカルエリアネットワーク(LAN)1050と広域ネットワーク(WAN)1052として示す。そのようなネットワーク環境は、オフィスや企業規模のコンピュータネットワーク、イントラネット、インターネットではありふれたものである。LANネットワーク環境で実装される場合、第一のマシン1001はネットワークインタフェースあるいはアダプタ1054を介してローカルエリアネットワーク1050に接続される。WANネットワーク環境で実装される場合には、第一のマシン1001は典型的にモデム1056か広域ネットワーク1052上で通信を確立するための他の方法を含む。第一のマシン1001の内部あるいは外部にあるモデム1056は、入出力インタフェース1040あるいは他の適切なメカニズムを介してシステムバス1008に接続することができる。説明したネットワーク接続は例であり、第一と第二のマシン1001と1002間の通信リンク(複数)を確立する他の方法を利用することもできる。
システム1000で説明したようなネットワーク環境では、第一のマシン1001あるいはその部分に関して示したプログラムモジュールは、リモートのメモリストレージデバイスに格納される。例として、リモートアプリケーションプログラム1058は、第二のマシン1002のメモリ装置とともに保持される。説明のために、アプリケーションプログラムとオペレーティングシステム1026のような他の実行可能なプログラムは、ここでは離散的なブロックとして描かれている。しかしながら、そのようなプログラムとコンポーネントは様々な時点で第一のマシン1001の異なったストレージコンポーネントに存在して第一のマシンのプロセッサ1004により実行されることが認識されている。
例示的プロセス
図11は、リモートで生成されたグラフィカルウィンドウに適用されるグラフィカルウィンドウ修正コマンドを可能にするための典型的なプロセス1100を示す。プロセスの記述順序は制限的に解釈されることを意図するものではなく、記述されたプロセスブロックの任意の番号を、任意の順番で組み合わせてプロセスを実施することができる。更に、このプロセスは、ハードウェア、ソフトウェア、ファームウエア、あるいはその任意の組み合わせにおいて実装できる。
ブロック1102にて、プロセスは、リモートターミナルセッションにおいてリモートで生成されたアプリケーショングラフィカルウィンドウを修正するユーザコマンドを検出する。リモートターミナルセッションはリモートアプリケーション能力を提供することができる。リモートターミナルセッションは、第一のまたはサーバマシンから第二のまたはクライアントマシンへアプリケーショングラフィカルウィンドウをリモートするのに役立つ。プロキシウィンドウがクライアントマシン上で生成され、サーバアプリケーショングラフィカルウィンドウからの表示データがこのプロキシウィンドウ上に描写されて、リモートで生成されたアプリケーショングラフィカルウィンドウを作り出す。ユーザはグラフィカルウィンドウを修正することに関連したコマンドを発行するために、様々な方法を利用することができる。例えば、当業者には認識されるように、ユーザはシステムメニューを使用してウィンドウ特有のシステムコマンドを送信できる。別の例では、ユーザがグラフィカルウィンドウのキャプションまたは境界線でマウスボタンを押してグラフィカルウィンドウをドラッグできる。ユーザ入力の様々な他の例としては、音声認識コマンド、カメラで検出されたユーザの動き等を含むことができる。
実装によっては、プロキシグラフィカルウィンドウに関連するユーザ修正コマンドはクライアントマシンで検出される。別の実装では、プロキシグラフィカルウィンドウに関連したユーザ入力またはコマンドはリモートターミナルセッションの一部として、自動的にサーバマシンに送信される。そのような場合、ウィンドウ修正に関するユーザコマンドの検出はサーバマシンで行うことができる。しかしながら、リモートで生成されたアプリケーショングラフィカルウィンドウに関するユーザウィンドウ修正コマンドを検出するように構成されたシステム例の1つが、図7に関連して上述されている。
ブロック1104にて、プロセスはリモートで生成されたアプリケーショングラフィカルウィンドウが表示されているローカルマシン上と、リモートで生成されたアプリケーショングラフィカルウィンドウを生成したリモートマシン上とのどちらでユーザコマンドを開始するか判定する。修正はすべてサーバで開始できるという実装もある。すべての修正がクライアントで開始できるという実装もある。更に、ユーザ修正コマンドがクライアントで開始されているのに、サーバで幾つかのユーザ修正コマンドを開始するという実装もある。ブロック1106〜1116は、第一のシナリオではユーザコマンドがサーバで開始され、第二のシナリオではユーザコマンドはクライアントで開始されるというように、そのような判定がどのようになされ、クライアント修正コマンドがどのように遂行されるのかの典型例一つだけを示す。
ブロック1106〜1116に関して記述されているプロセスは、フルイメージまたはアウトラインといったクライアント修正モードに対するユーザ選択モードに基づいてプロセスを調整する。そのような実装は、環境によっては他のプロセスと比較した場合、もっと美的に心地よいユーザインタフェースを提供できる場合もある。上述のように他のプロセス例では、全ての修正モードを利用できるモード間で区別するよりむしろ同じように扱い、それに応じて反応を調整している。
この特定の実装の場合、ブロック1106にてプロセスはクライアントマシンがアウトラインモードにあるかどうか確証する。例によっては、ユーザはそれ以前にグラフィカルウィンドウの移動/サイズ変更モードを選択しており、そのようなユーザ選択をしていないとクライアントマシンは特定のモードをデフォルトすることができる。どちらの場合でも、グラフィカルウィンドウの移動/サイズ変更モードはクライアントマシンからサーバマシンに分配される。例えば、クライアントマシンはそのグラフィカルウィンドウ移動/サイズ変更モードについて自動的に報告できる。他の構成では、サーバマシンはクライアントマシンにウィンドウの移動/サイズ変更モードについて問い合わせることができる。クライアントマシンがアウトラインモードの場合、プロセスはブロック1108に進み、そうでなければブロック1110に進む。
ブロック1108では、プロセスはユーザの移動/サイズ変更コマンドに関するデータをクライアントマシンへ伝達する。そしてプロセスはブロック1112に進む。
ブロック1110にて、プロセスはサーバマシン上でユーザの移動/サイズ変更コマンドを開始する。例えば、サーバアプリケーショングラフィカルウィンドウは更新されてユーザコマンドを反映できる。クライアントプロキシグラフィカルウィンドウを更新するための伝達は、クライアント側を更新するのに利用され、更新されたサーバアプリケーショングラフィカルウィンドウはリモートされ更新されたプロキシグラフィカルウィンドウの上に描かれる。
ブロック1112にて、プロセスはクライアントマシンのプロキシグラフィカルウィンドウ上でグラフィカルウィンドウの移動/サイズ変更を開始する。1つの実装では、クライアントはサーバマシンから移動/サイズ変更開始情報を受信して、リモートアプリケーションのプロキシグラフィカルウィンドウ上で対応する移動/サイズ変更を開始する。グラフィカルウィンドウの移動/サイズ変更がどのように開始されるかは、どのようにユーザが発行した移動/サイズ変更コマンドが最初に開始されたかに依存する。例えば、ユーザがシステムメニューを利用して移動/サイズ変更を開始する場合、システムコマンドメッセージは適当なシステムコマンドでプロキシグラフィカルウィンドウに貼り付けることができる。マウスで開始された移動/サイズ変更については、クライアントはプロキシグラフィカルウィンドウ上で対応する動作を行う。
ブロック1114にて、プロセスはクライアント側のプロキシグラフィカルウィンドウ上でユーザコマンドが完了するのに反応して、サーバアプリケーショングラフィカルウィンドウを更新する。ブロック1116では、プロセスは更新したサーバアプリケーショングラフィカルウィンドウを送信してリモートで生成されたアプリケーションウィンドウとクライアントプロキシグラフィカルウィンドウを再同期する。
リモートで生成されたグラフィカルウィンドウに対し、グラフィカルウィンドウ修正コマンドを適用可能にすることに関する実装について、構造特徴および/または方法の具体的な文言で記述してきたが、添付した特許請求の範囲の対象は、記述した固有の特徴や方法に必ずしも限定されないということを理解されたい。むしろ、具体的な特徴や方法は上述および以下に記述するコンセプトの実装の例を提供するものである。
1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするシステムの例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするシステムの例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするシステムの例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするシステムの例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするシステムの例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするシステムの例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするシステムの例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするための、1つのシステム構成例のプロセス図である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするための、1つのシステム構成例のプロセス図である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするための、ある環境下におけるシステム、装置、部品の例である。 1つの実装に係る、リモートで生成されたグラフィカルウィンドウに対してグラフィカルウィンドウ修正コマンドを適用可能にするためのプロセス図である。

Claims (20)

  1. 第一のマシンでアプリケーショングラフィカルウィンドウを生成するステップと、
    リモートターミナルセッションに適応した第二のマシンに前記アプリケーショングラフィカルウィンドウの表現を送信するステップと、
    前記第二のマシンからユーザコマンドを検出して前記表現を修正するステップと、
    前記ユーザコマンドに関するデータを前記第二のマシンに伝達して、前記第二のマシンに対応するクライアントプロキシグラフィカルウィンドウを修正できるようにするステップと、
    前記クライアントプロキシウィンドウ上の前記ユーザコマンドの完了に応答して、前記プロキシウィンドウに対応するよう前記アプリケーションウィンドウを更新するステップと、および
    前記アプリケーションウィンドウの更新された表現を前記第二のマシンに送信するステップと
    を含むことを特徴とする方法。
  2. 前記検出するステップは、実行中のユーザコマンドを検出することを含むことを特徴とする請求項1に記載の方法。
  3. 前記検出するステップは、ユーザのマウスボタンダウンクリックを検出することを含むことを特徴とする請求項1に記載の方法。
  4. 前記伝達するステップは、前記マウスボタンダウンクリックが行われたマウスの第一の位置と、第二の更新されたマウスの位置とに関するデータを伝達することを含むことを特徴とする請求項3に記載の方法。
  5. 前記更新するステップは、前記プロキシグラフィカルウィンドウに関するパラメータを受信し、それに対応して前記アプリケーショングラフィカルウィンドウを更新することを含むことを特徴とする請求項1に記載の方法。
  6. 前記表現を修正する前記ユーザコマンドは、前記表現をサイズ変更するユーザコマンドを含むことを特徴とする請求項1に記載の方法。
  7. 前記第二のマシンのユーザ選択によるグラフィカルウィンドウ修正モードを示す伝達を受信するステップをさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記ユーザ選択によるグラフィカルウィンドウ修正モードは、グラフィカルウィンドウの移動またはグラフィカルウィンドウのサイズ変更のうちの少なくとも1つに関連することを含むことを特徴とする請求項7に記載の方法。
  9. 前記ユーザ選択によるグラフィカルウィンドウ修正モードの少なくとも一部に基づいて、前記ユーザコマンドを前記第一のマシン上で開始するか前記第二のマシン上で開始するかを判定するステップをさらに含むことを特徴とする請求項7に記載の方法。
  10. コンピュータ実行可能命令を備えたコンピュータ可読媒体であって、動作実行時に
    ユーザコマンドを検出して、リモートターミナルセッションにおいてリモートで生成されたアプリケーショングラフィカルウィンドウを修正するステップと、
    前記リモートで生成されたアプリケーショングラフィカルウィンドウが表示されているローカルマシンと、前記リモートで生成されたアプリケーショングラフィカルウィンドウを生成したリモートマシンとのいずれにおいて前記ユーザコマンドを開始するかを判定するステップと
    を有する動作を行うことを特徴とするコンピュータ可読媒体。
  11. 前記リモートで生成されたアプリケーショングラフィカルウィンドウを修正する前記ユーザコマンドは、前記リモートで生成されたアプリケーショングラフィカルウィンドウを移動またはサイズ変更(移動/サイズ変更)するユーザコマンドを備えることを特徴とする請求項10に記載のコンピュータ可読媒体。
  12. 前記検出するステップと前記判定するステップとは前記リモートマシンで行われることを特徴とする請求項10に記載のコンピュータ可読媒体。
  13. 前記検出するステップは、実行中のユーザコマンドを検出することを備えることを特徴とする請求項10に記載のコンピュータ可読媒体。
  14. 前記判定するステップは、前記ローカルマシンのグラフィカルウィンドウ修正モードに少なくとも部分的に依存していることを特徴とする請求項10に記載のコンピュータ可読媒体。
  15. 前記修正モードがアウトラインモードを備える場合、前記ローカルマシンに前記ユーザコマンドに関する情報を送信することにより、それに対応する修正プロセスが前記ローカルマシンで開始されるようにすることを特徴とする請求項14に記載のコンピュータ可読媒体。
  16. 前記ローカルマシンで行われた前記リモートで生成されたアプリケーショングラフィカルウィンドウ上の動作に関する情報を受信するステップをさらに備えることを特徴とする請求項15に記載のコンピュータ可読媒体。
  17. リモートマシンからリモートで生成されたアプリケーショングラフィカルウィンドウを受信し、前記リモートで生成されたアプリケーショングラフィカルウィンドウが描写されるプロキシグラフィカルウィンドウを生成する手段と、
    前記プロキシウィンドウに関するユーザウィンドウ修正コマンドを前記リモートマシンに中継する手段と、
    前記リモートマシンから前記ユーザ修正コマンドに関するパラメータを受信する手段と、
    前記パラメータに基づいて前記プロキシウィンドウ上で前記ユーザウィンドウ修正コマンドを開始する手段と
    を備えることを特徴とするシステム。
  18. パラメータを受信する手段は、リモートターミナルセッションコンポーネントを備えることを特徴とする請求項17に記載のシステム。
  19. 前記ユーザグラフィカルウィンドウ修正コマンドは、グラフィカルウィンドウ移動またはグラフィカルウィンドウサイズ変更のうちの少なくとも1つに関することを特徴とする請求項17に記載のシステム。
  20. 前記更新されたプロキシグラフィカルウィンドウに関するデータを前記リモートマシンに中継する手段をさらに備えることを特徴とする請求項17に記載のシステム。
JP2008518156A 2005-06-21 2006-05-05 リモートで生成されたグラフィカルウィンドウへのグラフィカルウィンドウ修正コマンドの適用 Expired - Fee Related JP5123176B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/158,229 US7533189B2 (en) 2005-06-21 2005-06-21 Enabling a graphical window modification command to be applied to a remotely generated graphical window
US11/158,229 2005-06-21
PCT/US2006/017568 WO2007001632A2 (en) 2005-06-21 2006-05-05 Enabling a graphical window modification command to be applied to a remotely generated graphical window

Publications (2)

Publication Number Publication Date
JP2008544399A true JP2008544399A (ja) 2008-12-04
JP5123176B2 JP5123176B2 (ja) 2013-01-16

Family

ID=37574801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008518156A Expired - Fee Related JP5123176B2 (ja) 2005-06-21 2006-05-05 リモートで生成されたグラフィカルウィンドウへのグラフィカルウィンドウ修正コマンドの適用

Country Status (9)

Country Link
US (2) US7533189B2 (ja)
EP (1) EP1896975A4 (ja)
JP (1) JP5123176B2 (ja)
KR (1) KR20080026532A (ja)
CN (1) CN101203842B (ja)
BR (1) BRPI0609921A2 (ja)
MX (1) MX2007014548A (ja)
RU (1) RU2420797C2 (ja)
WO (1) WO2007001632A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010524081A (ja) * 2007-03-30 2010-07-15 マイクロソフト コーポレーション リモートアプリケーションのローカルテーマ設定
JP2015518980A (ja) * 2012-03-14 2015-07-06 ティヴォ インク 表示デバイスに表示されるウィンドウの遠隔からの構成
JP2015210714A (ja) * 2014-04-28 2015-11-24 富士通コンポーネント株式会社 プログラム、中継装置及び情報処理装置

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529494B2 (en) 2011-09-27 2016-12-27 Z124 Unified desktop triad control user interface for a browser
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US9715252B2 (en) 2011-08-24 2017-07-25 Z124 Unified desktop docking behavior for window stickiness
US9678624B2 (en) 2011-09-27 2017-06-13 Z124 Unified desktop triad control user interface for a phone manager
US20130104062A1 (en) 2011-09-27 2013-04-25 Z124 Unified desktop input segregation in an application manager
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
US7533189B2 (en) * 2005-06-21 2009-05-12 Microsoft Corporation Enabling a graphical window modification command to be applied to a remotely generated graphical window
US7636794B2 (en) * 2005-10-31 2009-12-22 Microsoft Corporation Distributed sensing techniques for mobile devices
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7817991B2 (en) * 2006-02-14 2010-10-19 Microsoft Corporation Dynamic interconnection of mobile devices
KR100775554B1 (ko) * 2006-03-10 2007-11-15 주식회사 케이티프리텔 콘텐츠 기반의 다이나믹 바탕화면 서비스 제공 방법 및시스템
TW200813806A (en) * 2006-06-27 2008-03-16 Ibm Method, program, and data processing system for modifying shape of display object
US20080120570A1 (en) * 2006-11-22 2008-05-22 Bluetie, Inc. Methods for managing windows within an internet environment and systems thereof
US8046403B2 (en) * 2007-09-12 2011-10-25 Citrix Systems, Inc. Methods and systems for providing, by a remote machine, access to functionality associated with a resource executing on a local machine
US20100164839A1 (en) * 2008-12-31 2010-07-01 Lyons Kenton M Peer-to-peer dynamically appendable logical displays
US8676926B2 (en) * 2009-04-15 2014-03-18 Wyse Technology L.L.C. System and method for handling remote drawing commands
US20100268762A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for scrolling a remote application
US9553953B2 (en) 2009-04-15 2017-01-24 Dell Products L.P. Method and apparatus for extending capabilities of a virtualization domain to support features available in a normal desktop application
US9448815B2 (en) 2009-04-15 2016-09-20 Wyse Technology L.L.C. Server-side computing from a remote client device
US9413831B2 (en) 2009-04-15 2016-08-09 Wyse Technology L.L.C. Method and apparatus for authentication of a remote session
US9578113B2 (en) 2009-04-15 2017-02-21 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9189124B2 (en) * 2009-04-15 2015-11-17 Wyse Technology L.L.C. Custom pointer features for touch-screen on remote client devices
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US20110066971A1 (en) * 2009-09-14 2011-03-17 Babak Forutanpour Method and apparatus for providing application interface portions on peripheral computing devices
US20110219331A1 (en) * 2010-03-02 2011-09-08 International Business Machines Corporation Window resize on remote desktops
CN102270152A (zh) * 2010-06-07 2011-12-07 华东师范大学 面向掌上型移动设备的远程应用程序系统
US8266551B2 (en) * 2010-06-10 2012-09-11 Nokia Corporation Method and apparatus for binding user interface elements and granular reflective processing
US8335991B2 (en) * 2010-06-11 2012-12-18 Microsoft Corporation Secure application interoperation via user interface gestures
US9021402B1 (en) 2010-09-24 2015-04-28 Google Inc. Operation of mobile device interface using gestures
US8607158B2 (en) * 2010-12-09 2013-12-10 International Business Machines Corporation Content presentation in remote monitoring sessions for information technology systems
US8806360B2 (en) 2010-12-22 2014-08-12 International Business Machines Corporation Computing resource management in information technology systems
US20120192100A1 (en) * 2011-01-25 2012-07-26 Motorola-Mobility, Inc. Method and apparatus for locking and unlocking multiple operating system environments with a single gesture input
US20120216152A1 (en) * 2011-02-23 2012-08-23 Google Inc. Touch gestures for remote control operations
TW201239675A (en) * 2011-03-18 2012-10-01 Acer Inc Handheld devices, and related data transmission methods
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US9843665B2 (en) * 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US10417018B2 (en) 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
US10983747B2 (en) * 2011-07-15 2021-04-20 Vmware, Inc. Remote desktop mirroring
US10976981B2 (en) * 2011-07-15 2021-04-13 Vmware, Inc. Remote desktop exporting
US20160124698A1 (en) 2011-08-24 2016-05-05 Z124 Unified desktop triad control user interface for an application launcher
US9703468B2 (en) * 2011-09-27 2017-07-11 Z124 Unified desktop independent focus in an application manager
US9182935B2 (en) 2011-09-27 2015-11-10 Z124 Secondary single screen mode activation through menu option
US11416131B2 (en) 2011-09-27 2022-08-16 Z124 Unified desktop input segregation in an application manager
WO2013077524A1 (ko) * 2011-11-24 2013-05-30 엘지전자 주식회사 사용자 인터페이스 표시 방법 및 그를 이용한 장치
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
US9479568B2 (en) 2011-12-28 2016-10-25 Nokia Technologies Oy Application switcher
CN104020968B (zh) * 2013-02-28 2019-02-26 中兴通讯股份有限公司 控制共享屏幕显示的方法及装置
EP2648096A1 (en) * 2012-04-07 2013-10-09 Samsung Electronics Co., Ltd Method and system for controlling display device and computer-readable recording medium
US9417753B2 (en) 2012-05-02 2016-08-16 Google Technology Holdings LLC Method and apparatus for providing contextual information between operating system environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US9201563B2 (en) * 2012-10-10 2015-12-01 Google Inc. Mobile device friendly window management for remote desktop
US9679344B2 (en) * 2012-10-24 2017-06-13 Nubo Software Server-based fast remote display on client devices
US9619673B1 (en) 2013-01-22 2017-04-11 Hypori, Inc. System, method and computer program product for capturing touch events for a virtual mobile device platform
US9380456B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for dynamically switching operating systems in a virtual mobile device platform
US9380562B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for providing notifications from a virtual device to a disconnected physical device
US9667703B1 (en) 2013-01-22 2017-05-30 Hypori, Inc. System, method and computer program product for generating remote views in a virtual mobile device platform
US9819593B1 (en) 2013-01-22 2017-11-14 Hypori, Inc. System, method and computer program product providing bypass mechanisms for a virtual mobile device platform
US9380523B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for connecting roaming mobile devices to a virtual device platform
US9697629B1 (en) 2013-01-22 2017-07-04 Hypori, Inc. System, method and computer product for user performance and device resolution settings
IN2013CH02604A (ja) * 2013-06-14 2015-10-02 Samsung R & D Inst India Bangalore Pvt Ltd
US9912724B2 (en) * 2013-12-06 2018-03-06 Vmware, Inc. Moving objects of a remote desktop in unstable network environments
TWI509454B (zh) * 2014-02-17 2015-11-21 Noodoe Corp 基於動作偵測之作業啟始方法及系統,及相關電腦程式產品
US10082941B2 (en) 2015-05-20 2018-09-25 Vmware, Inc. Optimizing window move actions for remoted applications
CN105159672B (zh) * 2015-08-28 2019-08-30 小米科技有限责任公司 远程协助方法和客户端
US10564829B2 (en) 2016-03-25 2020-02-18 Vmware, Inc. Optimizing window resize actions for remoted applications
US20180218056A1 (en) * 2017-01-30 2018-08-02 Netzyn, Inc. System and method for reducing perceived latency in a display-server computing system
CN107390970A (zh) * 2017-06-15 2017-11-24 深信服科技股份有限公司 文本框展示方法、服务器、用户终端及存储介质
US11449213B1 (en) * 2021-02-26 2022-09-20 Citrix Systems, Inc. Host to client drag-and-drop operation
US11669361B1 (en) * 2021-04-01 2023-06-06 Ai-Blockchain, Inc. System, method and program product for optimizing computer processing power in cloud computing systems

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63298432A (ja) * 1987-05-29 1988-12-06 Hitachi Ltd ウィンドウ操作処理方式
JPH02190926A (ja) * 1988-12-19 1990-07-26 Internatl Business Mach Corp <Ibm> 遠隔表示装置の更新装置
JPH10500514A (ja) * 1994-12-13 1998-01-13 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・ワークステーション
JP2002517814A (ja) * 1998-05-29 2002-06-18 サイトリックス システムズ,インコーポレイテッド ローカルおよび遠隔ウィンドウを1つのデスクトップ環境に連結させるシステムおよび方法
JP2003345716A (ja) * 2002-05-29 2003-12-05 Matsushita Electric Ind Co Ltd 遠隔操作システム及び遠隔操作方法並びにその方法の実行に使用される記録媒体
JP2005012775A (ja) * 2003-06-06 2005-01-13 Microsoft Corp リモート・クライアントをローカル・クライアント・デスクトップに接続するためのアーキテクチャ
US20050081158A1 (en) * 2003-10-08 2005-04-14 Samsung Electronics Co., Ltd. Apparatus and method for remote controlling
JP2007509408A (ja) * 2003-10-23 2007-04-12 マイクロソフト コーポレーション グラフィックスリモーティングシステムのための同期化されたグラフィックスデータおよびリージョンデータ

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255361A (en) * 1988-12-19 1993-10-19 International Business Machines Corporation Method of and system for updating a display unit
US5263134A (en) * 1989-10-25 1993-11-16 Apple Computer, Inc. Method and apparatus for controlling computer displays by using a two dimensional scroll palette
US5553223A (en) * 1990-04-03 1996-09-03 U S West Advanced Technologies, Inc. Method and system of selectively transmitting display formats and data between a host computer and an intelligent terminal
WO1995035535A1 (en) 1994-06-17 1995-12-28 Intel Corporation Apparatus and method for application sharing in a graphic user interface
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US6901435B1 (en) * 1999-06-17 2005-05-31 Bmc Software, Inc. GUI interpretation technology for client/server environment
US6971110B1 (en) * 2000-02-19 2005-11-29 Hewlett-Packard Development Company, L.P. System and method to pace event sharing collaboration across multiple distributed applications
EP1215570A1 (en) 2000-12-13 2002-06-19 Pentap Technologies AG Providing a windows-based user interface
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
US6989836B2 (en) * 2002-04-05 2006-01-24 Sun Microsystems, Inc. Acceleration of graphics for remote display using redirection of rendering and compression
WO2004003724A2 (en) * 2002-06-27 2004-01-08 Axeda Systems Operating Company, Inc. Screen sharing
US7140024B2 (en) * 2002-07-29 2006-11-21 Silicon Graphics, Inc. System and method for managing graphics applications
US20040128399A1 (en) * 2002-12-31 2004-07-01 Motorola, Inc. Media stream control system and protocol
US20050278698A1 (en) 2003-02-03 2005-12-15 John Verco Multi-window based graphical user interface (GUI) for web applications
US7487454B2 (en) * 2004-04-26 2009-02-03 Microsoft Corporation Managing arbitrary window regions for more effective use of screen space
US7533189B2 (en) 2005-06-21 2009-05-12 Microsoft Corporation Enabling a graphical window modification command to be applied to a remotely generated graphical window

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63298432A (ja) * 1987-05-29 1988-12-06 Hitachi Ltd ウィンドウ操作処理方式
JPH02190926A (ja) * 1988-12-19 1990-07-26 Internatl Business Mach Corp <Ibm> 遠隔表示装置の更新装置
JPH10500514A (ja) * 1994-12-13 1998-01-13 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・ワークステーション
JP2002517814A (ja) * 1998-05-29 2002-06-18 サイトリックス システムズ,インコーポレイテッド ローカルおよび遠隔ウィンドウを1つのデスクトップ環境に連結させるシステムおよび方法
JP2003345716A (ja) * 2002-05-29 2003-12-05 Matsushita Electric Ind Co Ltd 遠隔操作システム及び遠隔操作方法並びにその方法の実行に使用される記録媒体
JP2005012775A (ja) * 2003-06-06 2005-01-13 Microsoft Corp リモート・クライアントをローカル・クライアント・デスクトップに接続するためのアーキテクチャ
US20050081158A1 (en) * 2003-10-08 2005-04-14 Samsung Electronics Co., Ltd. Apparatus and method for remote controlling
JP2007509408A (ja) * 2003-10-23 2007-04-12 マイクロソフト コーポレーション グラフィックスリモーティングシステムのための同期化されたグラフィックスデータおよびリージョンデータ

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010524081A (ja) * 2007-03-30 2010-07-15 マイクロソフト コーポレーション リモートアプリケーションのローカルテーマ設定
JP2015518980A (ja) * 2012-03-14 2015-07-06 ティヴォ インク 表示デバイスに表示されるウィンドウの遠隔からの構成
US10430036B2 (en) 2012-03-14 2019-10-01 Tivo Solutions Inc. Remotely configuring windows displayed on a display device
US11842036B2 (en) 2012-03-14 2023-12-12 Tivo Solutions Inc. Remotely configuring windows displayed on a display device
JP2015210714A (ja) * 2014-04-28 2015-11-24 富士通コンポーネント株式会社 プログラム、中継装置及び情報処理装置

Also Published As

Publication number Publication date
WO2007001632A3 (en) 2007-09-27
BRPI0609921A2 (pt) 2010-05-11
US7533189B2 (en) 2009-05-12
US20060288306A1 (en) 2006-12-21
RU2007147629A (ru) 2009-06-27
MX2007014548A (es) 2008-01-16
JP5123176B2 (ja) 2013-01-16
EP1896975A2 (en) 2008-03-12
US20090193340A1 (en) 2009-07-30
CN101203842A (zh) 2008-06-18
WO2007001632A2 (en) 2007-01-04
CN101203842B (zh) 2010-05-19
US7757004B2 (en) 2010-07-13
EP1896975A4 (en) 2012-09-19
RU2420797C2 (ru) 2011-06-10
KR20080026532A (ko) 2008-03-25

Similar Documents

Publication Publication Date Title
JP5123176B2 (ja) リモートで生成されたグラフィカルウィンドウへのグラフィカルウィンドウ修正コマンドの適用
US10990259B2 (en) Optimizing window move actions for remoted applications
US8464178B1 (en) System and method for communicating information over a network
US9043706B2 (en) System and method for using state replication between application instances to provide a collaborative desktop environment
US10671976B2 (en) Instant messaging window display method and apparatus, and computer readable medium
WO2019041978A1 (zh) 一种多屏终端及其应用显示控制方法、装置
US20070234086A1 (en) Operating System Shut Down
JP2007065944A (ja) 計算機情報の表示方法およびシステム
CN107864358B (zh) 一种视频通话中的共享对象操作方法
US11467717B2 (en) Optimizing window resize actions for remoted applications
US9293108B2 (en) Transmission apparatus and system of using the same
US11249771B2 (en) Terminal input invocation
JP2010182074A (ja) ファイル共有システム、ファイル共有方法及びそのプログラム
CN114138145A (zh) 应用虚拟化的文件拖拽方法、装置、设备及可读存储介质
CN114911402B (zh) 远程应用和本地系统间的拖拽交互方法及系统
CN115421846A (zh) 跨设备控制方法、控制装置、电子设备和可读存储介质
CN117716337A (zh) 计算设备上的应用兼容性
KR101491056B1 (ko) 터미널 환경의 서버 기반 컴퓨팅 시스템에서 마우스 ui 지원을 위한 터치 스크린 단말 장치 및 마우스 ui 지원 방법
CN114416270A (zh) 页面显示方法、装置、设备和介质
JP7085311B2 (ja) 情報処理装置、情報処理システム、情報処理方法、情報処理プログラム
JP6596616B2 (ja) コンテンツ共有システム、コンテンツ共有方法及びプログラム
CN115809035A (zh) 一种控制屏幕显示的方法、装置及存储介质
CN114579024A (zh) 一种信息处理方法、装置及电子设备
WO2023177756A1 (en) Collaborative widget state synchronization
JP2019096025A (ja) 画像処理システム、ユーザインタフェースの提供方法、およびコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121012

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121025

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees