(57)【要約】データ通信ネットワークにおいて統合型のキャッシングを実行するための方法を実施するデバイスである。デバイスは、データ通信ネットワークを介することにより、クライアントからパケットを受信するように構成される。上記パケットは、オブジェクトに対する要求を含む。デバイスのオペレーティングシステム／カーネルのレベルにおいて、パケットの復号化処理、クライアントの認証および／または承認、ならびに、要求の圧縮のうちの１つ以上が、キャッシング動作と統合する前に行なわれる。キャッシング動作は、オブジェクトがキャッシュ内に存在するか否かを決定することと、オブジェクトがキャッシュ内に格納されているという決定に応答して、キャッシュから応答を供給することと、オブジェクトがキャッシュ内に格納されていないという決定に応答して、要求をサーバに送信することとを含む。
2008505568.tif 000002
【特許請求の範囲】
【請求項１】
データ通信ネットワークと通信するように接続されたデバイスにおいて統合型のキャッシングを実行する方法であって、
（ａ）該データ通信ネットワークを介することにより、クライアントからパケットを受信することであって、該パケットは、オブジェクトに対する要求を含んでいる、ことと、
（ｂ）該デバイスのオペレーティングシステム／カーネルのレベルにおいて、
（ｉ）該パケットの復号化処理、該クライアントの認証および／または承認、該要求の復元のうちの１つ以上を実行することと、
（ｉｉ）該オブジェクトがキャッシュに存在するか否かを決定することと、
（ｉｉｉ）該オブジェクトが該キャッシュ内に格納されているという決定に応答して、該キャッシュから該要求を供給することと、
（ｉｖ）該オブジェクトが該キャッシュ内に格納されていないという決定に応答して、該要求をサーバに送信することと
を包含する、方法。
【請求項２】
前記要求をサーバに送信することは、ロードバランシング機能を実行して、複数のサーバのうちのどれに要求を送信するかを識別することを含む、請求項１に記載の方法。
【請求項３】
前記要求をサーバに送信することは、該要求を圧縮することを含む、請求項１に記載の方法。
【請求項４】
前記要求をサーバに送信することは、該要求を暗号化することを含む、請求項１に記載の方法。
【請求項５】
前記パケットの復号化処理を実行することは、セキュアハイパーテキスト転送プロトコル（Ｓ−ＨＴＴＰ）にしたがって復号化を実行することを含み、前記要求を暗号化することは、Ｓ−ＨＴＴＰにしたがって該要求を暗号化することを含む、請求項４に記載の方法。
【請求項６】
前記パケットの復号化修理を実行することは、セキュアソケット層（ＳＳＬ）プロトコルにしたがって復号化を実行することを含み、前記要求を暗号化することは、該ＳＳＬプロトコルにしたがって該要求を暗号化することを含む、請求項４に記載の方法。
【請求項７】
前記パケットの復号化処理を実行することは、インターネットプロトコルセキュリティ（ＩＰＳｅｃ）プロトコルにしたがって復号化を実行することを含み、前記要求を暗号化することは、該ＩＰＳｅｃプロトコルにしたがって該要求を暗号化することを含む、請求項４に記載の方法。
【請求項８】
前記要求を供給することは、前記クライアントにオブジェクトを送信することを含み、該クライアントにオブジェクトを送信することは、該オブジェクトを暗号化することを含む、請求項１に記載の方法。
【請求項９】
前記パケットの復号化処理を実行することは、セキュアハイパーテキスト転送プロトコル（Ｓ−ＨＴＴＰ）にしたがって復号化を実行することを含み、前記オブジェクトを暗号化することは、Ｓ−ＨＴＴＰにしたがって応答を暗号化することを含む、請求項８に記載の方法。
【請求項１０】
前記パケットの復号化処理を実行することは、セキュアソケット層（ＳＳＬ）プロトコルにしたがって復号化を実行することを含み、前記オブジェクトを暗号化することは、該ＳＳＬプロトコルにしたがって応答を暗号化することを含む、請求項８に記載の方法。
【請求項１１】
前記パケットの復号化処理を実行することは、インターネットプロトコルセキュリティ（ＩＰＳｅｃ）プロトコルにしたがって復号化を実行することと、前記オブジェクトを該ＩＰＳｅｃプロトコルにしたがって暗号化することとを含む、請求項８に記載の方法。
【請求項１２】
（ｃ）ステップ（ｂ）（ｉｖ）において送信された要求に対応する応答を前記サーバから受信することであって、該応答は、オブジェクトを含んでいる、ことと、
（ｄ）前記デバイスのオペレーティングシステム／カーネルのレベルにおいて、
（ｉ）該オブジェクトのコピーを前記キャッシュに格納することと、
（ｉｉ）該オブジェクトを前記クライアントに送信することと
をさらに包含する、請求項１に記載の方法。
【請求項１３】
前記オブジェクトのコピーを前記キャッシュに格納することは、該オブジェクトの該コピーを圧縮することを含む、請求項１２に記載の方法。
【請求項１４】
前記オブジェクトを前記クライアントに送信することは、該オブジェクトを圧縮することを含む、請求項１２に記載の方法。
【請求項１５】
前記サーバからの前記応答を復号化し、該オブジェクトを前記クライアントに送信する前に暗号化すること
をさらに包含する、請求項１２に記載の方法。
【請求項１６】
前記応答を復号化することは、セキュアハイパーテキスト転送プロトコル（Ｓ−ＨＴＴＰ）にしたがって復号化を実行することを含み、前記オブジェクトを暗号化することは、Ｓ−ＨＴＴＰにしたがって暗号化を実行することを含む、請求項１５に記載の方法。
【請求項１７】
前記応答を復号化することは、セキュアソケット層（ＳＳＬ）プロトコルにしたがって復号化を実行することを含み、該オブジェクトを暗号化することは、該ＳＳＬプロトコルにしたがって暗号化を実行することを含む、請求項１５に記載の方法。
【請求項１８】
前記応答を復号化することは、インターネットプロトコルセキュリティ（ＩＰＳｅｃ）プロトコルにしたがって復号化を実行することを含み、前記オブジェクトを暗号化することは、該ＩＰＳｅｃプロトコルにしたがって暗号化を実行することを含む、請求項１５に記載の方法。
【請求項１９】
キャッシュに格納されたオブジェクトをリフレッシュする方法であって、該方法は、
該オブジェクトに対するクライアント要求を受信することと、
該オブジェクトに対する該クライアント要求を受信したことに応答して、該オブジェクトの満了時間を決定することと、
該オブジェクトの該満了時間を所定の期間と比較することと、
該オブジェクトの該満了時間が該所定の期間よりも短い場合に、前記キャッシュに格納するために、該オブジェクトの新しいコピーをサーバからフェッチすることと
を包含する、方法。
【請求項２０】
前記オブジェクトの満了時間を決定することは、該オブジェクトに関連する満了情報にアクセスすることを含む、請求項１９に記載の方法。
【請求項２１】
前記オブジェクトに関連する満了情報にアクセスすることは、該オブジェクトのヘッダフィールドに格納された満了情報にアクセスすることを含む、請求項２０に記載の方法。
【請求項２２】
ユーザの入力に応答して、前記所定の期間を改変すること
をさらに包含する、請求項１９に記載の方法。
【請求項２３】
データ通信ネットワークにおけるオブジェクトをキャッシングする方法であって、
オブジェクトに対する第１の要求への応答が、非キャッシュ性であることを決定することと、
該決定に応答して、該第１の要求に関する記録をデータ構造に格納することと、
該オブジェクトに対する第２の要求を受信することと、
該第２の要求を該データ構造に格納された該第１の要求に関する該記録と照合することと、
該照合に基づいて、該第２の要求への応答のキャッシングをバイパスすることと
を包含する、方法。
【請求項２４】
前記データ構造をキャッシュに格納することをさらに包含する、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本発明は、概してデータ通信ネットワークに関する。特に、本発明は、データ通信ネットワークにおいてデータのキャッシングを実行するための方法およびデバイスに関する。
【背景技術】
【０００２】
（背景）
ネットワークのトラフィックの増加率は、１９９０年代後半の指数関数的な増加率ほどではないが、加速を続けている。この増大するペースは、トラフィックを搬送する設備に負担を強いている。ネットワークオペレータがこの増大問題に対処することができるように様々な解決策が現れた。キャッシングを用いると、コンテンツは、サーバ設備に負担を強いることなしに、再利用され、クライアントに貢献し得る。加えて、キャッシュは、サーバ設備の負担を軽減することに加え、コンテンツがエンドユーザの近くに位置するときに、応答時間を改善することをも可能にし得る。
【０００３】
キャッシングは、１つ以上のクライアントによってネットワーク上のサーバに対してなされるオブジェクト要求をモニタし、ネットワーク上の機器の格納部にそのような要求（単数または複数）の結果をセーブすることにより、機能する。同じオブジェクトに対する次の要求は、キャッシュによって遮断される。上記キャッシュは、起点サーバに要求を引き渡すよりもむしろ、格納部から起点サーバにオブジェクトを配信する。キャッシングは、この方法により、応答時間を短縮することと、サーバ設備への負荷を軽減することとの２つの利益を提供する。
【０００４】
しかしながら、インターネットが拡大するのにつれ、複数のデータ処理様式が開発され、様々な性能、セキュリティ、および、その他の利点が、ネットワークのトラフィックに提供されてきた。しかしながら、これらの処理様式は、キャッシュの有効性と性能とを制限してきた。キャッシュは、伝統的に、データがはるかに複雑かつ処理されたネットワーク環境を取り込み得る様々な形式を処理することができないため、そのようなキャッシュの機能および有用性は、相応に制限される。
【０００５】
キャッシュはまた、伝統的に、コンテンツが配信される前にネットワークによって認証および／または承認されなければならないユーザに対し、貢献することができないという点で、制限されてきた。認証および承認の特徴は、キャッシュの機能のうちの一部ではなかった。
【０００６】
キャッシュに関する追加的な制限は、セキュアソケット上ハイパーテキスト転送プロトコル（ＨＴＴＰＳ）のトラフィックを処理およびキャッシュすることができないということを含んでいた。伝統的なキャッシュは、暗号化されたトラフィックを復号化、読解または処理する方法をなんら有さない。そのため、任意のＨＴＴＰオブジェクトをキャッシュすること、または、キャッシュされたオブジェクトに対してエンド・トゥ・エンドの暗号化を提供することは、不可能である。
【０００７】
さらに、その他のネットワークサービスならびにネットワーク技術（ロードバランシング技術ならびにその他のタイプの高速処理技術およびパケット処理技術を含む）と協働するためのキャッシュの能力は、最適からは程遠かった。伝統的な統合様式（典型的に複数のメモリコピーと頻繁なコンテキストスイッチングとを要求する）によって導かれる処理の重複とその他の非効率とに起因して、問題が発生する。
【０００８】
キャッシュとその他のタイプのネットワーク処理とを統合するための伝統的なアプローチは、各機能が個々の独立したノードにおいて実行されるようにするために、複数のプロダクトをライン内に配置することをしばしば含む。以下で記述されるように、このアプローチは、たくさんの追加的な処理と、その他多くの非効率とを導く。複数の技術が同じプロダクト内に組み合わされたとしても、その組み合わせは、その他任意の処理と統合されたときに、キャッシングによる利益が、統合の処理において低減されるような方法で、しばしば実施される。そのような統合の制限は、これらの技術を協働させることに含まれる過剰な処理、コピー、および、コンテキストスイッチングの結果として生じる。
【０００９】
過剰なコピーおよびスイッチングは、各要求またはオブジェクトが、まず第１に、アプリケーションによって、新しい形式で、プロセッサメモリ空間にコピーされなければならないということから生じる。メモリ空間にコピーすることは、追加的な処理（例えば、暗号化／複合化、圧縮、接続オフロード、または、その他任意のタイプの処理）が実行されることを可能にするために、実行される。その後、要求または処理は、キャッシュそのものによって処理される前に、パケットレベルにコピーされ直されなければならない。追加的なタイプの処理の各々は、概して、プロセッサバッファへのパケットのコピー、アプリケーションによる処理、および、その後の、サービスに対するキャッシュによるコピーのし直しを要求する。このため、統合を処理するためのこのアプローチは、追加的なメモリコピーを誘導し、これにより、ネットワーク設備に追加的かつ不必要な負担が強いられる。以下で記述されるように、本発明の実施形態は、このコンテキストのスイッチングと、重複する処理とを最小化する。
【発明の開示】
【課題を解決するための手段】
【００１０】
（本発明の概要）
最大の性能を実現するために、本発明の実施例にしたがうデバイスは、キャッシングと以下の処理のうちの１つ以上とを効率的に統合する：（１）セキュアソケット層（ＳＳＬ）の暗号化／複合化；（２）圧縮；（３）パケット処理；（４）ロードバランシング；（５）転送制御プロトコル（ＴＣＰ）バッファリング；（６）認証、承認および監査（ＡＡＡ；Ａｕｔｈｅｎｔｉｃａｔｉｏｎ，Ａｕｔｈｏｒｉｚａｔｉｏｎ  ａｎｄ  Ａｕｄｉｔｉｎｇ）、（７）分散型サービス妨害による攻撃に対する防御、（８）ＨＴＴＰ／Ｓベースの攻撃（例えば、Ｎｉｍｄａ，Ｃｏｄｅ−Ｒｅｄ，ＭｙＤｏｏｍ等）の攻撃に対する防御、（９）ネットワーク処理のオフロード、および、（１０）ネットワークベースのウィルスまたは攻撃からネットワークを保護するための技術のようなその他の処理。
【００１１】
特に、本発明の実施形態にしたがうデバイスは、処理またはモジュールのようなユーザ／アプリケーションのレベルにおいてよりもむしろ、デバイスのオペレーティングシステム（ＯＳ）またはカーネルのレベルにおいて、上記の技術を統合する。本発明の実施形態は、この計算可能な構造および階層のレベルにおいて、キャッシュ特徴を統合することにより、本明細書において言及されているその他の様々な処理、または、本明細書において言及されてはいないが機器において実行されるその他の様々な処理と同様に、機器によってまたは機器において実行される接続に関するその他の処理（ＳＳＬ復号化とエンドポイント処理とを含む）を、キャッシングとより効率的に同期化させることができる。そのようなその他の処理はまた、上記で記述された処理の各々に加え、接続処理、グローバルサーバロードバランシング（ＧＳＬＢ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）圧縮、ＴＣＰ圧縮、ＴＣＰおよびＨＴＴＰの分散型サービス妨害による攻撃に対する防御、ＨＴＴＰウィルスの防御走査、および、その他類似のものを含み得る。
【００１２】
本発明の実施形態は、ＯＳまたはカーネルのレベルにおいて、様々なネットワーク処理とキャッシングとを統合することにより、そのような統合の効率性を大幅に増大させる。本発明の実施形態は、カーネル空間において機能するため、キャッシュがデータ構造のような関連のあるオブジェクトまたは要求と関係することを可能にする。キャッシュは、その他のアプリケーションの各々のように、そのようなデータ構造と等しい状態を維持する。キャッシュはまた、そのようなデータ構造にアクセスした結果、カーネル／ＯＳ空間においてタイトな統合を実行することにより、ＨＴＴＰまたはＨＴＴＰＳの記号／データ構造を確認し、より効率的なキャッシング決定を行なうことも可能である。このため、本発明の実施形態は、ユーザ空間において処理を実行する伝統的なアプローチよりも、統合に関連するコンテキストスイッチングと重複との問題をより明白に回避する。
【００１３】
本発明のさらなる特徴および利点は、本発明の様々な実施形態の構造および動作と同様に、添付の図面を参照して以下で詳細に記述される。本発明は、本明細書に記述されている特定の実施形態に限定されないことに留意されたい。そのような実施形態は、本明細書においては、例示目的のためだけに提供されている。当業者は、本明細書に含まれる教示に基づいて、追加的な実施形態を理解し得る。
【発明を実施するための最良の形態】
【００１４】
本明細書に援用され、本明細書の一部を形成する添付の図面は、詳細な記述と共に、本発明を図示している。さらに、上記図面は、本発明の原理を説明し、当業者が本発明を実施および使用することを助ける。
【００１５】
本発明の特徴および利点は、図面を参酌したときに、以下に開示される詳細な記述からより明確に理解され得る。上記図面を通し、同じ参照文字は、対応する要素を識別する。上記図面において、同じ参照番号は、概して、同じ、機能的に類似している、および／または、構造的に類似している要素を示している。最初に要素が現れる図面は、対応する参照番号において、最も左の桁に示される。
【００１６】
（本発明の詳細な記述）
（Ａ．例示的なデータ通信ネットワーク環境）
図１は、本発明の実施形態が実施され得る例示的なデータ通信ネットワーク環境１００を示している。図１に示されているように、例示的なデータ通信ネットワーク環境１００は、複数のクライアント１０２ａ〜１０２ｎ、機器１０４、および、複数のサーバ１０６ａ〜１０６ｎを含む。クライアント１０２ａ〜１０２ｎの各々は、パブリックデータ通信ネットワーク１０８を介することにより、機器１０４に通信可能なように接続されているが、機器１０４は、プライベートデータ通信ネットワーク１１０を介することにより、サーバ１０６ａ〜１０６ｎに通信可能なように接続されている。一実施形態において、パブリックデータ通信ネットワーク１０８は、インターネットを含み、プライベートデータ通信ネットワーク１１０は、エンタープライズネットワークを含むが、本発明は、そのようには限定されない。
【００１７】
本発明の実施形態にしたがうと、機器１０４は、キャッシュ管理ロジックを含み、さらに、キャッシュを実施するのに用いられる格納媒体へのアクセスを含む（または有する）。これらの特徴を用いることにより、機器１０４は、クライアント１０２ａ〜１０２ｎによってサーバ１０６ａ〜１０６ｎのうちの任意のものに対してなされるオブジェクト要求をモニタする。これらのオブジェクト要求に応答してサーバ１０６ａ〜１０６ｎに返されるオブジェクトは、機器１０４によってキャッシュに格納される。クライアント１０２ａ〜１０２ｎからの同じオブジェクトに対するその後の要求は、機器１０４によって遮断される。上記機器は、要求をサーバ１０６ａ〜１０６ｎに引き渡すよりもむしろ、キャッシュからオブジェクトを配信しようとする。このことは、クライアント１０２ａ〜１０２ｎからの要求に応答して要求される時間と、サーバ１０６ａ〜１０６ｎをサポートする設備への負荷とを低減するという２つの利益を提供する。
【００１８】
本明細書においてさらに詳細に記述されるように、本発明にしたがう実施形態において、機器１０４は、上記機器のソフトウェアアーキテクチャのオペレーティングシステム（ＯＳ）／カーネルのレベルにおいて、このキャッシング機能とその他の１つ以上の処理タスクとを統合する。上記処理タスクは、復号化、圧縮、または、認証、および／または、承認を含むが、それらには限定されない。
【００１９】
例示的なネットワーク環境１００は、例示目的のためだけに提供され、限定を意図されていない。本明細書に提供される教示に基づくと、当業者（単数または複数）は、オブジェクト要求と応答とが複数のネットワークノードの間で転送される任意のネットワーク環境に、本発明が実施され得ることを理解し得る。
【００２０】
（Ｂ．本発明の実施形態にしたがうデータ通信ネットワークにおける統合型のキャッシング）
図２は、機器１０４の例示的なソフトウェアアーキテクチャ２００を示している。ソフトウェアアーキテクチャ２００は、例示目的のためだけに提供されており、限定を意図されていない。図２に示されるように、例示的なソフトウェアアーキテクチャ２００は、ハードウェア層２０６と、ユーザ空間２０２とカーネル空間２０４とに分割されるソフトウェア層とから構成される。
【００２１】
ハードウェア層２０６は、カーネル空間２０４およびユーザ空間２０２内にあるプログラムとサービスとが実行される構造を提供する。ハードウェア層２０６はまた、カーネル空間２０４およびユーザ空間２０２内のプログラムとサービスとが機器１０４に関して内的または外的に通信することを可能にする構造をも提供する。図２に示されているように、ハードウェア層２０６は、ソフトウェアプログラムとサービスとを実行するための少なくとも１つの中央演算ユニット（ＣＰＵ）２６２と、ソフトウェアとデータとを格納するためのメモリ２６４と、ネットワークを介してデータを伝送および受信するためのネットワークポート２６６と、ネットワークを介して伝送または受信されるデータのセキュアソケット層の処理に関連する機能を実行するためのＳＳＬプロセッサ２６０とを含む。
【００２２】
機器１０４のオペレーティングシステムは、利用可能なメモリをカーネル空間２０４とユーザ空間２０４とに分離する。例示的なソフトウェアアーキテクチャ２００において、オペレーティングシステムは、Ｕｎｉｘ（登録商標）オペレーティングシステムとして描かれるが、そのようには限定されない。カーネル空間２０４は、Ｕｎｉｘ（登録商標）のカーネル２３０、デバイスドライバおよび任意のカーネル拡張部を動作させるために、厳密に確保される。本発明の実施形態にしたがうと、カーネル空間２０４はまた、統合型のキャッシュ２３２に関連して機能する多数のネットワークサービスまたはプロセッサをも含み、その利益は、本明細書のどこかに詳細に記述されている。
【００２３】
図２に示されているように、カーネル空間２０４は、少なくとも１つの高速の第２層〜第７層の統合型のパケットエンジン２４０と、ＳＳＬエンジン２３４と、ポリシエンジン（ｐｏｌｉｃｙ  ｅｎｇｉｎｅ）２３６と、マルチプロトコル圧縮ロジック２３８とを含む。高速の第２層〜第７層の統合型のパケットエンジン２６６は、ネットワークポート２６６を介して機器１０４によって受信および伝送されたパケットのカーネルレベルの処理を管理する役目を担う。このために、高速の第２層〜第７層の統合型のパケットエンジン２６６は、ＳＳＬエンジン２３４、統合型のキャッシュ２３２、ポリシエンジン２３６、および、マルチプロコトル圧縮ロジック２３８に関連して機能する。特に、ＳＳＬエンジンは、パケットのＳＳＬ処理を実行するように構成され、ポリシエンジン２３６は、トラフィック管理（例えば、要求レベルのコンテキストスイッチング、および、要求レベルのキャッシュの再配向）に関連する機能を実行するように構成され、マルチプロトコル圧縮ロジック２３８は、データの圧縮と復元とに関連する機能を実行するように構成される。統合型のキャッシュ２３２は、本明細書のどこかに記述されているような統合型のキャッシングを実行するように構成される。
【００２４】
ユーザ空間２０２とは対照的に、カーネル空間２０４は、すべてのユーザモードアプリケーションによって用いられるメモリである。ユーザモードアプリケーションは、カーネル空間２０４に直接的にアクセスすることはできず、カーネルサービスにアクセスするためには、サービスコールを用いなければならない。図２に示されているように、機器１０４のユーザ空間２０２は、グラフィカルユーザインターフェース（ＧＵＩ）２１０、コマンドラインインターフェース（ＣＬＩ）２１２、シェルサービス２１４、ヘルスモニタリングプログラム（ｈｅａｌｔｈ  ｍｏｎｉｔｏｒｉｎｇ  ｐｒｏｇｒａｍ）２１６、および、デーモンサービス（ｄａｅｍｏｎ  ｓｅｒｖｉｃｅ）２１８を含む。ＧＵＩ２１０およびＣＬＩ２１２は、システム管理者が機器１０４の動作の制御と相互作用することができるようにする手段を提供する。ヘルスモニタリングプログラム２１６は、ネットワークシステムが適切に機能することと、ネットワークを介して要求されたコンテンツをユーザが受信することとを確実にするように用いられる。デーモンサービス２１８は、機器１０４によって受信される周期的なサービス要求を継続的に実行したり取り扱うプログラムである。各デーモンプログラムは、上記要求をその他のプログラム（またはプロセッサ）に適切に転送する。
【００２５】
図３は、本発明の実施形態にしたがう、統合型のキャッシング機能を提供する機器において行なわれ得るイベントの系列に関するフローチャート３００を示している。しかしながら、本発明は、フローチャート３００によって提供される記述には限定されない。むしろ、本明細書に提供される教示から、本発明の目的と精神との範囲内に、その他の機能上の流れがあることが、当業者に理解されるべきである。これらその他の機能上の流れは、異なる処理、異なるシーケンシング、および、本発明の対象であるキャッシングの統合に関するその他のバリエーションを含み得る。
【００２６】
フローチャート３００の方法は、１つ以上のデバイス（単数または複数）において実施され得、上記デバイス（単数または複数）は、データ通信ネットワークと通信可能なように接続されている。例えば、フローチャート３００の方法は、上記の図１に記述された機器１０４（図２を参照して上記で記述されたようなソフトウェアアーキテクチャ２００を有する）のような機器に実施され得る。フローチャート３００の方法は、引き続きこの例示的な実施形態に関連して記述されるが、本発明は、そのようには限定されない。
【００２７】
図３に示されているように、フローチャート３００の方法は、ステップ３０２において開始する。上記ステップにおいて、機器１０４は、クライアント１０２ａ〜１０２ｎのうちの１つから、暗号化されたパケットを受信する。一実施形態において、機器１０４は、サーバ１０６ａ〜１０６ｎに対するプロキシＳＳＬのエンドポイントとして構成され、クライアント１０２ａ〜１０２ｎから受信した暗号化されたパケットを復号化し、その後、必要に応じてそれらをさらに処理するために、それらを送信する。さらに、最終的には、暗号化されたパケット内のアドレス情報に基づいて、それらを適切なリソースに送信する。適切なリソースは、例えば、サーバ１０６ａ〜１０６ｎ、または、機器１０４によって管理されるキャッシュのうちの任意のものであり得る。ステップ３０４において、機器１０４は、パケット上で復号化処理を実行する。
【００２８】
ステップ３０６において、制御にアクセスするために、本発明の実施形態にしたがってＡＡＡポリシを実行するように構成された機器１０４は、暗号化されたパケットが受信されるクライアントを認証および／または承認する。
【００２９】
ステップ３０８において、本発明の実施形態にしたがって特定のタイプのパケット処理を実行するように構成された機器１０４は、復号化されたパケット上でパケット処理を実行し、機器のネットワークプロトコルによって生成される接続オーバーヘッド処理要求（ｃｏｎｎｅｃｔｉｏｎ  ｏｖｅｒｈｅａｄ  ｐｒｏｃｅｓｓｉｎｇ  ｒｅｑｉｒｅｍｅｎｔ）を低減する。
【００３０】
ステップ３１０において、本発明の実施形態にしたがってコンテンツを圧縮および復元するように構成された機器１０４は、パケットに関連する要求を復元する。一実施形態において、上記要求は、ウェブオブジェクト要求を含むが、本発明は、そのようには制限されない。
【００３１】
その後、ステップ３１２において、機器１０４は、キャッシュ機能を活性化させることが可能になる。上記機器は、クリアな、および／または、承認された、および／または、復元された、および／または、パケット処理されたオブジェクトに対する要求を受信する。ステップ３０２、３０４、３０６、３０８、および、３１０に関連して記述されている前の処理に起因して、キャッシュ管理ロジックは、クリアな／承認された／圧縮された／パケット処理された要求に基づいて、オブジェクトがキャッシュされたか否か、または、オブジェクトがキャッシュ可能か否かに関する決定を行い、これにより、オブジェクトが伝統的なキャッシュよりも遥かに豊富な要求を処理することができるか否かを決定し、その後、伝統的なアプローチによるよりも効率的にキャッシングを実行する。さらに、キャッシュ管理ロジックは、その他の処理と共にカーネル空間において機能するため、キャッシュ管理ロジックは、関連のあるオブジェクトに関係する。上記関連のあるオブジェクトは、例えば、その他のアプリケーションの各々および（このために）統合が極めて効率的な方法で実行されるようなデータ構造と等しい状態を有するデータ構造のようなものであり得る。
【００３２】
ステップ３１４に示されているように、いまだにオブジェクトがキャッシュメモリ内に存在していない場合、機器１０４は、サーバ１０６ａ〜１０６ｎのうちの１つ以上に要求を送信する。しかしながら、要求が送信される前に、いくつかの追加的な処理ステップが行なわれ得る。例えば、ステップ１１６において、機器１０４は、接続処理を随意に実行することにより、サーバ（単数または複数）に効率的に要求が伝送されることを確実にし、ステップ１１８において、機器１０４は、ロードバランシング決定を随意に実行することにより、最も適切なサーバ（単数または複数）に要求が送信されることを確実にする。さらに、一実施形態において、要求は、バックエンドの暗号化処理を介することにより、サーバ（単数または複数）に送信される前に暗号化されるので、エンド・トゥ・エンドのネットワークセキュリティを提供する。ステップ３２０において、上記要求は、サーバ（単数または複数）に伝送される。
【００３３】
ステップ３２２において、機器１０４は、もとのサーバ１０６ａ〜１０６ｎのうちの１つから応答を受信する。上述のようにバックエンドの暗号化がサポートされていると、機器１０４は、サーバからの応答を復号化する。
【００３４】
ステップ３２４において、機器１０４は、サーバからの応答に関連するオブジェクトを圧縮する。一実施形態において、オブジェクトは、ウェブオブジェクトを含むが、本発明は、そのようには限定されない。
【００３５】
ステップ３２６において、機器１０４におけるキャッシュ管理ロジックは、圧縮された形式で、オブジェクトをキャッシュに格納する。キャッシュ管理ロジックは、本発明の処理能力により、圧縮されたオブジェクトをこの方法で格納する。いったんオブジェクトがキャッシュ内に格納されると、オブジェクトに対する将来のクライアント要求は、上述のようなステップ３１６，３１８，３２０，３２２，３２４および３２６の性能を用いることなしに、キャッシュから供給（ｓｅｒｖｅ）される。このことは、フローチャート３００における決定ステップ３１４から決定ステップ３２８に直接的に連結している直線によって示される。
【００３６】
ステップ３２８において、オブジェクトがサーバから受信した後に、または、オブジェクトがキャッシュから抽出された後に、機器１０４は、接続上でパケット処理を実行することにより、オリジナルのクライアント要求をより効率的に供給する。その後、ステップ３３０において、応答オブジェクトは、再暗号化され、もとのクライアントに配信される。
【００３７】
上記で記述された処理ステップの各々は、機器１０４のカーネル／ＯＳのレベルにおいて行なわれる。本発明の実施形態は、カーネル／ＯＳ空間におけるその他の処理ステップの最中に（および、上記処理ステップと統合して）キャッシュを実施することにより、追加的な機能を実行し、キャッシュの性能を向上させることが可能である。
【００３８】
そのような統合は、本発明の実施形態にしたがうキャッシュの実施が、伝統的にキャッシュの能力を超過する追加的な機能を実行することを可能にする。例えば、本発明の実施形態は、キャッシュが暗号化されたおよび／または圧縮されたオブジェクトと協働することを可能にする。
【００３９】
本発明の実施形態によって達成され得る追加的な機能の別の例は、エンド・トゥ・エンドの暗号化されたＨＴＴＰＳトラフィックのキャッシングを含む。典型的に、キャッシュは、サーバからの暗号化されていないＨＴＴＰ応答のみを格納する。いくつかの場合において、特定のキャッシュは、キャッシュからクライアントへのＳＳＬ暗号化されたＨＴＴＰＳ配信をサポートするが、どの場合においても、伝統的なキャッシュは、サーバによって暗号化された応答をキャッシュすることが不可能であり、そのため、エンド・トゥ・エンド（すなわち、サーバからクライアントへの）の暗号化をサポートすることが、不可能である。典型的に、ＨＴＴＰＳの形式でサーバによって応答が暗号化されるとき、キャッシュは、そのような応答を復号化することが不可能であり、そのため、そのキャッシュメモリ内に応答を格納することが不可能である。このため、伝統的なキャッシュは、エンド・トゥ・エンドの暗号化されたトラフィックに直面するいかなる利益をも提供することが不可能である。本発明の実施形態において、統合型のキャッシング機器は、ＳＳＬ暗号化されたＨＴＴＰＳトラフィックに対し、双方向の端点（ｔｅｒｍｉｎａｔｉｏｎ  ｐｏｉｎｔ）の役目を担う。
【００４０】
例えば、本発明の実施形態において、統合型のキャッシング機器は、サーバと機器との間の暗号化されたトラフィックと、機器とクライアントとの間の暗号化されたトラフィックとの両方の端点として振舞う。上記機器は、この方法により、サーバから受信されＨＴＴＰＳで暗号化された応答を復号化およびキャッシュすることが可能であり、そのような応答をクライアントに供給するときに、そのような応答を再暗号化し、要求を行なっているクライアントにそれを配信することにより、エンド・トゥ・エンドの暗号化を可能にする。その結果、多種多様なウェブトラフィックに対するキャッシングの適用可能性を増大させることが可能となる。
【００４１】
本発明の実施形態にしたがうと、上記機器はまた、ＳＳＬバーチャルプライベートネットワーク（ＳＳＬ  ＶＰＮ）におけるエンドポイントの役目を担い得る。特に、上記機器は、プライベートデータ通信ネットワークにおける任意のリソースに対するプロキシＳＳＬエンドポイントとして振る舞い、クライアントから受信した暗号化されたパケットを復号化し、その後、暗号化されたパケット内のアドレス情報に基づいて、それらを適切な行き先サーバ（ｄｅｓｔｉｎａｔｉｏｎ  ｓｅｒｖｅｒ）のリソースに送信する。参照することによりその全体が本明細書中に援用される２００５年１月２４日に出願された同一出願人による同時継続出願の「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｅｓｔａｂｌｉｓｈｉｎｇ  ａ  Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ」と題された米国特許出願第１１／０３９，９４６号に記述されているように、クライアントとゲートウェイとの間に確立されるデータ通信セッションは、本出願の前の段落に記述されているような暗号化エンドポイントとしての役目を担うゲートウェイを用いて暗号化され得る。引用された出願に記述されているように、クライアントは、セキュアソケット層（ＳＳＬ）、ＩＰＳｅｃ、または、その他任意の暗号化方法を用いることにより、暗号化されたデータ通信セッションを確立し得る。クライアント上の遮断機構は、クライアントブラウザに行き先サーバまたは行き先ネットワークと直接的に通信するように考えさせる一方で、上記データ通信セッションにより、ゲートウェイにトラフィックを配向する。そのような実施形態において、暗号化されたデータ通信セッションは、ゲートウェイにおいて終端され得る。上記暗号化されたデータ通信セッションはまた、本明細書において記述されているような統合型のキャッシュを含み得る。このようにして、キャッシング機能は、ＳＳＬ  ＶＰＮ機能に統合され得る。
【００４２】
ゲートウェイはまた、要求に対して適用可能なＡＡＡポリシを実行することが可能である。その後、上記ゲートウェイは、キャッシュされた特定のオブジェクトにアクセスすることを許可されたユーザのみに対し、要求することを許容するだけではなく、適切に認証されたクライアントのみに対し、キャッシュされたオブジェクトを供給し得る。キャッシュが任意の特定の要求を確認する前に、ゲートウェイのアクセス制御ポリシが実行されるような方法で、上記キャッシュが統合されるので、このことは可能である。したがって、キャッシュされたオブジェクトは、キャッシュそのものが認証または承認を実行することを必要とすることなしに、アクセス制御による利益を得る。
【００４３】
そのようなその他の機能とキャッシュとの統合を介することにより、キャッシュそのものは、今日のネットワークを行き交う様々なデータを扱うことに関し、より効率的かつより効果的になる。本発明の実施形態はまた、多種多様なウェブトラフィックに対してキャッシュ機能による利益を導入することにより、ネットワーク全体の効率性を向上させることが可能である。
【００４４】
本発明の実施形態にしたがって上記で記述された統合様式に関するその他特有の結果は、以下のようなものである。１つの結果は、あらかじめ圧縮されたデータをキャッシュし、圧縮を認識しているクライアントにそれを供給する能力である。別の結果は、アクセス制御されたデータをキャッシュする能力である。さらに別の結果は、外部のキャッシュと協働して、キャッシュの拡張性を提供する能力である。キャッシュは、再配向と統合され、ゲートウェイにおけるトラフィック管理能力と統合されるため、外部のキャッシュは、第２段階のキャッシングを提供するように配設され、それにより、キャッシングのキャパシティを顕著に拡張し得る。本発明の実施形態を介することにより、このキャパシティは、明示的にキャッシュ再配向ポリシを実行しなければならないキャッシュモジュールそのものを用いることなしに、生成され得る。
【００４５】
性能の面では、上記に記述されたようにキャッシュを統合することにより、キャッシュのプロセッサは、キャッシュを行う様々な接続処理タスクを実行することと、ネットワーク上のノードとして振舞うこととから開放され、伝統的に、上記プロセッサは、最も高い性能レベルにおいて、そのキャッシング機能を実行することが（したがって、実行することが可能であることも）要求される。とりわけ、圧縮されたデータのキャッシングを可能にすることにより、キャッシュは、さらに効率的に機能することが可能になり、ユーザがさらに高い性能を実現することが可能になる。
【００４６】
本出願において既に留意されたように、キャッシュがその他のネットワークサービスおよびネットワーク技術と統合される結果として、効率性が生じる。上記ネットワークサービスおよびネットワーク技術は、ロードバランシング技術、暗号化、ＡＡＡ、圧縮、および、その他のタイプの高速化処理およびパケット処理を含む。結果として、処理の重複と、伝統的な統合様式によって導入されるその他の非効率とが、回避される。不必要なコピーとコンテキストスイッチングとによって引き起こされるこれらの非効率は、デバイスによって受信される各オブジェクトがメッセージにコピーされ、その結果、関連のあるアプリケーションによって処理される前に、プロセッサメモリにコピーされなければならないということから生じる。その後、上記要求は、追加的なメモリコピーを導入するキャッシュによる処理のために、オブジェクトレベルまたはパケットレベルにコピーされ直されなければならない。対照的に、本発明の実施形態は、ＯＳまたはカーネルのレベルにおいて統合を実行し、それにより、データ構造のようなオブジェクトにおいて動作するようにキャッシュすることを可能にする。キャッシュは、そのようなデータ構造に関連する（およびそのようなデータ構造を処理する）その他のアプリケーションおよび／またはプロセッサと同じ状態を有し、そのような追加的なメモリコピーに対する要求は、すべてのプロセッサが同じデータ構造と共に機能する際に、未然に防がれる。結果として、より効率的な統合が生じる。
【００４７】
（Ｃ．本発明の実施形態にしたがうデータ通信ネットワークにおける保護の妥当性確認を用いたキャッシング）
ウェブオブジェクトは、時間につれ変化し得るので、各ウェブオブジェクトは、使用可能な寿命または「鮮度」を有しているといわれている。鮮度のコンセプトは、もともとコンテンツを生成したアプリケーションサーバが、キャッシュによって供給され得る期間をも、そのようなオブジェクトが決定するという事実を参照する。キャッシュは、メモリに格納されたオブジェクトのコピーが依然として「新鮮」であるか否か、または、起点サーバからオブジェクトに関する新しいコピーを抽出することをキャッシュが必要としているか否かを決定しなければならない。本発明の実施形態は、オブジェクトの鮮度を保証するための新しいアプローチを実施する。
【００４８】
従来のキャッシュの実施のうちの多くは、所定のスケジュールで起点からコンテンツをフェッチすることにより、キャッシュされたコンテンツを新鮮に保とうとしていた。起点からコンテンツをフェッチすることは、典型的には以下のアプローチのうちの１つまたは両方に基づいて、キャッシュ管理によって確立された時間に行われる。上記アプローチは、（ｉ）正規の特定の間隔、または、（ｉｉ）コンテンツがまさに満了しようとしているとき、のうちのいずれかにおけるアプローチである。
【００４９】
典型的に、上記の一般的に用いられるアプローチに関連する２つの問題が存在する。第１の問題は、不必要な処理の負荷が、起点サーバに課されるということである。なぜならば、最終的にコンテンツがクライアントに供給されるか否かに関わらず、リフレッシュ（そのようなリフレッシュは、特定の間隔、または、コンテンツがまさに満了しようとしているときのいずれかにおいて行われる）を要求しているキャッシュにコンテンツを提供することが、上記サーバに要求されるからである。第２の問題は、リフレッシュされなければならない要素と、それらがリフレッシュされなければならない時間とをキャッシュが追跡する必要があるために生成される過剰な処理の重複に基づいて、キャッシュが追加的なプロセッサの負荷を招くということである。
【００５０】
本発明の実施形態にしたがうキャッシュは、新しいプレフェッチ・アプローチを用いることにより、上記の問題を解決する。コンテンツをプレフェッチすることは、所定のスケジュールにしたがっては実行されず、または、コンテンツの満了の直前にも実行されない。その代わりに、本発明の実施形態は、以下の条件のうちの両方が満たされるときのみに、プレフェッチを実行する。上記の条件は、（１）クライアントが特定のコンテンツに対して要求を行うこと、および、（２）コンテンツが「まさに満了しようとしている」ことである。
【００５１】
このアプローチは、上記で記述された両方の問題に対処する。積極的な再妥当性確認は、起点サーバからのコンテンツをリフレッシュする要求をより積極的に生成する。そのようなコンテンツは、上記起点サーバのみにおいて、積極的にアクセスされる。このことは、起点サーバ上の「不必要な」負荷の大きさを最小化する。上記で記述されたように、最終的にクライアントに供給されないオブジェクトをリフレッシュすることをキャッシュが要求する（または、極めてまれにキャッシュの感度に依存して供給される）ので、キャッシュは、起点サーバのリソースと自らのリソースとの両方を非効率的に利用する。本発明の実施形態は、積極的にアクセスされるコンテンツのみを要求することにより、キャッシュとサーバリソースとを非効率的に用いることを回避する。上記アプローチはまた、同じ理由により、プレフェッチに用いられる帯域幅を縮小し、それにより、伝統的なアプローチよりもより効率的にネットワークリソースを用いる。
【００５２】
さらに、本発明の実施形態は、キャッシュされたオブジェクトそのものに含まれる満了情報を用いることにより、起点サーバからのオブジェクトをリフレッシュすることを要求するか否かを決定する。そのような満了情報は、典型的には、関連のあるオブジェトのヘッダに含まれる。このため、この実施形態は、キャッシュを要求してリフレッシュのためのスケジュールをテーブル追跡する多くの伝統的なアプローチとは異なり、フェッチするために任意の追加的な情報を格納することの非効率を回避する。
【００５３】
「デーモンベース」のプレフェッチ技術を用いることもまた、プレフェッチに備わる利点を増大させる。この技術は、頻繁にアクセスされるオブジェクトに対するキャッシュ・ミスの回数を低減する。なぜならば、そのようなオブジェクトは、それらが満了する直前に、積極的な再妥当性確認を受ける可能性が非常に高いからである。この技術はまた、起点サーバへのトラフィックの急増（たくさん需要されるたくさんの応答が満了するときに発生し得る）をも回避する。伝統的なアプローチにおいて、そのようなコンテンツに対するすべての要求は、キャッシュコンテンツが満了しているので、キャッシュをミスし、起点サーバに送信されるはめになる。対照的に、本発明の実施形態において、キャッシュメモリのコンテンツは、概して満了の直前にリフレッシュされるので、キャッシュがリフレッシュされている間にキャッシュ・ミスが発生するという状況は、はるかに発生しにくくなる。
【００５４】
本発明の実施形態において、プレフェッチすることの積極性は、まさに満了しようとしているコンテンツが決定される満了時間の前の持続期間の長さを調整し、さらには、関連のあるオブジェクトをキャッシュすることによってリフレッシュをトリガするように要求されるクライアント要求の回数を調整することにより、制御され得る。
【００５５】
（Ｄ．本発明の実施形態にしたがう、「ネガティブセル」を用いた、たくさんの非キャッシュ性の応答の処理の最適化）
本発明の実施形態にしたがうと、キャッシュは、オブジェクトヒット率（ｏｂｊｅｃｔ  ｈｉｔ  ｒａｔｉｏ）を高めるために、特定のサイズを超えたオブジェクトを認識し、格納しない。典型的に、キャッシュは、キャッシュされたオブジェクトを格納するだけのための制限されたメモリ空間を有するので、割り当てられたメモリ空間を超える特定の応答は、非キャッシュ性であるとして最終的に拒絶され、キャッシュによって格納されない。伝統的なキャッシュを用いると、キャッシュは、たくさんの応答をそのキャッシュメモリに格納し、応答のサイズが所定の最大のサイズを超えたときのみに、応答を格納することを中断しようとする。伝統的なキャッシュは、そのような応答に対する要求がサーバからキャッシュによって受信されるごとに、たくさんの応答を繰り返しキャッシュしようとする。各場合において、キャッシュは、メモリ空間を超える際に、オブジェクトが非キャッシュ性であることを決定する必要があり得る。このため、これは、明らかに非効率的なアプローチである。
【００５６】
本発明の実施形態にしたがうと、キャッシュは、最適化を用いることにより、そのような応答を格納するための努力を回避する。応答のサイズが原因で非キャッシュ性となる応答をキャッシュが検出するときはいつでも、上記キャッシュは、「ネガティブセル（ｎｅｇａｔｉｖｅ  ｃｅｌｌ）」と呼称されるデータ構造に対応する要求に関する記録を格納する。上記記録は、要求が非キャッシュ性であることを示す。将来において、クライアントが同じオブジェクトを要求したとき、上記要求は、データ構造に格納された最初の要求に関する記録に照合される。上記照合に基づいて、キャッシュは、応答をキャッシュしようとはせず、その代わりに、要求は、キャッシュを完全にバイパスし得る。
【００５７】
ネガティブセルがキャッシュ内に滞在し得る持続期間を特定するために必要なユーザ構成は存在しない。実際、ユーザは、この特定の機構が用いられることを認識しさえもしない。一実施形態において、キャッシュは、たくさんの応答をキャッシュするために用いられ得る正規の満了情報を用いることにより、その応答に関する「ネガティブ情報」をキャッシュする。
【００５８】
（Ｅ．コンピュータシステムをベースとした例示的な実施）
本発明の機能は、ハードウェア、ソフトウェア、または、それらの組み合わせを用いることにより、実施され得、１つ以上のコンピュータシステム（またはその他の処理システム）に実施され得る。例えば、図４は、本発明の機能を実施するために用いられ得る例示的なコンピュータシステム４００を示している。
【００５９】
図４に示されているように、例示的なコンピュータシステム４００は、本発明の実施形態にしたがって、ソフトウェアルーチンを実行するための、プロセッサ４０４を含む。明瞭化のため、単一のプロセッサのみが示されているが、コンピュータシステム４００はまた、マルチプロセッサシステムをも備え得る。プロセッサ４０４は、コンピュータシステム４００のその他のコンポーネントと通信するために、通信設備４０６に接続される。通信設備４０６は、例えば、通信バス、クロスバー、または、ネットワークを含み得る。
【００６０】
コンピュータシステム４００は、ランダムアクセスメモリ（ＲＡＭ）のようなメインメモリ４０８と、２次メモリ４１０とをさらに含む。２次メモリ４１０は、例えば、ハードディスクドライブ４１２、および／または、取り外し可能な格納ドライブ４１４を含み得る。上記取り外し可能な格納ドライブは、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光学ディスクドライブ、または、類似のものを含み得る。取り外し可能な格納ドライブ４１４は、周知の方法により、取り外し可能な格納ユニット４１８から読み取りを行い、および／または、取り外し可能な格納ユニット４１８に書き込みを行い得る。取り外し可能な格納ユニット４１８は、フロッピー（登録商標）ディスク、磁気テープ、または、類似のものを含み得、上記取り外し可能な格納ユニットは、取り外し可能な格納ドライブ４１４により、読み取られたり、書き込まれたりする。当業者（単数または複数）によって理解されるように、取り外し可能な格納ユニット４１８は、コンピュータに使用可能な格納媒体（コンピュータソフトウェアおよび／またはデータが格納されている）を含む。
【００６１】
代替的な実施形態において、２次メモリ４１０は、コンピュータプログラムまたはその他の命令がコンピュータシステム４００にロードされることを可能にするその他の類似の手段を含み得る。そのような手段は、例えば、取り外し可能な格納ユニット４２２とインターフェース４２０とを含み得る。取り外し可能な格納ユニット４２２とインターフェース４２０との例は、プログラムカートリッジとカートリッジインターフェース（例えば、テレビゲームのコンソールデバイスに見出されるようなもの）、取り外し可能なメモリチップ（例えば、ＥＰＲＯＭまたはＰＲＯＭ）と関連するソケット、ならびに、ソフトウェアおよびデータが取り外し可能な格納ユニット４２２からコンピュータシステム４００に転送されることを可能にするその他の取り外し可能な格納ユニット４２２とインターフェース４２０とを含む。
【００６２】
コンピュータシステム４００は、通信インターフェース４０６から、または、フレームバッファ（図示されず）から、グラフィック、テキスト、および、その他のデータをディスプレイユニット４３０上のユーザに表示するために転送するディスプレイインターフェース４２０をさらに含む。
【００６３】
コンピュータシステム４００はまた、少なくとも１つの通信インターフェース４２４をも含む。通信インターフェース４２４は、ソフトウェアおよびデータが、通信経路４２６を介することにより、コンピュータシステム４００と外部のデバイスとの間で転送されることを可能にする。本発明の実施形態において、通信インターフェース４２４は、コンピュータシステム４００と、例えばパブリック（またはプライベート）データ通信ネットワークのようなデータ通信ネットワークとの間で、データが転送されることを可能にする。通信インターフェース４２４の例は、モデム、ネットワークインターフェース（例えば、イーサネット（登録商標）カード）、通信ポート、および、類似のものを含み得る。通信ネットワーク４２４を介して転送されるソフトウェアおよびデータは、電子的信号、電磁気的信号、光学的信号、または、通信インターフェース４２４によって受信されることが可能なその他の信号のような、信号の形態をとる。これらの信号は、通信経路４２６を介することにより、通信インターフェースに提供される。
【００６４】
本明細書において用いられているように、「コンピュータプログラム製品」という用語は、一部では、リムーバブル格納ユニット４１８、リムーバブル格納ユニット４２２、ハードディスクドライブ４１２にインストールされたハードディスク、または、通信経路４２６（ワイヤレスリンクまたはケーブル）を介してコンピュータインターフェース４２４に搬送される搬送波を参照し得る。コンピュータに使用可能な媒体は、磁気媒体、光学的媒体、または、その他の記録可能媒体、または、搬送波またはその他の信号を伝送する媒体を含み得る。これらのコンピュータプログラム製品は、ソフトウェアをコンピュータシステム４００に提供する手段である。
【００６５】
コンピュータプログラム（コンピュータ制御ロジックとも呼称される）は、メインメモリ４０８および／または２次メモリ４１０に格納される。コンピュータプログラムはまた、通信インターフェース４２４を介して受信され得る。このようなコンピュータプログラムは、実行されたときに、コンピュータシステム４００が上記で記述された本発明の特性のうちの１つ以上を実行することができるようにする。特に、コンピュータプログラムは、実行されたときに、プロセッサ４０４が本発明の特徴を実行することができるようにする。したがって、そのようなコンピュータプログラムは、コンピュータシステム４００のコントローラに相当する。
【００６６】
本発明は、ソフトウェア、ファームウェア、ハードウェア、または、そられの任意の組み合わせにおける制御ロジックとして実施され得る。本発明がソフトウェアを用いて実施される実施形態において、上記ソフトウェアは、取り外し可能な格納ドライブ４１４、ハードディスクドライブ４１２、または、インターフェース４２０を用いることにより、コンピュータプログラム製品に格納され、コンピュータシステム４００にロードされ得る。代替的に、コンピュータプログラム製品は、通信経路４２６を介することにより、コンピュータシステム４００にダウンロードされ得る。ソフトウェアは、プロセッサ４０４によって実行されたときに、プロセッサ４０４が本明細書に記述された本発明の機能を実行できるようにする。
【００６７】
（Ｇ．結論）
上記では、本発明の様々な実施形態が記述されてきたが、それらは単に例示のために提供され、限定のために提供されたものではないことが、理解されるべきである。したがって、当業者は、添付の請求の範囲に定義された本発明の精神および範囲から逸れることなしに、形式および細部に関する様々な変更がなされ得ることを理解し得る。したがって、本発明の広さおよび範囲は、上記で記述された任意の例示的な実施形態によって限定され得、添付の請求の範囲とその均等物のみにしたがって定義され得る。
【図面の簡単な説明】
【００６８】
【図１】図１は、本発明の実施形態が実施され得る例示的なデータ通信ネットワークを示している。
【図２】図２は、本発明の実施形態にしたがう、統合型のキャッシングを実行する機器の例示的なソフトウェアアーキテクチャを示している。
【図３】図３は、本発明の実施形態にしたがう、デバイスにおいて統合型のキャシングを実行するための方法のフローチャートを示している。
【図４】図４は、本発明の実施形態にしたがう、キャッシング機能を実行するためのコンピュータシステムをベースとした例示的な実施を示している。
【図１】
2008505568.tif 000003
【図２】
2008505568.tif 000004
【図３】
2008505568.tif 000005
【図４】
2008505568.tif 000006
【国際調査報告】
2008505568.tif 000007
2008505568.tif 000008