JP2006323721A - データ管理システム及びデータサーバ及びデータ管理方法 - Google Patents
データ管理システム及びデータサーバ及びデータ管理方法 Download PDFInfo
- Publication number
- JP2006323721A JP2006323721A JP2005147656A JP2005147656A JP2006323721A JP 2006323721 A JP2006323721 A JP 2006323721A JP 2005147656 A JP2005147656 A JP 2005147656A JP 2005147656 A JP2005147656 A JP 2005147656A JP 2006323721 A JP2006323721 A JP 2006323721A
- Authority
- JP
- Japan
- Prior art keywords
- data
- server
- identification information
- request
- information
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
- H04L67/107—Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】サーバ間でデータが移動した場合でも、そのデータを見つけ出せるようにする。【解決手段】データ管理システムの各データサーバ10は、データがグローバルに一意なデータ識別情報と対応づけて登録されたデータ管理部12、他のデータサーバを検出する検出部14、クライアントからのデータ要求の要求対象データをデータ管理部から検索し、要求対象データが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部、他のデータサーバからデータ問合せを受けた場合、該データ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索し、その検索の結果に応じた応答を前記他のデータサーバに送る応答部、を備える。
【選択図】図1
【選択図】図1
Description
本発明は、ユーザが要求したデータの所在場所(ロケーション)を解決するための技術に関する。
この分野の従来技術として、特許文献1に示される技術がある。この技術では、データ管理システムが、各ファイルに対してハンドルと呼ぶ一意な識別子を付与して管理している。そして、そのファイルのURLとして、従来一般的なファイルの所在場所(所在サーバとそのサーバ内でのファイルのパス名の組合せ)を示したURLではなく、当該システムのサーバ名とファイルのハンドルとを指定した仮想URLをユーザに提供する。ユーザがその仮想URLを用いて当該システムにアクセスすると、システムはそのハンドルからファイルの所在場所を特定し、ユーザに提供する。このような仕組みにより、ファイルがデータ管理システム上のどの場所(ディレクトリ)に移動しても、ユーザからの要求に応じてそのファイルを見つけることができる。
また、同様の従来技術として、特許文献2に示されるものがある。特許文献2のサーバは、管理する各コンテンツに識別子を付与し、ユーザから検索要求があった場合、その要求に合致するコンテンツの識別子を含んだ仮想URLをユーザに提供する。このサーバは、仮想URLを用いてユーザからアクセスがあると、その仮想URLに含まれる識別子を蓄積システムに渡し、蓄積システムはその識別子に対応するコンテンツをキャッシュメモリにコピーし、キャッシュメモリ上のコンテンツのコピーのアドレスをサーバに返す。これにより、サーバはそのキャッシュメモリ上のコンテンツをユーザに提供することができる。
また、非特許文献1には、マサチューセッツ工科大学(MIT)が開発したオープンソースソフトウェアのデータ管理システム「Dspace」が照会されている。Dspaceでは、中央にハンドルサーバを用意し、そのハンドルサーバでデータのハンドル(識別子)と、各データを管理しているサーバの情報とを管理する。各Dspaceプラットフォームは、ユーザより提示されたハンドルをハンドルサーバに問い合わせることで、そのハンドルに対応する実際のデータを管理しているサーバを解決する。
特許文献1及び2の技術は、1つのデータ管理システム内で管理されているファイル・コンテンツの所在場所解決に限定されており、例えばファイル・コンテンツの所在場所がネットワーク上の複数のデータ管理システムの中で移動してしまうようなケースには対応できない。
特許文献3の技術はこのようなケースに対応できるものであるが、中央管理サーバに完全に依存しているため、中央管理サーバに登録されていないサーバ上のデータは解決できない、中央管理サーバが停止した場合は全くデータの所在を解決できない、といった集中管理であるが故の問題が発生する。
本発明は、データが他のサーバに移動しても移動前に発行されたURL等のデータの所在情報からそのデータの所在を解決することを、特許文献3のような中央管理サーバを用いずに実現する。
本発明は、ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、データがそのデータに対して付与されたグローバルに一意なデータ識別情報と対応づけて登録されるデータ管理部、データ管理システムを構成する他のデータサーバを検出する検出部、クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部、他のデータサーバからデータ問合せを受けた場合、該データ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索し、その検索の結果に応じた応答を前記他のデータサーバに送る応答部、として機能させるためのプログラムを提供する。
本発明によれば、各データサーバが他のデータサーバを検出し、グローバルに一意なデータ識別情報を用いた問合せにより、要求対象データを持つデータサーバを探索するので、特許文献3の中央管理サーバの様な集中管理をしなくても、データの所在を解決できる。
以下、図面を参照して、本発明を実施するための最良の形態(以下「実施形態」と呼ぶ)について説明する。
図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とを対応づけて管理している。
データ管理部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は、「xxx.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の判定結果が肯定(Y))、問合せ部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をクライアント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を分割後にも使用することができる。
次に実施形態の第1の変形例を説明する。上記実施形態では、検出部14が所定のメッセージをブロードキャストすることにより他のデータサーバ10を検出した。これに対し本実施形態では、図9に示すように、データ管理システムを構成する各データサーバ10aが、他のデータサーバ10aのサーバIDのリスト(「サーバリスト」と呼ぶ)を記憶したサーバリスト記憶部18を備えている。サーバリストは、データサーバ10aの管理者がサーバリスト記憶部18に登録してもよいし、上記実施形態のブロードキャストによる検出の手法での検出結果に基づき自動作成してもよい。また、後述する手順の中で他のデータサーバ10aから取得したサーバリストの情報をサーバリスト記憶部18に追加することもできる。検出部14aは、このサーバリスト記憶部18から他のデータサーバ10aを検出する。
図10に、この変形例のデータサーバ10aがクライアント30からデータ要求を受け取ったときの処理手順を示す。また、図11に、この変形例のデータサーバ10aが他のサーバからデータ問合せを受けたときの処理手順を示す。これら手順において、図4及び図5に示した手順と同様のステップには同一符号を付し、説明を省略する。
図10の手順では、クライアント30から要求されたデータがデータサーバ10a内にない場合、検出部14aがサーバリスト記憶部18から問合せ未済のサーバの識別情報を検出し(S106a)、そのサーバに対し、要求対象データを持っているか否かの問合せを行う(S108)。
この問合せを受けたデータサーバ10aでは、図11に示したように、その要求対象データのデータIDを自身のデータ管理部12から検索できなかった場合に、自身のサーバリスト記憶部18に記憶しているサーバリスト全体又はその一部(例えば1つのサーバIDだけでもよい)を、問合せ元のデータサーバ10aに返す(S210)。
再び図10の手順に戻り、問合せ先からの応答を受け取ったデータサーバ10aは、その応答が、要求対象データがある旨を示すものであれば、上記実施形態同様クライアント30からの要求をその問合せ先にリダイレクトし(S112)、そうでなければ、問合せ先から受け取ったサーバリストの情報を自身のサーバリスト記憶部18に追加した上で(S120)、ステップS106aに戻る。
この変形例のシステムの動作を、図12を参照して説明する。この図では、煩雑さを避けるため、データサーバ10a内の手段の一部の記載を省略している。また、この例は、データサーバ10a−1のサーバリスト記憶部18(図示省略)には、サーバ10a−2が登録されており、サーバ10a−3は登録されていない場合の例である。
クライアント30からデータサーバ10a−1に送ったデータ要求(1)の対象データがデータサーバ10a−1に存在しない場合は、検出部14aがサーバリスト記憶部18から他のデータサーバ10a−2を検出し(2)、このデータサーバ10a−2に対してデータ問合せを行う(3)。この問合せに対しデータサーバ10a−2からデータが存在しないとの回答を得ると、問合せ部16は次のデータサーバ10a−3に問合せを行い、データが存在するとの回答を得る(4)。すると、データサーバ10a−1は、クライアント30からのデータ要求をデータサーバ10a−3にリダイレクトする(5)。データサーバ10a−3は、リダイレクトされたデータ要求に対し、要求対象データをクライアント30をクライアント30に提供する(6)。
この変形例によれば、データサーバ10aは、他のデータサーバ10aが持つサーバリストを取得することで、サーバリスト記憶部18に未登録のデータサーバ10aを知ることができ、それら新たに知ったデータサーバ10aに対しても問合せを行うことができる。
また、この変形例における他のデータサーバの検出手法と、上記実施形態におけるブロードキャストによる検出手法とを組み合わせることも可能である。例えば、図12の例において、データサーバ10a−1が最初はサーバリストを持たず、ブロードキャストによりデータサーバ10a−2を検出し、このサーバ10a−2からサーバリストの情報を取得するといった手順も可能である。この場合、サーバ10a−1は、ブロードキャストにより検出したサーバIDや、サーバ10a−2から取得したサーバリストを自己のサーバリスト管理部18に保存すれば、次回以降のデータ要求に対しては図11の手順でサーバ検出が行える。もちろん、サーバ10a−1が検出したサーバID等を保存しない構成も可能である。
また、図11の手順でサーバリスト記憶部18から問合せ未済のサーバが無くなった場合に、ブロードキャストによる検出を行い、その結果をサーバリスト記憶部18に登録するようにしてもよい。
次に、図13〜図17を参照して、第2の変形例を説明する。この変形例では、図13に示すように、データサーバ10bは、問合せ部16による問合せにより判明したデータの所在情報をキャッシュする所在情報キャッシュ20を備えている。所在情報キャッシュ20にキャッシュされる所在情報レコードは、図14に示すように、データID122と、そのデータID122により示されるデータの所在を示す仮想URL124(図3に例示したものと同様のもの)とを含んでいる。なお、仮想URL124の代わりに、当該データを管理するデータサーバ10bのサーバIDを所在情報レコードに含めるようにしてもよい。
図15に、クライアントからデータ要求情報を受けたときの、第2の変形例のデータサーバ10bの処理手順を示す。また、図16に、この変形例のデータサーバ10bが他のサーバからデータ問合せを受けたときの処理手順を示す。これら手順において、図4及び図5に示した手順と同様のステップには同一符号を付し、説明を省略する。
図15の手順では、クライアント30から要求されたデータがデータサーバ10b内にない場合、データサーバ10bは、所在情報キャッシュ20から、要求されたデータのデータIDに該当する所在情報レコードを検索する(S130)。検索できた場合は(ステップS132の判定結果が肯定(Y))、その所在情報レコードに示される仮想URLをクライアント30に返すことで、クライアント30のデータ要求をリダイレクトする(S112)。
ステップS132の判定結果が否定(N)の場合、データサーバ10bは検出部12に他のデータサーバ10bを検出させ(S106)、これにより検出されたデータサーバ10bに対して、要求対象データのデータIDを含んだデータ問合せを送る(S108)。
この問合せを受けた他のデータサーバ10bでは、図16に示したように、その要求対象データのデータIDを自身のデータ管理部12から検索できなかった場合に、自身の所在情報キャッシュ20からそのデータIDに該当する所在情報レコードを検索する(S212)。そして、所在情報レコードが検索できた場合(ステップS214の判定結果が肯定(Y))は、その所在情報レコード中の仮想URL(又はサーバID)を、要求対象データの所在の候補の情報として、問合せ元のデータサーバ10bに返す(S216)。ここで、キャッシュ20から検索した所在情報は、時間の経過により現在の状況を正しく示していない場合もあるので、確認されたデータの所在情報ではなく、その候補として取り扱う。一方、所在情報が検索できなかった場合は、問合せ対象のデータが存在しない旨を問合せ元のデータサーバ10bに応答する(S218)。
再び図15の手順に戻り、問合せ先からの応答を受け取ったデータサーバ10aは、その応答が、要求対象データが存在する旨を示すもの(又は問合せのサーバIDを含んだ仮想URL)であれば(ステップS110)、要求対象データが問合せ先に確実に存在するということなので、そのデータのデータ識別情報と問合せ先のサーバIDを含んだ仮想URL(サーバIDだけでもよい)とを所在情報キャッシュ20に追加(S134)すると共に、上記実施形態同様クライアント30からの要求をその問合せ先にリダイレクトする(S112)。なお、ステップS134とS112の順序は逆でも構わない。問合せ先からの回答が、要求対象データが存在する旨を示す情報でなければ、その回答が要求対象データの仮想URL(又はサーバID)を含むかどうかを判定する(S136)。
ステップS136の判定で、仮想URL(又はサーバID)が含まれると判定された場合(ステップS136の判定結果が肯定(Y))、データサーバ10bは、その仮想URL(又はサーバID)をクライアント30に返すことでデータ要求をリダイレクトする(S112)。そうでない場合は、ステップS106に戻る。
図15の手順では、問合せ先からの回答が所在情報の候補であった場合(ステップS136の判定結果がY)、その所在情報をキャッシュ20に追加せずにリダイレクトのみを行ったが、これは、各サーバ10bがキャッシュ20に保持している所在情報が、時間の経過により現在の状況を正しく示していない場合もあるためである。すなわち、図15の手順では、問合せ先が要求対象データを持っていることが確認された場合にのみ、キャッシュ20に所在情報を登録することとしたわけである。ただし、この方式は一例に過ぎず、この代わりに問合せ先から受け取った所在情報は、問合せ先のものであっても他のサーバのものであっても、すべて所在情報キャッシュ20に登録するようにしてもよい。
なお、第2の変形例において、所在情報キャッシュ20から求められた所在情報(問合せ先のキャッシュ20から求められたものも含む)を用いてリダイレクト(S112)を行った場合、キャッシュ20の情報が古い等の理由から、リダイレクト先のデータサーバ10bに要求対象データがないという事態も生じ得る。この場合は、リダイレクト先のデータサーバ10bが、図15の手順に従ってそのデータを持つデータサーバを探索し、探索できたデータサーバにデータ要求をリダイレクトする。このようなリダイレクトを繰り返すうちに、クライアント30は要求対象データを取得できる。
また、図15の手順では、他のデータサーバを検出するのにブロードキャストを利用したが、これに限らず、サーバリストを利用する第1の変形例と同様の方式を用いてもよい。
この変形例のシステムの動作を、図17を参照して説明する。この図では、煩雑さを避けるため、データサーバ10b内の手段の一部の記載を省略している。
クライアント30からデータサーバ10b−1に送ったデータ要求(1)の対象データがデータサーバ10b−1に存在しない場合、検出部14が他のデータサーバ10b−2を検出し(2)、このデータサーバ10b−2に対してデータ問合せを行う(3)。ここで、データサーバ10b−2が、そのデータを持っていないが、そのデータがデータサーバ10b−3にある旨を示す所在情報をキャッシュ20に持っている場合には、その所在情報がサーバ10b−1に返される。これを受け取ったデータサーバ10b−1は、その所在情報をクライアント30に送ることにより、データ要求をデータサーバ10b−3にリダイレクトする(4)。データサーバ10b−3は、リダイレクトされたデータ要求の対象データを保持していれば、その要求対象データをクライアント30に提供する(5)。
このように、この第2の変形例によれば、データサーバ10bがクライアント30からの要求や他のサーバ10bからの問合せの対象データの所在情報をキャッシュしていれば、その所在情報を要求元や問合せ元に通知することで、より効率的にクライアント30がデータに到達することができる。
なお、第2の変形例では、所在情報キャッシュ20が持っているデータが古いと、誤ったサーバ10bにデータ要求をリダイレクトしてしまうことになる。このような不具合を解消するための第3の変形例について、図18〜図25を参照して説明する。
第3の変形例の基本的な考え方は、要求対象データの所在(すなわち該データを管理するデータサーバ)が確認された場合に、所在が確認されるまでに関与した各データサーバに通知することで、それら各サーバの所在情報キャッシュ20を更新するというものである。
この方式を実現するため、第3の変形例では、まずリダイレクト先のデータサーバに対し、リダイレクト元のデータサーバを知らせる仕組みを導入する。すなわち、リダイレクト元のデータサーバがクライアント30に返すリダイレクト情報、すなわち仮想URLの中に、リダイレクト元のデータサーバのサーバIDを組み込む。例えば、図18に例示する仮想URL110a、リダイレクト先のサーバの識別情報(ホスト名112)とデータID114を含む仮想URLの末尾に、リダイレクト元のサーバの識別情報を示したHTTPのクエリ文字列を、リダイレクト元情報116として含んでいる。これは、リダイレクト元のサーバの識別情報をIPアドレス(「160.8.***.***」)で示したものである。もちろん、サーバIDはホスト名など他の表現方式で表したものでも構わない。このように仮想URLにリダイレクト元情報116を組み込んでリダイレクト先のサーバに渡すことで、リダイレクト先のサーバは、要求されたデータの所在が確認できた場合、その所在情報をリダイレクト元のサーバにフィードバックすることができる。
また、第3の変形例では、要求対象データの所在が確認されるまでに各データサーバがデータ問合せを送った問合せ先のデータサーバを記録し、確認された所在情報をそれら各問合せ先にも通知する。
また第3の変形例では、図19に示すように、各データサーバ10cは、所在情報キャッシュ20に加え、ログ記憶部22を備える。ログ記憶部22は、他のデータサーバ10cからのリダイレクトや、他のデータサーバへのデータ問合せやリダイレクトの事実を記録するログを保持する。ログ記憶部22には、クライアント30から受け取ったデータ要求に対して、1つのログレコードが記憶される。このログレコードのデータ構造の例を図20に示す。この例では、ログレコードには、当該データ要求の要求対象データのデータID132,当該データ要求のリダイレクト元132のサーバID134,当該データ要求に応じたデータ問合せを送った問合せ先のサーバID136,及び当該データ要求をリダイレクトしたリダイレクト先のサーバID138が含まれる。1つのログレコードに対し、データID132は1つであり、リダイレクト元134とリダイレクト先138は高々1つである。また、データサーバ10c自身の所在情報キャッシュ20からリダイレクト先138が見つかる場合(したがって問合せは一度もしない)もあれば、リダイレクト先138が見つかるまで複数の問合せ先に問い合わせることもあるので、問合せ先136は0以上である。
第3の変形例のデータサーバ10cがクライアントからデータ要求情報を受け取ったときの処理手順を図21A及び21Bに示す。これら手順において、図4及び図15に示した手順と同様のステップには同一符号を付し、説明を省略する。
この手順では、クライアント30からのデータ要求の要求対象データがデータ管理部12から検索できなかった場合、データサーバ10cは、まずログ記憶部22に当該要求対象データについてのログレコードの生成する(S140)。ただし、この時点では、ログレコードには、その要求対象データのデータID132のみが登録されている(図20参照)。次に、そのデータ要求が、リダイレクト元情報を含むかどうかを判定し(S142)、リダイレクト元情報を含む場合には、それをログレコードのリダイレクト元134の欄に登録する(S144)。データ要求がリダイレクト元情報を含まない場合は、ステップS144はスキップされる。
そして、データサーバ10cは、キャッシュ20から要求対象データの所在情報を検索する(S130)。この検索で所在情報が見つかった場合(S132)、データサーバ10cは、その所在情報をクライアント30に通知することで、データ要求をリダイレクトする(S112)。このとき、その所在情報に示されるリダイレクト先のサーバIDを、ログレコードのリダイレクト先138の欄に登録する(S148)。
要求対象データの所在情報がキャッシュ20になかった場合(S132)は、検出部14が他のデータサーバを検出し(S106)、検出できたデータサーバに対して問合せ部16が要求対象データのデータ識別情報を含んだデータ問合せを送る(S108)。データサーバ10cは他のデータサーバにデータ問合せを送った場合、その問合せの送り先のサーバIDを、そのデータ識別情報に対応するログレコードの問合せ先136の欄に追加する(S146)。そして、問合せ先が要求対象データを持っている旨を示す回答を受けると、データサーバ10cは、要求対象データが問合せ先のサーバに存在する旨を示す所在情報をキャッシュに追加し(S134)、クライアント30からの要求をその問合せ先にリダイレクトする(S112)。そして、リダイレクト先(この場合は問合せ先と同じ)のサーバIDを、当該要求対象データのログレコードに登録する(S148)。
ステップS110の判定結果が否定(N)の場合、問合せ先からの回答が要求対象データの所在情報を含むかどうかを判定する(S136)。この判定で、所在情報が含まれると判定された場合、データサーバ10c、その所在情報をクライアント30に返すことでデータ要求をリダイレクトし(S112)、その所在情報に含まれるサーバIDを当該要求対象データに対応するログレコードのリダイレクト先138の欄に登録する(S148)。ステップS136の判定結果が否定(N)の場合は、ステップS106に戻る。
また、データサーバ10cは、ステップS102で要求対象データを自身のデータ管理部12から検索できた場合、検索したデータをクライアント30に提供する(S114)。そして、クライアント30からのデータ要求にリダイレクト元情報が含まれるか否かを判定し(S150)、含まれていれば、要求対象データが当該データサーバ10cに存在する旨を示すキャッシュ更新情報を生成し、それをリダイレクト元情報が示すデータサーバに対して送信する(S152)。ここでキャッシュ更新情報は、要求対象データのデータIDと当該データサーバ10cの識別情報とを含んだものでよい。
次に、図22を参照して、キャッシュ更新情報を受け取ったデータサーバ10cの動作を説明する。
この手順では、データサーバ10cは、他のサーバからキャッシュ更新情報を受け取ると(S300)、その情報を用いて所在情報キャッシュ20を更新する(S302)。このキャッシュ更新では、例えば、キャッシュ更新情報に含まれるデータIDに該当する所在情報をキャッシュ20から検索し、そのような所在情報がなければ、キャッシュ更新情報に含まれるデータIDとサーバIDのペアを所在情報としてキャッシュ20に登録する。キャッシュ更新情報のデータIDに該当するものがキャッシュ20中にあれば、それをキャッシュから削除し、キャッシュ更新情報から生成した所在情報をキャッシュ20に追加する。そしてデータサーバ10cは、そのデータIDに対応するログレコードをログ記憶部22から検索し(S304)、そのようなログレコードがあれば、その中に示される問合せ先136及びリダイレクト元134の各データサーバに対し、同様のキャッシュ更新情報を送信する(S306,S308)。なお、問合せ先136とリダイレクト元134のいずれか一方が空欄の場合もある。また、問合せ先136の欄に複数のサーバが登録されている場合があり、この場合には、それら全ての問合せ先サーバに対してキャッシュ更新情報を送る。
データサーバ10cは、キャッシュ更新情報を、リダイレクト先又は問合せ元から受け取る可能性があれば、図22の手順はそのいずれの場合にも該当するものである。
なお、第3の変形例のデータサーバ10cが他のサーバからデータ問合せを受けたときの処理手順は、第2の変形例の場合と同様でよい(図16参照)。
第3の変形例のシステムの動作の具体例を、図23及び図24を参照して説明する。図23では、煩雑さを避けるため、データサーバ10c内の手段の一部の記載を省略している。
クライアント30からデータサーバ10c−1に送ったデータ要求(1)の対象データがデータサーバ10c−1に存在しない場合、検出部14が他のデータサーバ10c−2を検出し(2)、このデータサーバ10c−2に対してデータ問合せを行う(3)。ここで、データサーバ10c−2は、そのデータを持っていないが、そのデータがデータサーバ10c−3にある旨を示す所在情報をキャッシュ20に持っているので、その所在情報をサーバ10c−1に返す。これを受け取ったデータサーバ10c−1は、その所在情報をクライアント30に送ることにより、データ要求をデータサーバ10c−3にリダイレクトする(4)。この一連の動作でデータサーバ10c−1に記録されるログレコードは、図24Aに示すようになる。すなわち、この場合のログレコードは、リダイレクト元134はなく、問合せ先136はサーバ10c−2であり、リダイレクト先138はサーバ10c−3である。
この例では、リダイレクトされたデータ要求をクライアント30から受け取ったデータサーバ10c−3は、要求対象データを保持していないが、そのデータがサーバ10c−4にある旨の所在情報をキャッシュ20に保持している。したがって、サーバ10c−3は、その所在情報を用いてデータ要求をサーバ10c−4にリダイレクトする(5)。この一連の動作でサーバ10c−3に記録されるログレコードは、図24Bに示すようなものとなる。すなわち、この場合のログレコードは、リダイレクト元134はサーバ10c−1であり、問合せ先136はなく、リダイレクト先138はサーバ10c−4である。
データサーバ10c−4は、リダイレクトされたデータ要求の対象データを有しているので、そのデータをクライアント30に提供する(6)。また、サーバ10c−4は、キャッシュ更新情報を生成してリダイレクト元のサーバ10c−3に送る(7)。
これを受けたサーバ10c−3は、そのキャッシュ更新情報を用いて所在情報キャッシュ20のデータを更新する(ただしこの場合は、サーバ10c−3のキャッシュ20内の所在情報は正しかったので、所在情報の内容は結果的には変わらない)。またサーバ10c−3は、ログレコード(図24B参照)に示されたリダイレクト元のサーバ10c−1にそのキャッシュ更新情報を転送する(8)。
これを受けたサーバ10c−1は、その更新情報に基づき自身のキャッシュ20を更新する。この場合、サーバ10c−1は当該要求対象データについての所在情報をキャッシュ20に保持していないので、更新情報に含まれる所在情報がキャッシュ20に追加されることになる。またサーバ10c−1は、ログレコード(図24A参照)に示された問合せ先サーバ10c−2にそのキャッシュ更新情報を転送する(9)。
これを受けたサーバ10c−2は、その更新情報に基づき自身のキャッシュ20を更新する。この場合、キャッシュ20には、当該要求対象データがサーバ10c−3にある旨の所在情報が存在するので、その所在情報が更新情報に含まれる所在情報に置き換えられる。
以上に説明したように、第3の変形例では、データサーバ10cが自身のデータ管理部12から要求対象データを見つけたことを以て、要求対象データの所在が確認されたとし、キャッシュ更新情報のフィードバックを開始している。しかし、これに限らず、データサーバ10cが他のデータサーバへ問合せを行った際に、問合せ先から、問合せ先自身が要求対象データを持っている旨の回答を得た時点で、問合せ元がキャッシュ更新情報を生成し、リダイレクト元や他の問合せ先にフィードバックしてもよい。この場合、問合せ元からクライアント30に返すリダイレクト情報(仮想URL)には、リダイレクト元の情報は含めない。リダイレクト先に要求対象データが存在することが問合せにより確認されているので、リダイレクト先からのフィードバックが不要だからである。
また、上述のように要求対象データの所在が確認されたときにキャッシュ更新情報のフィードバックを行う他に、リダイレクトされたデータ要求を受け取ったデータサーバ10cが、自身のデータ管理部12に要求対象データが無いことを確認したときに、その旨を示すキャッシュ更新情報をリダイレクト元にフィードバックしてもよい。
この場合の処理手順は図25のようになる。図25に示したのは、一連の処理手順のうち図21Aの手順に対応する部分であり、後半部分は図21Bと同様でよい。また、図21Aの手順と同様のステップには同一符号を付して説明を省略する。
この手順では、要求対象データがデータ管理部12に無いと判明した場合(S104)、クライアント30からの要求がリダイレクトされたものかどうかを判定し(S142)、リダイレクトされたものであれば、要求対象データが当該データサーバ10cに無いことを示すキャッシュ更新情報を生成し、これをリダイレクト元へフィードバックする(S145)。このときのキャッシュ更新情報は、例えば、データID、サーバID、及びデータが無い旨を示すフラグを含むデータでよい。なお、このキャッシュ更新情報を受け取ったデータサーバは、自身の所在情報キャッシュ20に、そのキャッシュ更新情報に示されるデータIDとサーバIDの組合せと同じ所在情報があればそれを削除し、更にログレコードに示される問合せ先やリダイレクト元にそのキャッシュ更新情報を逆伝搬する。
このように第3の変形例によれば、1つのデータ要求を連携して解決した一連のデータサーバ10cの所在情報キャッシュ22の内容を最新状態へと更新できるため、誤ったリダイレクトを減らすことができる。
第3の変形例では、キャッシュ更新情報をリダイレクト元及び問合せ先の両方にフィードバックしたが、いずれか一方だけでもある程度の効果を得ることができる。
以上に説明した実施形態及び変形例は、データがサーバ間で移動した場合に限らず、同一サーバ内でデータが移動してURLが変わってしまう場合にも適用可能である。例えば、データの仮想URLが"http://xxx.fx.co.jp/Folder1/Folder2/uuid1"であったとする。このうち"uuid1"がそのデータのデータIDであり、"/Folder1/Folder2/"はサーバ"xxx.fx.co.jp"内でのそのデータのパスである。すなわち、この仮想URLは、一般的なロケーションベースのURLと、グローバルに一意なデータIDとの折衷型である。このような折衷型の仮想URLでも、データIDを含んでいる以上、上記実施形態の仕組みでそのデータを検索することができる。更に、この仮想URLでは、サーバ内でのデータのパス情報も含んでいるので、従来からのロケーション(ディレクトリ)ベースでのデータの所在場所の表示(例えばフォルダツリー表示)等を行うことができる。このようなデータ"uuid1"が同じサーバ内のディレクトリ"/Folder3/Folder4/"に移動した場合、仮想URLは正しくは"http://xxx.fx.co.jp/Folder3/Folder4/uuid1"となるが、ユーザが元の仮想URL"http://xxx.fx.co.jp/Folder1/Folder2/uuid1"を用いてアクセスしたとしても、その仮想URLはデータIDを含んでいるので、ディレクトリ"/Folder3/Folder4/"内のデータ"uuid1"に正しくアクセスできる。もちろん、この場合、データ管理部12におけるデータ"uuid1"のリンク情報がディレクトリ"/Folder3/Folder4/"内のそのデータを指すように正しく更新されているものとする。
以上説明した実施形態及び変形例に係るデータサーバは、汎用のコンピュータシステムに、上述したデータサーバの機能・動作を記述したプログラムを実行させることにより実現される。
10 データサーバ、12 データ管理部、14 検出部、16 問合せ部、20 ネットワーク、30 クライアント。
Claims (16)
- ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバとして、コンピュータシステムを動作させるためのプログラムであって、該コンピュータシステムを、
データが、そのデータに対して付与されたグローバルに一意なデータ識別情報と対応づけて登録されるデータ管理部、
データ管理システムを構成する他のデータサーバを検出する検出部、
クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部、
他のデータサーバからデータ問合せを受けた場合、該データ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索し、その検索の結果に応じた応答を前記他のデータサーバに送る応答部、
として機能させるためのプログラム。 - 前記要求処理部は、前記データ要求の要求対象データが前記データ管理部から検索できなかった場合、前記データ問合せにより探索した前記要求対象データを持つデータサーバのサーバ識別情報を含む回答情報を前記クライアントに送信する、ことを特徴とする請求項1記載のプログラム。
- クライアントからのデータ要求は、データサーバのサーバ識別情報と要求対象データのデータ識別情報とを含んだ仮想URLを用いてなされ、
前記回答情報は、前記データ問合せにより探索した前記要求対象データを持つデータサーバのサーバ識別情報と前記データ識別情報とを含んだ仮想URLを含む、
ことを特徴とする請求項2記載のプログラム。 - 前記データ管理部は、登録対象として入力されたデータに前記データ識別情報が付与されていない場合は、該データにグローバルに一意なデータ識別情報を付した上で登録する、
ことを特徴とする請求項1記載のプログラム。 - 前記検出部は、あらかじめ当該データ管理システムにおいて取り決められている所定のメッセージを前記ネットワークに送出し、該メッセージに対して所定の応答を送ってきた装置を、前記データ管理システムを構成する他のデータサーバとして検出する、
ことを特徴とする請求項1記載のプログラム。 - 前記コンピュータシステムを、前記データ管理システムを構成する他のデータサーバのサーバ識別情報のリストを記憶するサーバリスト記憶部、として機能させると共に、
前記応答部は、他のデータサーバからのデータ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索できなかった場合に、前記サーバリスト記憶部に記憶した前記他のデータサーバのサーバ識別情報を前記他のデータサーバに送信し、
前記検出部は、前記サーバリスト記憶部から当該データ管理システムを構成する他のデータサーバを検出するとともに、前記要求処理部からのデータ問合せに対して他のデータサーバからサーバ識別情報を受け取った場合、そのサーバ識別情報により前記サーバリスト記憶部に記憶したリストを更新する、
ことを特徴とする請求項1記載のプログラム。 - 前記コンピュータシステムを、データとこのデータを保持するデータサーバのサーバ識別情報との対応関係の情報を記憶する所在情報管理部として機能させると共に、
前記要求処理部は、クライアントからのデータ要求に含まれるデータ識別情報に対応するデータを前記データ管理部から検索できなかった場合、該データ識別情報に対応するデータサーバのサーバ識別情報を前記所在情報管理部から検索し、検索できた場合は検索したサーバ識別情報を前記データ要求の要求元のクライアントに送信する、
ことを特徴とする請求項1記載のプログラム。 - 前記応答部は、他のデータサーバからのデータ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索できなかった場合に、該データ識別情報に対応するデータサーバのサーバ識別情報を前記所在情報管理部から検索し、検索できた場合は検索したデータサーバのサーバ識別情報を前記他のデータサーバに送信し、
前記要求処理部は、前記データ問合せを送った他のデータサーバから、その問合せに対する応答としてデータサーバのサーバ識別情報を受け取った場合には、そのデータサーバのサーバ識別情報を前記クライアントに送信する、
ことを特徴とする請求項7記載のプログラム。 - クライアントからのデータ要求は、データサーバのサーバ識別情報と要求対象データのデータ識別情報とを含んだ仮想URLを用いてなされ、
当該プログラムは、前記コンピュータシステムを、
クライアントからのデータ要求の要求対象データが前記データ管理部から検索できなかった場合、前記データ問合せにより探索した前記要求対象データを持つデータサーバのサーバ識別情報と該要求対象データのデータ識別情報と当該コンピュータシステムのサーバ識別情報をリダイレクト元情報として含む仮想URLを前記クライアントに送信するリダイレクト情報提供部、
クライアントからのデータ要求の仮想URLにリダイレクト元情報が含まれる場合、該リダイレクト元情報を該データ要求の要求対象データのデータ識別情報と対応づけて記憶するリダイレクト元記憶部、
前記要求対象データを持つデータサーバが確認された場合に、該要求対象データのデータ識別情報に対応するリダイレクト元情報を前記リダイレクト元記憶部から求め、該リダイレクト元情報が示すデータサーバに対し、該要求対象データを持つデータサーバのサーバ識別情報を含んだ所在更新情報を送信する所在更新情報提供部、
として機能させると共に、
前記所在情報管理部は、他のデータサーバから受け取った所在更新情報に応じ、自身が有する前記対応関係の情報を更新する、
ことを特徴とする請求項7記載のプログラム。 - クライアントからのデータ要求は、データサーバのサーバ識別情報と該要求対象データのデータ識別情報とを含んだ仮想URLを用いてなされ、
当該プログラムは、前記コンピュータシステムを、
クライアントからのデータ要求の要求対象データが前記データ管理部から検索できなかった場合、前記データ問合せにより探索した前記要求対象データを持つデータサーバのサーバ識別情報と該要求対象データのデータ識別情報と当該コンピュータシステムのサーバ識別情報をリダイレクト元情報として含む仮想URLを前記クライアントに送信するリダイレクト情報提供部と、
クライアントからのデータ要求の仮想URLにリダイレクト元情報が含まれる場合、該リダイレクト元情報を該データ要求の要求対象データのデータ識別情報と対応づけて記憶するリダイレクト元記憶部、
クライアントからのデータ要求の仮想URLにリダイレクト情報が含まれており、該データ要求の要求対象データが前記データ管理部から検索できなかった場合、当該コンピュータシステムには当該要求対象データが無い旨を示す所在更新情報を作成し、該要求対象データのデータ識別情報に対応するリダイレクト元情報を前記リダイレクト元記憶部から求め、該リダイレクト元情報が示すデータサーバに対し、前記所在更新情報を送信する所在更新情報提供部、
として機能させると共に、
前記所在情報管理部は、他のデータサーバから受け取った所在更新情報に応じ、自身が有する前記対応関係の情報を更新する、
ことを特徴とする請求項7記載のプログラム。 - 前記所在情報管理部は、他のデータサーバから受け取った所在更新情報に含まれるデータ識別情報に対応するリダイレクト元情報が前記リダイレクト元記憶部にあれば、該リダイレクト元情報の示すデータサーバに対し、前記所在更新情報を転送する、
ことを特徴とする請求項9又は10に記載のプログラム。 - 前記コンピュータシステムを、
前記データ問合せの送信先のデータサーバのサーバ識別情報を、該データ問合せの対象である要求対象データのデータ識別情報に対応づけて記憶する問合せ先記憶部、
前記要求対象データを持つデータサーバが確認された場合に、該要求対象データのデータ識別情報に対応する問合せ先のデータサーバを前記問合せ記憶部から求め、求めた問合せ先のデータサーバに対し、前記要求対象データを持つデータサーバのサーバ識別情報を含んだ所在更新情報を送信する所在更新情報提供部、
として機能させると共に、
前記所在情報管理部は、他のデータサーバから受け取った所在更新情報に応じ、自身が有する前記対応関係の情報を更新する、
ことを特徴とする請求項7記載のプログラム。 - 前記コンピュータシステムを、
前記データ問合せの送信先のデータサーバのサーバ識別情報を、該データ問合せの対象である要求対象データのデータ識別情報に対応づけて記憶する問合せ先記憶部、
前記データ要求のリダイレクト先のデータサーバから前記要求対象データを有していない旨の通知があった場合に、該要求対象データのデータ識別情報に対応する問合せ先のデータサーバを前記問合せ記憶部から求め、求めた問合せ先のデータサーバに対し、前記リダイレクト先のデータサーバには前記要求対象データが無い旨を示す所在更新情報を送信する所在更新情報提供部、
として機能させると共に、
前記所在情報管理部は、他のデータサーバから受け取った所在更新情報に応じ、自身が有する前記対応関係の情報を更新する、
ことを特徴とする請求項7記載のプログラム。 - ネットワークに接続された複数のデータサーバから構成されるデータ管理システムであって、
各データサーバが、
データが、そのデータに対して付与されたグローバルに一意なデータ識別情報と対応づけて登録されるデータ管理部と、
データ管理システムを構成する他のデータサーバを検出する検出部と、
クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部と、
他のデータサーバからデータ問合せを受けた場合、該データ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索し、その検索の結果に応じた応答を前記他のデータサーバに送る応答部と、
とを備えるデータ管理システム。 - ネットワークを介して接続された他のデータサーバと連携してデータ管理システムを構成するデータサーバであって、
データが、そのデータに対して付与されたグローバルに一意なデータ識別情報と対応づけて登録されるデータ管理部と、
データ管理システムを構成する他のデータサーバを検出する検出部と、
クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索する要求処理部と、
他のデータサーバからデータ問合せを受けた場合、該データ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索し、その検索の結果に応じた応答を前記他のデータサーバに送る応答部と、
を備えるデータサーバ。 - ネットワークに接続された複数のデータサーバから構成されるデータ管理システムにより実行されるデータ管理方法であって、
各データサーバが、
データ管理部により、データを、そのデータに対して付与されたグローバルに一意なデータ識別情報と対応づけて管理し、
検出部により、データ管理システムを構成する他のデータサーバを検出し、
要求処理部により、クライアントから受け取ったデータ要求の要求対象データをデータ管理部から検索し、該当するデータが検索できた場合はそのデータをクライアントに提供し、検索できなかった場合は、該要求対象データのデータ識別情報を含むデータ問合せを検出部が検出した他のデータサーバに送ることにより、前記要求対象データを持つデータサーバを探索し、
応答部により、他のデータサーバからデータ問合せを受けた場合、該データ問合せに含まれるデータ識別情報に対応するデータを前記データ管理部から検索し、その検索の結果に応じた応答を前記他のデータサーバに送る、
ことを特徴とするデータ管理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005147656A JP2006323721A (ja) | 2005-05-20 | 2005-05-20 | データ管理システム及びデータサーバ及びデータ管理方法 |
US11/252,469 US20060265392A1 (en) | 2005-05-20 | 2005-10-18 | Data management system, data server, and data management method |
CN2005101294179A CN1866249B (zh) | 2005-05-20 | 2005-12-09 | 数据管理系统、数据服务器以及数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005147656A JP2006323721A (ja) | 2005-05-20 | 2005-05-20 | データ管理システム及びデータサーバ及びデータ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006323721A true JP2006323721A (ja) | 2006-11-30 |
Family
ID=37425271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005147656A Withdrawn JP2006323721A (ja) | 2005-05-20 | 2005-05-20 | データ管理システム及びデータサーバ及びデータ管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060265392A1 (ja) |
JP (1) | JP2006323721A (ja) |
CN (1) | CN1866249B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014046265A1 (ja) * | 2012-09-24 | 2014-03-27 | 日東電工株式会社 | サービス提供方法およびサービス提供システム |
WO2015136582A1 (ja) * | 2014-03-13 | 2015-09-17 | パナソニックIpマネジメント株式会社 | 情報機器特定システム、情報機器特定方法、情報機器およびプログラム |
JP2018514832A (ja) * | 2015-03-02 | 2018-06-07 | シトリックス・システムズ・インコーポレイテッドCitrix Systems,Inc. | REST(Representational State Transfer)準拠のクライアントを使用する異なる認証ドメインに位置するファイル・リポジトリ上での操作の実行 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4852938B2 (ja) * | 2005-09-02 | 2012-01-11 | 富士ゼロックス株式会社 | データサーバ及びデータ管理方法及びプログラム |
JP4919647B2 (ja) * | 2005-10-26 | 2012-04-18 | 株式会社日本レジストリサービス | 識別子認証システム |
US20080298201A1 (en) * | 2007-05-29 | 2008-12-04 | Taiyo Yuden Co., Ltd. | Method and program for obtaining and setting of recording setting information, and data recording/playback device |
CN101662464A (zh) | 2008-08-26 | 2010-03-03 | 阿里巴巴集团控股有限公司 | 一种用于实现http请求服务的系统及其方法 |
US8799409B2 (en) * | 2009-01-15 | 2014-08-05 | Ebay Inc. | Server side data cache system |
CN101702164B (zh) * | 2009-11-05 | 2012-05-23 | 南京邮电大学 | 一种普适计算私人数据管理方法 |
JP5585062B2 (ja) * | 2009-12-04 | 2014-09-10 | ソニー株式会社 | 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム |
US20120117510A1 (en) * | 2010-11-05 | 2012-05-10 | Xerox Corporation | System and method for automatically establishing a concurrent data connection with respect to the voice dial features of a communications device |
CN104750738B (zh) * | 2013-12-30 | 2018-06-26 | 中国移动通信集团公司 | 一种更新数据信息的方法、数据节点、管理节点及系统 |
CN103984621B (zh) * | 2014-04-01 | 2017-08-11 | 广州杰赛科技股份有限公司 | 日志分离方法和系统 |
CN107239510B (zh) * | 2017-05-12 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
CN110737447B (zh) * | 2018-07-18 | 2023-11-14 | 阿里巴巴集团控股有限公司 | 应用更新方法和装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2687966B2 (ja) * | 1990-08-20 | 1997-12-08 | 富士通株式会社 | 半導体装置の製造方法 |
US5542087A (en) * | 1993-10-15 | 1996-07-30 | Hewlett-Packard Company | Linear hashing for distributed records |
DE4445427C2 (de) * | 1994-12-20 | 1997-04-30 | Schott Glaswerke | Plasma-CVD-Verfahren zur Herstellung einer Gradientenschicht |
US5513314A (en) * | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
JP3747525B2 (ja) * | 1996-08-28 | 2006-02-22 | 株式会社日立製作所 | 並列データベースシステム検索方法 |
DE19634795C2 (de) * | 1996-08-29 | 1999-11-04 | Schott Glas | Plasma-CVD-Anlage mit einem Array von Mikrowellen-Plasmaelektroden und Plasma-CVD-Verfahren |
US5930801A (en) * | 1997-03-07 | 1999-07-27 | Xerox Corporation | Shared-data environment in which each file has independent security properties |
US6195680B1 (en) * | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
US6178418B1 (en) * | 1998-07-28 | 2001-01-23 | Noetix Corporation | Distributed data warehouse query and resource management system |
US20020087559A1 (en) * | 1999-01-11 | 2002-07-04 | PRATT John | Method and system for retrieving documents using hyperlinks |
US6374241B1 (en) * | 1999-03-31 | 2002-04-16 | Verizon Laboratories Inc. | Data merging techniques |
US6594651B2 (en) * | 1999-12-22 | 2003-07-15 | Ncr Corporation | Method and apparatus for parallel execution of SQL-from within user defined functions |
US20010047377A1 (en) * | 2000-02-04 | 2001-11-29 | Sincaglia Nicholas William | System for distributed media network and meta data server |
US20010027467A1 (en) * | 2000-03-30 | 2001-10-04 | Anderson David P. | Massively distributed database system and associated method |
JP4557400B2 (ja) * | 2000-09-14 | 2010-10-06 | キヤノン株式会社 | 堆積膜形成方法 |
US7571206B2 (en) * | 2002-08-12 | 2009-08-04 | Equallogic, Inc. | Transparent request routing for a partitioned application service |
-
2005
- 2005-05-20 JP JP2005147656A patent/JP2006323721A/ja not_active Withdrawn
- 2005-10-18 US US11/252,469 patent/US20060265392A1/en not_active Abandoned
- 2005-12-09 CN CN2005101294179A patent/CN1866249B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014046265A1 (ja) * | 2012-09-24 | 2014-03-27 | 日東電工株式会社 | サービス提供方法およびサービス提供システム |
JP2014067083A (ja) * | 2012-09-24 | 2014-04-17 | Nitto Denko Corp | サービス提供方法およびサービス提供システム |
WO2015136582A1 (ja) * | 2014-03-13 | 2015-09-17 | パナソニックIpマネジメント株式会社 | 情報機器特定システム、情報機器特定方法、情報機器およびプログラム |
JPWO2015136582A1 (ja) * | 2014-03-13 | 2017-04-06 | パナソニックIpマネジメント株式会社 | 情報機器特定システム、情報機器特定方法、情報機器およびプログラム |
US10218801B2 (en) | 2014-03-13 | 2019-02-26 | Panasonic Intellectual Property Management Co., Ltd. | Information device identification system, information device identification method, information device, non-transitory computer readable recording medium for use in a computer which can associate identical users with each other |
JP2018514832A (ja) * | 2015-03-02 | 2018-06-07 | シトリックス・システムズ・インコーポレイテッドCitrix Systems,Inc. | REST(Representational State Transfer)準拠のクライアントを使用する異なる認証ドメインに位置するファイル・リポジトリ上での操作の実行 |
Also Published As
Publication number | Publication date |
---|---|
US20060265392A1 (en) | 2006-11-23 |
CN1866249A (zh) | 2006-11-22 |
CN1866249B (zh) | 2011-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006323721A (ja) | データ管理システム及びデータサーバ及びデータ管理方法 | |
JP4729987B2 (ja) | データ管理システム及びデータサーバ | |
JP4852938B2 (ja) | データサーバ及びデータ管理方法及びプログラム | |
US9769278B2 (en) | Providing local access to managed content | |
JP4696721B2 (ja) | 文書管理サーバ、文書管理システム | |
US6092204A (en) | Filtering for public databases with naming ambiguities | |
JPH10254753A (ja) | キャッシュ間情報転送方法 | |
JP2007108905A (ja) | ファイルサーバ、ファイル提供方法及びプログラム | |
JP2007164523A (ja) | 情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラム | |
US7953875B2 (en) | Distributed computer system for storing data items assigned to virtual directories | |
JP2017107556A (ja) | コンテンツ指向ネットワーク内のキーカタログ | |
JP4437956B2 (ja) | ファイル共有アプリケーションに対するインデックス・サーバ・サポートを提供する方法 | |
US7797277B2 (en) | Document management system, program, and computer data signal | |
EP2802108B1 (en) | Data-centric communications system and data forwarding method | |
US20020107986A1 (en) | Methods and systems for replacing data transmission request expressions | |
CN103609081A (zh) | 通过解析进行路由 | |
US20110029587A1 (en) | Updating Retrieval Codes In Response To File Transfers | |
JP2007317107A (ja) | 情報処理システム、及び情報処理装置、並びに制御プログラム | |
KR20060056888A (ko) | 동일한 레이블과 매칭하는 다중 노드를 식별하는 컴퓨터네트워크 | |
JP4774814B2 (ja) | サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム | |
JP5345577B2 (ja) | 名前解決装置、名前解決方法および名前解決プログラム | |
JP2007072524A (ja) | データサーバ及びデータ管理方法及びプログラム | |
JP4494901B2 (ja) | リソース検索方法およびリソース検索システム | |
JP2006338436A (ja) | データ管理システム、データサーバ、およびデータ管理方法 | |
JP5706956B1 (ja) | データベースシステム及びデータベース制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080317 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100816 |