(57)【要約】【課題】ネットワークを介したファイルアクセスに伴うネットワークの負荷を軽減すること。【解決手段】第１のサーバは、リモートファイルを参照する場合に、第２のサーバを含む複数のサーバに対して当該リモートファイルの参照要求を送信し、第２のサーバは、参照要求により要求されたリモートファイルを第１のサーバへ送信し、第１のサーバは、第２のサーバからリモートファイルを受信した場合に、第２のサーバを格納先サーバ情報とし、当該受信したリモートファイルの識別情報と関連付けて第１のファイル情報記憶部へ登録し、リモートファイルを再度参照する場合に、第１のファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報が第２のサーバであることを特定し、特定された第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信する。【選択図】図１
2011186616.tif 000002
【特許請求の範囲】
【請求項１】
ファイルが格納されているサーバを特定する格納先サーバ情報を記憶する第１のファイル情報記憶部を備え、外部のサーバに格納されたリモートファイルを処理する第１のサーバと、
前記リモートファイルを格納する第２のサーバと、を備え、
前記第１のサーバは、前記リモートファイルを参照する場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの参照要求を送信し、
前記第２のサーバは、前記参照要求により要求された前記リモートファイルを前記第１のサーバへ送信し、
前記第１のサーバは、
前記第２のサーバから前記リモートファイルを受信した場合に、前記第２のサーバを前記格納先サーバ情報とし、当該受信したリモートファイルの識別情報と関連付けて前記第１のファイル情報記憶部へ登録し、
前記リモートファイルを再度参照する場合に、前記第１のファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報が前記第２のサーバであることを特定し、特定された前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信することを特徴とする分散ファイルシステム。
【請求項２】
前記第１のサーバは、前記リモートファイルを参照する場合に、前記第１のファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定し、存在すると判定した場合に、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報から特定される前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信し、存在しないと判定した場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信することを特徴とする請求項１に記載の分散ファイルシステム。
【請求項３】
前記第２のサーバは、
ファイルが格納されているサーバを示す格納先サーバ情報を記憶する第２のファイル情報記憶部をさらに備え、
前記リモートファイルを生成した場合に、自己を前記格納先サーバ情報とし、当該リモートファイルの識別情報と関連付けて前記第２のファイル情報記憶部へ登録し、
前記第１のサーバは、前記リモートファイルを参照する場合に、当該リモートファイルの識別情報を含めて前記参照要求を送信し、
前記第２のサーバは、
前記第１のサーバから前記参照要求を受信した場合に、前記第２のファイル情報記憶部を参照し、自己を前記格納先サーバ情報として関連付けられているファイルの識別情報の中に、前記参照要求に含まれる識別情報が存在するか否かを判定し、
前記識別情報が存在すると判定した場合に、当該リモートファイルを前記第１のサーバへ送信する
ことを特徴とする請求項１又は２に記載の分散ファイルシステム。
【請求項４】
前記第２のサーバは、前記リモートファイルを生成した場合に、生成したリモートファイルのファイル名からハッシュ値を算出し、自己を前記格納先サーバ情報とし、当該ハッシュ値と関連付けて前記第２のファイル情報記憶部へ登録し、
前記第１のサーバは、前記リモートファイルのファイル名からハッシュ値を算出し、当該ハッシュ値を含めて前記参照要求を送信し、
前記第２のサーバは、
前記第１のサーバから前記参照要求を受信した場合に、前記第２のファイル情報記憶部を参照し、自己を前記格納先サーバ情報として関連付けられているハッシュ値の中に、前記参照要求に含まれるハッシュ値が存在するか否かを判定し、
前記ハッシュ値が存在すると判定した場合に、前記リモートファイルを前記第１のサーバへ送信する
ことを特徴とする請求項３に記載の分散ファイルシステム。
【請求項５】
前記第１のサーバ及び前記第２のサーバは、前記リモートファイルが格納されているディレクトリ名を含めて前記ハッシュ値を生成することを特徴とする請求項４に記載の分散ファイルシステム。
【請求項６】
前記第２のサーバは、
前記リモートファイルを更新した場合に、当該リモートファイルの更新日時情報を当該リモートファイルの識別情報に関連付けて前記第２のファイル情報記憶部へさらに登録し、
前記第１のサーバから前記参照要求を受信し、前記識別情報が存在すると判定した場合に、前記第２のファイル情報記憶部から前記参照要求に含まれる識別情報に関連付けられた更新日時情報を取得し、当該取得した更新日時情報を含めて当該リモートファイルを前記第１のサーバへ送信し、
前記第１のサーバは、前記第２のサーバから前記リモートファイルを受信した場合に、前記更新日時情報を当該受信したリモートファイルの識別情報に関連付けて前記第１のファイル情報記憶部へさらに登録することを特徴とする請求項３乃至５のいずれか１項に記載の分散ファイルシステム。
【請求項７】
前記第１のサーバは、前記リモートファイルを参照する場合、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの識別情報を含めて参照要求をブロードキャストにより送信し、
前記第２のサーバは、前記第１のサーバからブロードキャストにより前記参照要求を受信することを特徴とする請求項１乃至６のいずれか１項に記載の分散ファイルシステム。
【請求項８】
ファイルの識別情報と、当該ファイルが格納されているサーバを特定する格納先サーバ情報とを関連付けて格納するファイル情報記憶部と、
外部のサーバに格納されたリモートファイルを参照する場合に、前記ファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定する判定部と、
前記判定部により、前記リモートファイルの識別情報が存在すると判定された場合に、前記ファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた前記格納先サーバ情報から特定されるサーバに対して当該リモートファイルの参照要求を送信し、前記リモートファイルの識別情報が存在しないと判定された場合に、複数のサーバに対して当該リモートファイルの参照要求を送信するファイル要求部と、
前記参照要求を受信したサーバからの応答として前記リモートファイルを受信した場合に、当該受信したリモートファイルに基づき処理を行うファイル処理部と、
を備えるリモートファイル処理サーバ。
【請求項９】
ファイルが格納されているサーバを特定する格納先サーバ情報を記憶する第１のファイル情報記憶部を備え、外部のサーバに格納されたリモートファイルを処理する第１のサーバと、
前記リモートファイルを格納する第２のサーバと、を備え、
前記第１のサーバにおいて、前記リモートファイルを参照する場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの参照要求を送信し、
前記第２のサーバにおいて、前記参照要求により要求された前記リモートファイルを前記第１のサーバへ送信し、
前記第１のサーバにおいて、
前記第２のサーバから前記リモートファイルを受信した場合に、前記第２のサーバを前記格納先サーバ情報とし、当該受信したリモートファイルの識別情報と関連付けて前記第１のファイル情報記憶部へ登録し、
前記リモートファイルを再度参照する場合に、前記第１のファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報が前記第２のサーバであることを特定し、
特定された前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信することを特徴とするリモートファイル処理方法。
【請求項１０】
外部のサーバに格納されたリモートファイルを参照する場合に、ファイルの識別情報と、当該ファイルが格納されているサーバを特定する格納先サーバ情報とを関連付けて格納するファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定する判定処理と、
前記判定処理により、前記リモートファイルの識別情報が存在すると判定された場合に、前記ファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた前記格納先サーバ情報から特定されるサーバに対して当該リモートファイルの参照要求を送信し、前記リモートファイルの識別情報が存在しないと判定された場合に、複数のサーバに対して当該リモートファイルの参照要求を送信するファイル要求処理と、
前記参照要求を受信したサーバからの応答として前記リモートファイルを受信した場合に、当該受信したリモートファイルに基づき処理を行うファイル処理と、
を含むリモートファイル処理をコンピュータに実行させるリモートファイル処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラムに関し、特に、ネットワークを介して、外部のサーバに格納されたリモートファイルを処理するための分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークを介した複数のサーバ間でファイルを共有するために、ＮＡＳ（Network Attached Storage）が用いられている。図１０は、ＮＡＳを利用したコンピュータシステムの一例であるネットワークファイルシステム９００を示すブロック図である。ネットワークファイルシステム９００は、ＮＡＳ９１と、サーバ９２と、サーバ９３と、サーバ９４ａ、・・・９４ｎとを備え、それぞれネットワーク１を介して接続されている。
【０００３】
ＮＡＳ９１は、ネットワーク１に直接接続して、他のサーバにＨＤＤ（Hard Disk Drive）９１０を使用させることができるファイルサーバ専用機である。ここでは、ＨＤＤ９１０は、任意のファイルであるリモートファイル９１１を格納するものとする。サーバ９２、サーバ９３、サーバ９４ａ、・・・９４ｎは、汎用的なコンピュータシステムであり、いわゆるサーバ装置である。そして、サーバ９２、サーバ９３、サーバ９４ａ、・・・９４ｎは、任意のＯＳ（Operating System）（不図示）が稼働する。特に、サーバ９２は、アプリケーション９２０が動作する。また、サーバ９３は、アプリケーション９３０が動作する。例えば、アプリケーション９２０は、任意のファイルを生成する処理を行い、生成したファイルについてネットワーク１を介してＨＤＤ９１０内にリモートファイル９１１として格納する。そして、アプリケーション９３０は、ネットワーク１を介してＨＤＤ９１０からリモートファイル９１１を取得し、取得したリモートファイル９１１を用いて所定の処理を行う。これにより、サーバ９２とサーバ９３との間でＮＡＳ９１によりファイルを共有することができる。同様に、サーバ９４ａ、・・・９４ｎについてもＮＡＳ９１によりサーバ９２及び９３とファイルを共有することができる。
【０００４】
特許文献１には、１つまたは複数のネットワークコンピュータを含むコンピュータネットワーク内のコンピュータシステムにおいて、ファイルをキャッシュして共有する方法に関する技術が開示されている。特許文献１にかかる方法は、１つまたは複数のネットワークコンピュータの中から選択された候補ピアサーバのリストを含むピアリストであって、予め定められた数以上の候補ピアサーバを含まないピアリストを構築する動作と、ファイルまたはファイルの一部分に関して、ピアリスト中の候補ピアサーバにクエリを行う動作と、ピアリスト中のピアサーバから、ピアサーバがダウンロードのために利用可能なファイルまたはファイルの一部分を有しているというメッセージを受信する動作と、ピアサーバから、ファイルまたはファイルの一部分をダウンロードする動作と、を備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００９−５０６４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したＮＡＳを用いたファイル共有については、例えば、同じファイルを繰り返し参照する場合に、都度、ＮＡＳ９１との通信が必要となり、ネットワーク１上に流れるデータ量が増えるため、ネットワーク１の負荷が高くなるという問題がある。
【０００７】
また、特許文献１においても、参照するファイルが更新される可能性がある場合には、都度、ピアリスト中の候補ピアサーバにクエリを行う必要があり、やはりネットワークの負荷が高くなるという問題がある。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、ネットワークを介したファイルアクセスに伴うネットワークの負荷を軽減するための分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様にかかる分散ファイルシステムは、ファイルが格納されているサーバを特定する格納先サーバ情報を記憶する第１のファイル情報記憶部を備え、外部のサーバに格納されたリモートファイルを処理する第１のサーバと、前記リモートファイルを格納する第２のサーバと、を備え、前記第１のサーバは、前記リモートファイルを参照する場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの参照要求を送信し、前記第２のサーバは、前記参照要求により要求された前記リモートファイルを前記第１のサーバへ送信し、前記第１のサーバは、前記第２のサーバから前記リモートファイルを受信した場合に、前記第２のサーバを前記格納先サーバ情報とし、当該受信したリモートファイルの識別情報と関連付けて前記第１のファイル情報記憶部へ登録し、前記リモートファイルを再度参照する場合に、前記第１のファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報が前記第２のサーバであることを特定し、特定された前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信する。
【００１０】
本発明の第２の態様にかかるリモートファイル処理サーバは、ファイルの識別情報と、当該ファイルが格納されているサーバを特定する格納先サーバ情報とを関連付けて格納するファイル情報記憶部と、外部のサーバに格納されたリモートファイルを参照する場合に、前記ファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定する判定部と、前記判定部により、前記リモートファイルの識別情報が存在すると判定された場合に、前記ファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた前記格納先サーバ情報から特定されるサーバに対して当該リモートファイルの参照要求を送信し、前記リモートファイルの識別情報が存在しないと判定された場合に、複数のサーバに対して当該リモートファイルの参照要求を送信するファイル要求部と、前記参照要求を受信したサーバからの応答として前記リモートファイルを受信した場合に、当該受信したリモートファイルに基づき処理を行うファイル処理部と、を備える。
【００１１】
本発明の第３の態様にかかるリモートファイル処理方法は、ファイルが格納されているサーバを特定する格納先サーバ情報を記憶する第１のファイル情報記憶部を備え、外部のサーバに格納されたリモートファイルを処理する第１のサーバと、前記リモートファイルを格納する第２のサーバと、を備え、前記第１のサーバにおいて、前記リモートファイルを参照する場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの参照要求を送信し、前記第２のサーバにおいて、前記参照要求により要求された前記リモートファイルを前記第１のサーバへ送信し、前記第１のサーバにおいて、前記第２のサーバから前記リモートファイルを受信した場合に、前記第２のサーバを前記格納先サーバ情報とし、当該受信したリモートファイルの識別情報と関連付けて前記第１のファイル情報記憶部へ登録し、前記リモートファイルを再度参照する場合に、前記第１のファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報が前記第２のサーバであることを特定し、特定された前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信する。
【００１２】
本発明の第４の態様にかかるリモートファイル処理プログラムは、外部のサーバに格納されたリモートファイルを参照する場合に、ファイルの識別情報と、当該ファイルが格納されているサーバを特定する格納先サーバ情報とを関連付けて格納するファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定する判定処理と、前記判定処理により、前記リモートファイルの識別情報が存在すると判定された場合に、前記ファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた前記格納先サーバ情報から特定されるサーバに対して当該リモートファイルの参照要求を送信し、前記リモートファイルの識別情報が存在しないと判定された場合に、複数のサーバに対して当該リモートファイルの参照要求を送信するファイル要求処理と、前記参照要求を受信したサーバからの応答として前記リモートファイルを受信した場合に、当該受信したリモートファイルに基づき処理を行うファイル処理と、を含むリモートファイル処理をコンピュータに実行させる。
【発明の効果】
【００１３】
本発明により、ネットワークを介したファイルアクセスに伴うネットワークの負荷を軽減するための分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態１にかかる分散ファイルシステムの構成を示すブロック図である。
【図２】本発明の実施の形態１にかかるリモートファイル取得処理の流れを示すシーケンス図である。
【図３】本発明の実施の形態２にかかるネットワークファイルシステムの構成を示すブロック図である。
【図４】本発明の実施の形態２にかかるファイル情報の例を示す図である。
【図５】本発明の実施の形態２にかかるサーバの構成を示すブロック図である。
【図６】本発明の実施の形態２にかかるサーバのハードウェア構成を示すブロック図である。
【図７】本発明の実施の形態２にかかるファイル情報登録処理の流れを示すフローチャート図である。
【図８】本発明の実施の形態２にかかるファイル要求処理の流れを示すフローチャート図である。
【図９】本発明の実施の形態２にかかるファイル送信処理の流れを示すフローチャート図である。
【図１０】課題の発生を説明するための図である。
【発明を実施するための形態】
【００１５】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１６】
＜発明の実施の形態１＞
図１は、本発明の実施の形態１にかかる分散ファイルシステム１００の構成を示すブロック図である。分散ファイルシステム１００は、サーバ２と、サーバ３と、サーバ４ａ、・・・４ｎとを備え、それぞれネットワーク１を介して接続されている。
【００１７】
サーバ２は、汎用的なコンピュータシステムであり、外部のサーバに格納されたリモートファイルを処理する制御部２１と、ファイル情報記憶部２２とを少なくとも備える。ファイル情報記憶部２２は、ファイル識別情報２２１と、格納先サーバ情報２２２とを格納する記憶装置である。ファイル情報記憶部２２は、例えば、ＨＤＤ、フラッシュメモリ等の不揮発性の記憶装置であることが望ましい。ファイル識別情報２２１は、ファイルを識別するための情報である。ファイル識別情報２２１は、例えば、ファイル名、ファイルＩＤといったものである。格納先サーバ情報２２２は、ファイルが格納されているサーバを特定するための情報である。また、格納先サーバ情報２２２は、ファイルの格納先のサーバの宛先を示す情報である。格納先サーバ情報２２２は、例えば、ホスト名、ＩＰ（Internet Protocol）アドレス等であるとよい。また、格納先サーバ情報２２２は、サーバ２自身を示す場合には、ローカルホストを示す情報であってもよい。格納先サーバ情報２２２は、少なくとも分散ファイルシステム１００内において、ネットワーク１に接続されたサーバを一意に特定するための情報であればよい。
【００１８】
サーバ３は、汎用的なコンピュータシステムであり、少なくともＨＤＤ３１を備える。ＨＤＤ３１は、リモートファイル３１１を格納する記憶装置である。リモートファイル３１１は、任意のファイルであり、例えば、サーバ３内で生成されたファイルである。尚、ＨＤＤ３１は、サーバ３が備える記憶装置の一例である。また、サーバ３は、外部のサーバからのリモートファイル３１１の参照要求に応じて、ＨＤＤ３１からリモートファイル３１１を取得し、要求元へ返信する制御部（不図示）を備えるものとする。
【００１９】
サーバ４ａ、・・・４ｎは、サーバ２又はサーバ３と同等のコンピュータシステムである。また、ネットワーク１は、イントラネット、ＬＡＮ等の通信ネットワークである。
【００２０】
続いて、分散ファイルシステム１００におけるリモートファイル取得処理の概要を説明する。まず、サーバ２は、リモートファイル３１１を参照する場合に、サーバ３を含む複数のサーバに対してリモートファイル３１１の参照要求を送信する。次に、サーバ３は、参照要求により要求されたリモートファイル３１１をサーバ２へ送信する。そして、サーバ２は、サーバ３からリモートファイル３１１を受信した場合に、サーバ３を格納先サーバ情報２２２とし、受信したリモートファイル３１１のファイル識別情報２２１と関連付けてファイル情報記憶部２２へ登録する。その後、サーバ２は、リモートファイル３１１を再度参照する場合に、ファイル情報記憶部２２を参照し、リモートファイル３１１のファイル識別情報２２１に関連付けられた格納先サーバ情報２２２がサーバ３であることを特定し、特定されたサーバ３に対してリモートファイル３１１のファイル識別情報２２１を含めて参照要求を送信する。
【００２１】
図２は、本発明の実施の形態１にかかるリモートファイル取得処理の流れを示すシーケンス図である。まず、サーバ２の制御部２１において、リモートファイル３１１の参照が発生する（Ｓ１１）。そして、制御部２１は、ネットワーク１に接続された複数のサーバに対してリモートファイル３１１の参照要求を送信する。すなわち、制御部２１は、サーバ３、４ａ、・・・４ｎに対してリモートファイル３１１の参照要求（Ｓ１２、Ｓ１２ａ、・・・Ｓ１２ｎ）を送信する。
【００２２】
次に、サーバ３は、ステップＳ１２の参照要求を受信し、当該参照要求により要求されたリモートファイル３１１がＨＤＤ３１に格納されていることを確認する。そして、サーバ３は、ＨＤＤ３１からリモートファイル３１１を取得し、要求元であるサーバ２に対してリモートファイル３１１を返信する（Ｓ１３）。このとき、サーバ４ａ、・・・４ｎのそれぞれは、ステップＳ１２ａ、・・・Ｓ１２ｎにより受信した参照要求により要求されたリモートファイル３１１を格納していないため、その旨を返信するか又は返信しなくてもよい。
【００２３】
そして、制御部２１は、サーバ３からリモートファイル３１１を受信する。これにより、制御部２１は、リモートファイル３１１について処理を行うことができる。このとき、制御部２１は、サーバ３を格納先サーバ情報２２２とし、リモートファイル３１１とファイル識別情報２２１と関連付けてファイル情報記憶部２２に登録する（Ｓ１４）。
【００２４】
その後、サーバ２の制御部２１において、リモートファイル３１１の参照が発生する（Ｓ１５）。そして、制御部２１は、ファイル情報記憶部２２に対して、リモートファイル３１１のファイル識別情報２２１に関連付けられた格納先サーバ情報２２２を参照する（Ｓ１６）。制御部２１は、ファイル情報記憶部２２から格納先サーバ情報２２２の応答を受け付ける（Ｓ１７）。このとき、制御部２１は、受け付けた格納先サーバ情報２２２により格納先のサーバがサーバ３であることを特定する。そして、制御部２１は、特定されたサーバ３に対してリモートファイル３１１のファイル識別情報２２１を含めて参照要求を送信する（Ｓ１８）。
【００２５】
このように、本発明の実施の形態１では、サーバ２は、自己が格納していないファイルであるリモートファイルを参照する場合、当初は、当該リモートファイルがどこに格納されているか不明であるため、ネットワーク１に接続された複数のサーバに対して参照要求を送信する。これにより、分散ファイルシステム１００内にリモートファイルが存在する場合に、確実に要求するリモートファイルを取得することができる。そして、サーバ２は、受信したリモートファイルを処理する際に、併せて、当該リモートファイルの識別情報と格納先サーバ情報とを関連付けてファイル情報記憶部２２に登録する。これにより、再度、同一のリモートファイルを参照する際に、サーバ２は、ファイル情報記憶部２２を参照して格納先のサーバがサーバ３であることを特定することにより、参照要求の送信先を１箇所とすることができる。そのため、同一のリモートファイルに複数回のファイルアクセスが発生する場合であっても、２回目以降は、格納先のサーバと直接の通信とすることができる。そのため、ＮＡＳのように、各ファイルを集中管理する場合に比べて、ネットワークを介したファイルアクセスに伴うネットワークの負荷を軽減することができる。
【００２６】
＜発明の実施の形態２＞
発明の実施の形態２にかかるネットワークファイルシステム２００は、発明の実施の形態１にかかる分散ファイルシステム１００の実施例の一つである。図３は、本発明の実施の形態２にかかるネットワークファイルシステム２００の構成を示すブロック図である。ネットワークファイルシステム２００は、サーバ２ａと、サーバ３ａと、サーバ５ａ、・・・５ｎとを備え、それぞれネットワーク１を介して接続されている。
【００２７】
サーバ２ａは、汎用的なコンピュータシステムであり、アプリケーション２１０と、監視デーモン２２０と、ＨＤＤ２３０と、ファイル情報記憶部２４０とを備える。アプリケーション２１０は、任意のファイルを生成し、参照し、更新するソフトウェアである。ＨＤＤ２３０は、アプリケーション２１０により生成された生成ファイル２３１を格納する記憶装置である。尚、ＨＤＤ２３０は、サーバ２ａが備える記憶装置の一例である。
【００２８】
ファイル情報記憶部２４０は、ファイルパス名２４１と、ハッシュ値２４２と、格納先サーバ情報２４３と、更新日時情報２４４とを関連付けて格納する記憶装置である。ファイル情報記憶部２４０は、言い換えると、ファイルの所在に関する情報をキャッシュ情報として管理するデータベースである。ファイル情報記憶部２４０は、例えば、ＨＤＤ、フラッシュメモリ等の不揮発性の記憶装置であることが望ましい。ファイルパス名２４１は、ファイル名及びファイルの格納先のディレクトリパスを示す情報である。つまり、ファイルパス名２４１は、所定のファイルシステム内で一意に定まる情報である。ハッシュ値２４２は、ファイルパス名２４１から所定のハッシュ関数により算出されたハッシュ値である。格納先サーバ情報２４３は、上述した格納先サーバ情報２２２と同等の情報である。更新日時情報２４４は、関連付けられたファイルが少なくとも最後に更新された年月日及び時刻を示す情報である。尚、更新日時情報２４４は、最後以外の更新日時、例えば、作成日時等を含めても構わない。図４は、本発明の実施の形態２にかかるファイル情報記憶部２４０に格納されるデータの例を示す図である。
【００２９】
監視デーモン２２０は、ＨＤＤ２３０を監視し、アプリケーション２１０からＨＤＤ２３０へのファイルアクセスが発生し、当該ファイルアクセスが外部のサーバに格納されたファイルを要求している場合に、外部のサーバに対してファイルの参照要求を行うソフトウェアである。また、監視デーモン２２０は、参照要求により取得されたファイルの所在に関する情報をファイル情報記憶部２４０により管理する。
【００３０】
サーバ３ａは、サーバ２ａと同等のコンピュータシステムであり、アプリケーション３１０、監視デーモン３２０、ＨＤＤ３３０及びファイル情報記憶部３４０並びに生成ファイル３３１、ファイルパス名３４１、ハッシュ値３４２、格納先サーバ情報３４３及び更新日時情報３４４は、それぞれ、サーバ２ａにおける各構成要素と対応する同等の構成要素である。そのため、詳細な説明を省略する。
【００３１】
サーバ５ａ、・・・５ｎは、サーバ２ａ及び３ａと同等のコンピュータシステムである。また、ネットワーク１は、イントラネット、ＬＡＮ等の通信ネットワークである。
【００３２】
続いて、ネットワークファイルシステム２００におけるリモートファイル取得処理の概要を説明する。尚、ネットワークファイルシステム２００において、分散ファイルシステム１００と同等の処理については、説明を省略する。
【００３３】
サーバ２ａのアプリケーション２１０がサーバ３ａにおいて格納される生成ファイル３３１、すなわちリモートファイルを参照する場合に、監視デーモン２２０は、ファイル情報記憶部２４０に当該リモートファイルの識別情報が存在するか否かを判定する。存在すると判定した場合に、監視デーモン２２０は、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報２４３から特定されるサーバ３ａに対して当該リモートファイルの識別情報を含めて参照要求を送信する。また、存在しないと判定した場合に、監視デーモン２２０は、サーバ３ａを含む複数のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信する。これにより、ファイル情報記憶部２４０により生成ファイル３３１の所在が管理されている場合には、直接、格納先のサーバへ参照要求を送信するため、ネットワークの負荷を軽減することができる。また、ファイル情報記憶部２４０により生成ファイル３３１の所在が管理されていない場合であっても、ネットワーク１に接続された複数のサーバに対して参照要求を送信することにより、確実にリモートファイルを参照することができる。
【００３４】
また、サーバ３ａのアプリケーション３１０が生成ファイル３３１を生成した場合に、監視デーモン３２０は、自己を格納先サーバ情報３４３とし、生成ファイル３３１の識別情報と関連付けてファイル情報記憶部３４０へ登録する。そして、サーバ２ａの監視デーモン２２０は、生成ファイル３３１を参照する場合に、生成ファイル３３１の識別情報を含めて参照要求を送信する。このとき、サーバ３ａの監視デーモン３２０は、サーバ２ａから参照要求を受信した場合に、ファイル情報記憶部３４０を参照し、自己を格納先サーバ情報３４３として関連付けられているファイルの識別情報の中に、参照要求に含まれる識別情報が存在するか否かを判定する。そして、識別情報が存在すると判定した場合に、監視デーモン３２０は、生成ファイル３３１をサーバ２ａへ送信する。これにより、外部のサーバからのファイルの識別情報を含むファイルアクセスに対して、対応することができる。特に、ファイルの所在に関する情報の管理方法がファイル情報記憶部２４０とファイル情報記憶部３４０とにおいて同等であることにより、効率的に処理することができる。
【００３５】
さらに、サーバ３ａのアプリケーション３１０が生成ファイル３３１を生成した場合に、監視デーモン３２０は、生成した生成ファイル３３１のファイル名からハッシュ値３４２を算出し、自己を格納先サーバ情報３４３とし、ハッシュ値３４２と関連付けてファイル情報記憶部３４０へ登録する。そして、サーバ２ａの監視デーモン２２０は、生成ファイル３３１のファイル名からハッシュ値２４２を算出し、ハッシュ値２４２を含めて参照要求を送信する。そして、監視デーモン３２０は、サーバ２ａから参照要求を受信した場合に、ファイル情報記憶部３４０を参照し、自己を格納先サーバ情報３４３として関連付けられているハッシュ値３４２の中に、参照要求に含まれるハッシュ値ハッシュ値２４２が存在するか否かを判定する。監視デーモン３２０は、ハッシュ値２４２が存在すると判定した場合に、生成ファイル３３１をサーバ２ａへ送信する。これにより、ネットワーク１に流れるデータであるファイルの識別情報をハッシュ値という小さなデータとすることができ、ネットワークの負荷をさらに軽減することができる。また、ハッシュ値により一意に定まるファイルを特定することができる。
【００３６】
さらに、サーバ２ａ及び３ａは、リモートファイルが格納されているディレクトリ名を含めてハッシュ値を生成するとよい。これにより、ファイルの識別情報によりファイルの特定をより正確に行うことができる。
【００３７】
また、サーバ３ａのアプリケーション３１０は、生成ファイル３３１を更新した場合に、アプリケーション３１０の更新日時情報３４４を生成ファイル３３１のハッシュ値３４２に関連付けてファイル情報記憶部３４０へさらに登録する。そして、サーバ３ａの監視デーモン３２０は、サーバ２ａから参照要求を受信し、識別情報が存在すると判定した場合に、ファイル情報記憶部３４０から参照要求に含まれる識別情報に関連付けられた更新日時情報３４４を取得し、当該取得した更新日時情報３４４を含めて生成ファイル３３１をサーバ２ａへ送信する。その後、サーバ２ａの監視デーモン２２０は、サーバ３ａから生成ファイル３３１を受信した場合に、更新日時情報３４４を受信した生成ファイル３３１の識別情報に関連付けてファイル情報記憶部２４０へさらに登録する。これにより、サーバ２ａにおいても参照の度に、リモートファイルの更新日時情報を管理することができる。
【００３８】
さらに、サーバ２ａの監視デーモン２２０は、生成ファイル３３１を参照する場合、サーバ３ａを含む複数のサーバに対して生成ファイル３３１の識別情報を含めて参照要求をブロードキャストにより送信するとよい。その場合、サーバ３ａの監視デーモン３２０は、サーバ２ａからブロードキャストにより参照要求を受信し、上述した処理を行ったうえで、応答を行う。これにより、リモートファイルの所在が不明であっても、効率的に当該リモートファイルを格納するサーバへ参照要求を送信することができる。
【００３９】
図５は、本発明の実施の形態２にかかるサーバ２ａの構成を示すブロック図である。尚、サーバ３ａの構成は、サーバ２ａと同等であるため、図示及び説明を省略する。サーバ２ａは、ファイル情報記憶部２４０と、ハッシュ算出部２５１と、判定部２５２と、ファイル要求部２５３と、ファイル処理部２５４と、ファイル情報登録部２５５と、ファイル送信部２５６と、を備える。
【００４０】
ここで、サーバ２ａは、少なくともファイル情報記憶部２４０と、判定部２５２と、ファイル要求部２５３と、ファイル処理部２５４とを備える必要がある。この場合、ファイル情報記憶部２４０は、ファイルの識別情報であるファイルパス名２４１と格納先サーバ情報２４３とを少なくとも関連付けて格納する。ここで、まず、判定部２５２は、外部のサーバに格納されたリモートファイルを参照する場合に、ファイル情報記憶部２４０に当該リモートファイルの識別情報が存在するか否かを判定する。次に、ファイル要求部２５３は、判定部２５２により、リモートファイルの識別情報が存在すると判定された場合に、ファイル情報記憶部２４０を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報２４３から特定されるサーバに対して当該リモートファイルの参照要求を送信する。また、ファイル要求部２５３は、リモートファイルの識別情報が存在しないと判定された場合に、複数のサーバに対して当該リモートファイルの参照要求を送信する。そして、ファイル処理部２５４は、参照要求を受信したサーバからの応答としてリモートファイルを受信した場合に、当該受信したリモートファイルに基づき処理を行う。これにより、ファイル情報記憶部２４０によりリモートファイルの所在が管理されている場合には、直接、格納先のサーバへ参照要求を送信するため、ネットワークの負荷を軽減することができる。また、ファイル情報記憶部２４０によりリモートファイルの所在が管理されていない場合であっても、ネットワーク１に接続された複数のサーバに対して参照要求を送信することにより、確実にリモートファイルを参照することができる。
【００４１】
さらに、サーバ２ａは、ファイル情報登録部２５５を備えることが望ましい。この場合、判定部２５２は、リモートファイルを受信した場合に、ファイル情報記憶部２４０に当該受信したリモートファイルの識別情報が存在するか否かを判定する。そして、ファイル情報登録部２５５は、判定部２５２により、受信したリモートファイルの識別情報が存在しないと判定された場合に、当該リモートファイルの送信元のサーバを格納サーバ情報２４３とし、当該受信したリモートファイルの識別情報に関連付けてファイル情報記憶部２４０に登録する。これにより、今回受信したリモートファイルを再度、参照する場合に、格納先のサーバを特定することができ、複数のサーバへ参照要求を送信する必要がないために、不要な参照要求を送信することによるネットワークの負荷を軽減することができる。
【００４２】
さらに、ファイル情報登録部２５５は、ファイル処理部２５６がファイルを生成した場合に、自己を格納サーバ情報２４３とし、当該生成したファイルの識別情報に関連付けてファイル情報記憶部２４０に登録するとよい。これにより、アプリケーション２１０が生成したファイル２３１についても外部のサーバに格納されているリモートファイルと併せて管理することができる。
【００４３】
また、サーバ２ａは、ファイル送信部２５６を備えることが望ましい。この場合、判定部２５２は、外部のサーバから参照要求を受信した場合に、ファイル情報記憶部２４０を参照し、自己を格納サーバ情報２４３として関連付けられているファイルの識別情報の中に、当該参照要求により要求されるリモートファイルの識別情報が存在するか否かを判定する。そして、ファイル送信部２５６は、判定部２５２により、要求されるリモートファイルの識別情報が存在すると判定された場合に、要求されるリモートファイルの識別情報に対応するファイルを外部のサーバへ送信する。これにより、外部のサーバのアプリケーションからのファイルアクセスに対しても効率的に処理することができる。
【００４４】
また、サーバ２ａは、ファイルのファイル名からハッシュ値を算出するハッシュ値算出部２５１をさらに備えることが望ましい。この場合、ファイル情報記憶部２４０は、ハッシュ値算出部２５１により算出されたハッシュ値２４２をファイルの識別情報として格納する。これにより、参照するファイルの特定をより小さいデータにより行うことができる。
【００４５】
さらに、ハッシュ値算出部２５１は、ファイルが格納されているディレクトリ名を含めてハッシュ値２４２を算出することが望ましい。これにより、ファイルの識別情報によりファイルの特定をより正確に行うことができる。
【００４６】
また、ファイル情報記憶部２４０は、ファイルの更新日時情報２４４を当該ファイルの識別情報に関連付けて格納するとよい。これにより、ファイルの状態を正確に管理することができる。
【００４７】
また、ファイル要求部２５３は、複数のサーバに対して当該リモートファイルの参照要求をブロードキャストにより送信するとよい。これにより、リモートファイルの所在が不明であっても、効率的に当該リモートファイルを格納するサーバへ参照要求を送信することができる。
【００４８】
図６は、本発明の実施の形態２にかかるサーバのハードウェア構成を示すブロック図である。尚、サーバ３ａのハードウェア構成は、サーバ２ａと同等であるため、図示及び説明を省略する。
【００４９】
サーバ２ａは、ＣＰＵ（Central Processing Unit）２０１と、ＲＡＭ（Random Access Memory）２０２と、ＲＯＭ（Read Only Memory）２０３と、通信部２０４と、ＨＤＤ２３０とを備える。また、ＨＤＤ２３０は、不揮発性記憶装置であり、生成ファイル２３１、ＯＳ２３２、アプリケーションプログラム２３３及び監視デーモンプログラム２３４を格納する。尚、ＨＤＤ２３０は、ファイル情報記憶部２４０をさらに含むものであってもよい。
【００５０】
アプリケーションプログラム２３３は、アプリケーション２１０が実装されたコンピュータプログラムである。また、アプリケーションプログラム２３３は、ファイル処理部２５４の処理を含んでも構わない。監視デーモンプログラム２３４は、ハッシュ算出部２５１、判定部２５２、ファイル要求部２５３、ファイル情報登録部２５５及びファイル送信部２５６が実装されたコンピュータプログラムである。
【００５１】
ＣＰＵ２０１は、サーバ２ａにおける各種処理、ＲＡＭ２０２、ＲＯＭ２０３、通信部２０４及びＨＤＤ２３０へのアクセス等を制御する。通信部２０４は、ネットワーク１を介してサーバ３ａ、５ａ、・・・５ｎとの通信を行う。
【００５２】
サーバ２ａは、ＣＰＵ２０１が、ＲＡＭ２０２、ＲＯＭ２０３又はＨＤＤ２３０に格納されたＯＳ２３２、アプリケーションプログラム２３３及び監視デーモンプログラム２３４を読み込み、実行する。これにより、サーバ２ａは、アプリケーション２１０及び監視デーモン２２０として機能し、リモートファイル取得処理及び各種ファイルに対する処理を行うことができる。
【００５３】
図７は、本発明の実施の形態２にかかるファイル情報登録処理の流れを示すフローチャート図である。ここでは、まず、アプリケーション２１０が生成ファイル２３１を生成し、ＨＤＤ２３０に格納する。このとき、監視デーモン２２０は、ＨＤＤ２３０に格納される生成ファイル２３１を検出する。そして、監視デーモン２２０は、生成ファイル２３１のファイルパス名２４１からハッシュ値２４２を算出する（Ｓ２１）。
【００５４】
次に、監視デーモン２２０は、算出されたハッシュ値２４２がファイル情報記憶部２４０に未登録であるか否かを判定する（Ｓ２２）。尚、このとき、監視デーモン２２０は、ファイルパス名２４１がファイル情報記憶部２４０に未登録であるか否かを判定してもよい。
【００５５】
ステップＳ２２によりハッシュ値２４２が未登録であると判定された場合、監視デーモン２２０は、ファイルパス名２４１、ハッシュ値２４２、格納先サーバ情報２４３及び更新日時情報２４４を関連付けてファイル情報記憶部２４０に格納する（Ｓ２３）。これにより、新規に作成されたファイルの所在に関する情報をファイル情報記憶部２４０により管理することができる。
【００５６】
また、ステップＳ２２によりハッシュ値２４２が未登録でないと判定された場合、監視デーモン２２０は、算出されたハッシュ値２４２に関連付けて更新日時情報２４４を更新する（Ｓ２４）。例えば、アプリケーション２１０が生成ファイル２３１を更新した場合に、監視デーモン２２０は、ＨＤＤ２３０に更新される生成ファイル２３１を検出する。この場合に、ステップＳ２４の処理が行われる。
【００５７】
尚、外部のサーバからリモートファイルを受信した場合、監視デーモン２２０は、同様に、当該受信したリモートファイルを受信し、ステップＳ２１乃至Ｓ２４の処理を実行する。
【００５８】
図８は、本発明の実施の形態２にかかるファイル要求処理の流れを示すフローチャート図である。まず、アプリケーション２１０においてファイルの参照要求が発生する。例えば、アプリケーション２１０は、自己が生成したファイルを参照するか、ファイルパスが指示されたファイルについて参照する場合がある。そして、アプリケーション２１０は、ＨＤＤ２３０に対してファイルアクセスを行う。このとき、監視デーモン２２０は、ファイルアクセスを検出する。
【００５９】
そして、監視デーモン２２０は、検出したファイルアクセスにかかる参照対象がリモートファイルであるか否かを判定する（Ｓ３１）。具体的には、監視デーモン２２０は、参照対象におけるファイルパスが生成ファイル２３１のファイルシステムに存在するか否かを判定する。または、アプリケーション２１０からＨＤＤ２３０へのファイルアクセスがエラーとなった場合、すなわち、ＨＤＤ２３０から参照対象のファイルが存在しない旨のメッセージを検出した場合に、監視デーモン２２０は、参照対象がリモートファイルであると判定してもよい。
【００６０】
ステップＳ３１により参照対象がリモートファイルでないと判定した場合、監視デーモン２２０は、ＨＤＤ２３０から対象ファイルを取得する（Ｓ３７）。または、アプリケーション２１０がＨＤＤ２３０から対象ファイルを取得しても構わない。いずれにしても、以後、アプリケーション２１０は、取得されたファイルについて処理を行う。
【００６１】
また、ステップＳ３１により参照対象がリモートファイルであると判定した場合、監視デーモン２２０は、リモートファイルのファイルパス名２４１からハッシュ値２４２を算出する（Ｓ３２）。そして、監視デーモン２２０は、算出されたハッシュ値２４２がファイル情報記憶部２４０に未登録であるか否かを判定する（Ｓ３３）。尚、このとき、監視デーモン２２０は、ファイルパス名２４１がファイル情報記憶部２４０に未登録であるか否かを判定してもよい。
【００６２】
ステップＳ３３によりハッシュ値２４２が未登録であると判定された場合、監視デーモン２２０は、ブロードキャストによりリモートファイルの参照要求を送信する（Ｓ３４）。このとき、監視デーモン２２０は、参照要求にハッシュ値２４２を含めて送信する。具体的には、監視デーモン２２０は、送信パケットにハッシュ値２４２を含める。これにより、参照要求がサーバ３ａ、５ａ、・・・５ｎへ送信される。
【００６３】
また、ステップＳ３３によりハッシュ値２４２が未登録でないと判定された場合、監視デーモン２２０は、ファイル情報記憶部２４０から格納先サーバ情報２４３を取得する（Ｓ３５）。つまり、監視デーモン２２０は、取得した格納先サーバ情報２４３により参照対象のリモートファイルが格納されているサーバの宛先を特定することができる。そして、監視デーモン２２０は、特定されるサーバに対してリモートファイルの参照要求を送信する（Ｓ３６）。これにより、特定のサーバに対してのみ参照要求を送信することができ、より速く参照対象のリモートファイルを取得することができる。
【００６４】
図９は、本発明の実施の形態２にかかるファイル送信処理の流れを示すフローチャート図である。まず、監視デーモン３２０は、サーバ２ａから参照要求を受信する（Ｓ４１）。ここでは、サーバ３ａがサーバ２ａからのブロードキャスト又は直接の参照要求を受信したものとする。次に、監視デーモン３２０は、参照要求に含まれるファイルのハッシュ値を抽出する（Ｓ４２）。
【００６５】
そして、監視デーモン３２０は、抽出されたハッシュ値がファイル情報記憶部３４０に未登録であるか否かを判定する（Ｓ４３）。具体的には、監視デーモン３２０は、ファイル情報記憶部３４０を参照し、抽出されたハッシュ値とファイル情報記憶部３４０に格納されたハッシュ値３４２とを比較する。ステップＳ４３によりハッシュ値が未登録であると判定された場合、監視デーモン３２０は、ファイルが存在しない旨を要求元のサーバ２ａに対して応答する（Ｓ４４）。この場合、監視デーモン２２０は、サーバ３ａからの応答を受信し、その旨をアプリケーション２１０へ通知する。
【００６６】
また、テップＳ４３によりハッシュ値が未登録でないと判定された場合、監視デーモン３２０は、ハッシュ値に関連付けられたファイルパス名３４１及び更新日時情報３４４を取得する（Ｓ４５）。そして、監視デーモン３２０は、取得したファイルパス名３４１に基づき、ＨＤＤ３３０から生成ファイル３３１を取得する（Ｓ４６）。その後、監視デーモン３２０は、取得した生成ファイル３３１を要求元のサーバ２ａへ送信する（Ｓ４７）。このとき、監視デーモン３２０は、更新日時情報３４４を含めてサーバ２ａへ送信する。
【００６７】
この後、監視デーモン２２０は、サーバ３ａからの応答を受信し、応答に含まれる生成ファイル３３１をアプリケーション２１０へ入力する。これにより、アプリケーション２１０は、生成ファイル３３１を参照し、生成ファイル３３１に対する処理を行うことができる。
【００６８】
併せて、監視デーモン２２０は、生成ファイル３３１について、図７のステップＳ２１乃至Ｓ２４の処理を実行する。特に、監視デーモン２２０がブロードキャストにより参照要求を送信した場合には、受信したリモートファイルの所在に関する情報が新規にファイル情報記憶部２４０へ登録される。その後、アプリケーション２１０が再度、生成ファイル３３１についてファイルアクセスを行う場合に、図８のステップＳ３１により参照対象がリモートファイルであると判定され、監視デーモン２２０は、ステップＳ３２以降の処理を実行する。このとき、ステップＳ３３によりハッシュ値２４２が未登録でないと判定されるため、監視デーモン２２０は、ステップＳ３５及びＳ３６の処理を実行する。そのため、監視デーモン２２０は、ブロードキャストにより不要な参照要求をネットワーク１上に送信する必要がなくなり、ネットワーク１の負荷を軽減することができる。
【００６９】
このように、本発明の実施の形態２により、ＮＡＳを用いずに、複数のサーバのＨＤＤを用いて分散してファイルを保存し、かつ、各サーバ間でファイルを共有することができる。すなわち、本発明の実施の形態２は、分散型ローカルキャッシュを付加したネットワークファイルシステム２００ということができる。
【００７０】
また、個々のサーバ上のＨＤＤにファイルをキャッシュとして保存し、ファイル情報記憶部２４０及び３４０により当該キャッシュを管理するため、各サーバにおける各アプリケーションの入出力結果であるファイルについて、ネットワークファイルシステムを介した参照や書き込みを高速に行うことができる。
【００７１】
＜その他の発明の実施の形態＞
上述したように本発明の実施の形態１及び２は、ネットワークで接続されたサーバ上で実行されるプログラムの入出力結果であるファイルに関して、参照や書き込みを高速、かつ、ネットワークの負荷を軽減して行うようにするものである。
【００７２】
尚、図１０に示したネットワークファイルシステム９００では、例えば、同じファイルを何度も参照する場合又は出力したファイルの読み直しを行う場合等には、ファイル出力の度にＮＡＳ９１との通信を行う必要がある。この場合、ネットワーク１上に流れるデータ量が増え、ネットワーク１の負荷が高くなり、データの書き込み又は読み込み速度が低下する。これに伴い、各サーバで実行されるプログラムそのものの実行速度にも影響するという問題がある。また、ＮＡＳ９１は、１つのフォルダに大量のファイルを置くと、そのフォルダを参照したときの応答が遅くなるという問題もある。
【００７３】
そこで、本発明の実施の形態１及び２では、各種アプリケーションにより計算を行う個々のサーバ上にある程度の大きさのＨＤＤを接続しておき、各サーバにおけるアプリケーションの出力結果をキャッシュとして各ＨＤＤに置くものである。併せて、各サーバに当該出力結果の所在に関する情報をキャッシュデータベースとして管理するファイル情報記憶部２２、２４０及び３４０等を備えることにより、ＮＡＳ９１を用いることなく、他のサーバから出力結果を参照すること、すなわち、ファイル共有を行うことができ、ネットワークの負荷を軽減することができる。そのため、ネットワークを介したファイルアクセスを行うプログラムを高速に実行することができる。
【００７４】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。また、記録媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＢＤ(Blu-ray(登録商標) Disc)、ＲＯＭ（Read Only Memory）カートリッジ、バッテリバックアップ付きＲＡＭ（Random Access Memory）メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
【００７５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００７６】
（付記１）ファイルが格納されているサーバを特定する格納先サーバ情報を記憶する第１のファイル情報記憶部を備え、外部のサーバに格納されたリモートファイルを処理する第１のサーバと、
前記リモートファイルを格納する第２のサーバと、を備え、
前記第１のサーバは、前記リモートファイルを参照する場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの参照要求を送信し、
前記第２のサーバは、前記参照要求により要求された前記リモートファイルを前記第１のサーバへ送信し、
前記第１のサーバは、
前記第２のサーバから前記リモートファイルを受信した場合に、前記第２のサーバを前記格納先サーバ情報とし、当該受信したリモートファイルの識別情報と関連付けて前記第１のファイル情報記憶部へ登録し、
前記リモートファイルを再度参照する場合に、前記第１のファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報が前記第２のサーバであることを特定し、特定された前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信することを特徴とする分散ファイルシステム。
【００７７】
（付記２）前記第１のサーバは、前記リモートファイルを参照する場合に、前記第１のファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定し、存在すると判定した場合に、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報から特定される前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信し、存在しないと判定した場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信することを特徴とする付記１に記載の分散ファイルシステム。
【００７８】
（付記３）前記第２のサーバは、
ファイルが格納されているサーバを示す格納先サーバ情報を記憶する第２のファイル情報記憶部をさらに備え、
前記リモートファイルを生成した場合に、自己を前記格納先サーバ情報とし、当該リモートファイルの識別情報と関連付けて前記第２のファイル情報記憶部へ登録し、
前記第１のサーバは、前記リモートファイルを参照する場合に、当該リモートファイルの識別情報を含めて前記参照要求を送信し、
前記第２のサーバは、
前記第１のサーバから前記参照要求を受信した場合に、前記第２のファイル情報記憶部を参照し、自己を前記格納先サーバ情報として関連付けられているファイルの識別情報の中に、前記参照要求に含まれる識別情報が存在するか否かを判定し、
前記識別情報が存在すると判定した場合に、当該リモートファイルを前記第１のサーバへ送信する
ことを特徴とする付記１又は２に記載の分散ファイルシステム。
【００７９】
（付記４）前記第２のサーバは、前記リモートファイルを生成した場合に、生成したリモートファイルのファイル名からハッシュ値を算出し、自己を前記格納先サーバ情報とし、当該ハッシュ値と関連付けて前記第２のファイル情報記憶部へ登録し、
前記第１のサーバは、前記リモートファイルのファイル名からハッシュ値を算出し、当該ハッシュ値を含めて前記参照要求を送信し、
前記第２のサーバは、
前記第１のサーバから前記参照要求を受信した場合に、前記第２のファイル情報記憶部を参照し、自己を前記格納先サーバ情報として関連付けられているハッシュ値の中に、前記参照要求に含まれるハッシュ値が存在するか否かを判定し、
前記ハッシュ値が存在すると判定した場合に、前記リモートファイルを前記第１のサーバへ送信する
ことを特徴とする付記３に記載の分散ファイルシステム。
【００８０】
（付記５）前記第１のサーバ及び前記第２のサーバは、前記リモートファイルが格納されているディレクトリ名を含めて前記ハッシュ値を生成することを特徴とする付記４に記載の分散ファイルシステム。
【００８１】
（付記６）前記第２のサーバは、
前記リモートファイルを更新した場合に、当該リモートファイルの更新日時情報を当該リモートファイルの識別情報に関連付けて前記第２のファイル情報記憶部へさらに登録し、
前記第１のサーバから前記参照要求を受信し、前記識別情報が存在すると判定した場合に、前記第２のファイル情報記憶部から前記参照要求に含まれる識別情報に関連付けられた更新日時情報を取得し、当該取得した更新日時情報を含めて当該リモートファイルを前記第１のサーバへ送信し、
前記第１のサーバは、前記第２のサーバから前記リモートファイルを受信した場合に、前記更新日時情報を当該受信したリモートファイルの識別情報に関連付けて前記第１のファイル情報記憶部へさらに登録することを特徴とする付記３乃至５のいずれか１項に記載の分散ファイルシステム。
【００８２】
（付記７）前記第１のサーバは、前記リモートファイルを参照する場合、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの識別情報を含めて参照要求をブロードキャストにより送信し、
前記第２のサーバは、前記第１のサーバからブロードキャストにより前記参照要求を受信することを特徴とする付記１乃至６のいずれか１項に記載の分散ファイルシステム。
【００８３】
（付記８）ファイルの識別情報と、当該ファイルが格納されているサーバを特定する格納先サーバ情報とを関連付けて格納するファイル情報記憶部と、
外部のサーバに格納されたリモートファイルを参照する場合に、前記ファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定する判定部と、
前記判定部により、前記リモートファイルの識別情報が存在すると判定された場合に、前記ファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた前記格納先サーバ情報から特定されるサーバに対して当該リモートファイルの参照要求を送信し、前記リモートファイルの識別情報が存在しないと判定された場合に、複数のサーバに対して当該リモートファイルの参照要求を送信するファイル要求部と、
前記参照要求を受信したサーバからの応答として前記リモートファイルを受信した場合に、当該受信したリモートファイルに基づき処理を行うファイル処理部と、
を備えるリモートファイル処理サーバ。
【００８４】
（付記９）前記判定部は、前記リモートファイルを受信した場合に、前記ファイル情報記憶部に当該受信したリモートファイルの識別情報が存在するか否かを判定し、
前記判定部により、前記受信したリモートファイルの識別情報が存在しないと判定された場合に、当該リモートファイルの送信元のサーバを前記格納サーバ情報とし、当該受信したリモートファイルの識別情報に関連付けて前記ファイル情報記憶部に登録するファイル情報登録部をさらに備えることを特徴とする付記８に記載のリモートファイル処理サーバ。
【００８５】
（付記１０）前記ファイル情報登録部は、前記ファイル処理部がファイルを生成した場合に、自己を前記格納サーバ情報とし、当該生成したファイルの識別情報に関連付けて前記ファイル情報記憶部に登録することを特徴とする付記９に記載のリモートファイル処理サーバ。
【００８６】
（付記１１）前記判定部は、外部のサーバから前記参照要求を受信した場合に、前記ファイル情報記憶部を参照し、自己を前記格納サーバ情報として関連付けられているファイルの識別情報の中に、当該参照要求により要求されるリモートファイルの識別情報が存在するか否かを判定し、
前記判定部により、前記要求されるリモートファイルの識別情報が存在すると判定された場合に、前記要求されるリモートファイルの識別情報に対応するファイルを前記外部のサーバへ送信するファイル送信部をさらに備えることを特徴とする付記８乃至１０のいずれか１項に記載のリモートファイル処理サーバ。
【００８７】
（付記１２）ファイルのファイル名からハッシュ値を算出するハッシュ値算出部をさらに備え、
前記ファイル情報記憶部は、前記ハッシュ値算出部により算出されたハッシュ値を前記ファイルの識別情報として格納することを特徴とする付記８乃至１１のいずれか１項に記載のリモートファイル処理サーバ。
【００８８】
（付記１３）前記ハッシュ値算出部は、前記ファイルが格納されているディレクトリ名を含めて前記ハッシュ値を算出することを特徴とする付記１２に記載のリモートファイル処理サーバ。
【００８９】
（付記１４）前記ファイル情報記憶部は、前記ファイルの更新日時情報を当該ファイルの識別情報に関連付けて格納することを特徴とする付記８乃至１３のいずれか１項に記載のリモートファイル処理サーバ。
【００９０】
（付記１５）前記ファイル要求部は、前記複数のサーバに対して当該リモートファイルの参照要求をブロードキャストにより送信することを特徴とする付記８乃至１４のいずれか１項に記載のリモートファイル処理サーバ。
【００９１】
（付記１６）ファイルが格納されているサーバを特定する格納先サーバ情報を記憶する第１のファイル情報記憶部を備え、外部のサーバに格納されたリモートファイルを処理する第１のサーバと、
前記リモートファイルを格納する第２のサーバと、を備え、
前記第１のサーバにおいて、前記リモートファイルを参照する場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの参照要求を送信し、
前記第２のサーバにおいて、前記参照要求により要求された前記リモートファイルを前記第１のサーバへ送信し、
前記第１のサーバにおいて、
前記第２のサーバから前記リモートファイルを受信した場合に、前記第２のサーバを前記格納先サーバ情報とし、当該受信したリモートファイルの識別情報と関連付けて前記第１のファイル情報記憶部へ登録し、
前記リモートファイルを再度参照する場合に、前記第１のファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報が前記第２のサーバであることを特定し、
特定された前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信することを特徴とするリモートファイル処理方法。
【００９２】
（付記１７）前記第１のサーバにおいて、
前記リモートファイルを参照する場合に、前記第１のファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定し、
存在すると判定した場合に、当該リモートファイルの識別情報に関連付けられた格納先サーバ情報から特定される前記第２のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信し、
存在しないと判定した場合に、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの識別情報を含めて参照要求を送信することを特徴とする付記１６に記載のリモートファイル処理方法。
【００９３】
（付記１８）前記第２のサーバは、ファイルが格納されているサーバを示す格納先サーバ情報を記憶する第２のファイル情報記憶部をさらに備え、
前記第２のサーバにおいて、前記リモートファイルを生成した場合に、自己を前記格納先サーバ情報とし、当該リモートファイルの識別情報と関連付けて前記第２のファイル情報記憶部へ登録し、
前記第１のサーバにおいて、前記リモートファイルを参照する場合に、当該リモートファイルの識別情報を含めて前記参照要求を送信し、
前記第２のサーバにおいて、
前記第１のサーバから前記参照要求を受信した場合に、前記第２のファイル情報記憶部を参照し、自己を前記格納先サーバ情報として関連付けられているファイルの識別情報の中に、前記参照要求に含まれる識別情報が存在するか否かを判定し、
前記識別情報が存在すると判定した場合に、当該リモートファイルを前記第１のサーバへ送信する
ことを特徴とする付記１６又は１７に記載のリモートファイル処理方法。
【００９４】
（付記１９）前記第２のサーバにおいて、前記リモートファイルを生成した場合に、生成したリモートファイルのファイル名からハッシュ値を算出し、自己を前記格納先サーバ情報とし、当該ハッシュ値と関連付けて前記第２のファイル情報記憶部へ登録し、
前記第１のサーバにおいて、前記リモートファイルのファイル名からハッシュ値を算出し、当該ハッシュ値を含めて前記参照要求を送信し、
前記第２のサーバにおいて、
前記第１のサーバから前記参照要求を受信した場合に、前記第２のファイル情報記憶部を参照し、自己を前記格納先サーバ情報として関連付けられているハッシュ値の中に、前記参照要求に含まれるハッシュ値が存在するか否かを判定し、
前記ハッシュ値が存在すると判定した場合に、前記リモートファイルを前記第１のサーバへ送信する
ことを特徴とする付記１８に記載のリモートファイル処理方法。
【００９５】
（付記２０）前記第１のサーバ及び前記第２のサーバにおいて、前記リモートファイルが格納されているディレクトリ名を含めて前記ハッシュ値を生成することを特徴とする付記１９に記載のリモートファイル処理方法。
【００９６】
（付記２１）前記第２のサーバにおいて、
前記リモートファイルを更新した場合に、当該リモートファイルの更新日時情報を当該リモートファイルの識別情報に関連付けて前記第２のファイル情報記憶部へさらに登録し、
前記第１のサーバから前記参照要求を受信し、前記識別情報が存在すると判定した場合に、前記第２のファイル情報記憶部から前記参照要求に含まれる識別情報に関連付けられた更新日時情報を取得し、当該取得した更新日時情報を含めて当該リモートファイルを前記第１のサーバへ送信し、
前記第１のサーバにおいて、
前記第２のサーバから前記リモートファイルを受信した場合に、前記更新日時情報を当該受信したリモートファイルの識別情報に関連付けて前記第１のファイル情報記憶部へさらに登録することを特徴とする付記１８乃至２０のいずれか１項に記載のリモートファイル処理方法。
【００９７】
（付記２２）前記第１のサーバにおいて、前記リモートファイルを参照する場合、前記第２のサーバを含む複数のサーバに対して当該リモートファイルの識別情報を含めて参照要求をブロードキャストにより送信し、
前記第２のサーバにおいて、前記第１のサーバからブロードキャストにより前記参照要求を受信することを特徴とする付記１６乃至２１のいずれか１項に記載のリモートファイル処理方法。
【００９８】
（付記２３）外部のサーバに格納されたリモートファイルを参照する場合に、ファイルの識別情報と、当該ファイルが格納されているサーバを特定する格納先サーバ情報とを関連付けて格納するファイル情報記憶部に当該リモートファイルの識別情報が存在するか否かを判定する判定処理と、
前記判定処理により、前記リモートファイルの識別情報が存在すると判定された場合に、前記ファイル情報記憶部を参照し、当該リモートファイルの識別情報に関連付けられた前記格納先サーバ情報から特定されるサーバに対して当該リモートファイルの参照要求を送信し、前記リモートファイルの識別情報が存在しないと判定された場合に、複数のサーバに対して当該リモートファイルの参照要求を送信するファイル要求処理と、
前記参照要求を受信したサーバからの応答として前記リモートファイルを受信した場合に、当該受信したリモートファイルに基づき処理を行うファイル処理と、
を含むリモートファイル処理をコンピュータに実行させるリモートファイル処理プログラム。
【００９９】
（付記２４）前記判定処理は、前記リモートファイルを受信した場合に、前記ファイル情報記憶部に当該受信したリモートファイルの識別情報が存在するか否かを判定し、
前記判定処理により、前記受信したリモートファイルの識別情報が存在しないと判定された場合に、当該リモートファイルの送信元のサーバを前記格納サーバ情報とし、当該受信したリモートファイルの識別情報に関連付けて前記ファイル情報記憶部に登録するファイル情報登録処理を前記コンピュータにさらに実行させることを特徴とする付記２３に記載のリモートファイル処理プログラム。
【０１００】
（付記２５）前記ファイル情報登録処理は、前記ファイル処理がファイルを生成した場合に、自己を前記格納サーバ情報とし、当該生成したファイルの識別情報に関連付けて前記ファイル情報記憶部に登録することを特徴とする付記２４に記載のリモートファイル処理プログラム。
【０１０１】
（付記２６）前記判定処理は、外部のサーバから前記参照要求を受信した場合に、前記ファイル情報記憶部を参照し、自己を前記格納サーバ情報として関連付けられているファイルの識別情報の中に、当該参照要求により要求されるリモートファイルの識別情報が存在するか否かを判定し、
前記判定処理により、前記要求されるリモートファイルの識別情報が存在すると判定された場合に、前記要求されるリモートファイルの識別情報に対応するファイルを前記外部のサーバへ送信するファイル送信処理を前記コンピュータにさらに実行させることを特徴とする付記２３乃至２５のいずれか１項に記載のリモートファイル処理プログラム。
【０１０２】
（付記２７）ファイルのファイル名からハッシュ値を算出するハッシュ値算出処理を前記コンピュータにさらに実行させ、
前記ファイル要求処理は、前記リモートファイルのファイル名から前記ハッシュ値算出処理により算出されたハッシュ値を前記リモートファイルの識別情報として含めて前記参照要求を送信し、
前記ファイル情報記憶部には、前記ハッシュ値算出部により算出されたハッシュ値を前記ファイルの識別情報として格納されることを特徴とする付記２３乃至２６のいずれか１項に記載のリモートファイル処理プログラム。
【０１０３】
（付記２８）前記ハッシュ値算出処理は、前記ファイルが格納されているディレクトリ名を含めて前記ハッシュ値を算出することを特徴とする付記２７に記載のリモートファイル処理プログラム。
【０１０４】
（付記２９）前記ファイル情報記憶部には、前記ファイルの更新日時情報を当該ファイルの識別情報に関連付けて格納されることを特徴とする付記２３乃至２８のいずれか１項に記載のリモートファイル処理プログラム。
【０１０５】
（付記３０）前記ファイル要求処理は、前記複数のサーバに対して当該リモートファイルの参照要求をブロードキャストにより送信することを特徴とする付記２３乃至２９のいずれか１項に記載のリモートファイル処理プログラム。
【符号の説明】
【０１０６】
１００  分散ファイルシステム
１  ネットワーク
２  サーバ
２１  制御部
２２  ファイル情報記憶部
２２１  ファイル識別情報
２２２  格納先サーバ情報
３  サーバ
３１  ＨＤＤ
３１１  リモートファイル
４ａ、・・・４ｎ  サーバ
２００  ネットワークファイルシステム
２ａ  サーバ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  通信部
２１０  アプリケーション
２２０  監視デーモン
２３０  ＨＤＤ
２３１  生成ファイル
２３２  ＯＳ
２３３  アプリケーションプログラム
２３４  監視デーモンプログラム
２４０  ファイル情報記憶部
２４１  ファイルパス名
２４２  ハッシュ値
２４３  格納先サーバ情報
２４４  更新日時情報
２５１  ハッシュ算出部
２５２  判定部
２５３  ファイル要求部
２５４  ファイル処理部
２５５  ファイル情報登録部
２５６  ファイル送信部
３ａ  サーバ
３１０  アプリケーション
３２０  監視デーモン
３３０  ＨＤＤ
３３１  生成ファイル
３４０  ファイル情報記憶部
３４１  ファイルパス名
３４２  ハッシュ値
３４３  格納先サーバ情報
３４４  更新日時情報
５ａ、・・・５ｎ  サーバ
９００  ネットワークファイルシステム
９１  ＮＡＳ
９１０  ＨＤＤ
９１１  リモートファイル
９２  サーバ
９２０  アプリケーション
９３  サーバ
９３０  アプリケーション
９４ａ、・・・９４ｎ  サーバ
【図１】
2011186616.tif 000003
【図２】
2011186616.tif 000004
【図３】
2011186616.tif 000005
【図４】
2011186616.tif 000006
【図５】
2011186616.tif 000007
【図６】
2011186616.tif 000008
【図７】
2011186616.tif 000009
【図８】
2011186616.tif 000010
【図９】
2011186616.tif 000011
【図１０】
2011186616.tif 000012