(57)【要約】【課題】  データが広域に分散する環境において、利用者が所定のデータＸを望む場合、データＸの所在を意識せずデータＸへアクセス可能とするサーバを提供する。【解決手段】  クライアント端末はサーバＡにデータＸを要求する問合せデータＸを送信する。サーバＡはデータ対応表を検索しデータＸを保有するか確認する。保有する場合はクライアント端末２００に返信する。保有しない場合はデータ対応表を検索し、データＸを保有するサーバを確認する。保有するサーバが確認できた場合、そのサーバに問合せデータＸを転送する。確認できない場合、登録サーバ表を参照し、所定のサーバ（例えばサーバＢ）に問合せデータＸを転送する。サーバＢはサーバＡから問合せデータＸを受信すると、サーバＡ同様の動作を実行する。更にサーバＢがサーバＤに問合せデータＸを転送し、サーバＤがデータＸを有する場合、サーバＤはデータＸをサーバＡに向けて返信する。【選択図】        図１
2007025964.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続して他のサーバと通信を行なうことによりデータの所在を管理するデータ所在管理サーバにおいて、
所定のデータを要求する信号を示すデータ要求を受信する受信部と、
自己の保有するべき保有データを記憶する保有データ記憶部と、
前記保有データ記憶部が記憶する前記保有データと自己との対応関係と、前記受信部が受信した前記データ要求を転送可能な転送先を示す転送先サーバとを記憶する対応関係記憶部と、
前記受信部が前記データ要求を受信した場合に、
前記データ要求が要求するデータを前記保有データ記憶部が前記保有データとして記憶しているかどうかを前記対応関係記憶部が記憶する前記対応関係を参照して確認し、
前記対応関係の確認結果により前記保有データ記憶部が前記データ要求が要求するデータを前記保有データとして記憶している場合には、前記保有データ記憶部が記憶する前記保有データを返信し、
前記対応関係の確認結果により前記保有データ記憶部が前記データ要求が要求するデータを前記保有データとして記憶していない場合には、前記対応関係記憶部が記憶する所定の前記転送先サーバに前記受信部が受信した前記データ要求を転送する確認部と
を備えたことを特徴とするデータ所在管理サーバ。
【請求項２】
前記対応関係記憶部は、
前記保有データ記憶部が記憶する前記保有データと自己との対応関係と、データを保有する他のサーバと前記他のサーバが保有する前記データとの対応関係とを登録したデータ所在情報を記憶するデータ所在情報記憶部と、
前記受信部が受信した前記データ要求を転送する転送先の候補を示す候補サーバを登録した登録サーバ情報を記憶する登録サーバ情報記憶部と
を備え、
前記確認部は、
前記受信部が前記データ要求を受信した場合に、
前記データ要求が要求するデータを前記保有データ記憶部が前記保有データとして記憶しているかどうかを前記データ所在情報記憶部が記憶する前記データ所在情報を検索して確認し、
前記データ所在情報の確認結果により前記保有データ記憶部が前記データ要求が要求するデータを前記保有データとして記憶している場合には、前記保有データ記憶部が記憶する前記保有データを返信し、
前記データ所在情報の確認結果により前記保有データ記憶部が前記データ要求が要求するデータを前記保有データとして記憶していない場合には、前記データ所在情報記憶部が記憶する前記データ所在情報を検索して前記データ要求が要求するデータを保有するサーバが存在するかどうかを確認し、
前記データ要求が要求するデータを保有するサーバの存在を確認できた場合には、確認されたサーバを前記転送先サーバとして前記受信部が受信した前記データ要求を転送し、
前記データ要求が要求するデータを保有するサーバの存在を確認できない場合には、前記登録サーバ情報記憶部が記憶する前記登録サーバ情報に登録された前記候補サーバから所定の規則に従って候補サーバを選択し、その選択された候補サーバを前記転送先サーバとして前記受信部が受信したデータ要求を転送することを特徴とする請求項１記載のデータ所在管理サーバ。
【請求項３】
前記受信部が受信する前記データ要求は、
クライアント端末から自身を受信した受信サーバにより転送されているとともに、自身を転送した前記受信サーバを示す受信サーバ情報を含み、
前記データ所在管理サーバは、さらに、
前記データ要求に含まれる前記受信サーバ情報を参照し、前記受信サーバが前記登録サーバ情報に登録されていない場合には、前記受信サーバを前記候補サーバとして前記登録サーバ情報に登録する登録部
を備えたことを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項４】
前記受信部が受信する前記データ要求は、
前記ネットワークを介して複数のサーバを経由された場合には、経由された一連のサーバを示す経由履歴情報を含み、
前記データ所在管理サーバは、さらに、
前記データ要求に前記経由履歴情報が含まれる場合には前記経由履歴情報を参照し、前記経由履歴情報に示されるサーバが前記登録サーバ情報に登録されていない場合には、前記経由履歴情報に示されるサーバを前記候補サーバとして前記登録サーバ情報に登録する登録部を備えたことを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項５】
前記受信部は、
前記データ要求が要求するデータと、前記データ要求が要求するデータを保有し提供したデータ提供サーバを示すデータ提供サーバ情報と、前記データ要求が要求するデータの返信経路とを含む応答データを受信し、
前記データ所在管理サーバは、さらに、
前記受信部が受信した前記応答データに含まれる前記データ提供サーバ情報を参照し、前記データ提供サーバが前記登録サーバ情報に登録されていない場合には、前記データ提供サーバを前記候補サーバとして前記登録サーバ情報に登録する登録部を備え、
前記確認部は、
前記受信部が受信した前記応答データに含まれる前記返信経路に基づいて前記応答データを転送することを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項６】
前記受信部は、
前記データ要求が要求するデータと、前記データ要求が要求するデータを保有し提供したデータ提供サーバを示すデータ提供サーバ情報と、前記データ要求が要求するデータの返信経路とを含む応答データを受信し、
前記データ所在管理サーバは、さらに、
前記受信部が前記応答データを受信した場合に、前記データ提供サーバと前記データ提供サーバが提供した前記データ要求が要求するデータとの対応関係を前記データ所在情報記憶部が記憶する前記データ所在情報に登録する登録部を備え、
前記確認部は、
前記受信部が受信した前記応答データに含まれる前記返信経路に基づいて前記応答データを転送することを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項７】
前記登録部は、
前記データ提供サーバと前記データ提供サーバが提供した前記データ要求が要求するデータとの対応関係を前記データ所在情報記憶部が記憶する前記データ所在情報に登録する場合に、前記データ所在情報に前記データ提供サーバ以外のサーバと前記データ提供サーバが提供した前記データ要求が要求するデータと同一のデータとの対応関係が既に登録されている場合には、既に登録されている前記対応関係を前記データ所在情報から削除することを特徴とする請求項６記載のデータ所在管理サーバ。
【請求項８】
前記データ所在管理サーバは、さらに、
前記登録サーバ情報記憶部が記憶する前記登録サーバ情報に登録された前記候補サーバに対して優先順位を付与する登録部を備え、
前記確認部は、
前記登録部が付与した前記優先順位を前記所定の規則とすることにより、前記データ要求を転送する候補サーバを選択することを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項９】
前記データ所在管理サーバは、さらに、
前記登録サーバ情報記憶部が記憶する前記登録サーバ情報を監視し、前記確認部により選択される頻度が他の候補サーバに比べて少ない候補サーバを前記登録サーバ情報から削除する登録部を備えたことを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項１０】
前記確認部は、
データの送信を指令する送信指令信号を入力した場合に、前記データ所在情報記憶部が記憶する前記データ所在情報と前記登録サーバ情報記憶部が記憶する前記登録サーバ情報とのうち少なくともいずれかを、前記データ所在情報に登録されているサーバと前記登録サーバ情報に登録されている前記候補サーバとのうちの少なくともいずれかのサーバに送信することを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項１１】
前記受信部は、
データを保有する他のサーバと前記他のサーバが保有する前記データとの対応関係と、
前記ネットワークに接続するサーバを示すサーバ情報との少なくともいずれかを受信し、
前記データ所在管理サーバは、さらに、
前記受信部が前記対応関係を受信した場合には、受信した前記対応関係を前記データ所在情報に登録し、前記受信部が前記サーバ情報を受信した場合には、受信した前記サーバ情報の示すサーバを前記候補サーバとして前記登録サーバ情報に登録する登録部
を備えたことを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項１２】
前記確認部は、
前記保有データ記憶部が記憶している前記保有データが削除された場合に、前記データ所在情報記憶部が記憶する前記データ所在情報から前記保有データと自己との対応関係を削除するとともに、前記保有データが削除された事実を示す保有データ削除情報を、前記データ所在情報に登録されているサーバと前記登録サーバ情報に登録されている前記候補サーバとのうちの少なくともいずれかのサーバに送信することを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項１３】
前記受信部は、
他のサーバが保有する保有データが削除された事実を示す保有データ削除情報を受信し、
前記確認部は、
前記受信部が前記保有データ削除情報を受信した場合に前記データ所在情報記憶部が記憶する前記データ所在情報を参照し、前記保有データ削除情報の示す前記保有データに対応する対応関係が前記データ所在情報に登録されている場合には、その対応する対応関係を前記データ所在情報から削除することを特徴とする請求項２記載のデータ所在管理サーバ。
【請求項１４】
データの所在を管理するコンピュータであるサーバに以下の処理を実行させるデータ所在管理プログラム
（１）自己の保有するべき保有データを記憶する処理
（２）データを保有する他のサーバと前記他のサーバが保有する前記データとの対応関係と、記憶した前記保有データと自己との対応関係とをデータ所在情報として記憶する処理
（３）所定のデータを要求する信号を示すデータ要求を受信する処理
（４）受信した前記データ要求を転送する転送先の候補であるサーバを登録した登録サーバ情報を記憶する処理
（５）前記データ要求信号を受信した場合に、
前記データ要求が要求するデータを前記保有データとして記憶しているかどうかを前記データ所在情報を検索して確認し、
前記データ所在情報の確認結果により前記データ要求が要求するデータを前記保有データとして記憶している場合には、前記保有データを返信し、
前記データ所在情報の確認結果により前記データ要求が要求するデータを前記保有データとして記憶していない場合には、前記データ所在情報を検索して前記データ要求が要求するデータを保有するサーバが存在するかどうかを確認し、
前記データ要求が要求するデータを保有するサーバの存在を確認できた場合には、確認されたサーバに受信した前記データ要求を転送し、
前記データ要求が要求するデータを保有するサーバの存在を確認できない場合には、前記登録サーバ情報に登録されたサーバから所定の規則に従ってサーバを選択し、その選択されたサーバに受信したデータ要求を転送する処理。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータによる情報処理におけるデータの所在を管理・検索する方式に関する。具体的には、何らかの情報（データ）が広域に分散されている環境において、その時、利用者が必要とするデータを、利用者がその所在（広域に分散されているサーバがどこにあるか、また、サーバ内のどこにデータがあるか）を知らなくても（意識することなく）、データにアクセスすることができるようにするサーバ装置及びプログラムに関する。
【背景技術】
【０００２】
たとえば、データベース管理システム（Ｄａｔａ  Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）に代表されるようなデータベースにアクセスする際には、ＯＤＢＣ（Ｏｐｅｎ  ＤａｔａＢａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）やＪＤＢＣ（登録商標）といった、標準的なアクセス方法を用いる。この場合、データベースが格納されているサーバの名前（サーバ名）やデータベースそのものの名前（データベース名）が必要となる。通常、サーバ名やデータベース名は、利用者あるいは利用者が使用するアプリケーションプログラムが、あらかじめそれらの情報を知っていることが前提となる。
【０００３】
しかし、近年のようにデータが多量に増え、また、データが日本全国や海外まで広がったことにより、これらの情報をあらかじめ認識しておくことは困難となっている。例えば、日本全国にデータが散らばっているような場合、ある箇所で新規にデータベースサーバを構築したり、データベース名を変更したりした場合には、それらを知らせる手段が必要となる。
【０００４】
この場合、一般には、どのような情報をもつサーバがどこにあるかを管理した集中管理用のサーバを用意し、一旦そこに問い合わせることにより、所望のサーバにアクセスする。例えば、特許文献１では、「サービスエージェント」または「サービスマネージャ」なるものがそれに当たる。しかし、集中管理サーバが障害等により動作していない場合など、障害等に弱いという欠点がある。また、このような集中管理の場合、新たにサーバが追加された場合には、その情報を集中管理サーバに登録したり、サーバがなくなった場合には削除したりする作業が発生する（さらにこれらの仕組みを実現する場合には、集中管理用サーバのためのプログラムやデータを持つサーバのためのプログラムなど複数のプログラムを開発し実装する必要がある。）。
【特許文献１】特開平１１−２１２９１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記のような問題点を解決するためになされたもので、データが広域に分散されている環境において、利用者が必要とするデータを、利用者がデータの所在を意識することなくデータにアクセスすることが可能なサーバ装置、及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
この発明のデータ所在管理サーバは、
ネットワークに接続して他のサーバと通信を行なうことによりデータの所在を管理するデータ所在管理サーバにおいて、
所定のデータを要求する信号を示すデータ要求を受信する受信部と、
自己の保有するべき保有データを記憶する保有データ記憶部と、
前記保有データ記憶部が記憶する前記保有データと自己との対応関係と、前記受信部が受信した前記データ要求を転送可能な転送先を示す転送先サーバとを記憶する対応関係記憶部と、
前記受信部が前記データ要求を受信した場合に、
前記データ要求が要求するデータを前記保有データ記憶部が前記保有データとして記憶しているかどうかを前記対応関係記憶部が記憶する前記対応関係を参照して確認し、
前記対応関係の確認結果により前記保有データ記憶部が前記データ要求が要求するデータを前記保有データとして記憶している場合には、前記保有データ記憶部が記憶する前記保有データを返信し、
前記対応関係の確認結果により前記保有データ記憶部が前記データ要求が要求するデータを前記保有データとして記憶していない場合には、前記対応関係記憶部が記憶する所定の前記転送先サーバに前記受信部が受信した前記データ要求を転送する確認部と
を備えたことを特徴とする。
【発明の効果】
【０００７】
本発明により、データが広域に分散されている環境においても、利用者はデータの所在を意識することなく、必要とするデータにアクセスすることができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１〜図８を用いて実施の形態１を説明する。実施の形態１は、分散して存在する各サーバ（所在管理サーバ）がデータの所在や通信可能なサーバのアドレスをやり取りすることにより、後述する「経路情報」を自動生成し、データの所在を特定するシステム及びシステムを構成するサーバに関する。各サーバは、初期データとして「経路情報」を格納された後は、他のサーバとの経路情報のやり取りを行なうことによって、「経路情報」を自動生成（自動修正）していく。実施の形態１で説明するシステムは、どのサーバがどのようなデータを持っているかを示すデータの所在を集中管理する一元集中管理サーバを必要とせず、分散している各サーバが、データの所在を管理する構成である。このため、障害に強いという特徴がある。また、各サーバが後述の「経路情報」を自動生成するため、手作業による管理サーバへのデータ追加やデータ削除などが必要ないという特徴がある。
【０００９】
図１は、実施の形態１におけるデータ所在管理システムの構成を示す。データ所在管理システムは、ネットワーク、サーバＡ〜サーバＥ、クライアント端末２００を備える。サーバＡ〜サーバＥは、それぞれが「保有データ」、「データ対応表」、「登録サーバ表」を持っている。これらのデータはシステム運用開始前に、各サーバに初期データとして格納する。
【００１０】
各サーバ装置の有する「保有データ」、「データ対応表」、「登録サーバ表」について、図１、図２を参照して説明する。図２は、各サーバが有する「データ対応表」及び「登録サーバ表」を説明する図である。各サーバ装置の構成は同一であり、サーバＡを例に説明する。
【００１１】
サーバＡは、図１に示すように自己の保有する「保有データＰ」、及び図２に示すように「データ対応表１０ａ」と「登録サーバ表２０ａ」とを記憶している。
【００１２】
サーバＡが保有する「保有データＰ」とは、例えば、「昨年１年間の商品Ａの受注数量」のようなデータである。
【００１３】
「データ対応表１０ａ」は、どのような保有データを、どのサーバが保有しているのかを示すテーブルである。図２において、サーバＡが有する「データ対応表１０ａ」を例にとれば、サーバＡは、データＰをサーバＡ（自己）が持っていること、及びデータＲをサーバＥが持っていることを知っていることとなる。なお、図２の「データ対応表１０ａ」における「サーバ」とは、サーバＡが通信のため、そのサーバを特定できる情報であり、「サーバＥ」とあるのは例えば「サーバＥ」のアドレスである。
【００１４】
サーバＡは、ネットワークに接続したサーバＢ〜サーバＥの保有する保有データのすべての所在を知っている必要はない。「データ対応表１０ａ」のように、サーバＢ〜サーバＥのうちの少なくとも一つの対応関係（例えば「Ｒ，Ｅ」の関係）を知っていればよく、あるいは、まったく知らなくても構わない。すなわち「データ対応表１０ａ」において「Ｒ，Ｅ」の関係が登録されていなくても構わない。後述のように「データ対応表１０ａ」に対応関係が登録されていくからである。
【００１５】
「登録サーバ表」は、自己（サーバＡ）以外にネットワークに接続しているサーバが登録されているテーブルである。「登録サーバ表２０ａ」には、サーバＢ、サーバＣが登録されている。図２の「登録サーバ表２０ａ」における「サーバ」とは、「データ対応表１０ａ」の場合と同様に、サーバＡが通信のためそのサーバを特定できる情報であり、例えばサーバのアドレスである。図２において、サーバＡが有する「登録サーバ表２０ａ」を例にとれば、サーバＡは、サーバＢとサーバＣとのアドレスを知っており通信可能である。
【００１６】
なお、上記で説明した「登録サーバ表」と「データ対応表」との両者をあわせて「経路情報」という。
【００１７】
図１に示すデータ所在管理システムの動作の概要を説明する。なお、以下で使用するデータの呼び名について簡単に説明しておく。「問合せデータＸ」が要求する「データＸ」とは、例えば「昨年８月の商品Ｄの受注数量」のような情報を示す。また、サーバが保有する「保有情報」とは、例えば「昨年１年間の商品Ｄの受注数量」のような情報を示す。また、「Ｒｅｓｕｌｔ  Ｄａｔｅ；ＸＸ」とは、「問合せデータＸ」が要求する「データＸ」のことであり、「結果データＸＸ」に含まれたデータＸをこのように呼ぶ。
（１）クライアント端末２００が、例えば、サーバＡに所定のデータＸを要求する「問合せデータＸ」（データ要求の一例）を送信する。後述する図５に、「問合せデータＸ」を示している。図のように「問合せデータＸ」は、「Ｒｅｑｕｅｓｔ；Ｘ」とホップ情報（例えば「ＨＯＰ；Ａ」）を含んでいる。「Ｒｅｑｕｅｓｔ；Ｘ」とは、「問合せデータＸ」が要求するデータＸの内容を示す情報である。
（２）サーバＡは、自己の「経路情報」を確認する。まず、サーバＡは「データ対応表１０ａ」を検索し、自分が「問合せデータＸ」の要求するデータＸを保有情報として保有しているかどうを確認する。保有していれば、その保有データを「結果データＸＸ」としてクライアント端末２００に返信する。後述する図６に、「結果データＸＸ」を示している。「結果データＸＸ」は、「Ｒｅｓｕｌｔ  Ｄａｔｅ；ＸＸ」と，データを保有するサーバがサーバＥであることを示す情報である「Ｒｅｓｕｌｔ  Ｓｅｒｖｅｒ；Ｅ」と、「問合せデータＸ」で最終的に累積付加された「ホップ情報」である「ＨＯＰ；Ａ−Ｂ−Ｃ−Ｄ」とを含む。保有していない場合は、「データ対応表１０ａ」を検索し、「問合せデータＸ」が要求するデータＸを保有しているサーバが存在するかどうかを確認する。保有しているサーバが確認できた場合は、そのサーバに「問合せデータＸ」を送信する。保有しているサーバが確認できない場合は、「登録サーバ表２０ａ」を参照し、例えば、「登録サーバ表２０ａ」で順位が１番と設定されているサーバ（例えばサーバＢ）に「問合せデータＸ」を転送する。
（３）サーバＢは、サーバＡから「問合せデータＸ」を受信すると、サーバＡがクライアント端末２００から「問合せデータＸ」を受信した場合と同様の動作を実行する。
（４）サーバＢからサーバＤに「問合せデータＸ」が転送され、サーバＤが「問合せデータＸ」が要求するデータＸを保有していたとする。その場合、サーバＤは、「問合せデータＸ」が要求するデータＸを「結果データＸＸ」（応答データの一例）として、サーバＡに向けて返信する。
【００１８】
次に、図３を用いて図１に示すデータ所在管理システムの動作をより詳しく説明する。
【００１９】
例えば、クライアント端末２００がサーバＡに対して、「データＸ」を要求する問い合わせ（問合せデータＸ）を送信したとする。例えば、サーバＤが「昨年１年間の商品Ｄの受注数量」を保有データとして保有しており、クライアント端末２００の送信した「問合せデータＸ」が要求する「データＸ」は、「昨年８月の商品Ｄの受注数量」のような場合である。
【００２０】
（サーバＡ）
サーバＡは、クライアント端末２００から「問合せデータＸ」を受信すると「データ対応表１０ａ」を検索し、保有データとして「データＸ」をもつサーバを探す（Ｓ１）。この例では、図２に示す様に、「データ対応表１０ａ」には「データＸ」を有するサーバは登録されていない。次に、サーバＡは、「登録サーバ表２０ａ」を参照し、次に「問合せデータＸ」を転送するべきサーバを検索する（Ｓ２）。この例では、図２の「登録サーバ表２０ａ」により、サーバＡは、サーバＢに問合せを行う。「登録サーバ表２０ａ」における番号「１」、「２」とあるのは、転送する場合の優先順位を示している。「登録サーバ表２０ａ」にはサーバＢとサーバＣとが登録されており、サーバＡは両者のいずれにも「問合せデータＸ」を転送することができる。この場合、サーバＡは、優先順位の高いサーバＢに「問合せデータＸ」を転送する。
【００２１】
（サーバＢ）
サーバＢは、サーバＡから「問合せデータＸ」を受信する。サーバＢは、「問合せデータＸ」を受信すると、「データ対応表１０ｂ」を検索し、「データＸ」をもつサーバを探す（Ｓ３）。この例では、「データ対応表１０ｂ」には、「データＸ」を有するサーバはない。次に、サーバＢは、「登録サーバ表２０ｂ」を参照し、次に「問合せデータＸ」を転送するべきサーバを検索する（Ｓ４）。この例では、優先順位に従いサーバＢは、サーバＤに「問合せデータＸ」を転送する。一方で、サーバＢは問合せ元であるサーバＡが「登録サーバ表２０ｂ」に登録されていないので、図４に示すように「登録サーバ表２０ｂ」にサーバＡの登録を行う（Ｓ５、（＊１））。この場合、サーバＢがサーバＡを登録できるのは、「問合せデータＸ」に図５の説明で後述するホッピング情報が含まれているからである。
【００２２】
（サーバＤ）
サーバＢから「問合せデータＸ」を受信したサーバＤは、「データ対応表１０ｄ」を検索し、「データＸ」をもつサーバを探す（Ｓ６）。この例では「データＸ」をサーバＤ、つまり自分が持っていることがわかる。サーバＤは「データＸ」に対応する「結果データＸＸ」をサーバＢに返す（Ｓ７）。図６の説明で後述するが、「結果データＸＸ」は「問合せデータＸ」が要求する「データＸ」と、サーバＤのアドレスと、サーバＡ〜サーバＤの各サーバを経由したホッピング情報を含む。また、サーバＤは、サーバＢと同様に、サーバＡが「登録サーバ表２０ｄ」に登録されていないので、図４の「登録サーバ表２０ｄ」に示すように、サーバＡを登録する（Ｓ７、（＊２））。
【００２３】
（サーバＢ）
サーバＢは「結果データＸＸ」をサーバＤから受け取る（Ｓ８）。「結果データＸＸ」は、サーバＤのアドレスを含む。このため、サーバＢは、サーバＤが「データＸ」を持っているとわかる。よって、サーバＢは、「データＸ」とサーバＤとの対応関係「Ｘ、Ｄ」を図４のように「データ対応表１０ｂ」に登録する（Ｓ９、（＊３））。サーバＢは、サーバＤから受信した「結果データＸＸ」をサーバＡに転送する（Ｓ１０）。
【００２４】
（サーバＡ）
サーバＡは、サーバＢから「結果データＸＸ」を受け取る。サーバＡは、「結果データＸＸ」がサーバＤのアドレスを含むため、サーバＤが「データＸ」を持っているとわかる。よってサーバＡは、サーバＢと同様に、「データＸ」とサーバＤとの対応関係「Ｘ，Ｄ」を図４のように「データ対応表１０ａ」に登録する（Ｓ１１，（＊４））。また、サーバＤが「登録サーバ表２０ａ」に登録されていないので、サーバＡは「登録サーバ表２０ａ」にサーバＤを登録する（Ｓ１２、（＊５））。
【００２５】
以上、図３に示したＳ１〜Ｓ１２により、結果的に各サーバの「経路情報」（「データ対応情報」及び「登録サーバ表」）は、図４のようになる。図４では（＊１）〜（＊５）が追加されている。
【００２６】
この（＊１）〜（＊５）として説明した「経路情報」の自動生成により、次回同様な問い合わせがあった場合には、サーバＡは即時にデータＸを取得することができる。すなわち、サーバＡは、クライアント端末２００から「問合せデータＸ」を受信した場合には、図４の「データ対応表１０ａ」から、「Ｘ，Ｄ」の対応関係を参照し、サーバＤがデータＸを持っていることを知る。このため、サーバＡはサーバＤに直接問い合わせを行うことができる。
【００２７】
さらに、セキュリティ等の問題により、サーバＡが直接サーバＤに問い合わせができない場合には、サーバＡは、図４の変更後の「登録サーバ表２０ａ」を参照することにより、サーバＢに「問合せデータＸ」を転送する。この場合でも、サーバＢは図４の「データ対応表１０ｂ」からサーバＤがデータＸを持っていることを知る。よって、サーバＢはサーバＤに直接問い合わせを行うことができる。
【００２８】
次に、図５を参照して「問合せデータＸ」が転送される場合を説明する。図５は、サーバＡがクライアント端末２００から「問合せデータＸ」を受信して、「問合せデータＸ」がサーバＡからサーバＥまで転送される場合を示している。サーバＥが「問合せデータＸ」に対応するデータを保有している。図５に示すように、「問合せデータＸ」は、要求するデータを示す「Ｒｅｑｕｅｓｔ；Ｘ」と後述の「ホップ情報」とを含んでいる。
【００２９】
各サーバは、「問合せデータＸ」を送るときは、「経路情報」（「登録サーバ表」と「データ対応表」）を基に、次にどのサーバに「問合せデータＸ」を送るかを判断する。その場合、各サーバは、どのサーバを経由してきたかを示す「ホップ情報」（経由履歴情報の一例）に自分のアドレスを付加（後述する図７の判定部１３０が付加する）し、そのホップ情報を「問合せデータＸ」に含めて「問合せデータＸ」を転送する。図５に示す様に、「問合せデータＸ」には各サーバのアドレスが累積付加されて転送されていく。例えば、図５において、サーバＢからサーバＣに「問合せデータＸ」が転送される場合、サーバＢが自分のアドレスを付加することにより、「ホップ情報」が、「Ａ」から「Ａ−Ｂ」となっている。
【００３０】
「問合せデータＸ」の転送時においては、例えば、サーバＣからサーバＤに「問合せデータＸ」を転送した場合、サーバＤは「ホップ情報」を参照する。図５ではサーバＣからサーバＤに転送したときの「ホップ情報」は、「Ａ―Ｂ―Ｃ」となっている。サーバＡは「問合せデータＸ」をクライアント端末２００から受信し、最初に「問合せデータＸ」を転送したサーバＡであり、「受信サーバ」と呼ぶこととする。受信サーバは「結果データＸＸ」の最終的な返信先のサーバである。また、「問合せデータＸ」を直前に転送したサーバを「転送元サーバ」と呼ぶことする。例えば図５において、サーバＤの転送元サーバはサーバＣであり、またサーバＣの転送元サーバはサーバＢである。サーバＤは、受信サーバＡを知るとともに、サーバＢ、サーバＣの存在を知る。ここでサーバＤは、サーバＡ〜サーバＣのうち「登録サーバ表２０ｄ」に登録のないサーバがあれば、その登録のないサーバを「登録サーバ表２０ｄ」に登録する。
【００３１】
なお、「問合せデータＸ」は、転送されてきた一連のサーバを示す「ホップ情報」を含むことが必須ではなく、「ホップ情報」を含まなくても構わない。例えば、サーバＣからサーバＤに「問合せデータＸ」を転送した場合、「ホップ情報」に代え、「Ａ，Ｃ」のように、受信サーバとサーバＤの転送元サーバであるサーバＣとを示す情報を「問合せデータＸ」に含めても構わない。ここでサーバＤは、「登録サーバ表２０ｄ」にサーバＡ、サーバＣのうち登録のないサーバがあれば、その登録のないサーバを「登録サーバ表２０ｄ」に登録する。
【００３２】
あるいは上記の「Ａ，Ｃ」に対してサーバＤの転送元サーバＣを含まなくても構わない。受信サーバＡだけを「問合せデータＸ」に含めても構わない。ここでサーバＤは、「登録サーバ表２０ｄ」にサーバＡのうち登録がない場合は、その登録のないサーバを「登録サーバ表２０ｄ」に登録する。
【００３３】
次に、図６を参照して「結果データＸＸ」が返送される場合を説明する。図６は、「問合せデータＸ」が要求するデータＸをサーバＥが保有しており、サーバＥが「結果データＸＸ」を発信した様子を示す図である。図に示すように、「結果データＸＸ」は、データＸである「Ｒｅｓｕｌｔ  Ｄａｔｅ；ＸＸ」，データを保有するサーバがサーバＥ（データ提供サーバ）であることを示す情報である「Ｒｅｓｕｌｔ  Ｓｅｒｖｅｒ；Ｅ」（データ提供サーバ情報の一例）、及び「問合せデータＸ」で最終的に累積付加された「ホップ情報」（返信経路の一例）である「ＨＯＰ；Ａ−Ｂ−Ｃ−Ｄ」を含む。
【００３４】
図６において、例えば、サーバＣが「結果データＸＸ」を受信した場合を考える。この場合、「データＸ」をサーバＥが持っていたことがわかる。これにより、サーバＥが存在することがわかる。サーバＣはサーバＢから「問合せデータＸ」の受信した時点では、サーバＥの存在を知らなかった。サーバＣは「結果データＸＸ」を受信してはじめてサーバＥの存在を知る。そこで、サーバＣは、サーバＥを「登録サーバ表２０ｃ」に登録する。
【００３５】
また同時に、サーバＣは「結果データＸＸ」を受信した場合には「問合せデータＸ」に対する「データＸ」をサーバＥが持っていることがわかる。よって、「データＸ」と「サーバＥ」との対応関係「Ｘ，Ｅ」を「データ対応表１０ｃ」に登録する。
【００３６】
なお、サーバＣは、対応関係「Ｘ，Ｅ」を「データ対応表１０ｃ」に登録しようとしたとき、例えば、既に「データＸ」と「サーバＧ」との対応関係「Ｘ，Ｇ」が「データ対応表１０ｃ」に登録されている場合は、サーバＣは、対応関係「Ｘ，Ｇ」を「データ対応表１０ｃ」から削除し、対応関係「Ｘ，Ｅ」を「データ対応表１０ｃ」に登録する。
【００３７】
次に図７、図８を用いて、サーバＡ（データ所在管理サーバ）の構成と、サーバＡを構成する各構成要素の動作を説明する。上記では、サーバ全体としての動作を説明したが、以下では各構成要素の動作として説明する。以下に述べる実施の形態において「〜部」として説明するものは、ソフトウェアで実現されても良いし、ハードウェアのみで実現されても良いし、ソフトウェアとハードウェアとの組み合わせにより実現されても構わない。
【００３８】
図７は、サーバＡの構成を示すブロック図である。他のサーバＢ、サーバＣ等も構成はサーバＡと同一である。図に示す様にサーバＡは、データ受信部１１０（受信部の一例）、データ解析部１２０、判定部１３０（確認部の一例）、保有データ記憶部１４０、経路情報登録部１５０（登録部の一例）、経路情報記憶部１６０（対応関係記憶部の一例）、格納データ変更通知開始部１７０とを備える。また、判定部１３０は、データ取得部１３１とデータ送信部１３２を備える。また、経路情報記憶部１６０は、データ所在情報記憶部１６１と登録サーバ情報記憶部１６２とを備える。データ所在情報記憶部１６１は、「データ対応表１０ａ」（データ所在情報の一例）を記憶する。登録サーバ情報記憶部１６２は、「登録サーバ表２０ａ」（登録サーバ情報の一例）を記憶する。
【００３９】
データ受信部１１０は、データを受信する。
【００４０】
データ解析部１２０は、データ受信部１１０が受信したデータを解析する。
【００４１】
判定部１３０は、データ解析部１２０が解析したデータを判定する。詳細な動作は後述する。
【００４２】
保有データ記憶部１４０は、自己（サーバＡ）の保有するべき保有データＰを記憶する。
【００４３】
経路情報登録部１５０は、「経路情報」を登録する。「経路情報」の初期データは経路情報記憶部１６０に予め記憶させるが、システム稼働後は、経路情報登録部１５０が「経路情報」を自動生成（自動修正）する。詳細な動作は後述する。
【００４４】
経路情報記憶部１６０は「経路情報」を記憶する。データ所在情報記憶部１６１は、保有データ記憶部１４０が記憶する保有データＰと自己（サーバＡ）との対応関係「Ｐ，Ａ」と、データを保有する他のサーバと他のサーバが保有するデータとの対応関係とを登録した「データ対応表１０ａ」を記憶する。図２に示した例では、保有データ記憶部１４０が記憶する保有データＰと自己（サーバＡ）との対応関係として、「データ対応表１０ａ」には対応関係「Ｐ，Ａ」が登録されている。また、データを保有する他のサーバと他のサーバが保有するデータとの対応関係としては、データＲとサーバＥの対応関係「Ｒ，Ｅ」が登録されている。
【００４５】
登録サーバ情報記憶部１６２は、データ受信部１１０が受信した「問合せデータ」を転送する転送先の候補を示す「候補サーバ」を登録した「登録サーバ表２０ａ」を記憶している。図２に示した例では、「候補サーバ」として「登録サーバ２０ａ」には、第１優先順位にサーバＢが登録され、第２優先順位にサーバＣが登録されている。
【００４６】
格納データ変更通知開始部１７０については、後述する実施の形態３において詳細な動作を説明する。
【００４７】
次に、図８を参照して、サーバＡの動作を説明する。図８は図７に示したサーバＡの動作を説明するフローチャートである。
【００４８】
まず、Ｓ２１において、データ受信部１１０がデータを受信する。
【００４９】
Ｓ２２において、データ解析部１２０は、データ受信部１１０が受信したデータを解析する。
【００５０】
Ｓ２３において、判定部１３０はデータ解析部１２０の解析したデータについて、どのようなデータであるかを判定する。
【００５１】
（Ｓ２３でＹｅｓの場合）
次に、Ｓ２３でＹｅｓの場合を説明する。判定部１３０は、受信したデータが「結果データＸＸ」であると判定した場合（Ｓ２３のＹｅｓ）は、「結果データＸＸ」に付加されている「ホップ情報」を参照し、所定のサーバにデータ送信部１３２を介して「結果データＸＸ」を転送する（Ｓ２４）。例えば図６のサーバＣの場合は、「結果データＸＸ」をサーバＢに転送している。
【００５２】
この場合、経路情報登録部１５０は、受信した「結果データＸＸ」を参照して、必要があれば「データ対応表１０ａ」にデータとそのデータを保有するサーバとの対応関係を登録し、あるいは「登録サーバ表２０ａ」にそのデータを保有するサーバを候補サーバとして登録する（Ｓ２５）。
【００５３】
（Ｓ２３でＮｏの場合）
次に、Ｓ２３でＮｏの場合を説明する。Ｓ２３において、判定部１３０は、受信したデータは「問合せデータＸ」であると判定した場合（Ｓ２３のＮｏ）、「問合せデータＸ」が要求する「データＸ」を自己（サーバＡ）が保有するかどうかを確認する（Ｓ２６）。具体的には、判定部１３０は、「データ対応表１０ａ」を検索して、「問合せデータＸ」が要求する「データＸ」を保有データ記憶部１４０が保有データとして記憶しているかどうかを確認する。この場合、「データ対応表１０ａ」に対応関係「Ｘ，Ａ」が登録されていれば、自己（サーバＡ）がデータを保有することとなる。
【００５４】
（ステップＳ２６でＹｅｓの場合）
次に、ステップＳ２６でＹｅｓの場合を説明する。「データ対応表１０ａ」の確認結果により、保有データ記憶部１４０が「問合せデータＸ」が要求する「データＸ」を保有データとして記憶している場合には（Ｓ２６のＹｅｓ）、判定部１３０は、データ取得部１３１により保有データ記憶部１４０が記憶する保有データを取得する（Ｓ２７）。そして、判定部１３０は、取得した保有データ（データＸ）を「結果データＸＸ」に含め、データ送信部１３２を介して送信する（Ｓ２８）。送信する場合は、判定部１３０は、「問合せデータＸ」に含まれるホップ情報を参照し、所定のサーバに返信する。
【００５５】
この場合、経路情報登録部１５０は、受信した「問合せデータＸ」を参照して、必要があれば「データ対応表１０ａ」に対応関係を登録し、あるいは「登録サーバ表２０ａ」に候補サーバを登録する（Ｓ２９）。
【００５６】
（ステップＳ２６でＮｏの場合）
次に、ステップＳ２６でＮｏの場合を説明する。「データ対応表１０ａ」の確認結果により、保有データ記憶部１４０が「問合せデータＸ」が要求する「データＸ」を保有データとして記憶していない場合には、判定部１３０は、データ所在情報記憶部１６１が記憶する「データ対応表１０ａ」を検索して、「問合せデータＸ」が要求する「データＸ」を保有するサーバが存在するかどうかを確認する（Ｓ３０）。具体的には、「データ対応表１０ａ」に、「Ｘ，Ｂ」、「Ｘ，Ｃ」、「Ｘ，Ｄ」等の対応関係が登録されているかどうかを確認する。
【００５７】
判定部１３０は、「問合せデータＸ」が要求する「データＸ」を保有するサーバの存在を確認できた場合（Ｓ３０のＹｅｓ）には、確認されたサーバを転送先サーバとしてデータ送信部１３２を介して「問合せデータＸ」を転送する（Ｓ３１）。これは図２で説明したサーバＢがサーバＤへ転送する場合が該当する。この場合、経路情報登録部１５０は、受信した「問合せデータＸ」を参照して、必要があれば「データ対応表１０ａ」に対応関係を登録し、あるいは「登録サーバ表２０ａ」に候補サーバを登録する（Ｓ３２）。
【００５８】
一方、判定部１３０は、「問合せデータＸ」が要求する「データＸ」を保有するサーバの存在を確認できない場合（Ｓ３０のＮｏ）には、「登録サーバ表２０ａ」に登録された候補サーバから、所定の規則（例えば、前述した優先順位）に従って候補サーバを選択し、その選択された候補サーバを転送先サーバとして「問合せデータＸ」を転送する（Ｓ３３）。この場合、経路情報登録部１５０は、受信した「問合せデータＸ」を参照して、必要があれば「データ対応表１０ａ」に対応関係を登録し、あるいは「登録サーバ表２０ａ」に候補サーバを登録する（Ｓ３４）。
【００５９】
本実施の形態１に示すシステムおいては、データの所在を一元的に管理する必要がなく、各サーバがいくつかのサーバの情報を最初に知っておくことにより、データの問い合わせにより自動的に所在を知っていくものである。
【００６０】
以上の実施の形態１のデータ所在システムによれば、データの所在を一元的に管理する一元集中管理サーバを必要としないので、複数の経路によってデータにアクセスすることができ、システムとして障害に強い。また、各サーバは同じ働きをするので、プログラムを実装する場合、実装するべきプログラムは一つでよく、システム構築が容易であるという効果を得ることができる。
【００６１】
実施の形態１のサーバＡは、判定部１３０が、問合せデータに対応するデータを自分が持っている場合はそのデータを問い合わせ元に結果データとして返し、持っていない場合には、問い合わせデータを別のサーバに転送する。よって、データが広域に分散されている環境においても、利用者はデータの所在を意識することなく、必要とするデータにアクセスすることができる。
【００６２】
実施の形態１のサーバＡは、判定部１３０が、データ受信部が「問合せデータ」を受信した場合に、「データ対応表」を検索して「問合せデータ」に対応するデータを保有しているかどうかを確認し、保有していれば保有データを結果データとしてクライアント端末に返信し、保有していない場合は「データ対応表」を検索して「問合せデータ」に対応するデータを保有しているサーバが存在するかどうかを確認し、保有しているサーバが確認できた場合、そのサーバに「問合せデータ」を送信し、保有しているサーバが確認できない場合は、「登録サーバ表」を参照し所定のサーバに「問合せデータ」を転送する。よって、データが広域に分散されている環境においても、利用者はデータの所在を意識することなく、必要とするデータにアクセスすることができる。
【００６３】
実施の形態１のサーバＡは、データ受信部が受信する「問合せデータ」が受信サーバを示す受信サーバ情報を含み、経路情報登録部が、「問合せデータ」に含まれる受信サーバ情報を参照し、受信サーバが「登録サーバ表」に登録されていない場合には、受信サーバを「登録サーバ表」に登録することにより、経路情報生成していく。このように、経路情報を自動生成するので、手作業による経路情報の入力負担をなくすことができる。また、「経路情報」を各サーバが分散して有するので、システムの障害に強いという特徴がある。
【００６４】
実施の形態１のサーバＡは、データ受信部が受信する「問合せデータ」は、ネットワークを介して複数のサーバを経由された場合は、経由された一連のサーバを示すホップ情報を含み、経路情報登録部が、「問合せデータ」に前ホップ情報が含まれる場合にはホップ情報を参照し、ホップ情報に示されるサーバを「登録サーバ表」に登録する。よって、経路情報を自動生成することができるので、手作業による経路情報の入力負担をなくすことができる。また、「経路情報」を各サーバが分散して有するので、システムの障害に強いという特徴がある。
【００６５】
実施の形態１のサーバＡは、データ受信部が、「問合せデータ」が要求するデータと、データ提供サーバ情報と、返信経路とを含む結果データを受信し、経路情報登録部が、データ提供サーバ情報の示すデータ提供サーバを「登録サーバ表」情報に登録する。よって、サーバＡは、経路情報を自動生成することができるので、手作業による経路情報の入力負担をなくすことができる。また、「経路情報」を各サーバが分散して有するので、システムの障害に強いという特徴がある。
【００６６】
実施の形態１のサーバＡは、データ受信部が、「問合せデータ」が要求するデータと、データ提供サーバ情報と、返信経路とを含む「結果データ」を受信し、経路情報登録部が、データ提供サーバとデータ提供サーバが提供した「問合せデータ」が要求するデータとの対応関係を「データ対応表」に登録する。よって、サーバＡは、経路情報を自動生成することができるので、手作業による経路情報の入力負担をなくすことができる。また、「経路情報」を各サーバが分散して有するので、システムの障害に強いという特徴がある。
【００６７】
実施の形態１のサーバＡは、経路情報登録部が、データ提供サーバとデータ提供サーバが提供したデータとの対応関係を「データ対応表」に登録する場合に、「データ対応表」にデータ提供サーバ以外のサーバとデータ提供サーバが提供した前記データ要求が要求するデータと同一のデータとの対応関係が既に登録されている場合には、既に登録されている対応関係を「データ対応表」から削除する。よって、より新しいデータにより経路情報を生成するので、より確実にデータを取得することができる。
【００６８】
実施の形態２．
次に実施の形態２を説明する。実施の形態２は、図７に示したサーバＡの経路情報登録部１５０が、「登録サーバ表２０ａ」に登録されている候補サーバに優先順位を付ける実施形態である。
【００６９】
経路情報登録部１５０は、登録サーバ情報記憶部１６２が記憶する「登録サーバ表２０ａ」に登録された候補サーバに対して優先順位を付与する。そして、判定部１３０は、経路情報登録部１５０が付与した優先順位に基づき、「問合せデータ」を転送する候補サーバを選択し、選択したサーバに問合せデータを転送する（図８のＳ３３）。
【００７０】
例えば、図２のサーバＡにおいて、判定部１３０が、次に「問合せデータＸ」をどのサーバに送るかを判断するときに、判定部１３０は「登録サーバ表２０ａ」を参照する。この場合、優先順位が１番の「サーバＢ」に送ろうとする。しかし、「サーバＢ」が障害等によりダウンしていたり、本データ所在管理システムに対応するデータ所在管理プログラムを実装していない場合に、サーバＢに接続ができない。このような場合には、判定部１３０は、「サーバＢ」への送信をあきらめ、優先順位が２番の「サーバＣ」に送信する。経路情報登録部１５０は、このような判定部１３０と「登録サーバ表２０ａ」に登録された候補サーバとの通信状況を監視している。この監視結果に基づき、候補サーバの優先順位を変更する。この例では、経路情報登録部１５０は、「サーバＢ」との通信不能を機会として、「サーバＣ」の優先度を１に上げ、サーバＢの優先度を２に下げる。
【００７１】
また、経路情報登録部１５０は、登録サーバ情報記憶部１６２が記憶する「対応サーバ表２０ａ」を監視し、判定部１３０により選択される頻度が他の候補サーバに比べて少ない候補サーバを「登録サーバ表２０ａ」から削除する。例えば、経路情報登録部１５０は、「登録サーバ表２０ａ」において、サーバＢの優先順位を上げたり下げたりするが、その履歴（どのサーバの優先順位をどう変えたかなど）を記録しておく。そして、その中で、まったく参照されないサーバを削除する。あるいは、参照回数の少ないサーバの優先順位を下げる。
【００７２】
実施の形態２で述べた経路情報登録部１５０により、「登録サーバ表２０ａ」のサーバに優先順位をつけるとともに、参照されるサーバの頻度により優先順位を変更または削除することで、より少ない経路で所望のサーバを見つけるができる。また、データを持っている可能性の低いサーバに「問合せデータ」を転送する場合を減らすことができる。
【００７３】
実施の形態１のサーバＡは、経路情報登録部が、「登録サーバ表」に登録された候補サーバに優先順位を付与するので、より少ない経路で迅速にデータを取得することができる。
【００７４】
実施の形態１のサーバＡは、経路情報登録部が、「登録サーバ表」を監視し、判定部により選択される頻度が他の候補サーバに比べて少ない候補サーバを「登録サーバ表」から削除する。よって、より使用頻度の低い情報を削除するので、より確実にデータを取得することができる。
【００７５】
実施の形態３．
次に、図９、図１０を用いて実施の形態３を説明する。実施の形態３は、サーバＡが、自己の有する「経路情報」（「データ対応表１０ａ」の情報、「登録サーバ表２０ａ」の情報）をネットワークを介して他のサーバに送信し、また、他のサーバから他のサーバの有する「経路情報」をネットワークを介して受信する実施形態である。
【００７６】
図９は、サーバＡが「経路情報」を他のサーバに発信する場合を示すサーバＡの構成図である。図９は、「経路情報」の発信に関する構成要素のみを示している。
【００７７】
次に「経路情報」の発信について説明する。
（１）格納データ変更通知開始部１７０は、例えば、ユーザがサーバＡの所定のボタンを押すなどの操作に応答して、経路情報の送信を指令する「データ送信指令信号」（送信指令信号）を出力する。
（２）判定部１３０は、「データ送信指令信号」を入力すると、「データ送信指令信号」であると判定する。
（３）そして、「経路情報」を各サーバに通知する。具体的には、判定部１３０は、「データ送信指令信号」を入力した場合は、「データ対応表１０ａ」に登録された「Ｐ，Ａ」等の対応関係と、「登録サーバ表２０ａ」に登録されている候補サーバ（候補サーバのアドレス）とのうち少なくともいずれかの情報を、「データ対応表１０ａ」に登録されているサーバと、「登録サーバ表２０ａ」に登録されている候補サーバとのうち、少なくともいずれかのサーバに送信する。
（４）図２の「データ対応表１０ａ」，「登録サーバ表２０ａ」を例にとれば、判定部１３０は、格納データ変更通知開始部１７０から「データ送信指令信号」を入力した場合、「データ対応表１０ａ」に登録された対応関係「Ｐ，Ａ」、「Ｒ，Ｅ」と「登録サーバ表２０ａ」に登録された候補サーバ「Ｂ」、「Ｃ」のアドレスとの少なくともいずれかの情報を、「データ対応表１０ａ」と「登録サーバ表２０ａ」に登録されたサーバである「Ｅ」、「Ｂ」、「Ｃ」（Ａも登録されているが自分に送信しない）のサーバのうちの少なくともいずれかのサーバにデータ送信部１３２を介して送信する。
【００７８】
図１０は図９の場合とは逆に、サーバＡが、他のサーバの発信した「経路情報」を受信し、登録する場合を示す図である。図１０を説明する。
【００７９】
（１）データ受信部１１０が、データを保有する他のサーバと他のサーバが保有するデータとの対応関係（経路情報）と、ネットワークに接続するサーバを示すサーバ情報（経路情報）との少なくともいずれかを受信する。
（２）データ解析部１２０は、データ受信部が受信した経路情報を解析する。
（３）判定部１３０は、データ解析部１２０が解析した経路情報を入力すると経路情報と判定し、経路情報を経路情報登録部１５０に出力する。
（４）経路情報登録部１５０は、「経路情報」が対応関係である場合には、受信した対応関係を「データ対応表１０ａ」に登録する。また、経路情報登録部１５０は、「経路情報」がサーバ情報である合には、受信したサーバ情報の示すサーバアドレスを候補サーバとして「登録サーバ表２０ａ」に登録する。
【００８０】
また、サーバＡは、「データ対応表１０ａ」において、自分がもつ保有データＰが削除された場合には、「データ対応表１０ａ」から対応関係「Ｐ，Ａ」を削除する。この削除を行うとともに、「登録サーバ表２０ａ」に登録された候補サーバ、あるいは「データ対応表１０ａ」に登録されているサーバに対して、保有データＰを持たなくなったことを示す「保有データ削除情報」を通知する。
【００８１】
これを図９を参照して説明する。例えば、保有データＰが削除された場合には、ユーザがボタンを押すなどの操作を行う。格納データ変更通知開始部１７０が、これに応答して「保有データ削除情報」の送信を指令する「削除情報送信指令信号」を出力する。判定部１３０は、「削除情報送信指令信号」を入力し、「削除情報送信指令信号」の通知であることを判定すると、「データ対応表１０ａ」から保有データと自己との対応関係「Ｐ，Ａ」を削除するとともに、「保有データ削除情報」を、「データ対応表１０ａ」に登録されているサーバと「登録サーバ表２０ａ」に登録されている候補サーバのうちのいずれかに送信する。図２の例で説明すれば、判定部１３０は、データＰが削除された場合、その事実を示す「保有データ削除情報」を「Ｅ」、「Ｂ」、「Ｃ」の各サーバの少なくともいずれかに通知する。
【００８２】
他のサーバが送信した「保有データ削除情報」を受信する場合を図１０を参照して説明する。
（１）前記データ受信部１１０が、「保有データ削除情報」を受信する。
（２）データ解析部１２０は、データ受信部１１０が受信した「保有データ削除情報」を解析する。
（３）判定部１３０は、データ解析部１２０が解析した「保有データ削除情報」を入力すると「保有データ削除情報」と判定し、「データ対応表１０ａ」を参照し、「保有データ削除情報」の示す保有データに対応する対応関係が「データ対応表１０ａ」に登録されている場合には、その対応する対応関係を「データ対応表１０ａ」から削除する。例えば、図２の例で、サーバＡがサーバＥからサーバＥの保有データＲを削除した事実を示す「保有データ削除情報」を受信した場合、判定部１３０が「データ対応表１０ａ」から対応関係「Ｒ，Ｅ」を削除する。
【００８３】
実施の形態３のサーバＡによれば、新規にサーバを構築し、ネットワークに接続したときなどに、自分が持っているデータをサーバが自ら他のサーバに通知し、あるいは、サーバがもっているデータがなくなったときに、そのことを他のサーバに通知したりすることにより、サーバがもつデータの情報を最新にすることができる。また、より確実に所望するサーバを見つけることができる。
【００８４】
実施の形態１のサーバＡは、判定部が、「送信指令信号」を入力した場合に、「データ対応表」に登録されている対応関係と、「登録サーバ表」に登録されているサーバ情報とのうち少なくともいずれかを、「データ対応表」に登録されているサーバと「登録サーバ表」に登録されているサーバとのうちの少なくともいずれかのサーバに送信する。よって、他のサーバの経路情報を容易に更新することができる。
【００８５】
実施の形態１のサーバＡは、データ受信部が、データを保有する他のサーバと他のサーバが保有するデータとの対応関係と、ネットワークに接続するサーバを示すサーバ情報との少なくともいずれかを受信し、経路情報登録部が、受信した対応関係を「データ対応表」に登録し、受信したサーバ情報の示すサーバを「登録サーバ表」に登録する。よって、よって、サーバは自身の有する情報を容易に更新することができる。
【００８６】
実施の形態１のサーバＡは、判定部が、保有データが削除された場合に、「データ対応表」から保有データと自己との対応関係を削除するとともに、保有データ削除情報を、「データ対応表」に登録されているサーバと「登録サーバ表」に登録されている候補サーバとのうちの少なくともいずれかのサーバに送信する。よって、他のサーバの経路情報を容易に更新することができる。
【００８７】
実施の形態１のサーバＡは、データ受信部が、保有データ削除情報を受信し、
判定部が、「データ対応表」を参照し、保有データ削除情報の示す保有データに対応する対応関係が「データ対応表」に登録されている場合には、その対応する対応関係を「データ対応表」から削除する。よって、サーバは自身の有する情報を容易に更新することができる。
【００８８】
実施の形態４．
図１１〜図１３を用いて実施の形態４を説明する。実施の形態４は、実施の形態１の図７のサーバＡの動作を、プログラム及びプログラムを記録した記録媒体により実施する実施形態である。
【００８９】
前記の実施の形態１においては、図７において「〜部」として示したサーバＡの各構成要素の動作は互いに関連しており、動作の関連を考慮しながら、コンピュータに実施させる一連の処理（プログラム）に置き換えることができる。各構成要素の動作を一連の処理に置き換えることにより、データ所在管理プログラムの実施形態とすることができる。また、このデータ所在管理プログラムを、コンピュータ読み取り可能な記録媒体に記録させることで、プログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【００９０】
図１１は、サーバＡの
（１）保有データ記憶部１４０の動作、
（２）データ所在情報記憶部１６１の動作、
（３）データ受信部１１０の動作、
（４）登録サーバ情報記憶部の動作、
（５）判定部１３０の動作
という一連の動作を、コンピュータであるサーバＡに実施させるための一連の処理に置き換え、データ所在管理プログラムの実施形態としたフローチャートを示す。
【００９１】
Ｓ２０１は、自己の保有するべき保有データを記憶する処理である。保有データ記憶部１４０の動作に対応する。
【００９２】
Ｓ２０２は、データを保有する他のサーバと前記他のサーバが保有する前記データとの対応関係と、記憶した前記保有データと自己との対応関係とをデータ対応表（データ所在情報）として記憶する処理である。データ所在情報記憶部１６１の動作に対応する。
【００９３】
Ｓ２０３は、所定のデータを要求する信号を示す「問合せデータ」（データ要求）を受信する処理である。データ受信部１１０の動作に対応する。
【００９４】
Ｓ２０４は、受信した「問合せデータ」を転送する転送先の候補である候補サーバを登録した「登録サーバ表」（登録サーバ情報）を記憶する処理である。登録サーバ情報記憶部１６２の動作に対応する。
【００９５】
Ｓ２０５は、結果データを保有する場合は結果データを返信し、結果データを保有しない場合は「データ対応表」を検索して結果データを保有するサーバを確認し、結果データを保有するサーバを確認できた場合はそのサーバに問合せデータを転送し、結果データを保有するサーバを確認できない場合は「登録サーバ表」に登録されたサーバから所定の規則に従ってサーバを選択してそのサーバに問合せデータを転送する処理である。判定部１３０の動作に対応する。
【００９６】
プログラムの実施の形態及びプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。
【００９７】
図１２は、図７に示した実施の形態１のサーバＡの機能を実現するコンピュータシステム８００の外観を示す。図１２において、コンピュータシステム８００（サーバ）は、システムユニット８３０、液晶ディスプレイ８１３、キーボード（Ｋ／Ｂ）８１４、マウス８１５、コンパクトディスク装置（ＣＤＤ）８１８、プリンタ８１９を備え、これらはケーブルで接続されている。また、コンピュータシステム８００は、ネットワークを介してサーバＢ〜サーバＣ、クライアント端末２００等と接続されている。
【００９８】
図１３は、図１２のコンピュータシステム８００のハードウェア構成図である。図１３において、コンピュータシステム８００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１０を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ８１１、ＲＡＭ８１２、液晶ディスプレイ８１３、Ｋ／Ｂ８１４、マウス８１５、通信ボード８１６、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）８１７、ＣＤＤ８１８、プリンタ８１９、及び磁気ディスク装置８２０と接続されている。
【００９９】
磁気ディスク装置８２０には、オペレーティングシステム（ＯＳ）８２１、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３は、ＣＰＵ８１０、ＯＳ８２１、ウィンドウシステム８２２により実行される。
【０１００】
上記プログラム群８２３には、実施の形態１の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【０１０１】
図７に示したサーバＡと図１３のコンピュータシステム８００との対応関係を説明する。
（１）図７のデータ受信部１１０、データ送信部１３２は、通信ボード８１６及びプログラム群８２３に記憶されたプログラムが対応する。
（２）データ解析部１２０、判定部１３０、データ取得部１３１、経路情報登録部１５０、格納データ変更通知開始部１７０等の動作は、プログラム群に記憶されたプログラムが対応する。
（３）保有データ記憶部１４０、経路情報記憶部１６０の動作は、プログラム群８２３に記憶されたプログラム及びファイル群８２４が対応する。
【０１０２】
図７において「〜部」として説明したものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【０１０３】
プログラムの実施の形態及びプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態における各処理は、プログラムで実行されるが、このプログラムは、前述のようにプログラム群８２３に記録されている。そして、プログラム群８２３からＣＰＵ８１０に読み込まれ、ＣＰＵ８１０によって、プログラムの各処理が実行される。
【０１０４】
実施の形態１のデータ所在管理プログラムは、コンピュータに、「問合せデータ」を受信した場合に、「データ対応表」を検索して「問合せデータ」に対応するデータを保有しているかどうを確認し、保有していれば保有データを結果データとしてクライアント端末に返信し、保有していない場合は「データ対応表」を検索して「問合せデータ」に対応するデータを保有しているサーバが存在するかどうかを確認し、保有しているサーバが確認できた場合、そのサーバに「問合せデータ」を送信し、保有しているサーバが確認できない場合は、「登録サーバ表」を参照し所定のサーバに「問合せデータ」を転送する処理を実行させる。よって、データが広域に分散されている環境においても、利用者はデータの所在を意識することなく、必要とするデータにアクセスすることができる。
【０１０５】
以上の実施の形態では、通信ネットワークと、ネットワーク上に存在し、ユーザが利用し、問い合わせデータを発行するクライアントと、ネットワーク上に存在し、問い合わせデータを受信し、その問い合わせデータに対応する結果データを自分が持っている場合はその結果データを問い合わせ元に返し、持っていない場合には、問い合わせデータを別のサーバに転送するサーバからなるサーバ間通信システムを説明した。
【０１０６】
以上の実施の形態では、問い合わせデータを受信し、その問い合わせデータに対応する結果データを自分が持っている場合に、問い合わせデータとその結果データを持つサーバ（自分）の組み合わせをデータ対応表として持つ機能を有するサーバからなるサーバ間通信システムを説明した。
【０１０７】
以上の実施の形態では、問い合わせデータを受信し、その問い合わせデータに対応する結果データを自分が持っていない場合に、他のサーバ一覧を管理している登録サーバ表を参照し、問い合わせデータを転送するサーバを選択する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１０８】
以上の実施の形態では、転送された問い合わせデータを受信し、転送元サーバが登録サーバ表になかった場合には、転送元サーバを登録サーバ表に追加する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１０９】
以上の実施の形態では、転送された問い合わせデータを受信し、これまで複数のサーバを転々と転送されてきたことが分かり、それらのサーバが登録サーバ表になかった場合には、それらのサーバを登録サーバ表に追加する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１０】
以上の実施の形態では、結果データを受信し、その結果データを持っていたサーバが登録サーバ表になかった場合に、その結果データを持っていたサーバを登録サーバ表に追加する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１１】
以上の実施の形態では、結果データを受信し、その結果データに対応した問い合わせデータとその結果データを持っていたサーバの組み合わせをデータ対応表に登録する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１２】
以上の実施の形態では、結果データを受信し、その結果データに対応した問い合わせデータとその結果データを持っていたサーバの組み合わせをデータ対応表に登録するときに、既にその問い合わせデータに対応する結果データを持つサーバが登録されている場合には、その対応データを削除し、新たに登録する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１３】
以上の実施の形態では、登録サーバ表に登録されるサーバに優先順位をつけることができる機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１４】
以上の実施の形態では、登録サーバ表に登録されるサーバの頻度により、優先順位を変更できる機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１５】
以上の実施の形態では、登録サーバ表を定期的に監視し、参照頻度の低い、または一定期間参照がなかったサーバを削除する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１６】
以上の実施の形態では、通信ネットワーク上に存在すること及び自分が持っているデータを自ら発信する機能、およびそれらの発信情報を受信する機能および受信した情報を登録サーバ表およびデータ対応表に登録する機能を有するサーバからなるサーバ間通信システムを説明した。
【０１１７】
以上の実施の形態では、データ対応表にて、自分がもつデータが削除されたときに、データ対応表から削除するとともに、登録サーバ表に登録された通信ネットワーク上に存在するサーバに対して、データを持っていなくなったことを通知する機能およびその通知された情報を受信し、当該情報をデータ対応表から削除する機能を有するサーバからなるサーバ間通信システムを説明した。
【図面の簡単な説明】
【０１１８】
【図１】実施の形態１におけるデータ所在管理システムの構成を示す図である。
【図２】実施の形態１における各サーバが有する「データ対応表」及び「登録サーバ表」を説明する図である。
【図３】実施の形態１における動作の概要を説明する図である。
【図４】実施の形態１における「データ対応表」及び「登録サーバ表」への自動追加登録を示す図である。
【図５】実施の形態１における問合せデータの転送を示す図である。
【図６】実施の形態１における結果データの転送を示す図である。
【図７】実施の形態１におけるサーバＡの構成を示す図である。
【図８】実施の形態１におけるサーバＡの動作を示すフローチャートである。
【図９】実施の形態３における経路情報の発信を示す図である。
【図１０】実施の形態３における経路情報の受信を示す図である。
【図１１】実施の形態４におけるデータ所在管理プログラムの処理を示すフローチャートである。
【図１２】実施の形態４におけるコンピュータシステムの外観図である。
【図１３】実施の形態４におけるコンピュータシステムのハードウェア構成図である。
【符号の説明】
【０１１９】
１０  データ対応表、２０  登録サーバ表、１００  サーバ、１１０  データ受信部、１２０  データ解析部、１３０  判定部、１３１  データ取得部、１３２  データ送信部、１４０  保有データ記憶部、１５０  経路情報登録部、１６０  経路情報記憶部、１６１  データ所在情報記憶部、１６２  登録サーバ情報記憶部、１７０  格納データ変更通知開始部、２００  クライアント端末、８００  コンピュータシステム、８１０  ＣＰＵ、８１１  ＲＯＭ、８１２  ＲＡＭ、８１３  液晶ディスプレイ、８１４  キーボード、８１５  マウス、８１６  通信ボード、８１７  ＦＤＤ、８１８  ＣＤＤ、８１９  プリンタ、８３０  システムユニット、８２０  磁気ディスク装置、８２１  ＯＳ、８２２  ウィンドウシステム、８２３  プログラム群、８２４  ファイル群、８２５  バス。
【図１】
2007025964.tif 000003
【図２】
2007025964.tif 000004
【図３】
2007025964.tif 000005
【図４】
2007025964.tif 000006
【図５】
2007025964.tif 000007
【図６】
2007025964.tif 000008
【図７】
2007025964.tif 000009
【図８】
2007025964.tif 000010
【図９】
2007025964.tif 000011
【図１０】
2007025964.tif 000012
【図１１】
2007025964.tif 000013
【図１２】
2007025964.tif 000014
【図１３】
2007025964.tif 000015