コンピュータネットワークにおいてマルチセッションのデータ通信をキャッシングする、コンピュータにより実現される方法であって、a所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントと、1以上のメタデータサービスとの間の1以上のデータセッションを受信、傍受又は監視する段階であって、前記クライアントは、前記コンテンツオブジェクトのメタデータを発見する1以上のメタデータサービスと通信する段階と、b前記コンテンツオブジェクトのメタデータを発見するため、前記クライアントと前記1以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析する段階と、c前記クライアントとコンテンツソースとの間の後続のデータセッションを受信又は傍受する段階と、d前記クライアントにより使用されるデータプロトコルを識別し、前記データセッションにおけるデータ問合せを識別する段階と、e前記データ問合せにおいて前記クライアントにより要求された前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を識別する段階と、f前記コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されている前記コンテンツオブジェクト又は前記コンテンツオブジェクトの一部を前記クライアントに送出し、記憶されていると判定されない場合、前記データ問い合わせを前記コンテンツソースに送出し、前記コンテンツソースからのデータ応答を記憶し、前記データ応答を前記クライアントに送出する段階と、を含む方法。前記b段階は、前記コンテンツオブジェクトのメタデータを発見するため、継続的に前記クライアントと前記1以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析する段階を含む、請求項1記載の方法。前記c段階は、前記メタデータから知られるコンテンツソースを有する後続のデータセッションのみを傍受する、請求項1記載の方法。前記d段階は、前記メタデータを使用して、前記クライアントにより使用されるデータプロトコルを識別し、前記後続のデータセッションにおけるデータ問合せを識別する段階を含む、請求項1記載の方法。前記段階dは、前記メタデータを使用して、データセッションにおいて使用される暗号化されたプロトコルを検出及び復号する段階を含む、請求項1記載の方法。前記段階eは、問合せ又は問合せに対する応答において不完全データを識別し、前記不完全データを完成するために前記メタデータから更なる情報を取得する段階を含む、請求項1記載の方法。前記段階fは、前記メタデータを使用して、前記コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されるかを判定する段階を含む、請求項1記載の方法。前記方法はキャッシュサービスにおいて実現され、前記段階fは、前記クライアントと少なくとも1つのセッションを確立し、前記キャッシュサービスは、前記コンテンツオブジェクトの前記コンテンツソースの少なくとも1つとして前記クライアントにより識別される、請求項1記載の方法。前記段階fは、前記メタデータを使用して、前記データ応答を記憶する前にキャッシュに記憶されている前記コンテンツオブジェクトの有効性を検証し、前記メタデータに整合しない前記データ応答を任意に廃棄する段階を含む、請求項1記載の方法。前記段階fは、前記メタデータを使用して、キャッシュに記憶されているデータ応答の有効性を検証し、整合するデータ応答又は整合するデータ応答の一部がキャッシュに記憶されているかを判定し、前記メタデータに整合しない前記データ応答を廃棄する段階を含む、請求項1記載の方法。前記メタデータは、前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を記憶するコンテンツソースのアドレス、前記コンテンツソースによりサポートされるデータプロトコル、前記コンテンツオブジェクト又はコンテンツソースの暗号化鍵、又はコンテンツオブジェクト構造を識別する、請求項1記載の方法。キャッシングサービスをコンテンツソース又は前記コンテンツオブジェクトのメタデータサービスとして示すため、前記1以上のメタデータサービスにより前記クライアントに送出されるメタデータを変更する段階を更に含む、請求項1記載の方法。前記コンテンツオブジェクトに関連するメタデータについて前記1以上のメタデータサービスに問合せを送出し、前記問合せに対する応答を受信及び記憶する段階を更に含む、請求項1記載の方法。前記1以上のメタデータサービスからのデータの監視から受信又は傍受されたメタデータを記憶し、所与の期間よりも前に受信された記憶されているメタデータを廃棄する段階を更に含む、請求項1記載の方法。前記1以上のメタデータサービスから受信されたメタデータを記憶し、最近に受信されたメタデータに矛盾する記憶されているメタデータを廃棄する段階を更に含む、請求項1記載の方法。前記データプロトコルは、前記クライアント又はセッションに関連する、請求項1記載の方法。前記データプロトコルは、署名に基づくプロトコル識別技術を使用して識別される、請求項1記載の方法。前記クライアント及び/又は前記コンテンツソースと暗号化されたセッションを確立する段階を更に含む、請求項1記載の方法。前記メタデータを使用して、前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を取得するためにコンテンツソースを識別する段階を更に含む、請求項1記載の方法。前記メタデータを使用して前記コンテンツソースからの応答を検証する段階を更に含む、請求項19記載の方法。コンピュータネットワークにおいてマルチセッションのデータ通信をキャッシングする、コンピュータにより実現されるキャッシングサービスであって、a所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントであって、前記コンテンツオブジェクトのメタデータを発見する1以上のメタデータサービスと通信するクライアントと、1以上のメタデータサービスとの間の1以上のデータセッションを受信、傍受又は監視し、b前記コンテンツオブジェクトのメタデータを発見するため、前記クライアントと前記1以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析し、c前記クライアントとコンテンツソースとの間の後続のデータセッションを受信又は傍受し、d前記クライアントにより使用されるデータプロトコルを識別し、前記データセッションにおけるデータ問合せを識別し、e前記データ問合せにおいて前記クライアントにより要求された前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を識別し、f前記コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されている前記コンテンツオブジェクト又は前記コンテンツオブジェクトの一部を前記クライアントに送出し、記憶されていると判定されない場合、前記データ問い合わせを前記コンテンツソースに送出し、前記コンテンツソースからのデータ応答を記憶し、前記データ応答を前記クライアントに送出する、キャッシングサービス。これらの新たなアプリケーションにより示される特徴は、従来のキャッシング方法を除く。係る新たなアプリケーションをサポートするコンテンツキャッシングに対して代替的なアプローチを提供することが望まれる。1以上の実施の形態によれば、コンピュータネットワークにおいてマルチセッションのデータ通信をキャッシングするコンピュータにより実現される方法が提供され、a所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントと1以上のメタデータサービスとの間で1以上のデータセッションを受信、傍受又は監視する段階であって、前記クライアントは、コンテンツオブジェクトのメタデータを発見するために1以上のメタデータサービスと通信する段階、bクライアントとコンテンツオブジェクトのメタデータを発見する1以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析する段階、cクライアントとコンテンツソースとの間のその後のデータセッションを受信又は傍受する段階、dクライアントにより使用されるデータプロトコルを識別し、データセッション内でデータ問合せを識別する段階、eデータ問合せにおいてクライアントにより要求されたコンテンツオブジェクト又はコンテンツオブジェクトの一部を識別する段階、及びfコンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されているコンテンツオブジェクト又はコンテンツオブジェクトの一部をクライアントに送出し、記憶されている判定されなかった場合、データ問合せをコンテンツソースに送出し、コンテンツソースからのデータ応答を記憶し、データ応答をクライアントに送出する段階を含む。1以上の実施の形態によれば、コンピュータネットワークにおいてマルチセッションデータ通信をキャッシングするためのコンピュータにより実現されるキャッシングサービスが提供される。キャッシングサービスは、a所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントと1以上のメタデータサービスとの間の1以上のデータセッションを受信、傍受又は監視し、前記クライアントは、コンテンツオブジェクトのメタデータを発見するために1以上のメタデータサービスと通信し、bクライアントとコンテンツオブジェクトのメタデータを発見するための1以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析し、cクライアントとコンテンツソースとの間で後続するデータセッションを受信又は傍受し、dクライアントにより使用されるデータプロトコルを識別し、データセッションにおけるデータ問合せを識別し、eデータ問合せにおいてクライアントにより要求されたコンテンツオブジェクト又はコンテンツオブジェクトの一部を識別し、fコンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されているコンテンツオブジェクト又はコンテンツオブジェクトの一部をクライアントに送出し、記憶されていると判定されなかった場合、データ問合せをコンテンツソースに送出し、コンテンツソースからのデータ応答を記憶し、データ応答をクライアントに送出する。様々な実施の形態によれば、同じコンテンツオブジェクトの取得のために複数のセッションを利用するアプリケーションをキャッシングするサービスが提供される。キャッシングサービスによりサポートされるマルチセッションアプリケーションは、aコンテンツオブジェクト以下、コンテンツオブジェクトメタデータに関する情報を発見するために1以上のセッションを利用するアプリケーションであって、コンテンツオブジェクト、コンテンツオブジェクトを取得するために使用されるデータプロトコル、及びオブジェクトを取得するために使用されるデータ問合せ、を取得するためにアプリケーションがコンタクトするコンテンツソースを識別するアプリケーション、bコンテンツオブジェクト、セッションの幾つかにおいてのみオブジェクトIDについて必要なパッシング情報を取得するために複数のセッションを利用するアプリケーションを含む。[aコンテンツオブジェクトの取得についてコンテンツオブジェクトのメタデータを利用するマルチセッションアプリケーション]図1は、1以上の実施の形態に係る、キャッシングサービスの使用を例示する例示的なネットワークアーキテクチャを例示する。クライアントA1は、ネットワークで1以上のメタデータサービスMへの複数のセッションを確立し、コンテンツオブジェクトZ1のためのコンテンツオブジェクトメタデータを取得するため、データ問合せを送出し、メタデータサービスMから1以上の応答を受信する。コンテンツオブジェクトメタデータは、以下から選択された少なくとも1つの変数を含む。iコンテンツソースのアドレス、ii個々のコンテンツソースによりサポートされるプロトコル、iiiオブジェクト当たり又は個々のコンテンツソース当たりの暗号化鍵、ivコンテンツオブジェクト構造。コンテンツソースアドレスは、例えばIPv4IPアドレス1111又はIPv6アドレスfe80200f8fffe2167cfを使用するといったIPアドレスにより、又はDNSDomainNameSystemを使用してIPアドレスに分解することができる、例えばcache12bosusnetといったドメイン名を使用して識別される。コンテンツソースアドレスは、例えばHTTPプロトコルにより使用されるporttcp80といった公知のプロトコルポートを使用したアプリケーションの暗黙的に命名されたポート番号を使用するか又は明示的に命名されたポート番号を使用することができる。コンテンツソースアドレスは、プロトコル、コンテンツソースアドレス、オブジェクトへのポート及びリモートパスを指定する、限定されるものではないが、RFC1738で定義されるURLUniversalResourceLocatorsを使用することを含めて、コンテンツソースアドレスによりサポートされるプロトコルと共に識別することができる。コンテンツオブジェクト構造情報は、クライアントA1がオブジェクトの一部についてデータ問合せを形成し、係る問合せに応答して受信されたデータ応答の正しさを検証するのを可能にする情報を含む。コンテンツオブジェクト構造情報は、例えばBittorentプロトコルにより使用されるpieces、eDonkeyP2Pプロトコルにより使用されるparts、又は、MicrosiftSilverlightStreaming、AdobeHTTPDynamicStreaming、AppleHTTPLiveStreamingのような適応ビットレートストリーミングプロトコルで使用されるplaybacklevelsといったオブジェクトを含む部分に関する情報を含む。コンテンツオブジェクトの部分に関する情報は、以下のうちの少なくとも1つを含む。コンテンツオブジェクトの部分の列挙、それぞれの部分の長さ、それぞれの部分のデータチェックサム、特定のコンテンツソースでの部分の可用性、この場合、コンテンツソースは、上述されたコンテンツソースアドレスを使用して識別される。先の情報の全部又は一部を含むメタデータは、Bittorrent向けのトレントファイル又はMicrosoftSilverlightsmoothstreamingにより使用されるマニフェストファイルといった、予め定義された構造をもつ個別のファイルで記憶される。コンテンツオブジェクトメタデータを提供するメタデータサービスMは、特定のアプリケーションの伝達をサポートするために設計される専用ネットワークサーバ、又は1以上のコンテンツオブジェクト例えばBittorrenttrackers、ED2Kサーバ等、ジェネリックサーチエンジンGoogle、MicrosoftBing、例えばP2Pアプリケーションにより使用される分散型ハッシュテーブルネットワークといったメタデータを集合的に記憶するコンピュータのネットワーク、又は例えば分散型ハッシュテーブルネットワークといった分散型コンテンツソースディスカバリネットワークに参加する他のクライアント、又はコンテンツオブジェクトZ1をダウンロード及び/又は給仕し、該コンテンツオブジェクトに関連するメタデータを維持する他のクライアントを含む。クライアントA1は、コンテンツオブジェクトメタデータを発見するために複数のメタデータサービスMを使用し、1つのサービスM1は、コンテンツオブジェクトのメタデータの一部を提供し、任意に別の部分を提供するために別のサービスM2を示す。従って、例えばクライアントA1は、現在アクティブなコンテンツソースアドレスの情報を提供するBittorrentトラッカのURLと同様に、コンテンツオブジェクトのデータ構造情報を含むBittorrentサーチエンジンからトレントファイルを取得する場合がある。クライアントA1は、例えばオブジェクトZ1がライブストリームである場合、そのうちのどの新たな部分が連続的に利用可能になるか新たなコンテンツソース及び/又はコンテンツオブジェクト構造情報の識別のために、コンテンツオブジェクトZ1又はコンテンツオブジェクトの一部のダウンロードの間にメタデータサービスMにデータ問合せを送出し続ける。1以上の実施の形態によれば、キャッシングサービスCは、クライアントA1と1以上のメタデータサービスMとの間でやり取りされるデータ問合せ及び/又は応答を受信及び記憶する。1以上の実施の形態によれば、キャッシングサービスCは、A1とBとの間のデータパスによるか、又はデータパスにあり、特定のデータセッションをキャッシングサービスCにリダイレクトする例えばロードバランサ、ルータ、DPI装置等1以上の専用のリダイレクト装置の使用により、A1とMとの間のセッションを傍受し、A1とMとの間でデータ問合せ及び応答を中継する。1以上の実施の形態によれば、キャッシュサービスCは、例えばキャッシングサービスCをコンテンツソースとして又はコンテンツオブジェクトZ1のメタデータサービスとして示すため、メタデータサービスMにより提供されたメタデータ応答の少なくとも1つを変更する。1以上の実施の形態によれば、キャッシングサービスCは、光トラップ、ミラーポート又はネットワークトラフィックを再現する他の装置を使用して、クライアントA1とメタデータサービスMとの間の通信のコピーを受信する。1以上の実施の形態によれば、キャッシングサービスCは、メタデータサービスMの少なくとも1つを提供するため、クライアントA1からコンテンツオブジェクトZ1に関連するデータ問合せを受信する。1以上の実施の形態によれば、キャッシングサービスCは、コンテンツオブジェクトZ1に関連するメタデータについてメタデータサービスMをその後に問い合せ、応答を受信して記憶する。1以上の実施の形態によれば、キャッシングサービスCは、その後、コンテンツオブジェクトZ1に関連するメタデータについてメタデータサービスMを問合せ、応答を受信して記憶する。1以上の実施の形態によれば、キャッシングサービスCは、上述されたように、メタデータサービスMからダイレクトにキャッシングサービスCにより受信された応答と同様に、少なくとも1つのクライアントA1とメタデータサービスMとの間でやり取りされる問合せ及び応答を係属して分析する。結果として、キャッシングサービスCは、クライアントA1が取得している少なくとも1つのコンテンツオブジェクトZ1についてもコンテンツオブジェクトメタデータM2を維持する。1以上の実施の形態によれば、キャッシングサービスCは、応答がキャッシングサービスCにより受信された最近の時間と連動して、メタデータM2の一部としてメタデータ応答を記憶する。キャッシングサービスCは、その後、タイムアウトに基づいてある時間よりも前に受信された応答を周期的に廃棄する。1以上の実施の形態によれば、キャッシングサービスは、メタデータ要求及び応答を監視し、後に受信されたメタデータ応答に矛盾する記憶されている応答を廃棄する。コンテンツオブジェクトZ1に関するメタデータの取得に続いて、クライアントA1及びメタデータサービスMを使用してクライアントA1により発見された少なくとも1つのコンテンツソースB1は、クライアントA1によりコンテンツオブジェクトZ1又はコンテンツオブジェクトの一部を取得するため、互いにデータセッションを確立し始める。1以上の実施の形態によれば、キャッシングサービスCは、クライアントA1とコンテンツソースB1との間で確立されたデータセッションS1を傍受する。1以上の実施の形態によれば、キャッシングサービスCは、A1とB1との間のデータパスによるか、又はデータパスにあり、且つキャッシングサービスCに特定のデータセッションを向け直す1以上の専用のリダイレクト装置例えばロードバランサ、ルータ、DPI装置等の使用によりデータセッションを傍受する。1以上の実施の形態によれば、キャッシングサービスCは、A1と、キャッシングサービスCによりオブジェクトZ1について記憶されているメタデータM2に整合するコンテンツソースB1’との間で確立されているセッションのみを傍受する。1以上の実施の形態によれば、クライアントA1は、コンテンツオブジェクトZ1についてコンテンツソースの1つとしてクライアントA1により識別されたキャッシングサービスCと少なくとも1つのセッションS2を確立する。1以上の実施の形態によれば、キャッシングサービスCは、以下のプロトコルのうちの少なくとも1つを利用して、クライアントA1とコンテンツソースS1との間のセッションS1におけるデータ問合せ及びデータ応答を解釈する。i上述されたように、メタデータMZの一部として、クライアントA1に関連するデータプロトコル、ii上述されたように、メタデータMZの一部として、セッションS1に関連するデータプロトコル、及びiii署名に基づくプロトコル識別技術又は他の汎用のプロトコル識別技術を使用して、セッションS1で受信されたデータ問合せ及び応答を分析するとき、キャッシングサービスCにより識別されたデータプロトコル。1以上の実施の形態によれば、キャッシングサービスCは、セッションS2について類似のアプローチを利用する。1以上の実施の形態によれば、上述された方法を使用して、セッションS1とS2のデータプロトコルを識別することに失敗したとき、キャッシングサービスCは、メタデータMZの一部としてCにより記憶された暗号化鍵Kの少なくとも1つを適用して、クライアントA1、又はコンテンツソースB1、或いはその両者との暗号化されたセッションを確立する。暗号化鍵Kは、コンテンツオブジェクトZ例えば、Bittorrentにおいて、Bittorrentピア間のセッションの暗号化についてオブジェクトZのハッシュ識別子が使用される又は特定のコンテンツソースと関連する。1以上の実施の形態によれば、クライアントA1とのデータセッションの確立及びこのセッションで使用されるプロトコルの識別に続いて、キャッシングサービスCは、オブジェクトZ1又はオブジェクトの一部についてデータ問合せをクライアントA1から受信する。1以上の実施の形態によれば、キャッシングサービスCは、上述されたコンテンツオブジェクトZ1に関連されるメタデータMZを使用して、問合せに整合する応答を識別する。例えばクライアントA1が、エンドオフセットの識別なしに、オフセット0で開始する、MicrosoftSilverlightsmoothstreamingプロトコルを通して利用可能な、コンテンツオブジェクトZ1の500Kbps再生レベルのチャンクを要求する場合、キャッシングサービスCは、オブジェクトZ1を記述するメタデータMZを使用してエンドオフセットを識別する。1以上の実施の形態によれば、問合せQ1に整合する応答R1がキャッシングサービスCにより記憶される場合、Cは、エンドクライアントA1に応答を伝達する。1以上の実施の形態によれば、キャッシングサービスCは、コンテンツオブジェクトZに関連する記憶されているメタデータMZを使用して、クライアントA1に送出する前に、データ応答R1の有効性を検証する。1以上の実施の形態によれば、問合せQ1に整合する応答がキャッシングサービスCで利用可能でなく、且つ問合せQ1がクライアントA1とコンテンツソースB1との間でセッションS1の一部として送出されている場合、キャッシングサービスCは、コンテンツソースB1からの係る応答を取得するために問合せを送出し、応答を受信して任意に記憶し、応答をクライアントA1に中継する。1以上の実施の形態によれば、問合せQ1に整合する応答がキャッシングサービスCで発見されないとき、キャッシングサービスCは、Cにより記憶されたメタデータMZに基づいて、コンテンツオブジェクトZを伝送するときCにより識別される、キャッシングサービスCがデータ問合せQ1に応答するのを可能にするデータ問合せQ1’をコンテンツソースBの少なくとも1つに送出する。その後、キャッシングサービスCは、これらの問合せについて応答R1’を取得し、取得した応答を記憶し、任意にメタデータMZに対するそれらの有効性を検証し、問合せQ1に対する応答をクライアントA1に伝達する。1以上の実施の形態によれば、問合せQ1に整合する応答がキャッシングサービスCで発見されないとき、Cは、メタデータMZにおいてキャッシングサービスにより記憶されたとき、コンテンツオブジェクトZについてコンテンツソースBのうちの1つのクライアントA1を向け直す。b幾つかのセッションにおいてのみコンテンツオブジェクトの識別を可能にするマルチセッションアプリケーションクライアントA2は、並列又は直列に、コンテンツオブジェクトZ2を取得するため、1以上の目的地B2に対する複数のセッションS2を確立する。クライアントA2は、それぞれの係るセッションにおけるコンテンツオブジェクトZ2の一部についてのデータ問合せを送出する。クライアントA2及び目的地B2により使用される、コンテンツオブジェクトZ及び/又はその一部の命名法に依存して、セッションS2を傍受又は受信するキャッシングサービスCは、それぞれのセッションにおいて、クライアントA2により要求されたコンテンツオブジェクト及び/又はコンテンツオブジェクトの一部を識別することができないか、それらの問合せに整合するデータ要求を識別することができない場合がある。クライアントA2及びコンテンツソースB2は、ダイナミックURLいわゆるハッシュドURLを使用して、コンテンツオブジェクトZ2のそれぞれのダウンロードについて固有に割り当てられるオブジェクトZ2を識別する。この場合、キャッシングサービスCは、マッチング応答を識別するためにデータ問合せにおけるデータにのみ依存することができないが、むしろデータ応答を分析して、要求されたオブジェクトを識別し、識別されたオブジェクトを前に記憶されたデータ応答に整合させる。1以上の実施の形態によれば、コンテンツオブジェクトZの識別を可能にする1以上のセッションS2における係るデータ問合せ及び/又は応答を受信したとき、Cは、クライアントA2のIPアドレス、コンテンツソースB2のIPアドレス及びクライアントA2により使用されるダイナミックコンテンツ識別例えばURLと共にコンテンツオブジェクトZ2のIDをリストL2に記憶する。1以上の実施の形態によれば、キャッシングサービスCが問合せ及び/又は応答において参照されるコンテンツオブジェクトZを識別するのを可能にしないデータ問合せ及び/又はデータ応答を受信したとき、キャッシングサービスCは、クライアントA2のIPアドレス、ダイナミックコンテンツ識別子のURL、及びコンテンツソースB2のIPアドレスがリストL2に記憶されているかを確定する。1以上の実施の形態によれば、キャッシングサービスCは、コンテンツオブジェクトZ2に関連するクライアントA2により見られた最後のアクティビティ以降のタイムアウトに基づいて、リストL4からエントリを除く。上述されたキャッシングサービスのプロセスは、ソフトウェア、ハードウェア、ファームウェア又はそれらの何れかの組み合わせで実現される場合がある。プロセスは、プロセッサ、例えば揮発性メモリ及び不揮発性メモリ及び/又はストレージエレメントを含むプロセッサにより読取可能な記憶媒体、並びに入力及び出力装置を含むプログラマブル装置で実行する1以上のコンピュータプログラムで実現されることが好ましい。それぞれのコンピュータプログラムは、装置のランダムアクセスメモリにあるコードモジュールにおける命令のセットプログラムコードとすることができる。装置により要求されるまで、命令のセットは、例えばハードディスクドライブ、又は光ディスク、外部ハードドライブ、メモリカード又はフラッシュドライブのような取り外し可能なメモリといった別のコンピュータメモリに記憶されるか、別のコンピュータで記憶され、インターネット又は他のネットワークを介してダウンロードされる。幾つかの例示的な実施の形態が記載されたが、様々な代替、変更及び改善が当業者にとって容易に行われることを理解されたい。係る変更、変形及び改善は、この開示の一部を形成することが意図され、この開示の精神及び範囲にあることが意図される。本明細書で提示される幾つかの例は機能的又は構造的エレメントの特定の組み合わせを含むが、それらの機能及びエレメントは、同じ目的又は異なる目的を達成するためにこの開示に従って他のやり方で組み合わせられることを理解されたい。特に、1実施の形態に関連して説明される動作、構成要素及び特徴は、他の実施の形態における類似の役割又は他の役割から排除されることが意図されない。さらに、本明細書で記載されたエレメント及びコンポーネントは、同じ機能を実行するため、更なるコンポーネントに更に分割されるか、又は少ないコンポーネントを形成するために互いに結合される場合がある。例えば、キャッシングサービスは、1以上の物理的なマシン、又は1以上の物理マシンで実行されるバーチャルマシンを含む場合がある。さらに、キャッシングサービスは、コンピュータのクラスタ、インターネット又は別のネットワークにより接続される様々な分散型コンピュータを含む。従って、上述した記載及び添付図面は、例示するものであって、限定されることが意図されない。