(57)【要約】【課題】クライアント装置と第１のサーバ装置との間で確立されたセッションの状態を維持しながら、クライアント装置が、第１のサーバ装置との通信接続を第２のサーバ装置へと切り換えることができるネットワーク構成を提供する。【解決手段】複数の異なるロケーションに分散されたコピーを有するキャッシュ２０３を使用するネットワーク構成。前記キャッシュ２０３は、少なくとも１つの他のサーバ装置にアクセス可能なように、サーバ装置１０５Ａ〜Ｄの何れかとのセッションのための状態情報を格納する。この様な構成を用いて、クライアント装置が第１のサーバ装置との接続から第２のサーバ装置との接続へと切り換わると、第２のサーバ装置は、クライアント装置と第１のサーバ装置との間のセッションに対応するキャッシュ２０３から状態情報を検索することができる。
2004532443.tif 000002
【特許請求の範囲】
【請求項１】
１以上のクライアントと通信する第１のサーバであって、第１のサーバと前記１以上のクライアントとのセッションのための状態情報を収容するキャッシュメモリを使用する第１のサーバと、
前記状態情報を収容する第２のキャッシュメモリを使用する第２のサーバとを備えた、クライアントと通信するためのサーバシステム。
【請求項２】
前記状態情報が、信任情報である請求項１に記載のサーバシステム。
【請求項３】
前記信任情報が、セキュア・ソケット・レイヤ・セッション識別子を含む請求項２に記載のサーバシステム。
【請求項４】
前記信任情報が、セキュア・ソケット・レイヤ・セッション情報も含む請求項３に記載のサーバシステム。
【請求項５】
前記信任情報が、前記１以上のクライアントのユーザのための認証情報も含む請求項３に記載のサーバシステム。
【請求項６】
前記信任情報が、前記１以上のクライアントのユーザのための認証情報も含む請求項２に記載のサーバシステム。
【請求項７】
前記状態情報が、前記第１のサーバ装置と前記１以上のクライアント装置との間のデータセグメントの送信を制御するためのデータセグメント情報である請求項１に記載のサーバシステム。
【請求項８】
前記状態情報が、トランスミッション・コントロール・プロトコル／インタネット・プロトコルのヘッダ情報である請求項１に記載のサーバシステム。
【請求項９】
前記状態情報が、購入情報である請求項１に記載のサーバシステム。
【請求項１０】
前記購入情報が、購入のために前記１以上のクライアントのユーザにより選択されたアイテムである請求項９に記載のサーバシステム。
【請求項１１】
前記購入情報が、前記１以上のクライアントのユーザのための金銭取引情報である請求項９に記載のサーバシステム。
【請求項１２】
前記購入情報が、前記１以上のクライアントのユーザの請求書送付先である請求項９に記載のサーバシステム。
【請求項１３】
前記第２のサーバが、前記状態情報を利用して前記１以上のクライアントと通信可能である請求項１に記載のサーバシステム。
【請求項１４】
第３のキャッシュメモリを使用する第３のサーバを更に備えている請求項１に記載のサーバシステム。
【請求項１５】
前記第３のサーバが、前記第２のサーバにより使用される前記第２のキャッシュメモリから前記状態情報を取得可能であり、取得された前記状態情報を使用して前記１以上のクライアントと通信する請求項１４に記載のサーバシステム。
【請求項１６】
前記状態情報が、ハッシュテーブルを利用して前記第１のキャッシュメモリおよび前記第２のキャッシュメモリに格納される請求項１に記載のサーバシステム。
【請求項１７】
前記状態情報が、ＢＵＺｈａｓｈアルゴリズムを利用して前記第１のキャッシュメモリおよび前記第２のキャッシュメモリに格納される請求項１６に記載のサーバシステム。
【請求項１８】
前記第１のサーバ装置が、マルチキャスト通信を利用して前記状態情報を前記第２のサーバ装置に送信する請求項１に記載のサーバシステム。
【請求項１９】
前記第１のサーバが、否定確認マルチキャスト通信を利用して前記状態情報を前記第２のサーバに送信する請求項１８に記載のサーバシステム。
【請求項２０】
１以上のクライアントと通信する第１のサーバであって、１以上のクライアントとのセッションのための状態情報を含むキャッシュの第１の部分を格納する第１のキャッシュメモリを使用する第１のサーバと、
１以上のクライアントとのセッションのための前記状態情報を含む前記キャッシュの第２の部分を有する第２のキャッシュメモリを使用する第２のサーバとを備えた、クライアントと通信するためのサーバシステム。
【請求項２１】
前記キャッシュの前記第１の部分内の前記状態情報の少なくとも一部が、前記１以上のクライアントの少なくとも１つに対する少なくとも１つのセッションのためのものであり、前記第１のサーバおよび前記第２のサーバが、前記状態情報の少なくとも一部を利用して前記１以上のクライアントの少なくとも１つと通信できるように、前記キャッシュの前記第２の部分に格納された前記状態情報の少なくとも一部が、前記キャッシュの前記第１の部分に格納された前記状態情報の前記少なくとも一部と同じにされる請求項２０に係るクライアントとの通信のためのサーバシステム。
【請求項２２】
前記第１のサーバ装置および前記第２のサーバ装置が、前記状態情報を利用して前記１以上のクライアントの何れかと通信できるように、前記第１のキャッシュメモリに格納された前記キャッシュの前記第１の部分が、前記第２のキャッシュメモリに格納された前記キャッシュの前記第２の部分と同じにされる請求項２１に係るクライアントとの通信のためのサーバシステム。
【請求項２３】
前記キャッシュの前記第１の部分および前記キャッシュの前記第２の部分を含む前記キャッシュの第３の部分を格納する第３のキャッシュメモリを使用する第３のサーバを更に含む請求項２０に係るクライアントとの通信のためのサーバシステム。
【請求項２４】
前記キャッシュの前記第３の部分を含む前記キャッシュの第４の部分を格納する第４のキャッシュメモリを使用する第４のサーバを更に含む請求項２３に係るクライアントとの通信のためのサーバシステム。
【請求項２５】
前記状態情報が、ハッシュテーブルを利用して前記第１のキャッシュメモリおよび前記第２のキャッシュメモリに格納される請求項２０に係るクライアントとの通信のためのサーバシステム。
【請求項２６】
前記状態情報が、ＢＵＺｈａｓｈアルゴリズムを利用して前記第１のキャッシュメモリおよび前記第２のキャッシュメモリに格納される請求項２５に係るクライアントとの通信のためのサーバシステム。
【請求項２７】
第１のサーバからクライアントとのセッションを実行することと、
前記第１のサーバと前記クライアントとの間の前記セッションに対応する状態情報を取得することと、
少なくとも第２のサーバに対して前記状態情報をキャッシュすることと、
前記キャッシュされた状態情報を利用して前記第２のサーバから前記クライアントとのセッションを再開することとを含む、クライアントとの通信方法。
【請求項２８】
第３のサーバに対して前記状態情報をキャッシュすることと、
前記第３のサーバから前記第２のサーバに対してキャッシュするために前記状態情報を取得することとを更に含む請求項２７に係るクライアントとの通信方法。
【請求項２９】
前記状態情報が、信任情報である請求項２７に係るクライアントとの通信方法。
【請求項３０】
前記信任情報が、セキュア・ソケット・レイヤ・セッション識別子を含む請求項２９に係るクライアントとの通信方法。
【請求項３１】
前記信任情報が、セキュア・ソケット・レイヤ・セッション情報も含む請求項３０に係るクライアントとの通信方法。
【請求項３２】
前記信任情報が、１以上の前記クライアントのユーザのための認証情報も含む請求項３０に係るクライアントとの通信方法。
【請求項３３】
前記信任情報が、１以上の前記クライアントのユーザのための認証情報も含む請求項２９に係るクライアントとの通信方法。
【請求項３４】
前記状態情報が、前記第１のサーバ装置と１以上の前記クライアント装置との間のデータセグメントの送信を制御するためのデータセグメント情報である請求項２７に係るクライアントとの通信方法。
【請求項３５】
前記状態情報が、トランスミッション・コントロール・プロトコル／インタネット・プロトコルのヘッダ情報である請求項３４に係るクライアントとの通信方法。
【請求項３６】
前記状態情報が、購入情報である請求項２７に係るクライアントとの通信方法。
【請求項３７】
前記購入情報が、購入のために１以上の前記クライアントのユーザにより選択されたアイテムである請求項３６に係るクライアントとの通信方法。
【請求項３８】
前記購入情報が、１以上の前記クライアントのユーザのための金銭取引情報である請求項３６に係るクライアントとの通信方法。
【請求項３９】
前記購入情報が、１以上の前記クライアントのユーザの請求書送付先である請求項３６に係るクライアントとの通信方法。
【請求項４０】
複数のサーバにおいて前記状態情報をキャッシュすることを更に含み、前記複数のサーバの何れかが前記状態情報を利用して前記クライアントとの前記セッションを再開できるようにした請求項２７に係るクライアントとの通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、状態転送情報を格納するための分散型キャッシュシステムに関する。キャッシュされた状態転送情報は、１以上のクライアント装置と少なくとも１つのサーバ装置とのセッションの状態に関わるものである。例えば、状態情報は、クライアント装置とサーバ装置との間で確実な通信を確立するために両者間で交換された信任情報である。本発明によると、状態情報は、第２のサーバ装置にアクセス可能な分散ロケーションにおいてキャッシュされる。クライアント装置と第１のサーバ装置との間の接続が終了すると、第２のサーバ装置は、キャッシュされた状態情報を利用してクライアント装置からの接続を受け付けることが可能となる。
【背景技術】
【０００２】
本願は、２００１年２月１３日出願、発明者マーク・ファン・ハイニンゲン(Marc van Heyningen)、ロジャー・エリクソン(Rodger  Erickson)、名称「信頼性のないプロトコルを利用して確実なストリーミングデータ送信機能を提供するための方法および装置(Method  And  Apparatus  For  Providing  Secure  Streaming  Data  Transmission  Facilities  Using  Unreliable  Protocols）」の同時係属米国特許出願に関連し、この米国特許出願はその全体が本願に引用により組み込まれている。
【０００３】
現代社会において、装置ネットワークは遍在的となった。恐らく、この様なネットワークの中で最も著名なものはインタネットであり、数千もの個々の装置、小規模な私用／公用装置ネットワーク、その他装置の間の通信接続を円滑にする。通常、ネットワークは、クライアント／サーバの関係を利用して動作する。この関係により、ある装置、すなわち「クライアント」装置は、「サーバ」装置からの情報を要求し、サーバ装置は、それに応答して要求された情報を提供する。この様な情報は、例えば、ハイパテキスト・メイクアップ・ランゲージ（ＨＴＭＬ）などのメイクアップ・ランゲージで記述されたページ、特定の演算の結果、サーバ装置が記憶ユニットから検索した生のデジタルデータなど、如何なるタイプのものでもよい。
【０００４】
クライアント装置がサーバ装置からの情報を要求したり、サーバ装置がそれに応答してクライアント装置へ情報を提供するためには、クライアント装置は、サーバ装置との接続を確立しなければならい。この様な接続のために多種多様なプロトコルが、当業で公知となっている。一般的に使用されているプロトコルとしては、例えば、トランスミッション・コントロール・プロトコル（ＴＣＰ）とインタネット・プロトコル（ＩＰ）の２つある。当業で公知のように、これらのプロトコルは、セッション中にサーバ装置とクライアント装置との間でデータセットを交換するために用いるパラメータを定義する。当業で公知のように、セッションは、クライアント装置とサーバ装置との間で交換されたデータ履歴に基づき、ある時点において、特定の状態を有する。
【０００５】
例えば、装置ネットワークの中には、未承認の個人がクライアント装置とサーバ装置との間で交換されたデータを傍受したり挿入したりすることがないようにセキュリティ措置を講じているものもある。確実なセッションを確立するために、クライアント装置は、サーバ装置に対してクライアント装置のＩＤを認証するパスワードなどの信任情報をサーバ装置に与える。当業において公知のように、信任情報には、公的もしくは私的な暗号化キー、パスワード、認証キー、デジタル署名、デジタル認証、ケルベロス・チケット、またはデータの暗号化もしくは当事者のＩＤ認証に使用されるその他の情報のうち１以上が含まれる。また、クライアント／サーバ装置は、両者間で交換すべきデータを暗号化するための暗号化キーを指定するためにも情報を交換する。信任情報および指定された暗号化キーは、クライアント装置とサーバ装置との間のセッションのための状態情報の例示であり、両者間で以前に交換された情報の履歴を反映する。
【０００６】
サーバ／クライアント装置関係は、コンピュータネットワークに数々の利点を提供するが、以下、この構成に関わる重大な問題点について図１を参照しながら説明する。この図面は、典型的なコンピュータネットワーク構成１０１を示す。ネットワーク１０１は、多数のクライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θと、複数のプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φと、少なくとも１つのマスタサーバ装置１０７とを備えている。当業者に理解されるように、単一のコンピュータまたはプログラマブル処理装置を用いたその他の演算ユニット上で、これらの装置をそれぞれ実施することができる。通常、コンピュータは、マイクロプロセッサと、メモリ媒体と、１以上の入出力装置とを有する。あるいは、単一のコンピュータまたはその他の演算ユニット上で多数のクライアント／サーバ装置を実施したり、単一のクライアントまたはサーバ装置を多数のコンピュータまたは演算ユニット間で分散することもできる。
【０００７】
図示のように、各クライアント装置１０３（１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θ）は、インタネットや直通ダイヤル電話接続などの通信媒体１０９を介してプロキシサーバ装置１０５（１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φ）と通信する。例えば、クライアント装置１０３Ａが、プロキシサーバ装置１０５Ａと通信する。そして、各プロキシサーバ装置１０５は、マスタサーバ装置１０７と通信する。この様に、プロキシサーバ装置１０５Ａは、クライアント装置１０３Ａとマスタサーバ装置１０７との間でメッセージの中継が可能である。ネットワーク１０１は、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φへのアクセスを制限するためのファイアウォル１１１と、クライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θからの接続をプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φ間で均一に分散するための負荷バランサ１１３とを備えている。なお、図１には、理解の便宜上、マスタサーバ装置１０７を１つしか図示していないが、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φは、通常、複数のマスタサーバ装置１０７と同時に通信する。
【０００８】
この例においては、クライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θは、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φを介してマスタサーバ装置１０７と通信する。この構成は、例えば、マスタサーバ装置１０７のリソースを保護するために、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φが、マスタサーバ装置１０７のために機能する場合に一般的に利用される。例えば、マスタサーバ装置１０７が情報要求に応答可能となる前に、クライアント装置１０３のＩＤを認証しなければならない場合、マスタサーバ１０７への情報要求を通す前に、プロキシサーバ１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φを利用してクライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θを認証する。これによって、マスタサーバ１０７は、各クライアント装置１０３のＩＤ認証の責務から開放され、要求された情報を提供するためだけにそのリソース（例えば、そのマイクロプロセッサ機能）を専用できる。
【０００９】
また、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φを使用して、マスタサーバ装置１０７とクライアント装置１０３との間の確実な通信を提供することもできる。この構成により、例えば、クライアント装置１０３およびサーバ装置１０５Ａが、両装置間で交換されるメッセージを暗号化するための暗号化キーを指定することもできる。クライアント装置１０３Ａとサーバ装置１０５Ａとの間で確実なセッションが確立されると、プロキシサーバ装置１０５Ａは、単にクライアント装置１０３Ａからの情報を暗号解読して、マスタサーバ装置１０７に中継することができる。また、プロキシサーバ装置１０５Ａは、マスタサーバ装置１０７からの情報を暗号化して、クライアント装置１０３Ａに中継することができる。当業者に理解されるように、この構成により、確実な通信を提供するオーバヘッドが、マスタサーバ１０７からプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φへと移行し、マスタサーバ装置１０７は、より迅速にクライアント装置からの要求に応答可能となる。
【００１０】
しかし、クライアント装置１０３（例えば、クライアント装置１０３Ａ）とその関連のプロキシサーバ装置１０５（例えば、プロキシサーバ装置１０５Ａ）との間の接続が終了した場合に、この構成に関して問題が発生する。クライアント装置１０３Ａは、別のプロキシサーバ装置１０５、例えば、プロキシサーバ装置１０５Ｂを介してマスタサーバ装置１０７との通信を再確立しようとする。例えば、最初のプロキシサーバ装置１０５Ａが機能せず、利用不可能となるか、または、負荷バランサ１１３が単に最初のプロキシサーバ装置１０５Ａの通信負荷を低減するために、新たな接続をクライアント装置１０３Ａからプロキシサーバ装置１０５Ｂへとルーティングする場合がある。いずれの場合も、新たなプロキシサーバ装置１０５Ｂは、クライアント装置１０３ＡのＩＤ認証を行う認証情報を有していない。また、新たなプロキシサーバ装置１０５Ｂは、前のプロキシサーバ装置１０５Ａとの間で確立した暗号化キーを有していない。したがって、クライアント装置１０３と元のプロキシサーバ装置１０５Ａとの間のセッションの状態は失われ、クライアント装置１０３は、その認証情報と、新たなプロキシサーバ装置１０５Ｂとの間の暗号化キーを再確立しなければならない。
【００１１】
このプロセスは時間がかかり、新たなプロキシサーバ装置１０５Ｂにとっては多大な処理時間を要する。さらに、クライアント装置１０３とプロキシサーバ装置１０５Ａとの間の元のセッションの状態によっては、前のセッションの状態の喪失が代替不可能である場合もある。例えば、前のセッションの状態が、複製不可能なデータの交換により確立されていた場合、セッション状態の再生は不可能である。
【００１２】
この問題を解決するために、クライアント装置１０３とその関連のプロキシサーバ装置１０５との間で終了された接続を、新たなプロキシサーバ装置１０５に対してではなく、元のプロキシサーバ装置１０５に対して再確立するようにしたネットワークシステムがある。例えば、クライアント装置１０３Ａがプロキシサーバ装置１０５Ａに対してセッションを確立した時点を認識し、以降の全ての接続をクライアント装置１０３Ａからプロキシサーバ装置１０５Ａへとルーティングするように負荷バランサ１１３を設計しているシステムがある。しかし、この解決策は、数々の欠点を有する。負荷バランサ１１３が非常に複雑化し、様々な機能を果たすことが要求される。さらに、元のプロキシサーバ装置１０５Ａが利用不可能になった場合、例えば、元のプロキシサーバ装置１０５Ａが機能せず、クライアント装置１０３との接続の再確立が不可能になった場合に発生する状況に対処するものではない。また、最初のプロキシサーバ装置１０５Ａが、他のクライアント装置１０３との接続により過負荷となった場合の状況にも対処するものではない。事実、この解決策により、負荷バランサ１１３は負荷バランス機能を果たせなくなる。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
したがって、クライアント装置と第１のサーバ装置との間で確立されたセッションの状態を維持しながら、クライアント装置が、第１のサーバ装置との通信接続を第２のサーバ装置へと切り換えることができるネットワーク構成が必要である。さらに、第１のサーバが機能不全などの問題により利用不可能になった場合でも、第１のサーバとの接続から第２のサーバとの接続へのこの様な切り換えが可能なネットワーク構成が必要である。
【課題を解決するための手段】
【００１４】
好ましくは、本発明は、複数の異なるロケーションにコピーを分散させたキャッシュを用いるネットワーク構成を提供する。本発明によれば、任意のサーバ装置とのセッションに関する状態情報がキャッシュに格納されるので、少なくとも１つの他のサーバ装置に対してアクセス可能である。クライアント装置が、第１のサーバ装置との接続から第２のサーバ装置との接続へと切り換えるとき、この構成を利用して、第２のサーバ装置は、クライアント装置と第１のサーバ装置とのセッションに対応するキャッシュから状態情報を検索することができる。そして、第２のサーバ装置は、検索された状態情報を用いて、同様または同一の状態を有するクライアント装置とのセッションを引き受けることができる。本発明のある実施形態によれば、キャッシュの同一コピーがこのネットワーク構成の各サーバ装置のために格納され、各サーバ装置は、キャッシュのそれ自体のコピーにアクセスして必要な状態情報を得る。本発明の他の実施形態においては、このネットワーク構成における全てのサーバ装置にアクセス可能な単一のソース（例えば、冗長なキャッシュ記憶装置セット）においてキャッシュのコピーが保持される。そして、各サーバ装置は、ローカル使用のために全キャッシュの一部分だけのコピーを保持する。
【発明を実施するための最良の形態】
【００１５】
本発明の様々な実施形態によれば、ネットワーク内のサーバ装置は、クライアント装置とのセッションの状態を反映する状態情報を記憶する。特に、各サーバ装置は、ネットワーク内の少なくとも１つの他のサーバ装置に対してアクセスできるように、その状態情報をキャッシュに格納する。したがって、クライアント装置とサーバ装置との間のセッションのための接続が終了すると、キャッシュに格納されている前のセッションの状態情報を利用して、別のサーバ装置との新たなセッションを確立することができる。例えば、第１のサーバ装置とクライアント装置とが、暗号化メッセージの交換のための暗号化キーを指定した場合、第１のサーバ装置は、キャッシュに暗号化キーを格納することができる。その後、クライアント装置と第１のサーバ装置との間の接続が終了し、クライアント装置が第２のサーバ装置との新たな接続を確立しようとすると、第２のサーバ装置は、クライアント装置との確実な通信を維持するために、キャッシュから暗号化キーを検索することができる。この様に、新たなプロキシサーバ装置は、新たな暗号化キーを決定するためにクライアント／サーバ装置とのデータ交換をする必要がない。
【００１６】
キャッシュ内の状態情報はネットワーク内の多数のサーバ装置にアクセス可能でなければならないので、ネットワーク内の各サーバ装置がキャッシュから状態情報を効率よく検索できるように、キャッシュを格納すべきである。さらに、キャッシュのコピー（または、キャッシュの一部分のコピー）が異なるロケーションに物理的に分散されている場合、ネットワーク内の各サーバ装置は、キャッシュの各コピーに効率よく通信可能でなければならない。すなわち、キャッシュの各コピーを新状態情報または更新状態情報で効率よく更新したり、１を越えるキャッシュのコピーから格納された状態情報を検索できなければならない。これに対応して、本発明の様々な実施形態により採用される記憶装置および通信手法について、以下、詳細に説明する。
【００１７】
本発明の第１の実施形態を包含するネットワーク構成２０１を図２Ａに示す。図１を参照して上述したネットワーク１０１と同様に、図２Ａに示すネットワーク２０１は、多数のクライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θと、マスタサーバ装置１０７にそれぞれ接続された複数のプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φとを備えている。また、各クライアント装置１０３は、通信媒体１０９を介して負荷バランサ１１３に対して接続され、負荷バランサ１１３はマスタサーバ装置１０７への中継のために、通信を各クライアント装置１０３からプロキシサーバ１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φの１つにルーティングする。上記のように、サーバ／クライアント装置を、単一演算ユニット上で実施することもできるし、多数の演算ユニット全体に分散することもできる。また、複数のクライアント／サーバ装置を単一の演算装置上で実施してもよい。
【００１８】
理解を容易にするために図２Ａには１つのマスタサーバ装置１０７しか示されていないが、ネットワーク２０１は、多数のプロキシサーバ装置１０５と同時通信する多数のマスタサーバ装置１０７を備えることができる。ネットワーク２０１内の各プロキシサーバ１０５と通信するクライアント装置１０３の数は、例えば、１００を越えるものとすることができる。同様に、このネットワークは、各マスタサーバ装置１０７と通信する多数の（１００を越える）サーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φを備えたものとすることができる。通信媒体１０９は、適当な媒体でよい。例えば、クライアント／サーバ装置１０３Ａがウェブベースの通信プログラム（例えば、ブラウザ）を利用してプロキシサーバ１０５Ａと通信するように構成されている場合、通信媒体１０９はインタネットであってもよい。また、クライアント／サーバ装置１０３Ｄが、遠隔ダイヤルアップ通信プログラムを利用してプロキシサーバ１０５Ｂと通信するように構成されている場合、通信媒体１０９は、ダイレクト・プレイン・オールド・テレフォン・システム（ＰＯＴＳ）接続であってもよい。
【００１９】
図１に示すネットワーク構成１０１とは異なり、ネットワーク２０１内のプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φは、それぞれ、キャッシュメモリ２０３（２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φ）を備えている。本発明によれば、キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φは、それぞれ、キャッシュ２０５のコピーを収容している。以下に詳述するように、キャッシュ２０５は、多数のクライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θと多数のプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φとの間の様々なセッションの状態に基づく状態情報の集合を含んでいる。例えば、キャッシュ２０５は、クライアント装置１０３Ａとプロキシサーバ装置１０５Ａとの間のセッションの状態に対応する状態情報を収容している。したがって、クライアント装置１０３Ａとプロキシサーバ装置１０５Ａとの接続が終了すると、クライアント装置１０３Ａは、クライアント装置１０３Ａとプロキシサーバ装置１０５Ａとの間の前のセッションと同じ状態を有するその他の如何なるプロキシサーバ装置１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φとも新たなセッションを確立することができる。
【００２０】
本発明のある実施形態においては、各キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φは、キャッシュ２０５の完全なコピーを収容している。各プロキシサーバ装置１０５は、クライアント装置１０３との新たなセッションのための新状態情報を得るか、または、クライアント装置１０３との既存のセッションのための状態情報を更新すると、プロキシサーバ装置１０５は、格納のために新状態情報または更新状態情報をキャッシュ２０５の各コピーに送信する。
【００２１】
本発明を実施するネットワーク２０１は、図１に示す従来のネットワーク構成１０１を超越する利点を提供する。クライアント装置１０３は、前のセッション中に得られた状態情報を利用してプロキシサーバ装置１０５とのセッションを確立することができるので、負荷バランサ１１３は、クライアント装置１０３から以前にセッションを確立していたプロキシサーバ装置１０５に接続をルーティングし直す必要がない。この様に、負荷バランサ１１３の機能が単純化されて、クライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θからの入力通信を、利用可能なプロキシサーバ１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φ間で均一に分散することができる。さらに、プロキシサーバ装置１０５が全く利用不可能になっても（すなわち、完全に機能不全に陥っても）、クライアント装置１０３は、別のプロキシサーバ装置１０５に対して新たなセッションを確立することができ、前のセッションで得られた状態情報を再生する必要がない。
【００２２】
上記の実施形態は、各キャッシュメモリ２０３にキャッシュ２０５の完全コピーを保持するようになっているが、本発明の他の実施形態では、図２Ｂに示すように各キャッシュメモリ２０３にキャッシュ２０５のほんの一部分のコピーを保持するようになっている。しかし、この様な実施形態では、各プロキシサーバ装置１０５が状態情報にアクセスできるように、各セッションの状態情報を多数のキャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φに格納しなければならない。例えば、クライアント１０３Ａとプロキシサーバ装置１０５Ａとの間のセッションの状態情報を、キャッシュメモリ２０３Ａ（プロキシサーバ装置１０３Ａに対応）、キャッシュメモリ２０３Ｂ（プロキシサーバ装置１０３Ｂに対応）、キャッシュメモリ２０３Ｃ（プロキシサーバ装置１０３Ｃに対応）にのみ格納するようにしてもよい。その後、プロキシサーバ１０５Ａが利用不可能となり、クライアント装置１０３Ａがプロキシサーバ装置１０５Ｂとの接続に切り換えられると、プロキシサーバ装置１０５Ｂは、それ自体のメモリキャッシュ２０５Ｂから検索された状態情報を利用してクライアント装置１０３Ａとのセッションを確立することができる。
【００２３】
さらに、クライアント装置１０３Ａが、キャッシュメモリ内に状態情報のないプロキシサーバ装置（例えば、プロキシサーバ装置１０５Ｄ）との接続に切り換えられた場合、そのプロキシサーバ装置は、キャッシュメモリ２０３に適切な状態情報を有する別の利用可能なプロキシサーバ装置１０５（例えば、プロキシサーバ装置１０５Ｂ）からの状態情報を要求することができる。例えば、クライアント装置１０３Ａとの接続が、プロキシサーバ装置１０５Ｄへと切り換えられると、そのプロキシサーバ装置１０５Ｄは、状態情報を応答受信するまで、その他の利用可能なプロキシサーバ装置１０５からの状態情報を順次要求することができる。または、プロキシサーバ装置１０５Ｄが、その他の利用可能なプロキシサーバ装置１０５の全てに対して要求を同時に送信し、例えば、最初に受信した応答の状態情報を採用するようにしてもよい。
【００２４】
本発明の上記の実施形態は、プロキシサーバ装置１０５のみがキャッシュ２０５の保持に関する責務を負うので、ピア構成型実施形態と呼ばれる。本発明のこの様なピア構成型実施形態において、各キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φに全キャッシュ２０５（またはキャッシュ２０５の重複する部分コピー）を保持するには、各プロキシサーバ装置１０５が、書込プロセスにおいて新状態情報または更新状態情報を多数のキャッシュメモリ２０３に送信しなければならない。好ましくは、受信側装置からの肯定確認を必要とする信頼性のある通信手法を利用してこの書込プロセスを実行するので、各プロキシサーバ装置１０５は、その関連のキャッシュメモリ２０３が新状態情報または更新状態情報を処理したことを確認できる。ネットワーク内のプロキシサーバ装置１０５の数が比較的少なく、プロキシサーバ装置１０５によりセーブされる状態情報のタイプおよび量が比較的安定しており、キャッシュ２０５内の状態情報の総量が比較的少ない場合、信頼性のある肯定確認ベースの通信手法を利用するこの構成において各キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φに必要な状態情報を書き込むことは、ネットワーク２０１に対する大きなリソースオーバーヘッドとはならない。
【００２５】
例えば、キャッシュ２０５に格納されている状態情報のタイプが、単に、クライアント装置を認証する信任情報またはクライアント装置との通信を暗号化するための暗号化キーである場合、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φがキャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φに対して行う書込動作の数は少ない。通常、クライアント装置は、指定された期間内に、それ自体の認証や暗号化キーの確立を１度だけ行う。この様な状態情報がプロキシサーバ装置１０５に対して確立され、キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φのうち２つ以上に書き込まれると、恐らく、その指定された期間の残り時間内に更新されることはない。同様に、ネットワーク２０１が９個のプロキシサーバ装置１０５しか備えていない場合、各プロキシサーバ装置１０５に対する新状態情報または更新状態情報の書き込みにより、ネットワークリソースが多大に浪費されることはない。
【００２６】
一方、キャッシュ２０５に格納された状態情報のタイプを頻繁に更新しなければならない場合、または、ネットワークが多数のＴＣＰプロキシサーバ装置１０５（例えば、９個を越えるプロキシサーバ装置）を備えている場合には、ネットワーク内の各プロキシサーバ装置１０５に対する新状態情報または更新状態情報の書き込みには、ネットワーク２０１からかなりのリソースが流用される。例えば、状態情報が、クライアント装置１０３とのセッション中に送信されたデータパケット用のＴＣＰ／ＩＰヘッダデータである場合、プロキシサーバ装置１０５Ａがデータパケットを受信する度に、キャッシュ２０５を更新しなければならない。また、クライアント装置１０３の数が増加すると、信頼性のある肯定確認通信手法を利用した各クライアント装置１０３のための多数のキャッシュメモリ２０３に対する低頻度の更新にも、ネットワーク２０１からかなりのリソースが流用される。同様に、プロキシサーバ装置１０５の数が増加すると、信頼性のある肯定確認通信手法を利用した各プロキシサーバ装置１０５のキャッシュメモリに対する新状態情報または更新状態情報の書き込みにも、ネットワーク２０１からかなりのリソースが流用される。さらに、キャッシュ２０５があまりにも大きくなると、プロキシサーバ装置１０５のキャッシュメモリ２０３にキャッシュの完全コピーを格納することが困難になる。
【００２７】
これに対応して、本発明の更に別の実施形態を実施するネットワーク３０１を図３Ａに示す。前述のネットワーク構成１０１、２０１と同様に、ネットワーク３０１は、複数のクライアント装置１０３Ａ、１０３Ｂ、１０３Ｃ、１０３Ｄ．．．１０３θと、マスタサーバ装置１０７にそれぞれ接続される複数のプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φとを備えている。前述の通り、各クライアント装置１０３は、通信媒体１０９およびファイアウォル１１１を介して負荷バランサ１１３に接続されている。負荷バランサ１１３は、各クライアント装置１０３からプロキシサーバ装置１０５の１つへと（例えば、図示のようにクライアント装置１０３Ａからプロキシサーバ装置１０５Ａへと）接続をルーティングする。図２に示すネットワーク２０１と同様に、ネットワーク３０１内のプロキシサーバ１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φも、それぞれ対応するキャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φを備えている。
【００２８】
しかし、本発明のこの実施形態は、キャッシュ２０５の１以上のコピーを格納するためのキャッシュ格納庫３０３を更に備えている。以下の説明から理解されるように、この実施形態は、本発明の前述の実施形態のようなピア構成ではなく、キャッシュ２０５の格納に関して２階層構成となっている。すなわち、この実施形態は、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φのキャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φにより提供される第１の階層の状態情報記憶装置と、キャッシュ格納庫３０３により提供される第２の階層の状態情報記憶装置とを備えている。
【００２９】
図３Ａに示すように、キャッシュ格納庫３０３は、２つのキャッシュメモリサーバ装置３０５、３０７を備えている。これらのキャッシュメモリサーバ装置３０５、３０７は、それぞれ、キャッシュ２０５の完全コピーを格納する。しかし、キャッシュ格納庫３０３は、冗長性のために２つのキャッシュメモリサーバ装置３０５、３０７を備えている。したがって、キャッシュメモリサーバ装置３０５、３０７の一方が機能しなくなったり、利用不可能となった場合でも、キャッシュ格納庫３０３は、他方のキャッシュメモリサーバ装置内にキャッシュ２０５の完全なコピーを備えている。また、本発明の他の実施形態において、冗長性が所望でない場合には、格納庫３０３として単一のキャッシュメモリサーバ装置を使用してもよいし、冗長性を優先する場合には３個以上のキャッシュメモリサーバ装置を使用してもよい。
【００３０】
図３Ａの実施形態におけるキャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φは、全キャッシュ２０５のコピーを格納しないこともある。その代わりに、キャッシュ２０５がキャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φの記憶容量よりも大きな場合には、各キャッシュメモリ２０３は、対応するプロキシサーバ装置１０５に関連するキャッシュ２０５の一部分のみを格納する。例えば、キャッシュメモリ２０３Ａにコピーされたキャッシュ２０５の一部分に、プロキシサーバ装置１０５Ａ、１０５Ｂに対して確立されたセッションの状態情報のみが含まれるようにしてもよい。したがって、クライアント装置１０３Ａが、プロキシサーバ装置１０５Ａとの接続を失い、プロキシサーバ装置１０５Ｂとの新たなセッションを確立しようとする場合、キャッシュメモリ２０３Ｂは、プロキシサーバ装置１０５Ａとの前のセッションに関する状態情報を保持していないこともある。
【００３１】
しかし、この実施形態では、プロキシサーバ１０５が、そのメモリキャッシュ２０５に状態情報のないクライアント装置１０３とのセッションを確立する要求を受信すると、プロキシサーバ装置１０５は、キャッシュ格納庫３０３から関連状態情報を得ることができる。したがって、上記の例において、プロキシサーバ装置１０５Ｂは、クライアント装置１０３Ａの前のセッションに関する状態情報をキャッシュ格納庫３０３から得る。そして、新たなプロキシサーバ装置１０５は、その状態情報を使用して、前のセッションと同一または同様の状態で新たなセッションを確立することができる。
【００３２】
キャッシュ２０５のサイズが大きすぎて、キャッシュ２０５の全コピーをプロキシサーバ装置１０５のキャッシュメモリ２０３に効率よく格納することができない場合に有用であることに加えて、キャッシュ格納庫３０３を採用する本発明のこの実施形態は、通常、非常に多くのプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φを備えたネットワーク（キャッシュ２０５に格納された状態情報がキャッシュ２０５を頻繁に更新する必要のあるタイプであるか否かにもよるが、例えば、１０を越えるプロキシサーバ装置を備えたネットワーク）にとって更に効率がよい。この実施形態において、各プロキシサーバ装置１０５は、通常、新状態情報または更新状態情報をキャッシュ格納庫３０３にのみ書き込むために信頼性のある肯定確認通信手法を利用する必要があり、（書込動作およびその確認により発生する）通信トラフィック量がネットワーク全体で減少する。そして、ネットワーク内の他のプロキシサーバ装置１０５は、後述のように、信頼性の低い通信手法により、または、キャッシュ格納庫３０３から直接的に、新状態情報または更新状態情報を得ることができる。
【００３３】
なお、図３Ａに示す２階層構成は例示である。当業者にとっては、キャッシュ２０５の全体サイズにより、３階層、４階層などマルチ階層構成も採用可能であることが理解できるであろう。例えば、キャッシュのサイズがあまりにも大きく、単一のキャッシュメモリサーバ装置３０５または３０７に効率よく格納できない場合は、キャッシュ２０５の異なる部分を格納する２以上のキャッシュ格納庫３０３を採用することができる。キャッシュ２０５の全コピーを、各キャッシュ格納庫３０３にアクセス可能な比較的効率の悪い記憶装置（例えば、一連の磁気ディスク記憶装置）に格納してもよい。また、各プロキシサーバ装置１０５を特定のキャッシュ格納庫３０３と関連付けて、関連するキャッシュ格納庫３０３に保持されているキャッシュ２０５の全部または一部を格納するようにしてもよい。当業者にとっては、その他、様々な実施形態が明らかであろう。以下、「マルチ階層」という用語を使用して、少なくともキャッシュ２０５の一部分を格納する２階層以上の階層レベルの装置を備えた本発明の実施形態に言及する。
【００３４】
なお、本発明の更なる実施形態において、キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φに格納されているキャッシュ２０５Ａ、２０５Ｂ、２０５Ｃ、２０５Ｄ．．．２０５φの異なる部分は、重複していてもよい。例えば、キャッシュ２０３Ａの一部分は、キャッシュ２０３Ｂの一部分およびキャッシュ２０３Ｃの一部分にも格納されている状態情報を収容していてもよい。プロキシサーバ装置１０５は、接続を求めている新たなクライアント装置１０３のための状態情報を既に有していることもあるので、キャッシュ２０５の異なる部分で、ある程度の重複があることにより、ネットワークトラフィック量が減少する。さらに、図３Ｂに示すように、各キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φは、キャッシュ２０５全体のコピーを収容していてもよい。本発明のこの実施形態は、例えば、キャッシュ２０５のサイズが充分小さく、キャッシュメモリ２０３にその全体を格納できる場合、図３Ａに示す実施形態にとって好適である。
【００３５】
次に、プロキシサーバ装置１０５の考え得る実施形態について、図４を参照しながら説明する。図示のように、プロキシサーバ装置１０５は、プロキシアプリケーション４０１と、分散キャッシュアプリケーション・プログラミング・インタフェース（ＡＰＩ）４０３と、分散キャッシュアプリケーション４０５と、通信機アプリケーション４０７と、キャッシュメモリ２０３とを備えている。以下に詳述するように、プロキシアプリケーション４０１は、プロキシサーバ装置１０５の主要な機能を実行する。例えば、図示の実施形態において、プロキシアプリケーション４０１は、クライアント装置１０３との確実な通信を確立し、クライアント装置１０３とマスタサーバ１０７との間でメッセージを中継する。また、プロキシアプリケーション４０１は、クライアント装置１０３とのセッションの状態情報を、分散キャッシュＡＰＩ４０３を介して分散キャッシュアプリケーション４０５に送信する。
【００３６】
分散キャッシュＡＰＩ４０３は、キャッシュメモリ２０３から情報を検索し、分散キャッシュアプリケーション４０５を介して情報を送信することによって、キャッシュメモリ２０３への情報送信の要求やキャッシュメモリ２０３からの情報削除の要求を円滑にする。分散キャッシュアプリケーション４０５は、キャッシュメモリ２０３に情報を格納し、キャッシュメモリ２０３と他のプロキシサーバ装置１０５（適用可能であれば、キャッシュ格納庫３０３）との情報の交換も制御する。分散キャッシュアプリケーション４０５は、通信機アプリケーション４０７を介して、他のプロキシサーバ装置１０５（適用可能であれば、キャッシュ格納庫３０３）と通信する。
【００３７】
プロキシアプリケーション４０１は、クライアント装置１０３とのセッションを確立する任意のアプリケーションである。この特定の実施形態において、プロキシアプリケーション４０１は、クライアント装置１０３との確実なセッションを確立し、その確実なセッションからのメッセージをマスタサーバ装置１０７へと中継するように動作する。例えば、本発明のある好適な実施形態において、プロキシアプリケーション４０１は、クライアント装置１０３との確実なセッションを確立するために、セキュア・ソケット・レイヤ（ＳＳＬ）プロトコルを利用するものであってもよい。ＳＳＬプロトコルは、当業で周知である。様々な修正を経て、ＳＳＬは、トランスポート・レイヤ・セキュリティ（ＴＬＳ）プロトコルと改名され、ＲＦＣ２２４６に反映されているように、インタネット・エンジニアリング・タスク・フォース（ＩＥＴＦ）で採用されている。したがって、ＳＳＬという用語は、以下に使用されているように、ＳＳＬプロトコルおよびＴＬＳプロトコルの両方を含むものと解釈される。
【００３８】
ＳＳＬプロトコルによれば、クライアント装置１０３は、プロキシアプリケーション４０１との完全ＳＳＬ「ハンドシェイク」を完了することによってセッションを開始する。このハンドシェイク中に、クライアント装置１０３およびプロキシアプリケーション４０１は、ＳＳＬバージョン番号、暗号設定、セッション特定データ、認証証明、およびＳＳＬプロトコルを利用して互いに通信する必要のあるその他の情報を交換する。この様な情報を利用して、クライアント装置１０３およびプロキシアプリケーション４０１は、同一のマスタシークレットキーを生成し、それを用いて個々のセッションキーを生成する。これらのセッションキーは、セッション中に交換した個々の情報グループの暗号化および暗号解読を行い、交換情報の完全性を確認するために用いる対称キーである。
【００３９】
当業者に理解されるように、ＳＳＬセッションを開始するために完全ＳＳＬハンドシェイクを実行するには、時間がかかり、ネットワーク通信トラフィックに関しても、クライアント装置１０３およびプロキシアプリケーション４０１の処理時間に関しても、ネットワークのリソースに大きな負荷をかける。しかし、プロキシアプリケーション４０１が、完全ＳＳＬハンドシェイクにおいて必要なＳＳＬセッション情報を受信すると、プロキシアプリケーション４０１は、部分ＳＳＬハンドシェイクのみを利用してクライアント装置１０３とのそのＳＳＬセッションを再開する。好適にも、部分ＳＳＬハンドシェイクは、完全ＳＳＬハンドシェイクよりもかなり迅速であり、消費するネットワークリソースも少ない。
【００４０】
したがって、完全ＳＳＬハンドシェイクが完了した後、プロキシアプリケーション４０１は、格納のため、完全ＳＳＬハンドシェイクから得たＳＳＬセッション情報をキャッシュメモリ２０３に送信する。当業で公知のように、ＳＳＬ情報には、セッション識別子（例えば、能動または再開可能セッション状態を識別するためにプロキシアプリケーション４０１が選択した任意のバイトシーケンス）とピア証明とが含まれる。ＳＳＬ情報には、クライアント装置１０３およびプロキシアプリケーション４０１が使用するバルクデータ暗号化アルゴリズム（ヌル、ＤＥＳなど）、メッセージ認証チェック（ＭＡＣ）アルゴリズム（ＭＤ５、ＳＨＡなど）、暗号属性（ハッシュサイズなど）を指定する暗号仕様も含まれる。さらに、ＳＳＬ情報には、暗号化の前にデータを圧縮するために用いるアルゴリズム、マスタシークレットキー、セッションを用いて新たな接続を開始するか否かを示すフラグ情報も含まれる。
【００４１】
特に、プロキシアプリケーション４０１は、ＳＳＬ再開情報を有するデータフィールドと、ＳＳＬセッション識別子を有するキーフィールドとを含むキャッシュ２０５に格納するレコードを生成する。レコードには、そのレコードが失効してキャッシュから削除されるべき時点を有する有効期限フィールドも含まれる。さらに、後述のように、キー情報（すなわち、セッション識別子）に付加されるレコード識別子もレコードに含まれる。プロキシアプリケーション４０１は、キャッシュメモリ２０３に格納するために、分散キャッシュＡＰＩ４０３を介して分散キャッシュアプリケーション４０５にこのレコードを送る。
【００４２】
プロキシアプリケーション４０１がクライアント装置１０３からの要求を受信してセッションを開始するとき、そのクライアント装置１０３がプロキシアプリケーション４０１（その要求を現在受信している同一のプロキシアプリケーション４０１または別のプロキシアプリケーション４０１）とのＳＳＬ通信を既に確立していれば、その要求にはＳＳＬセッション識別子が含まれている。プロキシアプリケーション４０１は、サーチキーとしてＳＳＬセッション識別子をキャッシュＡＰＩ４０３上に送るので、ＡＰＩ４０３は、分散キャッシュアプリケーション４０５に対して、ＳＳＬセッション識別子に対応するキャッシュメモリ２０３からＳＳＬ情報を検索するように要求する。
【００４３】
前述のように、分散キャッシュＡＰＩ４０３の機能は、ＧＥＴ演算を用いてキャッシュメモリ２０３から既存のレコードを検索するものである。さらに、本発明のある実施形態では、分散キャッシュＡＰＩ４０３は、この様なコマンドを分散キャッシュアプリケーション４０５上に送ることによってレコードを追加、削除、修正するための要求を円滑にする。この様にして、分散キャッシュアプリケーション４０５は、キャッシュメモリ２０３上でＡＤＤ、ＤＥＬＥＴＥ、およびＵＰＤＡＴＥ演算を実行する。好ましくは、そのキーに関するレコードがキャッシュメモリ２０３に既に存在するものであっても、ＡＤＤ演算は、そのレコードのキーフィールド内の情報に基づいてレコードをキャッシュメモリ２０３に追加する。ＤＥＬＥＴＥ演算は、キャッシュメモリ２０３からレコードを削除し、ＵＰＤＡＴＥ演算は、キャッシュメモリ２０３に既に存在するレコードを更新する。また、分散キャッシュアプリケーション４０５は、各キャッシュメモリ２０３Ａ、２０３Ｂ、２０３Ｃ、２０３Ｄ．．．２０３φのパージを強制する機能も有する。
【００４４】
なお、キャッシュＡＰＩ４０３は、まず、キャッシュ２０５のローカルコピー（またはキャッシュ２０５の一部分のコピー）からの要求レコードをキャッシュメモリ２０３から得ることによって、ＧＥＴ演算の完了を試みる。本発明のある好適な実施形態においては、各キャッシュメモリ２０３はキャッシュ２０５の完全コピーを格納しているので、この要求は直ちに成功する。しかし、要求レコードがローカルキャッシュメモリ２０３内に見つからない場合（キャッシュメモリ２０３に、要求レコードを含まないキャッシュ２０５の一部分、または、崩壊したキャッシュ２０５のコピーしか含まれていない場合）、キャッシュＡＰＩ４０３は、別のソースからレコードを得るために、分散キャッシュアプリケーション４０５に関わりを持つ。図２Ａおよび図２Ｂに示す本発明のピア構成の実施形態において、分散キャッシュアプリケーション４０５は、その他のプロキシサーバ装置１０５の１以上から要求レコードを検索しようとする。しかし、図３Ａおよび図３Ｂに示す本発明のマルチ階層構成の実施形態においては、分散キャッシュアプリケーション４０５は、キャッシュ格納庫３０３から要求レコードを検索しようとする。
【００４５】
同様に、分散キャッシュアプリケーション４０５がそのローカルキャッシュ２０３からのレコードを追加、更新、または削除するときは、対応する追加、更新、または削除コマンドをネットワーク内の他の装置に中継する。例えば、図２Ａおよび図２Ｂに示す本発明のピア構成の実施形態において、分散キャッシュアプリケーション４０５は、その他のプロキシサーバ装置１０５のそれぞれにコマンドを中継する。しかし、図３Ａおよび図３Ｂに示す本発明のマルチ階層構成の実施形態においては、分散キャッシュアプリケーション４０５は、キャッシュ格納庫３０３にコマンドを中継する。そして、キャッシュ格納庫３０３は、その他のプロキシサーバ装置１０５の１以上にコマンドを中継する。この様に、あるプロキシサーバ装置１０５のプロキシアプリケーション４０１が得た新状態情報または更新状態情報は、クライアント装置１０３との以降のセッションに使用するために、その他のプロキシサーバ装置１０５に送信される。
【００４６】
次に、分散キャッシュアプリケーション４０５によるキャッシュ２０５への状態情報の格納について説明する。当業者に理解されるように、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φの数の増加に伴い、クライアント装置とプロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φとの間で可能なセッションの数も増加する。したがって、キャッシュに格納される状態情報量も増加する。これは、図２Ａおよび図２Ｂに代表されるピア分散キャッシュの実施形態にも、図３Ａおよび図３Ｂに代表されるマルチ階層分散キャッシュの実施形態にも当てはまる。したがって、状態情報は、必要なときに迅速かつ効率よく検索可能なようにキャッシュ２０５に格納しなければならない。したがって、本発明のある好適な実施形態においては、ハッシュテーブルを用いてキャッシュ２０５を実施し、状態情報を格納してハッシュテーブルから検索するハッシュ機能を利用する。
【００４７】
上記のごとく当業で公知のように、各状態情報は、レコードの一部としてキャッシュ２０５に格納される。ハッシュテーブルにレコードを入力する場合、分散キャッシュアプリケーション４０５は、キーデータを数値にマップするために、キーフィールド（例えば、ＳＳＬセッション識別子）内のキーデータに対して算術アルゴリズムまたは「ハッシュ」演算を実行する。そして、キーデータにより識別された状態情報は、キーデータがハッシュ演算によりマップされた数値に対応する位置（「バケット」ともいう）においてハッシュテーブルに格納される。
【００４８】
なお、異なるキー値を同じハッシュ値にハッシュしてもよい。この様に、異なるレコードをハッシュ値の同じ位置またはバケットに格納してもよい。したがって、ハッシュ演算は、可能なキーデータ値の全範囲に対してハッシュ値の均一な分布が得られるように選択される。これにより、ハッシュテーブル内の特定の位置にレコードが数量的に不均衡に格納されることはない。すなわち、ハッシュテーブル内にレコードを均一に分布させるハッシュ演算を採用することが好ましい。この様に、レコードを検索する際に、ハッシュテーブル内の如何なる位置からのレコード検索の平均時間も、ハッシュテーブル内の他の位置からのものと僅差または同一にしなければならい。
【００４９】
本発明のある好適な実施形態によれば、「ＢＵＺｈａｓｈ」ハッシュアルゴリズムを用いて、状態情報レコードをキャッシュ２０５内に均一に分布させる。このハッシュアルゴリズムは、本発明にその全体が引用により組み込まれている、ロバート・ウズガリス（Robert Uzgalis）による「ハッシュ概念およびＪａｖａプログラミング言語（Hashing  Concepts  and  the  Java  Programming  Language）.」モ１９９６に記載されている。この著書に記載されているとおり、ＢＵＺｈａｓｈアルゴリズムは、従来のようにＳｋｅｔｃｈｙアルゴリズム言語を用いて以下のように演算する。
【００５０】
2004532443.tif 000003
もちろん、当業者に理解されるように、キャッシュ２０５の異なる構成（例えば、異なるキー範囲）に対応してＢＵＺｈａｓｈアルゴリズムを変更できる。
【００５１】
ウズガリスの著書に記載されているように、ＢＵＺｈａｓｈアルゴリズムは、２進キー値に適用される場合、任意のキー値からランダム数を生成したり、テーブル内で可能な範囲のキー値を均一に分布させたりする際に特に有効である。しかし、当業者に理解されるように、状態情報をキャッシュ２０５に格納するために、当業で公知のその他のハッシュアルゴリズムを利用してもよい。また、状態情報をキャッシュ２０５に格納するために使用可能な新たなハッシュアルゴリズムを開発してもよいことも明白である。
【００５２】
なお、分散キャッシュアプリケーション４０５は、全てのキー値を非透過的に（オペークに）処理して、全てのキー値を一意的なものと仮定して演算する。すなわち、一意的なキーは、キャッシュ２０５内の単一のレコードのみを識別することができる。既存のレコードと同一のキーデータを有するもう一つのレコードをキャッシュ２０５に追加すると、一方のレコードのみが生き残る。しかし、同一キーデータを用いて異なるレコードを参照するようにすることが望ましい。例えば、前述のように、ＳＳＬセッション識別子をキーデータとして用いて、レコードをＳＳＬ再開情報と同定するようにしてもよい。また、クライアント装置１０３のユーザのための認証情報（例えば、クライアント装置のユーザがマスタサーバ装置１０７からアクセスできるデータを決定する認証情報）を有するレコードなどの別のレコードを識別するために、ＳＳＬセッション識別子を用いることが望ましい。
【００５３】
したがって、本発明の様々な実施形態において、キャッシュＡＰＩ４０３は、同一のキーデータを共有する２つの異なるレコードを区別するテーブル識別子を使用することができる。本発明のこれら様々な実施形態において、プロキシアプリケーション４０１は、キーデータの指定に関わるキャッシュＡＰＩ４０３を介した全コールの一部として、キーデータに付加されたテーブル識別値を指定する。事実、これにより、プロキシアプリケーション４０１は、特定キーにより識別されたレコードの書き込みと読み出しとを行うべき仮想テーブルを特定することができる。もちろん、当業者に理解されるように、上記のようにキャッシュ２０５の全レコードを単一のハッシュテーブルに格納するので、これはロジック構成にすぎない。
【００５４】
好ましくは、プロキシアプリケーション４０１は、各テーブル識別値が適切に生成されて一貫して適用されるように保証する責務を負う。プロキシアプリケーション４０１は、キーに対してテーブル識別子を付加し、キーをキャッシュＡＰＩ４０３に送る。または、バッファ割当演算やコピー演算を省略するために、プロキシアプリケーション４０１はキャッシュＡＰＩ４０３にテーブル識別子を送り、キャッシュＡＰＩ４０３はテーブル識別子を付加する。キャッシュＡＰＩ４０３は、キーデータの一部としてテーブル識別子を処理するので、プロキシアプリケーション４０１は、この値のサイズを可能な限り縮小することが好ましい。テーブル識別子のサイズの縮小により、最適なメモリ使用と最適なハッシュ性能とが可能となる。
【００５５】
キャッシュメモリ２０３は、如何なるタイプのメモリ媒体であってもよい。しかし、当業者に理解されるように、キャッシュメモリ２０３は、ＲＡＭまたはメインメモリと一般的に呼ばれている読出可能／書込可能半導体メモリ装置として実施することが好ましく、この様なタイプのメモリ装置は、迅速な情報格納と検索とが可能である。現在、サーバ装置として従来から使用されているコンピュータは、２ギガバイトから４ギガバイトの情報を格納できるこの様なメモリを備えている。したがって、各プロキシサーバ装置１０５用のこのタイプのメモリ装置に２００万〜４００万キロバイト程度のレコードを格納することができる。もちろん、磁気媒体や光媒体などの他のタイプのメモリ媒体を代替として利用することもできる。
【００５６】
本発明のある実施形態によれば、通信機アプリケーション４０７は、ネットワーク内の装置間において、ユニキャストやＴＣＰ／ＩＰのような通信など（受信確認ベースの）ポイント間通信が可能である。このタイプの通信は、例えば、新たに開始されたキャッシュメモリ２０３と既存のキャッシュメモリ２０３との間で状態情報を同期させたり、状態情報の全てが、対応するプロキシアプリケーション４０１により使用される前に、新たなキャッシュメモリ２０３に正確にコピーされることを保証するのに有用である。
【００５７】
通信機アプリケーション４０７により提供されるこのタイプのポイント間通信（例えば、ユニキャストまたはＴＣＰ／ＩＰのような通信）は、また、他のプロキシサーバ装置１０５のキャッシュメモリ２０３内の個々のレコードの更新や追加のために、分散キャッシュアプリケーション４０５により使用される。しかし、上述のように、図２Ａおよび図２Ｂに示す本発明の実施形態においては、プロキシサーバ装置１０５の数の増大に伴って、各キャッシュメモリ２０３に状態情報を書き込むためのネットワークリソースに対するオーバヘッドが増大する。これは、各プロキシサーバ装置１０５が、別個の書込プロセスを用いて各キャッシュメモリ２０３に新状態情報または更新状態情報を書き込み、各キャッシュメモリから書込コマンド受領確認を応答受信しなければならないからであり、ネットワーク２０１内の各プロキシサーバ装置１０５にとっては、多大なネットワークトラフィック量と処理時間とを要する。より具体的には、通信を受信する装置（例えば、プロキシサーバ装置１０５）の数をＮとすると、各通信で送信されるデータパケット数は２Ｎとなる。
【００５８】
したがって、例えば、ポイント間メッセージ送信を用いて、通信機アプリケーション４０７からのメッセージをネットワーク内の適切な各受信側装置に個々に配信できる一方で、このタイプの通信は、本発明の有効性および速度を制約する。それに対応して、本発明のある好適な実施形態においては、通信機アプリケーション４０７は、信頼性のあるマルチキャスト通信も提供する。当業で公知のように、通信手法は、（ａ）この様な手法により送信されるデータパケットが正確に配列され、重複を受信側で廃棄可能な場合や、（ｂ）この様な手法により、受信側が送信中のデータパケットの喪失時点を検出できる場合、（ｃ）この様な手法により、送信中に喪失したデータパケットを得るために受信側に修復機構が提供されている場合に、信頼性があると判断される。当業で周知のように、マルチキャストは、異なるネットワーク装置が単一のネットワークアドレスに送信されたメッセージを受信する手順である。
【００５９】
したがって、通信機アプリケーション４０７は、ネットワーク内の適切な装置に対して状態情報の追加、更新、または削除を行うために、信頼性のあるマルチキャスト送信を利用してもよい。信頼性のあるマルチキャストを利用することによって、本発明のこれらの実施形態において、状態情報を単一の共有マルチキャストアドレスに送信するだけで、同時に多数の異なる装置に状態情報を良好に送信する。前述のように、マルチキャストプロセスは当業で周知であり、マルチキャスト通信を円滑にするために、マルチキャスト・トランスファ・プロトコル（ＭＴＰ）など幾つかのマルチキャストプロトコルが確立されている。
【００６０】
マルチキャスト通信手法の１タイプとして、肯定アプリケーション確認を有するマルチキャスト通信がある。この手法によると、マルチキャスト送信を受信するアプリケーションは、送信されたデータを成功裏に処理した後、マルチキャスト送信を発信した装置に対して確認を送り返す。このタイプの信頼性のあるマルチキャスト通信は、ピア構成の実施形態においては、他のキャッシュメモリ２０３（マルチ階層構造の実施形態においてはキャッシュ格納庫３０３）に状態情報を追加するために分散キャッシュアプリケーション４０５からのＡＤＤコマンドを中継する場合に、通信機アプリケーション４０７により採用されることが好ましい。ピア構成の実施形態においては、通信を受信する装置（例えば、プロキシサーバ装置１０５）の数をＮとすると、信頼性のある肯定確認マルチキャスト通信手法を使用することによって、各通信のためにネットワーク全体に送信すべきデータパケットの数が１＋Ｎに低減される。すなわち、１つの通信がＮ個の装置のそれぞれにマルチキャストされ、Ｎ個の肯定確認が発信側装置に送り返される。
【００６１】
信頼性のある肯定確認マルチキャストによって、多数の装置が、同時に更新状態情報または新状態情報を確実に受信することができる一方で、ピア構成での実施のためにはかなりのネットワークリソースが必要となる。マルチキャストメッセージを受信する各装置は、メッセージの発信元のネットワーク装置に対して通信受信確認を個別に行う必要があるので、多数のプロキシサーバ装置１０５を有するネットワークにおいては（すなわち、Ｎが大きな場合には）、信頼性のある肯定確認マルチキャストを利用した各プロキシサーバ装置１０５への情報送信は、ネットワークの性能を著しく劣化させる。
【００６２】
しかし、本発明の様々な用途において、上記のマルチ階層構成の実施形態は、ネットワークリソースの使用を更に低減することができる。この様な実施形態において、新状態情報や更新状態情報は、信頼性のある肯定確認ベースの通信手法を利用して、キャッシュ格納庫３０３にのみ送信すればよい。すると、プロキシサーバ装置１０５は、信頼性の低い（ネットワークリソースに関しては安価な）通信手法を利用して新状態情報や更新状態情報を得たり、必要な場合にはキャッシュ格納庫３０３から新状態情報や更新状態情報を得ることができる。この様にマルチ階層構成を利用することによって、新状態情報や更新状態情報を受信するキャッシュ格納庫３０３の数をｎとした場合、新状態情報や更新状態情報を追加する度にネットワーク全体に送信すべきパケットの数を更に１＋ｎへと低減することができる。本発明においては、通常、キャッシュ格納庫３０３の数ｎはプロキシサーバ装置１０５の数Ｎよりもずっと小さいので、マルチ階層構成の利用により、新状態情報や更新状態情報のキャッシュに必要なネットワークリソースの使用を、個々のリソースのネットワークトラフィックおよび処理時間に関して、大幅に低減することができる。
【００６３】
本発明のマルチ階層構成の実施形態において、プロキシサーバ装置１０５は、信頼性のあるマルチキャスト通信を提供するために、上記の肯定確認手法の代わりに、例えば、否定確認（ＮＡＣＫ）手法を利用して、新状態情報または更新状態情報を受信してもよい。否定確認マルチキャスト手順によれば、マルチキャストメッセージを受信する装置は、メッセージを受信しても発信元装置に確認を送信しない。その代わり、各受信側装置は、マルチキャスト通信の一部分を喪失したと決定したときのみ、発信元装置に応答する。
【００６４】
例えば、通信プロトコルの中には、通信の各データセグメントに連続番号を付与する必要があるものもある。否定確認手順によれば、この様なプロトコルにより通信を受信する装置は、データセグメントの１つが受信されていないことを認識した時（すなわち、連番のデータセグメントの喪失を決定した時）のみ、発信元装置に応答する。したがって、本発明の様々な実施形態によれば、通信機アプリケーション４０７は、この手法を用いて、ネットワーク内の別の装置からのデータが受信されていないことを認識した時に、その装置に否定確認を与える。
【００６５】
この様に、本発明のマルチ階層構成の実施形態において、否定確認型の信頼性のあるマルチキャスト構成を利用して、新状態情報または更新状態情報を各プロキシサーバ装置１０５に配信することができ、装置間の通信トラフィック量を低減することができる。もちろん、関連する受信側装置の全てにおいて、単一のマルチキャスト送信を利用して、肯定確認マルチキャスト通信および否定確認マルチキャスト通信を達成可能である。送信側の装置は、別のマルチキャスト送信の前に、肯定確認手法を利用して通信するように指定された全ての装置からの肯定確認を受信するまで待機する。そして、送信側装置は、適切な否定確認マルチキャスト通信プロトコルにより受信した否定確認にも応答する。
【００６６】
しかし、従来の否定確認型の信頼性のあるマルチキャスト通信手法には、「オーバーラン」とも呼ばれる更なる問題がある。この状況下、送信側装置は、１以上の受信側装置の処理能力よりも速くデータを送信するので、送信されたデータの一部が失われる結果となる。さらに、送信側装置は、あまりにも大量の情報を送信するので、他の装置から否定確認を受信することができず、これは、通信の一部が失われるということを意味する。しかし、この問題の程度は、ネットワーク全体の通信トラフィックフロー速度に依存する。ただし、ネットワークの通信トラフィックがほとんどない場合、マルチキャスト通信を発信した装置は、受信装置をオーバーランさせることなく、否定確認を失うことなく、高速で情報を送信することができる。同様に、ネットワークの通信トラフィックが多くなると、マルチキャスト通信を発信した装置は、受信装置のオーバーランや否定確認の喪失を回避するために、より低速でデータを送信しなければならない。
【００６７】
この問題を解決するために、先行技術の否定確認マルチキャストシステムは、マルチキャスト通信においてデータを送信する速度に絶対的な制限を設定し、あらゆる状況下で他の装置からの否定確認を受信できるように保証することを提案している。しかし、この先行技術の定速による解決策は、ネットワーク全体の変化する通信トラフィックフローを考慮していない。その代わり、全ての否定確認の受信を保証するために、可能な限り低効率で動作する。その他、「マスタ」や「トークン」構成の決定論的な手法を利用する先行技術のシステムもあるが、この様なシステムは、比較的低速かつ非効率的であり、複雑である。
【００６８】
それに対応して、本発明のある好適な実施形態において、通信機アプリケーション４０７は、ネットワーク全体の通信トラフィックフローを決定するためのトラフィックフロー速度検出プロセスと共に、否定確認型の信頼性のあるマルチキャスト通信を提供する。ネットワーク全体の通信トラフィックフローを正確に検出することによって、通信機アプリケーション４０７は、信頼性のある否定確認マルチキャスト通信におけるデータ送信速度を相応に上げたり下げたりすることができる。以下、このフロー速度検出プロセスについて、図５Ａおよび図５Ｂを参照しながら説明する。
【００６９】
図示のように、通信機アプリケーション４０７は、データインタフェース部５０１を有する。インタフェース５０１は、ネットワーク内の他の装置にマルチキャストされるデータセグメント５０５を収容する出力キュー５０３を備えている。インタフェース５０１は、他の装置からマルチキャスト通信により受信されたデータセグメント５０９を収容する入力キュー５０７を更に有する。本発明のこれらの好適な実施形態によれば、通信機アプリケーション４０７は、それ自体のマルチキャスト送信の受信者でもある。したがって、通信機アプリケーション４０７は、ネットワーク内のその他の装置へ送信したデータセグメントを受信する。最新の送信データパケットが通信機アプリケーション４０７で受信された時点を決定することによって、通信機アプリケーション４０７は、ネットワーク内のトラフィックフローレベルを決定することができる。例えば、本発明のある好適な実施形態において、通信機アプリケーション４０７は、以前に送信されたデータセグメントをその入力キュー５０７に受信するまで、出力キュー５０３からの別のデータセグメントの出力を控える。
【００７０】
当業者に理解されるように、このフロー速度検出手法に対して数々の変形態様が可能である。例えば、通信機アプリケーション４０７は、直前の送信データセグメント（例えば、データ１）が入力キュー５０７（図５Ｂ参照）に受信されるまで、新たなデータセグメント（例えば、図５Ａおよび図５Ｂに示すデータ２）の送信を延期する。または、通信機アプリケーション４０７は、ネットワーク全体のトラフィックの現在のフロー状況を確認するために、それ自体の送信データセグメント間に発生する入力キュー５０７内のデータセグメントの平均数を決定する。ネットワーク全体のトラフィックのフロー状況の決定のために自己送信データセグメントを利用して、その他数々の改良態様が可能である。さらに、この手法は、マルチキャストされない通信にも採用可能である。例えば、通信機アプリケーション４０７は、ポイント間メッセージのコピーをフィードバックループ上でそれ自体に送信することができる。通信機アプリケーション４０７は、ネットワーク上でトラフィック量を決定するために、通信機アプリケーション４０７がそれ自体に送信したメッセージが入力キュー５０７内で発生することを利用する。
【００７１】
また、前述のように、肯定確認マルチキャスト通信手法および否定確認マルチキャスト通信手法を利用してメッセージを配信するために、同じマルチキャスト送信を使用することができる。なお、否定確認マルチキャスト通信手法をフロー検出と共に利用した場合、否定確認マルチキャスト手法と共に用いたフロー制御機能により、肯定確認マルチキャスト手法の動作を制御する。つまり、送信側装置は、肯定確認マルチキャスト通信手法で通信する装置を含め、如何なる装置にもマルチキャスト送信を、フロー制御機能により許容される速度よりも高速で行うことはしない。
【００７２】
したがって、このフロー制御否定確認マルチキャスト通信手法は、本発明のマルチ階層構成において、ネットワークトラフィックに関しても、送信側装置および受信側装置での処理時間に関しても、ネットワークリソースの使用を大幅に増大することなく、新たなキャッシュ情報および更新キャッシュ情報をプロキシサーバ装置１０５に配信するために、通信アプリケーション４０７によって提供されることが好ましい。もちろん、通信機アプリケーション４０７は、プロキシサーバ１０３の様々な管理機能のために、信頼性のない通信手法も提供する。
【００７３】
したがって、信頼性のあるマルチキャスト通信手法（すなわち、肯定確認マルチキャスト通信手法およびフロー制御否定確認マルチキャスト通信手法）を利用して多数の装置に状態情報を同時配信することによって、プロキシサーバ装置１０５とクライアント装置１０３との間のセッションの状態情報を、複数の異なるキャッシュメモリ２０３およびキャッシュ格納庫３０３に効率よくキャッシュ可能となる。クライアント装置１０３とあるプロキシサーバ装置１０５との間の接続が終了した場合、キャッシュされた状態情報を利用して、別のプロキシサーバ装置１０５が、クライアント装置とのセッションを再開する。
【００７４】
本発明を特定の典型的な実施形態により説明してきたが、本発明の数々の特徴および利点は、この様な記述から明らかである。例えば、上述の実施形態の多くは、ＳＳＬセッション情報の格納に関わるものであるが、本発明によれば、他のタイプの状態情報を多数のロケーションにキャッシュすることができる。前述のとおり、状態情報は、クライアント装置１０３とのセッション中に送信されたデータパケット用のＴＣＰ／ＩＰヘッダデータであってもよい。さらに、状態情報は、任意の通信プロトコルに従ってクライアント装置１０３とプロキシサーバ装置１０５との間の送信データセグメントを制御するための如何なるタイプのデータセグメント情報であってよい。
【００７５】
また、前述のように、状態情報は、如何なるタイプの識別／認証情報であってよい。例えば、マスタサーバ装置１０７は、指定された個人にのみアクセス可能な情報を含んでいてもよい。したがって、ユーザが、プロキシサーバ装置１０５とのセッションを介してマスタサーバ装置１０７と通信するためにクライアント装置１０３を使用する場合、プロキシサーバ装置１０５は、ユーザのＩＤを認証するためにユーザ名とパスワードを受信する。この構成により、クライアント装置１０３とプロキシサーバ装置１０５との間のセッションのための接続が終了すると、上記の本発明の実施形態によれば、クライアント装置１０３は、別のプロキシサーバ装置１０５とのセッションを再開することができる。しかし、ユーザは、マスタサーバ１０７に対する認証プロセスを繰り返すために、ユーザ名とパスワードを再入力しなければならない。それに対応して、本発明の代替の実施形態では、本発明に従って、多数のロケーションにおいてキャッシュ２０５にユーザのユーザ名とパスワードとを状態情報として格納する。当業者に理解されるように、対応するＳＳＬセッション識別子により、または、その他の適切なキーによりユーザの認証情報をキャッシュ２０５に格納することができる。
【００７６】
さらに、本発明の様々な実施形態において、マスタサーバ装置１０７を省略してもよい。例えば、プロキシサーバ装置１０５Ａ、１０５Ｂ、１０５Ｃ、１０５Ｄ．．．１０５φは、ウェブサイトを維持するためにマスタサーバ１０７なしに採用されるサーバ装置であってもよい。ウェブサイトが、アイテムの購入または取得の対象のものである場合、ウェブサイトからの購入のために指定されるアイテムや、クライアント装置１０３を使用するユーザに関する他の購入情報が、状態情報に含まれる。したがって、この情報には、ユーザの請求書送付先、クレジットカード口座や電子マネー情報などのユーザの金銭取引情報、配達情報などが含まれる。これにより、クライアント装置１０３とプロキシサーバ装置１０５との間のセッションの接続が終了しても、ユーザは、ユーザが受け取りたいアイテムを再指定したり、ユーザの購入情報を再入力する必要がない。その代わり、ユーザのクライアント装置１０３は、そのセッションの状態情報にアクセスを有する別のプロキシサーバ装置１０３とのセッションを再開できる。
【００７７】
したがって、添付の特許請求の範囲は、本発明のこの様な特徴および利点の全てを包含することを意図するものである。さらに、当業者にとって、数々の改良態様や変更態様を発想することは容易であるので、この明細書は、本発明を図示および記載どおりの構成や動作に限定することを意図するものではない。例えば、本発明は、ここに記載されている装置や方法の１以上の構成要素を組み合わせて、または、部分的に組み合わせて含むものであってもよい。
【００７８】
さらに、特定の一連のトランザクションやステップを用いて本発明を説明してきたが、当業者にとっては、本発明の範囲が前記の一連のトランザクションやステップに限定されるものではないことが明らかであろう。本発明をプログラミングするために使用されるロジック、システムフロー、テーブル、およびデータ構成の生成には、本質的な自由度がある。演算を行うデータ構成やデータ値は、本発明の趣旨を逸脱するもの、または、本発明の範囲を制限するものでない限り、明示的なものでも、他のデータから導出されたものでも、他のソースから取り込まれたものでも、プログラム演算またはロジック演算の結果でもよい。この特許における索引付け、検索、およびデータ処理のためのアルゴリズムは、本発明の趣旨を逸脱するもの、または、本発明の範囲を制限するものでない限り、様々な性能／システムインテグレーション要件をサポートするために、置換または変更されてもよい。
【００７９】
さらに、本発明について、ハードウェアとソフトウェアとの特定の組み合わせを用いて説明したが、ハードウェアとソフトウェアとのその他の組み合わせも、本発明の範囲内であると認識すべきである。本発明は、ハードウェアのみ、もしくは、ソフトウェアのみ、または、その組み合わせを用いて実施してもよい。したがって、この明細書および図面は、限定的ではなく例示的な意味合いと見なされるものとする。したがって、本発明の定義に関し、この明細書（本発明の図面、特許請求の範囲、要約書を含む）の１以上の構成要素の任意の組み合わせ、または、部分的な組み合わせを組み込んだ多数の代替の組み合わせが存在する。したがって、適切な改良態様および均等物は、全て、添付の特許請求の範囲に属するものと見なす。
【図面の簡単な説明】
【００８０】
【図１】クライアント装置と、複数のプロキシサーバ装置と、マスタサーバ装置とを用いた従来のネットワーク構成を示す。
【図２Ａ】本発明のある実施形態に係る２つのネットワークを示す。
【図２Ｂ】本発明のある実施形態に係る２つのネットワークを示す。
【図３Ａ】本発明の別の実施形態に係る２つのネットワークを示す。
【図３Ｂ】本発明の別の実施形態に係る２つのネットワークを示す。
【図４】本発明のある実施形態に係るプロキシサーバ装置を示す。
【図５Ａ】本発明のある実施形態に係るネットワークフローレベル検出手法を示す。
【図５Ｂ】本発明のある実施形態に係るネットワークフローレベル検出手法を示す。
【図１】
2004532443.tif 000004
【図２Ａ】
2004532443.tif 000005
【図２Ｂ】
2004532443.tif 000006
【図３Ａ】
2004532443.tif 000007
【図３Ｂ】
2004532443.tif 000008
【図４】
2004532443.tif 000009
【図５Ａ】
2004532443.tif 000010
【図５Ｂ】
2004532443.tif 000011
【国際公開パンフレット】
2004532443.tif 000012
2004532443.tif 000013
2004532443.tif 000014
2004532443.tif 000015
2004532443.tif 000016
2004532443.tif 000017
2004532443.tif 000018
2004532443.tif 000019
2004532443.tif 000020
2004532443.tif 000021
2004532443.tif 000022
2004532443.tif 000023
2004532443.tif 000024
2004532443.tif 000025
2004532443.tif 000026
2004532443.tif 000027
2004532443.tif 000028
2004532443.tif 000029
2004532443.tif 000030
2004532443.tif 000031
2004532443.tif 000032
2004532443.tif 000033
2004532443.tif 000034
2004532443.tif 000035
2004532443.tif 000036
2004532443.tif 000037
2004532443.tif 000038
2004532443.tif 000039
2004532443.tif 000040
2004532443.tif 000041
2004532443.tif 000042
2004532443.tif 000043
2004532443.tif 000044
2004532443.tif 000045
2004532443.tif 000046
2004532443.tif 000047
2004532443.tif 000048
2004532443.tif 000049
2004532443.tif 000050
2004532443.tif 000051
2004532443.tif 000052
【国際調査報告】
2004532443.tif 000053