(57)【要約】【課題】コンテンツデータの属性情報等のレコードの改竄を確実に防止することができ、且つ、探索効率を上げることが可能なコンテンツカタログ情報等の管理情報を各ノード装置に送信する。【解決手段】生成された葉ページから根ページ情報までの節ページ情報と根ページ情報とのシリアル番号及びチェック情報を、葉ページ情報の生成に基づいて更新し、ネットワークを介して、更新されたページ情報をノード装置に送信する。【選択図】図１４
2010262457.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数のレコードを含み、且つ、木構造における葉に位置する葉ページ情報と、
前記木構造における根に位置する根ページ情報の子の位置の子ページ情報または前記根ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、  前記根ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記根ページ情報と、
前記根ページ情報から前記葉ページ情報までの間に位置する節ページ情報の子の位置の子ページ情報または前記節ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記節ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記節ページ情報と、
を含む複数のページ情報を木構造として、前記根ページ情報から前記葉ページ情報にかけて関連付けて記憶し、
前記根ページ情報のシリアル番号と、前記根ページ情報の改竄防止をチェックするための改竄チェック情報とを含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名と、を含む前記ルートリンク情報を記憶するページ情報記憶手段と、
前記葉ページ情報を生成する葉ページ情報生成手段と、
前記葉ページ情報生成手段により生成された葉ページ情報から前記根ページ情報までの前記節ページ情報と前記根ページ情報との前記シリアル番号及び前記チェック情報を、前記葉ページ情報の生成に基づいて更新する更新手段と、
複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報を記憶するアドレス情報記憶手段と、
前記ネットワークを介して、前記更新手段により更新された前記ページ情報を前記ノード装置に送信するページ情報送信手段と、
を備えることを特徴とする管理装置。
【請求項２】
所定のルールに従ってノード装置毎に定められるページ情報の担当範囲を示す担当範囲情報を記憶する担当範囲情報記憶手段と、
前記更新手段により更新されたページ情報の送信対象となるノード装置を前記担当範囲情報記憶手段に記憶された担当範囲情報に基づいて決定する送信先決定手段と、を備え、
前記ページ情報送信手段は、前記更新手段により更新されたページ情報を、前記決定されたノード装置に送信することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記アドレス情報記憶手段には、各前記ノード装置のアドレス情報に対応付けられて当該各ノード装置に割り当てられた固有の識別情報が記憶されており、
前記送信先決定手段は、前記アドレス情報記憶手段にアドレス情報が記憶されたノード装置の前記識別情報と、前記更新手段により更新されたページ情報に含まれるインデックス情報とに基づいて、前記更新されたページ情報を前記担当範囲のページ情報とするノード装置を決定することを特徴とする請求項２に記載の管理装置。
【請求項４】
請求項１乃至３の何れか一項に記載の管理装置の前記ページ情報送信手段から送信された前記ページ情報を受信するページ情報受信手段と、
前記ページ情報受信手段により受信されたページ情報を記憶するページ情報記憶手段と、
複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報と、当該各前記ノード装置に割り当てられた固有の識別情報とを対応付けて記憶するアドレス情報記憶手段と、
前記アドレス情報記憶手段にアドレス情報が記憶された前記ノード装置の識別情報と、前記ページ情報受信手段により受信されたページ情報に含まれるインデックス情報に基づいて、前記受信されたページ情報を送信するノード装置を決定する送信先決定手段と、
前記ページ情報受信手段により受信されたページ情報を、前記ネットワークを介して、前記送信先決定手段により決定されたノード装置に転送するページ情報転送手段と、
を備えることを特徴とするノード装置。
【請求項５】
所定のルールに従ってノード装置毎に定められるページ情報の担当範囲を示す担当範囲情報を記憶する担当範囲情報記憶手段と、
前記ページ情報受信手段により受信されたページ情報が、前記担当範囲情報記憶手段に記憶された担当範囲情報に示される担当範囲内のページ情報であるか否かを判断する担当範囲判断手段と、
前記担当範囲判断手段により前記ページ情報が担当範囲内のページ情報であると判断された場合に、前記送信先決定手段は、前記アドレス情報記憶手段にアドレス情報が記憶された前記ノード装置の識別情報と、前記ページ情報受信手段により受信されたページ情報に含まれるインデックス情報に基づいて、前記受信されたページ情報を送信するノード装置を決定し、
前記ページ情報転送手段は、前記担当範囲判断手段により前記担当範囲内のページ情報であると判断されたページ情報を、前記ネットワークを介して、前記送信先決定手段により決定されたノード装置に転送することを特徴とする請求項４に記載のノード装置。
【請求項６】
一又は複数のレコードを含み、且つ、木構造における葉に位置する葉ページ情報と、
前記木構造における根に位置する根ページ情報の子の位置の子ページ情報または前記根ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記根ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記根ページ情報と、
前記根ページ情報から前記葉ページ情報までの間に位置する節ページ情報の子の位置の子ページ情報または前記節ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記節ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記節ページ情報と、
を含む複数のページ情報を木構造として、前記根ページ情報から前記葉ページ情報にかけて関連付けて記憶し、
前記根ページ情報のシリアル番号と、前記根ページ情報の改竄防止をチェックするための改竄チェック情報とを含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名と、を含む前記ルートリンク情報を記憶するページ情報記憶ステップと、
前記葉ページ情報を生成する葉ページ情報生成ステップと、
前記葉ページ情報生成ステップにより生成された葉ページ情報から前記根ページ情報までの前記節ページ情報と前記根ページ情報との前記シリアル番号及び前記チェック情報を、前記葉ページ情報の生成に基づいて更新する更新ステップと、
複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報を記憶するアドレス情報記憶ステップと、
前記ネットワークを介して、前記更新ステップにより更新された前記ページ情報を前記ノード装置に送信するページ情報送信ステップと、
をコンピュータに実現させるためのページ情報送信プログラム。
【請求項７】
請求項１乃至３の何れか一項に記載の管理装置の前記ページ情報送信手段から送信された前記ページ情報を受信するページ情報受信ステップと、
前記ページ情報受信ステップにより受信されたページ情報を記憶するページ情報記憶ステップと、
複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報と、当該各前記ノード装置に割り当てられた固有の識別情報とを対応付けて記憶するアドレス情報記憶手段にアドレス情報が記憶された前記ノード装置の識別情報と、前記ページ情報受信ステップにより受信されたページ情報に含まれるインデックス情報に基づいて、前記受信されたページ情報を送信するノード装置を決定する送信先決定ステップと、
前記ページ情報受信ステップにより受信されたページ情報を、前記ネットワークを介して、前記送信先決定ステップにより決定されたノード装置に転送するページ情報転送ステップと、
をコンピュータに実現させるためのノードプログラム。
【請求項８】
一又は複数のレコードを含み、且つ、木構造における葉に位置する葉ページ情報と、
前記木構造における根に位置する根ページ情報の子の位置の子ページ情報または前記根ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、  前記根ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記根ページ情報と、
前記根ページ情報から前記葉ページ情報までの間に位置する節ページ情報の子の位置の子ページ情報または前記節ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記節ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記節ページ情報と、
を含む複数のページ情報を木構造として、前記根ページ情報から前記葉ページ情報にかけて関連付けて記憶し、
前記根ページ情報のシリアル番号と、前記根ページ情報の改竄防止をチェックするための改竄チェック情報とを含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名と、を含む前記ルートリンク情報を記憶するページ情報記憶ステップと、
前記葉ページ情報を生成する葉ページ情報生成ステップと、
前記葉ページ情報生成ステップにより生成された葉ページ情報から前記根ページ情報までの前記節ページ情報と前記根ページ情報との前記シリアル番号及び前記チェック情報を、前記葉ページ情報の生成に基づいて更新する更新ステップと、
複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報を記憶するアドレス情報記憶ステップと、
前記ネットワークを介して、前記更新された前記ページ情報を前記ノード装置に送信するページ情報送信ステップと、
を含むことを特徴とするページ情報送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所望のコンテンツデータを検索する、または、管理するためのデータ構造に関する。具体的には、コンテンツデータの属性情報等のレコードの改竄を確実に防止することができるデータ構造及び検索技術に関する。
【背景技術】
【０００２】
この種のコンテンツ分散保存システムにおいて、各ノード装置は、コンテンツデータの属性情報が記述されたコンテンツカタログ情報を用いて、所望のコンテンツデータを、他のノード装置又はコンテンツ管理サーバから取得可能になっている。この属性情報には、コンテンツ名、公開開始時期、公開終了時期、及びコンテンツデータの検索キーワード等の情報が含まれている。そして、コンテンツカタログ情報は、例えばコンテンツ管理サーバにより生成され、各ノード装置に配信される。また、コンテンツ分散保存システムにおいて、新たなコンテンツデータが追加された場合、又はコンテンツデータの利用が終了した場合には、コンテンツカタログ情報はコンテンツ管理サーバにより更新され、各ノード装置に配信される。
【０００３】
ところで、コンテンツ分散保存システムにおいて利用可能なコンテンツデータの数が増大すると、コンテンツカタログ情報のデータ量も増大する。このため、１台のノード装置にコンテンツカタログ情報を記憶しきれないという問題があった。この問題を解決するために、特許文献１には、複数に分割されたコンテンツカタログ情報を複数のノード装置が分散して記憶する構成が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２８０３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように各ノード装置が分割されたコンテンツカタログ情報を記憶する場合、コンテンツカタログ情報の改竄を防止するため、各コンテンツデータの属性情報毎に電子署名を付与する必要がある。
【０００６】
また、コンテンツカタログ情報に、コンテンツデータの属性情報を追加、更新または削除する場合、コンテンツカタログ情報を検索する必要がある。つまり、追加、更新または削除するコンテンツカタログ情報を挿入する位置、または削除する位置を探索する必要がある。従来では、電子署名が施されたコンテンツカタログ情報のリストの中から、所望のコンテンツデータをほぼ全探索するので効率が悪かった。
【０００７】
本発明は、以上の問題等に鑑みてなされたものである。コンテンツデータの属性情報等のレコードの改竄を確実に防止することができ、且つ、探索効率を上げることが可能なコンテンツカタログ情報等の管理情報を各ノード装置に送信する管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法等を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、一又は複数のレコードを含み、且つ、木構造における葉に位置する葉ページ情報と、前記木構造における根に位置する根ページ情報の子の位置の子ページ情報または前記根ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記根ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記根ページ情報と、前記根ページ情報から前記葉ページ情報までの間に位置する節ページ情報の子の位置の子ページ情報または前記節ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記節ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記節ページ情報と、を含む複数のページ情報を木構造として、前記根ページ情報から前記葉ページ情報にかけて関連付けて記憶し、前記根ページ情報のシリアル番号と、前記根ページ情報の改竄防止をチェックするための改竄チェック情報とを含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名と、を含む前記ルートリンク情報を記憶するページ情報記憶手段と、前記葉ページ情報を生成する葉ページ情報生成手段と、前記葉ページ情報生成手段により生成された葉ページ情報から前記根ページ情報までの前記節ページ情報と前記根ページ情報との前記シリアル番号及び前記チェック情報を、前記葉ページ情報の生成に基づいて更新する更新手段と、複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報を記憶するアドレス情報記憶手段と、前記ネットワークを介して、前記更新手段により更新された前記ページ情報を前記ノード装置に送信するページ情報送信手段と、を備えることを特徴とする。
【０００９】
この発明によれば、管理装置が、葉ページ情報を生成し、生成された葉ページから根ページ情報までの節ページ情報と根ページ情報とのシリアル番号及びチェック情報を、葉ページ情報の生成に基づいて更新する。そして、管理装置が、更新されたページ情報をノード装置に送信する。
【００１０】
従って、ノード装置は、根ページ情報から葉ページ情報にかけて関連付けられた木構造の情報により、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができる管理情報を各ノード装置へ配布することができる。
【００１１】
請求項２に記載の発明は、所定のルールに従ってノード装置毎に定められるページ情報の担当範囲を示す担当範囲情報を記憶する担当範囲情報記憶手段と、前記更新手段により更新されたページ情報の送信対象となるノード装置を前記担当範囲情報記憶手段に記憶された担当範囲情報に基づいて決定する送信先決定手段と、を備え、前記ページ情報送信手段は、前記更新手段により更新されたページ情報を、前記決定されたノード装置に送信することを特徴とする。
【００１２】
この発明によれば、管理装置が、更新されたページ情報の送信対象となるノード装置を担当範囲情報に基づいて決定する。そして、管理装置が、更新されたページ情報、決定されたノード装置に送信する。
【００１３】
従って、ノード装置毎に定められるページ情報の担当範囲に基づいて、ページ情報の送信対象となるノード装置が決定されるので、各ノード装置の記憶負担を低減しつつ、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができる管理情報を各ノード装置へ配布することができる。
【００１４】
請求項３に記載の発明は、前記アドレス情報記憶手段には、各前記ノード装置のアドレス情報に対応付けられて当該各ノード装置に割り当てられた固有の識別情報が記憶されており、前記送信先決定手段は、前記アドレス情報記憶手段にアドレス情報が記憶されたノード装置の前記識別情報と、前記更新手段により更新されたページ情報に含まれるインデックス情報とに基づいて、前記更新されたページ情報を前記担当範囲のページ情報とするノード装置を決定することを特徴とする。
【００１５】
この発明によれば、管理装置が、アドレス情報記憶手段にアドレス情報が記憶されたノード装置の識別情報と、更新されたページ情報に含まれるインデックス情報とに基づいて、更新されたページ情報を担当範囲のページ情報とするノード装置を決定する。
【００１６】
従って、各ノード装置の識別情報に基づき、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができる管理情報を各ノード装置へ配布することができる。
【００１７】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の管理装置の前記ページ情報送信手段から送信された前記ページ情報を受信するページ情報受信手段と、前記ページ情報受信手段により受信されたページ情報を記憶するページ情報記憶手段と、複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報と、当該各前記ノード装置に割り当てられた固有の識別情報とを対応付けて記憶するアドレス情報記憶手段と、前記アドレス情報記憶手段にアドレス情報が記憶された前記ノード装置の識別情報と、前記ページ情報受信手段により受信されたページ情報に含まれるインデックス情報に基づいて、前記受信されたページ情報を送信するノード装置を決定する送信先決定手段と、前記ページ情報受信手段により受信されたページ情報を、前記ネットワークを介して、前記送信先決定手段により決定されたノード装置に転送するページ情報転送手段と、を備えることを特徴とする。
【００１８】
この発明によれば、ノード装置が、管理装置から送信されたページ情報を受信する。また、ノード装置が、アドレス情報記憶手段にアドレス情報が記憶されたノード装置の識別情報と、受信されたページ情報に含まれるインデックス情報に基づいて、受信されたページ情報を送信するノード装置を決定する。そして、ノード装置が、受信されたページ情報を、ネットワークを介して、決定されたノード装置に転送する。
【００１９】
従って、各ノード装置の識別情報に基づき、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができる管理情報を各ノード装置へ配布することができる。
【００２０】
請求項５に記載の発明は、所定のルールに従ってノード装置毎に定められるページ情報の担当範囲を示す担当範囲情報を記憶する担当範囲情報記憶手段と、前記ページ情報受信手段により受信されたページ情報が、前記担当範囲情報記憶手段に記憶された担当範囲情報に示される担当範囲内のページ情報であるか否かを判断する担当範囲判断手段と、前記担当範囲判断手段により前記ページ情報が担当範囲内のページ情報であると判断された場合に、前記送信先決定手段は、前記アドレス情報記憶手段にアドレス情報が記憶された前記ノード装置の識別情報と、前記ページ情報受信手段により受信されたページ情報に含まれるインデックス情報に基づいて、前記受信されたページ情報を送信するノード装置を決定し、前記ページ情報転送手段は、前記担当範囲判断手段により前記担当範囲内のページ情報であると判断されたページ情報を、前記ネットワークを介して、前記送信先決定手段により決定されたノード装置に転送することを特徴とする。
【００２１】
この発明によれば、ノード装置が、受信されたページ情報が、担当範囲情報に示される担当範囲内のページ情報であるか否かを判断する。また、ノード装置が、担当範囲内のページ情報であるページであると判断された場合に、受信されたページ情報を送信するノード装置を決定する。そして、ノード装置が、担当範囲内のページ情報を、決定されたノード装置に転送する。
【００２２】
従って、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができる管理情報を各ノード装置へ配布することができる。
【００２３】
請求項６に記載の発明は、一又は複数のレコードを含み、且つ、木構造における葉に位置する葉ページ情報と、前記木構造における根に位置する根ページ情報の子の位置の子ページ情報または前記根ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記根ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記根ページ情報と、前記根ページ情報から前記葉ページ情報までの間に位置する節ページ情報の子の位置の子ページ情報または前記節ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記節ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記節ページ情報と、を含む複数のページ情報を木構造として、前記根ページ情報から前記葉ページ情報にかけて関連付けて記憶し、前記根ページ情報のシリアル番号と、前記根ページ情報の改竄防止をチェックするための改竄チェック情報とを含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名と、を含む前記ルートリンク情報を記憶するページ情報記憶ステップと、前記葉ページ情報を生成する葉ページ情報生成ステップと、前記葉ページ情報生成ステップにより生成された葉ページ情報から前記根ページ情報までの前記節ページ情報と前記根ページ情報との前記シリアル番号及び前記チェック情報を、前記葉ページ情報の生成に基づいて更新する更新ステップと、複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報を記憶するアドレス情報記憶ステップと、前記ネットワークを介して、前記更新ステップにより更新された前記ページ情報を前記ノード装置に送信するページ情報送信ステップと、をコンピュータに実現させることを特徴とする。
【００２４】
請求項７に記載の発明は、請求項１乃至３の何れか一項に記載の管理装置の前記ページ情報送信手段から送信された前記ページ情報を受信するページ情報受信ステップと、前記ページ情報受信ステップにより受信されたページ情報を記憶するページ情報記憶ステップと、複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報と、当該各前記ノード装置に割り当てられた固有の識別情報とを対応付けて記憶するアドレス情報記憶手段にアドレス情報が記憶された前記ノード装置の識別情報と、前記ページ情報受信ステップにより受信されたページ情報に含まれるインデックス情報に基づいて、前記受信されたページ情報を送信するノード装置を決定する送信先決定ステップと、前記ページ情報受信ステップにより受信されたページ情報を、前記ネットワークを介して、前記送信先決定ステップにより決定されたノード装置に転送するページ情報転送ステップと、をコンピュータに実現させることを特徴とする。
【００２５】
請求項８に記載の発明は、一又は複数のレコードを含み、且つ、木構造における葉に位置する葉ページ情報と、前記木構造における根に位置する根ページ情報の子の位置の子ページ情報または前記根ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記根ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記根ページ情報と、前記根ページ情報から前記葉ページ情報までの間に位置する節ページ情報の子の位置の子ページ情報または前記節ページ情報の子の位置の前記レコードの改竄をチェックするための改竄チェック情報と、前記節ページ情報の子の位置の子ページ情報のシリアル番号とを含む前記節ページ情報と、を含む複数のページ情報を木構造として、前記根ページ情報から前記葉ページ情報にかけて関連付けて記憶し、前記根ページ情報のシリアル番号と、前記根ページ情報の改竄防止をチェックするための改竄チェック情報とを含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名と、を含む前記ルートリンク情報を記憶するページ情報記憶ステップと、前記葉ページ情報を生成する葉ページ情報生成ステップと、前記葉ページ情報生成ステップにより生成された葉ページ情報から前記根ページ情報までの前記節ページ情報と前記根ページ情報との前記シリアル番号及び前記チェック情報を、前記葉ページ情報の生成に基づいて更新する更新ステップと、複数のコンテンツデータを、複数のノード装置に分散して保存させ、前記複数のノード装置がネットワークを介してコンテンツデータを送受信可能なコンテンツ分散保存システムを構成する前記複数のノード装置のうち少なくとも一部のノード装置の前記ネットワーク上のアドレス情報を記憶するアドレス情報記憶ステップと、前記ネットワークを介して、前記更新された前記ページ情報を前記ノード装置に送信するページ情報送信ステップと、を含むことを特徴とする。
【発明の効果】
【００２６】
本発明によれば、ノード装置は、根ページ情報から葉ページ情報にかけて関連付けられた木構造の情報により、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができる管理情報を各ノード装置へ配布することができる。
【図面の簡単な説明】
【００２７】
【図１】一実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】一実施形態に係るコンテンツカタログ情報の構造の一例を示す図である。
【図３】ノードＮｎのページ情報の担当範囲の一例を示す図である。
【図４】ノードＮｎがレコードを検索する際にページ情報を取得する様子の一例を示す図である。
【図５】ノードＮｎがレコードを検索する際にページ情報を取得する様子の一例を示す図である。
【図６】ノードＮｎがレコードを検索する際にページ情報を取得する様子の一例を示す図である。
【図７】一実施形態に係るセンターサーバＳＡの概要構成例を示す図である。
【図８】一実施形態に係るノードＮｎの概要構成例を示す図である。
【図９】一実施形態に係るセンターサーバＳＡにおける制御部１１の処理例を示すフローチャートである。
【図１０】一実施形態に係るセンターサーバＳＡにおける制御部１１のページ情報登録処理における処理例を示すフローチャートである。
【図１１】一実施形態に係るセンターサーバＳＡにおける制御部１１のレコード追加処理における処理例を示すフローチャートである。
【図１２】一実施形態に係るセンターサーバＳＡにおける制御部１１のレコード削除処理における処理例を示すフローチャートである。
【図１３】一実施形態に係るセンターサーバＳＡにおける制御部１１のレコード検索処理における処理例を示すフローチャートである。
【図１４】一実施形態に係るノードＮｎにおける制御部２１の処理例を示すフローチャートである。
【図１５】一実施形態に係るノードＮｎにおける制御部２１の初期化処理における処理例を示すフローチャートである。
【図１６】一実施形態に係るノードＮｎにおける制御部２１のページ情報取得処理における処理例を示すフローチャートである。
【図１７】一実施形態に係るノードＮｎにおける制御部２１の担当ページ情報取得処理における処理例を示すフローチャートである。
【図１８】一実施形態に係るノードＮｎにおける制御部２１の処理例を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【００２９】
［第１実施形態］
［１．コンテンツ分散保存システムの構成及び動作概要］
始めに、図１等を参照して、本実施形態に係るコンテンツ分散保存システムの構成及び動作概要について説明する。
【００３０】
図１は、本実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００３１】
図１の下部枠１０１内に示すように、分散保存システムＳは、複数のノード装置Ｎｎがインターネットを介して接続されることで構成される。また、図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ，４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者の装置５ａ，５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者の装置６、及び通信回線７等によって、インターネット等のネットワーク８が構築されている。ネットワーク８は、現実世界の通信ネットワークである。なお、図１の例におけるネットワーク８には、データパケットを転送するためのルータが適宜挿入されているが、図１では図示を省略している。なお、通信回線７としては、例えば、電話回線や光ケーブル等が用いられる。
【００３２】
このようなネットワーク８には、複数のノード装置Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。以下、ノード装置は、「ノード」という。また、各ノードＮｎには、固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの接続により形成されるピアツーピア方式のネットワークシステムとなっている。
【００３３】
なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９である。論理的なネットワークであるオーバーレイネットワーク９は、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムＳに接続されている各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。
【００３４】
また、ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数によりハッシュ化した値である。ノードＩＤは、ＩＤ空間に偏りなく分散して配置されることになる。ハッシュ関数としては、例えば、ＳＨＡ−１等が用いられる。また、ハッシュ化した値は、例えば、ｂｉｔ長が１６０ｂｉｔとなる。そして、このノードＩＤは、ＩＤ空間に偏りなく分散して配置されることになる。
【００３５】
なお、コンテンツ分散保存システムＳへの接続は、接続していないノードＮｎ、例えば、ノードＮ８が、接続している任意のノードＮｎに対してコンテンツ分散保存システムへの参加要求を示す参加メッセージを送信することによって行われる。コンテンツ分散保存システムＳへの参加とは、ノード装置Ｎｎが分散保存システムＳに接続され、分散保存システムＳからデータを取得可能になることである。任意のノードＮｎは、例えば、システムＳに常時接続しているコンタクトノードである。
【００３６】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムＳ上における各種メッセージの転送先を規定している。具体的に、このルーティングテーブルには、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。
【００３７】
コンテンツ分散保存システムＳに接続している１台のノードは、必要最低限のノードＮｎのノード情報をルーティングテーブルとして記憶している。各ノードＮｎ間で互いに各種メッセージが転送されることで、ノード情報を記憶していないノードＮｎについてのノード情報が取得される。
【００３８】
このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００３９】
コンテンツ分散保存システムＳは、内容の異なる様々なコンテンツデータのレプリカを所定のファイル形式で複数のノードＮｎに分散して保存する。以下、コンテンツデータは、「コンテンツ」という。そして、各ノードＮｎ間でレプリカが利用可能になっている。各コンテンツのオリジナルはセンターサーバＳＡに保存されている。例えば、ノードＮ５には、タイトルがＸＸＸの映画のコンテンツのレプリカが保存されている。一方、ノードＮ３には、タイトルがＹＹＹの映画のコンテンツのレプリカが保存される。このように、複数のノードＮｎに分散されて保存されている。以下、コンテンツのレプリカが保存されるノードＮは、「コンテンツ保持ノード」という。
【００４０】
上述のコンテンツのレプリカには、夫々、コンテンツ名及びコンテンツ毎に固有の識別情報であるコンテンツＩＤ等の情報が付加されている。このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される。或いは、システム管理者が、コンテンツ毎に一意のＩＤ値を付与しても良い。
【００４１】
分散保存されているコンテンツのレプリカの所在は、インデックス情報として、コンテンツのレプリカの所在を管理（記憶）しているノードＮｎ等により記憶される。以下、レプリカの所在を管理（記憶）しているノードＮｎは、「ルートノード」という。インデックス情報は、レプリカを保存したノードＮｎのノード情報と、コンテンツのコンテンツＩＤと等の組を含む。このようなルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。コンテンツＩＤと最も近いノードＩＤとは、例えば、ＩＤの上位桁が最も多く一致するノードＩＤである。
【００４２】
例えば、タイトルがＸＸＸの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツのルートノードであるノードＮ４により管理される。また、例えば、タイトルがＹＹＹの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツのルートノードであるノードＮ７により管理される。また、このようなルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。コンテンツＩＤと最も近いノードＩＤとは、例えば、コンテンツＩＤと上位桁がより多く一致するノードＩＤである。
【００４３】
そして、あるノードＮｎのユーザが、所望するコンテンツのレプリカを取得したい場合、このレプリカの取得を望むノードＮｎ（以下、「ユーザノード」という）は、メッセージを生成する。このメッセージは、取得を望むコンテンツのコンテンツＩＤ及びユーザノードのＩＰアドレス等を含むコンテンツ所在問合せメッセージである。コンテンツ所在問合せメッセージは、コンテンツ保持ノードを検索するためのメッセージでもある。上述のコンテンツ所在問合せメッセージが、ユーザノードが取得するＤＨＴのルーティングテーブルに従って、他のノードＮｎに対して送出される。つまり、ユーザノードは、コンテンツ所在問合せメッセージを、ルートノードに向けて送出する。これにより、コンテンツ所在問合せメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００４４】
各ノードＮｎにおいて、コンテンツのコンテンツ名及びコンテンツＩＤ等の属性情報は、コンテンツカタログ情報に記述されている。コンテンツカタログ情報は、センターサーバＳＡにより、後述するページ情報単位で作成される。このコンテンツカタログ情報の構造、内容及び作成方法等についての詳細は後述する。各ノードＮｎには、保持するページ情報の担当範囲が夫々ある。そして、各ノードＮｎは、自分の担当範囲内のページ情報をセンターサーバＳＡ又は他のノードＮｎから予め取得する。また、各ノードＮｎは、コンテンツの属性情報を検索する際、必要なページ情報がない場合には、この必要なページ情報をセンターサーバＳＡ又は他のノードＮｎから取得する。ノードＮｎのページ情報の担当範囲及び検索の詳細は後述する。
【００４５】
また、上記コンテンツ所在問合せメッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。なお、ＤＨＴルーティングについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００４６】
上記コンテンツ所在問合せメッセージを受信したルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックス情報キャッシュから取得する。取得されたインデックス情報は、コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信される。こうしてインデックス情報を取得したユーザノードは、インデックス情報に基づいてコンテンツのレプリカをダウンロード（取得）することができる。インデックス情報に含まれるコンテンツ保持ノードのＩＰアドレス等に基づいて、ユーザノードはコンテンツ保持ノードにアクセスする。アクセスしたコンテンツ保持ノードから、コンテンツのレプリカをダウンロードすることが可能になる。この場合、ユーザノードは、この複数のコンテンツ保持ノードのうち一つのコンテンツ保持ノードを選択する。そして、ユーザノードは、選択したコンテンツ保持ノードに接続してコンテンツのレプリカをダウンロードすることができる。
【００４７】
なお、ルートノードは、このインデックス情報に含まれるＩＰアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信し、これにより、ユーザノードは、上記コンテンツ保持ノードからそのレプリカをダウンロードすることもできる。また、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、このルートノードと同じインデックス情報をキャッシュしているキャッシュノードからこのインデックス情報を取得することもできる。
【００４８】
また、ユーザノードは、コンテンツ保持ノードからコンテンツのレプリカを取得して保存したとき、保存したユーザノードは、パブリッシュメッセージを生成する。パブリッシュメッセージは、レプリカを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、レプリカのコンテンツＩＤ及びレプリカを保存したノード装置のノード情報を含む。パブリッシュメッセージは、ルートノードに向けて送出される。これにより、パブリッシュメッセージは、コンテンツ所在問合せメッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。そして、ルートノードは、パブリッシュメッセージを受信する。ルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報をインデックス情報キャッシュ領域に記憶する。こうして、上記ユーザノードは、新たに、上記コンテンツのレプリカを保持するコンテンツ保持ノードとなる。
【００４９】
［２．コンテンツカタログ情報の構造及び内容等］
次に、コンテンツカタログ情報の構造及び内容等について、図２を用いて説明する。
【００５０】
図２は、本実施形態に係るコンテンツカタログ情報の構造の一例を示す図である。なお、コンテンツカタログ情報のことを、今後単にカタログ情報ともいう。
【００５１】
カタログ情報は、コンテンツの属性情報を一覧として管理するための情報である。この属性情報の内容はレコードに格納される。また、カタログ情報は、検索キーから一意にコンテンツを特定することができる情報である。コンテンツを特定することができるとは、コンテンツのレコードを探し出すことができることを意味する。検索キーとしては、例えば、対応するレコードやコンテンツ名を共通のハッシュ関数によりハッシュ化した値が用いられる。或いは、検索キーは、コンテンツＩＤやコンテンツ名等であっても良い。この検索キーはインデックス情報の一例である。
【００５２】
本実施形態において用いられるカタログ情報は、コンテンツの属性情報の改竄を防止するため、及び、コンテンツの検索を効率的に行うため、図２に示す探索木の構造を有している。
【００５３】
図２に示すように、カタログ情報は、木構造における根に位置するルートページ情報から葉に位置する葉ページ情報にかけて、各ページ情報が関連付けられて構成されている。ルートページ情報は、根ページ情報の一例である。直接関連付けられているページ情報同士は、親子関係を形成している。或るページ情報Ｘに対してページ情報Ｙが関連付けられているとする。つまり、ページ情報Ｘとページ情報Ｙとで親子関係を形成している。ページ情報Ｘとページ情報Ｙとのうち、ページ情報Ｘの方がルートページ情報からの距離が短い場合、ページ情報Ｘは、ページ情報Ｙから見て親に位置する親のページ情報となる。ここで、ルートページ情報からの距離とは、木構造において、根の位置から注目する節点に辿るまでのリンク数に相当する長さである。換言すると、ルートページ情報からの距離とは、ルートページ情報から関連付けを辿って注目するページ情報に至るまでに、注目するページ情報を含めて通過するページ情報の数に相当する。なお、以降の説明においては、親のページ情報を親ページ情報といい、子のページ情報を子ページ情報という。
【００５４】
親ページ情報と子ページ情報との関連付けは、リンク情報に示される。リンク情報は、親ページ情報に格納される情報であり、子ページ情報を指す情報である。このリンク情報は、子ページ情報のページ番号と、子ページ情報の改竄をチェックするためのメッセージダイジェストとを含む。
【００５５】
ページ番号は、ページ情報に固有に割り当てられたシリアル番号である。リンク情報が指すページ情報というときは、リンク情報に含まれるページ番号が割り当てられているページ情報を意味する。また、詳細は後述するが、或るページ情報が更新される場合にはこのページ情報に対して新たなページ番号が割り当てられる。ここで、本実施形態におけるページ情報の更新とは、元のページ情報の内容が更新されたページ情報を、元のページ情報とは別個のページ情報として新たに作成することを意味する。実際、ページ番号は、例えば、ページ情報がＲＡＭに格納される際の格納アドレスに対応したり、ページ情報の格納位置を示すポインタの格納アドレスであったりする。また、ページ情報がファイルとして保存される際には、ページ番号はファイル名に対応したりする。
【００５６】
メッセージダイジェストは、リンク情報が指す子ページ情報又はリンク情報が指す子ページ情報に格納されているレコードの改竄をチェックするための情報である。また、メッセージダイジェストは、改竄をチェックする対象を共通のハッシュ関数によりハッシュ化した値である。このメッセージダイジェストは改竄チェック情報の一例である。
【００５７】
カタログ情報は、更にルートリンク情報を有する（符号１００）。ルートリンク情報には、ルートページ情報へのリンク情報が格納される（符号１００１）。そして、このリンク情報は、ルートページ情報のページ番号（符号１００２）及びメッセージダイジェスト（符号１００３）を含む。また、ルートリンク情報には、電子署名が格納される（符号１００４）。電子署名は、ルートリンク情報の改竄をチェックするための情報である。電子署名には、例えば、署名値、証明書情報等の情報が含まれている。
【００５８】
ページ情報は、大別して節ページ情報（符号２００）と葉ページ情報（符号３００）とがある。
【００５９】
節ページ情報は、一つ以上の子ページ情報を持つ。節ページ情報には、セルフリンク情報（符号２００１）、子ページ情報へのリンク情報（符号２００４）及びインデックス（符号２００７）が格納される。セルフリンク情報は、このセルフリンク情報が格納されている節ページ情報自身へのリンク情報である。つまり、セルフリンク情報は、節ページ情報のページ番号（符号２００２）及びメッセージダイジェスト（符号２００３）を含む。よって、セルフリンク情報は、節ページ情報の親ページ情報に格納されているこの節ページ情報へのリンク情報と同一内容となる。
【００６０】
子ページ情報へのリンク情報は、子ページ情報のページ番号（符号２００５）及びメッセージダイジェスト（符号２００６）を含む。なお、節ページ情報において、単にリンク情報というときは、セルフリンク情報ではなく、子ページ情報へのリンク情報を意味するものとする。節ページ情報には、リンク情報を複数格納することができる。一つあたりの節ページ情報に格納可能なリンク情報の最大数は、カタログ情報の木構造としての次数に一致する。この次数は、一つの親が持ちうる子の最大数を意味する。つまり、次数は、ｎ分探索木のｎの値に該当する。
【００６１】
インデックスは、探索木の節点が持つ値、キー等と呼ばれている情報と同じ役割を持つ。このインデックスは、コンテンツのレコードが格納されているページ情報を、検索キーを用いて探索するための情報である。なお、図２に示すインデックスは、便宜上十進数で示されている。このインデックスは、インデックス情報及び担当領域情報の一例である。
【００６２】
カタログ情報の木構造は、順序性を有している。従って、節ページ情報に格納されているインデックスは、例えばその値の小さい順に配列されている。そして、リンク情報は、インデックスに対応した順序で配列されている。例えば、１番目のリンク情報は、１番目のインデックスの値以下の範囲インデックスが格納される子ページ情報への関連付けを示す。また例えば、２番目のリンク情報は、１番目のインデックスの値より大きく且つ２番目のインデックスの値以下の範囲のインデックスが格納される子ページ情報への関連付けを示す。或る節ページ情報に現在ｋ個のリンク情報が格納されている場合、この節ページ情報にはｋ−１個のインデックスが格納されている。
【００６３】
葉ページ情報は、上述したように、探索木における葉に位置するページ情報である。つまり、葉ページ情報は、子ページ情報を持たない。葉ページ情報には、セルフリンク情報（符号３００１）、レコード（符号３００４）及びインデックス（符号３００５）が格納される。セルフリンク情報は、このセルフリンク情報が格納されている葉ページ情報自身へのリンク情報である。つまり、セルフリンク情報は、葉ページ情報のページ番号（符号３００２）及びメッセージダイジェスト（符号３００３）を含む。よって、セルフリンク情報は、葉ページ情報の親ページ情報に格納されているこの葉ページ情報へのリンク情報と同一内容となる。
【００６４】
レコードとインデックスとは、一対一に対応付けられている。対応付けられているレコードとインデックスとの組は、葉ページ情報に１組又は複数組格納される。一つのレコードには、一つまたは複数のコンテンツの属性情報が設定される。例えば、レコードには、コンテンツＩＤ、コンテンツの公開開始日時、公開終了日時、コンテンツ名、キーワード等が設定される。インデックスは、対応するレコードを一意に特定するための情報である。葉ページ情報のインデックスとして用いられる情報の種類は、節ページ情報のインデックスとして用いられる情報の種類と同じである。このインデックスとして、コンテンツＩＤやコンテンツ名等が用いられる場合、この情報は、レコードの設定内容に含める必要はない。このインデックスは、インデックス情報の一例である。
【００６５】
本実施形態においては、上述したようにルートリンク情報に対してのみ電子署名を作成しているが、全てのページ情報に対して電子署名を作成することを排除するものではない。ただし、電子署名は、証明書情報等の情報を設定する等して作成されることで、一般的に電子署名の方がメッセージダイジェストよりもセキュリティが高められている。このセキュリティを高めるための暗号化や改竄チェック時の復号化等の処理による計算量が大きく、また、電子証明書情報等の電子署名に必要なデータ量も大きくなる。そのため、電子署名よりもメッセージダイジェストの方が、計算量及びページ情報のデータ量ともに節約することができる。一方、全てのページ情報に対して電子署名を作成する場合、ルートリンク情報は必須ではない。この場合、ルートページ情報に対する電子署名を保存しておけば良い。
【００６６】
なお、本実施形態においては、ページ情報を更新する場合、上述したように新しいページ情報を作成しているが、ページ情報自体の内容を書き換えてもかまわない。
【００６７】
以上、図２を用いて説明したカタログ情報の構造は、あくまでも一例である。カタログ情報の構造としては、コンテンツのレコードを探索可能な木構造を有していれば、どのような構造であってもかまわない。
【００６８】
例えば、葉ページ情報だけでなく、節ページ情報中にレコードが格納されても良い。また、木構造の次数、つまり、一つの節ページ情報に格納可能なリンク情報の最大数は任意である。また、一つのページ情報に格納可能なレコードの最大数は１個でも複数個でも良い。更に、セルフリンク情報は、必須ではない。
【００６９】
また更に、節ページ情報のインデックスは必須ではない。例えば、トライ（trie）木の場合、節ページ情報のインデックスは不要である。つまり、トライ木では、木構造上におけるページ情報の位置がインデックスに対応し、検索キーのビットや文字等の値に従ってルートページ情報から葉ページ情報まで木が辿られる。例えば、ルートページ情報から葉ページ情報に向かって各節ページ情報に検索キーの最上位４ビットから４ビットずつを割り当てたとする。この場合、一つの節ページ情報に、１６個のリンク情報を要素として格納する配列がある。そして例えば、検索キーが１６進でＦ３４０５Ｂ９Ｃである場合、ルートページ情報に関しては、上位一桁目のＦが、配列のインデックスとなる。つまり、ルートページ情報における配列の１６番目に格納されているリンク情報が、次に参照すべき子ページ情報へのリンク情報となる。次に、ルートページ情報の子ページ情報に関しては、上位から２桁目の３が、配列のインデックスとなる。つまり、この子ページ情報における配列の４番目に格納されているリンク情報が、次に辿るべき子ページ情報へのリンク情報となる。こうして葉ページ情報に辿り着いたところで、検索キー全体とレコードのインデックスとが比較される。このようにして探索が行われる。
【００７０】
更にまた、葉ページ情報のインデックスも必須ではない。例えば、トライ木においては、インデックスの値が比較的離れているレコードをまとめることができる。例えば、インデックスが１６進でＦ３４０５Ｂ９ＣのレコードとＦ３４０１３Ａ２のレコードがあるとする。この２つのインデックスの上位３桁の値は同じである。この場合、上位３桁の値がＦ３４であるレコードが他に存在せず、且つ、一つの葉ページ情報がレコードを２つ以上格納可能であれば、この２つのレコードを同じ葉ページ情報に格納することができる。つまり、ルートページ情報から、Ｆ、３、４と辿って至る葉ページ情報に２つのレコードが格納される。この場合、葉ページ情報に、レコードのインデックスが必要である。一方、例えば、検索キーの上位７桁までは、必ず節ページ情報を作成するようにし、且つ、検索キーの最下位４桁目の値を葉ページ情報に割り当てるとする。この場合、葉ページ情報には、１６個のレコードを要素として格納する配列がある。このとき、インデックスがＦ３４０５Ｂ９Ｃのレコードは、ルートページ情報から、Ｆ、３、４、０、５、Ｂ、９と辿って至る葉ページ情報における配列の１０番目にレコードが格納される。この場合、葉ページ情報には、レコードのインデックスは不要である。
【００７１】
更に、具体例を示して説明する。ここでは、コンテンツのインデックスとして４進数４桁が用いられるものとする。この場合、各節ページには、４つのリンク情報を格納することができる。例えば、ルートページ情報は、インデックスの上位一桁の値が０、１、２及び３に対応するページ情報を夫々指すリンク情報を格納する配列がある。この場合、最上位の桁の値が０に対応する位置に、インデックスの上位一桁の値が０に対応するページ情報へのリンク情報が格納される。また、最上位の桁の値が１に対応する位置に、インデックスの上位一桁の値が１に対応するページ情報へのリンク情報が格納される。また、最上位の桁の値が２に対応する位置に、インデックスの上位一桁の値が２に対応するページ情報へのリンク情報が格納される。また、最上位の桁の値が３に対応する位置に、インデックスの上位一桁の値が３に対応するページ情報へのリンク情報が格納される。
【００７２】
次に、例えば、インデックスの上位一桁の値が１に対応するページ情報には、インデックスの上位二桁の値が１０、１１、１２及び１３に対応するページ情報を夫々指すリンク情報を格納する配列がある。この場合、最上位から２番目の桁の値が０に対応する位置に、インデックスの上位二桁の値が１０に対応するページ情報へのリンク情報が格納される。また、最上位から２番目の桁の値が１に対応する位置に、インデックスの上位二桁の値が１１に対応するページ情報へのリンク情報が格納される。また、最上位から２番目の桁の値が２に対応する位置に、インデックスの上位二桁の値が１２に対応するページ情報へのリンク情報が格納される。また、最上位から２番目の桁の値が３に対応する位置に、インデックスの上位二桁の値が１３に対応するページ情報へのリンク情報が格納される。
【００７３】
次に、例えば、インデックスの上位二桁の値が１０に対応するページ情報には、インデックスの上位三桁の値が１００、１０１、１０２及び１０３に対応するページ情報を夫々指すリンク情報を格納する配列がある。この場合、最上位から３番目の桁の値が０に対応する位置に、インデックスの上位三桁の値が１００に対応するページ情報へのリンク情報が格納される。
【００７４】
次に、例えば、インデックスの上位三桁の値が１０２に対応するページ情報は、葉ページ情報となる。インデックスの上位三桁の値が１０２に対応するページ情報には、インデックスの値が１０２０、１０２１、１０２２及び１０２３である４つのレコードを格納する配列がある。この場合、最下位の桁の値が０に対応する位置に、インデックスが１０２０のレコードが格納される。
【００７５】
また、木の種類としては、例えばＢ木、Ｂ＋木、赤黒木等の平衡木であっても良いし、平衡性のない単純なｎ分探索木であっても良い。
【００７６】
レコードの追加又は削除を行う場合には、カタログ情報の更新、つまり、ページ情報の更新が必要となる。このとき、本実施形態におけるページ情報の更新の原則は以下の通りである。
【００７７】
（１）ページ情報を追加するときは勿論のこと、ページ情報を更新するときも、元のページ情報の内容を更新したページ情報を新たに作成する。例えば、ページ情報をＲＡＭ上に作成する場合には、元のページ情報が格納されるアドレスとは異なるアドレスに新しいページ情報を作成する。また、ルートリンク情報を更新するときも、内容を更新したルートリンク情報を新たに作成する。
【００７８】
（２）ページ情報を新しく作成するときは、作成順にページ番号を割り当てる。
【００７９】
（３）ページ情報を新しく作成するときは、新しいページ情報のメッセージダイジェストを計算する。
【００８０】
（４）ルートリンク情報を新しく作成するときは、新しいルートリンク情報に対する電子署名を作成する。
【００８１】
（５）新しく作成されたページ情報のページ番号及びメッセージダイジェストを、このページ情報への新たなリンク情報として、親ページ情報に設定する。つまり、親ページ情報も更新する必要がある。また、ルートページ情報を新しく作成した場合は、このルートページ情報のページ番号及びメッセージダイジェストを、このページ情報への新たなリンク情報として、ルートリンク情報に設定する。つまり、ルートリンク情報も更新する必要がある。
【００８２】
（６）ページ情報の更新は、レコードが追加又は削除されるページ情報から開始し、このページ情報からルートページ情報までのパス（経路）上にあるページ情報を、ルートページ情報からの距離が長いページ情報から順に更新する。つまり、ルートページ情報が上方に、葉ページ情報が下方に位置すると仮定すると、下から順にページ情報を更新する。
【００８３】
（１）及び（２）の原則は、古いページ情報がカタログ情報に挿入されないためのものである。また、（３）乃至（５）の原則は、カタログ情報の内容の改竄を防止するためのものである。また、（６）の原則は、カタログ情報の改竄を防止するため、（５）の原則から当然に導き出されるものである。なお、これらの原則は、あくまでも本実施形態における原則である。例えば、前述したように、（１）の原則は本発明において必須ではない。
【００８４】
新しいページ情報が作成されることにより、古くなったページ情報、つまり、参照されなくなったページ情報は、参照されなくなった時点で削除しても良いし、削除しなくても良い。また、古くなったページ情報を定期的に削除するようにしても良い。
【００８５】
更に、本実施形態においては、各ページ情報に、合計ファイルサイズが設定される。合計ファイルサイズとは、合計ファイルサイズが設定されるページ情報を頂点とするサブツリーに含まれる全てのページ情報のファイルサイズの合計値である。この合計ファイルサイズは、例えば、レコードが追加されたとき、レコードが削除されたとき、ページ情報が生成されたとき、ページ情報が削除されたときに計算されて、ページ情報に設定される。また、各ノードＮｎにおいても、ページ情報の担当範囲を決定するときに、合計ファイルサイズの計算が行われる。また、適当なタイミングで合計ファイルサイズの計算が行われるようにしても良い。なお、ページ情報の担当範囲についての詳細は後述する。
【００８６】
［３．ページ情報の担当範囲及びレコードの検索］
次に、ノードＮｎのページ情報の担当範囲と、ノードＮｎによるレコードの検索について、図３乃至図６を用いて説明する。
【００８７】
レコードの検索は、センターサーバＳＡの後述するレコード検索処理において行われる。レコードを検索する場合において、目的のレコードを格納しているページ情報を探索する方法は、木構造における探索方法と同じである。つまり、ページ情報の探索方法は、カタログ情報の木構造に対応する探索アルゴリズムに依存する。また、レコードを追加、削除する場合にも、同様の探索方法が用いられる。
【００８８】
各ノードＮｎは、サーバＳＡと同様に、カタログ情報からコンテンツのレコードを検索する。従って、この検索の際、最新のページ情報が必要となる。ここで、全ノードＮｎが、最新のページ情報全てを保持するようにすれば、各ノードＮｎにて検索は可能である。しかし、登録されたコンテンツが膨大となると、カタログ情報が肥大化し、ページ情報も膨大な数となる。そうすると、一つのノードＮｎでは、全てのページ情報を保持しきれないおそれが生じる。
【００８９】
そこで、本実施形態では、各ノードＮｎが、自分の担当範囲を決定するようになっている。担当範囲とは、予め保持するページ情報の範囲である。担当範囲は、各ノードＮｎのノードＩＤに基づいて決定される。更に、担当範囲は、ファイルキャッシュ容量に基づいて確定する。ファイルキャッシュ容量は、担当範囲とするページ情報を記憶可能な最大容量である。このファイルキャッシュ容量は、全ノードＮｎに対して同一の値が用いられても良いし、各ノードＮｎのハードディスクの容量等に応じて個別に決定されるようにしても良い。このファイルキャッシュ容量は、記憶容量の一例である。
【００９０】
以下、担当範囲について具体的に説明するが、ここでは一例として、ノードＩＤが４進数４桁であるものとして説明する。また、コンテンツのインデックス及び検索キーとしては、コンテンツＩＤが用いられるものとする。また、コンテンツＩＤも４進数４桁であるものとする。
【００９１】
この前提で述べたように、ノードＩＤとコンテンツＩＤは、ＩＤ空間が一致する。つまり、ノードＩＤとコンテンツのインデックスも、取り得る値の範囲が一致する。そこで、ノードＩＤを検索キーとしてカタログ情報に挿入した場合に、その挿入位置からルートページ情報までのパス上にあるページ情報は、必ず担当範囲内となる。更に、ノードＩＤの挿入位置からルートページ情報までのパス上において、或るページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが、ファイルキャッシュ容量以下である場合には、このサブツリーに含まれる全てのページ情報は担当範囲内となる。この合計ファイルサイズは、各ページ情報に設定されている。各ページ情報には、このページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが設定されている。例えば、ルートページ情報には、全てのページ情報の合計ファイルサイズが設定されている。また、葉ページ情報には、この葉ページ情報自身のファイルサイズが設定されている。合計ファイルサイズは、総データ量の一例である。なお、サブツリーに含まれるページ情報とは、或るページ情報をサブツリーの頂点とした場合、頂点となるページ情報、及びこのページ情報から葉ページ情報へかけて関連付けられたページ情報である。
【００９２】
図３は、ノードＮｎのページ情報の担当範囲の一例を示す図である。
【００９３】
一例として、ノードＩＤが１１０２である場合について説明する。ルートリンク情報は、ページ情報を取得するために必ず必要である。従って、ルートリンク情報は、サーバＳＡから全ノードＮｎに配信される。また、本実施形態においては、ノードＩＤがどのような値をとろうとも、ノードＩＤの挿入位置からルートページ情報までのパス上に、ルートページ情報は必ず含まれる。そこで、本実施形態においては、ルートページ情報は担当範囲に含まれるものとする。図３においては、担当範囲のページ情報は実線で示されている。
【００９４】
ルートページ情報に格納されているリンク情報から、ルートページ情報には、例えばインデックスの上位一桁が「０」のページ情報、「１」のページ情報、「２」のページ情報、及び「３」の子ページ情報が存在することが分かる。ルートページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが、例えばファイルキャッシュ容量より大きい場合には、サブツリーに含まれる全てのページ情報を担当範囲とすることはできない。そこで、ルートページ情報の子ページ情報の中から、担当範囲とするページ情報が決定される。具体的には、ノードＩＤの上位一桁が１であるので、このノードＩＤと上位桁の値同士が一致する「１」のページ情報が担当範囲内となる。一方、「０」のページ情報、「２」のページ情報、及び「３」の子ページ情報は、担当範囲とはならない。図３においては、担当範囲ではないページ情報は破線で示されている。
【００９５】
次に、「１」のページ情報に格納されているリンク情報から、「１」のページ情報には、例えばインデックスの上位二桁が「１０」のページ情報、「１１」のページ情報、「１２」のページ情報、及び「１３」の子ページ情報が存在することが分かる。「１」のページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが、例えばファイルキャッシュ容量より大きい場合には、「１」のページ情報の子ページ情報の中から、担当範囲とするページ情報が決定される。ノードＩＤの上位一桁が１１であるので、このノードＩＤと上位桁の値同士が一致する「１１」のページ情報が担当範囲内となる。一方、「１０」のページ情報、「１２」のページ情報、及び「１３」の子ページ情報は、担当範囲とはならない。
【００９６】
次に、「１１」のページ情報に格納されているリンク情報から、「１１」のページ情報には、例えばインデックスが「１１０１」のページ情報、「１１１３」のページ情報、「１１２２」のページ情報、及び「１１３０」の子ページ情報が存在することが分かる。これらの子ページ情報は葉ページ情報である。ここで、ノードＩＤである１１０１が挿入される位置は、「１１０１」のページ情報と「１１１３」のページ情報との間である。「１１」のページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが、例えばファイルキャッシュ容量以下である場合は、このサブツリーに含まれる全てのページ情報が担当範囲内となる。つまり、「１１０１」のページ情報、「１１１３」のページ情報、「１１２２」のページ情報、及び「１１３０」のページ情報が担当範囲内となる。
【００９７】
以上により、ノードＩＤが１１０２のノードＮｎは、ルートページ情報、「１」、「１１」、「１１０１」、「１１１３」、「１１２２」及び「１１３０」のページ情報が担当範囲となる。ノードＩＤが１１０２のノードＮｎは、この担当範囲のページ情報を、サーバＳＡ又は他のノードＮｎから取得し保持する。
【００９８】
他のノードＮｎにおいても、これと共通するルールによって担当範囲が決定される。この共通のルールでは、ルートページ情報以外にも、各ノードＮｎ間で担当範囲が重複することもある。
【００９９】
次に、ノードＮｎによるレコードの検索と、検索の際のページ情報の取得方法について説明する。
【０１００】
図４乃至図６は、ノードＮｎがレコードを検索する際にページ情報を取得する様子の一例を示す図である。
【０１０１】
例えば、ノードＩＤが１１０２であるノードＮ１が、コンテンツＩＤが２１３０のレコードを検索するとする。先ず、ルートリンク情報が指すルートページ情報が参照される。ルートページ情報には、「０」、「１」、「２」、及び「３」の子ページ情報が存在する。コンテンツＩＤの上位一桁は２であるので、次に「２」のページ情報を参照する必要がある。しかし、「２」のページ情報は、ノードＮ１の担当範囲ではなく、且つ、ノードＮ１は保持していない。従って、「２」のページ情報を他のノードから取得する必要がある。
【０１０２】
この場合、ノードＮ１は、ノードＮ１が知っているノードＮｎの中で、「２」のページ情報を担当するのにノードＮ１自身よりふさわしいノードＮｎに、「２」のページ情報を要求する（１）。ここで、知っているノードＮｎとは、ルーティングテーブルにノード情報が登録されているノードＮｎをいう。また、「２」のページ情報の要求は、ページ情報要求メッセージの送信によって行われる。このページ情報要求メッセージには、例えば、「２」のページ情報のページ番号、検索キーとしてのコンテンツＩＤである２１３０等が設定される。また、ページ情報を担当するのにノードＮ１自身よりふさわしいノードＮｎとは、例えば、ノードＩＤが、ノードＮ１のノードＩＤよりもコンテンツＩＤの上位桁の値と多く一致するノードＮｎである。図４の例では、「２」のページ情報を担当するのにノードＮ１自身よりふさわしいノードＮｎとしては、例えば、ノードＩＤの上位一桁の値がコンテンツＩＤの上位一桁の値と同じ２であるノードＮｎが選択される。図４の例では、ノードＩＤが２３０１であるノードＮ２が選択される。もし、「２」のページ情報を担当するのにノードＮ１自身よりふさわしいノードＮｎが存在しなかった場合には、サーバＳＡに要求が行われる。
【０１０３】
ノードＮ１から要求を受けたノードＮ２は、担当範囲内として「２」のページ情報を保持している。従って、ノードＮ２からノードＮ１に「２」のページ情報が送信される（２）。そして、図５に示すように、ノードＮ１において「２」のページ情報が保持される。図５においては、担当範囲ではないが、保持しているページ情報は太い実線で示されている。ここで、ルートページ情報には、「２」のページ情報のメッセージダイジェストが設定されているので、このメッセージダイジェストで「２」のページ情報の改竄チェックを行うことができる。
【０１０４】
次に、「２」のページ情報には、「２０」、「２１」、「２２」、及び「２３」の子ページ情報が存在する。コンテンツＩＤの上位二桁は２１であるので、次に「２１」のページ情報を参照する必要がある。この「２１」のページ情報は、ノードＮ１が保持していない。従って、前記と同様に、ノードＩＤの上位一桁の値がコンテンツＩＤの上位一桁の値と同じ２であるノードＮ２に、「２１」のページ情報が要求される（３）。
【０１０５】
ノードＮ１から要求を受けたノードＮ２は、「２」のページ情報を担当範囲としておらず、且つ、保持していない。この場合は、要求の転送が行われる。具体的には、ノードＮ２が知っているノードＮｎの中で、「２１」のページ情報を担当するのにノードＮ２自身よりふさわしいノードＮｎに、「２１」を要求するためのページ情報要求メッセージを転送する（４）。例えば、ノードＩＤの上位二桁の値がコンテンツＩＤの上位二桁の値と同じ２１であるノードＮｎが選択される。図５の例では、ノードＩＤが２１２２であるノードＮ３が選択される。
【０１０６】
ノードＮ２から要求の転送を受けたノードＮ３は、担当範囲内として「２１」のページ情報を保持している。従って、ノードＮ３からノードＮ２に「２１」のページ情報が送信される（５）。そして、ノードＮ２からノード１に「２１」のページ情報が転送される（６）。なお、ノードＮ３からノードＮ１に直接ページ情報が送信されるようにしても良い。
【０１０７】
このように、ページ情報要求メッセージは、要求されたページ情報を保持しているノードＮｎに辿り着くまで、次々と転送される。また、要求されたページ情報を担当するのに最もふさわしいノードＮｎが、要求されたページ情報を保持していない場合には、センターサーバＳＡにページ情報要求メッセージが転送される。
【０１０８】
以下同様にして、「２１３０」のページ情報も取得される。このページ情報には、インデックスの値が２１３０であるレコードが格納されているので、検索が完了する。この結果、図６に示すように、ノードＮ１は、「２」、「２１」及び「２１３０」を新たに保持する。これら担当範囲ではないページ情報は、検索後、必要な処理が終わったら削除しても良いし、削除しなくても良い。また、担当範囲ではないページ情報を削除する場合は、例えば、ＬＲＵ（Least Recently Used）アルゴリズムに従って削除しても良い。
【０１０９】
なお以上においては、ページ情報にインデックスが格納されていない場合について説明したが、ページ情報にインデックスが格納されている場合について補足的に説明する。
【０１１０】
この場合、先ずルートリンク情報が指すルートページ情報に格納されている１又は複数のインデックスと検索キーとが比較される。このインデックスと検索キーとの大小比較によって、検索キーの値がどのインデックスの値の範囲であるのかが分かる。例えば、インデックスが、数値である場合、数値で表された検索キーと、数値で表されたインデックスとの大小比較が行われる。そこで、このインデックスの範囲に対応してルートページ情報に格納されているリンク情報が参照される。次に、このリンク情報が指すルートページ情報の子ページ情報が参照される。そして、この子ページ情報に関しても、ルートページ情報と同様に、インデックスと検索キーの大小比較が行われる。このようにして、ルートページ情報から葉ページ情報まで探索が行われる。葉ページ情報まで辿り着くと、葉ページ情報にも１又は複数のインデックスが夫々レコードと対応付けて格納されている。そこで、このインデックスと検索キーとが比較される。そして、インデックスの値と検索キーの値とが一致した場合、このときのインデックスに対応するレコードが検索対象のレコードである。
【０１１１】
［４．ページ情報の配布］
各ノードＮｎは、上述したように担当範囲内のページ情報を、センターサーバＳＡ又は他のノードＮｎから取得する。また、各ノードＮｎは、レコードを検索する際、必要なページ情報をセンターサーバＳＡ又は他のノードＮｎから取得する。ノードＮｎがページ情報を取得する場合、取得先として、センターサーバＳＡよりも他のノードＮｎが優先される。しかし、ページ情報が更新された場合、更新された最新のページ情報はセンターサーバＳＡしか保持していない。そうすると、この更新されたページ情報を各ノードＮｎが取得しようと、センターサーバＳＡにアクセスが集中するおそれがある。
【０１１２】
そこで、本実施形態においては、センターサーバＳＡが、ページ情報を新たに作成すると、作成したページ情報を担当範囲とするノードＮｎに向けて、作成したページ情報を配布する。
【０１１３】
例えば、センターサーバＳＡが、センターサーバＳＡが知っているノードＮｎの中で、作成したページ情報を担当していると思われるノードＮｎにページ情報を送信する。ページ情報を担当していると思われるノードＮｎとは、例えば、センターサーバＳＡのルーティングテーブルにノード情報が登録されているノードＮｎのうち、ページ情報を担当するのに最もふさわしいノードＮｎである。そして、ページ情報を担当するのに最もふさわしいノードＮｎとは、例えば、ノードＩＤの値が、ページ情報のインデックスの値に最も近いノードＮｎである。
【０１１４】
ページ情報を受信したノードＮｎは、自分が知っているノードＮｎの中で、受信したページ情報を担当するのに自分よりふさわしいノードＮｎが存在する場合には、受信したページ情報を転送する。このようにして、ページ情報が、このページ情報を担当するノードＮｎまで転送される。そして、ページ情報が転送される過程において、各ノードＮｎにおいてページ情報が保持される。
【０１１５】
これにより、更新された最新のページ情報は、このページ情報を担当するノードＮｎの少なくとも一つが必ず保持することになる。よって、ページ情報を受信していないノードＮｎは、このページ情報を担当しているノードＮｎからページ情報を取得することができる。よって、センターサーバＳＡへのアクセス集中が低減される。
【０１１６】
［５．センターサーバＳＡの構成等］
次に、図７を参照して、センターサーバＳＡの構成及び機能について説明する。
【０１１７】
図７は、センターサーバＳＡの概要構成例を示す図である。
【０１１８】
センターサーバＳＡは、図４に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成された制御部１１を備えている。また、センターサーバＳＡは、各種データ及び各種プログラム等を記憶保存するためのＨＤ等から構成された記憶部１２を備えている。更に、センターサーバＳＡは、ネットワーク８等を通じてノードＮｎとの間の情報の通信制御を行うための通信部１３を備えている。また更に、センターサーバＳＡは、各種情報を表示するＣＲＴ，液晶ディスプレイ等の表示部１４を備えている。更にまた、センターサーバＳＡは、オペレータからの指示を受け付けこの指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス等）１５と、を備えている。そして、制御部１１、記憶部１２、通信部１３、表示部１４、及び入力部１５はバス１６を介して相互に接続されている。図７ここで、記憶部１２は、本発明におけるページ情報記憶手段、担当範囲情報記憶手段及び担当範囲情報記憶手段の一例である。記憶部１２は、揮発性のメモリであっても良いし、不揮発性のメモリであっても良い。
【０１１９】
記憶部１２には、ＤＨＴを用いたルーティングテーブルが記憶されている。ルーティングテーブルには、コンテンツ分散保存システムＳに参加している複数のノードＮｎのうち少なくとも一部のノードＮｎのノード情報が登録されている。このノード情報に含まれるノードＩＤは、担当範囲情報の一例である。また、ノード情報に含まれるＩＰアドレスは、アドレス情報の一例である。また、記憶部１２には、カタログ情報がルートリンク情報及びページ情報単位で登録されるカタログデータベースが構築されている。更に、記憶部１２には、カタログデータベースを管理するためのデータベース管理プログラムが記憶されている。データベース管理プログラムは、ページ情報送信プログラムの一例である。
【０１２０】
制御部１１は、ＣＰＵが記憶部１２等に記憶されたデータベース管理プログラム等のプログラムを読み出して実行することにより、葉ページ情報生成手段、更新手段、ページ情報送信手段及び送信先決定手段として機能する。
【０１２１】
なお、上記データベース管理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしても良いし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されてこの記録媒体のドライブを介して読み込まれるようにしても良い。
【０１２２】
［６．ノードＮｎの構成及び機能等］
次に、図８を参照して、ノードＮｎの構成及び機能について説明する。
【０１２３】
図８は、ノードＮｎの概要構成例を示す図である。
【０１２４】
各ノードＮｎは、図５に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部２１を備えている。また、各ノードＮｎは、各種データ及び各種プログラム等を記憶保存するためのＨＤ（ハードディスク）等から構成された記憶部２２と、受信されたコンテンツのレプリカ等を一時蓄積するバッファメモリ２３とを備えている。更に、各ノードＮｎは、コンテンツのレプリカに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコードするデコーダ部２４を備えている。また更に、各ノードＮｎは、このデコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部２５と、この映像処理部２５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部２６と、を備えている。更にまた、各ノードＮｎは、上記デコードされたオーディオデータをアナログオーディオ信号にＤ （Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部２７と、この音声処理部２７から出力されたオーディオ信号を音波として出力するスピーカ２８と、を備えている。また更に、各ノードＮｎは、ネットワーク８を通じて他のノードＮｎ等間の情報の通信制御を行うための通信部２９を備えている。更にまた、各ノードＮｎは、ユーザからの指示を受け付けこの指示に応じた指示信号を制御部２１に対して与える入力部（例えば、キーボード、マウス、或いは、リモコンや操作パネル等）３０を備えている。そして、制御部２１、記憶部２２、バッファメモリ２３、デコーダ部２４、通信部２９、及び入力部３０はバス３１を介して相互に接続されている。図８ここで、記憶部１２は、本発明におけるページ情報記憶手段、アドレス情報記憶手段及び担当範囲情報記憶手段の一例である。なお、ノードＮｎとしては、例えば、パーソナルコンピュータ、ＳＴＢ（Set Top Box）等を適用可能である。
【０１２５】
記憶部２２には、ＤＨＴを用いたルーティングテーブル、インデックス、並びに、コンテンツ分散保存システムＳに参加する際のアクセス先となるコンタクトノードのＩＰアドレス及びポート番号、及びセンターサーバＳＡのＩＰアドレス及びポート番号等が記憶されている。ルーティングテーブルに登録されたＩＰアドレスは、アドレス情報の一例である。また、記憶部２２には、ノードＮｎ自身のノードＩＤが記憶されている。このノードＩＤは、担当範囲情報の一例である。また、記憶部２２には、他のノードＮｎから取得したページ情報や、センターサーバＳＡから配信されてきたページ情報が、ファイルとして記憶される。
【０１２６】
制御部２１は、ＣＰＵが記憶部２２等に記憶されたプログラム（本発明のノードプログラムを含む）を読み出して実行することにより、ページ情報受信手段、送信先決定手段及びページ情報転送手段として機能する。
【０１２７】
また、制御部２１は、コンテンツのレコードの検索を行う。この検索方法は、基本的にセンターサーバＳＡにおけるレコードの検索方法と同じである。ただし、必要なページ情報が保持されていない場合、制御部２１は、センターサーバＳＡ又は他のノードＮｎからページ情報を取得する。そして、制御部２１は、検索されたレコードの内容に基づいて、必要な処理を行う。例えば、制御部２１は、レコードの情報を表示部２６に表示させたり、コンテンツが公開されているか否かを判断したり、レコードに含まれているコンテンツＩＤに基づいて、コンテンツ保持ノードからコンテンツを取得したりする。
【０１２８】
なお、ノードプログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしても良いし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されてこの記録媒体のドライブを介して読み込まれるようにしても良い。
【０１２９】
［７．コンテンツ分散保存システムＳの動作］
次に、図９乃至図１７を参照して、本実施形態に係るコンテンツ分散保存システムＳの動作について説明する。
【０１３０】
以下においては、カタログ情報が一般的なｎ分探索木の構造を少なくとも有するものとして説明する。木の種類や構造等に特有の処理に関する説明は省略する。また、ページ情報に必須ではないセルフリンク情報に関する処理の説明は省略する。
【０１３１】
［７．１  センターサーバＳＡの動作］
図９は、本実施形態に係るセンターサーバＳＡにおける制御部１１の処理例を示すフローチャートである。
【０１３２】
図９に示す処理は、例えば、データベース管理プログラムが起動されたときに開始される。先ず、制御部１１は、ステップＳ１〜Ｓ５の初期化処理を実行する。具体的に、制御部１１は、ルートリンク情報を保存したファイルが記憶部１２に記憶されているか否かを判定する（ステップＳ１）。データベース管理プログラムの起動が初めてである場合には、ルートリンク情報は未だ作成されていない。その一方で、データベース管理プログラムの起動が初めてではない場合には、ルートリンク情報は既に作成されてファイルに保存されている。そこで、制御部１１は、ルートリンク情報を保存したファイルが記憶部１２に記憶されていない場合には（ステップＳ１：ＮＯ）、ルートリンク情報登録処理を実行する（ステップＳ２）。初期化処理から実行されたルートリンク情報登録処理では、ルートリンク情報とルートページ情報とが新規に作成される。なお、ルートリンク情報登録処理の詳細な説明は省略する。
【０１３３】
ステップＳ１において、制御部１１は、ルートリンク情報を保存したファイルが記憶部１２に記憶されている場合には（ステップＳ１：ＹＥＳ）、このファイルからルートリンク情報を読み出してＲＡＭに格納する（ステップＳ３）。
【０１３４】
次いで、制御部１１は、このファイルに保存されている電子署名を用いてルートリンク情報の改竄をチェックする（ステップＳ４）。例えば、制御部１１は、ルートリンク情報、より具体的には、ルートページ情報のシリアル番号及びメッセージダイジェストから、メッセージダイジェストを計算する。このメッセージダイジェストの計算には、電子署名に設定されているハッシュ関数が用いられる。また、制御部１１は、電子署名の証明書情報に設定されている公開鍵を用いて電子署名の署名値を復号する。そして、制御部１１は、作成されたメッセージダイジェストと復号されたデータとが一致するか否かを判定する。ここで、一致する場合にはルートリンク情報は改竄されていないとされ、一致しない場合には改竄されている。
【０１３５】
次いで、制御部１１は、ルートリンク情報は改竄されているか否かを判定する（ステップＳ５）。このとき、制御部１１は、ルートリンク情報は改竄されている場合には（ステップＳ５：ＹＥＳ）、エラー終了とさせる。この場合は、例えば、表示部１４に、ルートリンク情報が改竄されている旨のエラー表示がなされ、データベース管理プログラムの実行が中断される。
【０１３６】
ステップＳ５において、制御部１１は、ルートリンク情報は改竄されていない場合（ステップＳ５：ＮＯ）、又は、ステップＳ２のルートリンク情報登録処理を終えた場合には、メインの処理を開始させる。
【０１３７】
先ず、制御部１１は、オペレータからの終了指示があったか否かを、入力部１５からの入力に基づいて判定する（ステップＳ６）。
【０１３８】
ステップＳ６において、制御部１１は、終了指示がない場合には（ステップＳ６：ＮＯ）、オペレータからのレコードの追加要求があったか否かを、入力部１５からの入力に基づいて判定する（ステップＳ７）。このとき、制御部１１は、レコードの追加要求があった場合には（ステップＳ７：ＹＥＳ）、レコード追加処理を実行する（ステップＳ８）。この場合、制御部１１は、例えばオペレータ操作によって入力部１５から入力された新規レコードを指定する。また、制御部１１は、別途検索キーが必要な場合には、新規レコードの検索キーをも指定する。このレコード追加処理では、入力された新規レコードがカタログ情報に追加される。なお、レコード追加処理の詳細については後述する。
【０１３９】
ステップＳ７において、制御部１１は、レコードの追加要求がなかった場合には（ステップＳ７：ＮＯ）、オペレータからのレコードの削除要求があったか否かを、入力部１５からの入力に基づいて判定する（ステップＳ９）。このとき、制御部１１は、レコードの削除要求があった場合には（ステップＳ９：ＹＥＳ）、レコード削除処理を実行する（ステップＳ１０）。この場合、制御部１１は、オペレータ操作によって入力部１５から入力された削除対象レコードの検索キーを指定する。このレコード削除処理では、指定された検索キーに対応する削除対象レコードがカタログ情報から削除される。なお、レコード削除処理の詳細については後述する。
【０１４０】
ステップＳ９において、制御部１１は、レコードの削除要求がなかった場合には（ステップＳ９：ＮＯ）、オペレータからのレコードの検索要求があったか否かを、入力部１５からの入力に基づいて判定する（ステップＳ１１）。このとき、制御部１１は、レコードの検索要求があった場合には（ステップＳ１１：ＹＥＳ）、レコード検索処理を実行する（ステップＳ１２）。この場合、制御部１１は、オペレータ操作によって入力部１５から入力された検索キーを指定する。このレコード検索処理では、指定された検索キーに対応するレコードがカタログ情報から検索される。なお、レコード検索処理の詳細については後述する。
【０１４１】
ステップＳ１１において、制御部１１は、レコードの検索要求がなかった場合には（ステップＳ１１：ＮＯ）、ルートリンク情報要求メッセージを受信したか否かを判定する（ステップＳ１３）。このとき、制御部１１は、ルートリンク情報要求メッセージを受信した場合には（ステップＳ１３：ＹＥＳ）。ルートリンク情報をルートリンク情報メッセージに含ませて、要求元のノードＮｎに送信する。
【０１４２】
ステップＳ１３において、制御部１１は、ルートリンク情報要求メッセージを受信していない場合には（ステップＳ１３：ＮＯ）、ページ情報要求メッセージを受信したか否かを判定する（ステップＳ１５）。このとき、制御部１１は、ページ情報要求メッセージを受信した場合には（ステップＳ１５：ＹＥＳ）、ページ情報取得処理を実行する（ステップＳ１６）。このとき、制御部１１は、ページ情報要求メッセージに含まれているリンク情報を指定する。このリンク情報は、要求されたページ情報を指している。ページ情報取得処理では、指定されたリンク情報が指すページ情報がファイルから取得され、ＲＡＭに格納される。なお、ページ情報取得処理の詳細については後述する。制御部１１は、要求されたページ情報を取得すると、このページ情報をページ情報メッセージに含ませて、要求元のノードＮｎに送信する（ステップＳ１７）。
【０１４３】
制御部１１は、ステップＳ８、Ｓ１０、Ｓ１２、Ｓ１４又はＳ１７の処理を終えたとき、或いは、ステップＳ１５において、ページ情報要求メッセージを受信していない場合には（ステップＳ１５：ＮＯ）、ステップＳ６に移行する。そして、制御部１１は、ステップＳ６においてオペレータからの終了指示があった場合には（ステップＳ６：ＹＥＳ）、本処理を終了させる。
【０１４４】
図１０は、本実施形態に係るセンターサーバＳＡにおける制御部１１のページ情報登録処理における処理例を示すフローチャートである。
【０１４５】
ページ情報登録処理は、例えば、ルートリンク情報登録処理において空のルートページ情報が作成された場合、レコードの追加処理において新たなページ情報が作成された場合、及び、レコード削除処理において新たなページ情報が作成された場合に実行される。ページ情報登録処理が実行される際、新たに作成されたページ情報が指定される。この新たに作成されたページ情報は、例えばＲＡＭに格納されている。
【０１４６】
先ず、制御部１１は、登録対象として指定されたページ情報に、今までに割り当てられていない最新のページ番号を割り当てる（ステップＳ１５１）。
【０１４７】
次いで、制御部１１は、登録対象のページ情報を頂点とするサブツリーに含まれるページ情報を全て保存するのに必要なファイルサイズを計算する（ステップＳ１５２）。例えば、制御部１１は、登録対象のページ情報に格納されているリンク情報から、登録対象のページ情報の子ページ情報を特定する。子ページ情報を特定すると、制御部１１は、特定された各子ページ情報に設定されている合計ファイルサイズを取得する。そして、制御部１１は、取得した合計ファイルサイズを合算する。最後に、制御部１１は、合算したファイルサイズに、登録対象のページ情報のファイルサイズを加算する。
【０１４８】
次いで、制御部１１は、計算されたファイルサイズを、登録対象のページ情報に、合計ファイルサイズとして設定する（ステップＳ１５３）。
【０１４９】
次いで、制御部１１は、登録対象のページ情報のメッセージダイジェストを計算する（ステップＳ１５４）。
【０１５０】
次いで、制御部１１は、登録対象のページ情報をファイルに保存する（ステップＳ１５５）。このとき、ページ情報がどこに保存されているかが特定することができるよう、例えば、ファイル名にページ番号が付加される。
【０１５１】
次いで、制御部１１は、登録したページ情報を担当していると思われるノードＮｎに、登録したページ情報を含むページ情報配布メッセージを送信する（ステップＳ１５６）。具体的に、送信先決定手段としての制御部１１は、登録したページ情報の送信先として、登録したページ情報を担当していると思われるノードＮｎを、ルーティングテーブルに登録されているノードＩＤに基づいて決定する。ページ情報を担当していると思われるノードＮｎは、ルーティングテーブルにノード情報が登録されているノードＮｎの中から選択される。そして、ページ情報送信手段としての制御部１１は、登録したページ情報を担当していると思われるノードＮｎに、ページ情報配布メッセージを送信する。このページ情報配布メッセージには、作成されたページ情報が含まれている。
【０１５２】
制御部１１は、この処理を終えると、ページ情報登録処理を終了させ、割り当てたページ番号と計算したメッセージダイジェストとからなるリンク情報を、呼び出し元の処理に返却する。
【０１５３】
図１１は、本実施形態に係るセンターサーバＳＡにおける制御部１１のレコード追加処理における処理例を示すフローチャートである。
【０１５４】
先ず、制御部１１は、現在のルートリンク情報をＲＡＭから取得する（ステップＳ２０１）。次いで、制御部１１は、ページ情報取得処理を実行する（ステップＳ２０２）。このとき、制御部１１は、ルートリンク情報を指定する。ページ情報取得処理では、指定されたリンク情報が指すページ情報がファイルから取得され、ＲＡＭに格納される。取得されたページ情報は、現在参照しているページ情報とされる。なお、ページ情報取得処理の詳細については後述する。
【０１５５】
次いで、制御部１１は、取得されたページ情報が新規レコードの担当ページ情報であるか否かを判定する（ステップＳ２０３）。この判定方法は、ページ情報の構造に依存する。
【０１５６】
制御部１１は、取得されたページ情報が新規レコードの担当ページ情報ではない場合には（ステップＳ２０３：ＮＯ）、現在参照しているページ情報から、次のページ情報へのリンク情報を取得する（ステップＳ２０４）。この処理は、カタログ情報の探索木の構造に対応した探索アルゴリズムに従って行われる。例えば、制御部１１は、指定された検索キーと現在参照しているページ情報に設定されているインデックスとの比較によって、次のページ情報へのリンク情報を特定する。
【０１５７】
次いで、制御部１１は、次のページ情報へのリンク情報が存在するか否かを判定する（ステップＳ２０５）。つまり、制御部１１は、次のページ情報へのリンク情報を取得することができたか否かを判定する。このとき、制御部１１は、次のページ情報へのリンク情報が存在しない場合には（ステップＳ２０５：ＮＯ）、葉ページ情報生成手段として、ステップＳ２０６において、新しい担当ページ情報をＲＡＭ上に作成する。そして、制御部１１は、作成した担当ページ情報上に新規レコードを追加して設定する。このとき、制御部１１は、カタログ情報の構造上必要な場合には、新規レコードの検索キーをインデックスとして、この新規レコードに対応付けて担当ページ情報に追加して設定する。
【０１５８】
一方、制御部１１は、次のページ情報へのリンク情報が存在する場合には（ステップＳ２０５：ＹＥＳ）、ステップＳ２０２に移行する。このとき、制御部１１は、取得したリンク情報を指定して、ページ情報取得処理を実行する。
【０１５９】
ステップＳ２０３において、制御部１１は、取得されたページ情報が新規レコードの担当ページ情報である場合には（ステップＳ２０３：ＹＥＳ）、担当ページ情報には、格納可能なレコード数の上限まで既にレコードが格納されているか否かを判定する（ステップＳ２０７）。このとき、制御部１１は、格納可能なレコード数の上限までのレコードは格納されていない場合には（ステップＳ２０７：ＹＥＳ）、葉ページ情報生成手段として、ステップＳ２０８において、現在の担当ページ情報の内容をコピーした新しい担当ページ情報をＲＡＭ上に作成する。そして、制御部１１は、新しい担当ページ情報に新規レコードを追加して設定する。このとき、制御部１１は、ステップＳ２０６と同様に必要に応じて、新規レコードの検索キーをインデックスとして追加設定する。
【０１６０】
一方、制御部１１は、格納可能なレコード数の上限まで既にレコードが格納されている場合には（ステップＳ２０７：ＮＯ）、葉ページ情報生成手段として、ステップＳ２０９において、ページ情報の分割を行う。具体的に、制御部１１は、カタログ情報の探索木の構造に対応する分割アルゴリズムに従って、現在の担当ページ情報の内容を分割して複数の新しいページ情報をＲＡＭ上に作成する。そして、制御部１１は、この新しいページ情報のうち担当ページ情報に、新規レコードを追加して設定する。例えば、担当ページ情報の内容を３つに分割する場合、元の担当ページ情報に格納されているレコードが、そのインデックスの順に、前半、中間及び後半のレコードに分けられる。そして、夫々のレコードを格納するページ情報が作成される。新規レコードをどのページ情報に格納させるかはその検索キーに基づいて判断される。また、制御部１１は、ステップＳ２０６と同様に必要に応じて、新規レコードの検索キーをインデックスとして追加設定する。
【０１６１】
制御部１１は、ステップＳ２０６、Ｓ２０８又はＳ２０９において新しい担当ページを作成した後、ページ情報登録処理を実行する（ステップＳ２１０）。このとき、制御部１１は、新たに作成したページ情報を指定する。ページ情報登録処理では、指定されたページ情報へのリンク情報が生成され、このページ情報がファイルに保存される。これによりページ情報が登録される。なお、ステップＳ２０９において、担当ページ情報が複数の新しいページ情報に分割された場合には、この複数のページ情報夫々に対してページ情報登録処理が実行される。
【０１６２】
次いで、制御部１１は、登録されたページ情報の親ページ情報が存在するか否かを判定する（ステップＳ２１１）。例えば、ステップＳ２０５の判定において次のページ情報へのリンク情報が存在する度に、そのとき参照していたページ情報のページ番号をＲＡＭの所定領域に保存してくと良い。この所定領域を参照することによって、親ページ情報が存在するか、及び、この親ページ情報のページ番号を特定することができる。
【０１６３】
制御部１１は、親ページ情報が存在する場合には（ステップＳ２１１：ＹＥＳ）、更新手段として、ステップＳ２１２及びＳ２１３において、新しい担当ページ情報の親ページ情報からルートページ情報までの各節ページ情報のページ番号及びメッセージダイジェストを更新する。先ず、制御部１１は、元の親ページ情報の内容をコピーした新しい親ページ情報をＲＡＭ上に作成する（ステップＳ２１２）。そして、制御部１１は、新しい親ページを現在参照するページ情報とする。
【０１６４】
次いで、制御部１１は、現在参照するページ情報に格納されている古い子ページ情報を指していたリンク情報を、新しい子ページ情報を指すリンク情報に書き換える（ステップＳ２１３）。具体的に、制御部１１は、ステップＳ２１０のページ情報登録処理で生成されたリンク情報を、新しい子ページ情報を指すリンク情報とする。そして、制御部１１は、新しい子ページ情報を指すリンク情報を、古い子ページ情報を指していたリンク情報に上書きする。
【０１６５】
次いで、制御部１１は、ステップＳ２１０に移行する。このとき、制御部１１は、新たに作成した現在参照しているページ情報を指定して、ページ情報登録処理を実行する。これにより、現在参照しているページ情報が登録される。
【０１６６】
ステップＳ２１１において、制御部１１は、登録されたページ情報の親ページ情報が存在しない場合、つまり、登録されたページ情報がルートページ情報である場合には（ステップＳ２１１）、ルートリンク情報登録処理を実行する（ステップＳ２１４）。ルートリンク情報登録処理では、登録された新しいルートページ情報を指すルートリンク情報が作成される。制御部１１は、ルートリンク情報登録処理を終えると、レコード追加処理を終了させる。
【０１６７】
図１２は、本実施形態に係るセンターサーバＳＡにおける制御部１１のレコード削除処理における処理例を示すフローチャートである。
【０１６８】
先ず、制御部１１は、ステップＳ２５１〜Ｓ２５５の処理を実行する。これらの処理は、レコード追加処理におけるステップＳ２０１〜Ｓ２０５の処理と同様である。
【０１６９】
ステップＳ２５５において、制御部１１は、次のページ情報へのリンク情報が存在しない場合には（ステップＳ２５５：ＮＯ）、レコード削除処理を終了させる。つまり、削除対象レコードを格納しているページ情報は存在しないので、レコード削除処理はここで終了する。
【０１７０】
ステップＳ２５３において、制御部１１は、取得されたページ情報が削除対象レコードの担当ページ情報である場合には（ステップＳ２５３：ＹＥＳ）、担当ページ情報は削除対象レコードを格納しているか否かを判定する（ステップＳ２５６）。この判定方法は、カタログ情報の構造に依存する。例えば、レコードとこのレコードのインデックスとが対応付けられページ情報に格納される構造の場合には、指定された検索キーで、担当ページ情報に格納されているインデックスが検索される。そして、指定された検索キーに一致するインデックスが存在する場合には、削除対象レコードは格納されていると判定される。その一方で、指定された検索キーに一致するインデックスが存在しない場合には、削除対象レコードは格納されていないと判定される。制御部１１は、担当ページ情報は削除対象レコードを格納していない場合には（ステップＳ２５６：ＮＯ）、レコード削除処理を終了させる。
【０１７１】
一方、制御部１１は、担当ページ情報は削除対象レコードを格納している場合には（ステップＳ２５６：ＹＥＳ）、葉ページ情報生成手段として、ステップＳ２５７において、現在の担当ページ情報の内容をコピーした新しい担当ページ情報をＲＡＭ上に作成する。そして、制御部１１は、新しい担当ページ情報から削除対象レコードを削除する。このとき、制御部１１は、担当ページ情報に削除対象レコードのインデックスが設定されている場合には、このインデックスも削除する。
【０１７２】
次いで、制御部１１は、作成した新しいページ情報が格納しているレコードの数とリンク情報の数が何れも０になったか否かを判定する（ステップＳ２５８）。つまり、制御部１１は、作成した新しいページ情報が空になったか否かを判定する。このとき、制御部１１は、作成した新しいページ情報が空になっていない場合には（ステップＳ２５８：ＮＯ）、このページ情報を指定して、ページ情報登録処理を実行する（ステップＳ２５９）。これにより、削除対象レコードが削除された新しいページ情報が登録される。
【０１７３】
一方、制御部１１は、作成した新しいページ情報が空になった場合には（ステップＳ２５８：ＹＥＳ）、このページ情報をＲＡＭ上から削除する（ステップＳ２６０）。
【０１７４】
制御部１１は、ステップＳ２５９又はＳ２６０の処理を終えると、ステップＳ２６１〜Ｓ２６４の処理を実行する。これらの処理は、レコード追加処理におけるステップ２１１〜Ｓ２１４の処理と基本的には同様である。
【０１７５】
ここでステップＳ２６３において、制御部１１は、現在参照するページ情報に格納されている古い子ページ情報を指していたリンク情報を、新しい子ページ情報を指すリンク情報に書き換える。ただし、制御部１１は、子ページ情報がステップＳ２６０で削除されている場合には、古い子ページ情報を指していたリンク情報を、何も指していない状態に書き換える。例えば、ページ番号及びメッセージダイジェストに無効な値が設定される。
【０１７６】
図１３は、本実施形態に係るセンターサーバＳＡにおける制御部１１のレコード検索処理における処理例を示すフローチャートである。
【０１７７】
先ず、制御部１１は、現在のルートリンク情報をＲＡＭから取得する（ステップＳ３５１）。次いで、制御部１１は、ページ情報取得処理を実行する（ステップＳ３５２）。次いで、制御部１１は、取得されたページ情報が、指定された検索キーに対応するレコードの担当ページ情報であるか否かを判定する（ステップＳ３５３）。制御部１１は、取得されたページ情報が削除対象レコードの担当ページ情報ではない場合には（ステップＳ３５３：ＮＯ）、現在参照しているページ情報から、次のページ情報へのリンク情報を取得する（ステップＳ３５４）。次いで、制御部１１は、次のページ情報へのリンク情報が存在するか否かを判定する（ステップＳ３５５）。このとき、制御部１１は、次のページ情報へのリンク情報が存在しない場合には（ステップＳ３５５：ＮＯ）、指定された検索キーに対応するレコードが発見されなかった旨をオペレータに提示する（ステップＳ３５６）。例えば、発見されなかった旨のメッセージが表示部１４に表示される。
【０１７８】
ステップＳ３５３において、制御部１１は、取得されたページ情報が検索キーに対応するレコードの担当ページ情報である場合には（ステップＳ３５３：ＹＥＳ）、担当ページ情報は検索キーに対応するレコードを格納しているか否かを判定する（ステップＳ３５７）。このとき、制御部１１は、担当ページ情報は検索キーに対応するレコードを格納していない場合には（ステップＳ３５７：ＮＯ）、指定された検索キーに対応するレコードが発見されなかった旨をオペレータに提示する（ステップＳ３５６）。一方、制御部１１は、担当ページ情報は検索キーに対応するレコードを格納している場合には、発見したレコードの情報をオペレータに提示する。例えば、レコードの内容が表示部１４に表示される。制御部１１は、ステップＳ３５６又はステップＳ３５８の処理を終えると、レコード検索処理を終了させる。
【０１７９】
［７．２  ノードＮｎの動作］
図１４は、本実施形態に係るノードＮｎにおける制御部２１の処理例を示すフローチャートである。
【０１８０】
図１４に示す処理は、例えば、ノードＮｎが、コンテンツ分散保存システムＳに参加したときに開始される。先ず、制御部２１は、初期化処理を実行する（ステップＳ５０１）。この初期化処理では、ルートリンク情報が取得される。なお、初期化処理の詳細は後述する。
【０１８１】
次いで、制御部２１は、ユーザからの終了指示があったか否かを、入力部３０からの入力に基づいて判定する（ステップＳ５０２）。
【０１８２】
ステップＳ２において、制御部２１は、終了指示がない場合には（ステップＳ５０２：ＮＯ）、ユーザからのレコードの検索要求があったか否かを、入力部３０からの入力に基づいて判定する（ステップＳ５０３）。このとき、制御部２１は、レコードの検索要求があった場合には（ステップＳ５０３：ＹＥＳ）、レコード検索処理を実行する（ステップＳ５０４）。このレコード検索処理では、ユーザにより指定された検索キーに対応するレコードがカタログ情報から検索される。なお、レコード検索処理の内容は、センターサーバＳＡにおけるレコード検索処理の内容と同様であるので、詳細な説明は省略する。ただし、レコード検索処理から実行されるページ情報取得処理の内容は、センターサーバＳＡにおけるページ情報取得処理とは異なる。
【０１８３】
ステップＳ５０３において、制御部２１は、レコードの検索要求がなかった場合には（ステップＳ５０３：ＮＯ）、ルートリンク情報要求メッセージを受信したか否かを判定する（ステップＳ５０５）。このとき、制御部２１は、ルートリンク情報要求メッセージを受信した場合には（ステップＳ５０５：ＹＥＳ）、ＲＡＭに格納されているルートリンク情報をルートリンク情報メッセージに含ませて、要求元のノードＮｎに送信する（ステップＳ５０６）。
【０１８４】
ステップＳ５０５において、制御部２１は、ルートリンク情報要求メッセージを受信していない場合には（ステップＳ５０５：ＮＯ）、ページ情報要求メッセージを受信したか否かを判定する（ステップＳ５０７）。このとき、制御部２１は、ページ情報要求メッセージを受信した場合には、ページ情報取得処理を実行する（ステップＳ５０８）。このとき、制御部２１は、ページ情報要求メッセージに含まれているリンク情報及び検索キーを指定する。ページ情報取得処理では、指定されたリンク情報が指すページ情報がファイルから取得され、ＲＡＭに格納される。また、指定されたリンク情報が指すページ情報を保存するファイルがない場合には、センターサーバＳＡ又は他のノードＮｎからこのページ情報が取得される。なお、ページ情報取得処理の詳細については後述する。制御部２１は、要求されたページ情報を取得すると、このページ情報をページ情報メッセージに含ませて、要求元のノードＮｎに送信する（ステップＳ５０９）。
【０１８５】
ステップＳ５０７において、制御部２１は、ページ情報要求メッセージを受信していない場合には（ステップＳ５０７：ＮＯ）、ルートリンク情報メッセージを受信したか否かを判定する（ステップＳ５１０）。このとき、制御部２１は、ルートリンク情報メッセージを受信した場合には（ステップＳ５１０：ＹＥＳ）、このルートリンク情報メッセージに含まれる情報をルートリンク情報としてＲＡＭに設定する（ステップＳ５１１）。
【０１８６】
ステップＳ５１０において、制御部２１は、ルートリンク情報メッセージを受信していない場合には（ステップＳ５１０：ＮＯ）、ページ情報メッセージを受信したか否かを判定する（ステップＳ５１２）。このとき、制御部２１は、ページ情報メッセージを受信した場合には（ステップＳ５１２：ＹＥＳ）、このページ情報メッセージに含まれる情報をページ情報としてファイルに保存する（ステップＳ５１３）。
【０１８７】
ステップＳ５１２において、制御部２１は、ページ情報メッセージを受信していない場合には（ステップＳ５１２：ＮＯ）、ページ情報受信手段としてページ情報配布メッセージを受信したか否かを判定する（ステップＳ５１４）。このとき、制御部２１は、ページ情報配布メッセージを受信した場合には（ステップＳ５１４：ＹＥＳ）、このページ情報配布メッセージに含まれる情報をページ情報としてファイルに保存する（ステップＳ５１５）。
【０１８８】
次いで、制御部２１は、受信したページ情報配布メッセージに含まれるページ情報を担当するのに制御部２１自身のノードＮｎよりふさわしいノードＮｎが存在するか否かを判定する（ステップＳ５１６）。具体的に、制御部２１は、送信先決定手段として、ページ情報を担当するのに制御部２１自身のノードＮｎよりふさわしいノードＮｎが存在するか否かの判断を、ルーティングテーブルに登録されているノードＩＤと、受信されたページ情報配布メッセージに含まれるページ情報のインデックスに基づいて行う。このとき、制御部２１は、ふさわしいノードＮｎが存在する場合には（ステップＳ５１６：ＹＥＳ）、ページ情報転送手段として、受信したページ情報配布メッセージに含まれるページ情報を担当するのに最もふさわしいノードＮｎに、ページ情報配布メッセージを転送する（ステップＳ５１７）。
【０１８９】
ステップＳ５１４において、制御部２１は、ページ情報配布メッセージを受信していない場合には（ステップＳ５１４：ＮＯ）、担当ページ情報取得処理を実行する（ステップＳ５１８）。担当ページ情報取得処理では、ノードＮｎの担当範囲内にあるページ情報がサーバＳＡ又は他のノードＮｎから取得され、記憶部２２に記憶される。
【０１９０】
制御部２１は、ステップＳ５０４、Ｓ５０６、Ｓ５０９、Ｓ５１１、Ｓ５１３、Ｓ５１７又はＳ５１８の処理を終えたとき、又は、ステップＳ５１６において、受信したページ情報配布メッセージに含まれるページ情報を担当するのに制御部２１自身のノードＮｎよりふさわしいノードＮｎが存在しない場合には、ステップＳ５０２に移行する。そして、制御部１１は、ステップＳ５０２においてユーザからの終了指示があった場合には（ステップＳ５０２：ＹＥＳ）、本処理を終了させる。
【０１９１】
図１５は、本実施形態に係るノードＮｎにおける制御部２１の初期化処理における処理例を示すフローチャートである。
【０１９２】
先ず、制御部２１は、コンテンツ分散保存システムＳに参加中の他のノードＮｎに、ルートリンク情報要求メッセージを送信する（ステップＳ５５１）。ルートリンク情報要求メッセージの送信先のノードＮｎとしては、例えば、ルーティングテーブルにノード情報が登録されているノードＮｎのうち任意のノードＮｎが選択される。
【０１９３】
次いで、制御部２１は、ルートリンク情報要求メッセージの送信に対応して、送信先のノードＮｎから送信されてきたルートリンク情報メッセージを受信する（ステップＳ５５２）。次いで、制御部２１は、受信されたルートリンク情報メッセージから、ルートリンク情報をＲＡＭ上に設定する（ステップＳ５５３）。次いで、制御部２１は、ルートリンク情報メッセージに添付されている電子署名でルートリンク情報の改竄をチェックする（ステップＳ５５４）。このチェック方法は、センターサーバＳＡの初期処理におけるルートリンク情報の改竄チェックと同様である。
【０１９４】
次いで、制御部２１は、ルートリンク情報は改竄されているか否かを判定する（ステップＳ５５５）。このとき、制御部２１は、ルートリンク情報は改竄されていない場合には（ステップＳ５５５：ＮＯ）、初期化処理を終了させる。
【０１９５】
一方、制御部２１は、ルートリンク情報は改竄されている場合には（ステップＳ５５５：ＹＥＳ）、センターサーバＳＡにルートリンク情報要求メッセージを送信する（ステップＳ５５６）。次いで、ステップＳ５５２に移行する。ここで、制御部２１は、再度、センターサーバＳＡからルートリンク情報メッセージを受信し、ルートリンク情報を設定し、改竄チェックを行う（ステップＳ５５２〜Ｓ５５４）。
【０１９６】
そして、ステップＳ５５５において、制御部２１は、センターサーバＳＡから受信したルートリンク情報が改竄されていない場合には（ステップＳ５５５：ＮＯ）、初期化処理を終了させる。
【０１９７】
図１６は、本実施形態に係るノードＮｎにおける制御部２１のページ情報取得処理における処理例を示すフローチャートである。
【０１９８】
先ず、制御部２１は、指定されたリンク情報が有効なページ情報を指しているか否かを判定する（ステップＳ６０１）。例えば、リンク情報のページ番号が無効な値に設定される場合、このリンク情報は有効なページ情報を指していない。例えば、ページ番号が１から始まるように定められている場合、ページ番号に１以上の値が設定されているリンク情報は有効であり、ページ番号に０が設定されているリンク情報は無効である。このとき、制御部２１は、指定されたリンク情報が有効なページ情報を指していない場合には（ステップＳ６０１：ＮＯ）、ページ情報取得処理を終了させる。この場合、ページ情報無しという情報が、呼び出し元の処理に返却される。
【０１９９】
一方、制御部２１は、指定されたリンク情報が有効なページ情報を指している場合には（ステップＳ６０１：ＮＯ）、このリンク情報に含まれるページ番号が指すファイルが記憶部２２に記憶されているか否かを判定する（ステップＳ６０２）。このとき、制御部２１は、指定されたリンク情報に含まれるページ番号が指すファイルが記憶されている場合には（ステップＳ６０２：ＹＥＳ）、このリンク情報に含まれるページ番号が指すファイルからページ情報を読み出してＲＡＭに格納する（ステップＳ６０３）。
【０２００】
次いで、制御部２１は、指定されたリンク情報に含まれるメッセージダイジェストを用いて、読み出したページ情報の改竄をチェックする（ステップＳ６０４）。このチェック方法は、センターサーバＳＡのページ情報取得処理におけるページ情報の改竄チェックと同様である。
【０２０１】
次いで、制御部２１は、読み出したルートページ情報は改竄されているか否かを判定する（ステップＳ６０５）。このとき、制御部２１は、ページ情報は改竄されていない場合には（ステップＳ６０５：ＮＯ）、読み出したページ情報を呼び出し元の処理に返却し、ページ情報取得処理を終了させる。
【０２０２】
ステップＳ６０２において、制御部２１は、指定されたリンク情報に含まれるページ番号が指すファイルが記憶されていない場合には（ステップＳ６０２：ＮＯ）、リンク情報が指すページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎが存在するか否かを判定する（ステップＳ６０６）。リンク情報が指すページ情報を担当するのにふさわしいノードＮｎが存在するか否かは、ルーティングテーブルにノード情報が登録されているノードＮｎの範囲内で判断される。また、ページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎとは、例えば、ノードＩＤが、制御部２１自身のノードＮｎのノードＩＤよりも、指定された検索キーの上位桁の値と多く一致するノードＮｎである。
【０２０３】
制御部２１は、リンク情報が指すページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎが存在しない場合（ステップＳ６０６：ＮＯ）、又は、ステップＳ６０５において、ページ情報が改竄されている場合には（ステップＳ６０５：ＹＥＳ）、センターサーバＳＡにページ情報要求メッセージを送信する（ステップＳ６０７）。このとき、制御部２１は、指定されたリンク情報及び検索キーをページ情報要求メッセージに設定する。
【０２０４】
一方、制御部２１は、リンク情報が指すページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎが存在する場合には、リンク情報が指すページ情報を担当するのに最もふさわしいノードＮｎにページ情報要求メッセージを送信する（ステップＳ６０８）。ページ情報を担当するのに最もふさわしいノードＮｎとは、例えば、ノードＩＤが、指定された検索キーの上位桁の値と最も多く一致するノードＮｎである。
【０２０５】
制御部２１は、ステップＳ６０７又はＳ６０８において、ページ情報要求メッセージを送信すると、このページ情報要求メッセージの送信に対応してセンターサーバＳＡ又は他のノードＮｎから送信されてきたページ情報メッセージを受信する（ステップＳ６０９）。次いで、制御部２１は、受信したページ情報メッセージに含まれる情報をページ情報としてファイルに保存する（ステップＳ６１０）。制御部２１は、この処理を終えると、ステップＳ６０３に移行する。ここで、制御部２１は、再度、ページ情報を読み出し、読み出したページ情報の改竄チェックを行う（ステップＳ６０３、Ｓ６０４）。そして、ステップＳ６０５において、制御部２１は、ページ情報は改竄されていない場合には（ステップＳ６０５：ＮＯ）、ページ情報取得処理を終了させる。
【０２０６】
図１７は、本実施形態に係るノードＮｎにおける制御部２１の担当ページ情報取得処理における処理例を示すフローチャートである。
【０２０７】
先ず、制御部２１は、現在のルートリンク情報をＲＡＭから取得する（ステップＳ６５１）。次いで、制御部２１は、ページ情報取得処理を実行する（ステップＳ６５２）。このとき、制御部２１は、取得したルートリンク情報を指定する。また、制御部２１は、検索キーとして、制御部２１自身のノードＮｎのノードＩＤを指定する。ページ情報取得処理において取得されたページ情報は、現在参照しているページ情報とされる。
【０２０８】
次いで、制御部２１は、ページ情報の保存のためのファイルキャッシュ容量が、取得したページ情報に設定されている合計ファイルサイズ以上であるか否かを判定する（ステップＳ６５３）。このとき、制御部２１は、ファイルキャッシュ容量が、取得したページ情報に設定されている合計ファイルサイズ未満である場合には（ステップＳ６５３：ＮＯ）、現在参照しているページ情報から、次のページ情報へのリンク情報を取得する（ステップＳ６５４）。ここで、次のページ情報とは、現在参照しているページ情報の子ページ情報のうち、担当範囲内にあるページ情報をいう。制御部２１は、先ず、制御部２１自身のノードＮｎのノードＩＤに基づいて担当範囲を決定する。この担当範囲の決定は、カタログ情報の探索木の構造に対応した探索アルゴリズムに従って行われる。一例としては、現在参照しているページ情報がルートページ情報である場合には、インデックスの上位一桁の値がノードＩＤの上位一桁の値と一致するページ情報が担当範囲となる。また、現在参照しているページ情報がルートページ情報の子ページ情報である場合には、インデックスの上位二桁の値がノードＩＤの上位二桁の値と一致するページ情報が担当範囲となる。次いで、制御部２１は、現在参照しているページ情報の子ページ情報のうちどの子ページ情報が、決定した担当範囲内のページ情報であるか判断する。そして、制御部２１は、担当範囲内であると判断したページ情報を指すリンク情報を取得する。
【０２０９】
次いで、制御部２１は、次のページ情報へのリンク情報が存在するか否かを判定する（ステップＳ６５５）。つまり、制御部２１は、次のページ情報へのリンク情報を取得することができたか否かを判定する。このとき、制御部２１は、次のページ情報へのリンク情報が存在する場合には（ステップＳ６５５：ＹＥＳ）、ステップＳ６５２に移行する。このとき、制御部２１は、取得したリンク情報を指定し、且つ、制御部２１自身のノードＮｎのノードＩＤを検索キーとして指定して、ページ情報取得処理を実行する。
【０２１０】
ステップＳ６５３において、制御部２１は、ファイルキャッシュ容量が、取得したページ情報に設定されている合計ファイルサイズ以上である場合には（ステップＳ６５３：ＹＥＳ）、取得したページ情報を頂点とするサブツリーに含まれる全てのページ情報を取得する（ステップＳ６５６）。ただし、頂点とするページ情報は、既にステップＳ６５２のページ情報取得処理で取得されているので、ステップＳ６５６における取得対象からは除かれる。ステップＳ６５６の処理では、サブツリーに含まれる各ページ情報を取得するために、夫々ページ情報取得処理が実行される。つまり、取得対象のページ情報を保存するファイルが記憶部２２に記憶されていない場合に、この取得対象のページ情報が、センターサーバＳＡ又は他のノードＮｎから取得される。
【０２１１】
制御部２１は、ステップＳ６５６の処理を終えたとき、又は、ステップＳ６５５において次のページ情報へのリンク情報が存在しない場合には（ステップＳ６５５：ＮＯ）、担当ページ情報取得処理を終了させる。
【０２１２】
以上説明したように、本実施形態によれば、センターサーバＳＡの記憶部１２が、一又は複数のレコードが格納された葉ページ情報を記憶する。また、記憶部１２が、ルートページ情報の子ページ情報のメッセージダイジェストと、この子ページ情報のページ番号を含むリンク情報が格納されたルートページ情報を記憶する。また、記憶部１２が、ルートページ情報以外の節ページ情報の子ページ情報のメッセージダイジェストと、この子ページ情報のページ番号を含むリンク情報が格納された節ページ情報を記憶する。また、記憶部１２が、ルートページ情報のメッセージダイジェストと、ルートページ情報のページ番号と、ルートリンク情報の電子署名とが格納されたルートリンク情報を記憶する。また、記憶部１２が、コンテンツ分散保存システムＳに参加している複数のノードＮｎのうち少なくとも一部のノードＮｎのＩＰアドレスが登録されているルーティングテーブルを記憶する。また、制御部１１が、葉ページ情報を新たに生成し、新たに作成した葉ページ情報の親ページ情報からルートページ情報までの各節ページ情報のページ番号及びメッセージダイジェストを更新する。また、制御部１１が、更新した節ページ情報を含むページ情報配布メッセージをノードＮｎに送信する。
【０２１３】
従って、ノードＮｎは、ルートページ情報から葉ページ情報にかけて関連付けられた木構造のカタログ情報により、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができるカタログ情報を各ノードＮｎへ配布することができる。
【０２１４】
また、センターサーバＳＡの記憶部１２が、ページ情報の担当範囲を示すノードＩＤが登録されたルーティングテーブルを記憶する。また、制御部１１が、ページ情報配布メッセージの送信対象となるノードＮｎを、ルーティングテーブルに登録されているノードＩＤに基づいて決定する。そして、制御部１１が、決定したノードＮｎにページ情報配布メッセージを送信する。
【０２１５】
従って、ノードＮｎ毎に定められるページ情報の担当範囲に基づいて、ページ情報の送信対象となるノードＮｎが決定されるので、各ノードＮｎの記憶負担を低減しつつ、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができるカタログ情報を各ノードＮｎへ配布することができる。
【０２１６】
また、センターサーバＳＡの制御部１１が、ルーティングテーブルに登録されているノードＩＤと、更新した節ページ情報に含まれるインデックスとに基づいて、更新した節ページ情報を担当範囲内のページ情報とするノードＮｎを決定する。
【０２１７】
従って、各ノードＮｎのノードＩＤに基づき、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができるカタログ情報を各ノードＮｎへ配布することができる。
【０２１８】
また、ノードＮｎの記憶部２２が、コンテンツ分散保存システムＳに参加している複数のノードＮｎのうち少なくとも一部のノードＮｎのＩＰアドレスとノードＩＤと対応付けて登録されているルーティングテーブルを記憶する。また、制御部２１が、センターサーバＳＡから送信されたページ情報配布メッセージを受信し、記憶部２２に記憶させる。また、制御部２１が、ルーティングテーブルに登録されているノードＩＤと、受信したページ情報配布メッセージに含まれるページ情報に含まれるインデックスとに基づいて、節ページ情報の転送先となるノードＮｎを決定する。そして、制御部２１が、決定したノードＮｎに、ページ情報配布メッセージを転送する。
【０２１９】
従って、各ノードＮｎのノードＩＤに基づき、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができるカタログ情報を各ノードＮｎへ配布することができる。
【０２２０】
［第２実施形態］
次に、本発明の第２の実施形態について、図１８を用いて説明する。
【０２２１】
上記説明した第１実施形態においては、受信したページ情報配布メッセージに含まれるページ情報を担当するノードＮｎは、このページ情報をファイルとして保存するだけであった。以下、受信したページ情報配布メッセージに含まれるページ情報を担当するノードＮｎを、「担当ノード」という。これに対し、第２実施形態においては、担当ノードは、ページ情報を、自分に近い範囲に存在する一又は複数のノードＮｎに配布する。これにより、ページ情報は、これを担当するノードＮｎと、このノードＮｎに近い範囲に存在する一又は複数のノードＮｎが保持することとなる。ページ情報を必要とするノード装置から送信されたページ情報要求メッセージは、担当ノードに向けて転送される。ページ情報要求メッセージを受信したノードＮｎは、要求されたページ情報を担当するノードＮｎではなかったとしても、要求されたページ情報を保持していれば、このページ情報を要求元に送信することができる。よって、ページ情報の送信の負荷が分散され、担当ノードの負荷が低減される。
【０２２２】
ここで、担当ノードに近い範囲に存在するノードＮｎとは、例えば、担当ノードとノードＩＤの値の差が所定範囲内であるノードＮｎであったり、担当ノードとノードＩＤの上位所定数の桁の値が等しいノードＮｎであったりする。
【０２２３】
また、ページ情報の配布は、例えば、オーバーレイマルチキャストによって行われても良い。このオーバーレイマルチキャストとしては、例えば、特開２００７−０５３６６２号公報にて開示されたＤＨＴマルチキャストを適用することができる。この公報に開示されている方法では、ルーティングテーブルにノード情報が登録されているノードＮｎに情報が転送される。また、転送先のノードＮｎの範囲を制限する方法として、ターゲットノードＩＤとＩＤマスクとが用いられる。本実施形態において、担当ノードがページ情報を配布する場合には、ターゲットノードＩＤに担当ノード自身のノードＩＤを設定し、ＩＤマスクに１以上の値を設定する。これにより、ページ情報の配布先を担当ノードに近い範囲に存在するノードＮｎに限定することができる。
【０２２４】
なお、コンテンツ分散保存システムＳ全体の構成及び動作概要、センターサーバＳＡの構成、及びノードＮｎの構成については、第１実施形態の場合と同様であるので、説明は省略する。また、センターサーバＳＡの動作についても、第１実施形態の場合と同様であるので、説明は省略する。更に、ノードＮｎの動作についても、以下に説明する処理を除いて第１実施形態の場合と同様であるので、説明は省略する。
【０２２５】
図１８は、本実施形態に係るノードＮｎにおける制御部２１の処理例を示すフローチャートである。なお、図１８において、図１４と同様の要素については同様の符号を付してある。図１８に示す処理は、図１４に示す処理と、ページ情報配布メッセージを受信した場合における処理のみが異なる。従って、その他の処理についての説明は省略する。
【０２２６】
ステップＳ５１４において、制御部２１は、ページ情報配布メッセージを受信した場合には（ステップＳ５１４：ＹＥＳ）、このページ情報配布メッセージに含まれる情報をページ情報としてファイルに保存する（ステップＳ５１５）。
【０２２７】
次いで、制御部２１は、担当範囲判断手段として、受信したページ情報配布メッセージに含まれるページ情報が制御部２１自身のノードＮｎの担当範囲に含まれるか否かを判定する（ステップＳ５１９）。この判定は、例えば、ページ情報に設定されているインデックスと、制御部２１自身のノードＮｎのノードＩＤとに基づいて行われる。例えば、ノードＩＤが、ページ情報に設定されている複数のインデックスの最小値から最大値の範囲内にある場合や、インデックスの値と一致する場合に、担当範囲に含まれると判断される。
【０２２８】
制御部２１は、受信したページ情報が制御部２１自身のノードＮｎの担当範囲に含まれる場合には（ステップＳ５１９：ＹＥＳ）、制御部２１自身のノードＮｎに近い範囲に存在するノードＮｎに、保存したページ情報を含むページ情報メッセージを送信する（ステップＳ５２０）。具体的に、制御部２１は、送信先決定手段として、制御部２１自身のノードＮｎに近い範囲に存在するノードＮｎをルーティングテーブルから選択する。そして、制御部２１は、ページ情報転送手段として、ページ情報メッセージを、選択したノードＮｎに向けてオーバーレイマルチキャストで配信する。制御部２１は、この処理を終えると、ステップＳ５０２に移行する。
【０２２９】
ステップＳ５１９において、制御部２１は、受信したページ情報が制御部２１自身のノードＮｎの担当範囲に含まれていない場合には（ステップＳ５１９：ＮＯ）、受信したページ情報配布メッセージに含まれるページ情報を担当するのに制御部２１自身のノードＮｎよりふさわしいノードＮｎが存在するか否かを判定する（ステップＳ５１６）。このとき、制御部２１は、ふさわしいノードＮｎが存在する場合には（ステップＳ５１６：ＹＥＳ）、受信したページ情報配布メッセージに含まれるページ情報を担当するのに最もふさわしいノードＮｎに、ページ情報配布メッセージを転送する（ステップＳ５１７）。制御部２１は、ステップＳ５１７の処理を終えたとき、又は、ステップＳ５１６において、受信したページ情報配布メッセージに含まれるページ情報を担当するのに制御部２１自身のノードＮｎよりふさわしいノードＮｎが存在しない場合には、ステップＳ５０２に移行する。
【０２３０】
以上説明したように、本実施形態によれば、ノードＮｎの制御部２１が、受信したページ情報配布メッセージに含まれるページ情報が制御部２１自身のノードＮｎの担当範囲に含まれるか否かを、記憶部２２に記憶されている制御部２１自身のノードＮｎのノードＩＤに基づいて判断する。また、制御部２１が、ルーティングテーブルに登録されているノードＩＤと、受信したページ情報配布メッセージに含まれるページ情報に含まれるインデックスとに基づいて、ページ情報配布メッセージに含まれるページ情報の送信先となるノードＮｎを決定する。そして、制御部２１が、決定したノードＮｎに、ページ情報メッセージをオーバーレイマルチキャストで送信する。
【０２３１】
従って、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができるカタログ情報を各ノードＮｎへ配布することができる。
【０２３２】
なお、上記各実施形態においては、センターサーバＳＡは、ページ情報を作成すると、このページ情報を担当すると思われるノードＮｎに向けてページ情報配布メッセージを送信していたが、配信先はこれだけに限られるものではない。例えば、ルートページ情報からの距離が所定の長さ以下のページ情報については、全ノードＮｎに配信されるようにしても良い。ここで、ルートページ情報からの距離とは、木構造において、根の位置から注目する節点に辿るまでのリンク数に相当する長さである。ページ情報は、ルートページ情報からの距離が短いページ情報であるほど、レコードを検索する際に参照される頻度が高くなる。従って、参照される頻度が相対的に高いページ情報については、最初から全ノードＮｎが保持するようにした方が、効率が良い場合がある。また、全ノードＮｎへ配信する場合、オーバーレイマルチキャストが用いられても良い。
【０２３３】
また、上記各実施形態においては、ファイルキャッシュ容量に応じて担当範囲が最終的に決まるようになっていたが、ファイルキャッシュ容量を考慮しなくても良い。この場合は、例えば、インデックスの上位所定数の桁の値が、ノードＩＤの上位所定数の桁の値と一致するページ情報を担当範囲としても良い。
【０２３４】
また、上記各実施形態においては、ノードＮｎがレコードを検索する際、ノードＮｎ自身が保持していないページ情報を、コンテンツサーバＳＡ又は他のノードＮｎから取得し、取得したページ情報を参照して、自らが検索を行うようにしていた。しかし例えば、ノードＮｎは、ノードＩＤから必要なページ情報を保持していると思われる他のノードＮｎにレコードの検索をリクエストしても良い。この場合は、リクエスト先のノードＮｎが、保持しているページ情報を検索し、検索結果としてのレコードをリクエスト元のノードＮｎに送信する。また、リクエスト先のノードＮｎは、必要なページ情報を保持していない場合には、検索のリクエストを更に他のノードＮｎに転送する。この転送は、ページ情報要求メッセージの転送と同様である。
【０２３５】
また、上記各実施形態においては、本発明に係る管理装置を、ピアツーピアシステムにおけるサーバ装置に適用していたが、例えば、クライアント−サーバシステムにおけるサーバ装置に適用しても良い。
【０２３６】
また、本発明は、コンテンツカタログ情報の検索に限定されるものではない。汎用的なデータベースのレコードとインデックスとしても適用可能である。
【符号の説明】
【０２３７】
３  ＩＸ
４ａ、４ｂ  ＩＳＰ
５ａ、５ｂ  ＤＳＬ回線業者の装置
６  ＦＴＴＨ回線業者の装置
７  通信回線
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  通信部
１４  表示部
１５  入力部
１６  バス
２１  制御部
２２  記憶部
２３  バッファメモリ
２４  デコーダ部
２５  映像処理部
２６  表示部
２７  音声処理部
２８  スピーカ
２９  通信部
３０  入力部
３１  バス
Ｎｎ  ノード
ＳＡ  センターサーバ
Ｓ  コンテンツ分散保存システム
【図１】
2010262457.tif 000003
【図２】
2010262457.tif 000004
【図３】
2010262457.tif 000005
【図４】
2010262457.tif 000006
【図５】
2010262457.tif 000007
【図６】
2010262457.tif 000008
【図７】
2010262457.tif 000009
【図８】
2010262457.tif 000010
【図９】
2010262457.tif 000011
【図１０】
2010262457.tif 000012
【図１１】
2010262457.tif 000013
【図１２】
2010262457.tif 000014
【図１３】
2010262457.tif 000015
【図１４】
2010262457.tif 000016
【図１５】
2010262457.tif 000017
【図１６】
2010262457.tif 000018
【図１７】
2010262457.tif 000019
【図１８】
2010262457.tif 000020
【手続補正書】
【提出日】平成22年4月12日(2010.4.12)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2010262457.tif 000021