(57)【要約】本発明は、持続的なアプリケーションセッションにアクセスを提供する方法および装置を提供し、より詳細には、遠隔アクセスに二つ以上のアプリケーションセッションを提供する方法および装置を提供する。そこでは、ユーザに関連された承認情報が受信され、その情報に応答して、既にそのユーザに関連された複数のアプリケーションセッションが識別され、そのユーザによって操作されるクライアントコンピュータが、複数のアプリケーションセッションに接続される。【特許請求の範囲】
【請求項１】
複数のアプリケーションセッションに遠隔アクセスを提供する方法であって、該方法は、
ユーザに関連された承認情報を受信することと、
該情報に応答して、該ユーザに既に関連された複数のアプリケーションセッションを識別することと、
該受信された情報に応答して、該ユーザによって操作されるクライアントコンピュータと該複数のアプリケーションセッションとの間の接続を確立することと、
を包含する、方法。
【請求項２】
第１のアプリケーションセッションが、第１のサーバ上で実行され、第２のアプリケーションセッションが、第２のサーバ上で実行される、請求項１に記載の方法。
【請求項３】
前記クライアントと前記複数のアプリケーションセッションとの間の接続を確立するステップが、前記ユーザによって操作されるクライアントコンピュータに、該複数のアプリケーションセッションに接続することを許可するルールに従う、請求項１に記載の方法。
【請求項４】
前記ルールが前記ユーザによって作成される、請求項３に記載の方法。
【請求項５】
前記ルールが管理者によって作成される、請求項３に記載の方法。
【請求項６】
前記ユーザと前記複数のアプリケーションセッションとの間の接続が、単一のユーザインターフェース要素の選択によってトリガされる、請求項１に記載の方法。
【請求項７】
前記ユーザに関連される前記第１のアプリケーションセッションおよび該ユーザに関連される前記第２のアプリケーションセッションを切断するための切断要求を受信することと、該第１および第２のアプリケーションセッションを切断することとをさらに包含する、請求項１に記載の方法。
【請求項８】
前記第１および第２のアプリケーションセッションが切断されていることを示すために、該第１および第２のアプリケーションセッションに関連される少なくとも一つのデータ記録を更新することをさらに包含する、請求項７に記載の方法。
【請求項９】
前記切断されたアプリケーションセッションの少なくとも一つの実行を継続するステップをさらに包含する、請求項８に記載の方法。
【請求項１０】
前記受信された承認情報に応答して、前記ユーザを承認することをさらに包含する、請求項１に記載の方法。
【請求項１１】
前記複数のアプリケーションセッションを識別するステップが、アプリケーションセッションを実行する複数のサーバに関連された、格納されたデータを調べることを含む、請求項１に記載の方法。
【請求項１２】
前記複数のアプリケーションセッションが、接続に先立って第１のクライアントコンピュータに接続され、接続後に、該複数のアプリケーションセッションが該第１のクライアントコンピュータに再接続される、請求項１に記載の方法。
【請求項１３】
前記複数のアプリケーションセッションが、前記接続を確立することに先立って第１のクライアントコンピュータに関連され、該接続の確立後に、該複数のアプリケーションセッションが第２のクライアントコンピュータに接続される、請求項１に記載の方法。
【請求項１４】
前記複数のアプリケーションセッションの少なくとも一つが切断されている、請求項１に記載の方法。
【請求項１５】
前記複数のアプリケーションセッションの少なくとも一つがアクティブである、請求項１に記載の方法。
【請求項１６】
前記複数のアプリケーションセッションを識別することが、承認情報の受信について、自動である、請求項１に記載の方法。
【請求項１７】
複数のアプリケーションセッションへ遠隔アクセスを提供する方法であって、該方法は、
ユーザに関連された承認情報を送信することと、
該送信された情報に応答して、該ユーザに関連された、複数の以前に切断されたアプリケーションセッションから、アプリケーション出力を受信することと
を包含する、方法。
【請求項１８】
前記アプリケーション出力を受信することが、前記承認情報の送信について、自動である、請求項１７に記載の方法。
【請求項１９】
前記送信された情報に応答して、前記ユーザに関連された少なくとも一つのアクティブなアプリケーションセッションを切断することをさらに包含する、請求項１７に記載の方法。
【請求項２０】
前記切断することが、前記承認情報の送信について、自動である、請求項１９に記載の方法。
【請求項２１】
前記複数のアクティブなアプリケーションセッションが、最初に、第１のクライアントコンピュータに接続され、前記情報を送信する場合に、前記ユーザが第２のクライアントコンピュータを操作する、請求項１７に記載の方法。
【請求項２２】
前記複数のアクティブなアプリケーションセッションからのアプリケーション出力の受信が、前記ユーザによって操作されるクライアントコンピュータに、該複数のアプリケーションセッションに接続することを許可するルールに従う、請求項１７に記載の方法。
【請求項２３】
前記ルールが前記ユーザによって作成される、請求項２２に記載の方法。
【請求項２４】
前記ルールが管理者によって作成される、請求項２２に記載の方法。
【請求項２５】
前記複数のアクティブなアプリケーションセッションからのアプリケーション出力の前記受信および前記複数の切断されたアプリケーションセッションからのアプリケーション出力の前記受信が、単一のユーザインターフェース要素の選択によってトリガされる、請求項１７に記載の方法。
【請求項２６】
前記ユーザに関連された少なくとも一つのアクティブなアプリケーションセッションを切断するために、切断要求を送信することをさらに包含する、請求項１７に記載の方法。
【請求項２７】
前記複数の切断されたアプリケーションセッションが、切断に先立って第１のクライアントコンピュータに接続され、接続時において、該複数の切断されたアプリケーションセッションが該第１のクライアントコンピュータに再接続される、請求項１７に記載の方法。
【請求項２８】
前記複数の切断されたアプリケーションセッションが、切断に先立って第１のクライアントコンピュータに接続され、接続時において、該複数の切断されたアプリケーションセッションが第２のクライアントコンピュータに接続される、請求項１７に記載の方法。
【請求項２９】
アプリケーションセッションに遠隔アクセスを提供するサーバであって、該サーバは、
クライアントコンピュータを操作するユーザに関連された承認情報を受信するネットワークモジュールと、
該ユーザに関連された複数のアプリケーションセッションを列挙するデータストアと、
該受信された情報に応答して、該クライアントコンピュータを、該データストアに列挙された該複数のアプリケーションセッションに接続するサーバプロセスと
を備える、サーバ。
【請求項３０】
第１のアプリケーションセッションが、第１のサーバ上で実行され、第２のアプリケーションセッションが、第２のサーバ上で実行される、請求項２９に記載のサーバ。
【請求項３１】
前記サーバプロセスが、前記クライアントを、前記ユーザによって操作される前記クライアントコンピュータに前記複数のアプリケーションセッションに接続することを許可するルールに従う該複数のアプリケーションセッションに接続させる、請求項２９に記載のサーバ。
【請求項３２】
前記ルールが前記ユーザによって作成される、請求項３１に記載のサーバ。
【請求項３３】
前記ルールが管理者によって作成される、請求項３１に記載のサーバ。
【請求項３４】
前記ユーザの前記複数のアプリケーションセッションへの接続が、単一のユーザインターフェース要素の選択によってトリガされる、請求項２９に記載のサーバ。
【請求項３５】
前記サーバプロセスが、また、前記ユーザに関連された前記第１のアプリケーションセッション、および該ユーザに関連された前記第２のアプリケーションセッションを切断するために、切断要求を受信するように構成され、該要求に応答して、該第１および第２のアプリケーションを切断するように構成される、請求項２９に記載のサーバ。
【請求項３６】
前記サーバプロセスが、前記第１および第２のアプリケーションセッションが切断されていることを示すために、該第１および第２のアプリケーションセッションのそれぞれに関連された少なくとも一つのデータ記録を更新するようにさらに構成されている、請求項３５に記載のサーバ。
【請求項３７】
前記サーバプロセスが、前記切断されたアプリケーションセッションの少なくとも一つの実行を継続するようにさらに構成されている、請求項３５に記載のサーバ。
【請求項３８】
前記受信された承認情報に応答して、前記ユーザを承認するための承認モジュールをさらに備える、請求項２９に記載のサーバ。
【請求項３９】
前記データストアが、アプリケーションセッションを実行する複数のサーバに関連された、格納されたデータを備える、請求項２９に記載のサーバ。
【請求項４０】
前記複数のアプリケーションセッションが、接続に先立って第１のクライアントコンピュータに接続され、接続後、該複数のアプリケーションセッションが、第１のクライアントコンピュータに再接続される、請求項２９に記載のサーバ。
【請求項４１】
前記複数のアプリケーションセッションが、接続に先立って第１のクライアントコンピュータに関連され、接続後、該複数のアプリケーションセッションが、第２のクライアントコンピュータに接続される、請求項２９に記載のサーバ。
【請求項４２】
前記複数のアプリケーションセッションの少なくとも一つが切断されている、請求項２９に記載のサーバ。
【請求項４３】
前記複数のアプリケーションセッションの少なくとも一つがアクティブである、請求項２９に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の参照）
本出願は、２００３年１０月１０日、米国特許出願シリアル番号第１０／６８３，５４８号の利益を主張し、その内容はここにおいて援用される。
【０００２】
本発明は一般に、コンピュータネットワークソフトウェアに関連する。より詳細には、持続的なアプリケーションセッションへのアクセスを提供する方法および装置に関する。
【背景技術】
【０００３】
ネットワーク化されたリソースに遠隔アクセスを提供する技術は、様々なサーバ／クライアントソフトウェアの組み合わせを含む。フロリダ州、Ｆｔ．Ｌａｕｄｅｒｄａｌｅにある、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．から利用可能である、Ｉｎｔｅｌｌｉｇｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）クライアントと通信する、ＭｅｔａＦｒａｍｅ（登録商標）サーバソフトウェア、および、Ｘ  Ｃｏｎｓｏｒｔｉｕｍから利用可能であるＸ  Ｗｉｎｄｏｗｓ（登録商標）クライアントと通信する、Ｘサーバが、サーバ上で実行されるアプリケーションに遠隔アクセスを提供する二つの例である。
【０００４】
コンピュータユーザの素行、およびユーザのコンピュータが接続するネットワーク通信チャンネルの安定性は、しばしば、予測を許さないものである。時には、ネットワークのユーザは、ユーザの仕事を完全に保存する機会、またはユーザのシステムをシャットダウンする機会を忘れてしまうか、あるいは、そのような機会を持つことがない一方、コンピュータの環境を変える必要があったりする。他の場合においては、コンピュータチャンネルが予期せず失敗したり、コンピュータがクラッシュしたりするので、その結果、そのセッションが修復されないか、または、うまく（ｇｒａｃｅｆｕｌｌｙ）終了されない場合、仕事の成果は失われる。
【０００５】
共有のネットワークリソースの使用をうまく中断するのに失敗することは、ネットワーク化されたアプリケーションのユーザにとって、様々な困難を導き得る。多くのソフトウェアアプリケーションは、リソースは、通常、そのリソースへのコンフリクト操作を防ぐために使用中になっている一方で、データファイルなどの共有のネットワークリソースを使用するユーザの能力を制限する。例えば、文章は、他のユーザが同時に同じ文章を編集しないように、または、その文章の失効したコピーを使用しないように、ユーザによって編集されている間は、「チェックアウト（ｃｈｅｃｋｅｄ  ｏｕｔ」であり得る。ユーザが、一つのコンピュータから作業する中で、文章を照合し、次いで、その後、「チェックイン（ｃｈｅｃｋｉｎｇ  ｉｔ  ｉｎ）せずに、そのコンピュータを離れる場合、その文章は、管理者の介入なしでは、アクセスができないようにされ得る。通常は、そのような介入で、その文章になされた変更が失われる。
【発明の開示】
【課題を解決するための手段】
【０００６】
本発明の一つの目的は、ユーザに、持続的なネットワーク化されたリソースに柔軟なアクセスを提供するものであり、無駄な時間、ならびに、ユーザが、切断されたアプリケーションセッションに接続し、位置および／またはコンピュータ環境を変更させることによって、ネットワーク化されたリソースの効果的および便利に使用できることを許可することによって、ユーザ、ハードウェア、およびネットワークの予測不可能性が作り出し得る労力を低減させる。一部の実施形態において、多数のアプリケーションセッションが存在し得、多数のアプリケーションセッションの一部が多数のサーバ上で実行され得る。
【０００７】
通常、一局面において、本発明は、複数（例えば、二つ以上）のアプリケーションセッションへの遠隔アクセスを提供する方法に関し、ユーザに関連された承認情報を受信することを含む。本方法はまた、その情報に応答して、既にそのユーザに関連された複数のアプリケーションセッションを識別することを含む。本方法はまた、そのユーザによって操作されたクライアントコンピュータを、受信された情報に応答して、識別された複数のアプリケーションセッションに接続することを含む。
【０００８】
通常、別の局面において、本発明は、アプリケーションセッションに遠隔アクセスを提供するための、サーバなどの装置に関する。サーバは、クライアントコンピュータを操作するユーザに関連された承認情報を受信するネットワークモジュールを含む。サーバは、ユーザに関連された複数のアプリケーションセッションをリストするデータストアを含む。サーバはまた、受信された情報に応答して、クライアントコンピュータを、データストアに列挙された（ｅｎｕｍｅｒａｔｅｄ）複数のアプリケーションセッションに接続させるサーバプロセスを含む。
【発明を実施するための最良の形態】
【０００９】
前述の検討は、添付された図面とともに考慮され、本発明の以下に続く詳細な記載から、容易に理解される。
【００１０】
図１を参照すると、クライアント−サーバコンピュータシステム１００は、第１のクライアントコンピュータ１０２ａ、第２のクライアントコンピュータ１０２ｂ、およびサーバ１０６を含む。二つのクライアントコンピュータの図は、単に例示のためである。クライアント−サーバコンピュータシステムは、多数のクライアントコンピュータを含むことができる。コンピュータという言葉は、ワークステーション、デスクトップコンピュータ、ラップトップ、携帯用コンピュータ、または、通信可能であり、ここで記載される動作（例えば、携帯電話または個人用携帯端末（ＰＤＡ））を実行するのに十分な処理能力、メモリ容量、およびヒューマンインターフェース能力を有する、演算または電気通信デバイスの任意の他の形式を意味し得る。
【００１１】
一実施形態において、第１のクライアントコンピュータ１０２ａは、入力モジュール１０８、クライアントプロセス１１０、ネットワークモジュール１１２、およびディスプレイモジュール１１４を含む。入力モジュール１０８は、第１のクライアントコンピュータ１０２ａと遣り取りするために、第１のクライアントコンピュータ１０２ａのユーザにインターフェースを提供し、例えば、サーバ１０６から、アプリケーションセッション１１８におけるアプリケーション１１６の遠隔での実行を要求する。
【００１２】
アプリケーションセッション１１８は、サーバ１０６上での動作といったプロセスであり、一つ以上のアプリケーション１１６の実行をサポートする。アプリケーション１１６は、ソフトウェアプログラムであり得、または、例えば、コンピュータによって実行されることが可能な、および、特定用途向け集積回路（ＡＳＩＣ）、読み出し専用メモリ（ＲＯＭ）マイクロチップなどの形式における回路に組み込まれ可能な、ソフトウェアコードの任意の組織されたセットであり得る。例示的なアプリケーションは、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（ワシントン州、Ｒｅｄｍｏｎｄの、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから利用可能）、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（Ｍｉｃｒｏｓｏｆｔ）、Ａｃｒｏｂａｔ（カリフォルニア州、Ｓａｎ  Ｊｏｓｅの、Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．から利用可能）などを含むが、それらに限定されるわけではない。一実施形態において、アプリケーションセッション１１８は、他のアプリケーション１１６の実行が開始され得る、デスクトップアプリケーション１１６を含む。アプリケーションセッション１１８は、他のアプリケーションセッション１１８内にネスティングされ得る。他の実施形態において、アプリケーションセッション１１８は、単一のアプリケーション１１６を実行する場合を含む。
【００１３】
リモートサーバ１０６上での、アプリケーションセッション１１８におけるアプリケーション１１６の実行によって、コンピュータのユーザおよび管理者は、中央の演算能力およびソフトウェア一貫性の利点を得る。演算デバイスの能力が格段に向上している一方で、コンピュータソフトウェアを効率的に動作させるために必要とされるコンピュータリソースの量、携帯用のコンピュータの要望、および、より小さく、低い演算能力のコンピュータデバイスの使用もまた、増加し続けている。例えば、ユーザは、個人用情報端末（ＰＤＡ）および携帯電話などの、持ち運び用の演算デバイスから、コンピュータ的に激しい（ｃｏｍｐｕｔａｔｉｏｎａｌｌｙ  ｉｎｔｅｎｓｉｖｅ）アプリケーションにアクセスする能力をさらに所望する。企業のコンピュータ環境に付け加えて、管理者はしばしば、全てのユーザが、ユーザらが働いている場所に関係なく、ソフトウェアプログラムの同じバージョンを利用することを保証したい。さらに、一部のアプリケーションは、他のリソース（例えば、ネットワークディスク、プリンター、通信リンクなど）との隣接性を要求する。
【００１４】
これらの理由のために、コンピュータユーザおよび管理者は、これらの関心事の一部と取り組むために、ソフトウェアアプリケーションを遠隔から実行することをさらに利用するようになっている。例えば、ＰＤＡ（個人用情報端末）などの、低リソースである、最小限の機能を持つ演算デバイスは、リモートサーバに接続することができ、アプリケーションセッションを開始し得、コンピュータ的に激しいアプリケーションを起動し、および、コンピュータ的に激しいアプリケーションを、サーバのリソースを用いて実行させることによって、ＰＤＡを介して、アプリケーションと遣り取りすることができる。ＰＤＡが十分な表示能力および入力能力を有する限り、遠隔アクセスは、デバイスのコンピュータ的制限を大幅に減らすことができる。他の例においては、被雇用者は、リモートサーバに接続することによって、彼または彼女の自宅のコンピュータから、普段は被雇用者のデスクトップコンピュータを介してのみ利用可能であるアプリケーションにアクセスすることができる。前述の例に関しては、アプリケーションの実行が、アプリケーションセッションを介して、リモートサーバ上で生じる。アプリケーションへ遠隔アクセスすることにより、被雇用者は、彼または彼女の自宅のコンピュータに、アプリケーションをインストールする必要がなくなる。それはまた、被雇用者が使用したい、どのコンピュータにおいても、同じバージョンのアプリケーションを被雇用者が使用することを保証するという、システム管理者の要望を満たす。
【００１５】
一実施形態において、例えば、入力モジュール１０８は、一つ以上のアイコンを提供するか、または、ユーザが選択するメニュー選択を提供するグラフィカル・ユーザ・インターフェースである。それぞれのアイコンまたはメニュー選択は、リモートでの実行に利用可能である特定のアプリケーション１１６を示す。アイコンまたはメニュー選択を選択することで、そのアプリケーション１１６へのアクセスのために、サーバ１０６に、ログオン要求の送信を開始する。他の実施形態において、アイコンまたはメニュー選択は、任意の特定のアプリケーション１１６を表さず、その代わり、一般的なサーバ１０６のログオン手順を表す。他の実施形態において、入力モジュール１０８は、非グラフィカル・ユーザ・インターフェースである。この実施形態において、ユーザは、ログオン要求をサーバ１０６に送信するためのコマンドを入力することができる。コマンドを入力することは、所定の文字セットをタイプするか、または、入力デバイス（キーボードまたはキーパッドなど）で、特定のキーの連続を押すことができる。ログオン要求は、少なくとも、ユーザ提供の認証情報を含む。入力モジュール１０８は、ユーザ提供の認証情報の入力を受け入れる。その認証情報は、パスワード／ＰＩＮの組み合わせ、音声サンプル、一度きりのパスコード、生物測定的データ、デジタル証明書、スマートカードデータ、などの任意の限定なしで含む、認証情報の任意のタイプを含み得る。一部の実施形態において、入力モジュール１０８は、ユーザ認証情報の受け入れを容易にするための、追加的なハードウェア周辺機器（図示されず）と通信する。他の実施形態において、入力モジュール１０８は、ログオンプロセスの外部で、認証情報を受け取ることが可能である。
【００１６】
入力モジュール１０８は、認証情報を受け入れ、それを、クライアントプロセス１１０に提供する。クライアントプロセス１１０は、次いで、遠隔で実行するアプリケーションセッションのクライアント側の機能を管理する。クライアントプロセス１１０は、認証情報を含むユーザの入力およびアプリケーションセッション１１８の終了または切断の要求を、サーバ１０６に転送する。クライアントプロセス１１０はまた、例えば、アプリケーションセッション１１８のグラフィック出力を、ディスプレイモジュール１１４に転送することによってなど、サーバ１０６から入ってくるデータを扱う。
【００１７】
ネットワークモジュール１１２は、第１のクライアントコンピュータ１０２ａおよびサーバ１０６との間の通信を提供する。ネットワークモジュールは、認証情報、ならびに、サーバ１０６上で実行されるアプリケーションセッション１１８へのアクセス、切断、または終了の要求などの、ユーザ入力を送信する。ネットワークモジュールはまた、アプリケーションセッション１１８からの出力を受け取り、その出力をクライアントプロセス１１０に転送する。一実施形態において、ネットワークモジュール１１２は、サーバ１０６に送信するために、ユーザ入力を所定のプロトコルに、カプセル化（ｅｎｃａｐｓｕｌａｔｅ）し、および、所定のプロトコルからアプリケーションセッション出力を再構成する。他の実施形態において、ネットワークモジュールは、出力送信を暗号化し、入力送信を解読する。
【００１８】
ディスプレイモジュール１１４は、遠隔で実行するアプリケーションセッション１１８から、アプリケーション１１６の出力を表示する。一実施形態において、ディスプレイモジュール１１４は、クライアントプロセス１１０から受信された出力ビデオデータを直接に、陰極線管（ＣＲＴ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）スクリーン、プラズマディスプレイ、プロジェクタ、またはディスプレイデバイスの他の適切な形式などの、ディスプレイに転送される。他の実施形態において、アプリケーション出力は暗号化され、プロトコルにおいてカプセル化され、またはその両方である。本実施形態において、ディスプレイモジュール１１４は最初にアプリケーション出力を操作し、その出力は、コンピュータのビデオカードなどの、標準のディスプレイアダプタによって解釈され得る。別の実施形態において、ディスプレイモジュール１１４は、標準のディスプレイアダプタを含む。
【００１９】
一実施形態において、サーバ１０６は、ここで記載されるタスクを実行するための、十分な処理能力を有する単一のコンピュータである。好ましくは、サーバは、Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ  Ｐｒｏｆｅｓｓｉｏｎａｌ、Ｍａｃ  ＯＳ  Ｘ  Ｓｅｒｖｅｒ（カリフォルニア州、Ｃｕｐｅｒｔｉｎｏの、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ  Ｉｎｃ．から利用可能）、Ｕｎｉｘ（登録商標）−ｂａｓｅｄオペレーティングシステム（例えば、カリフォルニア州、Ｓｕｎｎｙｖａｌｅの、Ｓｏｌａｒｉｓ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓなど）、または他の適切なオペレーティングシステムなどの、多重プロセッサのオペレーティングシステムを実行するサーバ−クラスコンピュータである。別の実施形態において、サーバ１０６は、マルチ接続のコンピュータを含む。さらなる実施形態において、サーバ１０６のマルチコンピュータは、「サーバファーム」として構成される。一般には、サーバファームは、互いにリンクされるが、ユーザおよび／または管理者には単一のサーバシステムに見え、および、通常は、集権的管理を有する、サーバ群である。ひとつの例示的なサーバファームは、「Ａ  Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ａｍｏｎｇ  ａ  Ｎｅｔｗｏｒｋ  ｏｆ  Ｓｅｒｖｅｒｓ」と題され、２００１年１２月６日に公開された、米国特許出願公開番号第２００１／００４９７１７  Ａｉ号にて、より詳細に記載されている。もちろん、本発明の実施形態にもまた有用である、多くのサーバファームの構成が存在するのは明らかである。一実施形態においては、サーバ１０６は、ネットワークモジュール１２０、サーバプロセス１２２、アプリケーション出力送信器１２４、データストア１２６、ルールソース（ｒｕｌｅ  ｓｏｕｒｃｅ）１２８、および、認証モジュール１３０を含む。
【００２０】
ネットワークモジュール１２０は、サーバ１０６に通信機能を提供する。例えば、ネットワークモジュール１２０は、一つ以上のデータネットワークまたはリンク１２１を介して、第１および第２のクライアントコンピュータ１０２ａおよび１０２ｂから通信を受信する。ネットワークモジュール１２０はまた、アプリケーション出力データを、第１および第２のクライアントコンピュータ１０２ａおよび１０２ｂに送信する。一実施形態において、ネットワークモジュール１２０は、出力通信を暗号化し、入力通信を解読する。同様に、一実施形態において、ネットワークモジュール１２０は、送信のために、プロトコルにおいて、出力通信をカプセル化し、プロトコルに従って受信された送信から入力データを取り出す。プロトコルは、例えば、ＨＴＴＰ、Ｉｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）プロトコル（フロリダ州、Ｆｔ．Ｌａｕｄｅｒｄａｌｅの、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ  Ｉｎｃ．によって使用されている）、Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）、または、Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ（ＣＧＰ）（Ｃｉｔｒｉｘ）などを含むがそれらに限定はされない。サーバ１０６のネットワークモジュール１２０は、ネットワーク１２１を介して、第１のクライアントコンピュータ１０２ａのネットワークモジュール１２０内で通信する。ネットワーク１２１は、例えば、標準の電話線、ＬＡＮまたはＷＡＮリンク（例えば、８０２．１１、Ｔ１、Ｔ３、５６ｋｂ、またはＸ．２５プロトコルを用いる）、ブロードバンド接続（例えば、ＩＳＤＮ、Ｆｒａｍｅ  Ｒｅｌａｙ、またはＡＴＭプロトコルを用いる）、および無線接続、または上記の任意または全ての組み合わせを介し、任意の様々な適切な技術を用いて実施され得る。入力通信は、いったん解読され、またはプロトコルから取り出される（必要な場合）と、必要に応じて、アプリケーションセッション１１８またはサーバプロセス１２２に転送される。
【００２１】
サーバプロセス１２２は、アプリケーションセッション１１８の実行および終了、ならびに、第１および第２のクライアントコンピュータ１０２ａおよび１０２ｂへの、アプリケーションセッション１１８の接続および切断を管理する。サーバプロセス１２２は、新しいアプリケーションセッション１１８を起動し得、アプリケーションセッション１１８からクライアントコンピュータ１０２ａまたは１０２ｂを切断し、クライアントコンピュータ１０２ａまたは１０２ｂのアプリケーションセッション１１８からの切断を検出し、ユーザが切断したアプリケーションセッション１１８の位置を突き止め、第２のクライアントコンピュータ１０２ｂから、第１のクライアントコンピュータ１０２ａのユーザが接続されるアプリケーションの位置を突き止め、ユーザを、切断されたアプリケーションセッション１１８に接続させる。好ましくは、アプリケーションセッション１１８は、ユーザの個人的嗜好およびアクセス許可を用いて構成されるように提供される。
【００２２】
アプリケーション出力送信器１２４は、アプリケーションセッション１１８から、ネットワークモジュール１２０を介して、クライアントコンピュータ１０２ａまたは１０２ｂに、出力を送信する。アプリケーション出力送信器１２４は、アプリケーションセッション１１８の出力を中断し、クライアントコンピュータ１０２ａまたは１０２ｂのどちらがアプリケーションセッション１１８に接続されるかを決定する。アプリケーションセッション１１８がクライアントステーションに接続される場合、アプリケーション出力送信器１２４は、アプリケーション出力データを、ネットワークモジュール１２０を介して、接続されたクライアントコンピュータ１０２ａまたは１０２ｂに送信する。一実施形態において、アプリケーションセッションがクライアントコンピュータ１０２ａまたは１０２ｂに接続されていない場合、アプリケーション出力送信器１２４は、アプリケーション出力データを取り除き、今後のアプリケーション出力データを受信するために待機する。別の実施形態において、アプリケーションセッション１１８がクライアントコンピュータ１０２ａまたは１０２ｂに接続されていない場合、アプリケーション出力送信器１２４は、アプリケーションセッション１１８がクライアントコンピュータ１０２ａまたは１０２ｂに接続されているという通知を、アプリケーション出力送信器１２４が受信するまで、全てのさらなるアプリケーション出力データを取り除く。別の実施形態において、アプリケーション出力送信器１２４は、アプリケーションセッション１１８が、クライアントコンピュータ１０２ａまたは１０２ｂに接続されているという通知を、アプリケーション出力送信器１２４が受信するまで、データを格納する。別の実施形態においては、アプリケーション出力送信器１２４は、サーバプロセス１２２が、クライアントコンピュータ１０２ａまたは１０２ｂがサーバ１０６から切断されていることをアプリケーション出力送信器１２４に知らせるまで、クライアントコンピュータ１０２ａまたは１０２ｂにアプリケーション出力データを送信しようとする。一実施形態において、アプリケーション出力送信器１２４は、データストア１２６を調べることによって、クライアントコンピュータ１０２ａまたは１０２ｂ、もしあれば、アプリケーションセッション１１８のどれが、接続されているかを決定する。
【００２３】
データストア１２６は、ユーザによって開始されたアプリケーションセッションに関連する情報を含む。データストアは、揮発性または不揮発性メモリにおいて格納され得、あるいは、多数のサーバを介して分配され得る。表１は、例示的なデータストア１２６の一部を含むデータを示す。
【００２４】
【表１】
2007508617.tif 000002
表１における例示的なデータストア１２６は、それぞれのアプリケーションセッション１１８を、そのアプリケーションセッション１１８を開始したユーザ、クライアントコンピュータ１０２ａまたは１０２ｂ（あるいは、もしあれば、ユーザが現在サーバ１０６に接続されている）のＩＤ、そのクライアントコンピュータ１０２ａまたは１０２ｂのＩＰアドレスに関連付けるデータを含む。例示的なデータストア１２６はまた、それぞれのアプリケーションセッションの状態を含む。アプリケーションセッション１１８の状態は、例えば、「アクティブ」（ユーザがアプリケーションセッション１１８に接続されていることを意味する）、または、「切断されている」（ユーザがアプリケーションセッションに接続されていないことを意味する）であり得る。代替的な実施形態において、アプリケーションセッションの状態はまた、「実行−切断」（ユーザがアプリケーションセッション１１８から切断されてはいるが、アプリケーションセッション１１８のアプリケーションは実行中であることを意味する）にセットされ得、または、「引き延ばし（ｓｔａｌｌ）−切断」（ユーザがアプリケーションセッション１１８から切断されており、アプリケーションセッション１１８におけるアプリケーション１１６は実行中ではないが、切断直前のそれらの動作状態は格納されていることを意味する）にセットされ得る。データストア１２６はさらに、それぞれのアプリケーションセッション１１８内で実行されているアプリケーション１１６を示す情報、および、サーバ上でのそれぞれのアプリケーション１１６のプロセスを示すデータを格納する。サーバ１０６がサーバファームである実施形態において、データストア１２６は、少なくともダイナミックストアの一部であり、また、表１の最後の二つの行におけるデータを含む。表１の最後の二つの行は、どのサーバファームのサーバ上で、それぞれのアプリケーション１１６が実行されているか、および、そのサーバのＩＰアドレスが示されている。代替的な実施形態において、データストア１２６は、それぞれのアプリケーションセッション１１８におけるそれぞれのアプリケーション１１６の状態インジケータを含む。
【００２５】
例えば、表１の例において、３つのアプリケーションセッション１１８（アプリケーションセッション１、アプリケーションセッション２、アプリケーションセッション３）が存在する。アプリケーションセッションはユーザ１と関連し、ユーザ１は現在、ターミナル１を使用している。ターミナル１のＩＰアドレスは、１７２．１６．２．５０である。アプリケーションセッション１の状態はアクティブであり、アプリケーションセッション１において、ワードプロセッサプログラムが実行される。ワードプロセッサプログラムは、プロセッサ番号１として、サーバＡ上で実行されている。サーバＡのＩＰアドレスは１７２．１６．２．５５である。表１のアプリケーションセッション２は、切断されたアプリケーションセッション１１８の例である。アプリケーションセッション２はユーザ２と関連されるが、アプリケーションセッション２はクライアントコンピュータ１０２ａまたは１０２ｂに接続されていない。アプリケーションセッション２は、プロセス番号３として、ＩＰアドレス１７２．１６．２．５５にて、サーバＡ上で実行されているデータベースプログラムを含む。アプリケーションセッション３は、ユーザがどのように、異なるサーバ１０６上で動作するアプリケーションセッション１１８と遣り取りをすることができるかの例である。アプリケーションセッション３は、アプリケーションセッション１と同じように、ユーザ１と関連される。アプリケーションセッション３は、プロセス番号２として、ＩＰアドレス１７２．１６．２．５６にて、サーバＢ上で実行されている表計算プログラムを含むが、アプリケーションセッション１に含まれるアプリケーションセッション１１８はサーバＡ上で実行される。
【００２６】
一実施形態において、サーバ１０６はまた、ルールソース１２８を含む。ルールソース１２８は、サーバ１０６へ認証情報を送信するユーザに対して、サーバプロセス１２２の応答を管理するルールを格納する。一実施形態において、ルールソース１２８に格納されたルールは、システム管理者によって、少なくとも一部は特定される。別の実施形態において、ユーザは、ルールソース１２８において格納されたルールの少なくとも一部を特定する。ユーザに特定されたルールは、嗜好（ｐｒｅｆｅｒｅｎｃｅ）として格納される。ルールソース１２８は、揮発性または不揮発性メモリに格納され得るか、または、多数のサーバを介して分配され得る。
【００２７】
ルールソース１２８に格納された一つのルールは、例えば、切断されたアプリケーションセッション１１８に、自動接続を要求または禁止し得る。別のルールは、異なるクライアントコンピュータ１０２ａまたは１０２ｂに現在接続されたアクティブなアプリケーションセッション１１８への自動接続を要求または禁止し得る。さらに別のルールは、接続、および／または、安全なネットワーク内におけるアクセスを要求するクライアントコンピュータ１０２ａまたは１０２ｂに付随する接続をし得る。さらなるルールは、ユーザの認可を受信した後に、アプリケーションセッション１１８への接続のみを許可し得る。別のルールは、切断後、所定の時間の接続のみを許可し得る。さらに別のルールは、特定のアプリケーション１１６を含むアプリケーションセッション１１８への接続のみを許可し得る。
【００２８】
承認モジュール１３０は、サーバ１０６へログオンしようとするユーザを承認することを担う。承認モジュール１３０は、第１のクライアントコンピュータ１０２ａから送信された、ユーザ提供による承認情報を受信する。承認モジュール１３０は、次いで、ユーザ提供の承認情報に基づいて、ユーザを承認する。首尾良い承認に応答して、承認モジュール１３０は、承認プロセス（例えば、アクセス、ユーザのシステムＩＤ、クライアントコンピュータＩＤ、ユーザアクセス許可などを許可または拒否する）の結果を、サーバプロセス１２２に送信する。
【００２９】
一実施形態において、サーバ１０６の上記されたモジュールおよびプロセス（つまり、ネットワークモジュール１２０、サーバプロセス１２２、アプリケーション出力送信器１２４、および、承認モジュール１３０）、および、クライアントコンピュータ１０２ａまたは１０２ｂ（つまり、入力モジュール１０８、クライアントプロセス１１０、ネットワークモジュール１１２、およびディスプレイモジュール１１４）は、Ｗｉｎｄｏｗｓ（登録商標）系のオペレーティングシステム（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）、ＭａｃＯＳ系のオペレーティングシステム（カリフォルニア州、Ｃｕｐｅｒｔｉｎｏの、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．）、および、Ｕｎｉｘ（登録商標）ベースのオペレーティングシステム（例えば、カリフォルニア州、Ｓｕｎｎｙｖａｌｅの、Ｓｏｌａｒｉｓ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ）などを含む（しかし、それらに限定されるわけではない）、数台のコンピュータオペレーティングシステムのうちの一つにで実行可能であるソフトウェアにて実施される。別の実施形態において、一つ以上のモジュールまたはプロセスは、特定用途向け集積回路（ＡＳＩＣ）、読み出し専用メモリ（ＲＯＭ）、または他のデジタルハードウェア回路などのハードウェアにて実施される。
【００３０】
不完全なネットワーク接続の結果、アプリケーションセッション１１８の意図されない終了、およびアプリケーションセッション１１８を終了するユーザの失敗は、ユーザに困難を導き得る。本発明の一実施形態は、アプリケーションセッション１１８を、クライアントコンピュータとは対照に、ユーザと相互に関連させることによって、切断（ｄｉｓｃｏｎｎｅｃｔｉｏｎ）（ユーザは、アプリケーションセッション１１８を用いて作業が終了されていないかのように扱われる）と、終了（ｔｅｒｍｉｎａｔｉｏｎ）（アプリケーションセッションへの意図的な終了として想定される）とを区別することによって、これらの困難を制限する。ユーザが、アプリケーションセッション１１８において動作するアプリケーション１１６を用いるのを終了した場合、ユーザは、アプリケーションセッション１１８を終了することができる。終了は一般には、ユーザの肯定的（ａｆｆｉｒｍａｔｉｖｅ）な入力を含み、それは、サーバがアプリケーションセッション１１８をもはや維持すべきでないことを示す。そのような肯定的なユーザ入力は、メニューから「終了（Ｅｘｉｔ）」を選択し、アイコンをクリックすることなどを含む。終了リクエストを受信するサーバプロセス１２２に応答して、そのアプリケーションセッション１１８内でのアプリケーションセッション１１８および任意のアプリケーション１１６の実行は停止される。一実施形態において、アプリケーションセッション１１８に関連するデータはまた、データストア１２６から取り除かれる。
【００３１】
その一方で、意図的にか、または意図されていない切断は、アプリケーションセッション１１８の終了という結果にはならない。というのは、アプリケーションまたは、アプリケーションセッション１１８にて動作するアプリケーションはサーバ１０６上で実行されているゆえ、第１のクライアントコンピュータ１０２ａへの接続は、通常は、アプリケーション１１６の実行を継続する必要がないからであり、ならびに、一実施形態においては、アプリケーション１１６は、ユーザが接続するのを待機する間、実行し続けることが可能だからである。代替的な実施形態において、ユーザの切断時に、サーバプロセス１２２は、アプリケーションセッション１１８にて動作するアプリケーション１１６の実行を引き延ばす（ｓｔａｌｌ）。つまり、サーバプロセス１２２はアプリケーション１１６のさらなる実行を停止し、サーバプロセス１２２はアプリケーション１１６の動作状態および、アプリケーション１１６が処理している任意のデータを格納する。さらなる実施形態において、サーバプロセス１２２は、ユーザが切断した後に、特定のアプリケーション１１６の実行を選択的に引き延ばすことができる。例えば、一実施形態において、サーバは、固定された期間、アプリケーション１１６の実行を継続し、ユーザがその期間内に接続するのを失敗する場合、サーバプロセス１２２は、アプリケーション１１６を引き延ばす。別の実施形態において、サーバは、ユーザ入力なしでの実行を継続できない特定のアプリケーションセッション１１８を引き延ばす。上記された実施形態のそれぞれにおいて、第１のクライアントコンピュータ１０２ａのユーザがサーバ１０６から切断され、次いで、第１のクライアントコンピュータ１０２ａ、第２のクライアントコンピュータ１０２ｂ、または第３のクライアントコンピュータが動作している間に、サーバ１０６に接続する場合、サーバプロセス１２２は、ユーザによって動作されるクライアントコンピュータを、ユーザに関連された、一つ以上の既に起動されていて、終了されていないアプリケーションセッション１１８に接続することができ、任意の引き延ばされたアプリケーション１１６の実行を再開することができる。
【００３２】
一実施形態において、サーバプロセス１２２は、切断を検出する。ユーザは意図的にか、手動にて、ユーザが通信しているクライアントコンピュータ１０２ａまたは１０２ｂから、アプリケーションセッション１１８を切断することをサーバに命令する。例えば、一実施形態において、アプリケーションセッション１１８は、ユーザが選択可能な切断（ｄｉｓｃｏｎｎｅｃｔｉｏｎ）（上記の終了（ｔｅｒｍｉｎａｔｉｏｎ）とは区別される）のためのメニュー選択を提供する。サーバプロセス１２２はまた、意図されていなかった切断を検出することができる。例えば、一実施形態において、サーバ１０６のネットワークモジュール１２０は、ネットワークモジュール１２０によって送信された、クライアントコンピュータ１０２ａまたは１０２ｂへの所定の数のデータパケットが、そのクライアントコンピュータ１０２ａまたは１０２ｂによって有効と認められない場合をサーバプロセス１２２に通知する。別の実施形態において、クライアントコンピュータ１０２ａまたは１０２ｂは、定期的に信号をサーバ１０６に送信し、接続が未だにそのままであるかを確かめる。クライアントコンピュータ１０２ａまたは１０２ｂから、期待された確認信号の所定の数が到達されないことを、サーバプロセス１２２が検出する場合、サーバプロセス１２２は、クライアントコンピュータ１０２ａまたは１０２ｂが切断されていることを決定する。ユーザが意図的にか、または意図せずに、アプリケーションセッション１１８から切断されたことを、サーバプロセス１２２が検出する場合、切断されたアプリケーションセッション１１８に関連されたデータストア１２６における入力は、切断を反映させるために修正される。
【００３３】
図２を参照して、一実施形態において、アプリケーションセッションへの遠隔アクセスを提供する方法２００が、ユーザに関連する承認情報を受信するサーバ１０６のネットワークモジュール１２０にて開始される（ステップ２０２）。承認情報は、ユーザ名、クライアント名、クライアントのアドレス、パスワード、ＰＩＮ、音声サンプル、一度だけ使用できるパスコード、バイオメトリックデータ、デジタル証明書、チケットなどを含む（それらに限定されるわけではない）、多数の承認情報のタイプを含み得る。承認情報はは、ユーザからのログオン要求の形式であり得る。上記されたように、ログオン要求は、クライアントコンピュータ１０２ａまたは１０２ｂの入力モジュール１０８を介して、ユーザによって開始され得る。クライアントのネットワークモジュールは、要求をサーバプロセス１２２に転送する。
【００３４】
一実施形態において、要求を受信するとき、サーバプロセス１２２は、ユーザによる提供の承認情報を、承認モジュール１３０に転送し、承認モジュール１３０はユーザのＩＤを承認する。サーバの承認モジュール１３０は、承認自体を実行し得、および／または、ドメインサーバや承認サービスなど、一つ以上の他のモジュールまたはコンピュータと協働して実行し得る。首尾良い承認は、承認モジュールが、ユーザのＩＤ情報（例えば、ユーザ名またはＩＤ）をサーバプロセス１２２に送信する結果となる。
【００３５】
ユーザに関連された承認情報を受信することに応答して、サーバプロセス１２２は、サーバ１０６にて実行、または引き延ばしされている、ユーザに関連する任意の切断されたアプリケーションセッション１１８を識別する（ステップ２０４）。一実施形態において、サーバプロセス１２２は、承認情報の受信時に、アプリケーションセッション１１８を識別する。別の実施形態において、サーバプロセスは、承認モジュール１３０がユーザのＩＤをベリファイした後、承認情報の受信に応答して、アプリケーションを識別する。一実施形態において、サーバプロセス１２２は、任意のそのような切断されたアプリケーションセッション１１８が、ユーザに関連されたセッションのデータストア１２６を調べることによって、終了されるかどうかを決定する。例えば、切断されたアプリケーションセッション１１８は、アプリケーションセッション１１８のユーザの命令によって切断され得、その結果、例えば、データストア１２６におけるアプリケーションセッション１１８の状態を「切断」に修正し、アプリケーションセッション１１８のためのデータストア１２６の入力における、接続されたクライアントコンピュータ１０２ａまたは１０２ｂのＩＤをデリートすることによって、サーバプロセス１２２がアプリケーションセッション１１８を切断する結果となる。別の実施形態において、切断は意図されていない。意図されていない切断は、意図された切断の結果としてなされるのと同じように、サーバプロセス１２２が、同様な修正をデータストア１２６にさせる結果となる。
【００３６】
任意の切断されたアプリケーションセッション１１８を識別する場合（ステップ２０４）、一実施形態において、サーバプロセス１２２は、ユーザに、接続が所望されるかを命令させる。接続が所望される場合、サーバプロセス１２２は、ユーザに、切断されたアプリケーションセッション１１８が切断されたままであるべきかどうかを命令させ、または、アプリケーションセッション１１８が終了されるべきかどうかを命令させる。代替的な実施形態において、サーバプロセス１２２は、ルールソース１２８に格納されたルールを調べ、接続が許可および／または要求されるかどうかを決定する。
【００３７】
代替的な実施形態において、ユーザは、例えば、「ログオン」とラベルされたアイコンをクリックし、単一のユーザインターフェース要素を活用することによって、サーバ１０６、サーバプロセス１２２、および任意の切断されたアプリケーションセッションに接続する。この実施形態において、単一のユーザインターフェースをアクティベートすることは、ユーザを、任意の切断されたアプリケーションセッション１１８に自動的に接続させる。
【００３８】
一実施形態において、クライアントは、そのようなユーザ接続において、自動的に承認情報を送信するように構成され得る。接続が許可された場合、および、ユーザによって同意されるか、または自動である場合、サーバプロセス１２２は、ユーザを、切断されたアプリケーションセッションに接続させる（ステップ２０６）。一実施形態において、接続は、データストア１２６における入力を修正することを含み、その入力は、ユーザがアプリケーションアプリケーションセッション１１８に接続され、クライアントコンピュータ１０２ａまたは１０２ｂから、ユーザがサーバに接続されたことを示す。接続時、サーバ１０６は、アプリケーション出力送信器１２４からのアプリケーション出力データをクライアント１０２ａまたは１０２ｂに送信することを再開する。別の実施形態において、アプリケーション出力送信器は、送信が許可されることを確認するために、アプリケーション出力の送信を開始する前に、ルールソース１２８を調べる。
【００３９】
アプリケーションセッションは、ユーザが以前にサーバに接続されている場合（ついで、サーバから切断されている）に、ユーザが操作していたクライアントコンピュータ１０２ａまたは１０２ｂの代わりに、ユーザに第１に関連される。結果として、ルールが許可され、ユーザは、第１のクライアントコンピュータ１０２ａ、第２のクライアントコンピュータ１０２ｂ、または、任意の他のクライアントコンピュータから、アプリケーションセッション１１８に再接続することが可能である。
【００４０】
図３を参照して、セッションが切断されていない（つまり、アクティブである）場合であっても、一つのクライアントから別のクライアントへセッションを転送することは有益であり得る。例えば、アプリケーションセッションが切断されたが、サーバがいまだに切断を検出していない場合などであり得る。ユーザが故意にセッションが実行されているのを放置したが、今度は、別の場所からそのセッションにアクセスをした場合などであり得る。
【００４１】
第１のクライアントコンピュータ１０２ａから第２のクライアントコンピュータ１０２ｂへアクティブなアプリケーションセッション１１８を転送する方法３００は、通常、例えば、ログオン要求の形式にて、ユーザからの承認情報を受信するネットワークモジュール１２０から開始される。一実施形態において、ユーザは、入力モジュール１０８を介して、承認情報を提出する。承認情報は、第２のクライアントコンピュータ１０２ｂのネットワークモジュール１１２によって、サーバ１０６へ送信され得る。サーバ１０６のネットワークモジュール１２０は、その要求をサーバプロセス１２２に転送することが可能である。
【００４２】
サーバプロセス１２２は、ユーザの提供による承認情報を受信する（ステップ３０２）。一実施形態において、サーバプロセス１２２は、ユーザの提供による承認情報を、承認モジュール１３０に転送し、例えば、上記された任意の様々な承認技術を使用するユーザのＩＤを承認する。首尾良い承認は、承認モジュールが、例えば、ユーザのＩＤ情報をサーバプロセス１２２に送信する結果となる。
【００４３】
承認情報を受信した後（ステップ３０２）、サーバプロセスは、データストア１２６を調べ、ユーザに関連されているが、例示的な例としての第１のクライアントコンピュータ１０２ａなどの、異なるクライアントコンピュータに接続されている、アクティブなアプリケーションセッション１１８を識別する（ステップ３０４）。一実施形態において、サーバプロセス１２２はそのような任意のアクティブなアプリケーションセッション１１８を識別する場合、サーバプロセスは自動的に、第１のクライアントコンピュータ１０２ａからアプリケーションセッション１１８を接続し（ステップ３０６）、そのアプリケーションセッション１１８を現在のクライアントコンピュータ１０２ｂに接続させる（ステップ３０８）。一実施形態において、ユーザは、データストアの自動調査をトリガし、単一のユーザインターフェース要素の選択を用いて、その後の接続をトリガし得る。
【００４４】
代替的な実施形態において、サーバプロセス１２２は、ユーザが、アクティブなアプリケーションセッション１１８を現在のクライアントコンピュータ１０２ｂに接続させたいかどうかを、ユーザに促す。ユーザが一つ以上のアクティブなアプリケーションセッション１１８を転送することを拒否する場合、サーバプロセス１２２は、アプリケーションセッション１１８をアクティブに保つか、または、アプリケーションセッション１１８を終了させるかのいずれかを、ユーザに促す。代替的な実施形態において、サーバプロセス１２２は、アクティブなアプリケーションセッション１１８を転送する前に、アクティブなアプリケーションセッション１１８が許可されるかどうかを決定するために、ルールソース１２８に格納されたルールを調べる。
【００４５】
アプリケーションセッション１１８の転送が許可され、転送が自動か、またはユーザによって要求される場合、一実施形態において、現在のクライアントコンピュータ、つまり、第２のコンピュータ１０２ｂの代わりに、格納されたクライアントコンピュータ１０２ａのＩＤを用いるために、アプリケーションセッション１１８のために、データストア１２６にて維持された入力を修正することによって、サーバプロセス１２２は、切断（ステップ３０６）および接続（ステップ３０８）を実行する。現在のクライアントコンピュータ１０２ｂに接続する場合、アプリケーション出力送信器１２４は、アプリケーション出力を現在のコンピュータに送信することを開始する（ステップ３１０）。別の実施形態において、アプリケーション出力送信器は、送信が許可されることを確かめるために、アプリケーション出力の送信を開始する前に、ルールソース１２８を調べる。
【００４６】
図２および図３の方法は組み合わされ得、クライアントが、ユーザに関連される、切断されたセッションおよびアクティブなセッションの両方に接続され得ることは理解されるべきである。付け加えて、転送または再接続に先立って、アクティブおよび／または切断されたセッションは、同様の、または数台の異なるクライアントコンピュータに接続され得る。
【００４７】
図４を参照して、上記されたように、サーバ１０６は、サーバファーム４００として実施され得る。一実施形態において、サーバファームは数台のサーバ４０６ａ、４０６ｂ、および４０６ｃを含み、それらは、互いにリンクされ、一緒に管理される。数台のクライアントコンピュータ４０２ａ、４０２ｂ、および４０２ｃ（通常は多くのコンピュータ）は、ネットワーク４２１を介して、サーバファーム４００に接続され得る。サーバ４０６ａ、４０６ｂ、および４０６ｃは、サーバファーム４００に掛けられたコンピュータの負荷を共有する。例えば、ユーザが３つのアプリケーションセッション４１８ａ、４１８ｂ、および４１８ｃにアクセスする場合、それぞれのアプリケーションセッションは、異なるサーバ４０６ａ、４０６ｂ、および４０６ｃ上で実行され得る。同様に、ユーザは、単一のアプリケーションセッション４１８ａ、４１８ｂ、および４１８ｃを介して、二つ以上のアプリケーション１１６にアクセスする場合、サーバファーム４００のサーバプロセス１２２は、一つのアプリケーションを一つのサーバ４０６ａで実行されるように割り当て、別のアプリケーションをサーバ４０６ｂ上で実行されるように割り当てることができる。サーバファーム構成において、サーバ１２０、１２２、および１２４のモジュール、データストア１２６、ならびにルールソース１２８（図１）は、単一のサーバ４０６ａ、４０６ｂ、および４０６ｃ上にて格納され得、または、サーバ４０６ａ、４０６ｂ、および４０６ｃの間で分配され得る。
【００４８】
切断後、または切断されずに、クライアントコンピュータ４０２ａ、４０２ｂ、および４０２ｃの変更後に、サーバファーム４００に接続することに関して、サーバプロセス１２２は、サーバ４０６ａ、４０６ｂ、および４０６ｃを、単一のサーバとして扱う。すなわち、サーバファームが、独立したサーバ４０６ａ、４０６ｂ、および４０６ｃ上にて、ユーザのアプリケーションセッション４１８ａ、４１８ｂ、および４１８ｃを実行する場合で、ユーザが、サーバファーム４００から切断されるか、または、ユーザが作業しているクライアントコンピュータ４０２ａ、４０２ｂ、および４０２ｃを変更する場合で、その後に、サーバファーム４００に接続する場合、サーバファーム４００のサーバプロセス１２２は、３つ全てのサーバ４０６ａ、４０６ｂ、および４０６ｃ上で実行される３つ全てのアプリケーションセッション４１８ａ、４１８ｂ、および４１８ｃを用いて、ユーザのクライアントコンピュータ４０２ａ、４０２ｂ、および４０２ｃに自動的に接続することができる。
【００４９】
システムの一実施形態の例示的な動作において、第１のクライアントコンピュータ４０２ａ（この例においては、携帯用のコンピュータ）のユーザは、無線モデムを介してサーバファーム４００にログオンし、２つのアプリケーションセッション４１８ａおよび４１８ｂを要求する。サーバファーム４００のサーバプロセス１２２は、第１のサーバ４０６ａ上の第１のアプリケーションセッション４１８ａを開始し、第２のサーバ４０６ｂ上の第２のアプリケーションセッションを開始する。無線モデムは、第１のコンピュータ４０２ａのユーザがエレベーターに入る場合、サーバファームを用いて、その接続を失う。サーバファーム４００のサーバプロセス１２２は、ユーザが切断され、そのサーバプロセス１２２がデータストア１２６を更新することを決定する。
【００５０】
次いで、ユーザは、第２のクライアントコンピュータ４０２ｂ（この例においては、彼のオフィスのデスクトップコンピュータである）からサーバファーム４００にログオンする。サーバプロセス１２２は、データストア１２６を調べ、二つの切断されたアプリケーションセッション４１８ａおよび４１８ｂがユーザに関連されることを決定する。サーバプロセス１２２（反対に、ルールがないと想定されている）は、自動的に、第２のクライアントコンピュータ４０２ｂを、個々に、４０６ａおよび４０６ｂ上で実行されるアプリケーションセッション４１８ａおよび４１８ｂの両方に接続させる。
【００５１】
次いで、ユーザは、サーバファーム４００から切断せずに第２のクライアントコンピュータ４０２ｂを放置し、第２のクライアントコンピュータ４０２ｃ、たとえば、友人のラップトップなどから、サーバファーム４００にログオンする。第２のクライアントコンピュータ４０２ｃからサーバファーム４００にログオンする場合、サーバプロセスは、データストア１２６を調べ、第２のクライアントコンピュータ４０２ｂに接続された二つのアクティブなアプリケーションセッション４１８ａおよび４１８ｂに、ユーザが関連されていることを決定する。サーバプロセス１２２（反対に、ルールがないと想定されている）は、次いで、第２のクライアントコンピュータ４０２ｂから、アプリケーションセッション４１８ａおよび４１８ｂの両方を自動的に切断させ、第３のクライアントコンピュータ４０２ｃへ、アプリケーションセッション４１８ａおよび４１８ｂの両方を接続させる。
【００５２】
次に、ユーザは、それぞれアプリケーションセッション４１８ａおよび４１８ｂのために、切断のオプションを選択する。サーバプロセス１２２はデータストア１２６を更新し、アプリケーションセッション４１８ａおよび４１８ｂが切断されていることを示す。ユーザは、次いで、第２のクライアントコンピュータ４０２ｂから、サーバファーム４００にログオンする。サーバプロセス１２２は、データストア１２６を調べ、二つの切断されたアプリケーションセッション４１８ａおよび４１８ｂがユーザに関連されているかを決定する。サーバプロセス１２２（反対にルールがないと想定されている）は、自動的に、第２のクライアントコンピュータ４０２ｂに、切断されたアプリケーションセッション４１８ａおよび４１８ｂを接続させる。
【００５３】
本発明は、その趣旨または本質的な特徴から逸脱することなく、他の特定の形式において実施され得ることを、当業者は理解されたい。前述の実施形態は、それゆえ、あらゆる観点からしても、本発明を限定するのではなく、例示のためである。本発明の範囲は、前述の記載に限定されるものではない。
【図面の簡単な説明】
【００５４】
【図１】ネットワーク化されたクライアント−サーバコンピュータシステムを表す略図である。
【図２】持続的なアプリケーションセッションにクライアントを接続する方法を表すフローチャートである。
【図３】持続的なアプリケーションセッションをプリングする方法を表すフローチャートである。
【図４】ネットワーク化されたクライアント−サーバファームコンピュータシステムを現す略図である。
【図１】
2007508617.tif 000003
【図２】
2007508617.tif 000004
【図３】
2007508617.tif 000005
【図４】
2007508617.tif 000006
【国際調査報告】
2007508617.tif 000007
2007508617.tif 000008
2007508617.tif 000009