JP2013543617A - 複数のリモートサーバへの統一された再接続 - Google Patents

複数のリモートサーバへの統一された再接続 Download PDF

Info

Publication number
JP2013543617A
JP2013543617A JP2013531626A JP2013531626A JP2013543617A JP 2013543617 A JP2013543617 A JP 2013543617A JP 2013531626 A JP2013531626 A JP 2013531626A JP 2013531626 A JP2013531626 A JP 2013531626A JP 2013543617 A JP2013543617 A JP 2013543617A
Authority
JP
Japan
Prior art keywords
remote
user
disconnected
client
session
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.)
Withdrawn
Application number
JP2013531626A
Other languages
English (en)
Other versions
JP2013543617A5 (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 JP2013543617A publication Critical patent/JP2013543617A/ja
Publication of JP2013543617A5 publication Critical patent/JP2013543617A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ユーザをサーバファームのデプロイメントにおける彼の全てのリソース(例えば、リモートデスクトップまたはリモートアプリケーション)に接続するための技術が開示されている。ユーザのクライアントは、デプロイメントにユーザの切断されたリソースおよび/または異なるクライアントと通信しているアクティブなリソースを要求するメッセージを送信する。デプロイメントはそれらのリソースが何であるかを判定し、冗長な情報(例えば2つのリソースが同じセッション内で実行されるリモートアプリケーションであること)を取り除いた後、再接続したクライアントに取り除かれたリストを送信する。クライアントは最初にVMでないリソースに再接続し、そのログイン中に入力を促されたユーザ入力(例えば認証情報)を格納する。クライアントは、後の再接続において第1の再接続時にクライアントから受信した入力を使用して、並行して他のリソースに再接続する。

Description

本発明は、複数のリモートサーバに統一された再接続を行うことに関する。
リモートデスクトッププロトコル(RDP)、リモートデスクトップセッションホスト(RDSH)、ターミナルサービス、およびリモートデスクトップサービス(RDS)などのリモートプレゼンテーション技術を使用して、コンピュータのデスクトップとアプリケーションをリモートクライアントと共有することが一般的であった。このような共有コンピューティングシステムは、通常、サーバ上のリモートプレゼンテーションセッションのためのユーザセッションをインスタンス化することを介して確立される。サーバの画面がセッションのクライアントと共有される場合、リモートプレゼンテーションセッションは、サーバに対してローカルであるコンソールセッションからその情報を取得する。リモートプレゼンテーションセッションの間、クライアントは、キーボード押下、マウスのクリックや選択をサーバに送信し、サーバは、ネットワーク接続(例えば、インターネット)を介して逆方向に画面の更新をクライアントに送信する。従って、実際にはアプリケーションのスクリーンショットがサーバ側で表示されるとともにクライアントコンピュータに送信されるのみであるときに、クライアントのユーザは自身のコンピュータがローカルにアプリケーションを実行しているような経験をする。
ある種のリモートプレゼンテーションシナリオでは、デスクトップ全体がクライアントにリモート接続される。例えば、仮想デスクトップセッションにおいて、単一のユーザが仮想マシン内で実行されているオペレーティングシステムに接続し、デスクトップ全体がクライアントにリモート接続される。リモートデスクトップセッションにおいては、複数のユーザが単一のオペレーティングシステムに接続し、ユーザインターフェースが、クライアントにリモート接続される。他のリモートプレゼンテーションシナリオでは、特定のアプリケーションがクライアントにリモート接続される。この第2のシナリオは時々“アプリケーションリモーティング”と呼ばれる。リモート処理アプリケーションには、管理が容易であること、実行することが必要な処理がより少ないためクライアントを安価にすることが可能であること、アプリケーションがそのデータソース近くで実行される可能性があること、などの多くの利点がある。クライアントが同時に複数のリモートアプリケーションにアクセスしている場合、クライアントは、クライアントが加わっているリモートプレゼンテーションセッションよりも、クライアントがアクセスしているリモートリソースを参照することが適切であるかもしれない。これは、単一のサーバファームがクライアントに2つのリモートアプリケーションを提供している場合、これらのリモートアプリケーションは両方ともサーバファーム上の同じセッション内で実行することができ、サーバファームとの単一のリモートプレゼンテーションセッションの一部とすることができるためである。本明細書では、「リモートリソース」は、リモートアプリケーション、リモートデスクトップ、仮想デスクトップ等を指すことができる。
同時に複数のリモートリソースにアクセスするための技術を提供することは改善になるであろう。
例えば、ユーザが第1のクライアントコンピュータから同時に複数のリモートリソースにアクセスし、次に別のクライアントコンピュータに移動してから、あるいは切断されて、第1のクライアントコンピュータに再接続しようとするときは、ユーザは自身のリモートリソースの全てを取り戻すことが難しいかもしれない。ユーザは、自身が使用していたリモートリソースの全てを取り戻すことができるためには、自身がどのサーバに接続していたか、または自身がどのアプリケーションを使っていたかを知っておく必要がある可能性がある。これは理想的な状況ではなく、ユーザが多くのリモートリソースを操作することが難しくなる。
ユーザがリモートセッション用の特定のサーバに接続すると、そのサーバ上でそのユーザについて実行している全てのリモートアプリケーションが、ユーザにリモート接続されて、ユーザは、そのサーバ上のワークスペースからのアプリケーションに再接続される。これは、例えば、ユーザがリモート処理アプリケーションを実行するサーバ上で1セッションを与えられる実施形態において事実であり、これらのリモート処理アプリケーションのためのウィンドウ(ただし、セッションに関連付けられたデスクトップではない)がユーザに送信される。この例では、接続はセッションとのものであり、全てのリモート処理アプリケーションは、そのセッションの一部であり、セッションへの1つの再接続はリモート処理アプリケーションの全てに再接続する結果になる。このようなそれぞれのリモート処理アプリケーションが別々のユーザセッションで実行されている場合など、他のシナリオでは当てはまらない可能性がある。
ここで、ワークスペースのリモート処理アプリケーションが複数のサーバにまたがっている場合、単一のリモート処理アプリケーションに再接続することは、リモート処理アプリケーションの全てに再接続されることにはならない。
更に別の問題は、複数のサーバへの再接続時に、ユーザにユーザ名、パスワード、または種々の異なるエラー条件等の入力を求める複数のプロンプトが表示される場合があるということである。各プロンプトがユーザとの対話を必要としていて、ユーザエクスペリエンスのシームレス性を低下させるため、これらの複数のプロンプトを見ることは、ユーザエクスペリエンスに否定的に影響する場合がある。
本発明の方法は、ユーザが、使用している任意のコンピュータから使用していた全てのリモートのリソースに自動的に再接続できるようにするシナリオを作成することによって、これらの問題を解決している。一実施形態では、ユーザが第1のコンピュータ上にワークスペースを持っている。ワークスペースは、クライアントコンピュータによって受信したもの及びリモートデスクトップWeb接続(「RDWeb」)サーバ等のサーバコンピュータからのものの1つまたは複数のリモートリソースである。リモートリソースは、さまざまなリモートプレゼンテーションサーバから、またはリモートプログラム(例えばローカル統合リモートアプリケーション−RAIL−プログラム)経由でデスクトップ仮想化ホストコンピュータ(リモートデスクトップ仮想化ホスト−RDVH−仮想マシン等)から来るものであり得る。ワークスペースを管理するクライアントコンピュータ上のプロセスは、SOAP(Simple Object Access Protocol)を使用してWebサービスに接続するための識別子を保持している。この識別子は、例えば、クライアントコンピュータがワークスペースにサブスクライブしたときにダウンロードされるXML(extensible markup language)フィードに含まれているWebサービスのロケーションについてのURL(Uniform Resource Locator)であっても良い。クライアントは、ユーザがフィードにサブスクライブしたときに、サーバから送信されたCookieを使用してWebサービスに対して自分自身を認証することも可能である。Webサービスでは、ユーザを認証し、ユーザのIDを取得するためにCookieを使用する。Webサービスは、集中パブリッシングサービスにワークスペースおよびユーザ識別子を送信するためにリモートプロシージャコール(RPC)を使用する。集中パブリッシングサービスは、そのユーザIDとワークスペースに関連付けられたセッション(切断されたセッション及び/または異なるマシンに接続されているアクティブなセッション)のリストを取得すべくセッションブローカに照会するために、この情報を使用する。その後、集中パブリッシングサービスは、セッション及び/または別のマシンに接続されているアクティブなセッションを有している個々のマシンに関連付けられている複数のリモートプレゼンテーションファイルをマッチさせ、再接続を示すように、各リモートプレゼンテーションファイルを変更する。集中パブリケーションサービスは、変更されたリモートプレゼンテーションファイルのそのリストをWebサービスに返し、後者はクライアントコンピュータ上のワークスペースプロセスに、このリストを返す。
ユーザのコンピュータがリモートプレゼンテーションファイルを持つと、クライアントコンピュータとリモートサーバ間の再接続処理が開始される。各接続は、新しいプロセス(例えば、MICROSOFT(登録商標)WINDOWS(登録商標)オペレーティングシステムのバージョンにおけるmstsc.exe。mstsc.exeは他のコンピュータとリモートプレゼンテーション接続を行うために設定される)を開始する。実行すべき複数の接続があるかもしれないが、最初に一つの接続が他の接続の前に行われる。ユーザ名とパスワードのプロンプトなどのように、接続の全てに共通するプロンプトの条件があるかもしれないため、最初に単一の接続が行われる。最初に一つの接続のみ実行することにより、そのようなプロンプトが一つだけであるかもしれず、この情報は他の全ての接続のために使用することができるようになる。単一の接続が行われた後、他の接続を並列に行うことができる。
リモートアプリケーションに再接続するときに、再接続を確立するクライアント上のプロセスが新しいアプリケーションを起動するパケットを飛ばし(またはあるいは、この再接続要求とは対照的に、接続要求の過程で送るパケットを送信せず)、それによって新しいアプリケーションを起動せずに(このプロセスのインスタンスは接続/再接続のためにそれぞれ別々にインスタンス化することができる)、そのサーバ上のリモートリソースにユーザを再接続する。再接続処理中、クライアントプロセスインスタンスから再接続を管理するワークスペースランタイムへの通信チャネルを確立することにより、ユーザプロンプトを最小限に抑えることができる。このチャネルを介してエラー状態が、ワークスペースランタイムに送信され、ユーザへの単一のプレゼンテーションにおいて複数の再接続処理インスタンスから受け取られるとともにそこで収集されるようにしても良い。
本技術を使用する場合、ユーザがどのサーバ上でそれが実行されていたか、あるいは彼または彼女がどのアプリケーションやデスクトップを実際に使っていたかを知らなくても、ワークスペース内の彼または彼女のリモートリソースに再接続することができる。さらに、最初の再接続を直列化し、ユーザインターフェースを統一することで、再接続でのユーザエクスペリエンスがよりシームレスになる。
なお、本発明の1つまたは複数の様々な態様は、明細書中で参照した本発明の態様を実現するための回路および/またはプログラミングを含み、それらには限定されないことは当業者には理解される。かかる回路および/またはプログラミングは、システム設計者の設計上の選択に応じて、本明細書で参照した態様を実現するように構成されたハードウェア、ソフトウェアおよび/またはファームウェアの事実上任意の組み合わせとすることができる。
上記は概要であり、従って、必然的に単純化、一般化、及び詳細の省略が含まれる。当業者は、要約は単なる例示であり、いかなる方法でも限定的であることは意図されていないことを理解するであろう。
クライアントのリモートリソースに再接続するためのシステム、方法およびコンピュータ可読媒体は、添付図面を参照しながら更に説明されている。
本明細書に記載した技術を具現化することができる汎用コンピューティング環境を示す。 クライアントが複数のサーバとのリモートセッションを含むワークスペースを有するシステムの例を示す。 ワークスペースのリモートリソースに再接続するクライアントのための通信フローの例を示す。 ワークスペースのリモートリソースへのクライアントの再接続に関係するクライアント、要求プロキシと接続ブローカのサブコンポーネントの例を示す。 サーバファームの複数のリモートサーバとの接続を含むワークスペースへの再接続のためのクライアントからの要求を処理する接続ブローカのための例示的な操作手順を示す。 サーバファームの複数のリモートサーバにワークスペースを再接続するクライアントの例示的な操作手順のフローを示す。 再接続処理におけるクライアントの例示的なユーザインターフェース要素を示す。 再接続処理におけるクライアントの追加の例示的なユーザインターフェース要素を示す。 再接続処理におけるクライアントの追加の例示的なユーザインターフェース要素を示す。
実施形態は、1つまたは複数のコンピュータシステム上で実行してもよい。図1および以下の説明は、開示された主題を実施することが可能な適切なコンピューティング環境の簡単な一般的な説明を提供することを意図している。
明細書全体を通して使用される回路という用語は、例えば、ハードウェア割り込みコントローラ、ハードドライブ、ネットワークアダプタ、グラフィックプロセッサ、ハードウェアベースのビデオ/オーディオコーデック、およびそのようなハードウェアを動作させるために使用されているファームウェア等のハードウェア構成要素を含むことができる。回路という用語はまた、マイクロプロセッサ、特定用途向け集積回路、および/または、例えば、ファームウェアおよび/またはソフトウェアから読み出された命令によって構成されたマルチコアジェネラルプロセッシングユニットの1つ以上のコア等の一つ以上のプロセッサを含むことができる。プロセッサは、例えば、RAM、ROM、ファームウェアおよび/または大容量ストレージなどのメモリからロードされる機能を実行するように動作可能なロジックを具現化する命令によって構成することができる。回路がハードウェアとソフトウェアとの組み合わせを含む実施例では、実装者は、プロセッサによって実行可能な機械可読コードにその後コンパイルされるロジックを具現化したソースコードを書き込むことができる。当業者は、ハードウェア実装された機能またはソフトウェア実装された機能の間に差が殆ど無いような点まで技術水準が進化していることを理解することができ、本明細書で説明される機能を達成するためのハードウェアとソフトウェアの選択は、単に設計上の選択である。換言すれば、当業者は、ソフトウェア処理が同等のハードウェア構成に変換可能であり、ハードウェア構成はそれ自身を同等のソフトウェアプロセスに変換可能であることを理解することができ、ソフトウェア実装に対するハードウェア実装の選択は実装者に任されている。
図1には典型的な汎用コンピューティングシステムが示されている。汎用コンピューティングシステムは、少なくとも1つのプロセッサまたは処理装置21と、システムメモリ22と、システムが動作状態にあるときシステムメモリを含む様々なシステム構成要素を処理装置21に通信可能に接続するシステムバス23とを含む従来のコンピュータ20等を含むことができる。システムバス23は、メモリバスまたはメモリコントローラ、周辺バスおよび様々なバスアーキテクチャのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。システムメモリは、読み出し専用メモリ(ROM)24、ランダムアクセスメモリ(RAM)25を含むことができる。起動時などにコンピュータ20の内部の要素間で情報を転送するのを補助する基本ルーチンを含む基本的な入力/出力システム26(BIOS)は、ROM24に格納されている。コンピュータ20は、さらにハードディスク(図示せず)からの読み取りまたは書き込みのためのハードディスクドライブ27、リムーバブル磁気ディスク29からの読み取りまたは書き込みのための磁気ディスクドライブ28、およびCD−ROMまたは他の光媒体などのリムーバブル光ディスク31からの読み取り及び書き込みのための光ディスクドライブ30を含むことができる。ハードディスクドライブ27、磁気ディスクドライブ28および光ディスクドライブ30はそれぞれハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33および光ドライブインターフェース34によってシステムバス23に接続されているところが示されている。ドライブおよびそれらの関連付けられたコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびコンピュータ20のための他のデータの不揮発性ストレージを提供する。本明細書中に記載の例示的な環境は、ハードディスク、リムーバブル磁気ディスク29およびリムーバブル光ディスク31を採用しているが、フラッシュメモリカード、デジタルビデオディスク、RAM、ROM等のようにコンピュータによってアクセス可能なデータを格納することができるコンピュータ読み取り可能な他のタイプのメディアが例示的な動作環境でも使用することができることは、当業者によって理解されるべきである。一般に、このようなコンピュータ読み取り可能な記録媒体は、本開示の態様を具体化するプロセッサが実行可能な命令を格納するためにいくつかの実施形態で使用することができる。
コンピュータ可読命令を含むいくつかのプログラムモジュールは、オペレーティングシステム35、1つ以上のアプリケーションプログラム36、他のプログラムモジュール37およびプログラムデータ38を含んで、ハードディスク、磁気ディスク29、光ディスク31、ROM24やRAM25のようなコンピュータ可読媒体に格納されてもよい。処理装置によって実行されるとき、コンピュータ可読命令は、以下でより詳細に説明されるアクションを発生させ、あるいは様々なプログラムモジュールをインスタンス化させる。ユーザは、キーボード40やポインティングデバイス42などの入力デバイスを介してコンピュータ20にコマンドおよび情報を入力することもできる。その他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディスク、スキャナ等を含むことができる。これらおよび他の入力デバイスは、システムバスに結合されたシリアルポートインターフェース46を介して処理装置21に接続されているけれども、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)などの他のインターフェースによって接続することもできる。表示装置47または他のタイプの表示装置も、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続することができる。ディスプレイ47に加えて、コンピュータは通常、スピーカやプリンタなど他の周辺出力装置(図示せず)を含む。図1の例示的なシステムはまた、ホストアダプタ55、SCSI(Small Computer System Interface)バス56、およびSCSIバス56に接続された外部記憶装置62を備える。
コンピュータ20は、リモートコンピュータ49などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ49は、別のコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の一般的なネットワークノードであってもよく、メモリ記憶装置50のみが図1に示されているけれども通常、コンピュータ20に関連して上述した多くのまたは全ての要素を含むことができる。図1に示す論理接続1は、ローカルエリアネットワーク(LAN)51およびワイドエリアネットワーク(WAN)52を含むことができる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
LANネットワーク環境で使用する場合は、コンピュータ20は、ネットワークインターフェースまたはアダプタ53を介してLAN51に接続することができる。WANネットワーキング環境で使用する場合は、コンピュータ20は、典型的には、モデム54またはインターネットなどの広域ネットワーク52を介して通信を確立するための他の手段を含めることができる。モデム54は、内蔵でも外付けでもよく、シリアルポートインターフェース46を介してシステムバス23に接続することができる。ネットワーク環境では、コンピュータ20、またはその一部に関して示したプログラムモジュールは、リモートメモリ記憶装置に格納することができる。示されているネットワーク接続は例示にすぎず、コンピュータ間の通信リンクを確立するための他の手段を用いることができることが理解されよう。本発明の多数の実施形態は、特にコンピュータシステムに適していることを想定しているけれども、さらに、本明細書では、開示をこのような実施形態に限定することを意図していない。
図2は、クライアントが複数のサーバとのリモートセッションを含むワークスペースを有するシステムの例を示している。
図2に示すコンピュータは、図1に示したコンピュータと同様であって良い。図2において、クライアント202は、要求プロキシ204、接続ブローカ206、ゲートウェイ208、リモートアプリケーションサーバファーム214(同一に設定された2つのサーバ、リモートのアプリケーションサーバ216a-bを含む)、およびVMサーバファーム210(同一構成の2つのVM、VM212a-bを含む)を含むデプロイメント200と通信する。
クライアント202は、1つまたは複数のリモートアプリケーションサーバ216とVM212からサービスを提供される複数のリモートリソースから構成されるワークスペースを有する。クライアント202は、要求プロキシ204を介して、そのワークスペースにログインすることができる。いったん認証されると、クライアントのそのワークスペースに接続するための要求が要求プロキシ204から接続ブローカ206に送信される。接続ブローカ206は、クライアント202と、クライアント202にリモートリソースを提供するアプリケーションサーバ216およびVM212との間のブローカ接続を行うように構成されており、これを達成するために、接続ブローカ206は現在提供しているリソース(クライアント202のユーザのための切断されたセッションを含む)が何であるかを決定するために、アプリケーションサーバ216及びVM212と通信するように構成されている。
クライアント202は、リモートアプリケーションサーバ216aからのリモートアプリケーションを含むリモートリソースおよびVM212aからのVMを含むリモートリソースである複数のリモートリソースから構成されたワークスペースを有していても良い。図示のように、クライアント202は、リモートアプリケーションサーバ216bまたはVM212bを伴うリモートリソースを有していない。これらは、それぞれが異なるアプリケーションやデスクトップ、アプリケーションのバージョン、または他の用例をサービスすることができる。例えば、リモートアプリケーションサーバ216aはリモート処理ワードプロセッサアプリケーションでクライアント202にサービスを提供することができ、VM212は、仮想デスクトップでクライアント202にサービスを提供することができる。
この描写から分かるように、ユーザが自分のワークスペースに再接続しようとする場合、彼は1つのコマンドを2回行うのではなく、1つのコマンドを介してリモートのアプリケーションサーバ216aとVM212aの両方のリモートリソースに再接続することを望むかもしれない。ユーザは、クライアント202から、または別のクライアントコンピュータ(クライアント202が、ユーザが仕事をしているコンピュータで、ユーザが週末に自宅のコンピュータから再接続したい場合など)からこの再接続操作を実行できる。
図3は、クライアントがワークスペースのリモートリソースに再接続するための通信フローの例を示している。
図3は、クライアントが複数のサーバとのリモートセッションを含むワークスペースを再接続する場合のシステム内の通信フローの例を示している。この通信フローは、図2に示したコンピュータシステム等のシステム内で達成することができる。即ち、図3のリモーデプロイメント300、クライアント302、要求プロキシ304、接続ブローカ306、ゲートウェイ308、VMファーム310およびVM312aは、図2のリモートデプロイメント200、クライアント202、要求プロキシ204、接続ブローカ206、ゲートウェイ208、VMファーム210、VM212aのそれぞれと同様のものとすることができる。
クライアント302のユーザは以前にVM312aからリモートリソースへのアクセスに関与していたワークスペースを有していたが、このワークスペースは現在切断されている。代替的な実施形態では、クライアント302のユーザは、VM312aに接続された別のクライアントで以前に作業していた可能性があり、ユーザが再接続したい時に、このワークスペースはまだアクティブになっている。クライアント302のユーザがデプロイメント300への再接続を試行する前に、要求プロキシ304は、クライアント302がデプロイメント300のリモートリソースにアクセスするのに使用することができるデプロイメント300についての情報を識別する文書を(通信(1)を介して)クライアント302に発行する。クライアント302は後に、要求プロキシ304に通信(2)を送信することによって再接続する。要求プロキシ304は、ユーザおよび/またはクライアントの認証情報(ログインやパスワードなど)を検証する。認証情報が確認された場合には、要求プロキシ304はそのワークスペースを再接続する際にクライアント302がどのリモートリソース(ここでは、VM312a)に再接続するかを決定するために、接続ブローカ306と通信する。要求プロキシ304は、接続ブローカ306に通信(3)を送信し、それに対して、通信(4)でクライアント302が再接続するサーバファームのリスト(ここでは、VMファーム310)を受信することによってこの判断を行う。通信(4)で示されたこの情報は、通信(5)で要求プロキシ304によってクライアント302に渡される。
クライアント302が、要求プロキシ304からの再接続するサーバのリストを持っている場合、クライアント302は、それらのサーバファームのそれぞれとの通信を再確立する。図3に示すようにそのサーバファームは、VMファーム310である。クライアント302は、これらのサーバファームのリモートリソースにアクセスするためにゲートウェイ308との通信(6)を行う。ゲートウェイ308は、通信(6)を処理し、続いて同様の情報を伝えるために、接続ブローカ306との通信(7)を行う。接続ブローカ306は、通信(7)からサーバファームの識別情報を受け取り、そこから、切断されたリモートリソースおよび/またはこのユーザについての異なるクライアントでのアクティブなリモートリソースを有するファーム310内のマシン(VM312a)を識別する。接続ブローカ306はクライアント302に通信(8)を送信し、クライアント302にVM312a上のリモートリソースへの再接続を指示する。次に、クライアント302は、ゲートウェイ308に再接続を示す通信(9)を送信し、ゲートウェイ308はVM312aに再接続を示す通信(10)を送信し、VM312aに再接続する。
これは本発明を強調するために簡略化した図式であり、そしてより多くのまたはより少ないサーバファームが存在および/または再接続され、渡された通信(例えば、通信(9)、(10)が、VM312aおよびクライアント302間の間の再接続を確立すること、そこではクライアント302から送信された、ゲートウェイ308を介したVM312aへの通信を伴うかもしれないことが示されている)がもっと関与している可能性があることが理解されるであろう。
図4は、本技術が使用され得るクライアント、要求プロキシおよび接続ブローカのシステムアーキテクチャの例を示している。図4に示すシステムアーキテクチャは、Microsoft Windowsオペレーティングシステムの各バージョンで使用されたシステムアーキテクチャに類似している。クライアント402、要求プロキシ404および接続ブローカ406は、それぞれ図2のクライアント202、要求プロキシ204および接続ブローカ206に類似していても良い。クライアントは、mstsc408とワークスペースランタイム414を備えている。次に、mstsc408は、mstcax410およびワークスペースクライアント拡張機能412を含み、ランタイムワークスペース414は、再接続ユーザインターフェース418およびウェブサービスクライアント416から構成されている。要求プロキシ404は、集中パブリッシングRPCクライアント420、RDWebServiceAsp.dll422およびRDWebService.asmx424を含む。接続ブローカ406は、集中パブリッシングサービス426、セッションブローカWMIプロバイダ428およびセッションブローカサービス430を備えている。
ワークスペースランタイム414は、クライアント402のワークスペースを管理する−それは、ワークスペースのリモートリソースに接続すること、およびワークスペースのリモートリソースに再接続することを管理し、並びにMSTSC408のインスタンスに接続または再接続を行わせる。再接続UI418は、クライアント402のユーザに再接続を示す入力を行うためのユーザインターフェースを提示する。このユーザインターフェースは、図7Aで示されているユーザインターフェースであってもよい。ウェブサービスクライアント416は、再接続の際のユーザの認証情報の認証のために要求プロキシ404と通信するワークスペースランタイム414のコンポーネントである。
MSTSC408はリモートリソースに接続または再接続するように構成されている。MSTSC408の1つのインスタンスが1つの接続/再接続を行うことがあるので、ワークスペースランタイム414は、複数のリモートリソースに接続/再接続するためにMSTSC408の複数のインスタンスをインスタンス化する。MSTSC408は、mstsc408のためのActiveXコントロールであるmstscax410を含む。次に、mstscax410は、ワークスペースクライアント拡張機能412を含む。Mstscが本発明の技術を考慮せずに実装されたMSTSCのバージョンである場合には、ワークスペースランタイム414がMSTSC408と通信してワークスペースのリモートリソースの再接続を行うようにmstsc408を拡張するためにワークスペースクライアント拡張機能412がmstsc408に追加されてもよい。
DMZ(DeMilitarized Zone)432はクライアント402が接続ブローカ406に直接通信することを防ぐことができる物理的または論理的なサブネットワークを含む。要求プロキシ404は、インターネットなどの通信ネットワークを介してクライアント402と通信したり、イントラネット上で接続ブローカ406と通信したりすることができるようにDMZ432にまたがって位置する。
要求プロキシ404は、RDWebServiceASP.dll422とRDWebservice.asmx424を備えており、それらは、連動して、クライアント402がログイン認証情報またはその他の入力を提供するのに使用するかもしれないウェブページをクライアント402に提供するように構成されているコンポーネントである。要求プロキシ404はまた、接続ブローカ406からリモートデータファイル(クライアントが該当のリモートリソースを有するサーバファームに再接続する方法についての情報を含むもの)を受信するように構成されている、集中型のパブリッシングリモートプロシージャコール(RPC)クライアント420を含む。
接続ブローカ406はリモートデータファイルを保存し、集中型パブリッシングRPCクライアント420にそれを提供するように構成された集中型パブリッシングサービス426を備えている。接続ブローカ406はまた、サーバファーム内の複数のマシンのうち、どのマシンがユーザに関連付けられた指定のリモートリソースを持っているかを決定するように構成されたセッションブローカサービス430を備えている。接続ブローカ406はまた、セッションブローカサービス430が情報や通知を他のコンポーネントに提供するためのインターフェースを提供するように構成されている接続ブローカのWMI(WINDOWS Management Instrumentation)プロバイダ428を備えている。
図5は、サーバファームの複数のリモートサーバとの接続を含む、クライアントからのワークスペースへの再接続の要求を処理する接続ブローカの動作手順の例を示している。図5の動作手順は、図2の接続ブローカ206によって達成することができる。
動作手順は動作500で開始する。動作500は、ユーザとの第1のリモートリソースおよび第2のリモートリソースを確立することを示す動作502につながる。クライアント202に関連付けられているユーザアカウントなどのユーザは、要求プロキシ204を介して認証され、次に接続ブローカとリモートリソースを確立するための要求を有することができる。接続ブローカは、クライアントにそのリモートリソースを提供するサーバファームとサーバファーム内のマシンを決定することができる。次に、クライアントは、クライアントの通信を接続ブローカによって決定されたマシンへ送出するデプロイメントのゲートウェイにコンタクトすることができ、次にそのマシンは、クライアントにリモートリソースを提供する。一実施形態では、クライアントコンピュータにおいてユーザとの間で確立されたリモートリソースは、リモートデスクトップ、リモートアプリケーションまたはプールされた仮想マシン(VM)を備える。接続ブローカはクライアントの再接続要求を処理するだけではなく、最初に、クライアントの接続要求を処理するように構成されている。接続要求を処理するときに、接続ブローカは、クライアントが切断されていない新しいリモートリソースに接続するためのクライアントからの要求を受信し、クライアントへのリモートリソースにサービスを提供するサーバファーム上のマシンを決定し、決定したマシンの識別子をクライアントに送信することができる。
動作504は、第1及び第2のリモートリソースがすでに切断された後、切断されたリソースをユーザのために再接続するための要求をユーザから受けることを表している。ユーザは、第1および第2のリモートリソースを確立した後、それらのリソースから切断される場合(前述のように切断されたリソースは、ログオフリソースまたはアクティブなリソースとは区別される)がある。その後ユーザは、接続ブローカが決定可能な切断されたリソースに接続ブローカが再接続するように要求することができる。ユーザは、どのリソースが、もし有れば、再接続されるかについての情報を持っている可能性があるため、ユーザが必ずしも特定の切断されたリソースを指定しなくとも良い。むしろ、ユーザの要求は、切断されたリソースが何であるか、更には切断されたリソースが存在しているかにかかわらず、接続ブローカが認識しているそれらの切断されたリソースに再接続する要求を示している場合があります。
一実施形態では、切断されたリソースをユーザのために再接続する要求をユーザから受信することは、その要求を接続ブローカに送信する前にユーザの認証情報を検証した要求プロキシに向けられていた要求を接続ブローカによって受信することを含む。これは、図2に示したものに類似したシステムアーキテクチャで発生する可能性があり、そこではクライアント202は、接続ブローカ206に要求を送信する前にユーザの認証情報を検証する認可サーバ204にコンタクトする。
動作506は、ユーザが第1の切断されたリソースと第2の切断されたリソースを持っていることを判断することを示している。動作504の要求は、切断されたリソースが何であるかを指定せず、その切断されたリソースが何であってもクライアントが再接続されることを要求していることだけを指定している。その要求を受信すると、接続ブローカは、サーバファームのために、このケースでは第1の切断されたリソースおよび第2の切断されたリソースである、クライアントの切断されたリソースを決定する。接続ブローカは、例えば、ユーザとの間で確立したリモートリソースのリストを維持し、次にそれらのリモートリソースの一つを提供している/提供していた各マシンにクエリを行って、リモートリソースの状態(例えば、切断、アクティブ、またはログオフ)を判断することによって、これを行うことができる。
動作508は第1のリモートリソースに再接続する方法についての情報を含む第1のリモートデータ、及び第2のリモートリソースに再接続する方法についての情報を含む第2のリモートデータをユーザに送信することを示しており、第1及び第2のリモートデータの受信に応じて、ユーザは第1および第2の切断されたリソースへの再接続をするために第1及び第2のリモートデータを使用する。接続ブローカは、リモートリソースを提供するマシンのマシン名または識別子などの、リモートリソースに接続する方法についての情報を維持することができる。第1のリモートデータは、第1のリモートリソースを提供するマシンに再接続するための情報を含むデータであり、第2のリモートデータは、第2のリモートリソースを提供するマシンに再接続するための情報を含むデータである。
一実施形態では、(動作502のように)ユーザと第1のリモートリソースを確立することは、第1のコンピュータでユーザと第1のリモートリソースを確立することを含み、第1のリモートデータをユーザに送信することは、第2のコンピュータで第1のリモートデータをユーザに送信することを含む。ユーザは別のクライアントコンピュータでこれらのリモートリソースにアクセスすることができ、元々の接続とは別のコンピュータから再接続しようとしているため、ユーザが再接続を試みるとき彼または彼女のリモートリソースの情報が欠けることにつながる可能性がある。
リモートセッションが第1の切断されたリモートアプリケーションと第2の切断されたリモートアプリケーションを含む実施形態では、動作508はユーザに第1のリモートデータを送信することを含み、第1のリモートデータの受信に応答して、ユーザが、第1の切断されたリモートアプリケーションおよび第2の切断されたリモートアプリケーションに再接続するために第1のリモートデータを使用する。ユーザのリモートリソースの切断には、切断されたセッションだけでなく、切断されたリモートアプリケーションが含まれる可能性が有る。図2の接続ブローカ206のような接続ブローカが、ユーザが彼または彼女の切断されたリソースに再接続する要求を受け取る場合、接続ブローカはこれらの切断されたセッションを数え上げることができる。ユーザのためのそれら切断されたセッションの一つは、ユーザの一つのリモートデスクトップを含むのではなく、複数のリモートアプリケーションである可能性がある。接続ブローカ206がユーザのクライアントにその切断されたリモートセッション用のリモートデータを送信するようなシナリオでは、セッションに再接続することによって、ユーザは、そのセッション内の切断されたリモートアプリケーションのそれぞれに再接続を実施する。
即ち、ユーザが一台のマシンによって提供されている複数のリモートアプリケーションを持っている場合、それらの複数のリモートアプリケーションは全て、そのマシン上の1つのセッション内で実行してもよい。したがって、ユーザがそれらのリモートアプリケーションの一つに再接続する場合には、全てのリモートアプリケーションが実行されるセッションに再接続している。このようなシナリオでは、ユーザはそれらのリモートアプリケーションの各々に再接続する方法の情報を受信する必要はなく(例えば、ユーザは4つのリモートアプリケーション用に4つの別々のリモートデータファイルを受信する必要がない)、一つのリモートアプリケーションへ再接続する方法の情報のみを受信すれば良い。
動作510は、ユーザからの第1の切断されたセッションに再接続するための要求であって、第1のリモートデータで作られ、ゲートウェイに送られ、サーバファームを指定する要求を接続ブローカによって受信し、第1の切断されたセッションを有するサーバファームのマシンを判定し、ユーザと第1の切断されたセッションを再接続するためにマシンへのインジケーションを送ることを示している。
動作510は、図2のシステムアーキテクチャに似たシステムアーキテクチャで発生する可能性がある。リモートリソースに再接続する方法についての情報のために、クライアント202は通信ブローカ206(要求プロキシ204を介して)にコンタクトする。クライアント202は、この情報を持つと、クライアントが接続するサーバファームの識別子で(クライアントはこの識別情報を受信したけれども、サーバファーム内の特定のマシンの識別情報は受信していない)デプロイメントのゲートウェイ208にコンタクトする。デプロイメントのゲートウェイ208は、その後この情報で接続ブローカ206にコンタクトし、接続ブローカ206は、識別されたサーバファーム内の切断されたセッションを有する特定のマシンを識別する。
図6は、サーバファームの複数のリモートサーバへワークスペースを再接続するクライアントの動作手順のフローの一例を示している。これらの操作手順は、図2のクライアント202によって実施することができる。
図6の動作手順は動作600で開始する。動作600は、接続ブローカによって管理される、ユーザが有する切断されたリモートリソースのそれぞれにユーザを再接続するように接続ブローカにインジケーションを送ることを表す動作602へと続く。クライアントの表示は、特定のリモートリソース、あるいは再接続されるリモートリソースの数を識別しておらず、リモートリソースが何であっても、単にクライアントが接続ブローカのデプロイメントの任意のおよび/または全てのリモートリソースに再接続することを要求していることを示しているのみである可能性がある。
このように、ユーザのリモートリソースへの再接続を開始するユーザの入力は、特に第1又は第2の切断されたリモートリソースを参照しておらず、切断されたリモートリソースの再接続を一般的に示しているのみである場合がある。一実施形態では、このユーザ入力はリンク上でボタンの押下やクリックを受信することを含み、ボタンまたはリンクはリモートセッションを介してリモート処理する任意のアプリケーションに関連付けられていない。ユーザの再接続のインジケーションは特定のリモートリソースを識別していない可能性があるので、ユーザの入力も同様である。例えば、ユーザの切断されたリモートリソースが、ワードプロセッサやスプレッドシートアプリケーションを含む場合、ユーザの入力は、ワードプロセッサやスプレッドシートのアイコンのいずれかのアイコンをクリックすることを含まず、再接続のため及びそれ自体の、「切断されたリソースに再接続します」のように述べたボタンなどのより一般的なボタンをクリックすることであるかもしれない。
動作604は第1のリモートデータと第2のリモートデータを受信することを示しており、各リモートデータは切断されたリモートリソースに再接続するための情報を含んでいる。このリモートデータは、例えば、リモートリソースが提供されるサーバファームの識別子およびそのサーバファームへのゲートウェイの識別子を含んでいてもよい。
一実施形態においては、第1のリモートデータは第1の切断されたリモートリソースを提供していたサーバファーム内のマシンではなく、第1の切断されたリモートリソースのサーバファームを示している。リモートデータは、サーバファーム内の特定のマシンではなくリモートリソースのサーバファームのみを識別することができる。このシナリオでは、クライアントがリモートリソースに再接続するように要求を送信した場合、この要求は、サーバファーム内のどのマシンが切断されたリモートリソースを有するかを判定し、リモートリソースをクライアントに再接続することをそのマシンに指示する接続ブローカに転送される。
動作606は、第1の切断されたリモートリソースは仮想マシン(VM)によって提供されるリモートリソースではないため、第1のリモートデータによって示される第1の切断されたリモートリソースに再接続することによって再接続の開始を決定することを示している。クライアントは、リモートデスクトップ、リモートアプリケーションおよびVMを含む複数のリモートリソースへの再接続のためのリモートデータを受信することができる。VMがスリープ状態、メンテナンス状態にあるか、あるいは切断されたリモートリソースをすぐに再接続するために利用できない可能性があるため、VMに再接続することは、リモートデスクトップやリモートアプリケーションへの再接続に比べて長い時間(数分かかる場合がある)がかかることがある。ユーザ入力の必要性が最初の再接続中に収集され、その後保存され、他の全ての再接続で使用されるため、第1のリモートリソースは、他のリモートリソース(動作608で示された2番目のリモートリソースなど)に再接続する前に再接続される。第1の再接続がスリープ状態にあるVMへの再接続である場合、第1の再接続を順次行ってその後、他の全ては並行して行う(再接続が並行して行われて再接続の一部または全てが、ある一時点において実際に進行中かもしれない)ように再接続を行うことは、全ての再接続を遅くする。
動作608は第1の切断されたリモートリソースに再接続した後、第2のリモートデータによって示される第2の切断されたリモートリソースに再接続することを示す。一実施形態において、動作608は、第1の切断されたリモートリソースへの再接続中にユーザ入力が再接続するために必要とされることを決定すること、そのユーザ入力を受信することを含み、第2の切断されたリモートリソースに再接続することは、ユーザ入力で第2の切断されたリモートリソースへ再接続することを含む。例えば、ユーザの認証情報が、正しくない場合、有効期限切れの場合、又は別の方法でユーザによって再入力される必要がある場合、ユーザの認証情報は、第1の再接続中に収集された後、格納され、例えば、第2の切断されたリモートリソースに再接続する等の後続の再接続時に再使用される。他の再接続前に一つの再接続を行う際に、ユーザは複数回ではなく一度だけ入力を求められるようにしてもよく、それは複数の再接続が平行して開始するように成されている場合などに行われる可能性がある。
一実施形態では、第1の切断されたリモートリソースが最初に第1のクライアントコンピュータとの間で確立され、第1の切断されたリモートリソースへの再接続は第2のクライアントコンピュータによって実行される。仕事場と彼の居住地の間のように、ユーザは初期の接続と再接続の間でコンピュータを移動してもよい。このため、ユーザは切断されたリモートリソースに関する情報を持っていない可能性があり、それらに再接続する前に接続ブローカからそれらの情報を取得する必要がある。
リモートプロセスが、実行プロトコルデータユニット(exec PDU)を含む情報を送信することによってリモートリソースに接続するように構成される実施形態では、第1の切断されたリモートリソースに再接続することはリモートプロセスのインスタンスにexec PDUを送信しないことを示すことを含む。クライアントの再接続は、図4に示されたように、再接続プロセスのインスタンスを管理するワークスペースランタイム(mstscのような)によって管理されてもよい。通常、再接続プロセスは、リモートリソースがサーバファーム上でインスタンス化されることを示しているデプロイメントにexec PDUを送信することが可能である。このシナリオでは、クライアントが、リモートリソースが新たにインスタンス化されることを要求しておらず、寧ろリモートリソースの既存のインスタンスに再接続されることを要求しているかもしれない。これが事実である場合には、ワークスペースのランタイムは、クライアントが切断されたリモートリソースの既存のインスタンスにクライアントが再接続することになるように、再接続通信フローからのexec PDUを省略することを再接続プロセスに指示することができる。
動作610は、第3のリモートデータを受信すること、および第2の切断されたリモートリソースへの再接続と平行して第3のリモートデータによって示される第3の切断されたリモートリソースに再接続することを示している。上述したように、複数のリモートリソースが再接続される場合、1つのリモートリソース(ここでは、第1の切断されたリモートリソース)が他の再接続に対して最初に順次に再接続され、他のリモートリソース(ここでは、第2および第3の切断されたリモートリソース)が並列に再接続される。
動作612は、第1の切断されたリモートリソースに再接続している間に、ユーザに表示される第1のメッセージを決定し、第2の切断されたリモートリソースに再接続している間に、ユーザに表示される第2のメッセージを決定し、第2の切断されたリモートリソースに再接続した後に、ユーザに第1のメッセージと第2のメッセージを含む統一されたメッセージを表示することを示している。ユーザが複数のプロンプトを受信しないように、ユーザ入力を受信することが第1の再接続のためにユーザ入力を受信することに凝縮されるのと同じ方法で、ユーザへのメッセージが収集され、ユーザに一度に表示されるようにすることができる。例えば、複数回の再接続の試行の結果、メッセージが表示され、再接続が失敗したか成功したかがユーザに通知されるようにしても良い。クリックして処理しなければならない複数のメッセージウィンドウを表示するのではなく、それらが一つのメッセージウィンドウに表示されるように、これらのメッセージが収集されても良い。
第1の切断されたリソースが第1のプロセスにより再接続され、第2の切断されたリソースが第2のプロセスにより再接続される実施形態では、動作612は、第1のプロセスとの第1の通信パイプ、第2のプロセスとの第2の通信パイプを確立すること、第1の通信パイプを介して第1のプロセスからの第1のメッセージを受信すること、第2の通信パイプを介して第2のプロセスからの第2のメッセージを受信することを含んでいる。図4に示されたようなシステムアーキテクチャにおいて、クライアント上のワークスペースランタイムは、それぞれが1つのセッションに再接続する複数の再接続プロセス(例えばmstscなど)を管理することができる。このシステムアーキテクチャでは、プロセスからのメッセージは、ワークスペースランタイムによって収集されることができ、ワークスペースランタイムがその後統一的なやり方でそれらをユーザに表示する。各再接続処理は、ワークスペースランタイムとの通信パイプを確立し、この通信パイプを使用してワークスペースランタイムにメッセージを送信することによって、ワークスペースランタイムにメッセージを渡すことができる。ワークスペースランタイムはこれらの受信したメッセージを保存し、全ての再接続プロセスが完了(成功、あるいは失敗)したと判断したとき、ユーザに統一されたメッセージが表示するようにしても良い。
図7Aは、再接続プロセスにおけるクライアントのためのユーザインターフェース要素の例を示す。ユーザインターフェース702は、ユーザが要求プロキシ(要求プロキシ204など)にクライアント(クライアント202など)の署名をするために彼の認証情報を入力する初期ログイン画面を含むことができる。要求プロキシ204はこのユーザインターフェースにおいて受信される認証情報のユーザ入力を受信し、デプロイメント(デプロイメント200など)のユーザを検証するためにユーザの認証情報を検証することができる。
図7Bは、再接続プロセスにおける、クライアントのための追加のユーザインターフェース要素の例を示す。図7Aのユーザインターフェース702において提供された認証情報に基づいて要求プロキシによってユーザが正常に検証された後、要求プロキシは、それらがどんなものであっても、符号706に接続することができるリモートリソースを示すユーザインターフェース704のための情報だけでなく、任意の切断されたリソースに再接続するためのオプションを再接続リンク708を介してユーザに提供してもよい。
図7Cは、再接続プロセスにおける、クライアントのための追加のユーザインターフェース要素の例を示す。ユーザが図7Bの再接続リンク708をクリックすると、要求プロキシが、ワークスペースが再接続されているというインジケーションをユーザに示すインターフェース710をユーザに提供するようにしても良い。再接続プロセスが完了すると、もはやユーザインターフェース710が表示されず、それらのリモートリソースを提供するマシンを、ユーザが対話可能な、これらのリモートリソースのためのユーザインターフェースに送信するようにすることができる。
結論
様々な図面に示された好ましい態様に関して本発明を説明してきたが、本発明から逸脱することなく同じ機能を実行するために、他の同様の態様を用いること、又は説明された態様に修正および追加をすることが可能であることが理解される。従って、本発明は、任意の単一の態様に限定されるべきではなく、むしろ添付の特許請求の範囲による広さおよび範囲内で解釈されるべきである。例えば、本明細書に記載された様々な手順は、ハードウェアまたはソフトウェア、あるいは両者の組み合わせによって実施することができる。したがって、開示された実施形態、又は特定の態様又はその一部、の方法および装置は、例えば、フロッピー(登録商標)ディスク、CD−ROM、ハードドライブ、または任意の他の機械可読記憶媒体などの有形媒体で具現化されるプログラムコード(すなわち、命令)の形を取ることができる。プログラムコードがコンピュータなどの機械によってロードされて実行されるとき、機械は、開示された実施形態を実施するように構成された装置となる。明示的に本明細書で述べた特定の実装形態に加えて、他の態様および実装は、当業者には本明細書に開示された内容を考慮することにより明らかであろう。本明細書および図示した実装は、例としてのみ見なされることが意図されている。

