説明

分散ID管理方法および分散ID管理システム

【課題】同一の管理対象に紐付くものの、日時やドメインによって異なる値を取り得る識別子間の相互変換を可能とし、かつ、管理すべきデータ量を抑えた上で、スケールアウトを可能とする。
【解決手段】分散ID管理システムのデータ管理装置3は、識別子、ドメイン、日時を含むデータを、インデックスキー(識別子とドメインの組)およびサブルートキー(ルートキーとドメインの組)の2種類のキーを用いて管理する。そして、クライアント装置1からID変換要求を受け付けると、ゲートウェイ装置2が、インデックスキーを用いてルートキーを検索するデータ管理装置3(3A)を決定する。そして、そのデータ管理装置3(3A)は、サブルートキーを用いて、変換先の識別子を検索するデータ管理装置3(3D)を決定し、データ管理装置3(3D)から変換先の識別子を取得して、クライアント装置1に返信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散ID管理方法および分散ID管理システムに関する。
【背景技術】
【0002】
情報システムにおいて物品や人またはそれらに関わるデータを管理する際、管理対象を一意に特定可能な符号、すなわちID(Identification:識別子)を用いることで、管理の自動化や効率化が図られることが多い。例えば、図書にはISBN(International Standard Book Number:国際標準図書番号)と呼ばれる世界共通の番号が振られており、当該番号を用いれば、全世界でただ一つの書籍を特定することが可能となっている。また、一部の国・地域では、当該国・地域内の個人に納税者番号や住民番号等と呼ばれる識別子を割り当てることで、各個人に紐付くデータと当該個人との関係を一意に識別可能とし、税務や社会保障制度の効率的な運営を図っている。
【0003】
一般に、管理対象(物品若しくは人等)に対して割り当てられている識別子は、利用される範囲(以下、「ドメイン」と呼ぶ)および時間によって異なる値を取り得る。例えば、ある管理対象に対して、2009年3月の時点では、A工場で"0"という識別子で管理されていた管理対象が、2010年6月の時点では、B工場で"a"という識別子で管理されている状況が存在し得る。この場合、両識別子が同一の管理対象を指しているものであることを把握し、必要に応じて両識別子を相互に変換可能であると、時間やドメインをまたがった効率的な管理が可能となる。また、管理体系の一貫性を保つためには、識別子の更新(例えばA工場での識別子が2011年9月以降"9"に更新される等)についても把握し、相互変換の際に反映できることが望ましい。
【0004】
上記のような、相互変換、更新処理を実現するに当たっては、(管理対象、ドメイン、時間)の三次元空間の各点に値(識別子)を対応付けたデータベースを構築し、データ登録・変換・更新のインタフェースを備えることが必要となる。当該データベースは、管理対象の数、ドメインの数、識別子の更新頻度が前もって分かっている場合にはリレーショナルデータベースを用いて実現することが比較的容易であるが、そうでない場合、設計段階でテーブルのサイズやハードウェアの性能要件を定めにくいために、リレーショナルデータベースの利用が必ずしも最適でない可能性がある。このような状況下では、サービス開始後に同装置を一台ないし複数台追加するだけで、要求される容量や性能要件を満足できること(スケールアウト)を可能とする分散データ管理システムが利用されることが多い。
【0005】
スケールアウト可能な分散データ管理システムの例としては、Consistent Hashingと呼ばれる手法(コンシステントハッシュ法)を応用した方式が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−74604号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載された技術では、データ名(キー)に基づいてデータの分散管理が実現されるものの、分散したデータを当該データが含む情報(日時・ドメイン・識別子等)に基づいて効率良く特定する機能を備えていない。例えば前述したように、ある管理対象(物品若しくは人等)に対して、2009年3月時点では、A工場で"0"という識別子で管理されていた管理対象が、2010年6月時点では、B工場で"a"という識別子で管理されているような状況において、変換元の識別子(例えば、"0")と、変換元のドメイン(例えば、A工場)と、変換元の日時(例えば、2009年3月)と、変換先のドメイン(例えば、B工場)と、変換先の日時(例えば、2010年6月)と、を指定して、変換先の識別子(ここでは、"a")を得るような処理を実現する場合、"変換元ID,変換元ドメイン,変換元日時,変換先ドメイン,変換先日時" をデータ名(キー)として、データ内に変換先IDを格納するという方法を用いることにより可能ではある。しかし、このような構成をとった場合には、データ管理システムで保存すべきデータの量や、IDの更新時の書き換えが必要になるデータの量が多くなるという問題がある。また、日時の間隔が広い場合、例えば、月単位や日単位等の場合、上記のようなデータ名を構成することは比較的容易であるが、間隔が細かい場合、例えば、分単位や秒単位等の場合には、管理すべきデータの量が膨大になってしまうという問題がある。
【0008】
このような背景に鑑みて本発明がなされたのであり、本発明は、同一の管理対象に紐付くものの、日時やドメインによって異なる値を取り得る識別子間の相互変換を可能とし、かつ、管理すべきデータ量を抑えた上で、スケールアウトを可能とする、分散ID管理方法および分散ID管理システムを提供することを課題とする。
【課題を解決するための手段】
【0009】
本発明の分散ID管理システムにおけるデータ管理装置は、識別子、ドメイン、日時を含むデータを、インデックスキー(識別子とドメインの組)およびサブルートキー(ルートキーとドメインの組)の2種類のキーを用いて管理する。そして、クライアント装置からID変換要求を受け付けると、ゲートウェイ装置が、インデックスキーを用いてルートキーを保持するデータ管理装置を複数のデータ管理装置の中から決定する。そして、そのデータ管理装置は、サブルートキーを用いて、変換先の識別子を保持する他のデータ管理装置を決定し、他のデータ管理装置から変換先の識別子を取得して、ゲートウェイ装置を介して、クライアント装置に、その変換先の識別子を含むメッセージを送信する。
【発明の効果】
【0010】
本発明によれば、同一の管理対象に紐付くものの、日時やドメインによって異なる値を取り得る識別子間の相互変換を可能とし、かつ、管理すべきデータ量を抑えた上で、スケールアウトを可能とする、分散ID管理方法および分散ID管理システムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】本実施形態に係る分散ID管理システムの全体の構成例を説明するための図である。
【図2】本実施形態に係るクライアント装置の構成例を示す機能ブロック図である。
【図3】本実施形態に係るゲートウェイ装置の構成例を示す機能ブロック図である。
【図4】本実施形態に係るノード決定部が行うデータの振り分け先となるノードの決定処理を説明するための図である。図4(a)は、本実施形態に係るノード情報記憶領域に格納されるノード情報のデータ構成の一例を示す図である。また、図4(b)は、本実施形態に係るノード決定部による、データの振り分け先の決定処理を説明するための図である。
【図5】本実施形態に係るデータ管理装置の構成例を示す機能ブロック図である。
【図6】本実施形態に係る各装置(クライアント装置、ゲートウェイ装置、データ管理装置)のハードウェア構成図である。
【図7】本実施形態に係る分散ID管理システムが行うID登録処理の全体の流れを示すシーケンス図である。
【図8】本実施形態に係るデータ管理システムが行うID登録処理で送受信されるメッセージ例を示す図である。
【図9】本実施形態に係るデータ管理装置のデータ記憶領域に記憶されるインデックスおよびルート情報の例を示す図である。
【図10】本実施形態に係るID登録処理におけるゲートウェイ装置の処理の流れを示すフローチャートである。
【図11】本実施形態に係るノード決定処理の流れを示すフローチャートである。
【図12】本実施形態に係るID登録処理における担当ノード(データ管理装置A)の処理の流れを示すフローチャートである。
【図13】本実施形態に係るID登録処理における担当ノード(データ管理装置A)の処理の流れを示すフローチャートである。
【図14】本実施形態に係るインデックス保存処理におけるデータ管理装置の処理の流れを示すフローチャートである。
【図15】本実施形態に係るルート情報保存処理におけるデータ管理装置の処理の流れを示すフローチャートである。
【図16】本実施形態に係る分散ID管理システムが行うID変換処理の全体の流れを示すシーケンス図である。
【図17】本実施形態に係るデータ管理システムが行うID変換処理で送受信されるメッセージ例を示す図である。
【図18】本実施形態に係るID変換処理におけるゲートウェイ装置の処理の流れを示すフローチャートである。
【図19】本実施形態に係るID変換処理におけるデータ管理装置Aの処理の流れを示すフローチャートである。
【図20】本実施形態に係るID取得処理におけるデータ管理装置Dの処理の流れを示すフローチャートである。
【図21】本実施形態に係る分散ID管理システムが行うID更新処理の全体の流れを示すシーケンス図である。
【図22】本実施形態に係るデータ管理システムが行うID更新処理で送受信されるメッセージ例を示す図である。
【図23】本実施形態に係るデータ管理装置の、ID更新処理後のデータ記憶領域に記憶されるインデックスおよびルート情報の例を示す図である。
【図24】本実施形態に係るID更新処理におけるゲートウェイ装置の処理の流れを示すフローチャートである。
【図25】本実施形態に係るID更新処理におけるデータ管理装置Aの処理の流れを示すフローチャートである。
【図26】本実施形態に係るID更新処理におけるデータ管理装置Aの処理の流れを示すフローチャートである。
【図27】本実施形態に係るID更新処理におけるデータ管理装置Bのルート情報更新処理の流れを示すフローチャートである。
【図28】本実施形態に係る分散ID管理システムが行うID更新処理後のID変換処理(1)の全体の流れを示すシーケンス図である。
【図29】本実施形態に係るデータ管理システムが行うID更新処理後のID変換処理(1)で送受信されるメッセージ例を示す図である。
【図30】本実施形態に係る分散ID管理システムが行うID更新処理後のID変換処理の全体の流れ(2)を示すシーケンス図である。
【図31】本実施形態に係るデータ管理システムが行うID更新処理後のID変換処理(2)で送受信されるメッセージ例を示す図である。
【図32】本実施形態に係る分散ID管理システムが行うID更新処理後のID変換処理(失敗例)の全体の流れを示すシーケンス図である。
【図33】本実施形態に係るデータ管理システムが行うID更新処理後のID変換処理(失敗例)で送受信されるメッセージ例を示す図である。
【発明を実施するための形態】
【0012】
まず、本実施形態に係る分散ID管理システム5の構成について説明する。
図1は、本実施形態に係る分散ID管理システム5の全体の構成例を説明するための図である。
【0013】
図1に示すように、本実施形態に係る分散ID管理システム5は、クライアント装置1と接続されたゲートウェイ装置2と、そのゲートウェイ装置2と通信ネットワーク4を介して接続された複数のデータ管理装置3(3A,3B,3C,3D,3E,…)とを含んで構成される。このデータ管理装置3は、図1に示したように5つに限定されず、複数のデータ管理装置3であればよい。また各データ管理装置3(3A,3B,3C,3D,3E,…)それぞれは、通信ネットワーク4を介して通信可能に接続されている。
【0014】
クライアント装置1は、分散ID管理システム5(ゲートウェイ装置2)に対して、後記するID登録要求メッセージ10(図8(a)参照)、ID変換要求メッセージ40(図17(a)参照)、ID更新要求メッセージ60(図22(a)参照)を送信し、その結果を受信する装置である。また、ゲートウェイ装置2は、クライアント装置1から上記の各メッセージを受信し、そのメッセージを担当するデータ管理装置3に振り分けて送信し、データ管理装置3からの処理結果を、クライアント装置1へ返信する装置である。データ管理装置3は、ゲートウェイ装置2から取得したメッセージに従い、データの登録、変換、更新等を行う装置である。次に、各装置の詳細な構成について説明する。
【0015】
≪クライアント装置≫
図2は、本実施形態に係るクライアント装置1の構成例を示す機能ブロック図である。図2に示すように、クライアント装置1は、制御部110と、入出力部130と、送受信部140と、記憶部150とを含んで構成される。
【0016】
また、制御部110は、ID登録要求部111と、ID変換要求部112と、ID更新要求部113とを備えている。
【0017】
ID登録要求部111は、後記するID登録要求メッセージ10(図8(a)参照)を生成し、そのID登録要求メッセージ10を、送受信部140を介して、ゲートウェイ装置2に送信する。また、ID登録要求部111は、ID登録応答メッセージ11(図8(b)参照)を、送受信部140を介して受信する。
【0018】
ID変換要求部112は、後記するID変換要求メッセージ40(図17(a)参照)を生成し、そのID変換要求メッセージ40を、送受信部140を介して、ゲートウェイ装置2に送信する。また、ID変換要求部112は、ID変換応答メッセージ41(図17(b)参照)を、送受信部140を介して受信する。
【0019】
ID更新要求部113は、後記するID更新要求メッセージ60(図22(a)参照)を生成し、そのID更新要求メッセージ60を、送受信部140を介して、ゲートウェイ装置2に送信する。また、ID更新要求部113は、ID更新応答メッセージ61(図22(b)参照)を、送受信部140を介して受信する。
【0020】
入出力部130は、不図示のキーボードやマウス等の入力手段や、モニタ等の出力手段と接続され、利用者から入力手段を介して入力情報を受け付け、その入力情報や処理結果をモニタ等の出力手段に出力する処理を行う。
【0021】
送受信部140は、TCP/IP(Transmission Control Protocol/Internet Protocol)通信を可能とするプロトコルスタックや、プロセス間通信を可能とするモジュール等のように、ネットワークや通信路を介して送受信する情報の制御を行う。
【0022】
記憶部150は、ゲートウェイ情報記憶領域100を含んで構成される。ゲートウェイ情報記憶領域100は、ID登録要求メッセージ10、ID変換要求メッセージ40、ID更新要求メッセージ60の送信先となるゲートウェイ装置2の接続情報(例えば、IPアドレスとポート番号の組)を記憶する領域である。この接続情報は、前もって静的に登録するようにしてもよいし、ゲートウェイ装置2や他の装置からの情報に基づいて動的に接続先を決定し記憶するようにしてもよい。
【0023】
≪ゲートウェイ装置≫
図3は、本実施形態に係るゲートウェイ装置2の構成例を示す機能ブロック図である。図3に示すように、ゲートウェイ装置2は、制御部210と、入出力部230と、送受信部240と、記憶部250とを含んで構成される。
【0024】
また、制御部210は、ノード管理部211と、ノード決定部212と、ID登録転送部213と、ID変換転送部214と、ID更新転送部215とを備えている。
【0025】
ノード管理部211は、データ管理装置3の後記するノード管理部311と相互通信し、後記するノード情報記憶領域200内のノードの接続情報(例えば、IPアドレスとポート番号の組)を同期する処理を行う。具体的には、ノード管理部211は、新たにデータ管理装置3が追加された場合には、その接続情報をノード情報記憶領域200内に追加し、あるデータ管理装置3が削除された場合には、そのデータ管理装置3の接続情報を削除する。
【0026】
ノード決定部212は、他の処理部から検索キーを取得した場合に、ノード情報記憶領域200に格納されたノード情報に基づいて、検索キーが担当するノード(データ管理装置3)を決定し、そのノードの接続情報を、要求のあった処理部に返す処理を行う。以下、具体的にノード決定部212が行う処理を説明する。
【0027】
図4(a)は、本実施形態に係るノード情報記憶領域200に格納されるノード情報のデータ構成の一例を示す図である。また、図4(b)は、本実施形態に係るノード決定部212による、データの振り分け先の決定処理を説明するための図である。
【0028】
図4(a)に示すように、ノード情報記憶領域200のノード情報には、各データ管理装置3について、ノードIDと、ノード名と、接続情報(例えば、IPアドレスとポート番号の組)とが記憶されている。このノードIDは、ノード決定部212が、例えば、接続情報を所定のハッシュ関数に導入することにより得られたハッシュ値であり、図4(b)に示すリング(閉じたハッシュ空間)400上の値に対応付けられる。なお、このノード情報記憶領域200内のノード情報は、ゲートウェイ装置2のノード管理部211およびデータ管理装置3のノード管理部311により、ゲートウェイ装置2とすべてのデータ管理装置3との間で定期的に同期をとることで、同じノード情報が共有されている。
【0029】
ノード決定部212は、図4(b)に示すように、例えば、検索キーとして"0@D0"を取得すると、その検索キーをハッシュ関数Hに導入しハッシュ値を計算する。そして、ノード決定部212は、その計算したハッシュ値(図4(b)では、「2133」)の値より大きく、最も近いノードID(ハッシュ値)である「3050」のデータ管理装置Aを、その検索キーのデータの振り分け先のノードとして決定する。
なお、このとき、ノード決定部212は、振り分け先として決定したノードの次に値が近いノードID(ハッシュ値)を持つノード(ここでは、例えば、ノードIDが「5988」のデータ管理装置3B)をさらに選択(さらに、次に値の近いノードIDを含むようにして、1つ以上選択するようにしてもよい)することで、後記する各メッセージの送信先を冗長化し、システムの信頼性を高めることも可能である。
【0030】
図3に戻り、ID登録転送部213は、受信したID登録要求メッセージ10(図8(a)参照)の先頭の識別子(例えば、"0")とドメイン(例えば、"D0")を結合した値としてインデックスキー(例えば、"0@D0")を生成し、ノード決定部212に出力する。そして、ID登録転送部213は、ノード決定部212が決定した担当ノードとなるデータ管理装置3に、送受信部240を介してID登録要求メッセージ10を送信する。ここで、担当ノードとは、ID登録要求メッセージ10の先頭の識別子とドメインを結合したインデックスキーをkeyとする後記するインデックスを保存するノード(データ管理装置3)のことをいう。また、ID登録転送部213は、送受信部240を介して、担当ノードからID登録応答メッセージ11(図8(b)参照)を受信し、クライアント装置1に送信する。
【0031】
ID変換転送部214は、受信したID変換要求メッセージ40(図17(a)参照)の変換元識別子(例えば、"0")と変換元ドメイン(例えば、"D0")を結合した値としてインデックスキー(例えば、"0@D0")を生成し、ノード決定部212に出力する。そして、ID変換転送部214は、ノード決定部212が決定したインデックスノード(インデックスを保存するノードであり、詳細は後記する)となるデータ管理装置3に、送受信部240を介して、ID変換要求メッセージ40を送信する。また、ID変換転送部214は、送受信部240を介して、インデックスノードからID変換応答メッセージ41(図17(b)参照)を受信し、クライアント装置1に送信する。
【0032】
ID更新転送部215は、受信したID更新要求メッセージ60(図22(a)参照)の更新対象識別子(例えば、"0")と更新対象ドメイン(例えば、"D0")を結合した値としてインデックスキー(例えば、"0@D0")を生成し、ノード決定部212に出力する。そして、ID更新転送部215は、ノード決定部212が決定したインデックスノードとなるデータ管理装置3に、送受信部240を介して、ID更新要求メッセージ60を送信する。また、ID更新転送部215は、送受信部240を介して、インデックスノードからID更新応答メッセージ61(図22(b)参照)を受信し、クライアント装置1に送信する。
【0033】
入出力部230は、不図示のキーボードやマウス等の入力手段や、モニタ等の出力手段と接続され、利用者から入力手段を介して入力情報を受け付け、その入力情報や処理結果をモニタ等の出力手段に出力する処理を行う。
【0034】
送受信部240は、TCP/IP通信を可能とするプロトコルスタックや、プロセス間通信を可能とするモジュール等のように、ネットワークや通信路を介して送受信する情報の制御を行う。
【0035】
記憶部250は、前記したノード情報記憶領域200(図4(a)参照)を含んで構成される。
【0036】
なお、本実施形態ではゲートウェイ装置2をクライアント装置1やデータ管理装置3とは独立した装置として扱っているが、本発明はこのような態様に限定されない。ゲートウェイ装置2を構成する各機能をクライアント装置1またはデータ管理装置3の中に実装することで、ゲートウェイ装置2を排した分散ID管理システム5を実現することも可能である。
【0037】
≪データ管理装置≫
図5は、本実施形態に係るデータ管理装置3の構成例を示す機能ブロック図である。
図5に示すように、データ管理装置3は、制御部310と、入出力部330と、送受信部340と、記憶部350とを含んで構成される。
【0038】
また、制御部310は、ノード管理部311と、ノード決定部312と、ルートキー生成部313と、ID登録処理部314と、ID変換処理部315と、ID更新処理部316と、ID取得処理部317と、インデックス登録処理部318と、ルート情報登録処理部319と、ルート情報更新処理部320と、データ管理部321とを備えている。
【0039】
ノード管理部311およびノード決定部312の処理は、ゲートウェイ装置2のノード管理部211およびノード決定部212と同様であるので、説明を省略する。
【0040】
ルートキー生成部313は、擬似乱数生成器等を利用して、ルートキー(例えば、"R0")を生成する。ここでルートキーとは、分散ID管理システム5内で管理対象を一意に特定するための識別子を指すものである。
【0041】
ID登録処理部314は、ID登録処理の全般を制御する。以下、具体的に説明する。
ID登録処理部314は、識別子とドメインとを結合した値(例えば、"0@D0")をインデックスキーとして生成し、ノード決定部312に出力する。そして、ID登録処理部314は、ノード決定部312が決定したインデックスノードとなるデータ管理装置3に、送受信部340を介して、インデックス登録要求メッセージ30(後記する図8(e)参照)を送信する。
また、ID登録処理部314は、ルートキー(例えば、"R0")とドメイン(例えば、、"D0")とを結合した値(例えば、"R0@D0")をサブルートキーとして生成し、ノード決定部312に出力する。そして、ID登録処理部314は、ノード決定部312が決定したルートノードとなるデータ管理装置3に、送受信部340を介して、ルート情報登録要求メッセージ20(後記する図8(c)参照)を送信する。ここでルートノードとは、サブルートキーをkeyとする後記するルート情報を保存するノード(データ管理装置3)のことをいう。そして、ID登録処理部314は、ルートノードからルート情報登録応答メッセージ21(後記する図8(d)参照)を受信すると、ID登録応答メッセージ11(後記する図8(b)参照)を生成し、ゲートウェイ装置2へ送信する。
【0042】
ID変換処理部315は、ID変換処理の全般を制御する。以下、具体的に説明する。
ID変換処理部315は、ID変換要求メッセージ40(図17(a)参照)から、変換元識別子(例えば、"0")と変換元ドメイン(例えば、"D0")とを結合した値(例えば、"0@D0")としてインデックスキーを生成する。そして、ID変換処理部315は、生成したインデックスキー("0@D0")と、変換元日時(例えば、"T1")とを、データ管理部321に出力することにより、データ記憶領域330内のインデックスから、ルートキー(例えば、"R0")を取得する。
ID変換処理部315は、取得したルートキー("R0")と変換先ドメイン(例えば、"D1")を結合した値(例えば、"R0@D1")としてサブルートキーを生成し、ノード決定部312が決定したルートノードとなるデータ管理装置3に、ID取得要求メッセージ50(後記する図17(c)参照)を送信する。
また、ID変換処理部315は、ルートノードから、送受信部340を介して、ID取得応答メッセージ51(後記する図17(d)参照)を受信する。そして、ID変換処理部315は、ID取得応答メッセージ51から取得したID(識別子)を含む、ID変換応答メッセージ41(図17(b)参照)を生成し、送受信部340を介して、ゲートウェイ装置2に送信する。
【0043】
ID更新処理部316は、ID更新処理の全般を制御する。以下、具体的に説明する。
ID更新処理部316は、ID更新要求メッセージ60(図22(a)参照)から、更新対象識別子(例えば、"0")と更新対象ドメイン(例えば、"D0")とを結合した値(例えば、"0@D0")としてインデックスキーを生成する。そして、ID更新処理部316は、生成したインデックスキー("0@D0")と、更新対象日時(例えば、"T1")とを、データ管理部321に出力することにより、ルートキー(例えば、"R0")を取得する。
また、ID更新処理部316は、データ管理部321を介して、当該行の失効日時("∞")を更新日時(例えば、"T2")に更新する。
次に、ID更新処理部316は、ルートキー("R0")と更新対象ドメイン("D0")とを結合した値(例えば、"R0@D0")としてサブルートキーを生成し、ノード決定部312が決定したルートノードとなるデータ管理装置3に、ルート情報更新要求メッセージ70(後記する図22(c)参照)を送信する。
ID更新処理部316は、ルートノードから、送受信部340を介して、ルート情報更新応答メッセージ71(後記する図22(d)参照)を受信する。
また、ID更新処理部316は、更新後識別子(例えば、"9")と更新対象ドメイン("D0")とを結合した値(例えば、"9@D0")としてインデックスキーを生成し、ノード決定部312が決定したインデックスノードとなるデータ管理装置3に、インデックス登録要求メッセージ30(図22(e)参照)を送信する。
そして、ID更新処理部316は、インデックスノードから、送受信部340を介して、インデックス登録応答メッセージ31(図22(f)参照)を受信する。続いて、ID更新処理部316は、ID更新応答メッセージ61(図22(b)参照)を生成し、送受信部340を介して、ゲートウェイ装置2に送信する。
【0044】
ID取得処理部317は、ID取得要求メッセージ50(図17(c)参照)から、サブルートキー(例えば、"R0@D1")と、変換先日時(例えば、"T1")とを取得し、データ管理部321に出力することにより、変換先となる識別子(例えば、"a")を取得する。そして、ID取得処理部317は、変換先となる識別子("a")を含むID取得応答メッセージ51(図17(d)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信する。
【0045】
インデックス登録処理部318は、受信したインデックス登録要求メッセージ30(図8(e)参照)に基づいて、インデックス登録処理を行い、当該処理結果(例えば、"success")を含むインデックス登録応答メッセージ31(図8(f)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信する。
【0046】
ルート情報登録処理部319は、受信したルート情報登録要求メッセージ20(例えば、図8(c)参照)に基づいて、ルート情報登録処理を行い、当該処理結果(例えば、"success")を含むルート情報登録応答メッセージ21(図8(d)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信する。
【0047】
ルート情報更新処理部320は、受信したルート情報更新要求メッセージ70(図22(c)参照)に基づいて、ルート情報更新処理を行い、当該処理結果(例えば、"success")を含むルート情報更新応答メッセージ71(図22(d)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信する。
【0048】
データ管理部321は、他の処理部からの要求を受けて、データ記憶領域300内のデータの作成、検索、更新、削除等を行う。
【0049】
入出力部330は、不図示のキーボードやマウス等の入力手段や、モニタ等の出力手段と接続され、利用者から入力手段を介して入力情報を受け付け、その入力情報や処理結果をモニタ等の出力手段に出力する処理を行う。
【0050】
送受信部340は、TCP/IP通信を可能とするプロトコルスタックや、プロセス間通信を可能とするモジュール等のように、ネットワークや通信路を介して送受信する情報の制御を行う。
【0051】
記憶部350は、前記したノード情報記憶領域200(図4(a)参照)と、データ記憶領域300とを含んで構成される。
このデータ記憶領域300は、key、登録日時、失効日時、valueの4つの組のデータが、インデックス若しくはルート情報として記憶される領域である。詳細は後記において説明する。
【0052】
≪ハードウェア構成≫
図6は、本実施形態に係る各装置(クライアント装置1、ゲートウェイ装置2、データ管理装置3)のハードウェア構成図である。
【0053】
図6に示すように、本実施形態に係る各装置は、一般的なコンピュータ1000により実現される。
コンピュータ1000は、CPU1001と、メモリ1002と、ハードディスク等の外部記憶装置1003と、通信ネットワークに接続するためのNIC(Network Interface Card)等の送受信装置1004と、モニタ等の出力装置1005と、キーボードやマウス等の入力装置1006と、CD-ROMやDVD-ROM等の可搬性を有する記憶媒体1008から情報を読み取る読取装置1007とを含んで構成される。
【0054】
そして、各装置の記憶部内の記憶領域は、CPU1001がメモリ1002または外部記憶装置1003を利用することにより実現可能となる。また、各制御部は、外部記憶装置1003に記憶されている所定のプログラムをメモリ1002にロードすることによりCPU1001で実現可能となる。この所定のプログラムは、読取装置1007を介して記憶媒体1008から取得してもよいし、送受信装置1004を介してネットワークから外部記憶装置1003にダウンロードされ、メモリ1002にロードされてCPU1001により実行されるようにしてもよい。また、読取装置1007を介して記憶媒体1008から、あるいは、送受信装置1004を介してネットワークから、メモリ1002に直接ロードされ、CPU1001により実行されるようにしてもよい。
【0055】
≪分散ID管理方法≫
次に、本実施形態に係る分散ID管理システム5による分散ID管理方法について説明する。具体的には、分散ID管理システム5による、(1)ID登録処理、(2)ID変換処理、(3)ID更新処理について説明する。
(1)ID登録処理は、クライアント装置1から取得したID登録要求メッセージ10(図8(a)参照)に含まれる「識別子」「ドメイン」「登録日時」を含む登録情報を、ゲートウェイ装置2を介して、インデックスおよびルート情報という保存形式により、分散させてデータ管理装置3に保存する処理である。
(2)ID変換処理は、クライアント装置1から取得したID変換要求メッセージ40(図17(a)参照)に含まれる「変換元識別子」「変換元ドメイン」「変換元日時」「変換先ドメイン」「変換先日時」のパラメータを用いて、「変換元識別子」を「変換先識別子」に変換する、つまり、「変換先識別子」を検索する処理である。
(3)ID更新処理は、クライアント装置1から取得したID更新要求メッセージ60(図22(a)参照)に基づき、ある「更新対象ドメイン」における「更新日時」以降の識別子を、それまで登録されていた「更新対象識別子」から新たな識別子である「更新後識別子」に更新する処理である。
以下、各処理について詳細に説明する。
【0056】
<ID登録処理>
まず、図7〜図15を参照して、クライアント装置1がゲートウェイ装置2に対してIDの登録を要求(ID登録要求)した際に、ゲートウェイ装置2およびデータ管理装置3が実行するID登録処理について説明する。
【0057】
ここでは、クライアント装置1が要求するID登録処理の例として、ドメイン"D0"の日時"T0"における識別子"0"と、ドメイン"D1"の日時"T0"における識別子"a"が、同じ管理対象を示す識別子であることを分散ID管理システム5に登録する処理を例に説明する。
【0058】
(ID登録処理の全体の流れ)
図7は、本実施形態に係る分散ID管理システム5が行うID登録処理の全体の流れを示すシーケンス図である。
【0059】
まず、クライアント装置1は、ID登録要求メッセージ10をゲートウェイ装置2へ送信する(ステップS101)。
【0060】
図8(a)は、ID登録要求メッセージ10を例示する図である。図8(a)に示すように、ID登録要求メッセージ10は、「識別子」,「ドメイン」,「登録日時」の3つのパラメータで1つの登録情報を示し、符号10−1は、当該ID登録要求が、ドメイン"D0"の登録日時"T0"における識別子"0"を含むことを示し、符号10−2は、当該ID登録要求が、ドメイン"D1"の登録日時"T0"における識別子"a"を含むことを示す。そして、このID登録要求メッセージ10が要求するID登録処理では、ドメイン"D0"の登録日時"T0"における識別子"0"と、ドメイン"D1"の登録日時"T0"における識別子"a"が、同じ管理対象を示す識別子であることを登録する処理を行う。
なお、本例では、「識別子」,「ドメイン」,「登録日時」の組となる登録情報について、2組の例を説明するが、2組に限定されるものではなく、3組以上の登録情報を同時に登録するようにしてもよい。
また、図7以下に示す図において、例えば、日時"T0"におけるドメイン"D0"の識別子"0"の情報を、[0@D0:T0]のように表記するものとする。
【0061】
図7に戻り、次に、ゲートウェイ装置2は、担当ノードの決定処理を行う(ステップS102)。ここで、担当ノードとは、受信したID登録要求メッセージ10の先頭のインデックスキー(ここでは、先頭の識別子"0"とドメイン"D0"とを結合した値として"0@D0")をkeyとする後記するインデックスを保存するノード(データ管理装置3)を指す。ゲートウェイ装置2のノード決定部212は、インデックスキー"0@D0"をキーとして、コンシステントハッシュ法により、担当ノードを決定する。ここでは、ノード決定部212が、データ管理装置3Aを担当ノードとして決定したものとする。
【0062】
続いて、ゲートウェイ装置2は、ID登録要求メッセージ10を、担当ノードとして決定したデータ管理装置3Aに送信する(ステップS103)。
【0063】
データ管理装置3Aは、ID登録要求メッセージ10を受信すると、ルートキーの生成処理を行う(ステップS104)。ルートキーは、例えば、ドメイン"D0"の日時"T0"における識別子"0"と、ドメイン"D1"の日時"T0"における識別子"a"とが指し示す同一の管理対象を、分散ID管理システム5内で一意に特定するための識別子を指すものである。ここでは、例えば、データ管理装置3Aのルートキー生成部313が、擬似乱数生成器等を用いてルートキーとして"R0"を生成する。
【0064】
次に、データ管理装置3Aは、インデックスの保存(登録)処理を行う(ステップS105)。ここで、インデックスとは、インデックスキー(識別子とドメインの結合値。例えば、"0@D0")と、登録日時(例えば、"T0")と、ルートキー(例えば、"R0")とを含む情報を指すものである(例えば、後記する図9(a)参照)。
具体的には、まず、データ管理装置3Aは、識別子"0"、ドメイン"D0"に関するインデックスを保存するインデックスノード(データ管理装置3)を決定する。インデックスノードの決定処理は、インデックスキー("0@D0")を検索キーとして、担当ノードの決定処理と同様にノード決定部312により実行される。そして、ノード決定部312は、コンシステントハッシュ法を用いて、データ管理装置3A自身をインデックスノードとして決定する。そして、データ管理装置3Aは、自身のデータ記憶領域300A(300)に対して、インデックスの保存処理を行う。
【0065】
図9(a)は、インデックスが保存(登録)されたデータ管理装置3Aのデータ記憶領域300Aの例を示す。このデータ記憶領域300Aに保存されたインデックスには、keyとしてのインデックスキー"0@D0"、登録日時としての"T0"、失効日時として("0@D0"がまだ失効されていないことを示す)"∞"、valueとしてのルートキー"R0"がそれぞれ格納される。
【0066】
図7に戻り、次に、データ管理装置3Aは、ドメイン"D0"に関するルートノードの決定処理を行う(ステップS106)。ここでルートノードとは、サブルートキー(ルートキーとドメインの結合値。例えば、"R0@D0")をkeyとする後記するルート情報を保存すべきノード(データ管理装置3)を指す。このルートノード決定処理は、サブルートキーを検索キーとして、ノード決定部312が、コンシステントハッシュ法により、ルートノードを決定する。ここでは、例えば、サブルートキー"R0@D0"に対応するノードとしてデータ管理装置3Bが、ルートノードして決定されたものとする。
【0067】
続いて、データ管理装置3Aは、ルート情報登録要求メッセージ20a(20)を、ルートノードとして決定したデータ管理装置3Bに送信する(ステップS107)。
【0068】
図8(c)は、ルート情報登録要求メッセージ20を例示する図である。図8(c)に示すように、ルート情報登録要求メッセージ20は、「サブルートキー」,「識別子」,「登録日時」のパラメータを含んで構成される。図8(c)に例示するルート情報登録要求メッセージ20a(20)は、ルートキー"R0"と、ドメイン"D0"の登録日時"T0"における識別子"0"とを対応付けて管理するように要求するものである。
【0069】
図7に戻り、ルート情報登録要求メッセージ20a(20)を受信したデータ管理装置3Bは、ルート情報の保存(登録)処理を行う(ステップS108)。ここで、ルート情報とは、サブルートキー(ルートキーとドメインの結合値。例えば、"R0@D0")と、登録日時(例えば、"T0")と、識別子(例えば、"0")とを含む情報を指すものである。
【0070】
図9(b)は、ルート情報が保存(登録)されたデータ管理装置3Bのデータ記憶領域300Bの例を示す。このデータ記憶領域300Bに保存されたルート情報には、keyとしてのサブルートキー"R0@D0"、登録日時としての"T0"、失効日時として("R0@D0"がまだ失効されていないことを示す)"∞"、valueとしての識別子"0"がそれぞれ格納される。
【0071】
図7に戻り、データ管理装置3Bは、ルート情報登録応答メッセージ21a(21)を、データ管理装置3Aに送信する(ステップS109)。図8(d)に示すように、ルート情報登録応答メッセージ21は、処理結果を示すパラメータで構成される。ここでは、ルート情報登録応答メッセージ21aとして、ルート情報の登録処理が成功したことを示す"success"が付されるものとする。
【0072】
次に、データ管理装置3Aは、識別子"a"、ドメイン"D1"に関するインデックスノードの決定処理を行う(ステップS110)。ここでは、例えば、インデックスキー"a@D1"に対応するノードであるデータ管理装置3Cが、ノード決定部312によりインデックスノードとして決定される。
【0073】
続いて、データ管理装置3Aは、インデックス登録要求メッセージ30a(30)を、インデックスノードとして決定したデータ管理装置3Cに送信する(ステップS111)。
【0074】
図8(e)は、インデックス登録要求メッセージ30を例示する図である。図8(e)に示すように、インデックス登録要求メッセージ30は、「インデックスキー」,「ルートキー」,「登録日時」のパラメータを含んで構成される。図8(e)に例示するインデックス登録要求メッセージ30a(30)は、ルートキー"R0"と、ドメイン"D1"の登録日時"T0"における識別子"a"とを対応付けて管理するように要求するものである。
【0075】
図7に戻り、インデックス登録要求メッセージ30a(30)を受信したデータ管理装置3Cは、インデックスの保存(登録)処理を行う(ステップS112)。
【0076】
図9(c)は、インデックスが保存(登録)されたデータ管理装置3Cのデータ記憶領域300Cの例を示す。このデータ記憶領域300Cに保存されたインデックスには、keyとしてのインデックスキー"a@D1"、登録日時としての"T0"、失効日時として("a@D1"がまだ失効されていないことを示す)"∞"、valueとしてのルートキー"R0"がそれぞれ格納される。
【0077】
図7に戻り、データ管理装置3Cは、インデックス登録応答メッセージ31a(31)を、データ管理装置3Aに送信する(ステップS113)。図8(f)に示すように、インデックス登録応答メッセージ31は、処理結果を示すパラメータで構成される。ここでは、インデックス登録応答メッセージ31a(31)として、インデックスの登録処理が成功したことを示す"success"が付されるものとする。
【0078】
図7に戻り、データ管理装置3Aは、ドメイン"D1"に関するルートノードの決定処理を行う(ステップS114)。ここでは、ノード決定部312が、サブルートキー"R0@D1"に対応するノードとして、データ管理装置3Dをルートノードとして決定したものとする。
【0079】
続いて、データ管理装置3Aは、ルート情報登録要求メッセージ20b(20)を、ルートノードとして決定したデータ管理装置3Dに送信する(ステップS115)。
【0080】
ルート情報登録要求メッセージ20bは、図8(g)に示すように、サブルートキー"R0@D1"と、識別子"a"と、登録日時"T0"とを含んで構成される。そして、このルート情報登録要求メッセージ20bは、ルートキー"R0"と、ドメイン"D1"の登録日時"T0"における識別子"a"とを対応付けて管理するように要求するものである。
【0081】
図7に戻り、ルート情報登録要求メッセージ20b(20)を受信したデータ管理装置3Dは、ルート情報の保存(登録)処理を行う(ステップS116)。
【0082】
図9(d)は、ルート情報が保存(登録)されたデータ管理装置3Dのデータ記憶領域300Dの例を示す。このデータ記憶領域300Dに保存されたルート情報には、keyとしてサブルートキー"R0@D1"、登録日時としての"T0"、失効日時として("R0@D1"がまだ失効されていないことを示す)"∞"、valueとしての識別子"a"がそれぞれ格納される。
【0083】
図7に戻り、データ管理装置3Dは、ルート情報登録応答メッセージ21b(21)を、データ管理装置3Aに送信する(ステップS117)。図8(h)に示すように、ルート情報登録応答メッセージ21bには、ルート情報の登録処理が成功したことを示す"success"が付される。
【0084】
図7に戻り、ルート情報登録応答メッセージ21b(21)を受信したデータ管理装置3Aは、ID登録応答メッセージ11をゲートウェイ装置2に送信する(ステップS118)。図8(b)に示すように、ID登録応答メッセージ11には、ID登録処理が成功したことを示す"success"が付される。
【0085】
図7に戻り、ゲートウェイ装置2は、ID登録応答メッセージ11をクライアント装置1に送信し(ステップS119)、処理を終える。
【0086】
このID登録処理により、各データ管理装置3のデータ記憶領域300には、図9(a)〜(d)に示すようなインデックスおよびルート情報が格納される。これらの情報は、図9(e)に示すような日時"T0"における変換テーブルを仮想的に表現したものとみなすことができる。例えば、図9(e)の一行目のデータは、ドメイン"D0"の列に識別子"0"が格納され、ドメイン"D1"の列に識別子"a"が格納されているが、これは、日時"T0"において、ある管理対象が、ドメイン"D0"では識別子"0"であることを示し、ドメイン"D1"では識別子"a"であることを示す。
【0087】
次に、このID登録処理におけるゲートウェイ装置2およびデータ管理装置3が行う処理についてさらに詳細に説明する。
【0088】
(ID登録処理におけるゲートウェイ装置の処理)
最初に、図7のID登録処理における、ゲートウェイ装置2の処理を詳細に説明する。図10は、本実施形態に係るID登録処理におけるゲートウェイ装置2の処理の流れを示すフローチャートである。
【0089】
まず、ゲートウェイ装置2の送受信部240が、ID登録要求メッセージ10(図8(a)参照)をクライアント装置1から受信し、受信したID登録要求メッセージ10をID登録転送部213に出力する(ステップS121)。
【0090】
ID登録転送部213は、受信したID登録要求メッセージ10の先頭の識別子("0")とドメイン("D0")を結合した値としてインデックスキー"0@D0"を生成し、ノード決定部212に出力する(ステップS122)。
【0091】
ノード決定部212が、コンシステントハッシュ法により担当ノードを決定し、決定した担当ノードの接続情報を、記憶部250内のノード情報記憶領域200から取得して、ID登録転送部213に出力する(ステップS123)。
【0092】
ID登録転送部213が、送受信部240を介してID登録要求メッセージ10(図8(a)参照)を担当ノードに送信する(ステップS124)。
【0093】
そして、ID登録転送部213が、送受信部240を介して、担当ノードからID登録応答メッセージ11(図8(b)参照)を受信する(ステップS125)。
【0094】
続いて、ID登録転送部213は、送受信部240を介して、ID登録応答メッセージ11を、クライアント装置1に送信して処理を終える(ステップS126)。
【0095】
(ノード決定部によるノード決定処理)
次に、ノード決定部212,312によるノード決定処理について説明する(適宜図4参照)。図11は、本実施形態に係るノード決定処理の流れを示すフローチャートである。なお、このノード決定部212,312は、ゲートウェイ装置2およびデータ管理装置3の双方の存在し、同様の処理を行うものである。また、ノード決定部212,312が参照するノード情報記憶領域200も同じ情報がゲートウェイ装置2およびデータ管理装置3の双方に記憶される。
【0096】
まず、ノード決定部212,312が、検索キー(ここでは、「q」とする)を入力として呼び出される(ステップS131)。
【0097】
次に、ノード決定部212,312が、ハッシュ関数Hに基づき、検索キーqのハッシュ値H(q)を計算する(ステップS132)。
【0098】
続いて、ノード決定部212,312は、ノード情報記憶領域200のノード情報に基づくリング(図4(b)の閉じたハッシュ空間)400を参照し、ハッシュ値H(q)より大きい値で最も近いハッシュ値(ノードID)のノードを、その検索キーqに関するデータの振り分け先のノードとして決定する(ステップS133)。
【0099】
そして、ノード決定部212,312は、決定したノードの接続情報を、ノード情報記憶領域200を参照して取得し、呼出し元に出力し処理を終える(ステップS134)。
【0100】
(ID登録処理における担当ノードの処理)
次に、図7のID登録処理における、担当ノードであるデータ管理装置3Aの処理を詳細に説明する。図12および図13は、本実施形態に係るID登録処理における担当ノード(データ管理装置3A)の処理の流れを示すフローチャートである。
【0101】
図12に示すように、まず、担当ノードであるデータ管理装置3(ここでは、データ管理装置3A)の送受信部340が、ゲートウェイ装置2からID登録要求メッセージ10(図8(a)参照)を受信し、受信したID登録要求メッセージ10をID登録処理部314に出力する(ステップS141)。
【0102】
次に、ルートキー生成部313が、ルートキー(ここでは、「r」とする)を生成する(ステップS142)。例えば、図7のステップS104のように、データ管理装置3Aのルートキー生成部313が、擬似乱数生成器等を用いてルートキーrとして"R0"を生成する。
【0103】
続いて、ID登録処理部314は、ID登録要求メッセージ10内に、識別子,ドメイン,登録日時の組が存在するか否かを判定する(ステップS143)。そして、ID登録処理部314は、識別子,ドメイン,登録日時の組が存在しない場合には(ステップS143→No)、図13のステップS152に進む。一方、識別子,ドメイン,登録日時の組が存在する場合には(ステップS143→Yes)、識別子,ドメイン,登録日時の組のうちの1つを選択し、次のステップS144に進む。
【0104】
ステップS144において、ID登録処理部314は、選択した1組の情報について、識別子とドメインとを結合した値(例えば、"0@D0")をインデックスキーとして生成し、ノード決定部312に出力する。
【0105】
次に、ノード決定部312は、コンシステントハッシュ法によりインデックスノードとなるノードを決定し、決定したインデックスノードの接続情報を、記憶部350内のノード情報記憶領域200から取得して、ID登録処理部314に出力する(ステップS145)。
【0106】
そして、ID登録処理部314は、インデックスキー、ルートキー、登録日時のパラメータを含んだインデックス登録要求メッセージ30(図8(e)参照)を、送受信部340を介して、インデックスノードに送信する(ステップS146)。
【0107】
続いて、ID登録処理部314は、インデックスノードからインデックス登録応答メッセージ31(図8(f)参照)を受信する(ステップS147)。
【0108】
図13に移り、ID登録処理部314は、ルートキーとドメインとを結合した値(例えば、"R0@D0")をサブルートキーとして生成し、ノード決定部312に出力する(ステップS148)。
【0109】
次に、ノード決定部312は、コンシステントハッシュ法によりルートノードを決定し、決定したルートノードの接続情報を、記憶部350内のノード情報記憶領域200から取得して、ID登録処理部314に出力する(ステップS149)。
【0110】
続いて、ID登録処理部314は、サブルートキー、識別子、登録日時のパラメータを含んだルート情報登録要求メッセージ20(図8(c)(g)参照)を、送受信部340を介して、ルートノードに送信する(ステップS150)。
【0111】
そして、ID登録処理部314は、ルートノードからルート情報登録応答メッセージ21(図8(d)(h)参照)を受信する(ステップS151)。
【0112】
図12のステップS143に戻り、ID登録処理部314は、識別子,ドメイン,登録日時の組が存在しない場合に(ステップS143→No)、図13のステップS152に進む。そして、ID登録処理部314は、全ての処理が成功したか否かを判定する(ステップS152)。この判定は、例えば、ID登録処理部314が、所定時間以内に、要求メッセージに対する正しい応答がなされたか否かで判定する。そして、ID登録処理部314は、全ての処理が成功した場合には(ステップS152→Yes)、送受信部340を介して、ゲートウェイ装置2へID登録応答メッセージ11(図8(b)参照)を送信して処理を終了する(ステップS153)。一方、全ての処理が成功した場合でないときは(ステップS152→No)、ID登録処理部314は、送受信部340を介して、ゲートウェイ装置2にエラーメッセージを送信して処理を終了する(ステップS154)。
【0113】
(インデックス保存処理)
次に、図7のID登録処理のステップS112で行われる、データ管理装置3(ここでは、データ管理装置3C)のインデックスの保存(登録)処理を詳細に説明する。図14は、本実施形態に係るインデックス保存処理におけるデータ管理装置3の処理の流れを示すフローチャートである。
【0114】
まず、送受信部340が、他のデータ管理装置3からインデックス登録要求メッセージ30を受信すると、その受信したインデックス登録要求メッセージ30(図8(e)参照)をインデックス登録処理部318に出力する(ステップS161)。
【0115】
次に、インデックス登録処理部318は、インデックス登録要求メッセージ30から、インデックスキー(ここでは"k"とする),ルートキー(ここでは"r"とする),登録日時(ここでは"t"とする)を取得し、データ管理部321に出力する(ステップS162)。
【0116】
データ管理部321は、自身のデータ記憶領域300のインデックスに、keyとしてインデックスキー"k"、登録日時"t"、失効日時として"∞"、valueとしてルートキー"r"となる行と追加する(ステップS163)。
【0117】
そして、インデックス登録処理部318は、インデックスが保存されたことを示す"success"を含むインデックス登録応答メッセージ31(図8(f)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信して処理を終える(ステップS164)。
【0118】
(ルート情報保存処理)
次に、図7のID登録処理のステップS108,S116で行われる、データ管理装置3(ここでは、データ管理装置3B,3D)のルート情報の保存(登録)処理を詳細に説明する。図15は、本実施形態に係るルート情報保存処理におけるデータ管理装置3の処理の流れを示すフローチャートである。
【0119】
まず、送受信部340が、他のデータ管理装置3からルート情報登録要求メッセージ20(図8(c)(g)参照)を受信すると、その受信したルート情報登録要求メッセージ20をルート情報登録処理部319に出力する(ステップS171)。
【0120】
次に、ルート情報登録処理部319は、ルート情報登録要求メッセージ20から、サブルートキー(ここでは"s"とする),識別子(ここでは"i"とする),登録日時(ここでは"t"とする)を取得し、データ管理部321に出力する(ステップS172)。
【0121】
データ管理部321は、自身のデータ記憶領域300のルート情報に、keyとしてサブルートキー"s"、登録日時"t"、失効日時として"∞"、valueとして識別子"i"となる行を追加する(ステップS173)。
【0122】
そして、ルート情報登録処理部319は、ルート情報が保存されたことを示すルート情報登録応答メッセージ21(図8(d)(h)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信して処理を終える(ステップS174)。
【0123】
このようにすることで、本実施形態に係る分散ID管理システム5は、クライアント装置1から取得したID登録要求メッセージ10(図8(a)参照)に含まれる登録情報を、ゲートウェイ装置2を介して、インデックスおよびルート情報という保存形式により、分散させてデータ管理装置3に保存することができる。
【0124】
なお、本例では、「識別子」,「ドメイン」,「登録日時」の組となる登録情報について、図8(a)に示すように、第1の登録情報(符号10−1)と第2の登録情報(符号10−2)の2組を登録する場合を例に説明した。しかし、本発明は、登録情報について2組に限定されるものではなく、2組以上であれば、例えば、第3の登録情報、第4の登録情報、第5の登録情報のように、第i(i番目)の登録情報までを含めて本実施形態に係るID登録処理で、各データ管理装置3に登録することもできる。
【0125】
その場合、ゲートウェイ装置2から、i個の登録情報が含まれるID登録要求メッセージ10を受信した第1のデータ管理装置3(3A)のノード決定部312は、第i(i番目:iは1以上の整数)の登録情報についてID登録処理部314が生成した第iインデックスキーにハッシュ関数を適用してハッシュ値を算出し、ノード情報のノードIDを参照して決定したデータ管理装置3として、第iインデックスの登録先を、(2×i−1)番目のデータ管理装置3に決定することができる。また、第1のデータ管理装置3(3A)のノード決定部312は、第i(i番目)の登録情報についてID登録処理部314が生成した第i(i番目)サブルートキーにハッシュ関数を適用してハッシュ値を算出し、ノード情報のノードIDを参照して決定したデータ管理装置3として、第iルート情報の登録先を、(2×i)番目のデータ管理装置3に決定することができる。
つまり、本実施形態に係る分散ID管理システム5は、i個の登録情報が含まれるID登録要求メッセージ10を受信した場合であっても、i個の登録情報を、インデックスおよびルート情報という形式で分散して複数のデータ管理装置3に保存することができる。
【0126】
<ID変換処理>
次に、図16〜図20を参照して、図7に示したID登録処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、IDの変換を要求(ID変換要求)した際に、ゲートウェイ装置2とデータ管理装置3が実行するID変換処理について説明する。
【0127】
ここでは、クライアント装置1が要求するID変換処理の例として、ドメイン"D0"の日時"T1"における識別子"0"を、ドメイン"D1"の同日時"T1"における識別子へ変換する処理(つまり、ドメイン"D0"の日時"T1"における識別子"0"に対応する、ドメイン"D1"の同日時"T1"における識別子を検索する処理)、について説明する。ここで、"T1"は、"T0"よりも未来の日時を示すものとする。
【0128】
(ID変換処理の全体の流れ)
図16は、本実施形態に係る分散ID管理システム5が行うID変換処理の全体の流れを示すシーケンス図である。
【0129】
まず、クライアント装置1は、ID変換要求メッセージ40a(40)をゲートウェイ装置2に送信する(ステップS201)。
【0130】
図17(a)は、ID変換要求メッセージ40を例示する図である。図17(a)に示すように、ID変換要求メッセージ40は、「変換元識別子」,「変換元ドメイン」,「変換元日時」,「変換先ドメイン」,「変換先日時」のパラメータを含んで構成される。図17(a)に例示するID変換要求メッセージ40a(40)は、変換元であるドメイン(変換元ドメイン)"D0"の日時(変換元日時)"T1"における識別子(変換元識別子)"0"を、ドメイン(変換先ドメイン)"D1"の同日時(変換先日時)"T1"における識別子へ変換する(変換先となる識別子を検索する)処理を要求するものである。
【0131】
図16に戻り、ID変換要求メッセージ40a(40)を受信したゲートウェイ装置2は、インデックスノードの決定処理を行う(ステップS202)。このインデックスノードの決定処理は、インデックスキーを検索キーとして、ノード決定部212がコンシステントハッシュ法により決定する。ここでは、例えば、インデックスキー"0@D0"に対応するノードであるデータ管理装置3Aが、インデックスノードとして決定される。
【0132】
続いて、ゲートウェイ装置2は、ID変換要求メッセージ40a(40)を、インデックスノードとして決定したデータ管理装置3Aに送信する(ステップS203)。
【0133】
ID変換要求メッセージ40a(40)を受信したデータ管理装置3Aは、ルートキーの取得処理を行う(ステップS204)。ルートキーの取得は、インデックスキー("0@D0")をキーとして、データ格納領域300A内のインデックス(図9(a)参照)を検索し、変換元日時T1が登録日時と失効日時の間に含まれる行から行われる。ここでは、図9(a)に示すインデックスから、ルートキーとして"R0"が取得される。
【0134】
次に、データ管理装置3Aは、ルートノードの決定処理を行う(ステップS205)。ここでは、サブルートキー"R0@D1"に対応するノードとして、データ管理装置3Dが、ルートノードとして決定される。
【0135】
続いて、データ管理装置3Aは、ID取得要求メッセージ50a(50)を、ルートノードとして決定したデータ管理装置3Dに送信する(ステップS206)。
【0136】
図17(c)は、ID取得要求メッセージ50を例示する図である。図17(c)に示すように、ID取得要求メッセージ50は、「サブルートキー」,「変換先日時」のパラメータを含んで構成される。図17(c)に例示するID取得要求メッセージ50a(50)は、サブルートキー"R0@D1"に紐付く識別子の内、変換先日時"T1"で有効なものの取得を要求するものであることを示す。
【0137】
図16に戻り、ID取得要求メッセージ50a(50)を受信したデータ管理装置3Dは、ID(識別子)の取得処理を行う(ステップS207)。ID(識別子)の取得は、サブルートキー"R0@D1"をキーとして、データ格納領域300D内のルート情報(図9(d)参照)を検索し、変換先日時T1が、登録日時と失効日時の間に含まれるような行から行われる。ここでは、図9(d)に示すルート情報から、識別子として"a"が取得される。
【0138】
次に、データ管理装置3Dは、ID取得応答メッセージ51a(51)を生成し、データ管理装置3Aに送信する(ステップS208)。図17(d)に示すように、ID取得応答メッセージ51aには、ID変換処理の結果取得された識別子(変換先識別子)"a"が含まれる。
【0139】
続いて、データ管理装置3Aは、ID変換応答メッセージ41a(41)を生成し、ゲートウェイ装置2に送信する(ステップS209)。図17(b)に示すように、ID変換応答メッセージ41aには、ID変換処理の結果取得された識別子(変換先識別子)"a"が含まれる。
【0140】
そして、ゲートウェイ装置2は、ID変換応答メッセージ41a(41)をクライアント装置1に送信し、処理を終える(ステップS210)。
【0141】
次に、このID変換処理におけるゲートウェイ装置2およびデータ管理装置3が行う処理についてさらに詳細に説明する。
【0142】
(ID変換処理におけるゲートウェイ装置の処理)
最初に、図16のID変換処理における、ゲートウェイ装置2の処理の詳細を説明する。図18は、本実施形態に係るID変換処理におけるゲートウェイ装置2の処理の流れを示すフローチャートである。
【0143】
まず、ゲートウェイ装置2の送受信部240が、ID変換要求メッセージ40(図17(a)参照)をクライアント装置1から受信し、受信したID変換要求メッセージ40をID変換転送部214に出力する(ステップS221)。
【0144】
ID変換転送部214は、受信したID変換要求メッセージ40の変換元識別子"0"と変換元ドメイン"D0"を結合した値としてインデックスキー"0@D0"を生成し、ノード決定部212に出力する(ステップS222)。
【0145】
ノード決定部212は、コンシステントハッシュ法によりインデックスノードとなるノードを決定し、決定したインデックスノードの接続情報を、記憶部250内のノード情報記憶領域200から取得して、ID変換転送部214に出力する(ステップS223)。
【0146】
ID変換転送部214は、送受信部240を介して、ID変換要求メッセージ40を、決定したインデックスノードに送信する(ステップS224)。
【0147】
そして、ID変換転送部214は、送受信部240を介して、インデックスノードからID変換応答メッセージ41(図17(b)参照)を受信する(ステップS225)。
【0148】
続いて、ID変換転送部214は、送受信部240を介して、ID変換応答メッセージ41を、クライアント装置1に送信して処理を終える(ステップS226)。
【0149】
(ID変換処理におけるデータ管理装置の処理)
次に、図16のID変換処理における、データ管理装置3(ここでは、データ管理装置3A)の処理を詳細に説明する。図19は、本実施形態に係るID変換処理におけるデータ管理装置3(3A)の処理の流れを示すフローチャートである。
【0150】
まず、データ管理装置3(ここでは、データ管理装置3A)の送受信部340が、ゲートウェイ装置2からID変換要求メッセージ40(図17(a)参照)を受信し、ID変換処理部315に出力する(ステップS231)。
【0151】
次に、ID変換処理部315は、ID変換要求メッセージ40に含まれる、変換元識別子(ここでは、「i」とする),変換元ドメイン(ここでは、「d」とする),変換元日時(ここでは、「t」とする),変換先ドメイン(ここでは、「d'」とする),変換先日時(ここでは「t'」とする)を取得する。ID変換処理部315は、変換元識別子iと変換元ドメインdとを結合した値(i@d)としてインデックスキーを生成する。具体的には、ID変換処理部315は、インデックスキー"0@D0"を生成する。そして、ID変換処理部315は、生成したインデックスキー(i@d)と、変換元日時tとを、データ管理部321に出力する(ステップS232)。
【0152】
続いて、データ管理部321は、データ記憶領域300(ここでは、図9(a)のデータ記憶領域300A)に記憶されたインデックスから、条件[key=i@d かつ 登録日時≦t<失効日時]を満たす行を検索する(ステップS233)。
【0153】
そして、データ管理部321は、条件を満たす行が存在するか否かを判定し(ステップS234)、条件を満たす行が存在しない場合には(ステップS234→No)、ステップS242に進む。一方、データ管理部321は、条件を満たす行が存在する場合には(ステップS234→Yes)、次のステップS235へ進む。
【0154】
ステップS235において、データ管理部321は、条件を満たす行のvalueの値からルートキー(「r」)を取得し、ID変換処理部315に出力する。ここでは、データ管理部321が、図9(a)に示すインデックスから、ルートキーとして"R0"を取得し、ID変換処理部315に出力する。
【0155】
次に、ID変換処理部315は、ルートキーrと変換先ドメインd'を結合した値(r@d')としてサブルートキーを生成する。ここでは、ID変換処理部315は、サブルートキー"R0@D1"を生成する。そして、ID変換処理部315は、生成したサブルートキー(r@d')をノード決定部312に出力する(ステップS236)。
【0156】
続いて、ノード決定部312が、コンシステントハッシュ法によりルートノードとなるノードを決定し、決定したルートノードの接続情報を、記憶部350内のノード情報記憶領域200から取得して、ID変換処理部315に出力する(ステップS237)。
【0157】
ID変換処理部315は、サブルートキー(r@d')と変換先日時t'とを含むID取得要求メッセージ50(図17(c)参照)を生成し、送受信部340を介して、ルートノードに送信する(ステップS238)。
【0158】
そして、ID変換処理部315は、ルートノードから、送受信部340を介して、変換先のID(識別子)を含むID取得応答メッセージ51(図17(d)参照)を受信する(ステップS239)。
【0159】
ID変換処理部315は、ID(識別子)の取得に成功したか否かを判定し(ステップS240)、成功していない場合には(ステップS240→No)、ステップS242に進む。一方、ID変換処理部315は、ID(識別子)の取得に成功した場合には(ステップS240→Yes)、次のステップS241へ進む。
【0160】
ステップS241において、ID変換処理部315は、ID取得応答メッセージ51から取得したID(識別子)を含む、ID変換応答メッセージ41(図17(b)参照)を生成し、送受信部340を介して、ゲートウェイ装置2に送信し、処理を終える。
【0161】
また、ステップS234において条件を満たす行がない場合(ステップS234→No)、または、ステップS240においてID(識別子)の取得に成功していない場合(ステップS240→No)には、ID変換処理部315が、エラーメッセージを生成し、送受信部340を介して、ゲートウェイ装置2に送信し、処理を終える(ステップS242)。
【0162】
(ID取得処理)
次に、図16のID変換処理のステップS207で行われる、ID取得処理を詳細に説明する。図20は、本実施形態に係るID取得処理におけるデータ管理装置3(ここでは、データ管理装置3D)の処理の流れを示すフローチャートである。
【0163】
まず、送受信部340が、他のデータ管理装置3からID取得要求メッセージ50(図17(c)参照)を受信すると、その受信したID取得要求メッセージ50をID取得処理部317に出力する(ステップS251)。
【0164】
次に、ID取得処理部317は、ID取得要求メッセージ50から、サブルートキー(r@d)と、変換先日時t'とを取得し、データ管理部321に出力する(ステップS252)。
【0165】
続いて、データ管理部321は、データ記憶領域300(ここでは、データ記憶領域300D)に記憶されたルート情報から、条件[key=r@d かつ 登録日時≦t'<失効日時]を満たす行を検索する(ステップS253)。
【0166】
そして、データ管理部321は、条件を満たす行が存在するか否かを判定し(ステップS254)、条件を満たす行が存在しない場合には(ステップS254→No)、ステップS257に進む。一方、データ管理部321は、条件を満たす行が存在する場合には(ステップS254→Yes)、次のステップS255へ進む。
【0167】
ステップS255において、データ管理部321は、条件を満たす行のvalueの値から識別子iを取得し、ID取得処理部317に出力する。ここでは、データ管理部321が、図9(d)に示すルート情報から、変換先の識別子(変換先識別子)iとして"a"を取得し、ID取得処理部317に出力する。
【0168】
次に、ID取得処理部317は、変換先の識別子i(ここでは"a")を含むID取得応答メッセージ51(図17(d)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信して処理を終える(ステップS256)。
【0169】
また、ステップS254において、条件を満たす行が存在しない場合には(ステップS254→No)、ID取得処理部317は、エラーメッセージを生成し、送受信部340を介して、要求元のデータ管理装置3に送信して処理を終える(ステップS257)。
【0170】
このようにすることで、本実施形態に係る分散ID管理システム5は、クライアント装置1から取得したID変換要求メッセージ40(図17(a)参照)に含まれる「変換元識別子」「変換元ドメイン」「変換元日時」「変換先ドメイン」「変換先日時」のパラメータを用いて、「変換元識別子」を「変換先識別子」に変換する、つまり、「変換先識別子」を検索することができる。
【0171】
<ID更新処理>
次に、図21〜図27を参照して、図7に示したID登録処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、IDの更新を要求(ID更新要求)した際に、ゲートウェイ装置2とデータ管理装置3が実行するID更新処理について説明する。
【0172】
ここでは、クライアント装置1が要求するID更新処理の例として、ドメイン(更新対象ドメイン)"D0"の日時(更新対象日時)"T1"における識別子(更新対象識別子)"0"を、日時(更新日時)"T2"以降は識別子(更新後識別子)"9"に置き換える(更新する)処理について説明する。ここで、"T2"は"T1"よりも未来の日時を示すものとする。
【0173】
(ID更新処理の全体の流れ)
図21は、本実施形態に係る分散ID管理システム5が行うID更新処理の全体の流れを示すシーケンス図である。
【0174】
まず、クライアント装置1は、ID更新要求メッセージ60をゲートウェイ装置2に送信する(ステップS301)。
【0175】
図22(a)は、ID更新要求メッセージ60を例示する図である。図22(a)に示すように、ID更新要求メッセージ60は、「更新対象識別子」,「更新対象ドメイン」,「更新対象日時」,「更新後識別子」,「更新日時」のパラメータを含んで構成される。図22(a)に例示するID更新要求メッセージ60は、ドメイン(更新対象ドメイン)"D0"の日時(更新対象日時)"T1"における識別子(更新対象識別子)"0"を更新元として、日時(更新日時)"T2"以降は識別子(更新後識別子)"9"に置き換える(更新する)処理を要求するものである。
【0176】
図21に戻り、ID更新要求メッセージ60を受信したゲートウェイ装置2は、インデックスノードの決定処理を行う(ステップS302)。このインデックスノードの決定処理は、インデックスキーを検索キーとして、ノード決定部212がコンシステントハッシュ法により決定する。ここでは、例えば、インデックスキー"0@D0"に対応するノードであるデータ管理装置3Aが、インデックスノードとして決定される。
【0177】
続いて、ゲートウェイ装置2は、ID更新要求メッセージ60を、インデックスノードとして決定したデータ管理装置3Aに送信する(ステップS303)。
【0178】
ID更新要求メッセージ60を受信したデータ管理装置3Aは、ルートキーの取得処理を行う(ステップS304)。ルートキーの取得は、インデックスキー("0@D0")をキーとして、データ格納領域300A内のインデックス(図9(a)参照)を検索し、更新対象日時"T1"が登録日時と失効日時の間に含まれる行から行われる。ここでは、図9(a)に示すインデックスから、ルートキーとして"R0"が取得される。
【0179】
次に、データ管理装置3Aは、インデックスの失効処理を行う(ステップS305)。このインデックスの失効処理は、ステップS304において、インデックスから、ルートキー"R0"を取得した行の失効日時を更新日時で更新することにより行う。
【0180】
図23(a)に、インデックスの失効処理後のデータ管理装置3Aのデータ記憶領域300Aの例を示す。ここでは、インデックス"0@D0"に対応する行において、失効日時が"∞"から"T2"に更新されている。
【0181】
図21に戻り、次に、データ管理装置3Aは、更新対象のルートノードの決定処理を行う(ステップS306)。ここでは、ノード決定部312が、サブルートキー"R0@D0"に対応するノードとして、データ管理装置3Bを、ルートノードとして決定する。
【0182】
続いて、データ管理装置3Aは、ルート情報更新要求メッセージ70を、ルートノードとして決定したデータ管理装置3Bに送信する(ステップS307)。
【0183】
図22(c)は、ルート情報更新要求メッセージ70を例示する図である。図22(c)に示すように、ルート情報更新要求メッセージ70は、「サブルートキー」,「更新後識別子」,「更新日時」のパラメータを含んで構成される。図22(c)に示すルート情報更新要求メッセージ70は、日時(更新日時)"T2"以降、サブルートキー"R0@D0"に紐付く識別子(更新後識別子)として"9"を用いるように更新することを要求するものである。
【0184】
図21に戻り、ルート情報更新要求メッセージ70を受信したデータ管理装置3Bは、ルート情報の更新処理を行う(ステップS308)。
【0185】
図23(b)に、ルート情報更新後のデータ管理装置3Bのデータ記憶領域300Bの例を示す。ここでは、サブルートキー"R0@D0"に対応する行において、登録日時"T0"の行では、失効日時が"∞"から更新日時である"T2"に更新されている。また、サブルートキー"R0@D0"の新たな行が追加され、keyとしてサブルートキー"R0@D0"、登録日時として更新後日時"T2"、失効日時として"∞"、valueとして識別子(更新後識別子)"9"が、それぞれ格納される。
【0186】
図21に戻り、データ管理装置3Bは、ルート情報更新応答メッセージ71(図22(d)参照)を、データ管理装置3Aに送信する(ステップS309)。図22(d)に示すように、ルート情報更新応答メッセージ71には、ルート情報の更新処理が成功したことを示す"success"が付される。
【0187】
次に、データ管理装置3Aは、インデックスノードの決定処理を行う(ステップS310)。ここでは、例えば、インデックスキー"9@D0"に対応するノードであるデータ管理装置3Eが、インデックスノードとして決定される。
【0188】
続いて、データ管理装置3Aは、インデックス登録要求メッセージ30b(30)を、インデックスノードとして決定したデータ管理装置3Eに送信する(ステップS311)。
【0189】
図22(e)は、インデックス登録要求メッセージ30を例示する図である。図22(e)に例示するインデックス登録要求メッセージ30bは、ルートキー"R0"と、ドメイン"D0"の登録日時"T2"における識別子"9"とを対応付けて管理するように要求するものである。
【0190】
図21に戻り、インデックス登録要求メッセージ30bを受信したデータ管理装置3Eは、インデックスの保存処理を行う(ステップS312)。
【0191】
図23(e)は、インデックスが保存されたデータ管理装置3Eのデータ記憶領域300Eの例を示す。このデータ記憶領域300Eに保存されたインデックスには、keyとしてのインデックスキー"9@D0"、登録日時としての"T2"、失効日時として("9@D0"がまだ失効されていないことを示す)"∞"、valueとしてのルートキー"R0"がそれぞれ格納される。
【0192】
図21に戻り、データ管理装置3Eは、インデックス登録応答メッセージ31b(31)を生成し、データ管理装置3Aに送信する(ステップS313)。図22(f)に示すように、インデックス登録応答メッセージ31bは、インデックスの登録処理が成功したことを示す"success"が付される。
【0193】
インデックス登録応答メッセージ31bを受信したデータ管理装置3Aは、ID更新応答メッセージ61を生成し、ゲートウェイ装置2に送信する(ステップS314)。図22(b)に示すように、ID更新応答メッセージ61には、ID更新処理が成功したことを示す"success"が付される。
【0194】
そして、ゲートウェイ装置2は、ID更新応答メッセージ61をクライアント装置1に送信し(ステップS315)、処理を終える。
【0195】
このID更新処理により、各データ管理装置3のデータ記憶領域300には、図23(a)〜(e)に示すような値が格納される。これらの値は、図23(f)に示すような日時"T2"における変換テーブルを仮想的に実現したものとみなすことができる。例えば、図23(f)の一行目のデータは、ドメイン"D0"の列に識別子"9"が格納され、ドメイン"D1"の列に識別子"a"が格納されているが、これは、日時"T2"において、ある管理対象が、ドメイン"D0"では識別子"9"を持ち、ドメイン"D1"では識別子"a"を持つことを示す。
【0196】
次に、このID更新処理におけるゲートウェイ装置2およびデータ管理装置3が行う処理についてさらに詳細に説明する。
【0197】
(ID更新処理におけるゲートウェイ装置の処理)
次に、図21のID更新処理における、ゲートウェイ装置2の処理の詳細を説明する。
図24は、本実施形態に係るID更新処理におけるゲートウェイ装置2の処理の流れを示すフローチャートである。
【0198】
まず、ゲートウェイ装置2の送受信部240が、ID更新要求メッセージ60(図22(a)参照)をクライアント装置1から受信し、受信したID更新要求メッセージ60をID更新転送部215に出力する(ステップS321)。
【0199】
ID更新転送部215は、受信したID更新要求メッセージ60の更新対象識別子"0"と更新対象ドメイン"D0"を結合した値としてインデックスキー"0@D0"を生成し、ノード決定部212に出力する(ステップS322)。
【0200】
ノード決定部212は、コンシステントハッシュ法によりインデックスノードとなるノードを決定し、決定したインデックスノードの接続情報を、記憶部250内のノード情報記憶領域200から取得して、ID更新転送部215に出力する(ステップS323)。
【0201】
ID更新転送部215は、送受信部240を介して、ID更新要求メッセージ60を、決定したインデックスノードに送信する(ステップS324)。
【0202】
そして、ID更新転送部215は、送受信部240を介して、インデックスノードから、ID更新応答メッセージ61(図22(b)参照)を受信する(ステップS325)。
【0203】
続いて、ID更新転送部215は、送受信部240を介して、ID更新応答メッセージ61を、クライアント装置1に送信して処理を終える(ステップS326)。
【0204】
(ID更新処理におけるデータ管理装置の処理)
次に、図21のID更新処理における、データ管理装置3(ここでは、データ管理装置3A)の処理の詳細に説明する。図25および図26は、本実施形態に係るID更新処理におけるデータ管理装置3(3A)の処理の流れを示すフローチャートである。
【0205】
図25において、まず、データ管理装置3(ここでは、データ管理装置3A)の送受信部340が、ゲートウェイ装置2からID更新要求メッセージ60(図22(a)参照)を受信し、ID更新処理部316に出力する(ステップS331)。
【0206】
次に、ID更新処理部316は、ID更新要求メッセージ60に含まれる、更新対象識別子(ここでは、「i」とする),更新対象ドメイン(ここでは、「d」とする),更新対象日時(ここでは、「t」とする),更新後識別子(ここでは、「i'」とする),更新日時(ここでは、「t'」とする)を取得する。ID更新処理部316は、更新対象識別子iと更新対象ドメインdとを結合した値(i@d)としてインデックスキーを生成する。ここでは、ID更新処理部316は、インデックスキー"0@D0"を生成する。そして、ID更新処理部316は、生成したインデックスキー(i@d)と、更新対象日時tとを、データ管理部321に出力する(ステップS332)。
【0207】
続いて、データ管理部321は、データ記憶領域300(ここでは、データ記憶領域300A)に記憶されたインデックスから、条件[key=i@d かつ 登録日時≦t<失効日時]を満たす行を検索する(ステップS333)。
【0208】
そして、データ管理部321は、条件を満たす行が存在するか否かを判定し(ステップS334)、条件を満たす行が存在しない場合には(ステップS334→No)、図26のステップS347に進む。一方、データ管理部321は、条件を満たす行が存在する場合には(ステップS334→Yes)、次のステップS335へ進む。
【0209】
ステップS335において、データ管理部321は、条件を満たす行のvalueの値からルートキー(「r」)を取得し、ID更新処理部316に出力する。ここでは、データ管理部321が、図9(a)に示すインデックスから、ルートキーとして"R0"を取得し、ID更新処理部316に出力する。
【0210】
次に、ID更新処理部316は、データ管理部321を介して、当該行の失効日時を"∞"から更新日時t'に更新する(ステップS336)。
【0211】
続いて、ID更新処理部316は、ルートキーrと更新対象ドメインdとを結合した値(r@d)としてサブルートキーを生成する。ここでは、ID更新処理部316は、サブルートキー"R0@D0"を生成する。そして、ID更新処理部316は、生成したサブルートキー(r@d)をノード決定部312に出力する(ステップS337)。
【0212】
そして、ノード決定部312は、コンシステントハッシュ法によりルートノードとなるノードを決定し、決定したルートノードの接続情報を、記憶部350内のノード情報記憶領域200から取得して、ID更新処理部316に出力する(ステップS338)。
【0213】
ID更新処理部316は、サブルートキー(r@d)、更新後識別子i'、更新日時t'を含むルート情報更新要求メッセージ70(図22(c)参照)を生成し、送受信部340を介して、ルートノードに送信する(ステップS339)。
【0214】
そして、ID更新処理部316は、ルートノードから、送受信部340を介して、ルート情報更新応答メッセージ71(図22(d)参照)を受信する(ステップS340)。
【0215】
図26に移り、ID更新処理部316は、更新後識別子i'と更新対象ドメインdとを結合した値(i'@d)としてインデックスキーを生成する。ここでは、ID更新処理部316は、インデックスキー"9@D0"を生成する。そして、ID更新処理部316は、生成したインデックスキー"9@D0"をノード決定部312に出力する(ステップS341)。
【0216】
次に、ノード決定部312は、コンシステントハッシュ法によりインデックスノードとなるノードを決定し、決定したインデックスノードの接続情報を、記憶部350内のノード情報記憶領域200から取得して、ID更新処理部316に出力する(ステップS342)。
【0217】
そして、ID更新処理部316は、インデックス登録処理部318を介して、インデックス登録要求メッセージ30b(図22(e)参照)を生成し、インデックスノードへ送信する(ステップS343)。このインデックス登録要求メッセージ30bには、インデックスキー"9@D0"、ルートキー"R0"、登録日時"T2"の情報が含まれる。
【0218】
続いて、ID更新処理部316は、インデックスノードから、受信部340を介して、インデックス登録応答メッセージ31b(図22(f)参照)を受信する(ステップS344)。
【0219】
次に、ID更新処理部316は、ID更新処理に関する全ての処理が成功したが否かを判定し(ステップS345)、1つでも成功していない処理がある場合には(ステップS345→No)、ステップS347に進む。一方、ID更新処理部316は、全ての処理が成功した場合には(ステップS345→Yes)、次のステップS346に進む。
【0220】
ステップS346において、ID更新処理部316は、送受信部340を介して、ゲートウェイ装置2へID更新応答メッセージ61(図22(b)参照)を送信して、処理を終了する。
【0221】
また、図25のステップS334において条件を満たす行が存在しない場合(ステップS334→No)、または、図26のステップS345において1つでも成功していない処理がある場合(ステップS345→No)には、ID更新処理部316は、ゲートウェイ装置2へエラーメッセージを送信して、処理を終了する(ステップS347)。
【0222】
(ルート情報更新処理)
次に、図21のID更新処理のステップS308で行われる、データ管理装置3(ここでは、データ管理装置3B)のルート情報更新処理を詳細に説明する。図27は、本実施形態に係るID更新処理におけるデータ管理装置3(3B)のルート情報更新処理の流れを示すフローチャートである。
【0223】
まず、送受信部340が、他のデータ管理装置3からルート情報更新要求メッセージ70(図22(c)参照)を受信すると、その受信したルート情報更新要求メッセージ70をルート情報更新処理部320に出力する(ステップS351)。
【0224】
次に、ルート情報更新処理部320は、ルート情報更新要求メッセージ70から、サブルートキー(r@d)と、更新後識別子(i')と、更新日時(t')とを取得し、データ管理部321に出力する(ステップS352)。
【0225】
続いて、データ管理部321は、データ記憶領域300(ここでは、データ記憶領域300B)に記憶されたルート情報から、条件[key=r@d かつ 登録日時≦t'<失効日時]を満たす行を検索する(ステップS353)。
【0226】
そして、データ管理部321は、条件を満たす行が存在するか否かを判定し(ステップS354)、条件を満たす行が存在しない場合には(ステップS354→No)、ステップS358に進む。一方、データ管理部321は、条件を満たす行が存在する場合には(ステップS354→Yes)、次のステップS355へ進む。
【0227】
ステップS355において、ルート情報更新処理部320は、データ管理部321を介して、条件を満たす行の失効日時を"∞"から更新日時t'に更新する。
【0228】
次に、データ管理部321は、データ記憶領域300のルート情報に、keyとしてサブルートキー(r@d)、登録日時として更新日時(t')、失効日時として"∞"、valueとして更新後識別子(i')となる行と追加する(ステップS356)。
【0229】
そして、ルート情報更新処理部320は、ルート情報が更新されたことを示すルート情報更新応答メッセージ71(図22(d)参照)を生成し、送受信部340を介して、要求元のデータ管理装置3に送信して処理を終える(ステップS357)。
【0230】
また、ステップS354において、条件を満たす行がない場合には(ステップS354→No)、ルート情報更新処理部320は、エラーメッセージを生成し、送受信部340を介して、要求元のデータ管理装置3に送信して処理を終える(ステップS358)。
【0231】
このようにすることで、本実施形態に係る分散ID管理システム5は、クライアント装置1から取得したID更新要求メッセージ60(図22(a)参照)に基づき、ある「更新対象ドメイン」における「更新日時」以降の識別子を、それまで登録されていた「更新対象識別子」から新たな識別子である「更新後識別子」に更新することができる。
【0232】
≪ID更新処理後のID変換処理の具体例≫
次に、本実施形態に係る分散ID管理システム5において、図21で示したID更新処理が行われた後における、ID変換処理を3例説明する。1例目と2例目は、ID更新処理後のID変換処理が正常に行われる例を示し、3例目は、不正なID変換処理の要求を受けたため、ID変換処理が失敗する例を示す。これらは、ID更新処理後においても、正常にID変換処理が実行できることを説明するための例である。
【0233】
<ID更新処理後のID変換処理(1)>
まず、図28,図29を参照して、ID更新処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、IDの変換を要求(ID変換要求)した際に、ゲートウェイ装置2とデータ管理装置3が実行するID変換処理(1)について説明する。
【0234】
ここでは、クライアント装置1が要求するID変換処理の例として、ドメイン(変換元ドメイン)"D0"の日時(変換元日時)"T3"における識別子(変換元識別子)"9"を、ドメイン(変換先ドメイン)"D1"の同日時(変換先日時)"T3"における識別子(変換先識別子)へ変換する処理(つまり、ドメイン"D0"の日時"T3"における識別子"9"に対応する、ドメイン"D1"の同日時"T3"における識別子を検索する処理)、について説明する。ここで、"T3"は"T2"よりも未来の日時を示すものとする。
【0235】
(ID変換処理の全体の流れ)
図28は、本実施形態に係る分散ID管理システム5が行うID更新処理後のID変換処理(1)の全体の流れを示すシーケンス図である。ここでは、前記した図21に示すID更新処理がすでに行われ、各データ管理装置3(3A,3B,3C,3D,3E)のデータ記憶領域300には、図23に示すデータが記憶されているものとして説明する。
【0236】
まず、クライアント装置1は、ID変換要求メッセージ40b(40)をゲートウェイ装置2に送信する(ステップS401)。
【0237】
図29(a)は、ID変換要求メッセージ40b(40)を例示する図である。図29(a)に示すID変換要求メッセージ40b(40)は、変換元であるドメイン(変換元ドメイン)"D0"の日時(変換元日時)"T3"における識別子(変換元識別子)"9"を、ドメイン(変換後ドメイン)"D1"の同日時(変換先日時)"T3"における識別子(変換先識別子)へ変換する処理を要求するものである。
【0238】
図28に戻り、ID変換要求メッセージ40bを受信したゲートウェイ装置2は、インデックスノードの決定処理を行う(ステップS402)。このインデックスノードの決定処理は、インデックスキーを検索キーとして、ノード決定部212がコンシステントハッシュ法により決定する。ここでは、例えば、インデックスキー"9@D0"に対応するノードであるデータ管理装置3Eが、インデックスノードとして決定される。
【0239】
続いて、ゲートウェイ装置2は、ID変換要求メッセージ40b(40)を、インデックスノードとして決定したデータ管理装置3Eに送信する(ステップS403)。
【0240】
ID変換要求メッセージ40b(40)を受信したデータ管理装置3Eは、ルートキーの取得処理を行う(ステップS404)。ルートキーの取得は、インデックスキー"9@D0"をキーとして、データ格納領域300E(図23(e)参照)内を検索し、変換元日時"T3"が登録日時と失効日時の間に含まれる行から行われる。ここでは、図23(e)に示すインデックスから、ルートキーとして"R0"が取得される。
【0241】
次に、データ管理装置3Eは、ルートノードの決定処理を行う(ステップS405)。ここでは、サブルートキー"R0@D1"に対応するノードとして、データ管理装置3Dが、ルートノードとして決定される。
【0242】
続いて、データ管理装置3Eは、ID取得要求メッセージ50b(50)を、ルートノードとして決定したデータ管理装置3Dに送信する(ステップS406)。
【0243】
図29(c)は、ID取得要求メッセージ50b(50)を例示する図である。図29(c)に示すように、ID取得要求メッセージ50b(50)は、サブルートキー"R0@D1"に紐付く識別子の内、変換先日時"T3"で有効なものの取得を要求するものであることを示す。
【0244】
図28に戻り、ID取得要求メッセージ50b(50)を受信したデータ管理装置3Dは、ID(識別子)の取得処理を行う(ステップS407)。ID(識別子)の取得は、サブルートキー"R0@D1"をキーとして、データ格納領域300D(図23(d)参照)内を検索し、変換先日時"T3"が、登録日時と失効日時の間に含まれるような行から行われる。ここでは、図23(d)に示すルート情報から、識別子(変換先識別子)として"a"が取得される。
【0245】
次に、データ管理装置3Dは、ID取得応答メッセージ51b(51)を、データ管理装置3Eに送信する(ステップS408)。図29(d)に示すように、ID取得応答メッセージ51bには、ID変換処理の結果取得された識別子(変換先識別子)"a"が含まれる。
【0246】
続いて、データ管理装置3Eは、ID変換応答メッセージ41b(41)を、ゲートウェイ装置2に送信する(ステップS409)。図29(b)に示すように、ID変換応答メッセージ41b(41)には、ID変換処理の結果取得された識別子(変換先識別子)"a"が含まれる。
【0247】
そして、ゲートウェイ装置2は、ID変換応答メッセージ41b(41)をクライアント装置1に送信し、処理を終える(ステップS410)。
【0248】
このようにして、ID更新処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、ID変換要求した際に、ID更新処理の結果を反映した、正しい変換結果として変換先識別子を得ることができる。
【0249】
<ID更新処理後のID変換処理(2)>
次に、図30,図31を参照して、ID更新処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、IDの変換を要求(ID変換要求)した際に、ゲートウェイ装置2とデータ管理装置3が実行するID変換処理(2)について説明する。
【0250】
ここでは、クライアント装置1が要求するID変換処理の例として、ドメイン(変換元ドメイン)"D1"の日時(変換元日時)"T3"における識別子(変換元識別子)"a"を、ドメイン(変換先ドメイン)"D0"の同日時(変換先日時)"T3"における識別子(変換先識別子)へ変換する処理(つまり、ドメイン"D1"の日時"T3"における識別子"a"に対応する、ドメイン"D0"の同日時"T3"における識別子を検索する処理)、について説明する。ここで、"T3"は"T2"よりも未来の日時を示すものとする。
【0251】
(ID変換処理の全体の流れ)
図30は、本実施形態に係る分散ID管理システム5が行うID更新処理後のID変換処理の全体の流れ(2)を示すシーケンス図である。ここでは、前記した図21に示すID更新処理がすでに行われ、各データ管理装置3(3A,3B,3C,3D,3E)のデータ記憶領域300には、図23に示すデータが記憶されているものとして説明する。
【0252】
まず、クライアント装置1は、ID変換要求メッセージ40c(40)をゲートウェイ装置2に送信する(ステップS501)。
【0253】
図31(a)は、ID変換要求メッセージ40c(40)を例示する図である。図31(a)に示すID変換要求メッセージ40c(40)は、変換元であるドメイン(変換元ドメイン)"D1"の日時(変換元日時)"T3"における識別子(変換元識別子)"a"を、ドメイン(変換後ドメイン)"D0"の同日時(変換先日時)"T3"における識別子(変換先識別子)へ変換する処理を要求するものである。
【0254】
図30に戻り、ID変換要求メッセージ40c(40)を受信したゲートウェイ装置2は、インデックスノードの決定処理を行う(ステップS502)。このインデックスノードの決定処理は、インデックスキーを検索キーとして、ノード決定部212がコンシステントハッシュ法により決定する。ここでは、例えば、インデックスキー"a@D1"に対応するノードであるデータ管理装置3Cが、インデックスノードとして決定される。
【0255】
続いて、ゲートウェイ装置2は、ID変換要求メッセージ40c(40)を、インデックスノードとして決定したデータ管理装置3Cに送信する(ステップS503)。
【0256】
ID変換要求メッセージ40c(40)を受信したデータ管理装置3Cは、ルートキーの取得処理を行う(ステップS504)。ルートキーの取得は、インデックスキー"a@D1"をキーとして、データ格納領域300C(図23(c)参照)内を検索し、変換元日時"T3"が登録日時と失効日時の間に含まれる行から行われる。ここでは、図23(c)に示すインデックスから、ルートキーとして"R0"が取得される。
【0257】
次に、データ管理装置3Cは、ルートノードの決定処理を行う(ステップS505)。ここでは、サブルートキー"R0@D0"に対応するノードとして、データ管理装置3Bが、ルートノードとして決定される。
【0258】
続いて、データ管理装置3Cは、ID取得要求メッセージ50c(50)を、ルートノードとして決定したデータ管理装置3Bに送信する(ステップS506)。
【0259】
図31(c)は、ID取得要求メッセージ50c(50)を例示する図である。図31(c)に示すように、ID取得要求メッセージ50c(50)は、サブルートキー"R0@D0"に紐付く識別子の内、変換先日時"T3"で有効なものの取得を要求するものであることを示す。
【0260】
図30に戻り、ID取得要求メッセージ50c(50)を受信したデータ管理装置3Bは、ID(識別子)の取得処理を行う(ステップS507)。ID(識別子)の取得は、サブルートキー"R0@D0"をキーとして、データ格納領域300B(図23(b)参照)内を検索し、変換先日時"T3"が、登録日時と失効日時の間に含まれるような行から行われる。ここでは、図23(b)に示すルート情報から、識別子(変換先識別子)として"9"が取得される。
【0261】
次に、データ管理装置3Bは、ID取得応答メッセージ51c(51)を、データ管理装置3Cに送信する(ステップS508)。図31(d)に示すように、ID取得応答メッセージ51c(51)には、ID変換処理の結果取得された識別子(変換先識別子)"9"が含まれる。
【0262】
続いて、データ管理装置3Cは、ID変換応答メッセージ41c(41)を、ゲートウェイ装置2に送信する(ステップS509)。図31(b)に示すように、ID変換応答メッセージ41c(41)には、ID変換処理の結果取得された識別子(変換先識別子)"9"が含まれる。
【0263】
そして、ゲートウェイ装置2は、ID変換応答メッセージ41cをクライアント装置1に送信し、処理を終える(ステップS510)。
【0264】
このようにして、ID更新処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、ID変換要求した際に、ID更新処理の結果を反映した、正しい変換結果として変換先識別子を得ることができる。
【0265】
<ID更新処理後のID変換処理(失敗例)>
次に、図32,図33を参照して、ID更新処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、IDの変換を要求(ID変換要求)した際に、ゲートウェイ装置2とデータ管理装置3が実行するID変換処理(失敗例)について説明する。
【0266】
ここでは、クライアント装置1が要求するID変換処理の例として、ドメイン(変換元ドメイン)"D0"の日時(変換元日時)"T3"における識別子(変換元識別子)"0"を、ドメイン(変換先ドメイン)"D1"の同日時(変換先日時)"T3"における識別子(変換先識別子)に変換する処理(つまり、ドメイン"D0"の日時"T3"における識別子"0"に対応する、ドメイン"D1"の同日時"T3"における識別子を検索する処理)、について説明する。ここで、"T3"は"T2"よりも未来の日時を示すものとする。
【0267】
また、ここでは、前記した図21に示すID更新処理がすでに行われ、各データ管理装置3(3A,3B,3C,3D,3E)のデータ記憶領域300には、図23に示すデータが記憶されていることを前提とするが、このID更新処理が行われた結果、ドメイン"D0"の日時"T3"における識別子は"0"ではなく、更新され"9"になっているため、当該ID変換処理は、失敗する。その場合の処理例を示すものである。
【0268】
(ID変換処理(失敗例)の全体の流れ)
図32は、本実施形態に係る分散ID管理システム5が行うID更新処理後のID変換処理(失敗例)の全体の流れを示すシーケンス図である。
【0269】
まず、クライアント装置1は、ID変換要求メッセージ40d(40)をゲートウェイ装置2に送信する(ステップS601)。
【0270】
図33(a)は、ID変換要求メッセージ40d(40)を例示する図である。図33(a)に示すID変換要求メッセージ40dは、変換元であるドメイン(変換元ドメイン)"D0"の日時(変換元日時)"T3"における識別子(変換元識別子)"0"を、ドメイン(変換後ドメイン)"D1"の同日時(変換先日時)"T3"における識別子(変換先識別子)へ変換する処理を要求するものである。
【0271】
図32に戻り、ID変換要求メッセージ40d(40)を受信したゲートウェイ装置2は、インデックスノードの決定処理を行う(ステップS602)。このインデックスノードの決定処理は、インデックスキーを検索キーとして、ノード決定部212がコンシステントハッシュ法により決定する。ここでは、例えば、インデックスキー"0@D0"に対応するノードであるデータ管理装置3Aが、インデックスノードとして決定される。
【0272】
続いて、ゲートウェイ装置2は、ID変換要求メッセージ40d(40)を、インデックスノードとして決定したデータ管理装置3Aに送信する(ステップS603)。
【0273】
ID変換要求メッセージ40d(40)を受信したデータ管理装置3Aは、ルートキーの取得処理を行う(ステップS604)。ルートキーの取得は、インデックスキー("0@D0")をキーとして、データ格納領域300A(図23(a)参照)内を検索し、変換元日時"T3"が登録日時と失効日時の間に含まれる行から行われる。ここでは、図23(a)に示すインデックスに基づき、変換元日時T3が登録日時T0と失効日時T2の間に含まれるような行が存在しないため、ルートキーの取得に失敗する。
【0274】
次に、データ管理装置3Aは、ID変換応答メッセージ41d(41)を、ゲートウェイ装置2に送信する(ステップS605)。図33(b)に示すように、ID変換応答メッセージ41d(41)には、ID変換処理の結果が存在しないことを示す"null"が含まれる。なお、当該メッセージには、"null"だけでなく、より詳細なエラー内容を含めるようにしてもよい。
【0275】
そして、ゲートウェイ装置2は、ID変換応答メッセージ41d(41)をクライアント装置1に送信し、処理を終える(ステップS606)。
【0276】
このようにして、ID更新処理が行われた後に、クライアント装置1がゲートウェイ装置2に対して、IDの変換を要求した際に、存在しない識別子を用いた変換処理に対しては、エラーが返されることが示された。
【0277】
以上説明したように、本実施形態に係る分散ID管理方法および分散ID管理システムによれば、管理対象に紐付く識別子であって、かつ、ドメインや日時ごとに変化し得るような識別子を管理するシステムにおいて、識別子を各データ管理装置3に分散配置し、ドメイン、日時を指定した識別子の変換処理や更新処理が可能となる。また、同一機能を備えたデータ管理装置3を複数配置し、インデックスおよびルート情報を各データ管理装置3に分散することで、管理すべきデータ量を抑えた上で、容易にスケールアウトを可能とすることができる。
【符号の説明】
【0278】
1 クライアント装置
2 ゲートウェイ装置
3 データ管理装置
4 通信ネットワーク
5 分散ID管理システム
10 ID登録要求メッセージ
11 ID登録応答メッセージ
20 ルート情報登録要求メッセージ
21 ルート情報登録応答メッセージ
30 インデックス登録要求メッセージ
31 インデックス登録応答メッセージ
40 ID変換要求メッセージ
41 ID変換応答メッセージ
50 ID取得要求メッセージ
51 ID取得応答メッセージ
60 ID更新要求メッセージ
61 ID更新応答メッセージ
70 ルート情報更新要求メッセージ
71 ルート情報更新応答メッセージ
100 ゲートウェイ情報記憶領域
110,210,310 制御部
111 ID登録要求部
112 ID変換要求部
113 ID更新要求部
130,230,330 入出力部
140,240,340 送受信部
150,250,350 記憶部
200 ノード情報記憶領域
211,311 ノード管理部
212,312 ノード決定部
213 ID登録転送部
214 ID変換転送部
215 ID更新転送部
300 データ記憶領域
313 ルートキー生成部
314 ID登録処理部
315 ID変換処理部
316 ID更新処理部
317 ID取得処理部
318 インデックス登録処理部
319 ルート情報登録処理部
320 ルート情報更新処理部
321 データ管理部

【特許請求の範囲】
【請求項1】
クライアント装置から要求メッセージを受信し、前記受信した要求メッセージを複数のデータ管理装置のうちのいずれかに振り分けるゲートウェイ装置と、前記振り分けられた前記要求メッセージを受信し、前記要求メッセージに示される処理を実行する前記複数のデータ管理装置とを備える分散ID管理システムの分散ID管理方法であって、
前記ゲートウェイ装置は、
前記データ管理装置それぞれのアドレスを示す接続情報が記憶される記憶部を備えており、
前記要求メッセージとして、管理対象を識別するための識別子、前記識別子が利用される範囲を示すドメインおよび登録日時を示す登録情報の保存を要求するID登録要求メッセージを受信し、
前記ID登録要求メッセージに含まれる前記識別子と前記ドメインとを結合したインデックスキーを生成し、前記登録情報としてのインデックスを保存する第1のデータ管理装置を、当該生成したインデックスキーに基づき、前記複数のデータ管理装置の中から決定し、
前記決定した第1のデータ管理装置へ、前記接続情報を参照して、前記ID登録要求メッセージを送信し、
前記第1のデータ管理装置は、
前記管理対象を前記分散ID管理システムにおいて一意に特定するための識別子であるルートキーを生成し、
前記ID登録要求メッセージに含まれる前記識別子と前記ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記登録日時を、前記ルートキーに対応付けた情報を前記インデックスとして、自身の記憶部に保存し、
前記ID登録要求メッセージに含まれる前記ドメインと前記ルートキーとを結合したサブルートキーを生成し、前記登録情報としてのルート情報を保存する第2のデータ管理装置を、当該生成したサブルートキーに基づき、前記複数のデータ管理装置の中から決定し、
前記決定した第2のデータ管理装置へ、前記サブルートキーと、前記登録日時と、前記識別子とを含むルート情報登録要求メッセージを送信し、
前記第2のデータ管理装置は、
前記ルート情報登録要求メッセージに含まれる前記サブルートキーおよび前記登録日時を、前記識別子に対応付けた情報を前記ルート情報として、自身の記憶部に保存すること
を特徴とする分散ID管理方法。
【請求項2】
前記分散ID管理システムが、前記ID登録要求メッセージに基づく前記インデックスおよび前記ルート情報の登録を完了した後において、
前記ゲートウェイ装置は、
前記要求メッセージとして、(1)変換元識別子、変換元ドメイン、変換元日時、および、(2)変換先ドメイン、変換先日時、を含み、変換先となる前記識別子の検索を要求するID変換要求メッセージを受信し、
前記ID変換要求メッセージの前記変換元識別子と前記変換元ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーに基づき、前記インデックスを保存する前記第1のデータ管理装置を決定し、
前記ID変換要求メッセージを、前記接続情報を参照して、前記第1のデータ管理装置に送信し、
前記第1のデータ管理装置は、
前記ID変換要求メッセージに含まれる前記変換元識別子と前記変換元ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記変換元日時をキーとして、前記インデックスを参照し、前記ルートキーを取得し、
前記ID変換要求メッセージに含まれる前記変換先ドメインと前記ルートキーとを結合した前記サブルートキーを生成し、当該生成したサブルートキーに基づき、前記ルート情報を保存する前記第2のデータ管理装置を決定し、
前記決定した第2のデータ管理装置へ、前記サブルートキーと、前記変換先日時とを含むID取得要求メッセージを送信し、
前記第2のデータ管理装置は、
前記ID取得要求メッセージに含まれる前記サブルートキーおよび前記変換先日時をキーとして、前記ルート情報を参照し、前記変換先となる前記識別子を取得すること
を特徴とする請求項1に記載の分散ID管理方法。
【請求項3】
前記分散ID管理システムが、前記ID登録要求メッセージに基づく前記インデックスおよび前記ルート情報の登録を完了した後において、
前記ゲートウェイ装置は、
前記要求メッセージとして、(1)更新対象識別子、更新対象ドメイン、更新対象日時、および、(2)更新後識別子、更新日時、を含み、前記更新対象ドメインの前記更新対象日時における前記識別子である前記更新対象識別子を、前記更新日時以降は前記更新後識別子に更新することを要求するID更新要求メッセージを受信し、
前記ID更新要求メッセージの前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーに基づき、前記インデックスを保存する前記第1のデータ管理装置を決定し、
前記ID更新要求メッセージを、前記接続情報を参照して、前記第1のデータ管理装置に送信し、
前記第1のデータ管理装置は、
前記ID更新要求メッセージに含まれる前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記更新対象日時をキーとして、自身の記憶部から前記インデックスを抽出して、前記ルートキーを取得し、前記抽出したインデックスの失効日時として前記更新日時を当該インデックスに登録し、
前記ID更新要求メッセージに含まれる前記更新対象ドメインと前記ルートキーとを結合した前記サブルートキーを生成し、当該生成したサブルートキーに基づき、前記ルート情報を保存する前記第2のデータ管理装置を決定し、
前記決定した第2のデータ管理装置へ、前記サブルートキーと、前記更新日時と、前記更新後識別子とを含むルート情報更新要求メッセージを送信し、
前記ID更新要求メッセージに含まれる前記更新後識別子と前記更新対象ドメインとを結合した新たな前記インデックスキーを生成し、当該生成した新たなインデックスキーに基づき、新たな前記インデックスを保存する第3の前記データ管理装置を決定し、
前記決定した第3のデータ管理装置へ、前記新たなインデックスキーと、前記更新日時と、前記取得したルートキーとを含むインデックス登録要求メッセージを送信し、
前記第2のデータ管理装置は、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時をキーとして、自身の記憶部から前記ルート情報を抽出し、前記抽出したルート情報の失効日時として前記更新日時を登録し、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時を、前記更新後識別子に対応付けた情報を新たな前記ルート情報として、自身の記憶部に保存し、
前記第3のデータ管理装置は、
前記インデックス登録要求メッセージに含まれる前記新たなインデックスキーおよび前記更新日時を、前記ルートキーに対応付けた情報を前記新たなインデックスとして、自身の記憶部に保存すること
を特徴とする請求項1に記載の分散ID管理方法。
【請求項4】
クライアント装置から要求メッセージを受信し、前記受信した要求メッセージを複数のデータ管理装置のうちのいずれかに振り分けるゲートウェイ装置と、前記振り分けられた前記要求メッセージを受信し、前記要求メッセージに示される処理を実行する前記複数のデータ管理装置とを備える分散ID管理システムの分散ID管理方法であって、
前記複数のデータ管理装置それぞれは、通信可能に接続され、
前記ゲートウェイ装置および前記複数のデータ管理装置は、前記データ管理装置それぞれのアドレスを示す接続情報と、前記データ管理装置それぞれに対応したハッシュ値を示すノードIDとが格納されるノード情報が記憶される記憶部をそれぞれ備えており、
前記ゲートウェイ装置は、
前記要求メッセージとして、(1)管理対象を識別するための第1(i=1)の識別子、前記第1の識別子が利用される範囲を示す第1(i=1)のドメイン、および登録日時を示す第1(i=1)の登録情報と、(2)前記第1の識別子に示される管理対象と同一の管理対象を示す他の識別子である第2(i=2)の識別子、前記第2の識別子が利用される範囲を示す第2(i=2)のドメイン、および登録日時を示す第2(i=2)の登録情報と、を少なくとも含み、(i)前記第1の識別子に示される管理対象と同一の管理対象を示す識別子である第i(当該iは3以上の整数)の識別子、当該第iの識別子が利用される範囲を示す第i(当該iは3以上の整数)のドメイン、および登録日時を示す第i(当該iは3以上の整数)の登録情報と、を含むことができる情報の登録処理を要求するID登録要求メッセージを受信するステップと、
前記ID登録要求メッセージの先頭の識別子である前記第1の識別子と前記第1のドメインとを結合したインデックスキーを生成するステップと、
当該生成したインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、振り分け先となる第1の前記データ管理装置を決定するステップと、
前記決定した第1のデータ管理装置に、前記ノード情報の前記接続情報を参照して、前記ID登録要求メッセージを送信するステップと、を実行し、
前記第1のデータ管理装置は、
前記ID登録要求メッセージを受信するステップと、
前記管理対象を前記分散ID管理システムにおいて一意に特定するための識別子であるルートキーを生成するステップと、
前記ID登録要求メッセージに基づき、第i(i=1以上の整数)の識別子と第i(i=1以上の整数)のドメインとを結合した第i(i=1以上の整数)インデックスキーを生成するステップと、
当該生成した第iインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記第iインデックスキーを含むインデックスである第iインデックスの登録先を第(2×i−1)の前記データ管理装置に決定するステップと、
前記第iインデックスキー、前記登録日時および前記ルートキーを含むインデックス登録要求メッセージを生成し、前記第(2×i−1)のデータ管理装置に送信するステップと、
前記第iのドメインと前記ルートキーとを結合した第iサブルートキーを生成するステップと、
当該生成した第iサブルートキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記第iサブルートキーを含むルート情報である第iルート情報の登録先を第(2×i)の前記データ管理装置に決定するステップと、
前記第iサブルートキー、前記登録日時および前記第iの識別子を含むルート情報登録要求メッセージを生成し、前記第(2×i)のデータ管理装置に送信するステップと、を実行し、
前記第(2×i−1)のデータ管理装置は、
前記インデックス登録要求メッセージを受信するステップと、
前記インデックス登録要求メッセージに基づき、前記第iインデックスキーおよび登録日時を前記ルートキーに対応付けた情報である前記第iインデックスを、自身の記憶部に登録するステップと、を実行し、
前記第(2×i)のデータ管理装置は、
前記ルート情報登録要求メッセージを受信するステップと、
前記ルート情報登録要求メッセージに基づき、前記第iサブルートキーおよび登録日時を前記第iの識別子に対応付けた情報である前記第iルート情報を、自身の記憶部に登録するステップと、を実行すること
を特徴とする分散ID管理方法。
【請求項5】
前記分散ID管理システムが、前記ID登録要求メッセージに基づく前記インデックスおよび前記ルート情報の登録を完了した後において、
前記ゲートウェイ装置は、
前記要求メッセージとして、(1)変換元となる第1の識別子、変換元となる第1のドメイン、変換元の日時である変換元日時、および、(2)変換先となる第2のドメイン、変換先の日時である変換先日時、を含み、変換先となる第2の識別子の検索を要求するID変換要求メッセージを受信するステップと、
前記ID変換要求メッセージの前記第1の識別子と前記第1のドメインとを結合した前記インデックスキーを生成するステップと、
当該生成したインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記インデックスの登録先である前記データ管理装置を決定するステップと、
前記ID変換要求メッセージを、前記ノード情報の前記接続情報を参照して、当該決定したデータ管理装置に送信するステップと、を実行し、
前記インデックスの登録先であるデータ管理装置は、
前記ID変換要求メッセージを受信するステップと、
前記ID変換要求メッセージに基づき、前記第1の識別子と前記第1のドメインとを結合した前記インデックスキーを生成し、自身の記憶部に登録された前記インデックスを参照し、当該生成したインデックスキーおよび前記変換元日時をキーとして、前記ルートキーを取得するステップと、
前記取得したルートキーと、前記ID変換要求メッセージに含まれる前記第2のドメインとを結合した前記サブルートキーを生成するステップと、
当該生成したサブルートキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記ルート情報の登録先である前記データ管理装置を決定するステップと、
前記サブルートキーおよび前記ID変換要求メッセージに含まれる前記変換先日時を含むID取得要求メッセージを生成し、当該決定したデータ管理装置に送信するステップと、を実行し、
前記ルート情報の登録先であるデータ管理装置は、
前記ID取得要求メッセージを受信するステップと、
自身の記憶部に登録されたルート情報を参照し、前記ID取得要求メッセージに含まれる前記サブルートキーおよび前記変換先日時をキーとして、前記変換先となる第2の識別子を取得するステップと、
前記変換先となる第2の識別子を含むID取得応答メッセージを生成し、前記インデックスの登録先であるデータ管理装置に送信するステップと、を実行し、
前記インデックスの登録先であるデータ管理装置は、
前記変換先となる第2の識別子を含むID取得応答メッセージを受信するステップと、
前記変換先となる第2の識別子を含むID変換応答メッセージを生成し、前記ゲートウェイ装置を介して、前記クライアントに送信するステップと、を実行すること
を特徴とする請求項4に記載の分散ID管理方法。
【請求項6】
前記分散ID管理システムが、前記ID登録要求メッセージに基づく前記インデックスおよび前記ルート情報の登録を完了した後において、
前記ゲートウェイ装置は、
前記要求メッセージとして、(1)更新対象識別子、更新対象ドメイン、更新対象日時、および、(2)更新後識別子、更新日時、を含み、前記更新対象ドメインの前記更新対象日時における前記識別子である前記更新対象識別子を、前記更新日時以降は前記更新後識別子に更新することを要求するID更新要求メッセージを受信するステップと、
前記ID更新要求メッセージの前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成するステップと、
当該生成したインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記インデックスの登録先である前記データ管理装置を決定するステップと、
前記ID更新要求メッセージを、前記接続情報を参照して、当該決定したデータ管理装置に送信するステップと、を実行し、
前記インデックスの登録先であるデータ管理装置は、
前記ID更新要求メッセージを受信するステップと、
前記ID更新要求メッセージに含まれる前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記更新対象日時をキーとして、自身の記憶部から前記インデックスを抽出して、前記ルートキーを取得し、前記抽出したインデックスの失効日時として前記更新日時を当該インデックスに登録するステップと、
前記ID更新要求メッセージに含まれる前記更新対象ドメインと前記ルートキーとを結合した前記サブルートキーを生成するステップと、
当該生成したサブルートキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記ルート情報の登録先である前記データ管理装置を決定するステップと、
当該決定したデータ管理装置へ、前記サブルートキーと、前記更新日時と、前記更新後識別子とを含むルート情報更新要求メッセージを送信するステップと、
前記ID更新要求メッセージに含まれる前記更新後識別子と前記更新対象ドメインとを結合した新たな前記インデックスキーを生成するステップと、
当該生成した新たなインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、新たな前記インデックスの登録先であるデータ管理装置を決定するステップと、
当該決定したデータ管理装置へ、前記新たなインデックスキーと、前記更新日時と、前記取得したルートキーとを含む第2のインデックス登録要求メッセージを送信するステップと、を実行し、
前記ルート情報の登録先であるデータ管理装置は、
前記ルート情報更新要求メッセージを受信するステップと、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時をキーとして、自身の記憶部から前記ルート情報を抽出し、前記抽出したルート情報の失効日時として前記更新日時を登録するステップと、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時を、前記更新後識別子に対応付けた情報を新たな前記ルート情報として、自身の記憶部に登録するステップと、を実行し、
前記新たなインデックスの登録先であるデータ管理装置は、
前記第2のインデックス登録要求メッセージを受信するステップと、
前記第2のインデックス登録要求メッセージに含まれる前記新たなインデックスキーおよび前記更新日時を、前記ルートキーに対応付けた情報を前記新たなインデックスとして、自身の記憶部に登録するステップと、を実行すること
を特徴とする請求項4に記載の分散ID管理方法。
【請求項7】
クライアント装置から要求メッセージを受信し、前記受信した要求メッセージを複数のデータ管理装置のうちのいずれかに振り分けるゲートウェイ装置と、前記振り分けられた前記要求メッセージを受信し、前記要求メッセージに示される処理を実行する前記複数のデータ管理装置とを備える分散ID管理システムであって、
前記ゲートウェイ装置は、
前記データ管理装置それぞれのアドレスを示す接続情報が記憶される記憶部と、
前記要求メッセージとして、管理対象を識別するための識別子、前記識別子が利用される範囲を示すドメインおよび登録日時を示す登録情報の保存を要求するID登録要求メッセージを受信する送受信部と、
前記ID登録要求メッセージに含まれる前記識別子と前記ドメインとを結合したインデックスキーを生成し、前記登録情報としてのインデックスを保存する第1のデータ管理装置へ、前記接続情報を参照して、前記ID登録要求メッセージを送信するID登録転送部と、
前記第1のデータ管理装置を、前記ID登録転送部が生成した前記インデックスキーに基づき、前記複数のデータ管理装置の中から決定するノード決定部と、を備え、
前記第1のデータ管理装置は、
前記管理対象を前記分散ID管理システムにおいて一意に特定するための識別子であるルートキーを生成するルートキー生成部と、
前記ID登録要求メッセージに含まれる前記識別子と前記ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記登録日時を、前記ルートキーに対応付けた情報を前記インデックスとして、自身の記憶部に保存し、
前記ID登録要求メッセージに含まれる前記ドメインと前記ルートキーとを結合したサブルートキーを生成し、前記登録情報としてのルート情報を保存する第2のデータ管理装置へ、前記サブルートキーと、前記登録日時と、前記識別子とを含むルート情報登録要求メッセージを送信するID登録処理部と、
前記第2のデータ管理装置を、前記ID登録処理部が生成した前記サブルートキーに基づき、前記複数のデータ管理装置の中から決定するノード決定部と、を備え、
前記第2のデータ管理装置は、
前記ルート情報登録要求メッセージに含まれる前記サブルートキーおよび前記登録日時を、前記識別子に対応付けた情報を前記ルート情報として、自身の記憶部に保存するルート情報登録処理部と、を備えること
を特徴とする分散ID管理システム。
【請求項8】
前記ゲートウェイ装置は、さらに、ID変換転送部を備えており、
前記ゲートウェイ装置の前記送受信部が、
前記要求メッセージとして、(1)変換元識別子、変換元ドメイン、変換元日時、および、(2)変換先ドメイン、変換先日時、を含み、変換先となる前記識別子の検索を要求するID変換要求メッセージを受信し、
前記ID変換転送部が、
前記ID変換要求メッセージの前記変換元識別子と前記変換元ドメインとを結合した前記インデックスキーを生成し、前記インデックスを保存する前記第1のデータ管理装置を、当該生成したインデックスキーに基づき、前記ノード決定部を介して決定し、
前記ID変換要求メッセージを、前記接続情報を参照して、前記決定した第1のデータ管理装置に送信し、
前記第1のデータ管理装置は、さらに、ID変換処理部を備えており、
前記ID変換処理部が、
前記ID変換要求メッセージに含まれる前記変換元識別子と前記変換元ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記変換元日時をキーとして、前記インデックスを参照し、前記ルートキーを取得し、
前記ID変換要求メッセージに含まれる前記変換先ドメインと前記ルートキーとを結合した前記サブルートキーを生成し、前記ルート情報を保存する前記第2のデータ管理装置を、当該生成したサブルートキーに基づき、前記ノード決定部を介して決定し、
前記サブルートキーと、前記変換先日時とを含むID取得要求メッセージを、前記決定した第2のデータ管理装置に送信し、
前記第2のデータ管理装置は、さらに、ID取得処理部を備えており、
前記ID取得処理部が、
前記ID取得要求メッセージに含まれる前記サブルートキーおよび前記変換先日時をキーとして、前記ルート情報を参照し、前記変換先となる識別子を取得すること
を特徴とする請求項7に記載の分散ID管理システム。
【請求項9】
前記ゲートウェイ装置は、さらに、ID更新転送部を備えており、
前記ゲートウェイ装置の前記送受信部が、
前記要求メッセージとして、(1)更新対象識別子、更新対象ドメイン、更新対象日時、および、(2)更新後識別子、更新日時、を含み、前記更新対象ドメインの前記更新対象日時における前記識別子である前記更新対象識別子を、前記更新日時以降は前記更新後識別子に更新することを要求するID更新要求メッセージを受信し、
前記ID更新転送部が、
前記ID更新要求メッセージの前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーに基づき、前記インデックスを保存する前記第1のデータ管理装置を決定し、
前記ID更新要求メッセージを、前記接続情報を参照して、前記第1のデータ管理装置に送信し、
前記第1のデータ管理装置は、さらに、ID更新処理部を備えており、
前記ID更新処理部が、
前記ID更新要求メッセージに含まれる前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記更新対象日時をキーとして、自身の記憶部から前記インデックスを抽出して、前記ルートキーを取得し、前記抽出したインデックスの失効日時として前記更新日時を当該インデックスに登録し、
前記ID更新要求メッセージに含まれる前記更新対象ドメインと前記ルートキーとを結合した前記サブルートキーを生成し、当該生成したサブルートキーに基づき、前記ルート情報を保存する前記第2のデータ管理装置を決定し、
前記決定した第2のデータ管理装置へ、前記サブルートキーと、前記更新日時と、前記更新後識別子とを含むルート情報更新要求メッセージを送信し、
前記ID更新要求メッセージに含まれる前記更新後識別子と前記更新対象ドメインとを結合した新たな前記インデックスキーを生成し、当該生成した新たなインデックスキーに基づき、新たな前記インデックスを保存する第3の前記データ管理装置を決定し、
前記決定した第3のデータ管理装置へ、前記新たなインデックスキーと、前記更新日時と、前記取得したルートキーとを含むインデックス登録要求メッセージを送信し、
前記第2のデータ管理装置は、さらに、ルート情報更新処理部を備えており、
前記ルート情報更新処理部が、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時をキーとして、自身の記憶部から前記ルート情報を抽出し、前記抽出したルート情報の失効日時として前記更新日時を登録し、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時を、前記更新後識別子に対応付けた情報を新たな前記ルート情報として、自身の記憶部に保存し、
前記第3のデータ管理装置は、インデックス登録処理部を備えており、
前記インデックス登録処理部が、
前記インデックス登録要求メッセージに含まれる前記新たなインデックスキーおよび前記更新日時を、前記ルートキーに対応付けた情報を前記新たなインデックスとして、自身の記憶部に保存すること
を特徴とする請求項7に記載の分散ID管理システム。
【請求項10】
クライアント装置から要求メッセージを受信し、前記受信した要求メッセージを複数のデータ管理装置のうちのいずれかに振り分けるゲートウェイ装置と、前記振り分けられた前記要求メッセージを受信し、前記要求メッセージに示される処理を実行する前記複数のデータ管理装置とを備える分散ID管理システムであって、
前記複数のデータ管理装置それぞれは、通信可能に接続され、
前記ゲートウェイ装置および前記複数のデータ管理装置は、前記データ管理装置それぞれのアドレスを示す接続情報と、前記データ管理装置それぞれに対応したハッシュ値を示すノードIDとが格納されるノード情報が記憶される記憶部をそれぞれ備えており、
前記ゲートウェイ装置は、
前記要求メッセージとして、(1)管理対象を識別するための第1(i=1)の識別子、前記第1の識別子が利用される範囲を示す第1(i=1)のドメイン、および登録日時を示す第1(i=1)の登録情報と、(2)前記第1の識別子に示される管理対象と同一の管理対象を示す他の識別子である第2(i=2)の識別子、前記第2の識別子が利用される範囲を示す第2(i=2)のドメイン、および登録日時を示す第2(i=2)の登録情報と、を少なくとも含み、(i)前記第1の識別子に示される管理対象と同一の管理対象を示す識別子である第i(当該iは3以上の整数)の識別子、当該第iの識別子が利用される範囲を示す第i(当該iは3以上の整数)のドメイン、および登録日時を示す第i(当該iは3以上の整数)の登録情報と、を含むことができる情報の登録処理を要求するID登録要求メッセージを受信する送受信部と、
前記ID登録要求メッセージの先頭の識別子である前記第1の識別子と前記第1のドメインとを結合したインデックスキーを生成し、前記ゲートウェイ装置のノード決定部が決定した振り分け先となる第1のデータ管理装置に、前記ノード情報の前記接続情報を参照して、前記ID登録要求メッセージを送信するID登録転送部と、
前記第1のデータ管理装置を、前記ID登録転送部が生成したインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記振り分け先となる前記第1の前記データ管理装置を決定する前記ノード決定部と、
前記第1のデータ管理装置は、
前記ID登録要求メッセージを受信する送受信部と、
前記管理対象を前記分散ID管理システムにおいて一意に特定するための識別子であるルートキーを生成するルートキー生成部と、
前記ID登録要求メッセージに基づき、第i(i=1以上の整数)の識別子と第i(i=1以上の整数)のドメインとを結合した第i(i=1以上の整数)インデックスキーを生成し、
前記第iインデックスキー、前記登録日時および前記ルートキーを含むインデックス登録要求メッセージを生成し、前記第iインデックスキーを含むインデックスである第iインデックスの登録先である第(2×i−1)のデータ管理装置に送信し、
前記第iのドメインと前記ルートキーとを結合した第iサブルートキーを生成し、
前記第iサブルートキー、前記登録日時および前記第iの識別子を含むルート情報登録要求メッセージを生成し、前記第iサブルートキーを含むルート情報である第iルート情報の登録先である第(2×i)のデータ管理装置に送信するID登録処理部と、
前記ID登録処理部が生成した前記第iインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記第iインデックスの登録先を前記第(2×i−1)のデータ管理装置に決定し、
前記ID登録処理部が生成した前記第iサブルートキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記第iルート情報の登録先を前記第(2×i)のデータ管理装置に決定するノード決定部と、を備え、
前記第(2×i−1)のデータ管理装置は、
前記インデックス登録要求メッセージを受信する送受信部と、
前記インデックス登録要求メッセージに基づき、前記第iインデックスキーおよび登録日時を前記ルートキーに対応付けた情報である前記第iインデックスを、自身の記憶部に登録するインデックス登録処理部と、を備え、
前記第(2×i)のデータ管理装置は、
前記ルート情報登録要求メッセージを受信する送受信部と、
前記ルート情報登録要求メッセージに基づき、前記第iサブルートキーおよび登録日時を前記第iの識別子に対応付けた情報である前記第iルート情報を、自身の記憶部に登録するルート情報登録処理部と、を備えること
を特徴とする分散ID管理システム。
【請求項11】
前記ゲートウェイ装置は、さらに、ID変換転送部を備えており、
前記ゲートウェイ装置の送受信部が、
前記要求メッセージとして、(1)変換元となる第1の識別子、変換元となる第1のドメイン、変換元の日時である変換元日時、および、(2)変換先となる第2のドメイン、変換先の日時である変換先日時、を含み、変換先となる第2の識別子の検索を要求するID変換要求メッセージを受信し、
前記ID変換転送部が、
前記ID変換要求メッセージの前記第1の識別子と前記第1のドメインとを結合した前記インデックスキーを生成し、
前記ノード決定部を介して、当該生成したインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記インデックスの登録先である前記データ管理装置を決定し、
前記ID変換要求メッセージを、前記ノード情報の前記接続情報を参照して、前記決定したインデックスの登録先である前記データ管理装置に送信し、
前記インデックスの登録先であるデータ管理装置は、さらに、ID変換処理部を備えており、
前記ID変換処理部が、
受信した前記ID変換要求メッセージに基づき、前記第1の識別子と前記第1のドメインとを結合した前記インデックスキーを生成し、自身の記憶部に登録された前記インデックスを参照し、当該生成したインデックスキーおよび前記変換元日時をキーとして、前記ルートキーを取得し、
前記取得したルートキーと、前記ID変換要求メッセージに含まれる前記第2のドメインとを結合した前記サブルートキーを生成し、
前記ノード決定部を介して、当該生成したサブルートキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記ルート情報の登録先である前記データ管理装置を決定し、
前記サブルートキーおよび前記ID変換要求メッセージに含まれる前記変換先日時を含むID取得要求メッセージを生成し、前記決定したルート情報の登録先である前記データ管理装置に送信し、
前記ルート情報の登録先であるデータ管理装置は、さらに、ID取得処理部を備えており、
前記ID取得処理部が、
自身の記憶部に登録されたルート情報を参照し、受信した前記ID取得要求メッセージに含まれる前記サブルートキーおよび前記変換先日時をキーとして、前記変換先となる第2の識別子を取得し、
前記変換先となる第2の識別子を含むID取得応答メッセージを生成し、前記インデックスの登録先であるデータ管理装置に送信し、
前記インデックスの登録先であるデータ管理装置の前記ID変換処理部は、
受信した前記ID取得応答メッセージに基づき、前記変換先となる第2の識別子を含むID変換応答メッセージを生成し、前記ゲートウェイ装置を介して、前記クライアントに送信すること
を特徴とする請求項10に記載の分散ID管理システム。
【請求項12】
前記ゲートウェイ装置は、さらに、ID更新転送部を備えており、
前記ゲートウェイ装置の送受信部が、
前記要求メッセージとして、(1)更新対象識別子、更新対象ドメイン、更新対象日時、および、(2)更新後識別子、更新日時、を含み、前記更新対象ドメインの前記更新対象日時における前記識別子である前記更新対象識別子を、前記更新日時以降は前記更新後識別子に更新することを要求するID更新要求メッセージを受信し、
前記ID更新転送部が、
前記ID更新要求メッセージの前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成し、
前記ノード決定部を介して、当該生成したインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記インデックスの登録先である前記データ管理装置を決定し、
前記ID更新要求メッセージを、前記接続情報を参照して、当該決定したデータ管理装置に送信し、
前記インデックスの登録先であるデータ管理装置は、さらに、ID更新処理部を備えており、
前記ID更新処理部が、
前記ID更新要求メッセージに含まれる前記更新対象識別子と前記更新対象ドメインとを結合した前記インデックスキーを生成し、当該生成したインデックスキーおよび前記更新対象日時をキーとして、自身の記憶部から前記インデックスを抽出して、前記ルートキーを取得し、前記抽出したインデックスの失効日時として前記更新日時を当該インデックスに登録し、
前記ID更新要求メッセージに含まれる前記更新対象ドメインと前記ルートキーとを結合した前記サブルートキーを生成し、
当該生成したサブルートキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、前記ルート情報の登録先である前記データ管理装置を決定し、
当該決定したデータ管理装置へ、前記サブルートキーと、前記更新日時と、前記更新後識別子とを含むルート情報更新要求メッセージを送信し、
前記ID更新要求メッセージに含まれる前記更新後識別子と前記更新対象ドメインとを結合した新たな前記インデックスキーを生成し、
当該生成した新たなインデックスキーにハッシュ関数を適用してハッシュ値を算出し、前記ノード情報の前記ノードIDを参照して、新たな前記インデックスの登録先であるデータ管理装置を決定し、
当該決定したデータ管理装置へ、前記新たなインデックスキーと、前記更新日時と、前記取得したルートキーとを含む第2のインデックス登録要求メッセージを送信し、
前記ルート情報の登録先であるデータ管理装置は、さらに、ルート情報更新処理部を備えており、
前記ルート情報更新処理部が、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時をキーとして、自身の記憶部から前記ルート情報を抽出し、前記抽出したルート情報の失効日時として前記更新日時を登録し、
前記ルート情報更新要求メッセージに含まれる前記サブルートキーおよび前記更新日時を、前記更新後識別子に対応付けた情報を新たな前記ルート情報として、自身の記憶部に登録し、
前記新たなインデックスの登録先であるデータ管理装置は、インデックス登録処理部を備えており、
前記インデックス登録処理部は、
前記第2のインデックス登録要求メッセージに含まれる前記新たなインデックスキーおよび前記更新日時を、前記ルートキーに対応付けた情報を前記新たなインデックスとして、自身の記憶部に登録すること
を特徴とする請求項10に記載の分散ID管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公開番号】特開2013−97441(P2013−97441A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−237385(P2011−237385)
【出願日】平成23年10月28日(2011.10.28)
【出願人】(000005108)株式会社日立製作所 (27,607)