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