(57)【要約】【課題】  クッキーを生成するためのコンピュータ実施方法、装置、及びコンピュータ・プログラムを提供する。【解決手段】  要求を受け取ったことに応答してクッキー値が検索される。クッキー値の有効期限はその要求を受け取る期間に基づいて設定される。有効期限を含む一意的な識別子のセットがそのクッキー値およびクッキー名に加えられて１つのクッキーを形成する。要求に対する応答が中間サーバに送られる。その応答は、要求及びクッキーに対応したデータを含む。その要求に対するデータの有効性は有効期限に関連する【選択図】  図３
2007200331.tif 000002
【特許請求の範囲】
【請求項１】
クッキーを生成するためのコンピュータ実施方法であって、
要求を受け取ったことに応答して、前記要求を満たすためにクッキー値を検索するステップと、
前記要求を受け取る期間に基づいて前記クッキー値に対する有効期限を設定するステップと、
クッキーを形成するために、前記有効期限を含む一意的な識別子のセットを前記クッキー値及びクッキー名に加えるステップと、
前記要求に対する応答を、中間サーバを介して送るステップであって、前記応答が前記要求及び前記クッキーに対応したデータを含み、前記応答に関する前記データの有効性が前記有効期限に関連する、ステップと、
を含む、コンピュータ実施方法。
【請求項２】
前記応答を受け取ったことに応答して、キャッシュ・データのセットを形成するために前記応答における前記データを１つのロケーションにキャッシュするステップであって、前記ロケーションが、前記キャッシュ・データのセットに対するその後の要求に応答してパフォーマンスの改善を行う、ステップと、
前記有効期限と共に前記キャッシュ・データのセットの有効性を設定するステップであって、前記有効期限以後は前記有効性が期限切れとなる、ステップと、
前記クッキーを前記応答と共に要求元グループに返送するステップと、
を更に含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記キャッシュするステップ、前記有効性を設定するステップ、及び前記返送するステップが中間サーバによって遂行される、請求項２に記載のコンピュータ実施方法。
【請求項４】
前記検索するステップ、前記設定するステップ、前記加えるステップ、及び前記送るステップがウェブ・アプリケーション・サーバによって遂行され、
前記要求をクライアントから受け取るステップと、
前記クッキーが前記要求に存在するかどうかを決定するステップと、
前記クッキーが前記要求に存在することに応答して、前記クッキーの前記一意的な識別子のセットが前記要求に存在するかどうかを決定するステップと、
前記クッキーの前記一意的な識別子のセットが前記要求に存在するという決定に応答して、アプリケーションの正規の処理を開始するステップと、
を更に含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記クッキーが前記要求に存在しないという決定に応答して、前記検索するステップ、前記設定するステップ、前記加えるステップ、及び前記送るステップを開始するステップを更に含む、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記一意的な識別子のセットが前記要求に存在しないという決定に応答して、前記要求における前記クッキーを消去するステップと、
前記検索するステップ、前記設定するステップ、前記加えるステップ、及び前記送るステップを開始するステップと、
を更に含む、請求項４に記載のコンピュータ実施方法。
【請求項７】
前記一意的な識別子がウェブ・アプリケーション識別、ウェブ・アプリケーション・セグメント、商店識別、店主識別、及び言語識別の少なくとも１つを含む、請求項１に記載のコンピュータ実施方法。
【請求項８】
前記有効期限が切れたとき、前記中間サーバに記憶された前記データを消去するステップを更に含む、請求項１に記載のコンピュータ実施方法。
【請求項９】
前記返送するステップは、前記応答を前記中間サーバにおいてキャッシュすることによって、要求元グループからの前記クッキーを含むその後の要求が前記中間サーバによって処理されるようにするステップを含む、請求項８に記載のコンピュータ実施方法。
【請求項１０】
未承認のアクセスを防ぐために前記クッキー値を暗号化するステップを更に含む、請求項１に記載のコンピュータ実施方法。  
【請求項１１】
前記有効期限が切れたとき、前記中間サーバに記憶されている前記応答に対する前記データが無効にされる、請求項１に記載のコンピュータ実施方法。
【請求項１２】
クッキーを生成するためのコンピュータ・システムであって、
クライアントからの要求を受け取るように動作可能に構成され、クッキーのセットに対する前記要求を調べる中間サーバと、
前記中間サーバに動作可能に接続され、受け取られた前記要求を満たすためにクッキーを検索し、前記要求が受け取られる期間に基づいてクッキー値に対する有効期限を設定し、１つのクッキーを形成するためにクッキー名及び前記有効期限を含む前記クッキー値に一意的な識別子のセットを加え、前記中間サーバを介して前記クライアントに前記要求に対する応答を送る、ように構成されたウェブ・アプリケーション・サーバであって、前記応答が前記要求に対応したデータを含み、前記クッキーが前記中間サーバにキャッシュされ、前記応答に対する前記データの有効性が前記有効期限に関連付けられる、ウェブ・アプリケーション・サーバと、
を含む、コンピュータ・システム。
【請求項１３】
前記クッキーの前記一意的な識別子のセットが前記要求に含まれていないという決定に応答して、前記中間サーバが前記要求を前記ウェブ・アプリケーション・サーバに送る、請求項１２に記載のコンピュータ・システム。
【請求項１４】
前記中間サーバが前記データのセットに対するクライアント・アクセスを可能にし、前記クッキーの前記一意的な識別子のセットが前記要求に含まれているという決定に応答して前記要求を取り消す、請求項１２に記載のコンピュータ・システム。
【請求項１５】
前記ウェブ・アプリケーション・サーバが前記有効期限に前記データを消去する、請求項１２に記載のコンピュータ・システム。
【請求項１６】
コンピュータが使用可能な媒体に含まれ、クッキーを生成するためのコンピュータ使用可能プログラム・コードを含むコンピュータ・プログラムであって、前記コンピュータに、
要求を受け取ったことに応答して、前記要求を満たすためにクッキー値を検索するステップと、
前記要求を受け取る期間に基づいて前記クッキー値に対する有効期限を設定するステップ、
クッキーを形成するために、一意的な識別子のセットをクッキー名及び前記クッキー値に前記有効期限と共に加えるステップと、
前記要求に対する応答を、中間サーバを介して送るステップであって、前記応答が前記要求及び前記クッキーに対応したデータを含み、前記応答に関する前記データの有効性が前記有効期限に関連する、ステップと、
を実行させる、コンピュータ・プログラム。
【請求項１７】
前記応答を受け取ったことに応答して、キャッシュ・データのセットを形成するために前記応答におけるデータを１つのロケーションにキャッシュステップであって、前記ロケーションが前記キャッシュ・データのセットに対するその後の要求に応答してパフォーマンスの改善を行うことを特徴とする、ステップと、
前記有効期限と共に前記キャッシュ・データのセットの有効性を設定するステップであって、前記有効期限以後は前記有効性が期限切れとなる、ステップと、
前記クッキーを前記応答と共にクライアントに返送するステップと、
を更に前記コンピュータに実行させる、請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記要求をクライアントから受け取るステップと、
前記クッキーが前記要求に存在するかどうかを決定するステップと、
前記クッキーを前記要求において見つけたことに応答して、前記クッキーの前記一意的な識別子のセットが前記要求に含まれているかどうかを決定するステップと、
前記クッキーの前記一意的な識別子のセットが前記要求に含まれているという決定に応答して、前記データのセットへの前記クライアントによるアクセスを可能にするステップと、
を更に前記コンピュータに実行させる、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記有効期限が切れたとき、前記データのセットを消去するステップを更に前記コンピュータに実行させる、請求項１６に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、データ処理システムに関し、詳しく云えば、データをキャッシュするためのコンピュータ実施方法及び装置に関するものである。更に詳しく云えば、本発明は、制約付きクッキー（constrained cookie）及びデータのセットを作成及びリンクするためのコンピュータ実施方法、装置、及びコンピュータ・プログラムに関するものである。
【背景技術】
【０００２】
データ処理システムに関する信頼性は、ビジネス及び社会のあらゆる面でコンピューティング装置の用途が増大したために、ここ数年、急速に成長してきた。多くの場合、ユーザは、ネットワークを使って又はインターネットを介して情報及びデータをアクセスする。生産性を最大にするために、ユーザは、ウェブ・アプリケーションを介して情報を素早く且つ容易にアクセスすることができる必要がある。
【０００３】
多くの場合、ユーザの要求及び応答が種々のサーバを介して送られる。例えば、ウェブ・アプリケーションを実行するためにウェブ・アプリケーション・サーバを使用することがある。静的データを処理するために、およびビジネス論理要求をアプリケーション・サーバに転送するために、ウェブ・サーバを使用することもある。エッジ・サーバは、要求に関連した要求パラメータ及びクッキーに基づいたキャッシング機能を提供し得る中間的処理サーバである。産業界の傾向は、エッジ・サーバをエンド・ユーザに地理的に近接して設置すること、応答待ち時間を少なくすること、及びウェブ・アプリケーション・サーバ・サイトへの過剰なデータ転送を防ぐことである。エッジ・サーバは、クライアントのすぐ近くでデータをキャッシュして、ウェブ・アプリケーション・サイトの全体的なパフォーマンスを改善することを可能にする。
【０００４】
定義によれば、エッジ・サーバは計算機能を持たず、非常に初歩的なキャッシング・ルールを実装する。エッジ・サーバの位置は、クライアント要求と共に到来するクッキーのセットのみに関して定義されるようにそのエッジ・サーバのキャッシング能力を制限する。これらの制限の結果、エッジ・サーバは、キャッシング判断において計算力及ロジックを提供する機能、要求に対するクッキー管理を開始する機能、または要求クッキーに対するセキュア・データ管理を提供する機能を持たない。
【０００５】
これらの制限のために、エッジ・サーバは、センシティブな情報を求める要求を安全な方法で解決することができない。例えば、エッジ・サーバは、敵対的なユーザが有効な要求を妨害し且つ同じ出力をオリジナルの有効なコールとして得るためにその後その要求を再生するというリプレイ・アタックを防ぐことができない。到来する要求を管理及び処理することができないということは、如何なる形式のアイデンティティ検証がエッジ・ユーザによって遂行されることも妨げる。その結果、エッジ・サーバに記憶されているキャッシュされた情報はプライバシ・インセンシティブ情報に制限される。その結果、エッジ・サーバ上に情報をキャッシュすることによって得られるパフォーマンスの改善はセキュリティ考慮事項によって制限される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、クッキーを生成するためのコンピュータ実施方法、装置、及びコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
クッキーを生成するためのコンピュータ実施方法であって、
要求を受け取ったことに応答して、前記要求を満たすためにクッキー値を検索するステップと、
前記要求を受け取る期間に基づいて前記クッキー値に対する有効期限を設定するステップと、
クッキーを形成するために、前記有効期限を含む一意的な識別子のセットを前記クッキー値及びクッキー名に加えるステップと、
前記要求に対する応答を、中間サーバを介して送るステップであって、前記応答が前記要求及び前記クッキーに対応したデータを含み、前記応答に関する前記データの有効性が前記有効期限に関連する、ステップと、
を含む、コンピュータ実施方法。
【発明を実施するための最良の形態】
【０００８】
当業者には明らかなように、本発明は、方法、装置、またはコンピュータ・プログラムとして実施することが可能である。従って、本発明は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、或いは、本明細書では「回路」または「モジュール」と一般的に呼ばれるソフトウェア及びハードウェアの側面を結合した実施例の形態を取ることが可能である。更に、本発明は、コンピュータ使用可能プログラム・コードを組み込んだコンピュータ使用可能記憶媒体においてコンピュータ・プログラムの形態を取ることも可能である。
【０００９】
任意の適当なコンピュータ使用可能又はコンピュータ可読媒体が利用されてもよい。コンピュータ使用可能又はコンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線、または半導体システム、装置、デバイス、または伝播媒体であってもよいが、それに限定されない。コンピュータ可読媒体の更に特定の例（非網羅的リスト）は次のようなもの、即ち、１つ又は複数のワイヤを有する電気的接続体、携帯用コンピュータ・ディスケット（フロッピ・ディスク）、固定ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、携帯用コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、光学的記憶装置、インターネットまたはイントラネットをサポートするような伝送メディア、或いは、磁気記憶装置を含むであろう。コンピュータ使用可能又はコンピュータ可読媒体は、プログラムが、例えば、用紙または他の媒体の光学的スキャンを介して電子的に捕捉され、そしてコンパイルされ、インタープリットされ、或いは必要な場合に適当な方法で処理され、そしてコンピュータ・メモリに記憶されるとき、そのプログラムが印刷される用紙または他の適当な媒体であってもよい。本明細書に関しては、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するためのプログラムを内蔵し、記憶し、通信し、伝播し、または搬送することができる任意の媒体であってもよい。
【００１０】
本発明のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java（登録商標）、Smalltalk、またはＣ++ のようなオブジェクト指向プログラミング言語で書くことが可能である。しかし、本発明のオペレーションを実行するためのコンピュータ・プログラム・コードは、「Ｃ」プログラミング言語のような一般的なプロシージャ型プログラミング言語で書くことも可能である。プログラミング言語は、ユーザのコンピュータにおいて全体的に、ユーザのコンピュータにおいて部分的に、独立型ソフトウェア・パッケージのようにユーザのコンピュータにおいて部分的に、及び、リモート・コンピュータにおいて部分的に又はリモート・コンピュータにおいて全体的に実行することが可能である。後者の場合には、リモート・コンピュータはローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を介してユーザのコンピュータに接続することが可能であり、或いは（インターネット・サービス・プロバイダを使ってインターネットを介して）外部コンピュータへの接続が行われることも可能である。
【００１１】
本発明は、本発明の実施例による方法、装置（システム）、及びコンピュータ・プログラムに関するフローチャート表示、及び／又は、ブロック図を参照して後述される。フローチャート表示、及び／又は、ブロック図の各ブロック、及びフローチャート表示、及び／又は、ブロック図におけるブロックの結合がコンピュータ・プログラム命令によって具現化することが可能であることは明らかであろう。これらのコンピュータ・プログラム命令は汎用コンピュータ、特殊目的のコンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供され、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを通して実行される命令が、フローチャート、及び／又は、ブロック図のブロックにおいて指定された機能／動作を具現化するための手段を作成するようなマシンを作る。
【００１２】
これらのコンピュータ・プログラム命令は、特定の態様で機能するようにコンピュータまたは他のプログラム可能なデータ処理装置に指示し得るコンピュータ可読メモリに記憶することも可能であり、従って、コンピュータ可読メモリに記憶された命令が、フローチャート、及び／又は、ブロック図のブロックにおいて指定された機能／動作を具現化する命令手段を含むコンピュータ・プログラムを作る。
【００１３】
コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置において一連の動作ステップを遂行させるためにそのコンピュータまたは他のプログラム可能なデータ処理装置にロードされ、そのコンピュータまたは他のプログラム可能なデータ処理装置において実行される命令が、フローチャート及び／又はブロック図のブロックにおいて指定された機能／動作を具現化するためのステップを提供するようなコンピュータ実施プロセスを作ることが可能である。
【００１４】
図面、特に図１及び図２を参照すると、本発明の実施例を具現化し得るデータ処理環境の概略図が示される。図１及び図２は単なる例示であって、本発明の種々の形態または実施例を具現化し得る環境に関して如何なる限定を主張または暗示することを意図するものではないことは当然である。本発明の真意及び範囲から逸脱することなく、図示の環境に対する多くの修正を施すことが可能である。
【００１５】
次に図面を参照すると、図１は、本発明の種々の形態を具現化し得るデータ処理システムのネットワークの概略図を示す。ネットワーク・データ処理システム１００は本発明の実施例を具現化し得るコンピュータのネットワークである。ネットワーク・データ処理システム１００はネットワーク１０２を含み、ネットワーク１０２は、ネットワーク・データ処理システム１００内で相互に接続された種々のデバイス及びコンピュータの間の通信リンクを提供するために使用される媒体である。ネットワーク１０２は、ワイヤ、ワイヤレス通信リンク、または光ファイバ・ケーブルのような接続体を含み得る。
【００１６】
図示の例では、サーバ１０４及びサーバ１０６がストレージ・ユニット１０８と共にネットワーク１０２に接続している。更に、クライアント１１０，１１２、及び１１４がネットワーク１０２に接続している。これらのクライアント１１０，１１２、及び１１４は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。図示の例では、サーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージのようなデータ及びアプリケーションをクライアント１１０，１１２、及び１１４に供給する。クライアント１１０，１１２、及び１１４は、この例では、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、更なるサーバ、クライアント、及び図示されてない他のデバイスを含み得る。
【００１７】
図示の例では、ネットワーク・データ処理システム１００は、相互に通信を行うためにプロトコルの伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スーツを使用するネットワーク及びゲートウェアの世界的な集合体をネットワーク１０２が表す場合にはインターネットである。インターネットの中心には、データ及びメッセージを経路指定する数千個の商業用、行政機関用、教育用、及びその他のコンピュータ・システムから成り、主要ノードまたはホスト・コンピュータの間における高速データ通信回線のバックボーンがある。もちろん、ネットワーク・データ処理システム１００は、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、または広域ネットワーク（ＷＡＮ）のような数多くの種々なタイプのネットワークとして具現化することも可能である。図１は１つの例として意図され、本発明の種々の実施例に関するアーキテクチャ上の限定として意図されたものではない。
【００１８】
次に図２を参照すると、本発明の種々の形態を具現化し得るデータ処理システムのブロック図が示される。データ処理システム２００は、図１におけるサーバ１０４またはクライアント１１０のようなコンピュータの一例である。このコンピュータには、本発明の実施例に関するプロセスを具現化するコンピュータ使用可能コードまたは命令を設けることが可能である。
【００１９】
図示の例では、データ処理システム２００はハブ・アーキテクチャを使用する。このハブ・アーキテクチャは、ノース・ブリッジ兼メモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２及びサウス・ブリッジ兼入出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）２０４を含む。処理ユニット２０６、メイン・メモリ２０８、及びグラフィックス・プロセッサ２１０がＮＢ／ＭＣＨ２０２に接続される。グラフィックス・プロセッサ２１０はアクセラレーテッド・グラフィックス・ポート（ＡＧＰ）を介してＮＢ／ＭＣＨ２０２に接続されてもよい。
【００２０】
図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２がＳＢ／ＩＣＨ２０４に接続している。オーディオ・アダプタ２１６、キーボード及びマウス・アダプタ２２０、モデム２２２、リード・オンリ・メモリ（ＲＯＭ）２２４、ハードディスク・ドライブ（ＨＤＤ）２２６、ＣＤ−ＲＯＭドライブ２３０、ユニバーサル・シリアル・バス（ＵＳＢ）ポート及び他の通信ポート２３２、並びにＰＣＩ／ＰＣＩｅデバイス２３４がバス２３８及び２４０を介してＳＢ／ＩＣＨ２０４に接続している。ＰＣＩ及びＰＣＩｅデバイスは、例えば、イーサネット(登録商標)・アダプタ、アドイン・カード、及びノートブック・コンピュータのためのＰＣカードを含み得る。ＰＣＩはカード・バス・コントローラを使用するが、ＰＣＩｅはそれを使用しない。ＲＯＭ２２４は、例えば、フラッシュ・バイナリ入出力システム（ＢＩＯＳ）であってもよい。
【００２１】
ＨＤＤ２２６及びＣＤ−ＲＯＭドライブ２３０はバス２４０を介してＳＢ／ＩＣＨ２０４に接続している。ＨＤＤ２２６及びＣＤ−ＲＯＭドライブ２３０は、例えば、統合ドライブ・エレクトロニクス（ＩＤＥ）又はシリアル拡張テクノロジ接続機構（ＳＡＴＡ）インターフェースを使用し得る。スーパＩ／Ｏ（ＳＩＯ）デバイス２３６がＳＢ／ＩＣＨ２０４に接続することも可能である。
【００２２】
オペレーティング・システムが処理ユニット２０６を稼動し、図２におけるデータ処理システム２００内の種々のコンポーネントの制御を調整および提供する。クライアントとしては、そのオペレーティング・システムは、Microsoft Windows（登録商標） XP のような商業的に入手可能なオペレーティング・システムであってもよい（Microsoft 及びWindows（登録商標） は、米国のマイクロソフト社の商標である）。Java（登録商標） プログラミング・システムのようなオブジェクト指向プログラミング・システムが、オペレーティング・システムと関連して稼動し、データ処理システム２００において実行されるJava（登録商標） プログラム又はアプリケーションからオペレーティング・システムにコールを行うことも可能である（Java（登録商標） は、米国のサン・マイクロシステムズ社の商標である）。
【００２３】
サーバとしてのデータ処理システム２００は、例えば、Advanced Interactive Executive（AIX）オペレーティング・システムまたは LINUX オペレーティング・システムを稼動させるIBM eServer pSeries コンピュータ・システムであってもよい（eServer、pSeries、及び AIX は、米国のインターナショナル・ビジネス・マシーンズ社の商標であり、一方、LINUXは、米国の Linus Torvalds の商標である）。データ処理システム２００は、処理ユニット２０６において複数のプロセッサを含む対称マルチプロセッサ（ＳＭＰ）システムであってもよい。それとは別に、シングル・プロセッサ・システムが使用されてもよい。
【００２４】
オペレーティング・システム、オブジェクト指向オペレーティング・システム、又はアプリケーションのための命令、或いはプログラムがＨＤＤ２２６のような記憶装置上に設けられ、処理ユニット２０６による実行のためにメイン・メモリ２０８にロードされてもよい。本発明の実施例に関するプロセスは、コンピュータ使用可能プログラム・コードを使用して処理ユニット２０６により遂行される。そのプログラム・コードは、例えば、メイン・メモリ２０８、ＲＯＭ２２４のようなメモリ、或いは１つ又は複数の周辺装置２２６及び２３０に設けられてもよい。
【００２５】
図１及び図２におけるハードウェアが具現化方法次第で変わり得ることは当業者には明らかであろう。図１及び図２に示されたハードウェアに加えて、又はそれの代わりに、フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブ等のような他の内部ハードウェア又は周辺装置を使用することも可能である。更に、本発明のプロセスがマルチプロセッサ・データ処理システムに適用することも可能である。
【００２６】
或る例では、データ処理システム２００は、オペレーティング・システム・ファイル、及び／又は、ユーザ生成のデータを保存するための不揮発性メモリを提供するために、フラッシュ・メモリを用いて構成されるパーソナル・デジタル・アシスタント（ＰＤＡ）であってもよい。
【００２７】
バス・システムは、図２に示されたバス２３８又はバス２４０のような１つ又は複数のバスから構成されてもよい。もちろん、そのバス・システムは、任意のタイプのファブリック又はアーキテクチャを使って具現化し得る。そのファブリック又はアーキテクチャはそれに接続された種々のコンポーネント又は装置のデータの転送を行うものである。通信ユニットは、図２のモデム２２２又はネットワーク・アダプタ２１２のような、データを送信及び受信するために使用される１つ又は複数の装置を含み得る。メモリは、例えば、メイン・メモリ２０８、ＲＯＭ２２４、または図２におけるＮＢ／ＭＣＨ２０２において見られるようなキャッシュであってもよい。図１及び図２における図示の例および上記の例はアーキテキチャ上の限定を暗示することを意味するものではない。例えば、データ処理システム２００は、ＰＤＡの形を取ることのほかに、タブレット・コンピュータ、ラップトップ・コンピュータ、又は電話装置であってもよい。
【００２８】
本発明の種々の形態が、データをキャッシュするためのコンピュータ実施方法、装置、及びコンピュータ・プログラムを提供する。これらの例では、本発明のそれらの形態は中間サーバにおいて実施される。中間サーバは、クライアント・コンピュータとそのクライアント・コンピュータに関する要求を処理するサーバ・コンピュータとの間に設けられた物理的コンピュータである。中間サーバは、ウェブ・アプリケーション・サーバよりもエンド・ユーザに物理的に近接して設けられることが望ましい。中間サーバは、要求パラメータ及びその要求に関連したクッキー（cookie）に基づいてキャッシング機能を提供することも可能である。中間サーバは、キャッシング、負荷平準化、及び経路指定を含む多くのタスクのために使用することが可能である。これらの例では、中間サーバはエッジ・サーバとも呼ばれ、制約付きクッキー生成のための機構を使用することによってデータをキャッシュするために使用され、ウェブ・アプリケーション・サーバによって維持されるサーバである。
【００２９】
本発明の種々の形態は、現在のエッジ・サーバにおける計算ロジック及びアイデンティティ検証機構の不足を補う。本発明のそれらの形態は、システム生成された情報でもってクッキーを拡張する。クッキーに対する種々の参照は、１つまたは複数のクッキーを含むクッキーのセットを指す。
【００３０】
システム生成された情報は、応答が無効となるときを定義するための有効期限切れ期間、及びウェブ・アプリケーション識別、ウェブ・アプリケーション・セグメント、言語識別、商店識別、及び店主識別のような情報に基づいてクッキーを区別するために使用される他の固有の識別子を含み得る。修正されたクッキーは、エッジ・サーバ及びウェブ・アプリケーション・サーバにおけるデータ相互間の強い結合を与え、それは、セキュリティ全体を更に強化し、センシティブな情報を有害な攻撃から守り、キャッシュされた情報の範囲の拡大を生じる。
【００３１】
図３は、本発明の種々の形態を具現化し得るネットワーク・システムの概略図である。ネットワーク・システム３００は、ウェブ・サーバ３０２及びウェブ・アプリケーション・サーバ３０４における情報をアクセスするために任意の数のユーザによって使用される。この情報は、例えば、コンテンツ、アプリケーション、及びデータであってもよい。これらの例では、ユーザ３０６がクライアント３０８を使用して要求３１０をウェブ・サーバ３０２にサブミットする。その要求は、先ず、エッジ・サーバ３１２のような任意の数の中間処理サーバを通され、しかる後、ウェブ・アプリケーション・サーバ３０４に達する。クライアント３０８、エッジ・サーバ３１２、ウェブ・サーバ３０２、及びウェブ・アプリケーション・サーバ３０４は、図２のデータ処理システム２００のようなデータ処理システムであってもよい。
【００３２】
エッジ・サーバ３１２は、一般には、クライアント３０８に物理的に近接して位置付けられる。このタイプの位置付けは、ウェブ・アプリケーション・サーバ３０４からの情報をアクセスするときの伝送速度を改善するために使用される。ウェブ・サーバ３０２は、要求３１０に対する静的コンテンツを生成し、しかる後、動的データを含む要求３１０の部分をウェブ・アプリケーション・サーバ３０４に送る。ウェブ・アプリケーション・サーバ３０４は、応答３１４を発生することによって要求３１０に応答する。応答３１４は、要求３１０に対する必要なデータ及び特殊化されたクッキーを含む。これらの例では、クッキーは、アプリケーションの一般的なスコープにおける固有にキャッシュされたデータに関連していることを保証するためにそれらのクッキーが有効である思われる時間を制限するように強制される。更に、ウェブ・アプリケーション・サーバ３０４は応答３１４をキャッシュし、応答３１４をエッジ・サーバ３１２にとって使用可能にする。エッジ・サーバ３１２は応答３１４をキャッシュし、クッキーを含むその後の要求がエッジ・サーバ３１２によって答えられるよう、応答３１４内のデータ及びオブジェクトのアクセスをクッキーする。
【００３３】
図４は、本発明の種々の形態を具現化し得るネットワーク・システムの流れ図である。ネットワーク・システム４００は、図３のネットワーク・システム３００のようなネットワーク・システムであってもよい。ネットワーク・システム４００は、クライアント４０２、エッジ・サーバ４０４、エッジ・サーバ・キャッシュ４０６、ウェブ・サーバ４０８、ウェブ・アプリケーション・サーバ４１０、およびウェブ・アプリケーション・サーバ・キャッシュ４１２を含む。
【００３４】
ネットワーク・システム４００は、任意の数のトランザクション、方法、または他の形式の情報検索を実施するために使用することが可能である。或る実施例では、ネットワーク・システム４００がインターネット・ショッピングのために使用される。例えば、クライアント４０２は、ウェブ・アプリケーション・サーバ４１０からアクセスし得るショッピング・ウェブ・アプリケーションを使用するインターネット買物客であってもよい。別の例では、ネットワーク・システム４００は、教育関連の書籍に関する等級および価格表をウェブ・アプリケーション・サーバ４１０から検索するためにクライアント４０２による使用も可能である。
【００３５】
クライアント４０２が要求を発生する（ステップＡ）。ステップＡにおける要求は、クライアント４０２がブラウザを使用することによって発生することが可能である。例えば、クライアント４０２は、将来購入するための多くの項目を選択するためにウェブ・ブラウザを使用してもよい。クライアント４０２は、エッジ・サーバ４０４を認識しなくてもウェブ・アプリケーション・サーバ４１０に要求を送る。エッジ・サーバ４０４は、要求のパス内にあり、クライアント４０２とウェブ・アプリケーション・サーバ４１０との間の通信では完全に透明である。エッジ・サーバ４０４が要求におけるクッキーを見つけないとき、要求はエッジ・サーバ４０４を通過してウェブ・アプリケーション・サーバ４１０に進む（ステップＢ）。
【００３６】
ステップＣでは、ウェブ・アプリケーション・サーバ４１０が要求を受取り、その要求を処理し、出力を作成し、クッキーを生成し、応答及びクッキーをウェブ・アプリケーション・サーバ・キャッシュ４１２にキャッシュし、その応答をエッジ・サーバ・キャッシュ４０６にとって使用可能にする。
【００３７】
ウェブ・アプリケーション・サーバ４１０は、システム生成された情報に基づいてクッキーを制約する。例えば、ウェブ・アプリケーション・サーバ４１０が全システムにおける時間を個別の期間に分割する。それらの期間は、アクセスされたデータ、アプリケーション、及び他の要素に依存した任意の長さの期間であってもよい。例えば、個別の期間は秒、分、時間、または日を含んでもよい。ウェブ・アプリケーション・サーバ４１０は新たに生成された各クッキーを、個別の期間に対応するクッキーの有効期限時間とリンクする。キャッシュされたクッキー・コンテンツは、クッキーの有効期限時間と対応する個別の期間の終了時に無効にされる。その結果、クッキーに関連するそのキャッシュされたコンテンツは、そのクッキーが有効期限切れするまでそのコンテンツが有効であるので、時間制約される。適用可能な有効期限時間内のクッキーは、有効期限切れする時にクライアント４０２及びエッジ・サーバ４０４においてウェブ・アプリケーション・サーバ４１０によって無効にされ、従って、クッキーは、最早、応答におけるデータをアクセスするために使用されることはない。
【００３８】
ウェブ・アプリケーション・サーバ４１０は、固有の情報および識別子をクッキー名および値にリンクさせることによってクッキーを更に制約する。例えば、クッキーは、ウェブ・アプリケーション識別子をクッキー値に連結することによってウェブ・アプリケーションにリンクすることが可能である。ウェブ・アプリケーション・サーバ４１０は、ウェブ・アプリケーション・セグメント識別子をクッキー名に連結することによってウェブ・アプリケーション・セグメント単位でクッキーを分離することが可能である。ウェブ・アプリケーション識別子、ウェブ・アプリケーション・セグメント識別子、および他の識別子をクッキーに連結することによって、プライベート・データを検索しようとする未承認の又は有害な試みを防ぐために、クッキーは制約され、エンコードされる。
【００３９】
クッキー４１４はステップＣ中に生成することが可能なクッキーの例である。或る例では、エッジ・サーバのクッキー・フォーマットが、次のような情報、即ち、エッジ・サーバのクッキーに対する標準プレフィックス４１６、言語識別のような情報基準の名前、ウェブ・アプリケーション識別またはコマース・インスタンスにおける商店識別を定義する番号のような固有番号、クッキーに含まれた実際の値、ウェブ・アプリケーション・セグメントを定義する固有番号、及び期間の長さに等しいミリ秒の数によって分割されたユニバーサル時間調整（ＵＴＣ）番号として定義された整数、を使用して更に制約されることがある。更に、最終的なクッキーの値全体が暗号化されてもよい。
【００４０】
例えば、クッキー４１４の標準プレフィックス４１６はＣＯＯＫＩＥであってもよい。ウェブ・アプリケーション・サーバ４１０は、ウェブ・アプリケーション・セグメント４１８又はそのクッキー名を更に生成するためにクッキー４１４が利用される場合のサブセクションを使用することも可能である。ウェブ・アプリケーション・セグメント４１８は、そのウェブ・アプリケーションの残りとは関係なく動作し得るそのウェブ・アプリケーションの一部分である。各ウェブ・アプリケーション・セグメントは、そのウェブ・アプリケーション内の固有番号と関連付けられる。セグメント名をクッキー名に連結することによって、クッキー及びキャッシュされたデータは、特定のウェブ・アプリケーション・セグメント４１８と関連したデータだけがクッキー４１４を使ってエッジ・サーバ４０４においてキャッシュされるように、ウェブ・アプリケーション・セグメント４１８によって分離される。例えば、ウェブ・アプリケーションの３つのセクションが、ｅコマース・ウェブ・アプリケーションにおいて書籍、音楽、及びビデオを販売するために使用されてもよい。ウェブ・アプリケーション・セグメント４１８が書籍と関連する場合、書籍がエッジ・サーバ４０４においてキャッシュされることしか望まれず、従って、書籍に対するウェブ・アプリケーション・セグメント４１８、即ち、００１だけがクッキー名に連結される。
【００４１】
例えば、ウェブ・アプリケーション・セグメント４１８が００１である場合、ウェブ・アプリケーション・サーバ４１０は、COOKIE_001 となるようにクッキー名全体を修正する。クッキー４１４は言語識別値４２０を含むこともある。例えば、適用可能な言語は、２３という言語識別値４２０をもった英語であってもよい。クッキー名は、COOKIE_001=“23”となるようにウェブ・アプリケーション・サーバ４１０によって修正される。
【００４２】
次に、ウェブ・アプリケーション・サーバ４１０は、クッキー４１４がアクティブ且つ有効であるアクティブ期間４２２を決定し得る。アクティブ期間４２２は、エッジ・サーバのキャッシング・ルールをウェブ・アプリケーション・サーバ・クッキー・コンテンツでもってバインドするために使用される独立した期間である。例えば、各期間の終了時に、エッジ・サーバ４０４とウェブ・アプリケーション・サーバ４１０において実行中のウェブ・アプリケーションとの間で、そのキャッシュされたデータに関して同期化が強制される。実際のバインディングは、現在の期間をクッキー・データに連結することによってクッキー作成時に生じる。アクティブ期間４２２をクッキー・データに連結した結果、エッジ・サーバの応答は、クッキー・コンテンツにおけるのみならず、特定の期間においても従属性を示す。
【００４３】
例えば、クッキー作成時の時間が 2007-12-25 21:15h であり、その期間が１時間としてセットされる場合、クッキー期間は 2007-12-25 21:00hから 2007-12-25 22:00 までである。クッキー４１４のアクティブ期間４２２は 2007-12-25 21h となるであろうし、ウェブ・アプリケーション・サーバ４１０は、COOKIE_001=“23:2007-12-25 21h”となるようにクッキー名を修正する。
【００４４】
ウェブ・アプリケーション・サーバ４１０は、その期間を使用して期間の終わりから現在の時間を減算することによってクッキーの有効期限時間を計算することが可能である。クッキーの有効期限時間は、クッキー４１４が作成された期間によって左右される。クッキーの有効期限時間は、現在の期間の終了時に有効期限時間をセットすることによってクッキー・コンテンツの有効性にリンクされることが可能である。その結果、クッキー４１４はその期間の終了時に有効期限切れし、クッキー生成に関する同じ方法を使用して新規のクッキーと置換することが可能である。その期間の終了時に、クライアント４０２によって使用されたブラウザは、キャッシュ・ヒットを生じさせるためには、クライアント４０２によってエッジ・サーバ４０４に送られたいずれの追加の要求もクッキー４１４を含まないように、そのクッキー４１４を破壊又は消去してもよい。その結果、エッジ・サーバ４０４は、キャッシュされたデータを操作せず、コールをウェブ・アプリケーション・サーバ４１０に伝播する。例えば、期間の終了は 2007-12-25 22:00h であり、現在の時間は 2007-12-25 21:15h である。有効期限時間は、期間が終了する時点である４５分である。
【００４５】
期間及びクッキーの有効期限時間を使用することによって、有効期限切れしたクッキーは、プライベート情報を得るために応答アタックにおいて使用することができない。応答アタックは、システムからプライベート・データへのアクセスを得るために既存のセキュリティを回避しようとする有害な要求である。そのアタックは、応答情報をスチールするために、外部ソースが有効な要求をインターセプトし、その後その要求に存在するクッキーを再使用してその要求に応えようとするオペレーションである。再生アタックの場合、クッキーは、期間が有効期限切れした後にプライベート・データを検索しようとするエッジ・サーバに押し付けられる。しかし、エッジ・サーバはそのキャッシュされたデータを期間の終了時に消去しており、新たにキャッシュされたデータが古いクッキーとのキャッシュ・ヒットを生じることはないであろう。
【００４６】
クッキーの期間は、悪意で生成されたクッキーの使用を防ぐようにも機能する。例えば、生成アタックは、外部ソースが、偽クッキーを含む要求を発生する攻撃的なオペレーションである。偽クッキーはウェブ・アプリケーション・サーバ４１０の外で生成される。
【００４７】
ウェブ・アプリケーション識別４２４はクッキー値に連結することも可能である。ウェブ・アプリケーション識別４２４は、ウェブ・アプリケーションの特定のインスタンスに関連した固有の番号である。クッキー４１４は、ウェブ・アプリケーション識別４２４をクッキー・コンテンツに連結することによってウェブ・アプリケーションの特定の設置にリンクされる。例えば、ウェブ・アプリケーションがｅコマース・アプリケーションである場合、他のｅコマース・アプリケーションがウェブ・アプリケーション識別４２４によって一意的に識別されることはない。ウェブ・アプリケーション識別４２４は、クッキー４１４が他のクッキーと同じ名前を持っていても、クッキー・コンテンツはウェブ・アプリケーション識別４２４のために異なる。その結果、同じ名前を有するクッキーは、それぞれ、クッキーの固有の情報コンテンツと関連したままである。
【００４８】
例えば、ウェブ・アプリケーション識別４２４が 0x1234abcd である場合、ウェブ・アプリケーション・サーバ４１０は、クッキー名を COOKIE_001=“23:2007-12-25 21h: 0x1234abcd”に修正する。ウェブ・アプリケーション・サーバ４１０は、クッキー４１４をエッジ・サーバ４０４上にエンコードし、有効期限時間をセットし、初期要求に対する応答が送られる（ステップＣ）。
【００４９】
次に、ウェブ・アプリケーション・サーバ４１０がウェブ・サーバ４０８及びエッジ・サーバ４０４を介してクライアント４０２に応答を戻す（ステップＤ）。その応答は、エッジ・サーバ４０４を通過するときにインターセプトされ、エッジ・サーバ・キャッシュ４０６にキャッシュされる。その応答に含まれたクッキーは、キャッシュ・キーとして使用されるか又は特定のキャッシュされたオブジェクト又はデータのセットを参照する。ステップＥにおいて、クライアント４０２は同じ要求を再び発生するが、クッキー４０４は今や要求に存在し、応答におけるクッキー及びキャッシュされたクッキーが同じである場合、応答に含まれたデータのセットがクライアント４０２に対してアクセス可能になる。
【００５０】
エッジ・サーバ４０４は、要求におけるエッジ・サーバのクッキーを見つけ、これらのクッキーに関連するキャッシュされた出力をエッジ・サーバ・キャッシュ４０６からフェッチし、そのコールを中断し、キャッシュされた出力を応答としてクライアント４０２に送る（ステップＦ）。その結果、クライアント４０２は、要求をいつもウェブ・アプリケーション・サーバ４１０に送ることなく、クッキー４１４を使用して要求にとって必要なデータを素早く且つ効率的にアクセスすることができる。
【００５１】
図５は、本発明の種々の形態を具現化し得るネットワーク・システムにおける制約付きのキャッシングを示す流れ図である。クライアント５０２、エッジ・サーバ５０４、及びウェブ・アプリケーション・サーバ５０６は、図４のネットワーク・システム４００のようなネットワーク・システムの素子であってもよい。図４に示されたステップＡ〜Ｆが図５において更に示される。ステップＧでは、ステップＣで作成されたクッキーが、そのクッキーのアクティブ期間の終わりであるクッキーの有効期限時間に達する。ウェブ・アプリケーション・サーバは、クッキーの有効期限時間を含み得る従属性に基づいてエッジ・キャッシュ・コンテンツを無効にするコマンドをエッジ・サーバに送る（ステップＨ）。エッジ・サーバは、そのコンテンツを無効にし、コンテンツの無効を確認するメッセージをウェブ・アプリケーション・サーバに送る（ステップＩ）。その結果、エッジ・サーバへのその後の要求はキャッシュ・ミスを生じ、ウェブ・アプリケーション・サーバに送られる。その無効化がウェブ・アプリケーション・サーバによって確認される。
【００５２】
図６は、本発明の実施例によるクッキー管理ロジックの実施態様を示すフローチャートである。図６及び図７のプロセスは、図４のウェブ・アプリケーション・サーバ４１０のようなウェブ・アプリケーション・サーバによる実施が可能である。図６及び図７は、ウェブ・アプリケーション・サーバの要求フィルタのようなプログラミング・コンポーネントによる実施が可能である。例えば、要求フィルタは、アプリケーションまたはアプリケーション・ロジックを含むサーブレットが実行される前に実行される Java（登録商標））J2EE（商標）プログラム製品であってもよい。フィルタは、リソースへの要求及びリソースからの応答の両方における有効搭載量及びヘッダ情報の変換を処理中に許容するJava（登録商標） コンポーネントである。図６は、アプリケーションの正規の処理が開始される前に実行される特定のロジックを示す。図６のプロセスは本発明の一実施例であり、それは、現在の例に基づいて他の可能な実施例を限定することを意図するものではない。
【００５３】
図６のプロセスまたは命令は、ウェブ・アプリケーション・サーバが要求を受けることによって始まる（ステップ６０２）。その要求は、図４のクライアント４０２及びエッジ・サーバ４０４のような、クライアントからエッジ・サーバを介して受け取られる。ウェブ・アプリケーション・サーバは、エッジ・クッキーが見つかったかどうかを決定する（ステップ６０４）。ステップ６０４の決定は、処理するためのエッジ・クッキーが存在するかどうか、またはエッジ・クッキーが生成される必要があるかどうかを決定するために使用される。それが生成されるということは、要求に基づいたクッキーの初期生成、或いは、失効したクッキーの再生成を指す。なお、クッキーの失効は、有効期限時間が経過したこと又はクッキーに含まれた情報が変化したことを意味する
【００５４】
エッジ・クッキーが見つからなかった場合、ウェブ・アプリケーション・サーバはエッジ・クッキーを生成する（ステップ６０６）。次に、ウェブ・アプリケーション・サーバは正規のアプリケーション処理を開始し（ステップ６０８）、しかる後そのプロセスは終了する。ステップ６０８の正規のアプリケーション処理はアプリケーション・コードを実行すること又はサーブレットを実行することを含み得る。サーブレットは、Java（登録商標） プログラミング言語で書かれたアプリケーション・プログラムであり、それはサーバにおいて実行され、その結果がクライアントのウェブ・ブラウザに送られるものである。
【００５５】
ステップ６０４に戻ると、エッジ・クッキーが見つかった場合、ウェブ・アプリケーション・サーバは、商店識別が有効であるかどうかを決定する（ステップ６１０）。商店識別は識別子の一例であり、クッキーを区別するために任意のタイプの一意的な識別子を使用することが可能である。例えば、ウェブ・アプリケーション・サーバは、書籍店に関するその識別されたクッキーの商店識別が、音楽店ではなく書籍店をその商店識別において識別するかどうかを決定することが可能である。
【００５６】
商店識別が有効ではない場合、ウェブ・アプリケーション・サーバは見つかったエッジ・クッキーを消去する。例えば、ユーザが種々の商店の間を移動したためにクッキー名が変化するとき、クッキーは直ちに有効期限切れするようにセットされ、従って、クッキーがクライアント・ブラウザにより除去されることによって効率的に消去される。次に、ウェブ・アプリケーション・サーバはエッジ・クッキーを生成する（ステップ６０６）。クッキー値だけが変化したという例では、同じクッキー名がその訂正されたクッキー値と共に使用可能である。
【００５７】
クッキーが一致し、商店識別が同じである場合、プロセスは、コンテキストが変化したかどうかを決定する（ステップ６１４）。コンテキストが変化していない場合、要求に対する応答がエッジ・サーバにおいて得られ、プロセスは正規のアプリケーション処理を開始し（ステップ６０８）、しかる後、プロセスは終了する。ステップ６１４において、コンテキストが変化している場合、要求がエッジ・サーバを通過し、ウェブ・アプリケーション・サーバに送られる（ステップ６０６）。ステップ６０６では、エッジ・サーバに記憶された情報が適用可能でないために、その要求は新しいクッキーを生成させる。ステップ６１０に戻ると、商店識別が有効である場合、ウェブ・アプリケーション・サーバは、クッキー・コンテキストが変化したかどうかを決定する（ステップ６１４）。そのコンテキストが変化しなかった場合、ウェブ・アプリケーション・サーバは正規のアプリケーション処理を開始し（ステップ６０８）、しかる後、プロセスは終了する。ステップ６１４において、コンテキストが変化した場合、ウェブ・アプリケーション・サーバは、エッジ・クッキーを生成する（ステップ６０６）。当初クッキーに置かれた値が変化してしまったので、クッキー生成が必要である。例えば、当初の生成時に、当初の言語識別はスペイン語であったかもしれないが、その後、英語に変更されたかもしれない。その結果、ユーザ関連のデータ又はコンテキストは変化し、新たなクッキーが生成される必要がある。別の例では、ユーザが自分のユーザ・プロファイルを変更し、新たなコンテキストを有する新たなクッキーが生成されることが必要であるかもしれない。
【００５８】
図７は、本発明の実施例によるクッキーの生成を示すフローチャートである。図７のプロセスは、図４のウェブ・アプリケーション・サーバ４１０のようなウェブ・アプリケーション・サーバによって実施することが可能である。図７に示されたプロセスは、初期クッキー生成及び再生成に関する図６のステップ６０６を更に詳述したものである。プロセスが開始すると、ウェブ・アプリケーション・サーバがクッキー値を検索する（ステップ７０２）。次に、ウェブ・アプリケーション・サーバが商店識別をクッキー名に連結し（ステップ７０４）、現在の期間を検索する（ステップ７０６）。
【００５９】
ウェブ・アプリケーション・サーバが現在の期間及び店主識別をクッキー値に加える（ステップ７０８）。ウェブ・アプリケーション・サーバが、未承認のアクセスを防ぐためにクッキーの最終値を暗号化する（ステップ７１０）。次に、ウェブ・アプリケーション・サーバが現在の期間の終了となるようにクッキー・タイムアウトをセットする（ステップ７１２）。ウェブ・アプリケーション・サーバが応答をキャッシュし、エッジ・サーバを介してその応答を送り（ステップ７１４）、しかる後、プロセスが終了する。その応答は要求に対する応答及びエッジ・サーバにおいてキャッシュされるべき特殊なクッキーを含む。
【００６０】
図８は、本発明の実施例による図６及び図７のプロセスに関する擬似コードである。命令８００はセクション８０２及び８０４を含む。これらの実施例において、セクション８０２は図６のプロセスを実施するために使用することが可能である。セクション８０４は図７のプロセスを実施するために使用することが可能である。
【００６１】
従って、本発明の種々の形態は、データをキャッシュする中間サーバにおいてコンテンツを制御するためにクッキー生成に関する改良された方法を提供する。これらの例では、サーバはエッジ・サーバである。本発明の方法は、システム生成した情報を有するクッキーを拡張することによってエッジ・サーバ上の計算ロジック及びアイデンティティ検証機構の不足を補う。その結果、エッジ・サーバにおけるデータとウェブ・アプリケーション・サーバにおけるデータとの間に、より強力なデータの結合が存在し、センシティブな情報の良好な保護及びキャッシング機能の増大が生じる。
【００６２】
本発明に関する記述は、図解及び説明を目的として行われたものであり、網羅的であること又は開示された形式に発明を限定することを意図するものではない。多くの修正及び変更が当業者には明らかであろう。実施例は、発明の原理及び実用的な応用を最もよく説明するために、及び当業者が特定の意図された用途に適する種々の修正を伴う種々の実施例に関して発明を理解することを可能にするために、選択及び記述された。
【図面の簡単な説明】
【００６３】
【図１】本発明の種々の形態を具現化し得るデータ処理システムの概略図である。
【図２】本発明の種々の形態を具現化し得るデータ処理システムのブロック図である。
【図３】本発明の種々の形態を具現化し得るネットワーク・システムの概略図である。
【図４】本発明の種々の形態を具現化し得るネットワーク・システムの流れ図である。
【図５】本発明の種々の形態を具現化し得るネットワーク・システムにおける制約付きキャッシングを示す流れ図である。
【図６】本発明の実施例に従ってクッキー管理ロジックの具現化を示すフローチャートである。
【図７】本発明の実施例に従ってクッキー生成の具現化を示すフローチャートである。
【図８】本発明の実施例に従って実行される図６及び図７におけるプロセスのための擬似コードである。
【図１】
2007200331.tif 000003
【図２】
2007200331.tif 000004
【図３】
2007200331.tif 000005
【図４】
2007200331.tif 000006
【図５】
2007200331.tif 000007
【図６】
2007200331.tif 000008
【図７】
2007200331.tif 000009
【図８】
2007200331.tif 000010