(57)【要約】【課題】コンテンツデータの属性情報等のレコードの改竄を確実に防止することができ、且つ、コンテンツカタログ情報等の管理情報の探索効率を上げ、当該管理情報を各ノード装置に分散して保存させる。【解決手段】ルートリンク情報を、管理装置又は他のノード装置から取得し、所定のルールに従ってノード装置毎に定められる複数のページ情報の担当範囲を決定し、ルートリンク情報が示す根のページ情報の子の位置の子ページ情報が担当範囲内のページ情報であるか否かを判断し、子ページ情報が担当範囲内のページ情報であると判断された場合に、子ページ情報と、当該子ページ情報から葉ページ情報へかけて関連付けられたページ情報を担当範囲ページ情報として、管理装置又は他のノード装置から取得し、担当範囲ページ情報を、所定の記憶領域に記憶する。【選択図】図３
2010262456.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）等を適用可能である。
【０１２１】
記憶部２２には、ＤＨＴを用いたルーティングテーブル、インデックス、並びに、コンテンツ分散保存システムＳに参加する際のアクセス先となるコンタクトノードのＩＰアドレス及びポート番号、及びセンターサーバＳＡのＩＰアドレス及びポート番号等が記憶されている。また、記憶部２２には、他のノードＮｎから取得したページ情報や、センターサーバＳＡから配信されてきたページ情報が、ファイルとして記憶される。記憶部２２は、所定の記憶領域の一例である。
【０１２２】
制御部２１は、ＣＰＵが記憶部２２等に記憶されたプログラム（本発明のノードプログラムを含む）を読み出して実行することにより、ルートリンク情報取得手段、担当範囲決定手段、担当範囲判断手段、担当範囲ページ情報取得手段、担当範囲ページ情報記憶手段、記憶容量決定手段及び記憶容量判断手段として機能する。
【０１２３】
また、制御部２１は、コンテンツのレコードの検索を行う。この検索方法は、基本的にセンターサーバＳＡにおけるレコードの検索方法と同じである。ただし、必要なページ情報が保持されていない場合、制御部２１は、センターサーバＳＡ又は他のノードＮｎからページ情報を取得する。そして、制御部２１は、検索されたレコードの内容に基づいて、必要な処理を行う。例えば、制御部２１は、レコードの情報を表示部２６に表示させたり、コンテンツが公開されているか否かを判断したり、レコードに含まれているコンテンツＩＤに基づいて、コンテンツ保持ノードからコンテンツを取得したりする。
【０１２４】
なお、ノードプログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしても良いし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されてこの記録媒体のドライブを介して読み込まれるようにしても良い。
【０１２５】
［６．コンテンツ分散保存システムＳの動作］
次に、図９乃至図１５を参照して、本実施形態に係るコンテンツ分散保存システムＳの動作について説明する。
【０１２６】
以下においては、カタログ情報が一般的なｎ分探索木の構造を少なくとも有するものとして説明する。木の種類や構造等に特有の処理に関する説明は省略する。また、ページ情報に必須ではないセルフリンク情報に関する処理の説明は省略する。
【０１２７】
［６．１  センターサーバＳＡの動作］
図９は、本実施形態に係るセンターサーバＳＡにおける制御部１１の処理例を示すフローチャートである。
【０１２８】
図９に示す処理は、例えば、データベース管理プログラムが起動されたときに開始される。先ず、制御部１１は、ステップＳ１〜Ｓ５の初期化処理を実行する。具体的に、制御部１１は、ルートリンク情報を保存したファイルが記憶部１２に記憶されているか否かを判定する（ステップＳ１）。データベース管理プログラムの起動が初めてである場合には、ルートリンク情報は未だ作成されていない。その一方で、データベース管理プログラムの起動が初めてではない場合には、ルートリンク情報は既に作成されてファイルに保存されている。そこで、制御部１１は、ルートリンク情報を保存したファイルが記憶部１２に記憶されていない場合には（ステップＳ１：ＮＯ）、ルートリンク情報登録処理を実行する（ステップＳ２）。初期化処理から実行されたルートリンク情報登録処理では、ルートリンク情報とルートページ情報とが新規に作成される。なお、ルートリンク情報登録処理の詳細な説明は省略する。
【０１２９】
ステップＳ１において、制御部１１は、ルートリンク情報を保存したファイルが記憶部１２に記憶されている場合には（ステップＳ１：ＹＥＳ）、このファイルからルートリンク情報を読み出してＲＡＭに格納する（ステップＳ３）。
【０１３０】
次いで、制御部１１は、このファイルに保存されている電子署名を用いてルートリンク情報の改竄をチェックする（ステップＳ４）。例えば、制御部１１は、ルートリンク情報、より具体的には、ルートページ情報のシリアル番号及びメッセージダイジェストから、メッセージダイジェストを計算する。このメッセージダイジェストの計算には、電子署名に設定されているハッシュ関数が用いられる。また、制御部１１は、電子署名の証明書情報に設定されている公開鍵を用いて電子署名の署名値を復号する。そして、制御部１１は、作成されたメッセージダイジェストと復号されたデータとが一致するか否かを判定する。ここで、一致する場合にはルートリンク情報は改竄されていないとされ、一致しない場合には改竄されている。
【０１３１】
次いで、制御部１１は、ルートリンク情報は改竄されているか否かを判定する（ステップＳ５）。このとき、制御部１１は、ルートリンク情報は改竄されている場合には（ステップＳ５：ＹＥＳ）、エラー終了とさせる。この場合は、例えば、表示部１４に、ルートリンク情報が改竄されている旨のエラー表示がなされ、データベース管理プログラムの実行が中断される。
【０１３２】
ステップＳ５において、制御部１１は、ルートリンク情報は改竄されていない場合（ステップＳ５：ＮＯ）、又は、ステップＳ２のルートリンク情報登録処理を終えた場合には、メインの処理を開始させる。
【０１３３】
先ず、制御部１１は、オペレータからの終了指示があったか否かを、入力部１５からの入力に基づいて判定する（ステップＳ６）。
【０１３４】
ステップＳ６において、制御部１１は、終了指示がない場合には（ステップＳ６：ＮＯ）、オペレータからのレコードの検索要求があったか否かを、入力部１５からの入力に基づいて判定する（ステップＳ７）。このとき、制御部１１は、レコードの検索要求があった場合には（ステップＳ７：ＹＥＳ）、レコード検索処理を実行する（ステップＳ８）。この場合、制御部１１は、オペレータ操作によって入力部１５から入力された検索キーを指定する。このレコード検索処理では、指定された検索キーに対応するレコードがカタログ情報から検索される。なお、レコード検索処理の詳細については後述する。
【０１３５】
ステップＳ７において、制御部１１は、レコードの検索要求がなかった場合には（ステップＳ７：ＮＯ）、ルートリンク情報要求メッセージを受信したか否かを判定する（ステップＳ９）。このとき、制御部１１は、ルートリンク情報要求メッセージを受信した場合には（ステップＳ９：ＹＥＳ）。ルートリンク情報をルートリンク情報メッセージに含ませて、要求元のノードＮｎに送信する（ステップＳ１０）。
【０１３６】
ステップＳ９において、制御部１１は、ルートリンク情報要求メッセージを受信していない場合には（ステップＳ９：ＮＯ）、ページ情報要求メッセージを受信したか否かを判定する（ステップＳ１１）。このとき、制御部１１は、ページ情報要求メッセージを受信した場合には（ステップＳ１１：ＹＥＳ）、ページ情報取得処理を実行する（ステップＳ１２）。このとき、制御部１１は、ページ情報要求メッセージに含まれているリンク情報を指定する。このリンク情報は、要求されたページ情報を指している。ページ情報取得処理では、指定されたリンク情報が指すページ情報がファイルから取得され、ＲＡＭに格納される。なお、ページ情報取得処理の詳細な説明は省略する。制御部１１は、要求されたページ情報を取得すると、このページ情報をページ情報メッセージに含ませて、要求元のノードＮｎに送信する（ステップＳ１３）。
【０１３７】
制御部１１は、ステップＳ８、Ｓ１０又はＳ１３の処理を終えたとき、或いは、ステップＳ１１において、ページ情報要求メッセージを受信していない場合には（ステップＳ１１：ＮＯ）、ステップＳ６に移行する。そして、制御部１１は、ステップＳ６においてオペレータからの終了指示があった場合には（ステップＳ６：ＹＥＳ）、本処理を終了させる。
【０１３８】
図１０は、本実施形態に係るセンターサーバＳＡにおける制御部１１のページ情報登録処理における処理例を示すフローチャートである。
【０１３９】
ページ情報登録処理は、例えば、ルートリンク情報登録処理において空のルートページ情報が作成された場合、レコードの追加に伴って新たなページ情報が作成された場合、及び、レコードの削除に伴って新たなページ情報が作成された場合に実行される。ページ情報登録処理が実行される際、新たに作成されたページ情報が指定される。この新たに作成されたページ情報は、例えばＲＡＭに格納されている。
【０１４０】
先ず、制御部１１は、登録対象として指定されたページ情報に、今までに割り当てられていない最新のページ番号を割り当てる（ステップＳ１５１）。
【０１４１】
次いで、制御部１１は、登録対象のページ情報を頂点とするサブツリーに含まれるページ情報を全て保存するのに必要なファイルサイズを計算する（ステップＳ１５２）。例えば、制御部１１は、登録対象のページ情報に格納されているリンク情報から、登録対象のページ情報の子ページ情報を特定する。子ページ情報を特定すると、制御部１１は、特定された各子ページ情報に設定されている合計ファイルサイズを取得する。そして、制御部１１は、取得した合計ファイルサイズを合算する。最後に、制御部１１は、合算したファイルサイズに、登録対象のページ情報のファイルサイズを加算する。
【０１４２】
次いで、制御部１１は、計算されたファイルサイズを、登録対象のページ情報に、合計ファイルサイズとして設定する（ステップＳ１５３）。
【０１４３】
次いで、制御部１１は、登録対象のページ情報のメッセージダイジェストを計算する（ステップＳ１５４）。
【０１４４】
次いで、制御部１１は、登録対象のページ情報をファイルに保存する（ステップＳ１５５）。このとき、ページ情報がどこに保存されているかが特定することができるよう、例えば、ファイル名にページ番号が付加される。制御部１１は、この処理を終えると、ページ情報登録処理を終了させ、割り当てたページ番号と計算したメッセージダイジェストとからなるリンク情報を、呼び出し元の処理に返却する。
【０１４５】
図１１は、本実施形態に係るセンターサーバＳＡにおける制御部１１のレコード検索処理における処理例を示すフローチャートである。
【０１４６】
先ず、制御部１１は、現在のルートリンク情報をＲＡＭから取得する（ステップＳ３５１）。次いで、制御部１１は、ページ情報取得処理を実行する（ステップＳ３５２）。次いで、制御部１１は、取得されたページ情報が、指定された検索キーに対応するレコードの担当ページ情報であるか否かを判定する（ステップＳ３５３）。制御部１１は、取得されたページ情報が削除対象レコードの担当ページ情報ではない場合には（ステップＳ３５３：ＮＯ）、現在参照しているページ情報から、次のページ情報へのリンク情報を取得する（ステップＳ３５４）。次いで、制御部１１は、次のページ情報へのリンク情報が存在するか否かを判定する（ステップＳ３５５）。このとき、制御部１１は、次のページ情報へのリンク情報が存在しない場合には（ステップＳ３５５：ＮＯ）、指定された検索キーに対応するレコードが発見されなかった旨をオペレータに提示する（ステップＳ３５６）。例えば、発見されなかった旨のメッセージが表示部１４に表示される。
【０１４７】
ステップＳ３５３において、制御部１１は、取得されたページ情報が検索キーに対応するレコードの担当ページ情報である場合には（ステップＳ３５３：ＹＥＳ）、担当ページ情報は検索キーに対応するレコードを格納しているか否かを判定する（ステップＳ３５７）。このとき、制御部１１は、担当ページ情報は検索キーに対応するレコードを格納していない場合には（ステップＳ３５７：ＮＯ）、指定された検索キーに対応するレコードが発見されなかった旨をオペレータに提示する（ステップＳ３５６）。一方、制御部１１は、担当ページ情報は検索キーに対応するレコードを格納している場合には、発見したレコードの情報をオペレータに提示する。例えば、レコードの内容が表示部１４に表示される。制御部１１は、ステップＳ３５６又はステップＳ３５８の処理を終えると、レコード検索処理を終了させる。
【０１４８】
［６．２  ノードＮｎの動作］
図１２は、本実施形態に係るノードＮｎにおける制御部２１の処理例を示すフローチャートである。
【０１４９】
図１２に示す処理は、例えば、ノードＮｎが、コンテンツ分散保存システムＳに参加したときに開始される。先ず、制御部２１は、初期化処理を実行する（ステップＳ５０１）。この初期化処理では、ルートリンク情報が取得される。なお、初期化処理の詳細は後述する。
【０１５０】
次いで、制御部２１は、ユーザからの終了指示があったか否かを、入力部３０からの入力に基づいて判定する（ステップＳ５０２）。
【０１５１】
ステップＳ２において、制御部２１は、終了指示がない場合には（ステップＳ５０２：ＮＯ）、ユーザからのレコードの検索要求があったか否かを、入力部３０からの入力に基づいて判定する（ステップＳ５０３）。このとき、制御部２１は、レコードの検索要求があった場合には（ステップＳ５０３：ＹＥＳ）、レコード検索処理を実行する（ステップＳ５０４）。このレコード検索処理では、ユーザにより指定された検索キーに対応するレコードがカタログ情報から検索される。なお、レコード検索処理の内容は、センターサーバＳＡにおけるレコード検索処理の内容と同様であるので、詳細な説明は省略する。ただし、レコード検索処理から実行されるページ情報取得処理の内容は、センターサーバＳＡにおけるページ情報取得処理とは異なる。
【０１５２】
ステップＳ５０３において、制御部２１は、レコードの検索要求がなかった場合には（ステップＳ５０３：ＮＯ）、ルートリンク情報要求メッセージを受信したか否かを判定する（ステップＳ５０５）。このとき、制御部２１は、ルートリンク情報要求メッセージを受信した場合には（ステップＳ５０５：ＹＥＳ）、ＲＡＭに格納されているルートリンク情報をルートリンク情報メッセージに含ませて、要求元のノードＮｎに送信する（ステップＳ５０６）。
【０１５３】
ステップＳ５０５において、制御部２１は、ルートリンク情報要求メッセージを受信していない場合には（ステップＳ５０５：ＮＯ）、ページ情報要求メッセージを受信したか否かを判定する（ステップＳ５０７）。このとき、制御部２１は、ページ情報要求メッセージを受信した場合には、ページ情報取得処理を実行する（ステップＳ５０８）。このとき、制御部２１は、ページ情報要求メッセージに含まれているリンク情報及び検索キーを指定する。ページ情報取得処理では、指定されたリンク情報が指すページ情報がファイルから取得され、ＲＡＭに格納される。また、指定されたリンク情報が指すページ情報を保存するファイルがない場合には、センターサーバＳＡ又は他のノードＮｎからこのページ情報が取得される。なお、ページ情報取得処理の詳細については後述する。制御部２１は、要求されたページ情報を取得すると、このページ情報をページ情報メッセージに含ませて、要求元のノードＮｎに送信する（ステップＳ５０９）。
【０１５４】
ステップＳ５０７において、制御部２１は、ページ情報要求メッセージを受信していない場合には（ステップＳ５０７：ＮＯ）、ルートリンク情報取得手段として、ルートリンク情報メッセージを受信したか否かを判定する（ステップＳ５１０）。このとき、制御部２１は、ルートリンク情報メッセージを受信した場合には（ステップＳ５１０：ＹＥＳ）、このルートリンク情報メッセージに含まれる情報をルートリンク情報としてＲＡＭに設定する（ステップＳ５１１）。
【０１５５】
ステップＳ５１０において、制御部２１は、ルートリンク情報メッセージを受信していない場合には（ステップＳ５１０：ＮＯ）、ページ情報メッセージを受信したか否かを判定する（ステップＳ５１２）。このとき、制御部２１は、ページ情報メッセージを受信した場合には（ステップＳ５１２：ＹＥＳ）、このページ情報メッセージに含まれる情報をページ情報としてファイルに保存する（ステップＳ５１３）。
【０１５６】
ステップＳ５１２において、制御部２１は、ページ情報メッセージを受信していない場合には（ステップＳ５１２：ＮＯ）、担当ページ情報取得処理を実行する（ステップＳ５１４）。担当ページ情報取得処理では、ノードＮｎの担当範囲内にあるページ情報がサーバＳＡ又は他のノードＮｎから取得され、記憶部２２に記憶される。
【０１５７】
制御部２１は、ステップＳ５０４、Ｓ５０６、Ｓ５０９、Ｓ５１１、Ｓ５１３又はＳ５１４の処理を終えたときには、ステップＳ５０２に移行する。そして、制御部１１は、ステップＳ５０２においてユーザからの終了指示があった場合には（ステップＳ５０２：ＹＥＳ）、本処理を終了させる。
【０１５８】
図１３は、本実施形態に係るノードＮｎにおける制御部２１の初期化処理における処理例を示すフローチャートである。
【０１５９】
先ず、制御部２１は、コンテンツ分散保存システムＳに参加中の他のノードＮｎに、ルートリンク情報要求メッセージを送信する（ステップＳ５５１）。ルートリンク情報要求メッセージの送信先のノードＮｎとしては、例えば、ルーティングテーブルにノード情報が登録されているノードＮｎのうち任意のノードＮｎが選択される。
【０１６０】
次いで、制御部２１は、ルートリンク情報要求メッセージの送信に対応して、送信先のノードＮｎから送信されてきたルートリンク情報メッセージを受信する（ステップＳ５５２）。次いで、制御部２１は、受信されたルートリンク情報メッセージから、ルートリンク情報をＲＡＭ上に設定する（ステップＳ５５３）。次いで、制御部２１は、ルートリンク情報メッセージに添付されている電子署名でルートリンク情報の改竄をチェックする（ステップＳ５５４）。このチェック方法は、センターサーバＳＡの初期処理におけるルートリンク情報の改竄チェックと同様である。
【０１６１】
次いで、制御部２１は、ルートリンク情報は改竄されているか否かを判定する（ステップＳ５５５）。このとき、制御部２１は、ルートリンク情報は改竄されていない場合には（ステップＳ５５５：ＮＯ）、初期化処理を終了させる。
【０１６２】
一方、制御部２１は、ルートリンク情報は改竄されている場合には（ステップＳ５５５：ＹＥＳ）、センターサーバＳＡにルートリンク情報要求メッセージを送信する（ステップＳ５５６）。次いで、ステップＳ５５２に移行する。ここで、制御部２１は、再度、センターサーバＳＡからルートリンク情報メッセージを受信し、ルートリンク情報を設定し、改竄チェックを行う（ステップＳ５５２〜Ｓ５５４）。
【０１６３】
そして、ステップＳ５５５において、制御部２１は、センターサーバＳＡから受信したルートリンク情報が改竄されていない場合には（ステップＳ５５５：ＮＯ）、初期化処理を終了させる。
【０１６４】
図１４は、本実施形態に係るノードＮｎにおける制御部２１のページ情報取得処理における処理例を示すフローチャートである。
【０１６５】
先ず、制御部２１は、指定されたリンク情報が有効なページ情報を指しているか否かを判定する（ステップＳ６０１）。例えば、リンク情報のページ番号が無効な値に設定される場合、このリンク情報は有効なページ情報を指していない。例えば、ページ番号が１から始まるように定められている場合、ページ番号に１以上の値が設定されているリンク情報は有効であり、ページ番号に０が設定されているリンク情報は無効である。このとき、制御部２１は、指定されたリンク情報が有効なページ情報を指していない場合には（ステップＳ６０１：ＮＯ）、ページ情報取得処理を終了させる。この場合、ページ情報無しという情報が、呼び出し元の処理に返却される。
【０１６６】
一方、制御部２１は、指定されたリンク情報が有効なページ情報を指している場合には（ステップＳ６０１：ＮＯ）、このリンク情報に含まれるページ番号が指すファイルが記憶部２２に記憶されているか否かを判定する（ステップＳ６０２）。このとき、制御部２１は、指定されたリンク情報に含まれるページ番号が指すファイルが記憶されている場合には（ステップＳ６０２：ＹＥＳ）、このリンク情報に含まれるページ番号が指すファイルからページ情報を読み出してＲＡＭに格納する（ステップＳ６０３）。
【０１６７】
次いで、制御部２１は、指定されたリンク情報に含まれるメッセージダイジェストを用いて、読み出したページ情報の改竄をチェックする（ステップＳ６０４）。このチェック方法は、センターサーバＳＡのページ情報取得処理におけるページ情報の改竄チェックと同様である。
【０１６８】
次いで、制御部２１は、読み出したルートページ情報は改竄されているか否かを判定する（ステップＳ６０５）。このとき、制御部２１は、ページ情報は改竄されていない場合には（ステップＳ６０５：ＮＯ）、読み出したページ情報を呼び出し元の処理に返却し、ページ情報取得処理を終了させる。
【０１６９】
ステップＳ６０２において、制御部２１は、指定されたリンク情報に含まれるページ番号が指すファイルが記憶されていない場合には（ステップＳ６０２：ＮＯ）、リンク情報が指すページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎが存在するか否かを判定する（ステップＳ６０６）。リンク情報が指すページ情報を担当するのにふさわしいノードＮｎが存在するか否かは、ルーティングテーブルにノード情報が登録されているノードＮｎの範囲内で判断される。また、ページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎとは、例えば、ノードＩＤが、制御部２１自身のノードＮｎのノードＩＤよりも、指定された検索キーの上位桁の値と多く一致するノードＮｎである。
【０１７０】
制御部２１は、リンク情報が指すページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎが存在しない場合（ステップＳ６０６：ＮＯ）、又は、ステップＳ６０５において、ページ情報が改竄されている場合には（ステップＳ６０５：ＹＥＳ）、センターサーバＳＡにページ情報要求メッセージを送信する（ステップＳ６０７）。このとき、制御部２１は、指定されたリンク情報及び検索キーをページ情報要求メッセージに設定する。
【０１７１】
一方、制御部２１は、リンク情報が指すページ情報を担当するのに制御部２１自身のノードＮｎよりもふさわしいノードＮｎが存在する場合には、リンク情報が指すページ情報を担当するのに最もふさわしいノードＮｎにページ情報要求メッセージを送信する（ステップＳ６０８）。ページ情報を担当するのに最もふさわしいノードＮｎとは、例えば、ノードＩＤが、指定された検索キーの上位桁の値と最も多く一致するノードＮｎである。
【０１７２】
制御部２１は、ステップＳ６０７又はＳ６０８において、ページ情報要求メッセージを送信すると、このページ情報要求メッセージの送信に対応してセンターサーバＳＡ又は他のノードＮｎから送信されてきたページ情報メッセージを受信する（ステップＳ６０９）。次いで、制御部２１は、受信したページ情報メッセージに含まれる情報をページ情報としてファイルに保存する（ステップＳ６１０）。制御部２１は、この処理を終えると、ステップＳ６０３に移行する。ここで、制御部２１は、再度、ページ情報を読み出し、読み出したページ情報の改竄チェックを行う（ステップＳ６０３、Ｓ６０４）。そして、ステップＳ６０５において、制御部２１は、ページ情報は改竄されていない場合には（ステップＳ６０５：ＮＯ）、ページ情報取得処理を終了させる。
【０１７３】
図１５は、本実施形態に係るノードＮｎにおける制御部２１の担当ページ情報取得処理における処理例を示すフローチャートである。
【０１７４】
先ず、制御部２１は、現在のルートリンク情報をＲＡＭから取得する（ステップＳ６５１）。次いで、制御部２１は、ページ情報取得処理を実行する（ステップＳ６５２）。このとき、制御部２１は、担当範囲ページ情報取得手段として、取得したルートリンク情報を指定する。また、制御部２１は、検索キーとして、制御部２１自身のノードＮｎのノードＩＤを指定する。ページ情報取得処理において取得されたページ情報は、現在参照しているページ情報とされる。
【０１７５】
次いで、制御部２１は、記憶容量判断手段として、ページ情報の保存のためのファイルキャッシュ容量が、取得したページ情報に設定されている合計ファイルサイズ以上であるか否かを判定する（ステップＳ６５３）。なお、制御部２１は、記憶容量決定手段として、少なくともステップＳ６５３の判定よりも前に、ファイルキャッシュ容量を決定する。このファイルキャッシュ容量は、固定値であっても良いし、記憶部２２の容量に応じて決定されても良い。
【０１７６】
制御部２１は、ファイルキャッシュ容量が、取得したページ情報に設定されている合計ファイルサイズ未満である場合には（ステップＳ６５３：ＮＯ）、現在参照しているページ情報から、次のページ情報へのリンク情報を取得する（ステップＳ６５４）。ここで、次のページ情報とは、現在参照しているページ情報の子ページ情報のうち、担当範囲内にあるページ情報をいう。制御部２１は、先ず、担当範囲決定手段として、制御部２１自身のノードＮｎのノードＩＤに基づいて担当範囲を決定する。この担当範囲の決定は、カタログ情報の探索木の構造に対応した探索アルゴリズムに従って行われる。一例としては、現在参照しているページ情報がルートページ情報である場合には、インデックスの上位一桁の値がノードＩＤの上位一桁の値と一致するページ情報が担当範囲となる。また、現在参照しているページ情報がルートページ情報の子ページ情報である場合には、インデックスの上位二桁の値がノードＩＤの上位二桁の値と一致するページ情報が担当範囲となる。次いで、制御部２１は、担当範囲判断手段として、現在参照している子ページ情報が、決定した担当範囲内のページ情報であるか否かを判断する。例えば、制御部２１は、ルートページ情報の子ページ情報のうち、格納されているインデックスが、決定された担当範囲内のインデックスであるページ情報があるか否かを判断する。より具体的には、制御部２１は、現在参照しているページ情報の子ページ情報のうちどの子ページ情報が、決定した担当範囲内のページ情報であるか判断する。そして、制御部２１は、担当範囲内であると判断したページ情報を指すリンク情報を取得する。
【０１７７】
次いで、制御部２１は、次のページ情報へのリンク情報が存在するか否かを判定する（ステップＳ６５５）。つまり、制御部２１は、次のページ情報へのリンク情報を取得することができたか否かを判定する。このとき、制御部２１は、次のページ情報へのリンク情報が存在する場合には（ステップＳ６５５：ＹＥＳ）、ステップＳ６５２に移行する。このとき、制御部２１は、取得したリンク情報を指定し、且つ、制御部２１自身のノードＮｎのノードＩＤを検索キーとして指定して、ページ情報取得処理を実行する。
【０１７８】
ステップＳ６５３において、制御部２１は、ファイルキャッシュ容量が、取得したページ情報に設定されている合計ファイルサイズ以上である場合には（ステップＳ６５３：ＹＥＳ）、担当範囲ページ情報取得手段として、取得したページ情報を頂点とするサブツリーに含まれる全てのページ情報を取得する（ステップＳ６５６）。ただし、頂点とするページ情報は、既にステップＳ６５２のページ情報取得処理で取得されているので、ステップＳ６５６における取得対象からは除かれる。ステップＳ６５６の処理では、サブツリーに含まれる各ページ情報を取得するために、夫々ページ情報取得処理が実行される。つまり、取得対象のページ情報を保存するファイルが記憶部２２に記憶されていない場合に、この取得対象のページ情報が、センターサーバＳＡ又は他のノードＮｎから取得される。
【０１７９】
制御部２１は、ステップＳ６５６の処理を終えたとき、又は、ステップＳ６５５において次のページ情報へのリンク情報が存在しない場合には（ステップＳ６５５：ＮＯ）、担当ページ情報取得処理を終了させる。
【０１８０】
以上説明したように、本実施形態によれば、センターサーバＳＡの記憶部１２が、一又は複数のレコードが格納された葉ページ情報を記憶する。また、記憶部１２が、ルートページ情報の子ページ情報のメッセージダイジェストと、この子ページ情報のページ番号を含むリンク情報が格納されたルートページ情報を記憶する。また、記憶部１２が、ルートページ情報以外の節ページ情報の子ページ情報のメッセージダイジェストと、この子ページ情報のページ番号を含むリンク情報が格納された節ページ情報を記憶する。また、記憶部１２が、ルートページ情報のメッセージダイジェストと、ルートページ情報のページ番号と、ルートリンク情報の電子署名とが格納されたルートリンク情報を記憶する。一方、ノードＮｎの制御部２１が、サーバＳＡ又は他のノードＮｎからルートリンク情報を取得する。また制御部２１が、ページ情報の担当範囲を決定する。また、制御部２１が、取得したルートリンク情報が指すルートページ情報の子ページ情報が、決定した担当範囲内のページ情報であるか否かを判定する。また、制御部２１が、担当範囲内であると判断した子ページ情報を頂点とするサブツリーに含まれる全てのページ情報を、サーバＳＡ又は他のノードＮｎから取得する。そして、制御部２１が、取得したページ情報を記憶部１２に記憶させる。
【０１８１】
従って、木構造でレコードを管理することで、レコードの改竄チェックもでき、レコードの検索処理の時間を減らすことができる。更に、各ノードＮｎは、自己の担当範囲のページ情報を取得して記憶すればよいので、各ノードＮｎの記憶負担を低減しつつ、各ノードＮｎに記憶されるページ情報を効率良く分散させることができる。
【０１８２】
また、ノードＮｎの制御部２１が、ファイルキャッシュ容量を決定する。また、制御部２１が、担当範囲内であると判断した子ページ情報を取得する。また、制御部２１が、担当範囲内であると判断した子ページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが、ファイルキャッシュ容量以下であるか否かを判定する。サブツリーに含まれる全てのページ情報の合計ファイルサイズが、ファイルキャッシュ容量以下である場合、制御部２１が、サブツリーに含まれる全てのページ情報をサーバＳＡ又は他のノードＮｎから取得する。
【０１８３】
従って、ファイルキャッシュ容量に空きがある場合、各ノードＮｎは可能な限りページ情報を保持しておくことができる。従って、ページ情報を取得するための通信負荷を低減することができる。
【０１８４】
また、ノードＮｎの制御部２１が、担当範囲内であると判断した子ページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが、ファイルキャッシュ容量以下でない場合には、担当範囲内であると判断した子ページ情報の次の子ページ情報が担当範囲内であるか否かを判定する。また、制御部２１が、担当範囲内であると判断した次の子ページ情報を取得する。また、制御部２１が、担当範囲内であると判断した次の子ページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが、ファイルキャッシュ容量以下であるか否かを判定する。サブツリーに含まれる全てのページ情報の合計ファイルサイズが、ファイルキャッシュ容量以下である場合、制御部２１が、サブツリーに含まれる全てのページ情報をサーバＳＡ又は他のノードＮｎから取得する。
【０１８５】
従って、各ノードＮｎは、自己のファイルキャッシュ容量に応じたデータ量のページ情報を取得して記憶することができる。
【０１８６】
また、各ページ情報には、このページ情報を頂点とするサブツリーに含まれる全てのページ情報の合計ファイルサイズが設定されている。
【０１８７】
従って、ノードＮｎは、合計ファイルサイズがファイルキャッシュ容量以下であるか否かの判断に当たって、ページ情報から合計ファイルサイズを取得すればよいので、この判断を迅速に行うことができる。
【０１８８】
また、ノードＮｎの制御部２１が、ノードＮｎに割り当てられたノードＩＤに基づいて、ルートページ情報の子ページ情報に含まれるインデックスが、担当範囲内のインデックスであるか判断する。そして、制御部２１が、担当範囲内のインデックスと判断した子ページ情報を、サーバＳＡ又は他のノードＮｎから取得する。
【０１８９】
従って、ノードＩＤに基づいて、担当範囲が決まるので、各ノードＩＤごとに自動で担当範囲を決定することができ、各ノードＮｎに記憶される担当範囲のページ情報を効率良く分散させることができる。
【０１９０】
なお、上記実施形態においては、ファイルキャッシュ容量に応じて担当範囲が最終的に決まるようになっていたが、ファイルキャッシュ容量を考慮しなくても良い。この場合は、例えば、インデックスの上位所定数の桁の値が、ノードＩＤの上位所定数の桁の値と一致するページ情報を担当範囲としても良い。
【０１９１】
また、上記実施形態においては、ノードＮｎがレコードを検索する際、ノードＮｎ自身が保持していないページ情報を、コンテンツサーバＳＡ又は他のノードＮｎから取得し、取得したページ情報を参照して、自らが検索を行うようにしていた。しかし例えば、ノードＮｎは、ノードＩＤから必要なページ情報を保持していると思われる他のノードＮｎにレコードの検索をリクエストしても良い。この場合は、リクエスト先のノードＮｎが、保持しているページ情報を検索し、検索結果としてのレコードをリクエスト元のノードＮｎに送信する。また、リクエスト先のノードＮｎは、必要なページ情報ほほ持していない場合には、検索のリクエストを更に他のノードＮｎに転送する。この転送は、ページ情報要求メッセージの転送と同様である。
【０１９２】
また、上記実施形態においては、本発明に係る管理装置を、ピアツーピアシステムにおけるサーバ装置に適用していたが、例えば、クライアント−サーバシステムにおけるサーバ装置に適用しても良い。
【０１９３】
また、本発明は、コンテンツカタログ情報の検索に限定されるものではない。汎用的なデータベースのレコードとインデックスとしても適用可能である。
【符号の説明】
【０１９４】
３  ＩＸ
４ａ、４ｂ  ＩＳＰ
５ａ、５ｂ  ＤＳＬ回線業者の装置
６  ＦＴＴＨ回線業者の装置
７  通信回線
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  通信部
１４  表示部
１５  入力部
１６  バス
２１  制御部
２２  記憶部
２３  バッファメモリ
２４  デコーダ部
２５  映像処理部
２６  表示部
２７  音声処理部
２８  スピーカ
２９  通信部
３０  入力部
３１  バス
Ｎｎ  ノード
ＳＡ  センターサーバ
Ｓ  コンテンツ分散保存システム
【図１】
2010262456.tif 000003
【図２】
2010262456.tif 000004
【図３】
2010262456.tif 000005
【図４】
2010262456.tif 000006
【図５】
2010262456.tif 000007
【図６】
2010262456.tif 000008
【図７】
2010262456.tif 000009
【図８】
2010262456.tif 000010
【図９】
2010262456.tif 000011
【図１０】
2010262456.tif 000012
【図１１】
2010262456.tif 000013
【図１２】
2010262456.tif 000014
【図１３】
2010262456.tif 000015
【図１４】
2010262456.tif 000016
【図１５】
2010262456.tif 000017