(57)【要約】分散キャッシングシステムにおいて、ウェブサーバは、ユーザデバイスから、ウェブサービスに対する要求を受信することができる。ウェブサーバは、要求を解析して、その要求に含まれるクッキーを識別し、クッキーが割り当て情報を含むかどうかを判定することができる。割り当て情報は、複数のキャッシュサーバがウェブサービスと関連するある特定のデータを一時的に記憶していることを示す場合がある。ウェブサーバは、キャッシュサーバからある特定のデータを要求し、次いで、ユーザデバイスにその特定のデータを伝送することができる。キャッシュサーバのうちの１つが、要求に応答することに失敗した場合、ウェブサーバは、キャッシュデータを再割り当てし、クッキーに記憶された割り当て情報を上書きすることによって、クッキーを更新することができる。
2014519100.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサによって実行される時、
ユーザデバイスから、ウェブサービスと関連するデータに対する要求を受信することと、
前記ウェブサービスと関連する前記データの少なくとも一部分を、１つ以上のキャッシュサーバに割り当てることと、
割り当て情報を、前記ユーザデバイスに指定されたクッキーに記録することであって、前記割り当て情報は、前記データの前記少なくとも一部分と、前記１つ以上のキャッシュサーバとの間の関係を示すことと、
前記ユーザデバイスから、前記データの前記少なくとも一部分に関連するデータに対する別の要求を受信することであって、前記別の要求は、前記クッキーを含むことと、
前記クッキーを識別して、前記割り当て情報を得ることと、
前記割り当て情報に基づいて、前記ユーザデバイスへの前記データの前記少なくとも一部分の伝送を促進することと、
を含む、動作を行うように、前記１つ以上のプロセッサを構成する、コンピュータ実行可能命令を記憶する、１つ以上のコンピュータ可読媒体。
【請求項２】
前記１つ以上のサーバは、複数のキャッシュサーバを含み、前記動作は、
前記複数のキャッシュサーバから、前記データの前記少なくとも一部分を要求することと、
前記複数のキャッシュサーバのうちの１つのキャッシュサーバが、所定の時間内に、前記データの前記少なくとも一部分に対する前記要求に応答することに失敗したことを判定することと、
前記データの前記少なくとも一部分を、前記複数のキャッシュサーバの別のキャッシュサーバに再割り当てすることと、
前記クッキー内の前記割り当て情報を、前記再割り当てを反映するように更新することと、
をさらに含む、請求項１に記載の１つ以上のコンピュータ可読媒体。
【請求項３】
前記別のキャッシュサーバへの前記データの前記少なくとも一部分の前記再割り当ては、複数のキャッシュサーバの所定の順序に基づいて、前記データの前記少なくとも一部分を、前記別のキャッシュサーバに再割り当てすることを含む、請求項２に記載の１つ以上のコンピュータ可読媒体。
【請求項４】
前記１つ以上のキャッシュサーバは、複数のキャッシュサーバを含み、前記動作は、
前記複数のキャッシュサーバがキャッシュサーバを追加または除去するかを判定することと、
前記データの前記少なくとも一部分を、所定の規則に基づいて、前記複数のキャッシュサーバに再割り当てすることと、
前記クッキー内の前記割り当て情報を、前記再割り当てを反映するように更新することと、
をさらに含む、請求項１に記載の１つ以上のコンピュータ可読媒体。
【請求項５】
前記動作は、
サービスプロバイダのサーバから、前記データを要求することと、
前記サービスプロバイダから、前記データを受信することと、
前記サービスプロバイダのサーバから受信した前記データから、前記データの前記少なくとも一部分を識別することと、
をさらに含む、請求項１に記載の１つ以上のコンピュータ可読媒体。
【請求項６】
前記１つ以上のキャッシュサーバは、メムキャッシュ（ｍｅｍｃａｃｈｅｄ）型サーバを含む、請求項１に記載の１つ以上のコンピュータ可読媒体。
【請求項７】
前記データの前記少なくとも一部分の前記割り当ては、ＨＡＳＨ規則に基づいて、前記データの前記少なくとも一部分を割り当てることを含む、請求項１に記載の１つ以上のコンピュータ可読媒体。
【請求項８】
前記ウェブサービスは、データベースサービス、支払サービス、およびウェブ検索エンジンのうちの少なくとも１つを含む、請求項１に記載の１つ以上のコンピュータ可読媒体。
【請求項９】
ユーザデバイスから、ウェブサービスに対する要求を受信することと、
前記要求を解析して、１つ以上のキャッシュサーバが前記ウェブサービスと関連するデータの少なくとも一部分を一時的に記憶することを示す割り当て情報を有するクッキーを識別することと、
前記１つ以上のキャッシュサーバから、前記割り当て情報に基づいて、前記データの前記少なくとも一部分を要求することと、
前記データの前記要求された前記少なくとも一部分を、前記ユーザデバイスに伝送することと、
を含む、方法。
【請求項１０】
前記クッキーが割り当て情報を有さないことを判定することと、
ウェブサービスサーバから、前記ウェブサービスと関連する特定のデータを要求することと、
複数のキャッシュサーバを含む前記１つ以上のキャッシュサーバに、前記特定のデータを割り当てることと、
割り当て情報を、前記ユーザデバイスに指定された前記クッキーに記録することと、
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記複数のキャッシュサーバへの前記特定のデータの前記割り当ては、複数のキャッシュサーバの所定の順序に基づいて、前記複数のキャッシュサーバに前記特定のデータを割り当てることを含む、請求項１０に記載の方法。
【請求項１２】
前記特定のデータの前記割り当ては、ＨＡＳＨ規則に基づいて、前記特定のデータを割り当てることを含む、請求項１０に記載の方法。
【請求項１３】
前記１つ以上のキャッシュサーバのうちの１つのキャッシュサーバが、前記データの前記要求された前記少なくとも一部分を提供することに失敗したことを判定することであって、前記１つ以上のキャッシュサーバは、複数のキャッシュサーバを含むことと、
ウェブサービスサーバから、前記データの前記少なくとも一部分を要求することと、
前記データの前記少なくとも一部分を、前記複数のキャッシュサーバのうちの別のキャッシュサーバに再割り当てすることと、
前記クッキー内の前記割り当て情報を、前記再割り当てを反映するように更新することと、
をさらに含む、請求項９に記載の方法。
【請求項１４】
前記１つ以上のキャッシュサーバがキャッシュサーバを追加または削除するかを判定することであって、前記１つ以上のサーバは、前記複数のキャッシュサーバを含むことと、
前記データの前記少なくとも一部分を、所定の規則に基づいて、前記複数のキャッシュサーバに再割り当てすることと、
前記クッキー内の前記割り当て情報を、前記再割り当てを反映するように更新することと、
をさらに含む、請求項９に記載の方法。
【請求項１５】
前記１つ以上のキャッシュサーバは、メムキャッシュ型サーバを含む、請求項９に記載の方法。
【請求項１６】
１つ以上のプロセッサによって実行されると、
ユーザデバイスから、ウェブサービスに対する要求を受信することと、
前記要求を解析して、前記ユーザデバイスに指定されたクッキーを判定することと、
前記クッキーが、複数のキャッシュサーバ内の前記ウェブサービスと関連するデータの割り当てを示す割り当て情報を有するかどうかを判定することと、
前記クッキーが前記割り当て情報を有する場合には、
前記割り当て情報に基づいて、前記ウェブサービスと関連する前記データを判定することと、
前記ウェブサービスと関連する前記データの前記ユーザデバイスへの伝送を促進することと、
前記クッキーが前記割り当て情報を有さない場合には、
ウェブサービスサーバから、前記ウェブサービスと関連する前記データを受信することと、
前記ウェブサービスと関連する前記データを、前記複数のキャッシュサーバに割り当てることと、
前記割り当て情報を、前記クッキーに記録することと、
を含む、動作を行うように、前記１つ以上のプロセッサを構成する、コンピュータ実行可能命令を記憶する、１つ以上のコンピュータ可読媒体。
【請求項１７】
前記動作は、
前記要求にクッキーが含まれていないことを判定することと、
前記クッキーを作成することと、
をさらに含む、請求項１６に記載の１つ以上のコンピュータ可読媒体。
【請求項１８】
前記動作は、
前記複数のキャッシュサーバから、前記ウェブサービスと関連する前記データを要求することと、
前記複数のキャッシュサーバのうちの１つのキャッシュサーバが、所定の時間内に、前記要求に応答することに失敗したことを判定することと、
前記ウェブサービスと関連する前記データを、前記複数のキャッシュサーバのうちの別のキャッシュサーバに再割り当てすることと、
前記クッキー内の前記割り当て情報を、前記再割り当てを反映するように更新することと、
をさらに含む、請求項１６に記載の１つ以上のコンピュータ可読媒体。
【請求項１９】
前記動作は、
前記複数のキャッシュサーバがキャッシュサーバを追加または削除するかを判定することと、
前記ウェブサービスと関連する前記データを、所定の規則に基づいて、前記複数のキャッシュサーバに再割り当てすることと、
前記クッキー内の前記割り当て情報を、前記再割り当てを反映するように更新することと、
をさらに含む、請求項１６に記載の１つ以上のコンピュータ可読媒体。
【請求項２０】
前記複数のキャッシュサーバは、メムキャッシュ型サーバを含む、請求項１６に記載の１つ以上のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータキャッシング技術の分野に関する。具体的には、本開示は、分散キャッシング方法およびシステムに関する。
【背景技術】
【０００２】
本出願は、２０１１年３月１８日に出願された「Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃａｃｈｉｎｇ  Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ，Ｃａｃｈｅ  Ａｎａｌｙｓｉｓ  Ｍｅｔｈｏｄ  ａｎｄ  Ａｎａｌｙｓｉｓ  Ｓｙｓｔｅｍ」と題される中国特許出願第２０１１１０１２９０６０．Ｘ号の優先権を主張し、これは、参照によりその全体が本明細書に組み込まれる。
【０００３】
ウェブアプリケーションのクエリに応答して、ウェブサーバは、通常、一時記憶装置にキャッシュデータ（例えば、よく使用される情報と関連するウェブ文書の複製）を一時的に記憶する。一般的には、記憶容量を増加させ、データの整合性を確保するために、複数のキャッシュサーバを利用してキャッシュデータを記憶する。しかしながら、これらのキャッシュサーバへのある変更が、キャッシュデータの使用に問題を呈する場合がある。例えば、複数のキャッシュサーバへの新しいキャッシュサーバの追加、またはそこからのキャッシュサーバの除去が、キャッシュデータと複数のキャッシュサーバとの間の不一致を引き起こす場合がある。この不一致は、例えば、クエリに対するウェブサーバの応答時間を増加させる可能性がある。
【発明の概要】
【０００４】
ウェブサーバは、ユーザデバイスから、ウェブサービスと関連するデータに対する要求を受信する。データを受信した後、ウェブサーバは、そのデータの一部分または全てを複数のキャッシュサーバに割り当てることができる。対応する割り当て情報は、クッキーに記録することができ、それは次いで、ユーザデバイスに記憶される。ユーザデバイスからの別の要求に応答して、ウェブサーバは別の要求を解析して、クッキーに記憶された割り当て情報を識別し、割り当て情報に基づいてユーザデバイスへの要求されたデータの伝送を促進することができる。
【０００５】
いくつかの態様において、ウェブサーバは、キャッシュサーバのうちの１つのキャッシュサーバが、所定の時間内に要求に応答することに失敗したことを判定することができる。ウェブサーバは、キャッシュサーバによってキャッシュされたデータを、キャッシュサーバのうちの１つ以上のキャッシュサーバに割り当てることができる。ウェブサーバは次いで、割り当て情報を上書きすることによって、クッキーを更新することができる。
【図面の簡単な説明】
【０００６】
【図１】分散キャッシングシステムをサポートする例示的な環境のブロック図である。
【図２】図１の分散キャッシングシステムを使用してユーザがキャッシュデータを受信することを促進するための、第１の例示的なプロセスのフロー図である。
【図３】図１の分散キャッシングシステムを使用してキャッシュサーバから情報を要求するための、第２の例示的なプロセスのフロー図である。
【図４】図１のコンピューティング環境に含まれる、種々の構成要素の例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【０００７】
発明を実施するための形態を、添付の図面を参照しながら説明する。異なる図面における同じ参照番号の使用は、類似または同一の項目を示す。
【０００８】
図１は、分散キャッシングシステムをサポートする環境１００のブロック図である。環境１００は、ウェブサーバ１０２、キャッシュサーバ１０４、ウェブサービス１０６、ユーザ１０８、ユーザデバイス１１０、およびネットワーク１１２を含み得る。ユーザ１０８は、あるウェブサービス（例えば、データベースサービス、支払サービス、またはウェブ検索エンジン）のためのウェブアプリケーション１１４を実行することができる。ウェブアプリケーション１１４は、次に、ユーザデバイスを介して、ウェブサーバ１０２からある特定のデータを要求することができる。いくつかの実施形態において、ユーザデバイス１１０は、要求１１６を生成し、要求１１６をウェブサーバ１０２に伝送することができる。ウェブサーバ１０２は、直接的に、ウェブサービス１０６からあるデータを質問および／または受信することができる。
【０００９】
いくつかの実施形態によると、ウェブサーバは、ウェブアプリケーション１１４からのデータ要求に迅速に応答するために、要求されたデータの一部分または全てを、キャッシュデータ１２０としてキャッシュサーバ１０４上に記憶することができる。これらの場合において、ウェブサーバ１０２は、キャッシュサーバにキャッシュデータ１２０を記憶するように命令するための割り当てアルゴリズム１１８を提供することができ、これは、図２においてより詳細に説明される。
【００１０】
いくつかの実施形態において、ユーザデバイス１１０からの要求１１６に応答して、ウェブサーバ１０２は、要求されたデータがキャッシュサーバ１０４にキャッシュされているかどうかを判定することができる。キャッシュされている場合、ウェブサーバ１０２は、要求されたデータを、ユーザデバイス１１０に伝送することができる。いくつかの実施形態において、ユーザデバイスは、要求されたデータを、キャッシュサーバ１０４から受信することができる。
【００１１】
いくつかの実施形態において、ウェブサーバ１０２は、クッキー１２２を生成し、クッキー１２２をユーザデバイス１１０に記憶させることができる。クッキー１２２は、キャッシュサーバ１０４内のキャッシュデータ１２０の割り当てを示し得る、割り当て情報１２４を含むことができる。例えば、割り当て情報１２４は、キャッシュデータ１１８を記憶するキャッシュサーバ１０４のうち特定の１つ以上のキャッシュサーバを示し得る。
【００１２】
いくつかの実施形態において、要求１１６は、クッキー１２２を含むことができる。これらの場合において、ユーザデバイス１１０は、クッキー１２２を含む要求１１６を、ウェブサーバ１０２に伝送することができる。ウェブサーバ１０２は、要求１１６を解析して、クッキー１２２を識別し、割り当て情報１２４を取得することができる。割り当て情報１２４に基づいて、ウェブサーバは、キャッシュサーバ１０４のうち特定の１つ以上のキャッシュサーバを判定し、キャッシュデータ１２０を取得することができる。
【００１３】
図２は、図１の分散キャッシングシステムを使用して、ユーザがキャッシュデータを受信することを可能にする、例示的なプロセス２００のフロー図である。２０２において、ウェブサーバ１０２は、キャッシュデータ１２０をキャッシュサーバ１０４に割り付けることができる。いくつかの実施形態において、ウェブサーバ１０２は、キャッシュデータ１２０をキャッシュサーバ１０４に分散させてもよい。いくつかの実施形態において、ウェブサーバ１０２は、割り当てアルゴリズム１１８を伝送することによって、キャッシュサーバ１０４が、キャッシュデータ１２０をキャッシュサーバ１０４のうち１つ以上のキャッシュサーバに割り当てるように命令することができる。例えば、ユーザ１０８のキャッシュデータ１２０を割り当てるために、割り当てアルゴリズム１１８には、ハッシュ（ｘ）％Ｎ割り当て方法が含まれてもよい。ハッシュ値を、ユーザ１０８に対して計算することが可能であり、したがって、対応するキャッシュサーバ（例えば、ハッシュ（ユーザ１０８）％Ｎ）を、ユーザ１０８に割り付けることができる。いくつかの実施形態において、キャッシュサーバは、ランダムに数字を生成することによって、ランダムに割り付けることができる。これらの場合においては、キャッシュデータ１２０を、対応するキャッシュサーバ（例えば、ランダム（ユーザ１０８）％Ｎ）に割り当てることができる。
【００１４】
２０４において、ウェブサーバ１０２は、割り当て情報１２４をクッキー１２２に記録することができ、それが、ユーザデバイス１１０に記憶される。いくつかの実施形態において、ウェブサーバがキャッシュデータ１２０をキャッシュサーバ１０４に記憶および／または割り当てた時点で、ウェブサーバは、キャッシュデータ１２０の割り当て情報１２４を、クッキー１２２（例えば、ユーザのクライアント側クッキー）に書き込むことができる。これらの場合において、割り当て情報１２４は、キャッシュデータ１２０とキャッシュデータ１２０を記憶する１つ以上のキャッシュサーバとの間の相関関係を含んでもよい。
【００１５】
キャッシュデータ１２０の次のクエリについては、割り当て情報１２４を使用して、直接的に、キャッシュサーバ１０４のうちキャッシュデータ１２０を記憶しているキャッシュサーバの位置を特定することができる。１つを上回るウェブサーバ１０２が存在する場合は、ユーザの現在の要求を処理することに関与するサーバが、キャッシュデータ１２０の割り当て情報１２４をクッキー１２２に書き込むことができる。例えば、３つのキャッシュサーバ、Ｍ１、Ｍ２、およびＭ３が配置される。ユーザ１０８に対するキャッシュデータの特定の一部分がＭ１に記憶されている場合、ユーザＣのクライアント上のクッキー内の割り当て情報１２４には、キャッシュデータがＭ１に記憶されているということが記録されることになる。
【００１６】
２０６において、ウェブサーバ１０２は、ユーザデバイスが、キャッシュデータに関連するデータに対する別の要求を伝送する場合、ユーザ１０８がキャッシュデータ１２０を受信することを促進することができ、これは、図３でより詳細に説明される。いくつかの実施形態において、ウェブサーバ１０２は、クッキー１２２に記憶された割り当て情報１２４に基づいて、データを取り出し、次いで、そのデータをユーザデバイス１１０に伝送することができる。いくつかの実施形態において、ウェブサーバ１０２は、ユーザデバイス１１０へのデータの伝送を促進することができる。これらの場合において、ユーザデバイスは、キャッシュサーバ１０４から直接データを受信することができる。
【００１７】
図３は、図１の分散キャッシングシステムを使用して、キャッシュサーバから情報を要求するための例示的なプロセス３００のフロー図である。３０２において、ウェブサーバ１０２は、ユーザデバイス１１０から要求１１６を受信することができる。いくつかの実施形態において、ユーザデバイスは、ウェブサーバ１０２が要求１１６を受信する前に、別のウェブサーバに別の要求を伝送してもよい。例えば、ユーザ１０８の第１の要求は、サーバＷ１によって受信され、一方で、第２の要求は、サーバＷ２によって受信される。
【００１８】
３０４において、ウェブサーバ１０２は、要求１１６を解析して、クッキー１２２を取得することができる。クッキー１２２に基づいて、ウェブサーバ１０２は、３０６で割り当て情報を識別および抽出することができる。キャッシュデータ１２０を記憶している場合、割り当て情報１２４は、クッキー１２２にキャッシュデータ１２０用に記録されている。したがって、クッキー１２２に記憶された割り当て情報１２４を使用して、キャッシュサーバ１０４のうちの対応するキャッシュサーバの位置を特定することができる。
【００１９】
３０８において、ウェブサーバ１０２は、キャッシュデータ１２０について、キャッシュサーバ１０４に要求を伝送することができる。キャッシュデータ１２０を受信すると、ウェブサーバは、要求１１６に応答して、例えば、ユーザデバイス１１０にキャッシュデータ１２０を伝送することができる。
【００２０】
３１０において、ウェブサーバ１０２は、キャッシュサーバ１０４が、キャッシュデータ１２０用に、ウェブサーバ１０２によって送信された要求に応答することに失敗したかどうかを判定することができる。例えば、キャッシュサーバ１０３は、キャッシュサーバ１０４のうち対応するキャッシュサーバが除去されたか、または正常に機能しない場合には、応答しない場合がある。これらの場合において、失敗したサーバに記憶されたキャッシュデータ１２０は、利用できない可能性がある。
【００２１】
ウェブサーバ１０２が、キャッシュサーバ１０４はキャッシュデータ１２０に対する要求に適切に応答すると判定した場合（すなわち、３１０からの、いいえの分岐）、ウェブサーバ１０２は、キャッシュデータ１２０をユーザデバイス１１０に伝送することができる。
【００２２】
キャッシュサーバ１０４が、キャッシュデータ１２０についての要求に応答することに失敗した場合（すなわち、３１０からの、はいの分岐）、ウェブサーバ１０２は、３１４で、キャッシュデータ１２０を、キャッシュサーバ１０４のうちの別のキャッシュサーバに割り当てることができる。これらの場合において、ウェブサーバ１０２は、ウェブサーバ１０２が所定の時間内にキャッシュサーバ１０４から対応する応答を受信しない場合、キャッシュサーバ１０４が応答に失敗したと判定することができる。
【００２３】
いくつかの実施形態において、ウェブサーバ１０２は、図２の２０２に類似の方法を使用して、他のサーバにキャッシュデータ１２０を割り付けることができる。いくつかの実施形態において、他のキャッシュサーバは、ランダムに選択することができる。例えば、機能しているキャッシュサーバ群のうちの１つを、任意に選択することができる。あるいは、他のキャッシュサーバを、所定の順序に基づいて選択してもよい。３１６において、ウェブサーバは、割り当て情報１２４を書き換えることによって、クッキー１２２を更新することができる。
【００２４】
いくつかの実施形態において、再割り当て情報がクッキー１２２に書き込まれた時点で、ウェブサーバ１０２は、自動的に割り当て情報１２４を上書きすることができる。したがって、上書き後のあらゆる読み取りは、最新の割り当て情報１２４にアクセスし、したがって、キャッシュデータ１２０の割り当ての正確さを確保することができる。これらの場合において、キャッシュサーバが正常に機能しないか、または除去された場合、このキャッシュサーバに記憶されたキャッシュデータのみが影響を受け、他のキャッシュサーバの通常の動作が影響を受けることはない。さらに、記憶されたキャッシュデータは、異なるキャッシュサーバに再割り付けされ、それが上書きされた割り当て情報１２４に反映され、したがって、新しいキャッシュサーバ上の情報が迅速に効力を発し得ることを確実にし、キャッシュサーバの置き換えによって引き起こされる不都合を減少させる。
【００２５】
さらに、新しいキャッシュサーバの追加が必要な場合、いくつかの実施形態によると、新しいキャッシュデータは、新しく追加されたキャッシュサーバを含む、全てのキャッシュサーバ１０４に、等確率でマッピングされる。これらの場合において、キャッシュデータ１２０とキャッシュサーバ１０４との間の対応は、元のキャッシュマッピングに対する変更を必要とすることなく、対応するユーザのクッキーに直接書き込まれ、したがって、元のキャッシュサーバへのあらゆる影響を回避することができる。対応の整合性は維持され、いずれのキャッシュデータも移動させる必要はない。
【００２６】
本開示の分散キャッシング方法およびキャッシング解析方法は、ユーザのクライアント側クッキーに、割り当て情報を書き込むときに、ＨＰＰＴプロトコルでローカルクライアントに記憶されたクッキーのキャッシング特性を利用することによって、単純な方法で、キャッシュ記憶の整合性を実現する。これは、キャッシュクラスタに変更がなされる際、元のキャッシュデータへの影響を減少させる。新しいキャッシュサーバを追加する場合、元のキャッシュデータに影響することなく、新しい割り当て関係をクッキー１２２に直接書き込むことができ、キャッシュサーバがクラスタから除去されると、このキャッシュサーバ上のキャッシュデータのみが影響を受け、他のキャッシュサーバが影響されることはない。いくつかの実施形態において、本開示の状態保持分散キャッシングプロトコルは、キャッシングが必要なあらゆる内部Ｃ／Ｓシステムで利用することができる。
【００２７】
ウェブアプリケーションは、２つのウェブサーバＷ１およびＷ２、ならびに３つのメムキャッシュ（ｍｅｍｃａｃｈｅ）に基づくキャッシュサーバＭ１、Ｍ２、およびＭ３に対応すると想定する。クライアントＣが最初に要求を提出すると、要求はＷ１によって処理され、それは、次に、クライアントＣのよく使用されるデータをキャッシュサーバＭ１〜Ｍ３のうちの１つに割り付けることに関与することが、さらに想定される。必要に応じて、異なるアプローチをとることができ、例えば、ランダムな数を生成し、サーバにランダム（Ｃ）％Ｎを割り付けるか、またはクライアントＣに対するハッシュ値を計算し、サーバにハッシュ（Ｃ）％Ｎを割り付ける。割り当て情報は、次いで、サーバＷ１によって、クライアントＣのクッキーに書き込まれる。結果として、このクッキーは、クライアントＣによってサーバに送信される各フォローアップ要求を伴うことになり、このクッキーには、サーバＷ１によって書き込まれたキャッシュ情報が含まれる。例えば、特定の要求は、サーバＷ２によって処理することができる。サーバＷ２は、対応するキャッシュサーバがＭ１であることを、Ｃのクッキーから直接読み取り、その後でキャッシュサーバＭ１から必要なキャッシュデータを要求することができる。
【００２８】
キャッシュサーバが正常に機能しないか、またはクラスタから除去された場合、ウェブサーバは、クライアントＣからの要求を処理しながら、要求されたキャッシュサーバから応答がないことを見出したならば、クライアントＣに対する新しいキャッシュサーバを再選択することになる。この選択が成功すると、それは、新しい割り当て情報でクライアントＣのクッキーを更新することになる。例えば、クライアントＣが、サーバＷ１を介して、キャッシュサーバＭ１からキャッシュデータを要求し、Ｍ１が応答しない場合、サーバＷ１は、所定の割り当て手段に従って、キャッシュサーバＭ２を選択し、キャッシュデータをＭ２に記憶する。同時に、それは、クライアントＣのクッキー上の割り当て情報を更新し、そうして、クライアントが次に要求を送信するときに、クライアントＣのクッキーが既に新しい割り当て情報を含むようにする。この場合、キャッシュデータに対する影響は、問題のキャッシュサーバにキャッシュされたそのデータに限定され、クライアントＣのクッキー内の割り当て情報は、次のアクセスの際にすぐに効力を発するためには、任意のウェブサーバによって１度更新されるだけでよい。
【００２９】
業務がキャッシュサーバの数をＮからＮ＋１へ拡大することを必要とする場合は、次いで、前述の方法に従って、キャッシュデータの割り当てと、元のキャッシュマッピングに影響を及ぼすことなく、元の割り当てスキームに従って実行することができる。例えば、新しいキャッシュデータを、等確率方式で、Ｎ＋１のサーバにマッピングすることになる。
【００３０】
図４は、例示的なコンピューティングデバイス４００、および図１のコンピューティング環境に含まれる種々の構成要素のブロック図である。ウェブサーバ１０２は、任意の好適なサーバ（複数可）として構成され得る。１つの例示的な構成において、ウェブサーバ１０２は、１つ以上のプロセッサ４０２、入力／出力インターフェース４０４、ネットワークインターフェース４０６、およびメモリ４０８を含む。
【００３１】
メモリ４０８は、ランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリ、および／または読み取り専用メモリ（ＲＯＭ）もしくはフラッシュＲＡＭ等の不揮発性メモリの形態で、コンピュータ可読媒体を含むことができる。メモリ４０８は、コンピュータ可読媒体の一例である。
【００３２】
コンピュータ可読媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶のために、任意の方法または技術で実装される、揮発性および不揮発性の取り外し可能および取り外し不可能な媒体が含まれる。コンピュータ記憶媒体の例には、限定されないが、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他の種類のランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、もしくは他のメモリ技術、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、またはコンピューティングデバイスによるアクセス用に情報を記憶するために使用可能な任意の他の非伝送媒体が挙げられる。本明細書に定義されるように、コンピュータ可読媒体には、変調されたデータ信号および搬送波等の一過性媒体は含まれない。
【００３３】
メモリ４０８をより詳細に見ると、メモリ４０８は、分散キャッシングユニット４１０および分散分析ユニット４１２を格納することができる。分散キャッシングユニット４１０は、キャッシュデータ割り当てモジュール４１４および割り当て情報記録モジュール４１６を含み得る。分散分析ユニット４１２は、要求受信モジュール４１８、割り当て情報取得モジュール４２０、キャッシュサーバ情報取得モジュール４２２、要求モジュール４２４、キャッシュデータ分散モジュール４２６、および割り当て記録モジュール４２８を含み得る。
【００３４】
キャッシュデータ割り当てモジュール４１４は、ユーザデバイス１１０から伝送される要求１１６に応答して、キャッシュデータ１２０を、キャッシュサーバ１０４に割り付けることができる。キャッシュデータ割り当てモジュール４１４は、キャッシュデータを、ランダムに、または所定のハッシュ値もしくは所定のハッシュ方法に基づいて、割り付けることができる。割り当て情報記録モジュール４１６は、割り当て情報１２４を、クッキー１２２に書き込むことができる。いくつかの実施形態において、割り当て情報書き込みモジュール４１６は、キャッシュデータ１２０およびキャッシュサーバ１０４に関する割り当て関係および他の情報を、キャッシュデータ割り当てモジュール４１４から取得した情報に基づいて、ユーザの対応するクッキー（例えば、クッキー１２２）に書き込むことができる。
【００３５】
要求受信モジュール４１８は、ユーザデバイス１１０から、要求１１６を受信することができる。割り当て情報取得モジュール４２０は、要求１１６に応答して、キャッシュデータ１２０に対する割り当て情報１２４を識別および／または取得することができる。キャッシュサーバ情報取得モジュール４２２は、取得した割り当て情報１２４に基づいて、キャッシュサーバ１０４のうち、キャッシュデータ１２０に対応する１つ以上のキャッシュサーバを判定することができる。
【００３６】
要求モジュール４２４は、キャッシュデータについて、キャッシュサーバ１０４のうち１つ以上の識別されたキャッシュサーバに、要求を伝送することができる。キャッシュデータ分散モジュール４２６は、例えば、所定の時間内に、キャッシュサーバ１０４から要求に対する応答がない場合、キャッシュサーバ１０４の別のキャッシュサーバに、キャッシュデータ１２０を割り付けることができる。割り当て記録モジュール４２８は、次いで、割り当て情報１２４を上書きすることによって、クッキー１２２を更新することができる。
【００３７】
本明細書の種々の実施形態は、漸進的な様式で説明される。各実施形態の説明の焦点は、他の実施形態とそれらとの差であり、同一または類似する部分は、両方の説明を参照することにより確認することができる。
【００３８】
上記は本出願によって提供される分散キャッシング方法およびシステムならびにキャッシングの解析方法およびシステムを詳細に説明し、本明細書における特定の例は、本出願の原理および実施形態を例示するために利用される。上述の実施形態の説明は、本開示の方法および主要概念の理解を助けることを目的し、当業者であれば、本出願の概念に基づいて、特定の実施形態および適用範囲に変更を加えることが可能であり、したがって、本明細書の内容が本出願を制限すると考えられるべきではない。
【図１】
2014519100.tif 000003
【図２】
2014519100.tif 000004
【図３】
2014519100.tif 000005
【図４】
2014519100.tif 000006
【国際調査報告】
2014519100.tif 000007