(57)【要約】  情報システムは、データ群を分散して管理する複数のデータ格納サーバを備え、複数のデータ格納サーバに対し、論理識別子空間上で論理識別子を付与するＩＤ付与部（１１２）と、論理識別子空間と、データ群におけるデータの分布と、を対応付け、論理識別子に対応するデータの値の範囲を決定する範囲決定部（１１４）と、ある属性値または属性範囲のデータ格納サーバの宛先を探索するとき、各データ格納サーバのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの属性値空間の範囲に対応する論理識別子を求め、当該論理識別子に対応するデータ格納サーバの宛先アドレスを宛先として決定する宛先解決部（３４０）とを備える。
2013046667.tif 000002
【特許請求の範囲】
【請求項１】
データ群を分散して管理する複数のノードを備え、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する識別子付与手段と、
前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する範囲決定手段と、
ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する宛先決定手段と、を備える情報システム。
【請求項２】
請求項１に記載の情報システムにおいて、
前記データ群は、多次元の属性を有するデータを含み、
前記データ群から予め定められた属性値に基づくデータに含まれる多次元属性値を、空間充填曲線変換処理を行い１次元化する空間充填曲線１次元化手段と、
前記空間充填曲線１次元化手段により１次元化された値の累積分布を算出する分布算出手段と、をさらに備え、
前記範囲決定手段は、前記分布算出手段が算出した前記累積分布を前記データの分布として、前記論理識別子空間との対応付けを行う情報システム。
【請求項３】
請求項２に記載の情報システムにおいて、
前記データの分布を表す分布関数を求め、各前記ノードの前記論理識別子を入力として、当該分布関数の逆関数を施し、１次元値を出力する逆関数手段と、
前記１次元値を、空間充填曲線変換処理により多次元値に変換する空間充填曲線多次元化手段と、をさらに備え、
前記ノードの前記論理識別子の集合に対し、前記多次元値と、前記論理識別子と、前記宛先アドレスとを対応付けて前記対応関係として保持する情報システム。
【請求項４】
請求項１乃至３いずれかに記載の情報システムにおいて、
複数の前記ノードが分散して管理する前記データ群の前記データは、予め定められた条件範囲の属性値を有するデータの集合、または予め定められた類似の分布を有するデータの集合を含む情報システム。
【請求項５】
請求項１乃至４いずれかに記載の情報システムにおいて、
複数の前記ノードに分散して格納される前記データ群に対し、データの処理の操作要求とともに、前記操作要求を受け付けた前記データに対応する属性値を受け付ける操作要求受付手段と、
前記宛先決定手段が決定した前記宛先アドレスに、受け付けた前記操作要求を転送する転送手段と、をさらに備え、
前記宛先決定手段は、前記操作要求受付手段が受け付けた前記属性値に基づいて、前記宛先アドレスを決定し、前記転送手段に受け渡す情報システム。
【請求項６】
請求項５に記載の情報システムにおいて、
前記操作要求受付手段が受け付ける前記操作要求は、前記データの登録、削除、または検索を行う情報システム。
【請求項７】
請求項１乃至６いずれかに記載の情報システムにおいて、
前記ノード毎に前記対応関係を記憶する記憶手段をさらに備える情報システム。
【請求項８】
請求項１乃至７いずれかに記載の情報システムにおいて、
前記ネットワーク上の前記ノードが追加または削除されたとき、
前記ノードの前記論理識別子の集合を変更し、その変更に伴い、前記対応関係を更新する更新手段をさらに備える情報システム。
【請求項９】
データ群を分散して管理する複数のノードを管理する情報システムの管理方法であって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記情報システムは、管理装置と、記憶装置と、を有し、
前記管理装置が、
複数の前記ノードに対し、論理識別子空間上で論理識別子を付与し、
前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定し、
ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する情報システムの管理方法。
【請求項１０】
データ群を分散して管理する複数のノードを管理する管理装置を実現するコンピュータのプログラムであって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記管理装置は、記憶装置を有し、
前記管理装置を実現するコンピュータに、
複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する手順、
前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する手順、
ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する手順を実行させるためのプログラム。
【請求項１１】
請求項９に記載の情報システムの管理方法の管理装置に接続され、前記管理装置を介して前記データにアクセスする端末装置のデータ処理方法であって、
前記端末装置が、
属性値または属性範囲を有するデータへのアクセス要求を前記管理装置に通知し、
前記管理装置を介して、複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する範囲の前記データを管理する前記ノードの宛先にアクセスして前記データを操作する端末装置のデータ処理方法。
【請求項１２】
データ群を分散して管理する複数のノードを管理するサーバに接続されたクライアント端末を実現するコンピュータのプログラムであって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記クライアント端末を実現するコンピュータに、
属性値または属性範囲を有するデータへのアクセス要求を受け付ける手順、
受け付けた前記アクセス要求を前記サーバに通知する手順、
複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、前記宛先として決定された前記論理識別子に対応する前記ノードの宛先アドレスを前記サーバから受信する手順、
前記サーバから受信した前記宛先アドレスの前記ノードにアクセスし、前記属性値または前記属性範囲の前記データを操作する手順を実行させるためのプログラム。
【請求項１３】
データ群を分散して管理する複数のノードの宛先を決定する際に参照する宛先テーブルのデータ構造であって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記宛先テーブルは、前記データ群を分散して管理する複数のノードの宛先アドレスと、各ノードに論理識別子空間上で付与された論理識別子と、各前記ノードが管理するデータの値の範囲との対応関係を含み、
各前記ノードのデータの値の範囲は、前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲が各ノードに割り振られるデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造に関し、特に、分散データを管理する情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造に関する。
【背景技術】
【０００２】
データの各レコードを複数の記憶装置（第１のプロセッサ）に分割して格納する分散データベースシステムが特許文献１に記載されている。このシステムでは、データを構成する表データの全レコードのキー値が分布する範囲を複数の区間に分割する。このとき、各区間の各々のレコード数が等しくなるようにし、複数の区間にそれぞれ複数の第１のプロセッサを割り当てる。中央プロセッサが第１のプロセッサにアクセスする。第１のプロセッサが保持するデータベースのそれぞれの部分の複数のレコードのキー値とそのレコードの記憶位置を表す情報を、それぞれレコードが属するキー値の区間が割り当てられた第２のプロセッサに転送する。【０００３】
そして、それらが保持するレコードのキー値とそのレコードの記憶位置を示す情報を、そのキー値の属する区間が割り当てられた第１のプロセッサに転送する。第２のプロセッサでは転送されてきた複数のキー値をソートし、そのキー値とともに受信したレコードの記憶位置を示す情報を登録したキー値表を、ソート結果として生成する。このような構成により、特許文献１に記載のシステムでは、第１のプロセッサにアクセスする中央プロセッサにおける負荷の軽減を図り、分散データベースシステムにおけるソート処理の効率を向上している。【０００４】
また、特許文献２に記載されたオーバレイ管理システムは、空間充填曲線変換処理手段と、分布関数処理手段と、メッセージ転送処理手段とから構成されている。【０００５】
このような構成を有するオーバレイ管理システムは次のように動作する。システムは、データに対する登録や削除の操作の際、データから、検索効率化のために予め指定された複数の属性（複合インデックス付けされた属性）を選択する。そして、その多次元の値を取得して空間充填曲線処理手段によって１次元の値とし、これを分布関数処理手段に入力して均一化された１次元値として論理識別子を得る。【０００６】
この論理識別子は、データの格納先や要求情報の転送先の決定に用いる。ここではメッセージ転送処理手段が、得られた論理識別子を宛先として要求情報を送信する。メッセージ転送処理手段は、当該論理識別子を担うピアに当該メッセージを送信し、そのピアに当該データの登録あるいは削除を行う。【０００７】
このように、属性値に分布関数を施し、データ格納先のノードに対して付与された論理識別子と同様に確率的に均一に分布する論理識別子を用いて、その属性値のデータを格納することで、負荷の確率的な均一化を実現することができる。【０００８】
また、データに対する範囲検索の操作の際には、検索式から、複合インデックス付けされた複数の属性の範囲条件式を取得し、この多次元範囲を空間充填曲線処理手段によって、複数の１次元値の範囲を得る。１次元値の範囲のそれぞれについて、分布関数処理手段を実行して、論理識別子を取得し、これを全ての複数の１次元値について行うことで、複数の論理識別子範囲を得る。
メッセ―ジ転送処理手段は、このようにして得られた複数の論理識別子範囲を宛先として、検索要求を送信し、その宛先と対応する複数のピアに格納されたデータを取得する。【０００９】
また、特許文献３および非特許文献１には、空間充填曲線処理が記載されている。また、非特許文献２には、分散ハッシュテーブル(Distributed Hash Table：ＤＨＴ)などのＰ２Ｐ（Peer to Peer）システムにおける、多次元属性を用いた多次元属性および範囲のクエリをサポートするＣｈｏｒｄまで拡張するＭＡＡＮ（A Multi-Attribute Addressable Network for Grid Information Services）が記載されている。ここで、Ｃｈｏｒｄとは、分散ハッシュテーブルを実現するアルゴリズムの一つである。Ｐ２Ｐネットワークは、サーバを用いることなく高速にコンテンツの検索、あるノードから別のノードへとメッセージのルーティングを行う手法である。分散ハッシュテーブルとは、ハッシュテーブルを複数のピアで管理する技術のうち、特にＰ２Ｐネットワークとしてハッシュテーブルへのアクセス要求がルーティングされる技術である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平５−２４２０４９号公報
【特許文献２】特開２００８−２３４５６３号公報
【特許文献３】米国特許７，１６７，８５６号明細書
【非特許文献】
【００１１】
【非特許文献１】J. K. Lawder、外１名、“Querying Multi-dimensional Data Indexed Using the Hilbert Space-Filling Curve”、ACM SIGMOD (Special Interest Group on Data Communication) Record、２００１年３月、ｖｏｌ．３０、Ｎｏ．１、ｐ．１９〜２４
【非特許文献２】Min Cai、外３名、“MAAN: A Multi-Attribute Addressable Network for Grid Information Services”、Journal of Grid Computing、２００４年３月、ｖｏｌ．２，Ｎｏ．１、ｐ．３〜１４
【発明の概要】
【００１２】
上述した特許文献１に記載されたシステムにおいて、第１のプロセッサに格納されるレコードの分布が時間とともに変化し、その結果、プロセッサ毎の負荷が変化した場合に、第１のプロセッサを増設または利用中止することが考えられる。その場合に、複数のプロセッサ間でレコード数を厳密に均一にするために、データベース全体で、すべての第１のプロセッサ間でのレコード移動を行わなければいけなくなり、レコード移動が多くなるという問題点があった。
【００１３】
その理由は、以下の通りである。たとえば、Ｎ台のノードにデータ量を厳密に均一にするため１／Ｎずつに分割した後、ノードを１台増加させて１／（Ｎ＋１）ずつに分割する場合を考える。この場合、ほぼ全てのノードにてデータ移動が発生し、また、ほぼ全てのデータを移動させるノードがでてくる。逆に、Ｎ台のうちから選ばれる１台とだけデータ移動を行うと、データは不均一に格納されることとなり、あるノードには他のノードの半分のデータしか格納されない。
【００１４】
本発明の目的は、上述した課題を解決し、ノード間の負荷を適度に均一に保ちつつ、データ格納先コンピュータ変更時の移動データが少ない情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造を提供することにある。
【００１５】
本発明の情報システムは、
データ群を分散して管理する複数のノードを備え、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する識別子付与手段と、
前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する範囲決定手段と、
ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する宛先決定手段と、を備える。
【００１６】
本発明の情報システムの管理方法は、
データ群を分散して管理する複数のノードを管理する情報システムの管理方法であって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記情報システムは、管理装置と、記憶装置と、を有し、
前記管理装置が、
複数の前記ノードに対し、論理識別子空間上で論理識別子を付与し、
前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定し、
ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する。
【００１７】
本発明のプログラムは、
データ群を分散して管理する複数のノードを管理する管理装置を実現するコンピュータのプログラムであって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記管理装置は、記憶装置を有し、
前記管理装置を実現するコンピュータに、
複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する手順、
前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する手順、
ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する手順を実行させるためのものである。
【００１８】
本発明のデータ処理方法は、
上記情報システムの管理方法の管理装置に接続され、前記管理装置を介して前記データにアクセスする端末装置のデータ処理方法であって、
前記端末装置が、
属性値または属性範囲を有するデータへのアクセス要求を前記管理装置に通知し、
前記管理装置を介して、複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する範囲の前記データを管理する前記ノードの宛先にアクセスして前記データを操作する。
【００１９】
本発明のコンピュータプログラムは、
データ群を分散して管理する複数のノードを管理するサーバに接続されたクライアント端末を実現するコンピュータのプログラムであって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記クライアント端末を実現するコンピュータに、
属性値または属性範囲を有するデータへのアクセス要求を受け付ける手順、
受け付けた前記アクセス要求を前記サーバに通知する手順、
複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、前記宛先として決定された前記論理識別子に対応する前記ノードの宛先アドレスを前記サーバから受信する手順、
前記サーバから受信した前記宛先アドレスの前記ノードにアクセスし、前記属性値または前記属性範囲の前記データを操作する手順を実行させるためのものである。
【００２０】
本発明のデータ構造は、
データ群を分散して管理する複数のノードの宛先を決定する際に参照する宛先テーブルのデータ構造であって、
複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
前記宛先テーブルは、前記データ群を分散して管理する複数のノードの宛先アドレスと、各ノードに論理識別子空間上で付与された論理識別子と、各前記ノードが管理するデータの値の範囲との対応関係を含み、
各前記ノードのデータの値の範囲は、前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲が各ノードに割り振られる。
【００２１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００２２】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００２３】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
【００２４】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００２５】
本発明によれば、データ群のデータの分布に応じてノード間の負荷を均一に保ちつつ、スケーラブルなデータの格納先管理を行える情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造が提供される。
【図面の簡単な説明】
【００２６】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００２７】
【図１】本発明の実施の形態に係る情報システムの構成を示す機能ブロック図である。
【図２】本発明の実施の形態に係る情報システムのコンピュータの構成の例を示すブロック図である。
【図３】本発明の実施の形態に係る情報システムのコンピュータの構成の例を示すブロック図である。
【図４】本発明の実施の形態に係る情報システムの構成を示す機能ブロック図である。
【図５】本発明の実施の形態に係る情報システムの要部構成を示す機能ブロック図である。
【図６】本実施形態の情報システムの宛先サーバ情報テーブルの構造の一例を示す図である。
【図７】本発明の実施の形態に係る情報システムの対応関係を説明するための図である。
【図８】本発明の実施の形態に係る情報システムの動作の一例を示すフローチャートである。
【図９】本発明の実施の形態に係る情報システムの動作の一例を示すフローチャートである。
【図１０】本実施形態の情報システムのスキーマ管理サーバの構成を示す機能ブロック図である。
【図１１】本実施形態の情報システムにおける空間充填曲線変換規則を説明するための図である。
【図１２】本実施形態の情報システムの事前処理部の構成を示す機能ブロック図である。
【図１３】本実施形態の情報システムの空間充填曲線サーバ情報テーブルの構造の一例を示す図である。
【図１４】本実施形態の情報システムの要部構成を示す機能ブロック図である。
【図１５】本実施形態の情報システムのスキーマ管理サーバの動作の一例を示すフローチャートである。
【図１６】本実施形態の情報システムの事前処理部の動作の一例を示すフローチャートである。
【図１７】本実施形態の情報システムの宛先解決部における宛先決定処理の動作の一例を示すフローチャートである。
【図１８】本実施形態の情報システムの宛先解決部における複数の宛先決定処理の動作の一例を示すフローチャートである。
【図１９】本実施形態の情報システムにおけるデータ分布の例を示す図である。
【図２０】本実施形態の情報システムにおける密度分布情報に対応する分布幅と分布量の例を示す図である。
【図２１】本実施形態の情報システムにおける累積分布情報に対応する累積分布割合と１次元値の例を示す図である。
【図２２】本実施形態の情報システムにおける逆関数を施して得られる累積分布情報の例を示す図である。
【図２３】本実施形態の情報システムにおける論理識別子空間の一例を示す図である。
【図２４】本実施形態の情報システムにおける空間充填曲線サーバ情報テーブルに含まれる多次元属性範囲を説明するための図である。
【図２５】本実施形態の情報システムの空間充填曲線サーバ情報テーブルの構造の一例を示す図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２９】
（第１の実施の形態）
以下に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
図１は、本発明の実施の形態に係る情報システム１の構成を示す機能ブロック図である。
本発明の実施の形態の情報システム１は、互いにネットワーク３を介して接続される複数のコンピュータ、たとえば、複数のスキーマ管理サーバ１０２（図１では、スキーマ管理サーバＡ１〜Ａｎと示す。以下、ｎは自然数であり、それぞれ異なる値をとってもよい。）と、複数のデータ操作クライアント１０４（図１では、データ操作クライアントＢ１〜Ｂｎと示す。）と、複数のデータ格納サーバ１０６（図１では、データ格納サーバＣ１〜Ｃｎと示す。）と、複数の操作要求中継サーバ１０８（図１では、操作要求中継サーバＤ１〜Ｄｎと示す。）と、を備える。
【００３０】
本実施の形態の情報システム１は、ＣＰＵ（Central Processing Unit）、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを備える任意のコンピュータのハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下に説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。なお、各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００３１】
図１の本実施の形態の情報システム１を構成する各サーバおよびクライアントは、たとえば、図示しないＣＰＵやメモリ（またはプロセッサ）、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続されるサーバコンピュータやパーソナルコンピュータ、またはそれらに相当するデータ処理装置により実現することができる。そして、ＣＰＵが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、後述する各ユニットの各機能を実現することができる。
【００３２】
また、本実施の形態の情報システム１を構成する各サーバおよびクライアントは、仮想マシンなど仮想化されたコンピュータ、あるいは、クラウドなどネットワーク越しに利用者にサービスを提供するサーバ群などであってもよい。
【００３３】
本発明の情報システム１は、分散する異なるコンピュータに格納されたデータを、少なくとも１次元の属性の範囲検索可能な表構造とすることで、多様なアプリケーションソフトウェアに対してアクセス機能を提供するデータベースといった用途に適用できる。
また、分散したコンピュータに送信されたメッセージやイベントに対して、多次元属性の範囲に関する条件を指定することで、データの発生の検知や通知を設定するＰｕｂｌｉｓｈ／Ｓｕｂｓｃｒｉｂｅといったメッセージ送受信形態の用途にも適用可能である。
【００３４】
なお、あるＤ次元の属性値を持つデータが登録される前に、その通知依頼をＤ次元の範囲条件式として指定するデータストリーム処理では、予め格納される範囲条件式を２Ｄ次元の属性値として扱い、登録されるデータを２Ｄ次元の属性範囲として扱ってもよい。たとえば、Ｄ＝１とし、属性範囲（２５，４０）と属性範囲（３５，４０）が予め格納され、属性値Ａ＝３０というデータが登録されたとする。１次元の属性範囲（２５，４０）と１次元の属性範囲（３５，４０）は２次元の属性値として格納される。登録される属性値３０は、２次元範囲（（−∞，３０），（３０，∞））を探索する。結果として、この属性値を含む範囲として（２５，４０）を取得し、（３５，４０）は取得されない。この取得された結果に対して、通知が行われる。以降では、ストリーム処理については、この対応が取れるものとする。
【００３５】
ここで、たとえば、少なくとも１次元の属性データとは、複数の異なる属性を有するデータである。これらのデータは、コンピュータが参照および操作できるリレーショナルデータベースに格納されているものとする。リレーショナルデータベースでは、複数の列（属性）からなる行（タプル）がある。本実施形態では、特に、指定された列の検索を速くするために、予め複合インデックスという複数の属性のペアに対してインデックスが付けられているものとする。複数の属性の例としては、たとえば、緯度と経度、温度と湿度、あるいは、商品の金額、メーカ、型番、発売時期、および仕様などである。
【００３６】
本実施形態の情報システム１は、たとえば、ウェブサイトのショッピングモールにクライアントがアクセスし、商品を検索するために複数の条件、たとえば、金額範囲、メーカ、発売時期などを入力して、該当する商品を検索するような利用シーンに適用することができる。情報システム１は、要求を受け付けたとき、条件に適合する属性を有するデータをリレーショナルデータベースから検索して抽出し、クライアントに返信する処理を行うことができる。
【００３７】
後述する実施形態で説明するように、本発明の情報システム１では、検索条件が複数（多次元）、かつ、範囲指定された条件によりデータ検索を行うことができる。なお、ウェブサイトへのクライアントからの検索要求などは、何万件／秒で発生するものである。
【００３８】
少なくとも１次元の属性のデータを担う複数のコンピュータからなる分散環境にて、少なくとも１次元の属性値に対応するコンピュータを決定する、あるいは範囲検索などの少なくとも１次元の属性の空間に対して複数のコンピュータを決定する際、以下のように宛先決定を行うことができる。すなわち、予め宛先サーバ情報とデータの分布とから、少なくとも１次元の属性空間の部分空間とコンピュータとの対応を生成し、この対応を参照しながら決定することで、属性数が増加した場合（たとえば、属性数が５〜９程度）やビット長の長い属性（たとえば、ＩＮＴ型（３２ビット長）以上）を扱う場合であっても、処理負荷の低い処理で、宛先決定を行うことができる。
【００３９】
本実施の形態の情報システム１は、たとえば、図２に示すように、互いにネットワーク３を介して接続された、主にデータの格納を担う複数のデータコンピュータ２０８（図２では、データコンピュータＦ１〜Ｆｎと示す。）と、主にデータへの操作要求を発行するアクセスコンピュータ２０２（図２では、アクセスコンピュータＥ１〜Ｅｎと示す。）と、がスイッチ２０６を介して接続された構成であってもよい。
【００４０】
また、さらにデータコンピュータ２０８に格納されるデータ構造に関する情報（スキーマ）を保持するメタデータコンピュータ２０４を加えた構成としてもよい。
この構成において、アクセスコンピュータ２０２は、図１のデータ操作クライアント１０４を備え、データコンピュータ２０８は、図１のデータ格納サーバ１０６を備える。
【００４１】
図１の操作要求中継サーバ１０８は、図２のアクセスコンピュータ２０２またはデータコンピュータ２０８の一方、あるいは双方に備えていてもよいが、いずれにも備えていなくともよい。図１のスキーマ管理サーバ１０２は、図２のアクセスコンピュータ２０２またはデータコンピュータ２０８に備えていてもよく、あるいは図２のメタデータコンピュータ２０４に備えていてもよい。
【００４２】
あるいは、本実施形態の情報システムの他の構成例として、図３に示すように、ネットワーク３を介して接続される少なくとも１つのピアコンピュータ２１０（図３では、ピアコンピュータＧ１〜Ｇｎと示す。）を備えてもよい。ピアコンピュータ２１０は、一様に、スキーマ管理サーバ１０２、データ操作クライアント１０４、データ格納サーバ１０６、および操作要求中継サーバ１０８を備えてもよい。
【００４３】
図４は、本実施形態の情報システム１の構成を示す機能ブロック図である。
図４に示すように、本実施形態の情報システム１は、スキーマ管理サーバ１０２と、事前処理部１２０と、宛先解決部３４０と、操作要求部３６０と、中継部３８０と、データ格納サーバ１０６と、を備える。なお、図４では、スキーマ管理サーバ１０２および事前処理部１２０は、ネットワーク３に接続されていないが、ネットワーク３に接続された構成としてもよい。
【００４４】
本実施形態において、スキーマ管理サーバ１０２は、データ群のデータの分布を示す分布情報を生成する。
複数のノード（データ格納サーバ１０６）に格納されるデータ群のデータは、予め定められた条件範囲の属性値を有するデータの集合、または予め定められた類似の分布を有するデータの集合を含む。このデータの分布に基づいて、各データ格納サーバ１０６が担当するデータの属性値の範囲を決めることになる。
【００４５】
本実施形態において、図１のデータ操作クライアント１０４は、図４の事前処理部１２０と、宛先解決部３４０と、操作要求部３６０と、を具備する。また、図１の操作要求中継サーバ１０８は、事前処理部１２０と、宛先解決部３４０と、中継部３８０と、を具備する。
【００４６】
図５は、本実施形態の情報システム１の要部構成を示す機能ブロック図である。
本実施形態の情報システム１は、データ群を分散して管理する複数のノード（データ格納サーバ１０６）を備える。
複数のノード（データ格納サーバ１０６（図１））は、それぞれネットワーク上で識別可能な宛先アドレスを有する。
【００４７】
情報システム１は、識別子付与部（ＩＤ付与部１１２）と、範囲決定部１１４と、宛先決定部（宛先解決部３４０）と、を備える。
ＩＤ付与部１１２は、複数のノード（データ格納サーバ１０６）に対し、論理識別子空間上で論理識別子を付与する。
範囲決定部１１４は、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノード（データ格納サーバ１０６）の論理識別子に対応するデータの値の範囲を決定する。なお、範囲決定部１１４は、スキーマ管理サーバ１０２が生成した分布情報１１６を使用する。分布情報１１６の生成については、後述する実施形態で詳細に説明する。
【００４８】
ＩＤ付与部１１２は、各ノードが、有限のＩＤ（Identifier）空間における値を論理識別子ＩＤ（宛先、アドレス、または識別子）として持つように付与する。ＩＤ付与部１１２は、そのＩＤに応じて、そのノードが担当するデータのＩＤ空間における範囲が定まる。データを担当するノードのＩＤは、ＤＨＴでは登録または取得したいデータのキーのハッシュ値を用いて求めることができる。また、各ノードの論理識別子ＩＤには、ランダムあるいはノードに予め付された一意な識別子（たとえば、ＩＰアドレスとポート）のハッシュ値を用いることができる。これにより負荷分散を図ることができる。ＩＤ空間は、リング型をとる方式、ＨｙｐｅｒＣｕｂｅをとる方式などがある。ＣｈｏｒｄとＫｏｏｒｄｅなどは、リング型をとる方式のＩＤ空間を用いる。
【００４９】
このリング型をとる場合において、ノードとデータとの対応付け方式は、コンシステントハッシング（Consistent Hashing）と呼ばれる。Consistent Hashingでは、任意の自然数をｍとして、ＩＤ空間は１次元の［０，２ｍ）を取り、各ノードｉは、このＩＤ空間における値ｘｉをＩＤとして取る。ただし、ｉはノード数Ｎまでの自然数で、ｘｉの順に識別されているとする。ここで、記号“［”や、記号“］”は閉区間を表し、記号“（”や記号“）”は開区間を表す。
【００５０】
この時、ノードｉは、［ｘｉ，ｘ（ｉ＋１））に含まれるデータを管理する。ただし、ｉ＝Ｎであるノードは［０，ｘ０）と［ｘＮ，２ｍ）に含まれるデータを管理する。
【００５１】
また、範囲決定部１１４が生成した、各ノード（データ格納サーバ１０６）のデータの属性値空間の範囲と、論理識別子と、宛先アドレスとの対応関係は、対応関係記憶部（図中、「対応関係」と示す）１１８に格納される。
【００５２】
宛先解決部３４０は、ある属性値または属性範囲のデータの格納先のノード（データ格納サーバ１０６）の宛先を探索するとき、各ノード（データ格納サーバ１０６）のデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求める。そして、宛先解決部３４０は、求めた当該論理識別子に対応するノード（データ格納サーバ１０６）の宛先アドレスを宛先として決定する。
【００５３】
本実施形態において、ＩＤ付与部１１２が各ノードに付与した論理識別子（ハッシュ値）の集合と、宛先となるノードの宛先アドレス（サーバＩＰアドレス）とを対応付けて、図６の宛先サーバ情報テーブル３３０に記憶される。
【００５４】
上述したＩＤ付与部１１２が各ノードに付与する論理識別子は、データの格納先やメッセージ転送先を決定するのに使用するものである。上述したように、有限の論理識別子空間上で、確率的に均一に各ノードに付与される。この論理識別子の集合と、宛先アドレスとの対応が図６の宛先サーバ情報テーブル３３０に複数格納される。
たとえば、Consistent Hashingや分散ハッシュテーブルの場合は、論理識別子は、ハッシュ値と宛先コンピュータのＩＰアドレスなどである。
【００５５】
分散ハッシュテーブルの様々なアルゴリズムのうち、たとえば、Ｃｈｏｒｄの場合は、ＳｕｃｃｅｓｓｏｒＬｉｓｔやＦｉｎｇｅｒＴａｂｌｅが宛先サーバ情報テーブル３３０に相当する。
【００５６】
ここで、ノードに付与される論理識別子（ＩＤ）と、ノードが担当するデータの属性値の範囲の対応関係について図７を用いて説明する。
本実施形態において、データ群におけるある属性値に基づく分布情報１１６が図７（ａ）に示すような累積分布で示される場合、範囲決定部１１４は、横軸に属性値空間、縦軸に論理識別子（ＩＤ）空間を対応させることで、各ノードにそれぞれ付与された論理識別子に対応する属性値空間の範囲を決定することができる。たとえば、論理識別子４１３のノードは、属性値ａ４〜ａ５の範囲のデータを格納することとなる。あるいは、属性値の一方の端点（ａ５）だけを管理してもよい。この場合、他方の端点は隣接ノード（論理識別子２５０のノード）の端点（ａ４）とする。このようにしてＩＤと属性値の範囲の対応関係が決定され、図７（ｂ）に示すように、対応関係記憶部１１８に記憶される。
【００５７】
本実施形態において、図７（ｂ）の対応関係は、データ群を分散して管理する複数のノードの宛先を決定する際に参照する宛先テーブルのデータ構造を有する。すなわち、ノードの宛先情報として、ノードのＩＰアドレスを含むことができる。この宛先テーブルは、データ群を分散して管理する複数のノードの宛先と、各ノードに論理識別子空間上で付与された論理識別子と、各前記ノードが管理するデータの値の範囲との対応関係を含む。各ノードのデータの値の範囲は、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲が各ノードに割り振られる。
【００５８】
上述したように、論理識別子は、論理識別子空間上で、確率的に均一に各ノードに付与されているため、その論理識別子に対応させて属性値範囲を決定することで、結果として、属性値に基づく分布を有するデータ群が、確率的に均一に各ノードに割り当てられることとなる。ただし、確率の期待値としては、各ノードはノード数分の１のデータ量を持つが、厳密にノード数分の１のデータ量を持つことは保証しなくてよい。各ノードの負荷がデータ分布に合わせて、確率的には均一に割り振られることとなる。
【００５９】
次に、本実施形態の情報システム１の管理方法について、以下に説明する。
図８および図９は、本実施形態の情報システム１の動作を示すフローチャートである。
以下、図５、図８、および図９を用いて説明する。
本発明の実施の形態に係る情報システム１の管理方法は、事前処理部１２０（図５）において、ＩＤ付与部１１２（図５）が、複数のノードに対し、論理識別子空間上で論理識別子を付与し（図８のステップＳ１１）、範囲決定部１１４（図５）が、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲を決定し（図８のステップＳ１３）、ある属性値または属性範囲のデータの格納先のノードの宛先を探索するとき（図９のステップＳ２１のＹＥＳ）、宛先解決部３４０（図５）が、各ノードのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求め、当該論理識別子に対応するノードの宛先アドレスを宛先として決定する（図９のステップＳ２３）。
【００６０】
また、本発明の実施の形態に係るコンピュータプログラムは、図４のデータ操作クライアント１０４または操作要求中継サーバ１０８を実現するコンピュータに、複数のノードに対し、論理識別子空間上で論理識別子を付与する手順、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲を決定する手順、ある属性値または属性範囲のデータの格納先のノードの宛先を探索するとき、各ノードのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求め、当該論理識別子に対応するノードの宛先アドレスを宛先として決定する手順、を実行させるように記述されている。
【００６１】
本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
【００６２】
このように構成された本実施形態の情報システム１の動作について、以下説明する。
事前処理部１２０において、ＩＤ付与部１１２が、複数のノードに対し、論理識別子空間上で論理識別子を付与する（図８のステップＳ１１）。そして、範囲決定部１１４が、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲を決定する（図８のステップＳ１３）。
【００６３】
なお、新たなノードが追加された場合には、ＩＤ付与部１１２が、新たなノードに対し、論理識別子空間上で論理識別子を付与し（図８のステップＳ１１）、範囲決定部１１４が、新たに追加されたノードと隣接するノード間で、ノードの論理識別子に対応するデータの値の範囲を変更する（不図示）。また、ノードが削除された場合も同様に、範囲決定部１１４が、削除されたノードと隣接するノード（論理識別子が隣接する他ノード）間で、ノードの論理識別子に対応するデータの値の範囲を変更する（不図示）。
【００６４】
また、ＩＤ付与部１１２が新たなノードに付与する時点で、既存のノード群は確率的には均一であっても、隣接するノードとの論理識別子の幅が広いノードと、狭いノードが存在する。広いノードはデータを多く持ち、狭いノードは少ないデータを持っている。新たに追加されるノードに付与される論理識別子は、隣接するノードとの幅が広いような空間に入る可能性が高く、狭い空間に入る可能性は低い。そのため、この論理識別子と分布情報から範囲決定部１１４が決定する範囲は、他のノードより多くのデータを持っているノードからデータを受け取る効果、すなわち負荷の高いノードから負荷を減らし均一化させる可能性が高くなる。
【００６５】
すなわち、本発明の情報システム１では、ノードが追加または削除された場合に、全ノードのデータを移動する必要がなく、一部のノード（対象となるノードと隣接するノード）のみデータを移動することができ、なおかつ、確率的な均一性を保つことができる。なお、１つの物理ノードが複数の論理識別子を有する場合は、論理識別子の数に相当する他ノードとデータ移動を行う必要がある。
【００６６】
そして、このようにして決定された対応関係に基づいて、ある属性値または属性範囲のデータの格納先のノードの宛先を探索するとき（図９のステップＳ２１のＹＥＳ）、宛先解決部３４０が、各ノードのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求め、当該論理識別子に対応するノードの宛先アドレスを宛先として決定する（図９のステップＳ２３）。
【００６７】
以上説明したように、本実施形態の情報システム１によれば、データ群のデータの分布に応じてノード間の負荷を均一に保ちつつ、スケーラブルなデータの格納先管理を行えることとなる。その理由は、各ノードが管理するデータの値の範囲は、レコード数が均一になるように決定するのではなく、ランダムまたはノードの識別子のハッシュ値から求めた論理識別子を用いて、データ分布に従って決定するからである。たとえば、ノードが追加または削除された場合も、すべてのノードで担当するデータの範囲を変更する必要がなく、追加または削除されたノードの隣接ノード間で管理するデータの値の範囲を変更すればよいこととなる。
【００６８】
なお、外部アプリケーションプログラムからサービス提供を受けているクライアント端末などからのデータアクセス要求を受け付け、データを追加、削除、または検索する処理については、後述する実施形態で説明する。
【００６９】
（第２の実施の形態）
本実施形態の情報システム１は、上記実施形態とは、多次元属性データに対し、空間充填曲線変化処理を施して属性値に基づくデータの分布情報を得ることで、多次元属性データについても同様に宛先を決定できる点で相違する。本実施形態において、上記実施形態で説明した情報システム１の事前処理部１２０（図４、図５）が事前処理部３２０に変更になる。
以下、本実施形態の情報システム１について、説明する。
【００７０】
図１０は、本実施形態の情報システム１のスキーマ管理サーバ１０２の構成を示す機能ブロック図である。
本実施形態の情報システム１において、データ群は、多次元の属性を有するデータを含むことができる。さらに、情報システム１は、データ群から予め定められた属性値に基づくデータに含まれる多次元属性値を、空間充填曲線変換処理を行い１次元化する空間充填曲線１次元化部３０４と、空間充填曲線１次元化部３０４により１次元化された値の累積分布を算出する分布算出部３０８と、を備える。
そして、後述する事前処理部３２０は、分布算出部３０８が算出した累積分布を分布情報として処理を行う。
【００７１】
図１２は、本実施形態の情報システム１の事前処理部３２０の構成を示す機能ブロック図である。
本実施形態の情報システム１は、データ群のデータの分布を表す分布関数を求め、各ノードの論理識別子を入力として、当該分布関数の逆関数を施し、１次元値を出力する逆関数部３２４と、１次元値を、空間充填曲線変換処理により多次元値に変換する空間充填曲線多次元化部（空間充填曲線サーバ変換部３２６）と、をさらに備える。
そして、ノードの論理識別子の集合に対し、逆関数部３２４により逆関数を施して生成された１次元値の集合を、空間充填曲線サーバ変換部３２６により多次元値に変換し、得られた多次元値と、論理識別子と、宛先アドレスとを対応付けて対応関係として保持する。
【００７２】
具体的には、図１０に示すように、スキーマ管理サーバ１０２は、サンプルデータ格納部３０２と、空間充填曲線１次元化部３０４と、サンプルデータ１次元値格納部３０６と、分布算出部３０８と、分布格納部３１０と、を備え、多次元属性のデータを１次元化した分布情報の生成を行う。
【００７３】
サンプルデータ格納部３０２には、当該分散システムに格納される多次元属性データの一部、あるいは、その分布情報が互いに類似するデータの集合が予め与えられ格納される。
サンプルデータ１次元値格納部３０６には、サンプルの多次元属性データを１次元値に変換した値が格納される。
分布格納部３１０には、当該分散システムに格納される多次元属性データの一部、あるいは、その分布情報が互いに類似するデータの集合と同一の分布情報を有する、１次元の累積分布情報が格納される。
【００７４】
空間充填曲線１次元化部３０４は、多次元属性の値を予め定められた空間充填曲線の種別に応じて、１次元値に変換する。空間充填曲線の種別としては、ヒルベルト空間充填曲線や、Ｚカーブ空間充填曲線などがある。変換には変換規則表を利用する方式などがある。
【００７５】
ここで、多次元データを１次元化する方法として、図１１に示す変換規則を用いる方法を述べるが、別の方式であってもよい。図１１は、本実施形態の情報システム１における空間充填曲線の変換規則のブロック図および状態遷移図を示す。また、空間充填曲線の種別としてヒルベルト空間充填曲線の変換規則を示すが、別のＺカーブ空間充填曲線などでもよく、その場合は、図１１とは異なる変換規則となる。図１１の変換規則は２次元の場合の規則を示しており、変換規則の上段は特定ビット目の多次元値を示し、下段は対応する１次元値を示す。
【００７６】
２次元の場合は、特定ビット目のビットの組合せは４通り（００、０１、１０、１１）存在するため、４つの変換規則を変換規則表と呼び、変換規則表は、変換規則表状態（０、１、２、３）で識別される。
ある変換規則表の状態にて、入力として特定ビット目の多次元値が与えられると、その変換規則表の状態の変換規則表の内、当該多次元値を上段に持つ変換規則が得られ、対応する下段の１次元値が得られるとともに、その多次元値に対応する次の変換規則表状態に遷移する。
【００７７】
次の状態では、次のビット目の多次元値が入力として与えられ、対応する１次元値が得られる。状態遷移を繰り返して得られる１次元値のビットを先頭ビットから順につなげて得られる値が、空間充填曲線１次元化部３０４から出力される。空間充填曲線１次元化部３０４（図１０）から出力された１次元値は、サンプルデータ１次元値格納部３０６（図１０）に格納される。
【００７８】
図１０に戻り、分布算出部３０８は、１次元の値の集合を入力として、そのデータの密度分布情報や累積分布情報をヒストグラムあるいは累積ヒストグラムなどの形式で算出する。密度分布情報を表すヒストグラムであれば、１次元値を一定の幅に区切り、その幅に存在するデータを数え上げ、その量を分布量とするなどでよい。
【００７９】
また、幅は一定でなく、区切り毎に異なり、分布幅と分布量の対の集合としてヒストグラムが表現されてもよい。ヒストグラムが算出される場合は、１次元値が単調増加する方向に累積値を取る累積ヒストグラムに変換するなどで、累積ヒストグラムを得る。分布算出部３０８により算出された１次元の累積分布情報は、分布格納部３１０に格納される。
【００８０】
図１２は、本実施形態の情報システム１の事前処理部３２０の構成を示す機能ブロック図である。
本実施形態の情報システム１において、論理識別子の集合（範囲）と、対応する宛先アドレスと、を対応付けた宛先サーバテーブルを記憶する宛先サーバ記憶部（宛先サーバ情報格納部３２２）と、分布情報を用いた分布関数の逆関数を施す逆関数部３２４と、１次元値を、空間充填曲線変換処理により多次元値に変換する空間充填曲線多次元化部（空間充填曲線サーバ変換部３２６）と、をさらに備え、宛先サーバテーブルを参照し、各コンピュータに（分布が統計的に均一になるように）割り当てられた論理識別子（ハッシュ値）の集合に対し、逆関数部３２４により逆関数を施して生成される１次元値の集合を、空間充填曲線多次元化部（空間充填曲線サーバ変換部３２６）により多次元値に変換し、宛先アドレスと対応付けて予め対応情報テーブル（空間充填曲線サーバ情報格納部３２８の空間充填曲線サーバ情報テーブル３３２（図１３））に記憶する。
【００８１】
具体的には、図１２に示すように、事前処理部３２０は、宛先サーバ情報格納部３２２と、逆関数部３２４と、空間充填曲線サーバ変換部３２６と、空間充填曲線サーバ情報格納部３２８と、を備え、空間充填曲線サーバ情報を作成する機能を有する。
【００８２】
宛先サーバ情報格納部３２２には、上述したデータの格納先やメッセージ転送先を決定するための論理識別子の集合と、ノードの宛先アドレスとの対応が複数格納されている。たとえば、Consistent Hashingや分散ハッシュテーブルの場合は、ハッシュ値と宛先ノードのＩＰアドレスなどが宛先サーバ情報格納部３２２に格納される。宛先サーバ情報格納部３２２は、ノード毎に設けることができる。
【００８３】
また、本実施形態の情報システム１において、ネットワーク３上のノードが追加または削除されたとき、ノードの論理識別子の集合を変更し、その変更に伴い、対応関係（図６の宛先サーバ情報テーブル３３０、および後述する図１３の空間充填曲線サーバ情報テーブル３３２）を更新する更新部（不図示）をさらに備えてもよい。
【００８４】
分散ハッシュテーブルの様々なアルゴリズムのうち、たとえば、Ｃｈｏｒｄの場合は、ＳｕｃｃｅｓｓｏｒＬｉｓｔやＦｉｎｇｅｒＴａｂｌｅがこの対応関係に相当する。
【００８５】
図１２に戻り、空間充填曲線サーバ情報格納部３２８には、多次元属性空間の部分空間に対する、他のコンピュータの宛先アドレスが複数格納される。多次元属性空間の部分空間を表現する形式は、たとえば、多次元属性空間の起点の１次元値を列挙して表現してもよく、次元数分の属性範囲の和集合を列挙して表現してもよく、どの次元の何ビット目の値などの条件の和集合を列挙して表現してもよい。
【００８６】
本実施形態では、図１３に示すように、空間充填曲線サーバ情報格納部３２８は、宛先アドレス（ＩＰ）に対応する論理識別子（ＩＤ）の範囲（属性空間）の起点を１次元で表現した値を宛先アドレスと対応付けて空間充填曲線サーバ情報テーブル３３２として格納している。なお、図１３では、空間充填曲線サーバ情報テーブル３３２に論理識別子（ＩＤ）と宛先アドレス（ＩＰ）の両方が含まれているが、たとえば、論理識別子（ＩＤ）は含まれなくてもよい。また、論理識別子（ＩＤ）と宛先アドレス（ＩＰ）の対応テーブルを別途有している場合は、空間充填曲線サーバ情報テーブル３３２は、論理識別子（ＩＤ）と宛先アドレス（ＩＰ）のいずれか一方を含めばよい。
【００８７】
ここで、空間充填曲線サーバ変換部３２６（図１２）が、１次元値を、空間充填曲線変換処理により多次元値に変換し、１次元値ではなく、多次元値として空間充填曲線サーバ情報テーブル３３２に格納してもよい。空間充填曲線サーバ情報テーブル３３２に１次元値として格納した場合は、これを参照する際には、与えられた多次元属性値あるいは多次元属性範囲を、空間充填曲線による処理を行いながら参照する必要がある。一方、空間充填曲線サーバ情報テーブル３３２に多次元値として格納した場合は、これを参照する際には、空間充填曲線による処理は不要となる。たとえば、図２４の多次元属性宛先表３３３に示すような、各ノードの多次元属性範囲を表形式に変換し、空間充填曲線サーバ情報テーブル３３２として空間充填曲線サーバ情報格納部３２８に格納してもよい。
【００８８】
図１２に戻り、逆関数部３２４は、分布格納部３１０に格納されている累積分布情報を用いて、これを関数として表した累積分布関数ｒ＝ＣＤＦ（ｖ）の逆関数ｖ＝ＩＣＤＦ（ｒ）を施すことで得られる値に対応するように、入力値に対して１次元値を出力する。累積ヒストグラムを用いる場合、この区分ｉの累積分布割合をｒ［ｉ］、１次元値をｖ［ｉ］とする。
【００８９】
たとえば、予め昇順にソートされた表から、与えられた入力値がｒであるとすると、ｒ［ｉ］＝ｒである区分ｉが存在する場合は、ｖ［ｉ］を出力する。そうでない場合、ｒ［ｉ−１］＜ｒ＜ｒ［ｉ］であるような区分ｉを見つけ、次の式（１）で対応する１次元値を算出する。
【００９０】
【数１】
2013046667.tif 000003
【００９１】
空間充填曲線サーバ変換部３２６は、逆関数部３２４で算出された宛先サーバ毎の１次元値を入力として、空間充填曲線変換処理により多次元値に変換する。さらに、空間充填曲線サーバ変換部３２６は、空間充填曲線サーバ情報格納部３２８に格納される空間充填曲線サーバ情報テーブル３３２の上述した形式に応じて、サーバ毎の１次元値を予め定められた空間充填曲線サーバ情報の形式に変換し、空間充填曲線サーバ情報テーブル３３２を作成し、空間充填曲線サーバ情報格納部３２８に格納する。なお、形式の変換は行わず、各サーバのアドレスと、逆関数部３２４により得られた１次元値との対を含む情報のままでもよい。
【００９２】
図１４は、本実施形態の情報システム１の要部構成を示す機能ブロック図である。
本実施形態の情報システム１は、さらに、複数のコンピュータに分散して格納されるデータ群に対し、データの処理の操作要求とともに、操作要求を受け付けたデータに対応する属性値を受け付ける操作要求部３６０と、決定部（空間充填曲線サーバ決定部３４６）が決定した宛先アドレスに、受け付けた操作要求を転送する転送部（中継部３８０または操作要求部３６０）と、を備え、決定部（空間充填曲線サーバ決定部３４６）は、操作要求部３６０が受け付けた属性値に基づいて、宛先アドレスを決定し、中継部３８０（または操作要求部３６０）に受け渡す。
【００９３】
具体的には、図１４に示すように、宛先解決部３４０は、単一宛先解決部３４２と、範囲宛先解決部３４４と、空間充填曲線サーバ決定部３４６と、を有する。本実施形態では、宛先解決部３４０は、単一宛先解決部３４２と範囲宛先解決部３４４を両方備える構成としているが、特に限定されるものではなく、いずれか一方であってもよい。
また、操作要求部３６０は、データ追加削除部３６２と、データ検索部３６４と、を有する。
さらに、データ格納サーバ１０６は、データ格納部３９０を備えている。
【００９４】
単一宛先解決部３４２は、与えられたデータの多次元属性の値を入力として、そのデータに関する操作要求を送信すべき宛先のコンピュータの宛先アドレスを取得する。
範囲宛先解決部３４４は、与えられた多次元属性の範囲を入力として、そのデータに関する操作要求を送信すべき宛先のコンピュータの宛先アドレスを複数取得する。
【００９５】
空間充填曲線サーバ決定部３４６は、空間充填曲線サーバ情報格納部３２８に格納された空間充填曲線サーバ情報を取得する。そして、空間充填曲線サーバ決定部３４６は、空間充填曲線サーバ情報を参照しながら、単一宛先解決部３４２または範囲宛先解決部３４４から通知された多次元属性値の値または多次元属性の範囲と対応する１つまたは複数のコンピュータの宛先を単一宛先解決部３４２または範囲宛先解決部３４４にそれぞれ返す。
【００９６】
データ追加削除部３６２（図１のデータ操作クライアント１０４の操作要求部３６０）は、外部のアプリケーションプログラム等にデータへの追加削除操作サービスを利用者に提供する。さらに、データ追加削除部３６２は、利用者によりアプリケーションプログラムが実行され、データの追加削除操作が要求されると、操作要求の対象となるデータに関して、予めインデックス付けすると決められた複数属性について、操作要求で指定された値を取得する。そして、データ追加削除部３６２は、この多次元の属性値に関する操作要求を送信すべき宛先のコンピュータのアドレスを宛先解決部３４０から取得する。そして、さらに、データ追加削除部３６２は、取得したその宛先のアドレスのコンピュータに対して、操作を転送する。操作を実行すべきコンピュータ（データ格納サーバ１０６）のデータ追加削除部３６２が、操作を受信すると、該当するデータ格納部３９０に対してデータの追加や削除の処理を行い、データの追加や削除の処理の結果を、当該サービスを呼び出したプログラムに返却する。
【００９７】
ここで、アプリケーションプログラムは、たとえば、ウェブアプリケーションであり、各種ショッピングサイトなどのアプリケーションプログラムである。
【００９８】
データ検索部３６４（図１のデータ操作クライアント１０４の操作要求部３６０）は、外部のアプリケーションプログラム等にデータの検索サービスを提供する。このデータ検索処理が実行されると、データ検索部３６４は、検索要求で指定された検索式から、予めデータにインデックス付けすると決められた複数属性の範囲を取得する。そして、データ検索部３６４は、この多次元の属性範囲に関する操作要求を送信すべき宛先のコンピュータのアドレスを複数取得する。そして、データ検索部３６４は、そのそれぞれのコンピュータに対して、操作を転送する。操作を実行すべきコンピュータ（データ格納サーバ１０６）のデータ追加削除部３６２が、操作を受信すると、該当するデータ格納部３９０に対してデータの検索処理を行い、その結果得られるデータ検索の結果を、当該サービスを呼び出したプログラムに返却する。
【００９９】
本実施形態では、操作要求部３６０は、データ追加削除部３６２とデータ検索部３６４を両方備える構成としているが、特に限定されるものではなく、いずれか一方であってもよい。また、データ追加削除部３６２またはデータ検索部３６４以外のデータ処理部を備えてもよい。たとえば、データ処理部は、条件を指定して複数データ集合に対する検索や、条件指定の更新処理などの要求を受け付け、処理を行ってもよい。
【０１００】
なお、本発明の情報システム１は、少なくとも空間充填曲線サーバ情報テーブル３３２を記憶する空間充填曲線サーバ情報格納部３２８と、空間充填曲線サーバ決定部３４６と、利用者からの処理対象となるデータの属性値（属性空間を含む）を含む操作要求を受け付ける操作要求受付部（不図示）と、を備えていればよい。
【０１０１】
中継部３８０は、他のコンピュータの操作要求部３６０または中継部３８０から転送された操作要求を受け付けて、他のコンピュータに転送する機能を有する。その転送先は、上述したように、受け付けた操作要求に含まれる属性値や属性に対する検索条件をもとに、その中継部３８０と同一のコンピュータに存在する宛先解決部３４０に問い合わせることで決定する。
【０１０２】
データ格納部３９０には、当該分散システムに格納されるデータが格納され、外部からのデータ書込み、読み込み要求に応じて、データの読み出しや書き出しが行われる。
【０１０３】
上述のような構成において、本実施形態の情報システム１の管理方法を以下に説明する。
本実施形態の情報システムの管理方法は、上記実施形態の管理方法に加え、さらに、スキーマ管理サーバ１０２（図１０）において、空間充填曲線１次元化部３０４（図１０）が、データ群から予め定められた属性値に基づくデータに含まれる多次元属性値を、空間充填曲線変換処理を行い１次元化し、分布算出部３０８（図１０）が、１次元化された値の累積分布を算出し、事前処理部３２０（図１２）が、分布算出部３０８（図１０）が算出した累積分布をデータの分布として、論理識別子空間との対応付けを行う。
【０１０４】
さらに、本実施形態の情報システム１の管理方法は、さらに、事前処理部３２０（図１２）において、逆関数部３２４（図１２）が、分布情報を表す分布関数を求め、各ノードの論理識別子を入力として、当該分布関数の逆関数を施し、１次元値を出力し、空間充填曲線サーバ変換部３２６（図１２）が、１次元値を、空間充填曲線変換処理により多次元値に変換し、多次元値と、論理識別子と、宛先アドレスとを対応付けて対応関係（図１３の空間充填曲線サーバ情報テーブル３３２）として保持する。
【０１０５】
上述したように、本実施形態では、逆関数部３２４が出力した結果は、論理識別子と、宛先アドレスとを対応付けて対応関係（図１３の空間充填曲線サーバ情報テーブル３３２）として保持する。ここで空間充填曲線サーバ変換部３２６（図１２）が、１次元値を、空間充填曲線変換処理により多次元値に変換し、１次元値ではなく、多次元値として対応関係（図１３の空間充填曲線サーバ情報テーブル３３２）に格納してもよい。
【０１０６】
このように構成された本実施形態の情報システム１の動作について、以下に説明する。
まず、本実施形態の情報システム１における１次元化された多次元分布を生成するスキーマ管理サーバ１０２の動作について説明する。
本実施の形態のスキーマ管理サーバ１０２の動作について詳細に説明する。この動作は、本実施形態の情報システム１の起動時、定期的、または手動要求時などのタイミングにより実行される。図１５は、本実施形態の情報システム１のスキーマ管理サーバ１０２における一次元化された多次元分布の生成を行う処理（ステップＳ１０１）の一例を示すフローチャートである。以下、図１０と図１５を用いて説明する。
【０１０７】
まず、スキーマ管理サーバ１０２が、サンプルデータ格納部３０２に格納された多次元データのそれぞれについて、以下のステップＳ１０３乃至ステップＳ１０７を繰り返し実行する（ステップＳ１０３）。そして、空間充填曲線１次元化部３０４が、サンプルデータ格納部３０２を参照し、多次元データの１次元化を行う（ステップＳ１０５）。ステップＳ１０５で得られた１次元値が、サンプルデータ１次元値格納部３０６に格納される（ステップＳ１０７）。サンプルデータ格納部３０２に格納された多次元データについて上記の処理が終わったら、次に、サンプルデータ１次元値格納部３０６に格納されたデータから、分布算出部３０８が、累積分布情報を導出し、分布格納部３１０に格納する（ステップＳ１０９）。
【０１０８】
次に、本実施形態の情報システム１の事前処理部３２０の動作について説明する。図１６は、本実施形態の情報システム１の事前処理部３２０における空間充填曲線サーバ情報を生成する処理（ステップＳ２０１）の一例を示すフローチャートである。以下、図１２、および図１５を用いて説明する。
【０１０９】
まず、事前処理部３２０（図１２）が、宛先サーバ情報格納部３２２（図１２）に格納された宛先のサーバ情報それぞれについて、以下のステップＳ２０５およびステップＳ２０７を繰り返し実行する（ステップＳ２０３）。逆関数部３２４（図１２）が、宛先の論理識別子を正規化し、これに逆関数を施し、１次元の値を得る（ステップＳ２０５）。これを、逆関数部３２４が、図１３の空間充填曲線サーバ情報テーブル３３２として空間充填曲線サーバ情報格納部３２８（図１２）に格納する（ステップＳ２０７）。あるいは、ステップＳ２０５で得られた１次元値を、空間充填曲線サーバ変換部３２６（図１２）が、多次元属性値とし、これを全てのサーバ情報について処理することで得られる空間充填曲線サーバ情報を、空間充填曲線サーバ情報格納部３２８（図１２）に格納する（ステップＳ２０７）。
【０１１０】
次に、本実施形態の情報システム１における操作要求に呼応した宛先解決部３４０の動作について説明する。
図１７および図１８は、本実施形態の情報システム１における操作要求に呼応した宛先解決部３４０の宛先決定処理（ステップＳ３０１）および複数の宛先決定処理（ステップＳ４０１）の動作の例それぞれ示すフローチャートである。
【０１１１】
本発明のデータ処理方法は、データ群を分散して管理する複数のノードを管理するサーバに接続されたクライアント端末（外部アプリケーションプログラムのサービス提供を受けている端末（不図示））のデータ処理方法であって、クライアント端末が、属性値または属性範囲を有するデータへのアクセス要求を管理装置（図４のデータ操作クライアント１０４または操作要求中継サーバ１０８）に通知し、管理装置を介して、複数のノード（図４のデータ格納サーバ１０６）の宛先アドレスと、各ノード（データ格納サーバ１０６）に割り当てられた論理識別子と、各ノード（データ格納サーバ１０６）が管理しているデータの値の範囲との対応関係に基づいて、アクセス要求された属性値または属性範囲の少なくとも一部が一致する範囲のデータを管理するノード（データ格納サーバ１０６）の宛先にアクセスしてデータを操作する（図１７ステップＳ３０９）。
【０１１２】
具体的には、まず、データの登録または削除といった操作で利用される単一宛先解決部３４２の動作について、図１３、図１４および図１７のフローチャートを参照して説明する。
【０１１３】
本処理は、外部のアプリケーションプログラムなどにおいて、データへの追加削除操作サービスが他のコンピュータにより実行された時、データ追加削除部３６２（図１４）が、処理対象のデータに関する予めインデックス付けすると決められた複数属性に対する値を、ネットワーク３（図１４）を介して取得し、単一宛先解決部３４２（図１４）に通知することで、開始する。
【０１１４】
まず、単一宛先解決部３４２（図１４）が、データ追加削除部３６２（図１４）から多次元属性の値を入力し、空間充填曲線サーバ決定部３４６（図１４）に受け渡す（ステップＳ３０３）。空間充填曲線サーバ決定部３４６（図１４）が、空間充填曲線サーバ情報格納部３２８（図１４）に格納された空間充填曲線サーバ情報テーブル３３２（図１３）を取得する。そして、空間充填曲線サーバ決定部３４６が、空間充填曲線サーバ情報テーブル３３２を参照しながら、多次元属性値の値に対応する１つのコンピュータ（サーバ）の宛先（ＩＰアドレス）を取得し、単一宛先解決部３４２（図１４）に返す（ステップＳ３０５）。
【０１１５】
そして、単一宛先解決部３４２（図１４）が、空間充填曲線サーバ決定部３４６（図１４）により決定された宛先を取得し、その宛先のアドレスの他のコンピュータに対して、中継部３８０により操作要求をネットワーク３（図１４）を介して転送する（ステップＳ３０７）。そして、転送先のコンピュータにおいて、データ追加削除部３６２（図１４）が操作要求に従いデータの追加や削除操作をデータ格納サーバ１０６（図１４）のデータ格納部３９０（図１４）に対して行う（ステップＳ３０９）。そして、データ追加削除部３６２（図１４）が、その操作結果を、当該サービスを呼び出したプログラム（たとえば、プログラムを実行している図１のデータ操作クライアント１０４）にネットワーク３（図１４）を介して返却する（ステップＳ３１１）。
なお、転送先のコンピュータにおいて、さらに、操作要求の転送が必要な場合、宛先解決部３４０（図１４）の単一宛先解決部３４２（図１４）が、操作要求に含まれる多次元属性の値をもとに、宛先を決定する。
【０１１６】
次に、データの検索といった操作で利用される範囲宛先解決部３４４の動作について、図１８のフローチャートを参照して説明する。以下、図１３、図１４、および図１８を用いて説明する。
【０１１７】
本処理は、外部のアプリケーションプログラムなどにおいて、データの検索サービスが他のコンピュータにより実行された時、データ検索部３６４（図１４）が、検索要求で指定された検索式から予めインデックス付けすると決められた複数属性の範囲を、ネットワーク３を介して取得し、範囲宛先解決部３４４（図１４）に通知することで、開始する。
【０１１８】
まず、範囲宛先解決部３４４（図１４）が、データ検索部３６４（図１４）から多次元属性の範囲を入力し、空間充填曲線サーバ決定部３４６（図１４）に受け渡す（ステップＳ４０３）。空間充填曲線サーバ決定部３４６（図１４）が、空間充填曲線サーバ情報格納部３２８（図１４）に格納された空間充填曲線サーバ情報テーブル３３２（図１３）を取得する。そして、空間充填曲線サーバ決定部３４６が、空間充填曲線サーバ情報テーブル３３２を参照しながら、多次元属性値の範囲に対応する複数のコンピュータ（サーバ）の宛先（ＩＰアドレス）を取得し、範囲宛先解決部３４４（図１４）に返す（ステップＳ４０５）。
【０１１９】
そして、範囲宛先解決部３４４（図１４）が、空間充填曲線サーバ決定部３４６（図１４）により決定された複数の宛先を取得し、その複数の宛先のアドレスの他のコンピュータに対して、中継部３８０（図１４）により操作要求をネットワーク３（図１４）を介してそれぞれ転送する（ステップＳ４０７）。そして、転送先の各コンピュータにおいて、データ検索部３６４が操作要求に従い、データの検索をデータ格納サーバ１０６（図１４）のデータ格納部３９０（図１４）に対して行う（ステップＳ４０９）。そして、データ検索部３６４（図１４）が、その検索結果を、当該サービスを呼び出したプログラム（たとえば、プログラムを実行しているデータ操作クライアント１０４）にネットワーク３（図１４）を介して返却する（ステップＳ４１１）。
なお、転送先のコンピュータにおいて、さらに、操作要求の転送が必要な場合、宛先解決部３４０（図１４）の範囲宛先解決部３４４（図１４）が、操作要求に含まれる多次元属性の範囲をもとに、転送先の宛先（ＩＰアドレス）を決定する。
【０１２０】
具体例として、たとえば、ＳＱＬ（Structured Query Language）で、CREATE TABLE user (char name, number age, number longitude, ...)というテーブルに対して、CREATE INDEX geo_idx ON user (longitude, latitude)というようなコマンドで、longitude, latitudeという２次元属性にインデックスがつけられ、INSERT INTO user (name, age, longitude, ...) VALUES (hoge,20,35.3..., ...)という登録要求があると、緯度と経度の35.3..., 140.1...という属性値に対して本方式を適用し、その格納先には、name=hogeというプライマリキーの値を格納しておく。このようにすることで、検索時に、SELECT name FROM user WHERE user.age > 20 and user.longitude ... 緯度と経度の範囲から、user.nameに関する値を取得できる。
【０１２１】
すなわち、本実施形態において、データ検索部３６４（図１４）が、INSERT INTO user (name, age, longitude, ...) VALUES (hoge,20,35.3..., ...)という登録要求を受け付け、範囲宛先解決部３４４（図１４）が、SELECT name FROM user WHERE user.age > 20 and user.longitude ... 緯度と経度の範囲から、user.nameに関する値を取得する。
【０１２２】
以上、説明したように、本実施形態の情報システム１によれば、多次元属性値のデータについて、分布情報を生成し、その分布情報に基づき、統計的に均一に多次元属性値のデータを各ノードに割り振ることができる。
そして、本実施形態の情報システム１によれば、データの登録、削除、検索等の操作の実行以前に、属性値または属性部分空間に対するデータを担当しているコンピュータの宛先情報を下記の手順で準備しておくことができる。
すなわち、宛先サーバ情報格納部３２２（図１２）に格納される宛先サーバ情報テーブル３３０（図６）の情報とデータ分布の情報から逆関数部３２４（図１２）を用いて、宛先サーバ毎の１次元値を算出し、与えられた１次元値を入力として、空間充填曲線サーバ変換部３２６（図１２）によって多次元値を出力し、この多次元値と宛先サーバとの対から、空間充填曲線サーバ情報格納部３２８（図１２）に、属性値または属性部分空間に対する宛先情報を格納することができる。
【０１２３】
そして、データの登録、削除、検索等の操作の実行時には、空間充填曲線サーバ情報格納部３２８（図１２）から、属性値または属性部分空間に対する宛先情報を取得し、与えられた属性値や属性条件から、対応する宛先情報を取得することができる。
【０１２４】
すなわち、この構成によれば、予めインデックス付けされた、属性値（属性空間を含む）に基づくデータの部分集合を有するコンピュータを高速に特定することができる。ひいては、ある属性値（属性空間を含む）を有するデータを高速に検索できることとなる。その理由は、空間充填曲線変換を最後まで行う必要がなく、途中で宛先サーバを決定することができるからである。すなわち、属性値を空間充填曲線変換して多次元値を求める途中で、対応情報テーブルを参照しながら属性値に対応する多次元値を１次元で表現した値の先頭ビットから確認していき、属性値に対応する割り当て範囲がみつかったとき、その多次元値に対応する宛先アドレスを決定することができるからである。
【０１２５】
このように、本実施形態の情報システム１によれば、データに対して登録、削除、検索などの操作を行う際、複合インデックスづけされた属性の数（次元数）が多い場合であっても、データの属性値あるいは属性値に対する条件から、当該操作の要求情報を転送する先を決定する処理を高速化することができるという効果を奏する。
その理由は、データの登録や削除、検索を行う際には、多次元の属性値や属性条件を１次元の値や範囲に変換する処理を行う必要がないからである。
【０１２６】
さらに、データに対して登録、削除、検索などの操作を行うために、データの属性値あるいは属性に対する条件から、当該操作の要求情報を転送する先を決定する際に、複合インデックスづけされたデータのビット長が長くなると、その決定に要する計算時間が増加し、その操作の応答時間などの性能が劣化するという問題点があった。
【０１２７】
その理由は、複合インデックスづけされた属性値を、空間充填曲線処理手段にて１次元の値とする処理は、ビット長が長くなるほど、変換に要する時間が必要となるからである。特に、データの登録または削除時の単一の１次元値を出力するのではなく、検索時の１次元値の範囲を出力する際には、変換に要する時間が増える。
【０１２８】
たとえば、上述した文献記載のシステムにおいては、データに対して登録、削除、検索などの操作を行うために、データの属性値あるいは属性値に対する条件から、当該操作の要求情報を転送する先を決定する際に、複合インデックスづけされた属性の数（次元数）が多くなると、その決定に要する計算時間が増加し、その操作の応答時間などの性能が低下するという問題点があった。
【０１２９】
その理由は、複合インデックスづけされた属性値を、空間充填曲線処理手段にて１次元の値とする処理が、次元数が増えるほど、変換に要する時間が必要となるからである。特に、データの登録または削除時の単一の１次元値を出力するのではなく、検索時の１次元値の範囲を出力する際には、変換に要する時間が増える。
【０１３０】
本実施形態の情報システム１によれば、さらに、データに対して登録、削除、検索などの操作を行う際、複合インデックスづけされたデータ型のビット長が長い場合であっても、データの属性値あるいは属性値に対する条件から、当該操作の要求情報を転送する先を決定する処理を高速化することができるという効果を奏する。
その理由は、データの登録や削除、検索を行う際には、多次元の属性値や属性条件を１次元の値や範囲に変換する処理を行う必要がないからである。
【実施例】
【０１３１】
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。以下、図１、図２、図１０、図１２乃至図１４、図１６、および図１９乃至図２３を用いて説明する。
本実施例では、図２に示すように、アクセスコンピュータ２０２から、複数のデータコンピュータ２０８に格納されたデータを操作する例を示す。図２のアクセスコンピュータ２０２には図１のデータ操作クライアント１０４が存在し、図２のメタデータコンピュータ２０４には図１のスキーマ管理サーバ１０２が存在し、図２のデータコンピュータ２０８には、図１のデータ格納サーバ１０６が存在するとする。【０１３２】
本実施例では、図２のメタデータコンピュータ２０４における図１０のスキーマ管理サーバ１０２のサンプルデータ格納部３０２には、図１９のデータ分布１００１が格納されているとする。
スキーマ管理サーバ１０２（図１０）における、図１６の空間充填曲線サーバ情報の生成処理においては、まず、図１０の空間充填曲線１次元化部３０４は、図１９のデータ分布１００１に表された各データの多次元属性値から、１次元化を行い、それぞれを図１０のサンプルデータ１次元値格納部３０６に格納する。次に、図１０の分布算出部３０８は、格納された１次元値からその累積分布情報を累積ヒストグラムなどの形式で算出し、図１０の分布格納部３１０に格納する。【０１３３】
図１０の分布算出部３０８では、まず、図２０（ａ）に示す密度分布情報１００３としてヒストグラムが得られるとする。ここでは、図２０（ｂ）に示す分布幅と分布量を有した表１００５で表されるとする。この密度分布から累積分布に変換し、さらに各区分の分布量を分布量の総和で除した累積分布割合を、図２１（ｂ）の表１０１５に示し、これは図２１（ａ）の累積分布情報（累積ヒストグラム）１０１３と対応する。また、図２２（ａ）の累積分布情報１０２３に示されるような、分布幅に対して、図２２（ｂ）に示されるように、分布量の傾き（図中、「区間傾き」と示す）を表１０２５に記憶してもよい。表１０２５に分布量の傾きを記憶することで、上記実施形態で説明した（式１）における(v[i] - v[i-1])/(r[i] - r [i-1])を毎回計算する必要が不要となる。【０１３４】
本実施例では、図２のデータコンピュータ２０８が９台存在しているとし、図２のアクセスコンピュータ２０２には、図２のデータコンピュータ２０８にアクセスするアドレス（ＩＰアドレスなど）の情報が格納されているとし、これを図１２の宛先サーバ情報格納部３２２に格納された空間充填曲線サーバ情報テーブル３３２（図１３）のサーバＩＰアドレス欄に示す。【０１３５】
ＩＤ付与部１１２により、このサーバＩＰアドレスをＳＨＡ（Secure Hash Algorithm）１やＭＤ５（Message Digest Algorithm 5）などのハッシュ関数に入力して得られる値が、サーバの論理識別子として算出され、図１２の同じ宛先サーバ情報格納部３２２に格納される。論理識別子は、ハッシュ関数によって決まる論理識別子空間サイズを２ｂとして［０，２ｂ）の範囲に分布する。【０１３６】
上述したように、“記号［”や、“記号］”は閉区間を表し、“記号（”や“記号）”は開区間を表す。以降では、これを図２３に示すように論理識別子空間１１００をリング状に示し、この円上に配置する論理識別子１１０２で、コンピュータを表す。また、以降では論理識別子を論理識別子空間サイズで除して得られる値を正規化論理識別子とする。これは［０，１）の範囲に分布する。なお、各コンピュータは、属性値の分布とは独立に確率的に均一に論理識別子空間１１００に割り当てられている。【０１３７】
アクセスコンピュータ２０２（図２）による図１６の空間充填曲線サーバ情報の生成処理（図１６のステップＳ２０１）においては、図６の宛先サーバ情報テーブル３３０に格納された各サーバについて、その正規化論理識別子を逆関数部３２４（図１２）が、１次元値に変換する。この時、逆関数部３２４（図１２）はスキーマ管理サーバ１０２（図１０）における分布格納部３１０（図１０）の累積分布情報を参照する。ここで示す逆関数を算出する手順として、累積ヒストグラムの表１０１５（図２１（ｂ））を用いる場合で例示すると、入力の正規化論理識別子として０．３５が与えられると、０．１３が返される。【０１３８】
０．３６が与えられると、（０．３６−０．３５）×（０．１６−０．１３）／（０．４−０．３５）＋０．１３から、０．１３６が返される。このようにして得られる［０，１］に分布する１次元値を２進数表現として［０００．．．，１１１．．．）と表記でき、空間充填曲線サーバ変換部３２６（図１２）がこの２進数表現での１次元値と各サーバのＩＰアドレスの情報を図２５のように空間充填曲線サーバ情報テーブル３３２として、空間充填曲線サーバ情報格納部３２８（図１２）に格納する。なお、本実施例では、空間充填曲線サーバ変換部３２６（図１２）は、形式的な変換のみである。なお、図２５の例では、１次元値を範囲の起点ではなく、値域端点で保持している。【０１３９】
アクセスコンピュータ２０２（図２）において、データ追加削除部３６２（図１４）がデータ登録要求を受け、単一宛先解決部３４２（図１４）が、このデータからインデックス付けされた多次元属性値と対応する宛先の決定を行う。【０１４０】
ここでは、二次元の属性値を例とし、この値が（３，４）、すなわち２進数表記で（０１１，１００）であるとする。
空間充填曲線サーバ決定部３４６（図１４）は、各次元の先頭ビットを取り出し第１多次元ビット（０１）を得る。初期の変換規則表状態が０であるとする。
状態０の変換規則から、出力として第１の一次元ビット（０１）を出力する。ここで空間充填曲線サーバ情報を参照し、その値域端点のビットパターンが一次元ビット０１から始まる値域端点０１１０１１（２７）にポインタを移動する。
変換規則にて、入力の多次元ビット列が０１の時の変換規則表状態は０であるので、別の表には遷移せずに同じ表を用いる。【０１４１】
次のビットとして第２多次元ビット（１０）を得る。変換規則から出力として第２の１次元ビット（１１）が出力され、これを先のビット列に追加し一次元ビット（０１１１）を得る。得られた０１１１から始まる値域端点０１１１０１（２９）にポインタを移動する。第２多次元ビット（１０）に対応する遷移先の変換規則状態は２なので、この変換規則表を取得する。
次のビットとして第３多次元ビット（１１）を取り出し、状態２の変換規則表にて、第３の１次元（００）が出力され、これも先のビット列に追加され１次元ビット（０１１１００）、１０進数としては２８を得る。
これを値域として管理するノードは、論理識別子が５５１であり、図２５に示す空間充填曲線サーバ情報テーブル３３２から、ＩＰが１０．１．１．５であるノードが選択される。このようにして、宛先を決定することができる。【０１４２】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。【０１４３】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１４４】
この出願は、２０１１年９月２７日に出願された日本出願特願２０１１−２１１１５７号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2013046667.tif 000004
【図２】
2013046667.tif 000005
【図３】
2013046667.tif 000006
【図４】
2013046667.tif 000007
【図５】
2013046667.tif 000008
【図６】
2013046667.tif 000009
【図７】
2013046667.tif 000010
【図８】
2013046667.tif 000011
【図９】
2013046667.tif 000012
【図１０】
2013046667.tif 000013
【図１１】
2013046667.tif 000014
【図１２】
2013046667.tif 000015
【図１３】
2013046667.tif 000016
【図１４】
2013046667.tif 000017
【図１５】
2013046667.tif 000018
【図１６】
2013046667.tif 000019
【図１７】
2013046667.tif 000020
【図１８】
2013046667.tif 000021
【図１９】
2013046667.tif 000022
【図２０】
2013046667.tif 000023
【図２１】
2013046667.tif 000024
【図２２】
2013046667.tif 000025
【図２３】
2013046667.tif 000026
【図２４】
2013046667.tif 000027
【図２５】
2013046667.tif 000028
【国際調査報告】
2013046667.tif 000029
2013046667.tif 000030
2013046667.tif 000031
2013046667.tif 000032