Claims (15)

  1. 複数のリモートセッションにクライアントを再接続する方法であって、
    クライアントとの第1のリモートセッションおよび第2のリモートセッションを確立するステップと、
    前記第1および第2のリモートセッションが切断された後に、ユーザのために切断されたセッションを再接続するための要求をユーザから受信するステップと、
    ユーザが第1の切断されたセッションおよび第2の切断されたセッションを有することを判定するステップと、
    第1のリモートセッションに再接続する方法についての情報を含む第1のリモートデータおよび第2のリモートセッションに再接続する方法についての情報を含む第2のリモートデータをユーザに送信し、第1および第2のリモートデータの受信に応答して、クライアントが第1および第2の切断されたセッションに再接続するために第1および第2のリモートデータを使用するステップと
    を備えることを特徴とする方法。
  2. 前記リモートセッションは、第1の切断されたリモートアプリケーションおよび第2の切断されたリモートアプリケーションを備え、
    ユーザに第1のリモートデータを送信することは、
    第1のリモートデータの受信に応答して、ユーザが第1の切断されたリモートアプリケーションおよび第2の切断されたリモートアプリケーションへの再接続のために第1のリモートデータを使用するように、第1のリモートデータをユーザに送信することを含むことを特徴とする請求項1に記載の方法。
  3. ユーザと第1のリモートリソースを確立することは、
    第1のコンピュータでユーザと第1のリモートセッションを確立することを含み、
    第1のリモートデータをユーザに送信することは、
    第2のコンピュータにおいて第1のリモートデータをユーザに送信することを含むことを特徴とする請求項1に記載の方法。
  4. リモートセッションは、リモートデスクトップ、リモートアプリケーション、またはプールされた仮想マシン(VM)を含むことを特徴とする請求項1に記載の方法。
  5. 前記方法は、接続ブローカによって実行され、
    第1の切断されたセッションに再接続するためのユーザからの要求を接続ブローカによって受信するステップであって、前記要求は、第1のリモートデータで作成され、ゲートウェイに向けられ、サーバファームを指定する、ステップと、
    第1の切断されたセッションを有するサーバファームのマシンを決定するステップと、
    ユーザと第1の切断されたセッションを再接続するためにマシンにインジケーションを送信するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  6. 前記方法は、接続ブローカによって実行され、ユーザのために切断されたセッションを再接続するためのユーザからの要求を受信することは、
    接続ブローカに要求を送信する前にユーザの認証情報を検証する要求プロキシに送られた要求を接続ブローカによって受信することを含むことを特徴とする請求項1に記載の方法。
  7. クライアントが切断されていない新しいリモートリソースに接続する要求をクライアントから受信するステップと、
    クライアントにリモートリソースを提供するサーバファーム上のマシンを判定するステップと、
    判定されたマシンの識別子をクライアントに送信するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  8. コンピュータ可読命令を格納するコンピュータ可読記憶媒体であって、
    前記コンピュータ可読命令は、コンピュータによって実行されると、前記コンピュータに、
    クライアントを前記クライアントに関連付けられている各々の切断されたリモートセッションに再接続するために接続ブローカにインジケーションを送信するステップと、
    第1のリモートデータと第2のリモートデータを受信するステップであって、各々のリモートデータは、切断されたリモートセッションに再接続するための情報を含む、ステップと、
    第1の切断されたリモートセッションは仮想マシン(VM)によって提供されたリモートセッションではないとの判定に応答して、第1のリモートデータによって示される第1の切断されたリモートセッションについての再接続要求を送信するステップと、
    第1の切断されたリモートセッションに再接続した後、第2のリモートデータによって示される第2の切断されたリモートセッションに再接続するステップと
    を備える方法を実行させることを特徴とするコンピュータ可読記憶媒体。
  9. コンピュータ可読命令をさらに格納し、前記コンピュータ可読命令は、コンピュータによって実行されると、前記コンピュータに、
    第3のリモートデータを受信するステップと、
    第2の切断されたリモートセッションに再接続することと並行して第3のリモートデータによって示される第3の切断されたリモートセッションに再接続するステップと
    を備える方法を実行させることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
  10. コンピュータ可読命令をさらに格納し、前記コンピュータ可読命令は、コンピュータによって実行されると、前記コンピュータに、
    ユーザ入力が再接続するために必要であると判定されたことに応答してユーザ入力を求める要求を表示するステップと、
    ユーザ入力を受信するステップと、
    を備える方法を実行させ、
    第2の切断されたリモートセッションに再接続することは、
    ユーザ入力で第2の切断されたリモートセッションに再接続することを含むことを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
  11. 第1の切断されたリモートセッションが始めに第1のクライアントコンピュータとの間で確立され、前記第1の切断されたリモートセッションに再接続することは、第2のクライアントコンピュータによって実行されることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
  12. 接続ブローカによって管理される、ユーザが有する各々の切断されたリモートセッションをユーザに再接続するインジケーションを接続ブローカに送信することは、
    第1または第2の切断されたリモートセッションを参照しないユーザ入力を受信することを含むことを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
  13. 前記ユーザ入力を受信することは、ボタンの押下やリンクのクリックを受信することであって、前記ボタンまたはリンクは、リモートセッション上でどのリモート処理アプリケーションにも関連付けられていない、ことを備えることを特徴とする請求項12に記載のコンピュータ可読記憶媒体。
  14. コンピュータ可読命令をさらに格納し、前記コンピュータ可読命令は、コンピュータによって実行されると、前記コンピュータに、
    第1の切断されたリモートセッションに再接続している間に、ユーザに表示される第1メッセージを判定するステップと、
    第2の切断されたリモートセッションに再接続している間に、ユーザに表示される第2のメッセージを判定するステップと、
    第2の切断されたリモートセッションに再接続した後に、第1のメッセージと第2のメッセージを備える統一メッセージをユーザに表示するステップと
    を備える方法を実行させることを特徴とする請求項8に記載のコンピュータ可読記憶媒体。
  15. 第1の切断されたリモートセッションは、第1の処理によって再接続され、第2の切断されたリモートセッションは、第2の処理によって再接続され、
    第1の処理で第1の通信パイプを、および第2の処理で第2の通信パイプを確立するステップと、
    第1の通信パイプを介して第1の処理から第1のメッセージを受信するステップと、
    第2の通信パイプを介して第2の処理から第2のメッセージを受信するステップと
    をさらに備えることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
