(57)【要約】  方法が開示される。該方法は、パブリッシャノードに結び付けられ、コンテンツアイテムに結び付けられた識別子と、パブリッシャノードの第１のアンカ・ディレクトリ・ルータの第１のアンカプレフィックスとを含む、パブリッシュメッセージを、情報中心ネットワーク（ＩＣＮ）内の権威ディレクトリルータにより、取得することと、識別子の双方向コードが権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断することと、双方向コードが権威コード範囲の範囲内であることに応じて、権威ディレクトリルータに結び付けられたローカル・コード・リポジトリを、第１のアンカプレフィックスと識別子とで更新することとを含む。
2021526779.tif 000002
【特許請求の範囲】
【請求項１】
パブリッシャノードに結び付けられ、かつコンテンツアイテムに結び付けられた識別子と、前記パブリッシャノードの第１のアンカ・ディレクトリ・ルータの第１のアンカプレフィックスとを含む、パブリッシュメッセージを、情報中心ネットワーク（ＩＣＮ）内の権威ディレクトリルータにより、取得することと、
前記識別子の双方向コードが前記権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断することと、
前記双方向コードが前記権威コード範囲の範囲内であることに応じて、前記権威ディレクトリルータに結び付けられたローカル・コード・リポジトリを、前記第１のアンカプレフィックスと前記識別子とで更新することとを含む、
方法。
【請求項２】
前記双方向コードが前記権威コード範囲の範囲内であることに応じて、前記権威ディレクトリルータにより、前記識別子と前記第１のアンカプレフィックスとを含むパブリッシュ承認メッセージを生成することと、
前記パブリッシュメッセージ内の前記第１のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記第１のアンカ・ディレクトリ・ルータへ前記パブリッシュ承認メッセージを転送することとをさらに含む、
請求項１に記載の方法。
【請求項３】
前記アンカ・ディレクトリ・ルータに新たなプレフィックスが割り当てられた後に、前記コンテンツアイテムを再パブリッシュすることと、
前記権威ディレクトリルータの前記ローカル・コード・リポジトリを前記新たなプレフィックスで更新することとをさらに含む、
請求項１に記載の方法。
【請求項４】
前記権威ディレクトリによって前記パブリッシュメッセージが取得される前に、前記第１のアンカ・ディレクトリ・ルータにより、前記コンテンツアイテムに結び付けられた前記識別子を含む前記パブリッシュメッセージを取得することと、
前記双方向コードが前記第１のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断することと、
前記双方向コードが前記権威コード範囲の範囲外であると判断したことに応じて、前記パブリッシュメッセージに前記第１のアンカ・ディレクトリ・ルータの前記第１のアンカプレフィックスを挿入することと、
前記双方向コードと区間ルーティングとに基づいて、前記第１のアンカプレフィックスを含む前記パブリッシュメッセージを転送することとをさらに含み、
前記第１のアンカディレクトリが前記パブリッシュメッセージを転送した後に、前記権威ディレクトリルータが前記パブリッシュメッセージを取得する、
請求項１に記載の方法。
【請求項５】
前記パブリッシュメッセージを取得したことに応じて、前記第１のアンカ・ディレクトリ・ルータにより、パブリッシュ承認メッセージを生成することと、
前記パブリッシャノードへ前記パブリッシュ承認メッセージを送信することと、
パブリッシュメッセージに基づいて前記第１のアンカ・ディレクトリ・ルータのローカル・コード・リポジトリを更新することとをさらに含む、
請求項１に記載の方法。
【請求項６】
前記ＩＣＮ内の中間ディレクトリルータにより、前記第１のアンカプレフィックスと前記コンテンツアイテムに結び付けられた前記識別子とを含む前記パブリッシュメッセージを取得することと、
前記中間ディレクトリルータにより、前記パブリッシュメッセージから前記パブリッシングノードの識別情報を抽出することと、
前記中間ディレクトリルータのローカル・ルーティング・リポジトリを、前記パブリッシャノードの前記識別情報と前記コンテンツアイテムに結び付けられた前記識別子とで更新することと、
前記識別子の前記双方向コードが前記中間ディレクトリルータに割り当てられた権威コード範囲の範囲外であると判断することと、
前記中間ディレクトリルータにより、前記双方向コードと区間ルーティングとに基づいて、前記第１のアンカプレフィックスを含む前記パブリッシュメッセージを転送することとをさらに含み、
前記中間ディレクトリルータが前記パブリッシュメッセージを転送した後に、前記権威ディレクトリルータが前記パブリッシュメッセージを取得する、
請求項１に記載の方法。
【請求項７】
サブスクライバノードに結び付けられ、かつ前記サブスクライバノードの第２のアンカ・ディレクトリ・ルータの第２のアンカプレフィックスと、前記コンテンツアイテムに結び付けられた前記識別子とを含むルックアップメッセージを、前記ＩＣＮ内の前記権威ディレクトリルータにより、取得することと、
前記ルックアップメッセージに応じて、前記権威ディレクトリにより、前記識別子と、前記第１のアンカプレフィックスと、前記第２のアンカプレフィックスとを含むルックアップ応答メッセージを生成することと、
前記ルックアップ応答メッセージ内の前記第２のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記第２のアンカ・ディレクトリ・ルータへ前記ルックアップ応答メッセージを転送することとをさらに含み、
前記サブスクライバノードが前記ルックアップ応答メッセージに基づいて前記コンテンツアイテムのデータ要求メッセージを発行する、
請求項１に記載の方法。
【請求項８】
前記パブリッシュメッセージが、前記パブリッシャノードにとって既知である第１のランドマーク・ディレクトリ・ルータの第１のランドマークプレフィックスを含み、前記ランドマーク・ディレクトリ・ルータは前記第１のアンカ・ディレクトリ・ルータとは別個のものであり、
前記権威ディレクトリルータに結び付けられた前記ローカル・コード・リポジトリを更新することが、前記第１のランドマークプレフィックスを保管することを含み、
前記ルックアップ応答メッセージが、前記権威ディレクトリルータに結び付けられた前記ローカル・コード・リポジトリから取り出された前記第１のランドマークプレフィックスを含み、
前記データ要求メッセージが、前記第１のランドマークプレフィックスと、前記サブスクライバノードにとって既知である第２のランドマークディレクトリの第２のランドマークプレフィックスとを含み、
前記パブリッシャノードが、前記データ要求メッセージに応じて、前記コンテンツアイテムと、前記第１のランドマークプレフィックスと、前記第２のランドマークプレフィックスとを含むデータ応答メッセージを生成する、
請求項７に記載の方法。
【請求項９】
前記ＩＣＮ内の中間ディレクトリルータにより、前記ルックアップ応答メッセージを取得することと、
前記中間ディレクトリルータのローカル・コード・リポジトリを、前記ルックアップ応答メッセージからの前記識別子と、前記第１のアンカプレフィックスと、前記第１のランドマークプレフィックスとで更新することと、
前記中間ディレクトリルータにより、
プレフィックスルーティングと、
前記第１のアンカプレフィックス及び前記第１のランドマークプレフィックスからなるグループから選ばれる少なくともいずれか１つと、
を使用して、前記ルックアップ応答メッセージを転送することと、
前記中間ディレクトリルータにより、前記識別子を含むさらなるルックアップメッセージを取得することと、
前記さらなるルックアップ応答メッセージに応じて、前記中間ディレクトリルータにより、前記中間ディレクトリルータの前記ローカル・コード・リポジトリからの前記第１のアンカプレフィックスと前記第１のランドマークプレフィックスとを含むさらなる応答メッセージを生成することとをさらに含む、
請求項８に記載の方法。
【請求項１０】
第１のアンカプレフィックスを含む第１のアンカ・ディレクトリ・ルータであって、前記第１のアンカ・ディレクトリ・ルータが、
コンテンツアイテムに結び付けられた識別子を含むパブリッシュメッセージを取得し、
前記コンテンツアイテムの双方向コードが前記第１のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、
前記パブリッシュメッセージに前記第１のアンカプレフィックスを挿入し、
区間ルーティングと前記双方向コードとに基づいて前記パブリッシュメッセージを転送する、
ように構成される、前記第１のアンカ・ディレクトリ・ルータと、
第２のアンカプレフィックスを含む第２のアンカ・ディレクトリ・ルータであって、前記第２のアンカ・ディレクトリ・ルータが、
前記識別子を含むルックアップメッセージを取得し、
コンテンツアイテムの前記双方向コードが前記第２のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、
前記ルックアップメッセージに前記第２のアンカプレフィックスを挿入し、
区間ルーティングと前記双方向コードとに基づいて前記ルックアップメッセージを転送する、
ように構成される、前記第２のアンカ・ディレクトリ・ルータと、
権威ディレクトリルータであって、前記権威ディレクトリルータが、
前記パブリッシュメッセージと前記ルックアップメッセージとを取得し、
前記識別子の前記双方向コードが前記権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断し、
前記ルックアップメッセージに応じて、前記識別子と、前記パブリッシュメッセージ内の前記第１のアンカプレフィックスと、前記ルックアップメッセージ内の前記第２のアンカプレフィックスとを含むルックアップ応答メッセージを生成し、
前記ルックアップ応答メッセージ内の前記第２のアンカプレフィックスとプレフィックスルーティングとに基づいて前記ルックアップ応答メッセージを転送する、
ように構成される、前記権威ディレクトリルータとを含む、
情報中心ネットワーク（ＩＣＮ）。
【請求項１１】
前記双方向コードが空間充填曲線コードである、請求項１０に記載のＩＣＮ。
【請求項１２】
前記権威ディレクトリが、
前記双方向コードが前記権威コード範囲の範囲内であることに応じて、前記識別子と前記第１のアンカプレフィックスとを含むパブリッシュ承認メッセージを生成し、
前記パブリッシュメッセージ内の前記第１のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記第１のアンカ・ディレクトリ・ルータへ前記パブリッシュ承認メッセージを転送するようにさらに構成される、請求項１０に記載のＩＣＮ。
【請求項１３】
前記第１のアンカ・ディレクトリ・ルータが、
前記パブリッシュメッセージを取得したことに応じて、パブリッシュ承認メッセージを生成し、
前記パブリッシャノードへ前記パブリッシュ承認メッセージを送信し、
パブリッシュメッセージに基づいて前記第１のアンカ・ディレクトリ・ルータのローカル・コード・リポジトリを更新するようにさらに構成される、請求項１０に記載のＩＣＮ。
【請求項１４】
前記パブリッシュメッセージが、前記コンテンツアイテムに結び付けられたパブリッシャノードによって生成され、
前記ルックアップメッセージが、サブスクライバノードによって生成され、
前記パブリッシュメッセージが、前記パブリッシャノードにとって既知である第１のランドマーク・ディレクトリ・ルータの第１のランドマークプレフィックスを含み、前記ランドマーク・ディレクトリ・ルータが前記第１のアンカ・ディレクトリ・ルータとは別個であり、
前記ルックアップ応答メッセージが、前記第１のランドマークプレフィックスを含み、
前記サブスクライバノードが、前記ルックアップ応答メッセージに応じて、前記第１のランドマークプレフィックスと、前記サブスクライバノードにとって既知である第２のランドマークディレクトリの第２のランドマークプレフィックスとを含むデータ要求メッセージを発行し、
前記パブリッシャノードが、前記データ要求メッセージに応じて、前記コンテンツアイテムと、前記第１のランドマークプレフィックスと、前記第２のランドマークプレフィックスとを含むデータ応答メッセージを生成する、
請求項１０に記載のＩＣＮ。
【請求項１５】
中間ディレクトリルータであって、
前記データ応答メッセージを取得し、
前記データ応答メッセージから前記中間ディレクトリルータのキャッシュに前記コンテンツアイテムのコピーを保管し、
プレフィックスルーティングを使用して前記データ応答メッセージを転送し、
前記中間ディレクトリルータにより、前記中間ディレクトリルータのプレフィックスを含む、前記コンテンツアイテムのためのさらなるパブリッシュメッセージを生成する、
ように構成される、前記中間ディレクトリルータをさらに含む、請求項１４に記載のＩＣＮ。
【請求項１６】
情報中心ネットワーク（ＩＣＮ）内の第１のアンカ・ディレクトリ・ルータ（ＡＤＲ）により、第１のコンテンツアイテムに結び付けられた第１の識別子を含むパブリッシュメッセージを取得することと、
前記第１のＡＤＲにより、前記第１の識別子の第１の双方向コードが前記第１のＡＤＲに割り当てられた権威コード範囲の範囲外であると判断することと、
前記第１の双方向コードが前記第１のＡＤＲに割り当てられた前記権威コード範囲の範囲外であると判断したことに応じて、前記第１のＡＤＲにより、前記パブリッシュメッセージに前記第１のＡＤＲの第１のアンカプレフィックスを挿入することと、
前記第１の双方向コードと区間ルーティングとに基づいて、前記第１のアンカプレフィックスを含む前記パブリッシュメッセージを転送することと、
前記第１のアンカプレフィックスを含み、前記ＩＣＮ内の第１の権威ディレクトリルータによって生成される、パブリッシュ承認メッセージを取得することとを含み、
前記第１の双方向コードが、前記第１の権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であり、
前記パブリッシュ承認メッセージが、前記パブリッシュ承認メッセージ内の前記第１のアンカプレフィックスとプレフィックスルーティングとに基づいて、前記ＩＣＮの中を通行する、
方法。
【請求項１７】
前記第１の双方向コードがヒルベルト空間充填曲線コードであり、前記第１のコンテンツアイテムがビデオファイルである、請求項１６に記載の方法。
【請求項１８】
前記第１のＡＤＲにより、前記第１のアンカプレフィックスと前記第１の識別子とをローカル・コード・リポジトリに保管することと、
前記第１のＡＤＲにより、前記第１の識別子と、第２のアンカ・ディレクトリ・ルータの第２のアンカプレフィックスとを含むルックアップメッセージを取得することと、
前記第１のＡＤＲにより、前記第１の識別子に基づいて、前記ローカル・コード・リポジトリから前記第１のアンカプレフィックスを取り出すことと、
前記第１のＡＤＲにより、前記第１のアンカプレフィックスと、前記ルックアップメッセージからの前記第２のアンカプレフィックスと、前記第１の識別子とを含むルックアップ応答メッセージを生成することと、
前記第１のＡＤＲにより、前記ルックアップ応答メッセージ内の前記第２のアンカプレフィックスとプレフィックスルーティングとに基づいて前記ルックアップ応答メッセージを転送することとをさらに含む、
請求項１６に記載の方法。
【請求項１９】
ホストノードに結び付けられ、かつ第２のコンテンツアイテムに結び付けられた第２の識別子を含む、ルックアップメッセージを、前記第１のＡＤＲにより取得することと、
前記第１のＡＤＲにより、前記第２の識別子の第２の双方向コードが前記第１のＡＤＲに割り当てられた前記権威コード範囲の範囲外であると判断することと、
前記第２の双方向コードが前記第１のＡＤＲに割り当てられた前記権威コード範囲の範囲外であると判断したことに応じて、前記第１のＡＤＲにより、前記ルックアップメッセージに前記ＡＤＲの前記第１のアンカプレフィックスを挿入することと、
前記第１のＡＤＲにより、前記第２の双方向コードと区間ルーティングとに基づいて前記ルックアップメッセージを転送することと、
第２の権威ディレクトリルータによって生成されたルックアップ応答メッセージであって、
前記第１のＡＤＲの前記第１のアンカプレフィックスと、
前記第２のコンテンツアイテムに結び付けられたパブリッシャノードの第２のＡＤＲの第２のアンカプレフィックスと、
前記パブリッシャノードにとって既知である第１のランドマーク・ディレクトリ・ルータの第１のランドマークプレフィックスとを含む、前記ルックアップ応答メッセージを、前記第１のＡＤＲにより、取得することと、
前記第１のＡＤＲにより、前記ホストノードへ前記第２のアンカプレフィックスと前記第１のランドマークプレフィックスを送信することとをさらに含み、
前記第２の双方向コードが、前記第２の権威ディレクトリに割り当てられた権威コード範囲の範囲内であり、
前記ルックアップ応答メッセージが、前記ルックアップ応答メッセージ内の前記第１のアンカプレフィックスとプレフィックスルーティングとに基づいて前記ＩＣＮの中を通行する、
請求項１６に記載の方法。
【請求項２０】
前記ホストが、前記第２の識別子と、前記第２のアンカプレフィックスと、前記第１のランドマークプレフィックスと、前記ホストノードにとって既知である第２のランドマーク・ディレクトリ・ルータの第２のランドマークプレフィックスとを含むデータ要求メッセージを生成し、
前記パブリッシャノードが、前記第２のコンテンツアイテムと前記データ要求メッセージ内の前記第２のランドマークプレフィックスとを含むデータ応答メッセージを生成する、
請求項１９に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
背景技術
現代のインターネットアーキテクチャは、ホスト中心の通信モデルで設計されている。ただし、ネットワークに接続される機器の数が増え続け、データトラフィックが増大し続けているため、ホスト中心のネットワークでスケーリングコンテンツ配布、モビリティ、セキュリティ、キャッシング、及び信頼に見られる問題を軽減するためには、コンテンツを設計の中核に据えたインターネットのための新しいアーキテクチャが必要となるであろう。
【発明の概要】
【課題を解決するための手段】
【０００２】
発明の概要
概して、一態様において、本発明の１つ以上の実施形態は方法を対象としている。該方法は、パブリッシャノードに結び付けられ、コンテンツアイテムに結び付けられた識別子と、パブリッシャノードの第１のアンカ・ディレクトリ・ルータの第１のアンカプレフィックスとを含む、パブリッシュメッセージを、情報中心ネットワーク（ＩＣＮ）内の権威ディレクトリルータにより、取得することと、識別子の双方向コードが権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断することと、双方向コードが権威コード範囲の範囲内であることに応じて、権威ディレクトリルータに結び付けられたローカル・コード・リポジトリを、第１のアンカプレフィックスと識別子とで更新することとを含む。
【０００３】
概して、一態様において、本発明の１つ以上の実施形態は情報中心ネットワーク（ＩＣＮ）を対象としている。該ＩＣＮは、第１のアンカプレフィックスを含む第１のアンカ・ディレクトリ・ルータと、第２のアンカプレフィックスを含む第２のアンカ・ディレクトリ・ルータと、権威ディレクトリルータとを含む。第１のアンカ・ディレクトリ・ルータは、コンテンツアイテムに結び付けられた識別子を含むパブリッシュメッセージを取得し、コンテンツアイテムの双方向コードが第１のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、パブリッシュメッセージに第１のアンカプレフィックスを挿入し、なおかつ区間ルーティングと双方向コードとに基づいてパブリッシュメッセージを転送するように構成される。第２のアンカ・ディレクトリ・ルータは、識別子を含むルックアップメッセージを取得し、コンテンツアイテムの双方向コードが第２のアンカ・ディレクトリ・ルータに割り当てられた権威コード範囲の範囲外であると判断し、ルックアップメッセージに第２のアンカプレフィックスを挿入し、なおかつ区間ルーティングと双方向コードとに基づいてルックアップメッセージを転送するように構成される。権威ディレクトリルータは、パブリッシュメッセージとルックアップメッセージとを取得し、識別子の双方向コードが権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であると判断し、ルックアップメッセージに応じて、識別子と、パブリッシュメッセージ内の第１のアンカプレフィックスと、ルックアップメッセージ内の第２のアンカプレフィックスとを含むルックアップ応答メッセージを生成し、なおかつルックアップ応答メッセージ内の第２のアンカプレフィックスとプレフィックスルーティングとに基づいてルックアップ応答メッセージを転送するように構成される。
【０００４】
概して、一態様において、本発明の１つ以上の実施形態は方法を対象としている。該方法は、情報中心ネットワーク（ＩＣＮ）内の第１のアンカ・ディレクトリ・ルータ（ＡＤＲ）により、第１のコンテンツアイテムに結び付けられた第１の識別子を含むパブリッシュメッセージを取得することと、第１のＡＤＲにより、第１の識別子の第１の双方向コードが第１のＡＤＲに割り当てられた権威コード範囲の範囲外であると判断することと、第１の双方向コードが第１のＡＤＲに割り当てられた権威コード範囲の範囲外であると判断したことに応じて、第１のＡＤＲにより、パブリッシュメッセージに第１のＡＤＲの第１のアンカプレフィックスを挿入することと、第１の双方向コードと区間ルーティングとに基づいて、第１のアンカプレフィックスを含むパブリッシュメッセージを転送することと、第１のアンカプレフィックスを含み、ＩＣＮ内の第１の権威ディレクトリルータによって生成される、パブリッシュ承認メッセージを取得することとを含み、第１の双方向コードは、第１の権威ディレクトリルータに割り当てられた権威コード範囲の範囲内であり、パブリッシュ承認メッセージは、パブリッシュ承認メッセージ内の第１のアンカプレフィックスとプレフィックスルーティングとに基づいてＩＣＮの中を通行する。
【０００５】
実施形態のその他の態様は、以降の説明と添付の請求項から明らかになるであろう。
【図面の簡単な説明】
【０００６】
【図１Ａ】本発明の１つ以上の実施形態による１つ以上の情報中心ネットワーク（ＩＣＮ）を示す。
【図１Ｂ】本発明の１つ以上の実施形態による１つ以上の情報中心ネットワーク（ＩＣＮ）を示す。
【図１Ｃ】本発明の１つ以上の実施形態による１つ以上の情報中心ネットワーク（ＩＣＮ）を示す。
【図２Ａ】本発明の１つ以上の実施形態によるＩＣＮの中でやり取りされるメッセージを示す。
【図２Ｂ】本発明の１つ以上の実施形態によるＩＣＮの中でやり取りされるメッセージを示す。
【図３Ａ】本発明の１つ以上の実施形態によるＩＣＮの中でやり取りされるメッセージを示す。
【図３Ｂ】本発明の１つ以上の実施形態によるＩＣＮの中でやり取りされるメッセージを示す。
【図４Ａ】本発明の１つ以上の実施形態によるＩＣＮの中でやり取りされるメッセージを示す。
【図４Ｂ】本発明の１つ以上の実施形態によるＩＣＮの中でやり取りされるメッセージを示す。
【図５Ａ】本発明の１つ以上の実施形態によるＩＣＮの中のルータ及びリポジトリを示す。
【図５Ｂ】本発明の１つ以上の実施形態によるＩＣＮの中のルータ及びリポジトリを示す。
【図５Ｃ】本発明の１つ以上の実施形態によるＩＣＮの中のルータ及びリポジトリを示す。
【図６】本発明の１つ以上の実施形態によるフローチャートを示す。
【図７】本発明の１つ以上の実施形態によるフローチャートを示す。
【図８】本発明の１つ以上の実施形態による一例を示す。
【図９】本発明の１つ以上の実施形態によるコンピュータシステムを示す。
【発明を実施するための形態】
【０００７】
発明を実施するための形態
開示される技術を十分に理解するため、実施形態の以降の詳細な説明には数多くの具体的詳細が記載されている。ただし、これらの具体的詳細がなくとも開示されている技術を実践できることは当業者にとって明白となるであろう。また、説明を不必要に込み入ったものにするのを避けるため、周知の事柄は詳しく説明されない。
【０００８】
本願の全体を通じて、要素（すなわち、本願における何らかの名詞）の形容詞として序数（例えば、第１、第２、第３、その他）が使われている場合がある。「前」、「後」、「単一」などの用語を用いて明確に表明されている場合を除き、序数の使用はそれらの要素の特定の順序を示唆するものでも作るものでもなく、要素をただ１つの要素に限定するものでもない。むしろ、序数の使用は要素を区別するものである。一例として、第１の要素は第２の要素と異なり、第１の要素は要素の順序の中で第２の要素に後続（又は先行）することがある。
【０００９】
本発明の１つ以上の実施形態は、複数のディレクトリルータを含む情報中心のネットワーク（ＩＣＮ）を対象とする。ＩＣＮを通じてアクセス可能な各コンテンツアイテム（例えば、画像ファイル、動画ファイル、音声ファイル、実行ファイル、ｐｄｆ文書、スプレッドシート、ウェブページ、その他）には、双方向コード（例えば、空間充填曲線コード）が結び付けられる。さらに、それぞれのディレクトリルータにはプレフィックスを付けることができ、それぞれのディレクトリルータには双方向コードの１つ以上の区間（すなわち、１つ以上の権威コード範囲）を割り当てることができる。メッセージは、プレフィックスルーティング及び／又は区間ルーティングに基づいてＩＣＮの中を通行する。プレフィックスルーティング及び／又は区間ルーティングの使用は、ホスト中心のネットワークを悩ます大規模なルーティングテーブルを回避する。プレフィックスルーティング及び／又は区間ルーティングの使用は、ペンディング・インタレスト・テーブル（ＰＩＴ）と既存のＩＣＮにしばしば見られるフラッディング操作の必要性も回避する。これらは、少なくともコンピュータネットワークとデータ管理の技術分野に対する技術的な改善である。
【００１０】
図１Ａは、本発明の１つ以上の実施形態によるシステム（１００）を示している。図１Ａに示されているように、システム（１００）は、１つ以上のパブリッシャノード（すなわち、パブリッシャノード１（１０５Ａ）、パブリッシャノード２（１０５Ｂ）、パブリッシャノードＲ（１０５Ｒ））と１つ以上のサブスクライバノード（すなわち、サブスクライバノード１（１８５Ａ）、サブスクライバノード２（１８５Ｂ）、及びサブスクライバノードＮ（１８５Ｎ））とを含む複数のコンポーネントを有している。それぞれのパブリッシャノード（１０５Ａ、１０５Ｂ、１０５Ｒ）とそれぞれのサブスクライバノード（１８５Ａ、１８５Ｂ、１８５Ｎ）は、計算機器（例えば、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、サーバ、スマートフォン、メインフレーム、キオスク、その他）に相当してよい。さらに、パブリッシャノード（１０５Ａ、１０５Ｂ、１０５Ｒ）の各々とサブスクライバノード（１８５Ａ、１８５Ｂ、１８５Ｎ）の各々は、ホストと呼ばれることもある。さらに、それぞれのパブリッシャノード（１０５Ａ、１０５Ｂ、１０５Ｒ）とそれぞれのサブスクライバノード（１８５Ａ、１８５Ｂ、１８５Ｎ）は、一意な識別情報（例えば、一意な名前、一意なシリアル番号、その他）を有してよい。
【００１１】
１つ以上の実施形態において、それぞれのパブリッシャノード（１０５Ａ、１０５Ｂ、１０５Ｒ）は１つ以上のコンテンツアイテム（例えば、画像ファイル、動画ファイル、音声ファイル、実行ファイル、ｐｄｆ文書、スプレッドシート、ウェブページ、その他）をパブリッシュする（例えば、利用可能にする）。パブリッシャノードによってパブリッシュされるコンテンツアイテムの数とタイプは、時間の経過にともない変わることがある。１つ以上の実施形態において、それぞれのサブスクライバノード（１０８Ａ、１８５Ｂ、１８５Ｒ）は、コンテンツアイテムのいずれか１つ以上へのアクセスを求める。換言すると、パブリッシャノード（１０５Ａ、１０５Ｂ、１０５Ｒ）は実質的にはコンテンツアイテムのソースであり、サブスクライバノード（１８５Ａ、１８５Ｂ、１８５Ｎ）は実質的にはコンテンツアイテムのコンシューマである。
【００１２】
図１Ａを引き続き参照し、パブリッシャノード（１０５Ａ、１０５Ｂ、１０５Ｒ）とサブスクライバノード（１８５Ａ、１８５Ｂ、１８５Ｎ）はＩＣＮ（１２５）によって接続されている。ＩＣＮ（１２５）は、有線及び／又は無線部分を含む任意の規模であってよい。ＩＣＮ（１２５）へ接続されるパブリッシャノードとサブスクライバノードの数は、時間の経過にともない変わることがある。
【００１３】
図１Ｂは、本発明の１つ以上の実施形態によるＩＣＮ（１２５）を示している。図２Ａに示されているように、ＩＣＮ（１２５）は複数のディレクトリルータ（すなわち、ディレクトリルータＣ（１１０Ｃ）、ディレクトリルータＧ（１１０Ｇ）、ディレクトリルータＬ（１１０Ｌ）、ディレクトリルータＱ（１１０Ｑ）、ディレクトリルータＮ（１１０Ｎ））を含んでいる。それぞれのディレクトリルータは別のディレクトリルータへ直接接続された状態で示されているが、１つ以上の実施形態では、ある１つのディレクトリルータから別のディレクトリルータへ至る経路の一部に１つ以上の中間（非ディレクトリ）ルータがある（後述）。
【００１４】
本発明の１つ以上の実施形態において、ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）は階層（例えば、ツリー）を形成する。具体的に述べると、ディレクトリルータＣ（１１０Ｃ）はルートであり、ディレクトリルータＬ（１１０Ｌ）とディレクトリルータＧ（１１０Ｇ）はいずれもディレクトリルータＣ（１１０Ｃ）の子であり、ディレクトリルータＱ（１１０Ｑ）とディレクトリルータＮ（１１０Ｎ）はいずれもディレクトリルータＬ（１１０Ｌ）の子である。階層（例えば、ツリー）はレベルをいくつでも有してよく、１つのレベルの中にはディレクトリルータがいくつあってもよい。
【００１５】
１つ以上の実施形態において、ＩＣＮ（１２５）内の各ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）には一意なプレフィックスが付く。ディレクトリルータのプレフィックスは、その親ディレクトリルータのプレフィックスと、これに加えて当該ディレクトリルータをその兄弟から区別するための少なくとも１つの追加の数字とを、含む。例えば、ディレクトリルータＣ（１１０Ｃ）はディレクトリルータＬ（１１０Ｌ）とディレクトリルータＧ（１１０Ｇ）の両方の親である。ディレクトリルータＣ（１１０Ｃ）のプレフィックスは「０」である。ディレクトリルータＧ（１１０Ｇ）のプレフィックスは「００」であり、ディレクトリルータＬ（１１０Ｌ）のプレフィックスは「０１」である。「００」と「０１」における最初の「０」は、親ディレクトリルータＣ（１１０Ｃ）のプレフィックスである。
【００１６】
別の一例として、ディレクトリルータＬ（１１０Ｌ）はディレクトリルータＱ（１１０Ｑ）とディレクトリルータＮ（１１０Ｎ）の両方の親である。ディレクトリルータＬ（１１０Ｌ）のプレフィックスは「０１」であり、ディレクトリルータＱ（１１０Ｑ）のプレフィックスは「０１０」であり、ディレクトリルータＮ（１１０Ｎ）のプレフィックスは「０１１」である。「０１０」と「０１１」における最初の「０１」は、ディレクトリルータＬ（１１０Ｌ）のプレフィックスである。
【００１７】
ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）は、その親ディレクトリルータに割り当てられるプレフィックスと、その子ディレクトリルータのいずれか１つ以上に割り当てられるプレフィックスを認識する。ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）は、ＩＣＮ（１２６）内の他のいずれかのディレクトリルータ（すなわち、その親又は子以外のディレクトリルータ）に割り当てられるプレフィックスも認識できる。１つ以上の実施形態において、それぞれのディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）にプレフィックスが付けられる場合は、プレフィックスルーティングを利用してディレクトリルータ及び／又はホスト間でメッセージをやり取りすることができる。
【００１８】
１つ以上の実施形態において、プレフィックスルーティングでは、メッセージを所持しているディレクトリルータ（「所持ディレクトリルータ」）が、メッセージの中に明記された送信先ディレクトリルータのプレフィックス（「送信先プレフィックス」）を、所持ディレクトリルータにとって既知であるディレクトリルータのプレフィックスと比較する。所持ディレクトリルータは、送信先プレフィックスに最もよく一致するプレフィックスを有する既知ディレクトリルータへメッセージを送信できる。１つ以上の実施形態において、最もよく一致するプレフィックスとは、メッセージ内の送信先プレフィックスとの重複が最も多いプレフィックスである。所持ディレクトリルータは、送信先プレフィックスと所持ディレクトリルータにとって既知であるプレフィックスとの間に重複がない場合に、自身の親ディレクトリルータへメッセージを送信できる。
【００１９】
本発明の１つ以上の実施形態において、ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）のいずれか１つ以上は権威コード範囲を維持する。それぞれのコード範囲は実数（例えば、整数）からなる区間であり、コード範囲間に重複はない。ディレクトリルータには権威コード範囲を割り当てることができる。さらに、ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）は、自身のコード範囲の一部又は全部を１つ以上の子ディレクトリルータに割り当てる（例えば、委譲する）ことができる。
【００２０】
例えば、ディレクトリルータＣ（１１０Ｃ）にはコード範囲［０，２５５］を割り当てることができる。その後、ディレクトリルータＣ（１１０Ｃ）は子ディレクトリルータＬ（１１０Ｌ）にコード範囲［０，１５０］を割り当て、子ディレクトリルータＧ（１１０Ｇ）にコード範囲［２０１−２５５］を割り当て、コード範囲［１５１，２００］は自身のために保持することができる。ディレクトリルータＬ（１１０Ｌ）は子ディレクトリルータＮ（１１０Ｎ）にコード範囲［０−５０］を割り当て、子ディレクトリルータＱ（１１０Ｑ）にコード範囲［５１−９９］を割り当て、コード範囲［１００−１５０］は自身のために保持することができる。割り当てられたコード範囲はいずれも重複していない。
【００２１】
ＩＣＮ（１２５）の確立中に、それぞれのディレクトリルータは最初に、各自が親ディレクトリルータであると仮定し、プレフィックス「０」を有する。ただし、それぞれのディレクトリルータが他のディレクトリルータを検出するにつれて、親・子階層が形成され始める。例えば、ディレクトリルータｘ及びｙの場合に、辞書学的に｜ｘの識別情報｜＜｜ｙの識別情報｜であるなら、ｘはｙの親である。
【００２２】
上述したように、それぞれのパブリッシャノード（１０５Ａ、１０５Ｂ、１０５Ｒ）は、１つ以上のサブスクライバノード（１８５Ａ、１８５Ｂ、１８５Ｃ）によって消費される１つ以上のコンテンツアイテムをパブリッシュする。それぞれのコンテンツアイテムには識別子が結び付けられる。この識別子はコンテンツアイテムの名前であってよい（例えば、ｄｏｇ．ｊｐｇ）。加えて、又は代わりに、識別子はＵＲＬであってよく、あるいはコンテンツアイテムのディレクトリ情報を含んでよい（例えば、ｗｅｂｓｉｔｅ．ｃｏｍ／ｄｉｒｅｃｔｏｒｙ／ｓｕｂ−ｄｉｒｅｃｔｏｒｙ／ｎｅｗＤｏｃｕｍｅｎｔ．ｐｄｆ）。
【００２３】
本発明の１つ以上の実施形態において、ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）のいずれか１つ以上は、コンテンツアイテムの識別子から双方向コードを生成するように構成される。換言すると、ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）のいずれか１つ以上は機能を実行し、この機能への入力はコンテンツアイテムの識別子であり、この機能の出力は双方向コードである。双方向コードは一次元（１Ｄ）数値であってよい。それぞれの双方向コードは、割り当てられたコード範囲の、１つの、なおかつただ１つの、コード範囲の範囲内に入る。２つの識別子が似ている場合は（例えば、ファイル名が似ている２つのコンテンツアイテム）、対応する双方向コードの間隔が短距離になる。双方向コードは空間充填曲線コード（例えば、ヒルベルト空間充填曲線コード）であってよい。双方向コードを計算するために使用される機能は、随時変更されてよい。
【００２４】
１つ以上の実施形態において、双方向コードと割り当てられた権威コード範囲は、ＩＣＮ（１２５）の中で区間ルーティングを可能にする。具体的に述べると、あるメッセージに双方向コードが結び付けられている場合、そして当該メッセージを所持するディレクトリルータが当該双方向コードを含む権威コード範囲を子ディレクトリルータに割り当てた場合は、当該ディレクトリルータは当該子ディレクトリルータへ当該メッセージを転送できる。そうではなく、あるメッセージに双方向コードが結び付けられている場合、そして当該メッセージを所持するディレクトリルータが当該双方向コードを含む権威コード範囲を子ディレクトリルータに割り当てておらず、また当該双方向コードを含む権威コード範囲を維持していない場合は、当該ディレクトリルータはその親ディレクトリルータへ当該メッセージを転送できる。このプロセスは、当該メッセージを所持する当該ディレクトリルータがまた、当該双方向コードを含む権威コード範囲を維持するディレクトリルータになるまで繰り返すことができる。１つ以上の実施形態において、ある特定のときに、当該双方向コードは、１つの、なおかつただ１つの、コード範囲の範囲内に入る（すなわち、当該双方向コードは１つのコード範囲を除く全てのコード範囲から外れる）。
【００２５】
１つ以上の実施形態において、ＩＣＮ（１２５）が確立される過程では、各ディレクトリルータは、各自が双方向コード空間全体の権威ディレクトリルータであると仮定する。ただし、ひとたびディレクトリルータの階層が形成されると、各ディレクトリルータは、親ディレクトリルータによって各自に割り当てられたコード空間部分だけの権威ディレクトリルータになる。
【００２６】
図１Ｃは、本発明の１つ以上の実施形態によるＩＣＮ（１２６）を示している。ＩＣＮ（１２６）は、図１Ａ及び図１Ｂを参照して上述したＩＣＮ（１２５）に似ている。図１Ｃに示されているように、ＩＣＮ（１２６）は、ある１つのディレクトリルータを別のディレクトリルータに結ぶ経路沿いに１つ以上の中間ルータ（すなわち、中間ルータＡ（１２０Ａ）、中間ルータＢ（１２０Ｂ）、中間ルータＤ（１２０Ｄ）、中間ルータＥ（２２０Ｅ）、中間ルータＦ（１２０Ｆ）、中間ルータＨ（１２０Ｈ）、中間ルータＩ（１２０Ｉ）、中間ルータＪ（１２０Ｊ）、中間ルータＫ（１２０Ｋ）、中間ルータＭ（１２０Ｍ））を含んでいる。さらに、ホスト（例えば、パブリッシャノード１（１０５Ａ））をディレクトリルータに結ぶ経路沿いにも１つ以上の中間ルータがあってよい。
【００２７】
１つ以上の実施形態において、ホスト（例えば、パブリッシャノード１（１０５Ａ）、サブスクライバノード１（１８５Ａ））は自身の存在をディレクトリルータのいずれか１つに登録する。登録後に、そのディレクトリルータはホストのアンカ・ディレクトリ・ルータになる。１つ以上の実施形態において、ディレクトリルータがホストのアンカ・ディレクトリ・ルータになるには、ホストから限界ホップ数（例えば、２ホップ）以内にディレクトリルータがなければならない。例えば、図１Ｃで、ディレクトリルータＮ（１１０Ｎ）はパブリッシャノード１（１０５Ａ）のアンカ・ディレクトリ・ルータであり、ディレクトリルータＣ（１１０Ｃ）はサブスクライバノード１（１８５Ａ）のアンカ・ディレクトリ・ルータである。さらに、アンカ・ディレクトリ・ルータのプレフィックスはアンカプレフィックスと呼ばれることがある。
【００２８】
本発明の１つ以上の実施形態において、ホストにとって既知である近傍のディレクトリルータはランドマーク・ディレクトリ・ルータと呼ばれる。例えば、図１Ｃで、ディレクトリルータＬ（１１０Ｌ）はパブリッシャノード１（１０５Ａ）のランドマーク・ディレクトリ・ルータである。１つ以上の実施形態において、ホストのアンカ・ディレクトリ・ルータも当該ホストのランドマーク・ディレクトリ・ルータとみなされる。ランドマーク・ディレクトリ・ルータのプレフィックスはランドマークプレフィックスと呼ばれることがある。
【００２９】
上述したように、それぞれのコンテンツアイテムには識別子が結び付けられ、それぞれのディレクトリルータは識別子から双方向コードを生成するように構成される。同じく上述したように、ディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｑ、１１０Ｎ）のいずれか１つ以上は重複しないコード範囲を維持する。コンテンツアイテムの双方向コードがディレクトリルータによって維持されているコード範囲の範囲内である場合は、当該ディレクトリルータが当該双方向コードの権威ディレクトリルータと呼ばれることがある。権威ディレクトリルータはアンカ・ディレクトリ・ルータとは異なる場合があり、ランドマーク・ディレクトリ・ルータと異なる場合もある。例えば、図１Ｃで、ディレクトリルータＮ（１１０Ｎ）はパブリッシャノード１（１０５Ａ）のアンカ・ディレクトリ・ルータであり、ディレクトリルータＬ（１１０Ｌ）はパブリッシャノード１（１０５Ａ）の一ランドマーク・ディレクトリ・ルータであり、ディレクトリルータＧ（１１０Ｇ）はパブリッシャノード１（１０５Ａ）によってパブリッシュされるコンテンツアイテムの権威ディレクトリルータになる可能性がある（すなわち、当該コンテンツアイテムの双方向コードがディレクトリルータＧ（１１０Ｇ）によって維持されているコード範囲の範囲内に入る）。
【００３０】
本発明の１つ以上の実施形態においては、単一のディレクトリルータが、コード範囲の権威ディレクトリルータとして、１つ以上のホストのアンカ・ディレクトリ・ルータとして、及び１つ以上のホストのランドマーク・ディレクトリ・ルータとして、同時に働くこともある。ＩＣＮ（１２６）を通行するメッセージは、複数のディレクトリルータを通過することがある。通行経路沿いのこれらのディレクトリルータは中間ディレクトリルータと呼ばれることがある。
【００３１】
１つ以上の実施形態において、それぞれのディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｎ、１１０Ｑ）とそれぞれの中間ルータ（１２０Ａ、１２０Ｂ、１２０Ｄ、１２０Ｅ、１２０Ｆ、１２０Ｈ、１２０Ｉ、１２０Ｊ、１２０Ｋ、１２０Ｍ）は、１つ以上のインターフェイスを含む。インターフェイスとは、隣接するルータ又はホストへ至る直接的な接続又は経路である。例えば、ディレクトリルートＬ（１１０Ｌ）は３つのインターフェイス、すなわちＩ１、Ｉ２、Ｉ３を有する。Ｉ１はディレクトリルータＬ（１１０Ｌ）を中間ルータＦ（１２０Ｆ）に接続する。Ｉ２はディレクトリルータＬ（１１０Ｌ）を中間ルータＪ（１２０Ｊ）に接続する。Ｉ３はディレクトリルータＬ（１１０Ｌ）をディレクトリルータＣ（１１０Ｃ）に接続する。
【００３２】
図２Ａは、本発明の１つ以上の実施形態によるパブリッシュメッセージ（２１０）を示している。パブリッシュメッセージ（２１０）は、パブリッシャノードがコンテンツアイテムをパブリッシュする準備ができたときに当該パブリッシャノードによって生成されてよい。パブリッシュメッセージ（２１０）は、コンテンツアイテムを一時的にキャッシュしている別のディレクトリルータによって生成されてもよい（後述）。図２Ａに示されているように、パブリッシュメッセージは、コンテンツ識別子（２１２）と、パブリッシャノード識別情報（２１４）（例えば、パブリッシャノードに与えられた名前、パブリッシャノードのシリアル番号、その他）と、パブリッシャ・アンカ・プレフィックス（２１６）（すなわち、パブリッシャノードのアンカ・ディレクトリ・ルータのプレフィックス）と、１つ以上のランドマークプレフィックス（２１８）（すなわち、パブリッシュメッセージ（２１０）が生成されるときにパブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータがある場合の当該ランドマーク・ディレクトリ・ルータのプレフィックス）とを含む、複数のフィールドを含んでよい。パブリッシュメッセージ（２１０）は、リプレーアタックを防ぐためのランダム疑似数（すなわち、ノンス）や後続の更新メッセージを追跡するための連続番号をはじめとする、さらなるデータ（図示せず）を含んでもよい。パブリッシュメッセージ（２１０）は区間ルーティングによってＩＣＮ（１２６）を横断できる。１つ以上の実施形態において、パブリッシュメッセージ（２１０）の送信先は、コンテンツ識別子（２１２）の双方向コードを含むコード範囲を維持する権威ディレクトリルータである（後述）。
【００３３】
図２Ｂは、本発明の１つ以上の実施形態によるパブリッシュ承認（ＡＣＫ）メッセージ（２２０）を示している。パブリッシュ承認メッセージ（２２０）は、パブリッシュメッセージ（２１０）に応じて権威ディレクトリルータによって生成されてよい。パブリッシュＡＣＫメッセージ（２２０）は、パブリッシュメッセージ（２１０）からのコンテンツ識別子（２２０）とパブリッシャ・アンカ・プレフィックス（２１６）とを含む、複数のフィールドを有する。パブリッシュＡＣＫメッセージ（２２０）は、ノンスや連続番号に関係するさらなるデータを含んでもよい（図示せず）。パブリッシュＡＣＫメッセージ（２２０）の送信先は、パブリッシャノードのアンカディレクトリである。したがって、パブリッシュＡＣＫメッセージ（２２０）は、プレフィックスルーティングと、リンク・コスト・リポジトリ（後述）と、パブリッシャ・アンカ・プレフィックス（２１６）とを使用してＩＣＮ（１２６）の中を伝送されてよい。
【００３４】
図３Ａは、本発明の１つ以上の実施形態によるルックアップメッセージ（３１０）を示している。図３Ａに示されているように、ルックアップメッセージ（３１０）は、コンテンツアイテムを求めているサブスクライバノードによって生成されてよい。図３Ａに示されているように、ルックアップメッセージ（３１０）は、要求されているコンテンツアイテムの識別子（３１２）と、サブスクライバ・アンカ・プレフィックス（３１６）（すなわち、当該サブスクライバノードのアンカ・ディレクトリ・ルータのプレフィックス）と、当該サブスクライバノードの識別情報（３９９）とを含む。ルックアップメッセージ（３１０）は、ノンスや連続番号に関係するさらなるデータ（図示せず）を含んでもよい。ルックアップメッセージ（３１０）は区間ルーティングによってＩＣＮ（１２６）を横断でき、ルックアップメッセージ（３１０）の送信先は、コンテンツ識別子（３１２）の双方向コードを含むコード範囲を維持する権威ディレクトリルータであってよい（後述）。
【００３５】
図３Ｂは、本発明の１つ以上の実施形態によるルックアップ応答メッセージ（３２０）を示している。ルックアップ応答メッセージ（３２０）は、ルックアップメッセージ（３１０）に応じて権威ディレクトリルータ（又は別のディレクトリルータ）によって生成されてよい。ルックアップ応答メッセージ（３２０）は、コンテンツ識別子（３１２）と、サブスクライバ・アンカ・プレフィックス（３１６）と、サブスクライバノード識別情報（３９９）とを含む、ルックアップメッセージ（３１０）からの複数のデータ項目を有する。ルックアップ応答メッセージ（３２０）はまた、要求されているコンテンツアイテムをパブリッシュしたパブリッシャノードの識別情報（３２５）と、パブリッシャ・アンカ・プレフィックス（３２７）（すなわち、パブリッシャノードのアンカ・ディレクトリ・ルータのプレフィックス）と、パブリッシャ・ランドマーク・プレフィックス（３２９）（すなわち、パブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス）とを含む。パブリッシャノード識別情報（３２５）と、パブリッシャ・アンカ・プレフィックス（３２７）と、パブリッシャ・ランドマーク・プレフィックス（３２９）とを含むデータ構造（例えば、ｎタプル）は、コンテンツ・アイテム・プロファイル（３７７）と呼ばれることがある。
【００３６】
１つ以上の実施形態において、要求されているコンテンツアイテムは複数のパブリッシャノードによってパブリッシュされることがある。そのような状況では、ルックアップ応答メッセージ（３２０）にコンテンツ・アイテム・プロファイル（３７７）の複数のインスタンスがあってよく、それぞれのインスタンスは複数のパブリッシャノードのいずれか１つに対応する。
【００３７】
１つ以上の実施形態において、ルックアップ応答メッセージ（３２０）は、ノンスと連続番号とを含むさらなるデータ（図示せず）を含む。ルックアップ応答メッセージ（３２０）の最終的な送信先は、ルックアップメッセージ（３１０）を生成したサブスクライバノードであってよい。したがって、ルックアップ応答メッセージ（３２０）は、プレフィックスルーティングと、リンク・コスト・リポジトリ（後述）と、ルックアップ応答メッセージ（３２０）内のサブスクライバ・アンカ・プレフィックス（３１６）とを使用して、ＩＣＮ（１２６）を通ってサブスクライバ・アンカ・ディレクトリへ伝送されてよい。その後、サブスクライバ・アンカ・ディレクトリは、ルックアップ応答メッセージ（３２０）内のサブスクライバノード識別情報（３９９）に基づいてサブスクライバノードへルックアップ応答メッセージ（３２０）（又はそのデータの少なくとも一部）を伝送してよい。加えて、又は代わりに、サブスクライバノードに近いルータが、サブスクライバノードのアンカ・ディレクトリ・ルータを迂回してサブスクライバノードへルックアップ応答メッセージ（３２０）をリダイレクトしてもよい。
【００３８】
図４Ａは、本発明の１つ以上の実施形態によるデータ要求メッセージ（４１０）を示している。データ要求メッセージ（４１０）は、ルックアップ応答メッセージ（３２０）内のデータに基づいてサブスクライバノードによって生成されてよい。図４Ａに示されているように、データ要求メッセージ（４１０）は、コンテンツアイテムの識別子（４１１）と、要求されているコンテンツアイテムをパブリッシュしたパブリッシャノードの識別情報（４１３）と、パブリッシャ・ランドマーク・プレフィックス（４１５）（すなわち、パブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス）と、パブリッシャ・アンカ・プレフィックス（４９８）（すなわち、パブリッシャノードのアンカ・ディレクトリ・ルータのプレフィックス）と、データ要求メッセージ（４１０）を生成しているサブスクライバノードの識別情報（４１７）と、サブスクライバ・ランドマーク・プレフィックス（４１９）（すなわち、データ要求メッセージ（４１０）が生成されたときにサブスクライバノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス）と、サブスクライバ・アンカ・プレフィックス（４９７）（すなわち、サブスクライバノードのアンカ・ディレクトリ・ルータのプレフィックス）とを含む。１つ以上の実施形態において、データ要求メッセージ（４１０）は、ノンスと連続番号とを含むさらなるデータ（図示せず）を含む。
【００３９】
データ要求メッセージ（４１０）の意図された送信先は、コンテンツアイテムのパブリッシャノードのいずれか１つである。したがって、データ要求メッセージ（４２０）は、プレフィックスルーティングと、リンク・コスト・リポジトリ（後述）と、データ要求メッセージ（４１０）内のパブリッシャ・アンカ・プレフィックス（４９８）又はパブリッシャ・ランドマーク・プレフィックス（４１５）のいずれか１つとを使用して、ＩＣＮ（１２６）を通ってパブリッシャ・アンカ・ディレクトリ・ルータかパブリッシャ・ランドマーク・ディレクトリ・ルータのいずれか１つへ伝送されてよい。サブスクライバノードは、最も適切なすぐ近くのルータへデータ要求メッセージを転送でき、この最も適切なすぐ近くのルータは、パブリッシャ・アンカ・プレフィックス（４９８）又はパブリッシャ・ランドマーク・プレフィックス（４１５）のいずれか１つ以上の方向にあるサブスクライバノードのアンカディレクトリであってよく、又は当該アンカディレクトリでなくてもよい。データ要求メッセージ（４１０）を最終的に受信したパブリッシャ・アンカ・ディレクトリ・ルータ（又はランドマーク・ディレクトリ・ルータ）はその後、パブリッシャノード識別情報（４１３）に基づいてパブリッシャノードへデータ要求メッセージ（４１０）（又はそのデータの少なくとも一部）を伝送できる。加えて、又は代わりに、パブリッシャノードに近いルータが、パブリッシャ・アンカ・ディレクトリ・ルータ及び／又はパブリッシャ・ランドマーク・ディレクトリ・ルータを迂回してパブリッシャノードへデータ要求メッセージ（４１０）をリダイレクトしてもよい。
【００４０】
図４Ｂは、本発明の１つ以上の実施形態によるデータ応答メッセージ（４５０）を示している。データ応答メッセージ（４５０）は、データ要求メッセージ（４１０）内のデータに基づいてパブリッシャノードによって生成されてよい。図４Ｂに示されているように、データ応答メッセージ（４５０）はデータ要求メッセージ（４１０）からのデータを数多く含んでいる。ただし、データ応答メッセージ（４５０）はコンテンツアイテム（４９９）自体をも含んでいる。
【００４１】
データ応答メッセージ（４５０）の意図された送信先は、コンテンツアイテム（４９９）を要求したサブスクライバノードである。したがって、データ応答メッセージ（４５０）は、プレフィックスルーティングと、リンク・コスト・リポジトリ（後述）と、データ応答メッセージ（４５０）内のサブスクライバ・アンカ・プレフィックス（４９７）又はサブスクライバ・ランドマーク・プレフィックス（４１９）のいずれか１つとを使用して、ＩＣＮ（１２６）を通ってサブスクライバ・アンカ・ディレクトリ・ルータかサブスクライバ・ランドマーク・ディレクトリ・ルータのいずれか１つへ伝送されてよい。パブリッシャノードは、最も適切なすぐ近くのルータへデータ応答メッセージを転送でき、この最も適切なすぐ近くのルータは、サブスクライバ・アンカ・プレフィックス（４９７）又はサブスクライバ・ランドマーク・プレフィックス（４１９）のいずれか１つ以上の方向にあるパブリッシャノードのアンカディレクトリであってよく、又は当該アンカディレクトリでなくてもよい。データ応答メッセージ（４５０）を最終的に受信したサブスクライバ・アンカ・ディレクトリ・ルータ（又はサブスクライバ・ランドマーク・ディレクトリ・ルータ）はその後、サブスクライバノード識別情報（４１７）に基づいてサブスクライバノードへデータ応答メッセージ（４５０）（又はそのデータの少なくとも一部）を伝送できる。加えて、又は代わりに、サブスクライバノードに近いルータが、サブスクライバ・アンカ・ディレクトリ・ルータ及び／又はサブスクライバ・ランドマーク・ディレクトリ・ルータを迂回してパブリッシャノードへデータ応答メッセージ（４５０）をリダイレクトしてもよい。
【００４２】
大規模な伝送情報ベーステーブルとペンディング・インタレスト・テーブルに依存する他のＩＣＮネットワークと違って、データ要求メッセージ（４１０）とデータ応答メッセージ（４５０）は、各ホップでの拡張可能でロバストで効率的なルーティングに役立つランドマーク・ディレクトリ・プレフィックス（４１５、４１９）（アンカ・ディレクトリ・プレフィックスを含む）を含む。換言すると、ＩＣＮ（１２６）は転送情報ベーステーブルとペンディング・インタレスト・テーブルを必要としない。
【００４３】
図５Ａは、本発明の１つ以上の実施形態によるディレクトリルータ（５１０）を示している。ディレクトリルータ（５１０）は、図１Ｂを参照して上述したディレクトリルータ（１１０Ｃ、１１０Ｇ、１１０Ｌ、１１０Ｎ、１１０Ｑ）のいずれかに相当してよい。図５Ａに示されているように、ディレクトリルータ（５１０）は複数のリポジトリを有する。これらのリポジトリは、何らかのタイプのデータ構造（例えば、テーブル、リンクされたリスト、データベース、その他）を使用して実装されてよい。
【００４４】
１つ以上の実施形態において、リンク・コスト・リポジトリ（５１１）は複数の項目を有する。１つ以上の項目は、別のディレクトリルータの識別情報と、当該別のディレクトリルータのプレフィックスと、ディレクトリルータ（５１０）から当該別のディレクトリルータに到達するのに必要なホップの数と、当該別のディレクトリルータに到達するための経路内の次のルータと（すなわち、次のルータとディレクトリルータ（５１０）との間には直接的な接続がある）、ディレクトリルータ（５１０）を次のルータに接続するインターフェイスとを含んでよい。加えて、１つ以上の項目は、ホスト（すなわち、パブリッシャノード又はサブスクライバノード）の識別情報と、当該ホストに到達するために必要なホップの数と、当該ホストに到達するための経路内の次のルータと、ディレクトリルータ（５１０）を次のルータに接続するインターフェイスとを含んでよい。
【００４５】
図５Ｂは、リンク・コスト・リポジトリ（５１１）の一例を示している。具体的に述べると、図５Ｂは、図１Ｂ及び図１Ｃを参照して上述したディレクトリルータＬ（１１０Ｌ）内のリンク・コスト・リポジトリであってよい。図５Ｂに示されているように、メッセージ（例えば、パブリッシュメッセージ、パブリッシュＡＣＫメッセージ、ルックアップメッセージ、ルックアップ応答メッセージ、データ要求メッセージ、データ応答メッセージ、その他）をパブリッシャノード１（１０５Ａ）へ転送するには、インターフェイスＩ２によってディレクトリルータＬ（１１０Ｌ）へ直接接続されている中間ルータＪ（１２０Ｊ）へメッセージを転送できる。メッセージはその後、中間ルータＪ（１２０Ｊ）によって中間ルータＫ（１２０Ｋ）へ転送され、その後、中間ルータＫ（１２０Ｋ）によってパブリッシャノード１（１０５Ａ）へ転送される。
【００４６】
同じく図５Ｂに示されているように、メッセージをディレクトリルータＣ（１１０Ｃ）へ転送するにあたっては、ディレクトリルータＬ（１１０Ｌ）にとって既知である２通りのオプションがある。一方のオプションは１つのホップを必要とし（「短い経路」）、他方のオプションは３つのホップを必要とする（「長い経路」）。短い経路の場合は、ディレクトリルータＬ（１１０Ｌ）をディレクトリルータＣ（１１０Ｃ）に直接接続しているインターフェイスＩ３を経由してメッセージを転送できる。長い経路の場合は、インターフェイスＩ１によってディレクトリルータＬ（１１０Ｌ）へ直接接続されている中間ルータＦ（１２０Ｆ）へメッセージを転送できる。メッセージはその後、中間ルータＦ（１２０Ｆ）によって中間ルータＥ（１２０Ｅ）へ転送され、その後、中間ルータＥ（１２０Ｅ）によってディレクトリルータＣ（１１０Ｃ）へ転送される。１つ以上の実施形態において、同じ送信先に至る複数の経路がある場合は、ホップ数が最も少ない経路が利用される。ホップ数が等しい経路が複数ある場合は、経路がランダムに選択されてよい。
【００４７】
この詳細な説明の恩恵に浴する当業者なら、いずれかのルータのリンク・コスト・リポジトリが、ＨＥＬＬＯメッセージをブロードキャストするルータによって生成され更新されてよいことを理解するであろう。
【００４８】
図５Ａに戻り、１つ以上の実施形態において、ディレクトリルータ（５１０）は区間リポジトリ（５１５）を含む。区間リポジトリは、ディレクトリルータによって維持されている１つ以上のコード範囲を保管する。換言すると、ディレクトリルータ（５１０）は、区間リポジトリ（５１５）内のコード範囲の権威ディレクトリルータである。１つ以上の実施形態において、区間リポジトリ（５１５）は、子ディレクトリルータに委譲されたコード範囲がある場合は、そのコード範囲をも保管する。
【００４９】
１つ以上の実施形態において、ローカル・ルーティング・リポジトリ（５１５）は、ディレクトリルータ（５１０）がコンテンツアイテムに対応する双方向コードの権威ディレクトリではない場合でも、ディレクトリルータ（５１０）によって受信される各パブリッシュメッセージから抽出されるコンテンツアイテム識別子とパブリッシャノード識別情報とを保管する。ローカル・ルーティング・リポジトリ（５１５）内の項目は、ディレクトリルータ（５１０）が権威ディレクトリルータではない場合でも、ディレクトリルータ（５１０）によって取得されるルックアップ要求メッセージに応答するために使用することができる。
【００５０】
１つ以上の実施形態において、ローカル・コード・リポジトリ（５１７）は、ディレクトリルータ（５１０）によって受信されるパブリッシュメッセージのいずれかから抽出されるコンテンツアイテム識別子と、パブリッシャノード識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを保管する（後述）。図３Ｂを参照して上述したように、パブリッシャノード識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスは、コンテンツ・アイテム・プロファイルと総称されることがある。１つ以上の実施形態においては、同じコンテンツアイテムについて複数のパブリッシャノードがある。かかる実施形態においては、同じコンテンツアイテムについて複数のコンテンツ・アイテム・プロファイルがローカル・コード・リポジトリ（５１７）に保管されてよく、それぞれのコンテンツ・アイテム・プロファイルは、別々のパブリッシャノード、そのアンカディレクトリ、及びそのランドマークプレフィックスに対応している。
【００５１】
１つ以上の実施形態において、ローカル・ルーティング・リポジトリ（５１５）とローカル・コード・リポジトリ（５１７）の中の項目はどちらも期限切れになる。ただし、ローカル・ルーティング・リポジトリ（５１５）内の項目は、ローカル・コード・リポジトリ（５１７）内の項目より遥かに速く期限切れになる。
【００５２】
本発明の１つ以上の実施形態において、ディレクトリルータ（５１０）はコンテンツ・アイテム・キャッシュ（５１９）を含む。ディレクトリルータ（５１０）がデータ応答メッセージの意図された送信先ではない（例えば、ディレクトリルータ（５１０）が中間ディレクトリルータである）場合でも、データ応答メッセージを取得したら、コンテンツ・アイテム・キャッシュ（５１９）は、データ応答メッセージ内のコンテンツアイテムのコピーを保管できる。例えば、ディレクトリルータ（５１０）が同じコンテンツアイテムを含む限界数のデータ応答メッセージを取得する場合は、このコンテンツアイテムの需要が大きいことを意味し、ディレクトリルータ（５１０）はそのコンテンツアイテムのコピーをコンテンツ・アイテム・キャッシュ（５１９）に保管できる。そのような状況では、ディレクトリルータ（５１０）がそのコンテンツアイテムのために独自のパブリッシュメッセージを生成し転送することができ、実質的に、少なくとも一時的には、そのコンテンツアイテムのもうひとつのパブリッシャノードになる。この追加のパブリッシュメッセージは、中間ディレクトリルータのプレフィックスと、中間ディレクトリルータにとって既知である１つ以上のランドマーク・ディレクトリ・ルータのプレフィックスとを含んでよい。これは、日和見的キャッシングの一例である。
【００５３】
図５Ｃは、本発明の１つ以上の実施形態による中間ルータ（５５０）を示している。中間ルータ（５５０）は、図１Ｃを参照して上述した中間ルータ（１２０Ａ、１２０Ｂ、１２０Ｄ、１２０Ｅ、１２０Ｆ、１２０Ｈ、１２０Ｉ、１２０Ｊ、１２０Ｋ、１２０Ｍ）のいずれかに相当してよい。図５Ｃに示されているように、中間ルータ（５１０）は複数のリポジトリを有する。これらのリポジトリは、何らかのタイプのデータ構造（例えば、テーブル、リンクされたリスト、データベース、その他）を使用して実装されてよい。中間ルータ（５５０）内のリンク・コスト・リポジトリ（５１１）とローカル・ルーティング・リポジトリ（５１５）は、ディレクトリルータ（５１０）内のそれらと同様である。さらに、それぞれのパブリッシャノード及び／又はサブスクライバノード自体が各自のリンク・コスト・リポジトリを有してもよい。
【００５４】
図６は、本発明の１つ以上の実施形態によるフローチャートを示している。図６に示されたプロセスは、図１Ｂを参照して上述したディレクトリルータのいずれか１つによって遂行されてよい。１つ以上の実施形態において、図６に示されたステップのいずれか１つ以上は省略されてよい、繰り返されてよい、及び／又は図６に示された順序とは異なる順序で遂行されてよい。したがって、本開示の範囲は図６に示された具体的なステップ配列に限定されるとみなすべきではない。
【００５５】
最初は、ディレクトリルータがパブリッシュメッセージを取得する（ステップ６０５）。このパブリッシュメッセージは、コンテンツアイテムを登録するために（すなわち、コンテンツアイテムをサブスクライバノードにとって利用可能なものにするために）パブリッシャノードによって生成されたものであり得る。上述したように、パブリッシュメッセージは、コンテンツアイテムの識別子と、パブリッシャノードの識別情報と、ことによるとパブリッシャ・ランドマーク・プレフィックス（すなわち、パブリッシュメッセージが生成されたときにパブリッシャノードにとって既知であるランドマーク・ディレクトリ・ルータのプレフィックス）とを含む。
【００５６】
ステップ６１０では、ディレクトリルータのローカル・ルーティング・リポジトリが更新される。ローカル・ルーティング・リポジトリを更新することは、パブリッシャノード識別情報とパブリッシュノードによってパブリッシュされているコンテンツアイテムの識別子とを抽出することと、その後、これらの抽出したデータ要素をローカル・ルーティング・リポジトリに保管することとを含んでよい。
【００５７】
ステップ６１５では、コンテンツアイテム識別子の双方向コードが計算される。上述したように、この識別子はコンテンツアイテムの名前であってよい（例えば、ｄｏｇ．ｊｐｇ）。加えて、又は代わりに、識別子はＵＲＬであってよく、あるいはコンテンツアイテムのディレクトリ情報を含んでよい（例えば、ｗｅｂｓｉｔｅ．ｃｏｍ／ｄｉｒｅｃｔｏｒｙ／ｓｕｂ−ｄｉｒｅｃｔｏｒｙ／ｎｅｗＤｏｃｕｍｅｎｔ．ｐｄｆ）。双方向コードは識別子の１Ｄ数値であってよい。例えば、双方向コードは空間充填曲線コード（例えば、ヒルベルト空間充填曲線コード）に相当してよい。
【００５８】
ステップ６２０では、ディレクトリルータが双方向コードの権威ディレクトリルータであるか否かが判断される。換言すると、ディレクトリルータが権威コード範囲を維持している場合は、双方向コードがそのコード範囲の範囲内であるか否かが判断される。双方向コードがディレクトリルータによって管理される権威コード範囲の範囲内であり、それゆえ、ディレクトリルータが双方向コードの権威ディレクトリルータであると判断される場合は、プロセスがステップ６２５へ進む。双方向コードがディレクトリルータによって管理されるコード範囲の範囲外である（又は、ディレクトリルータがどのコード範囲も管理していない）と判断される場合は、ディレクトリルータは双方向コードの権威ディレクトリルータではなく、プロセスはステップ６３５へ進む。ディレクトリルータによって管理されるコード範囲は、ディレクトリルータの区間リポジトリに保管されてよい。
【００５９】
ステップ６２５では、パブリッシュメッセージに基づいてローカル・コード・リポジトリが更新される。ローカル・コード・リポジトリを更新することは、パブリッシュメッセージからパブリッシャノード識別情報と、コンテンツアイテムの識別子と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを抽出することと、これらの項目をローカル・コード・リポジトリに保管することとを含んでよい。少なくともパブリッシャノード識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを含むデータ構造（例えば、ｎタプル）は、存在する場合に、コンテンツ・アイテム・プロファイルと呼ばれることがあり、コンテンツアイテム識別子と共にローカル・コード・リポジトリに保管されるのはこのデータ構造（例えば、ｎタプル）である。
【００６０】
ステップ６３０では、パブリッシュＡＣＫメッセージが生成される。パブリッシュＡＣＫメッセージは、パブリッシュメッセージからのコンテンツアイテムに結び付けられた識別子とパブリッシャ・アンカ・プレフィックスとを含む。ディレクトリルータは、パブリッシャ・アンカ・プレフィックスとプレフィックスルーティングとを使用してパブリッシュＡＣＫメッセージを転送できる。具体的に述べると、ディレクトリルータは、１つ以上のディレクトリルータに至る経路と、それらのディレクトリルータのプレフィックスとを示す、リンク・コスト・リポジトリ（上述）を含む。パブリッシュＡＣＫメッセージは、パブリッシュＡＣＫメッセージ内のパブリッシュ・アンカ・プレフィックスと最もよく一致するプレフィックスを有するディレクトリルータへ転送されてよい。パブリッシュＡＣＫメッセージは、パブリッシャのアンカ・ディレクトリ・ルータ（すなわち、パブリッシャ・アンカ・プレフィックスが付いたアンカ・ディレクトリ・ルータ）に到達するまで伝送され続けてよい。
【００６１】
ステップ６３５では、ディレクトリルータがパブリッシャノードのアンカ・ディレクトリ・ルータであるか否かが判断される。１つ以上の実施形態において、ディレクトリルータは、自身がアンカディレクトリとして担当するパブリッシャノードのデータ構造（例えば、テーブル）を維持する。ディレクトリルータがパブリッシャノードのアンカ・ディレクトリ・ルータではないと判断される場合は、プロセスがステップ６４０へ進む。ディレクトリルータがパブリッシャノードのアンカ・ディレクトリ・ルータであると判断される場合は、プロセスがステップ６４５へ進む。
【００６２】
パブリッシャノードのアンカ・ディレクトリ・ルータでもあると判断されたディレクトリルータはステップ６４５で、そのプレフィックス（すなわち、パブリッシャ・アンカ・プレフィックス）をパブリッシュメッセージに挿入する。ディレクトリルータはパブリッシュＡＣＫメッセージを生成してパブリッシャノードへ送信することもできる。
【００６３】
ステップ６４１では、パブリッシュメッセージに基づいてローカル・コード・リポジトリが更新される。ステップ６４１はステップ６２５と基本的に同じである。ステップ６４０では、ディレクトリルータが区間ルーティングに基づいてパブリッシュメッセージを転送する。具体的に述べると、双方向コードを含むコード範囲がディレクトリルータに割り当てられなかった場合は、ディレクトリルータはその親ディレクトリルータへパブリッシュメッセージを転送する。ディレクトリルータが双方向コードを含むコード範囲を子ディレクトリルータにあらかじめ割り当てた場合は、ディレクトリルータはその子ディレクトリルータへパブリッシュメッセージを転送する。
【００６４】
この詳細な説明の恩恵に浴する当業者なら、パブリッシュメッセージを取得するＩＣＮ内の各ディレクトリルータによって図６に示されたプロセスが実行されてよいことを理解するであろう。この詳細な説明の恩恵に浴する当業者なら、パブリッシュメッセージに基づいてアンカ・ディレクトリ・ルータ（ステップ６４１）と権威ディレクトリルータ（ステップ６２５）の両方のローカル・コード・リポジトリを更新することによって、アンカ・ディレクトリ・ルータか権威ディレクトリルータがＩＣＮから切断される場合でも、コンテンツアイテムがＩＣＮに登録された状態を保つことも理解するであろう。
【００６５】
１つ以上の実施形態においては、複数のパブリッシャノードが同じ識別子を有する同じコンテンツアイテムをパブリッシュすることがある。かかる実施形態では、この識別子に対応する双方向コードの権威ディレクトリルータが複数のパブリッシュメッセージを受け取り得る。したがって、ローカル・コード・リポジトリは、１つのコンテンツアイテム識別子に対して複数のコンテンツ・アイテム・プロファイル（すなわち、複数のパブリッシャノード識別情報、複数のアンカプレフィックス、及びランドマークプレフィックスの複数セット）を有する。
【００６６】
本発明の１つ以上の実施形態においては、権威ディレクトリルータでもアンカ・ディレクトリ・ルータでもないディレクトリルータ（例えば、中間ディレクトリルータ）ですら、パブリッシュメッセージに基づいて自身のローカル・コード・リポジトリを更新する（すなわち、パブリッシュメッセージの中で言及されているコンテンツアイテムについて自身のローカル・コード・リポジトリにコンテンツ・アイテム・プロファイルを保管する）。これは、日和見的キャッシングの一例である。例えば、ディレクトリルータは、同じコンテンツ識別子を含む限界数のパブリッシュメッセージを取得する場合に、同じコンテンツ識別子を含む将来のパブリッシュメッセージに基づいて自身のローカル・コード・リポジトリの更新を開始できる。別の一例として、ディレクトリルータは、同じコンテンツアイテムか異なるコンテンツアイテムのために同じパブリッシャノードによって生成された限界数のパブリッシュメッセージを取得する場合に、パブリッシャノードによって生成される将来のパブリッシュメッセージに基づいて自身のローカル・コード・リポジトリの更新を開始できる。これも、日和見的キャッシングの一例である。加えて、ディレクトリルータは、日和見的キャッシングをトリガする別のパターンを期待することができ、あるいは日和見的キャッシングをトリガする別のポリシを検討することができる。
【００６７】
ＩＣＮの中では１つ以上のディレクトリルータが随時故障し得る、及び／又は除去され得る可能性がある。本発明の１つ以上の実施形態において、ディレクトリルータを含むルータは、定期的に、又は散発的に、ＨＥＬＬＯメッセージをブロードキャストする。これらのＨＥＬＬＯメッセージは、残りのディレクトリルータ（すなわち、ＩＣＮ内にまだあるディレクトリルータ）に新たなプレフィックスを割り当てるのに使用することができる。本発明の１つ以上の実施形態において、パブリッシャノードは、図６に示されたプロセス（又は同様のプロセス）を使用して、そのコンテンツアイテムを、定期的に、又は散発的に、再パブリッシュする。コンテンツアイテムを再パブリッシュすることにより、ローカル・コード・リポジトリに保管されたコンテンツ・アイテム・プロファイル内の全てのプレフィックス（例えば、アンカ・ディレクトリ・ルータのプレフィックス、ランドマーク・ディレクトリ・ルータのプレフィックス、その他）が新たに割り当てられたプレフィックスで更新されることが保証される。
【００６８】
図７は、本発明の１つ以上の実施形態によるフローチャートを示している。図７に示されたプロセスは、図１Ｂを参照して上述したディレクトリルータのいずれか１つによって遂行されてよい。１つ以上の実施形態において、図７に示されたステップのいずれか１つ以上は省略されてよい、繰り返されてよい、及び／又は図７に示された順序とは異なる順序で遂行されてよい。したがって、本開示の範囲は図７に示された具体的なステップ配列に限定されるとみなすべきではない。図７の１つ以上のステップは、図６に示されたプロセスが実行された後に遂行されてもよい。
【００６９】
最初は、ルックアップメッセージが取得される（ステップ７０５）。ルックアップメッセージは、コンテンツアイテムを求めているサブスクライバノードによって生成されてよい。ルックアップメッセージは、サブスクライバノードの識別情報と、サブスクライバ・アンカ・プレフィックス（すなわち、サブスクライバノードのアンカ・ディレクトリ・ルータのプレフィックス）と、コンテンツアイテムの識別子とを含んでよい。
【００７０】
ステップ７１５では、識別子の双方向コードが計算される。双方向コードは識別子の１Ｄ数値であってよい。例えば、双方向コードは空間充填曲線コード（例えば、ヒルベルト空間充填曲線コード）に相当してよい。
【００７１】
ステップ７２０では、ディレクトリルータが双方向コードの権威ディレクトリルータであるか否かが判断される。換言すると、ディレクトリルータがコード範囲を維持している場合は、双方向コードがそのコード範囲の範囲内であるか否かが判断される。双方向コードがディレクトリルータによって管理されるコード範囲の範囲内であり、それゆえ、ディレクトリルータが双方向コードの権威ディレクトリルータであると判断される場合は、プロセスがステップ７３０へ進む。双方向コードがディレクトリルータによって管理されるコード範囲の範囲外である（又は、ディレクトリルータがどのコード範囲も管理していない）と判断される場合は、ディレクトリルータは双方向コードの権威ディレクトリルータではなく、プロセスはステップ７２５へ進む。ディレクトリルータによって管理されるコード範囲は、ディレクトリルータの区間リポジトリに保管されてよい。
【００７２】
ステップ７２５では、コンテンツアイテムの識別子がディレクトリルータのローカル・コード・リポジトリに入っているか否かが判断される。例えば、ディレクトリルータがコンテンツアイテムをパブリッシュしたパブリッシャノードのアンカディレクトリであるなら、コンテンツアイテム識別子がローカル・コード・リポジトリに入っている見込みがある（図６のステップ６４１を参照して上述）。ローカル・コード・リポジトリがコンテンツアイテム識別子を含んでいると判断される場合は、プロセスがステップ７３０へ進む。ローカル・コード・リポジトリがコンテンツアイテム識別子を含んでいないと判断される場合は、プロセスがステップ７４０へ進む。
【００７３】
ステップ７３０では、コンテンツアイテム識別子に対応する１つ以上のコンテンツ・アイテム・プロファイルがローカル・コード・リポジトリから取り出される。それぞれのコンテンツ・アイテム・プロファイルは、存在する場合は、少なくともコンテンツアイテムのパブリッシャノードの識別情報と、パブリッシャ・アンカ・プレフィックスと、パブリッシャ・ランドマーク・プレフィックスとを含むｎタプル（又は他のデータ構造）であってよい。
【００７４】
ステップ７３５では、ルックアップ応答メッセージが生成される。ルックアップ応答メッセージは、ルックアップメッセージから抽出されたコンテンツアイテム識別子とサブスクライバ・アンカ・プレフィックスとを含んでよい。ルックアップ応答メッセージは、ローカル・コード・リポジトリから取り出された１つ以上のコンテンツ・アイテム・プロファイルも含む。ディレクトリルータは、サブスクライバ・アンカ・プレフィックスとプレフィックスルーティングに基づいてルックアップ応答メッセージを転送する。具体的に述べると、ディレクトリルータは、１つ以上のディレクトリルータに至る経路と、それらのディレクトリルータのプレフィックスとを示す、上述のリンク・コスト・リポジトリを含む。ルックアップ応答メッセージは、サブスクライバ・アンカ・プレフィックスと最もよく一致するプレフィックスを有するディレクトリルータへ転送されてよい。ルックアップ応答メッセージは、サブスクライバのアンカ・ディレクトリ・ルータ（すなわち、サブスクライバ・アンカ・プレフィックスが付いたアンカ・ディレクトリ・ルータ）及び／又はサブスクライバノードそのものに到達するまで伝送され続けてよい。
【００７５】
ステップ７４０では、ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータであるか否かが判断される。１つ以上の実施形態において、ディレクトリルータは、自身がアンカディレクトリとして担当するサブスクライバノードのデータ構造（例えば、テーブル）を維持する。ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータではないと判断される場合は、プロセスがステップ７５０へ進む。ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータであると判断される場合は、プロセスがステップ６４５へ進む。
【００７６】
サブスクライバノードのアンカ・ディレクトリ・ルータであると判断されたディレクトリルータはステップ７４５で、そのプレフィックス（すなわち、サブスクライバ・アンカ・プレフィックス）をルックアップメッセージに挿入する。
【００７７】
ステップ７５０では、ディレクトリルータが識別子の双方向コードと区間ルーティングに基づいてルックアップメッセージを転送する。具体的に述べると、双方向コードを含むコード範囲がディレクトリルータに割り当てられなかった場合は、ディレクトリルータはその親ディレクトリルータへルックアップメッセージを転送する。ディレクトリルータが双方向コードを含むコード範囲を子ディレクトリルータにあらかじめ割り当てた場合は、ディレクトリルータはその子ディレクトリルータへルックアップメッセージを転送する。
【００７８】
本発明の１つ以上の実施形態において、ルックアップ応答メッセージは、サブスクライバノードに向かってＩＣＮの中を通行するときに、１つ以上の中間ディレクトリルータを通過することがある。ルックアップ応答メッセージを取得したこれらの中間ディレクトリルータのいずれか１つ以上は、ディレクトリルータがサブスクライバノードのアンカ・ディレクトリ・ルータではない場合でも、ルックアップ応答メッセージからコンテンツ・アイテム・プロファイルのコピーを保管できる。例えば、中間ディレクトリルータが同じコンテンツアイテムに関連する限界数のルックアップメッセージ又はルックアップ応答メッセージを取得する場合は、このコンテンツアイテムの需要が大きいことを意味し、中間ディレクトリルータは自身のローカル・コード・リポジトリにコンテンツ・アイテム・プロファイルのコピーを保管できる。そのような状況では、中間ディレクトリルータは先々取得するコンテンツアイテムのルックアップメッセージに応答でき（すなわち、ルックアップ応答メッセージを生成でき）、コンテンツアイテムに関わる権威ディレクトリルータの負担が軽減し、権威ディレクトリルータに対するサービス妨害攻撃が成功する見込みが低下する。これも、日和見的キャッシングの一例である。
【００７９】
図８は、本発明の１つ以上の実施形態による一例を示している。図８は、サブスクライバノード２（１８５Ｂ）をも含む点を除いて、図１Ｃと基本的に同じである。
【００８０】
この例で、ディレクトリルータＮ（１１０Ｎ）はパブリッシャノード１（１０５Ａ）のアンカ・ディレクトリ・ルータであり、ディレクトリルータＣ（１１０Ｃ）はサブスクライバノード１（１８５Ａ）のアンカ・ディレクトリ・ルータであり、ディレクトリルータＱ（１１０Ｑ）はサブスクライバノード２（１８５Ｂ）のアンカ・ディレクトリ・ルータである。この例ではまた、パブリッシャノード１（１０５Ａ）が識別子「ｇａｍｅ．ｍｐｅｐ」を有するビデオクリップ（１９９）をパブリッシュすることを望んでおり、ディレクトリルータＧ（１１０Ｇ）は、「ｇａｍｅ．ｍｐｅｇ」の双方向コードを含むコード範囲の権威ディレクトリルータである。
【００８１】
最初は、パブリッシャノード１（１０５Ａ）がビデオクリップのためにパブリッシュメッセージを生成し、自身のアンカ・ディレクトリ・ルータ（すなわち、ディレクトリルータＮ（１１０Ｎ））へパブリッシュメッセージを転送する。このパブリッシュメッセージは、識別子「ｇａｍｅ．ｍｐｅｇ」とパブリッシャノードの識別情報「１」とを含んでいる。ディレクトリルータＮ（１１０Ｎ）は、自身のアンカプレフィックス「０１１」をパブリッシュメッセージに挿入する。ディレクトリルータＮ（１１０Ｎ）はまた、「ｇａｍｅ．ｍｐｅｇ」の双方向コードを計算する。その後は区間ルーティングにより、識別子「ｇａｍｅ．ｍｐｅｇ」の双方向コードの権威ディレクトリルータ（すなわち、ディレクトリルータＧ（１１０Ｇ））へパブリッシュメッセージが伝送される。（区間ルーティングの一部として）パブリッシュメッセージがとるルートは、ルータＮ−Ｋ−Ｊ−Ｌ−Ｃ−Ｂ−Ｄ−Ｇである。区間ルーティングを遂行するため、このルート沿いでディレクトリルータＬ（１１０Ｌ）とディレクトリルータＣ（１１０Ｃ）も識別子「ｇａｍｅ．ｍｐｅｇ」の双方向コードを計算する。
【００８２】
権威ディレクトリルータ（ディレクトリルータＧ（１１０Ｇ））は、パブリッシャ・アンカ・プレフィックス「０１１」とパブリッシャ識別情報「０」とを含むコンテンツ・アイテム・プロファイルを生成する。権威ディレクトリルータはまた、自身のローカル・コード・リポジトリにコンテンツ・アイテム・プロファイルをコンテンツ識別子「ｇａｍｅ．ｍｐｅｇ」と共に保管する。さらに、権威ディレクトリルータはまた、パブリッシュメッセージとコンテンツ識別子からパブリッシャ・アンカ・プレフィックス「０１１」を含むパブリッシュＡＣＫメッセージを生成する。このパブリッシュＡＣＫメッセージは、「０１１」のプレフィックスルーティングに基づいてパブリッシャ・アンカ・ディレクトリ・ルータ（すなわち、ディレクトリルータＮ（１１０Ｎ））へ送り返される。（プレフィックスルーティングの一部として）パブリッシュＡＣＫメッセージがとるルートは、ルータＧ−Ｄ−Ｂ−Ｃ−Ｌ−Ｊ−Ｋ−Ｎである。
【００８３】
将来のある時点に、サブスクライバノード１（１８５Ａ）は識別子「ｇａｍｅ．ｍｐｅｇ」を有するビデオクリップを消費することを望む。したがって、サブスクライバノード１（１８５Ａ）は、識別子「ｇａｍｅ．ｍｐｅｐ」とサブスクライバノード識別情報「１」とを含むルックアップ要求を生成し、このルックアップ要求を自身のアンカ・ディレクトリ・ルータ（すなわち、ディレクトリルータＣ（１１０Ｃ））へ転送する。ディレクトリルータＣ（１１０Ｃ）は自身のアンカプレフィックス「０」をルックアップメッセージに挿入する。ディレクトリルータＣ（１１０Ｃ）はまた、「ｇａｍｅ．ｍｐｅｇ」の双方向コードを計算し、その後は区間ルーティングにより、識別子「ｇａｍｅ．ｍｐｅｇ」の双方向コードの権威ディレクトリルータ（すなわち、ディレクトリルータＧ（１１０Ｇ））へルックアップメッセージが伝送される。（区間ルーティングの一部として）ルックアップメッセージがとるルートは、ルータＣ−Ｂ−Ｄ−Ｇである。
【００８４】
ルックアップメッセージを受信した権威ディレクトリルータ（ディレクトリルータＧ（１１０Ｇ））は、ルックアップメッセージ内のコンテンツ識別子「ｇａｍｅ．ｍｐｅｇ」に基づいて、対応するコンテンツ・アイテム・プロファイルを自身のローカル・コード・リポジトリから取り出す。上述したように、このコンテンツ・アイテム・プロファイルは、パブリッシャ識別情報「１」とパブリッシャ・アンカ・プレフィックス「０１１」とを含んでいる。さらに、権威ディレクトリルータ（すなわち、ディレクトリルータＧ（１１０Ｇ））は、パブリッシャ・アンカ・プレフィックス「０１１」と、パブリッシャ識別情報「１」と、ルックアップメッセージからのサブスクライバ・アンカ・プレフィックス「０」と、同じくルックアップメッセージからのサブスクライバ識別情報「１」とを含むルックアップ応答メッセージを生成する。このルックアップ応答メッセージは、プレフィックスルーティングとサブスクライバプレフィックス「０」を使用してディレクトリルータＣ（１１０Ｃ）へ送り返され、ディレクトリルータＣ（１１０Ｃ）はこれをサブスクライバノード１（１８５Ａ）へ転送する。（区間ルーティングの一部として）ルックアップ応答メッセージがとるルートは、ルータＧ−Ｄ−Ｂ−Ｃである。
【００８５】
ルックアップ要求メッセージを受信したサブスクライバノード１（１８５Ａ）は、データ要求メッセージを生成する。このデータ要求メッセージは、サブスクライバ・アンカ・プレフィックス「０」と、サブスクライバ識別情報「１」と、（ルックアップ応答メッセージからの）パブリッシャ・アンカ・プレフィックス「０１１」と、（ルックアップ応答メッセージからの）パブリッシャ識別情報「１」とを含んでいる。データ要求メッセージは、プレフィックスルーティングとパブリッシャ・アンカ・プレフィックス「０１１」とを使用して伝送される。パブリッシャ・アンカ・ディレクトリ（すなわち、ディレクトリルータＮ（１１０Ｎ））に向かって中間ルータＫ（１２０Ｋ）に到達したデータ要求メッセージは、（パブリッシャ・アンカ・ディレクトリを迂回して）中間ルータＫ（１２０Ｋ）からパブリッシャノード１（１０５Ａ）へ直接転送されてよい。（区間ルーティングの一部として）データ要求メッセージがとるルートは、ルータＣ−Ｌ−Ｊ−Ｋであり、その後パブリッシャノード１である。
【００８６】
データ要求メッセージを受信したパブリッシャノード１（１０５Ａ）は、データ応答メッセージを生成する。このデータ応答メッセージはデータ要求メッセージと同様であり、ただし、このデータ応答メッセージはビデオクリップをも含んでいる。データ要求メッセージは、プレフィックスルーティングとサブスクライバ・アンカ・プレフィックス「０」とを使用して伝送される。受信したディレクトリルータＣ（１１０Ｃ）は、データ応答メッセージを、又は少なくともビデオクリップを、消費（例えば、表示）のため、サブスクライバノード１（１８５Ａ）へ転送する。
【００８７】
パブリッシュメッセージは、ディレクトリルータＧ（１１０Ｇ）へ進んでいたときに、ディレクトリルータＬ（１１０Ｌ）を通過した。ディレクトリルータＬ（１１０Ｌ）は、パブリッシュメッセージに基づいてコンテンツ・アイテム・プロファイルを生成し、そのコンテンツ・アイテム・プロファイルと識別子「ｇａｍｅ．ｍｐｅｇ」を自身のローカル・コード・リポジトリに保管した可能性がある。しかし、パブリッシュメッセージは引き続きディレクトリルータＧ（１１０Ｇ）へ進んだ。
【００８８】
将来のある時点に、サブスクライバノード２（１８５Ｂ）は識別子「ｇａｍｅ．ｍｐｅｇ」を有するビデオクリップを消費することを望む。したがって、サブスクライバノード２（１８５Ｂ）は、識別子「ｇａｍｅ．ｍｐｅｐ」とサブスクライバノード識別情報「２」とを含むルックアップ要求を生成し、このルックアップ要求を自身のアンカ・ディレクトリ・ルータ（すなわち、ディレクトリルータＱ（１１０Ｑ））へ転送する。ディレクトリルータＱ（１１０Ｑ）は自身のアンカプレフィックス「０１０」をルックアップメッセージに挿入する。ディレクトリルータＣ（１１０Ｃ）はまた、「ｇａｍｅ．ｍｐｅｇ」の双方向コードを計算し、その後は区間ルーティングにより、識別子「ｇａｍｅ．ｍｐｅｇ」の双方向コードの権威ディレクトリルータ（すなわち、ディレクトリルータＧ（１１０Ｇ））へルックアップメッセージが伝送される。
【００８９】
区間ルーティングの一部として、ルックアップメッセージはディレクトリルータＬ（１１０Ｌ）を通過する。ディレクトリルータＬ（１１０Ｌ）は、「ｇａｍｅ．ｍｐｅｇ」に対応する双方向コードの権威ディレクトリルータではないが、パブリッシュメッセージが発行されたときから、「ｇａｍｅ．ｍｐｅｇ」のコンテンツ・アイテム・プロファイルを所持している。したがって、ディレクトリルータＬ（１１０Ｌ）は、サブスクライバノード２（１８５Ｂ）からのルックアップメッセージにルックアップ応答メッセージで応答できる。このルックアップ応答メッセージは、パブリッシャ・アンカ・プレフィックス「０１１」と、パブリッシャ識別情報「１」と、ルックアップメッセージからのサブスクライバ・アンカ・プレフィックス「０１０」と、同じくルックアップメッセージからのサブスクライバ識別情報「２」とを含んでいる。このルックアップ応答メッセージは、プレフィックスルーティングとサブスクライバプレフィックス「０１０」を使用してディレクトリルータＱ（１１０Ｑ）へ送り返され、ディレクトリルータＱ（１１０Ｑ）はこれをサブスクライバノード２（１８５Ａ）へ転送する。
【００９０】
ルックアップ要求メッセージを受信したサブスクライバノード２（１８５Ｂ）は、データ要求メッセージを生成する。このデータ要求メッセージは、サブスクライバ・アンカ・プレフィックス「０１０」と、サブスクライバ識別情報「２」と、（ルックアップ応答メッセージからの）パブリッシャ・アンカ・プレフィックス「０１１」と、（ルックアップ応答メッセージからの）パブリッシャ識別情報「１」とを含んでいる。サブスクライバノード２（１８５Ｂ）がディレクトリルータＬ（１１０Ｌ）を認識し、それゆえ、ディレクトリルータＬ（１１０Ｌ）をランドマークディレクトリとみなすと仮定する。したがって、データ要求メッセージはランドマークプレフィックス「０１」（すなわち、ランドマーク・ディレクトリ・ルータ（１１０Ｌ）のプレフィックス）をも含むことになる。
【００９１】
データ要求メッセージは、プレフィックスルーティングとパブリッシャ・アンカ・プレフィックス「０１１」とを使用して伝送される。パブリッシャ・アンカ・ディレクトリ（すなわち、ディレクトリルータＮ（１１０Ｎ））に向かって中間ルータＫ（１２０Ｋ）に到達したデータ要求メッセージは、（パブリッシャ・アンカ・ディレクトリを迂回して）中間ルータＫ（１２０Ｋ）からパブリッシャノード１（１０５Ａ）へ直接転送されてよい。
【００９２】
データ要求メッセージを受信したパブリッシャノード１（１０５Ａ）は、データ応答メッセージを生成する。このデータ応答メッセージはデータ要求メッセージと同様であり（なおかつパブリッシャ・ランドマーク・プレフィックス「０１」を含んでおり）、ただし、このデータ応答メッセージはビデオクリップをも含んでいる。データ要求メッセージは、プレフィックスルーティングとパブリッシャ・ランドマーク・プレフィックス「０１」とを使用して伝送される。受信したディレクトリルータＬ（１１０Ｌ）は、データ応答メッセージを、又は少なくともビデオクリップを、消費（例えば、表示）のため、サブスクライバノード２（１８５Ｂ）へ転送し、サブスクライバ・アンカ・ディレクトリ（すなわち、ディレクトリルータＱ（１１０Ｑ））を迂回する。
【００９３】
本開示の実施形態は計算システム上に実装されてよい。モバイル、デスクトップ、サーバ、ルータ、スイッチ、組み込み型機器、又は他種ハードウェアからなる任意の組み合わせが使用されてよい。例えば、図９に示されているように、計算システム（９００）は、１つ以上のコンピュータプロセッサ（９０２）と、非永続型ストレージ（９０４）（例えば、ランダム・アクセス・メモリ（ＲＡＭ）、キャッシュメモリなどの揮発性メモリ）、永続型ストレージ（９０６）（例えば、ハードディスク、コンパクトディスク（ＣＤ）ドライブやデジタル多用途ディスク（ＤＶＤ）ドライブなどの光学式ドライブ、フラッシュメモリ、その他）と、通信インターフェイス（９１２）（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェイス、赤外線インターフェイス、ネットワークインターフェイス、光学式インターフェイス、その他）と、多数のその他要素及び機能とを含んでよい。
【００９４】
コンピュータプロセッサ（９０２）は、命令を処理する集積回路であってよい。例えば、コンピュータプロセッサはプロセッサの１つ以上のコア又はマイクロコアであってよい。計算システム（９００）はまた、タッチスクリーン、キーボード、マウス、マイクロフォン、タッチパッド、電子ペン、又は他の何らかのタイプの入力機器など、１つ以上の入力機器（９１０）を含んでよい。
【００９５】
通信インターフェイス（９１２）は、ネットワーク（図示せず）（例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネットなどのワイド・エリア・ネットワーク（ＷＡＮ）、携帯電話網、又は他の何らかのタイプのネットワーク）、及び／又は別の計算機器などの別の機器へ、計算システム（９００）を接続する集積回路を含んでよい。
【００９６】
さらに、計算システム（９００）は、画面（例えば、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、タッチスクリーン、ブラウン管（ＣＲＴ）モニタ、プロジェクタ、又は他の表示機器）、プリンタ、外部ストレージ、又は他の何らかの出力機器など、１つ以上の出力機器（９０８）を含んでよい。出力機器のいずれか１つ以上は、入力機器と同じであってよく、あるいは入力機器と異なってもよい。入力機器と出力機器は、コンピュータプロセッサ（９０２）、非永続型ストレージ（９０４）、及び永続型ストレージ（９０６）へローカル接続されてよく、あるいはリモート接続されてよい。タイプの異なる計算システムが数多く存在しており、前述した入力機器と出力機器は別の形態をとる場合がある。
【００９７】
本開示の実施形態を遂行するコンピュータ可読プログラムコードの形をとるソフトウェア命令は、その全体又は一部が、ＣＤ、ＤＶＤ、ストレージ機器、ディスケット、テープ、フラッシュメモリ、物理的メモリ、又は他の何らかのコンピュータ可読ストレージ媒体などの非一時的なコンピュータ可読媒体に、一時的に、又は永久的に、保管されてよい。具体的に述べると、ソフトウェア命令は、プロセッサによって実行されたときに、本開示の１つ以上の実施形態を遂行するように構成されたコンピュータ可読プログラムコードに相当してよい。
【００９８】
このように、本明細書に記載された実施形態と例は、様々な実施形態とその具体的応用を十分に説明することで、当業者が実施形態を製作し運用できるようにするために提示されたものである。ただし、当業者なら、前述した説明と例が専ら解説と例の目的のために提示されていることを認めるであろう。記載された説明は、網羅的になることを、あるいは開示されているとおりの形態に限定することを、意図していない。
【００９９】
多数の実施形態を説明してきたが、本開示の恩恵に浴する当業者なら、範囲から逸脱せずに別の実施形態を考案できることを理解するであろう。したがって、本開示の範囲は添付の特許請求の範囲によってのみ制限されるものとする。
【図１Ａ】
2021526779.tif 000003
【図１Ｂ】
2021526779.tif 000004
【図１Ｃ】
2021526779.tif 000005
【図２Ａ】
2021526779.tif 000006
【図２Ｂ】
2021526779.tif 000007
【図３Ａ】
2021526779.tif 000008
【図３Ｂ】
2021526779.tif 000009
【図４Ａ】
2021526779.tif 000010
【図４Ｂ】
2021526779.tif 000011
【図５Ａ】
2021526779.tif 000012
【図５Ｂ】
2021526779.tif 000013
【図５Ｃ】
2021526779.tif 000014
【図６】
2021526779.tif 000015
【図７】
2021526779.tif 000016
【図８】
2021526779.tif 000017
【図９】
2021526779.tif 000018
【国際調査報告】
2021526779.tif 000019
2021526779.tif 000020