(57)【要約】      （修正有）【課題】各ノード装置が担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶し、所望のコンテンツカタログ情報を効率良く検索可能なコンテンツカタログ情報検索方法、及びノード装置等を提供する。【解決手段】互いに通信可能な複数のノード装置が所定の規則に従って複数のグループに分けられ、夫々の前記ノード装置は、自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした前記ノード装置であって、各前記グループに属する代表のノード装置の宛先情報を記憶する宛先情報記憶手段と、所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索するための検索条件が含まれる検索要求情報を、前記各グループの代表のノード装置の宛先情報にしたがって、当該各グループに属する代表のノード装置に送信し、代表のノード装置から返信されてきた検索結果情報を受信する。【選択図】図２０
2007280304.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置を備え、前記複数のノード装置が所定の規則に従って複数のグループに分けられた情報通信システムであって、夫々の前記ノード装置は、前記情報通信システムにおいて取得可能なコンテンツデータであって自己が属する前記グループに対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムに含まれる前記ノード装置であって、
各前記グループに属する代表のノード装置の宛先情報を記憶する宛先情報記憶手段と、
所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索するための検索条件が含まれる検索要求情報を、前記各グループに属する代表のノード装置の宛先情報にしたがって、当該各グループに属する代表のノード装置に対して送信する検索要求情報送信手段と、
前記各グループに属する代表のノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信する検索結果情報受信手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記自己の担当範囲を示す担当範囲情報を記憶する範囲情報記憶手段と、
前記記憶された担当範囲情報に示される自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するコンテンツカタログ情報記憶手段と、を更に備え、
前記宛先情報記憶手段は、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶しており、
前記検索要求情報送信手段は、前記記憶された担当範囲情報に示される担当範囲が、自己が属する前記グループに対応するコンテンツデータの範囲の一部である場合には、前記検索要求情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対しても送信し、
前記検索結果情報受信手段は、前記各小グループに属する代表のノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信することを特徴とするノード装置。
【請求項３】
請求項１に記載のノード装置において、
前記情報通信システムにおいて取得可能な夫々の前記コンテンツデータには夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記情報通信システムに備えられる夫々の前記ノード装置には夫々に固有の識別情報であって前記一定桁数からなるノード識別情報が対応付けられ、
前記夫々のノード装置は、自己の前記ノード識別情報と所定桁目が一致する前記コンテンツ識別情報に対応するコンテンツデータを、前記自己の担当範囲のコンテンツデータとして、その属性情報が記述されたコンテンツカタログ情報を記憶するようにし、
前記宛先情報記憶手段は、前記一定桁数からなる識別情報の所定桁目の値毎に分けられた前記グループに属する代表のノード装置の宛先情報を記憶することを特徴とするノード装置。
【請求項４】
請求項３に記載のノード装置において、
自己の前記ノード識別情報と前記コンテンツ識別情報との一致すべき桁数であって、前記担当範囲が広くなるほど小さくなる桁数を示す担当範囲情報を記憶する範囲情報記憶手段と、
前記担当範囲情報にて示される一致すべき桁数分の所定桁目が、自己の前記ノード識別情報と一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するコンテンツカタログ情報記憶手段と、を更に備え、
前記検索要求情報送信手段は、前記自己の前記ノード識別情報のうち前記担当範囲情報にて示される一致すべき桁数分の所定桁目の値以外の値に対応する前記各グループに属する代表のノード装置の宛先情報にしたがって、前記検索要求情報を、当該各グループに属する代表のノード装置に対して送信することを特徴とするノード装置。
【請求項５】
請求項１乃至４の何れか一項に記載のノード装置において、
各前記ノード装置から返信される前記検索結果情報には、当該各ノード装置において検索された前記担当範囲が含まれており、
前記受信された全ての検索結果情報に含まれる前記担当範囲に基づいて、前記コンテンツカタログ情報の検索がされていない範囲があるか否かを判別する範囲判別手段と、
前記検索されていない範囲がある場合には、当該範囲に対応するコンテンツカタログ情報を、全範囲のコンテンツカタログ情報を管理する装置から取得する不足範囲取得手段と、
を備えることを特徴とするノード装置。
【請求項６】
請求項１乃至５の何れか一項に記載のノード装置から送信された検索要求情報を受信する前記代表のノード装置であって、
前記自己の担当範囲を示す担当範囲情報を記憶する範囲情報記憶手段と、
前記記憶された担当範囲情報に示される自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するコンテンツカタログ情報記憶手段と、
前記受信された検索要求情報に含まれる検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を、前記コンテンツカタログ情報記憶手段から検索し取得するコンテンツカタログ情報取得手段と、
前記取得されたコンテンツカタログ情報を含む検索結果情報を、前記検索要求情報を送信した前記ノード装置に対して返信する検索結果情報返信手段と、
を備えることを特徴とするノード装置。
【請求項７】
請求項６に記載のノード装置において、
自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶する宛先情報記憶手段と、
前記検索要求情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して転送する検索要求情報転送手段と、
を更に備えることを特徴とするノード装置。
【請求項８】
請求項７に記載のノード装置において、
前記検索要求情報転送手段は、前記記憶された担当範囲情報に示される担当範囲が、自己が属する前記グループに対応するコンテンツデータの範囲の一部である場合にのみ、前記検索要求情報を、前記各小グループに属するノード装置に対して転送することを特徴とするノード装置。
【請求項９】
請求項７又は８に記載のノード装置において、
前記検索要求情報を転送した前記各小グループに属するノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信する検索結果情報受信手段を更に備え、
前記検索結果情報返信手段は、前記取得されたコンテンツカタログ情報を含む検索結果情報、及び前記受信されたコンテンツカタログ情報を含む検索結果情報を、前記検索要求情報を送信した前記ノード装置に対して返信することを特徴とするノード装置。
【請求項１０】
請求項１に記載のノード装置において、
前記宛先情報記憶手段は、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶しており、
前記自己の担当範囲を示す担当範囲情報を記憶する範囲情報記憶手段と、
他のノード装置から送信されてきたコンテンツカタログ情報を受信するコンテンツカタログ情報受信手段と、
前記受信されたコンテンツカタログ情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して送信するコンテンツカタログ情報送信手段と、
前記受信されたコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記担当範囲情報に示される担当範囲のコンテンツデータを特定するコンテンツ特定手段と、
前記特定されたコンテンツデータの属性情報が記述されたコンテンツカタログ情報を少なくとも記憶するコンテンツカタログ情報記憶手段と、
を備えることを特徴とするノード装置。
【請求項１１】
請求項６に記載のノード装置において、
前記宛先情報記憶手段は、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶しており、
他のノード装置から送信されてきたコンテンツカタログ情報を受信するコンテンツカタログ情報受信手段と、
前記受信されたコンテンツカタログ情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して送信するコンテンツカタログ情報送信手段と、
前記受信されたコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記担当範囲情報に示される担当範囲のコンテンツデータを特定するコンテンツ特定手段と、
前記コンテンツカタログ情報記憶手段は、前記特定されたコンテンツデータの属性情報が記述されたコンテンツカタログ情報を少なくとも記憶することを特徴とするノード装置。
【請求項１２】
請求項１０又は１１に記載のノード装置において、
前記コンテンツカタログ情報は、他のノード装置が記憶するコンテンツカタログ情報が更新される度に、当該コンテンツカタログ情報のうちの更新された差分のコンテンツデータの属性情報が記述されて送信されるものであって、
前記コンテンツカタログ情報受信手段は、他のノード装置から送信されてきた前記更新に係るコンテンツカタログ情報を受信し、
前記コンテンツカタログ情報送信手段は、前記受信された更新に係るコンテンツカタログ情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して送信し、
前記コンテンツ特定手段は、前記受信された更新に係るコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記担当範囲情報に示される担当範囲のコンテンツデータを特定し、
前記コンテンツカタログ情報記憶手段は、前記特定されたコンテンツデータの属性情報のみが記述されたコンテンツカタログ情報を記憶することを特徴とするノード装置。
【請求項１３】
コンピュータを、請求項１乃至１２に記載のノード装置として機能されることを特徴とするノード処理プログラム。
【請求項１４】
ネットワークを介して互いに通信可能な複数のノード装置を備え、前記複数のノード装置が所定の規則に従って複数のグループに分けられた情報通信システムであって、夫々の前記ノード装置は、前記情報通信システムにおいて取得可能なコンテンツデータであって自己が属する前記グループに対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムであって、
１の前記ノード装置は、
各前記グループに属する代表のノード装置の宛先情報を記憶する宛先情報記憶手段と、
所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索するための検索条件が含まれる検索要求情報を、前記各グループに属する代表のノード装置の宛先情報にしたがって、当該各グループに属する代表のノード装置に対して送信する検索要求情報送信手段と、
前記各グループに属する代表のノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信する検索結果情報受信手段と、
を備え、
前記検索要求情報を受信する前記代表のノード装置は、
前記受信された検索要求情報に含まれる検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索し取得するコンテンツカタログ情報取得手段と、
前記取得されたコンテンツカタログ情報を含む検索結果情報を、前記１のノード装置に対して返信する検索結果情報返信手段と、
を備えることを特徴とする情報通信システム。
【請求項１５】
ネットワークを介して互いに通信可能な複数のノード装置を備え、前記複数のノード装置が所定の規則に従って複数のグループに分けられた情報通信システムであって、夫々の前記ノード装置は、前記情報通信システムにおいて取得可能なコンテンツデータであって自己が属する前記グループに対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムにおけるコンテンツカタログ情報検索方法であって、
１の前記ノード装置が、所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索するための検索条件が含まれる検索要求情報を、前記各グループに属する代表のノード装置の宛先情報にしたがって、当該各グループに属する代表のノード装置に対して送信する工程と、
前記代表のノード装置が、前記検索要求情報を受信する工程と、
前記代表のノード装置が、前記受信された検索要求情報に含まれる検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索し取得する工程と、
前記代表のノード装置が、前記取得されたコンテンツカタログ情報を含む検索結果情報を、前記１のノード装置に対して返信する工程と、
前記１のノード装置が、前記検索結果情報を受信する工程と、
を備えることを特徴とするコンテンツカタログ情報検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関し、特に、複数のコンテンツデータが複数のノード装置に分散して保存されたコンテンツ配信システム等の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータの属性情報（例えば、コンテンツ名、ジャンル、アーティスト名等）が記述されたコンテンツカタログ情報を有しており、当該コンテンツカタログ情報に記述された属性情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなコンテンツカタログ情報は、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、ノード装置からの要求に応じて、管理サーバから当該ノード装置に対して上記コンテンツカタログ情報が送信されるようになっている。
【０００３】
例えば、特許文献１には、この種の管理サーバとして、最上位に存在し、コンテンツ配信管理システム内の全てのコンテンツ情報を管理するインデックスサーバが開示されている。
【０００４】
一方、管理サーバを用いない方法として、Gnutella, Freenet, Winnyなどの、ピュアＰ２Ｐ型の配信システムも考案されているが、それらのシステムでは、コンテンツ名やコンテンツに関するキーワードを指定してコンテンツを検索し、場所を特定し、それにアクセスするという仕組みになっている。しかし、この方法では、コンテンツ名の全リストを取得する方法がないため、ユーザが全コンテンツリストを眺めてその中から所望のコンテンツを選んでアクセスする、という使い方ができない。
【特許文献１】特開２００２−３１８７２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、コンテンツ配信システム上に投入されるコンテンツの数が膨大になると、コンテンツカタログ情報のデータ量が大きくなりすぎて１台のノードに記憶しきれないという問題が生じ、この場合、各ノードは、コンテンツカタログ情報全てを利用できなくなるということが想定される。
【０００６】
このため、コンテンツカタログ情報を分割して複数のサーバやノード装置に保存しておき、各ノード装置は、必要な分のコンテンツカタログ情報を保存しているサーバ等から、当該コンテンツカタログ情報を取得して利用することが考えられるが、この場合、各ノード装置は、所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を探すのは容易ではない。
【０００７】
本発明は、以上の点に鑑みてなされたものであり、各ノード装置が担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムにおいて、各ノード装置が、所望のコンテンツカタログ情報を、より効率良く検索することが可能な情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備え、前記複数のノード装置が所定の規則に従って複数のグループに分けられた情報通信システムであって、夫々の前記ノード装置は、前記情報通信システムにおいて取得可能なコンテンツデータであって自己が属する前記グループに対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムに含まれる前記ノード装置であって、各前記グループに属する代表のノード装置の宛先情報を記憶する宛先情報記憶手段と、所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索するための検索条件が含まれる検索要求情報を、前記各グループに属する代表のノード装置の宛先情報にしたがって、当該各グループに属する代表のノード装置に対して送信する検索要求情報送信手段と、前記各グループに属する代表のノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信する検索結果情報受信手段と、を備えることを特徴とする。
【０００９】
請求項１に記載の発明によれば、各ノード装置は、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についての検索要求を、宛先情報記憶手段に記憶された各グループに属する代表のノード装置の宛先情報にしたがって効率良く行うことができる。よって、各ノード装置は、所望のコンテンツカタログ情報を、より効率良く検索することができる。
【００１０】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記自己の担当範囲を示す担当範囲情報を記憶する範囲情報記憶手段と、前記記憶された担当範囲情報に示される自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するコンテンツカタログ情報記憶手段と、を更に備え、前記宛先情報記憶手段は、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶しており、前記検索要求情報送信手段は、前記記憶された担当範囲情報に示される担当範囲が、自己が属する前記グループに対応するコンテンツデータの範囲の一部である場合には、前記検索要求情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対しても送信し、前記検索結果情報受信手段は、前記各小グループに属する代表のノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信することを特徴とする。
【００１１】
請求項２に記載の発明によれば、さらに、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についての検索要求を、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報にしたがって効率良く行うことができる。
【００１２】
請求項３に記載の発明は、請求項１に記載のノード装置において、前記情報通信システムにおいて取得可能な夫々の前記コンテンツデータには夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記情報通信システムに備えられる夫々の前記ノード装置には夫々に固有の識別情報であって前記一定桁数からなるノード識別情報が対応付けられ、前記夫々のノード装置は、自己の前記ノード識別情報と所定桁目が一致する前記コンテンツ識別情報に対応するコンテンツデータを、前記自己の担当範囲のコンテンツデータとして、その属性情報が記述されたコンテンツカタログ情報を記憶するようにし、前記宛先情報記憶手段は、前記一定桁数からなる識別情報の所定桁目の値毎に分けられた前記グループに属する代表のノード装置の宛先情報を記憶することを特徴とする。
【００１３】
請求項４に記載の発明は、請求項３に記載のノード装置において、自己の前記ノード識別情報と前記コンテンツ識別情報との一致すべき桁数であって、前記担当範囲が広くなるほど小さくなる桁数を示す担当範囲情報を記憶する範囲情報記憶手段と、前記担当範囲情報にて示される一致すべき桁数分の所定桁目が、自己の前記ノード識別情報と一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するコンテンツカタログ情報記憶手段と、を更に備え、前記検索要求情報送信手段は、前記自己の前記ノード識別情報のうち前記担当範囲情報にて示される一致すべき桁数分の所定桁目の値以外の値に対応する前記各グループに属する代表のノード装置の宛先情報にしたがって、前記検索要求情報を、当該各グループに属する代表のノード装置に対して送信することを特徴とする。
【００１４】
請求項４に記載の発明によれば、上記検索要求を、自己のノード識別情報のうち担当範囲情報にて示される一致すべき桁数分の所定桁目の値以外の値に対応する各グループに属する代表のノード装置の宛先情報にしたがって行うので、当該検索要求先を容易に把握することができる。
【００１５】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載のノード装置において、各前記ノード装置から返信される前記検索結果情報には、当該各ノード装置において検索された前記担当範囲が含まれており、前記受信された全ての検索結果情報に含まれる前記担当範囲に基づいて、前記コンテンツカタログ情報の検索がされていない範囲があるか否かを判別する範囲判別手段と、前記検索されていない範囲がある場合には、当該範囲に対応するコンテンツカタログ情報を、全範囲のコンテンツカタログ情報を管理する装置から取得する不足範囲取得手段と、を備えることを特徴とする。
【００１６】
請求項４に記載の発明によれば、コンテンツカタログ情報の検索がされていない範囲があった場合に、当該範囲に関し、全範囲のコンテンツカタログ情報を管理する装置に検索要求を行うことができる。また、これにより、全範囲のコンテンツカタログ情報を管理する装置にかかる負荷を低減することができる。
【００１７】
請求項６に記載の発明は、請求項１乃至５の何れか一項に記載のノード装置から送信された検索要求情報を受信する前記代表のノード装置であって、前記自己の担当範囲を示す担当範囲情報を記憶する範囲情報記憶手段と、前記記憶された担当範囲情報に示される自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するコンテンツカタログ情報記憶手段と、前記受信された検索要求情報に含まれる検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を、前記コンテンツカタログ情報記憶手段から検索し取得するコンテンツカタログ情報取得手段と、前記取得されたコンテンツカタログ情報を含む検索結果情報を、前記検索要求情報を送信した前記ノード装置に対して返信する検索結果情報返信手段と、を備えることを特徴とする。
【００１８】
請求項７に記載の発明は、請求項６に記載のノード装置において、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶する宛先情報記憶手段と、前記検索要求情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して転送する検索要求情報転送手段と、を更に備えることを特徴とする。
【００１９】
請求項８に記載の発明は、請求項７に記載のノード装置において、前記検索要求情報転送手段は、前記記憶された担当範囲情報に示される担当範囲が、自己が属する前記グループに対応するコンテンツデータの範囲の一部である場合にのみ、前記検索要求情報を、前記各小グループに属するノード装置に対して転送することを特徴とする。
【００２０】
請求項９に記載の発明は、請求項７又は８に記載のノード装置において、前記検索要求情報を転送した前記各小グループに属するノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信する検索結果情報受信手段を更に備え、前記検索結果情報返信手段は、前記取得されたコンテンツカタログ情報を含む検索結果情報、及び前記受信されたコンテンツカタログ情報を含む検索結果情報を、前記検索要求情報を送信した前記ノード装置に対して返信することを特徴とする。
【００２１】
請求項１０に記載の発明は、請求項１に記載のノード装置において、前記宛先情報記憶手段は、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶しており、前記自己の担当範囲を示す担当範囲情報を記憶する範囲情報記憶手段と、他のノード装置から送信されてきたコンテンツカタログ情報を受信するコンテンツカタログ情報受信手段と、前記受信されたコンテンツカタログ情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して送信するコンテンツカタログ情報送信手段と、前記受信されたコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記担当範囲情報に示される担当範囲のコンテンツデータを特定するコンテンツ特定手段と、前記特定されたコンテンツデータの属性情報が記述されたコンテンツカタログ情報を少なくとも記憶するコンテンツカタログ情報記憶手段と、を備えることを特徴とする。
【００２２】
請求項１１に記載の発明は、請求項６に記載のノード装置において、前記宛先情報記憶手段は、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報を記憶しており、他のノード装置から送信されてきたコンテンツカタログ情報を受信するコンテンツカタログ情報受信手段と、前記受信されたコンテンツカタログ情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して送信するコンテンツカタログ情報送信手段と、前記受信されたコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記担当範囲情報に示される担当範囲のコンテンツデータを特定するコンテンツ特定手段と、前記コンテンツカタログ情報記憶手段は、前記特定されたコンテンツデータの属性情報が記述されたコンテンツカタログ情報を少なくとも記憶することを特徴とする。
【００２３】
請求項１２に記載の発明は、請求項１０又は１１に記載のノード装置において、前記コンテンツカタログ情報は、他のノード装置が記憶するコンテンツカタログ情報が更新される度に、当該コンテンツカタログ情報のうちの更新された差分のコンテンツデータの属性情報が記述されて送信されるものであって、前記コンテンツカタログ情報受信手段は、他のノード装置から送信されてきた前記更新に係るコンテンツカタログ情報を受信し、前記コンテンツカタログ情報送信手段は、前記受信された更新に係るコンテンツカタログ情報を、前記各小グループに属する代表のノード装置の宛先情報にしたがって、当該各小グループに属するノード装置に対して送信し、前記コンテンツ特定手段は、前記受信された更新に係るコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記担当範囲情報に示される担当範囲のコンテンツデータを特定し、前記コンテンツカタログ情報記憶手段は、前記特定されたコンテンツデータの属性情報のみが記述されたコンテンツカタログ情報を記憶することを特徴とする。
【００２４】
請求項１３に記載のノード処理プログラムの発明は、コンピュータを、請求項１乃至１２に記載のノード装置として機能されることを特徴とする。
【００２５】
請求項１４に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備え、前記複数のノード装置が所定の規則に従って複数のグループに分けられた情報通信システムであって、夫々の前記ノード装置は、前記情報通信システムにおいて取得可能なコンテンツデータであって自己が属する前記グループに対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムであって、１の前記ノード装置は、各前記グループに属する代表のノード装置の宛先情報を記憶する宛先情報記憶手段と、所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索するための検索条件が含まれる検索要求情報を、前記各グループに属する代表のノード装置の宛先情報にしたがって、当該各グループに属する代表のノード装置に対して送信する検索要求情報送信手段と、前記各グループに属する代表のノード装置から返信されてきたコンテンツカタログ情報を含む検索結果情報を受信する検索結果情報受信手段と、を備え、前記検索要求情報を受信する前記代表のノード装置は、前記受信された検索要求情報に含まれる検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索し取得するコンテンツカタログ情報取得手段と、前記取得されたコンテンツカタログ情報を含む検索結果情報を、前記１のノード装置に対して返信する検索結果情報返信手段と、を備えることを特徴とする。
【００２６】
請求項１５に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備え、前記複数のノード装置が所定の規則に従って複数のグループに分けられた情報通信システムであって、夫々の前記ノード装置は、前記情報通信システムにおいて取得可能なコンテンツデータであって自己が属する前記グループに対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムにおけるコンテンツカタログ情報検索方法であって、１の前記ノード装置が、所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索するための検索条件が含まれる検索要求情報を、前記各グループに属する代表のノード装置の宛先情報にしたがって、当該各グループに属する代表のノード装置に対して送信する工程と、前記代表のノード装置が、前記検索要求情報を受信する工程と、前記代表のノード装置が、前記受信された検索要求情報に含まれる検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を検索し取得する工程と、前記代表のノード装置が、前記取得されたコンテンツカタログ情報を含む検索結果情報を、前記１のノード装置に対して返信する工程と、前記１のノード装置が、前記検索結果情報を受信する工程と、を備えることを特徴とする。
【発明の効果】
【００２７】
本発明によれば、各ノード装置は、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についての検索要求を、宛先情報記憶手段に記憶された各グループに属する代表のノード装置の宛先情報にしたがって効率良く行うことができる。よって、各ノード装置は、所望のコンテンツカタログ情報を、より効率良く検索することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、ＤＨＴ（Distributed Hash Table）を利用したコンテンツ配信システムに本発明を適用した場合の実施形態である。
【００２９】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報通信システムの一例としてのコンテンツ配信システムの概要構成等について説明する。
【００３０】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００３１】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、および通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。なお、図１の例におけるネットワーク（通信ネットワーク）８には、メッセージ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００３２】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置（以下、「ノード」という）Ａ，Ｂ，Ｃ・・・Ｘ，Ｙ，Ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノードＡ，Ｂ，Ｃ・・・Ｘ，Ｙ，Ｚ・・・には、固有の製造番号および宛先情報としてのＩＰ（Internet Protocol）アドレスが割り当てられている。このような製造番号およびＩＰアドレスは、複数のノード間で重複しないものである。
【００３３】
次に、本実施形態に係る分散ハッシュテーブル（以下、「ＤＨＴ」という）を利用したアルゴリズムについて説明する。
【００３４】
上述したコンテンツ配信システムＳにおいて、当該ノード同士が、互いに情報をやり取りする際には、お互いのＩＰアドレス等を知っていなければならない。
【００３５】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各ノードが互いにネットワーク８に参加している全てのノードのＩＰアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノードのＩＰアドレスを覚えておくのは現実的ではない。また、任意のノードの電源がＯＮ或いはＯＦＦとすると、各ノードにて記憶している当該任意のノードのＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００３６】
そこで、１台のノードでは、ネットワーク８に参加している全てのノードのうち、必要最低限のノードのＩＰアドレスだけを覚えて（記憶して）おいて、ＩＰアドレスを知らない（記憶していない）ノードについては、各ノード間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【００３７】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００３８】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９上に配置されたノードを、オーバーレイネットワーク９に参加しているノードという。なお、オーバーレイネットワーク９への参加は、未だ参加していないノードが、既に参加している任意のノードに対して参加要求を送ることによって行われる。
【００３９】
また、各ノードは、固有のノード識別情報としてのノードＩＤを有しており、当該ノードＩＤは、例えば、ＩＰアドレスあるいは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化して得た一定桁数からなるハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このノードＩＤは、ノードの最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128＝340×10＾36台のノードを運用できる。
【００４０】
このように共通のハッシュ関数により求められたノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【００４１】
［１．１  ＤＨＴのルーティングテーブルの作成手法］
次に、図２及び図３を参照して、ＤＨＴの内容であるルーティングテーブルの作成手法の一例について説明する。
【００４２】
図２は、ルーティングテーブルが作成される様子の一例を示す図であり、図３は、ルーティングテーブルの一例を示す図である。
【００４３】
各ノードに付与されたノードＩＤは、共通のハッシュ関数によって生成したため、図２（Ａ）乃至図２（Ｃ）に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は８ｂｉｔでノードＩＤを付与し、図示したものである。図中黒点はノードＩＤを示し、反時計回りでＩＤが増加するものとする。
【００４４】
先ず、図２（Ａ）に示す如く、ＩＤ空間が、所定の規則に従って幾つかのグループとしてのエリアに分割される（分けられる）。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８Ｂｉｔの４進数で表すこととした。そして、ノードＮのノードＩＤを「1023」とし、このノードＮのルーティングテーブルを作る例について説明する。
【００４５】
（レベル１のルーティング）
ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXX」、「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の整数、以下同様。）で分けられる。ノードＮは、当該ノードＮ自身のノードＩＤが「1023」であるため、図中左下「1XXX」のエリアに存在することになる。
【００４６】
そして、ノードＮは、自分の存在するエリア（すなわち、「1XXX」のエリア）以外のエリアに存在する（グループに属する）各ノードを代表のノードとして任意に選択し、当該ノードＩＤのＩＰアドレス等（実際には、ポート番号も含まれる、以下同様）をレベル１のテーブルにおける各欄（テーブルエントリー）に登録（記憶）する。図３（Ａ）がレベル１のテーブルの一例である。なお、レベル１のテーブルにおける２列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無い。
【００４７】
（レベル２のルーティング）
次に、図２（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、４つのエリア「10XX」、「11XX」、「12XX」、「13XX」に分ける（つまり、ノードN自身が属するグループをさらに複数の小グループに分ける）。
【００４８】
そして、上記と同様に自分の存在するエリア以外のエリアに存在する各ノードを代表のノードとして任意に選択し、当該ノードＩＤのＩＰアドレス等をレベル２のテーブルにおける各欄（テーブルエントリー）に登録する。図３（Ｂ）がレベル２のテーブルの一例である。なお、レベル２のテーブルにおける１列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無い。
【００４９】
（レベル３のルーティング）
更に、図２（Ｃ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、４つのエリア「100X」、「101X」、「102X」、「103X」に分ける（つまり、ノードＮ自身が属する小グループをさらに複数の小グループに分ける）。そして、上記と同様に自分の存在するエリア以外のエリアに存在する各ノードを代表のノードとして任意に選択し、当該ノードＩＤのＩＰアドレス等をレベル３のテーブルにおける各欄（テーブルエントリー）に登録する。図３（Ｃ）がレベル３のテーブルの一例である。なお、レベル３のテーブルにおける３列目の欄は、ノードＮ自身を示しているため、ＩＰアドレス等を登録する必要は無く、２列目及び４列目の欄はそのエリアにノードが存在しないため空白となる。
【００５０】
このようにして、レベル４まで同様にルーティングテーブルが図３（Ｄ）に示す如く作成されることにより、８ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００５１】
以上説明した手法（規則）に従って作成したルーティングテーブルを、全てのノードが夫々作成して所有することになる（かかるルーティングテーブルの作成は、例えば、未参加のノードがオーバーレイネットワーク９に参加する際に行われるが、本発明とは直接の関係がないので詳しい説明を省略する）。
【００５２】
このように、各ノードは、他のノードの宛先情報としてのＩＰアドレス等と、グループ及び小グループとしての、ノードＩＤ空間のエリア、すなわちＤＨＴの各レベル及び各列と、を対応付けて記憶している。
【００５３】
つまり、各ノードは、複数に分けられた各エリアに属する一のノードのＩＰアドレス等を、夫々のエリアに対応付けて一の段階（レベル）として規定し、さらに自己が属するエリアが複数のエリアに分けられ、当該分けられた各エリアに属する一のノードのＩＰアドレス等を、夫々のエリアに対応付けて次の段階（レベル）として規定するルーティングテーブルを記憶している。
【００５４】
なお、ノードＩＤの桁数に応じてレベルの数が決まり、進数の数に応じて図３（Ｄ）における各レベルの注目桁の数が決まる。具体的に、１６桁１６進数である場合には、６４ｂｉｔのＩＤとなり、レベル１６で注目桁の（英）数字は０〜Ｆとなる。後述するルーティングテーブルの説明においては、各レベルの注目桁の数を示す部分を単に「列」ともいう。
【００５５】
［１．２  コンテンツデータの保存及び発見方法］
次に、コンテンツ配信システムＳにおいて取得可能なコンテンツデータの保存及び発見方法について説明する。
【００５６】
オーバーレイネットワーク９においては、様々なコンテンツ（例えば、映画や音楽等）データが複数のノードに分散して保存（格納）されている（言い換えれば、コンテンツデータが複製されその複製情報であるレプリカが分散保存されている）。
【００５７】
例えば、ノードＡ及びノードＤには、タイトルがＸＸＸの映画のコンテンツデータが保存されており、一方、ノードＢ及びノードＣには、タイトルがＹＹＹの映画のコンテンツデータが保存されるというように、複数のノード（以下、「コンテンツ保持ノード」という）に分散されて保存される。
【００５８】
また、これらのコンテンツデータには、夫々、コンテンツ名（タイトル）及びコンテンツＩＤ（コンテンツ毎に固有のコンテンツ識別情報）等の情報が付加されている。このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値（或いは、当該コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（ノードＩＤと同一のＩＤ空間に配置）。或いは、システム運営者が、コンテンツ毎に一意のＩＤ値（ノードＩＤと同一ビット長）を付与しても良い。この場合は、後述するコンテンツカタログ情報に、コンテンツ名とそのコンテンツＩＤの対応が書かれた状態で、各ノードに配布される。
【００５９】
また、このように分散保存されているコンテンツデータの所在、つまり、当該コンテンツデータを保存したノードのＩＰアドレス等と、当該コンテンツデータに対応するコンテンツＩＤ等の組が含まれるインデックス情報が、当該コンテンツデータの所在の管理元のノード（以下、「ルートノード」、又は「コンテンツ（コンテンツＩＤ）のルートノード」という）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている。
【００６０】
例えば、タイトルがＸＸＸの映画のコンテンツデータのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＭにより管理され、タイトルがＹＹＹの映画のコンテンツデータのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＯにより管理される。
【００６１】
つまり、コンテンツ毎にルートノードが分けられるので負荷分散が図られており、しかも、同一のコンテンツデータ（コンテンツＩＤが同一）が、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかるコンテンツデータのインデックス情報は、１つのルートノードで管理することができる。また、このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードであるように定められる。
【００６２】
このようにしてコンテンツデータを保存したノード（コンテンツ保持ノード）は、当該コンテンツデータを保存したことをそのルートノードに知らせるために、そのコンテンツデータのコンテンツＩＤ及び自己のＩＰアドレス等が含まれるパブリッシュ（登録通知）メッセージ（コンテンツデータを保存したので、ＩＰアドレス等の登録の要求を示す登録メッセージ）を生成し、該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。
【００６３】
図４は、コンテンツ保持ノードから送出されたパブリッシュメッセージの流れの一例をＤＨＴのノードＩＤ空間にて示した概念図である。
【００６４】
図４の例において、例えば、コンテンツ保持ノードであるノードＡは、自己のＤＨＴのレベル１のテーブルを参照して、パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＨのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを送信する。
【００６５】
これに対して、ノードＨは、当該パブリッシュメッセージを受信し、自己のＤＨＴのレベル２のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＩのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを転送する。
【００６６】
これに対して、ノードＩは、当該パブリッシュメッセージを受信し、自己のＤＨＴのレベル３のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＭの転送先ノード情報に含まれるＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記パブリッシュメッセージを転送する。
【００６７】
これに対して、ノードＭは、パブリッシュメッセージを受信し、自己のＤＨＴのレベル４のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤが自分である、つまり、自分がそのコンテンツＩＤのルートノードであることを認識し、当該パブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）することになる。
【００６８】
なお、パブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報は、コンテンツ保持ノードからルートノードに至るまでの転送経路におけるノード（以下、「中継ノード」という。図４の例では、ノードＨ、及びノードＩ）においても登録（キャッシュ）される（このように、インデックス情報をキャッシュする中継ノードをキャッシュノードという）。
【００６９】
そして、あるノードのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノード（以下、「ユーザノード」という）は、当該ユーザによりコンテンツカタログ情報から選択されたコンテンツデータのコンテンツＩＤを含むコンテンツ所在問合せメッセージを、自己のＤＨＴのルーティングテーブルにしたがって他のノードに対して送出する。これにより、当該コンテンツ所在問合せメッセージは、上述したパブリッシュメッセージと同様に、コンテンツＩＤをキーとするＤＨＴルーティングによって、いくつかの中継ノードを経由（転送）されて、そのコンテンツＩＤのルートノードに辿り着く。そして、上記ユーザノードは、当該ルートノードから、上述したそのコンテンツデータのインデックス情報を取得（受信）し、当該ＩＰアドレス等に基づいて上記コンテンツデータを保存しているコンテンツ保持ノードに接続し、そこから当該コンテンツデータを取得（ダウンロード）することが可能になる。なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード（キャッシュノード）から当該ＩＰアドレス等を取得（受信）することもできる。
【００７０】
［１．３  コンテンツカタログ情報の内容］
次に、コンテンツカタログ情報の内容等について説明する。
【００７１】
コンテンツカタログ情報（コンテンツリストともいう）には、コンテンツ配信システムＳにおいて各ノードが取得可能な多くのコンテンツデータの属性情報が、夫々のコンテンツＩＤに対応付けられて記述されている。この属性情報としては、例えば、コンテンツ名（コンテンツが映画の場合、映画タイトル、コンテンツが楽曲の場合、楽曲タイトル、コンテンツが放送番組の場合、番組タイトル）、ジャンル（コンテンツが映画の場合、アクション、ホラー、コメディ、ラブストーリー等、コンテンツが音楽の場合、ロック、ジャズ、ポップス、クラシック等、コンテンツが放送番組の場合、ドラマ、スポーツ、ニュース、映画、音楽、アニメ、バラエティ等）、アーティスト名（コンテンツが音楽の場合の歌手、グループ等）、出演者（コンテンツが映画や放送番組の場合のキャスト）、監督名（コンテンツが映画の場合）等が挙げられる。
【００７２】
このような属性情報は、ユーザが所望のコンテンツデータを特定する場合の要素であり、多くのコンテンツデータの中から所望のコンテンツデータを検索するための検索条件としての検索キーワードとしても利用される。例えば、ユーザが検索キーワードとして「ジャズ」を入力すると、属性情報に「ジャズ」に該当する全てのコンテンツデータが検索され、検索されたコンテンツデータの属性情報（例えば、コンテンツ名、ジャンル等）がユーザに選択可能に提示されることになる。
【００７３】
図５は、ミュージックカタログの表示形態遷移の一例を示す概念図であり、かかるミュージックカタログは、本願のコンテンツカタログ情報のあくまでも一例である。この例では、図５（Ａ）に示すように表示されたジャンル一覧の中から、検索キーワードとして例えばジャズが入力され検索されることにより、図５（Ｂ）に示すように、当該ジャズに該当するアーティスト名一覧が表示され、そのアーティスト名一覧の中から、検索キーワードとして例えばアーティスト「ＡＡＢＢＣ」が入力され検索されることにより、図５（Ｃ）に示すように、当該アーティストに該当する（例えば、当該アーティストにより歌われる、又は演奏される）楽曲タイトル一覧が表示される。そして、かかる楽曲タイトル一覧の中から、ユーザが入力部を介して所望の楽曲タイトルを選択すると、その楽曲データ（コンテンツデータの一例）のコンテンツＩＤが取得され、上述したように、コンテンツＩＤを含むコンテンツ所在問合せメッセージが、そのルートノード向かって送出されることになる。なお、当該コンテンツＩＤは、コンテンツカタログ情報に記述されなくとも良く、この場合、各ノードは、例えば属性情報に含まれるコンテンツ名＋任意の数値を、上述したノードＩＤをハッシュ化した共通のハッシュ関数によりハッシュ化してコンテンツＩＤを生成するものであっても良い。
【００７４】
そして、このようなコンテンツカタログ情報は、例えばシステム管理者等により管理されるノード（以下、「カタログ管理ノード」という）、或いは、カタログ管理サーバにより管理されるようになっており、例えば、コンテンツ配信システムＳ上へ新たに投入されるコンテンツデータは、このカタログ管理ノードにより許可を受けた上で、コンテンツ配信システムＳ上におけるノードに保存される（一旦投入されたコンテンツデータは、上述したように、コンテンツ保持ノードから取得、その複製が保存されていくことになる）。そして、新たなコンテンツデータが、コンテンツ配信システムＳ上におけるノードに保存される場合、そのコンテンツデータの属性情報がコンテンツカタログ情報に新規登録（登録された順にシリアル番号が付加される）され、これによりコンテンツカタログ情報は更新（バージョンアップ（アップデート））される。また、コンテンツデータが、コンテンツ配信システムＳ上から抹消される際も、カタログ管理ノードにより許可され、そのコンテンツデータの属性情報がコンテンツカタログ情報から削除され、これによりコンテンツカタログ情報は更新される（なお、属性情報の一部変更があった場合も同様、コンテンツカタログ情報は更新される）。
【００７５】
また、コンテンツカタログ情報全体には、バージョンを示すバージョン情報が付加されている。このバージョン情報は、例えばバージョン通し番号で表され、コンテンツカタログ情報が更新（例えば、コンテンツデータの属性情報が新規登録）される度に、当該通し番号が所定値（例えば、「１」）カウントアップされる（なお、コンテンツカタログ情報への新規登録は、登録すべきコンテンツデータが一定量溜まってから行われても良いし、新規登録要求がある度に行われても良い）。
【００７６】
更に、例えば、各コンテンツデータに対しては、新規登録時におけるバージョン通し番号が付加（これは、コンテンツカタログ情報全体の更新があってもカウントアップせず変わらない）されており（例えば、シリアル番号「１００」のコンテンツデータには、バージョン通し番号「１」が付加され、シリアル番号「２００」のコンテンツデータには、通し番号「２」が付加されている）、これにより、どのコンテンツデータがどのバージョンアップ時のものかが判断可能になっている。
【００７７】
［１．４  コンテンツカタログ情報の配布方法］
次に、図６乃至図１１を参照して、コンテンツカタログ情報の配布方法について説明する。
【００７８】
このようなコンテンツカタログ情報は、例えば、上記ＤＨＴを利用したマルチキャスト（以下、「ＤＨＴマルチキャスト」という）により、オーバーレイネットワーク９に参加している全てのノードに配布することができる。
【００７９】
図６は、カタログ管理ノードであるノードＸが保持するルーティングテーブルの一例であり、図７は、カタログ配布メッセージを模式的に表した図であり、図８乃至図１１は、ＤＨＴマルチキャストが行われる様子を示す図である。
【００８０】
なお、ノードＸは、図６に示すようなルーティングテーブルを保持しているものとし、当該ルーティングテーブルのレベル１〜４の各エリアに対応する欄には、ノードＡ〜ノードＩの何れかのノードのノードＩＤ（４桁４進数）及びＩＰアドレス等が記憶されているものとする。
【００８１】
カタログ配布メッセージは、図７（Ａ）に示すように、ヘッダ部とペイロード部から構成されるパケットからなり、ヘッダ部には、ターゲットノードＩＤ、レベルを示すグループ特定値としてのＩＤマスク、及びターゲットノードＩＤに対応するノードのＩＰアドレス等（図示せず）が含まれており、ペイロード部には、メッセージを識別するためのユニークＩＤ及びコンテンツカタログ情報を有する主情報が含まれている。
【００８２】
ここで、ターゲットノードＩＤとＩＤマスクとの関係について詳しく説明する。
【００８３】
ターゲットノードＩＤは、ノードＩＤと同等の桁数であり（図６の例では、４桁４進数）、送信先ターゲットとなるノードを設定するものであり、ＩＤマスクの値に応じて、例えば、カタログ配布メッセージを送信又は転送するノードのノードＩＤとしたり、送信先のノードのノードＩＤとする。
【００８４】
また、ＩＤマスクは、ターゲットノードＩＤの有効桁数を指定するものであり、有効桁数により、ターゲットノードＩＤにおける上位から有効桁数分が共通するノードＩＤが示される。具体的には、ＩＤマスク（ＩＤマスクの値）は、０以上ノードＩＤの最大桁数以下の整数となり、例えば、ノードＩＤが４桁４進数の場合、０〜４までの整数となる。
【００８５】
例えば、図７（Ｂ）に示すように、ターゲットノードＩＤが「２１３２」であり、ＩＤマスクの値が「４」の場合には、ターゲットノードＩＤの「４」桁全てが有効であり、ノードＩＤが「２１３２」であるノードのみがカタログ配布メッセージの送信先タッゲートとなる。
【００８６】
また、図７（Ｃ）に示すように、ターゲットノードＩＤが「３３０１」であり、ＩＤマスクの値が「２」の場合には、ターゲットノードＩＤの上位「２」が有効であり（ノードＩＤが「３３＊＊」）上位二桁が「３３」である（下位２桁はどのような値でも良い）ルーティングテーブル上の全てのノードがカタログ配布メッセージの送信先ターゲットとなる。
【００８７】
更に、図７（Ｄ）に示すように、ターゲットノードＩＤが「１２２０」であり、ＩＤマスクの値が「０」の場合には、ターゲットノードＩＤの上位「０」桁が有効、すなわち、いずれの桁もどのような値であっても良く（そのため、このときのターゲットノードＩＤは、どのような値であってもよいことになる。）、ルーティングテーブル上の全てのノードがカタログ配布メッセージの送信先ターゲットとなる。
【００８８】
そして、ノードＩＤを４桁４進数とした場合、カタログ管理ノードであるノードＸから送出されるカタログ配布メッセージのＤＨＴマルチキャストは、図８乃至図１１に示すように、第１段階から第４段階までのステップで行われる。
【００８９】
（第１段階）
先ず、ノードＸは、ヘッダ部におけるターゲットノードＩＤを自己（自ノード）のノードＩＤ「３１０２」とし、ＩＤマスクを「０」として、当該ヘッダ部及びペイロード部を含むカタログ配布メッセージを生成する。そして、図７（Ａ）、（Ｂ）に示すように、ノードＸは、図６に示すルーティングテーブルを参照し、ＩＤマスク「０」に「１」を加算した（足した）レベル「１」のテーブルにおける各欄に登録された（つまり、各グループとしての各エリアに属する）代表のノード（ノードＡ，Ｂ，Ｃ）に対してカタログ配布メッセージを送信する。
【００９０】
（第２段階）
次に、ノードＸは、上記カタログ配布メッセージのヘッダ部におけるＩＤマスク「０」を「１」に変換したカタログ配布メッセージを生成する。なお、ターゲットノードＩＤは自己のノードＩＤであるため、変更されない。そして、ノードＸは、図６に示すルーティングテーブルを参照し、図９（Ａ）のノードＩＤ空間の右上のエリア及び図９（Ｂ）に示すように、ＩＤマスク「１」に「１」を加算したレベル「２」のテーブルにおける各欄に登録された各ノード（ノードＤ，Ｅ，Ｆ）に対して当該カタログ配布メッセージを送信する。
【００９１】
一方、第１段階において、ノードＸからカタログ配布メッセージ（自己が属するエリアに対するカタログ配布メッセージ）を受信したノードＡは、当該カタログ配布メッセージのヘッダ部におけるＩＤマスク「０」を「１」に変換し、且つ、ターゲットノードＩＤ「３１０２」を自己のノードＩＤ「０１３２」に変換したカタログ配布メッセージを生成する。そして、ノードＡは、図示しない自己のルーティングテーブルを参照し、図９（Ａ）のノードＩＤ空間の左上のエリア及び図９（Ｂ）に示すように、ＩＤマスク「１」に「１」を加算したレベル「２」のテーブルにおける各欄に登録された各ノード（ノードＡ１，Ａ２，Ａ３）に対して当該カタログ配布メッセージを送信する。つまり、ノードＡは、自己が属するエリア「0XXX」がさらに複数のエリア（「00XX」、「01XX」、「02XX」、「03XX」）に分けられている場合には、当該さらに分けられている各エリアに属する一の（代表の）ノード（ノードＡ１，Ａ２，Ａ３）を決定し、当該決定された全てのノード（ノードＡ１，Ａ２，Ａ３）に受信されたカタログ配布メッセージを送信する（以下、同様）。
【００９２】
同様にして、図９（Ａ）のノードＩＤ空間の左下及び右下のエリア及び図９（Ｂ）に示すように、第１段階において、ノードＸからカタログ配布メッセージを受信したノードＢ及びノードＣも、夫々、自己のルーティングテーブルを参照し、レベル２のテーブルにおける各欄に登録された各ノード（ノードＢ１，Ｂ２，Ｂ３，Ｃ１，Ｃ２，Ｃ３）に対して、ＩＤマスクを「１」とし、且つ、自己のノードＩＤをターゲットノードＩＤとしたカタログ配布メッセージを生成し、これを送信する。
【００９３】
（第３段階）
次に、ノードＸは、上記カタログ配布メッセージのヘッダ部におけるＩＤマスク「１」を「２」に変換したカタログ配布メッセージを生成する。なお、上記と同様、ターゲットノードＩＤは変更されない。そして、ノードＸは、図６に示すルーティングテーブルを参照し、図１０（Ａ）のノードＩＤ空間の右上のエリア及び図１０（Ｂ）に示すように、ＩＤマスク「２」に「１」を加算したレベル「３」のテーブルにおける各欄に登録された各ノード（ノードＧ，Ｈ）に対して当該カタログ配布メッセージを送信する。
【００９４】
一方、第２段階において、ノードＸからカタログ配布メッセージを受信したノードＤは、当該カタログ配布メッセージのヘッダ部におけるＩＤマスク「１」を「２」に変換し、且つ、ターゲットノードＩＤ「３１０２」を自己のノードＩＤ「３００１」に変換したカタログ配布メッセージを生成する。そして、ノードＤは、自己のルーティングテーブルを参照し、図１０（Ｂ）に示すように、ＩＤマスク「２」に「１」を加算したレベル「３」のテーブルにおける各欄に登録された各ノード（ノードＤ１，Ｄ２，Ｄ３）に対して当該カタログ配布メッセージを送信する。
【００９５】
同様にして、図示しないが、第２段階において、カタログ配布メッセージを受信したノードＥ，Ｆ，Ａ１，Ａ２，Ａ３，Ｂ１，Ｂ２，Ｂ３，Ｃ１，Ｃ２，Ｃ３も、夫々、自己のルーティングテーブルを参照し、レベル３のテーブルにおける各欄に登録された各ノード（図示せず）に対して、ＩＤマスクを「２」とし、且つ、自己のノードＩＤをターゲットノードＩＤとしたカタログ配布メッセージを生成し、これを送信する。
【００９６】
（第４段階）
次に、ノードＸは、上記カタログ配布メッセージのヘッダ部におけるＩＤマスク「２」を「３」に変換したカタログ配布メッセージを生成する。なお、上記と同様、ターゲットノードＩＤは変更されない。そして、ノードＸは、図６に示すルーティングテーブルを参照し、図１１（Ａ）のノードＩＤ空間の右上のエリア及び図１１（Ｂ）に示すように、ＩＤマスク「３」に「１」を加算したレベル「４」のテーブルにおける各欄に登録されたノードＩに対して当該カタログ配布メッセージを送信する。
【００９７】
一方、第３段階において、ノードＸからカタログ配布メッセージを受信したノードＧは、当該カタログ配布メッセージのヘッダ部におけるＩＤマスク「２」を「３」に変換し、且つ、ターゲットノードＩＤ「３１０２」を自己のノードＩＤ「３１２３」に変換したカタログ配布メッセージを生成する。そして、ノードＧは、自己のルーティングテーブルを参照し、図１１（Ｂ）に示すように、ＩＤマスク「３」に「１」を加算したレベル「４」のテーブルにおける各欄に登録されたノードＧ１に対して当該カタログ配布メッセージを送信する。
【００９８】
同様にして、図示しないが、第３段階において、カタログ配布メッセージを受信した各ノードも、自己のルーティングテーブルを参照し、レベル４のテーブルにおける各欄に登録された各ノードに対して、ＩＤマスクを「３」とし、且つ、自己のノードＩＤをターゲットノードＩＤとしたカタログ配布メッセージを生成し、これを送信する。
【００９９】
（最終段階）
最後に、ノードＸは、上記カタログ配布メッセージのヘッダ部におけるＩＤマスク「３」を「４」に変換したカタログ配布メッセージを生成する。そうすると、ターゲットノードＩＤとＩＤマスクから、当該カタログ配布メッセージが自己（自ノード）宛であることを認識し、送信処理を終了する。
【０１００】
一方、第４段階において、カタログ配布メッセージを受信した各ノード１も、当該カタログ配布メッセージのヘッダ部におけるＩＤマスク「３」を「４」に変換したカタログ配布メッセージを生成する。そうすると、ターゲットノードＩＤとＩＤマスクから、当該カタログ配布メッセージが自己（自ノード）宛であることを認識し、送信処理を終了する。
【０１０１】
なお、カタログ配布メッセージのペイロード部に含まれるユニークＩＤは、各カタログ配布メッセージ毎に固有に付与されるＩＤであり、例えばノードＸから送出された一のメッセージが転送され最後のノードに至るまで、当該ＩＤは変わらない。また、カタログ配布メッセージに応じて、各ノードから返信メッセージが返信される場合、元となったカタログ配布メッセージと同一のユニークＩＤが付与される。
【０１０２】
以上のように、コンテンツカタログ情報は、カタログ管理ノードであるノードＸから、ＤＨＴマルチキャストにより、オーバーレイネットワーク９に参加している全てのノードに配布され、各ノードは、コンテンツカタログ情報を記憶することになる。
【０１０３】
また、コンテンツカタログ情報が更新された場合にも、その更新される度に、カタログ管理ノードであるノードＸから、ＤＨＴマルチキャストにより、オーバーレイネットワーク９に参加している全てのノードに配布されるが、この場合、コンテンツカタログ情報全体のうちの更新された差分のコンテンツデータの属性情報が記述されたコンテンツカタログ情報（以下、「更新差分コンテンツカタログ情報」という）がノードＸから送信されることになる。こうして配布された更新差分コンテンツカタログ情報は、各ノードにおいて既に記憶されているコンテンツカタログ情報に組み込まれ（追加）される。
【０１０４】
ここで、「コンテンツカタログ情報全体のうちの更新された差分のコンテンツデータの属性情報」とは、例えば、コンテンツカタログ情報に新たに、登録、削除、又は変更された分のコンテンツデータの属性情報を意味する。このように、更新差分コンテンツカタログ情報のみをＤＨＴマルチキャストにより送信することにより、送受信されるデータ量を減らし、ネットワーク８負荷や、各ノードにおける処理負荷の軽減を図ることができる。
【０１０５】
ところで、コンテンツ配信システムＳにおいては、各ノードのオーバーレイネットワーク９からの脱退（ノード装置の電源断や故障、或いはネットワークの部分的な切断等による）や、オーバーレイネットワーク９への参加（例えば、電源ＯＮによる）が行なわれる頻度が高いため、全てのノードが、最新の（バージョン情報が最も新しいバージョン情報の）コンテンツカタログ情報を保持している（記憶している）とは限らない。
【０１０６】
つまり、更新差分コンテンツカタログ情報がＤＨＴマルチキャストにより配布された際に脱退していたノードは、その時の更新差分コンテンツカタログ情報を受け取れず、したがって、その後にオーバーレイネットワーク９に参加した際に保持しているコンテンツカタログ情報は古いものとなる。
【０１０７】
そのため、本実施形態においては、ＤＨＴマルチキャストにより配布された更新差分コンテンツカタログ情報を受信したノードは、当該更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報とを比較し、その比較の結果に基づいて、オーバーレイネットワーク９に参加している全てのノードにおけるコンテンツカタログ情報が最新になるように処理を行うようになっている。なお、かかる処理の詳細は後述する。
【０１０８】
［２．ノードの構成等］
次に、図１２を参照して、ノードの構成及び機能について説明する。
【０１０９】
図１２は、ノードの概要構成例を示す図である。
【０１１０】
各ノードは、図１２に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、コンテンツデータ、コンテンツカタログ情報、ルーティングテーブル及び各種プログラム等を記憶保存（格納）するためのＨＤ等から構成された宛先情報記憶手段、コンテンツカタログ情報記憶手段、及び範囲情報記憶手段としての記憶部１２と、受信されたコンテンツデータ等を一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノードとの間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４および通信部２０はバス２２を介して相互に接続されている。なお、ノードとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。
【０１１１】
そして、制御部１１は、ＣＰＵが記憶部１２等に記憶された各種プログラム（ノード処理プログラムを含む）を実行することにより、ノード全体を統括制御するようになっており、また、検索要求情報送信手段、検索結果情報受信手段、範囲判別手段、不足範囲取得手段、コンテンツカタログ情報取得手段、検索結果情報返信手段、検索要求情報転送手段、コンテンツ特定手段、コンテンツカタログ情報送信手段、及びコンテンツカタログ情報受信手段等として機能し、後述する処理を行うようになっている。
【０１１２】
なお、コンテンツカタログ情報を記憶するためのカタログキャッシュ領域は、例えば記憶部１２における記憶領域のうち、数ＫＢ（キロバイト）〜数ＭＢ（メガバイト）が割り当てられている。このようなコンテンツカタログ情報は、例えば、ノードの製造時や販売時に予め記憶されるようにしても良いし、後からＤＨＴマルチキャストにより配布され、記憶されるようにしても良い。
【０１１３】
また、上記ノード処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【０１１４】
［３．コンテンツ配信システムの動作］
［３．１  実施形態１］
先ず、図１３乃至図１５を参照して、実施形態１におけるコンテンツ配信システムＳの動作について説明する。
【０１１５】
なお、実施形態１は、各ノードにコンテンツカタログ情報全体を記憶させる形態である。
【０１１６】
図１３は、カタログ管理ノードにおけるＤＨＴマルチキャスト処理を示すフローチャートであり、図１４は、カタログ配布メッセージを受信したノードにおける処理を示すフローチャートであり、図１５は、図１４におけるカタログ情報受信処理の詳細を示すフローチャートである。
【０１１７】
なお、オーバーレイネットワーク９に参加している各ノードは、稼働（すなわち、電源が入れられ、各種設定を初期化している）し、ユーザからの入力部２１を介した指示待機、及び他のノードからのネットワーク８を介したメッセージの受信待機状態にあるものとする。
【０１１８】
また、オーバーレイネットワーク９に参加している各ノードには、既にコンテンツカタログ情報が記憶されているものとする。
【０１１９】
図１３に示す処理は、例えば、カタログ管理ノードであるノードＸにおいて、コンテンツカタログ情報が更新（バージョンアップ（アップデート）ともいう。コンテンツカタログ情報全体の更新の場合もあるし、一部の更新の場合もある）された場合に開始され、ノードＸの制御部１１は、固有のユニークＩＤと、上述した更新差分コンテンツカタログ情報とを取得し、当該取得したユニークＩＤ及び更新差分コンテンツカタログ情報をペイロード部に含むカタログ配布メッセージを生成する（ステップＳ１）。
【０１２０】
次いで、ノードＸの制御部１１は、上記生成したカタログ配布メッセージのヘッダ部におけるターゲットノードＩＤとして自己のノードＩＤ「３１０２」を設定し、ＩＤマスクとして「０」を設定し、ＩＰアドレスとして自己のＩＰアドレスを設定する（ステップＳ２）。
【０１２１】
次いで、当該制御部１１は、上記設定したＩＤマスクの値が、自己のルーティングテーブルの全レベル数（図６の例では、「４」）よりも小さいか否かを判別（判断）する（ステップＳ３）。
【０１２２】
このとき、ＩＤマスクに「０」が設定されているので、ルーティングテーブルの全レベル数よりも小さいため、当該制御部１１は、ＩＤマスクがルーティングテーブルの全レベル数よりも小さいと判別し（ステップＳ３：ＹＥＳ）、自己のルーティングテーブルにおける「上記設定したＩＤマスク＋１」のレベルに登録されている全てのノードを決定し（つまり、ノードＸが属するエリアがさらに複数のエリアに分けられているので、当該さらに分けられている各エリアに属する一のノードが決定される）、当該決定したノードに対して上記生成したカタログ配布メッセージを送信する（ステップＳ４）。
【０１２３】
例えば、図６の例では、「ＩＤマスク「０」＋１」であるレベル１に登録されたノードＡ、ノードＢ、及びノードＣに対してカタログ配布メッセージが送信されることになる。
【０１２４】
次いで、当該制御部１１は、上記カタログ配布メッセージのヘッダ部において設定されたＩＤマスクの値に「１」を加算して当該ＩＤマスクを再設定し（ステップＳ５）、ステップＳ３に戻る。
【０１２５】
その後、当該制御部１１は、ＩＤマスク「１」，「２」，「３」について同様にステップＳ３〜Ｓ５の処理を繰り返す。これにより、上記カタログ配布メッセージは、自己のルーティングテーブルに登録されている全てのノードに送信されることになる。
【０１２６】
一方、ステップＳ３において、ＩＤマスクの値が、自己のルーティングテーブルの全レベル数よりも小さくないと判別された場合（図６の例では、ＩＤマスクの値が「４」の場合）には、当該処理を終了する。
【０１２７】
次に、上記のように送信されたカタログ配布メッセージを受信した各ノードは、当該カタログ配布メッセージを一時格納し、図１４に示す処理を開始する。ここでは、ノードＡを例にとって説明する。
【０１２８】
図１４に示す処理が開始されると、ノードＡの制御部１１は、自己のノードＩＤが、受信したカタログ配布メッセージのヘッダ部におけるターゲットノードＩＤ及びＩＤマスクにより特定されるターゲットに含まれるか否かを判別する（ステップＳ１１）。
【０１２９】
ここで、ターゲットとは、ターゲットノードＩＤにおいて、ＩＤマスクの値に該当する上位桁が共通するノードＩＤを示し、例えば、ＩＤマスクが「０」であれば、全てのノードＩＤがターゲットに含まれ、ＩＤマスクが「２」でターゲットノードＩＤが「３１０２」であれば、上位「２」桁が「３１」となる「３１＊＊」（＊＊はどのような値でも良い）のノードＩＤがターゲットに含まれることとなる。
【０１３０】
ノードＡが受信したカタログ配布メッセージのヘッダ部におけるＩＤマスクは「０」であり、有効桁数が指定されていないので、ノードＡの制御部１１は、自己のノードＩＤ「０１３２」がターゲットに含まれると判別し（ステップＳ１１：ＹＥＳ）、当該カタログ配布メッセージのヘッダ部におけるターゲットノードＩＤを、自己のノードＩＤ「０１３２」に変換設定する（ステップＳ１２）。
【０１３１】
次いで、当該制御部１１は、上記カタログ配布メッセージのヘッダ部におけるＩＤマスクの値に「１」を加算して当該ＩＤマスクを再設定（ここでは、「０」から「１」に変換（一のレベルを示すＩＤマスクを次のレベルを示すＩＤマスクに変えて））する（ステップＳ１３）。
【０１３２】
次いで、当該制御部１１は、上記再設定したＩＤマスクの値が、自己のルーティングテーブルの全レベル数よりも小さいか否かを判別する（ステップＳ１４）。
【０１３３】
このとき、ＩＤマスクに「１」が設定されているので、ルーティングテーブルの全レベル数よりも小さいため、当該制御部１１は、ＩＤマスクがルーティングテーブルの全レベル数よりも小さいと判別し（ステップＳ１４：ＹＥＳ）、自己のルーティングテーブルにおける「上記再設定したＩＤマスク＋１」のレベルに登録されている全てのノードを決定し（つまり、ノードＡが属するエリアがさらに複数のエリアに分けられているので、当該さらに分けられている各エリアに属する一のノードが決定される）、当該決定したノードに対して上記生成したカタログ配布メッセージを送信し（ステップＳ１５）、ステップＳ１３に戻る。
【０１３４】
例えば、「ＩＤマスク「１」＋１」であるレベル２に登録されたノードＡ１、ノードＡ２、及びノードＡ３に対してカタログ配布メッセージが送信されることになる。
【０１３５】
その後、当該制御部１１は、ＩＤマスク「２」，「３」について同様にステップＳ１４及びＳ１５の処理を繰り返す。これにより、上記カタログ配布メッセージは、自己のルーティングテーブルに登録されている全てのノードに送信されることになる。
【０１３６】
一方、上記ステップＳ１１において、当該制御部１１は、自己のノードＩＤが、受信したカタログ配布メッセージのヘッダ部におけるターゲットノードＩＤ及びＩＤマスクにより特定されるターゲットに含まれないと判別した場合には（ステップＳ１１：ＮＯ）、ルーティングテーブル中で、当該ターゲットノードＩＤと上位桁から一致する桁数が最も多いノードに対して上記受信したカタログ配布メッセージを送信（転送）し（ステップＳ１７）、当該処理を終了する。
【０１３７】
例えば、ＩＤマスクが「２」でターゲットノードＩＤが「３１０２」であったとすると、ノードＡのノードＩＤ「０１３２」は、ターゲット「３１＊＊」に含まれないと判別される。なお、ステップＳ１７の転送処理は、通常のＤＨＴのルーティングテーブルを用いたメッセージの転送である。
【０１３８】
一方、上記ステップＳ１４において、当該制御部１１は、ＩＤマスクの値が、自己のルーティングテーブルの全レベル数よりも小さくないと判別した場合には（ステップＳ１４：ＮＯ）、カタログ情報受信処理を開始する（ステップＳ１６）。なお、かかるカタログ情報受信処理も、カタログ配布メッセージを受信した各ノードにおいて行われる。
【０１３９】
当該カタログ情報受信処理においては、図１５に示すように、カタログ配布メッセージを受信したノードの制御部１１は、先ず、カタログ配布メッセージのペイロード部における更新差分コンテンツカタログ情報を取得し（ステップＳ２１）、当該更新差分コンテンツカタログ情報に付加されたバージョン情報（バージョン通し番号）と、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加されたバージョン情報（バージョン通し番号）とを比較し、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が古いか否かを判別する（ステップＳ２２）。
【０１４０】
この比較の結果、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が古い（例えば、既に記憶されているコンテンツカタログ情報に付加された最新のバージョン通し番号「８」より、更新差分コンテンツカタログ情報に付加されたバージョン通し番号「６」が小さい）場合には（ステップＳ２２：ＹＥＳ）、制御部１１は、当該取得された更新差分コンテンツカタログ情報のバージョンよりも新しいバージョンに対応する更新差分コンテンツカタログ情報（例えば、バージョン通し番号「７」及び「８」に対応する更新差分コンテンツカタログ情報）に、当該新しいバージョンを示すバージョン情報を付加して、これを、上記カタログ配布メッセージを送信した上位のノード（例えば、ノードＡの場合、カタログ配布メッセージを送信したノードＸとなる。ノードＡ１の場合、カタログ配布メッセージを送信したノードＡとなる。）に対して送信する（ステップＳ２３）。つまり、上記カタログ配布メッセージを送信した上位のノードが、自分が持っているコンテンツカタログ情報よりもバージョンが古いものを持っているので、その上位のノードに対して、その足りない更新差分コンテンツカタログ情報が提供されることになる。
【０１４１】
このように、上記カタログ配布メッセージを転送した上位のノード（ノードＸでない場合に限る）が、自分が持っているコンテンツカタログ情報よりもバージョンが古いということが生じるのは、例えば、コンテンツカタログ情報があまり時間をおかずに続けて複数回更新され、更新差分コンテンツカタログ情報が続けて複数回ノードＸからＤＨＴマルチキャストにより送出され、当該更新差分コンテンツカタログ情報が転送さている途中に、オーバーレイネットワーク９へのノードの参加或いは脱退があると、その転送経路が変わり、先にノードＸから送出された更新差分コンテンツカタログ情報よりも、後にノードＸから送出された最新のバージョンの更新差分コンテンツカタログ情報が先に自分に到達する場合があるためである。
【０１４２】
一方、上記比較の結果、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が古くない（つまり、同じか、若しくは新しい）場合には（ステップＳ２２：ＮＯ）、制御部１１は、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とを比較し、当該取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とが等しい（同じ）か否かを判別する（ステップＳ２４）。
【０１４３】
この比較の結果、当該取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とが等しい場合には（ステップＳ２４：ＹＥＳ）、そのまま当該処理が終了される。
【０１４４】
このように、上記カタログ配布メッセージを転送した上位のノード（ノードＸでない場合に限る）が、自分が持っているコンテンツカタログ情報と等しいということが生じるのは、例えば、更新差分コンテンツカタログ情報がノードＸからＤＨＴマルチキャストにより送出され、当該更新差分コンテンツカタログ情報が転送されている途中に、オーバーレイネットワーク９へのノードの参加或いは脱退があると、その転送経路が変わり、同じ更新差分コンテンツカタログ情報が、後から別経路からも自分に到達する場合があるためである。
【０１４５】
一方、上記比較の結果、当該取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とが等しくない（つまり、新しい）場合には（ステップＳ２４：ＮＯ）、制御部１１は、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とを比較し、当該更新差分コンテンツカタログ情報に付加されたバージョン情報が、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より１つ新しいか否かを判別する（ステップＳ２５）。
【０１４６】
この比較の結果、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が１つ新しい場合（例えば、既に記憶されているコンテンツカタログ情報に付加された最新のバージョン通し番号より、更新差分コンテンツカタログ情報に付加されたバージョン通し番号が１大きい場合）には（ステップＳ２５：ＹＥＳ）、制御部１１は、当該更新差分コンテンツカタログ情報に記述されたコンテンツデータの属性情報及びそのバージョン情報に基づいて、既に記憶されているコンテンツカタログ情報及びバージョン情報を更新し（ステップＳ２７）、当該処理を終了する。例えば、上記取得した更新差分コンテンツカタログ情報に記述されたコンテンツデータの属性情報が、既に記憶されているコンテンツカタログ情報に追加登録され、バージョンアップされる。
【０１４７】
一方、上記比較の結果、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が１つ新しいのではない（つまり、２つ以上新しい）場合（例えば、既に記憶されているコンテンツカタログ情報に付加された最新のバージョン通し番号より、更新差分コンテンツカタログ情報に付加されたバージョン通し番号が２以上大きい）場合には（ステップＳ２５：ＮＯ）、制御部１１は、双方のバージョン情報の間に位置すべきバージョン情報（例えば、バージョン通し番号「５」と「８」の間に位置する「６」及び「７」）に対応する更新差分コンテンツカタログ情報（つまり、足りない更新差分コンテンツカタログ情報）を、上記カタログ配布メッセージを送信した上位のノードに対して要求、これを取得する（ステップＳ２６）。
【０１４８】
そして、制御部１１は、ステップＳ２１及びＳ２６で取得した各更新差分コンテンツカタログ情報及びこれらのバージョン情報に基づいて、既に記憶されているコンテンツカタログ情報及びバージョン情報を更新し（ステップＳ２７）、当該処理を終了する。例えば、ステップＳ２１及びＳ２６で取得した各更新差分コンテンツカタログ情報に記述されたコンテンツデータの属性情報を既に記憶されているコンテンツカタログ情報に追加登録し、バージョンアップする。
【０１４９】
以上説明したように、上記実施形態１によれば、ＤＨＴマルチキャストにより、更新差分コンテンツカタログ情報をオーバーレイネットワーク２に参加している全てのノードに対して配信（配布）されるように構成したので、各ノードが、夫々、カタログ管理サーバに接続して最新のコンテンツカタログ情報を要求する必要がないので、カタログ管理サーバのような特定の管理装置に多大の負荷がかかることを防止することができる。また、各ノードは、常に、最新のコンテンツカタログ情報を記憶しておくようにすることができるので、各ノードのユーザは当該コンテンツカタログ情報から、常に、所望の最新コンテンツを検索することが可能となる。
【０１５０】
また、例えばカタログ管理ノードにおいてコンテンツカタログ情報が更新されたときだけ、その更新された差分のみが、更新差分コンテンツカタログ情報としてＤＨＴマルチキャストにより配信されるようにしたので、送受信されるデータ量を減らし、ネットワーク８負荷や、各ノードにおける処理負荷の軽減を図ることができる。
【０１５１】
また、各ノードは、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己のカタログキャッシュ領域に記憶しているコンテンツカタログ情報に付加されたバージョン情報とを比較し、既に記憶しているコンテンツカタログ情報に付加されたバージョン情報より、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報が１つ新しい場合には、当該更新差分コンテンツカタログ情報の内容を、既に記憶しているコンテンツカタログ情報に組み込んで更新し、また、既に記憶しているコンテンツカタログ情報に付加されたバージョン情報より、受信された更新差分コンテンツカタログ情報に付加されたバージョン情報が２つ以上新しい場合には、双方のバージョン情報の間に位置すべきバージョン情報に対応する更新差分コンテンツカタログ情報を上位のノードから取得し、当該取得した更新差分コンテンツカタログ情報の内容をも、既に記憶しているコンテンツカタログ情報に組み込んで更新するようにしたので、しばらく脱退していたノードであっても、再参加した後、参加していたノードから更新差分コンテンツカタログ情報を取得することができるので、カタログ管理サーバのような特定の管理装置を介さずに、より効率良く、脱退中に配信された更新差分コンテンツカタログ情報を取得することができる。
【０１５２】
更に、各ノードは、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己のカタログキャッシュ領域に記憶しているコンテンツカタログ情報に付加されたバージョン情報とを比較し、既に記憶しているコンテンツカタログ情報に付加されたバージョン情報より、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報が古い場合には、当該受信した更新差分コンテンツカタログ情報のバージョンよりも新しいバージョンに対応する更新差分コンテンツカタログ情報を、古いコンテンツカタログ情報を送信した上位のノードに対して送信するようにしたので、更新差分コンテンツカタログ情報が続けて複数回ノードＸからＤＨＴマルチキャストにより送出され、当該更新差分コンテンツカタログ情報が転送さている途中に、オーバーレイネットワーク９へのノードの参加或いは脱退があり、その転送経路が変わった場合であっても、適切に最新のコンテンツカタログ情報を全てのノードに行き渡らせることができる。
（ＤＨＴマルチキャスト処理の変形形態）
上記図１３に示すＤＨＴマルチキャスト処理においては、各ノードが、自己のルーティングテーブルにＩＰアドレスが記憶されているノードのみに対してカタログ配布メッセージを送信するように構成したが、ルーティングテーブルにＩＰアドレスが登録（記憶）されていないノードに向けてもカタログ配布メッセージを送信する変形形態について、図１６乃至図１８を参照して説明する。
【０１５３】
オーバーレイネットワーク９へのノードの参加、脱退が行われたとき、それがあるノードにおけるルーティグテーブルには、未だ反映されていないことも考えられる。この場合、上述したＤＨＴマルチキャストによっても、全てのノードにカタログ配布メッセージが行き渡らない事態が生じる可能性がある。この変形形態では、このような事態が生じても、オーバーレイネットワーク９に参加している全てのノードにカタログ配布メッセージを送信することが可能となる。
【０１５４】
なお、この変形形態において、上述した実施形態１と同様の部分については、重複する説明を省略する。
【０１５５】
上述した図１５に示す処理は、当該変形形態においても適用され、上述した実施形態１と同様に実行される。
【０１５６】
一方、上述した図１３に示す処理は、当該変形形態においては適用されず、その代わりに図１６及び図１７に示す処理が実行される。また、上述した図１４に示す処理も、当該変形形態においては適用されず、その代わりに図１８に示す処理が実行される。
【０１５７】
また、当該変形形態において送信されるカタログ配布メッセージにおけるヘッダ部には、転送回数積算値（ノードを転送される度に１カウントアップする値）及び転送回数上限値が含まれる。これは、ルーティングテーブルにＩＰアドレスが登録されていないノードに向かってカタログ配布メッセージが送信される場合、当該メッセージが転送され続けてしまう可能性があり、これを防止するためである。
【０１５８】
図１６に示すＤＨＴマルチキャスト処理においては、ノードＸの制御部１１は、上記図１３におけるステップＳ１と同様、取得したユニークＩＤ及び更新差分コンテンツカタログ情報をペイロード部に含むカタログ配布メッセージを生成する（ステップＳ５１）。
【０１５９】
次いで、ノードＸの制御部１１は、生成されたカタログ配布メッセージのヘッダ部におけるターゲットノードＩＤとして自己のノードＩＤ「３１０２」を設定し、ＩＤマスクとして「０」を設定し、ＩＰアドレスとして自己のＩＰアドレスを設定する（ステップＳ５２）。
【０１６０】
次いで、当該制御部１１は、カタログ配布メッセージ送信処理を開始する（ステップＳ５３）。
【０１６１】
当該カタログ配布メッセージ送信処理においては、図１７に示すように、ノードＸの制御部１１は、自己のルーティングテーブルの指定するレベルを、自己のノードＩＤと上記生成したカタログ配布メッセージにおけるターゲットノードＩＤの上位桁から一致する桁数＋１の値に決定する（ステップＳ６１）。
【０１６２】
例えば、自己のノードＩＤが「３１０２」であり、ターゲットノードＩＤが「３１０２」である場合には全て一致するため、一致する桁数が「４」であり、これに１が加算されて、ルーティングテーブルのレベルが「５」と決定される。
【０１６３】
次いで、当該制御部１１は、上記決定したレベルが、上記生成したカタログ配布メッセージにおけるＩＤマスクよりも大きいか否かを判別する（ステップＳ６２）。
【０１６４】
上述の例で言うと、決定したレベル「５」は、カタログ配布メッセージにおけるＩＤマスク「０」よりも大きいため、当該制御部１１は、決定したレベルがＩＤマスクよりも大きいと判別し（ステップＳ６２：ＹＥＳ）、ステップＳ６３に移行する。
【０１６５】
ステップＳ６３では、当該制御部１１は、自己のルーティングテーブルの指定する欄（つまり、レベルと列）を決定する。具体的には、当該制御部１１は、指定するレベルを「上記カタログ配布メッセージにおけるＩＤマスクの値＋１」に、指定する列を当該レベルの左端から１列に、夫々決定する。
【０１６６】
なお、ルーティングテーブルがＡ桁Ｂ進数からなる場合、レベルの値は１〜Ａまでであり、列の値は１〜Ｂまでとなる。上述のように４桁４進数であれば、レベルは１〜４（全レベル数が４）であり、列は１〜４（全列数が４）である。上述の例では、カタログ配布メッセージにおけるＩＤマスクが「０」であるため、ルーティングテーブルにおける「レベル１、１列」の欄が指定される。  
【０１６７】
次いで、当該制御部１１は、決定したレベルの値が全レベル数以下であるか否かを判別する（ステップＳ６４）。上述の例では、決定したレベルの値「１」が、全レベル数「４」以下であるため、当該制御部１１は、決定したレベルの値が全レベル数以下であると判別し（ステップＳ６４：ＹＥＳ）、次いで、決定した列の値が全列数以下であるか判別する（ステップＳ６５）。上述の例では、決定した列の値「１」が、全列数「４」以下であるため、当該制御部１１は、決定したレベルの値が全レベル数以下であると判別し（ステップＳ６５：ＹＥＳ）、続いて、決定した欄が自己（自己のノードＩＤ）を示すか否かを判別する（ステップＳ６６）。上述の例では、決定した「レベル１、１列」の欄には自己のノードＩＤは登録されていないため、当該制御部１１は、決定した欄が自己を示さないと判別し（ステップＳ６６：ＮＯ）、ステップＳ６７に移行する。
【０１６８】
ステップＳ６７では、当該制御部１１は、決定した欄にノードのＩＰアドレス等が登録されているか否かを判断する。上述の例では、決定した「レベル１、１列」の欄にノードＡのＩＰアドレスが登録されているため、当該制御部１１は、決定した欄にノードのＩＰアドレス等が登録されている判断し（ステップＳ６７：ＹＥＳ）、当該登録されているノードに対して（当該ＩＰアドレスにしたがって）カタログ配布メッセージを送信する（ステップＳ６８）。
【０１６９】
次いで、当該制御部１１は、決定した列の値に「１」を加算し（ステップＳ６９）、ステップＳ６５に戻る。
【０１７０】
そして、ステップＳ６５〜Ｓ６９の処理は繰り返し行われ、例えば図５において「レベル１、２列」の欄に登録されたノードＢ、「レベル１、３列」の欄に登録されたノードＣにもカタログ配布メッセージが送信され、決定した欄が「レベル１、４列」に変更され、ステップＳ６５に戻る。
【０１７１】
次いで、ステップＳ６５の処理を経て、ステップＳ６６の処理において、決定した「レベル１、４列」の欄は自己を示しているため、当該制御部１１は、決定した欄が自己を示すと判断し（ステップＳ６６：ＹＥＳ）、ステップＳ６９に移行する。このようにして、ルーティングテーブルのレベル１に登録されている全てのノード１にカタログ配布メッセージを送信することができる。
【０１７２】
一方、上記ステップＳ６５の処理において決定した列の値が全列数以下でないと判別した場合（ステップＳ６５：ＮＯ）、当該制御部１１は、上記カタログ配布メッセージのヘッダ部において設定されたＩＤマスクの値に「１」を加算して当該ＩＤマスクを再設定し（ステップＳ７０）、ステップＳ６３に戻り、同様の処理が繰り返される。
【０１７３】
一方、上記ステップＳ６７の処理において、上記決定した欄にノードのＩＰアドレス等が登録されていない場合には（ステップＳ６７：ＮＯ）、当該制御部１１は、決定した欄（例えば、「レベル３、２列」）の最も近くに記憶されているノードに対して、カタログ配布メッセージを送信する（ステップＳ７１）。上述の例では、ＩＤマスクの値を「３」とし、ターゲットノードＩＤを「レベル３、２列」の欄に該当する「３１１０」とする。
【０１７４】
このようにターゲットを特定することにより、この欄に対応するノードが参加した場合に、カタログ配布メッセージを送信できることとなる。なお、上述の例においては、ノードＧに当該カタログ配布メッセージを送信して転送させればよい。
【０１７５】
ここで、カタログ配布メッセージのヘッダ部における転送回数上限値は、転送回数の上限を決める値であり、ターゲットとなるノードが存在しない場合に、当該メッセージが転送され続けることを防止するために設けられる。転送回数上限値は、通常の転送では絶対に超えない程度のやや大きめの値とする。例えば、レベル数が４であるルーティングテーブルを用いる場合には、転送回数は、４回以内に収まるのが通常であり、この場合、転送回数上限値は、例えば８回、１６回等にする。
【０１７６】
一方、上記ステップＳ６４の処理において、決定したレベルの値が全レベル数以下でないと判別された（ステップＳ６４：ＮＯ）、当該処理が終了する。
【０１７７】
一方、上述のステップＳ６１の処理において、例えば自己のノードＩＤが「３１０２」であり、ターゲットノードＩＤが「２１３２」であり、ＩＤマスクが「４」である場合には、一致する桁数は「０」となり、これに１が加算され、指定するルーティングテーブルのレベルが「１」と決定される。この場合、ステップＳ６２では、決定したレベルがカタログ配布メッセージにおけるＩＤマスク「４」よりも小さいため、ステップＳ７２に移行され、通常のＤＨＴメッセージ送信（転送）処理が行われる。具体的には、制御部１１は、決定したレベルにおけるターゲットノードＩＤに最も近いノードであって、ルーティングテーブルに登録されているものを決定し、当該ノードにカタログ配布メッセージを送信（転送）し、当該理を終了する。
【０１７８】
次に、上記のように送信されたカタログ配布メッセージを受信した各ノードは、当該カタログ配布メッセージを記憶し、図１８に示す処理を開始する。
【０１７９】
図１８に示す処理が開始されると、当該ノードの制御部１１は、カタログ配布メッセージの転送回数が転送回数上限値を超えたか否かを判別し（ステップＳ８１）、転送回数上限値を超えていない場合には（ステップＳ８１：ＮＯ）、自己のノードＩＤが、受信したカタログ配布メッセージのターゲットに含まれるか否かを判別する（ステップＳ８２）。このとき、カタログ配布メッセージにおけるＩＤマスクが「０」である場合、上述したように、全てのノードＩＤを含むため、当該制御部１１は、自己のノードＩＤが、上記ターゲットに含まれると判別し（ステップＳ８２：ＹＥＳ）、受信したカタログ配布メッセージのヘッダ部におけるターゲットノードＩＤを自己のノードＩＤに変換設定し、ＩＤマスクを「上記カタログ配布メッセージにおけるＩＤマスクの値＋１」に変換設定して（ステップＳ８３）、そのカタログ配布メッセージについて図１７に示すカタログ配布メッセージ送信処理を実行する（ステップＳ８４）。そして、当該カタログ配布メッセージ送信処理が終了すると、当該制御部１１は、上述した実施形態１と同様、図１５に示すカタログ情報受信処理を実行し（ステップＳ８５）、当該処理を終了する。
【０１８０】
一方、上記ステップＳ８２の処理において、自己のノードＩＤが、上記ターゲットに含まれないと判別された場合には（ステップＳ８２：ＮＯ）、受信したカタログ配布メッセージについて図１７に示すカタログ配布メッセージ送信処理を実行し（ステップＳ８６）、当該処理を終了する。
【０１８１】
また、一方、ステップＳ８１の処理において、受信されたカタログ配布メッセージの転送回数が転送回数上限値を超えたと判別された場合には（ステップＳ８１：ＹＥＳ）、転送が行われずに当該処理が終了する。
【０１８２】
以上説明したように、上記ＤＨＴマルチキャスト処理の変形形態によれば、オーバーレイネットワーク９へのノードの参加、脱退が行われたとき、それがあるノードにおけるルーティグテーブルには、未だ反映されていないような場合であっても、オーバーレイネットワーク９に参加している全てのノードにカタログ配布メッセージを送信することができる。
【０１８３】
［３．２  実施形態２］
［３．２．１  コンテンツカタログ情報の記憶動作］
次に、実施形態２におけるコンテンツ配信システムＳの動作について説明する。なお、この実施形態２において、上述した実施形態１と同様の部分については、重複する説明を省略する
また、上述した図１３、図１４、図１６乃至図１８は、当該実施形態２においても適用され、上述した実施形態１若しくは上記変形形態と同様に実行される。
【０１８４】
一方、上述した図１５に示す処理は、当該実施形態２においては適用されず、その代わりに図１９に示す処理が実行される。
【０１８５】
上記実施形態１は、オーバーレイネットワーク９に参加している各ノードが、夫々、コンテンツカタログ情報の全部を記憶する形態であったが、コンテンツ配信システムＳ上に投入されるコンテンツの数が膨大になると、コンテンツカタログ情報のデータ量も大きくなりすぎて１台のノードにおけるカタログキャッシュ領域に記憶しきれないという事態が想定される。
【０１８６】
そこで、実施形態２では、各ノード毎にコンテンツデータの担当範囲（当該担当範囲が広ければ広いほどより多くの数のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶でき、担当範囲が狭ければ狭いほど少ない数のコンテンツデータの属性情報が記述されたコンテンツカタログ情報しか記憶できない）を決め、各ノードが属するエリア（ノードＩＤ空間におけるエリア）に対応するコンテンツデータ（例えば、最上位桁目が「０」であるエリア（「0XXX」のエリア）には、最上位桁目が「０」であるコンテンツＩＤを有するコンテンツデータが対応する）のうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するように構成し、コンテンツカタログ情報を複数のノードで分散するようにしている。
【０１８７】
ここで、「担当範囲」は、例えば、ノードＩＤとコンテンツＩＤとの最上位桁目からの一致すべき桁数を示す「Ｒａｎｇｅ」（担当範囲を示す担当範囲情報の一例）で表される。例えば、Ｒａｎｇｅ＝１の場合、少なくとも最上位桁目が一致すべきことを意味し、Ｒａｎｇｅ＝２の場合、少なくとも最上位桁目及びその次の桁目が一致すべきことを意味しており、当該Ｒａｎｇｅは、担当範囲が広くなるほど、小さくなる桁数を示している。
【０１８８】
そして、夫々のノードは、上記Ｒａｎｇｅを記憶しており、自己のノードＩＤのうちＲａｎｇｅにて示される桁数分の所定桁目が一致するコンテンツＩＤを有するコンテンツデータを、自己の担当範囲のコンテンツデータとして、その属性情報が記述されたコンテンツカタログ情報を記憶する。例えば、ノードＩＤが「０１３２」でＲａｎｇｅ＝１であるノードは、少なくとも最上位桁目が「０」（最上位桁目が一致）であるコンテンツＩＤを有する全てのコンテンツデータを、自己の担当範囲のコンテンツデータとしてその属性情報が記述されたコンテンツカタログ情報を記憶することになる。また、ノードＩＤが「１００１」でＲａｎｇｅ＝２であるノードは、少なくとも最上位桁目から２桁目までが「１０」であるコンテンツＩＤを有する全てのコンテンツデータを、担当範囲のコンテンツデータとしてその属性情報が記述されたコンテンツカタログ情報を記憶することになる。なお、Ｒａｎｇｅ＝０の場合、コンテンツカタログ情報の全部を記憶することになる。また、各ノードは、自己の担当範囲外のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶することを妨げるものではなく、最低限自己の担当範囲のコンテンツデータの属性情報については、他のノードに対して記憶していることを保証するものである。
【０１８９】
また、Ｒａｎｇｅをどのように設定するかは、各ノード毎に任意であるが、例えば、カタログキャッシュ領域の記憶容量が小さいほど狭く（言い換えれば、大きいほど広く）設定される。なお、記憶容量に余裕がある場合には、Ｒａｎｇｅ＝０としても良い。
【０１９０】
次に、図１９を参照して、あるノードにおけるカタログ情報受信処理について具体的に説明する。なお、オーバーレイネットワーク９に参加している各ノードには、少なくとも自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報が記憶されているものとする。
【０１９１】
実施形態２における、カタログ情報受信処理においては、図１９に示すように、カタログ配布メッセージを受信したノードの制御部１１は、実施形態１と同様、カタログ配布メッセージのペイロード部における更新差分コンテンツカタログ情報を取得する（ステップＳ１０１）。なお、図１９に示すステップＳ１０２〜Ｓ１０５の処理は、図１５に示すステップＳ２１〜Ｓ２５の処理と同様である。
【０１９２】
上記ステップＳ１０５における比較の結果、既に自己の記憶部１２に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が１つ新しい場合には（ステップＳ１０５：ＹＥＳ）、制御部１１は、当該更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、自己のＲａｎｇｅに示される担当範囲内のコンテンツデータ（例えば、自己のＲａｎｇｅに示される一致すべき桁数分の所定桁目（最上位桁目から当該桁数分）が、自己のノードＩＤと一致するコンテンツＩＤを有するコンテンツデータ）を特定し、当該特定したコンテンツデータに係るコンテンツカタログ情報を更新する（ステップＳ１０７）。例えば、特定されたコンテンツデータの属性情報が、既に記憶されているコンテンツカタログ情報に追加登録され、バージョンアップされる。
【０１９３】
一方、ステップＳ１０５における上記比較の結果、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が１つ新しいのではない（つまり、２つ以上新しい）場合には（ステップＳ１０５：ＮＯ）、制御部１１は、双方のバージョン情報の間に位置すべきバージョン情報に対応する更新差分コンテンツカタログ情報（つまり、足りない更新差分コンテンツカタログ情報）を、上記カタログ配布メッセージを送信した上位のノードに対して要求（足りない更新差分コンテンツカタログ情報のバージョン情報を含む要求メッセージを送信）、これを取得し、当該更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、自己のＲａｎｇｅに示される担当範囲内のコンテンツデータを特定する（ステップＳ１０６）。
【０１９４】
なお、足りない更新差分コンテンツカタログ情報の要求を受けた上位のノードも、自己の担当範囲外によりその更新差分カタログ情報を記憶していない場合、当該上位のノードは、更に上位のノードに対して足りない更新差分コンテンツカタログ情報を要求することになり、その足りない更新差分コンテンツカタログ情報が得られるまで上位のノードへ要求が上がっていくことになる（最悪でも、カタログ配布メッセージの送信元のノードＸまでいけば必ず足りない更新差分コンテンツカタログ情報が得られる）。
【０１９５】
続いて、制御部１１は、上記ステップＳ１０１で取得した更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、自己のＲａｎｇｅに示される担当範囲内のコンテンツデータ（例えば、自己のＲａｎｇｅに示される一致すべき桁数分の所定桁目（最上位桁目から当該桁数分）が、自己のノードＩＤと一致するコンテンツＩＤを有するコンテンツデータ）を特定し、当該特定したコンテンツデータ及び上記ステップＳ１０６にて特定したコンテンツデータに係るコンテンツカタログ情報を更新（例えば、特定したコンテンツデータの属性情報を新規登録）する（ステップＳ１０７）。
【０１９６】
次いで、制御部１１は、ステップＳ１０１で取得した更新差分コンテンツカタログ情報に付加されたバージョン情報に基づいて、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報を更新し（ステップＳ１０８）、当該処理を終了する。
【０１９７】
なお、仮に、上記ステップＳ１０１で取得された更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうちからコンテンツデータが一つも特定されない場合（つまり、更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータが、何れも自己の担当範囲外である場合）であっても、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報は、上記ステップＳ１０１で取得された更新差分コンテンツカタログ情報に付加されたバージョン情報に更新（最新にする）されて記憶される。この後、再び、更新差分コンテンツカタログ情報を受信したときに、そのバージョンと比較しなければならないからである。
【０１９８】
次いで、制御部１１は、自己の記憶部１２におけるカタログキャッシュ領域に記憶されているコンテンツカタログ情報のデータ量が所定量（例えば、当該カタログキャッシュ領域の最大容量の９０％以上のデータ量）以上になったか否かを判別し（ステップＳ１０９）、所定量以上になった場合には（ステップＳ１０９：ＹＥＳ）、自己のＲａｎｇｅに「１」を加算（つまり、自己の担当範囲を狭くするように変更）し（ステップＳ１１０）、カタログキャッシュ領域に記憶されているコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、Ｒａｎｇｅが上がったことにより（担当範囲が狭くなったことにより）担当範囲外となったコンテンツデータの属性情報を当該コンテンツカタログ情報から削除し（ステップＳ１１１）、当該処理を終了する。これにより、カタログキャッシュ領域の記憶容量を確保することができる。一方、コンテンツカタログ情報のデータ量が所定量以上になっていない場合には（ステップＳ１０９：ＮＯ）、当該処理を終了する。
【０１９９】
以上説明したように、上記実施形態２におけるコンテンツカタログ情報の記憶動作によれば、オーバーレイネットワーク９に参加している各ノード毎に、コンテンツデータの担当範囲を決め、各ノードが属するエリア（ノードＩＤ空間におけるエリア）に対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するように構成し、コンテンツカタログ情報を複数のノードで分散するようにしたので、コンテンツ配信システムＳ上に投入されるコンテンツの数が膨大になり、コンテンツカタログ情報のデータ量も大きくなりすぎて１台のノードにおけるカタログキャッシュ領域に記憶しきれないという問題が生じることなく、全てのコンテンツカタログ情報をコンテンツ配信システムＳ上に検索可能に分散配置させることで、各ノードは、コンテンツカタログ情報の全てを利用することができる。
【０２００】
しかも、各ノードの担当範囲のコンテンツデータは、夫々、自己のノードＩＤと所定桁目（例えば、最上位桁目）が一致するコンテンツＩＤに対応するコンテンツデータとしたので、ＤＨＴのルーティングテーブルの欄（テーブルエントリー）毎に担当範囲を決めることができ、各ノードは、自己のＤＨＴのルーティングテーブルの各欄に登録されたノードが、どの範囲のコンテンツデータに係るコンテンツカタログ情報を保持している可能性があるかを容易に知ることができる。
【０２０１】
また、例えば、ノードＩＤ及びコンテンツＩＤが１６桁１６進数である場合には、コンテンツカタログ情報を、ルーティングテーブルのレベル１における注目桁である０〜Ｆの１６分割することができる。
【０２０２】
また、各ノードの担当範囲は、ノードＩＤとコンテンツＩＤとの最上位桁目からの一致すべき桁数を示し、且つ担当範囲が広くなるほど小さくなる桁数を示す「Ｒａｎｇｅ」で特定されるようにし、各ノード毎にかかるＲａｎｇｅを任意に決めることができるようにしたので、記憶保存するべきコンテンツカタログ情報の大きさ（データ量）を各ノード毎に決めることができる。更に、そのＲａｎｇｅは、例えば、カタログキャッシュ領域の記憶容量が小さいほど狭く（言い換えれば、大きいほど広く）設定できるようにしたので、各ノードにおける記憶容量に応じて記憶可能なコンテンツカタログ情報のデータ量を設定でき、ノード間の記憶容量の差があっても、適切に、コンテンツカタログ情報を分散させることができる。
【０２０３】
また、上述した実施形態１（又はＤＨＴマルチキャスト処理の変形形態）と同様、ＤＨＴマルチキャストにより、更新差分コンテンツカタログ情報をオーバーレイネットワーク２に参加している全てのノードに対して配信（配布）されるようにし、これを受信した各ノードは、自己の担当範囲のコンテンツデータに係る更新差分コンテンツカタログ情報のみを既に記憶されているコンテンツカタログ情報に組み込み更新するようにしたので、各ノードは、常に、自己の担当範囲の最新のコンテンツカタログ情報を記憶しておくことができる。
【０２０４】
更に、更新差分コンテンツカタログ情報を受信し自己の担当範囲に該当するものを記憶した各ノードは、自己のカタログキャッシュ領域に記憶されているコンテンツカタログ情報のデータ量が所定量以上になった場合、自己の担当範囲を狭くするように変更し、カタログキャッシュ領域に記憶されているコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、担当範囲が狭くなったことにより担当範囲外となったコンテンツデータの属性情報を当該コンテンツカタログ情報から削除するようにしたので、カタログキャッシュ領域の記憶容量を確保することができる。
【０２０５】
［３．２．２  コンテンツカタログ情報の検索動作］
次に、以上のように各ノードに分散されて保存されているコンテンツカタログ情報の検索方法について説明する。
【０２０６】
図２０（Ａ）は、ノードＩのルーティングテーブルの一例を示す図であり、図２０（Ｂ）は、ノードＩからカタログ検索要求がなされる際の様子を示す概念図を示す図である。
【０２０７】
図２０（Ｂ）の例では、ノードＩのＲａｎｇｅを「２」としているため、ノードＩＤが「３１０２」であるノードＩの担当範囲は「３１」となり、当該ノードＩは、最上位桁から２桁目までが「３１」であるコンテンツＩＤを有するコンテンツデータの属性情報が記述（登録）されたコンテンツカタログ情報を記憶している。したがって、最上桁目から２桁目までが「３１」であるコンテンツＩＤを有するコンテンツデータの属性情報については、自己のコンテンツカタログ情報から検索することができる。
【０２０８】
しかし、当該ノードＩは、最上位桁目から２桁目までが「３１」でないコンテンツＩＤを有するコンテンツデータの属性情報については、自己のコンテンツカタログ情報中に記述（登録）されていないため、かかる属性情報については、自己のルーティングテーブルに登録された各エリアに属する代表のノードに対して問い合わせる（コンテンツカタログ情報を検索するための検索キーワードによるカタログ検索要求）ことになる。つまり、ノードＩは、自己のＲａｎｇｅにて示される一致すべき桁数分の所定桁目（例えば、最上位桁目から２桁目まで）の値「３１」外の値に対応する各エリアに属する代表のノードに対して、カタログ検索要求を行うようになっている。
【０２０９】
図２０（Ｂ）の例では、ノードＩは、自己のルーティングテーブルの１段目（レベル１）に登録されているノードＡ、ノードＢ、及びノードＣに対して、夫々、最上位桁目が「０」、「１」、及び「２」であるコンテンツＩＤを有するコンテンツデータの属性情報が記述されたコンテンツカタログ情報についてのカタログ検索要求を行っている。
【０２１０】
更に、図２０（Ｂ）の例では、ノードＩは、自己のルーティングテーブルの２段目（レベル２）に登録されているノードＤ、ノードＥ、及びノードＦに対して、夫々、最上位桁目から２桁目までが「３０」、「３２」、及び「３３」であるコンテンツＩＤを有するコンテンツデータの属性情報が記述されたコンテンツカタログ情報についてのカタログ検索要求を行っている。つまり、ノードＩは、自己の担当範囲が、自己が属するエリアに対応するコンテンツデータ（ここでは、最上位桁目が「３」であるコンテンツＩＤを有するコンテンツデータ）の範囲の一部（ここでは、「３１」）である場合には、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノードに対してカタログ検索要求を行うことになる。
【０２１１】
更に、図２０（Ｂ）の例では、ノードＢのＲａｎｇｅを「２」としているため、ノードＩＤが「１００１」であるノードＢの担当範囲は「１０」となる。したがって、ノードＢは、最上位桁目から２桁目までが「１０」でない（つまり、「１１」、「１２」、「１３」）コンテンツＩＤを有するコンテンツデータの属性情報については、ノードＢ１、ノードＢ２、及びノードＢ３に対してコンテンツカタログ情報についてのカタログ検索要求を行っている。つまり、ノードＢは、自己の担当範囲が、自己が属するエリアに対応するコンテンツデータの範囲の一部である場合には、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノードに対してカタログ検索要求を行う（転送）ことになる。
【０２１２】
なお、ノードＩのＲａｎｇｅが「１」である場合、当該ノードは、夫々、最上位桁目から２桁目までが「３０」、「３２」、及び「３３」であるコンテンツＩＤを有するコンテンツデータの属性情報についても、コンテンツカタログ情報中に記述（登録）されていることになるため、自己のルーティングテーブルの２段目（レベル２）に登録されているノードＤ、ノードＥ、及びノードＦに対してカタログ検索要求を行う必要はない。
【０２１３】
そして、カタログ検索要求を受けた各ノードは、指示された検索条件を満たす（検索キーワードを含む）コンテンツデータの属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域から検索し取得して、これを含む検索結果を、カタログ検索要求元のノードに対して返信することになる。なお、かかる返信は、直接、カタログ検索要求元のノードに対して行うようにしても良いし、上位のノードを経由して（例えば、ノードＢ１の場合、ノードＢを経由してノードＩへ）行うようにしても良い。
【０２１４】
次に、図２１乃至図２３を参照して、上記カタログ検索要求が行われる際の各ノードにおける処理について具体的に説明する。
【０２１５】
図２１は、ノードにおけるカタログ検索処理を示すフローチャートであり、図２２は、図２１におけるカタログ検索要求処理の詳細を示すフローチャートであり、図２３は、カタログ検索要求メッセージを受信したノードにおける処理を示すフローチャートである。
【０２１６】
例えばノードＩにおいて、ユーザから入力部２１を介してカタログ表示指示があった場合、図示しないカタログ表示処理が開始され、例えば図５に示すようなカタログが表示部１６上に表示される。
【０２１７】
このような表示状態において、ユーザが入力部２１を操作して所望の検索キーワード（例えば、ジャズ）を入力実行すると、図２１に示すカタログ検索処理が開始（カタログ表示処理から移行）され、当該ノードＩの制御部１１は、入力された検索キーワードを検索条件として取得し（ステップＳ２０１）、さらに記憶部１２からＲａｎｇｅを取得する。
【０２１８】
次いで、当該制御部１１は、取得したＲａｎｇｅが「０」より大きいか否かを判別し（ステップＳ２０２）、「０」より大きくない場合（つまり、「０」の場合）には（ステップＳ２０２：ＮＯ）、コンテンツカタログ情報の全てを記憶しているので、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し（ステップＳ２０３）、そのコンテンツカタログ情報に記述された属性情報の一覧（例えば、ジャンル一覧）を、例えば、表示部２１に表示されたカタログ上に選択可能に表示（検索結果をユーザに提示）し（ステップＳ２０４）、当該処理を終了し、カタログ表示処理に戻ることになる。なお、当該カタログ表示処理において、ユーザから再び検索キーワードが入力されると（例えば、アーティスト名での絞り込み）、再び、当該カタログ検索処理が開始されることになる。そして、当該表示部２１に表示されたカタログ上でコンテンツ名が選択されると、上述したように、そのコンテンツデータのコンテンツＩＤが取得され、コンテンツＩＤを含むコンテンツ所在問合せメッセージが、そのルートノードに向かって送出されることになる。
【０２１９】
一方、上記取得したＲａｎｇｅが「０」より大きい場合（つまり、コンテンツカタログ情報の全てを記憶していない場合）には（ステップＳ２０２：ＹＥＳ）、当該制御部１１は、自己のＩＰアドレス等を含み、例えばレベル下限値ｌｏｗｅｒ＝１、レベル上限値ｕｐｐｅｒ＝２、及び転送回数上限値ｎｆｏｒｗａｒｄ＝２に設定したヘッダ部と、固有のユニークＩＤ（例えば、当該カタログ検索要求メッセージに固有のＩＤ）及び上記取得した検索キーワードを検索条件として含むペイロード部と、を有する検索要求情報としてのカタログ検索要求メッセージを生成する（ステップＳ２０５）。レベル下限値ｌｏｗｅｒとレベル上限値ｕｐｐｅｒとで、ルーティングテーブルにおけるメッセージの送信範囲を規定できるようになっており、例えば、レベル下限値ｌｏｗｅｒ＝１、且つレベル上限値ｕｐｐｅｒ＝２と設定すると、ルーティングテーブルにおけるレベル１及びレベル２に登録された全てのノードがメッセージの送信先となる。
【０２２０】
次いで、当該制御部１１は、カタログ検索要求処理を行う（ステップＳ２０６）。
【０２２１】
当該カタログ検索要求処理においては、図２２に示すように、先ず、制御部１１は、上記カタログ検索要求メッセージにおけるヘッダ部に設定されたレベル上限値ｕｐｐｅｒがレベル下限値ｌｏｗｅｒ以上であるか否かを判別し（ステップＳ２２１）、レベル下限値ｌｏｗｅｒ以上である場合には（ステップＳ２２１：ＹＥＳ）、自己のルーティングテーブルの指定する欄（つまり、レベルと列）を決定する（ステップＳ２２２）。具体的には、当該制御部１１は、指定するレベルをカタログ検索要求メッセージにおけるレベル下限値ｌｏｗｅｒに、指定する列を当該レベルの左端から１列に、夫々決定する。
【０２２２】
次いで、当該制御部１１は、決定した欄にＩＰアドレスが登録されているか否かを判別し（ステップＳ２２３）、登録されている場合には（ステップＳ２２３：ＹＥＳ）、上記カタログ検索要求メッセージのヘッダ部におけるターゲットノードＩＤとして当該決定した欄におけるノードＩＤに設定し、当該決定した欄におけるＩＰアドレスを設定して（ステップＳ２２４）、当該決定した欄に登録されている代表のノードに、当該カタログ検索要求メッセージを送信する（ステップＳ２２５）。
【０２２３】
一方、決定した欄にＩＰアドレスが登録されていない場合には（ステップＳ２２３：ＮＯ）、当該制御部１１は、転送回数上限値ｎｆｏｒｗａｒｄに「１」を加算（転送回数上限値を増やし、当該エリアに属するノードに到達させるため）し（ステップＳ２２６）、上記カタログ検索要求メッセージのヘッダ部におけるターゲットノードＩＤとして当該決定した欄に登録可能な任意のノードＩＤ（例えば、注目桁が「０」であるエリアの場合、０（最上位桁）から始まりさえすればその後の値は何であっても良い）に設定し、当該決定した欄と同じレベルの最も近くの欄（例えば、右隣の欄）に登録（記憶）されているノードのＩＰアドレスを設定して（ステップＳ２２７）、当該最も近くの欄に登録されているノードに、当該カタログ検索要求メッセージを送信する（ステップＳ２２５）。これにより、当該メッセージは、上記決定した欄に登録可能な任意のノードＩＤのノード（このエリアに属する代表のノードとなる）に最終的に転送されるか、或いは、転送回数上限値に達して破棄されることになる。
【０２２４】
次いで、当該制御部１１は、上記決定した列の値に「１」を加算し（ステップＳ２２８）、加算された列が全列数以下か否かを判別し（ステップ２２９）、全列数以下である場合には（ステップＳ２２９：ＹＥＳ）、ステップＳ２２３に戻り、上記と同様の処理を行い、当該レベルの右端列の欄についての処理が終了するまで繰り返される。
【０２２５】
そして、全列数以下でなくなった場合には（ステップＳ２２９：ＮＯ）、レベル下限値ｌｏｗｅｒに「１」が加算され（ステップＳ２３０）、ステップＳ２２１に戻り、再び、レベル上限値ｕｐｐｅｒが、上記加算されたレベル下限値ｌｏｗｅｒ以上であるか否かが判別され、レベル上限値ｕｐｐｅｒが、上記加算されたレベル下限値ｌｏｗｅｒ以上でなくなるまで、上記処理が繰り返し行われる。つまり、レベル上限値ｕｐｐｅｒで示されるルーティングテーブルのレベル（ここではレベル２）における各欄についての処理が行われる。そして、レベル上限値ｕｐｐｅｒがレベル下限値ｌｏｗｅｒ以上でなくなった場合には（ステップＳ２２１：ＮＯ）、図２１に示す処理に戻る。
【０２２６】
以上のように、カタログ検索要求メッセージは、ルーティングテーブルにおける各エリアに属する代表のノードのＩＰアドレスにしたがって、当該各エリアに属する代表のノードに対して送信されることになる。  
【０２２７】
次に、上記のように送信されたカタログ検索要求メッセージを受信した各ノードは、当該カタログ検索要求メッセージを一時格納し、図２３に示す処理を開始する。
【０２２８】
図２３に示す処理が開始されると、ノードの制御部１１は、カタログ検索要求メッセージのヘッダ部における転送回数上限値ｎｆｏｒｗａｒｄから「１」を減算し（ステップＳ２４１）、自己のノードＩＤが、受信したカタログ検索要求メッセージのターゲットに含まれるか否かを判断する（ステップＳ２４２）。例えば、自己のノードＩＤと、カタログ検索要求メッセージのヘッダ部におけるターゲットノードＩＤとが一致する場合、当該ターゲットに含まれると判断され（ステップＳ２４２：ＹＥＳ）、当該制御部１１は、上記減算された転送回数上限値ｎｆｏｒｗａｒｄが「０」より大きいか否かを判別する（ステップＳ２４３）。
【０２２９】
そして、転送回数上限値ｎｆｏｒｗａｒｄが「０」より大きい場合には（ステップＳ２４３：ＹＥＳ）、当該制御部１１は、レベル下限値ｌｏｗｅｒに「１」を加算し（ステップＳ２４４）、図２２に示すカタログ検索要求処理を行い（ステップＳ２４５）、ステップＳ２４６に移行する。当該カタログ検索要求処理については、上述した通りであり、当該ノードは、自己の下位のノード（ルーティングテーブルのレベル２の各欄に登録された代表のノード）に対してカタログ検索要求メッセージを転送することになる。
【０２３０】
一方、転送回数上限値ｎｆｏｒｗａｒｄが「０」より大きくない（「０」になった）場合には（ステップＳ２４３：ＮＯ）、これ以上、カタログ検索要求メッセージの転送を行うことなく、ステップＳ２４６に移行する。
【０２３１】
ステップＳ２４６では、当該制御部１１は、カタログ検索要求メッセージのペイロード部における検索条件として検索キーワードを取得し、当該検索条件を満たす（例えば、検索キーワード「ジャズ」に該当する）コンテンツデータの属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域から検索する。
【０２３２】
そして、当該制御部１１は、上記検索したコンテンツカタログ情報、及び自己の担当範囲（例えば、「１０」）を検索範囲として含む検索結果情報と、カタログ検索要求メッセージにおけるユニークＩＤと、を含む検索結果メッセージを生成し、これを、カタログ検索要求メッセージの送信元のノードＩに対して送信（返信）し（ステップＳ２４７）、当該処理を終了する。
【０２３３】
一方、ステップＳ２４２の処理において、自己のノードＩＤが、受信したカタログ検索要求メッセージのターゲットに含まれないと判断された場合には（ステップＳ２４２：ＮＯ）、当該制御部１１は、上記減算された転送回数上限値ｎｆｏｒｗａｒｄが「０」より大きいか否かを判別し（ステップＳ２４８）、「０」より大きい場合には（ステップＳ２４８：ＹＥＳ）、通常のＤＨＴルーティングと同様、カタログ検索要求メッセージのヘッダ部におけるターゲットＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードのＩＰアドレス等を取得し、そのＩＰアドレス等宛てに、上記カタログ検索要求メッセージを転送し（ステップＳ２４９）、「０」より大きくない場合には（ステップＳ２４８：ＮＯ）、当該処理を終了する。
【０２３４】
そして、図２１に示す処理に戻り、ノードＩの制御部１１は、他のノードから返信されてきた検索結果メッセージを受信すると（ステップＳ２０７：ＹＥＳ）、当該メッセージに含まれているユニークＩＤと検索結果情報を一時的にＲＡＭに記憶する（ステップＳ２０８）。こうして、予め設定された時間（カタログ検索要求処理においてカタログ検索要求メッセージを送信してから該予め設定された時間）が経過しタイムアウトに至るまで、上記検索結果メッセージの受信待機及び受信が行われ、受信された各検索結果メッセージに含まれるユニークＩＤと検索結果情報が記憶される。
【０２３５】
そして、タイムアウトになると（ステップＳ２０９：ＹＥＳ）、当該制御部１１は、同じユニークＩＤに対応する検索結果情報を集計、整理し、これに含まれる検索範囲が、期待される範囲（自己の担当範囲外の範囲）を全て網羅しているか否かを判別（つまり、受信された全ての検索結果情報に含まれる検索範囲に基づいて、コンテンツカタログ情報の検索がされていない範囲があるか否かを判別）し（ステップＳ２１０）、網羅していない場合（検索がされていない範囲がある場合）には（ステップＳ２１０：ＮＯ）、網羅していない範囲（検索されていない範囲）に関してのみ、カタログ管理ノードであるノードＸ又はカタログ管理サーバに問合せ、その範囲に係る上記検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を取得、追加する（ステップＳ２１１）。
【０２３６】
次いで、当該ノードＩの制御部１１は、自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報から、上記検索条件を満たす（例えば、検索キーワード「ジャズ」に該当する）コンテンツデータの属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域から検索、取得し（ステップＳ２０３）、こうして全ての範囲について網羅されたコンテンツカタログ情報に記述された属性情報の一覧を、例えば、表示部２１に表示されたカタログ上に選択可能に表示（検索結果をユーザに提示）し（ステップＳ２０４）、当該処理を終了し、カタログ表示処理に戻ることになる。
【０２３７】
以上説明したように、上記実施形態２におけるコンテンツカタログ情報の検索動作によれば、各ノードは自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についてのカタログ検索要求（カタログ検索要求メッセージ）を、ＤＨＴマルチキャストにより効率良く、自己のＤＨＴのルーティングテーブルの例えばレベル１及びレベル２の各欄に登録された代表の各ノードに対して行うことができる。よって、各ノードは、所望のコンテンツカタログ情報を、少ないメッセージ量で、より効率良く検索することができる。
【０２３８】
そして、カタログ検索要求を行ったノードは、代表の各ノードから夫々の範囲の検索結果を取得することができるので、全てのコンテンツカタログ情報を保持しておく必要がない。
【０２３９】
また、コンテンツカタログ情報のサイズが巨大になると、カタログ検索要求を受けた各ノードにおける検索処理の負荷も大きくなるが、上記実施形態２の手法によれば、コンテンツカタログ情報がほぼ均等に分散されるため（コンテンツＩＤ自体がノードＩＤ空間にさほど隔たりがなく分散されることによる）、当該各ノードにおける検索処理の負荷も均等に分散され、検索速度の向上を図ることができ、ネットワーク負荷も分散することができる。
【０２４０】
更に、上記コンテンツカタログ情報の分散は、各ノードにより自律的に行われるので、例えばサーバによる情報収集や管理が必要ないというメリットもある。つまり、管理者は、例えばカタログ管理ノードから差分更新コンテンツカタログ情報をＤＨＴマルチキャストにより配信するだけで、各ノードは自己の担当範囲であるか否かを、ノードＩＤ、コンテンツＩＤ、及びＲａｎｇｅにより判断し、自己の担当範囲のコンテンツデータに係るコンテンツカタログ情報のみを記憶保存するようにしたので、自律的なコンテンツカタログ情報の分散を図ることが可能となる。
【０２４１】
（カタログ検索処理の変形形態）
上述した図２１及び図２２に示すカタログ検索処理では、カタログ検索要求メッセージを受信したノードが、自己の担当範囲如何に関わらず、転送回数上限値ｎｆｏｒｗａｒｄを確認して、カタログ検索要求メッセージを下位のノードに転送するようにした処理であったが、この変形形態として、カタログ検索要求メッセージを受信したノードが、自己の担当範囲が、自己が属するエリアに対応するコンテンツデータの範囲の一部である場合にのみ、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノードに対してカタログ検索要求メッセージを転送するようにしたカタログ検索処理について、図２４乃至図２６を参照して、説明する。
【０２４２】
なお、この変形形態において、上述した実施形態２と同様の部分については、重複する説明を省略する。
【０２４３】
上述した図２２に示す処理は、当該変形形態においても適用され、上述した実施形態２と同様に実行される。
【０２４４】
一方、上述した図２１に示す処理は、当該変形形態においては適用されず、その代わりに図２４及び図２５に示す処理が実行される。また、上述した図２３に示す処理も、当該変形形態においては適用されず、その代わりに図２６に示す処理が実行される。
【０２４５】
（ノードＩの処理）
図２４に示すカタログ検索処理は、図２１に示す処理と同様、例えば図５に示すようなカタログが表示部１６上に表示された状態において、ユーザが入力部２１を操作して所望の検索キーワード（例えば、ジャズ）を入力実行すると開始（カタログ表示処理から移行）され、当該ノードＩの制御部１１は、入力された検索キーワードを検索条件として取得し（ステップＳ３０１）、さらに記憶部１２からＲａｎｇｅを取得する。
【０２４６】
次いで、当該制御部１１は、図２５に示すカタログ検索処理αに移行する（ステップＳ３０２）。
【０２４７】
当該カタログ検索処理αにおいては、図２５に示すように、ノードＩの制御部１１は、先ず、上記取得した自己のＲａｎｇｅが、入力部２１を介してユーザにより事前に設定された「要求検索範囲Ｎ」より大きいか否かを判別する（ステップＳ３１１）。
【０２４８】
ここで、要求検索範囲Ｎは、コンテンツデータの検索範囲を決めるためのものであり、例えば、「０」に設定すると、全範囲のコンテンツデータが検索対象になり、値が大きくになるにしたがって、検索範囲が狭まっていくようになっている。
【０２４９】
そして、自己のＲａｎｇｅが、要求検索範囲Ｎより大きくない場合（例えば、Ｒａｎｇｅ＝０、要求検索範囲Ｎ＝０の場合）には（ステップＳ３１１：ＮＯ）、当該制御部１１は、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツＩＤうち、自己のノードＩＤと最上位桁目からＮ（要求検索範囲）桁一致するコンテンツＩＤ（要求検索範囲＝０の場合、全ての桁が一致しなくとも良く、したがって、全コンテンツデータのコンテンツＩＤが対象となる）を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し（ステップＳ３１２）、図２４に示す処理に戻り、その属性情報の一覧を、例えば、表示部２１に表示されたカタログ上に選択可能に表示（検索結果をユーザに提示）し（ステップＳ３０３）、当該処理を終了し、図２１に示す処理と同様、カタログ表示処理に戻ることになる。
【０２５０】
一方、自己のＲａｎｇｅが要求検索範囲Ｎより大きい場合（例えば、Ｒａｎｇｅ＝２、要求検索範囲Ｎ＝０の場合）には（ステップＳ３１１：ＹＥＳ）、当該制御部１１は、自己のＩＰアドレス等を含み、例えばレベル下限値ｌｏｗｅｒ＝「要求検索範囲Ｎ＋１」、レベル上限値ｕｐｐｅｒ＝「自己のＲａｎｇｅ」、及び転送回数上限値ｎｆｏｒｗａｒｄ＝１に設定したヘッダ部と、固有のユニークＩＤ及び上記取得した検索キーワードを検索条件として含むペイロード部と、を有する検索要求情報としてのカタログ検索要求メッセージを生成する（ステップＳ３１３）。
【０２５１】
上述したように、レベル下限値ｌｏｗｅｒとレベル上限値ｕｐｐｅｒとで、ルーティングテーブルにおけるメッセージの送信範囲を規定できるようになっているので、例えば、Ｒａｎｇｅ＝２、要求検索範囲Ｎ＝０の場合、例えば、レベル下限値ｌｏｗｅｒ＝１、且つレベル上限値ｕｐｐｅｒ＝２となり、ルーティングテーブルにおけるレベル１及びレベル２に登録された全てのノード（図２０の例では、ノードＡ，Ｂ，Ｃ，Ｄ，Ｅ及びＦ）がメッセージの送信先となる。また、例えば、Ｒａｎｇｅ＝２、要求検索範囲Ｎ＝１の場合、例えば、レベル下限値ｌｏｗｅｒ＝２、且つレベル上限値ｕｐｐｅｒ＝２となり、ルーティングテーブルにおけるレベル２のみに登録された全てのノードがメッセージの送信先となる。
【０２５２】
次いで、当該制御部１１は、図２２に示すカタログ検索要求処理を行う（ステップＳ３１４）。かかるカタログ検索要求処理は、上述した実施形態２と同様であり、カタログ検索要求メッセージは、ルーティングテーブルにおける各エリアに属する代表のノードのＩＰアドレスにしたがって、当該各エリアに属する代表のノードに対して送信されることになる。
【０２５３】
そして、送信されたカタログ検索要求メッセージを受信した各ノードは、当該カタログ検索要求メッセージを一時格納し、図２６に示す処理を開始する。
【０２５４】
図２６に示す処理が開始されると、ノードの制御部１１は、カタログ検索要求メッセージの送信元のノードＩのノードＩＤと自己のノードＩＤとの一致桁数（最上位からの一致桁数）に「１」を加算した値を、要求検索範囲Ｎとし（ステップＳ３３１）、カタログ検索要求メッセージにおける検索キーワードを検索条件として取得し、さらに記憶部１２から自己のＲａｎｇｅを取得、図２５に示すカタログ検索処理αに移行する（ステップＳ３３２）。
【０２５５】
（ノードＡの処理）
カタログ検索要求メッセージを受信したノードが、例えば図２０に示すノードＡの場合、図２５に示すカタログ検索処理αにおけるステップＳ３１１では、自己のＲａｎｇｅ（＝１）が、要求検索範囲Ｎ（＝１）より大きくないので、ステップＳ３１２に移行され、ノードＡの制御部１１は、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツＩＤうち、自己のノードＩＤ（０１３２）と最上位桁目からＮ（＝１）桁一致するコンテンツＩＤ（つまり、最上位桁目が「０」であるコンテンツＩＤ）を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し、図２６に示す処理に戻る。
【０２５６】
そして、図２６に示すステップＳ３３３では、当該ノードＡの制御部１１は、上記ステップＳ３１２にて検索されたコンテンツカタログ情報、及び自己の担当範囲（例えば、「０」）を検索範囲として含む検索結果情報と、カタログ検索要求メッセージにおけるユニークＩＤと、を含む検索結果メッセージを生成し、これを、カタログ検索要求メッセージの送信元のノードＩに対して送信（返信）し、当該処理を終了する。
【０２５７】
（ノードＢ等の処理）
他方、カタログ検索要求メッセージを受信したノードが、例えば図２０に示すノードＢの場合、図２５に示すカタログ検索処理αにおけるステップＳ３１１では、自己のＲａｎｇｅ（＝２）が、要求検索範囲Ｎ（＝１）より大きいので、ステップＳ３１３に移行され、ノードＢの制御部１１は、自己のＩＰアドレス等を含み、例えばレベル下限値ｌｏｗｅｒ＝「要求検索範囲Ｎ（＝１）＋１」、レベル上限値ｕｐｐｅｒ＝「自己のＲａｎｇｅ（＝２）」、及び転送回数上限値ｎｆｏｒｗａｒｄ＝１に設定したヘッダ部と、固有のユニークＩＤ及び上記取得した検索キーワードを検索条件として含むペイロード部と、を有する検索要求情報としてのカタログ検索要求メッセージを生成する。この場合、レベル下限値ｌｏｗｅｒ＝２、且つレベル上限値ｕｐｐｅｒ＝２となり、ルーティングテーブルにおけるレベル２に登録されたノードＢ１，Ｂ２及びＢ３がメッセージの送信先となる。
【０２５８】
そして、当該ノードＢの制御部１１は、図２２に示すカタログ検索要求処理を行い、カタログ検索要求メッセージを、ノードＢ１，Ｂ２及びＢ３に対して送信する。そして、当該カタログ検索要求メッセージを受信したノードＢ１，Ｂ２及びＢ３は、図２６に示す処理を行い（上述したノードＡと同様に図２５の処理を経る）、自ら検索、取得したコンテンツカタログ情報、及び自己の担当範囲を検索範囲として含む検索結果情報と、カタログ検索要求メッセージにおけるユニークＩＤと、を含む検索結果メッセージを生成し、これを、当該カタログ検索要求メッセージの送信元のノードＢに対して送信（返信）し、当該処理を終了する。
【０２５９】
ノードＢが行っている図２５に示す処理に戻り、当該ノードＢの制御部１１は、ノードＢ１，Ｂ２及びＢ３から、夫々返信（理想的にはノードＢ１，Ｂ２及びＢ３の全てから返信されるが、脱退等により返信されないという場合も考えられる）されてきた検索結果メッセージを夫々受信すると（ステップＳ３１５：ＹＥＳ）、夫々のメッセージに含まれているユニークＩＤと検索結果情報を一時的にＲＡＭに記憶する（ステップＳ３１６）。こうして、予め設定された時間（カタログ検索要求処理においてカタログ検索要求メッセージを送信してから該予め設定された時間）が経過しタイムアウトに至るまで、上記検索結果メッセージの受信待機及び受信が行われ、受信された各検索結果メッセージに含まれるユニークＩＤと検索結果情報が記憶される。
【０２６０】
そして、タイムアウトになると（ステップＳ３１７：ＹＥＳ）、当該ノードＢの制御部１１は、同じユニークＩＤに対応する検索結果情報を集計、整理し、これに含まれる検索範囲が、期待される範囲（自己の担当範囲外の範囲（ここでは、「１１」、「１２」、及び「１３」）を全て網羅しているか否かを判別し（ステップＳ３１８）、網羅していない場合には（ステップＳ３１８：ＮＯ）、網羅していない範囲に関してのみ、カタログ管理ノードであるノードＸ又はカタログ管理サーバに問合せ、その範囲に係る上記検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を取得、追加する（ステップＳ３１９）。
【０２６１】
次いで、ノードＢの制御部１１は、自己のＲａｎｇｅ（＝２）の値を、要求検索範囲Ｎとし（代入してＮを変換）（ステップＳ３２０）、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツＩＤのうち、自己のノードＩＤ（１００１）と最上位桁目からＮ（＝２）桁一致するコンテンツＩＤ（つまり、最上位桁目が「１０」であるコンテンツＩＤ）を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し（ステップＳ３１２）、図２６に示す処理に戻る。
【０２６２】
そして、図２６に示すステップＳ３３３では、当該ノードＢの制御部１１は、上記ステップＳ３１６，Ｓ３１９，及びステップＳ３１２にて取得されたコンテンツカタログ情報、並びに、自己の担当範囲を含む全ての検索範囲（ここでは、「１０」、「１１」、「１２」、及び「１３」、すなわち、「１」となる）を含む検索結果情報と、上記カタログ検索要求メッセージにおけるユニークＩＤと、を含む検索結果メッセージを生成し、これを、カタログ検索要求メッセージの送信元のノードＩに対して送信（返信）し、当該処理を終了する。
【０２６３】
（ノードＩの処理）
ノードＩが行っている図２５に示す処理に戻り、当該ノードＩの制御部１１は、ノードＡ及びＢ等から、夫々返信されてきた検索結果メッセージを夫々受信すると（ステップＳ３１５：ＹＥＳ）、夫々のメッセージに含まれているユニークＩＤと検索結果情報を一時的にＲＡＭに記憶する（ステップＳ３１６）。こうして、予め設定された時間（カタログ検索要求処理においてカタログ検索要求メッセージを送信してから該予め設定された時間）が経過しタイムアウトに至るまで、上記検索結果メッセージの受信待機及び受信が行われ、受信された各検索結果メッセージに含まれるユニークＩＤと検索結果情報が記憶される。
【０２６４】
そして、タイムアウトになると（ステップＳ３１７：ＹＥＳ）、当該ノードＩの制御部１１は、同じユニークＩＤに対応する検索結果情報を集計、整理し、これに含まれる検索範囲が、期待される範囲（自己の担当範囲外の範囲（例えば、「０」、「１」、「２」、「３０」、「３２」、「３３」）を全て網羅しているか否かを判別し（ステップＳ３１８）、網羅していない場合には（ステップＳ３１８：ＮＯ）、網羅していない範囲に関してのみ、カタログ管理ノードであるノードＸ又はカタログ管理サーバに問合せ、その範囲に係る上記検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を取得、追加する（ステップＳ３１９）。
【０２６５】
次いで、ノードＩの制御部１１は、自己のＲａｎｇｅの値を、要求検索範囲Ｎとし（代入してＮを例えば「２」に変換）（ステップＳ３２０）、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツＩＤうち、自己のノードＩＤ（３１０２）と最上位桁目からＮ桁一致するコンテンツＩＤ（例えば、Ｎ＝２とした場合、最上位桁目から２桁目までが「３１」であるコンテンツＩＤ）を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し（ステップＳ３１２）、図２４に示す処理に戻る。
【０２６６】
そして、図２４に示すステップＳ３０３では、上記取得されたコンテンツカタログ情報に記述された属性情報の一覧を、例えば、表示部２１に表示されたカタログ上に選択可能に表示（検索結果をユーザに提示）し（ステップＳ３０３）、当該処理を終了し、図２１に示す処理と同様、カタログ表示処理に戻ることになる。
【０２６７】
以上説明したように、上記カタログ検索処理の変形形態によれば、カタログ検索要求（カタログ検索要求メッセージ）を受けたノードは、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報については、下位のノード（つまり、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノード）に対してカタログ検索要求を行い、それらのノードから検索結果を取得してこれを自己の範囲の検索結果と合わせて、カタログ検索要求元のノードに返信するようにしたので、より効率良く、確実に検索結果を返すことができる。
【０２６８】
図２１及び図２２に示すカタログ検索処理のように、カタログ検索要求を受けたノードが、自己の担当範囲如何に関わらず、当該カタログ検索要求を下位のノードに転送することに比して、ネットワーク負荷を低減することができる。
【０２６９】
なお、上述したカタログ検索処理は、コンテンツカタログ情報がＤＨＴマルチキャストにより配信され記憶されるような形態ばかりでなく、予め複数のノードにコンテンツカタログ情報が分散配置されている（例えば、各ノードの出荷時に自己の担当範囲のコンテンツカタログ情報が記憶されている）形態に対しても適用可能であることはいうまでもない。
【０２７０】
また、上記実施形態において、各ノードは、ローカリティを考慮し、自己にネットワーク的に近い（例えば、ＨＯＰ数がより小さい）ノードを優先して自己のＤＨＴのルーティングテーブルの各欄に登録されるように構成しても良い。
【０２７１】
例えば、あるノードが、自己のルーティングテーブルにおける、ある欄に登録することが可能な複数のノードに確認メッセージを送信し、夫々のノードからの返信された返信メッセージから、当該夫々のノードと自己との間の、例えば、ＴＴＬ（Time To Live）を取得（既にＴＴＬを知っていれば確認メッセージを送信することはない）して互いに比較し、自己にネットワーク的に近い（例えば、ＴＴＬが最も大きい（ＨＯＰ数が最も小さい））ノードを優先して自己のＤＨＴのルーティングテーブルに登録する。
【０２７２】
このように構成すれば、各ノードは、ネットワーク的に近いノードに対してカタログ検索要求を行うことになるので、当該検索処理にもローカリティが反映され、ネットワーク負荷を更に低減することが可能となる。
【０２７３】
また、上記実施形態は、コンテンツ配信システムＳにおける複数のノードにおいて共通に使用されるべき共用情報であるコンテンツカタログ情報について適用したが、その他の共用情報に対して適用しても良い。
【０２７４】
また、上記実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提として説明したが、本発明はこれに限定されるものではない。  
【図面の簡単な説明】
【０２７５】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ルーティングテーブルが作成される様子の一例を示す図である。
【図３】ルーティングテーブルの一例を示す図である。
【図４】コンテンツ保持ノードから送出されたパブリッシュメッセージの流れの一例をＤＨＴのノードＩＤ空間にて示した概念図である。
【図５】ミュージックカタログの表示形態遷移の一例を示す概念図である。
【図６】カタログ管理ノードであるノードＸが保持するルーティングテーブルの一例である。
【図７】カタログ配布メッセージを模式的に表した図である。
【図８】ＤＨＴマルチキャストが行われる様子を示す図である。
【図９】ＤＨＴマルチキャストが行われる様子を示す図である。
【図１０】ＤＨＴマルチキャストが行われる様子を示す図である。
【図１１】ＤＨＴマルチキャストが行われる様子を示す図である。
【図１２】ノードの概要構成例を示す図である。
【図１３】カタログ管理ノードにおけるＤＨＴマルチキャスト処理を示すフローチャートである。
【図１４】カタログ配布メッセージを受信したノードにおける処理を示すフローチャートである。
【図１５】図１４におけるカタログ情報受信処理の詳細を示すフローチャートである。
【図１６】カタログ管理ノードにおけるＤＨＴマルチキャスト処理を示すフローチャートである。
【図１７】カタログ管理ノードにおけるＤＨＴマルチキャスト処理を示すフローチャートである。
【図１８】カタログ配布メッセージを受信したノードにおける処理を示すフローチャートである。
【図１９】図１９におけるカタログ情報受信処理の詳細を示すフローチャートである。
【図２０】（Ａ）は、ノードＩのルーティングテーブルの一例を示す図であり、（Ｂ）は、ノードＩからカタログ検索要求がなされる際の様子を示す概念図を示す図である。
【図２１】ノードにおけるカタログ検索処理を示すフローチャートである。
【図２２】図２１におけるカタログ検索要求処理の詳細を示すフローチャートである。
【図２３】カタログ検索要求メッセージを受信したノードにおける処理を示すフローチャートである。
【図２４】ノードにおけるカタログ検索処理を示すフローチャートである。
【図２５】ノードにおけるカタログ検索処理αを示すフローチャートである。
【図２６】カタログ検索要求メッセージを受信したノードにおける処理を示すフローチャートである。
【符号の説明】
【０２７６】
Ａ〜Ｚ  ノード
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
【図１】
2007280304.tif 000003
【図２】
2007280304.tif 000004
【図３】
2007280304.tif 000005
【図４】
2007280304.tif 000006
【図５】
2007280304.tif 000007
【図６】
2007280304.tif 000008
【図７】
2007280304.tif 000009
【図８】
2007280304.tif 000010
【図９】
2007280304.tif 000011
【図１０】
2007280304.tif 000012
【図１１】
2007280304.tif 000013
【図１２】
2007280304.tif 000014
【図１３】
2007280304.tif 000015
【図１４】
2007280304.tif 000016
【図１５】
2007280304.tif 000017
【図１６】
2007280304.tif 000018
【図１７】
2007280304.tif 000019
【図１８】
2007280304.tif 000020
【図１９】
2007280304.tif 000021
【図２０】
2007280304.tif 000022
【図２１】
2007280304.tif 000023
【図２２】
2007280304.tif 000024
【図２３】
2007280304.tif 000025
【図２４】
2007280304.tif 000026
【図２５】
2007280304.tif 000027
【図２６】
2007280304.tif 000028