(57)【特許請求の範囲】
【請求項１】
ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムであって、
ユーザによる前記ファイルの操作に応じて、該ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータの更新を要求するクライアントと、
前記ファイルに対応付けて前記拡張メタデータをキャッシュに記憶しておき、記憶した該拡張メタデータを前記クライアントからの前記拡張メタデータの更新の要求に応じて更新するファイルサーバと、
を有し、
前記拡張メタデータは、前記関連ファイルの優先度を示す優先度情報を更に有し、
前記ファイルサーバは、前記優先度情報に基づいて必要な拡張メタデータのみを前記ファイルに対応付けて前記キャッシュに記憶しておく、ファイル管理システム。
【請求項２】
前記拡張メタデータは、該拡張メタデータが管理する前記関連ファイルに対応する前記メタデータを有する、請求項１に記載のファイル管理システム。
【請求項３】
前記ファイルサーバは、記憶された前記拡張メタデータを前記クライアントへ更に送信し、
前記クライアントは、前記ファイルサーバから受信した前記拡張メタデータを記憶しておき、ユーザによる前記ファイルの操作に応じて自身の記憶している該拡張メタデータを更新したとき、該更新に基づいて、前記ファイルサーバに前記拡張メタデータの更新を要求する、請求項１又は２に記載のファイル管理システム。
【請求項４】
前記サーバ及び前記クライアントはネットワークに接続され、
前記サーバは、前記ネットワークの通信量が所定の閾値以下のときに記憶された前記拡張メタデータを前記クライアントに送信する、請求項３に記載のファイル管理システム。
【請求項５】
ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムにおけるファイルサーバであって、
前記ファイルに対応付けて該ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータを記憶しておくキャッシュと、
前記キャッシュに記憶された該拡張メタデータをクライアントからの前記拡張メタデータの更新の要求に応じて更新する更新手段と、
を有し、
前記拡張メタデータは、前記関連ファイルの優先度を示す優先度情報を更に有し、
前記ファイルサーバは、前記優先度情報に基づいて必要な拡張メタデータのみを前記ファイルに対応付けて前記キャッシュに記憶しておく、ファイルサーバ。
【請求項６】
前記拡張メタデータは、該拡張メタデータが管理する前記関連ファイルに対応する前記メタデータ又は該関連ファイルに対応する前記拡張メタデータを有する、請求項５に記載のファイルサーバ。
【請求項７】
ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムにおけるクライアントであって、
前記ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータを受信する受信手段と、
前記受信手段により受信された前記拡張メタデータを前記ファイルに対応付けて記憶するキャッシュと、
ユーザによる前記ファイルの操作に応じて、前記キャッシュに記憶された前記拡張メタデータを更新し、該更新に基づいてファイルサーバに更新を要求する更新要求手段と、
を有し、
前記拡張メタデータは、前記関連ファイルの優先度を示す優先度情報を更に有し、
前記キャッシュは、前記優先度情報に基づいて必要な拡張メタデータのみを前記ファイルに対応付けて記憶する、クライアント。
【請求項８】
前記拡張メタデータは、前記関連ファイルに対応する前記メタデータ又は該関連ファイルに対応する前記拡張メタデータを有する、請求項７に記載のクライアント。
【請求項９】
ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理方法であって、
クライアントがユーザによる前記ファイルの操作に応じて、該ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータの更新を要求し、
前記ファイルに対応付けてファイルサーバが前記拡張メタデータをキャッシュに記憶しておき、
記憶した該拡張メタデータを前記ファイルサーバが前記クライアントからの前記拡張メタデータの更新の要求に応じて更新し、
前記拡張メタデータは、前記関連ファイルの優先度を示す優先度情報を更に有し、
前記ファイルサーバは、前記優先度情報に基づいて必要な拡張メタデータのみを前記ファイルに対応付けて前記キャッシュに記憶する、ファイル管理方法。
【請求項１０】
ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムにおけるファイルサーバに、
前記ファイルに対応付けて該ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータをキャッシュに記憶する手順、及び
記憶された該拡張メタデータをクライアントからの前記拡張メタデータの更新の要求に応じて更新する更新手順、
を実行させ、
前記拡張メタデータは、前記関連ファイルの優先度を示す優先度情報を更に有し、
前記記憶する手順では、前記優先度情報に基づいて必要な拡張メタデータのみを前記ファイルに対応付けて前記キャッシュに記憶する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサーバが複数のファイルを管理する技術に関し、特にネットワークを通じて分散したファイルを管理する技術に関する。
【背景技術】
【０００２】
ファイルサーバとクライアントを有し、クライアントがネットワーク経由でファイルにアクセスするファイル管理システムがある。このファイル管理システムでは、ネットワーク上のファイルサーバが搭載するディスク領域を管理するソフトウェアがファイル単位の領域管理機構や、ファイル操作用ＡＰＩ（Application Program Interface）でファイルを管理していた。その場合、外部記憶装置上のファイルアクセスにおいては、ファイルを特定する識別子に基づいたオープン、リード、ライト、クローズなどの操作を、ＡＰＩで実行する必要があった。その為、ファイル管理システムのディレクトリ操作に関するＡＰＩを介して、ディレクトリを辿るなどのオペレーションが必要となる。
【０００３】
このような煩雑な操作を避けて処理性能を向上するために、特許文献１に開示されたファイル管理システムは、データを管理するためのメタデータ（データの格納場所などを示す情報）を記憶するメタデータキャッシュを設けている。この場合、メタデータキャッシュの効率を向上するためには、特定のユーザのファイル操作に関する履歴の解析や、類似データをサーバ内で検索することによる検索用データの再構築などの、サーバ側での処理を増やして対策を行っていた。
【０００４】
また、特許文献２では、ファイル管理を行うネットワーク接続型ストレージに対して、ファイルの種別を与えるメタデータあるいはユーザのプロファイル情報を使用してユーザの利用頻度の高いコンテンツをキャッシュ装置が把握する。そして、把握した情報に基づき、キャッシュ装置が効率的にフィルタして記憶することで効率的にトラフィックの低減を実現している。
【０００５】
或いは、特許文献３に開示されたデータ処理システムは、対象データの属性を表現するメタデータとして、データの所有者、データの名称、データの型、データの所在場所、データに対する各ユーザのアクセス権限などの情報を記録している。そして、データ処理システムは、これらの情報を元に、サーバ内でメタデータの検索処理を実行することにより、キャッシュ上に保持することにより処理性能を向上できると期待されるメタデータを抽出し、抽出したメタデータをメタデータキャッシュにロードしている。
【０００６】
このデータ処理システムにおいては、図１４に示すように、メタデータのキャッシュの効率を向上するために、メタデータサーバ、すなわちファイルサーバＳ１側でメタデータを検索し、クライアントＣ１側にキャッシュする構成としている。
【特許文献１】特開２００３−１５０４２４号公報
【特許文献２】特開２００２−１８０３１９号公報
【特許文献３】特開平７−７３０８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１乃至３に開示されたファイル管理システムでは、ファイルサーバは、キャッシュなどのヒットの効率を向上する目的で、過去の履歴に基づいたデータベースをユーザ毎に管理する必要が生じ、更にそれらのデータを頻繁に更新する必要があった。そのため、サーバ負荷が大きくなり、ファイル操作の応答性が低くなるという課題があった。
【０００８】
上述した問題点を鑑み、本発明は、ファイル管理システムにおけるファイル操作の応答性を改善する技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のファイル管理システムは、ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムであって、ユーザによる前記ファイルの操作に応じて該ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータの更新を要求するクライアントと、前記拡張メタデータを記憶しておき、記憶した該拡張メタデータを前記クライアントからの前記拡張メタデータの更新の要求に応じて更新するファイルサーバと、を有する。
【００１０】
また、本発明のファイル管理サーバは、ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムにおけるファイルサーバであって、前記ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータを記憶する記憶手段と、前記記憶手段に記憶された該拡張メタデータをクライアントからの前記拡張メタデータの更新の要求に応じて更新する更新手段と、を有する。
【００１１】
本発明のクライアントは、ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムにおけるクライアントであって、前記ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータを受信する受信手段と、前記受信手段により受信された前記拡張メタデータを記憶する記憶手段と、ユーザによる前記ファイルの操作に応じて前記記憶手段に記憶された前記拡張メタデータを更新し、該更新に基づいてファイルサーバに更新を要求する更新要求手段と、を有する。
【００１２】
本発明のファイル管理方法は、ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理方法であって、クライアントがユーザによる前記ファイルの操作に応じて該ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータの更新を要求し、ファイルサーバが前記拡張メタデータを記憶しておき、記憶した該拡張メタデータを前記ファイルサーバが前記クライアントからの前記拡張メタデータの更新の要求に応じて更新する。
【００１３】
本発明のプログラムは、ファイルを管理するための情報を有するメタデータに基づいて該ファイルを管理するファイル管理システムにおけるファイルサーバを制御するプログラムであって、前記ファイルに関連する関連ファイルを管理するための情報を有する拡張メタデータを記憶する手順、及び記憶された該拡張メタデータをクライアントからの前記拡張メタデータの更新の要求に応じて更新する更新手順、をコンピュータに実行させる。
【発明の効果】
【００１４】
本発明によれば、クライアントのユーザが拡張メタデータの更新を伴うファイル操作を行ったとき、その操作に応じてクライアントは拡張メタデータの更新をファイルサーバに要求し、ファイルサーバは要求に応じて拡張メタデータを更新する。よって、ファイルサーバは、自身でクライアントのユーザのファイル操作を拡張メタデータの更新に反映させる必要がなく、ファイルサーバの負荷が軽減されるので、ファイル管理システムにおけるファイル操作の応答性を改善することができる。
【発明を実施するための最良の形態】
【００１５】
（第１実施形態）
本発明の第１実施形態について図面を参照して詳細に説明する。
【００１６】
図１は、本実施形態のファイル管理システム１の構成を示すブロック図である。同図を参照すると、ファイル管理システム１は、クライアント１０およびファイルサーバ１１を有する。クライアント１０およびファイルサーバ１１は、ネットワーク２に接続される。また、ネットワーク２とは別のネットワーク４に記憶装置３およびファイルサーバ１１が接続されており、ファイルサーバ１１は、ネットワーク４を介して記憶装置３にアクセスできる。
【００１７】
本実施形態において、ファイルには、プログラムやデータなどのようなソフトウェエア資源に限らず、光学ドライブ、プリンタ、キーボードおよびマウスなどのハードウェア資源が含まれる。
【００１８】
本実施形態ではクライアント１０は１つとしているが、複数のクライアント１０にファイルサーバ１１がサービスを提供する構成としてもよいのは勿論である。また、１つのクライアント１０に対し、複数のファイルサーバ１１がサービスを提供する構成とすることもできる。
【００１９】
クライアント１０は、ファイルサーバ１１にファイルの入出力を要求し、ファイルに入力するデータをファイルサーバ１１に送信し、ファイルから出力されるデータをファイルサーバ１１から受信する。クライアント１０は、アプリ実行部１０１、ファイル制御部１０３、およびネットワークＩ／Ｆ部１０５を有する。
【００２０】
アプリ実行部１０１は、ユーザがファイルサーバ１１の管理するファイルを操作するためのアプリケーションを実行する。そのアプリケーションにおいてユーザは、ファイルの利用を開始する（ファイルを開く）操作またはファイルの利用を終了する（ファイルを閉じる）操作ができる。また、ユーザは、ファイルにデータを書き込む操作、ファイルからデータを読み出す操作、およびメタデータを作成または変更する操作などができる。メタデータの詳細については、後述する。
【００２１】
ファイル制御部１０３は、ユーザのファイル操作に応じて、所定のコマンドを発行し、発行したコマンドをネットワークＩ／Ｆ部１０５を経由してサーバ１１に送信する。
【００２２】
例えば、ファイル制御部１０３は、ユーザがファイルを開くまたは閉じる操作を行った場合、そのファイルを指定した「Ｏｐｅｎ」または「Ｃｌｏｓｅ」コマンドを発行する。
【００２３】
ユーザが開いたファイルにデータを書き込む操作を行った場合、ファイル制御部１０３は、そのファイルへの入力を要求する「Ｗｒｉｔｅ」コマンドを発行し、書き込むデータを送信する。ユーザが開いたファイルからデータを読み出す操作を行った場合、ファイル制御部１０３は、そのファイルの出力を要求する「Ｒｅａｄ」コマンドを発行し、出力されたデータを受信する。ユーザがファイル作成またはファイル名の変更する操作を行った場合、ファイル制御部１０３は、そのファイルの拡張メタデータの作成または更新を要求する「ＥｘｔＷｒｉｔｅ」コマンドを発行し、更新内容を示すデータを送信する。
【００２４】
ネットワークＩ／Ｆ部１０５は、クライアントをネットワーク２に接続する通信インターフェースである。
【００２５】
ファイルサーバ１１は、ネットワーク２を通じてクライアント１０にファイルの入出力サービスを提供する。ファイルサーバ１１は、ネットワークＩ／Ｆ部１１１、キャッシュ１１３、および管理部１１５を有する。
【００２６】
ネットワークＩ／Ｆ部１１１は、ファイルサーバ１１をネットワーク２およびネットワーク４に接続する通信インターフェースである。
【００２７】
キャッシュ１１３は、データキャッシュ１１３１およびメタデータキャッシュ１１３３を有し、ファイルへのアクセス時間を短縮するためデータ、メタデータ、および拡張メタデータを一時的に記憶する。
【００２８】
データキャッシュ１１３１は、ファイルから出力されるデータを一時的に記憶する。メタデータキャッシュ１１３３は、メタデータまたは拡張メタデータを一時的に格納する。
【００２９】
ここで、メタデータは、ファイルを管理するための情報である。例えば、ファイル名、アクセス権限、ファイルの属性、ファイルの格納場所などを示す情報がメタデータに含まれる。ＵＮＩＸやＬｉｎｕｘなどの場合のファイルシステムの領域を指し示すｉｎｏｄｅ構造体がメタデータの代表例と言える。また、ＵＮＩＸ等においてディレクトリ構造を実現する際、例えば、ディレクトリ構造を示すメタデータをファイルのデータ領域に記録する。その場合、ディレクトリの下にあるファイルを辿るとき、ディレクトリのデータ領域にあるディレクトリ構造を示すメタデータを読み出したうえで、そのディレクトリ構造を基にして、ファイル識別情報（一般的にはファイル名）と前記のｉｎｏｄｅの対応付けから、ディレクトリの下にあるファイルと結び付けられたメタデータすなわちｉｎｏｄｅを割り出すのが一般的である。本実施形態で述べるメタデータは主にｉｎｏｄｅ構造体のようなデータが記録されている領域を与えるデータ構造を指すが、ディレクトリ構造もメタデータとして扱っても差し支えない。
【００３０】
また、Ｗｉｎｓｏｗｓ等においては、ファイルやデータにおける設定や属性を管理するプロパティを示す情報がメタデータである。
【００３１】
拡張メタデータは、ファイルに対応しており、そのファイルの関連ファイルを管理するための情報である。関連ファイルとは、あるファイルに着目した場合、そのファイル（自ファイル）に関連するファイルである。拡張メタデータは各ファイルのデータ領域等を指し示すメタデータとは独立した構造であり、その拡張メタデータに対応する自ファイルと関連の強い関連ファイルの識別情報、関連ファイルの格納場所を示す領域情報、または関連ファイルのメタデータを記録した領域を示す情報などを記録することを想定している。メタデータには拡張メタデータを記録した領域へのポインタ情報や領域情報などが格納される。
【００３２】
メタデータ、拡張メタデータ、およびファイルの参照関係について図２を参照して説明する。図２は、ファイルＸのメタデータＭ１と、ファイルＸの拡張メタデータＥ１と、ファイルＸ、Ａ、Ｂ、Ｃ、およびＤとの参照関係を示した図である。同図において、点線の矢印は参照関係を示し、ファイル間の実線はファイル間に関連があることを意味する。例えば、木構造における根と節とに相当するファイルや、ユーザが組み合わせて使用する頻度の高い複数のファイルなどが、関連のあるファイルとなりうる。
【００３３】
図２を参照すると、ファイルＸにファイルＡ、Ｂ、Ｃ、およびＤが関連する。ファイルＸに着目すると、ファイルＡ、Ｂ、Ｃ、およびＤがその関連ファイルである。ファイルＸのメタデータＭ１は、ファイルＸの格納場所等を参照する情報（例えばポインタ）およびファイルＸの拡張メタデータＥ１の格納場所等を参照する情報を有する。そして、ファイルＸ（自ファイル）の拡張メタデータＥ１は、ファイルＸに関連するファイル（関連ファイル）Ａ、Ｂ、Ｃ、およびＤの格納場所等を参照する情報を有する。
【００３４】
また、ファイルＡに着目し、このファイルを自ファイルとすると、その関連ファイルは、ファイルＸ、Ｂ、Ｃ、およびＤとなる。このため、ファイルＡの拡張メタデータは、関連ファイルＸ、Ｂ、Ｃ、およびＤの格納場所等を参照する情報を有する。
【００３５】
図３〜図７は、ファイルＸの拡張メタデータＥ１のデータ構造の一例を示す図である。図３を参照すると、拡張メタデータＥ１は、ファイルＸに関連するファイルＡ、Ｂ、Ｃ、およびＤの識別情報（例えば、ファイル名）を格納する。同図において「ＦｉｌｅＡ」、「ＦｉｌｅＢ」、「ＦｉｌｅＣ」、および「ＦｉｌｅＤ」はそれぞれ、各ファイルのファイル名である。
【００３６】
図４に示すように、拡張メタデータＥ１は、各関連ファイルの優先度を示す情報をメタデータに対応付けて格納することもできる。関連ファイルごとの優先度は、ユーザが自ファイルを辿って、その関連ファイルにアクセスする可能性の高さを意味する。優先度は、関連ファイルの自ファイルとの関連の度合いや、アクセス履歴（最終アクセス日時やアクセス回数）などに応じて定める。例えば、優先度を示すＰｒｉｏｒｉｔｙというパラメータを定義し、同図に示すように、ユーザがファイルＸを開いた後にファイルＡおよびＢにアクセスする頻度が高い場合、優先度が比較的高いファイルをＡおよびＢとして、ユーザはこれらにＰｒｉｏｒｉｔｙ０を付与する。そして、ユーザは優先度の比較的低いファイルＣおよびＤにはＰｒｉｏｒｉｔｙ１を付与する。ファイルサーバ１１は、優先度の高いファイルに対応するメタデータまたは拡張メタデータを優先的にメタデータキャッシュ１１３１に記憶する。
【００３７】
図５に示すように、拡張メタデータＥ１は、ファイルＸに関連するファイルＡ、Ｂ、Ｃ、およびＤの格納場所を示す情報やデータサイズを示す情報を格納することもできる。図６に示すように、拡張メタデータＥ１は、更に関連度合いを示すパラメータ（Ｐｒｉｏｒｉｔｙ）を格納してもよい。図５および図６において「ＡｄｄｒＡ」、「ＡｄｄｒＢ」、「ＡｄｄｒＣ」、および「ＡｄｄｒＤ」はファイルの格納場所を示す情報であり、「ＬｅｎｇｔｈＡ」、「ＬｅｎｇｔｈＢ」、「ＬｅｎｇｔｈＣ」、および「ＬｅｎｇｔｈＤ」は、ファイルのデータサイズを示す情報である。
【００３８】
図７に示すように、拡張メタデータＥ１は、ファイルＡ、Ｂ、Ｃ、Ｄそれぞれについて格納場所、データサイズに加え、各ファイルから出力されるデータのコピーである、「ＤａｔａＡ」、「ＤａｔａＢ」、「ＤａｔａＣ」、および「ＤａｔａＤ」を格納することもできる。
【００３９】
図８および図９に示すように、拡張メタデータは、メタデータ自体を格納してもよい。図８は、メタデータ、拡張メタデータ、およびファイルの参照関係を示す図である。図８を参照すると、ファイルＸ、Ａ、Ｂ、Ｃ、およびＤのメタデータは、それぞれファイルＸ、Ａ、Ｂ、Ｃ、およびＤの格納場所等を参照する情報を有する。図９を参照すると、ファイルＸの拡張メタデータＥ２は、ファイルＡ、Ｂ、Ｃ、およびＤのメタデータである、「ＭｅｔａｄａｔａＡ」、「ＭｅｔａｄａｔａＢ」、「ＭｅｔａｄａｔａＣ」、および「ＭｅｔａｄａｔａＤ」を格納する。
【００４０】
図３、図５、図７、および図９において、拡張メタデータＥ１およびＥ２は、特にファイルの関連度合いを示す情報は有しないが、例えば、リストの先頭に近いファイルが先頭から遠いファイルより関連度が高いなどの意味を持たせることも可能である。
【００４１】
図２〜図９を参照して説明したように、メタデータは対応するファイルおよび拡張メタデータの格納場所等を参照し、拡張メタデータは対応するファイルに関連するファイルの格納場所等を参照する。このため、ファイルに対応するメタデータおよび拡張メタデータのデータ構造を解析することで、ファイルサーバ１１は、そのファイルに関連するファイルの格納場所等を求めることができる。
【００４２】
また、図２〜図９に示したように、関連するファイルを管理する情報をまとめて拡張メタデータとして保持することで、メタデータキャッシュ１１３１を効率よく利用することができる。
【００４３】
図２〜図９に示した格調メタデータの例では、リスト構造のデータを想定しているが、これらのデータ構造に、ＸＭＬなど可変長でフレキシブルなデータフォーマットを利用した管理構造を適用することもできる。
【００４４】
図２〜図９に示した拡張メタデータは、予め記憶装置３またはメタデータキャッシュ１１３３に記憶しておくか、ファイルサーバ１１がユーザの操作に応じて作成する。ユーザがファイルの関連を新たに定義したとき、クライアント１０は新たに定義された関連ファイルを示す情報をファイルサーバ１１へ送信する。ファイルサーバ１１は、ステップＴ２５において受信した関連ファイルを示す情報に基づき、拡張メタデータを作成してメタデータキャッシュ１１３１または記憶装置３に格納する。
【００４５】
図１に戻り、管理部１１５は、クライアント１０から受信したコマンドに従って、ファイルを管理する。同図を参照すると、管理部１１５は、ファイル管理部１１５１、データ構造解析部１１５３、および入出力制御部１１５５を有する。
【００４６】
ファイル管理部１１５１は、クライアント１０から送信されるコマンドを読み込む。例えば、「Ｏｐｅｎ」コマンドを受信した場合、ファイル管理部１１５１は、そのコマンドの示すファイルに対応するメタデータをメタデータキャッシュ１１３３から読み出す。該当するメタデータがメタデータキャッシュ１１３３にない場合、記憶装置３からそのメタデータを読み出す。ファイル管理部１１５１は、読み出したメタデータからファイルに対応する拡張メタデータを読み出し、「Ｏｐｅｎ」コマンドの示すファイルに関連するファイルの名称等を示す情報を求める。そして、ファイル管理部１１５１は、その情報をクライアント１０に送信する。読み出した関連ファイルのいずれかについてクライアント１０から再度「Ｏｐｅｎ」コマンドが送信された場合、ファイル管理部１１５１は同様の処理を行う。
【００４７】
また、「Ｗｒｉｔｅ」コマンドを受信した場合、ファイル管理部１１５１は、クライアント１０から書き込む対象のファイルとそのファイルに書き込むデータとを受信し、そのファイルにデータを格納（入力）する。「Ｒｅａｄ」コマンドを受信した場合、ファイル管理部１１５１は、記憶装置３またはデータキャッシュ１１３１からコマンドの示すファイルから読み出された（出力された）データを、クライアント１０に送信する。
【００４８】
「ＥｘｔＷｒｉｔｅ」コマンドを受信した場合、ファイル管理部１１５１は、データキャッシュ１１３１または記憶装置３からコマンドの示す拡張メタデータを読み出し、コマンドに従って更新する。または、ファイル管理部１１５１は、コマンドに従って、拡張メタデータを作成し、メタデータキャッシュ１１３３に格納する。
【００４９】
「Ｃｌｏｓｅ」コマンドを受信した場合、ファイル管理部１１５１は、メタデータキャッシュ１１３３からコマンドの示すファイルの拡張メタデータを読み出し、記憶装置３へ書き込む。
【００５０】
このように、ファイル管理部１１５１の処理により、クライアント１０のユーザはディレクトリ構造をたどってファイルを開き、開いたファイルにデータを書き込み又はファイルからデータを読み出し、そして、ファイルを閉じることができる。
【００５１】
データ構造解析部１１５３は、図２〜図９に例示した拡張メタデータの構造を解析し、開いたファイルに関連の強いファイルの格納場所等を適宜メタデータキャッシュ１１３３内に保持する。その際にデータ構造解析部１１５３は、予め設定されたＰｒｉｏｒｉｔｙなどの情報により、ファイルの格納場所等を示す情報の優先度付けを行い、メタデータキャッシュ１１３３にそれらの情報の取り込みを行うか否かを判断する。
【００５２】
このように、データ構造解析部１１５３は、優先度を示すパラメータ（Ｐｒｉｏｒｉｔｙ）に基づき必要なデータのみキャッシュ１１３に読み込むので、ファイルサーバ１１はキャッシュ１１３を効率的に利用することが出来る。
【００５３】
また、拡張メタデータ領域は、図２〜図９に示したように、まとまった領域に関連ファイルを管理する情報（ファイル名、格納場所等）を記録することが可能であるため、効果的にメタデータキャッシュへの取り込みを実行できることも明らかである。
【００５４】
ネットワーク２は、クライアント１０が接続される、ＬＡＮ(Local Area Network)等のネットワークである。
【００５５】
記憶装置３は、光ディスク、磁気ディスク、シリコンディスク、コントローラ内のメモリなどの記憶装置である。記憶装置３には、ファイルサーバ１１が管理するファイル、そのファイルのメタデータ、および拡張メタデータが格納される。本実施形態では、ファイルサーバ１１の外部に記憶装置３を設ける構成としているが、記憶装置３は、ファイルサーバ１１の内部に設けてもよい。また、記憶装置３は、複数台設けて、各装置にファイルを分散する構成としてもよい。
【００５６】
ネットワーク４は、ファイルサーバ１１が接続される、ＬＡＮ(Local Area Network)等のネットワークである。
【００５７】
次に、図１０および図１１を参照して、ファイル管理システム１の動作について説明する。
【００５８】
図１０は、クライアント１０の実行するファイル操作処理を示すフローチャートである。ファイル操作処理は、クライアント１０がユーザのファイル操作に応じてファイルの入出力を要求するための処理である。ファイル操作処理は、アプリ実行部１０１が、ファイル操作のためのアプリケーションを実行したときに開始する。同図を参照すると、まず、ファイル制御部１０３は、ユーザの操作に応じて、サーバ１１に対しファイルの入出力などを要求するコマンドを発行し、ネットワーク２を通じて発行したコマンドをサーバ１１に送信する（ステップＳ５）。そして、ファイル制御部１０３は、発行したコマンドが「Ｏｐｅｎ」コマンドであるか否かを判断する（ステップＳ１０）。「Ｏｐｅｎ」コマンドでない場合（ステップＳ１０：ＮＯ）、ファイル制御部１０３はステップＳ５に戻る。
【００５９】
「Ｏｐｅｎ」コマンドである場合（ステップＳ１０：ＹＥＳ）、ファイル制御部１０３は、サーバ１１からコマンドの示すファイルに対応するメタデータを受信する（ステップＳ１５）。そして、ファイル制御部１０３は、ユーザ操作に応じてコマンドを発行する（ステップＳ２０）。ファイル制御部１０３は、発行したコマンドが、データの入出力を要求するコマンドであるか否かを判断する（ステップＳ２５）。例えば、「Ｗｒｉｔｅ」、「Ｒｅａｄ」、および「ＥｘｔＷｒｉｔｅ」がファイルの入出力を要求するコマンドである。
【００６０】
ファイルの入出力を要求するコマンドである場合（ステップＳ２５：ＹＥＳ）、ファイル制御部１０３は、ファイルの入出力をサーバ１１に要求し、ファイルサーバ１０との間でデータを送受信する（ステップＳ３０）。例えば、「Ｗｒｉｔｅ」コマンドを発行した場合、ファイル制御部１０３は書き込む（入力する）データをサーバ１１に送信する。「Ｒｅａｄ」コマンドを発行した場合、ファイル制御部１０３は開いたファイルから出力されたデータをサーバ１１から受信する。「ＥｘｔＷｒｉｔｅ」コマンドを発行した場合、ファイル制御部１０３は拡張データの更新内容（ファイル名の変更など）を示すデータをサーバ１１に送信する。ステップＳ３０の後、ファイル制御部１０３は、ステップＳ２０を実行する。
【００６１】
ファイルの入出力を要求するコマンドでない場合（ステップＳ２５：ＮＯ）、ファイル制御部１０３は、発行したコマンドが「Ｃｌｏｓｅ」コマンドであるか否かを判断する（ステップＳ３５）。「Ｃｌｏｓｅ」コマンドでない場合（ステップＳ３５：ＮＯ）、ファイル制御部１０３はステップＳ２０に戻る。「Ｃｌｏｓｅ」コマンドである場合（ステップＳ３５：ＹＥＳ）、ファイル制御部１０３はファイル操作処理を終了する。
【００６２】
このように、クライアント１０は、ユーザの操作に応じてファイル単位でファイルの入出力などを要求するコマンドを発行し、サーバ１１との間でデータを送受信する。複数のファイルを処理する場合は、ファイル制御部１０３は、図１０で示した処理を複数並行して実行する。
【００６３】
次にサーバ１１の実行するファイル管理処理について図１１を参照して説明する。ファイル管理処理は、管理部１１５がクライアント１０から送信されるコマンドに応じてファイルを管理するための処理である。ファイル制御処理は、サーバ１１が起動した場合または所定のアプリケーションが起動した場合に開始する。同図を参照すると、管理部１１５は、まず、クライアント１０から受信したコマンドを読み込む（ステップＴ１）。受信するコマンドは、例えば、「Ｏｐｅｎ」、「Ｗｒｉｔｅ」、「Ｒｅａｄ」、「ＥｘｔＷｒｉｔｅ」、または「Ｃｌｏｓｅ」である。
【００６４】
管理部１１５は、読み込んだコマンドが「Ｏｐｅｎ」コマンドであるか否かを判断する（ステップＴ３）。「Ｏｐｅｎ」コマンドでない場合（ステップＴ３：ＮＯ）、管理部１１５はステップＴ１に戻る。
【００６５】
「Ｏｐｅｎ」コマンドである場合（ステップＴ３：ＹＥＳ）、管理部１１５は、メタデータキャッシュ１１３３にコマンドの示すファイルに対応するメタデータが格納されているか否かを判断する（ステップＴ５）。
【００６６】
メタデータキャッシュ１１１３３にファイルに対応するメタデータが格納されていない場合（ステップＴ５：ＮＯ）、管理部１１５は、記憶装置３からファイルに対応するメタデータを読み出す（ステップＴ７）。
【００６７】
メタデータキャッシュ１１３３にファイルに対応するメタデータが格納されている場合（ステップＴ５：ＹＥＳ）、またはステップＴ７の後、管理部１１５は、読み出したメタデータからファイルに対応する拡張メタデータを読み出し、拡張メタデータの示す関連ファイルの情報などをクライアント１０に送信する。管理部１１５は、クライアント１０からのコマンドを待ち、コマンドを受信すれば、そのコマンドを読み込む（ステップＴ９）。
【００６８】
管理部１１５は、読み込んだコマンドが「Ｗｒｉｔｅ」コマンドであるか否かを判断する（ステップＴ１１）。「Ｗｒｉｔｅ」コマンドであれば（ステップＴ１１：ＹＥＳ）、管理部１１５はクライアント１０から、ファイルに書き込むデータを受信する（ステップＴ１３）。そして、管理部１１５は、開いているファイルに受信したデータを書き込む（ステップＴ１５）。ステップＴ１５の後、管理部１１５はステップＴ９に戻る。
【００６９】
「Ｗｒｉｔｅ」コマンドでない場合（ステップＴ１１：Ｎｏ）、管理部１１５は、読み込んだコマンドが「Ｒｅａｄ」コマンドであるか否かを判断する（ステップＴ１７）。「Ｒｅａｄ」コマンドであれば（ステップＴ１７：ＹＥＳ）、管理部１１５はデータキャッシュ１１３１または記憶装置３内のファイルから出力されたデータを読み込む（ステップＴ１９）。そして、管理部１１５は、読み込んだデータをクライアント１０へ送信する（ステップＴ２１）。ステップＴ２１の後、管理部１１５はステップＴ９に戻る。
【００７０】
「Ｒｅａｄ」コマンドでない場合（ステップＴ１７：Ｎｏ）、管理部１１５は、読み込んだコマンドが「ＥｘｔＷｒｉｔｅ」コマンドであるか否かを判断する（ステップＴ２３）。「ＥｘｔＷｒｉｔｅ」コマンドであれば（ステップＴ２３：ＹＥＳ）、管理部１１５は、コマンドの示す拡張メタデータをメタデータキャッシュ１１３３または記憶装置３から読み出す（ステップＳ２５）。管理部１１５は、読み出した拡張メタデータをコマンドの示す更新内容に従って更新し、更新後の拡張メタデータをメタデータキャッシュ１１３３に格納する（ステップＴ２７）。ステップＴ２７の後、管理部１１５はステップＴ９に戻る。
【００７１】
「ＥｘｔＷｒｉｔｅ」コマンドでない場合（ステップＴ２３：Ｎｏ）、管理部１１５は、読み込んだコマンドが「Ｃｌｏｓｅ」コマンドであるか否かを判断する（ステップＴ２９）。「Ｃｌｏｓｅ」コマンドでない場合（ステップＴ２９：ＮＯ）、管理部１１５は、ステップＴ９に戻る。「Ｃｌｏｓｅ」コマンドである場合（ステップＴ２９：ＹＥＳ）、管理部１１５は、メタデータキャッシュ１１３３に格納されたメタデータおよび拡張メタデータを記憶装置３に書き込む（ステップＴ３１）。ステップＴ３１の後、管理部１１５は、ファイル管理処理を終了する。
【００７２】
このように、サーバ１１は、クライアント１０からコマンドを受信し、受信したコマンドに応じてファイル入出力サービスを提供し、拡張メタデータを更新する。
【００７３】
なお、ファイルサーバ１１は、ユーザのファイル操作に応じて拡張メタデータを作成してもよい。ユーザがファイルの関連を新たに定義したとき、クライアント１０は新たに定義された関連ファイルを示す情報をファイルサーバ１１へ送信する。ファイルサーバ１１は、ステップＴ２５において受信した関連ファイルを示す情報に基づき、拡張メタデータを作成してメタデータキャッシュ１１３１に格納する。
【００７４】
以上説明したように、本実施形態によれば、ファイルサーバ１１は関連ファイルを管理するための拡張メタデータをクライアント１０からの要求で更新するので、ファイルサーバ１１が自身で拡張メタデータの管理を行う必要がなく、ファイルサーバ１１の処理負荷が軽減される。
【００７５】
また、拡張メタデータは、関連ファイルのメタデータを有するので、ファイルサーバ１１は、自ファイルの拡張メタデータを読み出せば、その関連ファイルのメタデータをネットワーク２を通じて読み出す必要がなく、ネットワーク２の通信量が軽減される。
【００７６】
また、ファイルサーバ１１は、どの関連ファイルのメタデータをキャッシュに格納するのかを、各関連ファイルの優先度に基づいて決めるので、キャッシュ１１３が効率的に利用され、ネットワーク４を通じての記憶装置３へのアクセス回数が減少する。このため、ネットワーク４におけるハンドシェイク回数が減少する。この結果、ファイル操作の応答性が向上する。
【００７７】
（第２実施形態）
本発明の第２実施形態について図１２および図１３を参照して説明する。
【００７８】
第１実施形態においてキャッシュ１１３はサーバ１１側のみに設けていたが、更にクライアント１０にキャッシュを設けてもよい。第２実施形態は、クライアント１０にもキャッシュを設ける構成としたものである。
【００７９】
図１２は、本実施形態にかかるファイル管理システム１ａの全体図である。同図を参照すると、クライアント１０は、キャッシュ１０７を有し、キャッシュ１０７は、データキャッシュ１０７１およびメタデータキャッシュ１０７３を有する。ファイル管理システム１ａは、クライアント１０がキャッシュ１０７を有する以外は、第１実施形態にかかるファイル管理システム１と同様の構成である。
【００８０】
図１３を参照して、本実施形態のクライアント１０の動作について説明する。同図は、クライアント１０が実行するファイル操作処理を示すフローチャートである。同図を参照すると、ファイル制御部１０３は、ユーザの操作に応じて、サーバ１１に対しファイルの入出力などを要求するコマンドを発行し、そのコマンドをサーバ１１に送信する（ステップＳ５）。そして、ファイル制御部１０３は、発行したコマンドが「Ｏｐｅｎ」コマンドであるか否かを判断する（ステップＳ１０）。「Ｏｐｅｎ」コマンドでない場合（ステップＳ１０：ＮＯ）、ファイル制御部１０３はステップＳ５に戻る。
【００８１】
「Ｏｐｅｎ」コマンドである場合（ステップＳ１０：ＹＥＳ）、メタデータキャッシュ１０７３にファイル制御部１０３は、サーバ１１からコマンドの示すファイルに対応するメタデータが格納されているか否かを判断する（ステップＳ１１）。
【００８２】
ファイルに対応するメタデータが格納されていない場合（ステップＳ１１：ＮＯ）、ファイル制御部１０３は、サーバ１１からコマンドの示すファイルに対応するメタデータを要求する。
【００８３】
ファイルサーバ１１は、要求されたメタデータ、および、そのメタデータが参照する拡張メタデータをネットワーク２の通信トラフィックが所定の値以下となったときに、一括してバックグラウンドでクライアント１０に送信する。
【００８４】
クライアント１０は、メタデータおよび拡張メタデータを受信し、受信したメタデータ等をメタデータキャッシュ１０７３に格納する（ステップＳ１５）。そして、ファイル制御部１０３は、ユーザ操作に応じてコマンドを発行する（ステップＳ２０）。ファイル制御部１０３は、発行したコマンドが、データの入出力を要求するコマンドであるか否かを判断する（ステップＳ２５）。
【００８５】
データの入出力を要求するコマンドである場合（ステップＳ２５：ＹＥＳ）、またはファイルに対応するメタデータが格納されている場合（ステップＳ１１：ＹＥＳ）、ファイル制御部１０３は、コマンドがデータ入出力の対象とするデータブロック（例えば、ｉｎｏｄｅ）がデータキャッシュ１０７１に格納されているか否かを判断する（ステップＳ２６）。該当するデータブロックがある場合（ステップＳ２６：ＹＥＳ）、ファイル制御部１０３は、そのデータブロックにデータを入出力する（ステップＳ２７）。そして、ファイル制御部１０３はメタデータキャッシュ１０７３におけるメタデータを更新する。例えば、「Ｗｒｉｔｅ」コマンドを発行した場合、ファイル制御部１０３は開いたファイルに対応するデータブロックにデータを格納する。「Ｒｅａｄ」コマンドを発行した場合、ファイル制御部１０３は開いたファイルに対応するデータブロックからデータを読み込む。
【００８６】
そして、ファイル制御部１０３はメタデータキャッシュ１０７３におけるメタデータを更新する（ステップＳ２８）。例えば、「ＥｘｔＷｒｉｔｅ」コマンドを発行した場合、ファイル制御部１０３はメタデータキャッシュ１０７３における拡張メタデータを更新する。
【００８７】
該当するデータブロックがない場合（ステップＳ２６：ＮＯ）、ファイル制御部１０３は、ファイルの入出力をファイルサーバ１１に要求し、ファイルサーバ１１との間でデータを送受信する（ステップＳ３０）。ファイル制御部１０３は、メタデータキャッシュ１０７３におけるメタデータを更新する（ステップＳ３１）。ステップＳ２８またはＳ３１の後、ファイル制御部１０３は、ステップＳ２０に戻る。
【００８８】
ファイルの入出力を要求するコマンドでない場合（ステップＳ２５：ＮＯ）、ファイル制御部１０３は、発行したコマンドが「Ｃｌｏｓｅ」コマンドであるか否かを判断する（ステップＳ３５）。「Ｃｌｏｓｅ」コマンドでない場合（ステップＳ３５：ＮＯ）、ファイル制御部１０３はステップＳ２０に戻る。「Ｃｌｏｓｅ」コマンドである場合（ステップＳ３５：ＹＥＳ）、ファイル制御部１０３はデータキャッシュ１０７１に記憶されたデータをファイルサーバ１１に送信する（ステップＳ３６）。そして、ファイル制御部１０３はメタデータキャッシュ１０７３に記憶された拡張メタデータを、ネットワーク２の通信トラフィックが所定の値以下となったときにバックグラウンドでファイルサーバ１１へ送信する（ステップＳ３７）。ファイルサーバ１１は、受信したデータに応じて、キャッシュ１１３および記憶装置３に格納されたデータを更新する。ファイル制御部１０３は、ステップＳ３７の後、ファイル操作処理を終了する。
【００８９】
以上説明したように、本実施形態によれば、クライアント１０がメタデータキャッシュ１０７３を有し、拡張メタデータをキャッシュするので、更にファイルサーバ１１のキャッシュ管理の処理負荷が軽減され、ファイル操作の応答性が向上する。
【００９０】
また、ファイルサーバ１１は、クライアント１０へのメタデータおよび拡張メタデータの送信をネットワーク２の通信量が所定の値以下となった場合に行うので、通信トラフィックの増大によるファイルサーバ１１の応答の遅延が抑制される。
【００９１】
なお、図１１、図１２、および図１３で示した処理の全部または一部は、コンピュータがソフトウェアプログラムを実行することにより実現することもできる。
【図面の簡単な説明】
【００９２】
【図１】第１実施形態のファイル管理システムの構成を示す全体図である。
【図２】第１実施形態のデータ構造の一例を示す図である。
【図３】第１実施形態の拡張メタデータの構成の一例を示す図である。
【図４】第１実施形態の拡張メタデータの構成の一例を示す図である。
【図５】第１実施形態の拡張メタデータの構成の一例を示す図である。
【図６】第１実施形態の拡張メタデータの構成の一例を示す図である。
【図７】第１実施形態の拡張メタデータの構成の一例を示す図である。
【図８】第１実施形態のデータ構造の一例を示す図である。
【図９】第１実施形態の拡張メタデータの構成の一例を示す図である。
【図１０】第１実施形態のクライアントの実行する処理を示すフローチャートである。
【図１１】第１実施形態のファイルサーバの実行する処理を示すフローチャートである。
【図１２】第２実施形態のファイル管理システムの構成を示す全体図である。
【図１３】第２実施形態のクライアントの実行する処理を示すフローチャートである。
【図１４】従来のファイル管理システムの構成を示す全体図である。
【符号の説明】
【００９３】
１、１ａ    ファイル管理システム
２、４    ネットワーク
３    記憶装置
１０    クライアント
１１    ファイルサーバ
１０１    アプリ実行部
１０３    ファイル制御部
１０５    ネットワークＩ／Ｆ部
１０７    キャッシュ
１１１    ネットワークＩ／Ｆ部
１１３    キャッシュ
１１５    管理部
１０７１    データキャッシュ
１０７３    メタデータキャッシュ
１１３１    データキャッシュ
１１３３    メタデータキャッシュ
１１５１    ファイル管理部
１１５３    データ構造解析部
Ｅ１、Ｅ２    拡張メタデータ
Ｍ１    メタデータ
Ｃ１    クライアント
Ｓ１    サーバ
Ｓ５〜Ｓ３５、Ｔ１〜Ｔ３１、Ｓ３６、Ｓ３７    ステップ
【図１】
0005239398.tif 000002
【図２】
0005239398.tif 000003
【図３】
0005239398.tif 000004
【図４】
0005239398.tif 000005
【図５】
0005239398.tif 000006
【図６】
0005239398.tif 000007
【図７】
0005239398.tif 000008
【図８】
0005239398.tif 000009
【図９】
0005239398.tif 000010
【図１０】
0005239398.tif 000011
【図１１】
0005239398.tif 000012
【図１２】
0005239398.tif 000013
【図１３】
0005239398.tif 000014
【図１４】
0005239398.tif 000015