JP2013531626A 2010-09-30 2011-09-14 複数のリモートサーバへの統一された再接続 Withdrawn JP2013543617A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US39771010P 2010-09-30 2010-09-30
US61/397,710 2010-09-30
US12/963,528 US20120084369A1 (en) 2010-09-30 2010-12-08 Unified Reconnection To Multiple Remote Servers
US12/963,528 2010-12-08
PCT/US2011/051658 WO2012050720A2 (en) 2010-09-30 2011-09-14 Unified reconnection to multiple remote servers

Publications (2)

Publication Number Publication Date
JP2013543617A true JP2013543617A (ja) 2013-12-05
JP2013543617A5 JP2013543617A5 (ja) 2014-11-06

Family

ID=45890743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013531626A Withdrawn JP2013543617A (ja) 2010-09-30 2011-09-14 複数のリモートサーバへの統一された再接続

Country Status (11)

Country Link
US (1) US20120084369A1 (ja)
EP (1) EP2622811A4 (ja)
JP (1) JP2013543617A (ja)
KR (1) KR20130139894A (ja)
CN (1) CN102404384A (ja)
AU (1) AU2011314226B2 (ja)
BR (1) BR112013007149A2 (ja)
CA (1) CA2812738A1 (ja)
MX (1) MX2013003616A (ja)
RU (1) RU2013114348A (ja)
WO (1) WO2012050720A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103107905B (zh) * 2011-11-14 2017-08-04 华为技术有限公司 异常处理方法、装置和客户端
US10353718B2 (en) * 2012-07-23 2019-07-16 Vmware, Inc. Providing access to a remote application via a web client
CN103685398B (zh) * 2012-09-17 2015-08-19 腾讯科技(深圳)有限公司 通信连接建立方法及通信系统
KR20140098919A (ko) * 2013-01-31 2014-08-11 한국전자통신연구원 실시간 가상 데스크탑 서비스를 위한 가상머신 제공 방법 및 서비스 게이트웨이
US10021042B2 (en) 2013-03-07 2018-07-10 Microsoft Technology Licensing, Llc Service-based load-balancing management of processes on remote hosts
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9686323B1 (en) * 2013-03-14 2017-06-20 Teradici Corporation Method and apparatus for sequencing remote desktop connections
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
JP6366239B2 (ja) 2013-08-14 2018-08-01 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
KR20150042643A (ko) * 2013-10-11 2015-04-21 삼성전자주식회사 Vdi 환경에서 가상 서버와 접속을 위한 단말 장치 및 방법
KR20150085309A (ko) * 2014-01-15 2015-07-23 한국전자통신연구원 서버 가상 머신 제공 방법 및 시스템과 이를 지원하는 서버 장치
KR101494742B1 (ko) * 2014-02-25 2015-02-24 티라에스앤씨 (주) 복수의 sns 에 대한 게시물 배포를 위한 분산 처리 방법 및 시스템
US9489270B2 (en) * 2014-07-31 2016-11-08 International Business Machines Corporation Managing backup operations from a client system to a primary server and secondary server
KR101506223B1 (ko) * 2014-12-10 2015-03-27 (주)한위드정보기술 가상화 서비스 제공을 위한 비정상적인 접속 차단시 자동 재접속 시스템
KR101506250B1 (ko) * 2014-12-10 2015-03-27 (주)한위드정보기술 가상화 서비스 제공을 위한 가상화 서버 접속 이중화 시스템
CN105389198A (zh) * 2015-10-16 2016-03-09 浪潮(北京)电子信息产业有限公司 一种虚拟机控制台自动重连方法及装置
WO2018119677A1 (zh) * 2016-12-27 2018-07-05 深圳前海达闼云端智能科技有限公司 传输链路的续传方法、装置和系统
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
CN110288309B (zh) * 2019-05-22 2023-11-28 平安科技(深圳)有限公司 数据交互方法、装置、系统、计算机设备以及存储介质
US11178251B2 (en) * 2020-02-17 2021-11-16 Slack Technologies, Inc. Methods, apparatuses and computer program products for managing organization connections in a group-based communication system
US11956309B1 (en) 2022-12-13 2024-04-09 International Business Machines Corporation Intermediary client reconnection to a preferred server in a high availability server cluster

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69840672D1 (de) * 1997-11-14 2009-04-30 Microsoft Corp Serversbetriebssystem zur unterstützung von mehreren client-serverssitzungen und dynamischer wiederverbindung der benutzer an vorhergehenden sitzungen
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7562153B2 (en) * 2000-05-12 2009-07-14 AT&T Intellectual Property II, L. P. Method and apparatus for content distribution network brokering and peering
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7080404B2 (en) * 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
US20050188095A1 (en) * 2004-02-19 2005-08-25 Jeffrey Gardiner System for managing server user operation sessions
US8732182B2 (en) * 2004-12-02 2014-05-20 Desktopsites Inc. System and method for launching a resource in a network
AU2006320203B2 (en) * 2005-12-02 2011-12-01 Citrix Systems, Inc. Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource
US7877485B2 (en) * 2005-12-02 2011-01-25 International Business Machines Corporation Maintaining session states within virtual machine environments
US7613136B2 (en) * 2005-12-20 2009-11-03 At&T Intellectual Property, I,L.P. Methods, systems, and computer program products for implementing communications re-connection services
US20080232570A1 (en) * 2007-03-20 2008-09-25 Avaya Technology Llc Automatic Reconstitution of Telecommunications Sessions
US8127017B2 (en) * 2007-06-22 2012-02-28 Citrix Systems, Inc. Methods and servers for displaying and activating disconnected sessions
US8341277B2 (en) * 2007-07-03 2012-12-25 International Business Machines Corporation System and method for connecting closed, secure production network
US8291481B2 (en) * 2007-09-18 2012-10-16 Microsoft Corporation Sessionless redirection in terminal services
US8386609B2 (en) * 2007-11-09 2013-02-26 International Business Machines Corporation Reconnection to and migration of electronic collaboration sessions
US8161160B2 (en) * 2008-02-28 2012-04-17 Microsoft Corporation XML-based web feed for web access of remote resources
US8914527B2 (en) * 2009-06-30 2014-12-16 Citrix Systems, Inc. Methods and systems for load balancing using forecasting and overbooking techniques
GB2477092A (en) * 2010-01-20 2011-07-27 Nec Corp Selecting virtual machine host servers based on client device location

