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