説明

情報生成装置、情報生成方法及び情報生成プログラム

【課題】カタログ情報の配信によるネットワークの通信負荷を軽減する。
【解決手段】複数の属性情報を所定の規則により関連付ける関連情報を含むカタログ情報であって、複数のノード装置に分散して保存されている第1のカタログ情報を記憶する第1記憶手段と、複数のノード装置に分散して保存されているカタログ情報に含まれる属性情報の内容が更新された際、更新された属性情報を取得する第1取得手段と、第1取得手段により取得された属性情報と、第1記憶手段に記憶された第1のカタログ情報とに基づいて、第1のカタログ情報の更新に用いられる関連情報を生成し、生成した関連情報と更新された属性情報とを含む第2のカタログ情報を生成する生成手段と、生成手段により生成された第2のカタログ情報を記憶する第2記憶手段と、所定の期間ごとに、第2記憶手段に記憶された第2のカタログ情報に基づいて、第1記憶手段に記憶された第1のカタログ情報を更新する更新手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツの属性情報を検索するためのデータ構造及び検索技術に関する。
【背景技術】
【0002】
従来、ネットワークを介して互いに通信可能な複数のノード装置に複数のコンテンツが分散して保存されたコンテンツ分散保存システムが知られている。この種のコンテンツ分散保存システムにおいて、各ノード装置は、コンテンツの属性情報が記述されたカタログ情報を用いている。各ノード装置は、所望のコンテンツを検索し、他のノード装置またはコンテンツ管理サーバからコンテンツを取得可能になっている。この属性情報には、コンテンツ名、公開開始時期、公開終了時期、及びコンテンツのキーワード等の情報が含まれている。カタログ情報は、コンテンツ管理サーバにより生成され、各ノード装置に配信される。また、コンテンツ分散保存システムにおいて、コンテンツの属性情報が更新されたり、新たなコンテンツが追加された場合には、カタログ情報はコンテンツ管理サーバにより更新される。そしてカタログ情報は、各ノード装置に配信される。
【0003】
ところで、コンテンツ分散保存システムにおいて利用可能なコンテンツの数が増大すると、カタログ情報のデータ量も増大する。このため、1台のノード装置にカタログ情報を記憶しきれないという問題があった。この問題を解決するために、特許文献1には、複数に分割されたカタログ情報を複数のノード装置が分散して記憶する方法が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−280303号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、コンテンツ管理サーバがカタログ情報を更新するときには、更新されたコンテンツの属性情報を、カタログ情報に反映する処理が必要であった。また、カタログ情報が、複数の属性情報と、これらの属性情報を関連付ける関連情報とで構成されているとする。この場合、属性情報が更新されると、関連情報の更新も必要となる。そして、カタログ情報を複数のノード装置に分散して保存させるためには、コンテンツ管理サーバが、更新された属性情報及び関連情報を配信する必要がある。そのため、属性情報の更新が頻繁に発生すると、ネットワークの通信負荷が増大する。
【0006】
本発明は、以上の問題に鑑みてなされたものである。本発明は、カタログ情報を複数のノード装置に分散して保存させるシステムにおいて、カタログ情報の配信によるネットワークの通信負荷を軽減することができる情報生成装置、情報生成方法及び情報生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、請求項1に記載の発明は、ネットワークに接続する複数のノード装置に複数のコンテンツが分散保存され、コンテンツの属性情報を複数含むカタログ情報が前記複数のノード装置に分散して保存される情報通信システムにおいて、前記カタログ情報を生成する情報生成装置であって、複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記複数のノード装置に分散して保存されている第1の前記カタログ情報を記憶する第1記憶手段と、前記複数のノード装置に分散して保存されている前記カタログ情報に含まれる前記属性情報の内容が更新された際、更新された前記属性情報を取得する第1取得手段と、前記第1取得手段により取得された前記属性情報と、前記第1記憶手段に記憶された前記第1のカタログ情報とに基づいて、前記第1のカタログ情報の更新に用いられる前記関連情報を生成し、生成した前記関連情報と更新された前記属性情報とを含む第2の前記カタログ情報を生成する生成手段と、前記生成手段により生成された前記第2のカタログ情報を記憶する第2記憶手段と、所定の期間ごとに、前記第2記憶手段に記憶された前記第2のカタログ情報に基づいて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新する更新手段と、を備えることを特徴とする。
【0008】
この発明によれば、ノード装置に保存されている第1のカタログ情報から内容が更新された属性情報と、属性情報の更新によって更新された関連情報とは、第2のカタログ情報として、第1のカタログ情報とは区別して保存される。そして、所定の期間ごとに、第1のカタログ情報が更新されて、第2のカタログ情報が第1のカタログ情報に反映される。従って、情報処理装置は、更新された属性情報及び関連情報を頻繁に配信する必要がない。そのため、ネットワークの通信負荷を軽減することができる。
【0009】
請求項2に記載の発明は、前記第1記憶手段は、前記属性情報の改竄をチェックするためのチェック情報を含む前記関連情報を含む前記第1のカタログ情報を記憶し、前記生成手段は、前記第1取得手段により取得された前記属性情報の改竄をチェックするための前記チェック情報を含む前記関連情報を生成することを特徴とする。
【0010】
カタログ情報の改竄を防止するためのチェック情報を含むカタログ情報においては、属性情報が更新されると、チェック情報を更新する必要がある。この発明によれば、所定の期間ごとに、更新されたチェック情報が第1のカタログ情報に反映される。従って、情報処理装置は、更新されたチェック情報を頻繁に配信する必要がない。そのため、ネットワークの通信負荷を軽減することができる。
【0011】
請求項3に記載の発明は、前記第1記憶手段は、前記第1のカタログ情報として、木構造における根に位置する根ページ情報と、前記根ページ情報の子に位置する子ページ情報と、を関連付ける前記関連情報であって、前記子ページ情報の改竄をチェックするための前記チェック情報を含む前記関連情報を含む前記根ページ情報と、前記根ページ情報から葉に位置する葉ページ情報までの間に位置する節ページ情報と、前記節ページ情報の子に位置する子ページ情報と、を関連付ける前記関連情報であって、前記子ページ情報の改竄をチェックするための前記チェック情報を含む前記関連情報と、前記属性情報と、のうち少なくとも前記関連情報を含む前記節ページ情報と、前記属性情報を含む前記葉ページ情報と、を含む複数のページ情報を記憶し、前記生成手段は、前記第1取得手段により取得された前記属性情報に基づいて、更新された前記属性情報を含む前記葉ページ情報または前記節ページ情報を生成する第1生成手段と、前記第1生成手段により生成された前記ページ情報と、前記第1記憶手段に記憶された前記ページ情報とに基づいて、前記第1生成手段により生成された前記ページ情報の親に位置する親ページ情報から前記根ページ情報までの前記ページ情報を生成する第2生成手段であって、生成された前記子ページ情報の改竄をチェックするための前記チェック情報を含む前記関連情報を生成し、前記子ページ情報の親に位置する親ページ情報として、生成された前記チェック情報を含む親ページ情報を生成する第2生成手段と、を備え、前記第2記憶手段は、前記第2のカタログ情報として、前記生成手段により生成された前記ページ情報を記憶し、前記更新手段は、前記第2記憶手段に記憶されたページ情報を用いて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新することを特徴とする。カタログ情報を更新することを特徴とする。
【0012】
カタログ情報の改竄を防止するためのチェック情報を含む木構造を有するカタログ情報においては、属性情報が更新されると、その属性情報を含む葉ページ情報または節ページ情報から根ページ情報まで更新する必要がある。この発明によれば、所定の期間ごとに、更新された各ページ情報が第1のカタログ情報に反映される。従って、情報処理装置は、更新された各ページ情報を頻繁に配信する必要がない。そのため、ネットワークの通信負荷を軽減することができる。
【0013】
請求項4に記載の発明は、前記第1記憶手段は、前記第1のカタログ情報に含まれる情報として、前記根ページ情報の改竄をチェックするためのチェック情報を含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名を含む第1ルートリンク情報を更に記憶し、前記第2生成手段は、前記第1生成手段により生成された前記ページ情報の親に位置する親ページ情報から前記根ページ情報までの前記ページ情報を生成し、生成された前記根ページ情報の改竄をチェックするためのチェック情報を含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名を含む第2ルートリンク情報を生成し、前記第2記憶手段は、前記第2のカタログ情報に含まれる情報として、前記第2生成手段により生成された前記第2ルートリンク情報を更に記憶し、前記更新手段は、前記第2記憶手段に記憶された前記第2ルートリンク情報を、前記第1ルートリンク情報として前記第1記憶手段に記憶させることを特徴とする。
【0014】
子に位置するページ情報の改竄をチェックするためのチェック情報は、親に位置するページ情報に含まれている。根ページ情報の改竄をチェックするためのチェック情報は、ルートリンク情報に含まれている。ルートリンク情報には電子署名が含まれている。そのため、第1のカタログ情報及び第2のカタログ情報の改竄を厳密にチェックすることができる。また、更新された第1のカタログ情報の改竄を防止することができる。
【0015】
請求項5に記載の発明は、前記第2記憶手段に記憶された前記第2のカタログ情報に含まれる前記属性情報の保存を担当する前記ノード装置を示す担当情報を取得する第2取得手段と、前記第2取得手段により取得された前記担当情報に基づいて、前記第2記憶手段に記憶された前記第2のカタログ情報に含まれる前記属性情報を含む第1指示情報であり、前記担当情報が示す保存を担当する前記ノード装置に対する前記属性情報の保存の指示を示す第1指示情報を、前記複数のノード装置の何れかへ送信する第1送信手段と、前記第1送信手段により送信された前記属性情報を、前記ノード装置に保存されている前記第1のカタログ情報に含まれる前記属性情報として、検索に用いるように指示することを示す第2指示情報を、各前記ノード装置に送信する第2送信手段と、を更に備えることを特徴とする。
【0016】
この発明によれば、各ノード装置に配信してあったカタログ情報を用いて最新の情報の検索が可能となるタイミングを、複数のノード装置間で合わせることができる。
【0017】
請求項6に記載の発明は、コンテンツの検索条件を示す条件情報を取得する第3取得手段と、前記第3取得手段により取得された前記条件情報が示す検索条件を満たす前記属性情報を、前記第2記憶手段に記憶された前記第2のカタログ情報を用いて検索する検索手段と、を更に備えることを特徴とする。
【0018】
この発明によれば、第1のカタログ情報が更新される前であっても、最新の情報を検索することができる。
【0019】
請求項7に記載の発明は、ネットワークに接続する複数のノード装置に複数のコンテンツが分散保存され、コンテンツの属性情報を複数含むカタログ情報が前記複数のノード装置に分散して保存される情報通信システムにおいて、前記カタログ情報を生成する情報生成装置における情報生成方法であって、前記複数のノード装置に分散して保存されている前記カタログ情報に含まれる前記属性情報の内容が更新された際、更新された前記属性情報を取得する第1取得ステップと、前記第1取得ステップにおいて取得された前記属性情報と、複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記複数のノード装置に分散して保存されている第1の前記カタログ情報を記憶する第1記憶手段に記憶された前記第1のカタログ情報とに基づいて、前記第1のカタログ情報の更新に用いられる前記関連情報を生成し、生成した前記関連情報と更新された前記属性情報とを含む第2の前記カタログ情報を生成する生成ステップと、前記生成ステップにおいて生成された前記第2のカタログ情報を第2記憶手段に記憶させる第2記憶ステップと、所定の期間ごとに、前記第2記憶手段に記憶された前記第2のカタログ情報に基づいて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新する更新ステップと、を含むことを特徴とする。
【0020】
請求項8に記載の発明は、ネットワークに接続する複数のノード装置に複数のコンテンツが分散保存され、コンテンツの属性情報を複数含むカタログ情報が前記複数のノード装置に分散して保存される情報通信システムにおいて、前記カタログ情報を生成する情報生成装置に含まれるコンピュータに、前記複数のノード装置に分散して保存されている前記カタログ情報に含まれる前記属性情報の内容が更新された際、更新された前記属性情報を取得する第1取得ステップと、前記第1取得ステップにおいて取得された前記属性情報と、複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記複数のノード装置に分散して保存されている第1の前記カタログ情報を記憶する第1記憶手段に記憶された前記第1のカタログ情報とに基づいて、前記第1のカタログ情報の更新に用いられる前記関連情報を生成し、生成した前記関連情報と更新された前記属性情報とを含む第2の前記カタログ情報を生成する生成ステップと、前記生成ステップにおいて生成された前記第2のカタログ情報を第2記憶手段に記憶させる第2記憶ステップと、所定の期間ごとに、前記第2記憶手段に記憶された前記第2のカタログ情報に基づいて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新する更新ステップと、を実行させることを特徴とする。
【発明の効果】
【0021】
本発明によれば、ノード装置に保存されている第1のカタログ情報から内容が更新された属性情報と、属性情報の更新によって更新された関連情報とは、第2のカタログ情報として、第1のカタログ情報とは区別して保存される。そして、所定の期間ごとに、第1のカタログ情報が更新されて、第2のカタログ情報が第1のカタログ情報に反映される。従って、情報処理装置は、更新された属性情報及び関連情報を頻繁に配信する必要がない。そのため、ネットワークの通信負荷を軽減することができる。
【図面の簡単な説明】
【0022】
【図1】一実施形態におけるコンテンツ分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。
【図2】一実施形態に係るカタログ情報の基本的な構造の一例を示す図である。
【図3】安定木の部分と更新木の部分とを有するカタログ情報の構造の一例を示す図である。
【図4】更新木マージ処理によりカタログ情報が更新される様子の一例を示す図である。
【図5】センターサーバSAの概要構成例を示す図である。
【図6】一実施形態に係るセンターサーバSAの制御部11のメイン処理における処理例を示すフローチャートである。
【図7】一実施形態に係るセンターサーバSAの制御部11のページレコード編集処理における処理例を示すフローチャートである。
【図8】一実施形態に係るセンターサーバSAの制御部11の更新木マージ処理における処理例を示すフローチャートである。
【図9】一実施形態に係るセンターサーバSAの制御部11のページマージ処理における処理例を示すフローチャートである。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【0024】
[1.コンテンツ分散保存システムの概要構成及び動作概要]
始めに、図1を参照して、本実施形態におけるコンテンツ分散保存システムの構成及び動作概要について説明する。図1は、本実施形態におけるコンテンツ分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。図1は、コンテンツ分散保存システムSの具体的構成図101と、概念的構成図100とから構成される。コンテンツ分散保存システムSの具体的構成図101が示すように、コンテンツ分散保存システムSは、多数のノード装置Nn(n=1,2,3・・・の何れか)から構成される。
【0025】
図1の具体的構成図101内に示すように、コンテンツ分散保存システムSは、複数のノード装置Nnがインターネットを介して接続されることで構成される。また、図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a,4b、DSL(Digital Subscriber Line)回線事業者の装置5a,5b、FTTH(Fiber To The Home)回線事業者の装置6、及び通信回線7等によって、インターネット等のネットワーク8が構築されている。ネットワーク8は、現実世界の通信ネットワークである。なお、図1の例におけるネットワーク8には、データパケットを転送するためのルータが適宜挿入されているが、図1では図示を省略している。また、通信回線7としては、例えば、電話回線や光ケーブル等が用いられる。
【0026】
このようなネットワーク8には、複数のノード装置Nn(n=1,2,3・・・の何れか)が接続されている。以下、ノード装置を、「ノード」という。また、各ノードNnには、固有の製造番号及びIP(Internet Protocol)アドレスが割り当てられている。そして、本実施形態におけるコンテンツ分散保存システムSは、これらのノードNnのうち、図1の概念的構成図100内に示すように、何れか複数のノードNnにより形成されるピアツーピア方式のネットワークシステムとなっている。
【0027】
なお、図1の概念的構成図100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9である。論理的なネットワークであるオーバーレイネットワーク9は、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムSに接続されている各ノードNnには、所定桁数からなる固有の識別情報であるノードIDが割り当てられている。
【0028】
また、各ノードNnは、夫々、DHTを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムS上における各種メッセージの転送先を規定している。具体的に、このルーティングテーブルには、ID空間内で適度に離れたノードNnのノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。1台のノードNnは、必要最低限のノードNnのノード情報をルーティングテーブルとして記憶している。各ノードNn間で互いに各種メッセージが転送されることで、ノード情報を記憶していないノードNnについてのノード情報が取得される。
【0029】
コンテンツ分散保存システムSは、内容の異なる様々なコンテンツデータのレプリカを所定のファイル形式で複数のノードNnに分散して保存する。以下、コンテンツデータを、「コンテンツ」という。そして、各ノードNn間でレプリカが利用可能になっている。各コンテンツのオリジナルはセンターサーバSAに保存されている。また、コンテンツのレプリカが保存されるノードNnを、「コンテンツ保持ノード」という。また、以下の説明においては、オリジナルのコンテンツとレプリカとを特に区別することなく、コンテンツと称する。
【0030】
上述のコンテンツには、夫々、コンテンツ名及びコンテンツごとに固有の識別情報であるコンテンツID等の情報が付加されている。コンテンツIDのID空間は、例えば、ノードIDのID空間と一致している。分散保存されているコンテンツの所在は、保持ノード情報として、コンテンツの所在を管理(記憶)しているノードNnにより記憶される。以下、コンテンツの所在を管理(記憶)しているノードNnを、「ルートノード」という。保持ノード情報は、コンテンツを保存したノードNnのノード情報と、コンテンツのコンテンツIDと等の組を含む。このようなルートノードは、例えば、コンテンツIDと最も近いノードIDを有するノードNnであるように定められる。コンテンツIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。
【0031】
各ノードNnにおいて、コンテンツのコンテンツ名及びコンテンツID等の属性情報は、カタログ情報に記述されている。カタログ情報は、センターサーバSAにより、ページ情報単位で作成される。ページ情報は、木構造を有するカタログ情報を構成する情報である。このページ情報は、カタログ情報において、木構造における節に対応する情報である。このカタログ情報の構造、内容等についての詳細は後述する。各ノードNnには、保持するページ情報の担当範囲が夫々ある。担当範囲は、例えば、各ノードNnのノードID等に基づいて決定される。そして、各ノードNnは、ノードNn自身の担当範囲内のページ情報をセンターサーバSAまたは他のノードNnから取得する。こうして、カタログ情報は、ページ情報単位で複数のノードNnに分散して保存される。また、各ノードNnは、コンテンツの属性情報を検索する際、必要なページ情報がない場合には、必要なページ情報をセンターサーバSAまたは他のノードNnから取得する。なお、DHTルーティングを用いたコンテンツの取得方法については、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
【0032】
[2.カタログ情報の基本的な構造及び内容等]
次に、カタログ情報の基本的な構造及び内容等について、図2を用いて説明する。図2は、本実施形態に係るカタログ情報の基本的な構造の一例を示す図である。カタログ情報は、コンテンツの属性情報を一覧として管理するための情報である。この属性情報はレコードに格納される。また、カタログ情報は、検索キーからコンテンツを特定することができる情報である。コンテンツを特定することができるとは、コンテンツのレコードを検索することができることを意味する。レコードの検索は、センターサーバSAにより行われ、また、ノードNnにおいても行われる。なお、検索キーは、本発明における条件情報の一例である。コンテンツ分散保存システムSにおいて用いられるカタログ情報は、レコードの改竄を防止するため、及び、レコードの検索を効率的に行うため、探索木の構造を有している。
【0033】
図2に示すように、カタログ情報は、木構造における根に位置するルートページ情報から葉に位置する葉ページ情報にかけて、各ページ情報が関連付けられて構成されている。ルートページ情報は、本発明における根ページ情報の一例である。直接関連付けられているページ情報同士は、親子関係を形成している。あるページ情報Xに対してページ情報Yが関連付けられているとする。つまり、ページ情報Xとページ情報Yとで親子関係を形成しているとする。ページ情報Xとページ情報Yとのうち、ページ情報Xの方がルートページ情報からの距離が短い場合、ページ情報Xは、ページ情報Yから見て親に位置する親のページ情報となる。そして、ページ情報Yは、ページ情報Xから見て子に位置する子のページ情報となる。ここで、ルートページ情報からの距離とは、木構造において、根の位置から注目する節点に辿るまでのリンク数に相当する長さである。換言すると、ルートページ情報からの距離とは、ルートページ情報から関連付けを辿って注目するページ情報に至るまでに、注目するページ情報を含めて通過するページ情報の数に相当する。なお、以降の説明においては、親のページ情報を親ページ情報といい、子のページ情報を子ページ情報という。
【0034】
親ページ情報と子ページ情報との関連付けは、リンク情報に示される。リンク情報は、親ページ情報に格納される情報であり、子ページ情報を指す情報である。このリンク情報は、子ページ情報のページ番号と、子ページ情報の改竄をチェックするためのメッセージダイジェストとを含む。なお、リンク情報は、本発明における関連情報の一例である。また、メッセージダイジェストは、本発明におけるチェック情報の一例である。
【0035】
ページ番号は、ページ情報に固有に割り当てられたシリアル番号である。ページ情報には、その作成順に、例えば1番から順にページ番号が割り当てられる。リンク情報が指すページ情報というときは、リンク情報に含まれるページ番号が割り当てられているページ情報を意味する。また、あるページ情報が更新される場合には、このページ情報に対して新たなページ番号が割り当てられる。例えば、ページ情報は、ファイルとして保存される。この場合、ページ情報のファイル名には、割り当てられたページ番号が含まれている。これにより、ページ番号からページ情報のファイルを特定することができる。
【0036】
メッセージダイジェストは、リンク情報が指す子ページ情報またはリンク情報が指す子ページ情報に格納されているレコードの改竄をチェックするための情報である。また、メッセージダイジェストは、改竄をチェックする対象を、共通のハッシュ関数によりハッシュ化した値である。カタログ情報は、更にルートリンク情報を有する(符号100)。ルートリンク情報には、ルートページ情報へのリンク情報が格納される(符号120)。そして、このリンク情報は、ルートページ情報のページ番号(符号121)及びメッセージダイジェスト(符号122)を含む。また、ルートリンク情報には、電子署名が格納される(符号110)。電子署名は、ルートリンク情報の改竄をチェックするための情報である。電子署名には、例えば、署名値、証明書情報等の情報が含まれている。
【0037】
ページ情報は、大別して節ページ情報(符号200)と葉ページ情報(符号300)とがある。節ページ情報は、1つ以上の子ページ情報と関連付けられる。節ページ情報には、ページ番号(符号210)、子ページ情報へのリンク情報(符号220)が格納される。ページ番号は、このページ番号が格納されている節ページ情報に割り当てられたページ番号である。節ページ情報には、リンク情報を複数格納することができる。1つあたりの節ページ情報に格納可能なリンク情報の最大数は、カタログ情報の木構造としての次数に一致する。この次数は、1つの親が持ちうる子の最大数を意味する。つまり、次数は、n分探索木のnの値に該当する。
【0038】
葉ページ情報は、上述したように、探索木における葉に位置するページ情報である。つまり、葉ページ情報は、子ページ情報を持たない。葉ページ情報には、ページ番号(符号310)、及びレコード(符号320)が格納される。ページ番号は、このページ番号が格納されている葉ページ情報に割り当てられたページ番号である。レコードは、葉ページ情報に1または複数格納される。1つのレコードには、1または複数のコンテンツの属性情報が設定される。例えば、レコードには、コンテンツID、コンテンツの公開開始日時、公開終了日時、コンテンツ名、キーワード等が設定される。
【0039】
カタログ情報の木構造は、順序性を有している。検索キーとしてコンテンツIDが入力されると、カタログ情報の木構造に対応したアルゴリズムに従って探索が行われることにより、コンテンツIDに対応するレコードが格納されている葉ページ情報を特定することができる。木構造の順序性に対応する情報として、各ページ情報には、インデックスが付与される。インデックスの説明を簡単にするため、一例として、コンテンツID及びインデックスは、4桁の4進数で構成されているものとする。
【0040】
ルートページ情報には、インデックスとして「****」が付与される。「*」は、その桁の値が確定していないことを示す。ルートページ情報の子に位置する節ページ情報は、最大で4つ存在する。各子ページ情報には、インデックスとして、「0***」、「1***」、「2***」及び「3***」の何れかが付与される。どの子ページ情報にどのインデックスが付与されるかは、親ページ情報に規定される。例えば、ルートページ情報に格納されるべき各リンク情報が配列構造で格納されており、その格納位置によって、リンク情報が指すページ情報のインデックスを特定することができる構造であっても良い。この場合、例えば、0に対応する位置に、インデックスが「0***」である子ページ情報を指すリンク情報が格納され、1に対応する位置に、インデックスが「1***」である子ページ情報を指すリンク情報が格納される。また例えば、節ページ情報に、リンク情報とそのリンク情報が指すページ情報のインデックスとが、対応付けて格納されていても良い。
【0041】
インデックスが「0***」の節ページ情報の子に位置する節ページ情報には、「00**」、「01**」、「02**」及び「03**」の何れかが付与される。また、インデックスが「01**」の節ページ情報の子に位置するページ情報は、例えば、葉ページ情報となる。この場合、葉ページ情報には、「010*」、「011*」、「012*」及び「013*」の何れかが付与される。インデックスが「012*」の葉ページ情報には、インデックスが「0120」、「0121」、「0122」及び「0123」のレコードがそれぞれ格納される。つまり、コンテンツIDが「0120」、「0121」、「0122」または「0123」であるコンテンツの属性情報が格納される。例えば、各レコードが配列構造で格納されている場合、その格納位置によってインデックスを特定することができる。また、例えば、葉ページ情報に、レコードとそのレコードのインデックスとが対応付けて格納されていても良い。なお、インデックスは、本発明における担当情報の一例である。
【0042】
なお、センターサーバSAは、コンテンツID以外の情報、例えば、コンテンツ名、公開開始日時等を検索キーとしてレコードを検索する機能を有しても良い。この場合、各節ページ情報にヒント情報が格納されても良い。ヒント情報は、検索キーでレコードを検索するための手がかりとなる情報である。センターサーバSAは、レコードの検索の際に、ヒント情報と検索キーとに対して、所定のアルゴリズムに従って演算処理を施す。すると、このヒント情報が格納されている節ページ情報の子の位置以下のページ情報に、検索キーによって検索されるレコードが格納されている可能性の有無が判明する。センターサーバSAは、検索キーによって検索されるレコードが格納されている可能性があると判定した場合には、その節ページ情報の子の位置以下のページ情報を参照して検索を行う。一方、センターサーバSAは、検索キーによって検索されるレコードが格納されている可能性がないと判定した場合には、その節ページ情報の子の位置以下のページ情報を参照する必要はない。これにより、節ページ情報の子の位置以下のページ情報に、検索キーによって検索されるレコードが格納されているか否かを偽陰性なく判断することができる。偽陰性とは、真実は陽性であるのに、誤って陰性であると判断される性質をいう。本実施形態のヒント情報は、本発明の関連情報の一例である。
【0043】
次に、コンテンツの属性情報の改竄を防止することができる理由を説明する。子ページ情報が改竄されているか否かはその親ページ情報に格納されているこの子ページ情報へのリンク情報により行われる。つまり、このリンク情報には、子ページ情報のメッセージダイジェストが含まれているので、このメッセージダイジェストで改竄チェックが行われる。このようにして、葉ページ情報からルートページ情報まで、子ページ情報の改竄有無は、その親ページ情報に格納されているリンク情報によってチェックされる。ルートページ情報の改竄有無は、ルートリンク情報によってチェックされる。ルートリンク情報の改竄有無は、そのルートリンク情報自身に格納されている電子署名によってチェックされる。そのため、ルートページ情報から葉ページ情報まで、ページ情報の真正性を保証することができる。結果として、カタログ情報全体の改竄防止が可能となる。
【0044】
以上、図2を用いて説明したカタログ情報の構造は、あくまでも一例である。カタログ情報の構造としては、コンテンツのレコードを探索可能な構造を有していれば、どのような構造であってもかまわない。カタログ情報の構造を木構造とした場合においては、例えば、葉ページ情報だけでなく、節ページ情報中にレコードが格納されても良い。また、木構造の次数、つまり、1つの節ページ情報に格納可能なリンク情報の最大数は任意である。また、木の種類としては、例えばB木、B+木、赤黒木等の平衡木であっても良いし、平衡性のない単純なn分探索木であっても良い。あるいは、トライ木であっても良い。
【0045】
また、例えば、カタログ情報を、連結リストの構造としても良い。連結リストの構造を有するカタログ情報は、例えば、ルートリンク情報と複数のページ情報とで構成される。各ページ情報には、例えば、1つ以上のレコードと、1つのリンク情報が格納される。また、ページ情報には、そのページ情報のページ番号やインデックスが格納されていても良い。この場合のインデックスは、例えば、レコードに格納されている属性情報中のコンテンツIDである。各ページ情報は、リンク情報によって、例えば、インデックスの値が小さい順に関連付けられる。リンク情報は、そのリンク情報を格納するページ情報の次のページ情報を指す。あるページ情報の次のページ情報とは、あるページ情報のインデックスの次に値が小さいインデックスが付与されたページ情報である。リンク情報には、次のページ情報のページ番号及びメッセージダイジェストが格納される。ルートリンク情報は、例えば、複数のページ情報のうち、インデックスの値が最も小さいページ情報を指す。ルートリンク情報には、ページ情報のページ番号、メッセージダイジェスト及びルートリンク情報の改竄をチェックするための電子署名が格納される。
【0046】
カタログ情報の構造がどのような構造であっても、以下の変形例を適用することができる。例えば、1つのページ情報に格納可能なレコードの最大数は1つでも複数でも良い。また、ページ情報に割り当てられたページ番号がそのページ情報自身に格納されている必要はない。また、リンク情報において、ページ情報同士を関連付ける情報は、ページ番号だけに限られるものではない。また、ルートリンク情報に電子署名が含まれていなくても良い。また、ルートリンク情報及びリンク情報に、メッセージダイジェストが含まれていなくても良い。また、カタログ情報にルートリンク情報が含まれていなくても良い。
【0047】
[3.安定木部分及び更新木部分を含むカタログ情報の構造]
次に、安定木部分及び更新木部分を含むカタログ情報の構造について、図3を用いて説明する。センターサーバSAは、コンテンツの属性情報に変更があったり、コンテンツが追加されたり削除されたりした場合、カタログ情報を更新する必要がある。カタログ情報が更新される場合、例えば、最初に、変更、追加、削除の対象となるコンテンツのレコードを格納する葉ページ情報が更新されることになる。本実施形態においては、元の葉ページ情報に対して、対象のコンテンツのレコードが更新され、追加され、または削除された新たな葉ページ情報が作成される。元の葉ページ情報と新たな葉ページ情報とでは、格納されているレコードの内容が少なくとも一部異なる。従って、新たな葉ページ情報の改竄をチェックするためには、その葉ページ情報の親に位置する節ページに格納されるリンク情報中のメッセージダイジェストを再計算する必要がある。また、葉ページ情報のページ番号も新しくなるため、節ページに格納されるリンク情報中のページ番号も更新する必要がある。従って、葉ページ情報の親に位置する節ページについても、新しい葉ページ情報に対するページ番号及びメッセージダイジェストが格納された新たな節ページ情報を作成する必要がある。同様の理由で、新たな節ページ情報の親に位置する節ページについても、新たな節ページ情報を作成する必要がある。このようにして、葉ページ情報から根ページ情報まで、新しいページ情報が作成されることになる。そして、新たな根ページ情報に対応するページ番号及びメッセージダイジェストが格納された新たなルートリンク情報を作成する必要がある。
【0048】
このように、1つのレコードの更新、追加または削除が発生すると、複数のページ情報及びルートリンク情報が作成し直されることになる。そして、検索に用いるルートリンク情報が、古いルートリンク情報から新たしいルートリンク情報に切り替わることにより、カタログ情報が更新される。従って、レコードの更新、追加または削除が頻繁に発生すると、センターサーバSAによるカタログ情報の更新の負荷が高くなる。また、センターサーバSAが、カタログ情報の更新の都度、更新されたページ情報を、保存を担当するノードNnに配信すると、ネットワークの通信負荷が高くなる。また、カタログ情報が更新されると、各ノードNnは、新しいページ情報を取得しないと、レコードを検索することができない。そのため、カタログ情報の更新が頻繁に発生すると、ノードNnがページ情報を取得するためのメッセージが多発する。そのため、ネットワークの通信負荷が高くなる。
【0049】
そこで、本実施形態においては、カタログ情報の木構造として、安定木の部分と更新木の部分とを有する。安定木は、ページ情報により構成される木として、頻繁には更新されない木である。更新木は、ページ情報により構成される木として、レコードが更新、追加または削除される度に更新される木である。なお、安定木部分のカタログ情報を、安定木カタログ情報という。また、また、更新木部分のカタログ情報を、更新木カタログ情報という。安定木カタログ情報は、本発明における第1のカタログ情報の一例である。また、更新木カタログ情報は、本発明における第2のカタログ情報の一例である。
【0050】
図3は、安定木の部分と更新木の部分とを有するカタログ情報の構造の一例を示す図である。図3において、ページ情報は、円で示されている。この円の中に記載されている番号は、その円が示すページ情報のページ番号である。また、図3において、ルートリンク情報は、四角で示されている。この四角の中に記載されている番号は、その四角が示すルートリンク情報が指すページ情報のページ番号である。
【0051】
ページ番号が28のページ情報は、安定木のルートページ情報である。そして、ページ番号28のルートページ情報を指すルートリンク情報は、安定木のルートリンク情報である。安定木のルートリンク情報は、基本的に1つのみ存在する。安定木カタログ情報においては、ページ番号28の節ページ情報の子ページ情報として、ページ番号9、10、26及び27の節ページ情報が存在する。また、ページ番号9の子ページ情報として、ページ番号5、6、7及び8の節ページ情報が存在する。また、ページ番号26の子ページ情報として、ページ番号15、16、25及び17の節ページ情報が存在する。また、ページ番号6の子ページ情報として、ページ番号1、2、3及び4の葉ページ情報が存在する。また、ページ番号15の子ページ情報として、ページ番号11、12、13及び14の葉ページ情報が存在する。また、ページ番号25の子ページ情報として、ページ番号21、22、23及び24の葉ページ情報が存在する。
【0052】
更新木のルートリンク情報は、1または複数存在する場合がある。ページ番号31のページ情報を指すルートリンク情報、ページ番号33のページ情報を指すルートリンク情報、及びページ番号34のページ情報を指すルートリンク情報は、それぞれ更新木のルートリンク情報である。更新木の各ルートリンク情報は、そのルートリンク情報が指すページ情報のインデックスに対応付けられている。例えば、更新木のルートリンク情報は、ファイルとして保存される。この場合、更新木のルートリンク情報のファイル名には、そのルートリンク情報が指すページ情報のインデックスが含まれている。これにより、インデックスから更新木のルートリンク情報のファイルを特定することができる。
【0053】
更新木ページ情報においては、ルートリンク情報ごとに木が形成される。更新木は、更新されたページ情報を含む部分木とみなすことができる。ページ番号33の子ページ情報として、ページ番号5、32、7及び8の節ページ情報が存在する。また、ページ番号32の子ページ情報として、ページ番号1、29、3及び4の葉ページ情報が存在する。また、ページ番号34の子ページ情報として、ページ番号11、12、30及び14の葉ページ情報が存在する。このように、一部のページ情報が、安定木カタログ情報と更新木カタログ情報との両方の構成要素となる場合がある。なお、図1に示すカタログ情報は、安定木カタログ情報のみが存在し、更新木カタログ情報が存在しない場合の例である。
【0054】
ページ番号29の葉ページ情報は、ページ番号2の葉ページ情報から、格納されるレコードの内容が更新された葉ページ情報である。従って、ページ番号29の葉ページ情報のインデックスは、ページ番号2の葉ページ情報のインデックスと一致する。また、ページ番号30の葉ページ情報は、ページ番号13の葉ページ情報から、格納されるレコードの内容が更新された葉ページ情報である。また、ページ番号31の葉ページ情報は、ページ番号24の葉ページ情報から、格納されるレコードの内容が更新された葉ページ情報である。また、ページ番号32の節ページ情報は、ページ番号6の節ページ情報から、格納されるリンク情報の内容が更新された節ページ情報である。また、ページ番号33の節ページ情報は、ページ番号9の節ページ情報から、格納されるリンク情報の内容が更新された節ページ情報である。また、ページ番号34の節ページ情報は、ページ番号15の節ページ情報から、格納されるリンク情報の内容が更新された節ページ情報である。
【0055】
例えば、ページ番号24の葉ページ情報に格納されているレコードを更新する必要があるとする。この場合、センターサーバSAは、更新されたレコードと、安定木の葉ページ情報であるページ番号24の葉ページ情報に基づいて、更新されたレコードを格納するページ番号31の葉ページ情報を作成する。また、センターサーバSAは、新たに作成したページ番号31の葉ページ情報を指す更新木のルートリンク情報を作成する。また、ページ番号29及び30の葉ページ情報、及びこれらの葉ページ情報を指すリンク情報も同様に作成される。なお、各ページ情報は、ページ番号順に作成される。ページ番号32、33及び34の節ページ情報、ページ番号33のページ情報を指すルートリンク情報及びページ番号34のページ情報を指すルートリンク情報は、後述する更新木マージ処理で作成される。また、これらのルートリンク情報は、更新木マージ処理が完了すると適時削除される。
【0056】
[4.カタログ情報の更新及び配信]
次に、カタログ情報の更新及び配信時のコンテンツ分散保存システムSの動作概要について、図4を用いて説明する。図4は、更新木マージ処理によりカタログ情報が更新される様子の一例を示す図である。センターサーバSAは、予め定められたタイミングで更新木マージ処理を行う。更新木マージ処理は、更新木カタログ情報を構成するページ情報を、安定木カタログ情報に反映させて、安定木カタログ情報を更新する処理である。予め定められたタイミングとして、例えば、オペレータが、センターサーバSAを操作して更新木マージ処理を指示したときに、更新木マージ処理が実行されても良い。または、一定期間が経過するごとに更新木マージ処理が実行されても良い。または、更新木カタログ情報を構成するページ情報が所定数作成されたときに更新木マージ処理が実行されても良い。または、レコードの更新、追加、削除の回数が所定回数に達したときに更新木マージ処理が実行されても良い。センターサーバSAが、一定期間が経過するごとに更新木マージ処理を実行する場合、所定の条件に基づいてこの期間の長さが変更されてもよい。すなわち、更新木マージ処理の実行間隔が動的に変更されても良い。例えば、コンテンツの投入が緊急性を要する場合、オペレーターが、そのコンテンツに対応するレコードとともに、緊急であることを示す情報を、センターサーバSAに入力する。センターサーバSAは、緊急であることを示す情報が入力された場合には、更新木マージ処理の実行間隔を通常の場合よりも短くする。または、コンテンツが投入された直後に、更新木マージ処理が実行されても良い。コンテンツの投入とは、コンテンツを何れか1台以上のノードNnに保存させ、保存されたコンテンツを、各ノードNnが取得可能にすることである。
【0057】
センターサーバSAは、安定木カタログ情報を更新するために必要な更新木カタログ情報を構成するページ情報を作成する。具体的に、センターサーバSAは、レコードの更新、追加、削除によって作成された葉ページ情報からルートページ情報までの更新木の各節ページ情報を作成する。これにより、センターサーバSAは、作成された更新木の各葉ページ情報と、安定木の各ページ情報と、を関連付けるためのリンク情報が格納された更新木のページ情報を作成する。
【0058】
例えば、図4に示すように、カタログ情報において、レコードの更新、追加または削除により、ページ番号29、30及び31の葉ページ情報と、これらの葉ページ情報を指す各ルートリンク情報とが作成されている。その後、更新木マージ処理が開始されたとする。
【0059】
ここで、ページ番号2の葉ページ情報とインデックスが一致する更新木の葉ページ情報として、ページ番号29の葉ページ情報が存在する。この場合、ページ番号6の子に位置する葉ページ情報に変更があったことになる。そのため、ページ番号6の節ページ情報を更新する必要がある。そこで、センターサーバSAは、ページ番号6の節ページ情報とインデックスが一致する更新木の節ページ情報を作成する(図4(1))。具体的に、センターサーバSAは、ページ番号6の節ページ情報に格納されているリンク情報のうち、ページ番号2の葉ページ情報を指すリンク情報を、ページ番号29の葉ページ情報を指すリンク情報に変更したページ番号32の節ページ情報を作成する。また、センターサーバSAは、ページ番号32の節ページ情報を指す更新木のルートリンク情報を作成する。
【0060】
これにより、ページ番号9の節ページ情報の子に位置するページ番号6の節ページ情報が変更されたことになる。そこで、センターサーバSAは、ページ番号9の節ページ情報とインデックスが一致する更新木の節ページ情報を作成する(図4(2))。具体的に、センターサーバSAは、ページ番号9の節ページ情報に格納されているリンク情報のうち、ページ番号6の葉ページ情報を指すリンク情報を、ページ番号32の葉ページ情報を指すリンク情報に変更したページ番号33の節ページ情報を作成する。また、センターサーバSAは、ページ番号33の節ページ情報を指す更新木のルートリンク情報を作成する。
【0061】
また、ページ番号13の葉ページ情報とインデックスが一致する更新木の葉ページ情報として、ページ番号30の葉ページ情報が存在する。この場合、ページ番号15の子に位置する葉ページ情報に変更があったことになる。そこで、センターサーバSAは、ページ番号15の節ページ情報とインデックスが一致するページ番号34の節ページ情報及びそのページ情報を指すルートリンク情報を作成する(図4(3))。また同様に、センターサーバSAは、ページ番号25の節ページ情報とインデックスが一致するページ番号35の節ページ情報及びそのページ情報を指すルートリンク情報を作成する(図4(4))。また、センターサーバSAは、ページ番号26の節ページ情報とインデックスが一致するページ番号36の節ページ情報及びそのページ情報を指すルートリンク情報を作成する(図4(5))。更に、センターサーバSAは、ページ番号28の節ページ情報とインデックスが一致するページ番号37の節ページ情報及びそのページ情報を指すルートリンク情報を作成する(図4(6))。
【0062】
更新木のルートページ情報であるページ番号37の節ページ情報が作成されたところで、必要な更新木のページ情報が全て作成されたことになる。そこで、センターサーバSAは、レコードの更新、追加または削除によって作成したページ情報、及び、更新木マージ処理によって作成したページ情報を、各ノードNnに配信する。このとき、センターサーバSAは、各ページ情報を、それぞれ保存を担当するノードNnに配信を行う。各ノードNnは、センターサーバSAからのページ情報の配信により、担当範囲内にある更新木のページ情報を取得する。
【0063】
各ページ情報の保存を担当するノードNnは、そのページ情報のインデックスに基づいて決定される。例えば、ページ情報のインデックスの値と最も近いノードIDを有するノードNnが、そのページ情報の保存を担当するノードNnとなる。インデックスと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。例えば、インデックスが「0123」である場合、ノードIDが「0123」に一致するか、または、ノードIDが「0123」に最も近いノードNnが担当となる。また例えば、インデックスが「01**」である場合、ノードIDの上位2桁が「01」であるノードNnが担当となる。また例えば、インデックスが「****」である場合、全てのノードNnが担当となる。また、例えば、ノードNnは、そのノードIDの上位所定桁がインデックスの上位所定桁に一致するページ情報を担当範囲としても良い。例えば、ノードIDが「0123」であるノードNnは、例えば、インデックスの上位3桁が「012」である全てのページ情報の保存を担当しても良いし、インデックスの上位2桁が「01」である全てのページ情報の保存を担当しても良い。このように、ページ情報のインデックスは、ページ情報の保存を担当するノードNnを示す情報である。
【0064】
例えば、センターサーバSAは、特開2007−280303号公報に開示されているオーバーレイマルチキャストで配信を行っても良い。この場合、センターサーバSAは、例えば、配信対象のページ情報と、配信対象のページ情報のインデックスと、マスク値と、送信種別である「プッシュ型」と、を含む更新木用のページ送信メッセージを、何れかのノードNnに送信する。配信対象のページ情報のインデックスは、特開2007−280303号公報に記載のターゲットノードIDに対応する。また、マスク値は、特開2007−280303号公報に記載のIDマスクに対応する。また、送信種別は、ページ送信メッセージに含まれるページ情報の送信形態を示す情報であり、「プッシュ型」または「プル型」が設定される。ページ情報がセンターサーバSAの主導で送信される場合、送信種別は「プッシュ型」に設定される。ページ情報がノードNnからの要求に基づいて送信される場合、送信種別は「プル型」に設定される。配信対象のページ情報のインデックスとセンターサーバSAで設定されるマスク値とに基づいて、そのページ情報の保存を担当するノードNnが決定される。なお、この場合の更新木用のページ送信メッセージは、保存を担当するノードNnに対するページ情報の保存を指示する第1指示情報の一例である。
【0065】
更新木用のページ送信メッセージの転送によって、ページ情報が、保存を担当するノードNnに配信される。なお、ページ情報の配信時における各ノードNnの処理内容は、特開2007−280303号公報で公知であるので、詳しい説明を省略する。センターサーバSAは、更新木用のページ送信メッセージを送信するノードNnをランダムに選択しても良いし、特定のノードNnに更新木用のページ送信メッセージを送信しても良い。また、センターサーバSAは、複数のノードNnに更新木用のページ送信メッセージを送信しても良い。なお、センターサーバSAが更新木用のページ送信メッセージを特定のノードNnに送信する場合、この特定のノードNnを、「サポータ」という。サポータは、センターサーバSAの配信負荷を軽減するために、配信を行うノードNnである。
【0066】
また、センターサーバSAは、作成したページ情報を、そのページ情報の保存を担当するノードNnに直接送信しても良い。この場合、センターサーバSAは、各ノードNnのノードID、IPアドレス及びポート番号を記憶しておく。そして、センターサーバSAは、配信対象のページ情報のインデックスと、記憶しているノードIDとに基づいて、配信対象のページ情報の送信先となるノードNnを決定する。
【0067】
ページ情報の配信が完了すると、作成された各ページ情報は、それぞれ1台以上のノードNnにより保存される。そのため、後述する安定木のルートリンク情報の切り替えの後は、更新された安定木カタログ情報を構成する各ページ情報が、複数のノードNnに分散保存されている状態となる。
【0068】
センターサーバSAは、ページ情報の配信が完了すると、一定時間待機した後、ページ番号37の節ページ情報を指す更新木のルートリンク情報を、新たな安定木のルートリンク情報として記憶することにより、安定木のルートリンク情報の切り替えを行う(図4(7))。こうして、センターサーバSAは、更新木カタログ情報を用いて、安定木カタログ情報を更新する。そうすると、図4において実線で示されるページ情報のみが、レコードの検索に用いられることになる。
【0069】
また、センターサーバSAは、安定木のルートリンク情報の切り替えの一貫として、各ノードNnがレコードを検索する場合には更新された安定木カタログ情報を用いて検索を行うように指示する。具体的に、センターサーバSAは、新しい安定木のルートリンク情報を、全てのノードNnに配信する。全てのノードNnへの配信は、例えば、特開2007−280303号公報に開示されているオーバーレイマルチキャストで行われても良い。例えば、センターサーバSAは、新しい安定木のルートリンク情報と、このルートリンク情報が指すページ情報である安定木のルートページ情報と、このページ情報のインデックスである「****」と、0が設定されたマスク値と、送信種別である「プッシュ型」と、を含む安定木用のページ送信メッセージを、何れかのノードNnに送信する。このときの、安定木用のページ送信メッセージは、安定木カタログ情報の更新を指示する第2指示情報の一例である。なお、センターサーバSAは、このときの安定木用のページ送信メッセージを、全てのノードNnに直接送信しても良い。
【0070】
各ノードNnは、送信されてきた安定木用のページ送信メッセージに含まれるルートリンク情報を、新たな安定木のルートリンク情報として記憶する。また、各ノードNnは、この安定木用のページ送信メッセージに含まれるページ情報を、このページ情報のページ番号に対応付けて記憶する。以降、各ノードNnは、新しい安定木のルートリンク情報を参照してレコードの検索を行う。これにより、各ノードNnは、更新された安定木カタログ情報を用いて検索を行うことになる。つまり、各ノードは、レコードの検索に、センターサーバSAによって更新木のページ情報として作成されたページ情報を、更新された安定木カタログ情報に含まれるページ情報として用いる。換言すると、各ノードNnは、レコードの検索に、センターサーバSAによって更新木のページ情報として作成されたページ情報を、センターサーバSAの更新木マージ処理の前の安定木カタログ情報を構成するページ情報よりも優先して用いる。例えば、図4に示すように、同一のインデックスに対応するページ情報として、ページ番号9のページ情報とページ番号33のページ情報とが存在する。この場合、レコードの検索には新しい方のページ番号33のページ情報が用いられることになる。なお、各ノードNnは、安定木のルートリンク情報の切り替えによって不要となったルートリンク情報及びページ情報を適時削除する。例えば、図4において破線で示されるルートリンク情報及びページ情報が削除される。更新木マージ処理が一定期間が経過するごとに行われるとすれば、この指示も定期的に行われる。従って、各ノードNnは、新しい安定木のルートリンク情報を、定期的に受信する。
【0071】
以上説明したカタログ情報の更新により、センターサーバSAの負荷が軽減され、ネットワークの通信負荷が軽減される理由を説明する。レコードの更新、追加または削除が発生しても、センターサーバSAは、葉ページ情報からルートページ情報までの各節ページ情報を作成する必要はない。この時点では、センターサーバSAは、対象となる更新木の葉ページ情報とこの葉ページ情報を指すルートリンク情報を作成すれば良い。そのため、レコードの更新、追加または削除が頻繁に発生しても、センターサーバSAの負荷は高くならない。また、各ノードNnによるレコードの検索は、基本的には更新が頻繁には発生しない安定木カタログ情報を用いて行われる。そのため、更新木マージ処理までは、センターサーバSAは、新しいページ情報を配信する必要がない。また、更新木マージ処理が完了までは、ノードNnが、更新されたページ情報を取得するためのメッセージを送信しなくても良い。そのため、ネットワークの通信負荷が高くならない。
【0072】
[5.センターサーバSAの構成等]
次に、図5を参照して、センターサーバSAの構成及び機能について説明する。図5は、センターサーバSAの概要構成例を示す図である。
【0073】
センターサーバSAは、図5に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成された制御部11を備えている。また、センターサーバSAは、各種データ及び各種プログラム等を記憶保存するためのHD等から構成された記憶部12を備えている。更に、センターサーバSAは、ネットワーク8等を通じてノードNnとの間の情報の通信制御を行うための通信部13を備えている。また更に、センターサーバSAは、各種情報を表示するCRT,液晶ディスプレイ等の表示部14を備えている。更にまた、センターサーバSAは、オペレータからの指示を受け付けこの指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス等)15と、を備えている。そして、制御部11、記憶部12、通信部13、表示部14、及び入力部15はバス16を介して相互に接続されている。ここで、記憶部12は、本発明における第1記憶手段及び第2記憶手段の一例である。
【0074】
記憶部12には、各ノードNnのノードID、IPアドレス及びポート番号等が記憶されている。また、記憶部12には、カタログデータベースが構築されている。このカタログデータベースには、カタログ情報として、安定木カタログ情報及び更新木カタログ情報が、ルートリンク情報及びページ情報単位で登録される。
【0075】
更に、記憶部12には、カタログデータベースを管理するためのデータベース管理プログラムが記憶されている。なお、上記データベース管理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしても良い。また、上記データベース管理プログラムは、例えば、DVD(Digital Versatile Disc)等の記録媒体に記録されてこの記録媒体のドライブを介して読み込まれるようにしても良い。データベース管理プログラムは、本発明における情報生成プログラムの一例である。
【0076】
制御部11は、CPUが記憶部12等に記憶されたデータベース管理プログラム等のプログラムを読み出して実行することにより、第1取得手段、生成手段、更新手段、第2取得手段、第1送信手段、第2送信手段、第3取得手段及び検索手段として機能する。
【0077】
[6.コンテンツ分散保存システムSの動作]
次に、図6乃至図9を参照して、本実施形態に係るコンテンツ分散保存システムSの動作について説明する。図6は、本実施形態に係るセンターサーバSAの制御部11のメイン処理における処理例を示すフローチャートである。
【0078】
図6に示す処理は、例えば、データベース管理プログラムが起動されたときに開始される。先ず、制御部11は、オペレータからの終了指示があったか否かを、入力部15からの入力に基づいて判定する(ステップS1)。このとき、制御部11は、終了指示がなかったと判定した場合には(ステップS1:NO)、オペレータからのレコード編集指示があったか否かを、入力部15からの入力に基づいて判定する(ステップS2)。
【0079】
このとき、制御部11は、レコードの編集指示があったと判定した場合には(ステップS2:YES)、レコード編集処理を実行する。レコード編集処理において、制御部11は、レコードの更新、追加、削除に応じて、新たな更新木の葉ページ情報を作成し、作成した葉ページ情報を指す更新木のルートリンク情報を作成する。先ず、制御部11は、安定木のルートリンク情報を、記憶部12から読み出す(ステップS3)。次いで、制御部11は、取得したリンク情報が指すページ情報、すなわち、安定木のルートページ情報を、記憶部12から読み出す(ステップS4)。
【0080】
次いで、制御部11は、ページレコード編集処理を実行する(ステップS5)。このとき、制御部11は、引数として、オペレータから入力部15を介して入力されたレコード、ステップS4で読み出したページ情報及び読み出したページ情報のインデックスである「****」を、ページレコード編集処理に引き渡す。なお、入力されたレコードを、「編集レコード」という。レコードが更新される場合、編集レコードには、更新された属性情報が格納されている。レコードが追加される場合、編集レコードには、新しく追加されたコンテンツの属性情報が格納されている。レコードが削除される場合、編集レコードには、例えば、無効を示す情報が格納されている。例えば、レコード中に、そのレコードが有効であるかまたは無効であるかを示すフラグ情報が格納されるとする。レコードが更新または追加される場合には、編集レコードには、有効を示すフラグ情報が格納され、レコードが削除される場合には、編集レコードには、無効を示すフラグ情報が格納される。
【0081】
制御部11は、レコードの編集指示がなかったと判定した場合(ステップS2:NO)、または、ステップS5の処理を終えた場合には、オペレータからの更新木のマージの指示があったか否かを、入力部15からの入力に基づいて判定する(ステップS6)。このとき、制御部11は、オペレータからの更新木のマージの指示があったと判定した場合には(ステップS6:YES)、更新木マージ処理を実行する(ステップS7)。
【0082】
制御部11は、更新木のマージの指示がなかったと判定した場合(ステップS6:NO)、または、ステップS7の処理を終えた場合には、オペレータからのカタログ情報の検索指示があったか否かを、入力部15からの入力に基づいて判定する(ステップS8)。このとき、制御部11は、オペレータからのカタログ情報の検索指示があったと判定した場合には(ステップS8:YES)、カタログID検索処理を実行する(ステップS9)。このとき、制御部11は、引数として、オペレータから検索条件として入力されたコンテンツIDを、カタログID検索処理に引き渡す。
【0083】
カタログID検索処理において、制御部11は、入力されたコンテンツIDに対応するレコードを、安定木カタログ情報を用いて検索する。具体的に、制御部11は、安定木のルートリンク情報を記憶部12から読み出し、安定木のルートリンク情報が指す節ページ情報を記憶部12から読み出す。そして、制御部11は、入力されたコンテンツIDと、読み出した節ページ情報に基づいて、この節ページ情報の子ページ情報のうち、次に読み出すべき子ページ情報を決定する。この決定は、カタログ情報の探索木の構造に対応した探索アルゴリズムに従って行われる。例えば、節ページ情報におけるリンク情報の格納位置によって、そのリンク情報が指す子ページ情報のインデックスを特定することができるとする。この場合、制御部11は、入力されたコンテンツIDに基づいて、次に読み出すべき子ページ情報を指すリンク情報の格納位置を特定し、特定した格納位置からリンク情報を取得する。また例えば、節ページ情報に、リンク情報とインデックスとが対応付けて格納されているとする。この場合、制御部11は、入力されたコンテンツIDと節ページ情報に格納されているインデックスとを比較することにより、次に読み出すべき子ページ情報を指すリンク情報を取得する。制御部11は、取得したリンク情報に含まれるページ番号に基づいて、子ページ情報を記憶部12から読み出す。以下同様にして、制御部11は、ルートページ情報から葉ページ情報にかけて、入力されたコンテンツIDに基づいてページ情報を読み出していく。制御部11は、葉ページ情報を読み出すと、葉ページ情報から、入力されたコンテンツIDに対応するレコードを取得する。そして、制御部11は、検索結果として、例えば、取得したレコードに格納されている属性情報を、表示部14に表示させる。
【0084】
制御部11は、ルートリンク情報を読み出すとき、そのルートリンク情報に格納されている電子署名に基づいて、そのルートリンク情報が改竄されているか否かを判定する。また、制御部11は、ページ情報を読み出すとき、そのページ情報の親ページ情報に格納されているリンク情報に含まれるメッセージダイジェスト、または、そのページ情報を指すルートリンク情報に含まれるメッセージダイジェストに基づいて、読み出したページ情報が改竄されているか否かを判定する。そして、制御部11は、ルートリンク情報またはページ情報が改竄されていると判定した場合には、例えば、カタログ情報が改竄されている旨を示すメッセージを、表示部14に表示させる。
【0085】
制御部11は、カタログ情報の検索指示がなかったと判定した場合(ステップS8:NO)、または、ステップS9の処理を終えた場合には、ノードNnから安定木用のページ要求メッセージを受信したか否かを判定する(ステップS10)。安定木用のページ要求メッセージは、安定木用のページ情報の要求を示す情報である。安定木用のページ要求メッセージは、例えば、ノードNnが安定木カタログ情報を用いてレコードを検索中に、必要なページ情報をそのノードNnが保存していない場合に送信される。このとき、制御部11は、ノードNnから安定木用のページ要求メッセージを受信したと判定した場合には(ステップS10:YES)、ページ要求メッセージ受信処理を実行する(ステップS11)。
【0086】
ページ要求メッセージ受信処理において、制御部11は、要求された安定木のページ情報を検索し、検索したページ情報を送信する。安定木用のページ要求メッセージには、要求されるページ情報のインデックスが設定されている。このインデックスを、要求インデックスという。制御部11は、安定木用のページ要求メッセージを受信した場合、カタログID検索処理と同様の方法で、ページ情報の検索を行う。ただし、制御部11は、コンテンツIDではなく、要求インデックスを用いて検索を行う。そして、制御部11は、要求インデックスと同一のインデックスが付与されたページ情報を読み出すと、読み出したページ情報を、ページ要求メッセージの送信元のノードNnに送信する。具体的に、制御部11は、ページ送信メッセージとして、記憶部12に記憶されている安定木のルートリンク情報と、読み出したページ情報と、読み出したページ情報のインデックスと、「プル型」が設定された送信種別と、を含む安定木用のページ送信メッセージを送信する。
【0087】
ノードNnは、センターサーバSAから安定木用のページ送信メッセージを受信すると、ページ送信メッセージに設定されているページ情報を記憶する。また、ノードNnは、ページ送信メッセージに設定されているルートリンク情報が、ノードNn自身が現在記憶している安定木のルートリンク情報よりも新しい場合には、ページ送信メッセージに設定されているルートリンク情報を、新たな安定木のルートリンク情報として記憶する。また、ノードNnは、安定木カタログ情報を用いてレコードを検索している途中で必要なページ情報を要求するためにページ要求メッセージを送信した場合がある。その場合、ノードNnは、ページ送信メッセージに設定されているページ情報を用いてレコードの検索を再開する。なお、送信種別が「プル型」に設定されているので、送信種別が「プッシュ型」である場合のページ送信メッセージの転送は行われない。
【0088】
制御部11は、ノードNnからページ要求メッセージを受信しなかったと判定した場合(ステップS10:NO)、または、ステップS11の処理を終えた場合には、必要に応じてその他の処理を実行する(ステップS12)。そして、制御部11は、ステップS1に移行する。
【0089】
ステップS1において、制御部11は、オペレータからの終了指示があったと判定した場合には(ステップS1:YES)、メイン処理を終了させる。
【0090】
図7は、本実施形態に係るセンターサーバSAの制御部11のページレコード編集処理における処理例を示すフローチャートである。先ず、制御部11は、更新木ルートリンク情報読み出し処理を実行する(ステップS101)。更新木ルートリンク情報読み出し処理では、引数として渡されたインデックスに対応付けられている更新木のルートリンク情報が記憶部12から読み出される。具体的に、制御部11は、引数として渡されたインデックスをファイル名に含む更新木のルートリンク情報のファイルが記憶部12に記憶されているか否かを判定する。該当するファイルが存在しない場合、引数として渡されたインデックスに対応付けられている更新木のルートリンク情報は、記憶されていない。一方、制御部11は、該当するファイルが存在する場合、そのファイルに含まれているルートリンク情報のうち、最新のルートリンク情報を読み出す。あるインデックスが付与されたページ情報に対して更新が複数回必要な場合、その都度、そのインデックスに対応して新しい更新木のページ情報が作成される。また、更新木のページ情報が作成される都度、このページ情報を指す更新木のルートリンク情報が作成される。そのため、同一のインデックスに対応付けられた更新木のルートリンク情報が複数存在する。そのため、制御部11は、最新のページ情報を指すルートリンク情報を読み出す。最新であるか否かは、ルートリンク情報に格納されているリンク情報に含まれるページ番号に基づいて判断することができる。
【0091】
次いで、制御部11は、更新木ルートリンク情報読み出し処理によってルートリンク情報を読み出すことができたか否かを判定する(ステップS102)。このとき、制御部11は、ルートリンク情報を読み出すことができたと判定した場合には(ステップS102:YES)、読み出したルートリンク情報が指すページ情報を、記憶部12から読み出す(ステップS103)。
【0092】
制御部11は、ルートリンク情報を読み出すことができなかったと判定した場合には(ステップS102:NO)、引数として渡されたページ情報を処理対象として、ステップS104に移行する。一方、制御部11は、ステップS103の処理を終えた場合には、ステップS103で読み出したページ情報を処理対象として、ステップS104に移行する。つまり、引数として渡されたインデックスが付与されたページ情報のうち、最新の情報が格納されたページ情報が、処理対象とされる。
【0093】
ステップS104において、制御部11は、処理対象のページ情報が葉ページ情報であるか否かを判定する(ステップS104)。例えば、処理対象のページ情報に、子ページ情報へのリンク情報が1つ以上格納されている場合、処理対象のページ情報は節ページ情報である。一方、処理対象のページ情報に、子ページ情報へのリンク情報が1つも格納されていない場合、処理対象のページ情報は葉ページ情報である。
【0094】
このとき、制御部11は、処理対象のページ情報が葉ページ情報ではないと判定した場合には(ステップS104:NO)、現在処理対象となっているページ情報の子に位置するページ情報のうち次に処理対象となるページ情報を、記憶部12から読み出す(ステップS105)。次に処理対象となるページ情報の決定方法は、カタログID検索処理と同様である。ただし、制御部11は、引数として渡された編集レコードに格納されているコンテンツIDに基づいて、次に処理対象となるページ情報を決定する。
【0095】
次いで、制御部11は、ページレコード編集処理を、再帰呼び出しで実行する(ステップS106)。このとき、制御部11は、引数として、編集レコード及びステップS105で読み出したページ情報及び読み出したページ情報のインデックスを引き渡す。
【0096】
ステップS104において、制御部11は、処理対象のページ情報が葉ページ情報であると判定した場合には(ステップS104:YES)、読み出したページ情報を作業用RAMにコピーすることにより、新たな葉ページ情報を作成する(ステップS107)。
【0097】
次いで、制御部11は、最新ルートリンク情報に格納されているページ番号に1を足してページ番号を更新し、このページ番号を、作成した葉ページ情報のページ番号とする(ステップS108)。最新ルートリンク情報とは、安定木のルートリンク情報及び更新木のルートリンク情報のうち、最後に作成されたルートリンク情報である。最新ルートリンク情報は、ルートリンク情報が作成される度に更新される。制御部11は、更新されたページ番号を、作成した葉ページ情報に設定する。
【0098】
次いで、制御部11は、作成した葉ページを編集する(ステップS109)。例えば、制御部11は、編集レコードに格納されているコンテンツIDをインデックスとして、作成した葉ページ内におけるレコードの格納位置を特定する。そして、制御部11は、特定した格納位置に、編集レコードを設定する。
【0099】
次いで、制御部11は、作成した葉ページ情報を保存する(ステップS110)。例えば、制御部11は、作成した葉ページ情報をファイルとして記憶部12に記憶させる。このとき、制御部11は、ステップS108で算出した最新のページ番号を含むファイル名で、葉ページ情報を記憶させる。
【0100】
次いで、制御部11は、ルートリンク情報作成処理を実行する(ステップS111)。このとき、制御部11は、引数として、作成した葉ページ情報及び最新のページ番号を引き渡す。ルートリンク情報作成処理において、制御部11は、作業用RAMに新しいルートリンク情報を作成する。そして、制御部11は、最新のページ番号を、新しいルートリンク情報に格納する。また、制御部11は、引数として渡されたページ情報のメッセージダイジェストを計算し、計算したメッセージダイジェストを新しいルートリンク情報に格納する。次いで、制御部11は、新しいルートリンク情報に格納されているページ番号及びメッセージダイジェストに対する電子署名を作成し、作成した電子署名を新しいルートリンク情報に格納する。次いで、制御部11は、新しいルートリンク情報をファイルとして、記憶部12に記憶させる。制御部11は、新しいルートリンク情報のファイル名として、引数として渡されたインデックスを含むファイル名とする。このとき、制御部11は、既に同じファイル名のファイルが記憶部12に記憶されている場合には、このファイルに、新しいルートリンク情報を追加する。また、制御部11は、新しいルートリンク情報を最新ルートリンク情報として記憶部12に記憶させる。
【0101】
制御部11は、ステップS106またはS111の処理を終えると、ページレコード編集処理を終了させ、呼び出し元のページレコード編集処理またはメイン処理に移行する。制御部11は、ページレコード編集処理の再帰呼び出しにより、最初は安定木のページ情報を用いて、編集レコードが格納される葉ページ情報を検索する。その後、制御部11は、検索途中において、処理対象のページ情報として、更新木のページ情報が見つかった場合には、以降、更新木のページ情報を用いて検索を行う。
【0102】
図8は、本実施形態に係るセンターサーバSAの制御部11の更新木マージ処理における処理例を示すフローチャートである。先ず、制御部11は、安定木のルートリンク情報を、記憶部12から読み出す(ステップS201)。次いで、制御部11は、取得したリンク情報が指すページ情報を、記憶部12から読み出す(ステップS202)。次いで、制御部11は、ページマージ処理を実行する(ステップS203)。このとき、制御部11は、引数として、ステップS202で読み出したページ情報及び読み出したページ情報のインデックスである「****」を引き渡す。ページマージ処理では、安定木カタログ情報を更新するために必要な更新木のページ情報が作成される。
【0103】
次いで、制御部11は、ルートページ情報を指す更新木のルートリンク情報が存在するか否かを判定する(ステップS204)。レコードの更新、追加、削除が全くなかった場合には、新たな更新木の葉ページ情報が作成されていない。すると、ページマージ処理でも、新たな更新木の葉ページ情報は作成されない。この場合、安定木カタログ情報を更新する必要がない。ステップS204の処理は、これを判定するために存在する。このとき、制御部11は、例えば、ルートリンク情報のファイルとして、ルートページ情報のインデックスである「****」をファイル名に含むファイルが記憶部12に記憶されていない場合には、ルートページ情報を指す更新木のルートリンク情報が存在しないと判定する(ステップS204:NO)。この場合、制御部11は、更新木マージ処理を終了させる。
【0104】
一方、制御部11は、ルートページ情報のインデックスである「****」をファイル名に含むファイルが記憶部12に記憶されている場合には、ルートページ情報を指す更新木のルートリンク情報が存在すると判定する(ステップS204:YES)。この場合、制御部11は、レコード編集処理で作成した更新木の葉ページ情報及びページマージ処理で作成した更新木の節ページ情報を、それぞれ保存を担当するノードNnへ配信する(ステップS205)。具体的に、制御部11は、配信対象のページ情報と、配信対象のページ情報のインデックスと、ページ情報の担当範囲に対応するマスク値と、送信種別である「プッシュ型」と、を含む更新木用のページ送信メッセージを送信する。
【0105】
次いで、制御部11は、所定時間待機する(ステップS206)。この待機は、更新木のページ情報が、ある程度の台数のノードNnに保存されることを待った後で、センターサーバSAが安定木のルートリンク情報を切り替えるためである。
【0106】
次いで、制御部11は、記憶部12に記憶されている現在の安定木のルートリンク情報を削除する。そして、制御部11は、ルートページ情報を指す更新木のルートリンク情報を、新たな安定木のルートリンク情報として記憶部12に記憶させる(ステップS207)。
【0107】
次いで、制御部11は、新たな安定木のルートリンク情報とされた更新木のルートリンク情報を、全てのノードNnに配信する(ステップS208)。具体的に、制御部11は、新たな安定木のルートリンク情報と、安定木のルートリンク情報が指すページ情報と、インデックスとしての「****」と、0が設定されたマスク値と、「プッシュ型」が設定された送信種別と、を含む安定木用のページ送信メッセージを、何れかのノードNnに送信する。制御部11は、ステップS208の処理を終えると、更新木マージ処理を終了させる。
【0108】
図9は、本実施形態に係るセンターサーバSAの制御部11のページマージ処理における処理例を示すフローチャートである。先ず、制御部11は、ステップS301〜S303の処理を、ステップS101〜S103と同様に実行する。これらの処理により、制御部11は、引数として渡されたインデックスが付与されたページ情報のうち、最新の情報が格納されたページ情報を、処理対象として取得する。次いで、制御部11は、処理対象のページ情報が葉ページ情報であるか否かを判定する(ステップS304)。このとき、制御部11は、処理対象のページ情報が葉ページ情報であると判定した場合には(ステップS304:YES)、ページマージ処理を終了させ、呼び出し元のページマージ処理または更新木マージ処理に移行する。このとき、制御部11は、返却値として、現在の処理対象のページ情報を、呼び出し元に引き渡す。つまり、制御部11は、引数として渡されたインデックスが付与された葉ページ情報のうち、最新の情報を格納している葉ページ情報を引き渡す。
【0109】
一方、制御部11は、処理対象のページ情報が葉ページ情報ではないと判定した場合には(ステップS304:NO)、マージ用ページリストを初期化する(ステップS305)。マージ用ページリストは、更新木マージ処理が完了して安定木カタログ情報が更新された後において、処理対象のページ情報の子に位置する予定であるページ情報のページ番号を、そのページ情報のインデックスに対応付けて示すリスト情報である。制御部11は、マージ用ページリストの初期化として、例えば、ページ番号が何も記載されていないマージ用ページリストを、作業用RAMに作成する。
【0110】
次いで、制御部11は、処理対象のページ情報の現在の子ページ情報のページ番号を、その子ページ情報のページ番号に対応付けて示す現行ページリストを、作業用RAMに作成する(ステップS306)。具体的に、制御部11は、処理対象のページ情報に格納されている各リンク情報から、子ページ情報のページ番号を取得する。そして、取得したページ番号と子ページ情報のインデックスとを含む現行ページリストを作成する。
【0111】
次いで、制御部11は、現行ページリストに記載されているページ番号のうち1つのページ番号を選択し、選択したページ番号に対応するページ情報を、記憶部12から読み出す(ステップS307)。
【0112】
次いで、制御部11は、ページマージ処理を、再帰呼び出しで実行する(ステップS308)。このとき、制御部11は、引数として、読み出したページ情報を引き渡す。次いで、制御部11は、再帰呼び出しで実行したページマージ処理の返却値として引き渡されたページ情報のページ番号を、選択したページ番号に対応するページ情報のインデックスに対応付けてマージ用ページリストに追加する(ステップS309)。
【0113】
次いで、制御部11は、現行ページリストに記載されているページ番号を全て選択したか否かを判定する(ステップS310)。このとき、制御部11は、現行ページリストに記載されているページ番号のうち選択していないページ番号が存在すると判定した場合には(ステップS310:NO)、選択していないページ番号のうち1つのページ番号を選択し、選択したページ番号に対応するページ情報を、記憶部12から読み出す(ステップS311)。次いで、制御部11は、ステップS308に移行する。
【0114】
一方、制御部11は、現行ページリストに記載されているページ番号を全て選択したと判定した場合には(ステップS310:YES)、マージ用ページリストの内容と現行ページリストの内容が一致するか否かを判定する(ステップS312)。マージ用ページリストの内容と現行ページリストの内容が一致する場合には、処理対象のページ情報の子ページ情報は、全く更新されていない。そのため、処理対象のページ情報を更新する必要がない。そこで、制御部11は、マージ用ページリストの内容と現行ページリストの内容が一致すると判定した場合には(ステップS312:YES)、ページマージ処理を終了させる。このとき、制御部11は、返却値として、現在の処理対象のページ情報を、呼び出し元に引き渡す。
【0115】
一方、マージ用ページリストの内容と現行ページリストの内容との間で一致しない部分がある場合には、処理対象のページ情報の子ページ情報のうち、少なくとも1つのページ情報が更新されている。そのため、処理対象のページ情報も更新する必要がある。そこで、制御部11は、マージ用ページリストの内容と現行ページリストの内容との間で一致しない部分があると判定した場合には(ステップS312:NO)、新たなページ情報を作成する(ステップS313)。具体的に、制御部11は、新たなページ情報を、作業用RAMに作成する。次いで、制御部11は、マージ用ページリストにページ番号が記載されている子ページ情報に基づいて、その子ページ情報のメッセージダイジェストを作成する。そして、制御部11は、マージ用ページリストに記載されているページ番号及び作成したメッセージダイジェストを含むリンク情報を、作業用RAM上の新しいページ情報に格納する。制御部11は、これらの処理を、マージ用ページリストに記載されているページ番号毎に実行する。
【0116】
次いで、制御部11は、記憶部12に記憶されている最新ルートリンク情報に格納されているページ番号に1を足してページ番号を更新し、このページ番号を、作成したページ情報のページ番号とする(ステップS314)。制御部11は、更新されたページ番号を、作成したページ情報に設定する。
【0117】
次いで、制御部11は、ルートリンク情報作成処理を実行する(ステップS315)。このとき、制御部11は、引数として、作成したページ情報及び最新のページ番号を引き渡す。これにより、制御部11は、作成したページ情報を指す更新木のルートリンク情報を作成する。
【0118】
制御部11は、ステップS315の処理を終えると、ページマージ処理を終了させ、呼び出し元のページマージ処理または更新木マージ処理に移行する。このとき、制御部11は、返却値として、作成したページ情報を、呼び出し元に引き渡す。制御部11は、ページマージ処理の再帰呼び出しにより、レコードの更新、追加、削除によって作成された葉ページ情報からルートページ情報までの更新木の各節ページ情報を作成する。
【0119】
なお、センターサーバSAは、例えば、オペレータによる選択操作によって、更新木カタログ情報を用いて検索を行っても良い。更新木カタログ情報を用いることによって、安定木カタログ情報が更新される前であっても、最新の情報を検索することができる。
【0120】
更新木カタログ情報を用いてレコードを検索する場合に、上述したカタログID検索処理と異なる処理を説明する。この場合、制御部11は、節ページ情報から次に読み出すべきページ情報を指すリンク情報を取得したとき、次に読み出すべきページ情報のインデックスに対応付けられている更新木のルートリンク情報が記憶部12に記憶されているか否かを判定する。この判定は、例えば、更新木のルートリンク情報のファイル名に基づいて行うことができる。このとき、制御部11は、更新木のルートリンク情報が記憶されていると判定した場合には、更新木のルートリンク情報を読み出す。そして、制御部11は、読み出した更新木のルートリンク情報が指すページ情報を記憶部12から読み出す。一方、制御部11は、更新木のルートリンク情報が記憶されていないと判定した場合には、節ページ情報から取得したリンク情報が指すページ情報を記憶部12から読み出す。その他の処理は、安定木カタログ情報を用いる場合と同様である。
【0121】
また、センターサーバSAは、例えば、オペレータによる選択操作によって、または自動的に、安定木カタログ情報を用いた検索と、更新木カタログ情報を用いた検索と、を同時併行して実行しても良い。この場合、安定木カタログ情報と更新木カタログ情報とのうち、検索が早く終わった方の検索結果を表示することができる。そのため、検索結果を早く得ることができる。
【0122】
また、センターサーバSAは、最初に安定木カタログ情報を用いて検索を行い、その結果、該当するレコードを発見することができなかった場合に、更新木カタログ情報を用いて検索を行っても良い。また、ノードNnは、更新木カタログ情報を用いてレコードを検索しても良い。この場合、ノードNnは、更新木カタログ情報を用いてレコードを検索中に、必要なページ情報をそのノードNnが保存していない場合には、更新木用のページ要求メッセージを、他のノードNnまたはセンターサーバに送信する。センターサーバSAの制御部11は、更新木用のページ要求メッセージを受信すると、受信したページ要求メッセージに設定されている要求インデックスと同一のインデックスが付与された更新木のページ情報を検索する。そして、制御部11は、検索したページ情報を含む更新木用のページ送信メッセージを、ページ要求メッセージの送信元のノードNnに送信する。このとき、制御部11は、送信種別として「プル型」を設定する。
【0123】
また、センターサーバSAは、更新木マージ処理によって作成した新しい安定木のルートリンク情報を各ノードNnに配信した後に、レコードの更新、追加または削除によって作成したページ情報、及び、更新木マージ処理によって作成したページ情報を配信しても良い。この場合、センターサーバSAは、安定木用のページ送信メッセージを用いてページ情報を配信する。
【符号の説明】
【0124】
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 通信部
SA センターサーバ
Nn ノード
S コンテンツ分散保存システム