Also Published As

Publication number Publication date
EP2622811A4 (en) 2014-06-25
AU2011314226A1 (en) 2013-03-28
CN102404384A (zh) 2012-04-04
US20120084369A1 (en) 2012-04-05
EP2622811A2 (en) 2013-08-07
WO2012050720A3 (en) 2012-06-14
KR20130139894A (ko) 2013-12-23
MX2013003616A (es) 2013-05-20
CA2812738A1 (en) 2012-04-19
RU2013114348A (ru) 2014-10-10
WO2012050720A2 (en) 2012-04-19
AU2011314226B2 (en) 2015-02-05
BR112013007149A2 (pt) 2016-06-14

Similar Documents

Publication Publication Date Title
AU2011314226B2 (en) Unified reconnection to multiple remote servers
US9489227B2 (en) Apparatus and method for virtual desktop service
US10146566B2 (en) Enabling virtual desktop connections to remote clients
US10073709B2 (en) Session monitoring of virtual desktops in a virtual machine farm
CN106462467B (zh) 在不同分布式网络上针对消费服务的集成api和ui
KR100998515B1 (ko) 클라이언트-서버 네트워크에서 파일-유형 연관성을 이용한분산 프로그램 실행 방법
US8099768B2 (en) Method and system for multi-protocol single logout
US10142425B2 (en) Session reliability for a redirected USB device
US20130125215A1 (en) Remote application presentation over a public network connection
JP6571803B2 (ja) クライアントと仮想デスクトップとのデータ共有の実現方法、クライアント及びシステム
US20070005693A1 (en) Multi-console workstations concurrently supporting multiple users
US20170046013A1 (en) Web-browser based desktop and application remoting solution
US11470160B2 (en) Managing remote support
WO2013095485A1 (en) Enabling execution of remotely-hosted applications using application metadata and client updates
CN108632354B (zh) 物理机纳管方法、装置及云桌面管理平台
US11893405B2 (en) Workspace resiliency with multi-feed status resource caching
US10798097B2 (en) Intelligent redirection of authentication devices
US20110107401A1 (en) Establishing trust relationships between computer systems
KR102102169B1 (ko) 가상 데스크탑 서비스를 위한 장치 및 가상 데스크탑 서비스 방법
US20230139695A1 (en) User authentication techniques
EP3370396A1 (en) Methods and devices for testing applications
US20180254970A1 (en) Methods and Devices for Testing Applications
US11818183B2 (en) System and method for workspace sharing
US20240103990A1 (en) Computing device with bridge to native app for security and resiliency
WO2022246343A1 (en) Computing device and related methods providing virtual session launching from previously cached assets

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140912

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140912

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150907

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20151002