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