(57)【要約】本発明は、信頼のおける持続的な通信セッションを通じて、クライアントを再接続し、ユーザー認証を提供する方法およびシステムに関する。複数の第２のプロトコルをカプセル化する第１のプロトコルが、ネットワークでの通信に使用される。第１のプロトコルを使用する第１のプロトコルサービスは、クライアントとホストサービス間のセッションの持続性および信頼のおける接続を提供する。クライアントとホストサービス間のネットワーク接続が切断した際には、接続が再確立され、ユーザーは、ユーザーの認証証明を再入力することなく、又は、ホストサービスとのユーザーセッションを再確立することなく、ホストサービスへ再認証される。
2007514337.tif 000002
【特許請求の範囲】
【請求項１】
クライアントをホストサービスに再接続するための方法であって、
（ａ）クライアントと第１のプロトコルサービスとの間の第１の接続と、第１のプロトコルサービスとホストサービスとの間の第２の接続とを提供するステップと、
（ｂ）前記第１の接続の中断を検出するステップと、
（ｃ）前記第１のプロトコルサービスと前記ホストサービスとの間の前記第２の接続を保持しながら、前記クライアントと前記プロトコルサービスとの間の前記第１の接続を再確立するステップと、
（ｄ）前記第１のプロトコルサービスにおいて前記クライアントに関連するチケットを受信するステップと、
（ｅ）前記チケットを有効にするステップと、
（ｆ）前記チケットが有効にされた後、前記再確立された第１の接続を前記保持した第２の接続にリンクさせるステップと、
を含む、方法。
【請求項２】
ステップ（ａ）が、前記クライアントと前記ホストサービスとの間の第１の通信セッション中に、前記クライアントを前記ホストサービスによって認証するステップをさらに含む、請求項１に記載の方法。
【請求項３】
ステップ（ｅ）が、前記チケットからキーおよびセッションＩＤを得るステップをさらに含む、請求項１に記載の方法。
【請求項４】
ステップ（ｅ）が、暗号化した認証証明書を引き出すために前記チケットからのセッションＩＤを使用するステップをさらに含む、請求項３に記載の方法。
【請求項５】
ステップ（ｅ）が、前記引き出された認証証明書を解読するために前記チケットからの前記キーを使用するステップをさらに含む、請求項４に記載の方法。
【請求項６】
ステップ（ｅ）が、前記解読した認証証明書を使用して、前記クライアントを前記ホストサービスによって再認証するステップをさらに含む、請求項５に記載の方法。
【請求項７】
ステップ（ｆ）が、前記チケットが有効にされた後、前記チケットを削除するステップをさらに含む、請求項１に記載の方法。
【請求項８】
ステップ（ｆ）が、前記チケットが削除された後、代替のチケットを生成するステップをさらに含む、請求項２に記載の方法。
【請求項９】
ステップ（ａ）が、前記第１のプロトコルサービスにおいてチケットを生成するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
ステップ（ａ）が、前記第１のプロトコルサービスにおいて、前記チケットのコピーを保存するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
ステップ（ａ）が、前記チケットを前記第１のプロトコルサービスから前記クライアントへ伝送するステップをさらに含む、請求項４に記載の方法。
【請求項１２】
ステップ（ａ）が、前記チケットを所定時間の経過後に自動的に削除するステップをさらに含む、請求項１に記載の方法。
【請求項１３】
クライアントをホストサービスに再接続するためのシステムであって、
第１のプロトコルサービスとの第１の接続を保持するように構成されたクライアントと、
前記クライアントとの前記第１の接続および前記ホストサービスとの第２の接続を保持するように構成された前記第１のプロトコルサービスとを含み、
前記第１の接続において中断が検出され、
前記第１のプロトコルサービスと前記ホストサービスとの間の前記第２の接続が保持されながら、前記第１の接続が前記クライアントと前記第１のプロトコルサービスとの間に再確立され、
前記クライアントに関連するチケットが前記クライアントから前記第１のプロトコルサービスに伝送され、
前記チケットが有効にされ、
前記チケットが有効にされた後、前記再確立された第１の接続が前記保持した第２の接続にリンクされる、システム。
【請求項１４】
前記クライアントが、前記クライアントと前記ホストサービスとの間の第１の通信セッション中に前記ホストサービスによって認証される、請求項１３に記載のシステム。
【請求項１５】
前記チケットがキーおよびセッションＩＤを含む、請求項１３に記載のシステム。
【請求項１６】
前記チケットが、暗号化した認証証明書を引き出すために前記セッションＩＤを使用して前記第１のプロトコルサービスによって有効にされる、請求項１５に記載のシステム。
【請求項１７】
前記チケットが、さらに前記引き出された認証証明書を前記チケットからの前記キーで解読することによって有効にされる、請求項１６に記載のシステム。
【請求項１８】
前記クライアントが、前記解読した認証証明書を使用して前記ホストサービスによって再認証される、請求項１７に記載のシステム。
【請求項１９】
前記第１のプロトコルサービスが、前記チケットが有効にされた後、前記チケットを削除するようさらに構成される、請求項１３に記載のシステム。
【請求項２０】
前記第１のプロトコルサービスが、前記チケットが削除された後、代替のチケットを生成するようさらに構成される、請求項１９に記載のシステム。
【請求項２１】
前記第１のプロトコルサービスが、前記チケットを生成するようさらに構成される、請求項１３に記載のシステム。
【請求項２２】
前記第１のプロトコルサービスが、前記チケットのコピーを保存するようさらに構成される、請求項１２に記載のシステム。
【請求項２３】
前記第１のプロトコルサービスが、前記チケットを前記クライアントに伝送するようさらに構成される、請求項１３に記載のシステム。
【請求項２４】
前記第１のプロトコルサービスが、所定時間の経過後に前記チケットを削除するようさらに構成される、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワーク及びクライアントサーバ通信に関する。さらに特には、セッションの持続性及び信頼性を提供するために、他のプロトコルをカプセル化する通信プロトコルを使用し、クライアントの通信を再確立し、また、プロトコルのカプセル化を介し、サーバコンピュータと通信するために、クライアントコンピュータを使用し、ユーザーの再認証を促進するためのシステム及び方法に関する。
【背景技術】
【０００２】
２台のコンピュータ間の通信、例えば、クライアントとサーバとの間のネットワークを通じた通信は、様々な周知の通信プロトコルを使用して行うことができる。しかし、ネットワーク接続は切断されることが多い。例えば、クライアントとサーバ間の無線接続は、しばしば信頼がおけない。その他の場合では、ネットワーク通信が中断される。そういうものであるため、エレベータやトンネルに入ると接続が失われ、そのエレベータやトンネルから出ないかぎり接続が回復されない場合がある。
【０００３】
確立されたクライアントとサーバコンピュータ間の通信セッションが、異常に終了されると、クライアントは、一般に新たな通信セッションを開始することにより、接続を再確立しなくてはならない。新たな通信セッションを開始するためには、その新たな通信セッションのために、サーバコンピュータがユーザーを許可できるように、ユーザーは通常、サーバコンピュータにログイン／パスワードの組み合わせのような認証証明を再発信しなくてはならない。この数回の通信セッションにわたるユーザー認証証明の再発信は、潜在的な攻撃者へ繰り返し前記ユーザーの認証証明をさらすことになり、それにより認証証明のセキュリティレベルを低下させることになる。さらに、これは、度々時間がかかるプロセスなため、ユーザーは、苛立ち及び非効率を経験することになる。さらには、新たな通信セッションを確立する際に、インターネットプロトコルアドレスのような、新たなネットワーク識別子をクライアントが取得することをネットワークが要求することもあり得る。クライアントのネットワーク識別子における変更のため、クライアント側のアプリケーション、又はプログラムを再起動する必要もあり得る。このように、クライアントコンピュータとサーバコンピュータ間の通信セッションを再確立する際に、クライアントの認証証明を繰り返し発信したり、プログラムを再起動させたりすることなく、自動的にクライアントの再認証を行う技術の提供が望まれている。
【０００４】
認証証明を繰り返し発信することなく、クライアントコンピュータとサーバコンピュータ間の通信セッションを再確立する改善されたシステムおよび方法が必要とされている。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明は、持続した信頼のおけるホストサービスへの接続をクライアントに提供し、持続した信頼のおける接続にクライアントを再接続するための、システムおよび方法に関する。クライアントを再接続するということは、ホストサービスとのクライアントの通信セッションを再確立することと、ホストサービスへのクライアントのユーザーの再認証とを含む。持続した信頼のおけるホストサービスへの接続は、クライアントに代わる第１のプロトコルサービスにより維持される。第１のプロトコルサービスは、クライアントと第１のプロトコルサービス間のネットワーク接続において、いかなる切断中も、クライアントとホストサービス間の通信データが、バファリングされ、維持されることを確実にする。例えば、ネットワーク接続における一時的な切断は、モバイルクライアントのように、同じネットワーク内の異なるアクセスポイント間で、クライアントがローミングする時、又は、クライアントが異なるノードを行き来する時（例、有線ネットワークから無線ネットワーク）に起きることがある。異なるアクセスポイント間をローミングする際には、ネットワーク接続形態によって必要とされるインターネットプロコトルアドレスのように、クライアントに対し、異なるネットワーク識別子を割り当てる必要もあり得る。ネットワーク切断中にバッファリングされたデータを維持するのに加え、第１のプロトコルサービスは、クライアントの接続を第1のプロトコルサービスに再接続する際に、ホストサービスへのクライアントの再認証を行う。再認証後に、第１のプロトコルサービスは、クライアントのホストサービスへの接続を再度リンクする。これにより、ホストサービスとの接続を再確立するために、クライアントのユーザーが認証証明の再入力が回避される。さらに、第１のプロトコルサービスは、ネットワーク切断後に必要とされ得るクライアントのネットワーク識別子に対する変更を自動的に管理する。これにより、クライアントの割り当てられたネットワーク識別子の変更時に、通常再起動が必要とされるアプリケーション、又はプログラムの再起動が回避される。ユーザーは、クライアントの割り当てられたネットワーク識別子に対するネットワークによる変更により切断されることなく、ネットワークアクセスポイント間をローミングしている間は、引き続きクライアントを使用することができる。要約すると、本発明は、ユーザーが認証証明を再入力することなく再認証されることを含め、アプリケーションの再起動、又はセッションの再確立をすることなく、自動的に切断されたクライアントをホストサービスに再接続することを提供する。
【０００６】
１つの観点において、本発明は、ネットワーク接続への切断後、クライアントをホストサービスに再接続する方法に関する。その方法は、クライアントとホストサービス間の接続を再確立する第１のプロトコルサービスを使用する。その方法には、クライアントと第１のプロトコルサービス間の第１の接続、及び、第１のプロトコルサービスとホストサービス間の第２の接続を提供することが含まれる。第１の接続において、切断が検出された際には、第１のプロトコルサービスとホストサービス間の第２の接続が維持される。そして、クライアントと第１のプロトコルサービス間の第１の接続が再確立される。第１のプロトコルサービスは、クライアントに付随するチケットを受け取り、そのチケットを検証する。チケットの検証後に、再確立された第１の接続は、維持された第２の接続にリンクされる。
【０００７】
本発明のある実施態様において、その方法は、再確立された第１の接続を維持された第２の接続にリンクする前に、チケットをさらに検証することを含む。その検証方法は、さらに、第１のプロトコルサービスにより受け取られたチケットから、セッション識別子及びキーを得ることを含む。チケットから得られたセッション識別子は、クライアントの暗号化され、保持された認証証明を検索するために使用される。そして、チケットから得られたキーは、検索された認証証明の解読に使用される。
【０００８】
別の実施態様において、本発明は、ホストサービスへのクライアントの接続を再確立する際、ホストサービスへのクライアントの再認証を提供する。その方法は、さらに、クライアントと第１のプロトコルサービス間の第１の接続、及び、第１のプロトコルサービスとホストサービス間の第２の接続を提供する際のホストサービスにおけるクライアントの認証を含む。接続における切断が検出された後、第１の接続を再確立する際、その方法は、さらにホストサービスにおけるクライアントの再認証を含む。
【０００９】
本発明の別の実施態様において、その方法は、クライアントに付随するチケットを発行する第１のプロトコルサービスを含む。さらに、その方法はまた、検証後にチケットを削除することを含む。別の実施態様では、所定の時間経過後、チケットを自動的に削除することもできる。さらには、チケット削除後、代替チケットを発行することができる。別の実施態様では、チケットのコピーを第１のプロトコルサービスに保存することができる。また、チケットを第１のプロトコルサービスからクライアントに発信することができる。
【００１０】
別の観点において、本発明は、ネットワーク接続への切断後、ホストサービスへクライアントを再接続するシステムに関する。そのシステムは、第１のプロトコルサービスを使用し、クライアントとホストサービス間の接続を再確立する。前記クライアントは、第１のプロトコルサービスによる第１の接続を維持するように構成される。第１のプロトコルサービスは、クライアントによる第１の接続、および、前記ホストサービスによる第２の接続を維持するように構成される。本システムによると、第１の接続において切断が検出され、クライアントと第１のプロトコルサービス間で第１の接続が再確立される一方、第１のプロトコルサービスとホストサービス間の第２の接続は維持される。クライアントは、クライアントに付随するチケットを、第１のプロトコルサービスに発信する。そのチケットは検証され、検証後、第１のプロトコルサービスが、維持された第２の接続と再確立された第１の接続をリンクする。
【００１１】
本発明のある実施態様において、システムは、再確立された第１の接続と維持された第２の接続をリンクする前に、さらにチケットを検証することを含む。チケットの検証は、さらに、第１のプロトコルサービスにより受け取られたチケットからセッション識別子、およびキーを得ることを含む。チケットから得られたセッション識別子は、クライアントの暗号化され、保持された認証証明を検索するのに使用される。そして、チケットから得られたキーを利用することにより、システムは、検索された認証証明を解読する。
【００１２】
別の実施態様において、本発明は、ホストサービスへクライアントを再接続する際に、ホストサービスにおけるクライアントの再認証のためのシステムを提供する。システムは、さらに、クライアントと第１のプロトコルサービス間の第１の接続、及び、第１のプロトコルサービスとホストサービス間の第２の接続を提供する際、ホストサービスにおけるクライアントの認証を含む。接続における切断検出後、接続を再確立する際に、システムは、ホストサービスにおけるクライアントの再認証のために、検索した認証証明を利用する。
【００１３】
別の実施態様において、システムはさらに、クライアントに付随するチケットを発行する第１のプロトコルサービスを含む。さらに、そのシステムはまた、検証後にチケットを削除することを含む。別の実施態様では、所定の時間経過後、第１のプロトコルサービスにより、チケットを自動的に削除することができる。さらには、チケット削除後、代替チケットを発行することができる。一実施態様では、チケットのコピーを第１のプロトコルサービスに保存することができる。また、第１のプロトコルサービスは、チケットをクライアントに発信することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の特定の実施態様について説明する。しかし、本発明は、これらの実施態様に限定されるものではなく、本願明細書に明白に開示した内容への追加および変更が本発明の範囲に明白に含まれることを意図していることに留意されたい。さらに、本願明細書に開示される種々の実施態様の特徴は排他的でなく、本願明細書に組み合わせまたは置き換えが明示されていなくても、本発明の精神と範囲から逸脱することなくそのような組み合わせおよび置き換えが存在しうると理解されたい。
【００１５】
図１Ａを参照すると、一般に本発明は、ネットワーク通信に関し、特にクライアントにホストサービスへの信頼できる接続の提供に有用となりうる。概観すると、ネットワーク通信のシステム１００は、ネットワーク１０４を通じて第１のプロトコルサービス１１２（例えば、第２のコンピュータ）と通信を行うリモートクライアント１０８（例えば、第１のコンピュータ）を含む。システム１００は、ネットワーク１０４’を通じて第１のプロトコルサービス１１２と通信を行い、ネットワーク１０４を通じて第１のプロトコルサービス１１２を介してクライアント１０８と通信を行う、複数のホストサービス１１６ａ乃至１１６ｎ（例えば、第３のコンピュータ）も含む。あるいは、本発明の別の実施態様では、図１Ｂを参照すると、第１のプロトコルサービス１１２およびホストサービス１１６ａ乃至１１６ｎは、独立したコンピュータとして使用されるのではなく、むしろ図１Ａのように、例えばホストノード１１８ａのような同じコンピュータに組み込まれる。システム１００は、１つ、２つ、または任意のホストノード１１８ａ乃至１１８ｎを含むことができる。
【００１６】
一実施態様では、図１Ａに示すように、ネットワーク１０４および１０４’は独立したネットワークである。図１Ｂに示すように、ネットワーク１０４および１０４’は同じネットワーク１０４とすることができる。一実施態様では、ネットワーク１０４および／またはネットワーク１０４’は、例えば、会社のイントラネットのようなローカルエリアネットワーク（ＬＡＮ）または、例えば、インターネットまたはワールドワイドウェブのようなワイドエリアネットワーク（ＷＡＮ）である。リモートクライアント１０８、第１のプロトコルサービス１１２、ホストサービス１１６ａ乃至１１６ｎ、および／またはホストノード１１８ａ乃至１１８ｎは、これらに限定されないが、標準電話回線、ＬＡＮまたはＷＡＮのリンク（例えば、８０２．１１、Ｔ１、Ｔ３、５６ｋｂ、Ｘ．２５）、ブロードバンド接続（例えば、ＩＳＤＮ，Ｆｒａｍｅ  Ｒｅｌａｙ、ＡＴＭ）、無線接続、あるいはこれらのいずれかまたはすべてを組み合わせたものなど、様々な接続を介してネットワーク１０４および／またはネットワーク１０４’に接続することができる。
【００１７】
さらに、クライアント１０８は、ワークステーション、デスクトップコンピュータ、ラップトップ、ハンドヘルドコンピュータ、携帯電話、または通信が可能で、本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する他の形態のコンピュータまたはテレコミュニケーション装置とすることができる。加えて、クライアント１０８はローカルネットワーク１０４上のローカルデスクトップクライアント、あるいは、個別のネットワーク１０４のリモートディスプレイクライアントであることもできる。クライアント１０８は、例えば、視覚的表示装置（例えば、コンピュータ用モニタ）、データ入力装置（例えば、キーボード）、持続的および／または揮発性記憶装置（例えば、コンピュータメモリ）、プロセッサ、およびマウスを備えることができる。ユーザーインターフェイスを持つクライアントエージェント１２８の例は、ウェブブラウザ（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒブラウザおよび／またはＮｅｔｓｃａｐｅ（商標）ＴＭブラウザ）である。
【００１８】
同様に、図１Ａを参照すると、第１のプロトコルサービス１１２およびホストサービス１１６ａ乃至１１６ｎのそれぞれは、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有するいずれかのコンピュータ上に提供することができる。あるいは、第１のプロトコルサービス１１２およびホストサービス１１６乃至１１６ｎの機能を、図１Ｂに示すように、例えばホストノード１１８ａ乃至１１８ｎのような同じコンピュータに組み込む場合は、第１のプロトコルサービス１１２および／またはホストサービス１１６乃至１１６ｎを、汎用コンピュータおよび／または、例えば、ＡＳＩＣまたはＦＰＧＡのような特殊用途向けハードウェア装置上で実行されるソフトウェアプログラムとして使用することができる。
【００１９】
クライアント１０８と同様に、ホストノード１１８ａ乃至１１８ｎのそれぞれは、通信が可能で、本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する上述の任意のコンピュータデバイス（例えば、パーソナルコンピュータ）であってよい。ホストノード１１８ａ乃至１１８ｎのそれぞれは、様々な通信プロトコル（例えば、ＩＣＡ、ＨＴＴＰ、ＴＣＰ／ＩＰ、およびＩＰＸ）を使用して通信チャネル１２４ａ乃至１２４ｎ上に通信を確立することができる（ＳＰＸ、ＮｅｔＢＩＯＳ、イーサネット（登録商標）、ＲＳ２３２、および直接非同期接続）。
【００２０】
一実施態様では、ホストサービス１１６ａ乃至１１６ｎのそれぞれは、クライアント１０８に対して遠隔で利用可能な１つ以上のアプリケーションプログラムをホストする。１つまたは複数のホストサービス１１６ａ乃至１１６ｎが同じアプリケーションプログラムをホストすることができる。このようなアプリケーションの例には、ＭＩＣＲＯＳＯＦＴ  ＷＯＲＤなどのワード処理プログラム、およびＭＩＣＲＯＳＯＦＴ  ＥＸＣＥＬなどの表計算プログラムなどが挙げられ、そのどちらもＭｉｃｒｏｓｏｆｔ社（Ｒｅｄｍｏｎｄ、Ｗａｓｈｉｎｇｏｔｎ）から入手可能である。任意またはすべてのホストサービス１１６ａ乃至１１６ｎがホスト可能な他のアプリケーションプログラムの例には、財務報告プログラム、顧客登録プログラム、技術的なサポート情報を提供するプログラム、顧客データベースアプリケーション、およびアプリケーションの設定マネージャが挙げられる。さらに、一実施態様では、ホストサービス１１６ａ乃至１１６ｎの１つ以上は、ストリーミングオーディオおよび／またはストリーミングビデオをクライアント１０８に提供するオーディオ／ビデオストリーミングサーバである。別の実施態様では、ホストサービス１１６ａ乃至１１６ｎは、任意／すべてのファイルタイプをクライアント１０８に提供するファイルサーバを備える。
【００２１】
引き続き図１Ａおよび図１Ｂを参照すると、クライアント１０８は、第１のプロトコルを使用してネットワーク１０４を通じてクライアント１０８と第１のプロトコルサービス１１２との間の接続１２０を確立するように構成される。第１のプロトコルサービス１１２は、その役割として、接続１２０を受け入れるように構成される。従って、クライアント１０８および第１のプロトコルサービス１１２は、図２Ａ、２Ｂ、および図３を参照して以下に説明する、第１のプロトコルを使用して互いに通信を行うことができる。
【００２２】
一部の実施態様では、図１Ａおよび図１Ｂに示すように、クライアントエージェント１２８は、クライアント１０８内に含まれる。クライアントエージェント１２８は、例えば、ソフトウェアプログラムおよび／または、例えば、ＡＳＩＣまたはＦＰＧＡなどのようなハードウェア装置として使用することができる。クライアントエージェント１２８は、あらゆるタイプのプロトコルを使用することができ、それには、例えば、ＨＴＴＰクライアントエージェント、ＦＴＰクライアントエージェント、Ｏｓｃａｒクライアントエージェント、Ｔｅｌｎｅｔクライアントエージェント、Ｃｉｔｉｒｉｘ  Ｓｙｓｔｅｍｓ社（Ｆｏｒｔ  Ｌａｕｄｅｒｄａｌｅ、Ｆｌｏｒｉｄａ）製のＩｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｔｅｃｔｕｒｅ（ＩＣＡ）クライアントエージェント、またはＭｉｃｒｏｓｏｆｔ社（Ｒｅｄｍｏｎｄ、Ｗａｓｈｉｎｇｔｏｎ）製のＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｃｅｄｕｒｅ  （ＲＤＰ）クライアントエージェントが挙げられる。一部の実施態様では、クライアントエージェント１２８は、それ自体が第１のプロトコルを使用して通信を行うように構成される。一部の実施態様では（図示せず）、クライアント１０８は、複数のクライアントエージェント１２８ａ乃至１２８ｎを含み、それぞれがホストサービス１１６ａ乃至１１６ｎとそれぞれ通信を行う。
【００２３】
別の実施態様では、スタンドアロンのクライアントエージェントは、第１のプロトコルを使用してクライアント１０８が通信できるように構成される。スタンドアロンのクライアントエージェントはクライアント１０８内に組み込まれるか、またはスタンドアロンのクライアントエージェントをクライアント１０８から独立させることができる。スタンドアロンのクライアントエージェントは、例えば、ローカルホストのプロキシである。一般に、スタンドアロンのクライアントエージェントは、クライアントエージェント１２８に関する本願明細書に開示された機能のいずれかを実行することができる。
【００２４】
さらに下記のように、第１のプロトコルサービス１１２は、一実施態様では、それ自体が第１のプロトコルを使用して通信を行うように構成される。第１のプロトコルサービス１１２は、第１のプロトコルサービス１１２とホストサービス１１６ａ乃至１１６ｎとの間の接続１２４ａ乃至１２４ｎを確立するようにそれぞれ構成される。例えば、第１のプロトコルサービス１１２は、第１のプロトコルサービス１１２とホストサービス１１６ａとの間の接続１２４ａ、および第１のプロトコルサービス１１２と別のホストサービス１１６ｂとの間の接続１２４ｂを確立することができる。一実施態様では、第１のプロトコルサービス１０８は、このような接続１２４ａ乃至１２４ｎを別々に確立する（すなわち、第１のプロトコルサービス１１２は、一度に１つの接続を確立する）。別の実施態様では、第１のプロトコルサービス１１２は、このような接続１２４ａ乃至１２４ｎのうちの２つ以上を同時に確立する。
【００２５】
さらに別の実施態様において、第１のプロトコルサービス１１２は複数の接続１２４ａ乃至１２４ｎを同時に確立し保持することができる。第１のプロトコルサービス１１２は、接続１２０を中断せずに２つ以上の接続１２４ａ乃至１２４ｎをクライアント１０８に提供するように構成される。例えば、第１のプロトコルサービス１１２は、クライアント１０８のユーザーがホストサービスに１１６ａに存在する第１のアプリケーションプログラムの実行を要求した場合、第１のプロトコルサービス１１２とホストサービス１１６ａとの間の接続１２４ａを確立するように構成することができる。ユーザーが第１のアプリケーションプログラムの実行を終了し、例えばホストサービス１１６ｂに存在する第２のアプリケーションプログラムの実行を開始する場合、一実施態様では、第１のプロトコルサービス１１２は、接続１２４ａを中断して、第１のプロトコルサービス１１２とクライアント１０８との間の接続１２０を中断させずに第１のプロトコルサービス１１２とホストサービス１１６ｂとの間の接続１２４ｂを確立するように構成される。
【００２６】
第１のプロトコルサービス１１２およびホストサービス１１６ａ乃至１１６ｎは、限定されないが、ＨＴＴＰ、ＦＴＰ、Ｏｓｃａｒ、Ｔｅｌｎｅｔ、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ社（Ｆｏｒｔ  Ｌａｕｄｅｒａｌｅ、Ｆｌｏｒｉｄａ）製のＩＣＡリモートディスプレイプロトコルおよび／またはＭｉｃｒｏｓｏｆｔ社（Ｒｅｄｍｏｎｄ、Ｗａｓｈｉｎｇｔｏｎ）製のＲＤＰリモートディスプレイプロトコルを含む、様々な第２のプロトコルのうちのいずれか１つを使用して、接続１２４ａ乃至１２４ｎを通じて通信を行うことができる。例えば、第１のプロトコルサービス１１２およびホストサービス１１６ａは、ＩＣＡリモートディスプレイプロトコルを使用して接続１２４ａを通じて通信を行いながら、第１のプロトコルサービス１１２およびホストサービス１１６ｂは、ＲＤＰリモートディスプレイプロトコルを使用して接続１２４ｂを通じて通信を行うことができる。
【００２７】
一実施態様では、第１のプロトコルサービス１１２とホストサービス１１６との間の通信を行うために使用する、例えばＩＣＡリモートディスプレイプロトコルのような第２のプロトコルは、複数の仮想チャネルを含む。仮想チャネルは、データを交換するためのコマンドを発行するためにアプリケーション層コードが使用するセッション指向の送信接続である。例えば、複数の仮想チャネルのそれぞれは、リモートクライアント１０８での機能を可能にする複数のプロトコルパケットを含むことができる。一実施態様では、複数の仮想チャネルのうちの１つが、クライアント１０８にグラフィカルユーザーインターフェイスを表示させるために、第１のプロトコルサービス１１２を介して、グラフィックスクリーンコマンドをホストサービス１１６からクライアント１０８に送信するためのプロトコルパケットを含む。別の実施態様では、複数の仮想チャネルのうちの１つが、クライアント１０８で文書を印刷させるために、第１のプロトコルサービス１１２を介して、プリンタコマンドをホストサービス１１６からクライアント１０８に送信するためのプロトコルパケットを含む。
【００２８】
一実施態様では、第１のプロトコルは、トンネリングプロトコルである。第１のプロトコルサービス１１２は、それぞれがホストサービス１１６ａ乃至１１６ｎと第１のプロトコルサービス１１２との間の通信に使用する、複数の第２のプロトコルを第１のプロトコル内にカプセル化する。このように、ホストサービス１１６ａ乃至１１６ｎおよび第１のプロトコルサービス１１２は、複数の第２のプロトコルを介してクライアント１０８と通信を行う。一実施態様では、第１のプロトコルは、例えば、ＴＣＰ／ＩＰ接続を通じて複数の第２のプロトコルのトンネリングが可能な、アプリケーションレベルのトランスポートプロトコルである。
【００２９】
図２Ａを参照すると、接続１２０を介したクライアント１０８と第１のプロトコルサービス１１２との間の通信は、第１のプロトコル２０４内にカプセル化された複数の第２のプロトコル２００ａ乃至２００ｎ（例えば、ＨＴＴＰ、ＦＴＰ、Ｏｓｃａｒ、Ｔｅｌｎｅｔ、ＩＣＡ、および／またはＲＤＰ）の形をとる。これは、第１のプロトコル２０４の中の第２のプロトコル２００ａ乃至２００ｎの位置によって示される。セキュアな通信が要求されない場合は、図２Ａに示すように、第１のプロトコル２０４は、セキュアでないＴＣＰ／ＩＰ接続２０８を通じて通信を行うことができる。
【００３０】
図２Ｂを参照すると、セキュアな通信を使用する場合、第１のプロトコル２０４は、例えば、セキュアソケットレイヤー（ＳＳＬ）のようなセキュアなプロトコル２１６を使用して保護されるＴＣＰ／ＩＰ接続２１２などのような暗号化された接続を通じて通信を行う。ＳＳＬは、Ｎｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ社（Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ、Ｃａｌｉｆｏｒｎｉａ）がまず開発し、Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＳＬ）プロトコルとしてインターネット技術特別調査委員会（ＩＥＴＦ）が広め、ＩＥＴＦ  ＲＦＣ−２２４６に記載された、現在の標準である。
【００３１】
従って、複数の第２のプロトコル２００ａ乃至２００ｎは、接続１２０を通じてセキュアなプロトコル２１６有り（図２Ｂ）またはなし（図２Ａ）で第１のプロトコル２０４内で通信を行う。接続１２４ａ乃至１２４ｎを通じて通信を行うために使用できる第２のプロトコルは、ＨＴＴＰ、ＦＴＰ、Ｏｓｃａｒ、Ｔｅｌｎｅｔ、ＩＣＡ、および、ＲＤＰを含むがこれらに限定されない。さらに、一実施態様では、上述のように、少なくとも１つの第２のプロトコルは、複数の仮想チャネルを含むが、それぞれリモートクライアント１０８での機能を可能にする複数のプロトコルパケットを含むことができる。例えば、一実施態様では、一方のホストサービス１１６ａはウェブサーバであり、ＨＴＴＰプロトコルを使用し、接続１２４ａを通じて第１のプロトコルサービス１１２と通信を行い、別のホストサービス１１６ｂはアプリケーションサーバであり、ＩＣＡプロトコルを使用し、接続１２４ｂを通じて第１のプロトコルサービス１１２と通信を行う。ホストサービス１１６ｂは、クライアント１０８にグラフィカルユーザーインターフェイスを表示させるグラフィックスクリーンコマンドをクライアント１０８に伝送するためのプロトコルパケット、およびクライアント１０８で文書が印刷されるようにするプリンタコマンドをクライアント１０８に伝送するためのプロトコルパケットの両方を生成する。
【００３２】
本発明の別の局面は、本願明細書に記載されている、ネットワーク接続の開閉回数を減らす方法およびシステムである。一実施態様において、第１のプロトコル２０４は、その中にトンネリングした、例えば、ＨＴＴＰ接続２００ｎなどのような第２のプロトコル接続２００ａ乃至２００ｎが、繰り返し、また第１のプロトコル２０４がそれを通じて通信を行うトランスポート接続（例えば、ＴＣＰ接続２０８および／または２１２）や、セキュアなプロトコル接続２１６、あるいは第１のプロトコル接続２０４自体に、同様に繰り返して開くおよび／または閉じることを要求することなく、開くおよび／または閉じることを可能にする。第１のプロトコル２０４のカプセル化なしに、第２のプロトコル２００ａ乃至２００ｎは、ＴＣＰ接続のようなネットワーク接続を頻繁に開閉できる。これは大きな遅延および間接費をシステムに追加するであろう。このような遅延および間接費は、ネットワーク接続の確立において大きな間接費のかかるＳＳＬ等のセキュアなカプセル化プロトコル２１４の使用によってさらに増加するであろう。第１のプロトコル２０４内において第２のプロトコル２００ａ乃至２００ｎをカプセル化し、トランスポート接続（２０８、２１２）の接続を保持することによって、第２のプロトコル２００ａ乃至２００ｎは、第１のプロトコル２０４のペイロードの一部として、頻繁で費用のかかるネットワーク接続１２０の開閉を行う必要がない。さらに、第２のプロトコル２００ａ乃至２００ｎは第１のプロトコル２０４内でセキュアなプロトコル２１６と通信を行えるため、第２のプロトコル２００ａ乃至２００ｎはＳＳＬ等とのセキュアな接続を開閉する必要もない。トランスポート接続（２０８、２１２）は、カプセル化された第２のプロトコル２００ａ乃至２００ｎがセキュアなまたはセキュアでないネットワーク接続１２０を繰り返し開閉することなく通信を行えるよう、ネットワーク接続１２０を確立し保持する。これにより第２のプロトコル２００ａ乃至２００ｎの通信における動作速度が大幅に増す。
【００３３】
上述のように、第２のプロトコル２００ａ乃至２００ｎはアプリケーションに関連するプロトコルパケットを、ＨＴＴＰ、ＦＴＰ、Ｏｓｃａｒ、Ｔｅｌｎｅｔ、ＲＤＡまたはＩＣＡ等のプロトコルを使用して運搬する。第２のプロトコルパケット３０４ａ乃至３０４ｎは、クライアント１０８とホストサービス１１６ａ乃至１１６ｎの間で取引されるアプリケーション機能に関連するデータを輸送する。例えば、クライアント１０８上のユーザーは、ホストサービス１１６ａ乃至１１６ｎによって提供されるウェブページと情報のやりとりを行うことができる。クライアント１０８とホストサービス１１６ａ乃至１１６ｎの間のトランザクションにおいて、第１のプロトコル２０４内でカプセル化された第２のプロトコル２００ａ乃至２００ｎは、ホストサービス１１６ａ乃至１１６ｎと通信を行うため、ウェブページの表示および任意のユーザー対話の受信に関連するｈｔｔｐプロトコルパケットを有することができる。トランスポート接続（２１８、２１２）は第２のプロトコル２００ａ乃至２００ｎによって保持されないため、第２のプロトコル２００ａ乃至２００ｎは任意のネットワーク接続中断に対処する必要がない。そのため、第２のプロトコル２００ａ乃至２００ｎは、そのペイロードにおいていずれのネットワーク接続中断情報も提供しなくてよい。上記の例において、クライアント１０８へ伝送される第２のプロトコル２００ａ乃至２００ｎの第２のプロトコルパケット３０４ａ乃至３０４ｎに関連するｈｔｔｐは、例えばウェブページ上でのエラーメッセージ等、ネットワーク中断が発生したという通知を提供しないであろう。従って、クライアント１０８上のユーザーは、いかなるネットワークレベル接続の中断も第２のプロトコル２００ａ乃至２００ｎを介して通知されることはないであろう。これは、第２のプロトコル２００ａ乃至２００ｎに関連するアプリケーションの使用中、ネットワーク接続中断をユーザーから効果的に隠す。
【００３４】
図３を参照すると、第１のプロトコルサービス１１２およびクライアント１０８のクライアントエージェント１２８が使用するプロセス例３００は、接続１２０を介して通信を行うために、複数の第２のプロトコル２００（例えば、ＨＴＴＰ、ＦＴＰ、Ｏｓｃａｒ、Ｔｅｌｎｅｔ、ＩＣＡおよび／またはＲＤＰ）を第１のプロトコル２０４内にカプセル化する。任意に、下記のように、第１のプロトコルサービス１１２およびクライアント１０８のクライアントエージェント１２８が使用するプロセス例３００はまた、接続１２０を介した通信の前に、第１のプロトコルのレベルで通信を圧縮および／または暗号化する。第１のプロトコルサービス１１２の観点から、第２のプロトコルパケット３０４ａ乃至３０４ｎは、接続１２４ａ乃至１２４ｎを介して第１のプロトコルサービス１１２で受信する。例えば、２つの第２のプロトコルパケット３０４ａおよび３０４ｂは、第１のプロトコルサービス１１２によって受信される。１つ、２つ、または任意の第２のプロトコルパケット３０４ａ乃至３０４ｎを受信することができる。一実施態様では、第２のプロトコルパケット３０４ａ乃至３０４ｎは、ホストサービス１１６によって接続１２４を通じて第１のプロトコルサービス１１２に送信される。第２のプロトコルパケット３０４ａ乃至３０４ｎは、ヘッダ３０８およびデータペイロードとも呼ばれるデータパケット３１２を含む。
【００３５】
第２のプロトコルパケット３０４ａ乃至３０４ｎの受信の後に、第１のプロトコルサービス１１２は、１つ以上の第２のプロトコルパケット３０４を第１のプロトコルパケット３１６内にカプセル化する。一実施態様では、第１のプロトコルサービス１１２は、第１のプロトコルパケットヘッダ３２０を生成し、例えば、２つの第２のプロトコルパケット３０４ａおよび３０４ｂなどのような、１つ以上の第２のプロトコルパケット３０４ａ乃至３０４ｎを第１のプロトコルパケット３１６のデータペイロード３２４内にカプセル化する。別の実施態様では、１つの第２のプロトコルパケット３０４ａだけが、各第１のプロトコルパケット３１６内にカプセル化される。
【００３６】
一実施態様では、第１のプロトコルパケット３１６は、次いで接続１２０、例えば図２Ａを参照して説明される接続２０８を通じて、クライアント１０８のクライアントエージェント１２８に送信される。あるいは、別の実施態様では、第１のプロトコルサービス１１２は、いずれの第１のプロトコルパケット３１６の送信の前に、第１のプロトコル２０４のレベルでの通信を暗号化するようにさらに構成される。このような一実施態様では、第１のプロトコルパケット３１６は、例えば、図２Ｂを参照して説明されるＳＳＬプロトコルを使用して暗号化される。その結果、ヘッダ３３２と、データペイロード３３６としての暗号化された第１のプロトコルパケット３１６’を含むセキュアなパケット３２８が生成される。セキュアなパケット３２８は、次いで接続１２０、例えば図２Ｂを参照して説明されるセキュアなＴＣＰ／ＩＰ接続２１２を通じて、クライアント１０８のクライアントエージェント１２８に送信される。
【００３７】
別の実施態様では、第１のプロトコルサービス１１２は、いずれの第１のプロトコルパケット３１６の送信の前に、第１のプロトコル２０４のレベルで通信を暗号化するようにさらに構成される。一実施態様では、第１のプロトコルサービス１１２は、第１のプロトコルパケット３１６を暗号化する前に、標準的な圧縮技術を使用して第１のプロトコルパケット３１６を圧縮する。このように、システム１００の効率が改善される。
【００３８】
図１Ａおよび図１Ｂを再び参照すると、本発明のシステム１００は、一実施態様では、例えばホストサービス１１６ａのようなホストサービス１１６へ持続的な接続を有するリモートクライアント１０８を提供する。例えば、クライアント１０８がクライアント１０８と第１のプロトコルサービス１１２との間の接続１２０を確立し、第１のプロトコルサービス１１２が第１のプロトコルサービス１１２とホストサービス１１６ａとの間の接続１２４ａを確立する場合は、次いでクライアントエージェント１２８または第１のプロトコルサービス１１２のいずれか、またはその両方が、接続１２０を介して直近に送信された第１のプロトコルデータパケットのキューを維持するように構成される。例えば、キューに入れたデータパケットは、接続１２０の前でも失敗時でもクライアントエージェント１２８および／または第１のプロトコルサービス１１２によって維持されることができる。さらに、接続１２０の失敗時には、第１のプロトコルサービス１１２、および同様にホストサービス１１６ａは、接続１２４ａを維持するように構成される。
【００３９】
接続１２０の失敗を受けて、クライアント１０８は、いずれのデータも失わずに第１のプロトコルサービス１１２による新しい接続１２０を確立する。より具体的には、接続１２０の失敗時に接続１２４ａが維持されるので、新しく確立された接続１２０は、維持された接続１２４ａにリンクされることができる。さらに、直近に送信された第１のプロトコルデータパケットがキューに入っているので、クライアント１０８によってそれらを第１のプロトコルサービス１１２に再び送信することができ、および／または第１のプロトコルサービス１１２によって新しく確立された接続１２０を通じてクライアント１０８に再び送信することができる。このように、ホストサービス１１６ａとクライアント１０８との間の通信セッションは、第１のプロトコルサービス１１２を介して、いずれのデータも失われずに持続的に進められる。
【００４０】
一実施態様では、クライアント１０８のクライアントエージェント１２８および／または第１のプロトコルサービス１１２は、それらが接続１２０を通じて送信するデータパケットに番号を付ける。例えば、クライアントエージェント１２８および第１のプロトコルサービス１１２それぞれに、他のものがそのデータパケットにどのように番号を付けたかに関係なく、それ自身の送信データパケットに別々に番号を付ける。さらに、データパケットの番号付けは、データパケットの番号を付け直さずに絶対的なものとすることができる。すなわち、クライアントエージェント１２８および／または第１のプロトコルサービス１１２により送信された最初のデータパケットには、番号１を付けることができ、接続１２０を通じてクライアントエージェント１２８および／または第１のプロトコルサービス１１２により送信された各データパケットには、その後にそれぞれ連続した番号が付けられる。
【００４１】
このような一実施態様では、接続１２０の中断および再確立を受けて、クライアントエージェント１２８および／または第１のプロトコルサービス１１２は、他方にそれが要求する次のデータパケットを通知する。例えば、クライアントエージェント１２８が、接続１２０の中断の前に番号１乃至１０のデータパケットを受信した場合、接続１２０の再確立時に、クライアントエージェント１２８は第１のプロトコルサービス１１２に現在データパケット番号１１を要求していることを通知する。同様に、第１のプロトコルサービス１１２は、このように機能することもできる。あるいは、別のこのような実施態様では、クライアントエージェント１２８および／または第１のプロトコルサービス１１２は、他方に受信した最後のパケットデータを通知する。例えば、クライアントエージェント１２８が、接続１２０の中断の前に番号１乃至１０のデータパケットを受信した場合、接続１２０の再確立時に、クライアントエージェント１２８は第１のプロトコルサービス１１２に最後に受信したデータパケット番号１０を通知する。第１のプロトコルサービス１１２も同様に機能することができる。さらに別の実施態様では、クライアントエージェント１２８および／または第１のプロトコルサービス１１２は、接続１２０の再確立時に、一方に受信した最後のデータパケットおよび要求する次のデータパケットの両方を通知する。
【００４２】
このような実施態様では、接続１２０の再確立時に、クライアントエージェント１２８および／または第１のプロトコルサービス１１２は、他のものが受信していないバッファリングされたデータパケットを再送信することができ、第１のプロトコルサービス１１２を介して、ホストサービス１１６とクライアント１０８との間の通信セッションをいずれのデータも失わずに進めることができる。さらに、接続１２０の再確立時に、クライアントエージェント１２８および／または第１のプロトコルサービス１１２は、現在一方が受信したことがわかっているバッファリングされたデータパケットをそれぞれのバッファから消去することができる。
【００４３】
クライアント１０８にホストサービス１１６ａ乃至１１６ｎとの信頼できる持続的な接続を提供することにより、本発明は、ネットワーク接続中断を通じてユーザーセッションを保持することでホストサービス１１６ａ乃至１１６ｎとの新しいユーザーセッションを開くプロセスを回避する。ホストサービス１１６ａ乃至１１６ｎとの各ユーザーセッションのため、クライアント１０８およびホストサービス１１６ａ乃至１１６ｎは、セッション固有のコンテキストおよびキャッシュ、ならびに本例のユーザーセッションに関連するその他のアプリケーション固有のメカニズムを維持する場合がある。確立した新しい各ユーザーセッションのために、これらのセッション固有のコンテキストおよびキャッシュを、新しいユーザーセッションを反映するため再配置および再確立する必要がある。例えば、クライアント１０８上のユーザーはホストサービス１１６ａ乃至１１６ｎとのｈｔｔｐセッションを有する場合がある。ホストサービス１１６ａ乃至１１６ｎは、本例のクライアント１０８とのｈｔｔｐセッションを提供するためのコンテキストを保持することができる。コンテキストはサーバのメモリ内、サーバのファイル内、データベースまたはホストサービス１１６ａ乃至１１６ｎの機能性の提供に関連するその他のコンポーネントに格納される。クライアント１０８は、ホストサービス１１６ａ乃至１１６ｎに対する未処理の要求のトラックを維持するためのメカニズム等、ｈｔｔｐセッションの例に特有のローカルコンテキストを有する場合がある。このコンテキストは、クライアント１０８のメモリ内、クライアント１０８のファイル内、またはクライアント１０８と適合するその他のソフトウェアコンポーネントに格納される場合がある。クライアント１０８とホストサービス１１６ａ乃至１１６ｎの間の接続が持続的でない場合、ホストサービス１１６ａ乃至１１６ｎおよびクライアント１０８の新しいセッション特有コンテキストによって新しいユーザーセッションを確立する必要がある。本発明は、新しいセッション、またそれによって新しい特有のセッションコンテキストが再確立される必要のないよう、セッションを保持する。
【００４４】
本発明は、ネットワークレベルの接続中断を通じて、クライアントのユーザーにセッションが中断されたことを通知することなく、ユーザーセッションを保持する。本発明のこの局面の動作において、第１のプロトコルサービス１１２は、クライアント１０８との第１の接続およびホストサービス１１６ａ乃至１１６ｎとの第２の接続を確立および保持する。第１の接続および第２の接続を経由して、クライアント１０８とホストサービス１１６ａ乃至１１６ｎの間のセッションは確立される。第１のプロトコルサービス１１２は、認証証明書のような任意のセッション関連情報ならびに確立されたセッションのためのクライアント１０８およびホストサービス１１６ａ乃至１１６ｎのコンテキストを格納および保持することができる。クライアント１０８上のユーザーは、確立されたセッションを通じて、ホストサービス１１６ａ乃至１１６ｎによって提供される機能性を行使するであろう。このように、関連する第２のプロトコルパケット３０４ａ乃至３０４ｎは、そのような機能性のトランザクションに関連するデータを含むであろう。これらの第２のプロトコルパケット３０４ａ乃至３０４ｎは、第２のプロトコル２００ａ乃至２００ｎの一部として、第１のプロトコル２０４内でカプセル化され、通信が行われる。第１の接続または第２の接続いずれかにおける中断検出時、第１のプロトコルサービス１１２は、中断されていないと思われるその他の接続を保持しながら、中断された接続を再確立することができる。ネットワーク接続中断は、クライアント１０８とホストサービス１１６ａ乃至１１６ｎの間のセッションを中断する場合がある。しかしながら、トランスポートメカニズムは第２のプロトコル２００ａ乃至２００ｎによって維持されていないため、クライアント１０８上のユーザーにセッションが中断されたという通知を与えることなく、ネットワーク接続が再確立された後にセッションを再確立することができる。第２のプロトコル２００ａ乃至２００ｎは、クライアント１０８に伝送するための情報に関連するいかなる中断も含む必要がない。従って、ネットワーク接続中断によって生じるセッションの中断は、第１のプロトコル２０４のカプセル化によって、効果的にユーザーから隠される。
【００４５】
セッション関連情報を保持する第１のプロトコルサービス１１２は、クライアント１０８とホストサービス１１６ａ乃至１１６ｎの間のセッションを再確立することができる。例えば、クライアント１０８と第１のプロトコルサービス１１６の間のセッションが中断した場合、第１のプロトコルサービス１１２はクライアントの１０８セッションを第１のプロトコルサービス１１２とホストサービス１１６ａ乃至１１６ｎとの間でアクティブまたはオープンに保つことができる。第１の接続が再確立した後、第１のプロトコルサービス１１２はクライアント１０８のセッションを第１のプロトコルサービス１１２とホストサービス１１６の間で保持されているセッションにリンクすることができる。第１のプロトコルサービス１１２は、クライアント１０８に第１の接続における中断の前にキューに入っていた任意のデータを送信することができる。このように、クライアント１０８は中断前と同じセッションを使用しているだろうし、ホストサービス１１６ａ乃至１１６ｎおよびクライアント１０８はメモリ内またはほかの場所に格納されていると思われる任意のセッション固有コンテキストの使用を継続できる。さらに、第１のプロトコルサービス１１２の仲介により、ホストサービス１１６ａ乃至１１６ｎは、第１のプロトコルサービス１１２とクライアント１０８の間のネットワーク中断を認識しない場合がある。
【００４６】
別の実施態様において、第１のプロトコルサービス１１２とホストサービス１１６ａ乃至１１６ｎとの間の第２の接続が中断した場合、第１のプロトコルサービスは、ホストサービス１１６ａ乃至１１６ｎとの第２の接続を再確立しながら、クライアント１０８との第１の接続を保持することができる。第２の接続を再確立した後、第１のプロトコルサービス１１２は、クライアントを代表し、ホストサービス１１６ａ乃至１１６ｎとのクライアントセッションを再確立することができる。第１のプロトコルサービス１１２が任意のセッション関連情報を保持していたため、第１のプロトコルサービスは、クライアント１０８が、第２の接続における中断およびその結果生じた第１のプロトコルサービス１１２とホストサービス１１６ａ乃至１１６ｎの間のセッションへの中断を認識しないよう、同じセッションまたは同様のセッションを再確立することができる。第２のネットワーク接続およびセッションを再確立する間、第１のプロトコルサービス１１２は、クライアント１０８から中断中に送信されてきた任意のセッショントランザクションをキューに入れることができる。次いで、ホストサービス１１６ａ乃至１１６ｎとのセッションを再確立後、第１のプロトコルサービス１１２はそのキューに入れたトランザクションをホストサービス１１６ａ乃至１１６ｎへ伝送することができ、セッションは正常に継続できる。このような方法で、クライアント１０８はあたかもセッションの中断などなかったかのように動作を継続する。
【００４７】
また、信頼できる持続的な接続を提供することにより、本発明は、クライアント１０８とサーバ４１５またはホストサービス１１６ａ乃至１１６ｎの間で行使される機能性の一部として、トランザクション、コマンドまたは動作への中断を回避することもできる。例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｅｘｐｌｏｒｅｒを使用するファイルコピー動作は、ネットワーク接続において中断があった後も動作を継続するようには設計されていない。クライアント１０８上のユーザーは、クライアント１０８のファイルをサーバ４１５へコピーするために、Ｗｉｎｄｏｗｓ（登録商標）  Ｅｘｐｌｏｒｅｒのファイルコピー機能を使用することができる。ファイルのサイズにより、この動作が完了するまでには比較的長い時間がかかる。サーバ４１５へのファイルコピー動作の途中にクライアント１０８とサーバ４１５の間のネットワーク接続に中断があった場合、ファイルコピーは失敗するであろう。クライアント１０８のファイルをサーバ４１５へコピーするため、ネットワーク接続が再確立されてすぐに、ユーザーはもう一度Ｗｉｎｄｏｗｓ（登録商標）  Ｅｘｐｌｏｒｅｒのファイルコピー動作を開始する必要がある。本発明の下では、ユーザーはもう一度ファイルコピー動作を開始する必要がないであろう。ネットワーク接続は第１のプロトコル２０４接続の一部として再確立されるであろう。ファイルコピー動作は第２のプロトコル２００ａ乃至２００ｎのペイロードにおいてカプセル化されるであろう。このように、Ｗｉｎｄｏｗｓ（登録商標）  Ｅｘｐｌｏｒｅｒのファイルコピーは、ネットワーク接続における中断の通知を受けることなく、従って失敗することがないであろう。第１のプロトコルサービス１１２は、動作が失敗なく継続できるよう、任意の接続を再確立し、キューに入れた任意のデータを伝送する。第１のプロトコル１１２は、ネットワーク接続の中断によりサーバ４１５に転送されなかったファイルコピー動作に関連するデータのキューを保持するであろう。ネットワーク接続が再確立されるとすぐに、第１のプロトコルサービス１１２はキューに入れたデータを伝送し、やがてファイルコピー操作に関連するデータの転送を継続することができる。
【００４８】
本発明のこの局面は、ファイルコピー動作例の観点で説明されているが、通常当業者には、クライアント１０８とサーバ４１５またはホストサービス１１６ａ乃至１１６ｎ間で取引されるいかなる操作、トランザクション、コマンド、ファンクションコール等も、ネットワーク接続中断による失敗なく、またさらに、クライアント１０８が、中断があったことを認識したり中断の通知を受けたりすることなく、保持および継続できることが認識されるであろう。
【００４９】
さらに、信頼できる持続的な接続を提供することにより、本発明は、クライアント１０８に、クライアント１０８上でセッションまたはアプリケーションを再開することなく、異なるネットワークトポロジーを通じて妨害させることもできる。例えば、クライアント１０８は無線ネットワーク接続可能なノート型パソコンであってよい。クライアント１０８が第１の無線ネットワークから第２の無線ネットワークへ移動する場合、第２の無線ネットワークによってネットワーク接続が確立される際に、クライアントのネットワーク接続１２０は、第１の無線ネットワークから一時的に中断される場合がある。第２の無線ネットワークは、クライアント１０８に、ホスト名またはインターネットプロトコルアドレスのような新しいネットワーク識別子を割り当てることができる。この新しいネットワーク識別子は、第１の無線ネットワークによってクライアント１０８に割り当てられたネットワーク識別子と異なる場合がある。別の実施態様において、クライアント１０８は、イーサネット（登録商標）ケーブルを介してネットワーク上のポートに物理的に接続される場合がある。物理的な接続はプラグを抜かれる場合があり、クライアント１０８はネットワーク上の異なるポートに接続するため別の場所に移動する場合がある。これは、ネットワーク接続１０２への中断および割り当てられたネットワーク識別子における潜在的な変化を引き起こすであろう。本発明がなければ、クライアント１０８におけるホストサービス１１６ａ乃至１１６ｎとのいかなるセッションも、またネットワークにアクセスするクライアント１０８上のアプリケーションも、ネットワークトポロジーの変化、ネットワーク接続１２０への中断、および／または割り当てられたネットワーク識別子の変化によって再開される必要があるかもしれない。本願明細書に記載の方法およびシステムによって、本発明はクライアントのためのネットワーク接続ならびに、ネットワークトポロジーおよびネットワーク識別子における変化の処理も含む自動的に再確立されたクライアント１０８のネットワーク接続を保持する。クライアント１０８およびクライアント１０８上の任意のアプリケーションまたはセッションは、あたかもネットワーク接続中断もネットワーク識別子における変化もなかったかのように動作を継続することができる。さらに、クライアント１０８上のユーザーは、いかなる中断や変化があったことも認識しない場合があり、クライアント１０８はそのような中断のいかなる通知も受信しない場合がある。
【００５０】
上述のような信頼できる持続的な通信セッションがあったとしても、ネットワーク接続は中断されたままである。ホストサービスへのクライアントの接続を再確立する際、クライアント１０８はホストサービス１１６に対して再認証されることも必要である。本発明の一実施態様は、クライアント１０８をホストサービス１１６に対して認証するための、および認証証明書を再入力することなくクライアント１０８をホストサービス１１６に対して再認証するためのシステムおよび方法に関する。
【００５１】
図４は、自動クライアント再接続サービスまたはＡＣＲサービス４０５と呼ばれる自動的なクライアント再接続サービスを使用して、クライアント１０８をホストサービス１１６に再接続することが可能な、システム４００の実施態様を示す。つまり、クライアント１０８は、通信チャネル４１８上で、サーバとも呼ばれるコンピュータサーバ４１５と通信を行う。通信チャネル４１８は、ネットワーク１０４を含むことができる。例えば、通信チャネル４１８は、会社のイントラネットのようなローカルエリアネットワーク（ＬＡＮ）または、インターネットまたはワールドワイドウェブのようなワイドエリアネットワーク（ＷＡＮ）上にあってよい。サーバ４１５は、ＡＣＲサービス４０５により自動クライアント再接続サービスを提供する。クライアント１０８は通信チャネル４１８を通じてサーバ４１５にアクセスする。サーバ４１５のＡＣＲサービス４０５は、サーバ４１５に対してクライアント１０８を認証するための認証サービスを提供する。ネットワーク通信において中断がある場合、ＡＣＲサービス４０５は、サーバ４１５に対してクライアント１０８を認証するための再認証サービスをさらに提供する。単一のクライアント１０８および１つの通信チャネル４１８で説明しているが、多数のクライアント（例えば、１０８、１０８’）および多数の通信チャネル（例えば、４１８、４１８’）がシステム１００の一部であってよい。
【００５２】
一実施態様において、サーバ４１５は、システムバス４３２上で通信を行うプロセッサ４２５およびメモリ４３０を含む。メモリ４３０は、ランダムアクセスメモリ（ＲＡＭ）および／またはリードオンリーメモリ（ＲＯＭ）を含む場合がある。別の実施態様において、サーバ４１５は、リモートサイト（例えば、別のコンピュータ、外部記憶装置）からメモリ４３０にアクセスする。
【００５３】
サーバ４１５上で動作するＡＣＲサービス４０５は、キージェネレータ４３５、セッション識別子（ＳＩＤ）ジェネレータ４３８、エンクリプター４４０、キーデストロイヤー４４５、およびデクリプター４４８を含む。キージェネレータ４３５は、サーバ４１５またはＡＣＲサービス４０５がクライアント１０８から認証証明書を受信した際にキーを生成する。一実施態様において、キージェネレータ４３５は、サーバ４１５の特性からキーを導き出す。具体的な例としては、プロセッサ４２５の温度からキーを導き出すキージェネレータ４３５、サーバ４１５が認証証明書を受信する時間、およびメモリ４３０に格納されているキーの数が挙げられる。さらなる実施態様において、キーおよび認証証明書は同じ大きさ（例えば、８ビット）である。一実施態様において、キージェネレータはソフトウェアモジュールである。別の実施態様において、キージェネレータ４３５は乱数ジェネレータである。
【００５４】
ＳＩＤジェネレータ４３８は、サーバ４１５に特定の通信セッションを識別させる固有のＳＩＤを生成する。一実施態様において、ＳＩＤジェネレータ４３８はソフトウェアモジュールである。別の実施態様において、ＳＩＤジェネレータ４３８は乱数ジェネレータである。別の遂行形態において、ＳＩＤジェネレータはＳＩＤをホストサービス１１６へ伝送する。一実施態様において、ＳＩＤジェネレータ４３８はサーバ上で動作するホストサービス１１６からＳＩＤを得る。さらなる実施態様において、ＳＩＤジェネレータは、ユーザーセッションを確立するホストサービス１１６からセッション識別子を受信することによって、ＳＩＤを生成する。
【００５５】
エンクリプター４４０は、認証証明書を持つキーを暗号化し、暗号化した認証証明書を作成する。一実施態様において、エンクリプター４４０は、キーおよび認証証明書において排他的論理和演算（すなわち、ＸＯＲ）を遂行することによって認証証明書を持つキーを暗号化する。別の実施態様において、エンクリプター４４０は、キーに認証証明書を加えて認証証明書を暗号化する、つまり、エンクリプター４４０は、キーをシフト値として使用することにより、認証証明書において「シーザー暗号」を遂行する。別の実施態様において、エンクリプター４４０は、認証証明書において、ＭＤ４、ＭＤ５、またはＳＨＡ‐１等のハッシュ関数を遂行する。エンクリプター４４０は、ＡＣＲサービス４０５が暗号化した認証証明書をキーによって解読できる限り、認証証明書においていかなるタイプの操作も遂行できることを明らかにする必要がある。
【００５６】
一実施態様において、エンクリプター４４０は、暗号化した認証証明書を作成するために、キーおよび認証証明書において数学アルゴリズムを実行するソフトウェアモジュールである。別の実施態様において、エンクリプター４４０は、排他的論理和（ＸＯＲ）ゲートのような、サーバコンピュータ４１５の論理ゲートである。
【００５７】
一実施態様において、エンクリプター４４０はＳＩＤを持つ暗号化した認証証明書をメモリ４３０内のテーブル４５５に格納する。別の実施態様において、エンクリプター４４０は、暗号化した認証証明書を、テーブル４５５およびテーブル４５５にＳＩＤを格納するＳＩＤジェネレータ４３８内に格納する。一実施態様において、テーブル４５５は、エンクリプター４４０が使用するために、プロセッサ４５５によって割り付けられたメモリ４３０内の領域にある。別の実施態様において、エンクリプター４４０は、ＳＩＤを持つ暗号化した認証証明書を、メモリ４３０から分離したデータベース（図４には示さず）内に格納する。
【００５８】
一実施態様において、ＡＣＲサービス４０５はＳＩＤを、テーブル４５５における暗号化した認証証明書の位置を指すベクトルとして使用する。別の実施態様において、ＡＣＲサービス４０５はＳＩＤを、データベース（図４には示さず）内の暗号化した認証証明書を見つけ引き出すためのデータベースキーとして使用する。エンクリプター４４０により作成された、暗号化した認証証明書のそれぞれは、１つの固有のＳＩＤにのみ関連している。従って、ＡＣＲサービス４０５は、特定のＳＩＤを使用することで暗号化した認証証明書を見つけ引き出すことができる。
【００５９】
キーデストロイヤー４４５は、ＡＣＲサービス４０５がそのキーはもはや必要ないと判断すると、キーを削除する。一実施態様において、キーデストロイヤー４４５はサーバ４１５のオペレーティングシステムのようなソフトウェアプログラムの削除機能である。
【００６０】
デクリプター４４８は、ＡＣＲサービス４０５がクライアント１０８からキーおよびＳＩＤを引き出すと、暗号化した認証証明書を解読する。一実施態様において、デクリプター４４８は、暗号化した証明書を作成するためにエンクリプター４４０が遂行した逆関数またはアルゴリズムを遂行するソフトモジュールである。別の実施態様において、デクリプター４４８は、エンクリプター４４０の逆演算を遂行するハードウェアコンポーネント（例えば、論理ゲート）である。
【００６１】
一実施態様において、１つ以上のキージェネレータ４３５、ＳＩＤジェネレータ４３８、エンクリプター４４０、キーデストロイヤー４４５、およびデクリプター４４８は、ＡＣＲサービス４０５を代表する１つのソフトウェアモジュールに接合される。別の実施態様において、これらのコンポーネント（４３６、４３８、４４０、４４５、および４４８）は、論理ゲートのようなハードウェアコンポーネントであってよい。さらなる実施態様において、これらのコンポーネント（４３５、４３８、４４０、４４５、および４４８）は、単一の集積回路に含まれてよい。さらに別の実施態様において、例えばキージェネレータ４３５およびＳＩＤジェネレータ４３８のような一部のコンポーネントはハードウェアコンポーネントであってよく、例えばエンクリプター４４０、キーデストロイヤー４４５およびデクリプター４４８のようなその他のコンポーネントはソフトウェアコンポーネントであってよい。
【００６２】
別の実施態様において、本発明は、ネットワークへのクライアントの接続において中断がある場合に、クライアント１０８をホストサービス１１６に再接続するための方法も提供する。前記方法は、ホストサービス１１６へのクライアントの接続の再確立およびクライアントをホストサービスに対して再認証するためのＡＣＲサービス４０５の使用を含む。
【００６３】
図５Ａを参照して、クライアント１０８は、通信チャネル４１８上でサーバ４１５との第１の通信セッションを確立する。クライアント１０８はクライアント１０８のユーザーから認証証明書を得る（ステップ５００）。クライアント１０８とサーバ４１５との間の通信のための伝送プロトコルのような開放型システム間相互接続（ＯＳＩ）プロトコルを使用しないシステム１００においては、認証証明書が第１の通信セッションを確立するために必要なログインパスワードとなる場合がある。一実施態様において、ユーザーから認証証明書を得ることは、通信セッションの確立に先行する。別の実施態様において、認証証明書は、第１の通信セッションが確立した後にクライアント１０８が得る、ユーザーの個人情報である。認証証明書の例としては、ログインパスワード、社会保障番号、電話番号、住所、生体認証情報、時間依存性パスコード、およびデジタル証明書が挙げられる。クライアント１０８はその後、サーバ４１５がクライアント１０８またはクライアント１０８のユーザーを認証できるよう、認証証明書を通信チャネル４１８上でサーバ４１５へ伝送する（ステップ５０５）。
【００６４】
サーバ４１５が認証証明書を受信した後、ＡＣＲサービス４０５はその自動クライアント再接続サービスを提供する。キージェネレータ４３５は、認証証明書に使用するための第１の暗号化キーを作成する（ステップ５１０）。一実施態様において、暗号化キーは乱数である。別の実施態様において、暗号化キーは任意の標準的な暗号鍵である。エンクリプター４４０はその後、第１のキーで認証証明書を暗号化し（ステップ５１５）、暗号化した認証証明書を生成する。これは、サーバ４１５にアクセスする攻撃者がキーなしで認証証明書にアクセスするのを防止する。次いでＳＩＤジェネレータ４３８は第１のＳＩＤを作成し（ステップ５２０）、クライアント１０８とサーバ４１５との間の第１の通信セッションを識別する。一実施態様において、第１の通信セッションはサーバ４１５によりホストされるホストサービス１１６を伴う。エンクリプター４４０は次いで第１のＳＩＤを持つ暗号化した認証証明書を上述のテーブル４５５内に格納する（ステップ５２５）。
【００６５】
一実施態様において、エンクリプター４４０は第１のＳＩＤを持つ暗号化した認証証明書を後のより効率的な検索のために一定の位置に格納する。例えば、エンクリプター４４０は、ＲＡＭ３０内において所定時間内で作成されたすべての暗号化した認証証明書およびＳＩＤを格納する。ＡＣＲサービス４０５は、所定時間の前に作成されたすべての暗号化した認証証明書およびＳＩＤを、第２の外部メモリ（図示せず）へ転送する。別の実施態様において、エンクリプター４４０は、ＳＩＤを持つ暗号化した認証証明書をデータベース（図示せず）内に格納する。
【００６６】
メモリ４３０内に格納したＳＩＤおよび暗号化した認証証明書は、任意の特定の順序および／またはフォーマットで配置することができる。例えば、ＳＩＤおよび暗号化した認証証明書は、暗号化した認証証明書の作成時に関連した時系列で格納することができる。
【００６７】
サーバ４１５は次いで第１のキーおよび関連する第１のＳＩＤを、ネットワーク１０４上でクライアント１０８へ伝送する（ステップ５３５）。クライアント１０８は、第１のキーおよび第１のＳＩＤをクライアント１０８のメモリ（図示せず）内に格納する（ステップ５４０）。次いでＡＣＲサービス４０５のキーデストロイヤー４４５が、メモリ４３０内に格納されたキーを削除する（ステップ５４５）。
【００６８】
別の実施態様において、ＡＣＲサービス４０５は、クライアント１０８がキーを受信したという通知をＡＣＲサービス４０５が受け取るまで、メモリ４３０から第１のキーを削除しない。例えば、クライアント１０８は、クライアント１０８が無事にキーを受信した後、確認応答メッセージをサーバ４１５へ伝送する。ＡＣＲサービス４０５が通知を受信すると、次いでキーデストロイヤー４４５がメモリ４３０からキーを削除する（ステップ５４５）。これは、クライアント１０８が無事にキーを受信する前にＡＣＲサービス４０５がキーを削除するのを防止する。応答確認メッセージまでキーを削除しないことにより、ＡＣＲサービス４０５は、伝送の失敗時にキーおよびＳＩＤをクライアント１０８へ再伝送することができる。
【００６９】
ステップ５４５においてキーを削除することにより、ＡＣＲサービス４０５は、テーブル４５５に格納されている暗号化した認証証明書を解読する必要のあるメカニズムを持たない。従って、攻撃者がサーバ４１５メモリの４３０にアクセスした場合、その攻撃者は暗号化した認証証明書を受信することはできるが、その暗号化した認証証明書を解読することはできない。そのため、攻撃者はその認証証明書を読み出すことができない。つまり、サーバ４１５に格納されている暗号化した認証証明書は、攻撃者が解釈または理解できるいかなる情報も提供しない。このように、サーバ４１５は、暗号化した認証証明書を解読するいかなる情報も所有しない。
【００７０】
また、クライアント１０８は、暗号化した認証証明書のためのキーを提供できる唯一の機器である。ネットワーク１０４の一部として多くのクライアント１０８がある可能性のために、攻撃者は的確なキーを所有するクライアント１０８を発見するために各クライアント（例えば、１０８、１０８’）への個別アクセスを試みる必要がある可能性がある。これは、時間がかかり退屈であるため、結果として攻撃者が暗号化した認証証明書を解読しようとする試みを阻止することができる。
【００７１】
別の実施態様において、サーバ４１５は暗号化した認証証明書へのアクセスに関してタイムアウト機能を有する。例えば、サーバ４１５は第１の通信が異常終了した場合にタイマーを開始する。クライアント１０８が第２の通信セッションを再確立する前にタイマーが所定値に達し、解読のためのキーをサーバ４１５へ伝送すると、ＡＣＲサービス４０５は暗号化した認証証明書をテーブル４５５から削除する。タイマーを使用しない場合、キーは今後のセッションのための事実上のパスワードとして作用する。
【００７２】
図５Ａを参照して上述したようにクライアント１０８がサーバ４１５から第１のキーおよび第１のＳＩＤを受信すると、図５Ｂに示すように、ユーザーに自身の認証証明書を再入力するように要求することなくセッションを再確立することができる。クライアント１０８とサーバ４１５との間の第１の通信セッションにおいて中断または切断が発生（ステップ５００）した際、第１の通信セッション４１８は再確立される必要があり、クライアント１０８はサーバ４１５に対して再認証される必要がある。ＡＣＲサービス４０５は、クライアント１０８を再確立しサーバ４１５に対して再認証するためのシステムおよび方法を提供する。
【００７３】
クライアント１０８およびサーバ４１５が第２の通信セッションを確立すると、クライアント１０８は第１のキーおよび第１のＳＩＤをサーバ４１５へ伝送する（ステップ５５５）。ＡＣＲサービス４０５は、サーバのメモリ４３０内の暗号化した認証証明書を見つけ引き出すためにＳＩＤを使用（ステップ５５８）し、引き出した認証証明書を解読するためにキーを使用する（ステップ５６０）。次いでサーバ４１５は、クライアント１０８からの認証証明書を有効にすることによって、クライアント１０８をサーバ４１５に対して再認証する（ステップ５６５）。一実施態様において、認証および再認証はサーバ４１５のコンピュータデバイスのオペレーティングシステムによって提供されるセキュリティサービスにより容易になる。例えば、認証証明書はサーバ４１５に対するログインおよびパスワードである。別の実施態様において、認証および再認証は、サーバ４１５上のアプリケーションまたはソフトウェアプログラムのアプリケーションレベルのセキュリティサービスにより容易になる。例えば、認証証明書は特定のホストサーバ１１６に対するアプリケーションログインおよびパスワードである。
【００７４】
例えば、ユーザーのログインパスワードが認証証明書であった第１の通信セッションが異常終了したとき（ステップ５５０）クライアント１０８はサーバ４１５との第２の通信セッションを確立しようと試みる。サーバ４１５との第２の通信セッションを確立するよう求めるサーバ４１５への要求の一部として、クライアント１０８は第１の終了した通信セッションのキーおよびＳＩＤをサーバ４１５へ伝送する（ステップ５５５）。ユーザーにユーザーのログインパスワードを再び入力するよう促す代わりに、サーバ４１５は、ＡＣＲサービス４０５を介して、ＳＩＤを使用して（ステップ５５８）そのユーザーに関連する暗号化した認証証明書を見つけ引き出し、キーを使用して（ステップ５６０）引き出した認証証明書を解読し、その解読した認証証明書を使用することによってクライアントを再認証する（ステップ５６５）。
【００７５】
一実施態様において、第２の通信セッション中に、ＡＣＲサービス４０５は認証証明書のための第２のキーを作成し（ステップ５７０）、次いでその第２のキーを使用して認証証明書を暗号化する（ステップ５７５）。第２の通信セッションを識別し、クライアント１０８と関連付けるために、第２のＳＩＤが作成される（ステップ５８０）。第２の暗号化した認証証明書は、第２のＳＩＤとともにテーブル４５５内に格納される（ステップ５２５）。
【００７６】
この実施態様において、サーバはその後第２のキーおよび第２のＳＩＤをクライアント１０８へ伝送する（ステップ５８５）。クライアント１０８は次いでその第２のキーおよび第２のＳＩＤをその後の引き出しのためにメモリ（図示せず）内に格納する（ステップ５９０）。ＡＣＲサービス４０５は次いでメモリ４３０の第２のキーを削除する（ステップ５９５）。従って、ＡＣＲサービス４０５は、クライアント１０８から第２のキーおよび第２のＳＩＤを得たとき、第２の暗号化した認証を解読できるだけである。ＡＣＲサービス４０５は、第１の通信セッション中にユーザーが伝送していたのと同じ認証証明書とともに使用される、第２の通信セッションのための新しいキーおよび新しいＳＩＤを作成している。そのため、ユーザーの認証証明書は、第１の通信セッションの異常終了後に第２の通信チャネル上で再伝送される必要がない。
【００７７】
本発明を認証証明書の観点で説明しているが、通信の失敗があった場合にセッション間で保持できる任意の機密情報を使用してもよい。従って、本発明の発表後であれば、アプリケーションがクレジットカード情報を要求しクレジットカード情報がサーバへ送られた場合、その後に起こるクライアントとサーバとの間の遮断はクレジットカード情報の再入力を要求しない。さらに、セッション識別子またはＳＩＤは格納された認証証明書を指すポインタを提供するとして説明しているが、ポインタとして適合するいずれの数および値も使用してよい。
【００７８】
図６は、中間ノード６５０を実行するＡＣＲサービス４０５を使用してクライアント１０８をサーバ４１５へ再接続できるシステム６００の実施様態を示す。中間ノード６５０は、サーバ４１５とは異なるコンピュータデバイスであり、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、任意のコンピュータであってよい。つまり、クライアント１０８は、通信チャネル４１８上の中間ノード６５０と通信を行っている。通信チャネル４１８はネットワーク１０４を含んでよい。中間ノード６５０は、ＡＣＲサービス４０５を経由して、サーバ４１５へのクライアント１０８の接続のため、クライアント１０８に自動再接続サービスも提供する。中間ノード６５０は、通信チャネル４１８’上でサーバ４１５と通信を行っている。通信チャネル４１８’はネットワーク１０４’を含んでよい。クライアント１０８は中間ノード６５０を通じてサーバ４１５のサービスにアクセスする。中間ノード６５０上のＡＣＲサービス４０５は、クライアント１０８のサーバ４１５への接続のための自動クライアント再接続サービスを提供する。通信チャネル４１８上の単一のクライアント１０８を示したが、多数のクライアントおよび多数の通信チャネルをシステム６００の一部とすることができる。
【００７９】
さらなる実施態様（図示せず）において、システム６００は、追加の通信チャネル４１８、４１８’上のネットワーク１０４を通じて１つ以上のクライアント１０８と通信を行う多数の中間ノード６５０を含む。図６において通信チャネル４１８上の単一の中間ノードを示したが、多数の中間ノード６５０および多数の通信チャネル４１８をシステム６００の一部とすることができる。
【００８０】
別の実施態様において、本発明は、１つ以上の中間ノード６５０を使用して、サーバ４１５に対するクライアント１０８の接続の確立および認証を容易にするための方法に関する。図７Ａに示すように、中間ノード６５０は、サーバ４１５とのセッションを確立する（ステップ５２０Ａ）。
【００８１】
クライアント１０８は、通信チャネル４１８上に中間ノード６５０との第１の通信セッションを確立する。クライアント１０８は、クライアント１０８のユーザーから認証証明書を得る（ステップ５００）。次いでクライアント１０８は、中間ノード６５０がサーバ４１５でユーザーを認証できるよう、その認証証明書を通信チャネル４１８上の中間ノード６５０へ伝送する（ステップ５０５）。
【００８２】
中間ノード６５０が認証証明書を受信した後、ＡＣＲサービス４０５はその自動クライアント再接続サービスを提供する。ＡＣＲサービス４０５は認証証明書に使用するための第１の暗号化キーを作成し（ステップ５１０）、次いで暗号化した認証証明書を生成するためにその認証証明書を暗号化する（ステップ５１５）。これは、サーバ４１５へアクセスする攻撃者がキーなしで認証証明書にアクセスすることを防止する。次いでサーバ４１５によりセッションが確立され（ステップ５２０Ａ）、クライアント１０８は認証証明書を使用してサーバ４１５に対し認証される。それにより、ＡＣＲサービス４０５は第１の通信セッションを識別するため、第１のＳＩＤを作成する。暗号化した認証証明書は第１のＳＩＤとともに上述のテーブル４５５内に格納される（ステップ５２５）。中間ノード６５０は次いで第１のキーおよび第１のＳＩＤをネットワーク１０４上でクライアント１０８へ伝送する（ステップ５３５）。クライアント１０８は、第１のキーおよび第１のＳＩＤをクライアント１０８のメモリ（図示せず）内に格納する（ステップ５４０）。ＡＣＲサービス４０５は次いでメモリ４３０に格納されたキーを削除する（ステップ５４５）。
【００８３】
図７Ａを参照して上述したようにクライアント１０８が中間ノード６５０から第１のキーおよび第１のＳＩＤを受信すると、図７Ｂに示すように、ユーザーに自身の認証証明書を再入力するように要求することなく通信セッションを再確立および再認証することができる。例えば、クライアント１０８と中間ノード６５０との間の第１の通信セッションにおいて、異常終了による中断がある（ステップ７０５）場合がある。
【００８４】
クライアント１０８および中間ノード６５０が第２の通信セッションを再確立する際、クライアント１０８は第１のキーおよび第１のＳＩＤを中間ノード６５０へ伝送する（ステップ５５５）。中間ノード６５０のＡＣＲサービス４０５は、サーバのメモリ４３０内の暗号化した認証証明書を見つけ引き出すために、ＳＩＤを使用し（ステップ５５８）、引き出した認証証明書を解読するためにキーを使用する（ステップ５６０）。キージェネレータは認証証明書のための第２のキーを作成し（ステップ５７０）、キーエンクリプター４４０は次いで第２のキーを使用し認証証明書を暗号化する（ステップ５７５）。ＳＩＤジェネレータ４３８も、第２の通信セッションを識別しそれを中間ノード６５０とサーバ４１５との間の保持したセッションと関連付けるため、第２のＳＩＤを作成する（ステップ５８０）。エンクリプター４４０は、第２の暗号化した認証証明書をＳＩＤとともにテーブル４５５内に格納する。
【００８５】
一実施態様において、サーバ４１５は次いで第２のキーおよび第２のＳＩＤをクライアント１０８へ伝送する（ステップ５８５）。クライアント１０８はその後の引き出しのために第２のキーおよび第２のＳＩＤを格納する（ステップ５９０）。次いでキーデストロイヤー４４５が第２のキーをメモリ４３０から削除する（ステップ５９５）。従って、ＡＣＲサービス４０５は、クライアント１０８から第２のキーおよび第２のＳＩＤを得たとき、第２の暗号化した認証を解読できるだけである。ＡＣＲサービス４０５は、第１の通信セッション中にユーザーが伝送していたのと同じ認証証明書とともに使用される、第２の通信セッションのための新しいキーおよび新しいＳＩＤを作成している。そのため、ユーザーの認証証明書は、第１の通信セッションの異常終了後に第２の通信チャネル上で再伝送される必要がない。
【００８６】
別の実施態様において、中間ノード６５０とサーバ４１５との間の第２の通信セッションにおいて中断または異常終了がある（ステップ７１０）場合がある。図７Ｃに示すように、第２の通信セッションはユーザーに自身の認証証明書を再入力するよう要求することなく再確立および再認証できる。
【００８７】
中間ノード６５０およびサーバ４１５が第２の通信セッションを再確立する際、中間ノード６５０は、クライアントを代表してサーバ４１５とのセッションを再確立するために、クライアント１０８から第１のキーおよび第１のＳＩＤを要求する（ステップ５５０）。それに応えて、クライアント１０８は第１のキーおよび第１のＳＩＤを中間ノード６５０へ伝送する（ステップ５５５）。中間ノード６５０のＡＣＲサービス４０５は、サーバのメモリ４３０内において暗号化した認証証明書を見つけ引き出すためにＳＩＤを使用し（ステップ５５８）、引き出した認証証明書を解読するためにキーを使用する（ステップ５６０）。ＡＣＲサービス５００はその後、サーバ４１５に対しクライアント１０８を再認証するため解読した認証証明書を使用してサーバとのクライアントのセッションを再確立する（ステップ５６５）。
【００８８】
別の実施態様において、第２の通信セッション上でクライアントを再確立および再認証した後、中間ノード６５０のＡＣＲサービス４０５は、図７Ｂにおいて先に説明したように、代替の第２のＳＩＤおよび第２のキーを作成する。図４に示すＡＣＲサービスの実施態様を参照して、キージェネレータは認証証明書のための第２のキーを作成し（ステップ５７０）、キーエンクリプター４４０は次いで第２のキーを使用し認証証明書を暗号化する（ステップ５７５）。ＳＩＤジェネレータ４３８も、第２の通信セッションを識別しそれを中間ノード６５０とサーバ４１５との間の保持したセッションと関連付けるため、第２のＳＩＤを作成する（ステップ５８０）。エンクリプター４４０は、第２の暗号化した認証証明書をＳＩＤとともにテーブル４５５内に格納する。この実施態様において、サーバはその後第２のキーおよび第２のＳＩＤをクライアント１０８へ伝送する（ステップ５８５）。クライアント１０８は次いでその第２のキーおよび第２のＳＩＤをその後の引き出しのために格納する（ステップ５９０）。キーデストロイヤー４４５は次いで第２のキーをメモリ４３０から削除する（ステップ５９５）。
【００８９】
その他の実施形態において、１つ以上の第１のプロトコルサービス１１２およびＡＣＲサービス４０５は、任意のホストサービスノードにわたって配信されることができる。結果として、ホストサービス１１６に接続するクライアント１０８の再確立、再認証、または自動再接続の機能性は、ホストサービス１１６および／またはホストノード１１８にわたり、異なるシステムおよび配備アーキテクチャにおいて柔軟に配信されることができる。
【００９０】
本発明のこの局面の一実施態様において、各ホストサービス１１６に専用の自動クライアント再接続サービスをそれぞれ提供するため、ＡＣＲサービス４０５をシステム１００の各ホストノード１１６ａ乃至１１６ｎと関連付けることができる。単一の第１のプロトコルサービス１１２は、ホストサービス１１６ａ乃至１１６ｎのすべてを処理するよう配備することができる。図８Ａに示すように、複数のＡＣＲサービス４０５ａ乃至４０５ｎは各ホストサービス１１６ａ乃至１１６ｎとそれぞれ関連付けられている。例示した方法により、クライアント１０８は第１のプロトコルサービス１１２を使用してホストサービス１１６ａとの通信セッションを確立する。ホストサービス１１６ａと関連付けられたＡＣＲサービス４０５ａは、ホストサービス１１６ａへのクライアント１０８の接続のため、自動クライアント再接続サービスを提供する。ネットワーク接続において中断がある場合、第１のプロトコルサービス１１２はクライアント１０８との接続を再確立し、ＡＣＲサービス４０５ａはホストサービス１１６ａに対してクライアント１０８を再認証するであろう。第２のクライアントサービス１０８’は、第１のクライアント１０８とともに、第１のプロトコルサービス１１２を使用してホストサービス１１６ｂとの通信セッションを確立することができる。ＡＣＲサービス４０５ｂは、ホストサービス１１６ｂへのクライアントの接続のために、自動クライアント再接続サービスを提供する。ネットワーク中断がある場合、ＡＣＲサービス４０５ｂに関連する第１のプロトコルサービス１１２は、クライアント１０８’をホストサービス１１６ｂに再接続するであろう。
【００９１】
本発明のこの局面の別の実施態様において、ＡＣＲサービスは、システム１００のホストノード１１８ａ乃至１１８ｎのそれぞれにおいて動作する複数のホストサービス１１６ａ乃至１１６ｎのそれぞれと関連付けることができる。第１のプロトコルサービス１１２は、ホストノード１１８上で動作する複数のホストサービス１１６ａ乃至１１６ｎのそれぞれにサービスを提供するよう、各ホストノード１１８上に配備することができる。図８Ｂに示すように、各ＡＣＲサービス４０５ａ乃至４０５ｎは、各ホストサービス１１６ａ乃至１１６ｎにそれぞれ関連付けられている。各ホストノード１１８は、そのホストサービス１１６およびＡＣＲサービス４０５のそれぞれにサービスを提供する専用の第１のプロトコルサービス１１２を有する。例えば、クライアント１０８は、第１のプロトコルサービス１１２ａを使用することにより、ホストノード１１８ａ上にホストサービス１１６ａとの通信セッションを確立する。ホストノード１１８ａ上のＡＣＲサービス４０５ａは、ホストノード１１８ａ上のホストサービス１１６ａへのクライアント１０８の接続のために、自動クライアント再接続サービスを提供する。
【００９２】
ネットワーク中断が検出されると、第１のプロトコルサービス１１２ａはホストノード１１８ａ上のホストサービス１１６ａへのクライアントの接続を再確立し、ホストノード１１８ａ上のＡＣＲサービス４０５ａはホストノード１１８ａ上のホストサービス１１６ａに対してクライアント１０８を再認証する。第１のクライアント１０８と同時に、第２のクライアント１０８’は第１のプロトコルサービス１１２ａおよびＡＣＲサービス４０５ａを使用してホストノード１１８ａ上のホストサービス１１６ｂとの通信セッションを確立する。ネットワーク中断がある場合、ＡＣＲサービス４０５ａに関連する第１のプロトコルサービス１１２ａは、ホストノード１１８ａ上のホストサービス１１６ｂにクライアント１０８’を再接続する。第１のクライアント１０８および第２のクライアント１０８’と同時に、第３のクライアント１０８’’は、第１のプロトコルサービス１１２ｂおよびホストノード１１８ｂ上のＡＣＲサービス４０５ｎを使用して、ホストノード１１８ｂ上のホストサービス１１６ｎとの通信セッションを確立する。同様に、第１のプロトコルサービス１１２ｂおよびＡＣＲサービス４０５ｎは、クライアント１０８’’をホストノード１１８ｂのホストサービス１１６ｎに再接続することができる。
【００９３】
その他の実施態様において、１つ以上のＡＣＲサービス４０５は、中間ノードまたは第１のプロトコルサービスノードのいずれかを通して、第１のプロトコルサービス１１２とともに配信されることができる。このように、クライアント１０８をホストサービス１１６へ再接続する機能性は、第１のプロトコルサービス１１２に関連する、異なるシステムおよび配備アーキテクチャにおいて柔軟に配信されることができる。
【００９４】
本発明のこの局面の一実施態様において、ＡＣＲサービス４０５は、第１のプロトコルサービス１１２専用の自動クライアント再接続サービスを提供するため、各第１のプロトコルサービス１１２と関連付けることができる。単一の第１のプロトコルサービス１１２およびＡＣＲサービス４０５はホストサービス１１６ａ乃至１１６ｎのすべてを処理するように配備することができる。図９Ａに示すように、ＡＣＲサービス４０５は、ホストサービス１１６ａ乃至１１６ｎに自動クライアント再接続サービスを提供するため、第１のプロトコルサービス１１２と同じコンピュータデバイス内に存在する。例えば、クライアント１０８は、第１のプロトコルサービス１１２およびＡＣＲサービス４０５を使用して、ホストサービス１１６ａ乃至１１６ｎのいずれかと通信セッションを確立する。第１のプロトコルサービス１１２およびＡＣＲサービス４０５は、クライアント１０８からホストサービス１１６ａ乃至１１６ｎのいずれかへの再接続機能性を提供する。
【００９５】
本発明のこの局面の別の実施態様において、ＡＣＲサービス４０５ａ乃至４０５ｎのそれぞれは、複数の第１のプロトコルサービス１１６ａ乃至１１６ｎのそれぞれに関連付けることができる。例えば、図９Ｂに示すように、第１のプロトコルサービス１１２ａおよびＡＣＲサービス４０５ａは、ホストノード１１８ａ上で動作する複数のホストサービス１１６ａ乃至１１６ｎのそれぞれにサービスを提供するようホストノード１１８ａ上に配備されることができる。図９Ｂにさらに示すように、各ＡＣＲサービス４０５ａ乃至４０５ｎは、専用の自動クライアント再接続サービスを、各ホストノード１１８ａ乃至１１８ｎの複数のホストサービス１１６ａ乃至１１６ｎに提供するため、各第１のプロトコルサービス１１２ａ乃至１１２ｎと関連付けられている。例示したように、クライアント１０８は、ホストノード１１８ａ上のホストサービス１１６ａとの通信セッションを、同じホストノード１１８ａ上の第１のプロトコルサービス１１２ａおよびＡＣＲサービス４０５ａを使用して確立する。ネットワーク中断がある場合、ＡＣＲサービス４０５ａと関連する第１のプロトコルサービス１１２ａは、クライアント１０８をホストノード１１８ａ上のホストサービス１１６ａに再接続する。
【００９６】
本発明を図８Ａ、８Ｂおよび９Ａ、９Ｂの様々なシステムおよび配備アーキテクチャの観点で説明しているが、ホストノード１１８のいずれかにある１つ以上の第１のプロトコルサービス１１２、ＡＣＲサービス４０５およびホストサービス１１６、中間ノード６５０、またはその他のコンピュータデバイスを組み合わせた、および／または配信する、その他任意のシステムおよび／または配備アーキテクチャを使用してもよい。
【００９７】
さらに、認証および再認証サービスを提供するためＡＣＲサービス４０５を使用する代わりに、チケットオーソリティ１０３６サービスが使用できる。チケットオーソリティ１０３６は、接続および認証目的のためのチケットを生成し有効化する。チケットは、セッション識別子およびキーを備えることができる。乱数、アプリケーションサーバ証明書、その場限りの、恒常的な、または無効な値もしくはその他任意のタイプの識別子、機密情報、またはそのような目的に使用できるセキュリティベースの情報を備えることもできる。
【００９８】
図１０Ａに示すようなクライアント１０８をホストサービス１１６に再接続するためのネットワーク通信システム１０００の実施態様において、チケットオーソリティ１０３６は、中間ノード１０３２、第１のプロトコルサービス１１２、またはホストサービス１１６ａ乃至１１６ｎのいずれかから分離したノード上で動作できる。図１０Ａは、中間ノード１０３２およびチケットオーソリティ１０３６を示すものであり、これはシステム１０００の一部として単一のコンピュータデバイスであってよい。ネットワーク１０４および１０４’に加え、システム１０００は、すべて上述の、クライアント１０８、第１のプロトコルサービス１１２、およびホストサービス１１６ａ乃至１１６ｎを含む。一実施態様において、中間ノード１０３２は、ネットワーク１０４の構成上クライアント１０８と第１のプロトコルサービス１１２との間のメッセージが通過しなければならない、例えばファイアウォールおよび／またはルータのようなセキュリティゲートウェイである。チケットオーソリティ１０３６は、例えば、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、スタンドアロンのネットワークコンポーネントとすることができる。チケットオーソリティ１０３６は、サーバ４１５上でのチケット関連サービス提供専用の特定のホストサービス１１６とすることもできる。
【００９９】
図１０Ａの実施態様に示すように、中間ノード１０３２は、クライアント１０８によって開始される接続１２０ａを受け入れ、第１のプロトコルサービス１１２による第２の接続１２０ｂを確立するように構成される。合わせて、接続１２０ａおよび第２の接続１２０ｂは、上述のように接続１２０を構成し、それらを通じて第１のプロトコルを使用してクライアント１０８および第１のプロトコルサービス１１２が通信を行う。
【０１００】
図に示すように、中間ノード１０３２はまた、チケットオーソリティ１０３６と通信を行うように構成される。一実施態様では、チケットオーソリティ１０３６は、中間ノード１０３２からの第１の再接続チケットに対する要求を受信し、その後に第１の再構成チケットを生成するように構成される。第１の再接続チケットは、例えば、大きな乱数を含むことができる。第１の再接続チケットは、クライアント１０８に、サービスの異常中断後、クライアント１０８に再度認証証明書を要求することなく自動的にホストサービスとの通信を再確立させる。
【０１０１】
第１の再接続チケット生成後、チケットオーソリティ１０３６は、中間ノード１０３２またはチケットオーソリティ１０３６へアクセスできる攻撃者が第１の再接続チケットがなくては認証証明書にアクセスできないよう、第１の再接続チケットを使用してクライアント１０８により供給された認証証明書を暗号化する。チケットオーソリティ１０３６は、クライアント１０８と中間ノード１０３２との間に確立される通信セッションを認識するため、ＳＩＤを生成することもできる。チケットオーソリティ１０３６は、暗号化した認証証明書をＳＩＤとともにメモリ内に格納し、ＳＩＤおよび第１の再接続チケットをネットワーク１０４上でクライアント１０８へ伝送する。クライアントがＳＩＤおよび第１の再接続チケットを受信すると、チケットオーソリティ１０３６はそのメモリ（図示せず）からチケットを破壊（すなわち、削除）する。
【０１０２】
別の実施態様では、チケットオーソリティ１０３６は、ハンドルを生成するように構成される。ハンドルは、例えば、第１の再接続チケットと関連する（例えば、マップされ）乱数とすることができる。一実施態様では、ハンドルは、第１の再接続チケットを形成している乱数よりも小さな乱数である。例えば、ハンドルは、３２ビット乱数としてよい。チケットオーソリティ１０３６は、第１の再接続チケットおよびハンドルを中間ノード１０３２に送信しながら、第１の再接続チケットのコピーおよびハンドルのコピーを維持する。第１の再接続チケットのコピーは、後にチケットオーソリティ１０３６が使用することができ、クライアント１０８の再接続プロセス中に、後にチケットオーソリティ１０３６にそのコピーを示す際に、元々はクライアント１０８に送信された第１の再接続チケットを検証する。一実施態様では、チケットオーソリティ１０３６は、第１のプロトコルサービス１１２に対するアドレスも維持するが、そのアドレスは、後述するように、第１の接続チケットに関連し、第１の再接続チケットの検証時に、中間ノード１０３２に送信される。
【０１０３】
一実施態様では、中間ノード１０３２は、チケットオーソリティ１０３６がそこに送信されたハンドルを使用して、チケットオーソリティ１０３６で維持された第１の接続チケットを削除するようにさらに構成される。別の実施態様では、下記のように、チケットオーソリティ１０３６は、クライアント１０８のホストサービス１１６への再接続プロセス中に、第１の再接続チケットを削除し、その後代替の第１の再接続チケットを生成するようにさらに構成される。加えて、別の実施態様では、第１の再接続チケットは、所定の時間の経過後に自動的に削除するように構成される。
【０１０４】
別の実施態様では、第１のプロトコルサービス１１２は、第１の再接続チケットなどの場合、例えば、大きな乱数を含むことができる第２の再接続チケットを生成するように構成される。第１のプロトコルサービス１１２は、第２の接続チケットをクライアント１０８に送信しながら、第２の再接続チケットのコピーおよびセッション番号を維持するようにも構成することができる。第２の再接続チケットのコピーは、後に第１のプロトコルサービス１１２が使用することができ、クライアント１０８の再接続プロセス中に、後に第１のプロトコルサービス１１２にそのコピーを示す際に、元々はクライアント１０８に送信された第２の再接続チケットを検証する。一実施態様では、第１のプロトコルサービス１１２は、中間ノード１０３２を介して第２の再接続チケットをクライアント１０８に送信する。別の実施態様では、第１のプロトコルサービス１１２は、第２の再接続チケットをクライアント１０８に直接送信する。さらに、下記にさらに詳しく説明するように、第１のプロトコルサービス１１２は、クライアント１０８のホストサービス１１６への再接続プロセス中に、第２の再接続チケットを削除し、その後代替の第２の再接続チケットを生成するようにさらに構成される。加えて、別の実施態様では、第２の再接続チケットは、所定の時間の経過後に自動的に削除するように構成される。
【０１０５】
一実施態様では、中間ノード１０３２は、第１および第２の再接続チケットに対する中間物としての機能を果たす。中間ノード１０３２は、例えば、チケットオーソリティ１０３６が生成する第１の再接続チケット、および第１のプロトコルサービス１１２が生成する第２の再接続チケットを受信する。中間ノード１０３２は、次いで第１の再接続チケットおよび第２の再接続チケットをクライアント１０８に送信することができる。さらに、クライアント１０８のホストサービス１１６への再接続プロセス中、中間ノード１０３２は、クライアント１０８から第１の再接続チケットおよび第２の再接続チケットを受け入れることができ、その後第１の再接続チケットをチケットオーソリティ１０３６に送信することができ、該当する場合は、第２の再接続チケットを第１のプロトコルサービス１１２に送信することができる。
【０１０６】
クライアント１０８とホストサービス１１６との間の第１の通信セッションが、例えば異常に終了した場合、ユーザーに自身の認証証明書を再入力するよう要求することなく新しいセッションを再確立できる。クライアント１０８およびホストサービス１１６が第２の通信セッションを再確立する際、クライアント１０８は第１および第２の再接続チケットならびにＳＩＤを中間ノード１０３２へ再伝送する。中間ノード１０３２は第１および第２の再接続チケットならびにＳＩＤをチケットオーソリティ１０３６へ伝送し、チケットオーソリティ１０３６は第１の接続のための暗号化した認証証明書を見つけ引き出すためにＳＩＤを使用し、引き出した認証証明書を解読するために第１の再接続チケットを使用する。チケットオーソリティ１０３６は次いで解読された認証証明書を有効にすることにより、クライアントを認証する。再認証後、ホストサービス１１６との第２の接続１２４を再確立するため、第２の再接続チケットは第１のプロトコルサービス１１２へ転送される。
【０１０７】
図１０Ｂに示すようなネットワーク通信システム１０００の別の実施態様において、ＡＣＲサービス４０５は、クライアント１０８をホストサービス１１６ａ乃至１１６ｎのいずれかに再接続するチケットオーソリティ１０３６の代わりに使用することができる。この実施態様において、ＡＣＲサービス４０５は、チケットオーソリティ１０３６に関して上述したのと同様のサービスを提供することができる。先に説明したように、ＡＣＲサービス４０５はクライアント通信セッションを接続および再接続するためのＳＩＤおよびキーを生成し、有効にし、管理する。ＳＩＤおよびチケットは、上述のようにチケットオーソリティ１０３６によって生成され、有効にされ、管理されるタイプのチケットのようなチケットを形成することができる。このように、別の実施態様において、チケットはセッション識別子およびキーと同義的に使用されてよい。
【０１０８】
中間ノード１０３２は、図１０Ｂに示すように、ＡＣＲサービス４０５と通信を行うように構成される。一実施態様において、ＡＣＲサービス４０５は、第１のＳＩＤおよび第１のキーのための要求を中間ノード１０３２から受信し、その後第１のＳＩＤおよび第１のキーを生成するように構成される。ＡＣＲサービス４０５は、クライアント１０８とホストサービス１１６との間の通信セッションを識別するために第１のＳＩＤを使用する。第１のＳＩＤおよび第１のキーは、サービスの異常中断の後、クライアント１０８に再び認証証明書を提供するよう要求することなくクライアント１０８にホストサービス１１６と自動的に再接続させる。
【０１０９】
第１のＳＩＤおよび第１のキーの生成後、ＡＣＲサービス４０５は、中間ノード１０３２またはＡＣＲサービス４０５へアクセスできる攻撃者が第１のキーがなくては認証証明書にアクセスできないよう、第１のキーを使用して、クライアント１０８により供給された認証証明書を暗号化する。ＡＣＲサービス４０５は次いで暗号化した認証証明書をＳＩＤとともにメモリ４３０内に格納し、第１のＳＩＤおよび第１のキーをネットワーク１０４上でクライアント１０８へ伝送する。クライアントがＳＩＤおよびキーを受信すると、ＡＣＲサービス４０５はメモリ４３０からキーを破壊（すなわち、削除）する。
【０１１０】
別の実施態様において、第１のプロトコルサービス１１２は、第２のＳＩＤおよび第２のキーを生成するよう構成される。第１のプロトコルサービス１１２は、第２のＳＩＤおよび第２のキーのコピーを維持しながら、第２のＳＩＤおよび第２のキーをクライアント１０８へ伝送するようにも構成できる。第２のＳＩＤおよび第２のキーのコピーは、後に第１のプロトコルサービス１１２によって、元来は後でクライアント１０８への再接続プロセス中に第１のプロトコルサービス１１２に提示されるクライアント１０８へ伝送された第２のＳＩＤおよび第２のキーを有効にするために使用されうる。一実施態様において、第１のプロトコルサービス１１２は第２のＳＩＤおよび第２のキーを、中間ノード１０３２を経由してクライアント１０８へ伝送する。別の実施態様において、第１のプロトコルサービス１１２は第２のＳＩＤおよび第２のキーをクライアント１０８へ直接伝送する。さらに、以下でさらに詳しく説明するように、第１のプロトコルサービス１１２は、ホストサービス１１６へのクライアント１０８の再接続プロセス中に第２のＳＩＤおよび第２のキーを削除し、その後代替の第２のＳＩＤおよび第２のキーを生成するようにさらに構成できる。また、別の実施態様において、第２のＳＩＤおよび第２のキーは、所定時間の経過後に自動削除されるように構成される。
【０１１１】
一実施態様において、中間ノード１０３２は第１および第２のＳＩＤおよびキーのための仲介としての役割を果たす。中間ノード１０３２は、例えばＡＣＲサービス４０５によって生成された第１のＳＩＤおよび第１のキーならびに第１のプロトコルサービス１１２によって生成された第２のＳＩＤおよび第２のキーを受信する。中間ノード１０３２はその後第１のＳＩＤおよび第１のキーならびにＳＩＤおよび第２のキーをクライアント１０８へ伝送する。さらに、ホストサービス１１６へのクライアント１０８の再接続プロセス中、中間ノード１０３２はクライアント１０８から第１のＳＩＤおよび第１のキーならびに第２のＳＩＤおよび第２のキーを受け取り、その後第１のＳＩＤおよび第１のキーをＡＣＲサービス４０５へ、また適切な場合、第２のＳＩＤおよび第２のキーを第１のプロトコルサービス１１２へ伝送することができる。
【０１１２】
クライアント１０８とホストサービス１１６との間の第１の通信セッションが、例えば異常に終了した場合、ユーザーに自身の認証証明書を再入力するように要求することなく新しいセッションを再確立できる。クライアント１０８およびホストサービス１１６が第２の通信セッションを再確立する際、クライアント１０８は第１および第２のＳＩＤおよびキーを中間ノード１０３２へ再伝送する。中間ノード１０３２は第１のＳＩＤおよび第１のキーをＡＣＲサービス４０５へ伝送し、ＡＣＲサービス４０５は、第１の接続のための暗号化した認証証明書を見つけ引き出すためにＳＩＤを使用し、引き出した認証証明書を解読するために第１のキーを使用する。
【０１１３】
ＡＣＲサービス４０５はその後、解読された認証証明書を有効にすることによりクライアントを認証する。再認証後、第２のＳＩＤおよび第２のキーは、ホストサービス１１６との第２の接続１２４を再確立するため、第１のプロトコルサービス１１２へ転送される。
【０１１４】
図１１Ａを参照すると、ネットワーク通信のためのシステム１１００の別の実施態様は、上述のように、ネットワーク１０４および１０４’と、クライアント１０８と、第１のプロトコルサービス１１２と、ホストサービス１１６と、中間ノード１０３２と、チケットオーソリティ１０３６とを含み、さらに、一実施態様においてクライアント１０８をホストサービス１１６に最初に接続するためにどちらも使用される、第１の計算ノード１１４０および第２の計算ノード１４４を示す。さらに、図１１Ａの実施態様では、クライアント１０８は、例えば、Ｍｉｃｒｏｓｏｆｔ社（Ｒｅｄｍｏｎｄ、ＷＡ）製のＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲなどのような、ワールドワイドウェブに接続するためのウェブブラウザ１４８をさらに含む。
【０１１５】
一実施態様では（図示せず）、システム１１００は、２つ以上の中間ノード１０３２および／または２つ以上の第１のプロトコルサービス１１２を含む。クライアント１０８と第１のプロトコルサービス１１２との間のメッセージが通過すべき中間ノード１０３２および／または第１のプロトコルサービス１１２は、例えばロードバランシング式に基づいてそれぞれ選択することができる。
【０１１６】
第１の計算ノード１１４０および第２の計算ノード１１４４のそれぞれは、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、いずれのコンピュータとすることができる。例えば、一実施態様では、第１の計算ノード１１４０は、１つ以上のウェブサイトを提供するウェブサーバである。別の実施態様では、第２の計算ノード１１４４は、ＸＭＬサービスあるいはウェブサービスを提供する。
【０１１７】
一実施態様では、クライアント１０８およびネットワーク１０４は、外部ネットワーク１１５２を形成するが、破線で示される第１のファイアウォール１１５６によってシステム１１００の他の部分から切り離される。中間ノード１０３２および第１の計算ノード１１４０は、「非武装地帯」１１６０（すなわち、会社のプライベートネットワークとパブリックネットワークとの間に配置されるネットワーク領域）内に置くことができ、同様に破線で示される第１のファイアウォール１１５６および第２のファイアウォール１１６４によってシステム１１００の他の部分から切り離される。次いで、図に示すように、ネットワーク１０４’、第１のプロトコルサービス１１２、ホストサービス１１６ａ乃至１１６ｎ、チケットオーソリティ１０３６、および、第２の計算ノード１１４４は、内部ネットワーク１１６８を形成するが、第２のファイアウォール１１６４によってシステム１１００の他の部分から切り離される。
【０１１８】
あるいは、図１１Ａには示していない別の実施態様では、システム１１００は、非武装地帯１１６０内でネットワーク１０４と中間ノード１０３２との間に配置される第３の計算ノード１１４６をさらに含む。第３の計算ノード１１４６は、ネットワーク化された通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、いずれのコンピュータとすることができる。下記のように、第３の計算ノード１１４６は、一部の実施態様では、クライアント１０８のホストサービス１１６への最初の接続プロセス中、および／またはクライアント１０８のホストサービス１１６への再接続プロセス中に使用する。より具体的には、下記のように、システム１１００が２つ以上の中間ノード１０３２を含む際には、第３の計算ノード１１４６は、例えばロードバランシング式に基づいて、クライアント１０８のクライアントエージェント１２８と第１のプロトコルサービス１１２との間の通信が通過すべき中間ノード１０３２を選択することができる。
【０１１９】
さらに、図１１Ａを参照すると、中間ノード１０３２は、別の実施態様では、２つ以上のレベル「ａ」乃至「ｎ」の中間ノード１０３２に置換することができる。図示するように、各レベル「ａ」乃至「ｎ」は、２つ以上の中間ノード１０３２ａ乃至１０３２ｎを含むことができる。下記のように、クライアント１０８のクライアントエージェント１２８は、例えばロードバランシング式に基づいて、中間ノード１０３２のいずれの組み合わせを介して送ることができる。例えば、図示するように、クライアントエージェント１２８は、接続１２０を介して中間ノード１０３２を介して送ることができる。当業者にとって容易に明らかなように、他の構成のシステム１１００も可能である。
【０１２０】
再び図１１Ａを参照すると、一実施態様では、ウェブブラウザ１１４８は、ネットワーク１０４を通じて第１の計算ノード１１４０と通信を行うが、これ自身が第２の計算ノード１１４４およびチケットオーソリティ１０３６と接続する。より具体的には、第１の計算ノード１１４０は、第２の計算ノード１１４４およびチケットオーソリティ１０３６のアドレスによって構成される。一実施態様では、下記にさらに説明するように、第１の計算ノード１１４０は、クライアント１０８のウェブブラウザ１１４８と、第２の計算ノード１１４４と、チケットオーソリティ１０３６との間の情報を中継し、それによってそれらの直接的な通信を防ぐように構成される。このような直接的な通信を防ぐことによって、第１の計算ノード１４０は、システム１１００に更なるレベルのセキュリティを付加する。第１の計算ノード１１４０は、中間ノード１０３２のアドレス、または代わりに、２つ以上の中間ノード１０３２のアドレスによって構成することもできる。
【０１２１】
第２の計算ノード１１４４は、その役割として、ホストサービス１１６上で実行するどのアプリケーションプログラムをクライアント１０８のユーザーが利用できるのかを判断するように構成される。すなわち、第２の計算ノード１１４４は、ユーザーがアクセスを許可されたのはどのアプリケーションプログラムなのかを判断する。一実施態様では、ユーザーが自身の所望のアプリケーションプログラムを選択した後、さらに下記のように、第２の計算ノード１１４４は、ロードバランシングのためにユーザーの所望のアプリケーションを実行するために、どのホストサービス１１６を使用するのかを判断するように構成される。第２の計算ノード１１４４は、そのホストサービス１１６のアドレスを第１の計算ノード１１４０に返す。第２の計算ノード１１４４は、ロードバランシング式を使用して複数の第１のプロトコルサービス１１２の中からも選択される、第１のプロトコルサービス１１２のアドレスも第１の計算ノード１１４０に返す。次に、第１の計算ノード１１４０は、選択した第１のプロトコルサービス１１２および選択したホストサービス１１６のアドレスをチケットオーソリティ１０３６に送信する。
【０１２２】
チケットオーソリティ１０３６は、その役割として、接続チケットを生成する。一実施態様では、チケットオーソリティ１０３６は、クライアント１０８への送信に対する最初の接続チケットを第１の計算コード１１４０に送信する。別の実施態様では、チケットオーソリティは、第１の再接続チケットを中間ノード１０３２に送信する。
【０１２３】
図１１Ｂに示されるようなネットワーク通信システム１１００の別の実施態様において、ＡＣＲサービス４０５は、クライアント１０８をホストサービス１１６に再接続するチケットオーソリティ１０３６の代わりに使用することができる。チケットオーソリティ１０３６と同様にチケットを使用する代わりに、ＡＣＲサービス４０５は、クライアント通信セッションを接続および再接続するためのＳＩＤおよびキーを生成し、有効にし、管理する。ＡＣＲサービス４０５は、クライアント１０８に関連するＳＩＤおよびキー、またはチケットを使用し、ホストサービス１１６またはサーバ４１５に対してクライアントを認証および再認証する。前述のように、チケットはＳＩＤとキーの組み合わせを参照することができ、またチケットはＳＩＤおよびキーを備えることができる。
【０１２４】
図１１Ｂのシステム１１００は、上述のように、ネットワーク１０４および１０４’、クライアント１０８、第１のプロトコルサービス１１２、ホストサービス１１６、中間ノード１０３２、およびＡＣＲサービス４０５を含み、第１の計算ノード１１４０および第２の計算ノード１１４４をさらに描写したものであり、その両方がホストサービス１１６にクライアント１０８を最初に接続するための一実施態様において使用される。さらに、クライアント１０８は、ワールドワイドウェブに接続するためのウェブブラウザ１４８をさらに含む。
【０１２５】
一実施態様（図示せず）において、システム１１００は、２つ以上の中間ノード１０３２および／または２つ以上の第１のプロトコルサービス１１２または２つ以上のＡＣＲサービス４０５を含む。それを介してクライアント１０８と第１のプロトコルサービス１１２との間のメッセージが通過しなければならない中間ノード１０３２、および／または第１のプロトコルサービス１１２および／またはＡＣＲサービス４０５は、以下に説明するように、例えばロードバランシング式に基づいてそれぞれ選択することができる。
【０１２６】
別の実施態様において、図１１Ｂのシステム１１００は、同様に内部ネットワーク１１６８から第２のファイアウォール１１６４によって分離された第１のファイアウォール１１５６によって、「非武装地帯」１１６０から分離された外部ネットワーク１１５２を含んでよい。本発明を図１１Ａおよび１１Ｂにおける様々なネットワークの観点から上記で説明したが、例えば、内部ネットワーク、外部ネットワーク、サブネットワーク、イントラネット、ファイアウォール、セキュリティゾーン、単一サーバ、サーバネットワークまたはサーバファームの組み合わせを含むトポロジーのような、その他任意のネットワークトポロジーを使用することができる。
【０１２７】
あるいは、図１１Ｂに示されていない別の実施態様において、システム１１００は、非武装地帯１１６０内でネットワーク１０４と中間ノード１０３２との間に配置される第３の計算ノード１１４６をさらに含む。第３の計算ノード１１４６は、一部の実施態様において、ホストサービス１１６へのクライアント１０８の最初の接続プロセス中、またはホストサービス１１６へのクライアント１０８の再接続プロセス中に使用される。
【０１２８】
図１１Ｂにおけるシステム１１００の別の実施態様において、中間のノード１０３２は、２つ以上のレベル「ａ」乃至「ｎ」の中間ノード１０３２ａ乃至１０３２ｎに置換することができる。クライアント１０８のクライアントエージェント１２８は、例えばロードバランシング式に基づいて、中間ノード１０３２のいずれかの組み合わせを介して送ることができる。
【０１２９】
一実施態様において、ウェブブラウザ１１４８は第１の計算ノード１１４４によるネットワーク１０４を通じて通信を行うが、それ自体が第２の計算ノード１１４４およびＡＣＲサービス４０５と接続する。第１の計算ノード１１４０には、第２の計算ノード１１４４およびＡＣＲサービス４０５のタイムアドレスによって構成される。システム１１００におけるセキュリティの追加レベルを提供する別の実施態様において、第１の計算ノード１１４０は、クライアント１０８のウェブブラウザ１１４８と第２の計算ノード１１４４と、ＡＣＲサービス４０５の間の情報を中継し、それによってそれらの直接的な通信を防ぐように構成される。第１の計算ノード１１４０は、中間ノード１０３２ａ乃至１０３２ｎのいずれかのアドレスによって構成することもできる。
【０１３０】
その部分に関して、第２の計算ノード１１４４は、ホストサービス１１６上で実行するどのアプリケーションプログラムをクライアント１０８が利用できるのかを判断し、ユーザーによって選択されたホストサービス１１６のアドレスを第１の計算ノード１１４０に提供するように構成されている。第２の計算ノード１１４４は、ロードバランシング式の使用により、複数の第１のプロトコルサービス１１２のうち１つの第１の計算ノード１１４０に対するアドレスも提供する。同様に、第１の計算ノード１１４０は、選択した第１のプロトコルサービス１１２および選択したホストサービス１１６をＡＣＲサービス４０５へ伝送する。
【０１３１】
その部分に関して、ＡＣＲサービス４０５は、本願明細書に開示されるようなクライアントのホストサービス１１６またはサーバ４１５との通信セッションを再確立するための認証および再認証サービスを提供するために、接続ＳＩＤおよびキーを生成し、有効にし、管理する。一実施態様において、ＡＣＲサービス４０５は、クライアント１０８への伝送のために第１のＳＩＤおよび第１のキーを第１の計算ノード１１４０へ伝送する。別の実施態様において、ＡＣＲサービス４０５は、第１のＳＩＤおよび第１のキーを中間ノード１０３２の１つへ伝送する。
【０１３２】
別の局面において、本発明は、ネットワーク通信および第１のプロトコル内でカプセル化された複数の第２のプロトコルを使用してクライアント１０８をホストサービス１１６に再接続するための方法に関する。前記方法は、第１のプロトコルを使用し第１のプロトコル内でカプセル化された複数の第２のプロトコルを介してクライアント１０８と第１のプロトコルサービス１１２との間で通信を行うことによって、クライアント１０８と第１のプロトコルサービス１１２との間の第１の接続を確立するステップを含む。さらに、第２のプロトコルのうち少なくとも１つは複数の仮想チャネルを含む。
【０１３３】
本発明のこの局面の一実施態様において、第２の接続は、第２のプロトコルのうち１つを使用して、第１のプロトコル１１２とホストサービス１１６との間に確立される。第１のプロトコルサービス１１２とホストサービス１１６との間の通信は、第２のプロトコルのうち１つを介して発生する。特に、複数の第２の接続はそれぞれ第１のプロトコルサービス１１２と異なるホストサービス１１６との間に確立され、複数の第２の接続のそれぞれは複数の第２のプロトコルのそれぞれを使用して確立される。さらに別の実施態様において、クライアント１０８と第１のプロトコルサービス１１６との間の第１の接続は、１つ以上の中間ノード１０３２によって確立される。
【０１３４】
図１２Ａを参照して、ネットワークの失敗後にクライアントをホストサービスに再接続する方法１２００の一実施態様を示す。ステップ１２０４で、クライアント１０８は、例えば、複数のホストサービス１１６の１つに接続する。概して、クライアント１０８は、通信セッションを開始するため、認証証明書をホストサービス１１６へ伝送するよう要求される。クライアント１０８のホストサービス１１６への接続後、クライアント１０８およびホストサービス１１６は、第１のプロトコルサービス１１２を介して、およびステップ１２０８で、図２Ａ乃至２Ｂ、および図３を参照して上述したように、第１のプロトコル内にカプセル化された複数の第２のプロトコルを介して通信を行う。一実施態様では、第１のプロトコルサービス１１２は、いずれの第１のプロトコルパケットの送信前に、通信を第１のプロトコル２０４のレベルで暗号化し、それによって通信を保護する。別の実施態様では、第１のプロトコルサービス１１２は、いずれの第１のプロトコルパケットの送信前に、通信を第１のプロトコルのレベルで圧縮し、それによって通信効率を改善する。
【０１３５】
ステップ１２１２で、クライアントエージェント１２８は、クライアントエージェント１２８と第１のプロトコルサービス１１２との間の接続１２０が失敗したかどうかを判断する。例えば、クライアントエージェント１２８と中間ノード１０３２との間の接続１２０ａが失敗した、中間ノード１０３２と第１のプロトコルサービス１１２との間の接続１２０ｂが失敗した、あるいは接続１２０ａおよび１２０ｂの両方が失敗したという可能性がある。クライアントエージェント１２８が、接続１２０は失敗しなかったと判断した場合は、方法１２００はステップ１２２０へ進む。一方で、クライアントエージェント１２８が、接続１２０は失敗したと判断した場合は、ステップ１２１６で、クライアント１０８にホストサービス１１６への信頼できる接続を提供し、ホストサービス１１６に再接続する。
【０１３６】
第１の通信セッションが異常終了した後、ステップ１２１６において再接続するステップは、システム１１００にチケットオーソリティ１０３６およびＳＩＤならびに第１および第２の再接続チケットを中間ノード１０３２へ伝送するクライアント１０８を配備するステップを含むことができる。中間ノード１０３２は、クライアント１０８を認証しクライアント１０８と中間ノード１０３２との間の接続１２０を再確立するため、第１の再接続チケットを使用する。中間ノード１０３２は次いで第２の再接続チケットを第１のプロトコルサービス１１２へ伝送し、そこではホストサービス１１６への接続１２４の再確立を認証するために第２の再接続チケットを使用する。再接続チケットは従って、認証証明書を２度再伝送することなくクライアント１０８にホストサービス１１６への第２の通信セッションを自動的に確立させる。
【０１３７】
別の実施態様において、ステップ１２１６の再接続するステップは、ＡＣＲサービス４０５を配備するシステム１１００を備えることもできる。そのような実施態様において、クライアント１０８は、クライアント１０８を認証しクライアント１０８のホストサービス１１６への接続を再確立するため、第１のＳＩＤおよび第１のキーを中間ノード１０３２へ伝送する。
【０１３８】
ステップ１２２０では、クライアント１０８がプロトコルサービス１１２との接続１２０を、そして結果的にホストサービス１１６ａ乃至１１６ｎとの接続１２４ａ乃至１２４ｎを完全に完了することを望んでいるかどうかを判断する。望んでいない場合には、ステップ１２０８で、第１のプロトコル内にカプセル化された複数の第２のプロトコルを介して、クライアント１０８と第１のプロトコルサービス１１２との間の通信を継続する。望んでいる場合は、次いでステップ１２２４で、すべての接続１２０ａ、１２０ｂ、および１２４ａ乃至１２４ｎを中断し、すべての再接続チケットを削除する。ＡＣＲサービス４０５を使用する別の実施態様において、ステップ１２２４で、すべての接続１２０ａ、１２０ｂ、および１２４ａ乃至１２４ｎは切断されすべてのＳＩＤおよびキーは削除される。一実施態様では、中間ノード１０３２は、チケットオーソリティ１０３６から受信したハンドルを使用して、チケットオーソリティ１０３６に保存された第１の再接続チケットのコピーを削除する。チケットオーソリティ１０３６を配備する別の実施態様において、第１のプロトコルサービス１１２は、第１のプロトコルサービス１１２で維持されていた第２の再接続チケットのコピーを削除する。ＡＣＲサービス４０５を配備するさらに別の実施態様において、第１のプロトコルサービス１１２は、第１のプロトコルサービス１１２で維持されていた第２のＳＩＤおよび第２のキーのコピーを削除する。
【０１３９】
チケットオーソリティ１０３６を使用する、更なる実施態様では、何らかの理由で第２のプロトコル接続１２４が失敗した場合、関連する第１のプロトコルサービス１１２で保存された第２の再接続チケットのコピーを第１のプロトコルサービス１１２によって削除する。さらに別の実施態様では、第１の再接続チケットおよび／または第２の再接続チケットは、ステップ１２１２でのように、接続１２０における失敗に続いて、および／またはステップ１２２０でのように、接続１２０の完全な終了に続いて、所定の時間の経過後に自動的に削除される。
【０１４０】
別の局面において、本発明は、ＡＣＲサービス４０５を使用してクライアント１０８をホストサービス１１６に再接続するための方法に関する。ここで図１２Ｂを参照して、クライアント１０８をホストサービス１１６に再接続するための方法１２１６の一実施態様を説明する。クライアント１０８は、第１のＳＩＤおよび第１のキーをＡＣＲサービス４０５へ伝送し、ホストサービスへ再接続する（ステップ１２５５）。ＡＣＲサービス４０５は、暗号化した認証証明書を見つけ引き出すためにＳＩＤを使用し（ステップ１２５８）、引き出した認証証明書を解読するためにキーを使用する（ステップ１２６０）。一実施態様（図示せず）において、ＡＣＲサービス４０５は、保持した第１のプロトコルサービス１１３とホストサービス１１６との間のセッションに対してクライアント１０８を再認証するために、解読した認証証明書を使用する。再認証後、クライアント１０８の第１のプロトコルサービス１１６に対して再確立された接続は、第１のプロトコルサービス１１２とホストサービス１１６との間の保持したセッションに再リンクされる。
【０１４１】
別の実施態様において、第２の通信セッション中に、ＡＣＲサービス４０５は認証証明書のための第２のキーを生成し（ステップ１２７０）、次いでその認証証明書を第２のキーを使用して暗号化する（ステップ１２７５）。ＡＣＲサービス４０５は第２のＳＩＤを作成する（ステップ１２８０）。次いで解読された認証証明書がホストサービス１１６で再認証され、第２のＳＩＤが保持したホストサービス１１６との通信セッションと関連付けられる（ステップ１２８０ａ）。ＡＣＲサービス４０５は次いで第２のＳＩＤおよび第２のキーをクライアント１０８へ伝送する（ステップ１２８５）。一実施態様において、ＡＣＲサービス４０５は中間ノード１０３２を通じて第２のＳＩＤおよび第２のキーを伝送することができる。クライアント１０８は第２のＳＩＤおよび第２のキーを格納する（ステップ１２９０）。ＡＣＲサービス４０５は次いで第２のキーを削除する（ステップ１２９５）。
【０１４２】
図１３Ａ乃至１３Ｃを参照して、ＡＣＲサービス４０５を使用したクライアント１０８のホストサービス１１６への最初の接続のための方法１３００の一実施態様を示す。ステップ１３０４で、クライアント１０８は、ブラウザ１４８を使用して、例えばＨＴＴＰリクエストなどのような、リクエストを第１の計算ノード１１４０に送信する。第１の計算ノード１１４０は、認証情報（例えば、ユーザー名およびパスワード）を要求する、例えばＨＴＭＬフォームなどのようなウェブページを返す。クライアント１０８のユーザーは、自分の認証を入力して完了したフォームを第１の計算ノード１１４０に送信する。
【０１４３】
ステップ１３０８で、第１の計算ノード１１４０は、次いでクライアント１０８のユーザーに実行可能なアプリケーションを通知する。一実施態様では、第１の計算ノード１１４０は、ユーザーの認証をログインページから取り出し、第２の計算ノード１１４４に対しユーザーが利用可能なアプリケーションを列挙するよう求める要求とともに、その認証を第２の計算ノード１１４４に送信する。ユーザーの認証に基づいて、第２の計算ノード１１４４は、ユーザーが利用可能な特定のアプリケーションのリストを第１の計算ノード１１４０に返し、次いでそのリストは、例えばウェブページの形態で、クライアント１０８のユーザーに転送される。
【０１４４】
ステップ１３１２で、ユーザーは、所望のアプリケーションと、そのアプリケーションを第１の計算ノード１１４０に送信する要求を選択する。例えば、一実施態様では、ユーザーは、第１の計算ノード１１４０がユーザーに示すウェブページにリストされた所望のアプリケーションと、そのアプリケーションを第１の計算ノード１１４０に転送するＨＴＴＰ要求をクリックする。その要求は、第１の計算ノード１４０によって処理され、第２の計算ノード１１４４に転送される。
【０１４５】
ステップ１３１６で、第２の計算ノード１４４は、要求したアプリケーションを実行するホストサービス１１６を判断する。第２の計算ノード１１４４は、例えば、ロードバランシング式に基づいてその決定を行うことができる。一実施態様では、第２の計算ノード１１４４は、接続１２４を介してホストサービス１１６と通信を行うために使用する複数の第１のプロトコルサービス１１２の中から第１のプロトコルサービス１１２も判断する。また、第２の計算ノード１１４４は、例えば、ロードバランシング式に基づいてその決定を行うことができる。第２の計算ノード１１４４は、選択したホストサービス１１６および選択した第１のプロトコルサービス１１２のアドレスを第１の計算ノード１１４０に返す。
【０１４６】
ステップ１３２０で、クライアント１０８には、次いで最初の接続セッションＩＤおよびキー、第１のＳＩＤ、および第１のキーと、中間ノード１０３２（下記のように、その実際のアドレスか、またはその仮想アドレスである）のためのアドレスが提供される。一実施態様では、第１の計算ノード１１４０は、最初の接続セッションＩＤおよびキーの要求とともに、選択したホストサービス１１６および選択した第１のプロトコルサービス１１２のアドレスをＡＣＲサービス４０５に提供する。ＡＣＲサービス４０５は、最初のセッションＩＤおよびキーを生成し、このセッションＩＤおよびキーを第１の計算ノード１１４０に送信しながら、自身のためのコピーを保存する。
【０１４７】
一実施態様において中間ノード１０３２の実際のアドレスによって構成される第１の計算ノード１１４０は、次いで中間ノード１０３２の実際のアドレスおよび最初の接続セッションＩＤおよびキーをクライアント１０８のブラウザ１１４８に送信する。第１の計算ノード１１４０は、例えば、中間ノード１０３２の実際のアドレスおよび最初の接続チケットを含むファイルをまず作成し、次いでそのファイルをクライアント１０８のブラウザ１１４８に送信することができる。随意的に、別の実施態様では、第１の計算ノード１１４０は、２つ以上の中間ノード１０３２の実際のアドレスによって構成される。このような実施態様では、第１の計算ノード１１４０は、クライアント１０８と第１のプロトコルサービス１１２との間のメッセージが通過すべき中間ノード１０３２を判断する。第１の計算ノード１１４０は、次いでその選択した中間ノード１０３２の実際のアドレスおよび最初の接続チケットを、例えば、上述のファイルを使用して、クライアント１０８のブラウザ１１４８に送信する。一実施態様では、第１の計算ノード１１４０は、ロードバランシング式を使用して中間ノード１０３２を選択する。次いでクライアント１０８のクライアントエージェント１２８が起動され、中間ノード１０３２のアドレスを使用して、ステップ１３２４で、クライアント１０８のクライアントエージェント１２８と中間ノード１０３２との間の第１のプロトコル接続１２０ａを確立する。
【０１４８】
あるいは、別の実施態様では、第１の計算ノード１１４０は、中間ノード１０３２の仮想アドレスとしての機能を果たす第３の計算ノード１１４６の実際のアドレスによって構成される。このような実施態様では、ステップ１３２０で、第１の計算ノード１１４０は、第３の計算ノード１１４６の実際のアドレスおよび最初の接続セッションＩＤおよびキーを、例えば、上述のファイルを使用して、クライアント１０８のブラウザ１１４８に送信する。次いでクライアント１０８のクライアントエージェント１２８が起動され、第３の計算ノード１１４６の実際のアドレスを使用して、ステップ１３２４で、クライアント１０８のクライアントエージェント１２８と第３の計算ノード１１４６との間の第１のプロトコル接続を確立する。第３の計算ノード１１４６は、次いで、クライアント１０８と第１のプロトコルサービス１１２との間のメッセージが通過すべき中間ノード１０３２を判断する。一実施態様では、第３の計算ノード１１４６は、ロードバランシング式を使用して中間ノード１０３２を選択する。中間ノード１０３２を選択すると、第３の計算ノード１１４６は、中間ノード１０３２に対する第１のプロトコル接続を確立する。その結果、第３の計算ノード１１４６を介して、第１のプロトコル接続１２０ａが、クライアント１０８のクライアントエージェント１２８と中間ノード１０３２との間に存在する。したがって、第３の計算ノード１１４６の実際のアドレスは、中間ノード１０３２の実際のアドレスにマップされる。その結果、クライアント１０８のクライアントエージェント１２８に対して、第３の計算ノード１４６の実際のアドレスが中間ノード１０３２の仮想アドレスとしての機能を果たす。
【０１４９】
一実施態様では、２つ以上のレベルの中間ノード１０３２ａ乃至１０３２ｎが存在する際には、上述のように、第１の計算ノード１１４０または第３の計算ノード１１４６はそれぞれ、クライアントエージェント１２８がレベル「ａ」で接続する中間ノード１０３２だけを選択する。このような実施態様では、各々のレベル「ａ」乃至「ｎ−１」で、クライアントエージェント１２８がレベルで送られる中間ノード１０３２は、その後、例えばロードバランシング式に基づいて、次のレベルで接続する中間ノード１３２を判断する。あるいは、他の実施態様では、第１の計算ノード１１４０または第３の計算ノード１４６はそれぞれ、２つ以上またはすべてのレベル「ａ」乃至「ｎ」に対して、クライアントエージェント１２８が送られる中間ノード１０３２を選択する。
【０１５０】
クライアント１０８のクライアントエージェント１２８と中間ノード１０３２との間の第１のプロトコル接続１２０ａ、例えば、レベル「ｎ」の中間ノード１０３２（以下、方法１３００において中間ノード１０３２と称する）を確立すると、次いでクライアントエージェント１２８は、最初の接続チケットを中間ノード１０３２に送信する。
【０１５１】
次いで、ステップ１３２８で、最初の接続セッションＩＤおよびキーが有効かどうかを判断する。一実施態様では、中間ノード１０３２は、検証のために最初の接続ＳＩＤおよびキーをＡＣＲサービス４０５に送信する。一実施態様では、ＡＣＲサービス４０５は、ステップ１３２０で保存したＳＩＤおよび暗号化した認証証明書と比較することによって、ＳＩＤおよびキーを検証する。ＡＣＲサービス４０５がＳＩＤおよびキーを有効であると判断した場合、ステップ１３３２で、ＡＣＲサービス４０５は、第１のプロトコルサービス１１２のアドレスおよび選択したホストサービス１１６のアドレスを中間ノード１０３２に送信する。第１のプロトコルサービス１１２は、前記ＳＩＤおよびキー、およびそのコピーを削除することもできる。一方で、ＡＣＲサービス４０５がＳＩＤおよびキーを無効であると判断した場合、ステップ１３３０で、クライアント１０８は、第１のプロトコルサービス１１２への接続を拒否し、結果的に、ホストサービス１１６に接続する。
【０１５２】
ステップ１３３２に続いて、中間ノード１０３２は、選択した第１のプロトコルサービス１１２のアドレスを使用して、ステップ１３３６で、中間ノード１０３２と第１のプロトコルサービス１１２との間の第１のプロトコル接続１２０ｂを確立する。したがってここでは、中間ノード１０３２を介して、クライアント１０８のクライアントエージェント１２８と第１のプロトコルサービス１１２との間に、第１のプロトコル接続１２０が存在する。中間ノード１０３２は、選択したホストサービス１１６のアドレスを第１のプロトコルサービス１１２に渡すこともできる。
【０１５３】
一実施態様では、ステップ１３４０で、第１のプロトコルサービス１１２は、選択したホストサービス１１６のアドレスを使用して、第１のプロトコルサービス１１２と選択したホストサービス１１６との間の第２のプロトコル接続１２４を確立する。例えば、選択したホストサービス１１６は実際にホストサービス１１６ａであり、第２のプロトコル接続１２４ａが第１のプロトコルサービス１１２とホストサービス１１６ｂとの間に確立される。
【０１５４】
一実施態様では、ステップ１３４０に続いてステップ１３４４で、ユーザーは実行する第２のアプリケーションを選択し、ステップ１３４８で、第２の計算ノード１１４４は第２のアプリケーションが実行されるホストサービス１１６を判断する。例えば、ロードバランシング式を計算することによって、第２の計算ノード１１４４は、第２のアプリケーションプログラムを実行するためにホストサービス１１６ｂを選択することが可能である。第２の計算ノード１１４４は、次いで選択したホストサービス１１６ｂのアドレスを第１のプロトコルサービス１１２に送信する。一実施態様では、第２の計算ノード１１４４は、第１のプロトコルサービス１１２をによる直接的な通信状態にあり、そこにアドレスを直接送信する。別の実施態様では、選択したホストサービス１１６ｂのアドレスは、第１のプロトコルサービス１１２に間接的に送信される。例えば、第１の計算ノード１１４０、ＡＣＲサービス４０５、中間ノード１０３２、および第１のプロトコルサービス１１２のいずれの組み合わせを介して第１のプロトコルサービス１１２にアドレスを送信することができる。選択したホストサービス１１６ｂのアドレスを受信すると、第１のプロトコルサービス１１２は、ステップ１３５２で、第１のプロトコルサービス１１２と選択したホストサービス１１６ｂとの間の第２のプロトコル接続１２４ｂを確立する。
【０１５５】
ステップ１３４４、１３４８、および１３５２は、多数回繰り返すことができる。このように、多数のアプリケーションプログラムを多数のホストサービス１１６ａ乃至１１６ｎ上で実行することができ、その出力は、多数の第２のプロトコルを使用して接続１２４ａ乃至１２４ｎを通じて第１のプロトコルサービス１１２へ通信を行うことができる。
【０１５６】
ステップ１３５６では、第１のプロトコルサービス１１２は、上述のように、第１のプロトコル内に複数の第２のプロトコルをカプセル化することができる。このように、クライアント１０８は、複数のホストサービス１１６に接続され、同時にそれらと通信を行う。
【０１５７】
別の実施態様では、ステップ１３４４、１３４８、および１３５２を行う前に、例えば、ホストサービス１１６ｂなどのようなホストサービス１１６上で新しいアプリケーションプログラムを実行するために、クライアント１０８のユーザーは、例えば、ホストサービス１１６ａ上で実行しているアプリケーションプログラムなどのような、別のアプリケーションプログラムの実行を終了する。そのような場合、第１のプロトコルサービス１１２は、第１のプロトコルサービス１１２とホストサービス１１６ａとの間の接続１２４ａを中断させる。次いで第１のプロトコルサービス１１２は、ステップ１３４４、１３４８、および１３５２を実行して、クライアント１０８と第１のプロトコルサービス１１２との間の接続１２０を中断せずに、第１のプロトコルサービス１１２とホストサービス１１６ｂとの間の接続１２４ｂを確立する。
【０１５８】
一実施態様では、第１のＳＩＤおよびキーは、ステップ１３６０で生成される。例えば、中間ノード１０３２は、ＡＣＲサービス４０５から第１のＳＩＤおよびキーを要求する。その要求を受信すると、ＡＣＲサービス４０５は、第１のＳＩＤおよびキーを生成し、例えば乱数であるハンドルも生成することができる。次いでＡＣＲサービス４０５は、ステップ１３６４で、第１のＳＩＤおよびキー、およびハンドルを中間ノード１０３２に送信し、一方で、第１のＳＩＤおよびキーのコピーおよびハンドルのコピーを保存することができる。ＡＣＲサービス４０５は、ステップ１３２０で第１の計算ノード１１４０によってそこに送信された第１のプロトコルサービス１１２のアドレスの維持を継続する。次いで中間ノード１０３２は、ステップ１３６８で、第１の再接続チケットをクライアント１０８に送信する。
【０１５９】
ステップ１３７２では、次いで第２のＳＩＤおよびキーを生成する。一実施態様では、第１のプロトコルサービス１１２は、第２のＳＩＤおよびキーを生成する。次いで第１のプロトコルサービス１１２は、ステップ１３７６で、中間ノード１０３２を介して第２のＳＩＤおよびキーをクライアント１０８に送信する。この際、第１のプロトコルサービス１１２は、接続１２０の中断に続いて再接続されるセッションを識別するために、キーのコピーおよびそれらに関連するセッション番号を保存する。一実施態様では、例えば、第１のプロトコルサービス１１２は、特定のセッション番号に対して、そのセッション番号に関連する第２のプロトコル接続１２４ａ乃至１２４ｎをリストしたテーブルを維持する。したがって、第１のプロトコルサービス１１２での第１のプロトコル接続１２０の再確立および第２のＳＩＤおよびキーの検証に続けて、下記のように、第１のプロトコルサービス１１２は、クライアント１０８への通信のために、再確立された第１のプロトコル接続１２０内にカプセル化された第２のプロトコル接続１２４を識別することができる。
【０１６０】
図１３Ａ乃至１３Ｃに示されていない実施態様において、チケットオーソリティ１１３６は、ＡＣＲサービス４０５の代わりにホストサービス１１６へのクライアント１０８の再接続を提供するために使用されることができる。方法１３００において、チケットオーソリティ１３２６は、ＡＣＲ４０５と同様にＳＩＤおよびキーの代わりに再接続チケットを生成し伝送するであろう。例えば、ステップ１３２０において、チケットオーソリティ１０３６はクライアント１０８に最初の接続チケットおよび中間ノード１０３２のアドレスを提供するであろう。また、ステップ１３２８において、チケットオーソリティ１０３６は最初の接続チケットが有効か否かを判断し、ステップ１３６０において第１の再接続チケットを生成するであろう。また、ステップ１３６４、１３６８、１３７２、および１３７８において、チケットオーソリティは方法１３００に関連する第１および第２の再接続チケットを生成し伝送するであろう。このように、チケットオーソリティ１０３６はホストサービス１１６へのクライアント１０８の再接続を容易にした。
【０１６１】
以下、図１４を参照して、（例えば、図１２Ａのステップ１２１６で）クライアント１０８に１つ以上のホストサービス１１６への持続的で信頼できる接続を提供し、クライアント１０８をホストサービス１１６へ再接続する方法１４００の一実施態様を示す。特に、ステップ１４０４で、第１のプロトコルサービス１１２と１つ以上のホストサービス１１６のそれぞれとの間の第２のプロトコル接続１２４を維持する。さらに、ステップ１４０８で、例えば、図１２のステップ１２１６で中断していると判断された接続１２０を介して、クライアント１０８のクライアントエージェント１２８と第１のプロトコルサービス１１２との間の直近に送信されたデータパケットのキューを維持する。一実施態様では、データパケットは、接続１２０の前でも失敗時でもキューに入れられ維持される。キューに入れたデータパケットは、例えば、クライアントエージェント１２８によってバッファ内に維持することができる。あるいは、第１のプロトコルサービス１１２は、キューに入れたデータパケットをバッファ内に維持することができる。さらに別の実施態様では、クライアントエージェント１２８および第１のプロトコルサービス１１２のどちらも、キューに入れたデータパケットをバッファ内に維持する。
【０１６２】
ステップ１４１２で、新しい第１のプロトコル接続１２０が、クライアント１０８のクライアントエージェント１２８と第１のプロトコルサービス１１２との間に確立され、第１のプロトコルサービス１１２と１つ以上のホストサービス１１６のそれぞれとの間で維持された第２のプロトコル接続１２４にリンクされ、それによって、クライアント１０８をホストサービス１１６に再接続する。クライアント１０８の再接続後、ステップ１４０８で維持されたキューに入れたデータパケットは、ステップ１４１６で、新しく確立された第１のプロトコル接続１２０を介して送信することができる。このように、ホストサービス１１６とクライアント１０８との間の通信セッションは、第１のプロトコルサービス１１２を介して、いずれのデータも失わずに持続的に進められる。一実施態様において、ＡＣＲサービス４０５は、ホストサービス１１６にクライアント１０８を再接続する前に、ホストサービス１１６へのクライアント１０８を認証する。別の実施態様において、第１のプロトコルサービス１１２は、ホストサービス１１６にクライアント１０８を再接続する前に、チケットオーソリティ１０３６で再接続チケットを有効にする。
【０１６３】
図１５Ａ乃至１５Ｂは、図１１Ｂに示したシステム１１００の実施態様のように、ＡＣＲサービス４０５を使用してクライアント１０８を１つ以上のホストサービス１１６に再接続するための方法１５００の一実施態様を示す。
【０１６４】
ステップ１５０４で、クライアント１０８と第１のプロトコルサービス１１２との間のうちの残りの接続を中断する。例えば、接続１２０ａは失敗したが、接続１２０ｂは失敗していない場合、接続１２０ｂを中断する。あるいは、接続１２０ｂは失敗したが、接続１２０ａは失敗していない場合、接続１２０ａを中断する。
【０１６５】
一実施態様では、クライアント１０８に提供した中間ノード１０３２の実際のアドレスを使用して、ステップ１５０８で、クライアント１０８のクライアントエージェント１２８は、次いでクライアントエージェント１２８と中間ノード１０３２との間の第１のプロトコル接続１２０ａを再確立する。あるいは、別の実施態様では、クライアント１０８に提供した第３の計算ノード１１４６の実際のアドレスを使用して、ステップ１５０８で、クライアント１０８のクライアントエージェント１２８は、次いでクライアントエージェント１２８と第３の計算ノード１１４６との間の第１のプロトコル接続を再確立する。第３の計算ノード１１４６は、クライアント１０８と第１のプロトコルサービス１１２との間のメッセージが通過すべき中間ノード１０３２を判断する。一実施態様では、第３の計算ノード１１４６は、ロードバランシング式を使用して中間ノード１０３２を選択する。クライアント１０８の１つ以上のホストサービス１１６への再接続において、第３の計算ノード１１４６によって選択された中間ノード１０３２は、クライアント１０８を１つ以上のホストサービス１１６に最初に接続するために、その選択とは異なることができる。中間ノード１０３２を選択すると、第３の計算ノード１１４６は、中間ノード１０３２への第１のプロトコル接続を再確立する。したがって、第１のプロトコル接続１２０ａは、第３の計算ノード１１４６を介して、クライアント１０８のクライアントエージェント１２８と中間ノード１０３２との間で再確立される。
【０１６６】
一実施態様では、２つ以上のレベルの中間ノード１０３２が存在する場合、クライアントエージェント１２８がレベル「ａ」乃至「ｎ−１」で送られる中間ノード１０３２は、例えばロードバランシング式に基づいて、次のレベルで接続される中間ノード１０３２を判断する。あるいは、別の実施態様では、第３の計算ノード１１４６は、２つ以上またはすべてのレベル「ａ」乃至「ｎ」に対して、クライアントエージェント１２８が送られる中間ノード１０３２を判断する。
【０１６７】
クライアント１０８のクライアントエージェント１２８と中間ノード１０３２との間の第１のプロトコル接続１２０ａ、例えば、レベル「ｎ」の中間ノード１０３２（以下、方法１５００において中間ノード１０３２と称する）を確立すると、次いでクライアントエージェント１２８は、ステップ１５１２で、第１のＳＩＤおよびキーならびに第２のＳＩＤおよびキーを中間ノード１０３２に送信する。
【０１６８】
次いで、ステップ１５１６で、第１のＳＩＤおよびキーが有効かどうかを判断する。一実施態様では、第１のＳＩＤおよびキーの有効性は、ＡＣＲサービス４０５を使用することによって判断される。例えば、中間ノード１０３２は、第１のＳＩＤおよびキーをＡＣＲサービス４０５に送信する。一実施態様では、ＡＣＲサービス４０５は、第１のＳＩＤおよびキーの有効性を、メモリ４３０に保存した第１のＳＩＤおよびキーのコピーと比較することによって判断する。ＡＣＲサービス４０５が第１のＳＩＤおよびキーを有効であると判断した場合、ステップ１５２０で、ＡＣＲサービス４０５は、ホストサービス１１６へのクライアント１０８を再認証し、第１のプロトコルサービス１１２のアドレスを中間ノード１０３２に送信する。さもなければ、ＡＣＲサービス４０５が第１のＳＩＤおよびキーを無効であると判断した場合、ステップ１５２４で、クライアント１０８は、第１のプロトコルサービス１１２への再接続を拒否し、結果的に、ホストサービス１１６に接続する。
【０１６９】
ステップ１５２８で、第１の再ＳＩＤおよびキーは、例えばＡＣＲサービス４０５によって削除され、代替の第２のＳＩＤおよびキーが、例えばＡＣＲサービス４０５により生成される。一部のこのような実施態様では、ＡＣＲサービス４０５は、第２のＳＩＤおよびキーを中間ノード１０３２に送信する。一部の実施態様では、ＡＣＲサービス４０５は、クライアント１０８が第１のＳＩＤおよびキーの削除に進む前に代替の第２のＳＩＤおよびキーを受信したことを認識するまで待つ。
【０１７０】
第１のＳＩＤおよびキーの検証後、中間ノード１０３２は、第１のプロトコルサービス１１２のアドレスを使用して、ステップ１５３２で、中間ノード１０３２と第１のプロトコルサービス１１２との間の第１のプロトコル接続１２０ｂを再確立する。中間ノード１０３２と第１のプロトコルサービス１１２との間の第１のプロトコル接続１２０ｂを再確立すると、次いでステップ１５３６で、第２のＳＩＤおよびキーが有効かどうかを判断する。一実施態様では、第２のＳＩＤおよびキーの有効性は、第１のプロトコルサービス１１２を使用することによって判断する。例えば、中間ノード１０３２は、第２のＳＩＤおよびキーを第１のプロトコルサービス１１２に送信する。一実施態様では、第１のプロトコルサービス１１２は、第２のＳＩＤおよびキーの有効性を、以前に保存した第２のＳＩＤおよびキーのコピーおよび暗号化された認証証明書と比較することによって判断する。第１のプロトコルサービス１１２が第２のＳＩＤおよびキーを有効であると判断した場合、第１の中間ノード１３２と第１のプロトコルサービス１１２との間で再確立された第１のプロトコル接続１２０ｂは、ステップ１５４０で、第１のプロトコルサービス１１２と１つ以上のホストサービス１１６のそれぞれとの間で維持された第２のプロトコル接続１２４にリンクされる。さもなければ、第１のプロトコルサービス１１２が第２のＳＩＤおよびキーを無効であると判断した場合、再確立された第１のプロトコル接続１２０ｂは、１つ以上の維持された第２のプロトコル接続１２４にはリンクされず、クライアント１０８は、ステップ１５４４で、１つ以上のホストサービス１１６への再接続を拒否する。
【０１７１】
ステップ１５４８で、第２のＳＩＤおよびキーは、例えば第１のプロトコルサービス１１２によって削除され、代替の第２のＳＩＤおよびキーが、クライアント１０８への送信のために、例えば第１のプロトコルサービス１１２により生成される。このような実施態様では、第１のプロトコルサービス１１２は、代替の第２のＳＩＤおよびキーのコピーを保存する。一部の実施態様では、第１のプロトコルサービス１１２は、クライアント１０８が第２のセッションＩＤおよびキーの削除に進む前に代替の第２のＳＩＤおよびキーを受信したことを認識するまで待つ。
【０１７２】
ステップ１５５２で、代替の第２のＳＩＤおよびキーは、クライアントに送信される。例えば、ＡＣＲサービス４０５は、中間ノード１０３２を介して、代替の第２のＳＩＤおよびキーをクライアント１０８に送信することができる。さらに、一実施態様では、第１のプロトコルサービス１１２は、中間ノード１０３２を介して、代替の第２のＳＩＤおよびキーをクライアント１０８に送信する
図１５Ａ乃至１５Ｃに示されていない実施態様において、チケットオーソリティ１０３６はＡＣＲサービス４０５の代わりにホストサービス１１６へクライアント１０８を再接続するために使用される可能性もある。方法１５００において、チケットオーソリティ１０３６はＡＣＲサービス４０５と同様、ＳＤＩおよびキーの代わりに再接続チケットを生成し伝送するであろう。例えば、ステップ１５１２において、チケットオーソリティ１０３６は、中間ノード１０３２からステップ１５１２で受信した第１の再接続チケットが有効か否かをステップ１５１６で判断するであろう。ステップ１５２８においてチケットオーソリティ１０３６は第１の再接続チケットを削除し、第２の再接続チケットをハンドルで生成する。このように、チケットオーソリティ１０３６は、ホストサービス１１６へのクライアント１０８の通信セッションの再確立および再認証を容易にする。
【０１７３】
本発明の趣旨および範囲から逸脱することなく、多くの修正および改良が当業者によってなされる場合がある。従って、例示的実施態様は例としての目的のみのために示されたものであり、以下の特許請求の範囲によって定義される本発明を限定するものと考えられるべきでないことは、明確に理解されなければならない。これらの特許請求の範囲は、上記の図に示し説明したものとその他の点で同一でないとしても、逐語的に説明するもの、また実質的に異ならない同等の要素を含むものとして読まれたい。
特許請求の範囲は以下の通りである。
【図面の簡単な説明】
【０１７４】
上述の本発明の他の目的、局面、特徴、および利点は、添付図面とともに以下の説明を参照することによって、より明らかになり、よりよく理解されるであろう。
【図１Ａ】図１Ａは、本発明の実施態様による、クライアントにホストサービスへの信頼できる接続を提供するシステムのブロック図である。
【図１Ｂ】図１Ｂは、本発明の別の実施態様による、クライアントにホストサービスへの信頼できる接続を提供するシステムのブロック図である。
【図２Ａ】図２Ａは、本発明の実施態様によるネットワークを通じて行われる通信を示す。
【図２Ｂ】図２Ｂは、本発明の他の実施態様によるネットワークを通じて行われる通信を示す。
【図３】図３は、本発明の実施態様によるネットワークを通じた通信のために第１のプロトコル内に複数の第２のプロトコルをカプセル化するプロセスを示す。
【図４】図４は、本発明による認証証明を維持するためのコンピュータシステムの、一実施態様のブロック図である。
【図５Ａ】図５Ａは、本発明による第１の通信セッション中における認証証明を維持するための、図４のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図５Ｂ】図５Ｂは、本発明による図５Ａの第１の通信セッションの終了につづく第２の通信セッション中における認証証明を維持するための、図４のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図６】図６は、本発明の別の実施態様による認証証明を維持するための、コンピュータシステムの一実施態様のブロック図である。
【図７Ａ】図７Ａは、本発明による第１の通信セッション中における認証証明を維持するための、図６のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図７Ｂ】図７Ｂは、本発明による図６の第１の通信セッション終了につづく第２の通信セッション中における認証証明を維持するための、図６のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図７Ｃ】図７Ｃは、本発明による図６の第１の通信セッションの第２の通信チャンネル終了につづく第２の通信セッション中における認証証明を維持するための、図６のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図８Ａ】図８Ａは、本発明の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図８Ｂ】図８Ｂは、本発明の別の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図９Ａ】図９Ａは、本発明の別の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図９Ｂ】図９Ｂは、本発明の別の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図１０Ａ】図１０Ａは、本発明の具体例による、クライアントにホストサービスへの信頼のおける接続を提供し、さらにホストサービスへクライアントを再接続するための構成要素を含むシステムのブロック図である。
【図１０Ｂ】図１０Ｂは、クライアントにホストサービスへの信頼のおける接続を提供し、さらにホストサービスへクライアントを再接続するための構成要素を含むシステムの一実施態様のブロック図である。
【図１１Ａ】図１１Ａは、本来クライアントをホストサービスに接続するための構成要素をさらに含む図１０Ａの実施態様のブロック図である。
【図１１Ｂ】図１１Ｂは、本発明の具体例による、認証証明を維持するための、本来クライアントをホストサービスに接続するための構成要素をさらに含む図１０Ｂの具体的なシステムのブロック図である。
【図１２Ａ】図１２Ａは、本発明の具体例による、ネットワーク通信の方法の流れ図である。
【図１２Ｂ】図１２Ｂは、クライアントをホストサービスに再接続する方法の流れ図である。
【図１３Ａ】図１３Ａは、本発明の具体例による、クライアントを複数のホストサービスに接続する方法の流れ図である。
【図１３Ｂ】図１３Ｂは、本発明の具体例による、クライアントを複数のホストサービスに接続する方法の流れ図である。
【図１３Ｃ】図１３Ｃは、本発明の具体例による、クライアントを複数のホストサービスに接続する方法の流れ図である。
【図１４】図１４は、本発明の具体例による、クライアントにホストサービスへの信頼のおける接続を提供し、クライアントをホストサービスへ再接続する方法の流れ図である。
【図１５Ａ】図１５Ａは、本発明の実施態様によるクライアントのホストサービスへの再接続方法の流れ図である。
【図１５Ｂ】図１５Ｂは、本発明の実施態様によるクライアントのホストサービスへの再接続方法の流れ図である。
【図１Ａ】
2007514337.tif 000003
【図１Ｂ】
2007514337.tif 000004
【図２Ａ】
2007514337.tif 000005
【図２Ｂ】
2007514337.tif 000006
【図３】
2007514337.tif 000007
【図４】
2007514337.tif 000008
【図５Ａ】
2007514337.tif 000009
【図５Ｂ】
2007514337.tif 000010
【図６】
2007514337.tif 000011
【図７Ａ】
2007514337.tif 000012
【図７Ｂ】
2007514337.tif 000013
【図７Ｃ】
2007514337.tif 000014
【図８Ａ】
2007514337.tif 000015
【図８Ｂ】
2007514337.tif 000016
【図９Ａ】
2007514337.tif 000017
【図９Ｂ】
2007514337.tif 000018
【図１０Ａ】
2007514337.tif 000019
【図１０Ｂ】
2007514337.tif 000020
【図１１Ａ】
2007514337.tif 000021
【図１１Ｂ】
2007514337.tif 000022
【図１２Ａ】
2007514337.tif 000023
【図１２Ｂ】
2007514337.tif 000024
【図１３Ａ】
2007514337.tif 000025
【図１３Ｂ】
2007514337.tif 000026
【図１３Ｃ】
2007514337.tif 000027
【図１４】
2007514337.tif 000028
【図１５Ａ】
2007514337.tif 000029
【図１５Ｂ】
2007514337.tif 000030
【国際調査報告】
2007514337.tif 000031
2007514337.tif 000032
2007514337.tif 000033