(57)【要約】【課題】シンクライアントがファイルを取得する際に、通常時にはキャッシュサーバに接続し、キャッシュサーバの故障時にはファイルサーバに接続できるようにする。【解決手段】ファイル記憶手段１ａは、ファイルサーバ２が保持するファイルの複製を記憶する。サーバ情報記憶手段１ｂは、ファイルサーバ２と通信を行う場合の通信方法を定義したサーバ情報を記憶する。制御情報記憶手段１ｃは、キャッシュサーバ１が稼働中の場合はキャッシュサーバ１に、稼働中でない場合はファイルサーバ２にファイル取得要求を送信するように制御する制御情報を記憶する。起動情報送信手段１ｄは、クライアント３から起動通知が入力されると、制御情報とサーバ情報とをクライアント３に送信する。ファイル送信手段１ｅは、クライアント３からファイル取得要求が入力されると、ファイルをクライアント３に送信する。【選択図】図１
2008158711.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの複製を保持して配信するファイル配信プログラムにおいて、
コンピュータを、
前記コンピュータとネットワークで接続されたファイルサーバが保持するファイルの複製を記憶するファイル記憶手段、
前記ファイルサーバと前記ネットワーク経由で通信を行う場合の通信方法を定義したサーバ情報を記憶するサーバ情報記憶手段、
ファイル取得時に、前記コンピュータが稼働中の場合は前記コンピュータにファイル取得要求を送信し、稼働中でない場合は前記サーバ情報に基づいて前記ファイルサーバに前記ファイル取得要求を送信するようにクライアントを制御する制御情報を記憶する制御情報記憶手段、
前記クライアントの起動時に入力される起動通知に応答して、前記制御情報記憶手段が記憶する前記制御情報と前記サーバ情報記憶手段が記憶する前記サーバ情報とを、前記クライアントに送信する起動情報送信手段、
前記クライアントの起動後に入力される前記ファイル取得要求に応答して、前記ファイル記憶手段が記憶する対応するファイルを、前記クライアントに送信するファイル送信手段、
として機能させることを特徴とするファイル配信プログラム。
【請求項２】
前記ファイル送信手段は、前記ファイル取得要求に対応するファイルが前記ファイル記憶手段にない場合、前記サーバ情報に基づいて前記ファイルサーバからファイルを取得して、前記ファイル記憶手段に格納することを特徴とする請求項１記載のファイル配信プログラム。
【請求項３】
前記コンピュータを、更に、前記コンピュータの稼働状態を前記クライアントに継続的に通知する状態通知手段として機能させることを特徴とする請求項１記載のファイル配信プログラム。
【請求項４】
前記ファイル記憶手段は、複数の前記ファイルサーバが保持するファイルの複製を記憶しており、
前記サーバ情報には、前記ファイルサーバと前記ファイルサーバが保持するファイルとの対応関係を示す情報が更に含まれており、
前記制御情報は、前記コンピュータが稼働中でない場合は、取得すべきファイルに対応する前記ファイルサーバに前記ファイル取得要求を送信するように前記クライアントを制御する情報である、
ことを特徴とする請求項１記載のファイル配信プログラム。
【請求項５】
前記コンピュータを、更に、ファイルを保持する前記ファイルサーバが変更されたことを検知すると、前記サーバ情報記憶手段が記憶する前記サーバ情報を更新すると共に、前記クライアントに更新後の前記サーバ情報を送信するサーバ情報変更手段として機能させることを特徴とする請求項１記載のファイル配信プログラム。
【請求項６】
ファイルの複製を保持して配信するファイル配信装置において、
前記ファイル配信装置とネットワークで接続されたファイルサーバが保持するファイルの複製を記憶するファイル記憶手段と、
前記ファイルサーバと前記ネットワーク経由で通信を行う場合の通信方法を定義したサーバ情報を記憶するサーバ情報記憶手段と、
ファイル取得時に、前記ファイル配信装置が稼働中の場合は前記ファイル配信装置にファイル取得要求を送信し、稼働中でない場合は前記サーバ情報に基づいて前記ファイルサーバに前記ファイル取得要求を送信するようにクライアントを制御する制御情報を記憶する制御情報記憶手段と、
前記クライアントの起動時に入力される起動通知に応答して、前記制御情報記憶手段が記憶する前記制御情報と前記サーバ情報記憶手段が記憶する前記サーバ情報とを、前記クライアントに送信する起動情報送信手段と、
前記クライアントの起動後に入力される前記ファイル取得要求に応答して、前記ファイル記憶手段が記憶する対応するファイルを、前記クライアントに送信するファイル送信手段と、
を有することを特徴とするファイル配信装置。
【請求項７】
ファイルの複製を保持して配信する分散ファイルシステムにおいて、
ファイルを記憶する第１のファイル記憶手段と、
ネットワーク経由で入力されるファイル取得要求に応答して、前記第１のファイル記憶手段が記憶する対応するファイルを、前記ファイル取得要求の送信元に送信する第１のファイル送信手段と、
を備えるファイルサーバと、
前記ファイルサーバが保持するファイルの複製を記憶する第２のファイル記憶手段と、
入力される前記ファイル取得要求に応答して、前記第２のファイル記憶手段が記憶する対応するファイルを、前記ファイル取得要求の送信元に送信する第２のファイル送信手段と、
前記ファイルサーバと前記ネットワーク経由で通信を行う場合の通信方法を定義したサーバ情報を記憶するサーバ情報記憶手段と、
ファイル取得時に、前記第２のファイル送信手段が実行可能の場合は複製されたファイルを取得し、実行可能でない場合は前記サーバ情報に基づいて前記ファイルサーバからファイルを取得するようにコンピュータを制御する制御情報を記憶する制御情報記憶手段と、
入力される起動通知に応答して、前記制御情報記憶手段が記憶する前記制御情報と前記サーバ情報記憶手段が記憶する前記サーバ情報とを、前記起動通知の送信元に送信する起動情報送信手段と、
を備えるキャッシュサーバと、
起動時に、前記キャッシュサーバに前記起動通知を送信して、前記制御情報と前記サーバ情報とを取得する起動手段と、
起動後に未取得のファイルが必要になると、前記キャッシュサーバの稼働状態を確認し、前記起動情報取得手段が取得した前記制御情報と前記サーバ情報とに基づいて、前記キャッシュサーバまたは前記ファイルサーバに前記ファイル取得要求を送信して、ファイルを取得するファイル取得手段と、
を備えるクライアントと、
を有することを特徴とする分散ファイルシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイル配信プログラム、ファイル配信装置および分散ファイルシステムに関し、特にファイルの複製を保持して配信するファイル配信プログラム、ファイル配信装置および分散ファイルシステムに関する。
【背景技術】
【０００２】
現在、ネットワーク技術の発達に伴い、ネットワーク型のファイルシステムが普及している。ネットワーク型のファイルシステムでは、ファイルサーバがファイルを管理し、クライアントが必要に応じてネットワーク経由でファイルサーバからファイルを取得する。ファイルサーバにファイルを配置することで、ファイルの管理や共有が容易となる（例えば、特許文献１参照）。
【０００３】
特に、オペレーティングシステム（ＯＳ：Operating System）のプログラムを含む大部分のファイルを、クライアントには配置せず、ファイルサーバに配置することも行われている。この場合、クライアントは、起動時にファイルサーバからＯＳプログラムを取得して起動処理を行い、その後、追加で必要なファイルをファイルサーバから適宜取得する。このような振る舞いをするクライアントは、シンクライアントと呼ばれる。シンクライアントは、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）などの補助記憶装置にファイルを保持しないことから、情報漏洩リスクの低減に寄与する。
【０００４】
ところで、大規模な組織では、地理的に離れた場所にあるコンピュータ同士を、広域ネットワークで接続することが多い。すなわち、ファイルサーバとシンクライアントとが、地理的に離れた場所に存在することも考えられる。この場合、広域ネットワークを介した通信はローカルネットワーク内の通信と比べて遅延が大きいため、ファイル取得に要する時間が大きくなるという問題がある。そこで、ローカルネットワーク内に設けたキャッシュサーバが、ファイルサーバからファイルの複製を取得して保持する技術が知られている（例えば、特許文献２，３参照）。これにより、シンクライアントは同一ネットワーク内にあるキャッシュサーバと通信を行えばよく、ファイル取得に要する時間を短縮できる。
【０００５】
一方、シンクライアントを含むシステムでは、上記問題とは別に、ファイルサーバの可用性を高める必要があるという問題もある。すなわち、シンクライアントは、起動時には処理に必要なファイルをほとんど保持していない。このため、ファイルサーバに障害が発生すると、シンクライアントは処理を続行することが困難となる。これに対し、ファイルサーバを多重化して可用性を向上させる技術が知られている（例えば、特許文献４参照）。シンクライアントは、主サーバが正常な場合には主サーバからファイルを取得し、主サーバに障害が発生すると代替サーバからファイルを取得するようにする。これにより、シンクライアントが処理を続行できなくなるリスクを低減できる。
【特許文献１】特表２００５−５３８４３２号公報
【特許文献２】特開２００２−１２３４００号公報
【特許文献３】特開２００５−３３９０９７号公報
【特許文献４】特開２００１−３４４１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、広域ネットワーク上で、可用性が高いシンクライアントのシステムを実現しようとする場合、特許文献２，３記載の技術と特許文献４記載の技術とを組み合わせることが考えられる。すなわち、ローカルネットワーク内にキャッシュサーバを設けることでファイル取得に要する時間を短縮し、更にキャッシュサーバを多重化することで可用性を向上させることが考えられる。しかし、個々のローカルネットワーク内に複数のキャッシュサーバを設けることは、導入コストおよび維持コストが極めて高く、現実的でない。
【０００７】
そこで、キャッシュサーバを主サーバ、ファイルサーバを代替サーバとして使用したいという要求がある。すなわち、シンクライアントは、通常時には同一ネットワーク内にあるキャッシュサーバに接続し、キャッシュサーバの故障時には広域ネットワーク経由でファイルサーバに接続できるようにしたいという要求がある。しかし、このような処理は、特許文献２，３，４記載の技術では実現することはできなかった。その理由は、以下の通りである。
【０００８】
通常、ローカルネットワーク内での通信と、広域ネットワークを介した通信とは、用いられる通信方法の規約（通信プロトコル）が異なる。例えば、ローカルネットワーク内での通信には、通信エラーの発生が少ないことが前提の“軽い”通信プロトコルが用いられる。一方、広域ネットワークを介した通信には、通信エラーの発生が多いことが前提の“強固な”通信プロトコルが用いられる。更に、広域ネットワークの通信に用いられる通信プロトコルには、さまざまな種類のものが存在する。
【０００９】
従って、シンクライアントは、接続先のサーバに応じて適切に通信方法を切り替えて通信を行う必要がある。しかし、従来、シンクライアントがこのような処理を行うことは困難であった。
【００１０】
本発明はこのような点に鑑みてなされたものであり、クライアントが、通常時にはキャッシュサーバに接続し、キャッシュサーバの故障時には広域ネットワーク経由でファイルサーバに接続できるようにするファイル配信プログラム、ファイル配信装置および分散ファイルシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では上記課題を解決するために、図１に示すようなファイル配信プログラムが提供される。本発明に係るファイル配信プログラムは、ファイルサーバが管理するファイルの複製を保持してクライアントに配信するものである。このファイル配信プログラムを実行するコンピュータであるキャッシュサーバ１は、ファイル記憶手段１ａ、サーバ情報記憶手段１ｂ、制御情報記憶手段１ｃ、起動情報送信手段１ｄおよびファイル送信手段１ｅを有する。ファイル記憶手段１ａは、キャッシュサーバ１とネットワーク４で接続されたファイルサーバ２が保持するファイルの複製を記憶する。サーバ情報記憶手段１ｂは、ファイルサーバ２とネットワーク４経由で通信を行う場合の通信方法を定義したサーバ情報を記憶する。制御情報記憶手段１ｃは、ファイル取得時に、キャッシュサーバ１が稼働中の場合はキャッシュサーバ１にファイル取得要求を送信し、稼働中でない場合はサーバ情報に基づいてファイルサーバ２にファイル取得要求を送信するようにクライアント３を制御する制御情報を記憶する。起動情報送信手段１ｄは、クライアント３の起動時に入力される起動通知に応答して、制御情報記憶手段１ｃが記憶する制御情報とサーバ情報記憶手段１ｂが記憶するサーバ情報とを、クライアント３に送信する。ファイル送信手段１ｅは、クライアント３の起動後に入力されるファイル取得要求に応答して、ファイル記憶手段１ａが記憶する対応するファイルを、クライアント３に送信する。
【００１２】
このようなファイル配信プログラムを実行するキャッシュサーバ１によれば、ファイル記憶手段１ａに、ファイルサーバ２が保持するファイルの複製が記憶される。サーバ情報記憶手段１ｂに、ファイルサーバ２と通信を行う場合の通信方法を定義したサーバ情報が記憶される。制御情報記憶手段１ｃに、キャッシュサーバ１が稼働中の場合はキャッシュサーバ１に、稼働中でない場合はファイルサーバ２にファイル取得要求を送信するように制御する制御情報が記憶される。ここで、クライアント３の起動通知が入力されると、起動情報送信手段１ｄにより、制御情報とサーバ情報とがクライアント３に送信される。クライアント３の起動後にファイル取得要求が入力されると、ファイル送信手段１ｅにより、ファイルがクライアント３に送信される。
【００１３】
また、上記課題を解決するために、ファイルの複製を保持して配信するファイル配信装置において、ファイル配信装置とネットワークで接続されたファイルサーバが保持するファイルの複製を記憶するファイル記憶手段と、ファイルサーバとネットワーク経由で通信を行う場合の通信方法を定義したサーバ情報を記憶するサーバ情報記憶手段と、ファイル取得時に、ファイル配信装置が稼働中の場合はファイル配信装置にファイル取得要求を送信し、稼働中でない場合はサーバ情報に基づいてファイルサーバにファイル取得要求を送信するようにクライアントを制御する制御情報を記憶する制御情報記憶手段と、クライアントの起動時に入力される起動通知に応答して、制御情報記憶手段が記憶する制御情報とサーバ情報記憶手段が記憶するサーバ情報とを、クライアントに送信する起動情報送信手段と、クライアントの起動後に入力されるファイル取得要求に応答して、ファイル記憶手段が記憶する対応するファイルを、クライアントに送信するファイル送信手段と、を有することを特徴とするファイル配信装置が提供される。
【００１４】
このようなファイル配信装置によれば、ファイル記憶手段に、ファイルサーバが保持するファイルの複製が記憶される。サーバ情報記憶手段に、ファイルサーバと通信を行う場合の通信方法を定義したサーバ情報が記憶される。制御情報記憶手段に、キャッシュサーバが稼働中の場合はキャッシュサーバに、稼働中でない場合はファイルサーバにファイル取得要求を送信するように制御する制御情報が記憶される。ここで、クライアントの起動通知が入力されると、起動情報送信手段により、制御情報とサーバ情報とがクライアントに送信される。クライアントの起動後にファイル取得要求が入力されると、ファイル送信手段により、ファイルがクライアントに送信される。
【００１５】
また、上記課題を解決するために、ファイルの複製を保持して配信する分散ファイルシステムにおいて、ファイルを記憶する第１のファイル記憶手段と、ネットワーク経由で入力されるファイル取得要求に応答して、第１のファイル記憶手段が記憶する対応するファイルを、ファイル取得要求の送信元に送信する第１のファイル送信手段と、を備えるファイルサーバと、ファイルサーバが保持するファイルの複製を記憶する第２のファイル記憶手段と、入力されるファイル取得要求に応答して、第２のファイル記憶手段が記憶する対応するファイルを、ファイル取得要求の送信元に送信する第２のファイル送信手段と、ファイルサーバとネットワーク経由で通信を行う場合の通信方法を定義したサーバ情報を記憶するサーバ情報記憶手段と、ファイル取得時に、第２のファイル送信手段が実行可能の場合は複製されたファイルを取得し、実行可能でない場合はサーバ情報に基づいてファイルサーバからファイルを取得するようにコンピュータを制御する制御情報を記憶する制御情報記憶手段と、入力される起動通知に応答して、制御情報記憶手段が記憶する制御情報とサーバ情報記憶手段が記憶するサーバ情報とを、起動通知の送信元に送信する起動情報送信手段と、を備えるキャッシュサーバと、起動時に、キャッシュサーバに起動通知を送信して、制御情報とサーバ情報とを取得する起動手段と、起動後に未取得のファイルが必要になると、キャッシュサーバの稼働状態を確認し、起動情報取得手段が取得した制御情報とサーバ情報とに基づいて、キャッシュサーバまたはファイルサーバにファイル取得要求を送信して、ファイルを取得するファイル取得手段と、を備えるクライアントと、を有することを特徴とする分散ファイルシステムが提供される。
【００１６】
このような分散ファイルシステムによれば、ファイルサーバにファイルが保持される。キャッシュサーバに、ファイルサーバが保持するファイルの複製と、ファイルサーバと通信を行う場合の通信方法を定義したサーバ情報と、キャッシュサーバが稼働中の場合はキャッシュサーバに、稼働中でない場合はファイルサーバにファイル取得要求を送信するように制御する制御情報とが記憶される。ここで、クライアントが起動すると、キャッシュサーバにより、制御情報とサーバ情報とがクライアントに送信される。その後、クライアントにより、キャッシュサーバが稼働中の場合には、キャッシュサーバにファイル取得要求が送信され、キャッシュサーバが稼働中でない場合には、ファイルサーバにファイル取得要求が送信されて、ファイルが取得される。
【発明の効果】
【００１７】
本発明では、クライアントの起動時に、ファイルサーバと通信を行う場合の通信方法を定義したサーバ情報と、キャッシュサーバが稼働中の場合はキャッシュサーバに、稼働中でない場合はファイルサーバにファイル取得要求を送信するように制御する制御情報とを、クライアントに送信することとした。これにより、クライアントが、通常時にはキャッシュサーバに接続し、キャッシュサーバの故障時には接続先が要求する通信方法に従ってファイルサーバに接続できるようになる。従って、広域ネットワークを利用したシステムでも、可用性の高いファイルシステムを低廉かつ容易に構築することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本実施の形態の概要について説明し、その後、本実施の形態の具体的な内容を説明する。
図１は、本実施の形態の概要を示す図である。図１に示す分散ファイルシステムは、ファイルサーバ２が管理するファイルの複製をキャッシュサーバ１が保持し、クライアント３に配信するものである。キャッシュサーバ１、ファイルサーバ２およびクライアント３は、それぞれ１台のコンピュータである。キャッシュサーバ１およびクライアント３は、ネットワーク４を介して、ファイルサーバ２と接続されている。
【００１９】
キャッシュサーバ１は、ファイル記憶手段１ａ、サーバ情報記憶手段１ｂ、制御情報記憶手段１ｃ、起動情報送信手段１ｄおよびファイル送信手段１ｅを有する。
ファイル記憶手段１ａは、ファイルサーバ２が保持するファイルの複製を記憶する。記憶されるファイルは、クライアント３が使用する可能性のあるファイルである。例えば、プログラムファイル、プログラムの初期状態を定義する設定ファイル、データファイルなどである。ファイルの複製は、例えば、予めファイルサーバ２からネットワーク４経由で取得しておく。
【００２０】
サーバ情報記憶手段１ｂは、ファイルサーバ２についてのサーバ情報を記憶する。サーバ情報は、ファイルサーバ２からネットワーク４経由でファイルを取得する際の通信方法を定義する。サーバ情報には、例えば、ファイルサーバ２のアドレス、ファイル取得時に使用する通信プロトコルおよびポート番号が含まれる。
【００２１】
制御情報記憶手段１ｃは、制御情報を記憶する。制御情報は、未取得のファイルが必要になった際に、キャッシュサーバ１が稼働中の場合はキャッシュサーバ１からファイルを取得し、稼働中でない場合はファイルサーバ２からファイルを取得するように、コンピュータを制御する情報である。制御情報は、例えば、上記の処理手順を定義したプログラムまたはプログラム部品（モジュール）などである。
【００２２】
起動情報送信手段１ｄは、クライアント３が送信する起動通知に応答して、制御情報記憶手段１ｃが記憶する制御情報とサーバ情報記憶手段１ｂが記憶するサーバ情報とを、クライアント３に送信する。
【００２３】
ファイル送信手段１ｅは、クライアント３が送信するファイル取得要求に応答して、ファイル記憶手段１ａから、ファイル取得要求に対応するファイルを抽出する。そして、ファイル送信手段１ｅは、抽出したファイルをクライアント３に送信する。なお、ファイル取得要求に対応するファイルがファイル記憶手段１ａにない場合、ファイル送信手段１ｅは、ファイルサーバ２からネットワーク４経由でファイルを取得し、ファイル記憶手段１ａに格納する。その際、ファイル送信手段１ｅは、サーバ情報記憶手段１ｂが記憶するサーバ情報を参照する。
【００２４】
ファイルサーバ２は、ファイル記憶手段２ａおよびファイル送信手段２ｂを有する。
ファイル記憶手段２ａは、ファイルの原本を記憶する。ファイル記憶手段２ａが記憶するファイルの種類は、ファイル記憶手段１ａが記憶するファイルの種類と同じである。
【００２５】
ファイル送信手段２ｂは、キャッシュサーバ１またはクライアント３が送信するファイル取得要求に応答して、ファイル記憶手段２ａから、ファイル取得要求に対応するファイルを抽出する。そして、ファイル送信手段２ｂは、抽出したファイルをファイル取得要求の送信元に送信する。
【００２６】
クライアント３は、起動手段３ａおよびファイル取得手段３ｂを有する。
起動手段３ａは、クライアント３の起動を検知すると、キャッシュサーバ１に起動通知を送信する。そして、起動手段３ａは、起動通知に応答してキャッシュサーバ１が送信するサーバ情報と制御情報とを受信し、受信したサーバ情報と制御情報とを利用可能な状態にする。例えば、制御情報がプログラムである場合、起動手段３ａは、ファイル取得時に制御情報が示す処理手順が実行されるように、メモリ上にそのプログラムを展開する。
【００２７】
ファイル取得手段３ｂは、起動後に未取得のファイルが必要になると、制御情報が示す処理手順に従って、キャッシュサーバ１またはファイルサーバ２からファイルを取得する。具体的には、ファイル取得手段３ｂは、キャッシュサーバ１が稼働中の場合は、キャッシュサーバ１にファイル取得要求を送信する。一方、キャッシュサーバ１が稼働中でない場合は、ファイルサーバ２にファイル取得要求を送信する。後者の場合、ファイル取得手段３ｂは、サーバ情報が示す通信方法に従って、ネットワーク４経由でファイルサーバ２と通信を行う。
【００２８】
このような分散ファイルシステムによれば、ファイルサーバ２にファイルの原本が保持される。キャッシュサーバ１に、ファイルサーバ２が保持するファイルの複製と、ファイルサーバ２と通信を行う場合の通信方法を定義したサーバ情報と、キャッシュサーバ１が稼働中の場合はキャッシュサーバ１に、稼働中でない場合はファイルサーバ２にファイル取得要求を送信するように制御する制御情報とが記憶される。ここで、クライアント３が起動すると、キャッシュサーバ１により、制御情報とサーバ情報とがクライアントに送信される。その後、クライアント３により、キャッシュサーバ１が稼働中の場合には、キャッシュサーバ１にファイル取得要求が送信され、キャッシュサーバ１が稼働中でない場合には、ファイルサーバ２にファイル取得要求が送信されて、ファイルが取得される。
【００２９】
これにより、クライアント３が、通常時にはキャッシュサーバ１に接続し、キャッシュサーバ１の故障時にはファイルサーバ２が要求する通信方法に従ってファイルサーバ２に接続できるようになる。従って、ファイルサーバ２およびネットワーク４の種類にかかわらず、高い応答性能と可用性とを兼ね備えた分散ファイルシステムを実現できる。
【００３０】
特に、キャッシュサーバ１とファイルサーバ２とを使い分ける処理を定義した情報を、予めクライアント３に組み込んでおく必要がないため、補助記憶装置をもたないシンクライアントをクライアント３として使用できる。以下に述べる本実施の形態では、すべてのクライアントは、補助記憶装置をもたないシンクライアントであるものとする。
【００３１】
［第１の実施の形態］
以下、第１の実施の形態を図面を参照して詳細に説明する。
図２は、第１の実施の形態のシステム構成を示す図である。図２に示す分散ファイルシステムは、本社構内に設置されたサーバが管理するファイルを、支社構内に設置されたクライアントから利用できるようにするシステムである。このように、クライアントが利用するファイルをサーバが一括管理することで、ファイル管理が容易になると共に、ファイルの不正利用の防止にも寄与する。
【００３２】
本社構内には、ネットワーク３２、ルータ４１および管理サーバ２００が設置されている。ネットワーク３２は、本社構内のローカルネットワークである。ルータ４１は、広域ネットワークであるネットワーク３１と本社構内のネットワーク３２とを接続する。管理サーバ２００は、ネットワーク３２に接続されている。
【００３３】
支社Ａ構内には、ネットワーク３３、ルータ４２、中継サーバ１００およびクライアント３００，３００−２，・・・，３００−ｎが設置されている。ネットワーク３３は、支社Ａ構内のローカルネットワークである。ルータ４２は、広域ネットワークであるネットワーク３１と支社Ａ構内のネットワーク３３とを接続する。中継サーバ１００およびクライアント３００，３００−２，・・・，３００−ｎは、ネットワーク３３に接続されている。支社Ｂ構内および支社Ｃ構内も、支社Ａ構内と同様のシステム構成となっている。
【００３４】
ここで、管理サーバ２００は、クライアント３００，３００−２，・・・，３００−ｎが利用するファイルの原本を保持するファイルサーバである。中継サーバ１００は、管理サーバ２００に対するキャッシュサーバである。すなわち、中継サーバ１００は、クライアント３００，３００−２，・・・，３００−ｎから過去に要求されたファイルの複製を保持する。要求されたファイルの複製を保持していない場合は、管理サーバ２００からファイルを適宜取得する。クライアント３００，３００−２，・・・，３００−ｎは、中継サーバ１００が正常に稼働している場合は、中継サーバ１００からファイルを取得する。中継サーバ１００が正常に稼働していない場合は、管理サーバ２００からファイルを取得する。
【００３５】
次に、中継サーバ１００、管理サーバ２００およびクライアント３００，３００−２，・・・，３００−ｎのハードウェア構成について説明する。
図３は、第１の実施の形態の中継サーバのハードウェア構成を示す図である。中継サーバ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５および通信インタフェース１０６が接続されている。
【００３６】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳプログラムやアプリケーションプログラムが格納される。
【００３７】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク３３に接続されている。
【００３８】
図４は、第１の実施の形態のクライアントのハードウェア構成を示す図である。クライアント３００は、ＣＰＵ３０１によって装置全体が制御されている。ＣＰＵ３０１には、バス３０７を介してＲＡＭ３０２、ＲＯＭ（Read Only Memory）３０３、グラフィック処理装置３０４、入力インタフェース３０５および通信インタフェース３０６が接続されている。
【００３９】
ＲＡＭ３０２には、ＣＰＵ３０１に実行させるＯＳプログラムやアプリケーションプログラムが一時的に格納される。また、ＲＡＭ３０２には、ＣＰＵ３０１による処理に必要な各種データが格納される。ＲＯＭ３０３には、クライアント３００の起動時、すなわち、クライアント３００の電源がオンになったときに、最初に中継サーバ１００にアクセスするための基本的なプログラムが格納されている。
【００４０】
グラフィック処理装置３０４には、モニタ２１が接続されている。グラフィック処理装置３０４は、ＣＰＵ３０１からの命令に従って、画像をモニタ２１の画面に表示させる。入力インタフェース３０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース３０５は、キーボード２２やマウス２３から送られてくる信号を、バス３０７を介してＣＰＵ３０１に送信する。通信インタフェース３０６は、ネットワーク３３に接続されている。
【００４１】
管理サーバ２００は、中継サーバ１００と同様のハードウェア構成によって実現できる。クライアント３００−２，・・・，３００−ｎは、クライアント３００と同様のハードウェア構成によって実現できる。なお、クライアント３００，３００−２，・・・，３００−ｎは、ＨＤＤを搭載していてもよい。また、フラッシュメモリなどの不揮発性の半導体メモリを搭載していてもよい。
【００４２】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、中継サーバ１００、管理サーバ２００およびクライアント３００，３００−２，・・・，３００−ｎのモジュール構成について説明する。
【００４３】
図５は、第１の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
中継サーバ１００は、制御情報記憶部１１０、サーバ情報記憶部１２０、複製ファイル記憶部１３０、起動情報管理部１４０、複製ファイル管理部１５０および状態通知部１６０を有する。起動情報管理部１４０および複製ファイル管理部１５０は、管理サーバ２００と通信が可能である。また、起動情報管理部１４０、複製ファイル管理部１５０および状態通知部１６０は、クライアント３００，３００−２，・・・，３００−ｎと通信が可能である。
【００４４】
制御情報記憶部１１０には、クライアント３００，３００−２，・・・，３００−ｎが起動時に必要とする情報が格納される。具体的には、制御情報記憶部１１０には、ＯＳプログラム、ＯＳの起動を開始するプログラムであるブートローダ、ＲＡＭをファイル記憶装置として使用するプログラムであるＲＡＭディスクドライバが格納される。
【００４５】
また、制御情報記憶部１１０には、ネットワーク経由でファイルを入出力するプログラムである入出力ドライバも格納される。入出力ドライバは、ファイルを操作する際に中継サーバ１００の稼働状態を確認して、中継サーバ１００が正常に稼働している場合は中継サーバ１００のファイルを操作し、中継サーバ１００が正常に稼働していない場合は管理サーバ２００のファイルを操作するように、コンピュータを制御する。
【００４６】
サーバ情報記憶部１２０には、クライアント３００，３００−２，・・・，３００−ｎが、中継サーバ１００および管理サーバ２００にアクセスする際の通信方法を定義したサーバ情報が格納される。サーバ情報には、中継サーバ１００および管理サーバ２００が使用する通信プロトコルの情報が含まれる。なお、中継サーバ１００が使用する通信プロトコルと管理サーバ２００が使用する通信プロトコルとは、同一であるとは限らない。
【００４７】
複製ファイル記憶部１３０には、管理サーバ２００が保持するファイルの複製が格納される。具体的には、複製ファイル記憶部１３０には、アプリケーションプログラムのファイル、設定ファイル、データファイルが格納される。複製ファイル記憶部１３０では、管理サーバ２００におけるディレクトリ構造（ファイルの階層構造）が維持されて、ファイルが管理される。
【００４８】
起動情報管理部１４０は、管理サーバ２００から、クライアント３００，３００−２，・・・，３００−ｎの起動時に送信すべき情報を記載した初期ファイルを受信する。初期ファイルには、制御情報記憶部１１０およびサーバ情報記憶部１２０に格納すべき情報の少なくとも一部が記載されている。起動情報管理部１４０は、受信した初期ファイルに応じて、制御情報記憶部１１０およびサーバ情報記憶部１２０に格納された情報を更新する。
【００４９】
また、起動情報管理部１４０は、クライアント３００，３００−２，・・・，３００−ｎが起動時に送信する起動通知を受信する。起動情報管理部１４０は、起動通知に応答して、制御情報記憶部１１０およびサーバ情報記憶部１２０に格納された情報を、起動情報として起動通知の送信元に送信する。
【００５０】
複製ファイル管理部１５０は、クライアント３００，３００−２，・・・，３００−ｎが送信するファイル操作要求を受信する。ファイル操作要求は、ファイル取得要求またはファイル更新要求である。
【００５１】
ファイル取得要求を受信すると、複製ファイル管理部１５０は、複製ファイル記憶部１３０に格納されたファイルの中から、指定されたファイルを検索する。ここで、指定されたファイルが複製ファイル記憶部１３０に存在しない場合、複製ファイル管理部１５０は、サーバ情報記憶部１２０に格納されたサーバ情報に従って、管理サーバ２００からファイルを取得し、複製ファイル記憶部１３０に格納する。その後、複製ファイル管理部１５０は、指定されたファイルを要求元のクライアントに送信する。
【００５２】
ファイル更新要求を受信すると、複製ファイル管理部１５０は、複製ファイル記憶部１３０に格納された対応するファイルを更新する。そして、要求元のクライアントに、ファイル更新の結果を通知する。また、複製ファイル管理部１５０は、複製ファイル記憶部１３０に格納されたファイルの更新状況を定期的に確認する。更新されたファイルがある場合、複製ファイル管理部１５０は、管理サーバ２００に更新内容を送信する。これにより、管理サーバ２００が保持するファイルの原本に更新内容が反映される。
【００５３】
状態通知部１６０は、クライアント３００，３００−２，・・・，３００−ｎが定期的に送信する状態確認要求に応答して、中継サーバ１００のすべての機能が正常に動作しているか検査する。そして、検査結果を状態確認要求の送信元に送信する。また、状態通知部１６０は、中継サーバ１００の稼働状態が異常から正常へと復旧した時点で、復旧を示すパケットをネットワーク３３にブロードキャストする。
【００５４】
管理サーバ２００は、初期ファイル記憶部２１０、原本ファイル記憶部２２０、初期ファイル送信部２３０および原本ファイル管理部２４０を有する。
初期ファイル記憶部２１０には、初期ファイルが格納される。前述の通り、初期ファイルに記載される情報は、中継サーバ１００の制御情報記憶部１１０およびサーバ情報記憶部１２０に格納されるべき情報である。初期ファイルは、管理者によって予め作成される。また、管理者によって必要に応じて更新される。
【００５５】
原本ファイル記憶部２２０には、クライアント３００，３００−２，・・・，３００−ｎが使用するアプリケーションプログラムのファイル、設定ファイルおよびデータファイルの原本が格納される。
【００５６】
初期ファイル送信部２３０は、管理者による配信指示の入力に応答して、初期ファイル記憶部２１０に格納された初期ファイルを、中継サーバ１００に送信する。
原本ファイル管理部２４０は、中継サーバ１００またはクライアント３００，３００−２，・・・，３００−ｎが送信するファイル操作要求を受信する。ファイル操作要求は、ファイル取得要求またはファイル更新要求である。
【００５７】
ファイル取得要求を受信すると、原本ファイル管理部２４０は、原本ファイル記憶部２２０から指定されたファイルを取得し、要求元の中継サーバ１００またはクライアントに送信する。ファイル更新要求を受信すると、原本ファイル管理部２４０は、原本ファイル記憶部２２０に格納された対応するファイルを更新する。そして、要求元の中継サーバ１００またはクライアントに、ファイルの更新が完了した旨を通知する。
【００５８】
図６は、第１の実施の形態のクライアントの機能を示すブロック図である。クライアント３００は、起動部３１０およびファイル入出力部３２０を有する。
起動部３１０は、クライアント３００の起動信号、すなわち、クライアント３００の電源がオンになったことを示す信号に応答して、動作を開始する。起動部３１０は、起動信号を検知すると、起動通知を示すパケットをネットワーク３３にブロードキャストする。これは、起動部３１０は、起動時には中継サーバ１００のアドレスを知らないためである。ブロードキャストされたパケットは、中継サーバ１００に到達する。
【００５９】
起動部３１０は、起動通知に応答して中継サーバ１００が送信した起動情報を受信すると、起動情報に基づいてクライアント３００を起動する。具体的には、起動部３１０は、取得したブートローダ、ＯＳプログラム、ＲＡＭディスクドライバを、ＲＡＭ３０２上に展開する。そして、起動部３１０は、ブートローダを実行してＯＳの起動を開始する。また、起動部３１０は、取得した入出力ドライバおよびサーバ情報を、ＲＡＭ３０２上に展開する。
【００６０】
なお、起動部３１０は、ＲＯＭ３０３に格納されたプログラムによって実現される。ネットワーク経由でのブート処理の詳細は、ＰＸＥ（Preboot eXecution Environment）の仕様で定義されている。
【００６１】
ファイル入出力部３２０は、ネットワーク３３経由でファイルを入出力する。ただし、ファイル入出力部３２０が備える具体的な機能は、クライアント３００の起動前は定義されていない。ファイル入出力部３２０の機能は、起動部３１０がＲＡＭ３０２上に展開する入出力ドライバおよびサーバ情報によって定義される。
【００６２】
起動完了後におけるファイル入出力部３２０は、サーバ情報記憶部３２１、状態確認部３２２および要求送信部３２３を有する。
サーバ情報記憶部３２１には、起動部３１０が取得したサーバ情報が格納される。
【００６３】
状態確認部３２２は、サーバ情報記憶部３２１に格納されたサーバ情報に従って、中継サーバ１００に状態確認要求を送信する。状態確認部３２２は、中継サーバ１００から正常である旨の応答を得ている間は、定期的に状態確認要求を送信する。一方、中継サーバ１００から異常である旨の応答を得ると、状態確認要求の送信を停止する。その場合、状態確認部３２２は、中継サーバ１００から復旧した旨の通知を得たときに、状態確認要求の送信を再開する。
【００６４】
要求送信部３２３は、ＯＳプログラムまたはアプリケーションプログラムからファイル入出力命令を受け付ける。ファイル入出力命令は、ＯＳやアプリケーションが未取得のファイルを必要とした場合、および、ＲＡＭ３０２上でファイルが更新された場合に発行される。
【００６５】
ファイル入出力命令を受け付けると、要求送信部３２３は、状態確認部３２２に中継サーバ１００の稼働状態を問い合わせる。中継サーバ１００が正常に稼働中である場合、要求送信部３２３は、ファイル入出力命令に対応するファイル操作要求を中継サーバ１００に送信する。一方、中継サーバ１００が正常に稼働していない場合、要求送信部３２３は、ファイル操作要求を管理サーバ２００に送信する。ファイル操作要求の送信方法は、サーバ情報記憶部３２１に格納されたサーバ情報が示す通信方法に従う。
【００６６】
なお、クライアント３００−２，・・・，３００−ｎも、クライアント３００と同様のモジュール構成によって実現できる。
図７は、第１の実施の形態のサーバ情報テーブルのデータ構造を示す図である。図７に示すサーバ情報テーブル１２１は、中継サーバ１００のサーバ情報記憶部１２０に格納されている。サーバ情報テーブル１２１には、中継サーバ１００および管理サーバ２００に関する情報が、それぞれ関連付けられてテーブル化されて格納されている。
【００６７】
サーバ情報テーブル１２１には、サーバ種別を示す項目、アドレスを示す項目、通信プロトコルを示す項目およびポート番号を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられている。
【００６８】
サーバ種別の項目には、“管理サーバ”または“中継サーバ”のいずれか一方が設定される。アドレスの項目には、サーバのＦＱＤＮ（Fully-Qualified Domain Name）が設定される。ＦＱＤＮは、サーバが属するドメインのドメイン名とサーバ名とから成り、サーバを一意に識別する。通信プロトコルの項目には、ファイル操作要求を送信する際に使用すべき通信プロトコルの名称が設定される。ポート番号の項目には、ファイル操作要求を受け付けるためにサーバが用意している通信ポートのポート番号が設定される。
【００６９】
サーバ情報テーブル１２１に格納される情報は、起動情報管理部１４０によって、適宜登録および更新がなされる。例えば、管理サーバ２００について、サーバ種別が“管理サーバ”、アドレスが“ｈｑ．ｅｘａｍｐｌｅ．ｃｏｍ”、通信プロトコルが“ＷｅｂＤＡＶ”、ポート番号が“８０”という情報が登録される。
【００７０】
次に、以上のような構成およびデータ構造のシステムにおいて実行される処理の詳細を説明する。なお、クライアント３００，３００−２，・・・，３００−ｎのうち、代表して、クライアント３００が、中継サーバ１００および管理サーバ２００と通信を行う場合について説明する。
【００７１】
最初に、クライアント３００が起動した際に実行される処理について説明する。
図８は、第１の実施の形態の起動処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００７２】
［ステップＳ１１］起動部３１０は、起動信号、すなわち、クライアント３００の電源がオンになった旨の信号を検知する。
［ステップＳ１２］起動部３１０は、ネットワーク３３に起動通知を示すパケットをブロードキャストする。
【００７３】
［ステップＳ１３］起動情報管理部１４０は、ネットワーク３３にブロードキャストされたパケットを受信し、起動通知を取得する。そして、起動情報管理部１４０は、制御情報記憶部１１０からブートローダ、ＯＳプログラム、ＲＡＭディスクドライバおよび入出力ドライバを抽出する。また、サーバ情報記憶部１２０から、サーバ情報を抽出する。
【００７４】
［ステップＳ１４］起動情報管理部１４０は、ステップＳ１３で抽出した情報を起動情報として、起動部３１０に送信する。
［ステップＳ１５］起動部３１０は、起動情報を受信する。そして、起動部３１０は、ブートローダ、ＯＳプログラムおよびＲＡＭディスクドライバをＲＡＭ３０２上に展開し、ブートローダを実行してＯＳを起動する。
【００７５】
［ステップＳ１６］起動部３１０は、入出力ドライバおよびサーバ情報をＲＡＭ３０２上に展開し、ファイル入出力部３２０の機能を実現する。
このようにして、クライアント３００は、起動時に起動通知を中継サーバ１００に送信する。中継サーバ１００は、起動通知に応答して、クライアント３００の起動に必要な起動情報をクライアント３００に送信する。
【００７６】
次に、クライアント３００でファイル入出力命令が発生した際に実行される処理について説明する。
図９は、第１の実施の形態のファイル操作処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
【００７７】
［ステップＳ２１］要求送信部３２３は、ＯＳプログラムまたはアプリケーションプログラムが発生したファイル入出力命令を検知する。
［ステップＳ２２］要求送信部３２３は、状態確認部３２２に問い合わせて、中継サーバ１００の現在の稼働状態を示す情報を取得する。
【００７８】
［ステップＳ２３］要求送信部３２３は、ステップＳ２２で取得した情報に基づいて、中継サーバ１００が正常に稼働しているか否か判断する。正常に稼働している場合は、処理がステップＳ２４ａに進められる。正常に稼働していない場合は、処理がステップＳ２４ｂに進められる。
【００７９】
［ステップＳ２４ａ］要求送信部３２３は、サーバ情報記憶部３２１から中継サーバ１００に関するサーバ情報を取得する。これにより、中継サーバ１００にアクセスするためのＦＱＤＮ、通信プロトコルおよびポート番号が特定される。そして、要求送信部３２３は、図示しないＤＮＳ（Domain Name System）サーバを用いて、ＦＱＤＮに対応するＩＰ（Internet Protocol）アドレスを特定する。
【００８０】
［ステップＳ２５ａ］要求送信部３２３は、ステップＳ２４ａで特定したＩＰアドレス、通信プロトコルおよびポート番号に基づいて、ファイル入出力命令に対応するファイル操作要求を複製ファイル管理部１５０に送信する。
【００８１】
［ステップＳ２６ａ］複製ファイル管理部１５０は、受信したファイル操作要求に対応するファイル操作を実行する。すなわち、ファイル操作要求がファイル取得要求である場合、複製ファイル管理部１５０は、指定されたファイルを複製ファイル記憶部１３０または原本ファイル管理部２４０から取得する。ファイル更新要求である場合、複製ファイル管理部１５０は、複製ファイル記憶部１３０に格納された指定のファイルを更新する。
【００８２】
［ステップＳ２７ａ］複製ファイル管理部１５０は、ステップＳ２６ａでのファイル操作の結果を、要求送信部３２３に通知する。すなわち、ファイル操作要求がファイル取得要求である場合、複製ファイル管理部１５０は、取得したファイルまたは取得失敗を通知する。ファイル更新要求である場合、複製ファイル管理部１５０は、更新完了または更新失敗を通知する。
【００８３】
［ステップＳ２４ｂ］要求送信部３２３は、サーバ情報記憶部３２１から管理サーバ２００に関するサーバ情報を取得する。これにより、管理サーバ２００にアクセスするためのＦＱＤＮ、通信プロトコルおよびポート番号が特定される。そして、要求送信部３２３は、図示しないＤＮＳサーバを用いて、ＦＱＤＮに対応するＩＰアドレスを特定する。
【００８４】
［ステップＳ２５ｂ］要求送信部３２３は、ステップＳ２４ｂで特定したＩＰアドレス、通信プロトコルおよびポート番号に基づいて、ファイル入出力命令に対応するファイル操作要求を原本ファイル管理部２４０に送信する。
【００８５】
［ステップＳ２６ｂ］原本ファイル管理部２４０は、受信したファイル操作要求に対応するファイル操作を実行する。すなわち、ファイル操作要求がファイル取得要求である場合、原本ファイル管理部２４０は、指定されたファイルを原本ファイル記憶部２２０から取得する。ファイル更新要求である場合、原本ファイル管理部２４０は、原本ファイル記憶部２２０に格納された指定のファイルを更新する。
【００８６】
［ステップＳ２７ｂ］原本ファイル管理部２４０は、ステップＳ２６ｂでのファイル操作の結果を、要求送信部３２３に通知する。すなわち、ファイル操作要求がファイル取得要求である場合、原本ファイル管理部２４０は、取得したファイルまたは取得失敗を通知する。ファイル更新要求である場合、原本ファイル管理部２４０は、更新完了または更新失敗を通知する。
【００８７】
［ステップＳ２８］要求送信部３２３は、中継サーバ１００または管理サーバ２００から通知された操作結果を、ファイル入出力命令の発行元に応答する。
このようにして、クライアント３００は、ファイル入出力命令を検知すると、中継サーバ１００の稼働状態を確認する。ここで、中継サーバ１００が正常に稼働している場合、クライアント３００は、中継サーバ１００にファイル操作要求を送信する。一方、中継サーバ１００が正常にしていない場合、クライアント３００は、管理サーバ２００にファイル操作要求を送信する。ファイル操作要求を受信した中継サーバ１００または管理サーバ２００は、ファイルの取得または更新を行い、クライアント３００に応答する。
【００８８】
なお、第１の実施の形態では、管理サーバ２００が中継サーバ１００に初期ファイルを送信するようにしたが、中継サーバ１００が定期的に管理サーバ２００にアクセスして、初期ファイルを取得するようにしてもよい。
【００８９】
また、第１の実施の形態では、中継サーバ１００が保持する複製ファイルに対する更新を、管理サーバ２００が保持する原本ファイルに定期的に反映させるようにしたが（ライトバック型処理）、複製ファイルの更新時に同時に原本ファイルも更新するようにしてもよい（ライトスルー型処理）。
【００９０】
また、第１の実施の形態では、クライアント３００，３００−２，・・・，３００−ｎそれぞれが常に定期的に中継サーバ１００にアクセスして稼働状態を確認するようにしたが、中継サーバ１００の異常が発生した場合には、異常を最初に検知したクライアントが他のクライアントに異常が発生したことを示すパケットをブロードキャストし、クライアントが中継サーバ１００に対する稼動状態の確認を抑制するようにしてもよい。あるいは、クライアントが中継サーバ１００に稼動状態を確認する代わりに、中継サーバ１００が稼働状態を示すパケットをネットワーク３３にブロードキャストするようにしてもよい。
【００９１】
このような分散ファイルシステムを用いることで、クライアントは、通常時にはローカルネットワークを介して複製ファイルに対して操作を行い、複製ファイルを利用できない場合には広域ネットワークを介して原本ファイルに対して操作を行うことができる。特に、クライアントは、通信方法に関する情報が予め組み込まれていなくても、ローカルネットワークと広域ネットワークとで、それぞれ異なる通信方法を用いて通信を行うことができる。従って、クライアントとしてシンクライアントを採用しても、高い応答性能と可用性とを維持することができる。
【００９２】
［第２の実施の形態］
次に、第２の実施の形態を図面を参照して詳細に説明する。前述の第１の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
【００９３】
図１０は、第２の実施の形態のシステム構成を示す図である。図１０に示す分散ファイルシステムは、第１の実施の形態と同様、本社構内に設置されたサーバが管理するファイルを、支社構内に設置されたクライアントから利用できるようにするシステムである。ただし、第２の実施の形態では、本社構内に複数のサーバを設置している。このように、ファイルの種類毎にサーバを用意することで、ファイルの管理をより柔軟に行える。
【００９４】
本社構内には、ネットワーク３２、ルータ４１および管理サーバ４００，５００，５００ａが設置されている。管理サーバ４００，５００，５００ａは、ローカルネットワークであるネットワーク３２に接続されている。
【００９５】
支社Ａ構内には、ネットワーク３３、ルータ４２、中継サーバ１００ａおよびクライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎが設置されている。中継サーバ１００ａおよびクライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎは、ローカルネットワークであるネットワーク３３に接続されている。
【００９６】
ここで、管理サーバ４００，５００，５００ａは、クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎが利用するファイルの原本を、ファイルの種類に応じて分担して保持するファイルサーバである。中継サーバ１００ａは、管理サーバ４００，５００，５００ａが保持するファイルの複製を一括して管理するキャッシュサーバである。クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎは、中継サーバ１００ａが正常に稼働している場合は、中継サーバ１００ａからファイルを取得する。中継サーバ１００ａが正常に稼働していない場合は、必要なファイルを保持している管理サーバからファイルを取得する。
【００９７】
中継サーバ１００ａおよび管理サーバ４００，５００，５００ａは、第１の実施の形態の中継サーバ１００と同様のハードウェア構成によって実現できる。クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎは、第１の実施の形態のクライアント３００と同様のハードウェア構成によって実現できる。
【００９８】
図１１は、第２の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
中継サーバ１００ａは、制御情報記憶部１１０ａ、サーバ情報記憶部１２０ａ、複製ファイル記憶部１３０、起動情報管理部１４０、複製ファイル管理部１５０ａおよび状態通知部１６０を有する。複製ファイル記憶部１３０、起動情報管理部１４０および状態通知部１６０の処理機能は、第１の実施の形態のものと同様である。
【００９９】
制御情報記憶部１１０ａには、ＯＳプログラム、ブートローダ、ＲＡＭディスクドライバおよび入出力ドライバが格納される。ここで、第２の実施の形態の入出力ドライバは、中継サーバ１００ａが正常に稼働していない場合、操作対象のファイルを保持する管理サーバにアクセスするように、コンピュータを制御する。
【０１００】
サーバ情報記憶部１２０ａには、中継サーバ１００ａおよび管理サーバ４００，５００，５００ａにアクセスする際の通信方法を定義したサーバ情報が格納される。ここで、第２の実施の形態のサーバ情報には、個々の管理サーバが保持するファイルの種類を示す情報が更に含まれる。
【０１０１】
複製ファイル管理部１５０ａは、クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎが送信するファイル操作要求に応答して、複製ファイル記憶部１３０に格納されたファイルに対して操作を行う。ここで、複製ファイル管理部１５０ａは、指定されたファイルが複製ファイル記憶部１３０に存在しない場合、サーバ情報記憶部１２０ａに格納されたサーバ情報に従って、操作対象のファイルを保持する管理サーバからファイルを取得する。
【０１０２】
管理サーバ４００は、初期ファイル記憶部４１０および初期ファイル送信部４２０を有する。初期ファイル記憶部４１０の処理機能は、第１の実施の形態の初期ファイル記憶部２１０と同様である。初期ファイル送信部４２０の処理機能は、第１の実施の形態の初期ファイル送信部２３０と同様である。
【０１０３】
管理サーバ５００は、原本ファイル記憶部５１０および原本ファイル管理部５２０を有する。原本ファイル記憶部５１０の処理機能は、第１の実施の形態の原本ファイル記憶部２２０と同様である。ただし、原本ファイル記憶部５１０には、クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎが使用するファイルのうち、一部の種類のファイルが格納される。原本ファイル管理部５２０の処理機能は、第１の実施の形態の原本ファイル管理部２４０と同様である。
【０１０４】
クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎは、図６に示した第１の実施の形態のクライアント３００と基本的に同じモジュール構成で実現できる。ただし、クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎが保持するサーバ情報には、個々の管理サーバが保持するファイルの種類を示す情報が更に含まれる。また、クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎは、中継サーバ１００ａが正常に稼働していない場合、操作対象ファイルに応じた管理サーバにファイル操作要求を送信する。
【０１０５】
以下、クライアント３００ａは、第１の実施の形態のサーバ情報記憶部３２１および要求送信部３２３に代えて、それぞれ、サーバ情報記憶部３２１ａおよび要求送信部３２３ａを有しているものとする。
【０１０６】
図１２は、第２の実施の形態のサーバ情報テーブルのデータ構造を示す図である。図１２に示すサーバ情報テーブル１２２は、中継サーバ１００ａのサーバ情報記憶部１２０ａに格納されている。サーバ情報テーブル１２２には、中継サーバ１００ａおよび管理サーバ４００，５００，５００ａに関する情報が、それぞれ関連付けられてテーブル化されて格納されている。
【０１０７】
サーバ情報テーブル１２２には、サーバ種別を示す項目、アドレスを示す項目、通信プロトコルを示す項目、ポート番号を示す項目、ファイルパスを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられている。サーバ種別、アドレス、通信プロトコルおよびポート番号の意味は、それぞれ第１の実施の形態のサーバ情報テーブル１２１のものと同様である。
【０１０８】
ファイルパスの項目には、管理サーバがファイルの保持を担当するディレクトリ名が設定される。すなわち、設定されたディレクトリ名より下の階層にあるファイルを、その管理サーバが保持していることを意味する。ただし、中継サーバ１００ａについては、管理サーバ４００，５００，５００ａが保持するファイルの複製を一括して保持するため、ファイルパスの項目は設定されない。
【０１０９】
例えば、管理サーバ４００は、“／ｂｏｏｔ／”より下の階層に配置されたファイルを保持している。ここで、“／ｂｏｏｔ／”は、初期ファイルを格納するディレクトリを意味する。また、管理サーバ５００は、“／ｕｓｒ／ｄａｔａ１／”より下の階層に配置されたアプリケーションプログラムのファイル、設定ファイルおよびデータファイルを保持している。管理サーバ５００ａは、“／ｕｓｒ／ｄａｔａ２／”より下の階層に配置されたアプリケーションプログラムのファイル、設定ファイルおよびデータファイルを保持している。
【０１１０】
次に、クライアント３００ａでファイル入出力命令が発生した際に実行される処理について説明する。
図１３は、第２の実施の形態のファイル操作処理の手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１１１】
［ステップＳ３１］要求送信部３２３は、ＯＳプログラムまたはアプリケーションプログラムが発生したファイル入出力命令を検知する。ここで、ファイル入出力命令には、操作対象のファイルの絶対パス名（ディレクトリ名とファイル名とから成るファイルを一意に識別する情報）が含まれている。
【０１１２】
［ステップＳ３２］要求送信部３２３ａは、状態確認部３２２に問い合わせて、中継サーバ１００ａの現在の稼働状態を示す情報を取得する。
［ステップＳ３３］要求送信部３２３ａは、ステップＳ３２で取得した情報に基づいて、中継サーバ１００ａが正常に稼働しているか否か判断する。正常に稼働している場合は、処理がステップＳ３５ａに進められる。正常に稼働していない場合は、処理がステップＳ３４に進められる。
【０１１３】
［ステップＳ３４］要求送信部３２３ａは、サーバ情報記憶部３２１ａに格納されたサーバ情報を参照し、ファイル入出力命令で指定された絶対パス名に対応する管理サーバが存在するか否か判断する。存在する場合は、処理がステップＳ３５ｂに進められる。存在しない場合は、処理がステップＳ３９に進められる。
【０１１４】
［ステップＳ３５ａ］要求送信部３２３ａは、サーバ情報記憶部３２１ａから中継サーバ１００ａに関するサーバ情報を取得し、ＦＱＤＮ、通信プロトコルおよびポート番号を特定する。そして、要求送信部３２３ａは、図示しないＤＮＳサーバを用いて、ＦＱＤＮに対応するＩＰアドレスを特定する。
【０１１５】
［ステップＳ３６ａ］要求送信部３２３ａは、ステップＳ３５ａで特定したＩＰアドレス、通信プロトコルおよびポート番号に基づいて、ファイル入出力命令に対応するファイル操作要求を複製ファイル管理部１５０ａに送信する。
【０１１６】
［ステップＳ３７ａ］複製ファイル管理部１５０ａは、受信したファイル操作要求に対応するファイル操作を実行する。すなわち、ファイル操作要求がファイル取得要求である場合、複製ファイル管理部１５０ａは、指定されたファイルを複製ファイル記憶部１３０、管理サーバ５００，５００ａのいずれかから取得する。ファイル更新要求である場合、複製ファイル管理部１５０ａは、複製ファイル記憶部１３０に格納された指定のファイルを更新する。
【０１１７】
［ステップＳ３８ａ］複製ファイル管理部１５０ａは、ステップＳ３７ａでのファイル操作の結果を、要求送信部３２３ａに通知する。
［ステップＳ３５ｂ］要求送信部３２３ａは、サーバ情報記憶部３２１ａから操作対象のファイルを保持している管理サーバに関するサーバ情報を取得し、ＦＱＤＮ、通信プロトコルおよびポート番号を特定する。そして、要求送信部３２３ａは、図示しないＤＮＳサーバを用いて、ＦＱＤＮに対応するＩＰアドレスを特定する。
【０１１８】
［ステップＳ３６ｂ］要求送信部３２３ａは、ステップＳ３５ｂで特定したＩＰアドレス、通信プロトコルおよびポート番号に基づいて、ファイル入出力命令に対応するファイル操作要求を管理サーバ５００，５００ａのいずれかに送信する。以下では、管理サーバ５００にファイル操作要求を送信すると仮定する。
【０１１９】
［ステップＳ３７ｂ］原本ファイル管理部５２０は、受信したファイル操作要求に対応するファイル操作を実行する。すなわち、ファイル操作要求がファイル取得要求である場合、原本ファイル管理部５２０は、指定されたファイルを原本ファイル記憶部５１０から取得する。ファイル更新要求である場合、原本ファイル管理部５２０は、原本ファイル記憶部５１０に格納された指定のファイルを更新する。
【０１２０】
［ステップＳ３８ｂ］原本ファイル管理部５２０は、ステップＳ３７ｂでのファイル操作の結果を、要求送信部３２３ａに通知する。
［ステップＳ３９］要求送信部３２３ａは、ファイル入出力命令に対する処理結果を、命令の発行元に応答する。具体的には、ステップＳ３４で絶対パス名に対応する管理サーバが存在しないと判断したときは、絶対パス名が無効である旨を応答する。中継サーバ１００ａまたはいずれかの管理サーバから操作結果の通知を受けたときは、その通知内容を応答する。
【０１２１】
このようにして、クライアント３００ａは、ファイル入出力命令を検知すると、中継サーバ１００ａの稼働状態を確認する。ここで、中継サーバ１００ａが正常に稼働している場合、クライアント３００ａは、中継サーバ１００ａにファイル操作要求を送信する。一方、中継サーバ１００ａが正常にしていない場合、クライアント３００ａは、操作対象のファイルを保持している管理サーバを特定し、特定した管理サーバにファイル操作要求を送信する。ファイル操作要求を受信した中継サーバ１００ａまたは管理サーバ５００，５００ａは、ファイルの取得または更新を行い、クライアント３００ａに応答する。
【０１２２】
このような分散ファイルシステムを用いることで、第１の実施の形態の分散ファイルシステムを用いた場合と同様の効果が得られる。更に、第２の実施の形態の分散ファイルシステムを用いることで、クライアントは、複製ファイルを利用できない場合に、操作対象の原本ファイルを保持している管理サーバに対して直接、ファイル操作要求を送信することができる。従って、クライアントとしてシンクライアントを採用しても、ファイルの管理をより柔軟に行うことができる。
【０１２３】
［第３の実施の形態］
次に、第３の実施の形態を図面を参照して詳細に説明する。前述の第１および第２の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。第３の実施の形態の分散ファイルシステムは、本社構内に設置されたサーバを動的に入れ替えられるようにしたものである。
【０１２４】
第３の実施の形態のシステム構成は、図１０に示した第２の実施の形態のものと基本的に同じである。ただし、第３の実施の形態では、第２の実施の形態の中継サーバ１００ａに代えて、中継サーバ１００ｂがネットワーク３３に接続されている。また、管理サーバ４００に代えて、管理サーバ４００ａがネットワーク３２に接続されている。クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎに代えて、クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎがネットワーク３３に接続されている。
【０１２５】
ここで、中継サーバ１００ｂおよび管理サーバ４００ａは、第１の実施の形態の中継サーバ１００と同様のハードウェア構成によって実現できる。クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎは、第１の実施の形態のクライアント３００と同様のハードウェア構成によって実現できる。
【０１２６】
図１４は、第３の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
中継サーバ１００ｂは、制御情報記憶部１１０ｂ、サーバ情報記憶部１２０ｂ、複製ファイル記憶部１３０、起動情報管理部１４０ｂ、複製ファイル管理部１５０ｂ、状態通知部１６０、クライアント情報記憶部１７０および変更通知部１８０を有する。
【０１２７】
制御情報記憶部１１０ｂ、サーバ情報記憶部１２０ｂ、複製ファイル記憶部１３０、複製ファイル管理部１５０ｂおよび状態通知部１６０の処理機能は、それぞれ、第２の実施の形態の制御情報記憶部１１０ａ、サーバ情報記憶部１２０ａ、複製ファイル記憶部１３０、複製ファイル管理部１５０ａおよび状態通知部１６０と同様である。
【０１２８】
起動情報管理部１４０ｂは、クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎが起動時に送信する起動通知を受信する。起動情報管理部１４０ｂは、起動通知に応答して、制御情報記憶部１１０ｂおよびサーバ情報記憶部１２０ｂに格納された情報を、起動情報として起動通知の送信元に送信する。
【０１２９】
その後、起動情報管理部１４０ｂは、クライアント情報記憶部１７０に、クライアントが起動したことを示す情報を登録する。起動したクライアントは、起動通知に含まれるＭＡＣ（Media Access Control）アドレスによって特定する。なお、ＤＨＣＰ（Dynamic Host Configuration Protocol）の機能を用いて、起動したクライアントにＩＰアドレスを動的に割り当てた場合、起動情報管理部１４０ｂは、割り当てたＩＰアドレスもクライアント情報記憶部１７０に登録する。
【０１３０】
また、起動情報管理部１４０ｂは、クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎが終了時に送信する終了通知を受信する。起動情報管理部１４０ｂは、終了通知に応答して、クライアント情報記憶部１７０に、クライアントが終了したことを示す情報を登録する。
【０１３１】
また、起動情報管理部１４０ｂは、管理サーバ４００ａから初期ファイルまたは更新通知を受信すると、制御情報記憶部１１０ｂおよびサーバ情報記憶部１２０ｂに格納された情報を更新する。このとき、サーバ情報の変更を検知すると、起動情報管理部１４０ｂは、変更通知部１８０に変更後のサーバ情報を通知する。
【０１３２】
クライアント情報記憶部１７０には、クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎのクライアント情報が格納される。クライアント情報には、個々のクライアントのアドレスの情報と、起動状態を示す情報とが含まれる。
【０１３３】
変更通知部１８０は、起動情報管理部１４０ｂからサーバ情報の通知を受けると、クライアント情報記憶部１７０に格納されたクライアント情報を検索して、起動しているクライアントを特定する。そして、変更通知部１８０は、特定したクライアントに変更後のサーバ情報を送信する。
【０１３４】
管理サーバ４００ａは、初期ファイル記憶部４１０および初期ファイル送信部４２０ａを有する。初期ファイル記憶部４１０の処理機能は、第１の実施の形態の初期ファイル記憶部２１０と同様である。初期ファイル送信部４２０ａは、管理者による配信指示の入力に応答して、初期ファイル記憶部４１０に格納された初期ファイルを、中継サーバ１００ｂに送信する。また、管理者によるサーバ情報の再配布指示の入力に応答して、初期ファイル記憶部４１０からサーバ情報を抽出し、中継サーバ１００ｂに送信する。
【０１３５】
図１５は、第３の実施の形態のクライアントの機能を示すブロック図である。クライアント３００ｂは、起動部３１０およびファイル入出力部３２０ｂを有する。起動部３１０の処理機能は、第１の実施の形態のものと同様である。
【０１３６】
ファイル入出力部３２０ｂは、ネットワーク３３経由でファイルを入出力する。ただし、ファイル入出力部３２０ｂが備える具体的な機能は、起動部３１０がＲＡＭ３０２上に展開する入出力ドライバおよびサーバ情報によって定義される。
【０１３７】
起動完了後におけるファイル入出力部３２０ｂは、サーバ情報記憶部３２１ｂ、状態確認部３２２、要求送信部３２３ｂおよびサーバ情報更新部３２４を有する。サーバ情報記憶部３２１ｂの処理機能は、第２の実施の形態のサーバ情報記憶部３２１ａと同様である。状態確認部３２２の処理機能は、第１の実施の形態のものと同様である。
【０１３８】
要求送信部３２３ｂは、ファイル入出力命令を受け付けると、状態確認部３２２に中継サーバ１００ｂの稼働状態を問い合わせる。そして、中継サーバ１００ｂが正常に稼働中である場合、ファイル入出力命令に対応するファイル操作要求を中継サーバ１００ｂに送信する。中継サーバ１００ｂが正常に稼働していない場合、操作対象ファイルに応じた管理サーバにファイル操作要求を送信する。
【０１３９】
また、要求送信部３２３ｂは、ＯＳプログラムからＯＳを終了して電源をオフにすることを示す終了準備命令を受け付けると、中継サーバ１００ｂに終了通知を送信する。
サーバ情報更新部３２４は、中継サーバ１００ｂから変更後のサーバ情報を受信すると、サーバ情報記憶部３２１ｂに格納された変更前のサーバ情報を更新する。
【０１４０】
なお、クライアント３００ｂ−２，・・・，３００ｂ−ｎも、クライアント３００ｂと同様のモジュール構成によって実現できる。
図１６は、第３の実施の形態のクライアント情報テーブルのデータ構造を示す図である。図１６に示すクライアント情報テーブル１７１は、中継サーバ１００ｂのクライアント情報記憶部１７０に格納されている。クライアント情報テーブル１７１には、クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎに関する情報が、それぞれ関連付けられてテーブル化されて格納されている。
【０１４１】
クライアント情報テーブル１７１には、ＭＡＣアドレスを示す項目、ＩＰアドレスを示す項目、ポート番号を示す項目、状態を示す項目および更新時刻を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられている。
【０１４２】
ＭＡＣアドレスの項目には、クライアントを一意に識別するＭＡＣアドレスが設定される。ＩＰアドレスの項目には、クライアントに割り当てられたＩＰアドレスが設定される。ポート番号の項目には、変更後のサーバ情報を受信するためにクライアントが用意している通信ポートの番号が設定される。状態の項目には、クライアントの起動状態を示す値が設定される。具体的には、起動中であることを示す“ｏｐｅｎ”または起動していないことを示す“ｃｌｏｓｅｄ”のいずれか一方が設定される。更新時刻の項目には、状態の項目の値が変化した時刻が設定される。
【０１４３】
クライアント情報テーブル１７１に格納される情報は、予め管理者によって既定値が登録される。その後、起動情報管理部１４０ｂによって、適宜更新がなされる。例えば、クライアント３００ｂについて、ＭＡＣアドレスが“００ｅ００００１０２０３”、ＩＰアドレスが“１９２．１６８．１．５０”、ポート番号が“５０６０”、状態が“ｏｐｅｎ”、更新時刻が“２００６−０９−２３  １０：２１：４７”という情報が登録される。
【０１４４】
次に、管理サーバの入れ替えが発生した際に実行される処理について説明する。
図１７は、第３の実施の形態のサーバ変更処理の手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１４５】
［ステップＳ４１］初期ファイル送信部４２０ａは、管理者によるサーバ情報の再配信指示の入力があると、初期ファイル記憶部４１０からサーバ情報を抽出する。ここで、初期ファイルに記載されたサーバ情報は、予め管理者によって更新されている。そして、初期ファイル送信部４２０ａは、起動情報管理部１４０ｂに変更後のサーバ情報を送信する。
【０１４６】
［ステップＳ４２］起動情報管理部１４０ｂは、受信したサーバ情報に基づいて、サーバ情報記憶部１２０ｂに格納された情報を更新する。また、起動情報管理部１４０ｂは、変更後のサーバ情報を、変更通知部１８０に通知する。
【０１４７】
［ステップＳ４３］変更通知部１８０は、サーバ情報を取得すると、クライアント情報記憶部１７０に格納されたクライアント情報を参照し、起動中のクライアントのＩＰアドレスとポート番号とを特定する。
【０１４８】
［ステップＳ４４］変更通知部１８０は、ステップＳ４３で特定したＩＰアドレスとポート番号とを宛先として、取得したサーバ情報を送信する。以下では、クライアント３００ｂにサーバ情報を送信したものと仮定する。
【０１４９】
［ステップＳ４５］サーバ情報更新部３２４は、受信した変更後のサーバ情報を用いて、サーバ情報記憶部３２１ｂに格納された情報を更新する。
このようにして、管理サーバ４００ａは、変更後のサーバ情報を中継サーバ１００ｂに送信する。中継サーバ１００ｂは、クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎの起動状態を確認し、起動中のクライアントに変更後のサーバ情報を送信する。変更後のサーバ情報を受信したクライアントは、自身が保持するサーバ情報を更新する。
【０１５０】
このような分散ファイルシステムを用いることで、第２の実施の形態の分散ファイルシステムを用いた場合と同様の効果が得られる。更に、第３の実施の形態の分散ファイルシステムを用いることで、クライアント３００ｂ，３００ｂ−２，・・・，３００ｂ−ｎに影響を与えることなく、管理サーバ４００ａ，５００，５００ａの保守を行うことができる。従って、より可用性の高い分散ファイルシステムを提供することができる。
【０１５１】
［第４の実施の形態］
次に、第４の実施の形態を図面を参照して詳細に説明する。前述の第１、第２および第３の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。第４の実施の形態の分散ファイルシステムは、中継サーバの稼働状態にかかわらず、本社構内に設置されたサーバを動的に入れ替えられるようにしたものである。
【０１５２】
第４の実施の形態のシステム構成は、図１０に示した第２の実施の形態のものと基本的に同じである。ただし、第４の実施の形態では、第２の実施の形態の中継サーバ１００ａに代えて、中継サーバ１００ｃがネットワーク３３に接続されている。また、クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎに代えて、クライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎがネットワーク３３に接続されている。管理サーバ４００に代えて、管理サーバ４００ｂがネットワーク３２に接続されている。
【０１５３】
ここで、中継サーバ１００ｃおよび管理サーバ４００ｂは、第１の実施の形態の中継サーバ１００と同様のハードウェア構成によって実現できる。クライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎは、第１の実施の形態のクライアント３００と同様のハードウェア構成によって実現できる。
【０１５４】
図１８は、第４の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
中継サーバ１００ｃは、制御情報記憶部１１０ｃ、サーバ情報記憶部１２０ｃ、複製ファイル記憶部１３０、起動情報管理部１４０ｃ、複製ファイル管理部１５０ｃおよび状態通知部１６０を有する。
【０１５５】
制御情報記憶部１１０ｃ、サーバ情報記憶部１２０ｃ、複製ファイル記憶部１３０、複製ファイル管理部１５０ｃおよび状態通知部１６０の処理機能は、それぞれ、第２の実施の形態の制御情報記憶部１１０ａ、サーバ情報記憶部１２０ａ、複製ファイル記憶部１３０、複製ファイル管理部１５０ａおよび状態通知部１６０と同様である。
【０１５６】
起動情報管理部１４０ｃは、クライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎが起動時に送信する起動通知に応答して、制御情報記憶部１１０ｃおよびサーバ情報記憶部１２０ｃに格納された情報を、起動情報として起動通知の送信元に送信する。また、起動情報管理部１４０ｃは、管理サーバ４００ｂから初期ファイルまたは更新通知を受信すると、制御情報記憶部１１０ｃおよびサーバ情報記憶部１２０ｃに格納された情報を更新する。
【０１５７】
管理サーバ４００ｂは、初期ファイル記憶部４１０、初期ファイル送信部４２０ｂ、クライアント情報記憶部４３０およびクライアント管理部４４０を有する。初期ファイル記憶部４１０の処理機能は、第１の実施の形態の初期ファイル記憶部２１０と同様である。
【０１５８】
初期ファイル送信部４２０ｂは、管理者による配信指示の入力に応答して、初期ファイル記憶部４１０に格納された初期ファイルを、中継サーバ１００ｃに送信する。また、管理者によるサーバ情報の再配布指示の入力に応答して、初期ファイル記憶部４１０からサーバ情報を抽出し、中継サーバ１００ｃに送信する。このとき、初期ファイル送信部４２０ｂは、クライアント管理部４４０にサーバ情報を通知する。
【０１５９】
クライアント情報記憶部４３０には、第３の実施の形態のクライアント情報テーブル１７１と同様のクライアント情報テーブル４３１が格納される。
クライアント管理部４４０は、クライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎが送信する登録要求を受信する。登録要求には、ＭＡＣアドレス、ＩＰアドレス、ポート番号、起動または終了を示す状態情報および起動時刻が含まれる。クライアント管理部４４０は、登録要求に応答して、クライアント情報記憶部４３０に格納されたクライアント情報を更新する。
【０１６０】
また、クライアント管理部４４０は、初期ファイル送信部４２０ｂからサーバ情報の通知を受けると、クライアント情報記憶部４３０に格納されたクライアント情報を検索して、起動しているクライアントを特定する。そして、クライアント管理部４４０は、特定したクライアントに変更後のサーバ情報を送信する。
【０１６１】
図１９は、第４の実施の形態のクライアントの機能を示すブロック図である。クライアント３００ｃは、起動部３１０およびファイル入出力部３２０ｃを有する。起動部３１０の処理機能は、第１の実施の形態のものと同様である。
【０１６２】
ファイル入出力部３２０ｃは、ネットワーク３３経由でファイルを入出力する。ただし、ファイル入出力部３２０ｃが備える具体的な機能は、起動部３１０がＲＡＭ３０２上に展開する入出力ドライバおよびサーバ情報によって定義される。
【０１６３】
起動完了後におけるファイル入出力部３２０ｃは、サーバ情報記憶部３２１ｃ、状態確認部３２２、要求送信部３２３ｃおよびサーバ情報更新部３２４ｃを有する。サーバ情報記憶部３２１ｃの処理機能は、第２の実施の形態のサーバ情報記憶部３２１ａと同様である。状態確認部３２２の処理機能は、第１の実施の形態のものと同様である。
【０１６４】
要求送信部３２３ｃは、起動が完了すると、サーバ情報記憶部３２１ｃから管理サーバ４００ｂのサーバ情報を取得し、起動した旨の登録要求を管理サーバ４００ｂに送信する。また、要求送信部３２３ｃは、ＯＳプログラムからＯＳを終了して電源をオフにすることを示す終了準備命令を受け付けると、管理サーバ４００ｂに終了する旨の登録要求を送信する。
【０１６５】
また、要求送信部３２３ｃは、ファイル入出力命令を受け付けると、状態確認部３２２に中継サーバ１００ｃの稼働状態を問い合わせる。そして、中継サーバ１００ｃが正常に稼働中である場合、ファイル入出力命令に対応するファイル操作要求を中継サーバ１００ｃに送信する。中継サーバ１００ｃが正常に稼働していない場合、操作対象ファイルに応じた管理サーバにファイル操作要求を送信する。
【０１６６】
サーバ情報更新部３２４ｃは、管理サーバ４００ｂから変更後のサーバ情報を受信すると、サーバ情報記憶部３２１ｃに格納された変更前のサーバ情報を更新する。
なお、クライアント３００ｃ−２，・・・，３００ｃ−ｎも、クライアント３００ｃと同様のモジュール構成によって実現できる。
【０１６７】
次に、クライアント３００ｃが起動した際に実行される処理について説明する。
図２０は、第４の実施の形態の起動処理の手順を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。
【０１６８】
［ステップＳ５１］起動部３１０は、起動信号、すなわち、クライアント３００ｃの電源がオンになった旨の信号を検知する。
［ステップＳ５２］起動部３１０は、ネットワーク３３に起動通知を示すパケットをブロードキャストする。
【０１６９】
［ステップＳ５３］起動情報管理部１４０ｃは、ネットワーク３３にブロードキャストされたパケットを受信し、起動通知を取得する。そして、起動情報管理部１４０ｃは、制御情報記憶部１１０ｃからブートローダ、ＯＳプログラム、ＲＡＭディスクドライバおよび入出力ドライバを抽出する。また、サーバ情報記憶部１２０ｃから、サーバ情報を抽出する。
【０１７０】
［ステップＳ５４］起動情報管理部１４０ｃは、ステップＳ５３で抽出した情報を起動情報として、起動部３１０に送信する。
［ステップＳ５５］起動部３１０は、起動情報を受信する。そして、起動部３１０は、ブートローダ、ＯＳプログラムおよびＲＡＭディスクドライバをＲＡＭ３０２上に展開し、ブートローダを実行してＯＳを起動する。
【０１７１】
［ステップＳ５６］起動部３１０は、入出力ドライバおよびサーバ情報をＲＡＭ３０２上に展開し、ファイル入出力部３２０ｃの機能を実現する。
［ステップＳ５７］要求送信部３２３ｃは、サーバ情報記憶部３２１ｃから管理サーバ４００ｂに関するサーバ情報を取得し、アドレスを特定する。そして、要求送信部３２３ｃは、起動した旨の登録要求を管理サーバ４００ｂに送信する。
【０１７２】
［ステップＳ５８］クライアント管理部４４０は、受信した登録要求に従って、クライアント情報記憶部４３０に格納されたクライアント情報を更新する。
このようにして、クライアント３００ｃは、起動時に起動通知を中継サーバ１００ｃに送信して起動処理を行う。起動完了後、クライアント３００ｃは、管理サーバ４００ｂに登録要求を送信する。これにより、管理サーバ４００ｂは、クライアント３００ｃが起動したことを検知し、クライアント３００ｃに関するクライアント情報を保持する。
【０１７３】
なお、クライアント３００ｃに割り当てられたＩＰアドレスが支社Ａ構内でのみ有効なプライベートアドレスである場合、ルータ４２のＮＡＰＴ（Network Address Port Translation）機能によって、登録要求に含まれるＩＰアドレスとポート番号とが、グローバルなＩＰアドレスとポート番号とに変換される。これにより、管理サーバ４００ｂからクライアント３００ｃへのアクセスが可能となる。
【０１７４】
図２１は、第４の実施の形態の登録要求のデータ構造を示す図である。図２１に示すメッセージ９１０は、起動完了後にクライアント３００ｃが管理サーバ４００ｂに送信する登録要求の内容である。ここでは、登録要求の送受信に使用する通信プロトコルとして、ＳＩＰ（Session Initiation Protocol）を使用している。
【０１７５】
メッセージ９１０の項目９１１は、管理サーバ４００ｂを宛先とする登録要求であることを示している。項目９１２は、管理サーバ４００ｂがクライアント３００ｃにメッセージを送信する場合に使用すべきアドレスを示している。具体的には、“＠”の前がＭＡＣアドレスであり、“＠”と“：”との間がＩＰアドレスであり、“：”の後がポート番号である。なお、項目９１２に含まれるＩＰアドレスとポート番号とは、ルータ４３のＮＡＰＴ機能によって変換された後のものである。項目９１３は、クライアント３００ｃの状態が起動中の状態になったことを示している。項目９１４は、クライアント３００ｃが起動した時刻を示している。
【０１７６】
次に、管理サーバの入れ替えが発生した際に実行される処理について説明する。
図２２は、第４の実施の形態のサーバ変更処理の手順を示すフローチャートである。以下、図２２に示す処理をステップ番号に沿って説明する。
【０１７７】
［ステップＳ６１］初期ファイル送信部４２０ｂは、管理者によるサーバ情報の再配信指示の入力があると、初期ファイル記憶部４１０からサーバ情報を抽出する。そして、初期ファイル送信部４２０ｂは、起動情報管理部１４０ｃに変更後のサーバ情報を送信する。
【０１７８】
［ステップＳ６２］起動情報管理部１４０ｃは、受信したサーバ情報に基づいて、サーバ情報記憶部１２０ｃに格納された情報を更新する。
［ステップＳ６３］初期ファイル送信部４２０ｂは、変更後のサーバ情報をクライアント管理部４４０に通知する。クライアント管理部４４０は、クライアント情報記憶部４３０に格納されたクライアント情報を参照し、起動中のクライアントに対応するＭＡＣアドレス、ＩＰアドレスおよびポート番号を特定する。
【０１７９】
［ステップＳ６４］クライアント管理部４４０は、ステップＳ６３で特定したＭＡＣアドレス、ＩＰアドレスおよびポート番号を宛先として、取得したサーバ情報を送信する。以下では、クライアント３００ｃにサーバ情報を送信したものと仮定する。
【０１８０】
［ステップＳ６５］サーバ情報更新部３２４ｃは、受信した変更後のサーバ情報を用いて、サーバ情報記憶部３２１ｃに格納された情報を更新する。
このようにして、管理サーバ４００ｂは、変更後のサーバ情報を中継サーバ１００ｃに送信する。中継サーバ１００ｃは、自身が保持するサーバ情報を更新する。また、管理サーバ４００ｂは、起動中のクライアントに変更後のサーバ情報を送信する。変更後のサーバ情報を受信したクライアントは、自身が保持するサーバ情報を更新する。
【０１８１】
なお、クライアント情報記憶部４３０に格納されたＩＰアドレスとポート番号とが、ルータ４２のＮＡＰＴ機能によって変換された後のものである場合、管理サーバ４００ｂが送信したサーバ情報は、ルータ４２に届けられる。ここで、ルータ４２は、ＮＡＰＴ機能によって、グローバルなＩＰアドレスとポート番号とを、プライベートなＩＰアドレスとポート番号とに逆変換する。そして、ルータ４２は、逆変換後のＩＰアドレスとポート番号とを宛先として、サーバ情報を転送する。
【０１８２】
図２３は、第４の実施の形態の変更通知のデータ構造を示す図である。図２３に示すメッセージ９２０は、管理サーバ５００を他のコンピュータと入れ替える際に、管理サーバ４００ｂがクライアント３００ｃに送信するメッセージの内容である。ここでは、登録要求の送受信と同様、通信プロトコルとしてＳＩＰを使用している。
【０１８３】
メッセージ９２０の項目９２１は、クライアント３００ｃに対するメッセージであることを示している。ただし、直接の宛先はルータ４２に設定されている。項目９２２は、入れ替え対象の管理サーバが保持するファイルのファイルパスを示している。項目９２３は、入れ替え後の管理サーバのＦＱＤＮを示している。項目９２４は、入れ替え後の管理サーバが使用する通信プロトコルの名称を示している。項目９２５は、入れ替え後の管理サーバが使用する通信ポートのポート番号を示している。
【０１８４】
このような分散ファイルシステムを用いることで、第２の実施の形態の分散ファイルシステムを用いた場合と同様の効果が得られる。更に、第４の実施の形態の分散ファイルシステムを用いることで、中継サーバ１００ｃが故障しても、クライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎに確実にサーバ情報の変更を通知できる。従って、より可用性の高い分散ファイルシステムを提供することができる。
【０１８５】
［第５の実施の形態］
次に、第５の実施の形態を図面を参照して詳細に説明する。前述の第１、第２、第３および第４の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
【０１８６】
第５の実施の形態の分散ファイルシステムは、第３の実施の形態と第４の実施の形態とを組み合わせたものである。すなわち、本社構内に設置されたサーバを入れ替える際に、中継サーバが正常に稼働しているときは中継サーバ経由で、中継サーバが正常に稼働していないときは個々のクライアントに直接、通知を行うようにしたものである。
【０１８７】
第５の実施の形態のシステム構成は、図１０に示した第２の実施の形態のものと基本的に同じである。ただし、第５の実施の形態では、第２の実施の形態の中継サーバ１００ａに代えて、第３の実施の形態の中継サーバ１００ｂがネットワーク３３に接続されている。また、クライアント３００ａ，３００ａ−２，・・・，３００ａ−ｎに代えて、第４の実施の形態のクライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎがネットワーク３３に接続されている。更に、管理サーバ４００に代えて、管理サーバ４００ｃがネットワーク３２に接続されている。
【０１８８】
ここで、管理サーバ４００ｃは、第１の実施の形態の中継サーバ１００と同様のハードウェア構成によって実現できる。
また、管理サーバ４００ｃは、図１８に示した第４の実施の形態の管理サーバ４００ｂと基本的に同じモジュール構成で実現できる。ただし、管理サーバ４００ｃは、管理者によるサーバ情報の再配信指示の入力に応答して、中継サーバ１００ｂへのサーバ情報の送信を試み、中継サーバ１００ｂが正常に稼働していない場合にのみ、クライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎに直接サーバ情報を送信する。
【０１８９】
以下、管理サーバ４００ｃは、第４の実施の形態の初期ファイル送信部４２０ｂに代えて、初期ファイル送信部４２０ｃを有しているものとする。
図２４は、第５の実施の形態のサーバ変更処理の手順を示すフローチャートである。以下、図２４に示す処理をステップ番号に沿って説明する。
【０１９０】
［ステップＳ７１］初期ファイル送信部４２０ｃは、管理者によるサーバ情報の再配信指示の入力があると、中継サーバ１００ｂへのアクセスを試み、中継サーバ１００ｂが正常に稼働しているか否か判断する。正常に稼働している場合は、処理がステップＳ７２に進められる。正常に稼働していない場合は、処理がステップＳ７６に進められる。
【０１９１】
［ステップＳ７２］初期ファイル送信部４２０ｃは、初期ファイル記憶部４１０からサーバ情報を抽出する。そして、初期ファイル送信部４２０ｃは、起動情報管理部１４０ｂに変更後のサーバ情報を送信する。
【０１９２】
［ステップＳ７３］起動情報管理部１４０ｂは、受信したサーバ情報に基づいて、サーバ情報記憶部１２０ｂに格納された情報を更新する。また、起動情報管理部１４０ｂは、変更後のサーバ情報を、変更通知部１８０に通知する。
【０１９３】
［ステップＳ７４］変更通知部１８０は、サーバ情報を取得すると、クライアント情報記憶部１７０に格納されたクライアント情報を参照し、起動中のクライアントのＩＰアドレスとポート番号とを特定する。
【０１９４】
［ステップＳ７５］変更通知部１８０は、ステップＳ７４で特定したＩＰアドレスとポート番号とを宛先として、取得したサーバ情報を送信する。
［ステップＳ７６］初期ファイル送信部４２０ｃは、変更後のサーバ情報をクライアント管理部４４０に通知する。クライアント管理部４４０は、クライアント情報記憶部４３０に格納されたクライアント情報を参照し、起動中のクライアントに対応するＭＡＣアドレス、ＩＰアドレスおよびポート番号を特定する。
【０１９５】
［ステップＳ７７］クライアント管理部４４０は、ステップＳ７６で特定したＭＡＣアドレス、ＩＰアドレスおよびポート番号を宛先として、取得したサーバ情報を送信する。以下では、クライアント３００ｃにサーバ情報が送信されたものと仮定する。
【０１９６】
［ステップＳ７８］サーバ情報更新部３２４ｃは、受信した変更後のサーバ情報を用いて、サーバ情報記憶部３２１ｃに格納された情報を更新する。
このようにして、管理サーバ４００ｃは、中継サーバ１００ｂが正常に稼働している場合、中継サーバ１００ｂにサーバ情報を送信する。サーバ情報を受信した中継サーバ１００ｂは、自身が保持するサーバ情報を更新すると共に、起動中のクライアントにサーバ情報を送信する。一方、管理サーバ４００ｃは、中継サーバ１００ｂが正常に稼働していない場合、起動中のクライアントに直接サーバ情報を送信する。そして、サーバ情報を受信したクライアントは、自身が保持するサーバ情報を更新する。
【０１９７】
このような分散ファイルシステムを用いることで、第２の実施の形態の分散ファイルシステムを用いた場合と同様の効果が得られる。更に、第５の実施の形態の分散ファイルシステムを用いることで、管理サーバ４００ｃ，５００，５００ａの保守を運用を継続しつつ行うことができる。
【０１９８】
特に、中継サーバ１００ｂの稼働状態にかかわらず、クライアント３００ｃ，３００ｃ−２，・・・，３００ｃ−ｎに確実にサーバ情報の変更を通知することができる。また、中継サーバ１００ｂが正常に稼働している場合は、ネットワーク３１上の通信量を抑制することができる。従って、より柔軟で応答性能の高い分散ファイルシステムを提供することができる。
【０１９９】
以上、本発明のファイル配信プログラム、ファイル配信装置および分散ファイルシステムを図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０２００】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、中継サーバが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc - Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０２０１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２０２】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【０２０３】
【図１】本実施の形態の概要を示す図である。
【図２】第１の実施の形態のシステム構成を示す図である。
【図３】第１の実施の形態の中継サーバのハードウェア構成を示す図である。
【図４】第１の実施の形態のクライアントのハードウェア構成を示す図である。
【図５】第１の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
【図６】第１の実施の形態のクライアントの機能を示すブロック図である。
【図７】第１の実施の形態のサーバ情報テーブルのデータ構造を示す図である。
【図８】第１の実施の形態の起動処理の手順を示すフローチャートである。
【図９】第１の実施の形態のファイル操作処理の手順を示すフローチャートである。
【図１０】第２の実施の形態のシステム構成を示す図である。
【図１１】第２の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
【図１２】第２の実施の形態のサーバ情報テーブルのデータ構造を示す図である。
【図１３】第２の実施の形態のファイル操作処理の手順を示すフローチャートである。
【図１４】第３の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
【図１５】第３の実施の形態のクライアントの機能を示すブロック図である。
【図１６】第３の実施の形態のクライアント情報テーブルのデータ構造を示す図である。
【図１７】第３の実施の形態のサーバ変更処理の手順を示すフローチャートである。
【図１８】第４の実施の形態の管理サーバおよび中継サーバの機能を示すブロック図である。
【図１９】第４の実施の形態のクライアントの機能を示すブロック図である。
【図２０】第４の実施の形態の起動処理の手順を示すフローチャートである。
【図２１】第４の実施の形態の登録要求のデータ構造を示す図である。
【図２２】第４の実施の形態のサーバ変更処理の手順を示すフローチャートである。
【図２３】第４の実施の形態の変更通知のデータ構造を示す図である。
【図２４】第５の実施の形態のサーバ変更処理の手順を示すフローチャートである。
【符号の説明】
【０２０４】
１  キャッシュサーバ
１ａ  ファイル記憶手段
１ｂ  サーバ情報記憶手段
１ｃ  制御情報記憶手段
１ｄ  起動情報送信手段
１ｅ  ファイル送信手段
２  ファイルサーバ
２ａ  ファイル記憶手段
２ｂ  ファイル送信手段
３  クライアント
３ａ  起動手段
３ｂ  ファイル取得手段
４  ネットワーク
【図１】
2008158711.tif 000003
【図２】
2008158711.tif 000004
【図３】
2008158711.tif 000005
【図４】
2008158711.tif 000006
【図５】
2008158711.tif 000007
【図６】
2008158711.tif 000008
【図７】
2008158711.tif 000009
【図８】
2008158711.tif 000010
【図９】
2008158711.tif 000011
【図１０】
2008158711.tif 000012
【図１１】
2008158711.tif 000013
【図１２】
2008158711.tif 000014
【図１３】
2008158711.tif 000015
【図１４】
2008158711.tif 000016
【図１５】
2008158711.tif 000017
【図１６】
2008158711.tif 000018
【図１７】
2008158711.tif 000019
【図１８】
2008158711.tif 000020
【図１９】
2008158711.tif 000021
【図２０】
2008158711.tif 000022
【図２１】
2008158711.tif 000023
【図２２】
2008158711.tif 000024
【図２３】
2008158711.tif 000025
【図２４】
2008158711.tif 000026