(57)【要約】      （修正有）【課題】ネットワークを介してコンテンツコレクションのダウンロードを可能とする、単一のコンテンツストリームを組み立てるシステムを提供する。【解決手段】複数のコンテンツ要素を含むコンテンツコレクションを取得し、コンテンツコレクションについてのマニフェストを生成する。マニフェストにおける各エントリは、コンテンツ要素に対応している。複数のコンテンツ要素が続くマニフェストを含むことによって単一のコンテンツストリームを組み立てる。マニフェスト及びコンテンツ要素は、同じ名称空間のもとにオブジェクトにパッケージ化され、それにより、要求者が同じ名称空間のもとのインタレストを使用してコンテンツコレクション内の１つ以上のコンテンツ要素を要求するのを容易とする。【選択図】図１
2016046809.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して単一のコンテンツストリームを使用してコンテンツコレクションのダウンロードを可能とする前記単一のコンテンツストリームを組み立てるためのコンピュータ実行可能な方法において、
複数のコンテンツ要素を含む前記コンテンツコレクションを取得することと、
前記コンテンツコレクションについてのマニフェストを生成することであり、前記マニフェストにおける各エントリがコンテンツ要素に対応していることと、
前記複数のコンテンツ要素が続く前記マニフェストを含むことによって前記単一のコンテンツストリームを組み立てることとを備え、前記マニフェスト及び前記コンテンツ要素が同じ名称空間のもとにオブジェクトにパッケージ化され、それにより、要求者が前記同じ名称空間のもとのインタレストを使用して前記コンテンツコレクション内の１つ以上のコンテンツ要素を要求するのを容易とする方法。
【請求項２】
前記コンテンツ要素が、各チャンクがパッケージ化されたオブジェクトに対応し且つシーケンス番号を割り当てられた前記単一のコンテンツストリーム内の複数のチャンクにまたがり、前記マニフェストにおける前記エントリが前記複数のチャンクのシーケンス番号を指定している、請求項１に記載の方法。
【請求項３】
計算装置によって実行されたとき、ネットワークを介して単一のコンテンツストリームを使用してコンテンツコレクションのダウンロードを可能とする前記単一のコンテンツストリームを組み立てる方法を前記計算装置に実行させる命令を記憶する持続性コンピュータ読み取り可能な記憶媒体において、前記方法が、
複数のコンテンツ要素を含む前記コンテンツコレクションを取得することと、
前記コンテンツコレクションについてのマニフェストを生成することであり、前記マニフェストにおける各エントリがコンテンツ要素に対応していることと、
前記複数のコンテンツ要素が続く前記マニフェストを含むことによって前記単一のコンテンツストリームを組み立てることとを備え、前記マニフェスト及び前記コンテンツ要素が同じ名称空間のもとにオブジェクトにパッケージ化され、それにより、要求者が前記同じ名称空間のもとのインタレストを使用して前記コンテンツコレクション内の１つ以上のコンテンツ要素を要求するのを容易とする持続性コンピュータ読み取り可能な記憶媒体。
【請求項４】
ネットワークを介して単一のコンテンツストリームを使用してコンテンツコレクションのダウンロードを可能とする前記単一のコンテンツストリームを組み立てるコンピュータシステムにおいて、
プロセッサと、
前記プロセッサに結合され、前記プロセッサによって実行されたとき、前記プロセッサに方法を実行させる命令を記憶する記憶装置とを備え、前記方法が、
複数のコンテンツ要素を含む前記コンテンツコレクションを取得することと、
前記コンテンツコレクションについてのマニフェストを生成することであり、前記マニフェストにおける各エントリがコンテンツ要素に対応していることと、
前記複数のコンテンツ要素が続く前記マニフェストを含むことによって前記単一のコンテンツストリームを組み立てることとを備え、前記マニフェスト及び前記コンテンツ要素が同じ名称空間のもとにオブジェクトにパッケージ化され、それにより、要求者が前記同じ名称空間のもとのインタレストを使用して前記コンテンツコレクション内の１つ以上のコンテンツ要素を要求するのを容易とするシステム。
【請求項５】
前記コンテンツ要素が、各チャンクがパッケージ化されたオブジェクトに対応し且つシーケンス番号を割り当てられた前記単一のコンテンツストリーム内の複数のチャンクにまたがり、前記マニフェストにおける前記エントリが前記複数のチャンクのシーケンス番号を指定している、請求項４に記載のシステム。
【請求項６】
前記マニフェストにおける前記エントリが、さらに、前記コンテンツ要素の前記複数のチャンクのうちの１つ以上のハッシュ値を指定しており、それにより、前記要求者が前記コンテンツ要素のコピーが前記ハッシュ値を検査することによって前記要求者のローカルキャッシュ内に存在するかどうかを判定するのを可能とする、請求項５に記載のシステム。
【請求項７】
前記方法が、さらに、
前記要求者から、前記同じ名称空間のもとのインタレストのセットを受信することと、
前記複数のコンテンツ要素から、前記単一のコンテンツストリームに含まれるコンテンツ要素を判定することとを備える、請求項４に記載のシステム。
【請求項８】
前記ネットワークがコンテンツ中心ネットワークであり、前記オブジェクトが標準ＣＣＮコンテンツオブジェクトであり、
前記単一のコンテンツストリームにおける少なくとも１つのコンテンツオブジェクトが鍵情報を含み、各コンテンツオブジェクトが前記鍵に関連付けられた暗号化署名を含む、請求項４に記載のシステム。
【請求項９】
コンテンツ要素が第２の単一のコンテンツストリームを含み、前記第２の単一のコンテンツストリームが第２のマニフェストを含む、請求項４に記載のシステム。
【請求項１０】
前記マニフェストが複数のセグメントを含み、前記マニフェストの前記複数のセグメントが前記単一のコンテンツストリーム内の異なる場所に散在している、請求項４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンテンツ中心ネットワーク（ＣＣＮ）に関する。より具体的には、本開示は、コンテンツ中心ネットワーク（ＣＣＮ）において単一の名称付きストリームを使用してコンテンツオブジェクトのセットをダウンロードするシステム及び方法に関する。
【背景技術】
【０００２】
インターネットや電子商取引の普及は、ネットワーク業界の革命的な変化を刺激し続けている。今日では、オンライン映画視聴から、毎日のニュースの配信、小売販売及びインスタントメッセージングまでのかなりの数の情報交換は、オンラインで行われている。インターネットアプリケーションの増加はまた、モバイルになっている。しかしながら、現在のインターネットは、主に、位置ベースのアドレス指定方式で動作する。２つの最もユビキタスなプロトコルであるインターネットプロトコル（ＩＰ）及びイーサネット（登録商標）プロトコルは、双方とも、エンドホストアドレスに基づいている。すなわち、コンテンツの消費者は、典型的には物理的な対象又は位置に関連しているアドレス（例えば、ＩＰアドレス又はイーサネット（登録商標）メディアアクセス制御（ＭＡＣ）アドレス）からコンテンツを明示的に要求することによってコンテンツを受信することのみができる。この制限されたアドレス指定方式は、刻々と変化するネットワーク要求を満たすためには徐々に不十分になってきている。
【０００３】
近年、コンテンツが直接名称付けられてアドレス指定される業界において情報中心ネットワーク（ＩＣＮ）アーキテクチャが提案されている。典型的なＩＣＮアーキテクチャであるコンテンツ中心ネットワーク（ＣＣＮ）は、コンテンツ伝送への新たなアプローチをもたらす。コンテンツが移動するエンドツーエンド会話としてアプリケーションレベルでネットワークトラフィックを視認する代わりに、コンテンツは、その固有の名称に基づいて要求され又は返送され、ネットワークは、プロバイダから消費者に対してコンテンツをルーティングする責を担う。コンテンツは、テキスト、画像、映像及び／又は音声などの任意の形態のデータを含む通信システムにおいて伝送されることができるデータを含むことに留意されたい。消費者及びプロバイダは、コンピュータにおける人やＣＣＮの内部又は外部の自動プロセスとすることができる。コンテンツの一部は、コンテンツ全体又はコンテンツの各部分を参照することができる。例えば、新聞記事は、データパケットとして具現化されたコンテンツの複数の部分によって表されることができる。コンテンツの一部はまた、認証データ、作成日付、コンテンツ所有者などの情報を有するコンテンツの一部を説明又は増強するメタデータに関連付けることができる。
【０００４】
ＣＣＮにおいて、名称は重要な役割を果たす。より具体的には、コンテンツオブジェクト及びインタレストは、通常は階層的に構造化された可変長識別子（ＨＳＶＬＩ）であるそれらの名称によって識別される。インタレスト及びコンテンツオブジェクトは、それらの名称に基づいてネットワークを流れる。ファイルライブラリ又はウェブページとすることができる名称付きコンテンツをダウンロードするとき、要求者は、多くの場合、ライブラリのカタログ又はウェブページのマークアップ文書を取得するためにインタレストメッセージの初期セットを発行する必要がある。ウェブページの場合、マークアップ文書を受信すると、要求者は、マークアップ文書を解析する必要があり、そして、マークアップ文書によって示された埋め込みオブジェクトのダウンロードを開始する必要がある。そのようなプロセスは、多くの場合、複数のラウンドトリップ時間（ＲＴＴ）を必要とし、それゆえに、コンテンツダウンロードプロセスに対して大幅な待ち時間を追加する。この問題は、ＩＰネットワークによって経験されるダウンロード待ち時間問題と同様である。
【０００５】
ＩＰワールドにおいて、個々のファイルの転送において非常に効率的であるものの、ＨＴＴＰは多数の小ファイルを効率的に転送することができないことから、人々はハイパーテキスト転送プロトコル（ＨＴＴＰ）の性能に満足していない。しかしながら、今日のウェブの目的は、多くの場合、画像、カスケーディングスタイルシート（ＣＳＳ）ファイル及び外部ＪａｖａＳｃｒｉｐｔ（登録商標）ファイルなどの数十以上の埋め込みオブジェクトを有するページを含む。これら全ての個々のファイルをロードすることは、それらを別々に要求し、ネットワーク容量を調査してそれらの伝送速度を増加するためにＴＣＰ（伝送制御プロトコル）セッションを待機するという全てのオーバーヘッドのために時間がかかる。例えば、ＴＣＰ上でＨＴＴＰを使用してウェブコンテンツを要求するとき、要求者は、通常、所望のＨＴＴＰ及びＨＴＭＬマークアップ文書のダウンロードを開始する前にＧＥＴリクエストを送信するのが完了されるように三方ＴＣＰハンドシェイクを待機する必要がある。そして、マークアップ文書を解析した後に、要求者は、個々の埋め込みオブジェクトを要求することができる。そのようなダウンロード待ち時間を削減するために、グーグル社によって開発されたＳＰＴＹＴＭ（カリフォルニア州メンロパークのグーグル社の登録商標）などのＩＰ設定において特定の「ゼロラウンドトリップ時間」プロトコルが開発されている。しかしながら、そのような解決策は、ＣＣＮ設定には存在していない。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の１つの実施形態は、ネットワーク上の単一のコンテンツストリームを使用してコンテンツコレクションのダウンロードを可能とする単一のコンテンツストリームを組み立てるシステムを提供する。動作中、システムは、複数のコンテンツ要素を含むコンテンツコレクションを取得し、コンテンツコレクションについてのマニフェストを生成する。マニフェストにおける各エントリは、コンテンツ要素に対応している。システムは、複数のコンテンツ要素が続くマニフェストを含めることによって単一のコンテンツストリームを組み立てる。マニフェスト及びコンテンツ要素は、同じ名称空間下のオブジェクトにパッケージ化され、それにより、同じ名称空間下のインタレストを使用してコンテンツコレクション内の１つ以上のコンテンツ要素を要求者が要求するのを容易とする。
【０００７】
本実施形態の変形例において、コンテンツ要素は、パッケージ化されたオブジェクトに対応し且つシーケンス番号が割り当てられた各チャンクを有する単一のコンテンツストリーム内の複数のチャンクにわたってまたがる。マニフェストにおけるエントリは、複数のチャンクのシーケンス番号を指定する。
【０００８】
本実施形態の変形例において、マニフェストにおけるエントリは、さらに、コンテンツ要素の複数のチャンクのうちの１つ以上のハッシュ値を指定し、それにより、ハッシュ値を検査することによってコンテンツ要素のコピーが要求者のローカルキャッシュに存在するかどうかを要求者が判定するのを可能とする。
【０００９】
本実施形態の変形例において、システムは、さらに、要求者から、同じ名称空間下のインタレストのセットを受信し、複数のコンテンツ要素から、どのコンテンツ要素が単一のコンテンツストリームに含まれるかを判定する。
【００１０】
本実施形態の変形例において、ネットワークは、コンテンツ中心ネットワークであり、オブジェクトは、標準ＣＣＮコンテンツオブジェクトである。
【００１１】
さらなる変形例において、単一のコンテンツストリームにおける少なくとも１つのコンテンツオブジェクトは、鍵情報を含み、各コンテンツオブジェクトは、鍵に関連付けられた暗号化署名を含む。
【００１２】
本実施形態の変形例において、コンテンツ要素は、第２の単一のコンテンツストリームを含み、第２の単一のコンテンツストリームは、第２のマニフェストを含む。
【００１３】
本実施形態の変形例において、マニフェストは、複数のセグメントを含み、マニフェストの複数のセグメントは、単一のコンテンツストリーム内の異なる場所に散在している。
【００１４】
本実施形態の変形例において、単一のコンテンツストリームを組み立てることは、さらに、順番に複数のコンテンツ要素を配置することを備える。
【００１５】
さらなる変形例において、順番に複数のコンテンツ要素を配置することは、単一のコンテンツストリームの開始時にコンテンツコレクションのレンダリングを要求される１つ以上のコンテンツ要素を配置することと、それらの変更時間に基づいて順番に複数のコンテンツ要素を配置することとのうちの１つ以上を含む。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施形態にかかるネットワークの例示的なアーキテクチャを図示している。
【図２】図２は、従来のマニフェストのフォーマットを図示する図である。
【図３Ａ】図３Ａは、ウェブページに含まれる様々な要素を図示する図である。
【図３Ｂ】図３Ｂは、埋め込みオブジェクトを有するウェブページをダウンロードする従来のプロセスを図示する図である。
【図４】図４は、本発明の実施形態にかかる例示的なオールインワンマニフェストのフォーマットを図示する図である。
【図５】図５は、本発明の実施形態にかかるオールインワンストリームにおける例示的なコンテンツオブジェクトのフォーマットを図示する図である。
【図６】図６は、本発明の実施形態にかかるオールインワンストリームを使用してコンテンツコレクションをダウンロードする例示的なプロセスを図示する図である。
【図７】図７は、本発明の実施形態にかかる例示的な再帰的オールインワンストリームを図示する図である。
【図８】図８は、本発明の実施形態にかかる複数セクションマニフェストを有する例示的なオールインワンストリームを図示する図である。
【図９】図９は、本発明の実施形態にかかるコンテンツコレクションのダウンロードに使用可能なオールインワンストリームを構築するプロセスを図示する図である。
【図１０】図１０は、本発明の実施形態にかかるコンテンツのダウンロードについてのオールインワンストリームを可能とする例示的なシステムを図示している。
【発明を実施するための形態】
【００１７】
図面において、同様の参照符号は、同一の図要素を指す。
【００１８】
本発明の実施形態は、コンテンツマニフェストをダウンロードするためのラウンドトリップ時間を招来することなく、単一の名称付きストリームを使用してコンテンツオブジェクトのセットをダウンロードするシステム及び方法を提供する。より具体的には、システムは、オールインワンストリームと称される単一の名称付きストリームに（例えば、ウェブページ内の全てのコンテンツなど）全ての必要なコンテンツを集約する。オールインワンストリームは、構成オブジェクトが続く特別に構築されたマニフェスト（オールインワンマニフェストとも称される）を含む。オールインワンマニフェストは、各エントリがコンテンツ要素に対応するエントリのセットを含む（断片化が可能である場合には複数のコンテンツオブジェクト又はコンテンツオブジェクト断片にまたがることがある）。オールインワンマニフェストにおけるエントリは、（ウェブページにおける埋め込みオブジェクト又はウェブページのマークアップ文書とすることができる）コンテンツ要素のＣＣＮベース名と、コンテンツ要素が占有するチャンク番号のリストと、コンテンツ要素内の各チャンク（コンテンツオブジェクト）のコンテンツオブジェクトハッシュとを指定する。全体のオールインワンストリームは、１つのチャンクされた名称空間下にあり、全てのチャンクは、同じ名称接頭辞を有し、したがって、コンテンツの要求者は、オールインワンマニフェスト及び全てのローカルに提供されるコンテンツ要素をダウンロードするために１つの大きなインタレストウィンドウを開くことができる。オールインワンマニフェストは、要求者が既にそれらを有している場合には特定の未ダウンロードのコンテンツ要素をスキップすることができるように十分な情報を有する。
【００１９】
一般に、ＣＣＮは、インタレスト及びコンテンツオブジェクトという２つの種類のメッセージを使用する。インタレストは、コンテンツオブジェクトの「名称」又は「ＣＣＮ名称」とも称される階層的に構造化された可変長識別子（ＨＳＶＬＩ）を伝搬し、そのオブジェクトについてのリクエストとして機能する。ネットワーク要素（例えば、ルータ）が同じ名称についての複数のインタレストを受信した場合、それらのインタレストを集約することができる。マッチングコンテンツオブジェクトとインタレストの経路に沿ったネットワーク要素は、インタレストを満たす、そのオブジェクトをキャッシュして返送することができる。コンテンツオブジェクトは、インタレストの原点（複数可）までインタレストの逆経路をたどる。コンテンツオブジェクトは、他の情報のうち、ペイロードにＨＳＶＬＩを結合するために使用される同じＨＳＶＬＩ、オブジェクトのペイロード及び暗号情報を含む。
【００２０】
本開示において使用される用語は、一般に、以下のように定義される（それらの解釈は、そのようなものに限定されない）。
【００２１】
「ＨＳＶＬＩ」：名称とも称される階層的に構造化された可変長識別子である。それは、可変長のオブジェクトストリングとすることができる名称要素の順序付けられたリストである。人が読み取り可能な形態において、ｃｃｎｘ：／ｐａｔｈ／ｐａｒｔなどのフォーマットにおいて表されることができる。また、ＨＳＶＬＩは、人が読み取り可能としなくてもよい。上述したように、ＨＳＶＬＩは、コンテンツを指し、それらがコンテンツについての組織的構造を表し且つ人に対して少なくとも部分的に有意とすることができることが望ましい。ＨＳＶＬＩの個々の要素は、任意長を有することができる。さらにまた、ＨＳＶＬＩは、明確に区切られた要素を有することができ、数バイトの任意のシーケンスを含むことができ、人が読み取り可能な特性に限定されるものではない。最長接頭辞一致検索は、ＨＳＶＬＩを有するパケット転送において重要である。例えば、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ」におけるインタレストを示すＨＳＶＬＩは、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｔｅｓｔ．ｔｘｔ」及び「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｂａｒ．ｔｘｔ」の双方と一致する。名称要素の数を考慮すると、最長一致は、最も特異的であることから最良であると考えられる。ＨＳＶＬＩの詳細な記述は、代理人整理番号ＰＡＲＣ−２００９０１１５Ｑ、「ＳＹＳＴＥＭ  ＦＯＲ  ＦＯＲＷＡＲＤＩＮＧ  Ａ  ＰＡＣＫＥＴ  ＷＩＴＨ  Ａ  ＨＩＥＲＡＲＣＨＩＣＡＬＬＹ  ＳＴＲＵＣＴＵＲＥＤ  ＶＡＲＩＡＢＬＥ−ＬＥＮＧＴＨ  ＩＤＥＮＴＩＦＩＥＲ」と名称が付された発明者Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ及びＪａｍｅｓ  Ｄ．  Ｔｈｏｒｎｔｏｎによる２００９年９月２３日に提出された米国特許第８，１６０，０６９号明細書にみることができる。
【００２２】
「インタレスト」：コンテンツオブジェクトについてのリクエストである。インタレストは、ＨＳＶＬＩ名称接頭辞と、同じ名称接頭辞を有する複数のオブジェクトを選択するのに使用可能な他の任意のセレクタとを指定する。名称がインタレストの名称接頭辞（及び必要に応じて発行者鍵−ＩＤ一致などの他の要求されたパラメータ）と一致するいかなるコンテンツオブジェクトも、インタレストを満たす。
【００２３】
「コンテンツオブジェクト」：インタレストに応答して送信されたデータオブジェクトである。暗号化署名を介して一体に結合されたＨＳＶＬＩ名称及びコンテンツペイロードを有する。必要に応じて、全てのコンテンツオブジェクトは、コンテンツオブジェクトのＳＨＡ−２５６ダイジェストから形成された暗黙の端末名称要素を有する。１つの実施形態において、暗黙のダイジェストは、ワイヤ上で転送されず、必要に応じて、各ホップにおいて算出される。コンテンツオブジェクトは、コンテンツ要素と同じではないことに留意されたい。コンテンツオブジェクトは、ＣＣＮプロトコルのもとで具体的に定義された構造を有し、その大きさは、通常、ネットワークパケットのサイズ（ワイドエリアネットワークについての１５００バイト及びローカルエリアネットワークについての８０００バイト程度で断片化を伴う）であるのに対して、コンテンツ要素は、ウェブページの埋め込みオブジェクトとすることができる任意の種類のファイルを参照するのに使用される一般的な用語である。例えば、ウェブページは、画像、映像ファイル又は対話型要素などの多数の埋め込みオブジェクトを含んでもよい。各埋め込みオブジェクトは、コンテンツ要素であり、複数のコンテンツオブジェクトにまたがることがある。
【００２４】
上述したように、ＨＳＶＬＩは、コンテンツの一部を示し、階層的に構造化され、最も一般的なレベルから最も特定のレベルまで順序付けられた連続する要素を含む。各ＨＳＶＬＩの長さは、固定されていない。コンテンツ中心ネットワークにおいて、従来のＩＰネットワークとは異なり、パケットは、ＨＳＶＬＩによって識別されることができる。例えば、「ａｂｃｄ／ｂｏｂ／ｐａｐｅｒｓ／ｃｃｎ／ｎｅｗｓ」は、コンテンツの名称とすることができ、対応するパケット（複数可）、すなわち、「ＡＢＣＤ」と名称付けられた組織における「Ｂｏｂ」と名称付けられたユーザについて新聞の「ｃｃｎ」コレクションからの「ｎｅｗｓ」記事を識別する。コンテンツの一部を要求するために、ノードは、コンテンツの名称によってそのコンテンツにおけるインタレストを表現する（例えば、ブロードキャストする）。コンテンツの一部のインタレストは、コンテンツの名称又は識別子にしたがったコンテンツについてのクエリであってもよい。コンテンツは、ネットワーク内で利用可能な場合、コンテンツを記憶する任意のノードから要求ノードに対して返送される。ルーティングインフラストラクチャは、情報を有する可能性の高い有望なノードにインタレストをインテリジェントに伝播し、インタレストメッセージによって通過する逆経路に沿って利用可能なコンテンツを伝搬して戻す。基本的に、コンテンツオブジェクトは、インタレストメッセージによって残されたブレッドクラムに続き、それゆえに要求ノードに到達する。
【００２５】
図１は、本発明の実施形態にかかるネットワークの例示的なアーキテクチャを図示している。この例において、ネットワーク１８０は、ノード１００〜１４５を含む。ネットワーク内の各ノードは、１つ以上の他のノードに接続されている。ネットワーク接続１８５は、そのような接続の例である。ネットワーク接続は、実線として示されているが、各線は、他のノードに１つノードを結合することができるサブネットワーク又はスーパーネットワークを表すこともできる。ネットワーク１８０は、コンテンツ中心のローカルネットワーク、スーパーネットワーク又はサブネットワークとすることができる。これらのネットワークのそれぞれは、１つのネットワーク内のノードが他のネットワーク内のノードに到達することができるように、相互接続されることができる。ネットワーク接続は、広帯域、無線、電話、衛星又は任意の種類のネットワーク接続とすることができる。ノードは、インタレストを生成するか又はコンテンツを発信することができるコンピュータシステム、ユーザを表すエンドポイント及び／又は装置とすることができる。
【００２６】
本発明の実施形態によれば、消費者は、コンテンツの一部についてのインタレストを生成することができ、ネットワーク１８０内のノードに対してインタレストを転送することができる。コンテンツの一部は、ネットワークの内部又は外部に位置することができる発行者又はコンテンツプロバイダによってネットワーク１８０内のノードに記憶されることができる。例えば、図１において、コンテンツの一部におけるインタレストは、ノード１０５において生成する。コンテンツがノードにおいて利用可能でない場合、インタレストは、第１のノードに結合された１つ以上のノードに流れる。例えば、図１において、インタレストは、利用可能なコンテンツを有していないノード１１５に流れる（インタレストフロー１５０）。次に、インタレストは、ノード１１５から、同様にコンテンツを有していないノード１２５に流れる（インタレストフロー１５５）。そして、インタレストは、利用可能なコンテンツを有するノード１３０に流れる（インタレストフロー１６０）。そして、コンテンツオブジェクトの流れは、コンテンツが配信されるノード１０５に到達するまでその逆経路を引き返す（コンテンツフロー１６５、１７０及び１７５）。認証などの他のプロセスは、コンテンツの流れに含まれることができる。
【００２７】
ネットワーク１８０において、コンテンツホルダ（ノード１３０）とインタレスト生成ノード（ノード１０５）との間の経路における任意数の中間ノード（ノード１００〜１４５）は、ネットワークを介して移動するのに伴い、コンテンツのローカルコピーをキャッシュするのに参加することができる。キャッシングは、ローカルにキャッシュされたコンテンツに対するアクセスを暗黙的に共有することによって他の加入者の近傍に位置する第２の加入者についてのネットワーク負荷を軽減する。
【００２８】
ＣＣＮにおいて、マニフェスト（カタログとしても知られる）は、データのコレクションを表すのに使用される。例えば、ＣＣＮノードは、多数の映像ファイルを含む映像コレクションを含むことができ、映像コレクションのマニフェストは、映像ファイルに対応するコンテンツオブジェクトを識別する順序付きリストとすることができる。コンテンツオブジェクトのサイズ制限のために、映像ファイルは、多くの場合、多くのコンテンツオブジェクトにまたがるということに留意されたい。さらに、ＣＣＮノードは、ウェブページについてのコンテンツを記憶することができ、ウェブページについてのマニフェストは、マークアップ文書及び（Ｊａｖａ（登録商標）  ｓｃｒｉｐｔｓ、画像ファイル、音声ファイル、映像ファイルなどを含む）埋め込みオブジェクトなどのウェブページの異なる要素を識別する。
【００２９】
マニフェストにおいて、各コンテンツオブジェクトは、その名称及び対応するダイジェストによって識別され、ダイジェストは、コンテンツオブジェクトの（多くの場合、ハッシュ関数ＳＨＡ−２５６などの暗号化ハッシュ関数を使用して算出された）ハッシュ値である。いくつかの実施形態において、各コンテンツオブジェクトはまた、コンテンツが変更された時間を示す変更時間によって識別される。図２は、従来のマニフェスト（先行技術）のフォーマットを図示する図である。
【００３０】
図２において、マニフェスト２００は、コレクション名称２０４及び以下のうちの１つ以上によって識別されるコンテンツオブジェクトの順序付きリストを含む。コンテンツオブジェクト名称２３０．１〜２３０．ｎ；ダイジェスト２３２．１〜２３２．ｎ；及び変更時間２３４．１〜２３４．ｎ。ダイジェスト２３２．１〜２３２．ｎは、名称２３０．１〜２３０．ｎによってそれぞれ識別されるコンテンツオブジェクトのハッシュ値を含む。マニフェスト２００はまた、コレクションにおける個々のコンテンツオブジェクトのハッシュ値２３２．１〜２３２．ｎに基づく追加のハッシュ値であるルートハッシュ２０２を含む。マニフェスト２００のルートハッシュ２０２は、マニフェスト２００についての固有の識別子である。
【００３１】
図２に示されるように、マニフェスト２００は、コレクションで表される各コンテンツオブジェクトについての名称及び対応するダイジェストを示すことができる。必要に応じて、マニフェスト２００はまた、コレクションにおいて表される各コンテンツオブジェクトについての変更時間を含むことができる。変更時間フィールドの使用は、実行される基礎となるアプリケーション又はサービスに依存する。順序付きリストに加え、マニフェストはまた、コンテンツオブジェクトのみならずコンテンツオブジェクトのネストされたコレクションを含む同期ツリーとして構成されることができる。
【００３２】
従来のＣＣＮにおいて、コンテンツ要求者がウェブページなどのコンテンツコレクションを要求すると、要求者は、コンテンツの一部を読み出すためにインタレストメッセージの初期セットを発行する必要がある。図３Ａは、ウェブページに含まれる様々な要素を図示する図である。図３Ａにおいて、ウェブページ３００は、マークアップ文書３０２と、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル３０４（Ｆｉｌｅ１．ｊｓ）及び３０６（Ｆｉｌｅ２．ｊｓ）並びに埋め込み画像３０８（画像１）及び３１０（画像Ｎ）などのマークアップ文書３０２によって参照される多数のオブジェクトとを含む。ウェブページ３００の全体をダウンロードするために、要求者は、最初にマークアップ文書３０２を要求する必要があり、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル３０４及び３０６又は画像３０８及び３１０などのそれらのオブジェクトを要求するために、埋め込みオブジェクトに関する情報を取得するためにマークアップ文書３０２を解析する必要がある。
【００３３】
図３Ｂは、埋め込みオブジェクトを有するウェブページをダウンロードする従来のプロセスを図示する図である。図３Ｂにおいて、要求者３１２は、１つ以上の応答者３１４から複数の埋め込みオブジェクトを含むウェブページをダウンロードしている。動作中、要求者３１２は、マークアップ文書を要求するために応答者３１４に対してインタレストメッセージ３１６のセットを発行することによってダウンロードプロセスを開始する。マークアップ文書の検索により、要求者３１２は、マークアップ文書を解析し、１つずつ（ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル又は画像とすることができる）埋め込みオブジェクトを要求する。これは、埋め込みオブジェクトの互い違いの要求及びダウンロードをもたらし、それゆえに、待ち時間の増加をもたらす。さらに、要求者３１２は、どのくらい多くのチャンクが埋め込みオブジェクトを要求するのかを事前に知らないことから、少なすぎるか又は多すぎることがあるオブジェクトを要求するためにインタレストの推定数を送信することができる。例えば、図３Ｂにおいて、マークアップ文書についてのインタレストセット３１６は、（／ｆｏｏ／ｐａｇｅ／ｓ０、／ｆｏｏ／ｐａｇｅ／ｓ１、・・・、／ｆｏｏ／ｐａｇｅ／ｓ３などの）同じ名称接頭辞をそれぞれ有するが異なるチャンク番号を有する４つのインタレストを含む。しかしながら、発行されたインタレストの数は、マークアップ文書３０２に含まれるセグメント（チャンク）の数よりも少ない。最初のセグメントの受信により、要求者３１２は、残りのマークアップ文書３０２についての追加のインタレストを発行する。マークアップ文書３０２の（コンテンツオブジェクトセット３１８及びコンテンツオブジェクトセット３２０を含む）全てのセグメントを受信すると、要求者３１２は、マークアップ文書を読み出し、埋め込みオブジェクトを要求する（動作３２２）。
【００３４】
ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル３０４（Ｆｉｌｅ１．ｊｓ）を要求するために、要求者３１２は、インタレストメッセージ３２４のセットを送信する。Ｆｉｌｅ１．ｊｓのサイズの事前知識なしに、要求者３１２は、多すぎるインタレストを発行することによって大きすぎるウィンドウを開くことがある。図３Ｂにおいて、要求者３１２は、（／ｆｏｏ／Ｆｉｌｅ１．ｊｓ／ｓ０、／ｆｏｏ／Ｆｉｌｅ１．ｊｓ／ｓ１、・・・、／ｆｏｏ／Ｆｉｌｅ１．ｊｓ／ｓ３などの）同じ名称接頭辞をそれぞれ有するが異なるチャンク番号を有するＦｉｌｅ１．ｊｓについての４つのインタレストを発行する。しかしながら、Ｆｉｌｅ１．ｊｓは、２つのセグメントのみを含み、２つのコンテンツオブジェクトのみを含むコンテンツオブジェクトセット３２６を返送する。したがって、Ｆｉｌｅ１．ｊｓについての要求者３１２から送信された余分な２つのインタレストが無駄にされ、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル３０６（Ｆｉｌｅ２．ｊｓ）のダウンロードを開始するために使用されるなど、有用なコンテンツを要求するために使用されることができた。同様に、要求者３１２は、再度、１つのセグメントのみを有するＪａｖａＳｃｒｉｐｔ（登録商標）ファイル３０６（Ｆｉｌｅ２．ｊｓ）についての４つのインタレストを発行することができ、これは３つのインタレストが無駄にされることを意味する。多くの小さなオブジェクトを含むコンテンツコレクションの場合、この過剰要求は、ネットワーク全体のスループットを大幅に低下させることができる。
【００３５】
ダウンロードの待ち時間を削減してスループットを向上させるために、いくつかの実施形態において、システムは、（マークアップ文書及び全ての埋め込みオブジェクトを含む）必要な全てのコンテンツを単一の名称付きストリームに集約し、要求者がオールインワンストリームとしても知られる単一の名称付きストリームを使用して全ての必要なコンテンツをダウンロードするのを可能とする。いくつかの実施形態において、コンテンツコレクションについてのこの単一の名称付きストリーム（オールインワンストリーム）は、埋め込みオブジェクトが続くオールインワンマニフェストを含む。オールインワンストリームを有するダウンロードを容易とするために、オールインワンのマニフェストを取得するために（図２に示されるように）変更が従来のマニフェストに行われる必要があることに留意されたい。より具体的には、オールインワンマニフェストは、各埋め込みオブジェクトに含まれるセグメントの数を指定する必要がある。
【００３６】
図４は、本発明の実施形態にかかる例示的なオールインワンマニフェストのフォーマットを図示する図である。図４において、（ウェブページの全てのコンテンツを含むことができる）コンテンツコレクション４００は、マニフェスト４０２と、マークアップ文書４０４と、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル（Ｆｉｌｅ１．ｊｓ）４０６と、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル（Ｆｉｌｅ２．ｌｓ）４０８と、他の要素とを含む。マニフェスト４０２は、各エントリがマークアップ文書又は埋め込みオブジェクトとすることができる１つのコンテンツ要素に対応するコンテンツ要素の順序付きリストを含む。各エントリは、コンテンツ要素のＣＣＮ名称を指定するオブジェクト名フィールドと、オールインワンストリーム内のコンテンツ要素のチャンクのシーケンスを列挙するチャンク番号フィールドと、全てのチャンクのハッシュ値を列挙するチャンクハッシュフィールドとを含む。
【００３７】
例えば、図４において、マニフェスト４０２に含まれるエントリ４１０は、マークアップ文書４０４に対応する。より具体的には、エントリ４１０は、オブジェクト名フィールド４１２．１と、チャンク番号フィールド４１４．１と、チャンクハッシュフィールド４１６．１とを含む。オブジェクト名フィールド４１２．１は、マークアップ文書４０４のＣＣＮベース名（／ｆｏｏ／ｍａｒｋｕｐ）を指定する。チャンク番号フィールド４１４．１は、マークアップ文書４０４が、オールインワンストリームのチャンクｓ３〜ｓ９（各チャンクが個々のコンテンツオブジェクトである合計７つのチャンク）を占有する（ＣＣＮ名４１２．１によって識別される）ことを指定する。なお、いくつかの実施形態において、各チャンク（又は各コンテンツオブジェクト）のＣＣＮ名は、コンテンツ要素及びチャンク番号のＣＣＮベース名として構築されることができることに留意されたい。例えば、マークアップ文書４０４が７つのチャンクを有していることを考えると、マークアップ文書４０４の最初のチャンクは、ＣＣＮ名／ｆｏｏ／ｍａｒｋｕｐ／ｓ０を有することができ、最後のチャンクは、ＣＣＮ名／ｆｏｏ／ｍａｒｋｕｐ／ｓ６を有することができる。チャンクハッシュフィールド４１６．１は、７つ全てのチャンクの（０ｘ１２ＡＢ、０ｘ７７９８などの）コンテンツオブジェクトハッシュ値を列挙する。図４に示される例において、コンテンツオブジェクトハッシュ値は、簡単に表示するために２バイトのハッシュとして示されていることに留意されたい。実際には、コンテンツオブジェクトのコンテンツオブジェクトハッシュは、ＳＨＡ−２５６関数又は他の強力なハッシュ関数を使用して算出される１６バイトのハッシュ値とすることができる。
【００３８】
また、図４に示されるように、マニフェスト４０２に含まれるエントリ４２０は、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６（Ｆｉｌｅ１．ｊｓ）に対応している。エントリ４１０と同様に、エントリ４２０は、オブジェクト名フィールド４１２．２と、チャンク番号フィールド４１４．２と、チャンクハッシュフィールド４１６．２とを含む。より具体的には、オブジェクト名フィールド４１２．２は、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６についてのＣＣＮ名が／ｆｏｏ／ｆｉｌｅ１．ｊｓであることを指定し、チャンク番号フィールド４１４．２は、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６が２つのチャンク（ｓ１０及びｓ１１）を有することを指定し、チャンクハッシュフィールド４１６．２は、これら２つのチャンクについてのコンテンツオブジェクトハッシュ値（０ｘＤ２Ａ０、０ｘ３３３３）を列挙する。
【００３９】
従来のマニフェストとは異なり、マニフェスト４０２は、オールインワンストリームにおける各埋め込みオブジェクトのチャンク範囲（又はオフセット）を列挙することに留意されたい。これは、オブジェクト（コンテンツ要素）が未処理のインタレストウィンドウによって既にカバーされているかどうかをコンテンツの要求者が判定するのを可能とする。例えば、１０個のインタレストが発行されている場合、１０番目のチャンクは、発行されたインタレストによってカバーされている。さらに、マニフェスト４０２において各チャンクのコンテンツオブジェクトハッシュを含むことは、コンテンツオブジェクトハッシュ値を比較することによってそのキャッシュ内にオブジェクト又はオブジェクトのセグメントを既に有するかどうかを要求者が判定するのを可能とする。オブジェクトがまだ未処理の要求によってカバーされておらず且つ要求者がそのキャッシュ内にオブジェクトを既に有している場合、要求者は、その埋め込みオブジェクトのダウンロードをスキップすることができる。例えば、埋め込みＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６は、オールインワンストリームにおいてｓ１０からＳ１１までの範囲に及び、初期要求がチャンク９までのインタレストを発行する場合、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６は、初期要求によってカバーされない。さらに、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６のコンテンツオブジェクトハッシュに基づいて、要求者は、そのキャッシュ内にＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６を既に有すると判定することができる。したがって、要求者は、コンテンツコレクション４００内に後続のコンテンツ要素をダウンロードし続けながらＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６のダウンロードをスキップすることができる。
【００４０】
さらに、各コンテンツ要素のコンテンツオブジェクトハッシュを列挙することは、要求者が各個々のコンテンツ要素についての個別のインタレストウィンドウを開き、それらのハッシュによってそれらを要求するのを可能とする。より具体的には、要求者は、自己認定コンテンツオブジェクトハッシュ名を使用して、自身の名称のもとに特定の埋め込みオブジェクトを要求することができる。例えば、要求者は、その２つのセグメント０ｘＤ２Ａ０及び０ｘ３３３３のハッシュによってＪａｖａＳｃｒｉｐｔ（登録商標）ファイル４０６を要求することができる。換言すれば、単一のオールインワンストリームを使用してコンテンツのダウンロードを可能とすることに加えて、オールインワンマニフェストはまた、要求者が互いに独立した並列ストリームのセットを使用してコンテンツ要素をダウンロードすることを可能とする。したがって、埋め込みオブジェクトをダウンロードする前にマークアップ文書を解析するのを待機する代わりに、要求者は、マークアップ文書及び埋め込まれた文書を並列にダウンロードすることができる。各ストリームの要求は、埋め込みオブジェクトのハッシュ名に基づくことができる。独自のハッシュ名を使用して埋め込みオブジェクトをダウンロードすることはまた、ダウンロードがいくつかのよく配置されたキャッシュから到来するのを可能とするのに対して、マークアップ文書とともに埋め込みオブジェクトをダウンロードすることは、より最適でないソースからそれらが生じることがある。例えば、画像ファイルは、非常に長いキャッシュ寿命を有することができるため、それらは多くの場所でキャッシュされることができる一方で、頻繁に更新されたウェブページ（マークアップ）は、短いキャッシュ寿命を有することがあり、より少ない場所にキャッシュされることがある。そのような状況において、遠くにすることができるマークアップ文書の同じ場所からそれらをダウンロードする代わりに、近くのキャッシュ場所から画像をダウンロードすることが望ましい。
【００４１】
図５は、本発明の実施形態にかかるオールインワンストリームにおける例示的なコンテンツオブジェクトのフォーマットを図示する図である。より具体的には、図５は、どのように（コンテンツコレクション４００などの）コンテンツコレクションが同じ名称空間のもとに、各チャンクが標準ＣＣＮコンテンツオブジェクトである多くのチャンクを含む単一のオールインワンストリームに組み立てられることができるのかを示している。図５において、オールインワンストリーム５００は、チャンク５０２、５０４、５０６及び５０８などの複数のチャンクを含む。各チャンクは、標準ＣＣＮコンテンツオブジェクトフォーマットに準拠した標準ＣＣＮコンテンツオブジェクトである。各コンテンツオブジェクトは、少なくとも名称要素５１２．ｘ、鍵ＩＤ要素５１４．ｘ、ペイロード要素５１６．ｘ及び署名要素５１８．ｘを含み、ｘはチャンクのシーケンス番号に対応している。
【００４２】
名称要素は、各チャンク／コンテンツオブジェクトのＣＣＮ名称を指定している。いくつかの実施形態において、オールインワンストリーム内の全てのコンテンツオブジェクトは、同じ名称接頭辞を有し、コンテンツオブジェクトのＣＣＮ名は、名称接頭辞及びそのチャンク番号である。図５に示される例において、オールインワンストリーム５００における全てのコンテンツオブジェクトの名称接頭辞は、／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅであり、（オールインワンストリーム５００における第１のチャンクであるチャンク０である）コンテンツオブジェクト５０２についてのＣＣＮ名は、名称要素５１２．１によって示される／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ０である。同様に、（オールインワンストリーム５００における第２のチャンクであるチャンク１である）コンテンツオブジェクト５０４についてのＣＣＮ名は、名称要素５１２．２によって示される／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ１である。
【００４３】
各コンテンツオブジェクト内の鍵ＩＤ要素（５１４．ｘ）は、コンテンツオブジェクトに署名するために発行者によって使用される公開鍵を識別する。署名要素（５１８．ｘ）は、対応する秘密鍵を使用してコンテンツオブジェクトの残りの部分を署名することによって取得することができる。いくつかの実施形態において、署名は、コンテンツオブジェクトの残りの部分のハッシュを介して署名することによって取得することができる。例えば、名称要素５１２．１、鍵ＩＤ要素５１４．１及びペイロード要素５１６．１上で算出されたハッシュ値を署名することによって署名５１８．１を取得することができる。いくつかの実施形態において、オールインワンのストリーム内の全てのコンテンツオブジェクトが鍵ＩＤを含まないことに留意されたい。最低でも、オールインワンのストリームにおける第１のコンテンツオブジェクトは、鍵ＩＤを含まなければならず、又は、中間ノード及びエンドシステムが署名を検証することができるように必要に応じて公開鍵を伝送しなければならない。
【００４４】
各コンテンツオブジェクト又はチャンクのペイロード要素（５１６．ｘ）は、マニフェストの一部又はマークアップ文書若しくはＪａｖａＳｃｒｉｐｔ（登録商標）ファイルなどの埋め込みコンテンツ要素の一部のいずれかを含む。オールインワンストリームの最初のいくつかのチャンク（コンテンツオブジェクト）は、多くの場合、ストリームのマニフェストを表すラッピングオブジェクトであり、これらのラッピングオブジェクトのペイロードは、マニフェストそのものである。マニフェストのサイズに応じて、ラッピングオブジェクトは、より少ないか又はより多くのコンテンツオブジェクトを含むことができる。図５に示される例において、マニフェストは、３つのコンテンツオブジェクト（チャンクｓ０〜ｓ２）にわたって延在しており、各オブジェクトは、マニフェストのチャンクを含む。例えば、ペイロード５１６．１及び５１６．２は、それぞれ、マニフェストの第１及び第２のチャンクを含む。
【００４５】
後続のコンテンツオブジェクトのペイロードは、コンテンツ要素の一部を含む。例えば、コンテンツオブジェクト５０６及び５０８のペイロードは、マークアップ文書の第１及び第２のチャンクである埋め込みコンテンツオブジェクト／ｆｏｏ／ｍａｒｋｕｐ／ｓ０及び／ｆｏｏ／ｍａｒｋｕｐ／ｓ１を含む。各埋め込みコンテンツ要素のチャンク自体は、（マークアップ文書の一部であるチャンクの場合には／ｆｏｏ／ｍａｒｋｕｐ／ｓ０などの）独自の名称を有するＣＣＮコンテンツオブジェクトとすることができるものの、オールインワンストリームにおいて組み立てられた対応するコンテンツオブジェクトには、名称要素５１２．ｘによって示されるように独自のストリーム名が割り当てられることに留意されたい。同じオールインワンストリーム内の全てのコンテンツオブジェクトには、同じ名称接頭辞が割り当てられる。オールインワンストリーム内の全てのコンテンツオブジェクトに対して同じ名称接頭辞を割り当てることは、要求者がマークアップ文書を解析する必要なく連続的に全ての埋め込みコンテンツ要素をダウンロードするために十分に大きなウィンドウを開くのを可能とすることに留意されたい。例えば、要求者は、名称接頭辞にチャンク番号を順次追加し、コンテンツコレクション内の埋め込みコンテンツ要素の番号、名称又はサイズを知る必要なく埋め込みコンテンツ要素を要求するためにインタレストの初期セットを使用することにより、インタレストの初期セットを構築することができる。例えば、要求者は、オールインワンストリームの第１の２０のチャンクを要求するために、インタレストのセット（／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ０、／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ１、・・・、／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ１９）を発行することができる。チャンクのダウンロード中に、要求者は、より多くのインタレストを発行する必要があるかどうか及びそれがキャッシュ内にそれらを既に有しているために特定の要素のダウンロードをスキップすることができるかどうかを判定するために（通常は最初にダウンロードされた）マニフェストを読み出すことができることに留意されたい。
【００４６】
図６は、本発明の実施形態にかかるオールインワンストリームを使用してコンテンツコレクションをダウンロードする例示的なプロセスを図示する図である。図６において、要求者６０２は、１つ以上の応答者６０４から複数の埋め込みオブジェクトを含むウェブページをダウンロードしている。オールインワンダウンロードを可能とするために、オールインワンマニフェストは、ウェブページのコンテンツのラッパとして作成されている。
【００４７】
動作中、要求者６０２は、応答者６０４に対してインタレストメッセージ６０６の初期セットを発行することによってダウンロードプロセスを開始する。インタレストメッセージ６０６の初期セットに含まれるインタレストの数は任意とすることができる。いくつかの実施形態において、（初期インタレストセット６０６によって定義されるような）この初期ウィンドウは、全てのラッパオブジェクト、すなわち、マニフェストをカバーするのに十分に大きくすることができるが、コンテンツコレクションの全体よりも大きくない。図６に示される例において、初期インタレストセット６０６は、マニフェストを検索するために十分な大きさのダウンロードウィンドウを作成する４つのインタレスト（／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ０から／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ３まで）を含む。要求者６０２は、同じ名称接頭辞（／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ）を使用して、マークアップ文書及びＪａｖａＳｃｒｉｐｔ（登録商標）ファイルなどの他のコンテンツ要素を要求するために（マニフェストを読み出しながら）新たなインタレストを発行し続けることができることに留意されたい。新たなインタレストは、チャンク番号を順次追加することによって作成されることができる。いくつかの実施形態において、ダウンロード中に、要求者６０２は、マニフェストを読み出し、コンテンツコレクションに含まれるチャンクの全数を判定し、それに応じて適切な数のインタレストを発行する。例えば、マニフェストを読み出してから、要求者６０２は、オールインワンストリームにおいて合計２０個のチャンクがあることを判定することができ、それが合計２０個のインタレストを発行するのを保証することができる。
【００４８】
さらに、要求者は、マニフェストに列挙されているコンテンツオブジェクトハッシュに基づいて、そのキャッシュ内に１つ以上のコンテンツ要素又はチャンクを既に有するかどうかを判定することができ、そうである場合、これらのチャンクのダウンロードをスキップすることができる。例えば、コンテンツオブジェクトハッシュを比較することにより、要求者は、オールインワンストリーム内のチャンクｓ１０及びｓ１１を占有するＪａｖａＳｃｒｉｐｔ（登録商標）ファイルＦｉｌｅ１．ｊｓを既に有することを見出すことができる。ダウンロード効率を向上させるために、要求者は、インタレストｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ１０及び／ｆｏｏ／ｐａｇｅ／ａｌｌ−ｉｎ−ｏｎｅ／ｓ１１を除外するインタレストセットを発行することができる。そうすることにより、要求者は、応答者がダウンロードストリームに含まれるように埋め込みオブジェクトを構成することができるように応答者に対してパラメータを提供する。この例において、インタレストセットは、チャンクｓ１０及びｓ１１についてのインタレストを有しないことから、これら２つのチャンクは、ダウンロードストリームから除外される。
【００４９】
いくつかの実施形態において、応答者は、モニタ又は再生映画に表示されるウェブページなどのコンテンツストリームがディスプレイ上でレンダリングされることを理解することができ、そして、応答者は、レンダリングを最適化するためにオールインワンストリームにおいてコンテンツ要素を順序付けることができる。例えば、ウェブページを表示するために、ブラウザは、全ての画像の前にｈｔｍｌファイルを必要とする。したがって、画像を転送しながらブラウザが画面のレンダリングを開始することができるように、オールインワンのストリームの開始においてｈｔｍｌファイルを配置することが応答者にとって最良である。コンテンツが映画である場合、応答者は、オールインワンストリームにおいてあまり重要でないフレームの前により重要なフレームを配置する必要がある。他の例において、１つ以上のコンテンツ要素が暗号化されている場合、応答者は、暗号化されたコンテンツ要素の前に暗号化を記述する項目を配置することができる。
【００５０】
図６を図３と比較すると、もはや複数の埋め込みコンテンツ要素のダウンロードをずらす必要がないことがわかる。代わりに、本発明の実施形態において、コンテンツコレクションのダウンロードは、単一のストリームを使用して達成することができ、それゆえに、潜在的にかなりのダウンロード待ち時間を削減する。さらに、マニフェストは、ダウンロードストリームに含まれるチャンクの全数を列挙することから、要求者に過剰要求する必要がなく、インタレストは無駄にされず、それゆえに、システムのスループットを増加させる。
【００５１】
いくつかの実施形態において、ストリームチャンクのペイロードに埋め込まれたオブジェクトはまた、オールインワンストリームそのものであってもよい。例えば、ＨＴＭＬファイルは、オールインワンストリームとしてそれ自体編成されることができる他のＨＴＭＬファイルや他のオブジェクトのフレームを参照することができる。図７は、本発明の実施形態にかかる例示的な再帰的オールインワンストリームを図示する図である。図７において、オールインワンストリーム７００は、マニフェスト７０２と、マークアップ文書７０４、埋め込みオブジェクト７０６及び７０８などの多数のコンテンツ要素とを含む。より具体的には、埋め込みオブジェクト７０８自体は、マニフェスト７１２と埋め込みオブジェクト７１４などの他のコンテンツ要素とを含むオールインワンストリームである。そのような状況において、親マニフェスト（マニフェスト７０２）は、そのストリーム名、チャンクの範囲及びそのチャンクのハッシュ値を列挙することにより、任意の他の埋め込みオブジェクトと同じように、埋め込まれたオールインワンストリーム７０８を扱うことに留意されたい。埋め込まれたオールインワンストリーム７０８を伝送するコンテンツオブジェクトを含むオールインワンストリーム７００に含まれる対応するコンテンツオブジェクトには、オールインワンストリーム７００の名称接頭辞が与えられていることに留意されたい。
【００５２】
コンテンツコレクションは、多くの埋め込みオブジェクトを含むことができ、各埋め込みオブジェクトは、多数の高解像度の画像を含むウェブページなどの多くのコンテンツオブジェクトにまたがることができる。そのような状況において、単一のマニフェストに全ての埋め込みオブジェクトを列挙することは、効率的なダウンロードにとってそれ自体大きすぎるマニフェストをもたらすことがある。マニフェストのダウンロード効率を向上させるために、いくつかの実施形態において、多くの埋め込みオブジェクトを列挙する大きなマニフェストは、オールインワンストリーム内の異なる位置に散在された多数の小さなマニフェストに再編成されることができる。図８は、本発明の実施形態にかかる複数セクションマニフェストを有する例示的なオールインワンストリームを図示する図である。図８において、オールインワンストリーム８００は、初期マニフェストセクション８０２並びにマニフェストセクション８０４及び８０６などの多数のマニフェストのセクションと、マークアップ文書８０８、画像ファイル８１０及び８１２などの多数のコンテンツ要素とを含む。最初のマニフェストセクション８０２内の全ての埋め込みオブジェクトを列挙する代わりに、最初のマニフェストセクション８０２は、マークアップ文書８０８の情報と、マニフェストに続くポインタと、マニフェストセクション８０４とを含むのみとすることができる。これは、重要なウェブページ情報を含む最初のインタレストウィンドウ、最初のマニフェスト８０２及びマークアップ文書８０８を使用して、要求者がダウンロードするのを可能とする。最初のマニフェスト８０２に含まれるポインタは、要求者が後続のマニフェストセクションを要求するのを可能とする。複数のセクションにマニフェストを編成することは、そのキャッシュ内に特定の埋め込みオブジェクトを既に有しているかどうかを判定しながら要求者がウェブページの一部をダウンロードし、それらがローカルキャッシュにある場合にはそのようなオブジェクトのダウンロードをスキップするのを可能とする。
【００５３】
（高解像度画像などの）大きなコンテンツ要素が存在する状況において、マニフェスト内に全てのコンテンツオブジェクトのコンテンツオブジェクトハッシュ値を列挙する代わりに、マニフェストは、各埋め込みオブジェクトの少数の初期コンテンツオブジェクトハッシュのみを列挙することができる。例えば、埋め込み画像は、数百のコンテンツオブジェクトにまたがることができ、これらの数百のコンテンツオブジェクトのハッシュ値を列挙する代わりに、マニフェストは、最初の少数（１０％など）のハッシュ値のみを列挙することができる。これらのいくつかのハッシュ値は、独自の名称空間のもとにおそらく近くの場所から、要求者がそのキャッシュ内に画像を既に有しているかどうかを判定するのを可能とするか又は画像のダウンロードを開始するのを可能とするための十分な情報を提供する必要がある。
【００５４】
いくつかの実施形態において、要求者は、前のダウンロード以来のコンテンツへの変更に興味があるかもしれない。そのような状況において、要求者は、インタレストメッセージに「ｍｏｄｉｆｉｅｄ  ｓｉｎｃｅ」パラメータに含めることができる。そのようなインタレストを受信すると、応答者は、オールインワンストリーム及び／又はそのマニフェストにおいて、「ｍｏｄｉｆｉｅｄ  ｓｉｎｃｅ」パラメータ後に変更された埋め込みオブジェクトのみを含む。ウェブページのダウンロード中に、これは、要求者が古い写真などの古いファイルのダウンロードをスキップするのを可能とする。変形例において、オールインワンストリームは、新たに参照されている、より古いオブジェクトを含むことができる。例えば、古い写真が長時間ウェブページマニフェストに含まれていない場合、インタレストに指定された「ｍｏｄｉｆｉｅｄ  ｓｉｎｃｅ」パラメータ以来変更されていないにもかかわらず、オールインワンストリームに含まれていてもよい。さらに、応答はまた、最も最近（又は少なくとも最近）変更されたコンテンツ要素がオールインワンストリームにおいて最初に到来するように、それらの変更時間によってオールインワンストリームにおける要素を順序付けることができる。
【００５５】
いくつかの実施形態において、オールインワンストリームは圧縮されることができる。
【００５６】
図９は、本発明の実施形態にかかるコンテンツコレクションをダウンロードするために使用可能なオールインワンストリームを構築する例示的なプロセスを図示する図である。動作中、発行者などのコンテンツプロバイダは、コンテンツコレクションについてのオールインワンマニフェストを構築する（動作９０２）。いくつかの実施形態において、マニフェストは、コレクション内のコンテンツ要素の順序付けられたリストを含む。順序付けられたリストの各エントリは、対応するコンテンツ要素のＣＣＮ名を指定するオブジェクト名フィールドと、オールインワンストリーム内のコンテンツ要素によって占有されたチャンク番号を列挙するチャンク番号フィールドと、コンテンツ要素の最初のいくつかの又は全てのチャンクのハッシュ値を列挙するチャンクハッシュフィールドとを含む。
【００５７】
コンテンツプロバイダは、さらに、標準コンテンツオブジェクトにコンテンツ要素とともに構築されたマニフェストをパッケージ化する（動作９０４）。いくつかの実施形態において、コンテンツオブジェクトは、ＣＣＮ規格に準拠している。各コンテンツオブジェクトには、ストリーム名が割り当てられており、ストリーム内の全てのコンテンツオブジェクトは、同じ名称接頭辞を有することに留意されたい。次に、コンテンツプロバイダは、ストリームの名称空間のもとに初期インタレスト要求のセットを受信し（動作９０６）、応答において、コンテンツプロバイダは、初期インタレスト要求に含まれる受信したインタレストやパラメータに基づいて、マニフェストで始まるコンテンツオブジェクトのストリームを構築する（動作９０８）。いくつかの実施形態において、ストリームを構築しながら、コンテンツプロバイダは、クライアントによるより速いレンダリングを容易とするなど、システムの特徴を最適化する方法でコンテンツ要素を順序付けることができる。さらなる実施形態において、ウェブページの場合にはＨＴＭＬファイルなど、レンダリングを開始するために必要とされるコンテンツ要素は、ストリームの先頭に配置されており、それゆえに、レンダリング時間を最適化する。いくつかの実施形態において、インタレストの要求に含まれるパラメータは、「ｍｏｄｉｆｉｅｄ  ｓｉｎｃｅ」パラメータを含むことができる。さらなる実施形態において、ストリームを構築しながら、コンテンツプロバイダは、クライアントが、より古い要素の一部を既に有していることから、転送される必要があるチャンクの数を最小化するために、ストリームの開始において最新の（最も最近変更された）コンテンツ要素を配置することができる。要求者がマニフェストを受信すると、後続のインタレストにおいて、マニフェストに含まれる情報に基づいて判定されたパラメータを含むことができることに留意されたい。例えば、要求者は、これらの要素が要求者のキャッシュ内に既にあることを示すことができるマニフェストに列挙されたハッシュに基づいて、１つ以上のコンテンツ要素をスキップすることができる。
【００５８】
コンテンツプロバイダは、要求者からインタレストを受信し続け（動作９１０）、受信されたインタレストに基づいてストリームに含まれるコンテンツ要素を判定し（動作９１２）、適切な要素を含むことによってストリームを連続的に構築する（動作９１４）。
【００５９】
図１０は、本発明の実施形態にかかるコンテンツのダウンロードのためのオールインワンストリームを可能とする例示的なシステムを図示している。オールインワンダウンロードのためのシステム１０００は、プロセッサ１０１０と、メモリ１０２０と、記憶装置１０３０とを備える。記憶装置１０３０は、典型的には、メモリ１０２０にロードされて上述した方法を実行するためにプロセッサ１０１０によって実行可能な命令を記憶する。１つの実施形態において、記憶装置１０３０内の命令は、オールインワンマニフェスト生成モジュール１０３２と、コンテンツオブジェクト生成モジュール１０３４と、オールインワンストリーム組み立てモジュール１０３６とを実装することができ、それらの全ては、様々な手段を介して互いに通信を行うことができる。
【００６０】
いくつかの実施形態において、モジュール１０３２、１０３４、１０３６は、部分的又は全体的にハードウェアで実装することができ、プロセッサ１０１０の一部とすることができる。さらに、いくつかの実施形態において、システムは、別個のプロセッサ及びメモリを含まなくてもよい。代わりに、それらの特定のタスクを実行することに加え、モジュール１０３２、１０３４、１０３６は、別個に又は同時に、汎用又は専用計算エンジンの一部とすることができる。
【００６１】
記憶装置１０３０は、プロセッサ１０１０によって実行されるプログラムを記憶する。具体的には、記憶装置１０３０は、オールインワンコンテンツダウンロードを可能とするシステム（アプリケーション）を実装するプログラム記憶する。動作中、アプリケーションプログラムは、記憶装置１０３０からメモリ１０２０にロードされ、プロセッサ１０１０によって実行することができる。結果として、システム１０００は、上述した機能を実行することができる。システム１０００は、（タッチスクリーンディスプレイとすることができる）任意のディスプレイ１０８０、キーボード１０６０、ポインティングデバイス１０７０に結合されることができ、また、ネットワーク１０８２に対して１つ以上のネットワークインターフェースを介して結合されることができる。
【００６２】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光記憶装置、又は、現在公知の若しくは後に開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００６３】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようなコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行する場合、コンピュータシステムは、データ構造及びコードとして具現化されてコンピュータ読み取り可能な記憶媒体に記憶された方法及びプロセスを実行する。
【００６４】
さらにまた、本願明細書に記載された方法及びプロセスは、ハードウェアモジュール又は装置に含めることができる。これらのモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定の時間に特定のソフトウェアモジュール若しくはコードの一部を実行する専用又は共有プロセッサ、及び／又は、現在公知の若しくは後に開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、それらは、それらの内部に含まれる方法及びプロセスを実行する。
【図１】
2016046809.tif 000003
【図２】
2016046809.tif 000004
【図３Ａ】
2016046809.tif 000005
【図３Ｂ】
2016046809.tif 000006
【図４】
2016046809.tif 000007
【図５】
2016046809.tif 000008
【図６】
2016046809.tif 000009
【図７】
2016046809.tif 000010
【図８】
2016046809.tif 000011
【図９】
2016046809.tif 000012
【図１０】
2016046809.tif 000013