(57)【要約】【課題】ファイルの格納場所が変更しても、クライアントが変更前のファイル所在情報を用いてそのファイルにアクセスすることができ、ファイルにアクセスするために用いるファイル所在情報を参照することでユーザがファイルの格納場所を類推できるファイルサーバを提供する。【解決手段】ファイル要求処理部１２は、ファイル要求元からファイル要求を受け取ると、ファイル要求に示されるファイル所在情報から、要求対象ファイルを一意に特定するファイルＩＤと仮想ディレクトリのパスとを取得し、その仮想ディレクトリのパス上に、取得したファイルＩＤに対応するファイルが存在するか否かを判定し、判定の結果、取得したファイルＩＤに対応するファイルが存在する場合、取得したファイルＩＤに対応するファイルを取得して、そのファイルを要求対象ファイルとしてファイル要求元へ提供する。【選択図】図３
2007108905.tif 000002
【特許請求の範囲】
【請求項１】
ファイルをファイル要求元へ提供するファイルサーバとして、コンピュータを機能させるためのプログラムにおいて、
前記ファイル要求元からファイル要求を受け取ると、受け取ったファイル要求に示されるファイル所在情報から、要求対象ファイルを一意に特定するファイルＩＤと、ディレクトリのパスとを取得し、
前記取得したディレクトリのパス上に、前記取得したファイルＩＤに対応するファイルが存在するか否かを判定し、
判定の結果、前記取得したファイルＩＤに対応するファイルが存在する場合、前記取得したファイルＩＤに対応するファイルを取得して、取得したファイルを要求対象ファイルとして前記ファイル要求元へ提供する、
ように前記コンピュータを機能させるためのプログラム。
【請求項２】
請求項１に記載のプログラムにおいて、
判定の結果、前記取得したファイルＩＤに対応するファイルが存在しない場合、前記取得したファイルＩＤに対応する現在のディレクトリのパスを特定し、特定した現在のディレクトリのパスと前記取得したファイルＩＤとを示すファイル所在情報を生成し、生成したファイル所在情報を前記ファイル要求の応答として前記ファイル要求元へ提供する、
ように前記コンピュータを機能させるためのプログラム。
【請求項３】
請求項１に記載のプログラムにおいて、
前記ディレクトリは、ファイルの仮想的な格納場所を示す仮想ディレクトリであり、
前記コンピュータを、
ファイルＩＤと、ファイルの現在の仮想ディレクトリのパスと、ファイルの実際の格納場所を示す実ディレクトリのパスとを関連づけたファイル情報を参照して、前記取得したファイルＩＤに対応する現在の仮想ディレクトリのパスを特定し、特定した現在の仮想ディレクトリのパスと前記取得した仮想ディレクトリのパスとが一致するか否かに基づいて、前記取得した仮想ディレクトリのパス上に前記取得したファイルＩＤに対応するファイルが存在するか否かを判定し、
前記特定した現在の仮想ディレクトリのパスと前記取得した仮想ディレクトリのパスとが一致する場合、前記取得した仮想ディレクトリのパス上に要求対象ファイルが存在すると判定し、前記ファイル情報を参照して、前記取得したファイルＩＤに対応する実ディレクトリのパスを特定し、特定した実ディレクトリのパスから前記取得したファイルＩＤに対応するファイルを取得し、取得したファイルを要求対象ファイルとして前記ファイル要求元へ提供する、
ように機能させるためのプログラム。
【請求項４】
請求項３に記載のプログラムにおいて、
前記コンピュータを、
前記特定した仮想ディレクトリのパスと前記取得した仮想ディレクトリのパスとが一致しない場合、前記取得した仮想ディレクトリのパス上に要求対象ファイルが存在しないと判定し、前記特定した仮想ディレクトリのパスと前記取得したファイルＩＤとを示すファイル所在情報を生成し、生成したファイル所在情報を前記ファイル要求の応答として前記ファイル要求元へ提供する、
ように機能させるためのプログラム。
【請求項５】
請求項１に記載のプログラムにおいて、
前記ディレクトリは、ファイルの仮想的な格納場所を示す仮想ディレクトリであり、
ファイル所在情報に示される仮想ディレクトリのパスは、仮想ディレクトリを一意に特定する少なくとも１つのディレクトリＩＤにより構成され、
前記コンピュータを、
ファイルＩＤと、ファイルの現在の仮想的な格納場所を示す仮想ディレクトリのディレクトリＩＤと、ファイルの実際の格納場所を示す実ディレクトリのパスとを関連づけたファイル情報を参照して、前記取得したファイルＩＤに対応するファイルが仮想的に格納されている現在の仮想ディレクトリのディレクトリＩＤを特定し、特定したディレクトリＩＤと前記取得した仮想ディレクトリのパスにおいて最下位層に位置するディレクトリＩＤとが一致するか否かに基づいて、前記取得した仮想ディレクトリのパス上に前記取得したファイルＩＤに対応するファイルが存在するか否かを判定し、
それらのディレクトリＩＤが一致する場合、前記取得した仮想ディレクトリのパス上に要求対象ファイルが存在すると判定し、前記ファイル情報を参照して、前記取得したファイルＩＤに対応する実ディレクトリのパスを特定し、特定した実ディレクトリのパスからファイルを取得し、取得したファイルを要求対象ファイルとして前記ファイル要求元へ提供する、
ように機能させるためのプログラム。
【請求項６】
請求項５に記載のプログラムにおいて、
前記コンピュータを、
それらのディレクトリＩＤが一致しない場合、前記取得した仮想ディレクトリのパス上に要求対象ファイルが存在しないと判定し、現在の仮想ディレクトリ構造の情報を示す仮想ディレクトリ情報を参照して、前記特定したディレクトリＩＤを最下位層とする仮想ディレクトリのパスを生成し、生成した仮想ディレクトリのパスと前記取得したファイルＩＤとを示すファイル所在情報を生成し、生成したファイル所在情報を前記ファイル要求の応答として前記ファイル要求元へ提供する、
ように機能させるためのプログラム。
【請求項７】
ファイルをファイル要求元へ提供するファイルサーバにおいて、
前記ファイル要求元からファイル要求を受け取ると、受け取ったファイル要求に示されるファイル所在情報から、要求対象ファイルを一意に特定するファイルＩＤと、ディレクトリのパスとを取得する取得部と、
前記取得したディレクトリのパス上に、前記取得したファイルＩＤに対応するファイルが存在するか否かを判定する判定部と、
判定の結果、前記取得したファイルＩＤに対応するファイルが存在する場合、前記取得したファイルＩＤに対応するファイルを取得して、取得したファイルを要求対象ファイルとして前記ファイル要求元へ提供する提供部と、
を備えることを特徴とするファイルサーバ。
【請求項８】
ファイルサーバがファイルをファイル要求元へ提供するファイル提供方法において、
前記ファイルサーバが、
前記ファイル要求元からファイル要求を受け取ると、受け取ったファイル要求に示されるファイル所在情報から、要求対象ファイルを一意に特定するファイルＩＤと、ディレクトリのパスとを取得し、
前記取得したディレクトリのパス上に、前記取得したファイルＩＤに対応するファイルが存在するか否かを判定し、
判定の結果、前記取得したファイルＩＤに対応するファイルが存在する場合、前記取得したファイルＩＤに対応するファイルを取得して、取得したファイルを要求対象ファイルとして前記ファイル要求元へ提供する、
ことを特徴とするファイル提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のファイルを管理するファイルサーバに関する。
【背景技術】
【０００２】
この分野の従来技術として、特許文献１に示される技術がある。この技術では、ファイルサーバが、各ファイルに対してハンドルと呼ぶ一意な識別子を付与して管理している。そして、そのファイルのＵＲＬとして、従来一般的なファイルの所在場所（所在サーバとそのサーバ内でのファイルの格納場所を示すディレクトリのパスとの組合せ）を示したＵＲＬではなく、当該システムのサーバ名とファイルのハンドルとを指定した仮想ＵＲＬをユーザに提供する。ユーザがその仮想ＵＲＬを用いて当該システムにアクセスすると、システムはそのハンドルからファイルの所在場所を特定し、ユーザに提供する。このような仕組みにより、ファイルがデータ管理システム上のどの場所（ディレクトリ）に移動しても、ユーザからの要求に応じてそのファイルを見つけることができる。
【０００３】
しかし、特許文献１において、仮想ＵＲＬには、ファイルの格納場所を示すディレクトリのパスは表記されない。よって、ユーザは、仮想ＵＲＬを参照してもその仮想ＵＲＬに対応するファイルの格納場所を類推することができない。
【０００４】
一方、ＦＴＰ（File Transfer Protocol）を用いてファイルにアクセスする場合には、ＵＲＬにファイルの格納場所を示すディレクトリのパスが表記される。よって、ユーザは、ＵＲＬを参照することでそのＵＲＬに対応するファイルの格納場所を類推することができる。例えば、ftp://abc.co.jp/pub/incoming/readme.txtというＵＲＬを用いてファイルにアクセスする場合、abc.co.jpというホスト名を持つＦＴＰサーバの/pub/incoming/というディレクトリのパスにreadme.txtというファイルが格納されていることをユーザは類推することができる。
【０００５】
しかし、ＦＴＰを用いてファイルにアクセスする場合には、ファイルの格納場所を移動するとディレクトリのパスも変わるため、クライアントは以前のＵＲＬを用いてそのファイルにアクセスすることができない。
【０００６】
【特許文献１】特開平１１−３２６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、複数のファイルを管理するファイルサーバにおいて、たとえファイルの格納場所が変更しても、変更前のファイル所在情報を用いてそのファイルにアクセスさせることができ、ファイルにアクセスするために用いるファイル所在情報を参照することでユーザがファイルの格納場所を類推できるようにする。
【課題を解決するための手段】
【０００８】
本発明は、ファイルをファイル要求元へ提供するファイルサーバとして、コンピュータを機能させるためのプログラムにおいて、前記ファイル要求元からファイル要求を受け取ると、受け取ったファイル要求に示されるファイル所在情報から、要求対象ファイルを一意に特定するファイルＩＤと、ディレクトリのパスとを取得し、前記取得したディレクトリのパス上に、前記取得したファイルＩＤに対応するファイルが存在するか否かを判定し、判定の結果、前記取得したファイルＩＤに対応するファイルが存在する場合、前記取得したファイルＩＤに対応するファイルを取得して、取得したファイルを要求対象ファイルとして前記ファイル要求元へ提供する、ように前記コンピュータを機能させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ファイルの格納場所が変更しても、クライアントが変更前のファイル所在情報を用いてそのファイルにアクセスすることができ、ファイルにアクセスするために用いるファイル所在情報を参照することでユーザがファイルの格納場所を類推することができる。
【発明を実施するための最良の形態】
【００１０】
本発明を実施するための最良の形態（以下、実施形態とする）について、以下図面を用いて説明する。
【００１１】
図１は、本実施形態におけるファイル管理システムのシステム構成を示す図である。本システムでは、ＬＡＮ（ローカル・エリア・ネットワーク）やインターネットなどのネットワーク５０に接続されたファイルサーバ１０とクライアント３０とから構成される。
【００１２】
ファイルサーバ１０は、ファイルの実際の格納場所を示す実ディレクトリと、ファイルの仮想的な格納場所を示す仮想ディレクトリとを管理する。ファイルとは、文書データ、画像データ、動画データなど、ネットワーク５０を介してファイルサーバ１０とクライアント３０とがやり取り可能なデータ全般をいう。
【００１３】
クライアント３０は、要求対象ファイルのファイル所在情報を含むファイル要求をファイルサーバ１０に送信する。ファイルサーバ１０は、クライアント３０から受け取ったファイル所在情報に基づいて要求対象ファイルを検索し、得られたファイルをクライアント３０に提供する。
【００１４】
ファイル所在情報には、少なくとも要求対象ファイルを一意に特定するグローバルに一意なファイルＩＤと、要求対象ファイルの仮想的な格納場所を示す仮想ディレクトリのパスとが示される。ファイル所在情報は、例えばＵＲＬ（Uniform Resource Locator ）の記述方式を用いて記述される。図２は、ＵＲＬを用いた場合のファイル所在情報の一例を示す。図２に示す通り、ファイル所在情報は、ファイル要求先のホスト名１００と、要求対象ファイルの仮想ディレクトリのパス１０２と、要求対象ファイルのファイルＩＤ１０４とが示される。
【００１５】
なお、グローバルに一意なファイルＩＤとしては、例えばＵＵＩＤ（Universally Unique IDentifier）又はＧＵＩＤ（Globally Unique IDentifier）と呼ばれる１２８ビットの識別情報を用いることができる。ちなみに、ＵＵＩＤは、グローバルな一意性を保証するために、そのＵＵＩＤを作成した時刻や作成に使用したマシンに装着されたネットワークカードのＭＡＣ（Media Access Control）アドレス等を含んでいる。
【００１６】
図３は、本実施形態におけるファイルサーバ１０の機能ブロックを示す図である。図３において、ファイル要求処理部１２は、クライアント３０から送信されたファイル要求を受け取り、そのファイル要求に示されるファイル所在情報に基づいて、要求対象ファイルを検索し、得られたファイルを要求対象ファイルとしてクライアント３０に送信する。ファイル保持部１４は、各ファイルをそれぞれ指定された実ディレクトリの配下に格納する。
【００１７】
仮想ディレクトリ管理部１６は、仮想ディレクトリ情報１７を保持する。仮想ディレクトリが図４に示すような階層構造により構成される場合、仮想ディレクトリ情報１７は、図５に示すような情報である。図５に示す通り、仮想ディレクトリ情報１７には、仮想ディレクトリの仮想ディレクトリ名１１０と、その仮想ディレクトリの１つ上の階層に位置する親仮想ディレクトリの仮想ディレクトリ名１１２とが関連づけて示される。なお、図５において、親仮想ディレクトリ名が「ｎｕｌｌ」の仮想ディレクトリは、ルートディレクトリである。ファイル要求処理部１２は、仮想ディレクトリ情報１７を参照することで、現在の仮想ディレクトリの構造を確認することができる。
【００１８】
ファイル管理部１８は、ファイル情報１９を保持する。図６は、ファイル情報１９の一例を示す。図６に示す通り、ファイル情報１９には、ファイルＩＤ１２０と、ファイルの仮想的な格納場所となる仮想ディレクトリのパス１２２と、ファイル名１２４と、ファイルの実際の格納場所となる実ディレクトリのパス１２６とが関連づけて示される。ファイル要求処理部１２は、ファイル情報１９を参照することで、ファイルの仮想的な格納場所を示す仮想ディレクトリやファイルの実際の格納場所を示す実ディレクトリを確認することができる。
【００１９】
続いて、クライアント３０からファイル要求を受け取った場合におけるファイル要求処理部１２の処理手順について、図７に示すフローチャートを用いて説明する。
【００２０】
ファイル要求処理部１２は、クライアント３０からファイル要求を受け取ると、そのファイル要求に示されるファイル所在情報から仮想ディレクトリのパスと要求対象ファイルのファイルＩＤとを取得する（Ｓ１００）。ファイル要求処理部１２は、ファイル情報１９を参照して、要求対象ファイルが存在するか否かを判定する（Ｓ１０２）。つまり、ファイル要求処理部１２は、ファイル情報１９に登録されたファイルＩＤ群の中に、要求対象ファイルのファイルＩＤが含まれているかどうかを検索する。判定の結果、要求対象ファイルが存在しない場合には（Ｓ１０２の判定結果が、否定「Ｎ」）、ファイル要求処理部１２は、ファイル要求元のクライアント３０に、要求対象ファイルが存在しない旨のエラー通知を行う（Ｓ１１６）。
【００２１】
一方、Ｓ１０２での判定の結果、要求対象ファイルが存在する場合には（Ｓ１０２の判定結果が、肯定「Ｙ」）、ファイル要求処理部１２は、ファイル情報１９を参照することで、取得した仮想ディレクトリのパス上に要求対象ファイルが存在するか否かを判定する（Ｓ１０４）。つまり、取得した仮想ディレクトリのパスと取得したファイルＩＤとが対となる情報がファイル情報１９に登録されているかどうかを判定する。判定の結果、取得した仮想ディレクトリのパス上に要求対象ファイルが存在する場合（Ｓ１０４での判定結果が、肯定「Ｙ」）、ファイル要求処理部１２は、ファイル情報１９を参照して、取得したファイルＩＤに対応する実ディレクトリのパスを特定する（Ｓ１０６）。次いで、ファイル要求処理部１２は、特定した実ディレクトリのパスの最下位層に示される実ディレクトリから要求対象ファイルを取得し（Ｓ１０８）、ファイル要求先のクライアント３０にその要求対象ファイルを提供する（Ｓ１１０）。
【００２２】
一方、Ｓ１０４での判定の結果、取得した仮想ディレクトリのパス上に要求対象ファイルが存在しない場合（Ｓ１０４での判定結果が、否定「Ｎ」）、ファイル要求処理部１２は、要求対象ファイルがファイル所在情報に示された仮想ディレクトリのパスから移動したと判断する。そして、ファイル要求処理部１２は、ファイル情報１９を参照して、要求対象ファイルのファイルＩＤに対応する現在の仮想ディレクトリのパスを特定する（Ｓ１１２）。次いで、ファイル要求処理部１２は、特定した仮想ディレクトリのパスと要求対象ファイルのファイルＩＤとを示す新たなファイル所在情報を生成し、生成したファイル所在情報をファイル要求元のクライアント３０に提供する（Ｓ１１４）。クライアント３０は、ファイルサーバ１０からファイル要求の応答としてファイル所在情報を提供された場合、要求対象ファイルが移動したと判断して、提供されたファイル所在情報を示した新たなファイル要求をファイルサーバ１０に送信する。
【００２３】
以上、本実施形態によれば、クライアント３０は、たとえ要求対象ファイルが移動した場合でも、以前のファイル所在情報を用いてファイルサーバ１０にファイル要求を行えば、新たなファイル所在情報を提供される。よって、クライアント３０は、改めて新たなファイル所在情報を用いてファイル要求を行えば、最終的に要求対象ファイルを取得することができる。また、ファイル要求の応答として新たなファイル所在情報がクライアント３０に提供されるため、ユーザは要求対象ファイルが他の仮想ディレクトリに移動したことを把握することができる。さらに、クライアント３０がファイルを要求する際に用いるファイル所在情報には、ファイルの仮想的な格納場所を示す仮想ディレクトリのパスが示されている。よって、ユーザは、ファイル所在情報を参照することで、ファイルがどのようなディレクトリの配下に存在するのかを推測することができる。
【００２４】
続いて、本実施形態の第１の変形例について説明する。第１の変形例では、要求対象ファイルがすでに他の仮想ディレクトリに移動していた場合、ファイル要求処理部１２がファイル所在情報とともに要求対象ファイルも併せて、ファイル要求の応答として要求元のクライアント３０に提供する点で上記の実施形態とは異なる。
【００２５】
以下、第１の変形例において、クライアント３０からファイル要求を受け取った場合におけるファイル要求処理部１２の処理手順について図８に示すフローチャートを用いて説明する。ここでは、図７と同一内容の処理については、同一符号を付して説明を省略し、Ｓ１０４以降の処理について説明する。
【００２６】
図８において、要求対象ファイルがすでに他の仮想ディレクトリに移動していた場合、つまり、Ｓ１０４での判定結果が否定「Ｎ」の場合、ファイル要求処理部１２は、ファイル情報１９を参照して、要求対象ファイルに対応する現在の仮想ディレクトリのパスと実ディレクトリのパスとを特定する（Ｓ１２０）。次いで、ファイル要求処理部１２は、特定した実ディレクトリのパスの最下位層に位置する実ディレクトリから要求対象ファイルを取得する（Ｓ１２２）。さらに、ファイル要求処理部１２は、特定した現在の仮想ディレクトリのパスを示す新たなファイル所在情報を生成して、そのファイル所在情報と取得した要求対象ファイルとをファイル要求元のクライアント３０へ提供する（Ｓ１２４）。
【００２７】
以上、第１の変形例によれば、たとえ要求対象ファイルが移動していた場合でも、クライアント３０は、以前のファイル所在情報を用いてファイルサーバ１０にファイル要求を行えば、そのファイル要求の応答として、要求対象ファイルとともに新たなファイル所在情報を取得することができる。そして、ユーザは、どの仮想ディレクトリにファイルが移動したかを類推することができる。
【００２８】
続いて、本実施形態の第２の変形例について説明する。第２の変形例では、ファイル所在情報に示される仮想ディレクトリのパスが、仮想ディレクトリをグローバルに一意に特定する仮想ディレクトリＩＤにより構成されている点で、上記の実施形態や第１の変形例とは異なる。なお、仮想ディレクトリＩＤは、ファイルＩＤと同様にＵＵＩＤ又はＧＵＩＤを用いることができる。図９は、ＵＲＬを用いた場合の第２の変形におけるファイル所在情報の一例を示す。図９に示す通り、ファイル所在情報は、ファイル要求先のホスト名１００と、仮想ディレクトリＩＤにより構成される仮想ディレクトリのパス１０６と、要求対象ファイルのファイルＩＤ１０４とが示される。
【００２９】
図１０は、第２の変形例における仮想ディレクトリの階層構造の一例を示す。図１０に示すように、第２の変形例では、各仮想ディレクトリには、それぞれグローバルに一意な仮想ディレクトリＩＤが付与されている。このように、仮想ディレクトリにグローバルに一意な仮想ディレクトリＩＤを付与することで、図１０に示す「soft」のように、同一の階層に同一の名前をもつ仮想ディレクトリを存在させることができる。
【００３０】
図１１は、第２の変形例における仮想ディレクトリ管理部１６が保持する仮想ディレクトリ情報１７の一例を示す。図１０に示すように、第２の変形例では、仮想ディレクトリ情報１７には、仮想ディレクトリ名１１０と、その仮想ディレクトリの仮想ディレクトリＩＤ１１４と、その仮想ディレクトリの１つ上の階層に位置する親仮想ディレクトリの仮想ディレクトリＩＤ１１６とが関連づけて示される。
【００３１】
図１２は、第２の変形例におけるファイル管理部１８が保持するファイル情報１９の一例を示す。図１２に示すように、第２の変形例では、ファイル情報１９には、ファイルＩＤ１２０と、ファイルの仮想的な格納場所となる親仮想ディレクトリの仮想ディレクトリＩＤ１２８と、ファイル名１２４と、ファイルの実際の格納場所となる実ディレクトリのパス１２６とが関連づけて示される。
【００３２】
第２の変形例では、上記の通り、各仮想ディレクトリには、それぞれグローバルに一意な仮想ディレクトリＩＤが付与されている。よって、ファイル要求処理部１２は、ファイルの仮想的な格納場所となる親仮想ディレクトリの仮想ディレクトリＩＤが特定できれば、その仮想ディレクトリＩＤと仮想ディレクトリ情報１７とを照合することで、ファイルの仮想的な格納場所となる仮想ディレクトリのパスを特定することができる。よって、第２の変形例では、ファイル情報１９には、ファイルの仮想的な格納場所となる仮想ディレクトリのパス１２２の代わりに、ファイルの仮想的な格納場所となる親仮想ディレクトリの仮想ディレクトリＩＤ１２８が示される。
【００３３】
実施形態や第１の変形例では、ファイルが移動すると、ファイル管理部１８は、移動先の仮想ディレクトリからその仮想ディレクトリの上位の階層に存在するルートディレクトリまでの仮想ディレクトリをすべて特定して、特定した仮想ディレクトリ群により構成される仮想ディレクトリのパスをファイル情報１９に改めて登録する必要がある。一方、第２の変形例では、ファイルが移動しても、ファイル管理部１８は、移動先の仮想ディレクトリのみを特定して、特定した仮想ディレクトリの仮想ディレクトリＩＤをファイル情報１９に改めて登録するだけで済む。例えば、図１３に示すように、「price」ファイルが「fileserver」仮想ディレクトリから「scanserver」仮想ディレクトリに移動した場合、ファイル管理部１８は、図１４に示すように、ファイル情報１９における「price」ファイルに対応する親仮想ディレクトリＩＤを「dir4」から「dir5」に変更すればよい。
【００３４】
ここで、第２の変形例において、クライアント３０からファイル要求を受け取った場合におけるファイル要求処理部１２の処理手順について図１５に示すフローチャートを用いて説明する。
【００３５】
ファイル要求処理部１２は、クライアント３０からファイル要求を受け取ると、そのファイル要求に示されるファイル所在情報から仮想ディレクトリのパスと要求対象ファイルのファイルＩＤとを取得する（Ｓ２００）。ファイル要求処理部１２は、ファイル情報１９を参照して、要求対象ファイルが存在するか否かを判定する（Ｓ２０２）。判定の結果、要求対象ファイルが存在しない場合（Ｓ２０２の判定結果が、否定「Ｎ」）、ファイル要求処理部１２は、ファイル要求元のクライアント３０に、要求対象ファイルが存在しない旨のエラー通知を行う（Ｓ２１８）。
【００３６】
一方、Ｓ２０２での判定の結果、要求対象ファイルが存在する場合（Ｓ２０２の判定結果が、肯定「Ｙ」）、ファイル要求処理部１２は、ファイル情報１９を参照して要求対象ファイルが現在仮想的に保管されている仮想ディレクトリの仮想ディレクトリＩＤ、つまり親仮想ディレクトリＩＤを特定する（Ｓ２０４）。次いで、ファイル要求処理部１２は、取得した仮想ディレクトリのパスと、特定した親仮想ディレクトリＩＤから仮想ディレクトリ情報１７を参照してルートディレクトリまで親をたどって作成したパスが一致するかどうかを判定する（Ｓ２０６）。判定の結果、一致する場合には（Ｓ２０６の判定結果が、肯定「Ｙ」）、ファイル要求処理部１２は、ファイル情報１９を参照して、取得したファイルＩＤに対応する実ディレクトリのパスを特定する（Ｓ２０８）。次いで、ファイル要求処理部１２は、特定した実ディレクトリのパスの最下位層に示される実ディレクトリから要求対象ファイルを取得し（Ｓ２１０）、ファイル要求先のクライアント３０にその要求対象ファイルを提供する（Ｓ２１２）。
【００３７】
一方、Ｓ２０６での判定の結果、一致しない場合（Ｓ２０６での判定結果が、否定「Ｎ」）、ファイル要求処理部１２は、要求対象ファイルがファイル所在情報に示された仮想ディレクトリのパスから移動したと判断する。そして、ファイル要求処理部１２は、仮想ディレクトリ情報１７を参照して、特定した親仮想ディレクトリＩＤを最下位層とする仮想ディレクトリのパスを生成する（Ｓ２１４）。次いで、ファイル要求処理部１２は、生成した仮想ディレクトリのパスと要求対象ファイルのファイルＩＤとを示すファイル所在情報を生成し、生成したファイル所在情報をファイル要求元のクライアント３０に提供する（Ｓ２１６）。
【００３８】
以上、第２の変形例によれば、クライアント３０は、たとえ要求対象ファイルが移動した場合でも、以前のファイル所在情報を用いてファイルサーバ１０にファイル要求を行えば、新たなファイル所在情報を提供される。よって、クライアント３０は、改めて新たなファイル所在情報を用いてファイル要求を行えば、最終的に要求対象ファイルを取得することができる。また、ファイル要求の応答として新たなファイル所在情報がクライアント３０に提供されるため、ユーザは要求対象ファイルが他の仮想ディレクトリに移動したことを把握することができる。さらに、クライアント３０がファイルを要求する際に用いるファイル所在情報には、ファイルの仮想的な格納場所を示す仮想ディレクトリのパスが示されている。よって、ユーザは、ファイル所在情報を参照することで、ファイルがどのようなディレクトリの配下に存在するのかを推測することができる。
【００３９】
また、各仮想ディレクトリにはそれぞれグローバルに一意な仮想ディレクトリＩＤが付与されている。よって、第２の変形例によれば、同一階層に同一の名前をもつ仮想ディレクトリを存在させることができる。
【００４０】
続いて、本実施形態の第３の変形例について説明する。第１の変形例と同様に、要求対象ファイルがすでに他の仮想ディレクトリに移動していた場合、ファイル要求処理部１２がファイル所在情報とともに要求対象ファイルも併せて、ファイル要求の応答として要求元のクライアント３０に提供する。
【００４１】
図１６は、第３の変形例において、クライアント３０からファイル要求を受け取った場合におけるファイル要求処理部１２の処理手順を示すフローチャートである。図１６において、図１５と同一の処理については同一符号を付して説明を省略し、以下Ｓ２０６以降の処理について説明する。
【００４２】
図１６において、要求対象ファイルがすでに他の仮想ディレクトリに移動していた場合、つまり、Ｓ２０６での判定結果が否定「Ｎ」の場合、ファイル要求処理部１２は、ファイル情報１９を参照して、要求対象ファイルに対応する現在の仮想ディレクトリのパスと実ディレクトリのパスとを特定する（Ｓ２２０）。次いで、ファイル要求処理部１２は、特定した実ディレクトリのパスの最下位層に位置する実ディレクトリから要求対象ファイルを取得する（Ｓ２２２）。さらに、ファイル要求処理部１２は、仮想ディレクトリ情報１７を参照して、特定した親仮想ディレクトリＩＤを最下位層とする仮想ディレクトリのパスを生成する（Ｓ２２４）。ファイル要求処理部１２は、生成した仮想ディレクトリのパスと要求対象ファイルのファイルＩＤとを示す新たなファイル所在情報を生成し、その新たなファイル所在情報と取得した要求対象ファイルをファイル要求元のクライアント３０に提供する（Ｓ２２６）。
【００４３】
以上、第３の変形例によれば、たとえ要求対象ファイルが移動していた場合でも、クライアント３０は、以前のファイル所在情報を用いてファイルサーバ１０にファイル要求を行えば、そのファイル要求の応答として、要求対象ファイルとともに新たなファイル所在情報を取得することができる。
【００４４】
続いて、本実施形態の第４の変形例について説明する。第４の変形例では、ファイル管理システム上に複数のファイルサーバが配置され、ファイルサーバ間でファイルが移動する場合について説明する。
【００４５】
図１７は、第４の変形例におけるファイル管理システムのシステム構成を示す図である。図１７に示すように、第４の変形例では、ネットワーク５０を介して複数のファイルサーバ１０が接続されている。各ファイルサーバには、ファイル管理システム上でファイルサーバを一意に特定するサーバＩＤが付与されている。サーバＩＤは、例えばホスト名やＩＰアドレスなどである。
【００４６】
上記の実施形態および各変形例では、ファイル要求処理部１２は、ファイル情報１９に登録されたファイルＩＤ群の中に、要求対象ファイルのファイルＩＤが含まれているかどうかを検索し、検索できなかった場合は、そのままファイル要求元のクライアント３０にエラー通知を行っていた（図７，図８におけるＳ１１６及び図１５，図１６におけるＳ２１８）。しかし、第４の変形例では、ファイル要求処理部１２は、要求対象ファイルを検索できなかった場合、他のファイルサーバ１０に要求対象ファイルを保持しているかどうかの問い合わせを行う。
【００４７】
図１８は、要求対象ファイルを検索できなかった場合に、ファイル要求処理部１２が他のファイルサーバへの問合わせを行う際の処理手順を示すフローチャートである。
【００４８】
図１８において、ファイル要求処理部１２は、まず、他のファイルサーバを検出する（Ｓ３００）。他のファイルサーバの検出は、例えば、他サーバ検出用の所定のメッセージをファイル要求処理部１２からネットワーク５０へブロードキャストすることで行うことができる。他のファイルサーバは、他サーバ検出用のメッセージを認識し、それに対して応答するためのプロトコルを有している。すなわち、他サーバ検出用メッセージを受け取った他のファイルサーバは、このプロトコルに従い、ファイル要求処理部１２に応答する。ファイル要求処理部１２は、他のファイルサーバからの応答を受け取る。これにより、本システムを構成する他のファイルサーバを見つけることができる。他の方法としては、各ファイルサーバが他のファイルサーバのサーバＩＤのリストを保持するようにしても良い。
【００４９】
他のファイルサーバが見つからない場合（Ｓ３０２の判定結果が、否定「Ｎ」）、ファイル要求処理部１２は、要求元のクライアント３０へエラー通知を行う（Ｓ３１０）。一方、他のファイルサーバが見つかると（Ｓ３０２の判定結果が、肯定「Ｙ」）、ファイル要求処理部１２は、クライアント３０から受け取ったファイル所在情報に含まれるファイルＩＤを含んだ問合わせを他のファイルサーバに送り、そのファイルＩＤに対応するファイルを持っているか否かを問合わせる（Ｓ３０４）。この問合わせを受けた他のファイルサーバは、そのファイルＩＤに対応するファイルを持っている場合には、そのファイルに対応する新たなファイル所在情報をファイル要求処理部１２に提供するが、問合わせを受けた他のファイルサーバの動作については、後で説明する。
【００５０】
この問合わせの結果、問合わせ先の他のファイルサーバが当該ファイルを持っていないことが判明した場合は（Ｓ３０６の判定結果が、否定（Ｎ））、他のファイルサーバの検出（Ｓ３００）及びそれに対する問合わせ（Ｓ３０２）を新たな他のファイルサーバが検出できなくなるまで繰り返す。一方、問い合わせの結果、問合わせ先の他のファイルサーバが当該ファイルを持っている場合は（Ｓ３０６の判定結果が、肯定「Ｙ」）、ファイル要求処理部１２は、問合わせ先の他のファイルサーバから受け取ったファイル所在情報を要求元のクライアント３０に提供する（Ｓ３０８）。
【００５１】
次に、他のファイルサーバから上記の問い合わせを受けた場合のファイル要求処理部１２の処理手順について図１９に示すフローチャートを用いて説明する。
【００５２】
図１９において、ファイル要求処理部１２は、問合わせから要求対象ファイルのファイルＩＤを抽出する（Ｓ４００）。次いで、ファイル要求処理部１２は、ファイル情報１９を参照して、抽出したファイルＩＤを検索する（Ｓ４０２）。検索の結果、該当ファイルＩＤが検索できなかった場合（Ｓ４０４での判定結果が、否定「Ｎ」）、ファイル要求処理部１２は、問合わせ元のファイルサーバに該当ファイルが存在しない旨を通知する（Ｓ４０６）。
【００５３】
一方、検索の結果、該当ファイルが存在する場合（Ｓ４０４での判定結果が、肯定「Ｙ」）、ファイル要求処理部１２は、仮想ディレクトリ情報１７やファイル情報１９を参照して、該当ファイルの仮想ディレクトリのパスを生成する。仮想ディレクトリのパスの生成は、上記の実施形態や各変形例と同様でよい。次いで、ファイル要求処理部１２は、少なくとも、生成した仮想ディレクトリのパス、該当ファイルのファイルＩＤ、自己のサーバＩＤを含むファイル所在情報を生成して、そのファイル所在情報を問合わせ元のファイルサーバに提供する（Ｓ４０８）。
【００５４】
以上、第４の変形例によれば、要求対象ファイルがファイル要求を受けたファイルサーバ上に存在しない場合にも、他のファイルサーバ上に要求対象ファイルが存在すれば、その要求対象ファイルに対応するファイル所在情報が、ファイル要求元のクライアント３０に提供される。よって、クライアント３０は、ファイル要求の応答として受け取った新たなファイル所在情報を用いて、要求対象ファイルを取得することができる。
【００５５】
続いて、本実施形態の第５の変形例について説明する。第５の変形例では、ファイルが仮想ディレクトリ間を移動した場合の履歴を保持している点で、上記の実施形態及び各変形例とは異なる。
【００５６】
図２０は、第５の変形例におけるファイルサーバ１０の機能ブロックを示す図である。図２０において、図３と同一の機能ブロックについては同一の符号を付して、説明を省略する。ファイル移動管理部２０は、ファイルの仮想ディレクトリ間の移動を監視し、移動履歴２１を保持する。移動履歴２１は、図２１に示すように、移動対象のファイルのファイルＩＤ１３０と、移動前の仮想ディレクトリのパス１３２と、移動後の仮想ディレクトリのパス１３４とが示される。
【００５７】
上記の実施形態や各変形例において説明した処理を実行することで、要求対象ファイルが移動したと判断した場合、ファイル要求処理部１２は、要求対象ファイルに対応する仮想ディレクトリのパスを生成するのではなく、移動履歴２１を参照する。そして、ファイル要求処理部１２は、要求対象ファイルのファイルＩＤに対応する移動前の仮想ディレクトリのパスの中から、ファイル所在情報に示された仮想ディレクトリのパスと一致する移動前の仮想ディレクトリのパスを検索する。そして、ファイル要求処理部１２は、移動履歴２１を参照して、検索した移動前の仮想ディレクトリのパスに対応する移動後の仮想ディレクトリのパスを特定して、特定した仮想ディレクトリのパスを含む新たなファイル所在情報を生成する。
【００５８】
以上、第５の変形例では、要求対象ファイルが移動した場合、ファイル要求処理部１２は、ファイル移動管理部２０が保持する移動履歴２１を参照して、移動後の仮想ディレクトリのパスを特定する。
【００５９】
上記の実施形態や各変形例では、ファイル要求に示されるファイル所在情報には、図２や図９に示すように、仮想ディレクトリのパスを含む例について説明した。しかし、ファイルＩＤは、ファイル管理システムにおいて、グローバルに一意な識別子であるため、ファイルＩＤさえ判明すれば、要求対象ファイルを特定することができる。よって、図２２に示すように、ファイル要求に示すファイル所在情報には、ファイル要求の際のホスト名１００と要求対象ファイルのファイルＩＤ１０４とだけを示しても、ファイル要求処理部１２は、要求対象ファイルを特定することができる。この場合、ファイル要求処理部１２は、ファイルが移動していない場合にも、図２や図９に示すような仮想ディレクトリのパスを含むファイル所在情報を生成して、要求対象ファイルとともにその生成したファイル所在情報をファイル要求元のクライアント３０に提供してもよい。これにより、ユーザが、要求対象ファイルのファイルＩＤだけを知っている場合でも、その要求対象ファイルを取得できる。さらに、この場合、ユーザは、提供されたファイル所在情報を参照することで、要求対象ファイルが現在どのようなディレクトリの配下に存在するのかを推測することができる。なお、上記の実施形態や各変形例では、ファイルＩＤは、グローバルに一意な識別子であるとして説明した。しかし、複数のファイルサーバ間でファイルを共有して管理せずに、ファイルサーバごとに個別にファイルを管理する場合には、ファイルＩＤは、グローバルに一意な識別子ではなく、１つのファイルサーバ内で一意な識別子を用いることができる。
【００６０】
また、ファイル要求に示されるファイル所在情報には、仮想ディレクトリのパスではなく実ディレクトリのパスを示してもよい。
【図面の簡単な説明】
【００６１】
【図１】実施形態及び第１〜第３，５の変形例におけるファイル管理システムのシステム構成を示す図である。
【図２】ファイル所在情報の一例を示す図である。
【図３】実施形態及び第１〜第４の変形例におけるファイルサーバの機能ブロックを示す図である。
【図４】仮想ディレクトリの階層構造の一例を示す図である。
【図５】仮想ディレクトリ情報の一例を示す図である。
【図６】ファイル情報の一例を示す図である。
【図７】実施形態におけるファイル要求処理部がファイル要求を受けた際の処理手順を示すフローチャートである。
【図８】第１の変形例におけるファイル要求処理部がファイル要求を受けた際の処理手順を示すフローチャートである。
【図９】ファイル所在情報の一例を示す図である。
【図１０】仮想ディレクトリの階層構造の一例を示す図である。
【図１１】仮想ディレクトリ情報の一例を示す図である。
【図１２】ファイル情報の一例を示す図である。
【図１３】仮想ディレクトリの階層構造の一例を示す図である。
【図１４】ファイル情報の一例を示す図である。
【図１５】第２の変形例におけるファイル要求処理部がファイル要求を受けた際の処理手順を示すフローチャートである。
【図１６】第３の変形例におけるファイル要求処理部がファイル要求を受けた際の処理手順を示すフローチャートである。
【図１７】第４の変形例におけるファイル管理システムのシステム構成を示す図である。
【図１８】第４の変形例におけるファイル要求処理部が他のファイルサーバに要求対象ファイルが存在するかどうかを問合わせする際の処理手順を示すフローチャートである。
【図１９】第４の変形例におけるファイル要求処理部が他のファイルサーバから要求対象ファイルが存在するかどうかの問合わせを受けた際の処理手順を示すフローチャートである。
【図２０】第５の変形例におけるファイルサーバの機能ブロックを示す図である。
【図２１】移動履歴の一例を示す図である。
【図２２】ファイル所在情報の一例を示す図である。
【符号の説明】
【００６２】
１０  ファイルサーバ、１２  ファイル要求処理部、１４  ファイル保持部、１６  仮想ディレクトリ管理部、１７  仮想ディレクトリ情報、１８  ファイル管理部、１９  ファイル情報、２０  ファイル移動管理部、２１  移動履歴、３０  クライアント、５０  ネットワーク。
【図１】
2007108905.tif 000003
【図２】
2007108905.tif 000004
【図３】
2007108905.tif 000005
【図４】
2007108905.tif 000006
【図５】
2007108905.tif 000007
【図６】
2007108905.tif 000008
【図７】
2007108905.tif 000009
【図８】
2007108905.tif 000010
【図９】
2007108905.tif 000011
【図１０】
2007108905.tif 000012
【図１１】
2007108905.tif 000013
【図１２】
2007108905.tif 000014
【図１３】
2007108905.tif 000015
【図１４】
2007108905.tif 000016
【図１５】
2007108905.tif 000017
【図１６】
2007108905.tif 000018
【図１７】
2007108905.tif 000019
【図１８】
2007108905.tif 000020
【図１９】
2007108905.tif 000021
【図２０】
2007108905.tif 000022
【図２１】
2007108905.tif 000023
【図２２】
2007108905.tif 000024