(57)【要約】      （修正有）【課題】任意のデータファイルの改変が同時に行なわれることを防いで、データファイルの完全性を向上させたノード装置を提供する。【解決手段】ネットワークを介して互いに通信可能なデータファイル分散保存システムで、他のノード装置からデータファイルの改変を要求する改変要求メッセージを受信する手段と、改変要求メッセージの宛先と自ノード装置のノード装置識別情報とが所定の関係にある場合、他のノード装置に対してデータファイルの改変を許可するか否かを判定する判定手段を有し、判定手段は、第１の他のノード装置から改変要求メッセージを受信した際に、改変要求メッセージに係るデータファイルについて改変を許可する許可メッセージを第２の他のノード装置に対して送信しており、かつ、当該第２の他のノード装置から改変終了メッセージを受信していない場合には、第１の他のノード装置に対して改変を許可しない。【選択図】図２
2010102573.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置間で複数のデータファイルを利用可能に構成されたデータファイル分散保存システムであって、前記各ノード装置を識別するノード装置識別情報であって、前記各データファイルを識別するデータファイル識別情報と所定の関係にある前記ノード装置識別情報を有するノード装置に、前記各データファイルに関する情報が、それぞれ管理されるよう構成された前記データファイル分散保存システムにおける前記ノード装置であって、
他の前記ノード装置からデータファイルの改変を要求する改変要求メッセージを受信する手段と、
受信した前記改変要求メッセージの宛先と自ノード装置のノード装置識別情報とが前記所定の関係にある場合、前記他のノード装置に対して前記データファイルの改変を許可するか否かを判定する判定手段と、
判定の結果、改変を許可する場合には前記他のノード装置に対して改変を許可する旨の許可メッセージを送信する許可手段と、
前記他のノード装置から前記データファイルの改変の終了を通知する改変終了メッセージを受信する手段と、を有し、
前記判定手段は、第１の前記他のノード装置から前記改変要求メッセージを受信した際に、受信した前記改変要求メッセージに係るデータファイルについて改変を許可する前記許可メッセージを第２の前記他のノード装置に対して送信しており、かつ、当該第２の他のノード装置から前記改変終了メッセージを受信していない場合には、前記第１の他のノード装置に対して改変を許可しないことを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置であって、
自己が管理するデータファイルを保存している前記ノード装置のアドレス情報を記憶する記憶手段と、
前記他のノード装置から自己が管理するデータファイルを保存している前記ノード装置のアドレス情報を問い合わせる所在問い合わせメッセージを受信すると、前記記憶手段を参照して当該データファイルを保存している前記ノード装置のアドレス情報を送信する手段と、
前記改変終了メッセージを受信すると、前記記憶手段を参照して、当該改変終了メッセージに係る前記データファイルを保存する前記ノード装置に対して当該データファイルの改変を通知する手段と、
を有することを特徴とするノード装置。
【請求項３】
請求項２に記載のノード装置であって、
前記改変要求メッセージに対して改変許可をする場合、当該改変要求メッセージの送信元のノード装置が、前記記憶手段に記憶されているときには、当該送信元のノード装置を当該記憶手段から削除する手段を有することを特徴とするノード装置。
【請求項４】
ネットワークを介して互いに通信可能な複数のノード装置間で複数のデータファイルを利用可能に構成されたデータファイル分散保存システムであって、前記各ノード装置を識別するノード装置識別情報であって、前記各データファイルを識別するデータファイル識別情報と所定の関係にある前記ノード装置識別情報を有するノード装置に、前記各データファイルに関する情報が、それぞれ管理されるよう構成された前記データファイル分散保存システムにおける前記ノード装置であって、
前記データファイルを特定して改変を要求する改変要求メッセージを当該データファイルを管理するノード装置に向けて送信する手段と、
改変要求の対象となる前記データファイルの改変を許可する旨の許可メッセージを受信する手段と、
前記許可メッセージを受信すると、改変要求の対象となる前記データファイルを改変する手段と、
前記データファイルの改変が終了すると、改変の終了を通知する改変終了メッセージを当該データファイルを管理するノード装置に向けて送信する手段と、
を有することを特徴とするノード装置。
【請求項５】
コンピュータを、請求項１乃至４の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項６】
ネットワークを介して互いに通信可能な複数のノード装置間で複数のデータファイルを利用可能に構成されたデータファイル分散保存システムであって、前記各ノード装置を識別するノード装置識別情報であって、前記各データファイルを識別するデータファイル識別情報と所定の関係にある前記ノード装置識別情報を有するノード装置に、前記各データファイルに関する情報が、それぞれ管理されるよう構成された前記データファイル分散保存システムにおけるデータファイル改変方法であって、
前記ノード装置が、
他の前記ノード装置からデータファイルの改変を要求する改変要求メッセージを受信する工程と、
受信した前記改変要求メッセージの宛先と自ノード装置のノード装置識別情報とが前記所定の関係にある場合、前記他のノード装置に対して前記データファイルの改変を許可するか否かを判定する判定工程と、
判定の結果、改変を許可する場合には前記他のノード装置に対して改変を許可する旨の許可メッセージを送信する工程と、
前記他のノード装置から前記データファイルの改変の終了を通知する改変終了メッセージを受信する工程と、を有し、
前記判定工程では、第１の前記他のノード装置から前記改変要求メッセージを受信した際に、受信した前記改変要求メッセージに係るデータファイルについて改変を許可する前記許可メッセージを第２の前記他のノード装置に対して送信しており、かつ、当該第２の他のノード装置から前記改変終了メッセージを受信していない場合には、前記第１の他のノード装置に対して改変を許可しないことを特徴とするデータファイル改変方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のピアツーピア型の通信システムにおいて、映画及び音楽等のデータファイルであって、複数のデータファイルの複製データ（以下、「レプリカ」という）を複数のノード装置に分散して保存（配置）させ、各ノード装置間でレプリカを利用可能とした分散保存システムが知られており、これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して効率良く検索可能になっている。
【０００３】
このようなデータファイル分散保存システムにおいて、データファイルのレプリカの編集や更新などの改変作業を行う場合、複数のレプリカが複数のノード装置に保存されていることから、任意のレプリカに対して改変作業が行なわれた場合には、その改変作業の内容を同一データファイルの他のレプリカへも反映させる（同期をとる）必要があるが、例えば、同時に２人以上のユーザが任意のレプリカに対して同時に改変作業をしてしまうと、先に改変作業が終了し保存された改変作業の内容が、後に保存された改変作業によって無効にされて（上書されて）しまうといった問題がある。
【０００４】
特許文献２に開示される従前からの分散ストレージシステムでは、複数のホストコンピュータからアクセス可能な共有ファイルを更新する方法として、専用の排他制御処理装置によって、更新状況を管理する手法を用いている。
【特許文献１】特開２００７−０３４６３０号公報
【特許文献２】特開平０８−２６６８０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＤＨＴによるデータファイル分散保存システムでは、サーバ装置にてシステム内に分散保存されているレプリカの管理を行なっていない。
【０００６】
仮に、データファイルの更新、編集等の改変作業を集中管理させるための管理サーバをシステム内に設置させた場合に、当該管理サーバが任意のレプリカに対する改変内容を、当該レプリカを保存する全ノード装置へ通知することで、レプリカの同一性を保つよう構成することも考えられるが、このような手法では、管理サーバに過大な処理負担を課すこととなり、データファイル分散保存システムにて提供されるデータファイルが増えるほど、また、当該システムに参加するノード装置が増え、レプリカの数が増えるほど、この処理負担が増大し続けるという問題が生じる。
【０００７】
本発明は、以上の問題等に鑑みてなされたものであり、排他制御処理にかかる負荷を複数のノード装置に分散させつつ、任意のデータファイルの改変が同時に行なわれることを防いで、データファイルの完全性を向上させたノード装置、ノード処理プログラム及びデータファイル改変方法を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で複数のデータファイルを利用可能に構成されたデータファイル分散保存システムであって、前記各ノード装置を識別するノード装置識別情報（ノードＩＤ）であって、前記各データファイルを識別するデータファイル識別情報（データファイルＩＤ）と所定の関係にある前記ノード装置識別情報を有するノード装置（ルートノード）に、前記各データファイルに関する情報が、それぞれ管理されるよう構成された前記データファイル分散保存システムにおける前記ノード装置であって、他の前記ノード装置からデータファイルの改変（編集、更新等）を要求する改変要求メッセージを受信する手段と、受信した前記改変要求メッセージの宛先と自ノード装置のノード装置識別情報とが前記所定の関係にある場合、前記他のノード装置に対して前記データファイルの改変を許可するか否かを判定する判定手段と、判定の結果、改変を許可する場合には前記他のノード装置に対して改変を許可する旨の許可メッセージを送信する許可手段と、前記他のノード装置から前記データファイルの改変の終了を通知する改変終了メッセージを受信する手段と、を有し、前記判定手段は、第１の前記他のノード装置から前記改変要求メッセージを受信した際に、受信した前記改変要求メッセージに係るデータファイルについて改変を許可する前記許可メッセージを第２の前記他のノード装置に対して送信しており、かつ、当該第２の他のノード装置から前記改変終了メッセージを受信していない場合には、前記第１の他のノード装置に対して改変を許可しないことを特徴とするノード装置である。
【０００９】
この発明によれば、データファイルに関する情報を管理するノード装置が、データファイルの改変作業の排他制御を行なうよう構成したので、排他制御処理にかかる負荷を複数のノード装置に分散させつつ、任意のデータファイルの改変が同時に行なわれることを防いで、データファイルの完全性を向上させたデータファイル分散保存システムを実現することができる。
【００１０】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載のノード装置であって、自己が管理するデータファイルを保存している前記ノード装置のアドレス情報を記憶する記憶手段と、前記他のノード装置から自己が管理するデータファイルを保存している前記ノード装置のアドレス情報を問い合わせる所在問い合わせメッセージ（クエリ）を受信すると、前記記憶手段を参照して当該データファイルを保存している前記ノード装置のアドレス情報を送信する手段と、前記改変終了メッセージを受信すると、前記記憶手段を参照して、当該改変終了メッセージに係る前記データファイルを保存する前記ノード装置（保持ノード）に対して当該データファイルの改変を通知する手段と、を有することを特徴とするノード装置である。
【００１１】
この発明によれば、改変が行なわれたデータファイルを保存するノード装置に、データファイルが改変されたことを通知するので、通知を受けたノード装置は、改変後の新しいデータファイルを取得して古いデータファイルを更新し（書換え）たり、或いは、保存している古いデータファイルを削除するなどの対応をとることができ、新たにデータファイルを要求されたときに、古いデータファイルを送信することを防止することができる。
【００１２】
上記課題を解決するために、請求項３に記載の発明は、請求項２に記載のノード装置であって、前記改変要求メッセージに対して改変許可をする場合、当該改変要求メッセージの送信元のノード装置が、前記記憶手段に記憶されているときには、当該送信元のノード装置を当該記憶手段から削除する手段を有することを特徴とするノード装置である。
【００１３】
この発明によれば、任意のデータファイルが任意のノード装置によって改変中であっても、かかるデータファイルを保存しているノード装置の所在の問い合わせ（クエリ）に対して、当該改変作業中のノード装置以外の他のノード装置のアドレス情報を含むインデックス情報を返信することができ、データファイルの改変作業が行なわれていても作業前のデータファイルにて対応することができる。
【００１４】
上記課題を解決するために、請求項４に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で複数のデータファイルを利用可能に構成されたデータファイル分散保存システムであって、前記各ノード装置を識別するノード装置識別情報（ノードＩＤ）であって、前記各データファイルを識別するデータファイル識別情報（データファイルＩＤ）と所定の関係にある前記ノード装置識別情報を有するノード装置（ルートノード）に、前記各データファイルに関する情報が、それぞれ管理されるよう構成された前記データファイル分散保存システムにおける前記ノード装置であって、前記データファイルを特定して改変を要求する改変要求メッセージを当該データファイルを管理するノード装置に向けて送信する手段と、改変要求の対象となる前記データファイルの改変を許可する旨の許可メッセージを受信する手段と、前記許可メッセージを受信すると、改変要求の対象となる前記データファイルを改変する手段と、前記データファイルの改変が終了すると、改変の終了を通知する改変終了メッセージを当該データファイルを管理するノード装置に向けて送信する手段と、を有することを特徴とするノード装置である。
【００１５】
この発明によれば、データファイルの改変作業をかかるデータファイルに関する情報を管理するノード装置からの許可を受けて実行し、改変作業が終了したらその旨を報告するよう構成したので、排他制御処理にかかる負荷を複数のノード装置に分散させることができるデータファイル分散保存システムを実現することができる。
【００１６】
上記課題を解決するために、請求項５に記載の発明は、コンピュータを、請求項１乃至４の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラムである。
【００１７】
上記課題を解決するために、請求項６に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で複数のデータファイルを利用可能に構成されたデータファイル分散保存システムであって、前記各ノード装置を識別するノード装置識別情報（ノードＩＤ）であって、前記各データファイルを識別するデータファイル識別情報（データファイルＩＤ）と所定の関係にある前記ノード装置識別情報を有するノード装置（ルートノード）に、前記各データファイルに関する情報が、それぞれ管理されるよう構成された前記データファイル分散保存システムにおけるデータファイル改変方法であって、前記ノード装置が、他の前記ノード装置からデータファイルの改変（編集、更新等）を要求する改変要求メッセージを受信する工程と、受信した前記改変要求メッセージの宛先と自ノード装置のノード装置識別情報とが前記所定の関係にある場合、前記他のノード装置に対して前記データファイルの改変を許可するか否かを判定する判定工程と、判定の結果、改変を許可する場合には前記他のノード装置に対して改変を許可する旨の許可メッセージを送信する工程と、前記他のノード装置から前記データファイルの改変の終了を通知する改変終了メッセージを受信する工程と、を有し、前記判定工程では、第１の前記他のノード装置から前記改変要求メッセージを受信した際に、受信した前記改変要求メッセージに係るデータファイルについて改変を許可する前記許可メッセージを第２の前記他のノード装置に対して送信しており、かつ、当該第２の他のノード装置から前記改変終了メッセージを受信していない場合には、前記第１の他のノード装置に対して改変を許可しないことを特徴とするデータファイル改変方法である。
【発明の効果】
【００１８】
本発明によれば、データファイルに関する情報を管理するノード装置が、データファイルの改変作業の排他制御を行なうよう構成したので、排他制御処理にかかる負荷を複数のノード装置に分散させつつ、任意のデータファイルの改変が同時に行なわれることを防いで、データファイルの完全性を向上させたデータファイル分散保存システムを実現することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、データファイル分散保存システムに本発明を適用した場合の実施形態である。
【００２０】
＜１．データファイル分散保存システムの構成及び動作概要＞
始めに、図１等を参照して、本実施形態に係るデータファイル分散保存システムの構成及び動作概要について説明する。
【００２１】
図１は、本実施形態に係るデータファイル分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【００２２】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ,４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ,５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の通信ネットワーク）８が構築されている。なお、図１の例におけるネットワーク８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００２３】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。また、各ノードＮｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るデータファイル分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
【００２４】
なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９（論理的なネットワーク）である。かかるオーバーレイネットワーク９は、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムにより実現される。そして、データファイル分散保存システムＳ（言い換えれば、オーバーレイネットワーク９）に参加している各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤ（ノード装置識別情報の一例）が割り当てられている。
【００２５】
また、当該ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化した値（例えば、ｂｉｔ長が１６０ｂｉｔ）であり、一つのＩＤ空間に偏りなく分散して配置されることになる。
【００２６】
なお、データファイル分散保存システムＳへの参加は、参加していないノードＮｎ（例えば、ノードＮ８）が、参加している任意のノードＮｎ（例えば、当該システムＳに常時参加しているコンタクトノード）に対して参加要求を示す参加メッセージを送信することによって行われる。
【００２７】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。このルーティングテーブルは、データファイル分散保存システムＳ上における各種メッセージの転送先を規定しており、具体的には、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、アドレス情報（ＩＰアドレス及びポート番号等）を含むノード情報が複数登録されている。
【００２８】
データファイル分散保存システムＳに参加している１台のノードＮｎは、該システムＳに参加している全てのノードＮｎのうち、必要最低限のノードＮｎのノード情報をルーティングテーブルに登録しておき、ノード情報を知らない（記憶していない）ノードＮｎについては、各ノードＮｎ間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【００２９】
このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００３０】
ところで、データファイル分散保存システムＳにおいては、内容の異なる様々なデータファイル（例えば、映画や音楽等のコンテンツ）の複製データ（レプリカ）が所定のファイル形式で複数のノードＮｎに分散して保存（格納）されており、各ノードＮｎ間で当該レプリカを利用可能になっている。例えば、ノードＮ５には、タイトルがＸＸＸの映画のデータファイルのレプリカが保存されており、一方、ノードＮ３には、タイトルがＹＹＹの映画のデータファイルのレプリカが保存されるというように、複数のノードＮｎ（以下、「データファイル保持ノード」という）に分散されて保存されている。
【００３１】
また、これらのデータファイルのレプリカには、夫々、データファイル名（タイトル）及びデータファイルＩＤ（データファイル毎に固有の識別情報（データファイル識別情報の一例））等の情報が付加されている。このデータファイルＩＤは、例えば、データファイル名＋任意の数値（或いは、データファイルの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（ノードＩＤと同一のＩＤ空間に配置）。或いは、システム管理者が、データファイル毎に一意のＩＤ値（ノードＩＤと同一ビット長）を付与しても良い。この場合は、データファイル名とそのデータファイルＩＤの対応が書かれたデータファイルカタログ情報が、全ノードＮｎに配布される。
【００３２】
また、このように分散保存されているデータファイルのレプリカの所在、つまり、当該レプリカを保存したノードＮｎのノード情報と当該データファイルのデータファイルＩＤ等の組が含まれるインデックス情報が、当該データファイルのレプリカの所在を管理しているノードＮｎ（以下、「ルートノード」、又は「データファイル（データファイルＩＤ）のルートノード」という）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている。
【００３３】
例えば、タイトルがＸＸＸの映画のデータファイルのレプリカについてのインデックス情報は、そのデータファイル（データファイルＩＤ）のルートノードであるノードＮ４により管理され、タイトルがＹＹＹの映画のデータファイルのレプリカについてのインデックス情報は、そのデータファイル（データファイルＩＤ）のルートノードであるノードＮ７により管理される。また、このようなルートノードは、例えば、データファイルＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する（所定の関係の一例）ノードＮｎであるように定められる。
【００３４】
そして、あるノードＮｎのユーザが、所望するデータファイルのレプリカを取得したい場合、当該レプリカの取得を望むノードＮｎ（以下、「ユーザノード」という）は、当該ユーザにより選択されたデータファイルのデータファイルＩＤ及び自己のアドレス情報（ＩＰアドレスなど）等を含むデータファイル所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。つまり、ユーザノードは、データファイル所在問合せメッセージを、ルートノードに向けて（ルートノード宛に）送出する（ルートノードにデータファイルのレプリカの所在を問い合わせる）。これにより、データファイル所在問合せ（検索）メッセージは、データファイルＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００３５】
なお、各ノードＮｎにおいてユーザにより選択されるべきデータファイルのデータファイル名及びデータファイルＩＤ等の属性情報は、例えばデータファイル分散保存システムＳを運営する運営者によるセンターサーバ（図示しない）から全てのノードＮｎに配信されるデータファイルカタログ情報に記述されている。
【００３６】
また、上記データファイル所在問合せメッセージに含まれるデータファイルＩＤは、ユーザノードによって、データファイル名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。なお、ＤＨＴルーティングについては、特開２００６−１９７４００号公報等でデータファイルの一例であるコンテンツを例に公知であるので、詳しい説明を省略する。
【００３７】
上記データファイル所在問合せ（検索）メッセージを受信したルートノードは、これに含まれるデータファイルＩＤに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該データファイル所在問合せメッセージの送信元であるユーザノードに対して返信する。こうしてインデックス情報を取得したユーザノードは、当該インデックス情報に含まれるあるデータファイル保持ノードのアドレス情報等に基づいて当該データファイル保持ノードにアクセスして、データファイル送信要求メッセージを送信し、そこからデータファイルのレプリカをダウンロード（取得）することが可能になる。なお、当該インデックス情報には、例えば複数のデータファイル保持ノードのノード情報が含まれていることもある（同一のデータファイルのレプリカが複数のデータファイル保持ノードに保存されている場合）。かかる場合、ユーザノードは、当該複数のデータファイル保持ノードのうち一つのデータファイル保持ノードを選択し、選択したデータファイル保持ノードに接続してデータファイルのレプリカをダウンロードすることができる。
【００３８】
なお、ルートノードは、当該インデックス情報に含まれるアドレス情報等に示されたデータファイル保持ノードに対してデータファイル送信要求メッセージを送信し、これにより、ユーザノードは、上記データファイル保持ノードからそのレプリカをダウンロードすることもできる。
【００３９】
また、データファイル保持ノードから取得したデータファイルのレプリカを保存したユーザノードは、当該レプリカを保存したことをそのルートノードに知らせるために、当該レプリカのデータファイルＩＤ及び自己のノード情報が含まれるパブリッシュ（登録通知）メッセージを生成し、該パブリッシュメッセージを、そのルートノードに向けて（ルートノード宛に）送出する。これにより、パブリッシュメッセージは、データファイル所在問合せ（検索）メッセージと同じように、データファイルＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。そして、該ルートノードは、受信したパブリッシュメッセージに含まれるノード情報及びデータファイルＩＤの組を含むインデックス情報を登録（インデックスキャッシュに記憶）することになる。こうして、上記ユーザノードは、新たに、上記データファイルのレプリカを保持するデータファイル保持ノードとなる。
【００４０】
以上のようにデータファイル保持ノードに保存されたデータファイルの改変を所望する場合には、ノード装置は、データファイルのルートノードに向けて改変作業を要求する改変要求メッセージを送信し、ルートノードから改変の許可を得て改変を行なう。ルートノードは、あるノードＮｎにデータファイルの改変を許可した場合には、そのノードＮｎが改変を終了するまで、他のノードＮｎに対して改変を許可しないよう、排他制御を行なう。
【００４１】
図２は、ルートノードによる排他制御の様子を示す概念図である。
【００４２】
図２は、オーバーレイネットワーク９におけるＩＤ空間に分散配置されたノードＮｎを示す。図２に示す例では、データファイルの改変の一例として「データファイルの編集」を要求している。
【００４３】
先ず、ノードＮ１４のユーザが、あるデータファイルの編集をしたい場合、ノードＮ１４は、ユーザにより選択された編集したいデータファイルのデータファイルＩＤ及び自己のアドレス情報等を含む[１]編集要求メッセージ（改変要求メッセージの一例）を生成し、これを自己のＤＨＴを用いたルーティングテーブルに従って他のノード装置Ｎｎに対して送出する。つまり、編集要求メッセージは、メッセージに含まれるデータファイルＩＤをキーとするＤＨＴルーティングによって、上述したクエリやパブリッシュと同様に、最終的にかかるデータファイルのルートノードに到着することになる。
【００４４】
図２に示す例では、ノードＮ１０がルートノードであり、ルートノードは、編集要求メッセージの送信元であるノードＮ１４に対して編集を許可する[２]編集許可メッセージ（許可メッセージの一例）を送信する。
【００４５】
次いで、ルートノードは、ノードＮ５から、ノードＮ１４と同じデータファイルのデータファイルＩＤ及びノードＮ５のアドレス情報等を含む[３]編集要求メッセージを受信する。
【００４６】
しかし、ルートノードは、既にノードＮ１４に編集を許可しており、かつ、ノードＮ１４から編集の完了報告（編集完了メッセージ）も受けていないので、ノードＮ５に対して編集を拒否する旨の編集拒否メッセージを送信する。
【００４７】
その後、ルートノードは、ノードＮ１４から編集が完了したことを通知する[５]編集終了メッセージ（改変終了メッセージの一例）を受信すると、編集されたデータファイルのレプリカを保存するデータファイル保持ノードであるノードＮ８及びノードＮ５に対して、データファイルの更新を要求する［６］［７］更新要求メッセージを送信する。
【００４８】
かかる更新要求メッセージには、対象となるデータファイルのデータファイルＩＤを含まれており、ノードＮ５及びノードＮ８は、当該データファイルＩＤを含むクエリにより、かかるデータファイルの所在をルートノードに問い合わせて編集後のデータファイルを取得するよう構成する。そして、自己の記憶部に保存されているデータファイルのレプリカに対して上書（保存しているレプリカを削除して、取得したデータファイルのレプリカを保存）する。なお、最初はノードＮ１４のみが編集後のデータファイルを保持していることとなるので、ノードＮ５及びノードＮ８のうち、最初に編集後のデータファイルの所在を問い合わせたノードは、ルートノードからノードＮ１４のインデックス情報を取得することとなる。
【００４９】
なお、ルートノードは、データファイルが編集されたことを、かかるデータファイルのレプリカを保存するデータファイル保持ノードに通知する手段として、更新要求メッセージを送信する構成のほか、例えば、編集されたデータファイルのレプリカを削除するよう要求する削除要求メッセージを送信してもよい。
【００５０】
更新要求メッセージにより、データファイル保持ノードが編集されたデータファイルを更新するよう構成すれば、データファイル分散保存システムＳ内に存在する当該データファイルのレプリカの数を編集前と編集後で同等に保てるという利点があり、一方、削除要求メッセージにより、データファイル保持ノードがデータファイルのレプリカを削除するよう構成すれば、新しい（編集後の）データファイルの取得に伴う（クエリの送受信、編集後のデータファイルのダウンロード等）ネットワーク負荷を避けることができる。
【００５１】
＜２.ノードＮｎの構成及び機能＞
次に、図３を参照して、ノードＮｎの構成及び機能について説明する。
【００５２】
図３は、ノードＮｎの概要構成例を示す図である。
【００５３】
各ノードＮｎは、図３に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、各種データ（例えば、データファイルのレプリカ、インデックスキャッシュ、ＤＨＴ等）及び各種プログラム等を記憶保存（格納）するためのハードディスク等から構成された記憶部１２と、受信されたデータファイルのレプリカ等を一時蓄積するバッファメモリ１３と、データファイルが映像や音声を含む場合に、データファイルのレプリカに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノードＮｎ等間の情報の通信制御を行なうための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、通信部２０、及び入力部２１はバス２２を介して相互に接続されている。なお、ノードＮｎとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。
【００５４】
また、データファイル分散保存システムＳが、当該システムＳに参加する際のアクセス先となるコンタクトノードを備えている場合には、記憶部１２には当該コンタクトノードのアドレス情報（ＩＰアドレス及びポート番号など）等が記憶されている。更に、記憶部１２には、保存（記録）しているデータファイルのレプリカに関する情報（タイトル、データファイルＩＤ等）を登録するための保存データファイル管理テーブルが記憶されている。
【００５５】
記憶部１２は、インデックスキャッシュ、編集中ノードホルダ、更新要求先ノードホルダを含んで構成される。
【００５６】
インデックスキャッシュには、自己が所在を管理するデータファイルの保持ノードであるノードＮｎのノード情報（ＩＰアドレスなどのアドレス情報を含む）と当該データファイルのデータファイルＩＤの組が含まれるインデックス情報が記憶されている。
【００５７】
編集中ノードホルダは、自己が所在を管理するデータファイルを編集しているノードＮｎのノード情報を格納するためのものである。自己が所在を管理するデータファイルが複数ある場合には、対応する編集中ノードホルダが夫々備えられている。
【００５８】
更新要求先ノードホルダは、自己が所在を管理するデータファイルのうち、編集作業が完了した報告がされた（編集完了メッセージにかかる）データファイルを保持するノードＮｎのノード情報を一時的に格納するためのものである。後述する「更新要求処理」において、更新要求メッセージが送信されると更新要求先ノードホルダから削除される。
【００５９】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラム（本発明のノード処理プログラムを含む）を読み出して実行することにより、全体を統括制御し、データファイル分散保存システムＳへの参加により上述したユーザノード、中継ノード、ルートノード、データファイル保持ノードの少なくとも何れか一つのノードとしての処理を行なうようになっている。
【００６０】
また、制御部１１は、本発明における各種メッセージの受信手段及び送信手段、判定手段、許可手段及び記憶手段等として機能する。
【００６１】
なお、上記ノード処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００６２】
＜３．各ノードＮｎの処理＞
以上の動作において、各ノードＮｎにおける処理を、図を参照して詳しく説明する。
【００６３】
＜３−１．全体処理＞
図４は、データファイル分散保存システムＳに参加している任意のノードＮｎにおける制御部１１のメイン処理を示すフローチャートであり、データファイル分散保存システムＳへの参加後（例えば、コンタクトノードへのアクセスの後）に本発明のノード処理プログラムが読み出され処理が開始する。
【００６４】
先ず、制御部１１は、ノードＮｎ自身の電源がオフとされたか否かを判定し（ステップＳ１０）、オフとされていなければ（ステップＳ１０：Ｎｏ）、メッセージを受信したか否かを判定する（ステップＳ１１）。
【００６５】
メッセージを受信していない場合には（ステップＳ１１：Ｎｏ）、入力部２１を通じてユーザからデータファイルを指定して編集指示がされたか否かを判定し（ステップＳ１２）、編集指示がされていなければ（ステップＳ１２：Ｎｏ）、ステップＳ１０へ移行し、編集指示がされた場合には（ステップＳ１２：Ｙｅｓ）、指定されたデータファイルのデータファイルＩＤ及び自己のアドレス情報等を含む編集要求メッセージを生成し、そのルートノードに向けて送信する（ステップＳ１３）。
【００６６】
一方、メッセージを受信した場合には（ステップＳ１１：Ｙｅｓ）、かかるメッセージの転送先があるか否か、すなわち、メッセージの宛先が自分であるか否かを判定し（ステップＳ１４）、メッセージの宛先が自分で無い場合には（ステップＳ１４：Ｎｏ）、ルーティングテーブルを参照してメッセージを他のノードＮｎに転送する（ステップＳ１５）。
【００６７】
メッセージのあて先が自分であれば（ステップＳ１４：Ｙｅｓ）、受信したメッセージが、編集要求メッセージであるか否かを判定し（ステップＳ１６）、編集要求メッセージであれば（ステップＳ１６：Ｙｅｓ）、「編集可否判定処理」を行なう（ステップＳ１７）。なお、「編集可否判定処理」については後に図を用いて詳述する。
【００６８】
受信したメッセージが、編集要求メッセージでなければ（ステップＳ１６：Ｎｏ）、編集拒否メッセージであるか否かを判定し（ステップＳ１８）、編集拒否メッセージであれば（ステップＳ１８：Ｙｅｓ）、編集が拒否された旨を表示部１６のディスプレイに表示するなどして、ユーザに提示する（ステップＳ１９）。
【００６９】
次いで、受信したメッセージが、編集拒否メッセージでなければ（ステップＳ１８：Ｎｏ）、編集許可メッセージであるか否かを判定し（ステップＳ２０）、編集許可メッセージであれば（ステップＳ２０：Ｙｅｓ）、「編集処理」を行なう（ステップＳ２１）。なお、「編集処理」については後に図を用いて詳述する。
【００７０】
そして、受信したメッセージが、編集許可メッセージでなければ（ステップＳ２０：Ｎｏ）、編集完了メッセージであるか否かを判定し（ステップＳ２２）、編集完了メッセージであれば（ステップＳ２２：Ｙｅｓ）、「更新要求処理」を行なう（ステップＳ２３）。なお、「更新要求処理」については後に図を用いて詳述する。
【００７１】
続いて、受信したメッセージが、編集完了メッセージでなければ（ステップＳ２２：Ｎｏ）、更新要求メッセージであるか否かを判定し（ステップＳ２４）、更新要求メッセージであれば（ステップＳ２４：Ｙｅｓ）、「更新処理」を行なう（ステップＳ２３）。なお、「更新処理」については後に図を用いて詳述する。
【００７２】
そして、受信したメッセージが、更新要求メッセージでもなければ（ステップＳ２４：Ｎｏ）、クエリやパブリッシュなどのその他のメッセージであるため、その他のメッセージに応じた処理を行なう（ステップＳ２６）。
【００７３】
ステップＳ１７、Ｓ１９、Ｓ２１、Ｓ２３、Ｓ２５及びＳ２６の処理の後、ステップＳ１０に移行して、電源がオフとなるまでステップＳ１０からステップＳ２６の処理を繰り返し行なう。
【００７４】
そして、電源がオフとなった場合に（ステップＳ１０：Ｙｅｓ）、処理を終了する。
【００７５】
＜３−２．ステップＳ１７の編集可否判定処理＞
図５は、上記ステップＳ１７の「編集可否判定処理」を示すフローチャートである。
【００７６】
かかる処理は、ステップＳ１６にてデータファイルの編集を要求するノードＮｎから編集要求メッセージを受信したノード（編集要求の対象であるデータファイルのルートノード）が行なう処理である。
【００７７】
先ず、記憶部１２の、編集要求がされたデータファイルに対応する“編集中ノードホルダ”が空（から）か否かを確認し（ステップＳ３０）、空である場合（ステップＳ３０：Ｙｅｓ）には、編集要求メッセージを送信してきたノードＮｎ（編集要求ノードＮｎ）に対して編集許可メッセージを送信し（ステップＳ３１）、“編集中ノードホルダ”に編集要求ノードＮｎのノード情報を格納する（ステップＳ３２）。
【００７８】
次いで、記憶部１２の“インデックスキャッシュ”に編集要求ノードＮｎのノード情報を含むインデックス情報があるか否かを判定し（ステップＳ３３）、編集要求ノードＮｎのノード情報を含むインデックス情報がある場合には（ステップＳ３３：Ｙｅｓ）、“インデックスキャッシュ”から、編集要求ノードＮｎのノード情報を含むインデックス情報を削除する（ステップＳ３４）。
【００７９】
一方、“編集要求ノードホルダ”に編集要求ノードＮｎのノード情報を含むインデックス情報が無い場合（ステップＳ３３：Ｎｏ）には、処理を終了する。
【００８０】
また、“編集中ノードホルダ”が空（から）でない場合（ステップＳ３０：Ｎｏ）には、編集要求ノードＮｎに対して編集拒否メッセージを送信し（ステップＳ３５）、処理を終了する。
【００８１】
＜３−３．ステップＳ２１の編集処理＞
図６は、上記ステップＳ２１の「編集処理」を示すフローチャートである。
【００８２】
かかる処理は、ステップＳ２０にて編集対象であるデータファイルのルートノードから編集許可メッセージを受信したノードＮｎが行なう処理である。
【００８３】
先ず、ユーザから指定された編集対象であるデータファイルのレプリカが、記憶部１２に記憶されているか否かを判定し（ステップＳ４０）、編集対象のデータファイルのレプリカが記憶部１２に記憶されていない場合（ステップＳ４０：Ｎｏ）には、編集対象のデータファイルのレプリカを取得する（ステップＳ４１）。
【００８４】
具体的には、編集対象のデータファイルのデータファイルＩＤ及び自己のアドレス情報等を含むデータファイル所在問合せメッセージ（クエリ）を生成し、ルートノードに向けて送出し、ルートノードから編集対象のデータファイルを保持するデータファイル保持ノードのインデックス情報を受信し、インデックス情報に含まれるデータファイル保持ノードのアドレス情報等に基づいて当該データファイル保持ノードにアクセスして、データファイルのレプリカをダウンロード（取得）する。なお、上記ステップＳ２０でルートノードから編集許可メッセージを受信しているので、ＤＴＨによるメッセージ転送に依らず、かかる編集許可メッセージの送信元であるルートノードに対して直接データファイル保持ノードのインデックス情報を要求するよう構成してもよい。
【００８５】
次いで、入力部２１から受け付けたユーザからの指示に従って、データファイルを編集し（ステップＳ４２）、編集が完了したことを知らせる編集完了メッセージを、編集対象のデータファイルのルートノードに対して送信して（ステップＳ４３）処理を終了する。
【００８６】
＜３−４．ステップＳ２３の更新要求処理＞
図７は、上記ステップＳ２３の「更新要求処理」を示すフローチャートである。
【００８７】
かかる処理は、ステップＳ２２にてデータファイルの編集を行なったノードＮｎから編集完了メッセージを受信したノード（編集されたデータファイルのルートノード）が行なう処理である。
【００８８】
先ず、記憶部１２のインデックスキャッシュに記憶されているインデックス情報に含まれるノード情報を、記憶部１２の“更新要求先ノードホルダ”に移す（ステップＳ５０）。具体的には、インデックスキャッシュに記憶されているインデックス情報のうち、ステップＳ２２の編集完了メッセージにて編集完了が報告されたデータファイルのインデックス情報（言い換えれば、編集完了が報告されたデータファイルを保持するデータファイル保持ノードのノード情報を含むインデックス情報）を、インデックスキャッシュから全て削除して、かかるインデックス情報に含まれるノード情報を“更新要求先ノードホルダ”に記憶させる。
【００８９】
そして、“編集中ノードホルダ”に格納されているノード情報を、“インデックスキャッシュ”に移す（ステップＳ５１）。具体的には、“編集中ノードホルダ”に格納されているノード情報を削除して、かかるノード情報と編集されたデータファイルのデータファイルＩＤの組をインデックス情報としてインデックスキャッシュに記憶させる。
【００９０】
これらステップＳ５０及びステップＳ５１の処理により、データファイル分散システムＳに参加するノードＮｎが、編集前の古いデータファイルを取得することを防いで、編集後の新しいデータファイルを提供することができる。
【００９１】
続いて、“更新要求先ノードホルダ”が空（から）か否かを判定し（ステップＳ５２）、空でない場合には（ステップＳ５２：Ｎｏ）、“更新要求先ノードホルダ”に記憶されているノード情報を１つ選択し（ステップＳ５３）、選択したノード情報にかかるノードＮｎに、編集されたデータファイルのデータファイルＩＤを含む更新要求メッセージを送信する（ステップＳ５４）。
【００９２】
次いで、ステップＳ５３で選択したノード情報を“更新要求先ノードホルダ”から削除し（ステップＳ５５）、所定待機時間（例えば、１分など）待機した後に（ステップＳ５６）、ステップＳ５２の処理に移行する。そして、“更新要求先ノードホルダ”が空になるまで、ステップＳ５２からステップＳ５６の処理を繰り返し行ない、“更新要求先ノードホルダ”が空になる（ステップＳ５３：Ｙｅｓ）と、処理を終了する。
【００９３】
このように、“更新要求ノードリスト”のノードＮｎに対して更新要求メッセージを送信することで、かかる編集要求メッセージを受信したノードＮｎ（つまり、編集されたデータファイルを保持していたノードＮｎ）が、自己が保持している古い（編集前）のデータファイルを、新しい（編集後の）データファイルに更新することができる。
【００９４】
また、“更新要求ノードリスト”の全てのノードＮｎに対して少しずつ時間をずらしながら（ステップＳ５５の所定時間待機）更新要求メッセージを送信するよう構成したので、編集後の新しいデータファイルを保持しているノードＮｎ（例えば、かかるデータファイルを編集したノードＮｎ）にダウンロード要求が集中するのを防ぐことができる。
【００９５】
なお、ステップＳ５３では、 “更新要求先ノードホルダ”に記憶されているノード情報を１つ選択するよう構成したが、“更新要求先ノードホルダ”に記憶されているノード情報の数に応じて、選択数を適宜変更してもよい。
【００９６】
＜３−５．ステップＳ２５の更新処理＞
図８は、上記ステップＳ２５の「更新処理」を示すフローチャートである。
【００９７】
かかる処理は、ステップＳ２４にて、編集されたデータファイルのルートノードから更新要求メッセージを受信したノードＮｎが行なう処理である。
【００９８】
先ず、受信した更新要求メッセージに含まれるデータファイルＩＤのデータファイルのレプリカをダウンロードして、記憶部１２に記憶しているデータファイルのレプリカを更新する（ステップＳ６０）。具体的には、データファイルＩＤを含むクエリにより、かかるデータファイルのレプリカの所在をルートノードに問い合わせて、編集後のデータファイルのレプリカをダウンロード（取得）するよう構成する。そして、記憶部１２に記憶しているデータファイルのレプリカに対して上書き保存（保存しているレプリカを削除して、取得したデータファイルのレプリカを保存）する。
【００９９】
そして、自己がデータファイルのレプリカを保存した（ダウンロード）したことを他のノードＮｎに知らせるため、パブリッシュメッセージを送信して（ステップＳ６１）処理を終了する。具体的には、更新したデータファイルのデータファイルＩＤと自己のノード情報が含まれるパブリッシュ（登録通知）メッセージを生成し、該パブリッシュメッセージを、そのルートノードに向けて（ルートノード宛に）送出する。
【０１００】
なお、本実施形態では、図７及び図８を用いて、データファイルが編集されたことをかかるデータファイルのレプリカを保存するデータファイル保持ノードに通知する手段として、データファイルのルートノードがデータファイル保持ノードに対して更新要求メッセージを送信し、データファイル保持ノードは、更新要求メッセージに従って記憶部１２に記憶したデータファイルのレプリカを更新するよう構成したが、削除要求メッセージを送信するよう構成してもよい。
【０１０１】
ルートノードから削除要求メッセージを受信したデータファイルのレプリカを保持するノードＮｎは、かかる削除要求メッセージに含まれるデータファイルＩＤに対応するデータファイルのレプリカを記憶部１２から削除するよう構成すればよい。
【０１０２】
以上説明したように、データファイルの編集を行なう場合には、データファイルのルートノードが、編集作業の排他制御を行なうよう構成したので、各データファイルの編集作業の排他制御にかかる負荷を、それぞれのルートノードに分散させることができる。そして、ルートノードは、１台のノードＮｎにのみ編集作業を許可し、かかるノードＮｎからデータファイルの編集が完了したことを知らせる編集完了メッセージを受信するまでの間は、他のノードＮｎからの編集要求を拒否するよう構成したので、データファイルの編集作業が複数のノードＮｎにて同時に行なわれることを防ぐことができる。
【０１０３】
また、ステップＳ５０乃至ステップＳ５６にてデータファイルの編集を行なったノードＮｎから編集完了メッセージを受信したノード（編集されたデータファイルのルートノード）は、インデックスキャッシュに保存されているノードＮｎに対して（一旦、“更新要求先ノードホルダ”に移した後）、当該データファイルの更新要求メッセージを送信してかかるデータファイルが編集されたことを通知するよう構成したので、通知を受けたデータファイル保持ノードは、ステップＳ６０及びステップＳ６１にて、新しい（編集後の）データファイルのレプリカを取得して、古いデータファイルを更新することができ、他のノードＮｎからのデータファイルのダウンロード要求に対して古い（編集前の）データファイルのレプリカを送信することを防止することができる。
【０１０４】
更に、ステップＳ３３及びステップＳ３４にてデータファイルの編集を要求するノードＮｎから編集要求メッセージを受信したノード（編集要求対象のデータファイルのルートノード）は、編集要求ノードＮｎのノード情報を含むインデックス情報が、インデックスキャッシュに保存されている場合には、インデックスキャッシュから当該インデックス情報を削除するよう構成したので、編集作業中であっても、ルートノードは、データファイルの所在の問い合わせ（クエリ）に対して、当該改変作業中のノードＮｎ以外の他のデータファイル保持ノードＮｎのアドレス情報を含むインデックス情報を返信することができ、データファイルの編集作業が行なわれていても作業前のデータファイルにて対応することができる。
【０１０５】
なお、データファイルが複数の分割ファイルによって構成されたメタデータファイルである場合にも本発明を適用することができる。
【０１０６】
図９は、分割データファイルＤＡ、分割データファイルＤＢ及び分割データファイルＤＣから構成されるメタデータファイルＭＤの説明図である。
【０１０７】
各分割データファイルＤＡ，ＤＢ及びＤＣには夫々データファイルＩＤが付与されており、メタデータファイルＭＤにも固有のデータファイルＩＤが付与されている。また、メタデータファイルＭＤには、各分割データファイルＤＡ，ＤＢ及びＤＣのデータファイルＩＤが、分割データファイルのデータファイルＩＤリストとして記憶されている。
【０１０８】
制御部１１は、上記ステップＳ１２において、ユーザからメタデータファイルＭＤの編集が指示された場合には、制御部１１は、上記ステップＳ１３の処理において、メタデータファイルＭＤのルートノードに対して、データファイルの編集要求メッセージを送信する。つまり、編集要求メッセージは、メタデータファイルＭＤのデータファイルＩＤに基づくルーティングに従って転送され、メタデータファイルＭＤのルートノードに辿りつくこととなる。
【０１０９】
そして、メタデータファイルＭＤのルートノードから編集許可メッセージを受けて、メタデータファイルＭＤの編集を行なうノードＮｎは、編集作業が完了すると、編集完了メッセージをルートノードＮｎに送信するが、この際、各分割データファイルＤＡ，ＤＢ及びＤＣには編集前と異なる新しいデータファイルＩＤを付与するよう構成する。
【０１１０】
また、メタデータファイルＭＤの分割データファイルのデータファイルＩＤリストを、夫々新しく付与されたデータファイルＩＤに書き換える。
【０１１１】
このとき、分割データファイルの数を変更することも可能である。編集前は分割データファイルＤＡ，ＤＢ及びＤＣの３個の分割データファイルであったが、１０個の分割データファイルとなるよう編集することも可能である。その場合にも編集後の１０個のデータファイルに対して夫々データファイルＩＤを付与する。
【０１１２】
このように、分割データファイルのデータファイルＩＤが新しいデータファイルＩＤに書換えられることにより、古いデータファイルＩＤは検索対象から外れることとなる。
【０１１３】
検索対象から外れたデータファイルＩＤは、これ以降、クエリや編集等の対象とならない。従って、所定時間（例えば、数ヶ月など）クエリや編集等の対象とされなかったデータファイルＩＤにかかるデータファイルは、記憶部１２から削除するよう構成することにより、記憶部１２の記憶容量を有効に活用することができる。
【０１１４】
なお、分割データファイルＤＡ，ＤＢ及びＤＣのそれぞれのルートノードに対して、編集要求メッセージを送信し、それぞれのルートノードから編集許可メッセージを受けることにより、同一のメタデータファイルＭＤについて同時に複数人（図９の例では３人）で編集処理を行なうことが可能である。なお、この場合でも各分割データファイルＤＡ，ＤＢ及びＤＣはそれぞれのルートノードによって排他制御されることとなる。従って、３個の分割データファイルＤＡ，ＤＢ及びＤＣは、それぞれ１ユーザーのみが編集許可を受けることが出来る。
【０１１５】
なお、上記実施形態におけるデータファイル分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【０１１６】
【図１】本実施形態に係るデータファイル分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】ルートノードによる排他制御の様子を示す概念図である。
【図３】ノードＮｎの概要構成例を示すブロック図である。
【図４】ノードＮｎにおける制御部１１のメイン処理を示すフローチャートである。
【図５】ステップＳ１７の「編集可否判定処理」を示すフローチャートである。
【図６】ステップＳ２１の「編集処理」を示すフローチャートである。
【図７】ステップＳ２３の「更新要求処理」を示すフローチャートである。
【図８】ステップＳ２５の「更新処理」を示すフローチャートである。
【図９】分割データファイルＤＡ、分割データファイルＤＢ及び分割データファイルＤＣから構成されるメタデータファイルＭＤの説明図である。
【符号の説明】
【０１１７】
８  ネットワーク
９  オーバーレイネットワーク（Ｐ２Ｐネットワーク）
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  データファイル分散保存システム
Ｎｎ  ノード
【図１】
2010102573.tif 000003
【図２】
2010102573.tif 000004
【図３】
2010102573.tif 000005
【図４】
2010102573.tif 000006
【図５】
2010102573.tif 000007
【図６】
2010102573.tif 000008
【図７】
2010102573.tif 000009
【図８】
2010102573.tif 000010
【図９】
2010102573.tif 000011