(57)【要約】【課題】  ＤＨＴを用いた分散データ管理システムにおいて、特定のデータ源やデータ型など、同じ種類のデータを効率的に読み出す。【解決手段】  本発明は、ＤＨＴを用いた分散データ管理システムの各ノードにおいて、データ書き込み時には、データの値から得られる値をキーとして書き込みを行うと共に、さらに、メタデータ（データ源の識別情報、データ型の識別情報等）から得られる値をキーとしてデータの書き込みを行い、データの読み出し時には、必要に応じてデータ源やデータ型を指定して読み出しを行うことで、必要なデータが格納されているノードあるいはノード群のみにアクセスする。また、前述のメタデータから得られる値をキーとしてデータを格納することで、同時にレプリカを作成可能にするものである。【選択図】  図１
2010271798.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードから構成される分散データ管理システムの分散データ管理装置（ノード）であって、
管理対象データをメタデータを含むものとし、
ノード外とのデータのやり取りを行う通信・インターフェース手段と、
任意のビット列から予め決められた方法でキーを生成するキー生成手段と、
キーとデータの組を格納するデータベースと、
キーとデータの対を前記データベースに格納し、指定されたキーに対応するデータを該データベースから取り出すデータベース管理手段と、
分散ハッシュテーブル技術に基づくルーティングテーブルを用いて、指定されたキーに対応する他のノードへのルーティングを行うルーティング手段と、
前記通信・インターフェース手段を介して取得した書き込み要求及び読み出し要求を解析し、前記通信・インターフェース手段、前記キー生成手段、前記データベース管理手段、前記ルーティング手段を制御する要求処理手段と、を有し、
前記要求処理手段は、
外部のノードから通信・インターフェース手段を介して書き込み要求を取得すると、前記キー生成手段に対して、該要求に含まれるデータからキーを生成させ、前記ルーティング手段に対して、該キーに基づいて書き込み対象のノードへのルーティングを指示し、前記通信・インターフェース手段を介して前記キーと前記データからなる書き込み要求を該書き込み対象ノードに送信させる手段と、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求でないと判断した場合は、前記データベース管理手段に対して、該キーと該要求に含まれるデータを前記データベースに書き込むよう指示し、前記キー生成手段に対し、該データのメタデータの全部あるいは一部をバイト列としてキーを生成するように指示し、前記ルーティング手段に対して、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを指示し、前記通信・インターフェース手段に対して、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに送信させ、該ルーティング手段に該データのキーとレプリカのキーを対応付けて前記ルーティングテーブルを更新させる手段と、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求であると判断した場合は、前記データベース管理手段に対して、該要求に含まれるデータを前記データベースに書き込むよう指示する手段と、
データ読み出し要求を取得し、該要求のキーが自ノードの管理対象範囲外であると判断した場合は、該キーに基づき前記ルーティング手段に読み出し対象のノードへのルーティングを指示し、前記通信・インターフェース手段を介して該読み出し要求を該読み出し対象ノードに転送させ、該読み出し対象ノードから返却された応答を送信元に転送させる手段と、
前記データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づき前記データベース管理手段に対し、前記データベースから対応するデータの読み出しを指示し、前記通信・インターフェース手段に該データを含む応答を要求元ノードに送信させる手段と、
を有することを特徴とする分散データ管理装置。
【請求項２】
前記データベース管理手段は、
前記データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う
請求項１記載の分散データ管理装置。
【請求項３】
前記データベース管理手段は、
前記データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う
請求項１記載の分散データ管理装置。
【請求項４】
複数のノードから構成される分散データ管理システムの各ノードにおける分散データ管理方法であって、
管理対象のデータはメタデータを含み、
外部のノードから書き込み要求を受信すると、該要求に含まれるデータからキーを生成し、該キーに基づいて書き込み対象のノードへのルーティングを行い、該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し、該書き込みノードからの応答を要求元に送信し、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求でない場合は、該キーと該要求に含まれるデータを前記データベースに書き込み、該データのメタデータの全部あるいは一部をバイト列としてキーを生成し、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを行い、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに転送し、該書き込み対象ノードからの応答を送信元ノードに送信し、当該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し、該データのキーとレプリカのキーを対応付けて前記ルーティングテーブルを更新し、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求である場合は、該要求に含まれるデータを前記データベースに書き込み、応答を送信元ノードに送信し、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内でない場合は、書き込み対象ノードへのルーティングを行い、該書き込み対象ノードへ要求を転送し、該書き込み対象ノードからの応答を送信元ノードに送信し、
データ読み出し要求を取得すると、該要求のキーが自ノードの管理対象範囲外である場合は、該キーに基づき読み出し対象のノードへのルーティングを行い、該読み出し要求を該読み出し対象ノードに転送し、該読み出し対象ノードから返却された応答を要求元に転送し、
前記データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づき前記データベースから対応するデータを読み出し、該データを含む応答を要求元ノードに送信する、
ことを特徴とする分散データ管理方法。
【請求項５】
前記データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う
請求項４記載の分散データ管理方法。
【請求項６】
前記データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う
請求項４記載の分散データ管理方法。
【請求項７】
請求項１乃至３のいずれか１項に記載の分散データ管理装置を構成する各手段としてコンピュータを機能させるための分散データ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データ管理装置及び方法及びプログラムに係り、特に、データをネットワークを介して通信する複数のノードに分散して蓄積及び管理するための分散データ管理装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ディジタルデータ量の増大を背景として、データ管理システムのスケーラビリティが重視されるようになり、特に成長能力の面から、スケール・アウト性に優れたpeer-to-peer（Ｐ２Ｐ）型の分散データ管理システムが注目を集めている。
【０００３】
Ｐ２Ｐデータ管理システムは既によく知られた技術であり、大きく構造化Ｐ２Ｐ(structured P2P)方式と非構造化(unstructured P2P)方式の２つに分けられるが、検索コストの観点から近年は分散ハッシュテーブル（ＤＨＴ：Distributed Hash Table）技術を用いた構造化Ｐ２Ｐ方式の研究開発が盛んになっている。
【０００４】
これらＤＨＴを利用した構造化Ｐ２Ｐデータ管理システムでは、一般に、データそれ自体をビット列と見做し、そこからハッシュ関数等を用いて固定長のキー値を生成し、そのキー値に基づいてデータが格納されるノードを決定する方式が採られている。キー値とデータ格納ノードの対応関係はルーティングテーブルで管理されており、個々のノードのシステムへの参加及び脱退などに応じて適宜更新される。ハッシュ関数を用いることで、特定のノードに書き込み負荷が集中することなく、データがシステムを構成する各ノードにまんべんなく分布することが期待できる。さらに、ＤＨＴを用いた構造化Ｐ２Ｐデータ管理システムでは、一般に、個々のノードは、キー値とノードの対応関係を全て知っている必要がない。キーを含む読み出し、または、書き込み要求を受信したノードは、ルーティングテーブルを参照し、そのキー値が自ノードの管理対象範囲内であれば、それを自ノードで処理し、そうでなければそのキー値に対応するノード、あるいは、そのキー値に対応するノードを知っている可能性が高いノードに、その要求を転送する仕組みを持つ。これにより、ノードの参加や脱退が頻繁に行われるような環境においても、ルーティングテーブルの更新頻度を抑制しつつ、適切なノードに要求を届けることを可能にしている（例えば、非特許文献１，２参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】"A Survey and Comparison of Peer-to-Peer Overlay Network Schemes", Eng Keong Lua, Jon Crowcroft, Marcelo Pias, Ravi Sharma and Steven Lim, IEEE COMMUNICATIONS SURVEY AND TUTORIAL, MARCH 2004.
【非特許文献２】"WIDE ２００２年度 研究報告書 第１７部 オーバーレイネットワークによる統合分散環境"
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、単にデータそれ自体をビット列と見做し、そのハッシュ値をキーとしてデータを格納するだけでは、データを読み出す際には、そのキー値を特定してデータを読み出す以外の方法では、検索効率が高くならない。例えば、大量のセンサの出力データを管理するシステムにおいて、特定のセンサのみの出力データを読み出したい場合、該特定センサのデータは、その値のハッシュ値に応じて、システム内の別々のノードに存在しており、該特定センサのデータを所持しているかどうかは個々のノードにアクセスしてみないとわからない。
【０００７】
すなわち、特定センサのデータだけを読み出すために、システム内の全てのノードにアクセスする必要があり、検索効率の劣化が課題となる。
【０００８】
また、データの処理を行う際、処理プログラムはしばしば特定の型のデータのみを扱う。しかし、データをビット列と見做したハッシュ値をキーとしてデータを格納するだけでは、前段に述べたのと同様、該当する型のデータを持つノードを予め特定することはできず、全てのノードにアクセスする必要があり、検索効率の劣化が課題となる。
【０００９】
また、ハッシュ値をキーとしてデータを格納するだけでは、その格納ノードに障害が発生した場合、該データへのアクセスが不可能となるが、これを解決するため、従来は該ハッシュ値に予め定められた演算を施すことによって得られる値をキーとして、そのキーに対応するノードにレプリカ（複製）を格納するという方法を採っていた。
【００１０】
本発明は、上記の点に鑑みなされたもので、ＤＨＴを用いた分散データ管理システムにおいて、特定のデータ源やデータ型など、同じ種類のデータを効率的に読み出すことが可能な分散データ管理装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
図１は、本発明の原理構成図である。
【００１２】
本発明（請求項１）は、複数のノードから構成される分散データ管理システムの分散データ管理装置（ノード）であって、
管理対象データを、メタデータを含むものとし、
ノード外とのデータのやり取りを行う通信・インターフェース手段１１と、
任意のビット列から予め決められた方法でキーを生成するキー生成手段１４と、
キーとデータの組を格納するデータベース１６と、
キーとデータの対をデータベース１６に格納し、指定されたキーに対応するデータを該データベースから取り出すデータベース管理手段１３と、
分散ハッシュテーブル技術（ＤＨＴ）に基づくルーティングテーブル１７を用いて、指定されたキーに対応する他のノードへのルーティングを行うルーティング手段１５と、
通信・インターフェース手段１１を介して取得した書き込み要求及び読み出し要求を解析し、通信・インターフェース手段１１、キー生成手段１４、データベース管理手段１３、ルーティング手段１５を制御する要求処理手段１２と、を有し、
要求処理手段１２は、
外部のノードから通信・インターフェース手段１１を介して書き込み要求を取得すると、キー生成手段１４に対して、該要求に含まれるデータからキーを生成させ、ルーティング手段１５に対して、該キーに基づいて書き込み対象のノードへのルーティングを指示し、通信・インターフェース手段１１を介してキーとデータからなる書き込み要求を該書き込み対象ノードに送信させる手段と、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ（複製）書き込み要求でないと判断した場合は、データベース管理手段に対して、該キーと該要求に含まれるデータをデータベースに書き込むよう指示し、キー生成手段１４に対し、該データのメタデータの全部あるいは一部をバイト列としてキーを生成するように指示し、ルーティング手段１５に対して、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを指示し、通信・インターフェース手段１１に対して、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに送信させ、該ルーティング手段１５に該データのキーとレプリカのキーを対応付けてルーティングテーブル１７を更新させる手段と、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求であると判断した場合は、データベース管理手段１３に対して、該要求に含まれるデータをデータベース１６に書き込むよう指示する手段と、
データ読み出し要求を取得し、該要求のキーが自ノードの管理対象範囲外であると判断した場合は、該キーに基づきルーティング手段１５に読み出し対象のノードへのルーティングを指示し、通信・インターフェース手段１１を介して該読み出し要求を該読み出し対象ノードに転送させ、該読み出し対象ノードから返却された応答を要求元に転送させる手段と、
データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づきデータベース管理手段１３に対し、データベース１６から対応するデータの読み出しを指示し、通信・インターフェース手段１１に該データを含む応答を転送元ノードに送信させる手段と、
を有することを特徴とする分散データ管理装置。
【００１３】
また、本発明（請求項２）は、データベース管理手段において、データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う。
【００１４】
また、本発明（請求項３）は、データベース管理手段において、データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う。
【００１５】
図２は、本発明の原理を説明するための図である。
【００１６】
本発明（請求項４）は、複数のノードから構成される分散データ管理システムの各ノードにおける分散データ管理方法であって、
管理対象のデータはメタデータを含み、
外部のノードから書き込み要求を受信すると（ステップ１）、該要求に含まれるデータからキーを生成し（ステップ２）、該キーに基づいて書き込み対象のノードへのルーティングを行い（ステップ３）、該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し（ステップ４）、該書き込み対象ノードからの応答を要求元に送信し（ステップ５）
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり（ステップ６、Ｙｅｓ）、かつ、該要求がレプリカ書き込み要求でない場合は（ステップ７、Ｎｏ）、該キーと該要求に含まれるデータをデータベースに書き込み（ステップ８）、該データのメタデータの全部あるいは一部をバイト列としてキーを生成し（ステップ９）、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを行い（ステップ１０）、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに転送し（ステップ１１）、該書き込み対象ノードからの応答を送信元ノードに送信し（ステップ１２）当該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し、該データのキーとレプリカのキーを対応付けてルーティングテーブルを更新し（ステップ１３）、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり（ステップ６、Ｙｅｓ）、かつ、該要求がレプリカ書き込み要求である場合は（ステップ７、Ｙｅｓ）、該要求に含まれるデータをデータベースに書き込み（ステップ１４）、応答を送信元ノードに送信し（ステップ２２）、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内でない場合は（ステップ６、Ｎｏ）、書き込み対象ノードへのルーティングを行い（ステップ１９）、該書き込み対象ノードへ要求を転送し（ステップ２０）、該書き込み対象ノードからの応答を送信元ノードに送信し（ステップ２１）、
データ読み出し要求を取得すると、該要求のキーが自ノードの管理対象範囲外である場合は、該キーに基づき読み出し対象のノードへのルーティングを行い（ステップ１５）、該読み出し要求を該読み出し対象ノードに転送し（ステップ１６）、該読み出し対象ノードから返却された応答を要求元に転送し、
データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づきデータベースから対応するデータを読み出し（ステップ１７）、該データを含む応答を要求元ノードに送信する（ステップ１８）。
【００１７】
また、本発明（請求項５）は、データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う。
【００１８】
また、本発明（請求項６）は、データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う。
【００１９】
本発明（請求項７）は、請求項１乃至３のいずれか１項に記載の分散データ管理装置を構成する各手段としてコンピュータを機能させるための分散データ管理プログラムである。
【００２０】
上記のように、本発明では、ＤＨＴを用いた分散データ管理システムの各ノードにおいて、データ書き込み時には、データの値から得られる値をキーとして書き込みを行うと共に、さらに、メタデータ（データ源の識別情報、データ型の識別情報等）から得られる値をキーとしてデータの書き込みを行い、データの読み出し時には、必要に応じてデータ源やデータ型を指定して読み出しを行うことで、必要なデータが格納されているノードあるいはノード群のみにアクセスすることにより、より検索効率を高めることを実現する。
【００２１】
さらに、一般的に分散データ管理システムにおいては、通常データのレプリカを複数の異なるノードに格納することで信頼性等の向上を図るが、ＤＨＴを用いた従来の分散データ管理システムにおいては、レプリカ配置は、データから導出されたハッシュ値（オリジナルのキー）に、予め定められた演算を施すことによって得られる値をキーとして、そのキーに対応するノードにレプリカを格納するという方法を採っていた。しかし、本発明の分散データ管理システムでは、前述のメタデータ（データ源の識別情報、データ型の識別情報等）から得られる値をキーとしてデータを格納することで、同時にレプリカを作成可能にするものである。
【発明の効果】
【００２２】
上記のように本発明によれば、分散データ管理システムにおいて、データの書き込みの分散性を保ちつつ、データ読み出し時の絞り込みの効率の向上を実現すると共に、信頼性能の向上を実現する。また、従来は該ハッシュ値に予め定められた演算を施すことによって得られる値をキーとして、そのキーに対応するノードにレプリカ（複製）を格納するという方法を採っていた。しかし、本発明では、この方式でレプリカを用意する代わりに、前述のメタデータ（データ源の識別情報、データ型の識別情報等）から得られる値をキーとしてデータを格納する際、これをレプリカとしても利用可能なようにルーティングテーブルを構成することで、該データの可用性を高めることが可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明の原理構成図である。
【図２】本発明の原理を説明するための図である。
【図３】本発明を適用する分散データ管理システムの構成図である。
【図４】本発明の一実施の形態におけるノードの構成図である。
【図５】本発明の一実施の形態における温度センサのデータ（その１）である。
【図６】本発明の一実施の形態における温度センサのデータ（その２）である。
【図７】本発明の一実施の形態における書き込み方法のシーケンスチャートである。
【図８】データから生成されたキーを指定した場合の読み出し方法のシーケンスチャートである。
【図９】本発明の一実施の形態における読み出し方法のシーケンスチャート（メタデータから生成されたキーを指定）である。
【発明を実施するための形態】
【００２４】
以下、図面と共に本発明の実施の形態を説明する。
【００２５】
図３は、本発明を適用する分散データ管理システムの構成を示し、図４は、本発明の一実施の形態におけるノードの構成を示す。
【００２６】
本発明では、図４で示されるノードを１台のＰＣ（パーソナルコンピュータ）上で動作させ、これらのＰＣをＩＰ（インターネットプロトコル）ネットワークを介して接続することで、図３に示すデータ管理システムを構成する。ここでＰＣは、単独のハードウェアであってもよいのは勿論のこと、仮想化技術を用いた仮想マシンであってもよい。仮想マシンについては、既によく知られた技術であり、詳細については、「http://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E6%A9%9F%E6%A2%B0」等を参照することとし、ここでは詳細な説明は省略する。
【００２７】
ノード１０は、通信・インターフェース部１１、要求処理部１２、データベース管理部１３、キー生成部１４、ルーティング部１５、データベース１６、ルーティングテーブル１７から構成される。このうち、データベース１６及びルーティングテーブル１７は、ハードディスク装置等の記憶媒体である。
【００２８】
通信・インターフェース部１１は、ノード外との要求・応答のやり取りを行う。
【００２９】
要求処理部１２は、通信・インターフェース１１で受信した外部からの要求が、書き込み要求か、読み出し要求か、また、要求にキーが含まれているか否か、キーが含まれている場合は、当該キーが自ノードの管理対象範囲内か否か、書き込み要求の場合に、当該要求がレプリカ書き込み要求か否か等を判断し、通信・インターフェース１１、データベース管理部１３、キー生成部１４、ルーティング部１５を制御する。
【００３０】
データベース管理部１３は、書き込み要求によりキーとデータの対をデータベース１６に書き込む処理と、読み出し要求により指定されたキーに対応するデータをデータベース１６から読み出す処理を行う。
【００３１】
キー生成部１４は、任意のビット列から予め決められた方法でキーを生成する。
【００３２】
ルーティング部１５は、分散ハッシュテーブル技術（ＤＨＴ）に基づくルーティングテーブル１７を用いて、指定されたキーに対応する他のノードへのルーティングを行う。
【００３３】
上記のシステムにシステム外からデータを投入したり取得したりするには、
（ａ）一時的にノードとしてシステムに参加し、データ投入後システムから離脱する方法；（ｂ）ノード１０の通信・インターフェース部１１が機能の一部としてユーザインターフェース機能やプログラムインターフェース機能を持つものとし、これを介してデータの投入や取得を行う方法；
を用いるものとする。
【００３４】
本発明では、管理対象データとしてメタデータを用いるが。メタデータとして、データの識別情報やデータ型の識別情報等があるが、本実施の形態では、データ源のＩＤ（識別子）を用いるものとする。データ源ＩＤとしては、ＵＲＮ（参考文献：IETF RFC 2141 - URN Syntax:http://www.ietf.org/rfc/rfc2141.txt）などを用い、システムの外部で予め定めておくものとする。
【００３５】
キー生成部１４で用いるキーを生成するためのハッシュアルゴリズムとしては、既存のハッシュ関数であるＭＤ５やＳＨＡファミリー（SHA-1, SHA-224, SHA-256, SHA-384, SHA-512）等のうちのいずれか１つを用いるものとする。
【００３６】
以下に具体的に説明する。
【００３７】
今このシステムに２つの異なる温度センサから温度データが投入されるものとする。１番目のデータはデータ源ＩＤが'urn:thermosensor:9999'の温度センサからの図５に示すデータであり、２番目のデータはデータ源ＩＤが'urn:thermosensor:8888'の温度センサからの図６に示すデータであるとする。
【００３８】
図７は、本発明の一実施の形態における書き込み方法のシーケンスチャートである。
【００３９】
以下、図７に沿って１番目のデータが分散データ管理システムに格納される流れを説明する。以下において、各ノード１０には、ノードＩＤを付与して説明する。
【００４０】
ステップ１０１）  まず、任意ノード３２１の通信・インターフェース部１１を介して要求処理部１２が図５のデータを含む書き込み要求を受け取る。
【００４１】
ステップ１０２）  当該ノード３２１のキー生成部１４は、図５のデータを、ＸＭＬデータとデータ源ＩＤを結合したビット列と見做し、ＳＨＡ−１を用いてハッシュを計算し、「１２３４５」という値を得たとする。この値がこのデータのキーとなる。
【００４２】
ステップ１０３）  次に、当該ノード３２１のルーティング部１５が、このキー「１２３４５」に対応するノードを得るため、ルーティングテーブル１７を用いてルーティングを行い、ノード９９７が対応ノードであることを導出したとする。
【００４３】
ステップ１０４）  そこで、ノード３２１は、ノード９８７にキー「１２３４５」と図５に示すデータを含む書き込み要求を送信する。
【００４４】
ステップ１０５）  当該書き込み要求を受信したノード９８７の要求処理部１２は、それがキー「１２３４５」を含む書き込み要求であり、かつ、該キーが自ノードの管理対象であることをルーティング部１５を介してルーティングテーブル１７により確認した上で、データベース管理部１３を介して自ノードのデータベース１６に当該データをキー「１２３４５」に対応付けて格納する。
【００４５】
ステップ１０６）  次に、ノード９８７のキー生成部１４は、メタデータであるデータ源ＩＤ(urn:thermosensor:9999)をビット列と見做し、ＳＨＡ−１を用いてハッシュを計算し、「９８７６５」という値を得たとする。この値がこのデータのキーとなる。
【００４６】
ステップ１０７）  次にノード９８７のルーティング部１５は、このキー「９８７６５」を得るため、ルーティングテーブル１７を用いてルーティングを行い、ノード１１１が対応ノードであることを導出したとする。
【００４７】
ステップ１０８）  そこでノード９８７は、ノード１１１に、キー「９８７６５」と図５に示すデータを含むレプリカ書き込み要求を送信する。
【００４８】
ステップ１０９）  書き込み要求を受信したノード１１１の要求処理部１２は、それがキー「９８７６５」を含む書き込み要求であり、かつ、当該キーが自ノードの管理対象であることを、ルーティング部１５を介してルーティングテーブル１７により確認した上で、自ノードのデータベース１６に当該データをキー「９８７６５」に対応付けて格納する。
【００４９】
上記と同様に、図７のシーケンスチャートに沿って、図６に示す２番目のデータ（データ源ＩＤ：urn:thermosensor:8888）が分散データ管理システムに格納される流れを説明する。
【００５０】
ステップ１０１）  まず、任意のノード（例えば、ノード４５６）の要求処理部１２が通信・インターフェース部１１を介して、図６のデータを含む書き込み要求を受け取る。
【００５１】
ステップ１０２）  ノード４５６のキー生成部１４は、図６のデータを、ＸＭＬデータとデータ源ＩＤを結合したデータのビット列と見做し、ＳＨＡ−１を用いてハッシュを計算し、「１３５７９」という値を得たとする。この値がこのデータのキーとなる。
【００５２】
ステップ１０３）  次に、ノード４５６のルーティング部１５は、このキー「１３５７９」に対応するノードを得るため、ルーティングテーブル１７を用いてルーティングを行い、ノード６５４が対応ノードであることを導出したとする。
【００５３】
ステップ１０４）  そこで、ノード４５６は、ノード６５４にキー「１３５７９」と図６のデータを含む書き込み要求を送信する。
【００５４】
ステップ１０５）  当該書き込み要求を受信したノード６５４は、それがキー「１３５７９」を含む書き込み要求であり、かつ、該キーが自ノードの管理対象であることをルーティングテーブル１７により確認した上で、自ノードのデータベース１６に該データを該キー「１３５７９」に対応付けて格納する。
【００５５】
ステップ１０６）  ノード６５４のキー生成部１４は、メタデータであるデータ源ＩＤ(urn:thermosensor:8888)をビット列と見做し、ＳＨ１−１を用いてハッシュ計算し、「５４３２１」という値を得たとする。この値がこのデータのキーとなる。
【００５６】
ステップ１０７）  次に、ノード６５４のルーティング部１５は、取得したキー「５４３２１」に対応するノードを得るため、ルーティングテーブル１７を用いてルーティングを行い、ノード２２２に対応ノードであることを導出したとする。
【００５７】
ステップ１０８）  そこで、ノード６５４は、ノード２２２に、キー「５４３２１」と図５のデータを含むレプリカ書き込み要求を送信する。
【００５８】
ステップ１０９）  当該レプリカ書き込み要求を受信したノード２２２は、それがキー「５４３２１」を含む書き込み要求であり、かつ、当該「５４３２１」が自ノードの管理対象であることをルーティングテーブル１７により確認した上で、自ノードのデータベース１６にと該データをキー「５４３２１」に対応付けて格納する。
【００５９】
以下、センサ'urn:thermosensor:9999'から別なデータが投入された場合、データの値が異なるため、データの格納ノード（ＸＭＬデータとデータ源ＩＤから算出したキーにより特定されるノード）は必ずしも同一のノードとなるとは限らないが、レプリカの格納ノード（データ源ＩＤから算出したキーにより特定されるノード）は、必ずノード１１１になる。同様に、センサ'urn:thermosensor:9999'から別なデータが投入された場合も、レプリカの格納ノードは必ずノード２２２となる。
【００６０】
この性質を利用すると、特定のセンサから投入されたデータを本発明の分散データ管理システムから読み出す場合、（図８に示すように、データキーに基づく格納しか行わない場合は全てのノードに読み出し要求を行う必要があるのに対し）本発明のシステムでは、図９に示すように、メタデータキー、すなわち、データ源ＩＤ（例えば、urn:thermosensor:9999）から導出されたキー（例えば「９８７６５」）を用いて読み出しを行うことで、該当するデータの存在するノード（例えばノードＩＤ：１１１）のみからデータの読み出しを行うことが可能になる。
【００６１】
また、本発明では、メタデータキーによるレプリカ投入の際、ルーティングテーブル１７にレプリカの位置を記録する。ルーティングテーブル１７はＤＨＴのメカニズムに基づき、ノード間で適宜同期されるので、データキーによる読み出し要求に対し、対応する格納先ノードが何らかの理由で応答しない場合、メタデータキーに対応する格納先ノードからデータを読み出すこと、また、その逆に、メタデータキーによる読み出し要求に対し、対応する格納先ノードが何らかの理由で応答しない場合、データキーに対応する格納先ノードからデータを読み出すことが可能である。例えば、図５のデータから導出されるキー「１２３４５」を用いてデータの読み出しを行おうとしたが、対応するノード９８７が故障により応答しない場合、読み出し要求を受け取ったノードは、ルーティングテーブル１７からレプリカのキーが「９８７６５」であり、その対応ノードがＩＤ＝１１１であるという情報を得て、ノード１１１に読み出し要求を転送し、データの読み出しが可能になる。
【００６２】
なお、上記の図４に示すノード１０の構成要素の動作をプログラムとして構築し、ノード（分散データ管理装置）として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００６３】
また、構築されたプログラムをハードディスクや、フレキシブルディスク・ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
【００６４】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【符号の説明】
【００６５】
１０  ノード（分散データ管理装置）
１１  通信・インターフェース手段、通信・インターフェース部
１２  要求処理手段、要求処理部
１３  データベース管理手段、データベース管理部
１４  キー生成手段、キー生成部
１５  ルーティング手段、ルーティング部
１６  データベース
１７  ルーティングテーブル
【図１】
2010271798.tif 000003
【図２】
2010271798.tif 000004
【図３】
2010271798.tif 000005
【図４】
2010271798.tif 000006
【図５】
2010271798.tif 000007
【図６】
2010271798.tif 000008
【図７】
2010271798.tif 000009
【図８】
2010271798.tif 000010
【図９】
2010271798.tif 000011