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