(57)【要約】      （修正有）【課題】コンテンツ中心ネットワーク（ＣＣＮ）におけるデバイス登録及び検出のためのシステムを提供する。【解決手段】システムは、コンピュータにより、クライアントデバイスの登録のためのインタレストを受信する。インタレストは、少なくともクライアントデバイスに関連付けられた固有の識別子を含む。インタレストに応じて、システムは、少なくともクライアントデバイスに割り当てられた名称を含むコンテンツオブジェクトを生成し、クライアントデバイスに対してコンテンツオブジェクトを送信することにより、クライアントデバイスがＣＣＮ内の他のクライアントデバイスによって検出される。【選択図】図１
2015197920.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ中心ネットワーク（ＣＣＮ）のデバイス登録及び検出のためのコンピュータシステムであって、
プロセッサと、
前記プロセッサに接続され、前記プロセッサによって実行された場合に前記プロセッサに方法を実行させる命令を記憶する記憶装置とを備え、前記方法が、
コンピュータにより、少なくともクライアントデバイスに関連付けられた固有の識別子を含む前記クライアントデバイスの登録のためのインタレストを受信することと、
前記インタレストに応じて、少なくとも前記クライアントデバイスに割り当てられた名称を含むコンテンツオブジェクトを生成することと、
前記クライアントデバイスに対して前記コンテンツオブジェクトを送信することにより、前記クライアントデバイスが前記ＣＣＮ内の他のクライアントデバイスによって検出されるのを可能とすることとを備える、システム。
【請求項２】
前記インタレストが、さらに、
前記クライアントデバイスに関連付けられた公開鍵と、
デバイス種類と、
デバイスモデル番号と、
任意の形式におけるデバイス識別子と、
のうちの１つ以上を含む、請求項１に記載のシステム。
【請求項３】
前記コンテンツオブジェクトが、さらに、
前記クライアントデバイスに割り当てられたルーティング可能な名称接頭辞と、
サブディレクトリデバイス検出名称空間と、
下位のデータを公開するための前記クライアントデバイスの１つ以上の名称空間と、
署名鍵を取得するための前記クライアントデバイスの名称空間と、
のうちの１つ以上を含む、請求項１に記載のシステム。
【請求項４】
前記インタレストが、予め定められた名称接頭辞を有する、請求項１に記載のシステム。
【請求項５】
前記方法が、さらに、前記クライアントデバイスの初期設定中に前記予め定められた名称接頭辞の前記クライアントデバイスを通知することを備える、請求項４に記載のシステム。
【請求項６】
前記予め定められた名称接頭辞が、前記クライアントデバイスの製造業者によって提供される、請求項４に記載のシステム。
【請求項７】
前記方法が、さらに、前記割り当てられた名称を使用して前記クライアントデバイスを追加することによってデバイスデータベースを更新することを備える、請求項１に記載のシステム。
【請求項８】
前記方法が、さらに、
前記ＣＣＮ内の他のデバイスの検出のための追加のインタレストを受信することと、
前記追加のインタレストに応答して、前記デバイスデータベースに記憶された情報に基づいてデバイスリストコンテンツオブジェクトを生成することと、
前記デバイスリストコンテンツオブジェクトを返送することとを備える、請求項７に記載のシステム。
【請求項９】
前記方法が、さらに、
前記追加のインタレストを送信するデバイスが前記デバイスリストコンテンツオブジェクトを取得するために認証されたかどうかを判定するためにセキュリティチェックを実行することと、
前記追加のインタレストを送信する前記デバイスが前記デバイスリストコンテンツオブジェクトを取得するために認証されたとの判定に応答して、前記認証されたデバイスに対して前記デバイスリストコンテンツオブジェクトを送信することとを備える、請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンテンツ中心ネットワーク（ＣＣＮ）に関する。具体的には、本開示は、コンテンツ中心ネットワーク（ＣＣＮ）におけるデバイス登録及び検出のためのシステム及び方法に関する。
【背景技術】
【０００２】
インターネット及び電子商取引の普及は、ネットワーク業界における革命的な変化を刺激し続けている。今日では、毎日のニュース配信、小売売上高及びインスタントメッセージングに伝えるオンライン映画からのかなりの数の情報交換がオンラインで行われている。インターネットアプリケーションの数が増加し、また、携帯可能になってきている。しかしながら、現在のインターネットは、主にロケーションベースのアドレス指定方式で動作する。２つの最もユビキタスなプロトコルであるインターネットプロトコル（ＩＰ）及びＥｔｈｅｒｎｅｔ（登録商標）プロトコルは、双方とも、エンドホストアドレスに基づいている。すなわち、コンテンツの消費者は、典型的には物理的なオブジェクト又は位置に関連しているアドレス（例えば、ＩＰアドレスやＥｔｈｅｒｎｅｔ（登録商標）メディアアクセス制御（ＭＡＣ）アドレス）からコンテンツを明示的に要求することによってコンテンツを受信することができるぎすぎない。この制限されたアドレス指定方式は、絶え間なく変化するネットワーク需要を満たすためには徐々により不適切になってきている。
【０００３】
近年、情報中心ネットワーク（ＩＣＮ）アーキテクチャが業界において提案されており、コンテンツは、直接名称付けられてアドレス指定される。コンテンツ中心ネットワーク（ＣＣＮ）、典型的なＩＣＮアーキテクチャは、コンテンツの伝達への新たなアプローチをもたらす。コンテンツが移動するエンドツーエンドの会話としてアプリケーションレベルでみられるネットワークトラフィックを有する代わりに、コンテンツは、その固有の名称に基づいて要求又は返送され、ネットワークは、プロバイダから消費者へとコンテンツをルーティングする責任を負う。なお、コンテンツは、テキスト、画像、ビデオ及び／又はオーディオなどのデータの任意の形態を含む通信システムにおいて伝達されることができるデータを含むことに留意すべきである。消費者及びプロバイダは、ＣＣＮの内外におけるコンピュータ又は自動処理を使用している人とすることができる。コンテンツの一部は、コンテンツ全体又はコンテンツの各部を指すことができる。例えば、新聞記事は、データパケットとして具現化されるコンテンツの複数の部分によって表されてもよい。コンテンツの一部はまた、認証データ、作成日付、コンテンツ所有者などの情報によってコンテンツの一部を記述又は増大するメタデータと関連付けることができる。
【０００４】
ＣＣＮにおいて、名称が重要な役割を果たしている。具体的には、コンテンツオブジェクト及びインタレストは、典型的には階層的に構造化された可変長識別子（ＨＳＶＬＩ）であるそれらの名称によって識別される。インタレスト及びコンテンツオブジェクトは、それらの名称に基づいてネットワークを流れる。コンピューティングデバイスが最初にＣＣＮネットワークに参加すると、インタレストメッセージの転送先を知る必要があり、それはまた、新たな環境における基本サービスを取得するために送信する必要があるインタレストメッセージに何の名称又は名称接頭辞が含まれるべきであるかを知る必要がある。さらに、デバイスは、ＣＣＮネットワークに自身を登録する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の１つの実施形態は、コンテンツ中心ネットワーク（ＣＣＮ）におけるデバイス登録及び検出のためのシステムを提供する。動作中、システムは、コンピュータにより、クライアントデバイスの登録のためのインタレストを受信する。インタレストは、クライアントデバイスに関連付けられた少なくとも固有の識別子を含む。インタレストに応答して、システムは、少なくともクライアントデバイスに割り当てられた名称を含むコンテンツオブジェクトを生成し、クライアントデバイスに対してコンテンツオブジェクトを送信し、それにより、クライアントデバイスがＣＣＮ内の他のクライアントデバイスによって検出されるのを可能とする。
【０００６】
本実施形態の変形例において、インタレストは、さらに、クライアントデバイスに関連付けられた公開鍵、デバイス種類、デバイスモデル番号、及び、任意の形式におけるデバイス識別子のうちの１つ以上を含む。
【０００７】
本実施形態の変形例において、コンテンツオブジェクトは、さらに、クライアントデバイスに割り当てられたルーティング可能な名称接頭辞、サブディレクトリデバイス検出名称空間、下位のデータを公開するためのクライアントデバイスの１つ以上の名称空間、及び、必要に応じて署名鍵を取得するためのクライアントデバイスの名称空間のうちの１つ以上を含む。
【０００８】
本実施形態の変形例において、インタレストは、予め定められた名称接頭辞を有する。
【０００９】
さらなる変形例において、システムは、クライアントデバイスの初期設定中に予め定められた名称接頭辞のクライアントデバイスを通知する。
【００１０】
さらなる変形例において、予め定められた名称接頭辞は、クライアントデバイスの製造業者によって提供される。
【００１１】
本実施形態の変形例において、システムは、割り当てられた名称を使用してクライアントデバイスを追加することによってデバイスデータベースを更新する。
【００１２】
さらなる変形例において、システムは、ＣＣＮ内の他のデバイスの検出のための追加のインタレストを受信する。追加のインタレストに応答して、システムは、デバイスデータベースに記憶された情報に基づいてデバイスリストコンテンツオブジェクトを生成し、デバイスリストコンテンツオブジェクトを返送する。
【００１３】
さらなる変形例において、システムは、追加のインタレストを送信するデバイスがデバイスリストコンテンツオブジェクトを取得するために認証されたかどうかを判定するためにセキュリティチェックを実行する。追加のインタレストを送信するデバイスがデバイスリストコンテンツオブジェクトを取得するために認証されたとの判定に応答して、システムは、認証されたデバイスに対してデバイスリストコンテンツオブジェクトを送信する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態にかかるネットワークの例示的なアーキテクチャの図である。
【図２】図２は、本発明の実施形態にかかるＣＣＮ動的名称空間設定プロトコル（ＤＮＣＰ）クライアントの例示的なアーキテクチャを提示する図である。
【図３】図３は、本発明の実施形態にかかるＣＣＮ−ＤＮＣＰサーバの例示的なアーキテクチャを提示する図である。
【図４】図４は、本発明の実施形態にかかる動的名称空間設定のための例示的なサーバ処理を示すフローチャートである。
【図５】図５は、本発明の実施形態にかかる動的名称空間設定のための例示的なクライアント処理を示すフローチャートである。
【図６】図６は、本発明の実施形態にかかるデバイス検出ブローカの例示的なアーキテクチャを示す図である。
【図７】図７は、本発明の実施形態にかかるデバイス検出ブローカによって実行される例示的なデバイス登録処理を示すフローチャートである。
【図８】図８は、本発明の実施形態にかかるデバイス検出ブローカによって実行される例示的なデバイス検出処理を示すフローチャートである。
【図９】図９は、本発明の実施形態にかかるデバイス登録及び検出のための例示的なシステムの図である。
【発明を実施するための形態】
【００１５】
図面において、同様の参照番号は、同じ図要素を指している。
【００１６】
本発明の実施形態は、ＣＣＮにおけるデバイス登録及び検出のためのシステム及び方法を提供する。解決策は、新たな「追加設定なしの（ｏｕｔ−ｏｆ−ｔｈｅ−ｂｏｘ）」デバイスが、それらのデータを公開するためにネットワークに自身を登録するのを可能とし、既存のデバイスがネットワークに新たに登録されたデバイスを検出するのを可能とする。さらにまた、新たなデバイスがルーティング可能な名称接頭辞を有し且つその名称接頭辞のもとに到達する用意がある場合、その名称接頭辞に対する適切なインタレストメッセージは、このデバイスにルーティングされることができる。それはまた、１つ以上の認証された名称接頭辞のもとにコンテンツの提供を開始（又は公開）することができる。より具体的には、デバイスが新たに「追加設定なし」である場合、又は、新たなＣＣＮ環境に導入される場合、それは、初期設定の一部として、登録サービス及びデバイス検出サービスの名称空間を取得する。続いて、登録サービスの名称空間に対して必要な登録情報を含むインタレストメッセージを送信することができる。登録サービスが全ての必要な情報がインタレストメッセージによって提供されていると判定した場合、登録サービスは、デバイスに対してコンテンツオブジェクトを返送し、デバイス名称及びデバイスデータベース内のそのデバイスに関連する他の情報を含む。デバイスはまた、順番にコンテンツオブジェクトを返送するデバイス検出サービスの名称空間に対してインタレストメッセージを送信することができる。返送されたコンテンツオブジェクトは、必要に応じて、ネットワーク内の全ての登録されたデバイスをリスト化してもよい。
【００１７】
一般に、ＣＣＮは、インタレスト及びコンテンツオブジェクトという２種類のメッセージを使用する。インタレストは、コンテンツオブジェクトの「名称」とも称される階層的に構造化された可変長識別子（ＨＳＶＬＩ）を運び、そのオブジェクトの要求として機能する。ネットワーク要素（例えば、ルータ）が同じ名称についての複数のインタレストを受信した場合、それらのインタレストを集約することができる。マッチングコンテンツオブジェクトを有するインタレストの経路に沿ったネットワーク要素は、インタレストを満足するそのオブジェクトをキャッシュして返送することができる。コンテンツオブジェクトは、インタレストの起源へとインタレストの逆経路をたどる。コンテンツオブジェクトは、他の情報のうち、同じＨＳＶＬＩ、オブジェクトのペイロード、及び、ペイロードにＨＳＶＬＩをバインドするために使用される暗号情報を含む。
【００１８】
本開示において使用される用語は、一般に、以下のように定義される（ただし、それらの解釈は、そのように限定されるものではない）。
【００１９】
「ＨＳＶＬＩ」：階層的に構造化された可変長識別子はまた名称とも称される。それは、可変長のオクテット文字列とすることができる名称要素の順序付きリストである。人間が読み取り可能な形式において、それは、ｃｃｎｘ：／ｐａｔｈ／ｐａｒｔなどの形式で表現されることができる。また、ＨＳＶＬＯは、人間が読み取り可能ではない。上述したように、ＨＳＶＬＩは、コンテンツを指し、それはコンテンツについての組織構造を表すことが可能であり且つ少なくとも部分的に人間にとって意味があり得るのが望ましい。ＨＳＶＬＩの個別要素は、任意長を有することができる。さらにまた、ＨＳＶＬＩは、明示的に区切られた要素を有することができ、数バイトの任意のシーケンスを含むことができ、人間が読み取り可能な文字に限定されるものではない。最長接頭辞マッチング探索は、ＨＳＶＬＩを有するパケットの転送において重要である。例えば、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ」におけるインタレストを示すＨＳＶＬＩは、「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｔｅｓｔ．ｔｘｔ」及び「／ｐａｒｃ／ｈｏｍｅ／ｂｏｂ／ｂａｒ．ｔｘｔ」の双方とマッチングする。最長マッチングは、それが最も具体的であることから、名称要素の数の観点で最良と考えられる。ＨＳＶＬＩの詳細な説明は、２００９年９月２３日に出願された発明者Ｖａｎ  Ｌ．  Ｊａｃｏｂｓｏｎ及びＪａｍｅｓ  Ｄ．  Ｔｈｏｒｎｔｏｎによる「ＳＹＳＴＥＭ  ＦＯＲ  ＦＯＲＷＡＲＩＤＮＧ  Ａ  ＰＡＣＫＥＴ  ＷＩＴＨ  Ａ  ＨＩＥＲＡＲＣＨＩＣＨＡＬＬＹ  ＳＴＲＵＣＴＵＲＥＤ  ＶＡＲＩＡＢＬＥ−ＬＥＮＧＴＨ  ＩＤＥＮＴＩＦＩＥＲ（階層的に構造化された可変長識別子を有するパケットを転送するシステム）」と名称が付された米国特許第８，１６０，０６９号明細書においてみることができる。
【００２０】
「インタレスト」：コンテンツオブジェクトの要求である。インタレストは、ＨＳＶＬＩ名の接頭辞と、同じ名称接頭辞を有する複数のオブジェクトの中から選択するために使用可能である他の任意のセレクタとを指定する。名称がインタレスト名称接頭辞（及び必要に応じて発行者鍵ＩＤマッチングなどの他の要求されたパラメータ）にマッチングする全てのコンテンツオブジェクトは、インタレストを満たす。
【００２１】
「コンテンツオブジェクト」：インタレストに応答して送信されるデータオブジェクトである。それは、ＨＳＶＬＩ名称と、暗号化署名を介してともに結合されているコンテンツペイロードとを有する。必要に応じて、全てのコンテンツオブジェクトは、コンテンツオブジェクトのＳＨＡ−２５６ダイジェストから構成された暗黙的な端末名称要素を有する。１つの実施形態において、暗黙的なダイジェストは、ワイヤ上で転送されないが、必要に応じて、各ホップにおいて計算される。
【００２２】
「フェース」：ＣＣＮにおいて、用語フェースは、インターフェースの概念を一般化したものである。フェースは、ネットワークに対する又は直接アプリケーションパーティに対する接続とすることができる。フェースは、特定のネットワークインターフェース上でブロードキャスト又はマルチキャストパケットを送受信するように、又は、下層伝達におけるポイントツーポイントアドレス指定を使用して若しくはトンネル（例えばＴＣＰトンネル）を使用してパケットを送受信するように構成されることができる。フェースはまた、ＵＤＰのようなカプセル化又はＯＳ固有のプロセス間通信路を介して、同じマシン上で実行されている単一のアプリケーションプロセスへの接続とすることもできる。全てのメッセージは、フェースを介して到来し、フェースを介して送信される。
【００２３】
前述したように、ＨＳＶＬＩは、コンテンツの一部を表し、階層的に構造化され、最も一般的なレベルから最も具体的なレベルまでの順序付きの連続要素を含む。各ＨＳＶＬＩの長さは、固定されていない。コンテンツ中心ネットワークにおいて、従来のＩＰネットワークとは異なり、パケットは、ＨＳＶＬＩによって識別可能である。例えば、「ａｂｃｄ／ｂｏｂ／ｐａｐｅｒｓ／ｃｃｎ／ｎｅｗｓ」は、コンテンツの名称とすることができ、対応するパケット、すなわち、「ＡＢＣＤ」と名称が付された組織の「Ｂｏｂ」と名称が付されたユーザについての新聞の「ｃｃｎ」集合からの「ｎｅｗｓ」記事を識別する。コンテンツの一部を要求するために、ノードは、コンテンツの名称によってそのコンテンツにおけるインタレストを表現する（例えば、ブロードキャストする）。コンテンツの一部におけるインタレストは、コンテンツの名称又は識別子に応じてコンテンツについてのクエリとすることができる。コンテンツは、ネットワークにおいて利用可能な場合、コンテンツを記憶する任意のノードから要求ノードへと返送される。ルーティングインフラストラクチャは、情報を有する可能性が高いと予想されるノードに対してインタレストをインテリジェントに伝播した後、インタレストメッセージによって横断される逆経路に沿って利用可能なコンテンツを戻す。基本的に、コンテンツオブジェクトは、インタレストメッセージによって残されたブレッドクラムをたどり、それゆえに要求ノードに到達する。
【００２４】
図１は、本発明の実施形態にかかるネットワークの例示的なアーキテクチャを図示している。この例において、ネットワーク１８０は、ノード１００〜１４５を備える。ネットワーク内の各ノードは、１つ以上の他のノードに結合される。ネットワーク接続１８５は、そのような接続の例である。ネットワーク接続は実線で示されているが、各線はまた、１つのノードが他のノードに結合することができるサブネットワーク又はスーパーネットワークを表すことができる。ネットワーク１８０は、コンテンツ中心、ローカルネットワーク、スーパーネットワーク又はサブネットワークとすることができる。これらのネットワークのそれぞれは、１つのネットワーク内のノードが他のネットワーク内のノードに到達できるように相互接続可能である。ネットワーク接続は、ブロードバンド、無線、電話、衛星又は任意のタイプのネットワーク接続とすることができる。ノードは、コンピュータシステム、ユーザを表すエンドポイント及び／又はインタレストを生成したりコンテンツを発信したりすることができるデバイスとすることができる。
【００２５】
本発明の実施形態によれば、消費者は、コンテンツの一部についてのインタレストを生成し、ネットワーク１８０内のノードにそのインタレストを転送することができる。コンテンツの一部は、ネットワークの内外に配置されることができる発行者又はコンテンツプロバイダによってネットワーク１８０内のノードに格納されることができる。例えば、図１において、コンテンツの一部におけるインタレストは、ノード１０５において生じる。コンテンツがノードにおいて利用可能でない場合、インタレストは、第１のノードに結合された１つ以上のノードに流れる。例えば、図１において、インタレストは、利用可能なコンテンツを有していないノード１１５に流れる（インタレストフロー１５０）。次に、インタレストは、ノード１１５からやはりコンテンツを有していないノード１２５に流れる（インタレストフロー１５５）。そして、インタレストは、利用可能なコンテンツを有していないノード１３０に流れる（インタレストフロー１６０）。そして、コンテンツオブジェクトの流れは、コンテンツが配信されるノード１０５に到達するまでその経路を逆に引き返す（コンテンツフロー１６５、１７０及び１７５）。認証などの他のプロセスは、コンテンツの流れに含まれることができる。
【００２６】
ネットワーク１８０において、コンテンツホルダ（ノード１３０）とインタレスト生成ノード（ノード１０５）との間の経路における任意数の中間ノード（ノード１００〜１４５）は、ネットワークにわたって移動するのにともないコンテンツのローカルコピーをキャッシングに関与することができる。キャッシングは、ローカルにキャッシュされたコンテンツへのアクセスを暗黙的に共有することによって他の加入者の近傍に位置する第２の加入者についてのネットワーク負荷を低減する。
【００２７】
ＣＣＮにおいて、各ノードは、転送情報ベース（ＦＩＢ）、コンテンツストア（ＣＳ）及び保留インタレストテーブル（ＰＩＴ）を含む３つの主要なデータ構造を維持する。
【００２８】
ＦＩＢは、マッチングコンテンツオブジェクトのポテンシャルソースに向けてインタレストパケットを転送するために使用される。一般に、ルーティングプロトコルは、ネットワーク内の全てのノード間でＦＩＢを追加するために使用される。ＦＩＢエントリは、多くの場合、マッチングするインタレストが転送先となる少なくとも１つのフェースの物理アドレスを含む各エントリに名称接頭辞によってインデックスされている。インタレストメッセージを転送する際に、名称の最長接頭辞マッチング探索は、マッチングするエントリをみつけるためにＦＩＢにおいて実行される。
【００２９】
コンテンツストア（ＣＳ）は、ＩＰルータにおいて使用されるバッファメモリと同様である。より具体的には、ＣＳは、異なる消費者による効率的なデータ検索を可能とするこのノードを通過するコンテンツオブジェクトを一時的にバッファリングする。ルータがインタレストパケットを受信すると、そのコンテンツストアにマッチングコンテンツオブジェクトがあるかどうかを最初に確認する。
【００３０】
保留インタレストテーブル（ＰＩＴ）は、返送されたコンテンツオブジェクトがその要求者へと下流に送信されることができるようにコンテンツソースに向かって上流に転送されたインタレストを追跡する。ＣＣＮにおいて、インタレストパケットのみがルーティングされる。返送コンテンツオブジェクトは、コンテンツ要求者へと戻るインタレストパケットのトレイルをたどる。インタレストについてのＰＩＴエントリは、インタレストの名称及びそのインタレストを要求した１つ又は複数の到来フェースを指定する。
【００３１】
インタレストパケットが所定のフェースに到着すると、最長マッチング探索がコンテンツ名称又はＨＳＶＬＩに基づいて行われる。名称の探索に使用されるインデックス構造は、ＣＳマッチングがＦＩＢマッチングにわたって好まれるＰＩＴマッチングにわたって好まれるように順序付けられる。したがって、インタレストにマッチングするＣＳにおけるコンテンツオブジェクトが既に存在する場合、コンテンツオブジェクトは、インタレストが到着したフェースを介して送信され、インタレストは破棄される。それ以外の場合、ＰＩＴは、マッチングをみつけることができるかどうかを確認するために検査される。そうである場合、インタレストの到着フェースは、ＰＩＴエントリの要求元フェースリストに追加され、インタレストは破棄される。そうでない場合、ＦＩＢが検査され、インタレストは、マッチングＦＩＢエントリにリスト化されている多くのフェースの１つに沿って転送される。
【００３２】
上述したように、ＣＣＮにおいて、（インタレスト及びコンテンツオブジェクトを含む）パケットは、それらの名称接頭辞に基づいてネットワークを流れる。デバイスが初期化されたとき（はじめて又はそれがネットワークに参加するときのいずれか）、デバイスは、その存在をネットワーク内の他のデバイスに通知し、ネットワークルータにそのフェースの物理アドレスを通知する必要がある。例えば、センサ（温度計など）がはじめて家庭内に設置された場合、センサは、そのデータの送信先を知るために構成される必要がある。同様に、ラップトップやタブレットコンピュータが家庭環境からコーヒーショップに移動された場合も、コンピュータは、そのインタレストの送信先を知る必要があり、必要に応じて、ネットワーク上の他のデバイスにそれに到達する方法を知らせる必要がある。初期化中にデバイスを手動で構成することは可能であるものの、既存のＣＣＮプロトコルは、自動化されたデバイスの初期化のための解決策を欠いている。
【００３３】
既存のインターネットプロトコル（ＩＰ）ネットワークにおいて、インターフェース及びサービスについてのＩＰアドレスなどのネットワーク構成パラメータを動的に配信するために動的ホスト構成プロトコル（ＤＨＣＰ）が使用される。より具体的には、ＤＨＣＰは、コンピュータがＤＨＣＰサーバから自動的にＩＰアドレス及びネットワークパラメータを要求するのを可能とし、手動でのこれらの設定の構成を有することからのネットワーク管理者又はユーザのニーズを低減する。同様の機構は、デバイスがはじめてオンラインになったとき又は新たな環境に導入されたときにデバイスを初期化するためにＣＣＮにおいて必要とされる。より具体的には、デバイスがＣＣＮネットワークに適切に機能するために、デバイスは、所定のサービスを受けるためにインタレストパケットの送信先を知る必要がある。ＣＣＮがパケットを移動するために名称接頭辞をあてにすることから、デバイスの初期設定は、名称空間の構成を含む。例えば、デバイスは、そのＦＩＢにおいて（１つ以上の適切なエントリを含むことができる）デフォルト転送情報を設定する必要があり、又は、これらのサービスに対する（インタレストの形態での）要求が適切に転送されるように様々なサービスの名称空間を設定する必要があることがある。さらに、サービスを得るために、デバイスは、適切なインタレストメッセージに含まれるように名称又は名称接頭辞を知る必要がある。サービスの例は、これらに限定されるものではないが、デバイス登録、サービス検出、キーを認証するための証明サービスなどを含むことができる。
【００３４】
デバイスの初期化のための自動化された解決策を提供するために、いくつかの実施形態において、システムは、デフォルト転送エントリ、デバイス登録及び検出サービスの名称空間、並びに、名称解決（間接）サービスの名称空間などのデバイスの適切な機能に必要とされる名称空間によってデバイスを自動的に構成するために、動的名称空間設定プロトコル（ＤＮＣＰ）を実装する。なお、ＤＮＣＰを機能するために、以下の条件が満たされる必要があることに留意すべきである。第１に、各デバイスは、基本的なＣＣＮスタックを実行する必要があり、ＣＣＮインタレストやコンテンツオブジェクトを生成して処理することが可能である。第２に、デバイスは、手動で設定されるか又は（これらに限定されるものではないが、Ｅｔｈｅｒｎｅｔ（登録商標）、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）などを含むことができる）基礎となるネットワーク接続を自動的に確立することが可能である。第３に、各デバイスは、メディアアクセス制御（ＭＡＣ）アドレスに類似する製造元から提供された固有のデバイス識別子を備える必要がある。なお、そのようなデバイスＩＤは、１６又は３２バイト長とすることができ、又は、任意長を有することができることに留意すべきである。さらに、それは、デバイス製造業者によって定義される任意の形態をとることができる。例えば、特定の製造業者によって製造された各温度センサは、製造業者によって発行された固有のＩＤを有していてもよい。さらに、各デバイスは、公開したいコンテンツオブジェクトに署名するために、公開−秘密鍵対、対称鍵又はＣＣＮ要件を確認する任意の他の署名鍵などの署名鍵によって事前にロードされる必要がある。デバイスがそのような鍵によって予め設定されていない場合、ＤＮＣＰサービスは、このサービスの名称を指定することによってその鍵を取得又は証明するための適切なサービスに対してデバイスを指示する必要がある。
【００３５】
図２は、本発明の実施形態にかかるＣＣＮの動的名称空間設定プロトコル（ＤＮＣＰ）クライアントの例示的なアーキテクチャを提示する図を示している。図２において、ＣＣＮ−ＤＮＣＰクライアント２００は、フェース２０２、２０４及び２０６などの複数のフェースと、インタレスト生成モジュール２０８と、転送モジュール２１０と、受信モジュール２１２と、転送情報ベース（ＦＩＢ）２１４と、名称空間設定モジュール２１６とを含む。
【００３６】
フェース２０２〜２０６は、物理インターフェースだけでなく、パケットの送受信が可能なアプリケーションプロセスも含むことができる。インタレスト生成モジュール２０８は、コンテンツ又はサービスへの要求とすることができるインタレストパケットを生成する責を負う。いくつかの実施形態において、インタレスト生成モジュール２０８は、ＤＮＣＰサービスを要求するために使用可能である「ＨＥＬＬＯ」インタレストメッセージを生成するように構成されている。さらなる実施形態において、「ＨＥＬＬＯ」インタレストメッセージは、予め定められた名称空間内に生成される。換言すれば、システムは、ＤＮＣＰ目的のために（「／ｈｅｌｌｏ」などの）名称空間を予め定義して予約することができ、ＣＣＮ−ＤＮＣＰクライアント２００は、そのような名称空間を有する（マシン上で実行しているＣＣＮスタックによって）予め構成されている。なお、予め定義されたＤＮＣＰ名称空間が「／ｈｅｌｌｏ」である場合、「ＨＥＬＬＯ」インタレストは、「／ｈｅｌｌｏ」としての名称接頭辞を有することに留意すべきである。
【００３７】
転送モジュール２１０は、ＣＣＮ−ＤＮＣＰクライアント２００上の様々なフェースに対してインタレスト又はコンテンツオブジェクトなどのパケットを転送する責を負う。ＣＣＮプロトコルによれば、転送モジュール２１０は、ＦＩＢ２１４におけるエントリに基づいてインタレストを転送するとともに、ＰＩＴ（図２には示されていない）におけるエントリに基づいてコンテンツオブジェクトを転送する。いくつかの実施形態において、転送モジュール２１０は、ＣＣＮ−ＤＮＣＰクライアント２００における全てのフェースに対して「ＨＥＬＬＯ」インタレストを転送（又はブロードキャスト）するように構成されている。ＦＩＢ２１４は、インタレストを転送するための情報を格納する。ＦＩＢ２１４におけるエントリは、多くの場合、名称接頭辞によってインデックスされている。いくつかの実施形態において、ＦＩＢ２１４は、デフォルトのエントリに（初期化プロセス中に）予め追加されることができ、転送モジュール２１０は、インタレストを転送するためにそれらのデフォルトエントリを使用することができる。
【００３８】
受信モジュール２１２は、様々なフェースからインタレストやコンテンツオブジェクトを含むことができるパケットを受信する責を負う。例えば、受信モジュール２１２は、以前に送信されたインタレストに応じてコンテンツオブジェクトを受信することができる。いくつかの実施形態において、受信モジュール２１２は、リモートＤＮＣＰサーバから「ＨＥＬＬＯ」インタレストに対する応答を受信することができる。ＤＮＣＰ応答は、これらに限定されるものではないが、ＦＩＢ２１４についてのデフォルトエントリと、デバイス登録及び検出、サービス検出、コンテンツ名称についての署名鍵又はハッシュを得るための解決サービス、鍵サービス、印刷サービス、及び、今日使用されるか又は将来検出されることができる任意の他のネットワークサービスなどの様々なサービスについての名称空間とを含むことができる。
【００３９】
ＦＩＢ２１４についてのデフォルトエントリは、ＤＭＺ（非武装地帯）ルータとすることができるか又はＭＡＣアドレス００：０１：０２：０３：０４：０５を有していてもよいデフォルト転送者の物理アドレスを指定することができる。したがって、ルート名称空間「／」内の任意のインタレストは、デフォルト転送者に転送されることができる。他のデフォルトエントリは、ローカルルータ及びそのマッチングする名称空間の物理アドレスを指定することができる。例えば、追加のデフォルトエントリは、ＭＡＣアドレス１２：３４：５６：７８：９Ａ：９Ｂに名称接頭辞「／ａｂｃ」をマッピングすることができ、それは、「／ａｂｃ」名称空間における全てのインタレストがＭＡＣアドレス１２：３４：５６：７８：９Ａ：９Ｂを有するフェースに転送されるべき旨を意味する。
【００４０】
名称空間設定モジュール２１６は、ＤＮＣＰ応答に基づいてＣＣＮ−ＤＮＣＰクライアント２００上に名称空間を設定する責を負う。名称空間が正しく設定されると、インタレスト生成モジュール２０８は、その後、それに応じて（インタレストの形態である）様々なサービス要求を生成することができ、転送モジュール２１０は、適切な宛先にそれらのサービス要求を転送することができる。例えば、部屋２０１５に提供されるデバイス検出サービスについての名称空間が「／ｄｅｖｉｃｅｓ／ｒｏｏｍ２０１５」である旨をＤＮＣＰ応答が指定する場合、インタレスト生成モジュール２０８は、名称接頭辞「／ｄｅｖｉｃｅｓ／ｒｏｏｍ２０１５」を有するインタレストを生成することができ、転送モジュール２１０は、名称接頭辞に基づいてそのようなインタレストを転送することができる。さらに、システムは、デバイスタイプに基づいてデバイス検出空間を絞り込むために基礎スキームを使用することができる。例えば、名称空間「／ｄｅｖｉｃｅｓ／ｒｏｏｍ２０１５／ｔｈｅｒｍｏｍｅｔｅｒｓ」は、部屋２０１５における全ての温度計を検出するために使用可能である。他の追加の名称空間はまた、ＤＮＣＰ応答に含められることができ、それゆえに、名称空間設定モジュール２１６がそれに応じてそれらの名称空間を設定するのを可能とする。例えば、ネットワークは、プリンタを含むことができ、新たなクライアント装置に対するＤＮＣＰ応答は、プリンタサービスについての名称空間が「／ａｂｃ／ｐｒｉｎｔｅｒ」であることを述べることができる。新たなデバイスが文書を印刷しようとするとき、それは、名称空間「／ａｂｃ／ｐｒｉｎｔｅｒ」に対してその印刷要求を送信することができる。なお、名称空間に関連付けられている転送情報は、ＦＩＢ２１４に格納されることに留意すべきである。
【００４１】
図３は、本発明の実施形態にかかるＣＣＮ−ＤＮＣＰサーバの例示的なアーキテクチャを提示する図を示している。図３において、ＣＣＮ−ＤＮＣＰサーバ３００は、フェース３０２、３０４及び３０６などの多数のフェースと、パケット処理モジュール３０８と、ＤＮＣＰリスナ３１０と、ＤＮＣＰ応答生成モジュール３１２と、ＤＮＣＰデータベース３１４と、転送モジュール３１６とを含む。
【００４２】
フェース３０２〜３０６は、フェース２０２〜２０６と同様であり、物理インターフェース及びアプリケーションプロセスの双方を含むことができる。パケット処理モジュール３０８は、様々なフェースにおいて受信したパケットを処理する責を負う。いくつかの実施形態において、パケット処理モジュール３０８は、受信したパケットの名称接頭辞を抽出する。さらなる実施形態において、受信したインタレストの名称接頭辞が所定のＤＮＣＰ名称空間（例えば、「／ｈｅｌｌｏ」名称空間）におけるものである場合、パケット処理モジュール３０８は、所定の名称空間におけるインタレストを聞くＤＮＣＰリスナ３１０へとインタレストを転送する。上述した例において、所定のＤＮＣＰ名称空間は、「／ｈｅｌｌｏ」である。ＤＮＣＰリスナ３１０が所定のＤＮＣＰ名称空間において「ＨＥＬＬＯ」インタレストメッセージを受信すると、ＣＣＮ−ＤＮＣＰサーバ３００は、「ＨＥＬＬＯ」インタレストを送信するノードがＤＮＣＰサービスを要求していると判断することができる。ＤＮＣＰ要求に応答して、ＤＮＣＰ応答生成モジュール３１２は、ＤＮＣＰデータベース３１４に格納された情報に基づいて、コンテンツパケットの形態で適切なＤＮＣＰ応答を生成する。ＤＮＣＰデータベース３１４は、デフォルトＦＩＢエントリと、デバイス登録及び検出の名称空間、ネットワークサービス検出の名称空間、解決サービスの名称空間、鍵サービスの名称空間などの様々な名称空間設定情報とを格納する。デバイス登録及び検出の名称空間は、クライアントデバイスが登録又はデバイス検出インタレストメッセージをサーバに対して送信するのを可能とする。サービス検出の名称空間は、利用可能なネットワークサービスを検出するために、クライアントデバイスがインタレストメッセージを送信するのを可能とする。解決サービスの名称空間は、コンテンツ名称の発行者鍵又はハッシュを得るために、クライアントデバイスが名称空間にインタレストを送信するのを可能とする。鍵サービスの名称空間は、クライアントデバイスが証明された鍵によって予めロードされていない場合、証明された署名鍵を得るために、クライアントデバイスがインタレストを送信するのを可能とする。なお、ネットワーク環境が時間とともに変化することがあることから、ＤＮＣＰ応答パケットは、必要に応じて、どのくらい長く名称空間が有効なままであるかを知らせる各名称空間についてのリース期間を含むことができることに留意すべきである。そのようなシナリオにおいて、クライアントデバイスは、それらの名称空間設定がなおも有効であることを確実にするために、また、必要なときにそれらの名称空間設定を更新するために、ＤＮＣＰインタレストを定期的に送信する必要があるかもしれない。なお、クライアントデバイスが前のＤＮＣＰ応答を受信したことから、再びＤＮＣＰインタレストをブロードキャストする必要がなく、ＤＮＣＰサービスに対してＤＮＣＰインタレストを直接送信することができることに留意すべきである。
【００４３】
（コンテンツオブジェクトとしての）生成されたＤＮＣＰ応答パケットは、応答パケットが「ＨＥＬＬＯ」インタレストの発信ノードに対して逆転送し返されるのを確実にするために、転送モジュール３１６によって「ＨＥＬＬＯ」インタレストの到来フェースに転送し返される。
【００４４】
ＤＮＣＰデータベースに格納された設定情報が単一のコンテンツオブジェクトに対して多すぎるか、又は、設定情報がデバイスの動作のために必須であってそのうちのいくつかが任意であり得る複数のセクタを含むことができる状況が存在する。例えば、印刷サービスは任意であってもよいのに対して、デフォルトＦＩＢエントリは必須の設定情報である。いくつかの実施形態において、ＤＮＣＰ応答生成モジュール３１２は、追加の設定情報を取得するためにクライアントデバイスのための命令を含むＤＮＣＰコンテンツオブジェクトを生成してもよい。例えば、クライアントデバイスがＣＣＮ−ＤＮＣＰサーバ３００に転送される第１の「ＨＥＬＬＯ」インタレストを送信すると、ＤＮＣＰ応答生成モジュール３１２は、必須の設定情報を含むＤＮＣＰコンテンツオブジェクトを生成してもよい（デフォルトＦＩＢエントリ及びデバイス登録の名称空間など）。ＤＮＣＰコンテンツオブジェクトはまた、より多くのＤＮＣＰ情報が利用可能であることを示すことができ、追加のＤＮＣＰ情報に関連付けられた名称空間を指定することができる。したがって、追加情報を得るために、クライアントデバイスは、指定された名称空間に追加のＤＮＣＰ要求を送信することができる。例えば、クライアントデバイスに対する初期ＤＮＣＰ応答は、印刷サービスが利用可能であることを示すことができ、印刷サービスの名称空間を得るために、クライアントデバイスは、「／ｈｅｌｌｏ−１」名称空間に新たな「ＨＥＬＬＯ」インタレストを送信する必要がある。同様に、利用可能なＤＮＣＰ情報が複数のコンテンツオブジェクトを占有している場合、クライアントデバイスに送信される第１のコンテンツオブジェクトは、後続のコンテンツを取得するために、クライアントデバイスが「／ｈｅｌｌｏ−１」名称空間に新たな「ＨＥＬＬＯ」インタレストを送信する必要があることを示すことができる。
【００４５】
図４は、本発明の実施形態にかかる動的名称空間設定のための例示的なサーバ処理を図示するフローチャートを示している。動作中、システムは、所定の名称空間におけるインタレストを聞き（動作４０２）、そのような名称空間における名称接頭辞を有する所定のインタレストがクライアントデバイスから受信されたかどうかを判定する（動作４０４）。例えば、所定の名称空間は、「／ｈｅｌｌｏ」などのＤＮＣＰ名称空間とすることができ、所定のＤＮＣＰインタレストは、予め定義された「ＨＥＬＬＯ」パケットとすることができる。いくつかの実施形態において、ＤＮＣＰ名称空間及び「ＨＥＬＬＯ」インタレストの形式は、サーバ及びクライアントデバイス上で実行されているＣＣＮプロトコルによって予め設定される。
【００４６】
システムがＤＮＣＰインタレストを受信した場合、システムは、ＤＮＣＰ応答を生成し（動作４０６）、ＤＮＣＰインタレストの発信ノードにＤＮＣＰ応答を返送する（動作４０８）。ＤＮＣＰ応答は、（クライアントデバイスがインタレストを送信することができるデフォルトのフェースなどの）デフォルトＦＩＢエントリのみならず、様々なサービスの名称空間を含むことができる。いくつかの実施形態において、ＤＮＣＰインタレストは、クライアントによって要求されたサービスの種類を示し、ＤＮＣＰ応答は、要求されたサービスに基づいて生成される。例えば、ＤＮＣＰインタレストは、発信ノードが署名鍵を有していないことを示すことができる。これに応答して、ＤＮＣＰ応答は、クライアントが署名鍵を取得するためにインタレストを送信することができる鍵サービスの名称空間を含む。
【００４７】
図５は、本発明の実施形態にかかる動的名称空間設定のための例示的なクライアント処理を図示するフローチャートを示している。動作中、新たな環境に参加するか又ははじめてオンラインにされたクライアントデバイスは、そのフェースの全てにＤＮＣＰ要求メッセージをブロードキャストする（動作５０２）。いくつかの実施形態において、ＤＮＣＰ要求メッセージは、予め定義された名称空間内の名称接頭辞を有するインタレストパケットである。予め定義された名称空間は、ＤＮＣＰサービス用に特別に予約された名称空間とすることができる。例えば、システムは、ＤＮＣＰサービスの名称空間「／ｈｅｌｌｏ」を予約することができる。そして、ＤＮＣＰインタレスト又は「ＨＥＬＬＯ」インタレストは、名称接頭辞「／ｈｅｌｌｏ」を有する。なお、ＤＮＣＰインタレスト（又は「ＨＥＬＬＯ」インタレスト）は、クライアントデバイスの全てのフェースにおいてブロードキャストされ、ＤＮＣＰサービスは、そのフェースの１つにおいて「ＨＥＬＬＯ」インタレストを直接受信することができるか又は他のデバイスによって転送された「ＨＥＬＬＯ」インタレストを受信することに留意すべきである。いくつかの実施形態において、ブリッジのタスクを実行したり、又は、ＣＣＮネットワーク内のＤＮＣＰサービスに対してこれらのデバイスが「ＨＥＬＬＯ」インタレストを受信して転送することができるような方法で設定された転送情報を有するネットワーク環境において（他のクライアントデバイスなどの）他のデバイスが存在する。
【００４８】
そして、クライアントデバイスは、ＤＮＣＰサービスからＤＮＣＰ応答パケットを受信する（動作５０４）。ＤＮＣＰ応答パケットは、コンテンツオブジェクトの形態である。いくつかの実施形態において、ＤＮＣＰコンテンツオブジェクトの名称は、「／ｈｅｌｌｏ」などのインタレストメッセージの名称と一致する。ＤＮＣＰコンテンツオブジェクトは、必要なサービスを得るためにクライアントデバイスによって使用可能なデフォルトＦＩＢエントリ及び様々な名称空間などのクライアントデバイスを構成するために使用可能な情報を含む。ＤＮＣＰ応答を受信すると、クライアントデバイスは、デフォルトエントリをそのＦＩＢに追加し、その名称空間を設定する（処理５０６）。なお、ＦＩＢがデフォルトエントリによって追加されて名称空間が設定されると、クライアントデバイスは、サービスを得るために適切な名称接頭辞を有するインタレストを生成することができるだろうことに留意すべきである。
【００４９】
いくつかの実施形態において、ＤＮＣＰ応答に含まれる名称空間は、それらが所定期間のみ有効であることを意味する（１日又は１０日などの）リース期間を有していてもよい。そのようなシナリオにおいて、クライアントデバイスは、リース期間が終わったかどうかを判定し（動作５０８）、日付構成設定まで得るためにＤＣＮＰインタレストを再送信することができる（動作５０２）。
【００５０】
なお、図２〜図５に示された例において、ＤＮＣＰ要求がＤＮＣＰサーバ又はサーバ処理によって応答されることに留意すべきである。実際には、それはまた、コンピュータのクラスタ上で実行されるＤＮＣＰ応答処理を有することが可能である。さらに、ＤＮＣＰインタレストに応答するためにＣＣＮネットワークにおいて他のピアクライアントコンピュータを有することも可能である。いくつかの実施形態において、ピアクライアントマシンは、リダイレクト情報を含むコンテンツオブジェクトとともにＤＮＣＰインタレストに応答することができる。例えば、コンテンツオブジェクトは、要求しているクライアントがＤＮＣＰ要求を送信することができる（ＤＮＣＰインタレストの名称空間とは異なる）の代替のＤＮＣＰ名称空間を提供することができる。このリダイレクトのコンテンツオブジェクトはまた、ＣＣＮネットワークにおける他のクライアントデバイスの設定情報を含むことができる。例えば、ＣＣＮネットワークに参加するクライアントデバイスは、「／ｈｅｌｌｏ」名称空間に対してＤＮＣＰインタレストを送信し、ＣＣＮネットワークにおける既存のピアクライアントデバイスからコンテンツオブジェクトを受信する。コンテンツオブジェクトは、新たなクライアントデバイスが設定情報を取得するために名称空間「／ｎａｍｅ−ａｂｃ」に対して新たなＤＮＣＰインタレストを送信する必要があることを示している。さらに、コンテンツオブジェクトはまた、新たなデバイスの登録のために及びネットワーク上の他の新たなデバイスの検出のためにネットワーク上の他のピアデバイスが「／ｄｅｖｉｃｅ−ｄｉｓｃｏｖｅｒｙ」名称空間を使用することを述べることができる。
【００５１】
クライアント装置が必要な名称空間設定情報を受信すると、デバイス登録及び検出などのサービスを得るために、適切な名称空間に対してインタレストパケットを送信することができる。デバイスが１つ以上の認証された名称接頭辞のもとでその下位のデータを公開するために及び／又はネットワーク上の他のデバイスがこのデバイスに到達するのを可能とするためにデバイスの登録が必須である。さらに、登録は、デバイスがネットワーク上にあるように且つデバイスを他の認証／セキュリティ処理にさらすことが許可されているのを検証するのを可能とする。いくつかの実施形態において、ネットワークが新たなデバイスを登録及び検出するために、全てのデバイスの登録及び設定サービスは、特定の名称空間においてインタレストメッセージを聞くように構成されている。この特定の名称空間は、予め定義されて合意されることができる。登録処理中に、新たなデバイスは、デバイスＩＤ及びインタレストメッセージに含まれるデバイスに関連する他の情報とともに、この特定の名称空間に対してインタレストメッセージを送信することができる。これらのインタレストメッセージに応答するように認証されているサービス（デバイス登録サービス又はデバイス検出サービスなど）は、コンテンツオブジェクトに返信することができる。コンテンツオブジェクトは、デバイスＩＤを確認し、そのデータを公開するためにデバイスによって使用可能な追加情報を提供する。
【００５２】
いくつかの実施形態において、デバイス検出ブローカは、ネットワーク内のデバイスに名称を割り当て、デバイスがそれらのデータを公開することができる名称空間を提供する。そのために、デバイス検出ブローカは、様々な種類のデバイスを表すことができる編成された名称空間構造を含むデバイス検出名称空間スキーマを管理する必要がある。さらに、デバイス検出ブローカは、デバイスが同じＣＣＮネットワーク内の他のデバイスを検出するのを支援する。
【００５３】
デバイス検出名称空間スキーマは、ネットワーク内のデバイスの検出を容易とするために意味のある方法で、様々な種類のデバイスに関連付けられた名称空間を編成する。デバイス検出名称空間スキーマを処理するためのいくつかの技術がある。１つのオプションは、デバイス検出名称空間のルート接頭辞として名称接頭辞を選択することである。例えば、名称空間「／ｄｅｖｉｃｅｓ」は、全てのデバイス検出サービスのためのルート接頭辞として使用可能である。さらに、下部構造スキーマもまた、デバイス検出の領域をさらに精緻化するために使用可能である。例えば、名称空間「／ｄｅｖｉｃｅｓ／ａｂｃ／ｒｏｏｍ２１０５」は、「／ａｂｃ」名称空間の部屋２１０５内の全てのデバイス検出サービスのための名称空間接頭辞として機能することができる。
【００５４】
さらにまた、デバイス種類に基づいてデバイス検出名称空間を絞り込むために下部構造スキーマを使用することができる。例えば、名称空間「／ｄｅｖｉｃｅｓ／ａｂｃ／ｐｒｉｎｔｅｒｓ」は、「／ｄｅｖｉｃｅ／ａｂｃ」名称空間において新たなプリンタを検出するために使用可能であるとともに、「／ｄｅｖｉｃｅｓ／ａｂｃ／ｔｈｅｒｍｏｍｅｔｅｒｓ／ｒｏｏｍ２１０５」は、「／ａｂｃ」名称空間における部屋２０１５内の温度計に関連する全てのデバイス検出サービスのために使用可能である。名称空間内の様々な下部構造を作成して管理する方法についての判定は、デバイス検出サービスによって処理されることができる。
【００５５】
第２のオプションは、デバイスがデバイス検出のために独自に製造業者が提供する名称空間スキーマを装備することである。例えば、「ｄｅｆ」社によって製造された全てのデバイスは、ルート接頭辞として「／ｄｅｖｉｃｅｓ／ｄｅｆ」を使用することができ、その特定の名称空間接頭辞に対してインタレストメッセージを送信することができる。このルート名称接頭辞において「聞いて」いるデバイス検出サービスは、インタレストメッセージを処理する。
【００５６】
第１及び第２のオプションは、双方とも、デバイス検出のための所定の名称空間スキーマに依存していることがわかる。換言すれば、デバイスは、デバイス検出名称空間によって（デバイス製造業者によって又はデバイス上で実行されるＣＣＮプロトコルによって）予め設定され、予め設定されたデバイス検出名称空間に対してインタレストを自動的に送信する。
【００５７】
第３のオプションは、デバイスが新たに追加設定なしとされたとき又ははじめて環境に導入されたときにデバイス検出名称空間を自動的に設定する上述したＤＮＣＰサービスに依存することである。具体的には、デバイスは、ＤＮＣＰ名称空間内のそのフェースの全てに「ＨＥＬＬＯ」インタレストをブロードキャストする。ＤＮＣＰサービスは、（「／ａｂｃ／ｄｅｖｉｃｅｓ」など）デバイス検出サービスのルート名称接頭辞を指定するコンテンツオブジェクトを有する「ＨＥＬＬＯ」インタレストに応答する。デバイスがそのようなコンテンツオブジェクトを受信すると、それは、デバイス検出サービスについての指定されたルート名称接頭辞に対してインタレストメッセージを送信する。
【００５８】
図６は、本発明の実施形態にかかる例示的なデバイス検出ブローカのアーキテクチャを図示する図を提示している。図６において、デバイス検出ブローカ６００は、フェース６０２、６０４及び６０６などの多数のフェースと、パケット処理モジュール６０８と、リスナ６１０と、デバイス登録モジュール６１２と、応答生成モジュール６１４と、名称空間データベース６１６と、デバイスデータベース６１８と、転送モジュール６２０とを含む。
【００５９】
フェース６０２〜６０６は、フェース２０２〜２０６と同様であり、物理インターフェース及びアプリケーションプロセスの双方を含むことができる。パケット処理モジュール６０８は、様々なフェースにおいて受信したパケットを処理する責を負う。いくつかの実施形態において、パケット処理モジュール６０８は、受信したインタレストの名称接頭辞を検査し、インタレストの名称接頭辞がデバイス検出名称空間の範囲内である場合にリスナ６１０に対してインタレストを送信する。リスナ６１０は、「／ａｂｃ／ｄｅｖｉｃｅｓ」などのデバイス検出名称空間のルート接頭辞におけるインタレストメッセージを聞く。なお、デバイス検出名称空間は、デバイス検出ブローカ６００に登録するためにデバイスについての（名称接頭辞「／ａｂｃ／ｄｅｖｉｃｅｓ／ｒｅｇｉｓｔｒａｔｉｏｎ」によって）登録サービスと、ネットワーク上の他のデバイスを検出するためにデバイスについての（名称接頭辞「／ａｂｃ／ｄｅｖｉｃｅｓ／ｌｉｓｔ」によって）検出サービスとを提供することができることに留意すべきである。なお、新たなデバイスは、他のデバイスによって検出されることができる前に最初に登録する必要があることに留意すべきである。
【００６０】
リスナ６１０が登録名称空間においてインタレストメッセージを受信すると、デバイス登録モジュール６１２は、インタレストメッセージに含まれる情報を抽出することによってインタレストを送信しているデバイスを登録する。いくつかの実施形態において、デバイス登録のためのインタレストメッセージは、これらに限定されるものではないが、（製造業者によって発行された固有のＩＤとすることができる）デバイスＩＤ、コンテンツを署名するためのデバイスによって使用される公開鍵（又は公開鍵への参照）、及び、デバイスの説明を含むデバイスに関連付けられた様々な情報を含むことができる。デバイスの説明は、（電球や温度計などの）デバイス種類、モデル番号などを含むことができる。受信した登録インタレストに基づいて、デバイス登録モジュール６１２は、インタレストが登録に必要な全ての情報を含むかどうかを判定する。そうである場合、応答生成モジュール６１４は、「登録確認」コンテンツオブジェクトを生成する。「登録確認」コンテンツオブジェクトは、デバイスの割り当てられた名称と、必要に応じてデバイスについてのルーティング可能な名称接頭辞を含むことができる。例えば、登録された温度計は、名称「／ｔｈｅｒｍｏｍｅｔｅｒ−ｉｄ−１２３」が与えられることができ、必要に応じてルーティング可能な名称接頭辞「／ａｂｃ／Ｒｏｏｍ２１０５／ｔｈｅｒｍｏｍｅｔｅｒ−ｉｄ−１２３」が与えられることができる。他のデバイス登録情報はまた、これらに限定されるものではないが、サブディレクトリ名称空間、デバイスがデータを公開するための名称空間（又はデバイスが公開するために認証された下位の名称空間）、及び、（まだそれらを有していない場合）デバイスが証明された鍵を取得することができる認証局の名称空間を含む「登録確認」コンテンツオブジェクトに含められることができる。なお、さらなる実施形態において、セキュリティポリシーに基づいて、デバイスが鍵サービスから鍵（公開−秘密鍵対など）を取得すると、デバイスは、デバイス検出ブローカ６００に対してその公開鍵とともにデバイス名称を送信するように要求されることができることに留意すべきである。これらの名称空間は、名称空間データベース６１６から取得される。なお、サブディレクトリ名称空間は、さらなるデバイス検出サービスを可能とすることに留意すべきである。例えば、サブディレクトリ名称空間「／ｄｅｖｉｃｅｓ／ａｂｃ／ｒｏｏｍ２１０５」は、名称空間「／ａｂｃ」内の部屋２１０５においてデバイス検出を可能とする。データを公開するための温度計の例示的な名称空間は、「／ａｂｃ／Ｒｏｏｍ２１０５／ｔｈｅｒｍｏｍｅｔｅｒ−ｉｄ−１２３／ｄａｔａ」とすることができる。なお、応答生成モジュール６１４は、デバイス登録情報の一部と次の部分を取得するためにクライアントデバイスによって使用可能な名称空間とをそれぞれ含む複数のコンテンツオブジェクトを生成することが可能であることに留意すべきである。換言すれば、コンテンツオブジェクトのチェーンは、次の項目へのポインタを含む各項目によって形成されることができる。
【００６１】
デバイス登録モジュール６１２が全ての必要な情報が提供されていると判定した場合、応答生成モジュール６１４は、デバイスにとって何の情報が正常に自身を登録するために必要とされるかを指定する「情報必要」コンテンツオブジェクトを生成する。必要とされ得る情報は、デバイス検出ブローカ６００によって現在実装されている特定のセキュリティポリシーに応じて、認証情報、鍵情報などを含むことができる。コンテンツオブジェクト（「登録確認」又は「情報必要」のいずれか）は、転送モジュール６２０によってデバイスに対して返送される。
【００６２】
デバイスが登録されると、デバイスデータベース６１８は、新たなデバイスに関連付けられた新たなデバイス名称及び登録情報を含むように更新される。デバイスデータベース６１８は、ネットワーク上の他のデバイスを検出する処理を容易とする。動作中、リスナ６１０が（「／ａｂｃ／ｄｅｖｉｃｅｓ／ｌｉｓｔ」などの）検出サービス名称空間においてインタレストメッセージを受信すると、応答生成モジュール６１４は、デバイスデータベース６１８に格納された情報に基づいてコンテンツオブジェクトを生成する。いくつかの実施形態において、このコンテンツオブジェクトは、ネットワークにおいて現在登録されている全てのデバイスのリストを含んでもよい。さらなる実施形態において、適切な認証及び暗号化は、デバイス検出処理の一部である。例えば、登録された全てのデバイスのリストを取得するために所定のデバイスのみが認証される。さらに、登録されたクライアントデバイスは、必要に応じて、ネットワーク内の他のクライアント装置によって検出されること自体を非表示とすることができる。
【００６３】
初期登録及び検出に加えて、クライアントデバイスはまた、デバイス検出ブローカ６００が更新された及び現在のネットワーク内の全てのアクティブデバイスのリストを維持することができるように、デバイス検出ブローカ６００に対して定期的なハートビートメッセージを送信することができる。いくつかの実施形態において、リスナ６１０は、（デバイスの初期設定中にデバイスに対して配信可能である）この所定のハートビート名称空間におけるインタレストメッセージを聞くことができる。デバイスによって送信されたハートビートインタレストは、デバイスの割り当てられた名称を含む必要があり、デバイスの鍵によって署名される。リスナ６１０がそのような定期的なハートビートメッセージを受信すると、応答生成モジュール６１４は、確認コンテンツオブジェクトを生成し、転送モジュール６２０は、デバイスに対して確認コンテンツオブジェクトを返送する。
【００６４】
図７は、本発明の実施形態にかかるデバイス検出ブローカによって実行される例示的なデバイス登録処理を図示するフローチャートを示している。動作中、デバイス検出ブローカは、登録サービスの名称空間における登録インタレストを聞き（動作７０２）、登録インタレストが受信されたかどうかを判定する（動作７０４）。そうである場合、デバイス検出ブローカは、正しくデバイスを登録するために必要な全ての情報が登録インタレストに含まれるかどうかを判定する（動作７０６）。この情報検査動作は、デバイスが以前に登録されていたかどうか、そうである場合には登録の更新が必要であるかどうかを判定する追加のステップを含むことができる。さらに、デバイス検出ブローカはまた、悪意のあるノードがネットワークに自分自身を登録する防止するためにデバイスが自身を登録するように認証されることを確実にするためにセキュリティチェックを実行することができる。全ての必要な情報が含まれており且つデバイスがセキュリティチェックを通過した場合には、デバイス検出ブローカは、デバイスに割り当てられた名称及び必要に応じてルーティング可能な名称接頭辞を含む登録確認コンテンツオブジェクトを生成する（動作７０８）。なお、ルーティング可能な名称接頭辞は、デバイスが他のデバイスによって到達されるのを可能とすることに留意すべきである。例えば、ラップトップコンピュータは、デバイス検出ブローカから、名称「／ｌａｐｔｏｐ」及び必要に応じてルーティング可能な名称接頭辞「／ａｂｃ／ｌａｐｔｏｐ」を受信することができる。したがって、他のデバイスは、「／ａｂｃ／ｌａｐｔｏｐ」に対してインタレストメッセージを送信することによってラップトップに到達することができる。他のデバイスを検出するために、データを公開するために及び署名鍵を取得するためにデバイスによって使用可能な追加情報はまた、登録確認コンテンツオブジェクトに含められることができる。例えば、上述したラップトップコンピュータ（「／ａｂｃ／ｌａｐｔｏｐ」）は、「／ａｂｃ／ｒｅｓｅａｒｃｈ／ｐａｐｅｒｓ」など、ラップトップに割り当てられたルーティング可能な名称接頭辞とは異なることがある１つ以上の名称接頭辞のもとにデータを公開するために認証されることができる。この公開データについての追加の名称接頭辞はまた、登録確認コンテンツオブジェクトに含められることができる。そして、デバイス検出ブローカは、そのデバイスデータベースを更新し（動作７１０）、デバイスに対して登録確認コンテンツオブジェクトを返送する（動作７１２）。全ての必要な情報が登録インタレストによって提供されていない場合、デバイス検出ブローカは、情報必要コンテンツオブジェクトを生成し（動作７１４）、追加情報を要求するようにデバイスに対してそのコンテンツオブジェクトを返送する（動作７１６）。
【００６５】
図８は、本発明の実施形態にかかるデバイス検出ブローカによって実行される例示的なデバイス検出処理を図示するフローチャートを提示している。動作中、デバイス検出ブローカは、検出サービスの名称空間におけるインタレストを聞き（動作８０２）、インタレストが受信されたか否かを判定する（動作８０４）。そうである場合、デバイス検出ブローカは、登録されたデバイスのリストを受信するために認証されたデバイスによってインタレストが送信されたかどうかを判定する（動作８０６）。そのために、デバイス検出ブローカは、インタレストメッセージに含まれるアクセス情報（鍵、ユーザＩＤ、パスワードなど）に基づいて、セキュリティチェックを実行することができる。デバイスがセキュリティチェックを通過してデバイスリストを受信するように認証された場合、デバイス検出ブローカは、デバイスデータベースから登録されたデバイスのリストを取得し（動作８０８）、デバイスリストを含むコンテンツオブジェクトを生成し（動作８１０）、要求デバイスに対してコンテンツオブジェクトを返送する（動作８１２）。デバイスがデバイスのリストを受信するように認証されていないとデバイス検出ブローカが判定した場合、それは、エラーメッセージを返送する（動作８１４）。
【００６６】
なお、デバイス検出ブローカは、デバイス確認及び登録を処理するスタンドアロンの中央サーバ上で実行されるプロセスとすることができるか、又は、マシンのクラスタ上で実行される分散型プロセスとすることができる。あるいは、それは、クライアントデバイスの一部とすることができる任意のマシン上で実行されるプロセスとすることができる。例えば、ＣＣＮネットワークにおいて、クライアントデバイスは、他のクライアントデバイスに対して必要なデバイス登録及び検出サービスを提供することが可能である。
【００６７】
図９は、本発明の実施形態にかかるデバイス登録及び検出のための例示的なシステムを図示している。デバイス登録及び検出のためのシステム９００は、プロセッサ９１０と、メモリ９２０と、記憶装置９３０とを備える。記憶装置９３０は、典型的には、メモリ９２０にロードされて上述した方法を実行するためにプロセッサ９１０によって実行可能な命令を記憶する。１つの実施形態において、記憶装置９３０内の命令は、その全てが様々な手段を介して互いに通信することができるデバイス検出ブローカモジュール９３２、名称空間データベース９３４及びデバイスデータベース９３６を実装することができる。
【００６８】
いくつかの実施形態において、モジュール９３２、９３４及び９３６は、部分的又は全体的にハードウェアで実装することができ、プロセッサ９１０の一部とすることができる。さらに、いくつかの実施形態において、システムは、別個のプロセッサ及びメモリを含んでも含まなくてもよい。代わりに、それらの特定のタスクを実行することに加えて、モジュール９３２、９３４及び９３６は、別個に又はコンサート協働して、汎用又は特殊目的の計算エンジンの一部であってもよい。
【００６９】
記憶装置９３０は、プロセッサ９１０によって実行されるプログラムを記憶する。具体的には、記憶装置９３０は、デバイス登録及び検出を容易とするためのシステム（アプリケーション）を実装するプログラムを記憶する。動作中、アプリケーションプログラムは、記憶装置９３０からメモリ９２０にロードされてプロセッサ９１０によって実行されることができる。その結果、システム９００は、上述した機能を実行することができる。システム９００は、（タッチスクリーンディスプレイとすることができる）任意のディスプレイ９８０、キーボード９６０及びポインティングデバイス９７０に接続されることができ、また、ネットワーク９８２に対して１つ以上のネットワークインターフェースを介して接続されることもできる。
【００７０】
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び／又はデータを記憶することができる任意のデバイス又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ読み取り可能な記憶媒体は、これらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク若しくはディジタルビデオディスク）などの磁気及び光学記憶装置、又は、現在知られている若しくは後に開発されるコンピュータ読み取り可能な媒体を記憶することができる他の媒体を含む。
【００７１】
詳細な説明のセクションに記載された方法及びプロセスは、上述したようにコンピュータ読み取り可能な記憶媒体に記憶されることができるコード及び／又はデータとして具体化することができる。コンピュータシステムがコンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み取って実行した場合、コンピュータシステムは、データ構造及びコードとして具体化されてコンピュータ読み取り可能な記憶媒体内に記憶された方法及びプロセスを実行する。
【００７２】
さらにまた、本願明細書に記載された方法及びプロセスは、ハードウェアモジュール又は装置に含まれることができる。これらのモジュール又は装置は、これらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定の時間に特定のソフトウェアモジュール若しくはコードの一部を実行する専用若しくは共有プロセッサ、及び／又は、現在知られている若しくは後に開発される他のプログラマブル論理デバイスを含む。ハードウェアモジュール又は装置が起動されると、それらは、それに含まれる方法及びプロセスを実行する。
【００７３】
上記説明は、当業者が実施形態を作成して使用するのを可能とするために提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義された一般的な原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書に開示された原理及び特徴と一致する最も広い範囲が与えられるべきである。
【図１】
2015197920.tif 000003
【図２】
2015197920.tif 000004
【図３】
2015197920.tif 000005
【図４】
2015197920.tif 000006
【図５】
2015197920.tif 000007
【図６】
2015197920.tif 000008
【図７】
2015197920.tif 000009
【図８】
2015197920.tif 000010
【図９】
2015197920.tif 000011