説明

ノード装置、情報通信システム、情報処理方法及び情報処理プログラム

【課題】ネットワークの通信負荷を軽減しつつ、ノード装置が、できる限り新しいカタログ情報を用いて検索を行う。
【解決手段】複数の属性情報を所定の規則により関連付ける関連情報を含むカタログ情報であって、ノード装置が保存する担当範囲である第1のカタログ情報を記憶し、第1のカタログ情報に含まれる属性情報から更新された属性情報を含む第2のカタログ情報を、他のノード装置または配信装置から取得し、取得された第2のカタログ情報を記憶し、配信装置から送信される指示情報であって、第1のカタログ情報から第2のカタログ情報への更新を指示する指示情報を、配信装置から一定の期間ごとに受信し、属性情報の検索条件を示す条件情報を取得し、条件情報が取得されたとき、指示情報が受信されている場合には、第2のカタログ情報を第1のカタログ情報よりも優先して用いて、当該条件情報が示す検索条件を満たす属性情報を検索する。

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

【特許請求の範囲】
【請求項1】
ネットワークに接続する複数のノード装置と、前記複数のノード装置に分散保存されるカタログ情報であって、コンテンツの属性情報を複数含むカタログ情報を前記ノード装置へ配信する配信装置と、を備える情報通信システムにおける前記ノード装置であって、
複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記ノード装置が保存する担当範囲である第1の前記カタログ情報を記憶する第1記憶手段と、
前記第1のカタログ情報に含まれる前記属性情報から更新された前記属性情報を含む第2の前記カタログ情報を、他の前記ノード装置または前記配信装置から取得する第1取得手段と、
前記第1取得手段により取得された前記第2のカタログ情報を記憶する第2記憶手段と、
前記配信装置から送信される指示情報であって、前記第1のカタログ情報から前記第2のカタログ情報への更新を指示する指示情報を、前記配信装置から一定の期間ごとに受信する受信手段と、
前記属性情報の検索条件を示す条件情報を取得する第2取得手段と、
前記第2取得手段により前記条件情報が取得されたとき、前記受信手段により前記指示情報が受信されている場合には、前記第2記憶手段に記憶された前記第2のカタログ情報を、前記第1記憶手段に記憶された前記第1のカタログ情報よりも優先して用いて、前記条件情報が示す検索条件を満たす前記属性情報を検索する検索手段と、
を備えることを特徴とするノード装置。
【請求項2】
前記検索手段は、前記第2取得手段により前記条件情報が取得されたとき、前記受信手段により前記指示情報が受信されている場合には、前記第2記憶手段に記憶された前記第2のカタログ情報に含まれる前記属性情報を、前記第1記憶手段に記憶された前記第1のカタログ情報に含まれる更新された前記属性情報として用いて、検索を行うことを特徴とする請求項1に記載のノード装置。
【請求項3】
前記検索手段は、前記第2取得手段により前記条件情報が取得されたとき、前記受信手段により前記指示情報が受信されていない場合には、前記第1記憶手段に記憶された前記第1のカタログ情報と、前記第2記憶手段に記憶された前記第2のカタログ情報と、並行して、前記条件情報が示す検索条件を満たす前記属性情報を検索することを特徴とする請求項1または請求項2に記載のノード装置。
【請求項4】
前記第1記憶手段は、前記第1のカタログ情報として、
木構造における根に位置する根ページ情報と、前記根ページ情報の子に位置する子ページ情報と、を関連付ける前記関連情報として、前記子ページ情報の改竄をチェックするためのチェック情報を含む前記関連情報を含む前記根ページ情報と、
前記根ページ情報から葉に位置する葉ページ情報までの間に位置する節ページ情報と、前記節ページ情報の子に位置する子ページ情報と、を関連付ける前記関連情報として、前記子ページ情報の改竄をチェックするためのチェック情報を含む前記関連情報と、前記属性情報と、のうち少なくとも前記関連情報を含む前記節ページ情報と、
前記属性情報を含む前記葉ページ情報と、
を含む複数のページ情報を記憶し、
前記第1取得手段は、前記第2のカタログ情報として、前記更新された属性情報を含む前記葉ページ情報または前記節ページ情報と、前記更新された属性情報を含む前記ページ情報の親に位置する前記ページ情報から前記根ページ情報までの前記ページ情報であって、前記チェック情報が更新された前記ページ情報と、を取得することを特徴とする請求項1乃至3の何れか1項に記載のノード装置。
【請求項5】
前記第1記憶手段は、前記第1のカタログ情報に含まれる情報として、前記根ページ情報の改竄をチェックするためのチェック情報を含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名を含む第1ルートリンク情報を更に記憶し、
前記受信手段は、前記第2記憶手段に記憶された前記根ページ情報の改竄をチェックするためのチェック情報を含むルートリンク情報であって、当該ルートリンク情報の改竄をチェックするための電子署名を含む第2ルートリンク情報を含む前記指示情報を受信し、
前記第1記憶手段は、前記受信手段により受信された前記指示情報に含まれる前記第2ルートリンク情報を、前記第1ルートリンク情報として記憶することを特徴とする請求項4に記載のノード装置。
【請求項6】
ネットワークに接続する複数のノード装置と、前記複数のノード装置に分散保存されるコンテンツの属性情報を含むカタログ情報を前記ノード装置へ配信する配信装置と、を備える情報通信システムであって、
前記ノード装置は、
複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記ノード装置が保存する担当範囲である第1の前記カタログ情報を記憶する第1記憶手段と、
前記第1のカタログ情報に含まれる前記属性情報から更新された前記属性情報を含む第2の前記カタログ情報を、他の前記ノード装置または前記配信装置から取得する第1取得手段と、
前記第1取得手段により取得された前記第2のカタログ情報を記憶する第2記憶手段と、
前記配信装置から送信される指示情報であって、前記第1のカタログ情報から前記第2のカタログ情報への更新を指示する指示情報を、前記配信装置から受信する受信手段と、
前記属性情報の検索条件を示す条件情報を取得する第2取得手段と、
前記第2取得手段により前記条件情報が取得されたとき、前記受信手段により前記指示情報が受信されている場合には、前記第2記憶手段に記憶された前記第2のカタログ情報を、前記第1記憶手段に記憶された前記第1のカタログ情報よりも優先して用いて、当該条件情報が示す検索条件を満たす前記属性情報を検索する検索手段と、
を備え、
前記配信装置は、
前記更新された属性情報を取得する第3取得手段と、
前記第3取得手段により取得された前記属性情報を含む前記第2のカタログ情報を前記ノード装置へ送信する第1送信手段と、
一定の期間ごとに前記指示情報を前記ノード装置へ送信する第2送信手段と、
を備えることを特徴とする情報通信システム。
【請求項7】
ネットワークに接続する複数のノード装置と、前記複数のノード装置に分散保存されるカタログ情報であって、コンテンツの属性情報を複数含むカタログ情報を前記ノード装置へ配信する配信装置と、を備える情報通信システムにおける前記ノード装置による情報処理方法であって、
複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記ノード装置が保存する担当範囲である第1の前記カタログ情報を記憶する第1記憶手段に記憶された前記第1のカタログ情報に含まれる前記属性情報から更新された前記属性情報を含む第2の前記カタログ情報を、他の前記ノード装置または前記配信装置から取得する第1取得ステップと、
前記第1取得ステップにおいて取得された前記第2のカタログ情報を第2記憶手段に記憶させる第2記憶ステップと、
前記配信装置から送信される指示情報であって、前記第1のカタログ情報から前記第2のカタログ情報への更新を指示する指示情報を、前記配信装置から一定の期間ごとに受信する受信ステップと、
前記属性情報の検索条件を示す条件情報を取得する第2取得ステップと、
前記第2取得ステップにおいて前記条件情報が取得されたとき、前記受信ステップにより前記指示情報が受信されている場合には、前記第2記憶手段に記憶された前記第2のカタログ情報を、前記第1記憶手段に記憶された前記第1のカタログ情報よりも優先して用いて、当該条件情報が示す検索条件を満たす前記属性情報を検索する検索ステップと、
を含むことを特徴とする情報処理方法。
【請求項8】
ネットワークに接続する複数のノード装置と、前記複数のノード装置に分散保存されるカタログ情報であって、コンテンツの属性情報を複数含むカタログ情報を前記ノード装置へ配信する配信装置と、を備える情報通信システムにおける前記ノード装置に含まれるコンピュータに、
複数の前記属性情報を所定の規則により関連付ける関連情報を含む前記カタログ情報であって、前記ノード装置が保存する担当範囲である第1の前記カタログ情報を記憶する第1記憶手段に記憶された前記第1のカタログ情報に含まれる前記属性情報から更新された前記属性情報を含む第2の前記カタログ情報を、他の前記ノード装置または前記配信装置から取得する第1取得ステップと、
前記第1取得ステップにおいて取得された前記第2のカタログ情報を第2記憶手段に記憶させる第2記憶ステップと、
前記配信装置から送信される指示情報であって、前記第1のカタログ情報から前記第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−73944(P2012−73944A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2010−219805(P2010−219805)
【出願日】平成22年9月29日(2010.9.29)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】