JP2007072524A - データサーバ及びデータ管理方法及びプログラム - Google Patents
データサーバ及びデータ管理方法及びプログラム Download PDFInfo
- Publication number
- JP2007072524A JP2007072524A JP2005255520A JP2005255520A JP2007072524A JP 2007072524 A JP2007072524 A JP 2007072524A JP 2005255520 A JP2005255520 A JP 2005255520A JP 2005255520 A JP2005255520 A JP 2005255520A JP 2007072524 A JP2007072524 A JP 2007072524A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data server
- server
- master
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】データサーバのレプリカを含んだシステムにおいて、クライアントがデータサーバのレプリカを知らなくても、レプリカによる冗長性が提供できるようにする。
【解決手段】レプリカのデータサーバC10aは、他のデータサーバA10から問い合わせられた要求対象データをデータ管理部12から検索し、該当するデータが検索できた場合に、当該データサーバC10aに対応するマスタのデータサーバB10が起動しているか否かを判定し、マスタのデータサーバB10が起動していると判定された場合には、マスタのデータサーバB10が保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバA10に対して提供し、マスタのデータサーバB10が起動していないと判定された場合は、当該データサーバ自身の保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバA10に対して提供する。
【選択図】図9
【解決手段】レプリカのデータサーバC10aは、他のデータサーバA10から問い合わせられた要求対象データをデータ管理部12から検索し、該当するデータが検索できた場合に、当該データサーバC10aに対応するマスタのデータサーバB10が起動しているか否かを判定し、マスタのデータサーバB10が起動していると判定された場合には、マスタのデータサーバB10が保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバA10に対して提供し、マスタのデータサーバB10が起動していないと判定された場合は、当該データサーバ自身の保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバA10に対して提供する。
【選択図】図9
Description
本発明は、データがサーバから別のサーバへと移転した場合に、ユーザが元のサーバへそのデータを要求してもそのデータが取得できるようにするための技術に関し、特にデータサーバの冗長性向上のための技術に関する。
この分野の従来技術として、特許文献1に示される技術がある。この技術では、データ管理システムが、各ファイルに対してハンドルと呼ぶ一意な識別子を付与して管理している。そして、そのファイルのURLとして、従来一般的なファイルの所在場所(所在サーバとそのサーバ内でのファイルのパス名の組合せ)を示したURLではなく、当該システムのサーバ名とファイルのハンドルとを指定した仮想URLをユーザに提供する。ユーザがその仮想URLを用いて当該システムにアクセスすると、システムはそのハンドルからファイルの所在場所を特定し、ユーザに提供する。このような仕組みにより、ファイルがデータ管理システム上のどの場所(ディレクトリ)に移動しても、ユーザからの要求に応じてそのファイルを見つけることができる。
この従来技術は、1つのデータ管理システム内で管理されているファイル・コンテンツの所在場所解決に限定されており、例えばファイル・コンテンツの所在場所がネットワーク上の複数のデータ管理システムの中で移動してしまうようなケースには対応できない。
例えばウェブサーバでは、サーバに障害が起こった場合でもサービスが続けられるように、ウェブサーバの複製(レプリカあるいはミラーサーバと呼ばれる)をネットワーク上に設ける場合が少なくない。データを提供するサーバについても、冗長性を高めるためには同様にサーバの複製を設けることが有益であると考えられる。
この観点での従来技術として、特許文献2には、専用のクライアントを用い、マスタサーバが停止していた場合は、専用クライアントが、そのマスタサーバに対応するものとしてあらかじめ登録されたスレーブサーバ(複製)にアクセスを試みる技術が示される。しかし、この方式は、あらかじめサーバを記憶している専用のクライアントを用いる必要があった。したがって、例えば新たにマスタサーバやスレーブサーバを追加した場合には、専用クライアントにその情報を知らせる必要があり、繁雑な作業が必要であった。
本発明は、クライアントがデータサーバに対応するレプリカのサーバの情報を知らなくても、複製サーバによる冗長性が提供できるようにする。
本発明の1つの側面では、ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、データ群を保持するデータ管理部、他のデータサーバから問い合わせられた要求対象データをデータ管理部から検索し、該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバが起動しているか否かを判定するマスタ起動状態判定部、マスタのデータサーバが起動していると判定された場合には、マスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供し、マスタのデータサーバが起動していないと判定された場合は、当該データサーバ自身の保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供する応答部、として機能させるためのプログラムを提供する。
本発明の別の側面では、ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、データ群を保持するデータ管理部、他のデータサーバから受けたデータ問合せに示される要求対象データをデータ管理部から検索し、該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバの識別情報を前記他のデータサーバに対して提供する応答部、として機能させるためのプログラムを提供する。
本発明の更に別の側面では、ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、データ群を保持するデータ管理部、クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部、前記要求処理部によるデータ問合せに対し、前記他のデータサーバに対応するマスタのデータサーバの識別情報の回答を該他のデータサーバから受けた場合、該マスタのデータサーバの識別情報を用いて該マスタのデータサーバが起動しているか否かを調べ、起動している場合はマスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供し、起動していない場合は前記他のデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供するリダイレクト制御部、として機能させるためのプログラムを提供する。
まず図1を参照して、本発明に係るデータサーバの冗長構成が適用されるデータ管理システムの一例につき、その概略構成を説明する。図1に示すように、本システムは、LAN(ローカル・エリア・ネットワーク)やインターネットなどのネットワーク20に接続された複数のデータサーバ10−1,10−2,...(以下では、区別の必要のない場合は「データサーバ10」と総称する。データサーバ10内のモジュールについても同様)から構成される。本システムは、ネットワーク20上のクライアント30からのデータ要求に応じ、要求対象のデータを提供する。
各データサーバ10は、データ管理部12、検出部14及び問合せ部16を備えている。データ管理部12には、クライアント30に提供することができる1以上のデータが登録される。ここでデータ管理部12は、登録された各データを、グローバルに一意なデータID(識別情報)と対応づけて管理する。グローバルに一意なデータIDとしては、例えばUUID(Universally Unique IDentifier)又はGUID(Globally Unique IDentifier)と呼ばれる128ビットの識別情報を用いることができる。ちなみに、UUIDは、グローバルな一意性を保証するために、そのUUIDを作成した時刻や作成に使用したマシンに装着されたネットワークカードのMAC(Media Access Control)アドレス等を含んでいる。URL(Uniform Resource Locator)は、データを有するデータサーバ10のホスト名とそのサーバ10において当該データが実際に記憶されている場所を示すパス名とによって当該データを一意に指すのに対し、このシステムのデータIDは、そのようなデータの所在場所の情報とは独立した識別情報である。
図2にデータ管理部12が管理する各データの管理情報のデータ構造を示す。この図に示すように、データ管理部12は、登録された各データにつき、そのデータのデータID102と、データサーバ10内でそのデータを指し示すリンク情報104とを対応づけて管理している。この例ではデータIDはUUIDで表現され、リンク情報104はそのデータのパス名で表現されている。
データ管理部12は、新規のデータを登録する場合、グローバルに一意なデータIDを生成し、これをそのデータの記憶場所を示すリンク情報と対応づけて管理する。また、データ管理部12は、管理していたデータがデータサーバ10から削除された場合には、そのデータの管理情報も削除する。
なお、既にデータIDが付与済みのデータがデータ管理部12に登録される場合(例えばあるデータサーバが管理しているデータを別のデータサーバに移動する場合)には、データ管理部12は、そのデータに対して新たにデータIDを付与することをせず、その既付与のデータIDに対し、そのデータのリンク情報に対応づけて管理する。
検出部14は、ネットワーク20上に存在する他のデータサーバ10を検出する手段である。
問合せ部16は、クライアント30から要求されたデータを有しているか否かを、他のデータサーバ10に対して問い合わせる手段である。また問合せ部16は、他のデータサーバ10の問合せ部16からの問合せに対して回答する機能も備える。
このシステムでは、クライアント30は、本システムに対してデータを要求する場合、図3に示すように、データを管理するデータサーバ10のホスト名112と、そのデータのデータID114とを含む仮想URL110を用いてデータを指定する。当然URLであるため、プロトコル、ポート等の情報も含まれるが、ここでは特に説明しない。グローバルに一意的なデータIDは図3に例示したデータID114の桁数よりも遥かに長くなるため、図3ではその一部を省略して示した。この仮想URLは、「foo.fx.co.jp」という名前のデータサーバが管理している「12345......67890」というデータIDをもつデータを指している。なお、図3の仮想URLのうちホスト名112とデータID114に挟まれた「get」は、データサーバ10が提供するメソッドの名前である。データサーバ10が管理するデータに対して複数種類の操作をクライアント30に認める場合、仮想URLにはその操作を示すメソッドを含めるようにする。逆に言えば、データサーバ10が単に要求されたデータをクライアント30に提供するだけであれば、このようなメソッドの記述は不要である。
クライアント30(例えばウェブブラウザ)が、この仮想URL110を用いてデータ要求を行った場合、ホスト名112が示すサーバに対し、データID114を含んだデータ要求情報が送信されることになる。
次に図4を参照して、データサーバ10がクライアント30からデータ要求情報を受け取ったときの処理手順を説明する。以下では、便宜上、データサーバ10−1の処理として説明するが、他のデータサーバもこれと同様の処理を行う。
この手順では、まずデータサーバ10−1は、クライアント30からのデータ要求情報からデータIDを抽出し(S100)、データ管理部12−1からそのデータIDに対応する実データのリンク情報を検索する(S102)。そのデータIDに対応するリンク情報が検索できた場合(S104の判定結果が肯定(Y))、データサーバ10−1は、そのリンク情報が指し示すデータの実体をデータサーバ10−1内の記憶装置から取得し、クライアント30に提供する(S114)。
一方、データIDに対応するリンク情報がなかった場合(S104の判定結果が否定(N))、データサーバ10−1は検出部14−1に、本システムを構成する他のデータサーバ10−2他の検出を指示し、検出部14−1はこの指示に応じて他のデータサーバの検出を行う(S106)。検出部14−1による他のデータサーバ10−2他の検出は、例えば、他サーバ検出用の所定のメッセージを検出部14−1からネットワーク20へブロードキャストすることで行うことができる。各データサーバ10の検出部14は、他サーバ検出用のメッセージを認識し、それに対して応答するためのプロトコルを有している。すなわち、他サーバ検出用メッセージを受け取った他のデータサーバ10−2の検出部14−2は、このプロトコルに従い、当該他のデータサーバ10−2のサーバID(識別情報)を含んだ応答を返す。サーバIDとしては、例えばIPアドレスや、ホスト名を用いることができる。他サーバ検出用のメッセージを発信した検出部14−1は、他のデータサーバ10−2からの応答を受け取り、その応答に含まれるサーバIDを取得する。これにより、本システムを構成する他のデータサーバ10−2を見つけることができる。
他のデータサーバ10−2が見つかると、データサーバ10−1は、問合せ部16−1に、見つけた他のデータサーバ10−2に対する問合せを指示する。この指示に応じ、問合せ部16−1は、クライアント30からのデータ要求に含まれるデータ識別情報を含んだデータ問合せをデータサーバ10−2に送り、そのデータ識別情報に対応するデータを持っているか否かを問い合わせる(S108)。この問合せを受けたデータサーバ10−2の問合せ部16−2の動作については、後で詳しく説明する。
この問合せの結果、問合せ先の他のデータサーバ10−2が当該データを持っていないことが判明した場合は(S110の判定結果が否定(N))、他のデータサーバの検出(S106)及びそれに対する問合せ(S108)を繰り返す。当該データを持つデータサーバ10が見つかるまで、ステップS106及びS108が繰り返される。
なお、図4では、他のデータサーバをステップS106で1つ検出してはステップS108でそれに対して問合せを行うという手順を示したが、これに限らず、例えばステップS106でブロードキャストにより検出可能なデータサーバ10を全て検出して記憶し、それら記憶した各データサーバ10に対しステップS108で順に問合せを行うようにしてももちろんよい。
問合せ先の他のデータサーバ10−2が当該データを持っていることが判明した場合は(S110の判定結果が肯定(Y))、データサーバ10−1はデータサーバ10−2のサーバIDを含んだリダイレクト情報をクライアント30に返す(S112)。このリダイレクト情報の返送は、例えば、一般的なHTTP(HyperText Transfer Protocol)リダイレクトの方式に従って行うことができる。すなわち、データサーバ10−1は、302(Found)等のリダイレクトを示すステータスコードと、リダイレクト先のURLを含んだLocationフィールドと、を含むリダイレクト情報をクライアント30に返す。なお、リダイレクト情報に含まれるリダイレクト先のURLは、リダイレクト先のデータサーバ10−2のサーバIDと要求対象データのデータ識別情報とを含んだ上述の仮想URLである。リダイレクト先のサーバIDは問合せの際には既知であり、要求対象データのデータ識別情報も既知なので、データサーバ10−1はそのような仮想URLを生成できる。
このリダイレクト情報を受けたクライアント30は、HTTPに従って、リダイレクト情報中のサーバIDが示すデータサーバ10−2に対し、同じくリダイレクト情報中のデータ識別情報を含んだデータ要求を送る。
次に、他のデータサーバから問合せを受けたときのデータサーバの処理手順を、図5を参照して説明する。以下では、便宜上、データサーバ10−2の処理として説明するが、他のデータサーバもこれと同様の処理を行う。
データサーバ10−2の問合せ部16は、他のデータサーバ10−1の問合せ部16からデータ問合せを受けた場合、そのデータ問合せの情報の中から対象データのデータIDを取り出し(S200)、そのデータIDに対応するリンク情報をデータ管理部12−2から検索する(S202)。この検索の結果、データ管理部12−2からそのデータIDに対応するリンク情報が検索できた場合(S204の判定結果が肯定(Y))、問合せ部16−2は、問合せ対象のデータが存在する旨を示すメッセージを問合せ元のデータサーバ10−1に返す(S206)。一方、検索できなかった場合(S204の判定結果が否定(N))、問合せ部16−2は、問合せ対象のデータが存在しない旨を示すメッセージを問合せ元のデータサーバ10−1に返す(S208)。
なお、ステップS206では、問合せ対象のデータが存在する旨を示すメッセージを問合せ元に返す代わりに、問合せ対象のデータの仮想URL(すなわちそのデータを持つデータサーバ10−2のサーバIDと、そのデータのデータ識別情報を含んだ仮想URL)を返してもよい。この場合、問合せ元のデータサーバ10−1は、ステップS112において、データサーバ10−2から返された仮想URLをクライアント30に返せばよい。
以上説明したようなデータ管理システムの動作を、図6〜図8を参照して説明する。
図6に示すように、クライアント30からデータサーバ10−1に送ったデータ要求(1)の対象データがデータサーバ10−1に存在する場合は、その対象データがデータサーバ10−1からクライアント30に提供される(2)。
一方、図7に示すように、クライアント30からデータサーバ10−1に送ったデータ要求(1)の対象データがデータサーバ10−1に存在しない場合は、検出部14−1が他のデータサーバ10−2を検出し(2)、このデータサーバ10−2に対してデータ問合せを行う(3)。この問合せにより、データサーバ10−2に要求対象データが存在することが判明すると、データサーバ10−1はクライアント30からのデータ要求をデータサーバ10−2にリダイレクトする(4)。このデータサーバ10−2は、リダイレクトされたデータ要求に対して、要求対象データをクライアント30に提供する(5)。
また、図8は、クライアント30の要求するデータがデータサーバ10−1にも10−2にも存在せず、データサーバ10−3に存在する場合を示している。この場合、(2)検出部14−1が検出した他のデータサーバ10−2,10−3のうち、まず問合せ部16−1はサーバ10−2に対し問合せを行い、データは存在しないとの回答を得る(3)。そこで、問合せ部16−1は次のデータサーバ10−3に問合せを行い、データが存在するとの回答を得る(4)。すると、データサーバ10−1は、クライアント30からのデータ要求をデータサーバ10−3にリダイレクトする(5)。データサーバ10−3は、リダイレクトされたデータ要求に対し、要求対象データをクライアント30に提供する(6)。
以上説明したように、このシステムでは、各データサーバ10が、クライアント30から要求されたデータを持つデータサーバ10を探し、見つけたデータサーバ10に対してその要求をリダイレクトする。したがって、特許文献3のような中央管理サーバが無くても要求されたデータを見つけることができたため、サーバ停止によりデータが解決不能になる問題も従来技術に比べて大幅に抑制することができる。
また、このシステムでは、データサーバ10間でデータが移動されデータの所在場所が変わったとしても、クライアント30は既存の仮想URLを用いてデータにアクセスすれば、元々そのデータを管理していたデータサーバ10、すなわち仮想URL中のサーバIDに対応するデータサーバ10がそのアクセス要求を受け取り、現在そのデータを有しているデータサーバ10を探索する。したがって、クライアント30は、既に有している仮想URLをそのまま利用しても、データを取得することができる。
例えば、既存のデータサーバの中には、新たにデータが登録されるなどサーバ上のデータに変更が生じると変更を確認可能なURLをメールでユーザに配布する機能を持つものがある。しかし、このサーバ上のデータが他のサーバへ移動されると、既に配布したURLは利用できなくなってしまう。これに対し、このシステムの仕組みを適用すれば、そのようなケースでも、クライアントはデータ移動前に配布された仮想URLを利用してそのデータを取得することができる。また、管理対象のデータの増大などによりデータサーバ10を分割する必要が出てくることがよくあるが、このような場合でも、このシステムでは、分割前にユーザに配布した仮想URLを分割後にも使用することができる。
次に、以上に例示したデータ管理システムに対し、本発明に係るレプリカ(複製)サーバを適用する場合の実施形態を説明する。
図9に、本実施形態のシステム構成を示す。図9において、図1と同様の構成要素には同一符号を付して説明を省略する。また、図9では、ネットワーク20は省略している。
図9のシステム構成において、データサーバA10及びデータサーバB10は、図1のデータサーバ10と同様のものである。また、データサーバC10aはデータサーバB10のレプリカである。すなわち、データサーバB10とデータサーバC10aとは、所定のタイミングでレプリケーション(ミラーリング或いは複製処理)を行っており、各々のデータ管理部12の中には同じデータの集合が保持されている。レプリカであるデータサーバC10aは、マスタであるデータサーバB10が障害等でクライアント30に対しサービスを提供できない場合に、そのマスタに代わってサービスを提供するよう動作する。このように、本実施形態ではレプリカはあくまで緊急時にマスタの代役を果たすという位置づけである。したがって、データはマスタとレプリカの両方に存在するものの、ユーザには、基本的に、マスタが保持するデータを指し示すアクセス情報(仮想URL)が提供される。したがって、クライアント30からレプリカに対して直接データ要求が送られることは基本的にない。
レプリカのデータサーバC10aは、マスタのデータサーバA10やB10と同様の構成要素すなわちデータ管理部12,検出部14及び問合せ部16に加え、マスタ情報保持部17及び到達先決定部18を備えている。
マスタ情報保持部17は、当該データサーバC10aのマスタであるデータサーバの情報を保持する機能モジュールである。図10に、マスタ情報保持部17が保持する情報の一例を示す。この例では、マスタ情報保持部17は、マスタであるデータサーバのネットワーク20におけるアドレス202(例えばIPアドレス)と、マスタのURL204とを保持している。マスタのURL204は、そのマスタにおけるデータ管理部12のURLであり、そのURLに対してUUIDのデータ識別情報を付けることで、マスタ内のデータを指し示すことができるものである(図3参照)。
到達先決定部18は、他のデータサーバ(例えばデータサーバA10)から問合せが来た場合に、その問合せに対応するデータ要求のリダイレクト先を自分自身(レプリカ)にするのか、自分に対応するマスタにするのかを判定する機能モジュールである。
次に、このシステムの動作を説明する。マスタであるデータサーバA10及びB10の動作は、図1〜図8を用いて説明した本実施形態の前提のシステムでのデータサーバ10の動作と同様でよい。したがって、以下では、レプリカのデータサーバC10aの動作のみを、図11を参照して説明する。
図11の手順は、他のデータサーバから要求対象データの有無の問合せを受けた場合の処理手順を示すものであり、既述の図5の処理手順と同様の処理内容のステップには、同一符号を付してその説明を省略する。なお、レプリカに対してクライアント30から直接データ要求が来ることは基本的にないので、クライアント30からのデータ要求を処理する手順は基本的に不要である。
図11の手順では、データサーバC10aは、他のデータサーバA10から問い合わせられた要求対象データが自身のデータ管理部12にあると判明した場合、マスタ情報保持部17が持つマスタのアドレス202を用いてマスタのデータサーバB10にアクセスし、そのマスタが起動しているかどうかを確認する(S210)。この確認には、例えばpingコマンドなど、既存のプロトコルを用いることができる。そして、この確認処理の結果、マスタが起動しているか否かを判定し(S212)、起動していれば、到達先決定部18がマスタをリダイレクト先と決定し、マスタにある要求対象データを指した仮想URLを作成し、この仮想URLを問合せ元のデータサーバA10に返す(S214)。ここで作成される仮想URLは、マスタのデータサーバB10のサーバID(例えばIPアドレス乃至URL)と、その要求対象データのデータ識別情報を含んだものでよい。
また、ステップS212で、マスタが起動していないと判定した場合、データサーバC10aの到達先決定部18は、自サーバC10aのデータ管理部12にある要求対象データを指し示す仮想URLを作成し、この仮想URLを問合せ元とのデータサーバA10に返す(S216)。
以上に説明したレプリカのデータサーバC10aを備えたデータ管理システムの動作を、図9及び図12を参照して説明する。
図9及び図12は、共に、クライアント30からデータ要求を受けたデータサーバA10が、マスタのデータサーバB10よりもレプリカのデータサーバC10aに対して先に要求対象データの有無を問い合わせた場合に行われる処理の流れを示している。図9はマスタが起動している場合を示し、図12はマスタが起動していない場合を示す。
まず図9に示す処理の流れを説明すると、クライアント30からデータサーバA10に送ったデータ要求(1)の対象データがデータサーバA10に存在しない場合、データサーバA10の検出部14が他のデータサーバC10aを検出し(2)、データサーバC10aに対してデータ問合せを行う(3)。この問合せを受けたデータサーバC10aは、自分のデータ管理部12にその要求対象データがあるかどうかを調べ、要求対象データがある場合は、自分に対応するマスタのデータサーバB10が起動しているかどうかを確認する(4)。この例では、マスタは起動しているので、データサーバC10aは、マスタのデータサーバB10内の要求データを指し示す仮想URLを作成し、これをデータサーバA10に返す(5)。この仮想URLの作成の際、マスタ情報保持部17にあるマスタのURLの情報を用いる。これを受け取ったデータサーバA10は、302(Moved Temporarily)等のリダイレクトを示すステータスコードと、その仮想URLを示したLocationフィールドと、を含むリダイレクト情報をクライアント30に返すことで、データ要求をマスタのデータサーバB10へとリダイレクトする(6)。クライアント30では、ウェブブラウザがそのリダイレクト情報を処理することで、データサーバB10にアクセスする。データサーバB10には、リダイレクトされたデータ要求の対象データが存在するので、その要求対象データをクライアント30に提供する(7)。
一方、図12に示すマスタのデータサーバB10が起動していない場合の流れは、マスタの起動確認(4)までの流れは図9の場合と同様である。図12の流れでは、このマスタの起動確認によりマスタが起動していないので、レプリカであるデータサーバC10aが自分の持っている要求対象データをクライアント30に提供することになる。したがって、データサーバC10aは、自分のデータ管理部12にある要求対象データを指し示す仮想URLを作成し、これをリダイレクト先としてデータサーバA10に通知する(5)。データサーバA10は、この仮想URLを示したリダイレクト情報をクライアント30に提供することで、データ要求をデータサーバC10aにリダイレクトする(6)。この結果、データサーバC10aからクライアント30に要求対象データが提供される(7)。
なお、データサーバA10が、データサーバC10aよりもデータサーバB10に先に問合せを行った場合は、システムは図1〜図8で説明したシステムと同様の振る舞いをする。
以上説明したように、本実施形態に係るレプリカのデータサーバC10aを用いれば、仮にクライアント30からデータ要求を受けたデータサーバA10からレプリカのデータサーバC10aが先に問合せを受けた場合でも、マスタのデータサーバB10が起動していれば、マスタに対してデータ要求がリダイレクトされるので、レプリカは緊急用として取り扱い、データ要求は基本的にマスタに誘導するというシステムのポリシーを実現することができる。このデータ管理システムでは、クライアント30は、マスタとレプリカの対応関係を知らなくても、マスタが起動していればマスタから、マスタが起動していなければレプリカから、要求対象データを取得することができる。
次に、変形例のシステムを説明する。図9〜図12を用いて説明したシステムでは、レプリカのデータサーバC10aがマスタへのデータ要求の誘導のための処理を全て実行した。これに対し、この変形例では、レプリカのデータサーバC10aと問合せ元のデータサーバA10とが協働してその誘導のための処理を実現する。この変形例のシステム構成を図13に示す。図9に示した構成要素と同様の構成要素には同一符号を付して説明を省略する。
図13の構成では、マスタであるデータサーバA10に、到達先決定部19が設けられる。到達先決定部19は、要求対象データの有無を問い合わせた際のレプリカからの回答に応じて、データ要求のリダイレクト先をマスタにするのかレプリカにするのかを決定する。図示は省略したが、同じくマスタであるデータサーバB10にも、到達先決定部19が設けられる。
この変形例でのレプリカのデータサーバC10aの処理手順を図14に示す。図14の手順では、データサーバA10から問い合わせられた要求対象データがデータサーバC10a内にある場合、データサーバC10aは、自分がレプリカであることを示す情報と、マスタ情報保持部17中に保持されるマスタ情報(アドレス及びURL)と、自分のデータ管理部12内にある要求対象データを指し示す仮想URLと、をデータサーバA10に回答する(S220)。これ以外の処理は、図5に示した手順と同様なので、図5の手順と同様の処理内容のステップに同一符号を付すことで説明を省略する。
次に、この変形例でのデータサーバA10の処理手順を、図15及び図16を参照して説明する。
データサーバA10は、クライアント30からデータ要求を受けた場合、図15に示す手順を開始する。図15において、図4の手順のステップと同様の処理内容のステップには同一符号を付して説明を省略する。
図15の手順では、データサーバA10は、要求対象データが自分のデータ管理部12内になかった場合において、問い合わせたデータサーバに要求対象データがあると分かった場合、問い合わせたデータサーバがレプリカかどうかを判定する(S120)。レプリカかどうかは問合せ先からの応答から分かる。レプリカでなければ、図4の手順と同様、その問合せ先のデータサーバにデータ要求をリダイレクトする(S112)。問合せ先がレプリカ(データサーバC10a)であれば、処理は図16の手順に進む。
図16の手順では、データサーバA10の検出部14は、問合せ先のデータサーバC10aからの回答に含まれるマスタ情報(例えばマスタのアドレス)を利用して、マスタのデータサーバB10の検出を試みる(S130)。これによりマスタのデータサーバB10が検出できた場合、そのマスタは起動していると判断できる。この場合、到達先決定部19が、マスタであるデータサーバB10内の要求対象データを指し示す仮想URLを作成し、この仮想URLを含むリダイレクト情報をクライアント30に返すことで、データ要求をマスタへとリダイレクトする(S134)。この仮想URLは、データサーバC10aからの回答に含まれるマスタのURLと、要求対象データのデータ識別情報(UUID)とから作成することができる。また、ステップS132でマスタが検出できなった場合、到達先決定部19は、問合せ先のデータサーバC10a(レプリカ)からの回答に含まれる仮想URLを含んだリダイレクト情報をクライアント30に返すことで、データ要求をレプリカへとリダイレクトする(S136)。
以上の変形例の説明では、レプリカが、自分がレプリカである旨を示す情報、マスタ情報、及び自分の持つ要求対象データを示す仮想URLを問合せ元のデータサーバA10に回答するとしたが、これは必須ではない。レプリカは、自分の持つマスタ情報さえ回答すれば、データサーバA10はそのことを以て問合せ先がレプリカであると認識でき、またレプリカの持つ要求対象データの仮想URLは、レプリカのURLと要求対象データのデータ識別情報とを用いてデータサーバA10が生成することができる。
以上に説明した変形例のデータ管理システムの動作を、図13及び図17を参照して説明する。
図13及び図17は、共に、クライアント30からデータ要求を受けたデータサーバA10が、マスタのデータサーバB10よりもレプリカのデータサーバC10aに対して先に要求対象データの有無を問い合わせた場合に行われる処理の流れを示している。図13はマスタが起動している場合を示し、図17はマスタが起動していない場合を示す。
まず図13に示す処理の流れを説明すると、クライアント30からデータサーバA10に送ったデータ要求(1)の対象データがデータサーバA10に存在しない場合、データサーバA10の検出部14が他のデータサーバC10aを検出し(2)、データサーバC10aに対してデータ問合せを行う(3)。この問合せを受けたデータサーバC10aは、自分のデータ管理部12にその要求対象データがあるかどうかを調べ、要求対象データがある場合は、マスタ情報保持部17が持つマスタ情報をデータサーバA10に返す(4)。要求対象データがない場合は、データサーバC10aはその旨のみをデータサーバA10に回答する。この例では、データサーバC10aが要求対象データを持っているものとする。
この場合、データサーバC10aからマスタ情報を受け取ったデータサーバA10は、そのマスタ情報の示すマスタのデータサーバB10を検出する(5)。そして、検出したデータサーバB10内の要求対象データを指す仮想URLを作成し、この仮想URLを含むリダイレクト情報をクライアント30に返すことで、データ要求をマスタのデータサーバB10へとリダイレクトする(6)。これにより、クライアント30に対し、マスタのデータサーバB10から要求対象データが提供される(7)。
一方、図17に示すマスタのデータサーバB10が起動していない場合の流れは、マスタのデータサーバB10の検出(5)までの流れは図13の場合と同様である。図17の流れでは、このマスタが起動していないため、データサーバA10はマスタを検出できない。そこで、データサーバA10は、レプリカのデータサーバC10aの持つ要求対象データを指す仮想URLを作成し、この仮想URLを含んだリダイレクト情報をクライアント30に返す(6)。これにより、データサーバC10aからクライアント30に要求対象データが提供される(7)。
この変形例でも、上記実施形態と同様の効果を得ることができる。
以上に説明した実施形態及び変形例では、レプリカに対してクライアント30から直接データ要求が到来することはないとして説明したが、仮にそのようなことがあった場合、レプリカは次のような処理を行えばよい。すなわち、レプリカにクライアント30から直接データ要求が来て、その要求の対象データが自分のデータ管理部12にある場合は、ステップS210〜S214に示すように、マスタが起動しているかどうかを確認し、起動していればデータ要求をマスタにリダイレクトすればよい。また、マスタが起動していなければ、自分のデータ管理部12から要求対象データを取り出してクライアント30に提供すればよい。
以上に説明した実施形態の複製のデータサーバ10Aは、典型的には、以上に説明した各構成要素の機能を記述したプログラムをコンピュータに実行させることにより実現される。このプログラムは、CD−ROMやDVD−ROM、フレキシブルディスク、ハードディスクなどのコンピュータ読み取り可能な記録媒体に記録した状態でユーザに提供することができる。また、このプログラムは、データ通信ネットワークを介してサーバからユーザのコンピュータにダウンロードすることもできる。
以上に説明した実施形態及び変形例はあくまで一例に過ぎず、本発明の技術的思想の範囲内で様々な変形が可能である。例えば、以上の例では、各データサーバ10,10aの持つデータのデータ識別情報として、グローバルに一意的なUUIDを用いたが、これは一例に過ぎない。データ識別情報は、データ管理システム内で一意性が保証されたものであれば足りる。
10,10a データサーバ、12 データ管理部、14 検出部、16 問合せ部、17 マスタ情報保持部、18,19 到達先決定部、20 ネットワーク、30 クライアント。
Claims (11)
- ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、
データ群を保持するデータ管理部、
他のデータサーバから問い合わせられた要求対象データをデータ管理部から検索し、該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバが起動しているか否かを判定するマスタ起動状態判定部、
マスタのデータサーバが起動していると判定された場合には、マスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供し、マスタのデータサーバが起動していないと判定された場合は、当該データサーバ自身の保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供する応答部、
として機能させるためのプログラム。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、
データ群を保持するデータ管理部、
他のデータサーバから受けたデータ問合せに示される要求対象データをデータ管理部から検索し、該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバの識別情報を前記他のデータサーバに対して提供する応答部、
として機能させるためのプログラム。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、
データ群を保持するデータ管理部、
クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部、
前記要求処理部によるデータ問合せに対し、前記他のデータサーバに対応するマスタのデータサーバの識別情報の回答を該他のデータサーバから受けた場合、該マスタのデータサーバの識別情報を用いて該マスタのデータサーバが起動しているか否かを調べ、起動している場合はマスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供し、起動していない場合は前記他のデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供するリダイレクト制御部、
として機能させるためのプログラム。 - 請求項1又は3に記載のプログラムであって、
前記データ管理部は、各データを、データ管理システム内で一意的に割り当てられたデータ識別情報と対応づけて保持し、
前記応答部は、データサーバを識別するためのサーバ識別情報と、データ識別情報とを組み合わせたリダイレクト情報を生成する、
ことを特徴とするプログラム。 - 請求項4記載のプログラムであって、前記データ識別情報は、グローバルに一意なものであることを特徴とするプログラム。
- ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバであって、
データ群を保持するデータ管理部、
他のデータサーバから問い合わせられた要求対象データをデータ管理部から検索し、該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバが起動しているか否かを判定するマスタ起動状態判定部、
マスタのデータサーバが起動していると判定された場合には、マスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供し、マスタのデータサーバが起動していないと判定された場合は、当該データサーバ自身の保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供する応答部、
を備えるデータサーバ。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバであって、
データ群を保持するデータ管理部、
他のデータサーバから受けたデータ問合せに示される要求対象データをデータ管理部から検索し、該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバの識別情報を前記他のデータサーバに対して提供する応答部、
を備えるデータサーバ。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバであって、
データ群を保持するデータ管理部、
クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部、
前記要求処理部によるデータ問合せに対し、前記他のデータサーバに対応するマスタのデータサーバの識別情報の回答を該他のデータサーバから受けた場合、該マスタのデータサーバの識別情報を用いて該マスタのデータサーバが起動しているか否かを調べ、起動している場合はマスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供し、起動していない場合は前記他のデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供するリダイレクト制御部、
を備えるデータサーバ。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバが実行するデータ管理方法であって、
他のデータサーバから問い合わせられた要求対象データをデータ管理部から検索し、該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバが起動しているか否かを判定し、
マスタのデータサーバが起動していると判定された場合には、マスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供し、
マスタのデータサーバが起動していないと判定された場合は、当該データサーバ自身の保持する要求対象データを指し示すリダイレクト情報を前記他のデータサーバに対して提供する、
データ管理方法。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバが実行するデータ管理方法であって、
他のデータサーバから受けたデータ問合せに示される要求対象データをデータ管理部から検索し、
該当するデータが検索できた場合に、当該データサーバに対応するマスタのデータサーバの識別情報を前記他のデータサーバに対して提供する、
データ管理方法。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバが実行するデータ管理方法であって、
クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、
該当するデータが検索できた場合はそのデータをクライアントに提供し、
検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索し、
前記データ問合せに対し、前記他のデータサーバに対応するマスタのデータサーバの識別情報の回答を該他のデータサーバから受けた場合、該マスタのデータサーバの識別情報を用いて該マスタのデータサーバが起動しているか否かを調べ、
前記マスタのデータサーバが起動している場合はマスタのデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供し、
前記マスタのデータサーバが起動していない場合は前記他のデータサーバが保持する要求対象データを指し示すリダイレクト情報を前記クライアントに提供する、
データ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005255520A JP2007072524A (ja) | 2005-09-02 | 2005-09-02 | データサーバ及びデータ管理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005255520A JP2007072524A (ja) | 2005-09-02 | 2005-09-02 | データサーバ及びデータ管理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007072524A true JP2007072524A (ja) | 2007-03-22 |
Family
ID=37933944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005255520A Withdrawn JP2007072524A (ja) | 2005-09-02 | 2005-09-02 | データサーバ及びデータ管理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007072524A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012077223A1 (ja) * | 2010-12-10 | 2012-06-14 | 富士通株式会社 | 情報処理装置およびプログラム |
JP2013542475A (ja) * | 2011-02-28 | 2013-11-21 | 株式会社日立製作所 | 情報処理装置 |
-
2005
- 2005-09-02 JP JP2005255520A patent/JP2007072524A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012077223A1 (ja) * | 2010-12-10 | 2012-06-14 | 富士通株式会社 | 情報処理装置およびプログラム |
US9619510B2 (en) | 2010-12-10 | 2017-04-11 | Fujitsu Limited | Information processing apparatus and computer-readable medium storing information processing program |
JP2013542475A (ja) * | 2011-02-28 | 2013-11-21 | 株式会社日立製作所 | 情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4729987B2 (ja) | データ管理システム及びデータサーバ | |
US11388251B2 (en) | Providing access to managed content | |
JP4852938B2 (ja) | データサーバ及びデータ管理方法及びプログラム | |
US8321503B2 (en) | Context-specific network resource addressing model for distributed services | |
US6968345B1 (en) | Technique to enable support for symbolic link access by windows clients | |
US7254636B1 (en) | Method and apparatus for transparent distributed network-attached storage with web cache communication protocol/anycast and file handle redundancy | |
US20070083485A1 (en) | File server, file providing method and recording medium | |
JP3967806B2 (ja) | リソースの位置を指名するためのコンピュータ化された方法及びリソース指名機構 | |
US20060265392A1 (en) | Data management system, data server, and data management method | |
US8024306B2 (en) | Hash-based access to resources in a data processing network | |
US6092204A (en) | Filtering for public databases with naming ambiguities | |
JP4545943B2 (ja) | ウェブサーバコンテンツ複製 | |
US20050240574A1 (en) | Pre-fetching resources based on a resource lookup query | |
WO2007035653A2 (en) | Providing direct access to distributed managed content | |
US8112472B2 (en) | Method and apparatus for supporting multiple versions of a web services protocol | |
JP2007072524A (ja) | データサーバ及びデータ管理方法及びプログラム | |
JP4774814B2 (ja) | サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム | |
KR20100054661A (ko) | 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법 | |
JP2004515834A (ja) | 分散型ウェブ・サービング・システム | |
KR20100054660A (ko) | 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법, 그 컨텐츠서버 | |
JP2005216230A (ja) | 印刷制御システムおよび方法およびプログラム | |
JP2001109694A (ja) | Httpリクエスト振り分け方法及びクライアントサーバーシステム並びにhttpリクエスト振り分けプログラムを記録した記録媒体 | |
KR20100054657A (ko) | 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법, 그 컨텐츠 제공자 네임서버 | |
KR20100054659A (ko) | 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법, 그 컨텐츠서버 | |
KR20100055295A (ko) | 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080821 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111108 |