【特許請求の範囲】
【請求項1】
ネットワークに接続する複数のノード装置に複数のコンテンツが分散保存され、コンテンツの属性情報を複数含むカタログ情報が前記複数のノード装置に分散して保存される情報通信システムにおいて、前記カタログ情報を生成する情報生成装置であって、
複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記複数のノード装置に分散して保存されている第1の前記カタログ情報を記憶する第1記憶手段と、
前記複数のノード装置に分散して保存されている前記カタログ情報に含まれる前記属性情報の内容が更新された際、更新された前記属性情報を取得する第1取得手段と、
前記第1取得手段により取得された前記属性情報と、前記第1記憶手段に記憶された前記第1のカタログ情報とに基づいて、前記第1のカタログ情報の更新に用いられる前記関連情報を生成し、生成した前記関連情報と更新された前記属性情報とを含む第2の前記カタログ情報を生成する生成手段と、
前記生成手段により生成された前記第2のカタログ情報を記憶する第2記憶手段と、
所定の期間ごとに、前記第2記憶手段に記憶された前記第2のカタログ情報に基づいて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新する更新手段と、
を備えることを特徴とする情報生成装置。
【請求項2】
前記第1記憶手段は、前記属性情報の改竄をチェックするためのチェック情報を含む前記関連情報を含む前記第1のカタログ情報を記憶し、
前記生成手段は、前記第1取得手段により取得された前記属性情報の改竄をチェックするための前記チェック情報を含む前記関連情報を生成することを特徴とする請求項1に記載の情報生成装置。
【請求項3】
前記第1記憶手段は、前記第1のカタログ情報として、
木構造における根に位置する根ページ情報と、前記根ページ情報の子に位置する子ページ情報と、を関連付ける前記関連情報であって、前記子ページ情報の改竄をチェックするための前記チェック情報を含む前記関連情報を含む前記根ページ情報と、
前記根ページ情報から葉に位置する葉ページ情報までの間に位置する節ページ情報と、前記節ページ情報の子に位置する子ページ情報と、を関連付ける前記関連情報であって、前記子ページ情報の改竄をチェックするための前記チェック情報を含む前記関連情報と、前記属性情報と、のうち少なくとも前記関連情報を含む前記節ページ情報と、
前記属性情報を含む前記葉ページ情報と、
を含む複数のページ情報を記憶し、
前記生成手段は、
前記第1取得手段により取得された前記属性情報に基づいて、更新された前記属性情報を含む前記葉ページ情報または前記節ページ情報を生成する第1生成手段と、
前記第1生成手段により生成された前記ページ情報と、前記第1記憶手段に記憶された前記ページ情報とに基づいて、前記第1生成手段により生成された前記ページ情報の親に位置する親ページ情報から前記根ページ情報までの前記ページ情報を生成する第2生成手段であって、生成された前記子ページ情報の改竄をチェックするための前記チェック情報を含む前記関連情報を生成し、前記子ページ情報の親に位置する親ページ情報として、生成された前記チェック情報を含む親ページ情報を生成する第2生成手段と、
を備え、
前記第2記憶手段は、前記第2のカタログ情報として、前記生成手段により生成された前記ページ情報を記憶し、
前記更新手段は、前記第2記憶手段に記憶されたページ情報を用いて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新することを特徴とする請求項2に記載の情報生成装置。
【請求項4】
前記第1記憶手段は、前記第1のカタログ情報に含まれる情報として、前記根ページ情報の改竄をチェックするためのチェック情報を含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名を含む第1ルートリンク情報を更に記憶し、
前記第2生成手段は、前記第1生成手段により生成された前記ページ情報の親に位置する親ページ情報から前記根ページ情報までの前記ページ情報を生成し、生成された前記根ページ情報の改竄をチェックするためのチェック情報を含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名を含む第2ルートリンク情報を生成し、
前記第2記憶手段は、前記第2のカタログ情報に含まれる情報として、前記第2生成手段により生成された前記第2ルートリンク情報を更に記憶し、
前記更新手段は、前記第2記憶手段に記憶された前記第2ルートリンク情報を、前記第1ルートリンク情報として前記第1記憶手段に記憶させることを特徴とする請求項3に記載の情報生成装置。
【請求項5】
前記第2記憶手段に記憶された前記第2のカタログ情報に含まれる前記属性情報の保存を担当する前記ノード装置を示す担当情報を取得する第2取得手段と、
前記第2取得手段により取得された前記担当情報に基づいて、前記第2記憶手段に記憶された前記第2のカタログ情報に含まれる前記属性情報を含む第1指示情報であり、前記担当情報が示す保存を担当する前記ノード装置に対する前記属性情報の保存の指示を示す第1指示情報を、前記複数のノード装置の何れかへ送信する第1送信手段と、
前記第1送信手段により送信された前記属性情報を、前記ノード装置に保存されている前記第1のカタログ情報に含まれる前記属性情報として、検索に用いるように指示することを示す第2指示情報を、各前記ノード装置に送信する第2送信手段と、
を更に備えることを特徴とする請求項1乃至4の何れか1項に記載の情報生成装置。
【請求項6】
コンテンツの検索条件を示す条件情報を取得する第3取得手段と、
前記第3取得手段により取得された前記条件情報が示す検索条件を満たす前記属性情報を、前記第2記憶手段に記憶された前記第2のカタログ情報を用いて検索する検索手段と、
を更に備えることを特徴とする請求項1乃至5の何れか1項に記載の情報生成装置。
【請求項7】
ネットワークに接続する複数のノード装置に複数のコンテンツが分散保存され、コンテンツの属性情報を複数含むカタログ情報が前記複数のノード装置に分散して保存される情報通信システムにおいて、前記カタログ情報を生成する情報生成装置における情報生成方法であって、
前記複数のノード装置に分散して保存されている前記カタログ情報に含まれる前記属性情報の内容が更新された際、更新された前記属性情報を取得する第1取得ステップと、
前記第1取得ステップにおいて取得された前記属性情報と、複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記複数のノード装置に分散して保存されている第1の前記カタログ情報を記憶する第1記憶手段に記憶された前記第1のカタログ情報とに基づいて、前記第1のカタログ情報の更新に用いられる前記関連情報を生成し、生成した前記関連情報と更新された前記属性情報とを含む第2の前記カタログ情報を生成する生成ステップと、
前記生成ステップにおいて生成された前記第2のカタログ情報を第2記憶手段に記憶させる第2記憶ステップと、
所定の期間ごとに、前記第2記憶手段に記憶された前記第2のカタログ情報に基づいて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新する更新ステップと、
を含むことを特徴とする情報生成方法。
【請求項8】
ネットワークに接続する複数のノード装置に複数のコンテンツが分散保存され、コンテンツの属性情報を複数含むカタログ情報が前記複数のノード装置に分散して保存される情報通信システムにおいて、前記カタログ情報を生成する情報生成装置に含まれるコンピュータに、
前記複数のノード装置に分散して保存されている前記カタログ情報に含まれる前記属性情報の内容が更新された際、更新された前記属性情報を取得する第1取得ステップと、
前記第1取得ステップにおいて取得された前記属性情報と、複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記複数のノード装置に分散して保存されている第1の前記カタログ情報を記憶する第1記憶手段に記憶された前記第1のカタログ情報とに基づいて、前記第1のカタログ情報の更新に用いられる前記関連情報を生成し、生成した前記関連情報と更新された前記属性情報とを含む第2の前記カタログ情報を生成する生成ステップと、
前記生成ステップにおいて生成された前記第2のカタログ情報を第2記憶手段に記憶させる第2記憶ステップと、
所定の期間ごとに、前記第2記憶手段に記憶された前記第2のカタログ情報に基づいて、前記第1記憶手段に記憶された前記第1のカタログ情報を更新する更新ステップと、
を実行させることを特徴とする情報生成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−73943(P2012−73943A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2010−219804(P2010−219804)
【出願日】平成22年9月29日(2010.9.29)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】