(57)【要約】【課題】同一内容を有する複数のデータのうち、一部が利用不可能になった場合でも、代替データを容易に利用することを可能とするデータ管理装置を提供する。【解決手段】コンピュータネットワーク上に分散して存在し、識別子が付与されているデータのうち、所定の数値範囲内の識別子が付与されたデータをデータ管理装置１は管理する。メッセージ処理部１１０は、処理対象のデータの情報を含むメッセージの内容に従った処理を実行する。データ管理表記憶部１３は所定の数値範囲内の識別子が付与されたデータの情報をデータ管理表として記憶する。同一内容のデータに対して同一の識別子を付与することによって、同一内容のデータが同一のデータ管理装置１によって管理されるので、同一内容を有する複数のデータのうち、一部が利用不可能になった場合でも、代替データを容易に利用することが可能となる。【選択図】図１
2007316696.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワーク上に分散して存在し、識別子が付与されているデータのうち、所定の数値範囲内の識別子が付与されたデータを管理するデータ管理装置において、
処理対象のデータの情報を含むメッセージを受信し、前記メッセージの内容に従った処理を実行するメッセージ処理手段と、
前記所定の数値範囲内の識別子が付与されたデータの情報を記憶するデータ管理情報記憶手段と、
を備えており、同一内容のデータに対して同一の識別子が付与されていることを特徴とするデータ管理装置。
【請求項２】
受信した前記メッセージがデータの登録要求を示しており、前記メッセージが示す登録対象のデータの識別子が前記所定の数値範囲に含まれる場合には、前記メッセージ処理手段は前記登録対象のデータの情報を前記データ管理情報記憶手段に格納することを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
受信した前記メッセージがデータの情報要求を示しており、前記メッセージが示す情報要求対象のデータの識別子が前記所定の数値範囲に含まれる場合には、前記メッセージ処理手段は、前記情報要求対象のデータの情報を前記データ管理情報記憶手段から読み出し、前記メッセージの発信元へ送信することを特徴とする請求項１または請求項２に記載のデータ管理装置。
【請求項４】
前記所定の数値範囲内の識別子が付与されたデータの状態確認を、当該データを記憶するデータ記憶装置に要求するための状態確認メッセージを前記データ記憶装置へ送信し、前記状態確認メッセージに対する前記データ記憶装置からの返答メッセージを受信し、前記返答メッセージの内容に基づいて、前記データ管理情報記憶手段によって記憶されている情報を更新するデータ管理情報更新手段をさらに備えたことを特徴とする請求項１〜請求項３のいずれかに記載のデータ管理装置。
【請求項５】
前記データ管理情報記憶手段によって記憶されている情報の変更履歴を示す履歴情報を記憶する履歴情報記憶手段と、
前記データ管理情報更新手段によって情報が更新された場合に、前記履歴情報記憶手段によって記憶されている前記履歴情報を更新する履歴情報更新手段と、
をさらに備えたことを特徴とする請求項４に記載のデータ管理装置。
【請求項６】
受信した前記メッセージがデータの履歴要求を示しており、前記メッセージが示す履歴要求対象のデータの識別子が前記所定の数値範囲に含まれる場合には、前記メッセージ処理手段は前記履歴要求対象のデータの前記履歴情報を前記履歴情報記憶手段から読み出し、前記メッセージの発信元へ送信することを特徴とする請求項５に記載のデータ管理装置。
【請求項７】
受信した前記メッセージが示す登録対象のデータの識別子が前記所定の数値範囲に含まれない場合には、前記メッセージ処理手段は前記メッセージを他のデータ管理装置へ転送することを特徴とする請求項２、請求項３、請求項６のいずれかに記載のデータ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワーク上に分散して存在し、識別子が付与されているデータのうち、所定の数値範囲内の識別子が付与されたデータを管理するデータ管理装置に関する。
【背景技術】
【０００２】
特定のサーバによらず、継続的あるいは一時的にネットワークに接続した計算機群によって構成される分散型のデータ管理システムがある。このシステムを利用して、例えばユーザ側ではデータの名前は分かっているが、そのデータのネットワーク上の存在場所が分からない場合に、そのデータを所持している計算機の情報を、ユーザからの要求に応じてユーザに通知するというデータの名前解決サービスを提供することができる。分散型データ管理システムとして、分散ハッシュ表技術を応用したシステムが知られている。分散型データ管理システムに適用する分散ハッシュ表技術として、米国MIT大学のThe Chord Projectが良く知られている（非特許文献１参照）。
【０００３】
Chordでは、データ、およびそれを管理するデータ管理装置には、それぞれ160bitのユニークな識別子が付与されている。各々の識別子は、循環するハッシュ空間を構成する（図１６参照）。データの管理は、ハッシュ空間上で当該データの識別子から正の方向（図１６中の矢印Ａの方向）に見て、次に現れる識別子を持つデータ管理装置が担当することになる。
【０００４】
例として、p台のデータ管理装置でq個のデータを管理するシステムを想定する。データ管理装置の識別子を IDs1，IDs2，・・・，IDsp、データの識別子を IDd1，IDd2，・・・，IDdqとすると、識別子IDs1を持つデータ管理装置は、IDsp ＜ x ≦ 2160-1および0 ≦ x ＜ IDs1の範囲の識別子を有するデータを管理する。また、識別子IDs2を持つデータ管理装置は、IDs1 ＜ x ＜ IDs2の範囲の識別子を有するデータを管理する。このように、各データ管理装置の管理範囲を示す識別子の数値範囲はデータ管理装置毎に異なっており、各数値範囲が重ならないようになっている。以下、このデータ管理に係る情報を「データ管理表」と呼ぶ。
【０００５】
次に、従来の分散型データ管理システムにおける名前解決動作を、非特許文献１の内容に基づいて説明する。システムを構成する各データ管理装置は、ハッシュ空間上で自身の識別子から正の方向（図１６中の矢印Ａの方向）に見て、次に現れる識別子を持つデータ管理装置を、自らのSUCCESSORとして認識している。「認識している」とは、SUCCESSORのIPアドレスとポート番号とを保持しており、SUCCESSORとの間でメッセージを送受信可能であることを表す。同様に、各データ管理装置は、ハッシュ空間上で自身の識別子から負の方向（図１６中の矢印Ｂの方向）に見て、次に現れる識別子を持つデータ管理装置を、自らのPREDECESSORとして認識している。また、各データ管理装置は、ハッシュ空間上で自身の識別子から見て正の方向に現れるr台のデータ管理装置の情報を、SUCCESSOR ListまたはFinger Tableとして保有している。
【０００６】
「SUCCESSOR List」は、自身の識別子から正の方向に見て最初に現れるr台のデータ管理装置のリストである。これに対して、「Finger Table」は、自身の識別子をXとしたときに、(X+2i)mod2160の識別子のデータを担当するr台(0≦i＜r)のデータ管理装置のリストである。これら「SUCCESSOR List」または「Finger Table」と呼ばれる部分、およびSUCCESSOR／PREDECESSORを管理する２つのエントリをあわせて、経路表と呼ぶ。
【０００７】
Chordにおける名前解決動作は、以下のように行われる。ユーザ端末または他のデータ管理装置から、ある識別子のデータに対する名前解決を要求されたデータ管理装置は、当該識別子が当該データ管理装置の管理する範囲内であれば、データ管理表を参照し名前解決を行う。また、当該識別子が当該データ管理装置の管理する範囲外であれば、当該データ管理装置は経路表を参照し、当該識別子を管理する可能性のあるデータ管理装置を選んでリクエストを転送し、名前解決を依頼する。Chordシステムを構成するデータ管理装置の台数をNとした場合、経路表として「SUCCESSOR List」を使用すると、名前解決までにO(N) 回の転送動作が行われるのに対して、「Finger Table」を使用した場合、O(log N) 回の転送で済むことが知られている。
【０００８】
Chordシステムで用いられる160bitの識別子として、SHA-1（Secure Hash Algorithm 1）（非特許文献２参照）と呼ばれるハッシュ関数の出力値（ハッシュ値）が一般的に用いられている。例えば、Chordシステムを構成するデータ管理装置の識別子として、当該データ管理装置のIPアドレスをもとにSHA-1で計算されたハッシュ値が用いられる。また、個々のデータの識別子としては、データが保存されているサーバのIPアドレスまたはドメイン名とデータ名との組み合わせをもとに計算されたハッシュ値が用いられる。
【０００９】
分散ハッシュ表技術とは別の、関連する従来の名前解決の技術として、同一内容のオブジェクト（データや処理機能）に同一の識別子を付与し、ユーザがオブジェクトを利用する際に、存在する複数の候補の中から、利用可能なオブジェクトの接続先を通知する技術（特許文献１参照）がある。また、特許文献１に記載された技術を広域なネットワークでの名前解決の技術に応用したものとして、非特許文献３に記載された技術がある。
【特許文献１】特開２００５−２６７４８４号公報
【非特許文献１】I. Stoica，et. al.，“Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications”，Proceedings of the 2001 ACM SIGCOMM Conference，2001
【非特許文献２】FIPS 180-1，“Secure Hash Standard”，U.S. Department of Commerce/NIST，National Technical Information Service，Springfield，VA，Apr. (1995)
【非特許文献３】竹内 他，“分散処理のためのネットワーク間オブジェクト発見手法の検討”，電子情報通信学会ソサエティ大会 B-6-18，(2005)
【発明の開示】
【発明が解決しようとする課題】
【００１０】
分散ハッシュ表技術を用いた従来のChordシステムでは、ネットワーク上に同一内容のデータが複数存在する場合、個々のデータに対応する識別子が異なるため、各データは、基本的にそれぞれ別のデータ管理装置によって管理される。このため、同一内容を有する複数のデータのうち一部が何らかの理由により利用不可能になった場合、利用可能な代替データがネットワーク上に存在するにもかかわらず、その存在を予め知らない限り当該代替データを利用できない状況が発生するという問題があった。また、同一内容を有する複数のデータに対するアクセス状況を把握するためには、当該内容を有する複数のデータそれぞれを管理するデータ管理装置の全てに問い合わせを行う必要があり、アクセス状況の把握が困難であるという問題があった。
【００１１】
上記の問題を具体例により説明する。例えば、“data1”という名称の同一内容のデータファイルが、address_A，address_B，address_Cの３箇所に存在する場合、それぞれのデータファイルの識別子(Hash(data1@address_X)、X=A，B，C)が異なるため、各データファイルがそれぞれ異なるデータ管理装置で管理されることがある。このため、ユーザが指定したデータ（例えば“data1@address_A”）が何らかの理由で利用できなかったときに、代替データ（例えば“data1@address_B”）の存在を当該ユーザが知らない場合、たとえ当該代替データが利用可能であっても当該ユーザはそれを利用できない。
【００１２】
また、“data1” という名称を有するデータファイルに対するアクセス状況を把握するためには、それぞれの識別子(Hash(data1@address_X)、X=A，B，C)に対応する３台のデータ管理装置に対して、個別に問い合わせを行う必要がある。つまり、同一内容のデータがネットワーク上に多数存在するほど、当該データのアクセス状況の把握が困難になる。
【００１３】
一方、特許文献１および非特許文献３に記載された方法では、ネットワークの規模が大きくなるほど、Chordと比較して名前解決が困難であるという問題がある。また、同一内容のデータファイルが異なるサブネットに存在する場合、それらのデータファイルが異なる名前解決サーバに登録・管理されるため、同一内容のデータがネットワーク上に多数存在するほど、代替データの利用が困難になると共に、データのアクセス状況の把握が困難になるという同様の問題があった。
【００１４】
本発明は、上述した問題点に鑑みてなされたものであって、同一内容を有する複数のデータのうち、一部が利用不可能になった場合でも、代替データを容易に利用することを可能とするデータ管理装置を提供することを第１の目的とする。また、本発明は、第１の目的を達成しつつ、アクセス状況の管理を容易とするデータ管理装置を提供することを第２の目的とする。
【課題を解決するための手段】
【００１５】
本発明は、上記の課題を解決するためになされたもので、コンピュータネットワーク上に分散して存在し、識別子が付与されているデータのうち、所定の数値範囲内の識別子が付与されたデータを管理するデータ管理装置において、処理対象のデータの情報を含むメッセージを受信し、前記メッセージの内容に従った処理を実行するメッセージ処理手段（図１、図１２の通信処理部１０、メッセージ処理部１１０に対応）と、前記所定の数値範囲内の識別子が付与されたデータの情報を記憶するデータ管理情報記憶手段（図１、図１２のデータ管理表記憶部１３に対応）とを備えており、同一内容のデータに対して同一の識別子が付与されていることを特徴とするデータ管理装置である。
【００１６】
また、本発明のデータ管理装置において、受信した前記メッセージがデータの登録要求を示しており、前記メッセージが示す登録対象のデータの識別子が前記所定の数値範囲に含まれる場合には、前記メッセージ処理手段は前記登録対象のデータの情報を前記データ管理情報記憶手段に格納することを特徴とする。
【００１７】
また、本発明のデータ管理装置において、受信した前記メッセージがデータの情報要求を示しており、前記メッセージが示す情報要求対象のデータの識別子が前記所定の数値範囲に含まれる場合には、前記メッセージ処理手段は、前記情報要求対象のデータの情報を前記データ管理情報記憶手段から読み出し、前記メッセージの発信元へ送信することを特徴とする。
【００１８】
また、本発明のデータ管理装置は、前記所定の数値範囲内の識別子が付与されたデータの状態確認を、当該データを記憶するデータ記憶装置（図１、図１２のデータファイル蓄積装置３に対応）に要求するための状態確認メッセージを前記データ記憶装置へ送信し、前記状態確認メッセージに対する前記データ記憶装置からの返答メッセージを受信し、前記返答メッセージの内容に基づいて、前記データ管理情報記憶手段によって記憶されている情報を更新するデータ管理情報更新手段（図１、図１２の通信処理部１０、データ管理表更新処理部１１１に対応）をさらに備えたことを特徴とする。
【００１９】
また、本発明のデータ管理装置は、前記データ管理情報記憶手段によって記憶されている情報の変更履歴を示す履歴情報を記憶する履歴情報記憶手段（図１２の履歴情報記憶部１４に対応）と、前記データ管理情報更新手段によって情報が更新された場合に、前記履歴情報記憶手段によって記憶されている前記履歴情報を更新する履歴情報更新手段（図１２の履歴情報更新処理部１１２に対応）とをさらに備えたことを特徴とする。
【００２０】
また、本発明のデータ管理装置において、受信した前記メッセージがデータの履歴要求を示しており、前記メッセージが示す履歴要求対象のデータの識別子が前記所定の数値範囲に含まれる場合には、前記メッセージ処理手段は前記履歴要求対象のデータの前記履歴情報を前記履歴情報記憶手段から読み出し、前記メッセージの発信元へ送信することを特徴とする。
【００２１】
また、本発明のデータ管理装置において、受信した前記メッセージが示す登録対象のデータの識別子が前記所定の数値範囲に含まれない場合には、前記メッセージ処理手段は前記メッセージを他のデータ管理装置へ転送することを特徴とする。
【００２２】
上記において、括弧で括った部分の記述は、後述する本発明の実施形態と本発明の構成要素とを便宜的に対応付けるためのものであり、この記述によって本発明の内容が限定されるわけではない。
【発明の効果】
【００２３】
本発明によれば、データ管理装置毎に異なる所定の数値範囲内の識別子が付与されたデータを各データ管理装置が管理するシステムにおいて、同一内容のデータに対して同一の識別子を付与することによって、同一内容のデータが同一のデータ管理装置によって管理されるので、同一内容を有する複数のデータのうち、一部が利用不可能になった場合でも、代替データを容易に利用することが可能となるという効果が得られる。
【００２４】
また、本発明によれば、同一内容のデータが同一のデータ管理装置によって管理され、それらのデータの履歴情報も同一のデータ管理装置によって管理されるので、データのアクセス状況の管理が容易となるという効果が得られる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照し、本発明の実施形態を説明する。以下の実施形態では、同一内容のデータがネットワーク上に複数存在する場合でも、それらのデータが常に１台のデータ管理装置で管理されるような識別子がデータに付与されるものとする。具体的には、データの作成時に一意な名前（ID）がデータに付与され、キャッシュデータの作成時などのようにデータの複製が作成され、データ記憶装置に保存される場合、複製データの名称として、元となったデータの名称と同じものが使用されるものとする。また、データの識別子として、データのIDから計算されたハッシュ値が用いられるものとする。これにより、同一内容のデータに対して同一の識別子が付与され、当該識別子に対応する特定のデータ管理装置により、同一内容の複数のデータが一元的に管理される。データの作成時に付与される名前（ID）の例として、UUID（Universally Unique Identifier）や、T-Engineフォーラムで標準化が行われているユビキタスID（ucode）などがある。
【００２６】
また、ユーザからの指示に基づいて動作するユーザ端末は、名前解決などをシステムに要求する際のデータの指定をデータの識別子で行う。ユーザ端末からの要求を受けたデータ管理装置は、データ管理表に登録されている同一内容のデータに関する複数のエントリのうち一部が利用できない場合、別の代替エントリに対する名前解決動作を行う。これによりユーザは、自身が指定するデータについて、ネットワーク上に代替データがいくつ存在するのか、代替データの保存先はどこか等を意識することなく、ネットワーク上の所望のデータを利用することが可能となる。
【００２７】
図１は、本発明の第１の実施形態によるデータ管理システムの構成を示している。図１において、複数のデータ管理装置１、ユーザ端末２、データファイル蓄積装置３が、通信ネットワーク４００を介して互いに通信を行うことが可能なように接続されている。データ管理装置１、ユーザ端末２、およびデータファイル蓄積装置３は共にコンピュータである。各々のデータ管理装置１、ユーザ端末２、およびデータファイル蓄積装置３では、データの加工や演算を行う処理装置、データを保存するための記憶装置、ユーザがコンピュータへの指示を入力するための入力装置、および処理結果を出力する出力装置等のハードウェアと、コンピュータを制御する手順や命令をまとめたソフトウェア（プログラム）とが協働して動作することによって、所望の機能が実現される。
【００２８】
データ管理装置１において、通信処理部１０は、他のデータ管理装置１やユーザ端末２、データファイル蓄積装置３との通信を制御し、各種メッセージの送信や受信を行う。処理部１１は、データ管理に係る様々な処理を実行する。経路表記憶部１２は経路表を記憶し、データ管理表記憶部１３はデータ管理表を記憶する。経路表記憶部１２とデータ管理表記憶部１３は異なる記録媒体で構成されていてもよいし、同一の記録媒体内の異なる記録領域で構成されていてもよい。処理部１１において、メッセージ処理部１１０は、他のデータ管理装置１やユーザ端末２、データファイル蓄積装置３から受信されたメッセージに基づいて処理を実行する。データ管理表更新処理部１１１は、データファイル蓄積装置３に対するデータの状態確認に係る処理を行い、データファイル蓄積装置３から通知された情報に基づいて、データ管理表記憶部１３に格納されているデータ管理表の内容を更新する。
【００２９】
データファイル蓄積装置３において、通信処理部３０はデータ管理装置１やユーザ端末２との通信を制御し、各種メッセージの送信や受信を行う。処理部３１は、データファイル蓄積部３２に蓄積されるデータに係る様々な処理を実行する。
【００３０】
ユーザ端末２は、新たなデータを生成した場合、そのデータが生成された時間や、ユーザ端末２のネットワークインタフェースに付与されたMACアドレスの情報等に基づいて、一意なIDをデータに付与した上で、データをいずれかのデータファイル蓄積装置３へ送信する。データファイル蓄積装置３において、通信処理部３０はそのデータを受信し、処理部３１へ出力する。
【００３１】
処理部３１は、そのデータに付与されたIDに基づいて、ハッシュ関数（例えばSHA-1）によって識別子を生成する。処理部３１は、データをデータファイル蓄積部３２に蓄積し、上記のようにして生成された識別子と、自身のデータファイル蓄積装置３のIPアドレスおよびポート番号等とが記録されたメッセージを生成し、データ管理装置１へ送信する。これによって、データ管理装置１に対して新たなデータの登録が要求される。
【００３２】
データ管理装置１の経路表記憶部１２が記憶する経路表には、他のデータ管理装置１との通信に必要な情報（例えばIPアドレスおよびポート番号）が含まれている。図２は経路表の一例を示している。経路表は、前述した「SUCCESSOR List」または「Finger Table」と呼ばれる部分と、SUCCESSORおよびPREDECESSORを管理する２つのエントリとから成る。「SUCCESSOR List」または「Finger Table」には、他の複数のデータ管理装置１の識別子（装置識別子）と、それらのデータ管理装置１のIPアドレスおよびポート番号とが含まれている。
【００３３】
SUCCESSORを管理するエントリには、SUCCESSORとなる他のデータ管理装置１の識別子（装置識別子）と、そのデータ管理装置１のIPアドレスおよびポート番号とが含まれている。PREDECESSORを管理するエントリには、PREDECESSORとなる他のデータ管理装置１の識別子（装置識別子）と、そのデータ管理装置１のIPアドレスおよびポート番号とが含まれている。処理部１１は、通信処理部１０を介して他のデータ管理装置１と通信を行い、通信結果に基づいて経路表を作成し、経路表記憶部１２に予め格納しているものとする。
【００３４】
データ管理装置１のデータ管理表記憶部１３が記憶するデータ管理表には、自身が管理するデータ、すなわち自身が管理する所定の数値範囲内の識別子が付与されたデータについての情報が含まれている。図３はデータ管理表の一例を示している。図３が示すようにデータ管理表には、個々のデータについて、各データに付与されている識別子（データ識別子）、各データが保存されているデータファイル蓄積装置３のIPアドレスとポート番号、およびデータの使用可否を示す情報が含まれている。データの使用可否は、例えばデータに対するアクセスが行われているか否か、データに問題があるか否か等によって変わる。
【００３５】
図３の例では、「データＡ」という内容のデータがネットワーク上の３箇所に保存されており、IPアドレス 1.1.1.1のデータファイル蓄積装置３ に保存されているデータが現在使用不可能である。データ管理表の内容は、定期的に実行されるデータ管理表更新処理により、最新の情報に更新される。この詳細は後述する。
【００３６】
ユーザ端末２は、ユーザからの指示に基づいてデータの存在場所を探索する際に、自身が知っているデータ管理装置１に対して、そのデータの情報を要求するためのメッセージを送信する。また、データ管理装置１は、ユーザ端末２からメッセージを受信した場合に、必要に応じて、他のデータ管理装置１へそのメッセージを転送する。また、データファイル蓄積装置３は、新たなデータをデータファイル蓄積部３２に保存した場合、データの情報の登録を要求するためのメッセージをデータ管理装置１へ送信する。
【００３７】
図４は上記のメッセージの一例を示している。「宛先IPアドレス」および「宛先ポート番号」はそれぞれ、メッセージの宛先であるデータ管理装置１のIPアドレスおよびポート番号を示している。「送信元IPアドレス」および「送信元ポート番号」はそれぞれ、メッセージの送信元であるデータ管理装置１、ユーザ端末２、またはデータファイル蓄積装置３のIPアドレスおよびポート番号を示している。
【００３８】
「処理対象識別子」は、データ管理装置１による処理対象となるデータの識別子を示している。「コマンド」は、処理対象識別子で識別されるデータに対してデータ管理装置１が行うべき処理内容を示している。この処理内容とは、例えばデータ管理表上で処理対象識別子に対応するIPアドレス、ポート番号、使用可否の情報等を送信元に返信するということや、データ管理表に対してエントリを登録する／削除するということを示している。また、メッセージには、そのメッセージを作成し、発信したユーザ端末２またはデータファイル蓄積装置３を特定するための発信元IPアドレスおよび発信元ポート番号も含まれている。
【００３９】
次に、本実施形態によるデータ管理システムの動作を説明する。まず、図５を参照し、他の装置からメッセージを受信する場合のデータ管理装置１の動作を説明する。通信処理部１０は、メッセージの宛先IPアドレスおよび宛先ポート番号が自身を指すメッセージのみ受信し、メッセージ処理部１１０へメッセージを出力する（ステップＳ１００ ）。メッセージ処理部１１０はメッセージ内の処理対象識別子を確認し、その処理対象識別子が、自身の担当する範囲内の識別子であるか否かを判定する（ステップＳ１０１）。
【００４０】
処理対象識別子が、自身の担当する範囲内の識別子でなかった場合、メッセージ処理部１１０は経路表記憶部１２から経路表を読み出し（ステップＳ１０２）、経路表内のデータ管理装置１の識別子と処理対象識別子を比較して、メッセージの転送先となるデータ管理装置１を決定する（ステップＳ１０３）。続いて、メッセージ処理部１１０はメッセージの宛先IPアドレスおよび宛先ポート番号を転送先のデータ管理装置１のIPアドレスおよびポート番号に書き換えると共に、送信元IPアドレスおよび送信元ポート番号を自身のIPアドレスおよびポート番号に書き換え、通信処理部１０を介してメッセージを転送する（ステップＳ１０４）。メッセージの転送先となるデータ管理装置１は１台でも複数台でもよい。
【００４１】
一方、ステップＳ１０１での判定の結果、処理対象識別子が、自身の担当する範囲内の識別子であった場合、メッセージ処理部１１０はメッセージ内のコマンドを参照し、その内容を判断する（ステップＳ１０５）。この判断結果に応じて、ステップＳ１０６〜Ｓ１０９のいずれかの処理が行われる。メッセージ内のコマンドの内容が名前解決であった場合には、処理A（名前解決処理）が行われ（ステップＳ１０６）、メッセージ内のコマンドの内容が状態確認であった場合には、処理B（状態確認処理）が行われ（ステップＳ１０７）、メッセージ内のコマンドの内容が登録であった場合には、処理C（登録処理）が行われ（ステップＳ１０８）メッセージ内のコマンドの内容がその他であった場合には、処理D（その他の処理）が行われる（ステップＳ１０９）。処理AおよびBは、データに関する情報を要求する情報要求に対する処理の一種ととらえられる。
【００４２】
次に、ステップＳ１０６〜Ｓ１０９の処理の詳細を説明する。図６は処理A（名前解決処理）の内容を示している。発信元からデータの名前解決が要求されている場合、メッセージ処理部１１０はデータ管理表記憶部１３内のデータ管理表を参照し、メッセージ内の処理対象識別子と同一の識別子がデータ管理表に存在するか否かを判定する（ステップＳ２００）。処理対象識別子と同一の識別子がデータ管理表に存在しなかった場合、メッセージ処理部１１０は、メッセージの発信元（メッセージを発信したユーザ端末２）に対して、処理対象識別子と同一の識別子を有するデータが存在しないことを通知するためのメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ２０１）。
【００４３】
また、処理対象識別子と同一の識別子がデータ管理表に存在した場合、メッセージ処理部１１０は、処理対象識別子に対応する全てのエントリの使用可否を確認した上で、使用可否が「可」であるエントリが少なくとも１つ存在するか否かを判定する（ステップＳ２０２）。使用可否が「可」であるエントリが１つも存在しない場合、メッセージ処理部１１０は、処理対象識別子に対応するデータの全てが現在使用不可能であることを発信元に通知するためのメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ２０３）。また、使用可否が「可」であるエントリが少なくとも１つ存在する場合、メッセージ処理部１１０は、使用可否が「可」であるエントリの中から１つを選択し、そのエントリに含まれるIPアドレスおよびポート番号を発信元に通知するためのメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ２０４）。
【００４４】
図７は処理B（状態確認処理）の内容を示している。発信元からデータの状態確認が要求されている場合、メッセージ処理部１１０はデータ管理表記憶部１３内のデータ管理表を参照し、メッセージ内の処理対象識別子と同一の識別子がデータ管理表に存在するか否かを判定する（ステップＳ３００）。処理対象識別子と同一の識別子がデータ管理表に存在しなかった場合、メッセージ処理部１１０は、メッセージの発信元（メッセージを発信したユーザ端末２）に対して、処理対象識別子と同一の識別子を有するデータが存在しないことを通知するためのメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ３０１）。
【００４５】
また、処理対象識別子と同一の識別子がデータ管理表に存在した場合、メッセージ処理部１１０は、データ管理表に含まれる情報の中から、処理対象識別子に対応するエントリの情報（処理対象識別子に対応するデータの使用可否の情報を少なくとも含む情報）を抽出する。メッセージ処理部１１０は、データ管理表から抽出した情報を含むメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ３０２）。
【００４６】
図８は処理C（登録処理）の内容を示している。発信元から新たなデータの情報の登録が要求されている場合、メッセージ処理部１１０は、メッセージ内の処理対象識別子を識別子とするエントリをデータ管理表に追加し、発信元IPアドレスおよび発信元ポート番号の情報をそれぞれ当該エントリのIPアドレスおよびポート番号の情報とし、また、使用可否を初期状態として「可」とし、データに関するこれらの情報をデータ管理表内の当該エントリに格納する（ステップＳ４００）。
【００４７】
本実施形態によるデータ管理システムでは、データの識別子として、データの名称をもとに特定のプロトコル（例えばハッシュ関数SHA-1など）で得られた値が使用される。このため、同一内容のデータのコピーがネットワーク上に複数存在する場合、これらのデータの識別子は全て同一となる。図１６が示すように、同一の識別子が付与されたデータを異なるデータ管理装置１が管理することはないため、同一内容のデータは同一のデータ管理装置のデータ管理表に登録され、管理される。
【００４８】
図９は処理D（その他の処理）の内容を示している。メッセージ内のコマンドの内容がデータの名前解決でも状態確認でも登録でもない場合、メッセージ処理部１１０は、無効なコマンドであることを発信元に通知するためのメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ５００）。
【００４９】
次に、図１０および図１１を参照し、定期的に行われるデータ管理表の更新に係る動作を説明する。図１０はデータ管理装置１の動作を示している。データ管理表更新処理部１１１は、内部に保持する変数を初期化し（ステップＳ６００）、データ管理表に含まれるエントリの中の１つに対応するデータの状態確認を行うための状態確認メッセージを生成し、通信処理部１０を介して、そのデータを記憶しているデータファイル蓄積装置３へ状態確認メッセージを送信する（ステップＳ６０１）。
【００５０】
状態確認メッセージの送信後、データ管理表更新処理部１１１は送信先のデータファイル蓄積装置３からの応答に備えて待機し、応答の有無を判定する（ステップＳ６０２）。状態確認メッセージが送信されてから所定時間内に返答があった場合（データファイル蓄積装置３からの返答メッセージが所定時間内に受信された場合）、データ管理表更新処理部１１１はデータファイル蓄積装置３からの返答メッセージを参照し、その内容に基づいて、状態確認の対象となっているデータがデータファイル蓄積装置３に存在しているか否かを判定する（ステップＳ６０３）。
【００５１】
状態確認の対象となっているデータがデータファイル蓄積装置３に存在している場合、データ管理表更新処理部１１１は、返答メッセージの内容に基づいて、データ管理表記憶部１３内のデータ管理表内のデータの情報を更新する（ステップＳ６０４）。例えば、IPアドレス、ポート番号、使用可否について、返答メッセージの内容とデータ管理表の内容とを比較し、両者が異なっていた場合には、データ管理表の内容を返答メッセージの内容に書き換える処理が行われる。また、両者が同じであった場合には、データ管理表の内容はそのままとなる。
【００５２】
一方、データファイル蓄積装置３へ状態確認メッセージを送信した後、所定時間内に返答がなかった場合（データファイル蓄積装置３からの返答メッセージが所定時間内に受信されなかった場合）（ステップＳ６０２でNOの場合）、および状態確認の対象となっているデータがデータファイル蓄積装置３に存在しない場合（ステップＳ６０３でNOの場合）、データ管理表更新処理部１１１は、状態確認の対象となっているデータのエントリをデータ管理表から削除する（ステップＳ６０５）。ステップＳ６０４またはＳ６０５におけるデータ管理表に対する操作を行った後、データ管理表更新処理部１１１は、内部に保持している変数の値を参照し、その値が現在のエントリの最大数（n-1）と同じ値であるか否かを判定する（ステップＳ６０６）。
【００５３】
内部に保持している変数の値がエントリの最大数と同じ値であった場合には、データ管理表の更新処理が終了する。また、内部に保持している変数の値がエントリの最大数と同じ値でなかった場合には、データ管理表更新処理部１１１は、内部に保持している変数の値を１だけ増加させ（ステップＳ６０７）、次のエントリについて、再びステップＳ６０１からの処理を行う。以上の動作によって、データ管理表内の１つ１つのエントリについて順番に情報の更新処理が行われる。
【００５４】
図１１は、図１０に対応してデータファイル蓄積装置３が行う動作を示している。通信処理部３０は、データ管理装置１からの状態確認メッセージを受信し、処理部３１へ出力する（ステップＳ７００）。処理部３１は、状態確認メッセージを参照し、状態確認を要求されているデータがデータファイル蓄積部３２に格納されているか否かを確認する（ステップＳ７０１）。状態確認を要求されているデータがデータファイル蓄積部３２に格納されていない場合、処理部３１は、その旨をデータ管理装置１に通知するための返答メッセージを生成し、通信処理部３０を介して返答メッセージをデータ管理装置１へ送信する（ステップＳ７０２）。また、状態確認を要求されているデータがデータファイル蓄積部３２に格納されている場合、処理部３１は、状態確認を要求されているデータの現在の情報（IPアドレス、ポート番号、使用可否）を含む返答メッセージを生成し、通信処理部３０を介して返答メッセージをデータ管理装置１へ送信する（ステップＳ７０３）。
【００５５】
上述したように、データ管理装置１毎に異なる所定の数値範囲内の識別子が付与されたデータを各データ管理装置１が管理するシステムにおいて、本実施形態では同一内容のデータに対して同一の識別子を付与している。これによって、同一内容のデータが同一のデータ管理装置１によって管理されるので、同一内容を有する複数のデータのうち、一部が利用不可能になった場合でも、代替データを容易に利用することが可能となる。
【００５６】
また、本実施形態では、データの名前解決、状態確認、データの登録要求等を示すメッセージ内の処理対象識別子が、自らの担当する所定の数値範囲に含まれていなかった場合に、データ管理装置１がメッセージを他のデータ管理装置１へ転送するようにしている。この転送が繰り返された後、自らの担当する所定の数値範囲にメッセージ内の処理対象識別子を含むデータ管理装置１がメッセージを受信した場合、そのデータ管理装置１によって、メッセージの内容に従った処理が行われる。これによって、正常なデータ管理サービスを滞りなく行うことができる。
【００５７】
次に、本発明の第２の実施形態を説明する。図１２は、本実施形態によるデータ管理システムの構成を示している。本実施形態では、データ管理装置１において、履歴情報記憶部１４および履歴情報更新処理部１１２が設けられている。履歴情報記憶部１４は、データ管理表記憶部１３によって記憶されているデータ管理表内のデータの情報の変更履歴を示す履歴情報を記憶する。履歴情報には、使用可否の情報の変更履歴や、同一の識別子を有するエントリ数の変動履歴等が含まれる。履歴情報更新処理部１１２は、データ管理表更新処理部１１１によってデータ管理表内のデータの情報が更新された場合に、履歴情報記憶部１４によって記憶されている履歴情報を更新する処理を行う。
【００５８】
図１３は、他のデータ管理装置１等からメッセージを受信する場合のデータ管理装置１の動作を示している。図１３において、図５と同一の符号が付与されたステップにおける処理は前述した通りであるので、説明を省略する。ステップＳ１０５において、メッセージ内のコマンドの内容を判断した結果、コマンドの内容が履歴確認であった場合には、処理E（履歴確認処理）が行われる（ステップＳ１１０）。
【００５９】
図１４は処理E（履歴確認処理）の内容を示している。発信元から履歴確認が要求されている場合、メッセージ処理部１１０はデータ管理表記憶部１３内のデータ管理表を参照し、メッセージ内の処理対象識別子と同一の識別子がデータ管理表に存在するか否かを判定する（ステップＳ８００）。処理対象識別子と同一の識別子がデータ管理表に存在しなかった場合、メッセージ処理部１１０は、メッセージの発信元（メッセージを発信したユーザ端末２）に対して、処理対象識別子と同一の識別子を有するデータが存在しないことを通知するためのメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ８０１）。
【００６０】
また、処理対象識別子と同一の識別子がデータ管理表に存在した場合、メッセージ処理部１１０は、履歴情報記憶部１４に格納されている履歴情報の中から、処理対象識別子に対応するエントリの履歴情報を抽出する。メッセージ処理部１１０は、抽出した履歴情報を含むメッセージを生成し、通信処理部１０を介してメッセージを発信元に送信する（ステップＳ８０２）。
【００６１】
図１５は、履歴情報の更新に係るデータ管理装置１の動作を示している。履歴情報の更新はデータ管理表更新処理と共に行われる。図１５において、図１０と同一の符号が付与されたステップにおける処理は前述した通りであるので、説明を省略する。ステップＳ６０４またはＳ６０５においてデータ管理表の内容（データ管理表に含まれるデータの情報）が変更された場合に、履歴情報更新処理部１１２は、データ管理表更新処理部１１１からデータ管理表の変更内容の通知を受け、履歴情報記憶部１４によって記憶されている履歴情報の内容を更新する（ステップＳ６０８）。データ管理表の内容が変更されていない場合には、履歴情報の更新は行われない。
【００６２】
上述したように、本実施形態では、データ管理表に含まれる情報の変更履歴が履歴情報として記録される。履歴情報から、データに対するアクセスの頻度等を知ることができるので、例えばアクセスの頻度の高いデータについては、ネットワーク上にそのデータの複製データをより多く用意することによって、より効率的なデータ管理サービスを提供することが可能となる。
【００６３】
また、同一内容のデータが同一のデータ管理装置によって管理され、それらのデータに対するアクセス状況（履歴情報）も同一のデータ管理装置によって管理されるので、ネットワーク上に存在する同一内容のデータの数に関係なく、アクセス状況が一元的に管理され、管理が容易となる。
【００６４】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１の実施形態によるデータ管理システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態における経路表の内容を示す参考図である。
【図３】本発明の第１の実施形態におけるデータ管理表の内容を示す参考図である。
【図４】本発明の第１の実施形態におけるメッセージの構造を示す参考図である。
【図５】本発明の第１の実施形態によるデータ管理装置の動作の手順を示すフローチャートである。
【図６】本発明の第１の実施形態によるデータ管理装置の動作（名前解決処理）の手順を示すフローチャートである。
【図７】本発明の第１の実施形態によるデータ管理装置の動作（状態確認処理）の手順を示すフローチャートである。
【図８】本発明の第１の実施形態によるデータ管理装置の動作（登録処理）の手順を示すフローチャートである。
【図９】本発明の第１の実施形態によるデータ管理装置の動作（その他の処理）の手順を示すフローチャートである。
【図１０】本発明の第１の実施形態によるデータ管理装置の動作（データ管理表更新処理）の手順を示すフローチャートである。
【図１１】本発明の第１の実施形態によるデータファイル蓄積装置の動作の手順を示すフローチャートである。
【図１２】本発明の第２の実施形態によるデータ管理システムの構成を示すブロック図である。
【図１３】本発明の第２の実施形態によるデータ管理装置の動作の手順を示すフローチャートである。
【図１４】本発明の第２の実施形態によるデータ管理装置の動作の手順（履歴確認処理）を示すフローチャートである。
【図１５】本発明の第２の実施形態によるデータ管理装置の動作の手順（データ管理表更新処理）を示すフローチャートである。
【図１６】循環するハッシュ空間における識別子の配置の様子を示す参考図である。
【符号の説明】
【００６６】
１・・・データ管理装置、２・・・ユーザ端末、３・・・データファイル蓄積装置、１０，３０・・・通信処理部、１１，３１・・・処理部、１２・・・経路表記憶部、１３・・・データ管理表記憶部、１４・・・履歴情報記憶部、３２・・・データファイル蓄積部、１１０・・・メッセージ処理部、１１１・・・データ管理表更新処理部、１１２・・・履歴情報更新処理部、４００・・・通信ネットワーク
【図１】
2007316696.tif 000003
【図２】
2007316696.tif 000004
【図３】
2007316696.tif 000005
【図４】
2007316696.tif 000006
【図５】
2007316696.tif 000007
【図６】
2007316696.tif 000008
【図７】
2007316696.tif 000009
【図８】
2007316696.tif 000010
【図９】
2007316696.tif 000011
【図１０】
2007316696.tif 000012
【図１１】
2007316696.tif 000013
【図１２】
2007316696.tif 000014
【図１３】
2007316696.tif 000015
【図１４】
2007316696.tif 000016
【図１５】
2007316696.tif 000017
【図１６】
2007316696.tif 000018