(57)【要約】マルチセッションのデータ通信をキャッシングする、コンピュータにより実現される方法は、（ａ）所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントと、１以上のメタデータサービスとの間の１以上のデータセッションを受信、傍受又は監視する段階であって、クライアントは、コンテンツオブジェクトのメタデータを発見する１以上のメタデータサービスと通信する段階、（ｂ）コンテンツオブジェクトのメタデータを発見するため、クライアントと１以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析する段階、（ｃ）クライアントとコンテンツソースとの間の後続のデータセッションを受信又は傍受する段階、（ｄ）クライアントにより使用されるデータプロトコルを識別し、データセッションにおけるデータ問合せを識別する段階、（ｅ）データ問合せにおいてクライアントにより要求されたコンテンツオブジェクト又はコンテンツオブジェクトの一部を識別する段階、（ｆ）コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されているコンテンツオブジェクト又はコンテンツオブジェクトの一部をクライアントに送出し、記憶されていると判定されない場合、データ問い合わせをコンテンツソースに送出し、コンテンツソースからのデータ応答を記憶し、データ応答をクライアントに送出する段階、を含む。
2014505938.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワークにおいてマルチセッションのデータ通信をキャッシングする、コンピュータにより実現される方法であって、
（ａ）所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントと、１以上のメタデータサービスとの間の１以上のデータセッションを受信、傍受又は監視する段階であって、前記クライアントは、前記コンテンツオブジェクトのメタデータを発見する１以上のメタデータサービスと通信する段階と、
（ｂ）前記コンテンツオブジェクトのメタデータを発見するため、前記クライアントと前記１以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析する段階と、
（ｃ）前記クライアントとコンテンツソースとの間の後続のデータセッションを受信又は傍受する段階と、
（ｄ）前記クライアントにより使用されるデータプロトコルを識別し、前記データセッションにおけるデータ問合せを識別する段階と、
（ｅ）前記データ問合せにおいて前記クライアントにより要求された前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を識別する段階と、
（ｆ）前記コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されている前記コンテンツオブジェクト又は前記コンテンツオブジェクトの一部を前記クライアントに送出し、記憶されていると判定されない場合、前記データ問い合わせを前記コンテンツソースに送出し、前記コンテンツソースからのデータ応答を記憶し、前記データ応答を前記クライアントに送出する段階と、
を含む方法。
【請求項２】
前記（ｂ）段階は、前記コンテンツオブジェクトのメタデータを発見するため、継続的に前記クライアントと前記１以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析する段階を含む、
請求項１記載の方法。
【請求項３】
前記（ｃ）段階は、前記メタデータから知られるコンテンツソースを有する後続のデータセッションのみを傍受する、
請求項１記載の方法。
【請求項４】
前記（ｄ）段階は、前記メタデータを使用して、前記クライアントにより使用されるデータプロトコルを識別し、前記後続のデータセッションにおけるデータ問合せを識別する段階を含む、
請求項１記載の方法。
【請求項５】
前記段階（ｄ）は、前記メタデータを使用して、データセッションにおいて使用される暗号化されたプロトコルを検出及び復号する段階を含む、
請求項１記載の方法。
【請求項６】
前記段階（ｅ）は、問合せ又は問合せに対する応答において不完全データを識別し、前記不完全データを完成するために前記メタデータから更なる情報を取得する段階を含む、
請求項１記載の方法。
【請求項７】
前記段階（ｆ）は、前記メタデータを使用して、前記コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されるかを判定する段階を含む、
請求項１記載の方法。
【請求項８】
前記方法はキャッシュサービスにおいて実現され、
前記段階（ｆ）は、前記クライアントと少なくとも１つのセッションを確立し、
前記キャッシュサービスは、前記コンテンツオブジェクトの前記コンテンツソースの少なくとも１つとして前記クライアントにより識別される、
請求項１記載の方法。
【請求項９】
前記段階（ｆ）は、前記メタデータを使用して、前記データ応答を記憶する前にキャッシュに記憶されている前記コンテンツオブジェクトの有効性を検証し、前記メタデータに整合しない前記データ応答を任意に廃棄する段階を含む、
請求項１記載の方法。
【請求項１０】
前記段階（ｆ）は、前記メタデータを使用して、キャッシュに記憶されているデータ応答の有効性を検証し、整合するデータ応答又は整合するデータ応答の一部がキャッシュに記憶されているかを判定し、前記メタデータに整合しない前記データ応答を廃棄する段階を含む、
請求項１記載の方法。
【請求項１１】
前記メタデータは、前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を記憶するコンテンツソースのアドレス、前記コンテンツソースによりサポートされるデータプロトコル、前記コンテンツオブジェクト又はコンテンツソースの暗号化鍵、又はコンテンツオブジェクト構造を識別する、
請求項１記載の方法。
【請求項１２】
キャッシングサービスをコンテンツソース又は前記コンテンツオブジェクトのメタデータサービスとして示すため、前記１以上のメタデータサービスにより前記クライアントに送出されるメタデータを変更する段階を更に含む、
請求項１記載の方法。
【請求項１３】
前記コンテンツオブジェクトに関連するメタデータについて前記１以上のメタデータサービスに問合せを送出し、前記問合せに対する応答を受信及び記憶する段階を更に含む、
請求項１記載の方法。
【請求項１４】
前記１以上のメタデータサービスからのデータの監視から受信又は傍受されたメタデータを記憶し、所与の期間よりも前に受信された記憶されているメタデータを廃棄する段階を更に含む、
請求項１記載の方法。
【請求項１５】
前記１以上のメタデータサービスから受信されたメタデータを記憶し、最近に受信されたメタデータに矛盾する記憶されているメタデータを廃棄する段階を更に含む、
請求項１記載の方法。
【請求項１６】
前記データプロトコルは、前記クライアント又はセッションに関連する、
請求項１記載の方法。
【請求項１７】
前記データプロトコルは、署名に基づくプロトコル識別技術を使用して識別される、
請求項１記載の方法。
【請求項１８】
前記クライアント及び／又は前記コンテンツソースと暗号化されたセッションを確立する段階を更に含む、
請求項１記載の方法。
【請求項１９】
前記メタデータを使用して、前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を取得するためにコンテンツソースを識別する段階を更に含む、
請求項１記載の方法。
【請求項２０】
前記メタデータを使用して前記コンテンツソースからの応答を検証する段階を更に含む、
請求項１９記載の方法。
【請求項２１】
コンピュータネットワークにおいてマルチセッションのデータ通信をキャッシングする、コンピュータにより実現されるキャッシングサービスであって、
（ａ）所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントであって、前記コンテンツオブジェクトのメタデータを発見する１以上のメタデータサービスと通信するクライアントと、１以上のメタデータサービスとの間の１以上のデータセッションを受信、傍受又は監視し、
（ｂ）前記コンテンツオブジェクトのメタデータを発見するため、前記クライアントと前記１以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析し、
（ｃ）前記クライアントとコンテンツソースとの間の後続のデータセッションを受信又は傍受し、
（ｄ）前記クライアントにより使用されるデータプロトコルを識別し、前記データセッションにおけるデータ問合せを識別し、
（ｅ）前記データ問合せにおいて前記クライアントにより要求された前記コンテンツオブジェクト又はコンテンツオブジェクトの一部を識別し、
（ｆ）前記コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されている前記コンテンツオブジェクト又は前記コンテンツオブジェクトの一部を前記クライアントに送出し、記憶されていると判定されない場合、前記データ問い合わせを前記コンテンツソースに送出し、前記コンテンツソースからのデータ応答を記憶し、前記データ応答を前記クライアントに送出する、
キャッシングサービス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、ワイヤレスネットワーク等のようなコンピュータネットワークによるデータ通信のキャッシングに関する。
【０００２】
本出願は、2010年12月30日に提出された“METHODS  AND  SYSTEMS  FOR  CACHING  DATA  COMMUNICATIONS  OVER  COMPUTER  NETWORKS”と題された米国特許仮出願第61/428,538号からの優先権を主張するものである。
【背景技術】
【０００３】
コンピュータネットワークによるネットワーク通信のキャッシングは、公知のネットワーク最適化技術であり、人気のあるコンテンツをエンドユーザの近くに記憶及び伝達することを通してアプリケーションのパフォーマンス及びネットワークリソースの最適な利用を提供する。
【０００４】
コンテンツキャッシングソリューションは、キャッシュがサーバからクライアントへのコンテンツオブジェクト（例えばウェブブラウジングの場合におけるテキストファイル及び画像）の伝達を仲介するウェブブラウジング又はストリーミングセッションといった、クライアント−サーバ通信のキャッシングに焦点を当てている。
【０００５】
キャッシングソリューションによりサポートされるコンテンツアプリケーションは、キャッシングをサポートするために設計されており、コンテンツアプリケーションは、データセッションのエンドツーエンド暗号化を利用せず、キャッシングについて任意のクライアント側の明示的なサポートを有し、公知のデータポートを利用する（HTTPについてのtcp/80、RTMPについてのtcp/1935）。
【０００６】
ウェブブラウジング及びストリーミングアプリケーションにより確立されるデータセッションは、アトミックである。それぞれの係るセッションは、コンテンツの問合せ、要求されたコンテンツオブジェクト又はコンテンツオブジェクトの一部、オブジェクトが維持されるコンテンツソースのアドレスを識別するためにキャッシュのために必要とされる全ての情報を盛り込む。
【０００７】
従来のキャッシングソリューションは、以下のキャッシング方法を実現する。
【０００８】
公知のTCP又はUDPポートを使用するか又はデータプロトコルのLayer7分析を通して、リダイレクトデータネットワークを使用して又は別の方法で、（a1）クライアントからデータセッションを受信するか、又は（a2）クライアントとコンテンツソースとの間のデータセッションを識別及び傍受する。
【０００９】
（b）クライアントにより使用されたデータプロトコルを分析して、セッション内のデータ問合せを識別する。
【００１０】
（c）クライアントにより要求された固有のデータオブジェクト（又はデータオブジェクトの一部）を識別する。
【００１１】
（d1）データ問合せをキャッシュに記憶されているデータ応答と照合し、応答をクライアントに送出するか、又は（d2）データ問合せをサーバ（コンテンツソース）に伝搬し、サーバからの応答を受信し、応答をキャッシュに任意に記憶し、要求しているクライアントに応答を送出する。
【００１２】
近年、インターネットアプリケーションは、１つのダウンロードされたセッションのみの範囲において存続する動的なコンテンツオブジェクト識別子（例えばHTTP  URL）を使用し、複数のコンテンツソースから幾つかの同時のセッションにより同じコンテンツオブジェクトの伝送をサポートし、複数の動的なポートを含み、データセッションのエンドツーエンド暗号化を含むことで、機能及び複雑度において進化している。これらの新たなアプリケーションは、ファイルシェアリング及びストリーミング、HTTPによるビデオの伝達について適応ビットレートプロトコル、HTTPダウンロードアクセラレータ、及びMicrosoft  Windows（登録商標）  Updateのようなソフトウェアアップデートサービスについて複数のタイプのピアツーピア（P2P）アプリケーションを含む。
【００１３】
ピアツーピアアプリケーションは、「ピアディスカバリ」のメカニズムを典型的に実現し、この場合、クライアントアプリケーションは、P2Pネットワークにアクセスし、ネットワークにコンテンツオブジェクトを提供するコンテンツソースを発見するように問合せ、これらのコンテンツソースとデータセッションをその後に確立し、これらのセッションの幾つかは、エンドツーエンド暗号化を使用する。
【００１４】
P2Pネットワークにおけるコンテンツソースにとって、スタティックな「公知」のポートを使用するのではなくダイナミックなポートを使用することは一般的な方法である。
【００１５】
P2Pアプリケーションは、セッション識別についてLayer7を使用して、ネットワークエレメントによる検出を回避するやり方で、セッションの暗号化を採用することができる。
【００１６】
結果として、従来のキャッシングソリューションは、これらのデータセッションを識別及び傍受することができないか、暗号化のためにデータ問合せを識別するためにデータプロトコルを分析することができない。
【００１７】
非P2Pアプリケーション（例えばダウンロードアクセラレータ、アダプティブビットレートビデオクライアント、ソフトウェアアップデートサービス等）は、同じコンテンツオブジェクトの回復を調節するために複数のセッションを確立し、この場合、それぞれの個別のセッションは、要求されたデータオブジェクトを識別し、及び／又はデータ要求をデータ応答と照合するため、キャッシュについて必要とされる全ての情報を提供しない。
【発明の概要】
【発明が解決しようとする課題】
【００１８】
これらの新たなアプリケーションにより示される特徴は、従来のキャッシング方法を除く。係る新たなアプリケーションをサポートするコンテンツキャッシングに対して代替的なアプローチを提供することが望まれる。
【課題を解決するための手段】
【００１９】
１以上の実施の形態によれば、コンピュータネットワークにおいてマルチセッションのデータ通信をキャッシングするコンピュータにより実現される方法が提供され、（ａ）所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントと１以上のメタデータサービスとの間で１以上のデータセッションを受信、傍受又は監視する段階であって、前記クライアントは、コンテンツオブジェクトのメタデータを発見するために１以上のメタデータサービスと通信する段階、（ｂ）クライアントとコンテンツオブジェクトのメタデータを発見する１以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析する段階、（ｃ）クライアントとコンテンツソースとの間のその後のデータセッションを受信又は傍受する段階、（ｄ）クライアントにより使用されるデータプロトコルを識別し、データセッション内でデータ問合せを識別する段階、（ｅ）データ問合せにおいてクライアントにより要求されたコンテンツオブジェクト又はコンテンツオブジェクトの一部を識別する段階、及び（ｆ）コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されているコンテンツオブジェクト又はコンテンツオブジェクトの一部をクライアントに送出し、記憶されている判定されなかった場合、データ問合せをコンテンツソースに送出し、コンテンツソースからのデータ応答を記憶し、データ応答をクライアントに送出する段階を含む。
【００２０】
１以上の実施の形態によれば、コンピュータネットワークにおいてマルチセッションデータ通信をキャッシングするためのコンピュータにより実現されるキャッシングサービスが提供される。キャッシングサービスは、（ａ）所望のコンテンツオブジェクトを取得するマルチセッションアプリケーションを実行するクライアントと１以上のメタデータサービスとの間の１以上のデータセッションを受信、傍受又は監視し、前記クライアントは、コンテンツオブジェクトのメタデータを発見するために１以上のメタデータサービスと通信し、（ｂ）クライアントとコンテンツオブジェクトのメタデータを発見するための１以上のメタデータサービスとの間でやり取りされる問合せ及び応答を分析し、（ｃ）クライアントとコンテンツソースとの間で後続するデータセッションを受信又は傍受し、（ｄ）クライアントにより使用されるデータプロトコルを識別し、データセッションにおけるデータ問合せを識別し、（ｅ）データ問合せにおいてクライアントにより要求されたコンテンツオブジェクト又はコンテンツオブジェクトの一部を識別し、（ｆ）コンテンツオブジェクト又はコンテンツオブジェクトの一部がキャッシュに記憶されているかを判定し、記憶されていると判定された場合、キャッシュに記憶されているコンテンツオブジェクト又はコンテンツオブジェクトの一部をクライアントに送出し、記憶されていると判定されなかった場合、データ問合せをコンテンツソースに送出し、コンテンツソースからのデータ応答を記憶し、データ応答をクライアントに送出する。
【図面の簡単な説明】
【００２１】
【図１】１以上の実施の形態に係るキャッシングサービスの配置を例示する簡略化された図である。
【図２】１以上の代替的な実施の形態に係る、キャッシングサービスの配置を例示する簡略化された図である。
【発明を実施するための形態】
【００２２】
様々な実施の形態によれば、同じコンテンツオブジェクトの取得のために複数のセッションを利用するアプリケーションをキャッシングするサービスが提供される。
【００２３】
キャッシングサービスによりサポートされるマルチセッションアプリケーションは、（ａ）コンテンツオブジェクト（以下、「コンテンツオブジェクトメタデータ」）に関する情報を発見するために１以上のセッションを利用するアプリケーションであって、コンテンツオブジェクト、コンテンツオブジェクトを取得するために使用されるデータプロトコル、及びオブジェクトを取得するために使用されるデータ問合せ、を取得するためにアプリケーションがコンタクトするコンテンツソースを識別するアプリケーション、（ｂ）コンテンツオブジェクト、セッションの幾つかにおいてのみオブジェクトＩＤについて必要なパッシング情報を取得するために複数のセッションを利用するアプリケーションを含む。
【００２４】
［（ａ）コンテンツオブジェクトの取得についてコンテンツオブジェクトのメタデータを利用するマルチセッションアプリケーション］
図１は、１以上の実施の形態に係る、キャッシングサービスの使用を例示する例示的なネットワークアーキテクチャを例示する。クライアントＡ1は、ネットワークで１以上のメタデータサービスＭへの複数のセッションを確立し、コンテンツオブジェクトＺ1のためのコンテンツオブジェクトメタデータを取得するため、データ問合せを送出し、メタデータサービスＭから１以上の応答を受信する。
【００２５】
コンテンツオブジェクトメタデータは、以下から選択された少なくとも１つの変数を含む。（i）コンテンツソースのアドレス、（ii）個々のコンテンツソースによりサポートされるプロトコル、（iii）オブジェクト当たり又は個々のコンテンツソース当たりの暗号化鍵、（iv）コンテンツオブジェクト構造。
【００２６】
コンテンツソースアドレスは、例えばIPv4  IPアドレス1.1.1.1又はIPv6アドレス  fe80::200:f8ff:fe21:67cfを使用するといったIPアドレスにより、又はDNS（Domain  Name  System）を使用してIPアドレスに分解することができる、例えばcache12.bos.us.netといったドメイン名を使用して識別される。
【００２７】
コンテンツソースアドレスは、（例えばHTTPプロトコルにより使用されるport  tcp/80といった）公知のプロトコルポートを使用したアプリケーションの暗黙的に命名されたポート番号を使用するか又は明示的に命名されたポート番号を使用することができる。
【００２８】
コンテンツソースアドレスは、プロトコル、コンテンツソースアドレス、オブジェクトへのポート及びリモートパスを指定する、限定されるものではないが、RFC1738で定義されるURL（Universal  Resource  Locators）を使用することを含めて、コンテンツソースアドレスによりサポートされるプロトコルと共に識別することができる。
【００２９】
コンテンツオブジェクト構造情報は、クライアントＡ1がオブジェクトの一部についてデータ問合せを形成し、係る問合せに応答して受信されたデータ応答の正しさを検証するのを可能にする情報を含む。
【００３０】
コンテンツオブジェクト構造情報は、例えばBittorentプロトコルにより使用される“pieces”、eDonkey  P2Pプロトコルにより使用される“parts”、又は、Microsift  Silverlight  Streaming、Adobe  HTTP  Dynamic  Streaming、Apple  HTTP  Live  Streamingのような適応ビットレートストリーミングプロトコルで使用される“playback  levels”といったオブジェクトを含む部分に関する情報を含む。
【００３１】
コンテンツオブジェクトの部分に関する情報は、以下のうちの少なくとも１つを含む。コンテンツオブジェクトの部分の列挙、それぞれの部分の長さ、それぞれの部分のデータチェックサム、特定のコンテンツソースでの部分の可用性、この場合、コンテンツソースは、上述されたコンテンツソースアドレスを使用して識別される。
【００３２】
先の情報の全部又は一部を含むメタデータは、Bittorrent向けのトレントファイル又はMicrosoft  Silverlight  smooth  streamingにより使用されるマニフェストファイルといった、予め定義された構造をもつ個別のファイルで記憶される。
【００３３】
コンテンツオブジェクトメタデータを提供するメタデータサービスＭは、特定のアプリケーションの伝達をサポートするために設計される専用ネットワークサーバ、又は１以上のコンテンツオブジェクト（例えばBittorrent  trackers、ED2Kサーバ等）、ジェネリックサーチエンジン（Google、Microsoft  Bing）、（例えばP2Pアプリケーションにより使用される分散型ハッシュテーブルネットワークといった）メタデータを集合的に記憶するコンピュータのネットワーク、又は（例えば分散型ハッシュテーブルネットワークといった）分散型コンテンツソースディスカバリネットワークに参加する他のクライアント、又はコンテンツオブジェクトＺ1をダウンロード及び／又は給仕し、該コンテンツオブジェクトに関連するメタデータを維持する他のクライアントを含む。
【００３４】
クライアントＡ1は、コンテンツオブジェクトメタデータを発見するために複数のメタデータサービスＭを使用し、１つのサービスＭ1は、コンテンツオブジェクトのメタデータの一部を提供し、任意に別の部分を提供するために別のサービスＭ2を示す。
【００３５】
従って、例えばクライアントＡ1は、現在アクティブなコンテンツソースアドレスの情報を提供するBittorrentトラッカのURLと同様に、コンテンツオブジェクトのデータ構造情報を含むBittorrentサーチエンジンからトレントファイルを取得する場合がある。
【００３６】
クライアントＡ1は、（例えばオブジェクトＺ1がライブストリームである場合、そのうちのどの新たな部分が連続的に利用可能になるか）新たなコンテンツソース及び／又はコンテンツオブジェクト構造情報の識別のために、コンテンツオブジェクトＺ1又はコンテンツオブジェクトの一部のダウンロードの間にメタデータサービスＭにデータ問合せを送出し続ける。
【００３７】
１以上の実施の形態によれば、キャッシングサービスＣは、クライアントＡ1と１以上のメタデータサービスＭとの間でやり取りされるデータ問合せ及び／又は応答を受信及び記憶する。
【００３８】
１以上の実施の形態によれば、キャッシングサービスＣは、Ａ1とＢとの間のデータパスによるか、又はデータパスにあり、特定のデータセッションをキャッシングサービスＣにリダイレクトする（例えばロードバランサ、ルータ、ＤＰＩ装置等）１以上の専用のリダイレクト装置の使用により、Ａ1とＭとの間のセッションを傍受し、Ａ1とＭとの間でデータ問合せ及び応答を中継する。
【００３９】
１以上の実施の形態によれば、キャッシュサービスＣは、例えばキャッシングサービスＣをコンテンツソースとして又はコンテンツオブジェクトＺ1のメタデータサービスとして示すため、メタデータサービスＭにより提供されたメタデータ応答の少なくとも１つを変更する。
【００４０】
１以上の実施の形態によれば、キャッシングサービスＣは、光トラップ、ミラーポート又はネットワークトラフィックを再現する他の装置を使用して、クライアントＡ1とメタデータサービスＭとの間の通信のコピーを受信する。
【００４１】
１以上の実施の形態によれば、キャッシングサービスＣは、メタデータサービスＭの少なくとも１つを提供するため、クライアントＡ1からコンテンツオブジェクトＺ1に関連するデータ問合せを受信する。
【００４２】
１以上の実施の形態によれば、キャッシングサービスＣは、コンテンツオブジェクトＺ1に関連するメタデータについてメタデータサービスＭをその後に問い合せ、応答を受信して記憶する。
【００４３】
１以上の実施の形態によれば、キャッシングサービスＣは、その後、コンテンツオブジェクトＺ1に関連するメタデータについてメタデータサービスＭを問合せ、応答を受信して記憶する。
【００４４】
１以上の実施の形態によれば、キャッシングサービスＣは、上述されたように、メタデータサービスＭからダイレクトにキャッシングサービスＣにより受信された応答と同様に、少なくとも１つのクライアントＡ1とメタデータサービスＭとの間でやり取りされる問合せ及び応答を係属して分析する。
【００４５】
結果として、キャッシングサービスＣは、クライアントＡ1が取得している少なくとも１つのコンテンツオブジェクトＺ1についてもコンテンツオブジェクトメタデータＭ2を維持する。
【００４６】
１以上の実施の形態によれば、キャッシングサービスＣは、応答がキャッシングサービスＣにより受信された最近の時間と連動して、メタデータＭ2の一部としてメタデータ応答を記憶する。
【００４７】
キャッシングサービスＣは、その後、タイムアウトに基づいてある時間よりも前に受信された応答を周期的に廃棄する。
【００４８】
１以上の実施の形態によれば、キャッシングサービスは、メタデータ要求及び応答を監視し、後に受信されたメタデータ応答に矛盾する記憶されている応答を廃棄する。
【００４９】
コンテンツオブジェクトＺ1に関するメタデータの取得に続いて、クライアントＡ1及びメタデータサービスＭを使用してクライアントＡ1により発見された少なくとも１つのコンテンツソースＢ1は、クライアントＡ1によりコンテンツオブジェクトＺ1又はコンテンツオブジェクトの一部を取得するため、互いにデータセッションを確立し始める。
【００５０】
１以上の実施の形態によれば、キャッシングサービスＣは、クライアントＡ1とコンテンツソースＢ1との間で確立されたデータセッションＳ1を傍受する。
【００５１】
１以上の実施の形態によれば、キャッシングサービスＣは、Ａ1とＢ1との間のデータパスによるか、又はデータパスにあり、且つキャッシングサービスＣに特定のデータセッションを向け直す１以上の専用のリダイレクト装置（例えばロードバランサ、ルータ、ＤＰＩ装置等）の使用によりデータセッションを傍受する。
【００５２】
１以上の実施の形態によれば、キャッシングサービスＣは、Ａ1と、キャッシングサービスＣによりオブジェクトＺ1について記憶されているメタデータＭ2に整合するコンテンツソースＢ1’との間で確立されているセッションのみを傍受する。
【００５３】
１以上の実施の形態によれば、クライアントＡ1は、コンテンツオブジェクトＺ1についてコンテンツソースの１つとしてクライアントＡ1により識別されたキャッシングサービスＣと少なくとも１つのセッションＳ2を確立する。
【００５４】
１以上の実施の形態によれば、キャッシングサービスＣは、以下のプロトコルのうちの少なくとも１つを利用して、クライアントＡ1とコンテンツソースＳ1との間のセッションＳ1におけるデータ問合せ及びデータ応答を解釈する。  
（i）上述されたように、メタデータＭZの一部として、クライアントＡ1に関連するデータプロトコル、（ii）上述されたように、メタデータＭZの一部として、セッションＳ1に関連するデータプロトコル、及び（iii）署名に基づくプロトコル識別技術又は他の汎用のプロトコル識別技術を使用して、セッションＳ1で受信されたデータ問合せ及び応答を分析するとき、キャッシングサービスＣにより識別されたデータプロトコル。
【００５５】
１以上の実施の形態によれば、キャッシングサービスＣは、セッションＳ2について類似のアプローチを利用する。
【００５６】
１以上の実施の形態によれば、上述された方法を使用して、セッションＳ1とＳ2のデータプロトコルを識別することに失敗したとき、キャッシングサービスＣは、メタデータＭZの一部としてＣにより記憶された暗号化鍵Ｋの少なくとも１つを適用して、クライアントＡ1、又はコンテンツソースＢ1、或いはその両者との暗号化されたセッションを確立する。
【００５７】
暗号化鍵Ｋは、コンテンツオブジェクトＺ（例えば、Bittorrentにおいて、Bittorrentピア間のセッションの暗号化についてオブジェクトＺのハッシュ識別子が使用される）又は特定のコンテンツソースと関連する。
【００５８】
１以上の実施の形態によれば、クライアントＡ1とのデータセッションの確立及びこのセッションで使用されるプロトコルの識別に続いて、キャッシングサービスＣは、オブジェクトＺ1又はオブジェクトの一部についてデータ問合せをクライアントＡ1から受信する。
【００５９】
１以上の実施の形態によれば、キャッシングサービスＣは、上述されたコンテンツオブジェクトＺ1に関連されるメタデータＭZを使用して、問合せに整合する応答を識別する。
【００６０】
例えばクライアントＡ1が、エンドオフセットの識別なしに、オフセット0で開始する、Microsoft  Silverlight  smooth  streamingプロトコルを通して利用可能な、コンテンツオブジェクトＺ1の500Kbps再生レベルのチャンクを要求する場合、キャッシングサービスＣは、オブジェクトＺ1を記述するメタデータＭZを使用してエンドオフセットを識別する。
【００６１】
１以上の実施の形態によれば、問合せＱ1に整合する応答Ｒ1がキャッシングサービスＣにより記憶される場合、Ｃは、エンドクライアントＡ1に応答を伝達する。
【００６２】
１以上の実施の形態によれば、キャッシングサービスＣは、コンテンツオブジェクトＺに関連する記憶されているメタデータＭZを使用して、クライアントＡ1に送出する前に、データ応答Ｒ1の有効性を検証する。
【００６３】
１以上の実施の形態によれば、問合せＱ1に整合する応答がキャッシングサービスＣで利用可能でなく、且つ問合せＱ1がクライアントＡ1とコンテンツソースＢ1との間でセッションＳ1の一部として送出されている場合、キャッシングサービスＣは、コンテンツソースＢ1からの係る応答を取得するために問合せを送出し、応答を受信して任意に記憶し、応答をクライアントＡ1に中継する。
【００６４】
１以上の実施の形態によれば、問合せＱ1に整合する応答がキャッシングサービスＣで発見されないとき、キャッシングサービスＣは、Ｃにより記憶されたメタデータＭZに基づいて、コンテンツオブジェクトＺを伝送するときＣにより識別される、キャッシングサービスＣがデータ問合せＱ1に応答するのを可能にするデータ問合せＱ1’をコンテンツソースＢの少なくとも１つに送出する。
【００６５】
その後、キャッシングサービスＣは、これらの問合せについて応答Ｒ1’を取得し、取得した応答を記憶し、任意にメタデータＭZに対するそれらの有効性を検証し、問合せＱ1に対する応答をクライアントＡ1に伝達する。
【００６６】
１以上の実施の形態によれば、問合せＱ1に整合する応答がキャッシングサービスＣで発見されないとき、Ｃは、メタデータＭZにおいてキャッシングサービスにより記憶されたとき、コンテンツオブジェクトＺについてコンテンツソースＢのうちの１つのクライアントＡ1を向け直す。
【００６７】
（ｂ）幾つかのセッションにおいてのみコンテンツオブジェクトの識別を可能にするマルチセッションアプリケーション
クライアントＡ2は、並列又は直列に、コンテンツオブジェクトＺ2を取得するため、１以上の目的地Ｂ2に対する複数のセッションＳ2を確立する。クライアントＡ2は、それぞれの係るセッションにおけるコンテンツオブジェクトＺ2の一部についてのデータ問合せを送出する。
【００６８】
クライアントＡ2及び目的地Ｂ2により使用される、コンテンツオブジェクトＺ及び／又はその一部の命名法に依存して、セッションＳ2を傍受又は受信するキャッシングサービスＣは、それぞれのセッションにおいて、クライアントＡ2により要求されたコンテンツオブジェクト及び／又はコンテンツオブジェクトの一部を識別することができないか、それらの問合せに整合するデータ要求を識別することができない場合がある。
【００６９】
クライアントＡ2及びコンテンツソースＢ2は、ダイナミックＵＲＬ（いわゆる「ハッシュドURL」）を使用して、コンテンツオブジェクトＺ2のそれぞれのダウンロードについて固有に割り当てられるオブジェクトＺ2を識別する。この場合、キャッシングサービスＣは、マッチング応答を識別するためにデータ問合せにおけるデータにのみ依存することができないが、むしろデータ応答を分析して、要求されたオブジェクトを識別し、識別されたオブジェクトを前に記憶されたデータ応答に整合させる。
【００７０】
１以上の実施の形態によれば、コンテンツオブジェクトＺの識別を可能にする１以上のセッションＳ2における係るデータ問合せ及び／又は応答を受信したとき、Ｃは、クライアントＡ2のＩＰアドレス、コンテンツソースＢ2のＩＰアドレス及びクライアントＡ2により使用されるダイナミックコンテンツ識別（例えばURL）と共にコンテンツオブジェクトＺ2のIDをリストＬ2に記憶する。
【００７１】
１以上の実施の形態によれば、キャッシングサービスＣが問合せ及び／又は応答において参照されるコンテンツオブジェクトＺを識別するのを可能にしないデータ問合せ及び／又はデータ応答を受信したとき、キャッシングサービスＣは、クライアントＡ2のＩＰアドレス、ダイナミックコンテンツ識別子のＵＲＬ、及びコンテンツソースＢ2のＩＰアドレスがリストＬ2に記憶されているかを確定する。
【００７２】
１以上の実施の形態によれば、キャッシングサービスＣは、コンテンツオブジェクトＺ2に関連するクライアントＡ2により見られた最後のアクティビティ以降のタイムアウトに基づいて、リストＬ4からエントリを除く。
【００７３】
上述されたキャッシングサービスのプロセスは、ソフトウェア、ハードウェア、ファームウェア又はそれらの何れかの組み合わせで実現される場合がある。プロセスは、プロセッサ、（例えば揮発性メモリ及び不揮発性メモリ及び／又はストレージエレメントを含む）プロセッサにより読取可能な記憶媒体、並びに入力及び出力装置を含むプログラマブル装置で実行する１以上のコンピュータプログラムで実現されることが好ましい。それぞれのコンピュータプログラムは、装置のランダムアクセスメモリにあるコードモジュールにおける命令のセット（プログラムコード）とすることができる。装置により要求されるまで、命令のセットは、（例えばハードディスクドライブ、又は光ディスク、外部ハードドライブ、メモリカード又はフラッシュドライブのような取り外し可能なメモリといった）別のコンピュータメモリに記憶されるか、別のコンピュータで記憶され、インターネット又は他のネットワークを介してダウンロードされる。
【００７４】
幾つかの例示的な実施の形態が記載されたが、様々な代替、変更及び改善が当業者にとって容易に行われることを理解されたい。係る変更、変形及び改善は、この開示の一部を形成することが意図され、この開示の精神及び範囲にあることが意図される。本明細書で提示される幾つかの例は機能的又は構造的エレメントの特定の組み合わせを含むが、それらの機能及びエレメントは、同じ目的又は異なる目的を達成するためにこの開示に従って他のやり方で組み合わせられることを理解されたい。特に、１実施の形態に関連して説明される動作、構成要素及び特徴は、他の実施の形態における類似の役割又は他の役割から排除されることが意図されない。
【００７５】
さらに、本明細書で記載されたエレメント及びコンポーネントは、同じ機能を実行するため、更なるコンポーネントに更に分割されるか、又は少ないコンポーネントを形成するために互いに結合される場合がある。例えば、キャッシングサービスは、１以上の物理的なマシン、又は１以上の物理マシンで実行されるバーチャルマシンを含む場合がある。さらに、キャッシングサービスは、コンピュータのクラスタ、インターネット又は別のネットワークにより接続される様々な分散型コンピュータを含む。
【００７６】
従って、上述した記載及び添付図面は、例示するものであって、限定されることが意図されない。
【図１】
2014505938.tif 000003
【図２】
2014505938.tif 000004
【国際調査報告】
2014505938.tif 000005
2014505938.tif 000006