(57)【要約】【課題】ネットワーク階層構造による地域性を考慮したファイル共有を実現する。【解決手段】複数の情報格納装置と、各情報格納装置に格納される情報資源へのアクセスを制御する制御装置と、各制御装置を接続するネットワークと、を備える計算機システムに備わる制御装置であって、制御装置は、ネットワークに接続されるインタフェースと、インタフェースに接続されるプロセッサと、プロセッサに接続される記憶部と、を備え、記憶部は、情報資源へのアクセスを許可するか否かを示す属性情報を保持し、プロセッサは、ネットワークに接続されたクライアント装置から情報資源の書き込み要求を受け付け、保持された属性情報、及び各制御装置が設置された場所の情報に基づいて、各制御装置が前記要求された書き込みを許可するか否かを判定し、書き込みを許可すると判定された制御装置によって制御される情報格納装置に情報資源を書き込む。【選択図】図１
2009080674.tif 000002
【特許請求の範囲】
【請求項１】
情報資源の複製を分散して格納する複数の情報格納装置と、前記各情報格納装置に格納される情報資源へのアクセスを制御する制御装置と、前記各制御装置を接続するネットワークと、を備える計算機システムに備わる制御装置であって、
前記制御装置は、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、
前記記憶部は、前記情報資源へのアクセスを許可するか否かを示す属性情報を保持し、
前記プロセッサは、
前記ネットワークに接続されたクライアント装置から前記情報資源の書き込み要求を受け付け、
前記保持された属性情報、及び前記各制御装置が設置された場所の情報に基づいて、前記各制御装置が前記要求された書き込みを許可するか否かを判定し、
前記書き込みを許可すると判定された制御装置によって制御される情報格納装置に前記情報資源を書き込むことを特徴とする制御装置。
【請求項２】
前記属性情報は、前記情報資源の書き込みが許可される情報格納装置を制御する制御装置の設置場所の情報、及び、前記情報資源の書き込みが許可されない情報格納装置を制御する制御装置の設置場所の情報を含み、
前記プロセッサは、前記情報格納装置への書き込みが許可された情報資源を複製し、前記書き込みを許可すると判定された制御装置によって制御される情報格納装置に、前記複製された情報資源を格納することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記記憶部は、当該制御装置の設置場所の情報を保持することを特徴とする請求項１に記載の制御装置。
【請求項４】
前記属性情報は、前記情報資源へのアクセスが許可されるクライアント装置が設置された場所の情報、及び、前記情報資源へのアクセスが許可されないクライアント装置が設置された場所の情報を含むことを特徴とする請求項１に記載の制御装置。
【請求項５】
前記記憶部は、前記情報資源のアクセスが許可される情報格納装置を制御する制御装置の設置場所の情報、及び、前記情報資源へのアクセスが許可されるクライアント装置が設置された場所の情報を、前記各情報資源に対応して保持することを特徴とする請求項１に記載の制御装置。
【請求項６】
前記プロセッサは、
前記ネットワークに接続されたクライアント装置から前記情報資源の読み出し要求を受け付け、
前記情報資源へのアクセスを要求するクライアント装置が設置された場所の情報を取得し、
前記保持された属性情報、及び前記取得されたクライアント装置の設置場所の情報に基づいて、前記各制御装置が前記要求された情報資源の読み出しを許可するか否かを判定し、
前記読み出しを許可すると判定された制御装置によって制御される情報格納装置から前記情報資源を読み出すことを特徴とする請求項１に記載の制御装置。
【請求項７】
前記計算機システムは、前記ネットワークを介して前記制御装置に接続された認証装置をさらに備え、
前記認証装置は、前記クライアント装置が設置された場所を認証し、
前記取得されるクライアント装置の設置場所の情報は、前記クライアント装置からのアクセス要求を他の制御装置を介さないで受け付けた制御装置の設置場所の情報、前記クライアント装置によって保持される前記クライアント装置の設置場所の情報、又は、前記認証装置によって認証された前記クライアント装置の設置場所の情報のいずれかであることを特徴とする請求項６に記載の制御装置。
【請求項８】
前記記憶部は、他の前記制御装置へのアクセスに必要な通信料金の情報を保持し、
前記プロセッサは、前記アクセス要求が前記情報資源の読み出し要求である場合、前記読み出しを許可すると判定された制御装置のうち、前記保持された通信料金の情報に基づいて、最も安い通信料金でアクセス可能な制御装置を選択し、前記選択された制御装置によって制御される情報格納装置から前記情報資源を読み出すことを特徴とする請求項１に記載の制御装置。
【請求項９】
前記計算機システムは、前記ネットワークを介して前記制御装置に接続された管理装置をさらに備え、
前記プロセッサは、前記管理装置に前記通信料金の情報を問い合わせ、前記問い合わせによって取得した通信料金の情報を前記記憶部に格納することを特徴とする請求項８に記載の制御装置。
【請求項１０】
情報資源の複製を分散して格納する複数の情報格納装置と、前記各情報格納装置に格納される情報資源へのアクセスを制御する制御装置と、前記各制御装置を接続するネットワークと、を備える計算機システムにおける、前記情報資源へのアクセス制御方法であって、
前記制御装置は、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、
前記記憶部は、前記情報資源へのアクセスを許可するか否かを示す属性情報を保持し、
前記アクセス制御方法は、
前記制御装置が、前記ネットワークに接続されたクライアント装置から前記情報資源の書き込み要求を受け付けるステップと、
前記制御装置が、前記保持された属性情報、及び前記各制御装置が設置された場所の情報に基づいて、前記各制御装置が前記要求された書き込みを許可するか否かを判定するステップと、
前記制御装置が、前記書き込みを許可すると判定された制御装置によって制御される情報格納装置に前記情報資源を書き込むステップと、を含むことを特徴とするアクセス制御方法。
【請求項１１】
前記属性情報は、前記情報資源の書き込みが許可される情報格納装置を制御する制御装置の設置場所の情報、及び、前記情報資源の書き込みが許可されない情報格納装置を制御する制御装置の設置場所の情報を含み、
前記情報資源を書き込むステップでは、前記制御装置は、前記情報格納装置への書き込みが許可された情報資源を複製し、前記書き込みを許可すると判定された制御装置によって制御される情報格納装置に、前記複製された情報資源を格納することを特徴とする請求項１０に記載のアクセス制御方法。
【請求項１２】
前記記憶部は、当該制御装置の設置場所の情報を保持することを特徴とする請求項１０に記載のアクセス制御方法。
【請求項１３】
前記属性情報は、前記情報資源へのアクセスが許可されるクライアント装置が設置された場所の情報、及び、前記情報資源へのアクセスが許可されないクライアント装置が設置された場所の情報を含むことを特徴とする請求項１０に記載のアクセス制御方法。
【請求項１４】
前記記憶部は、前記情報資源のアクセスが許可される情報格納装置を制御する制御装置の設置場所の情報、及び、前記情報資源へのアクセスが許可されるクライアント装置が設置された場所の情報を、前記各情報資源に対応して保持することを特徴とする請求項１０に記載のアクセス制御方法。
【請求項１５】
前記アクセス制御方法は、さらに、
前記制御装置が、前記ネットワークに接続されたクライアント装置から前記情報資源の読み出し要求を受け付けるステップと、
前記制御装置が、前記情報資源へのアクセスを要求するクライアント装置が設置された場所の情報を取得するステップと、
前記制御装置が、前記保持された属性情報、及び前記取得されたクライアント装置の設置場所の情報に基づいて、前記各制御装置が前記要求された情報資源の読み出しを許可するか否かを判定するステップと、
前記制御装置が、前記読み出しを許可すると判定された制御装置によって制御される情報格納装置から前記情報資源を読み出すステップと、を含むことを特徴とする請求項１０に記載のアクセス制御方法。
【請求項１６】
前記計算機システムは、前記ネットワークを介して前記制御装置に接続された認証装置をさらに備え、
前記アクセス制御方法は、さらに、
前記認証装置が、前記クライアント装置が設置された場所を認証するステップを含み、
前記クライアント装置の設置場所の情報を取得するステップでは、前記制御装置は、前記クライアント装置からのアクセス要求を他の制御装置を介さないで受け付けた制御装置の設置場所の情報、前記クライアント装置によって保持される前記クライアント装置の設置場所の情報、又は、前記認証装置によって認証された前記クライアント装置の設置場所の情報のいずれかを取得することを特徴とする請求項１５に記載のアクセス制御方法。
【請求項１７】
前記記憶部は、他の前記制御装置へのアクセスに必要な通信料金の情報を保持し、
前記情報資源を読み出すステップでは、前記制御装置は、前記読み出しを許可すると判定された制御装置のうち、前記保持された通信料金の情報に基づいて、最も安い通信料金でアクセス可能な制御装置を選択し、前記選択された制御装置によって制御される情報格納装置から前記情報資源を読み出すことを特徴とする請求項１０に記載のアクセス制御方法。
【請求項１８】
前記計算機システムは、前記ネットワークを介して前記制御装置に接続された管理装置をさらに備え、
前記アクセス制御方法は、さらに、
前記制御装置が、前記管理装置に前記通信料金の情報を問い合わせるステップと、
前記制御装置が、前記問い合わせによって取得した通信料金の情報を前記記憶部に格納するステップと、を含むことを特徴とする請求項１７に記載のアクセス制御方法。
【請求項１９】
ファイルの複製を分散して格納する複数のストレージサブシステムと、前記各ストレージサブシステムに格納されるファイルへのアクセスを制御するストレージノードと、を備え、前記格納されたファイルをクライアント装置に提供する計算機システムであって、
前記ストレージノードは、前記ネットワークに接続される第１インタフェースと、前記ストレージサブシステムに接続される第２インタフェースと、前記第１及び第２インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ストレージノードは、
前記ストレージノードに関する情報を保持するノード管理情報と、
前記ファイルへのアクセスを許可するか否かを示す属性情報と、を保持し、
前記ストレージノードは、
前記ネットワークを介して接続された他のストレージノードに前記属性情報を要求する問合せ要求制御部と、
前記ネットワークを介して接続された他のストレージノードから、前記属性情報の要求を受け付け、前記要求された属性情報を前記ノード管理情報から取得し、前記取得された属性情報を前記属性情報を要求したストレージノードに送信する問合せ応答制御部と、
前記ストレージノードに関する情報を前記ノード管理情報に格納する基本制御部と、
前記クライアント装置から前記ネットワークを介して前記ファイルの書き込み要求を受け付け、前記ノード管理情報に保持された属性情報、及び前記各ストレージノードが設置された場所の情報に基づいて、前記受け付けた書き込み要求を許可するか否かを判定し、前記書き込み要求が許可されたファイルを複製し、前記書き込み要求を許可すると判定されたストレージノードに制御されるストレージサブシステムに前記複製されたファイルを格納するファイル登録部と、
前記クライアント装置から前記ネットワークを介して前記ファイルの複製要求を受け付け、前記複製されるファイルの属性情報、及び前記ストレージノードが設置された場所の情報に基づいて、前記受け付けた複製要求を許可するか否かを判定し、前記複製要求が許可されたファイルを複製し、前記複製要求を許可すると判定されたストレージノードに制御されるストレージサブシステムに前記複製されたファイルを格納するファイル複製部と、
前記クライアント装置から前記ネットワークを介して前記ファイルの読み出し要求を受け付け、前記ファイルの読み出しを要求したクライアント装置が設置された場所の情報を取得し、前記ノード管理情報に保持された属性情報、及び前記取得されたクライアント装置の設置場所の情報に基づいて、前記ファイルの読み出し要求を許可するか否かを判定し、前記読み出しを許可すると判定されたストレージノードに制御されるストレージサブシステムから前記ファイルを読み出すファイルアクセス部とが、前記プロセッサが所定のプログラムを実行することによって備わることを特徴とするストレージノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御に関し、特に、ネットワークで接続されたコンピュータシステム群にて情報資源の保管許可場所及びアクセス許可場所に基づいた情報資源管理及びアクセス制御に関する。
【背景技術】
【０００２】
近年、コンピュータシステムの高性能化及びに低価格化によって、様々な業種や用途においてコンピュータシステムの利用が広がっている。これに伴い、従来は紙媒体等で扱っていた情報資源が電子化され、コンピュータシステムで情報資源が電子的に保存されるようになってきている。
【０００３】
さらに、複数のコンピュータシステムをネットワークで接続した形態も急速に進んでいる。これによって情報資源の分散管理及び分散処理が実現できるため、一つのコンピュータシステムで保管するだけでは実現することが難しかった可用性、信頼性及び性能を実現することが可能になっている。
【０００４】
複数のコンピュータシステムをネットワークで接続した形態において、情報資源が効率よく管理される技術及びアクセスが制御される技術を提供することは、コンピュータシステムの利用者の利便性を高める上でも、重要性を増してきている。
【０００５】
また、近年では、複数のコンピュータシステムを接続する物理的なネットワーク構造を隠蔽し、論理的なネットワーク構造を構築して提供するオーバーレイネットワーク技術が利用されてきている。オーバーレイネットワーク技術は、利用するコンピュータシステムの設置場所を気にすることなく、透過的にコンピュータシステムにアクセスすることが可能になる。
【０００６】
オーバーレイネットワーク技術を利用することによって、例えば、オーバーレイネットワークを構築するコンピュータシステム上に、共有ファイルを冗長に分散格納するピアツーピア形式のファイル共有サービスが実現可能になる。
【０００７】
ファイル共有サービスにおいて、利用者は、取得したい共有ファイルの識別情報に基づいてファイル取得要求を行うことによって、共有ファイルがどのコンピュータシステムに存在するのかを知ることが可能である。共有ファイルの存在場所を把握した後、各利用者は、該当する任意のコンピュータシステムにアクセスすることによって、共有ファイルを取得することができる。
【０００８】
任意のコンピュータシステムにアクセスする際、利用者は、アクセスするコンピュータシステムが実際にどこに存在しているのかを知る必要はなく、オーバーレイネットワークにおいて、アクセスするコンピュータシステムの識別情報のみ知っていればよい。利用者は、識別情報によって、共有ファイルが存在するコンピュータシステムにオーバーレイネットワークを介してアクセスできる。
【０００９】
従来、オーバーレイネットワークを構築するためには、参加するコンピュータシステムの識別情報と、実際のネットワークでアクセスするために必要となるネットワーク上の識別情報とが必要となる。例えば、前者はコンピュータシステムのホスト名が相当し、後者は、コンピュータシステムに割り当てられるＩＰアドレスが相当する。
【００１０】
オーバーレイネットワークに参加するコンピュータシステムは、これらの識別情報を管理し、必要に応じて、オーバーレイネットワークに参加する他のコンピュータシステムとの間で識別情報を交換し内容を更新する必要がある。
【００１１】
このような更新を適宜行うことによって、コンピュータシステムが必要に応じてオーバーレイネットワークに動的な参加及び脱退が可能になり、オーバーレイネットワークにおいて参加するコンピュータシステムの管理を簡単に行うことができる。
【００１２】
オーバーレイネットワークに参加するコンピュータシステムを管理する際、各コンピュータシステムにおいて、参加する全てのコンピュータシステムの情報を管理する方式と、一部のコンピュータシステムの情報のみを管理する方式との二つの方式がある。前者の方式は、各コンピュータシステムがオーバーレイネットワークに参加している全てのコンピュータシステム把握することが可能になるため、実際に共有ファイルにアクセスする際に、共有ファイルが格納されているノードを探索し、共有ファイルにアクセスする際の効率がよいという特長がある。一方、オーバーレイネットワークに対するコンピュータシステムの参加及び脱退が起こる度に、参加する全てのコンピュータシステムに、その更新情報を反映させる必要があるため、参加するコンピュータシステムを管理する効率が悪くなるという課題がある。
【００１３】
その点、後者の方式は、各コンピュータシステムが、オーバーレイネットワークに参加しているコンピュータシステムのうち、一部のコンピュータシステムの情報を管理する。これによって、オーバーレイネットワークに対するコンピュータシステムの参加及び脱退が起こる度に各コンピュータシステムで管理される情報の更新を極小化することができるようになり、その影響を小さくすることができる。後者の方式の場合、実際に共有ファイルにアクセスする際に、オーバーレイネットワークに参加している他コンピュータシステムに問い合わせることによって、参加及び脱退したコンピュータシステムの情報を取得可能である。この際、コンピュータシステムの情報を問い合わせることによってオーバーヘッドが生じるが、これは、オーバーレイネットワークに参加するコンピュータシステムの管理情報を更新する時のオーバーヘッドと比べると十分小さい。特に、大規模のオーバーレイネットワークを運用している場合は、これが顕著に現れる。
【００１４】
後者の方式に基づいたものとして、特許文献１には、参加するコンピュータシステムの地域性を考慮したオーバーレイネットワークを構築し、実際のネットワークの負荷を軽減する技術が記載されている。特許文献１に記載されている技術は、オーバーレイネットワークに参加するコンピュータシステムがオーバーネットワークへ参加の要求情報を送信する際に、送信する要求情報の到達可能な範囲を表す情報を設定する。これによって、参加の要求情報の伝播先を局所的に制限することが可能になり、コンピュータシステムがオーバーレイネットワークに参加する際に各コンピュータシステムの管理情報の更新を局所的に抑えることができる。
【特許文献１】特開２００７−２８４００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかし、特許文献１に記載された技術では、オーバーレイネットワークを利用したファイル共有サービスを提供する場合、共有ファイルの保管先となるコンピュータシステムの場所を指定又は制御することができない。例えば、著作権等の問題で、配布及び共有可能な国及び地域が制限されている共有ファイルを、特許文献１に記載されたファイル共有サービスで共有する場合、配布及び共有が許されない国及び地域に設置されているコンピュータシステムに、共有ファイルが格納されることが起こりうる。コンピュータシステムで利用できないファイルが管理されることによって、コンピュータシステムのストレージ利用効率が低下する。さらに、共有ファイルにアクセスするアクセス要求者が存在する場所（国及び地域等）をアクセスを制御する時に識別していないため、アクセスが許可されない場所にいるユーザにアクセスを禁止する制御が困難である問題も生じる。例えば、アクセス要求者がどこにいるのか判別されないため、日本でアクセス許可されているユーザに、米国からのアクセスが禁止されているコンテンツへのアクセスを米国滞在時に禁止できない。
【００１６】
また、特許文献１記載の技術では、オーバーレイネットワークにおけるコンピュータシステム間及びネットワーク接続サービスを提供するインターネットサービスプロバイダ（ＩＳＰ：Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）間の通信料金を考慮に入れていない。このため、ネットワーク負荷を軽減できても、通信料金が余分に必要になる可能性がある。この通信料金の増加は、ＩＳＰの負担を増加し、結果的にＩＳＰによるネットワークサービスの品質を低下する可能性がある。
【００１７】
前者の課題は、オーバーレイネットワークにおける地域性を考慮せずに、共有ファイル格納場所の制御と共有ファイルへのアクセス制御とを行っていることである。今後、ネットワーク経由で共有及び配布される情報が増加することが予測され、その中に著作権に関する権利が発生する情報も含まれることが予測される。このため、オーバーレイネットワークを利用したファイル共有サービスを提供する場合は、この課題を解決するための技術が必要となる。
【００１８】
また、後者の課題は、ネットワークの実際の通信料金を考慮せずに、ネットワークを利用していることである。今後、インターネットに代表されるネットワークの利用がさらに広がり、情報流通量も増加すると予測される。その際に、ネットワーク接続サービスを提供するＩＳＰが適切なネットワークサービス品質を持続的に提供できるようにするためには、ＩＳＰの負担が増加とするようなネットワーク利用を極力抑止できるような技術が必要となる。
【課題を解決するための手段】
【００１９】
本発明の代表的な一例を示せば以下の通りである。すなわち、情報資源の複製を分散して格納する複数の情報格納装置と、前記各情報格納装置に格納される情報資源へのアクセスを制御する制御装置と、前記各制御装置を接続するネットワークと、を備える計算機システムに備わる制御装置であって、前記制御装置は、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続される記憶部と、を備え、前記記憶部は、前記情報資源へのアクセスを許可するか否かを示す属性情報を保持し、前記プロセッサは、前記ネットワークに接続されたクライアント装置から前記情報資源の書き込み要求を受け付け、前記保持された属性情報、及び前記各制御装置が設置された場所の情報に基づいて、前記各制御装置が前記要求された書き込みを許可するか否かを判定し、前記書き込みを許可すると判定された制御装置によって制御される情報格納装置に前記情報資源を書き込む。
【発明の効果】
【００２０】
本発明の一実施形態によれば、共有する情報資源の格納先制御装置の設置場所及びアクセスが許可される場所を情報資源毎に指定することによって、アクセスが許可されていない場所からのアクセスを禁止することができる。さらに、共有する情報資源の保管が許可されていない場所に設置されている制御装置に情報資源を格納することを抑止することによって、不要な通信を削除し、無駄なストレージの利用を抑止することができる。
【００２１】
また、情報資源にアクセスする時に、通信料金が最小となる制御装置の情報資源に優先的にアクセスするように制御することによって、ファイル共有サービスに要する通信料金を削除することができる。通信料金の削減によって、ネットワーク接続サービスを提供するＩＳＰの負担を軽減することが可能になり、ＩＳＰは、持続可能で適度な品質のネットワークサービスを提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００２３】
＜第１の実施の形態＞
まず、本発明の第１の実施の形態のシステムについて説明する。
【００２４】
図１は、本発明の第１の実施の形態のシステムの構成図である。
【００２５】
システムは、ＩＳＰ１、ＩＳＰ２、ＩＳＰ３、ＩＳＰ４及びＩＳＰ５によって構成される。インターネット１０のネットワークを介して、ＩＳＰ１、ＩＳＰ２、ＩＳＰ３、ＩＳＰ４及びＩＳＰ５が互いに接続されている。また、インターネット１０のネットワークには認証サーバ３０００が接続されている。
【００２６】
ＩＳＰ１には、ストレージノードＡ１１００、クライアントノード２０００及びクライアントノード２１００が接続されている。また、ＩＳＰ２には、ストレージノードＢ１２００、クライアントノード２２００及びクライアントノード２３００が接続されている。また、ＩＳＰ３には、ストレージノードＣ１３００、クライアントノード２４００及びクライアントノード２５００が接続されている。また、ＩＳＰ４には、ストレージノードＤ１４００、クライアントノード２６００及びクライアントノード２７００が接続されている。また、ＩＳＰ５には、ストレージノードＥ１５００、クライアントノード２８００及びクライアントノード２９００が接続されている。
【００２７】
ストレージノードＡ１１００は、インターネット１０のネットワークを介して他のストレージノード（例えば、ストレージノードＢ１２００）と連携することによってオーバーレイネットワークを構築し、ファイル共有サービスを提供する。ストレージノードＢ１２００、ストレージノードＣ１３００、ストレージノードＤ１４００及びストレージノードＥ１５００は、ストレージノードＡと同様の構成である。
【００２８】
クライアントノード２０００は、ファイル共有サービスを利用する利用者の機器である。クライアントノード２１００、２２００、２３００、２４００、２５００、２６００、２７００、２８００及び２９００は、クライアントノード２０００と同様の構成である。
【００２９】
ＩＳＰ２、ＩＳＰ３、ＩＳＰ４及びＩＳＰ５は、ＩＳＰ１と同様の構成である。また、ＩＳＰ１、ＩＳＰ２及びＩＳＰ３は、Ａｒｅａ１１に含まれる。また、ＩＳＰ４及びＩＳＰ５は、Ａｒｅａ１２に含まれる。Ａｒｅａ１１及びＡｒｅａ１２は、それぞれ同一の場所（例えば、国又は地域）を示す。
【００３０】
認証サーバ３０００は、アクセスを要求するクライアント（例えば、クライアントノード２０００）の存在場所を認証する。
【００３１】
なお、図１にはＩＳＰが五つ示されているが、いくつあってもよい。また、各ＩＳＰが接続されるネットワーク構造は図１で示される形態に限らず、任意のネットワーク構造（例えば、リング型及びスター型等）によって構成されてもよい。
【００３２】
また、図１に示される例では、各ＩＳＰにストレージノードが一つ接続されているが、いくつ接続されてもよい。また、各ＩＳＰにクライアントノードが二つ接続されているが、いくつ接続されてもよい。
【００３３】
図２は、本発明の第１の実施の形態のストレージノードＡ１１００のハードウェア構成図である。
【００３４】
ストレージノードＡ１１００は、プロセッサ１１１０、メモリ１１２０、外部記憶装置Ｉ／Ｆ１１４０及びネットワークＩ／Ｆ１１５０を備える。各構成は、バス１１６０によって接続される。ストレージノードＡ１１００は、外部記憶装置Ｉ／Ｆ１１４０を介して外部記憶装置１１７０と接続する。
【００３５】
プロセッサ１１１０は、メモリ１１２０に格納されるプログラムを実行し、ストレージノードＡ１１００全体を制御する。
【００３６】
メモリ１１２０は、プロセッサ１１１０によって実行されるプログラム及び／又はデータを一時的に格納する。メモリ１１２０は、例えば、ＲＡＭのような半導体メモリで構成するとよい。
【００３７】
メモリ１１２０は、外部記憶装置Ｉ／Ｆ制御プログラム１１２１、ネットワークＩ／Ｆ制御プログラム１１２２、ローカルファイルシステム制御プログラム１１２３、分散ファイルシステム制御プログラム１１２５、ノード管理表４０００、ノード設置ロケーション情報管理表４１００、共有ファイルメタデータ管理表４２００及びキャッシュメモリ１１３０を格納する。
【００３８】
外部記憶装置Ｉ／Ｆ制御プログラム１１２１は、外部記憶装置Ｉ／Ｆ１１４０を制御する。ネットワークＩ／Ｆ制御プログラム１１２２は、ネットワークＩ／Ｆ１１５０を制御する。
【００３９】
ローカルファイルシステム制御プログラム１１２３は、キャッシュメモリ制御サブプログラム１１２４を含む。ローカルファイルシステム制御プログラム１１２３は、ストレージノードＡ１１００で提供されるファイルシステムを制御する。キャッシュメモリ制御サブプログラム１１２４は、キャッシュメモリ１１３０を制御する。
【００４０】
分散ファイルシステム制御プログラム１１２５は、問合せ要求制御サブプログラム１１２６、問合せ応答制御サブプログラム１１２７、基本制御サブプログラム１１３１、ファイル登録サブプログラム１１３２、ファイル複製・移動サブプログラム１１３３及びファイルアクセスサブプログラム１１３４を含む。
【００４１】
分散ファイルシステム制御プログラム１１２５は、オーバーレイネットワークを利用したファイル共有サービスを制御する。
【００４２】
問合せ要求制御サブプログラム１１２６は、オーバーレイネットワークを構成する他のストレージノードに送信する問い合わせ要求を制御する。問い合わせ要求とは、他のストレージノードから情報（例えば、オーバーレイネットワークを構成する他のストレージノードの識別情報）を取得したい場合に送信される要求である。
【００４３】
問合せ応答制御サブプログラム１１２７は、オーバーレイネットワークを構成する他のストレージノードからの問い合わせ要求を受信し、要求された情報を取得する処理を実行し、処理された結果の返答を制御する。
【００４４】
基本制御サブプログラム１１３１は、ストレージノードＡ１１００の情報を管理する。例えば、基本制御サブプログラム１１３１は、ストレージノードＡ１１００に関する情報（識別情報）をノード管理表４０００に登録する。
【００４５】
ファイル登録サブプログラム１１３２は、共有ファイルをオーバーレイネットワークに登録する。
【００４６】
ファイル複製・移動サブプログラム１１３３は、オーバーレイネットワークに登録されている共有ファイルを複製又は移動する。
【００４７】
ファイルアクセスサブプログラム１３４は、オーバーレイネットワークに登録されている共有ファイルにクライアント（例えば、クライアントノード２１００）から要求があったアクセスを制御する。
【００４８】
ノード管理表４０００は、オーバーレイネットワークに存在するストレージノードの識別情報を保持する。ノード管理表４０００は、図４を用いて後述する。
【００４９】
ノード設置ロケーション情報管理表４１００は、ストレージノードが存在する場所に関する情報を保持する。ノード設置ロケーション情報管理表４１００は、図５を用いて後述する。
【００５０】
共有ファイルメタデータ管理表４２００は、ストレージノードで保管している共有ファイルに登録されているメタデータを保持する。共有ファイルメタデータ管理表４２００は、図６を用いて後述する。
【００５１】
キャッシュメモリ１１３０は、ローカルファイルシステム制御プログラム２０２３が、ファイルシステムによって管理されているファイルにアクセスする場合に、アクセスのレスポンスタイムを短縮するために利用される。
【００５２】
外部記憶装置Ｉ／Ｆ１１４０は、外部記憶装置１１７０にアクセスするためのインタフェースである。ネットワークＩ／Ｆ１１５０は、ネットワークを介して接続された他の装置にアクセスするインタフェースである。
【００５３】
外部記憶装置１１７０は、共有ファイルを保管する。外部記憶装置１１７０は、例えば、ハードディスクドライブ（ＨＤＤ）で構成するとよい。また、フラッシュメモリのような半導体記憶装置で構成してもよい。
【００５４】
図３は、本発明の第１の形態のクライアントノード２０００のハードウェア構成図である。
【００５５】
クライアントノード２０００は、プロセッサ２０１０、メモリ２０２０、外部記憶装置Ｉ／Ｆ２０４０、ネットワークＩ／Ｆ２０５０を備える。各構成はバス２０６０によって接続される。クライアントノード２０００は、外部記憶装置Ｉ／Ｆ２０４０を介して外部記憶装置２０７０と接続する。
【００５６】
プロセッサ２０１０は、メモリ２０２０に格納されるプログラムを実行し、クライアントノード２０００全体を制御する。
【００５７】
メモリ２０２０は、プロセッサ２０１０によって実行されるプログラム及び／又はデータを一時的に格納する。メモリ２０２０は、例えば、ＲＡＭのような半導体メモリで構成するとよい。
【００５８】
メモリ２０２０は、外部記憶装置Ｉ／Ｆ制御プログラム２０２１、ネットワークＩ／Ｆ制御プログラム２０２２、ローカルファイルシステム制御プログラム２０２３、分散ファイルシステムクライアント制御プログラム２０２５、ノード管理表４０００及びキャッシュメモリ２０３０を格納する。
【００５９】
外部記憶装置Ｉ／Ｆ制御プログラム２０２１は、外部記憶装置Ｉ／Ｆ２０４０を制御する。ネットワークＩ／Ｆ制御プログラム２０２２は、ネットワークＩ／Ｆ２０５０を制御する。
【００６０】
ローカルファイルシステム制御プログラム２０２３は、キャッシュメモリ制御サブプログラム２０２４を含む。ローカルファイルシステム制御プログラム２０２３は、クライアントノード２０００で提供されるファイルシステムを制御する。キャッシュメモリ制御サブプログラム２０２４は、キャッシュメモリ２０３０を制御する。
【００６１】
分散ファイルシステムクライアント制御プログラム２０２５は、問合せ要求制御サブプログラム２０２６及び基本制御サブプログラム２０３１を含む。
【００６２】
分散ファイルシステムクライアント制御プログラム２０２５は、オーバーレイネットワークを利用したファイル共有サービスを制御する。
【００６３】
問合せ要求制御サブプログラム２０２６は、オーバーレイネットワークを利用したファイル共有サービスを提供するストレージノードに問合せ要求、ファイルの登録要求及び共有ファイルへのアクセス要求等を送信する。
【００６４】
基本制御サブプログラム２０３１は、クライアントノード２０００の情報を管理する。例えば、基本制御サブプログラム２０３１は、クライアントノード２０００がアクセスするストレージノードに関する情報（識別情報）をノード管理表４０００に登録する。
【００６５】
ノード管理表４０００は、クライアントノード２０００から最初に直接アクセスするストレージノードに関する情報のみを保持する。なお、クライアントノード２０００のノード管理表４０００とストレージノードＡ１１００のノード管理表４０００とは、同期させて同じ情報を保持してもよい。同じ情報を保持する場合、クライアントノード２０００のノード管理表４０００には、ストレージノードＡ１１００が保持するノード管理表４０００と同じ情報が保持される。
【００６６】
キャッシュメモリ２０３０は、ローカルファイルシステム制御プログラム２０２３が、ファイルシステムによって管理されているファイルにアクセスする場合に、アクセスのレスポンスタイムを短縮するために利用される。
【００６７】
外部記憶装置Ｉ／Ｆ２０４０は、外部記憶装置２０７０にアクセスするためのインタフェースである。ネットワークＩ／Ｆ２０５０は、ネットワークを介して接続された他の装置にアクセスするためのインタフェースである。
【００６８】
外部記憶装置２０７０は、プログラム又はユーザデータ等を記憶する。外部記憶装置２０７０は、例えば、ハードディスクドライブ（ＨＤＤ）で構成するとよい。また、フラッシュメモリのような半導体記憶装置で構成してもよい。
【００６９】
図４は、本発明の第１の形態のノード管理表４０００の構成を示す。
【００７０】
ノード管理表４０００は、オーバーレイネットワークにおいて存在が認識されているストレージノードの識別情報を保持する。
【００７１】
ノード管理表４０００は、ノード名４０１０及び識別情報４０２０を含む。
【００７２】
ノード名４０１０は、ストレージノードをオーバーレイネットワーク上で識別するための情報である。なお、図４に示されるノード名４０１０は、文字列の情報が格納されているが、例えば、ノードＩＤのような数値の情報が格納されてもよい。
【００７３】
識別情報４０２０は、通常のネットワークで識別されるストレージノードの識別情報である。識別情報４０２０は、ネットワークを介してストレージノードにアクセスする場合に、アクセス先を指定するために用いられる。なお、図４に示される識別情報４０２０は、ＩＰアドレスが格納されているが、例えば、ストレージノードを特定するＩＤ情報が格納されてもよい。また、文字列の情報が格納されてもよい。
【００７４】
図４に示す例では、ストレージノードの情報が五つ格納されている。また、ノード管理表４０００の第１行のノード名４０１０及び識別情報４０２０には、それぞれ「ストレージノードＡ」及び「１０．２０．３０．４０」が格納されている。これは、オーバーレイネットワークに参加している「ストレージノードＡ」という名前のストレージノードが存在し、「ストレージノードＡ」には、あて先「１０．２０．３０．４０」という情報でアクセスできることを示している。
【００７５】
図５は、本発明の第１の実施の形態のノード設置ロケーション情報管理表４１００の構成を示す。
【００７６】
ノード設置ロケーション情報管理表４１００は、ストレージノードが存在する場所に関する情報を管理する。
【００７７】
ノード設置ロケーション情報管理表４１００は、ノード設置ロケーション情報４１１０を含む。ノード設置ロケーション情報４１１０は、ストレージノードが設置されている場所を識別する情報である。
【００７８】
なお、図５に示されるノード設置ロケーション情報４１００は、実際の住所に相当する情報の一部又は全てに関する情報が格納されているが、例えば、階層的に識別情報（ＩＰアドレス）が格納されてもよい。また、場所を特定するＩＤ情報が格納されてもよい。
【００７９】
図５に示す例では、ストレージノードの設置場所に関する情報が二つ格納されている。また、ノード設置ロケーション情報管理表４１００のノード設置ロケーション情報４１１０には、「日本」及び「東京」が格納されている。これは、ストレージノードＡ１１００は、「日本」の「東京」という場所に設置されていることを示している。
【００８０】
図６は、本発明の第１の実施の形態の共有ファイルメタデータ管理表４２００の構成を示す。
【００８１】
共有ファイルメタデータ管理表４２００は、ストレージノードＡ１１００に接続される外部記憶装置１１７０で保管されている共有ファイルに登録されるメタデータを共有ファイル毎に管理する。
【００８２】
共有ファイルメタデータ管理表４２００は、既存のメタデータ（例えば、保管年月日及びキーワード等）に加えて、保管許可ロケーション情報４２１０、保管拒否ロケーション情報４２２０、アクセス許可ロケーション情報４２３０及びアクセス拒否ロケーション情報を含む。
【００８３】
保管許可ロケーション情報４２１０は、共有ファイルを格納することができる場所を指定する情報である。具体的には、クライアント（例えば、クライアントノード２０００）は、保管許可ロケーション情報４２１０によって指定された場所に設置されたストレージノードに接続される外部記憶装置のみに、共有ファイルを格納することができる。
【００８４】
保管拒否ロケーション情報４２２０は、保管許可ロケーション情報４２１０の逆で、共有ファイルを格納することができない場所を指定する情報である。具体的には、クライアント（例えば、クライアントノード２０００）は、保管拒否ロケーション情報４２２０によって指定された場所に設置されたストレージノードに接続される外部記憶装置に、共有ファイルを格納することができない。
【００８５】
アクセス許可ロケーション情報４２３０は、共有ファイルにアクセスの要求があった場合に、アクセスすることができる場所を指定する情報である。具体的には、アクセス許可ロケーション情報４２３０によって指定された場所に存在すると判別されたアクセス要求者（例えば、クライアントノード２０００）のみが、共有ファイルにアクセスすることができる。ここで、共有ファイルにアクセスするとは、共有ファイルを読み出す、共有ファイルに書き込む、共有ファイルを複製する、及び、共有ファイルを移動することである。
【００８６】
アクセス拒否ロケーション情報４２４０は、アクセス許可ロケーション情報４２３０の逆で、共有ファイルにアクセスの要求があった場合に、アクセスすることができない場所を指定する情報である。具体的には、アクセス拒否ロケーション情報４２４０によって指定された場所に存在すると判別されたアクセス要求者は、共有ファイルにアクセスすることができない。
【００８７】
なお、図６に示す例では、それぞれ情報が一つずつ格納されているが、必要に応じて複数の情報が格納されてもよい。
【００８８】
保管許可ロケーション情報４２１０及び保管拒否ロケーション情報４２２０に同じ場所の情報が格納されている場合には、保管拒否ロケーション情報４２２０に格納されている内容が優先して用いられる。また、アクセス許可ロケーション情報４２３０及びアクセス拒否ロケーション情報４２４０に同じ場所の情報が格納されている場合には、アクセス拒否ロケーション情報４２４０に格納されている内容が優先して用いられる。
【００８９】
また、図６に示されているように、値が格納されない場合には、「Ｎｕｌｌ」が格納される。「Ｎｕｌｌ」が格納されている場合は、指定される場所が存在しないことを示す。
【００９０】
図６に示す例では、共有ファイルメタデータ管理表４２００に保管許可ロケーション情報４２１０、保管拒否ロケーション情報４２２０、アクセス許可ロケーション情報４２３０及びアクセス拒否ロケーション情報４２４０が格納されている。
【００９１】
また、共有ファイルメタデータ管理表４２００の第１行の保管許可ロケーション情報４２１０、保管拒否ロケーション情報４２２０、アクセス許可ロケーション情報４２３０及びアクセス拒否ロケーション情報４２４０には、「日本」、「Ｎｕｌｌ」、「Ｎｕｌｌ」及び「アメリカ」が格納されている。これは、共有ファイルが、「日本」という場所に設置されているストレージノードに保管することが可能であり、かつ、「アメリカ」という場所に存在するアクセス要求者からのアクセスが拒否されることを示している。
【００９２】
図７は、本発明の第１の実施の形態のシステム構成において、共有ファイルがどのストレージノードに格納されているかを模式的に示した図である。
【００９３】
図７に示される例では、共有ファイルとして、「Ａ」、「Ｂ」、「Ｃ」及び「Ｄ」が各外部記憶装置に保管されている。この場合、共有ファイル「Ａ」は、ストレージノードＡ１１００に接続される外部記憶装置１１７０、及び、ストレージノードＣ１３００に接続される外部記憶装置１３７０の２ヶ所に分散して格納されている。また、共有ファイル「Ｂ」は、ストレージノードＡ１１００に接続される外部記憶装置１１７０、及び、ストレージノードＥ１５００に接続される外部記憶装置１５７０に分散して格納されている。また、共有ファイル「Ｃ」は、ストレージノードＢ１２００に接続される外部記憶装置１２７０、ストレージノードＣ１３００に接続される外部記憶装置１３７０、及び、ストレージノードＤ１４００に接続される外部記憶装置１４７０に分散して格納されている。また、共有ファイル「Ｄ」は、ストレージノードＤ１４００に接続される外部記憶装置１４７０、及び、ストレージノードＥ１５００に接続される外部記憶装置１５７０に分散して格納されている。
【００９４】
ここで、共有ファイル「Ａ」について、共有ファイルメタデータ管理表４２００の保管許可ロケーション情報４２１０に「Ａｒｅａ１１」という情報が格納されているとする。このとき、共有ファイル「Ａ」をファイル共有サービスに登録する場合には、「Ａｒｅａ１１」に含まれるストレージノードＡ１１００、ストレージノードＢ１２００及びストレージノードＣ１３００の中から共有ファイルの格納先となるストレージノードが選択される。
【００９５】
図８は、本発明の第１の実施の形態のノード登録処理のフローチャートであり、基本制御サブプログラム１１３１及び問合せ要求制御サブプログラム１１２６によって実行される。
【００９６】
ノード登録処理は、オーバーレイネットワークに、新規にストレージノードを参加する場合に、参加するストレージノード（ここでは、ストレージノードＡ１１００として説明する）で実行される。
【００９７】
まず、ストレージノードＡ１１００の基本制御サブプログラム１１３１は、ノード管理表４０００にストレージノードＡ１１００の情報を格納する領域を確保し、確保された領域を初期化する（Ｓ１０１）。
【００９８】
次に、ストレージノードＡ１１００の基本制御サブプログラム１１３１は、これから参加するオーバーレイネットワークについて、ストレージノードＡ１１００のノード情報（例えば、ノード名及び識別情報）を登録する他のストレージノードが存在するか否かを判定する（Ｓ１０２）。つまり、ステップ１０２では、ストレージノードＡ１１００が、オーバーレイネットワークに参加する最初のストレージノードであるか否かが判定される。
【００９９】
ノード情報を登録する他のストレージノードが存在しない場合、ストレージノードＡ１１００は、オーバーレイネットワークに参加する最初のストレージノードであるため、ストレージノードＡ１１００のノード情報を他のストレージノードに登録する必要がない。この場合、処理はステップ１０８に進む。
【０１００】
一方、ノード情報を登録する他のストレージノードが存在する場合、すでに他のストレージノードがオーバーレイネットワークに参加しているため、ストレージノードＡ１１００は、自身のノード情報をオーバーレイネットワークに参加している他のストレージノードに登録する必要がある。この場合、処理はステップ１０３に進む。なお、他のストレージノードがオーバーレイネットワークに参加しているか否かを判定するためには、オーバーレイネットワークに参加する際に、他のストレージノードに関する識別情報（例えば、ＩＰアドレス）を保持しているか否かによって判定することができる。
【０１０１】
次に、ストレージノードＡ１１００の問合せ要求制御サブプログラム１１２６は、オーバーレイネットワークに参加している他のストレージノードに、ストレージノードＡ１１００に関する情報とともに、オーバーレイネットワークへのノード登録を要求する（Ｓ１０３）。
【０１０２】
オーバーレイネットワークに参加するときに事前に知らされるノード情報を指定して、ノード登録を要求するストレージノード（以降、対象ノードとして説明する）に送信する。ノード登録の要求とともに送信されるノード情報は、ストレージノードＡ１１００のノード名、及び、ネットワークにおける識別情報（例えば、ＩＰアドレス）を含む情報である。
【０１０３】
ノード登録が要求されると、基本制御サブプログラム１１３１及び問合せ応答制御サブプログラム１１２７によって、ノード登録処理が実行される。
【０１０４】
まず、対象ノードの問合せ応答制御サブプログラム１１２７は、ノード登録の要求を受信する（Ｓ１０４）。
【０１０５】
次に、対象ノードの基本制御サブプログラム１１３１は、ノード登録を要求したストレージノードＡ１１００の情報を、対象ノードのノード管理表４０００に格納する（Ｓ１０５）。
【０１０６】
次に、対象ノードの問合せ応答制御サブプログラム１１２７は、ノード管理表４０００に格納されているノード情報を、ストレージノードＡ１１００に送信する（Ｓ１０６）。具体的には、対象ノードの基本制御サブプログラム１１３１がノード管理表４０００に格納されているノード情報（例えば、ノード名４０１０及び識別情報４０２０）を読み込み、対象ノードの問合せ応答制御サブプログラム１１２７が、ノード登録の成功という応答とともに、読み込まれたノード情報をストレージノードＡ１１００に送信する。
【０１０７】
次に、ストレージノードＡ１１００の基本制御サブプログラム１１３１は、対象ノードから送信されたノード情報を、ストレージノードＡ１１００のノード管理表４０００に格納する（Ｓ１０７）。具体的には、ストレージノードＡ１１００の問合せ要求サブプログラム１１２６は、対象ノードからノード登録の応答を受信し、ノード登録の成功という応答である場合には、ストレージノードＡ１１００の基本制御サブプログラム１１３１が、ノード登録の応答とともに送信されたノード情報を、ストレージノードＡ１１００のノード管理表４０００に格納する。そして、処理は終了する。
【０１０８】
ステップ１０８で、ストレージノードＡ１１００の基本制御サブプログラム１１３１は、ストレージノードＡ１１００のノード情報をノード管理表４０００に格納する（Ｓ１０８）。そして、処理は終了する。
【０１０９】
図９は、本発明の第１の実施の形態のノード探索処理のフローチャートであり、基本制御サブプログラム１１３１及び問合せ要求制御サブプログラム１１２６によって実行される。
【０１１０】
ノード探索処理は、オーバーレイネットワークに参加しているストレージノード（ここではストレージノードＡ１１００として説明する）が、他に参加しているストレージノードを探索する場合に実行される。
【０１１１】
まず、ストレージノードＡ１１００の基本制御サブプログラム１１３１は、ノード管理表４０００に登録されているストレージノードの一覧から、任意のストレージノードを必要数分選択する（Ｓ１１１）。
【０１１２】
ここで、ストレージノードが必要数分選択されるのは、ノード管理表４０００に登録されているストレージノード全てにノード探索を要求すると、オーバーレイネットワーク全体のノード情報を取得できる可能性がある反面、ストレージノードの探索及びノード管理表４０００の更新にかかる処理の負荷が大きくなってしまう問題があるためである。そのため、ここでは、ノードが必要数分のみ選択され、選択されたストレージノードにノード探索を要求する。なお、ストレージノードを選択する方法は、例えば、ノード管理表４０００からランダムに選択する方法がある。また、必要数は、管理者によって柔軟に設定変更できるようにする。
【０１１３】
次に、ストレージノードＡ１１００の問合せ要求制御サブプログラム１１２６は、ステップ１１１で選択されたストレージノード（以降、対象ノードとして説明する）に、ストレージノードＡ１１００で保持しているノード管理表４０００の内容を送信し、ノード情報（例えば、ノード名及び識別情報）の取得を要求する（Ｓ１１２）。
【０１１４】
送信するノード管理表４０００の内容には、全てのデータ（例えば、ノード名及び識別情報）が含まれる。また、一部のデータのみ（例えば、識別情報のみ）が含まれてもよい。
【０１１５】
ノード情報の取得が要求されると、基本制御サブプログラム１１３２及び問合せ応答制御サブプログラム１１２７によって、ノード探索処理が実行される。
【０１１６】
まず、対象ノードの問合せ応答制御サブプログラム１１２７は、ステップ１１２で送信されたノード情報の取得の要求を受信する（Ｓ１１３）。
【０１１７】
次に、対象ノードの基本制御サブプログラム１１３１は、ノード情報の取得を要求したストレージノードＡ１１００から送信されたノード情報を、対象ノードのノード管理表４０００に格納する（Ｓ１１４）。
【０１１８】
次に、対象ノードの問合せ応答制御サブプログラム１１２７は、ノード管理表４０００に格納されているノード情報を、ストレージノードＡ１１００に送信する（Ｓ１１５）。具体的には、対象ノードの基本制御サブプログラム１１３１がノード管理表４０００に格納されているノード情報を読み込み、対象ノードの問合せ応答制御サブプログラム１１２７が、読み込まれたノード情報を、ノード情報の取得の要求に対する応答とともにノード情報の取得の要求元（ストレージノードＡ１１００）に送信する。
【０１１９】
送信するノード情報の内容には、ステップ１１２と同様に、全てのデータ（例えば、ノード名４０１０及び識別情報４０２０）が含まれる。また、一部のデータのみ（例えば、識別情報４０２０のみ）が含まれてもよい。
【０１２０】
次に、ストレージノードＡ１１００の基本制御サブプログラム１１３１は、ステップ１１５で対象ノードから送信されたノード情報を、ストレージノードＡ１１００のノード管理表４０００に格納する（Ｓ１１６）。具体的には、ストレージノードＡ１１００の問合せ要求サブプログラム１１２６は、対象ノードからノード情報の取得の要求に対する応答を受信し、ストレージノードＡ１１００の基本制御サブプログラム１１３１が、応答とともに送信されたノード情報を、ストレージノードＡ１１００のノード管理表４０００に格納する。そして、処理は終了する。
【０１２１】
ノード探索処理は、例えば、定期的に情報を更新するために実行される。また、ノード登録が要求された場合に、他のストレージノードにノード登録を要求したストレージノードの情報を即座に伝播させるために、ノード探索処理が実行されてもよい。
【０１２２】
また、ノード探索処理は、オーバーレイネットワークへのノード登録又はストレージノードの離脱が発生する度に実行されてもよい。
【０１２３】
また、ノード離脱処理について、ここでは、図を用いて説明せず、概略のみ説明する。ノード離脱処理は、例えば、ノード探索処理を実行した場合に、対象ノードが離脱したストレージノードにアクセスを試みたとき、所定の時間内に応答がなかったストレージノードを離脱ノードとして、自身のノード管理表４０００から応答がなかったストレージノードの情報を削除する。
【０１２４】
図１０は、本発明の第１の実施の形態のファイル登録処理のフローチャートであり、ファイル登録サブプログラム１１３２によって実行される。
【０１２５】
ファイル登録処理は、オーバーレイネットワークに新規に共有ファイルを登録する場合に、共有ファイルの登録を要求するストレージノード（ここではストレージノードＡ１１００として説明する）が実行する。
【０１２６】
まず、ファイル登録サブプログラム１１３２は、新規に登録する共有ファイル（以降、対象ファイルとして説明する）の冗長格納数を取得し、一時変数「Ｓ」に格納する（Ｓ１２１）。冗長格納数は、対象ファイルを分散して格納するために、対象ファイルを複製する数である。冗長格納数は、例えば、対象ファイルのメタデータとして指定されている値が利用される。また、システム全体で規定されている値が利用されてもよい。
【０１２７】
次に、ファイル登録サブプログラム１１３２は、ノード管理表４０００からノード一覧情報を取得し、一時領域にノード一覧情報を格納する（Ｓ１２２）。ノード一覧情報には、例えば、ノード名及び識別情報が含まれる。
【０１２８】
次に、ファイル登録サブプログラム１１３２は、ステップ１２２で格納されたノード一覧情報に登録されている全てのストレージノードについて、ステップ１２４以降の処理を終了したか否かを判定する（Ｓ１２３）。
【０１２９】
全てのストレージノードについて、ステップ１２４以降の処理を終了した場合、対象ファイルの格納先となるストレージノードが必要数（冗長格納数）分確保されないため、処理はステップ１３３に進む。
【０１３０】
一方、全てのストレージノードについて、ステップ１２４以降の処理を終了していない場合、ファイル登録サブプログラム１１３２は、対象ファイルの格納先となるストレージノードを必要数分確保する必要がある。この場合、処理はステップ１２４に進む。
【０１３１】
次に、ファイル登録サブプログラム１１３２は、ステップ１２２で取得したノード一覧情報から格納先ノード候補を選択し、格納先ノード候補一覧を作成する（Ｓ１２４）。ここで、格納先ノード候補を選択する方法は、例えば、ノード一覧情報に登録されている順序でストレージノードの候補が選択される方法がある。また、ランダムにストレージノードの候補が選択される方法でもよい。また、ノード名のハッシュ値を用いて均等に格納先のストレージノードがばらけるように選択される方法でもよい。
【０１３２】
次に、ファイル登録サブプログラム１１３２は、ステップ１２４で作成された格納先ノード候補一覧に登録されている全てのストレージノードについて、ステップ１２７以降の処理を終了したか否かを判定する（Ｓ１２５）。
【０１３３】
全てのストレージノードについて、ステップ１２７以降の処理を終了している場合、処理はステップ１２６に進む。
【０１３４】
一方、全てのストレージノードについて、ステップ１２７以降の処理を終了していない場合、ファイル登録サブプログラム１１３２は、対象ファイルの格納先となるストレージノードを必要数分確保する必要がある。この場合、処理はステップ１２７に進む。
【０１３５】
次に、ファイル登録サブプログラム１１３２は、格納先ノード候補一覧からステップ１２８以降の処理を実行していないストレージノードを一つ選択する（Ｓ１２７）。ストレージノードを一つ選択する方法は、格納先ノード候補一覧の中からランダムに選択される方法がある。
【０１３６】
次に、ファイル登録サブプログラム１１３２は、対象ファイルの保管拒否ロケーション情報４２２０が選択されたストレージノードのロケーション情報を包含するか否かを判定する（Ｓ１２８）。具体的には、ファイル登録サブプログラム１１３２は、対象ファイルのメタデータとして共有ファイルメタデータ管理表４２００に格納されている保管拒否ロケーション情報４２２０を参照し、保管拒否ロケーション情報４２２０に示される場所が、ステップ１２７で選択されたストレージノードのノード設置ロケーション情報管理表４１００に格納されているノード設置ロケーション情報４１１０を含むか否かを判定する。
【０１３７】
選択されたストレージノードのロケーション情報を包含する場合、ファイル登録サブプログラム１１３２は、選択されたストレージノードに対象ファイルを格納することができないと判断する。この場合、処理はステップ１２５に戻る。
【０１３８】
一方、選択されたストレージノードのロケーション情報を包含しない場合、処理はステップ１２９に進む。
【０１３９】
次に、ファイル登録サブプログラム１１３２は、対象ファイルの保管許可ロケーション情報４２１０が選択されたストレージノードのロケーション情報を包含するか否かを判定する（Ｓ１２９）。具体的には、ファイル登録サブプログラム１１３２は、対象ファイルのメタデータとして共有ファイルメタデータ管理表４２００に格納されている保管許可ロケーション情報４２１０を参照し、保管許可ロケーション情報４２１０に示される場所が、ステップ１２７で選択されたストレージノードのノード設置ロケーション情報管理表４１００に格納されているノード設置ロケーション情報４１１０を含むか否かを判定する。
【０１４０】
選択されたストレージノードのロケーション情報を包含しない場合、ファイル登録サブプログラム１１３２は、選択されたストレージノードに対象ファイルを格納することができないと判断する。この場合、処理はステップ１２５に戻る。
【０１４１】
一方、選択されたストレージノードのロケーション情報を包含する場合、処理はステップ１３０に進む。
【０１４２】
次に、ファイル登録サブプログラム１１３２は、選択されたストレージノードを格納先ノードとして決定し、一時変数「Ｓ」をデクリメントする（Ｓ１３０）。
【０１４３】
次に、ファイル登録サブプログラム１１３２は、一時変数「Ｓ」が「０」であるか否かを判定する（Ｓ１３１）。
【０１４４】
一時変数「Ｓ」が「０」でない場合、対象ファイルを格納する必要数分のストレージノードが確保されていないと判断する。この場合、処理はステップ１２５に戻る。
【０１４５】
一方、一時変数「Ｓ」が「０」になっている場合、対象ファイルを格納する必要数分のストレージノードが確保されていると判断する。この場合、処理はステップ１３２に進む。
【０１４６】
次に、ファイル登録サブプログラム１１３２は、前記冗長格納数と同じ数だけ対象ファイルを複製し、ステップ１３０で決定された格納先ノードに対象ファイルを格納する（Ｓ１３２）。ここで、格納先ノードが他のストレージノード（対象ノード）である場合には、問合せ要求制御プログラム１１２６が、対象ノードに対象ファイルの格納を要求する。対象ファイルの格納を要求されたストレージノードの問合せ応答制御プログラム１１２７は、対象ファイルの格納の要求を受信し、対象ファイルを格納する。そして、対象ファイルの格納を要求した要求元に格納された結果を送信する。
【０１４７】
ステップ１２６で、ファイル登録サブプログラム１１３２は、格納先ノード候補一覧に登録されているストレージノードのノード情報を、一時領域に格納したノード一覧情報から削除する（Ｓ１２６）。そして、処理はステップ１２３に戻る。
【０１４８】
ステップ１３３で、ファイル登録サブプログラム１１３２は、格納先ノードを必要分発見できないため、エラーとなる。この場合、処理は終了する（Ｓ１３３）。
【０１４９】
図１１は、本発明の第１の実施の形態のファイル移動・複製処理のフローチャートであり、ファイル複製・移動サブプログラム１１３３によって実行される。
【０１５０】
ファイル複製・移動処理は、オーバーレイネットワークに登録されている共有ファイル（以降、対象ファイルとして説明する）を、ストレージノードにまたがって複製又は移動する場合に、複製又は移動を要求するストレージノード（ここではストレージノードＡ１１００として説明する）によって実行される。
【０１５１】
ファイル複製・移動処理は、共有ファイルの複製数を増減させることによって、ファイルアクセスの応答性能の調整を可能にするとともに、停止予定のストレージノードに格納されている共有ファイルを、事前に別のストレージノードに移動させることによって、共有ファイルへのアクセス可用性の維持を可能にする。
【０１５２】
まず、ファイル複製・移動サブプログラム１１３３は、ノード管理表４０００からノード一覧情報を取得し、一時領域にノード一覧情報を格納する（Ｓ１４１）。ノード一覧情報には、例えば、ノード名及び識別情報が含まれる。
【０１５３】
次に、ファイル複製・移動サブプログラム１１３３は、ステップ１４１で格納されたノード一覧情報に登録されている全てのストレージノードについて、ステップ１４３以降の処理を終了したか否かを判定する（Ｓ１４２）。
【０１５４】
全てのストレージノードについて、ステップ１４３以降の処理を終了した場合、格納先となるストレージノードが確保されないため、処理はステップ１５０に進む。
【０１５５】
一方、全てのストレージノードについて、ステップ１４３以降の処理を終了していない場合、ファイル複製・移動サブプログラム１１３３は、対象ファイルの格納先となるストレージノードを確保する必要がある。この場合、処理はステップ１４３に進む。
【０１５６】
次に、ファイル複製・移動サブプログラム１１３３は、ステップ１４１で取得したノード一覧情報の中から格納先ノード候補を選択して格納先ノード候補一覧を作成する（Ｓ１４３）。ここで、格納先ノードを選択する方法は、例えば、ノード一覧情報に登録されている順序でストレージノードの候補が選択される方法がある。また、ランダムにストレージノードの候補が選択される方法でもよい。また、ノード名のハッシュ値を用いて均等に格納先のストレージノードがばらけるように選択される方法でもよい。
【０１５７】
次に、ファイル複製・移動サブプログラム１１３３は、ステップ１４３で作成された格納先ノード候補一覧に登録されている全てのストレージノードについて、ステップ１４６以降の処理を終了したか否かを判定する（Ｓ１４４）。
【０１５８】
全てのストレージノードについて、ステップ１４６以降の処理を終了していた場合、処理はステップ１４５に進む。
【０１５９】
一方、全てのストレージノードについて、ステップ１４６以降の処理を終了していない場合、ファイル複製・移動サブプログラム１１３３は、対象ファイルの格納先となるストレージノードを確保する必要がある。この場合、処理はステップ１４６に進む。
【０１６０】
次に、ファイル複製・移動サブプログラム１１３３は、格納先ノード候補一覧からステップ１４７以降の処理を終了していないストレージノードを一つ選択する（Ｓ１４６）。ストレージノードを一つ選択する方法は、格納先ノード候補一覧の中からランダムに選択される方法がある。
【０１６１】
次に、ファイル複製・移動サブプログラム１１３３は、対象ファイルの保管拒否ロケーション情報４２２０が選択されたストレージノードのロケーション情報を包含するか否かを判定する（Ｓ１４７）。具体的には、ファイル複製・移動サブプログラム１１３３は、対象ファイルのメタデータとして共有ファイルメタデータ管理表４２００に格納されている保管拒否ロケーション情報４２２０を参照し、保管拒否ロケーション情報４２２０に示される場所が、ステップ１４６で選択されたストレージノードのノード設置ロケーション情報管理表４１００に格納されているノード設置ロケーション情報４１１０を含むか否かを判定する。
【０１６２】
選択されたストレージノードのロケーション情報を包含する場合、ファイル複製・移動サブプログラム１１３３は、選択されたストレージノードに対象ファイルを複製又は移動することができないと判断する。この場合、処理はステップ１４４に戻る。
【０１６３】
一方、選択されたストレージノードのロケーション情報を包含しない場合、処理はステップ１４８に進む。
【０１６４】
次に、ファイル複製・移動サブプログラム１１３３は、対象ファイルの保管許可ロケーション情報４２１０が選択されたストレージノードのロケーション情報を包含するか否かを判定する（Ｓ１４８）。具体的には、ファイル複製・移動サブプログラム１１３３は、対象ファイルのメタデータとして共有ファイルメタデータ管理表４２００に格納されている保管許可ロケーション情報４２１０を参照し、保管許可ロケーション情報４２１０に示される場所が、ステップ１４６で選択されたストレージノードのノード設置ロケーション情報管理表４１００に格納されているノード設置ロケーション情報４１１０を含むか否かを判定する。
【０１６５】
選択されたストレージノードのロケーション情報を包含しない場合、ファイル複製・移動サブプログラム１１３３は、選択されたストレージノードに対象ファイルを複製又は移動することができないと判断する。この場合、処理はステップ１４４に戻る。
【０１６６】
一方、選択されたストレージノードのロケーション情報を包含する場合、処理はステップ１４９に進む。
【０１６７】
次に、ファイル複製・移動サブプログラム１１３３は、ステップ１４８でロケーション情報を包含すると判定されたストレージノード（格納先ノード）に対象ファイルを複製・移動する（Ｓ１４９）。ここで、格納先ノードが他のストレージノード（対象ノード）である場合には、問合せ要求制御プログラム１１２６が、対象ノードに対象ファイルの複製又は移動を要求する。対象ファイルの複製又は移動を要求されたストレージノードの問合せ応答制御プログラム１１２７は、対象ファイルの複製又は移動の要求を受信し、複製又は移動された対象ファイルを格納する。そして、対象ノードは、対象ファイルの複製又は移動を要求したストレージノードＡ１１００に複製又は移動された結果を送信する。
【０１６８】
ステップ１４５で、ファイル複製・移動サブプログラム１１３３は、格納先ノード候補一覧に登録されているストレージノードのノード情報を、一時領域に格納したノード一覧情報から削除する（Ｓ１４５）。そして、処理はステップ１４２に戻る。
【０１６９】
ステップ１５０で、ファイル複製・移動サブプログラム１１３３は、格納先ノードを発見できないため、エラーとする。この場合、処理は終了する（Ｓ１５０）。
【０１７０】
図１２は、本発明の第１の実施の形態のファイルアクセス処理のフローチャートであり、ファイルアクセスサブプログラム１１３４によって実行される。
【０１７１】
ファイルアクセス処理は、オーバーレイネットワークに登録されている共有ファイル（以降、対象ファイルとして説明する）にアクセス要求があった場合に、アクセスを要求するストレージノード（ここでは、ストレージノードＡ１１００として説明する）が実行する。
【０１７２】
まず、ファイルアクセスサブプログラム１１３４は、アクセスを要求する対象ファイルを探索し、対象ファイルが存在するノード一覧表を作成する（Ｓ１６１）。ここで、対象ファイルの探索は、問合せ要求制御サブプログラム１１２６が、ノード管理表４０００から任意の複数のストレージノードを選択し、選択された複数のストレージノードに対象ファイルが存在するか否かを問い合わせる。ストレージノードを選択する方法は、例えば、ランダムに複数のストレージノードを選択する方法がある。
【０１７３】
ステップ１６１で選択されたストレージノード（対象ノード）の問合せ応答制御サブプログラム１１２７は、問い合わせの要求を受け付け、対象ファイルが存在するか否かを確認し、その結果を応答としてストレージノードＡ１１００に送信。対象ファイルが存在する場合には、対象ノードの問合せ応答制御サブプログラム１１２７は、対象ファイルが持つメタデータの情報とともにストレージノードＡ１１００に応答を送信する。
【０１７４】
次に、ファイルアクセスサブプログラム１１３４は、ステップ１６１で対象ノードから受信した応答に基づいて、対象ファイルが見つかったか否かを判定する（Ｓ１６２）。
【０１７５】
対象ファイルが見つからなかった場合には、ファイルアクセスサブプログラム１１３４は、アクセスを要求する対象ファイルを発見することができなかったと判断する。この場合、処理はステップ１６９に進む。
【０１７６】
一方、対象ファイルが見つかった場合には、ファイルアクセスサブプログラム１１３４は、対象ファイルにアクセスを要求することができるか否かを判断する必要がある。この場合、処理はステップ１６３に進む。
【０１７７】
次に、ファイルアクセスサブプログラム１１３４は、対象ファイルのアクセス許可／拒否ロケーション情報を取得する（Ｓ１６３）。具体的には、ファイルアクセスサブプログラム１１３４は、対象ファイルの共有ファイルメタデータ管理表４２００を参照し、アクセス許可ロケーション情報４２３０及びアクセス拒否ロケーション情報４２４０を取得する。
【０１７８】
次に、ファイルアクセスサブプログラム１１３４は、対象ファイルへのアクセス要求者が存在する場所（例えば、クライアントノード２０００が設置される場所）の情報（存在ロケーション情報）を取得する（Ｓ１６４）。
【０１７９】
ここで、アクセス要求者の存在する場所の情報を取得する方法は、例えば、アクセス要求者からのアクセス要求を最初に受け付けた制御装置（例えば、ストレージノードＡ１１００）の場所情報を利用する方法である。また、制御装置がアクセス要求者の存在場所の情報に、ＧＰＳによって取得された位置情報が利用される方法であってもよい。また、アクセス要求者のアクセス要求時点における存在場所を第三者機関（例えば、認証サーバ３０００）が認証し、認証された結果が利用される方法であってもよい。
【０１８０】
次に、ファイルアクセスサブプログラム１１３４は、対象ファイルのアクセス拒否ロケーション情報４２４０がアクセス要求者の存在ロケーション情報を包含するか否かを判定する（Ｓ１６５）。具体的には、ファイルアクセスサブプログラム１１３４は、対象ファイルのメタデータとして共有ファイルメタデータ管理表４２００に登録されているアクセス拒否ロケーション情報４２４０を参照し、アクセス拒否ロケーション情報４２４０に示される場所が、ステップ１６４で取得したアクセス要求者の存在ロケーション情報を含むか否かを判定する。
【０１８１】
アクセス要求者の存在ロケーション情報を包含する場合、ファイルアクセスサブプログラム１１３４は、アクセス要求者の対象ファイルへのアクセスが許可されていないと判断する。この場合、処理はステップ１６８に進む。
【０１８２】
一方、アクセス要求者の存在ロケーション情報を包含しない場合、処理はステップ１６６に進む。
【０１８３】
次に、ファイルアクセスサブプログラム１１３４は、対象ファイルのアクセス許可ロケーション情報４２３０がアクセス要求者の存在ロケーション情報を包含するか否かを判定する（Ｓ１６６）。具体的には、ファイルアクセスサブプログラム１１３４は、対象ファイルのメタデータとして共有ファイルメタデータ管理表４２００に登録されているアクセス許可ロケーション情報４２３０を参照し、アクセス許可ロケーション情報４２３０に示される場所が、ステップ１６４で取得したアクセス要求者の存在ロケーション情報を含むか否かを判定する。
【０１８４】
アクセス要求者の存在ロケーション情報を包含しない場合、ファイルアクセスサブプログラム１１３４は、アクセス要求者の対象ファイルへのアクセスが許可されていないと判断する。この場合、処理はステップ１６８に進む。
【０１８５】
一方、アクセス要求者の存在ロケーション情報を包含する場合、ファイルアクセスサブプログラム１１３４は、アクセス要求者の対象ファイルへのアクセスが許可されていると判断する。この場合、処理はステップ１６７に進む。
【０１８６】
次に、ファイルアクセスサブプログラム１１３４は、ステップ１６１で作成されたノード一覧表から、任意のストレージノードを選択し、選択されたストレージノードの情報をアクセス要求者に提供する。そして、アクセス要求者は、情報が提供されたストレージノードにアクセスする（Ｓ１６７）。
【０１８７】
ここで、任意のストレージノードを選択する方法は、例えば、ステップ１６１で作成されたノード一覧表から、ランダムに選択される方法がある。また、ノード一覧表から、アクセス要求者に最も近いストレージノードが選択される方法であってもよい。また、ノード一覧表から、アクセス時間が最も短いストレージノードが選択される方法であってもよい。
【０１８８】
ステップ１６８で、ファイルアクセスサブプログラム１１３４は、対象ファイルへのアクセスが許可されていないと判断するため、アクセス要求者に対象ファイルへアクセスさせずにエラーとする（Ｓ１６８）。この場合、処理は終了する。
【０１８９】
ステップ１６９で、ファイルアクセスサブプログラム１１３４は、対象ファイルを発見することができないため、エラーとして処理を終了する（Ｓ１６９）。
【０１９０】
本発明の第１の実施の形態では、共有ファイルを格納するシステムについて説明したが、ファイル以外にも、例えば、データ、ブロック単位の情報、固定長のデータ及びレコード等を共有して格納するシステムであってもよい。
【０１９１】
本発明の第１の実施の形態では、共有ファイルを格納するストレージノードを共有ファイル毎に指定することが可能となるため、共有ファイルの格納が許可されない場所に設置されているストレージノードへの共有ファイルの格納を抑止することによって、不要な通信を削除するとともに、無駄なストレージ利用を抑止することができる。また、共有ファイルにアクセスする場所を、共有ファイル毎に指定することが可能となるため、アクセスが許可されていない場所からのアクセスを禁止することができる。
【０１９２】
また、本発明の第１の実施の形態は、ストレージノード（制御装置）で構成するように説明したが、その他に、制御システム又は制御方法として構成することもできる。第１の実施の形態は、前述したストレージノード（制御装置）を実現するコンピュータプログラム、プログラムを記録した記録媒体、及び、プログラムを含み搬送波内に具現化されたデータ信号等、種々の態様で実現することが可能である。
【０１９３】
なお、本発明の実施の形態をコンピュータプログラム又はプログラムを記録した記録媒体として構成する場合には、制御装置又は制御装置を制御するプログラム全体として構成することができる。また、第１の実施の形態の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体として、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、パンチカード、バーコード等の符号が印刷された印刷物、及び、コンピュータの内部記憶装置及び外部記憶装置が読み取り可能な種々の揮発性記憶媒体及び不揮発性記憶媒体を利用することができる。
【０１９４】
＜第２の実施の形態＞
第１の実施の形態では、図１に示されるシステム構成に基づいて、共有ファイルの格納先ノードと、アクセス要求者の存在場所とに基づいて共有ファイルへのアクセスを制御するものであった。第２の実施の形態では、ネットワークの通信料金を最適にするための制御について説明する。第２の実施の形態のうち、第１の実施の形態と同様の部分については説明を省略する。
【０１９５】
図１３は、本発明の第２の実施の形態のシステムの構成図である。
【０１９６】
第１の実施の形態と異なるのは、各ＩＳＰに管理サーバ３１００、３２００、３３００、３４００及び３５００が接続される点である。
【０１９７】
管理サーバ３１００は、ＩＳＰによって提供されるネットワークサービスに関する情報、及び、通信料金に関する情報を提供する。管理サーバ３２００、３３００、３４００及び３５００は、管理サーバ３１００と同様の構成である。なお、図１３に示されるシステムでは、各ＩＳＰに一つの管理サーバが接続されているが、複数の管理サーバが接続されてもよい。
【０１９８】
図１４は、本発明の第２の実施の形態の管理サーバ３１００のハードウェア構成図である。
【０１９９】
管理サーバ３１００は、プロセッサ３１１０、メモリ３１２０、外部記憶装置Ｉ／Ｆ３１４０及びネットワークＩ／Ｆ３１５０を備える。各構成は、バス３１６０によって接続される。管理サーバ３１００は、外部記憶装置Ｉ／Ｆ３１４０を介して外部記憶装置３１７０と接続する。
【０２００】
プロセッサ３１１０は、メモリ３１２０に格納されるプログラムを実行し、管理サーバ３１００全体を制御する。
【０２０１】
メモリ３１２０は、プロセッサ３１１０によって実行されるプログラム及び／又はデータを一時的に格納する。メモリ３１２０は、例えば、ＲＡＭのような半導体メモリで構成するとよい。
【０２０２】
メモリ３１２０は、外部記憶装置Ｉ／Ｆ制御プログラム３１２１、ネットワークＩ／Ｆ制御プログラム３１２２、ローカルファイルシステム制御プログラム３１２３、分散ファイルシステム管理プログラム３１２５、ＩＳＰ情報管理表４３００及びキャッシュメモリ３１３０を格納する。
【０２０３】
外部記憶装置Ｉ／Ｆ制御プログラム３１２１は、外部記憶装置Ｉ／Ｆ３１４０を制御する。ネットワークＩ／Ｆ制御プログラム３１２２は、ネットワークＩ／Ｆ３１５０を制御する。
【０２０４】
ローカルファイルシステム制御プログラム３１２３は、キャッシュメモリ制御サブプログラム３１２４を含む。ローカルファイルシステム制御プログラム３１２３は、管理サーバ３１００で提供されるファイルシステムを制御する。キャッシュメモリ制御サブプログラム３１２４は、キャッシュメモリ３１３０を制御する。
【０２０５】
分散ファイルシステム管理プログラム３１２５は、問合せ要求制御サブプログラム３１２６、問合せ応答制御サブプログラム３１２７、基本制御サブプログラム３１３１、ファイル登録サブプログラム３１３２を含む。
【０２０６】
分散ファイルシステム管理プログラム３１２５は、ＩＳＰで提供されるネットワークサービスに関する情報、及び、通信料金に関する情報を管理する。
【０２０７】
問合せ要求制御サブプログラム３１２６は、オーバーレイネットワークを構成する他の管理サーバに送信する問い合わせ要求を制御する。
【０２０８】
問合せ応答制御サブプログラム３１２７は、オーバーレイネットワークを構成する他の管理サーバからの問い合わせ要求を受信し、要求された処理を実行し、処理された結果の返答を制御する。
【０２０９】
基本制御サブプログラム３１３１は、管理サーバ３１００の情報を管理する。例えば、基本制御サブプログラム３１３１は、管理サーバ３１００に関する情報（識別情報）をＩＳＰ情報管理表４３００に格納する。
【０２１０】
ＩＳＰ情報管理表４３００は、管理サーバ３１００が認識しているＩＳＰ、認識されているＩＳＰに存在する管理サーバの識別情報、及び、認識しているＩＳＰに到達するためのネットワークの通信料金に関する情報を保持する。ＩＳＰ情報管理表４３００については、図１５を用いて後述する。
【０２１１】
キャッシュメモリ３１３０は、ファイルシステムによって管理されているファイルにアクセスする場合に、アクセスのレスポンスタイムを短縮するために利用される。
【０２１２】
外部記憶装置Ｉ／Ｆ３１４０は、外部記憶装置３１７０にアクセスするためのインタフェースである。ネットワークＩ／Ｆ３１５０は、ネットワークを介して接続された他の装置にアクセスするためのインタフェースである。
【０２１３】
外部記憶装置３１７０は、プログラム又はユーザデータ等を記憶する。外部記憶装置３１７０は、例えば、ハードディスクドライブ（ＨＤＤ）で構成するとよい。また、フラッシュメモリのような半導体記憶装置で構成してもよい。
【０２１４】
図１５は、本発明の第２の実施の形態のＩＳＰ情報管理表４３００の構成を示す。
【０２１５】
ＩＳＰ情報管理表４３００は、管理サーバ３１００が認識しているＩＳＰ、認識されているＩＳＰに存在する管理サーバの識別情報、及び、認識しているＩＳＰに到達するためのネットワークの通信料金に関する情報を保持する。
【０２１６】
ＩＳＰ情報管理表４３００は、ＩＳＰ名４３１０、ＩＳＰの管理サーバ識別情報４３２０及び通信料金４３３０を含む。
【０２１７】
ＩＳＰ名４３１０は、ＩＳＰをネットワーク上で識別する情報である。図１５に示されるＩＳＰの管理サーバ識別情報４３２０は、文字列の情報が格納されているが、例えば、ＩＳＰを識別するＩＤのような数値の情報が格納されてもよい。
【０２１８】
ＩＳＰの管理サーバ識別情報４３２０は、通常のネットワークに接続されるＩＳＰの管理サーバの識別情報である。ＩＳＰの管理サーバ識別情報４３２０は、ネットワークを介して管理サーバにアクセスする場合に、アクセス先を指定するために用いられる。なお、図１５に示されるＩＳＰの管理サーバ識別情報４３２０は、ＩＰアドレスが格納されているが、例えば、管理サーバを特定するＩＤ情報が格納されてもよい。また、文字列の情報が格納されてもよい。
【０２１９】
通信料金４３３０は、管理サーバ３１００自身が接続されるＩＳＰネットワークから、通信の対象となる管理サーバが接続されるＩＳＰのネットワークまでの通信料金である。通信料金４３３０は、一方のＩＳＰがもう一方のＩＳＰに支払う金額が用いられる。また、設備及び運用上、誰かが負担しなければならない金額が用いられてもよい。
【０２２０】
図１５に示す例では、ＩＳＰの情報が五つ格納されている。また、ＩＳＰ情報管理表４３００の第１行のＩＳＰ名４３１０、ＩＳＰの管理サーバ識別情報４３２０及び通信料金４３３０として、それぞれ「ＩＳＰ１」、「１０．２０．３０．２００」及び「３０」が格納されている。これは、ネットワーク上に「ＩＳＰ１」という名前の管理サーバが存在し、「ＩＳＰ１」には、あて先「１０．２０．３０．２００」という情報でアクセスでき、「ＩＳＰ１」にアクセスするためには、通信料金が「３０」で示される金額を支払う必要があることを示している。
【０２２１】
このＩＳＰ情報管理表４３００の内容は、管理サーバが定期的に情報を交換し合うことによって内容を更新する。内容を更新する方法は、図９に示されるノード探索処理のフローチャートと同様に、他の管理サーバにＩＳＰ情報管理表４３００の内容を問い合わせることによって更新される。
【０２２２】
図１６は、本発明の第２の実施の形態のノード管理表４０００の構成を示す。
【０２２３】
第１の実施の形態と異なるのは、ノード管理表４０００がノード通信料金４０３０を含む点である。
【０２２４】
ノード通信料金４０３０は、対象となるストレージノードと通信する時にかかる通信料金である。ノード通信料金４０３０は、ノード管理表４０００の内容を更新するときを契機として更新する。通信料金に関する情報は、後述する図１７で説明するノード設置ロケーション情報管理表４１００の管理サーバ識別情報４１４０に対応する管理サーバに問い合わせることによって取得される。通信料金に関する情報を取得する方法は、図９に示されるノード探索処理のフローチャートと同様に、他の管理サーバに通信料金に関する情報を問い合わせることによって取得される。
【０２２５】
図１６に示す例では、ノード管理表４０００の第１行のノード名４０１０、識別情報４０２０及びノード通信料金４０３０として、それぞれストレージノードＡ」、「１０．２０．３０．４０」及び「３０」が格納されている。これは、オーバーレイネットワークに参加している「ストレージノードＡ」という名前のストレージノードが存在し、「ストレージノードＡ」には、あて先「１０．２０．３０．４０」という情報でアクセスでき、「ストレージノードＡ」にアクセスするためには、通信料金が「３０」で示される金額を支払う必要があることを示している。
【０２２６】
図１７は、本発明の第２の実施の形態のノード設置ロケーション情報管理表４１００の構成を示す。
【０２２７】
第１の実施の形態と異なるのは、ノード設置ロケーション情報管理表４１００が利用ＩＳＰ情報４１３０及び利用ＩＳＰの管理サーバ識別情報４１４０を含む点である。
【０２２８】
利用ＩＳＰ情報４１３０は、ストレージノードが接続しているネットワークサービスを提供するＩＳＰを識別する情報である。なお、ストレージノードが複数のＩＳＰを利用する場合には、ＩＳＰを識別する情報が複数格納される。
【０２２９】
利用ＩＳＰの管理サーバ識別情報４１４０は、利用ＩＳＰ情報４１３０に示されるＩＳＰに接続される管理サーバのネットワーク上の識別情報である。
【０２３０】
利用ＩＳＰ情報４１３０及び利用ＩＳＰの管理サーバ識別情報４１４０は、ノード設置ロケーション情報４１１０を格納するときに同様に格納する。
【０２３１】
図１７に示す例では、ノード設置ロケーション情報管理表４１００の利用ＩＳＰ情報及び利用ＩＳＰの管理サーバ識別情報４１４０として、それぞれ「ＩＳＰ２」及び「１０．１００．３０．２００」が格納されている。これは、ストレージノードが利用するネットワークサービスを提供するＩＳＰは、「ＩＳＰ２」という名前であり、「ＩＳＰ２」に属している管理サーバの識別情報は、「１０．１００．３０．２００」であることを示している。
【０２３２】
図１８は、本発明の第２の実施の形態のノード探索処理のフローチャートである。
【０２３３】
第１の実施の形態と異なるのは、図９のステップ１１４及びステップ１１５の間にステップ１１７が追加され、図９のステップ１１６の次にステップ１１８が追加される点である。
【０２３４】
ステップ１１７で、対象ノードの問合せ応答制御サブプログラム１１２７は、ノード設置ロケーション情報管理表４１００の管理サーバ識別情報４１４０に基づいて、各ＩＳＰの管理サーバに通信料金を問い合わせ、ノード管理表４０００に反映する（Ｓ１１７）。
【０２３５】
もし、問い合わせ先の管理サーバのみでは必要な情報が取得できない場合には、問い合わせ先の管理サーバが、自身のサーバに格納されているＩＳＰ情報管理表４３００に登録されている他の管理サーバに順次問い合わせることによって、情報を取得する。
【０２３６】
ステップ１１８で、ストレージノードＡ１１００の問合せ要求制御サブプログラム１１２６は、各ＩＳＰの管理サーバに通信料金を問い合わせ、ストレージノードＡ１１００の基本制御サブプログラム１１３１は、各ＩＳＰの管理サーバから取得した通信料金をノード管理表４０００に反映する（Ｓ１１８）。そして、処理は終了する。
【０２３７】
図１９は、本発明の第２の実施の形態のファイルアクセス処理のフローチャートである。
【０２３８】
第１の実施の形態と異なるのは、図１２のステップ１６７の代わりにステップ１７０の処理を実行する点である。
【０２３９】
ステップ１７０で、ファイルアクセスサブプログラム１１３４は、テップ１６１で作成されたノード一覧表から、ノード通信料金が最も安いノードを選択し、選択されたストレージノードの情報をアクセス要求者に提供する。そして、アクセス要求者は、情報が提供されたストレージノードにアクセスする（Ｓ１７０）。
【０２４０】
第１の実施の形態では、対象ファイルのアクセス先を任意で決めていたが、第２の実施の形態では、通信料金が安いストレージノードを選択することが可能になる。したがって、通信料金が最小となるストレージノードの共有ファイルに優先的にアクセスするように制御することによって、ファイル共有サービスに要する通信料金を削減することができる。
【図面の簡単な説明】
【０２４１】
【図１】本発明の第１の実施の形態のシステムの構成図である。
【図２】本発明の第１の実施の形態のストレージノードのハードウェア構成図である。
【図３】本発明の第１の形態のクライアントノードのハードウェア構成図である。
【図４】本発明の第１の形態のノード管理表の構成を示す。
【図５】本発明の第１の実施の形態のノード設置ロケーション情報管理表の構成を示す。
【図６】本発明の第１の実施の形態の共有ファイルメタデータ管理表の構成を示す。
【図７】本発明の第１の実施の形態のシステム構成において、共有ファイルがどのストレージノードに格納されているかを模式的に示した図である。
【図８】本発明の第１の実施の形態のノード登録処理のフローチャートである。
【図９】本発明の第１の実施の形態のノード探索処理のフローチャートである。
【図１０】本発明の第１の実施の形態のファイル登録処理のフローチャートである。
【図１１】本発明の第１の実施の形態のファイル移動・複製処理のフローチャートである。
【図１２】本発明の第１の実施の形態のファイルアクセス処理のフローチャートである。
【図１３】本発明の第２の実施の形態のシステムの構成図である。
【図１４】本発明の第２の実施の形態の管理サーバのハードウェア構成図である。
【図１５】本発明の第２の実施の形態のＩＳＰ情報管理表の構成を示す。
【図１６】本発明の第２の実施の形態のノード管理表の構成を示す。
【図１７】本発明の第２の実施の形態のノード設置ロケーション情報管理表の構成を示す。
【図１８】本発明の第２の実施の形態のノード探索処理のフローチャートである。
【図１９】本発明の第２の実施の形態のファイルアクセス処理のフローチャートである。
【符号の説明】
【０２４２】
１、２、３、４、５  ＩＳＰ
１０  インターネット
１１、１２  Ａｒｅａ
１１００、１２００、１３００、１４００、１５００  ストレージノード
２０００、２１００、２９００  クライアントノード
１１１０、２０１０、３１１０  プロセッサ
１１２０、２０２０、３１２０  メモリ
１１２１、２０２１、３１２１  外部記憶装置I／Ｆ制御プログラム
１１２２、２０２２、３１２２  ネットワークI／Ｆ制御プログラム
１１２３、２０２３、３１２３  ローカルファイルシステム制御プログラム
１１２４、２０２４、３１２４  キャッシュメモリ制御サブプログラム
１１２５  分散ファイルシステム制御プログラム
１１２６、２０２６、３１２６  問い合わせ要求制御サブプログラム
１１２７、３１２７  問い合わせ応答制御サブプログラム
１１３０、２０３０、３１３０  キャッシュメモリ
１１４０、２０４０、３１４０  外部記憶装置I／Ｆ
１１５０、２０５０、３１５０  ネットワークI／Ｆ
１１６０、２０６０、３１６０  バス
１１７０、２０７０、３１７０  外部記憶装置
４０００  ノード管理表
４０１０  ノード名
４０２０  識別情報
４０３０  ノード通信料金
４１００  ノード設置ロケーション情報管理表
４１１０、４１２０  ノード設置ロケーション情報
４１３０  利用ＩＳＰ情報
４１４０  利用ＩＳＰの管理サーバの識別情報
４２００  共有ファイルメタデータ管理表
４２１０  保管許可ロケーション情報
４２２０  保管拒否ロケーション情報
４２３０  アクセス許可ロケーション情報
４２４０  アクセス拒否ロケーション情報
４３００  ＩＳＰ情報管理表
４３１０  ＩＳＰ名
４３２０  管理サーバの識別情報
４３３０  通信料金
【図１】
2009080674.tif 000003
【図２】
2009080674.tif 000004
【図３】
2009080674.tif 000005
【図４】
2009080674.tif 000006
【図５】
2009080674.tif 000007
【図６】
2009080674.tif 000008
【図７】
2009080674.tif 000009
【図８】
2009080674.tif 000010
【図９】
2009080674.tif 000011
【図１０】
2009080674.tif 000012
【図１１】
2009080674.tif 000013
【図１２】
2009080674.tif 000014
【図１３】
2009080674.tif 000015
【図１４】
2009080674.tif 000016
【図１５】
2009080674.tif 000017
【図１６】
2009080674.tif 000018
【図１７】
2009080674.tif 000019
【図１８】
2009080674.tif 000020
【図１９】
2009080674.tif 000021