(57)【特許請求の範囲】
【請求項１】
ファイルシステムを格納する少なくとも一つのファイルサーバと、前記ファイルサーバによって提供されるファイルシステムを仮想的な名前空間に接続する中間装置と、前記ファイルサーバと前記中間装置とを接続するネットワークと、を備え、前記仮想的な名前空間内に接続されたファイルシステムを提供する計算機システムであって、
前記中間装置は、
前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ファイルシステムを前記仮想的な名前空間に接続する場合に、前記ファイルシステムが接続される前記仮想的な名前空間の場所の上位のディレクトリに設定されたアクセス情報を取得し、前記取得したアクセス情報の継承の設定の有無を判定し、前記継承の設定が有る前記取得したアクセス情報を前記接続されるファイルシステムに設定し、
前記ファイルシステムを前記仮想的な名前空間から分離する場合に、前記ファイルシステムが接続されている前記仮想的な名前空間の場所の上位のディレクトリに設定されているアクセス情報を取得し、前記取得したアクセス情報の継承の設定の有無を判定し、前記継承の設定が有る前記取得したアクセス情報を前記分離されるファイルシステムのアクセス情報から削除することを特徴とする計算機システム。
【請求項２】
ファイルシステムを格納する少なくとも一つのファイルサーバと、前記ファイルサーバによって提供されるファイルシステムを仮想的な名前空間に接続する中間装置と、前記ファイルサーバと前記中間装置とを接続するネットワークと、を備え、前記仮想的な名前空間内に接続されたファイルシステムを提供する計算機システムであって、
前記中間装置は、
前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ファイルシステムを前記仮想的な名前空間に接続する場合に、前記ファイルシステムが接続される前記仮想的な名前空間の場所の上位のディレクトリに設定されたアクセス情報を取得し、前記取得したアクセス情報の継承の設定の有無を判定し、前記継承の設定が有る前記取得したアクセス情報を前記接続されるファイルシステムに設定し、
前記アクセス情報を設定する場合に、前記設定すべきアクセス情報と同一のアクセス情報が、前記接続されるファイルシステムのアクセス情報にあるか否かを判定し、
前記追加すべきアクセス情報と同一のアクセス情報が前記接続されるファイルシステムのアクセス情報にある場合は、前記取得したアクセス情報を前記接続されるファイルシステムのアクセス情報に追加しないことを特徴とする計算機システム。
【請求項３】
前記中間装置は、
前記取得したアクセス情報の継承の設定の有無の判定の終了後に、
ファイルシステムが接続される場所の下位のオブジェクトを選択し、
前記選択されたオブジェクトがディレクトリであるか否かを判定し、
前記選択されたオブジェクトがディレクトリである場合、前記ディレクトリに前記アクセス情報を設定した後に、前記取得したアクセス情報を、前記ディレクトリの下位のファイル及びディレクトリに設定することを特徴とする請求項１又は２に記載の計算機システム。
【請求項４】
ファイルシステムを格納する少なくとも一つのファイルサーバと、前記ファイルサーバによって提供されるファイルシステムを仮想的な名前空間に接続する中間装置と、前記ファイルサーバと前記中間装置とを接続するネットワークと、を備え、前記仮想的な名前空間内に接続されたファイルシステムをクライアント装置に提供する計算機システムであって、
前記中間装置は、
前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記クライアント装置から前記ファイルシステムに含まれるファイルのアクセス要求を受信すると、受信したアクセス要求からアクセス対象のファイルの識別子を抽出し、
前記抽出された識別子に基づいて、アクセス対象のファイルのアクセス情報を取得し、
前記取得したアクセス情報のうち、継承によるアクセス情報を先に判定し、
その結果、アクセス情報の少なくとも一つがアクセス拒否を示す場合には、前記受信したアクセス要求を拒否すると判定し、
前記継承によるアクセス情報がアクセス許可だった場合は、残りのアクセス情報を判定し、
その結果、アクセス情報の少なくとも一つがアクセス拒否を示す場合には、前記受信したアクセス要求を拒否すると判定し、
前記アクセスを要求したクライアント装置にアクセス拒否を通知することを特徴とする計算機システム。
【請求項５】
前記中間装置は、
前記選択されたアクセス情報が一つもアクセス拒否を示していない場合には、前記抽出された識別子を他の装置と共有可能な形式の識別子に変換し、
前記共有形式に変換された識別子を、他の前記中間装置及び前記ファイルサーバに送信して、アクセス対象のファイルのアクセス情報を要求し、
前記要求によって取得したアクセス情報の少なくとも一つがアクセス拒否を示す場合には、前記受信したアクセス要求を拒否すると判定し、
前記アクセスを要求したクライアント装置にアクセス拒否を通知することを特徴とする請求項４に記載の計算機システム。
【請求項６】
前記中間装置は、
前記抽出された識別子に基づいて、受信したアクセス要求を処理すべき装置が他の装置であるか否かを判定し、
前記受信したアクセス要求を処理すべき装置が他の装置であると判定された場合に、前記抽出された識別子を他の装置と共有可能な形式の識別子に変換する以後の処理を実行することを特徴とする請求項５に記載の計算機システム。
【請求項７】
前記中間装置は、
前記ファイルシステムを前記仮想的な名前空間に接続する場合に、前記ファイルシステムが接続される前記仮想的な名前空間の場所の上位のディレクトリに設定されたアクセス情報を取得し、
前記取得したアクセス情報から継承の設定が有るアクセス情報を抽出することを特徴とする請求項４に記載の計算機システム。
【請求項８】
前記中間装置は、前記アクセス要求から抽出された識別子に基づいて取得したアクセス情報と、前記上位のディレクトリに設定された、継承の設定が有るアクセス情報とを合成することを特徴とする請求項４に記載の計算機システム。
【請求項９】
前記中間装置は、前記アクセス要求から抽出された識別子に基づいて取得したアクセス情報の後に、前記上位のディレクトリに設定された、継承の設定が有るアクセス情報を追加することによって、アクセス情報を合成することを特徴とする請求項８に記載の計算機システム。
【請求項１０】
ファイルシステムを格納する少なくとも一つのファイルサーバと、前記ファイルサーバによって提供されるファイルシステムを仮想的な名前空間に接続する中間装置と、前記ファイルサーバと前記中間装置とを接続するネットワークと、を備え、前記仮想的な名前空間内に接続されたファイルシステムをクライアント装置に提供する計算機システムにおけるファイルの管理方法であって、
前記中間装置は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ファイル管理方法は、
前記プロセッサが、前記クライアント装置から前記ファイルシステムに含まれるファイルのアクセス要求を受信すると、受信したアクセス要求からアクセス対象のファイルの識別子を抽出し、
前記プロセッサが、前記抽出された識別子に基づいて、アクセス対象のファイルのアクセス情報を取得し、
前記プロセッサが、前記取得したアクセス情報の継承先がファイルであるか否かを判定し、
前記プロセッサが、前記取得したアクセス情報の継承先がファイルであるアクセス情報を選択し、
前記プロセッサが、前記選択されたアクセス情報の少なくとも一つがアクセス拒否を示す場合には、前記受信したアクセス要求を拒否すると判定し、
前記プロセッサが、前記インターフェースを介して、前記アクセスを要求したクライアント装置にアクセス拒否を通知することを特徴とするファイル管理方法。
【請求項１１】
前記ファイル管理方法は、さらに、
前記選択されたアクセス情報が一つもアクセス拒否を示していない場合には、前記プロセッサが、前記抽出された識別子を他の装置と共有可能な形式の識別子に変換し、
前記プロセッサが、前記共有形式に変換された識別子を、他の前記中間装置及び前記ファイルサーバに送信して、アクセス対象のファイルのアクセス情報を要求し、
前記プロセッサが、前記要求によって取得したアクセス情報の少なくとも一つがアクセス拒否を示す場合には、前記受信したアクセス要求を拒否すると判定し、
前記プロセッサが、前記インターフェースを介して、前記アクセスを要求したクライアント装置にアクセス拒否を通知することを特徴とする請求項１０に記載のファイル管理方法。
【請求項１２】
前記ファイル管理方法は、さらに、
前記プロセッサが、前記抽出された識別子に基づいて、受信したアクセス要求を処理すべき装置が他の装置であるか否かを判定し、
前記受信したアクセス要求を処理すべき装置が他の装置であると判定された場合に、前記抽出された識別子を他の装置と共有可能な形式の識別子に変換する以後の処理を実行することを特徴とする請求項１１に記載のファイル管理方法。
【請求項１３】
前記ファイル管理方法は、さらに、
前記プロセッサが、前記ファイルシステムを前記仮想的な名前空間に接続する場合に、前記ファイルシステムが接続される前記仮想的な名前空間の場所の上位のディレクトリに設定されたアクセス情報を取得し、
前記プロセッサが、前記取得したアクセス情報から継承の設定が有るアクセス情報を抽出することを特徴とする請求項１０に記載のファイル管理方法。
【請求項１４】
前記ファイル管理方法は、さらに、前記プロセッサが、前記アクセス要求から抽出された識別子に基づいて取得したアクセス情報と、前記上位のディレクトリに設定された、継承の設定が有るアクセス情報とを合成することを特徴とする請求項１０に記載のファイル管理方法。
【請求項１５】
前記ファイル管理方法は、さらに、前記プロセッサが、前記アクセス要求から抽出された識別子に基づいて取得したアクセス情報の後に、前記上位のディレクトリに設定された、継承の設定が有るアクセス情報を追加することによって、アクセス情報を合成することを特徴とする請求項１４に記載のファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサーバがクライアントに提供するファイルシステム名前空間を仮想化する装置に関する。
【背景技術】
【０００２】
ファイルサーバは、ネットワークを通して複数のクライアントにファイル共有サービスを提供する。クライアントは、ファイルサーバに格納されたファイルを他のクライアントと共有する。こうすることによって、複数の利用者が特定のファイルに格納されたデータを共有できる。
【０００３】
ファイルサーバへ格納されるデータ量の増加に伴い、企業や団体で運用されるファイルサーバ数は増加する傾向にある。そのため、様々なファイルサーバにファイルが分散し、ファイルの保存場所の把握が困難となっている。
【０００４】
その問題を解決するために、グローバルネームスペース（ＧＮＳ）技術がある。ＧＮＳはファイルサーバ毎に個別に管理されたファイル名前空間を一つに統合して、仮想的なファイル名前空間を作成し、作成された仮想名前空間をクライアントへ提供する。これによって、様々なファイルサーバ上のデータを統合されたファイルアクセスパスでアクセス可能とすることができる。このように、ＧＮＳはファイルサーバを仮想化する機能を提供する。
【０００５】
一方、ファイルサーバで管理されるファイルにアクセス可能なユーザを制限するために、ファイルのアクセスが制御されている。通常、ファイルサーバは、部門等の単位で運用されており、部門内のユーザに対してファイルのアクセスを許可している。また、ファイル毎にアクセスを許可するユーザを設定し、情報漏洩を防止している。このようなアクセス制御方式にアクセス制御リスト（ＡＣＬ）と呼ばれる方式がある。
【０００６】
ＡＣＬは、「ユーザ」と「操作」と「アクセス可否」とを組みにしたアクセス制御エントリ（ＡＣＥ）を集めて構成される。
【０００７】
但し、ＡＣＥは０個でもよく、その場合はファイル所有者以外のすべてのユーザがアクセスを拒否される。
【０００８】
また、ＡＣＬには、あるディレクトリへ設定したＡＣＬを、そのディレクトリに含まれるファイルシステムオブジェクト（例えば、ファイル及びディレクトリ）へ設定する「継承機能」がある。継承機能が有効となっているＡＣＬを継承ＡＣＬと称する。また、継承ＡＣＬが設定されたファイルシステムオブジェクトの上位ディレクトリを親ディレクトリと称し、また、継承ＡＣＬが設定されたファイルシステムオブジェクトを子ファイル又は子ディレクトリと称する。
【０００９】
ＧＮＳでは、中間装置によって、ファイルサーバを統合して仮想的な名前空間をクライアントへ提供している。クライアントからは通常のファイルサーバへのアクセスと同じく、アクセス要求を中間装置へ送信する。中間装置は、通常のファイルサーバと同じに認識されるため、ＧＮＳにおいてもアクセス制御機能を提供する必要がある。
【特許文献１】特開２００３−２０３０２９号公報
【特許文献２】米国特許第６０６１６８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ＧＮＳは、複数のファイルサーバによって提供されるファイル名前空間を、一つの仮想的なファイル名前空間へ接続する。クライアントは仮想的なファイル名前空間内のファイルツリーに対して、ファイルアクセスを要求する。
【００１１】
このとき、クライアントから仮想ファイル名前空間のディレクトリに継承ＡＣＬを設定すると、その継承ＡＣＬはディレクトリに格納されているファイルシステムオブジェクトにも継承ＡＣＬが設定される。例えば、ファイルサーバＡにあるディレクトリを親ディレクトリとして、その親ディレクトリの下位のディレクトリにファイルサーバＢを接続した場合、ファイルサーバＡの親ディレクトリと、ファイルサーバＢ内のファイルシステムオブジェクトとは、継承ＡＣＬが異なった状態となる。
【００１２】
ここで、ＧＮＳの構成方法と継承ＡＣＬの付与について考慮する。ＧＮＳでは、仮想ファイル名前空間へファイルサーバを接続する。接続元となる親ディレクトリに継承ＡＣＬが設定されている場合、そのまま仮想ファイル名前空間へ接続すると、ファイルツリーの途中から継承ＡＣＬが設定されていない状態となる。
【００１３】
そのため、親ディレクトリに継承ＡＣＬが設定されているにもかかわらず、子ファイル又は子ディレクトリに継承ＡＣＬが設定されていない状態となる。この状態でＧＮＳを運用し、親ディレクトリのＡＣＬによってアクセス可否を判定すると、本来、ファイルへのアクセスを禁止されるユーザにアクセスを許可する可能性がある。
【００１４】
さらに、ＧＮＳを運用して継承ＡＣＬが付与された状態で、接続しているファイルサーバを切り離すと、切り離された後もファイルサーバ内のファイルシステムオブジェクトに継承ＡＣＬが設定されたままとなる。このファイルサーバを別のＧＮＳツリーへ接続した場合、不要な継承ＡＣＬが設定され続け、その継承ＡＣＬによって、ファイルへのアクセスが禁止されるユーザにアクセスを許可する可能性がある。
【００１５】
本発明は、ＧＮＳで構成定義を変更する前後で、継承ＡＣＬを正しく設定して、ファイルへのアクセス可否を適切に判定することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の代表的な一例を示せば以下の通りである。すなわち、ファイルシステムを格納する少なくとも一つのファイルサーバと、前記ファイルサーバによって提供されるファイルシステムを仮想的な名前空間に接続する中間装置と、前記ファイルサーバと前記中間装置とを接続するネットワークと、を備え、前記仮想的な名前空間内に接続されたファイルシステムを提供する計算機システムであって、前記中間装置は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、前記ファイルシステムを前記仮想的な名前空間に接続する場合に、前記ファイルシステムが接続される前記仮想的な名前空間の場所の上位のディレクトリに設定されたアクセス情報を取得し、前記取得したアクセス情報の継承の設定の有無を判定し、前記継承の設定が有る前記取得したアクセス情報を前記接続されるファイルシステムに設定し、前記ファイルシステムを前記仮想的な名前空間から分離する場合に、前記ファイルシステムが接続されている前記仮想的な名前空間の場所の上位のディレクトリに設定されているアクセス情報を取得し、前記取得したアクセス情報の継承の設定の有無を判定し、前記継承の設定が有る前記取得したアクセス情報を前記分離されるファイルシステムのアクセス情報から削除する。
【発明の効果】
【００１７】
本発明の一実施形態によると、ＧＮＳで構成定義を変更する前後で、継承ＡＣＬを正しく作用させることが可能となる。
【発明を実施するための最良の形態】
【００１８】
まず、本発明の概要について説明する。
【００１９】
本発明の実施の形態の計算機システムは、ＧＮＳで、仮想ファイル名前空間に新たなファイルサーバ（ファイルシステム）を接続するときに、接続元のツリーに継承ＡＣＬが設定されている場合は、ファイルサーバを仮想ファイル名前空間へ接続する時に継承ＡＣＬを設定する。また、逆に、ファイルサーバを仮想ファイル名前空間から切断するときに、接続元のツリーに設定されている継承ＡＣＬを削除する。これら二つの処理をＧＮＳの構成定義時に実行することによって、継承ＡＣＬを正しく設定可能とする。
【００２０】
また、本発明の別の実施の形態の計算機システムは、ＧＮＳを提供する中間装置がファイルアクセス要求を受け取ったときに、継承ＡＣＬとファイルに設定されているＡＣＬとを合成し、ファイルへのアクセス可否を判定する。こうすることによって、アクセス可否の判定時のみに一時的に継承ＡＣＬが作成されるため、継承ＡＣＬを格納しておくディスク資源の消費を押さえることができる。また、ファイルサーバの接続時の処理が軽くなり、迅速にファイルサーバを接続することができる。
【００２１】
また、本発明の別の実施の形態の計算機システムは、ＧＮＳを提供する中間装置がファイルアクセス要求を受け取った時に、継承ＡＣＬに基づいてファイルのアクセス可否を判定し、その判定でアクセス可否が決定しない場合は、ファイルに設定されているＡＣＬでアクセスの可否を判定する。こうすることによって、継承ＡＣＬのみでアクセス可否を決定することができれば、高速にアクセス可否を判定できる。
【００２２】
本発明の実施形態について図面を参照して詳細に説明する。
【００２３】
＜第１実施形態＞
図１は、本発明の第１の実施の形態におけるクライアント・サーバ型の計算機システム（ネットワークファイルシステム）のシステム構成図である。
【００２４】
図１に示すように、第１の実施の形態のクライアント・サーバ型の計算機システムは、少なくとも１台のクライアント計算機１００、少なくとも１台の中間装置２００、及び、少なくとも１台の末端装置３００を備える。さらに、計算機システムは、管理装置５０００を備える。
【００２５】
なお、計算機システムが、末端装置３００を１台も備えなくてもよい。クライアント１００、中間装置２００、管理装置５０００及び末端装置３００は、それぞれコンピュータによって構成され、ＬＡＮ又はインターネット等のネットワーク１０１に接続され、相互にネットワーク１０１を介して通信可能となっている。
【００２６】
末端装置３００は、クライアント１００にファイルサービスを提供するファイルサーバである。
【００２７】
中間装置２００は、ファイルサービスを利用するクライアント１００と、ファイルサービスを提供する末端装置３００との間に配置される。中間装置２００は、クライアント１００から末端装置３００への要求と、末端装置３００からクライアント１００への応答とを中継するスイッチである。また、中間装置２００は、クライアント１００にファイルサービスを提供するファイルサーバである。つまり、中間装置２００は末端装置としての機能も有する。
【００２８】
管理装置５０００は、ＧＮＳの管理者がＧＮＳの構成を定義するために利用する管理用の端末装置である。管理装置５０００は、図１に示すように独立に存在してもよい。また、クライアント１００、中間装置２００又は末端装置３００において、管理プログラム５００３を動作させることによって、管理装置５０００の機能を提供してもよい。
【００２９】
クライアント１００から中間装置２００及び末端装置３００への要求は、中間装置２００及び末端装置３００へ何らかの処理を要求するメッセージ信号であり、中間装置２００及び末端装置３００からクライアント１００への応答は、中間装置２００及び末端装置３００が要求に対して応答するメッセージ信号である。さらに、管理装置５０００から中間装置２００への要求は、何らかの処理を要求するメッセージ信号である。
【００３０】
なお、中間装置２００は、論理的に、クライアント１００と末端装置３００の間に位置すればよい。すなわち、図１では、クライアント１００、中間装置２００及び末端装置３００が同一のネットワーク１０１に接続されているが、論理的には、中間装置２００は各クライアント１００と各末端装置３００との間に配置されており、クライアント１００と末端装置３００との通信を中継する。
【００３１】
図２は、本発明の第１の実施の形態における中間装置２００の構成を示すブロック図である。
【００３２】
図２に示すように、第１の実施の形態の中間装置２００は、少なくとも一つのプロセッサ２０１と、メモリ２０２と、メモリ−入出力バス２０４と、入出力コントローラ２０５と、記憶装置２０６とを備える。
【００３３】
メモリ２０２は、構成情報管理プログラム４００と、スイッチプログラム６００と、ファイルシステムプログラム２０３と、継承ＡＣＬ設定／削除プログラム５１００とを格納する。プロセッサ２０１が、これらのメモリ２０２に格納されたプログラムを実行することによって、中間装置２００の各機能が実現される。
【００３４】
継承ＡＣＬ設定／削除プログラム５１００は、継承ＡＣＬ情報５３００を含む。なお、継承ＡＣＬ情報５３００は、継承ＡＣＬ設定／削除プログラム５１００中に図示したが、継承ＡＣＬ設定／削除プログラム５１００とは別に構成されていてもよい。
【００３５】
メモリ−入出力バス２０４は、プロセッサ２０１、メモリ２０２及び入出力コントローラ２０５を接続し、これらの構成間でデータを転送する。入出力コントローラ２０５は、ネットワーク１０１を介して、クライアント１００及び末端装置３００等と接続され、これらの装置との間でデータを入出力する。また、入出力コントローラ２０５は、記憶装置２０６と接続され、記憶装置２０６との間でデータを入出力する。
【００３６】
記憶装置２０６は、ファイル等のデータを管理する少なくとも一つのファイルシステム２０７を格納する。このファイルシステム２０７は、ファイルシステムプログラム２０３によって提供される。また、記憶装置２０６は、既存ＡＣＬ情報（図１５参照）を格納する。
【００３７】
図３は、本発明の第１の実施の形態における末端装置３００の構成を示すブロック図である。
【００３８】
図３に示すように、第１の実施の形態の末端装置３００は、少なくとも一つのプロセッサ３０１と、メモリ３０２と、メモリ−入出力バス３０４と、入出力コントローラ３０５と、記憶装置３０６とを備える。
【００３９】
メモリ３０２は、ファイルシステムプログラム２０３を格納する。なお、図３には示していないが、メモリ３０２は、さらに構成情報管理プログラム４００を格納してもよい。
【００４０】
メモリ−入出力バス３０４は、プロセッサ３０１、メモリ３０２及び入出力コントローラ３０５を接続し、これらの構成間でデータを転送する。入出力コントローラ３０５は、ネットワーク１０１を介して、クライアント１００及び中間装置２００等と接続され、これらの装置との間でデータを入出力する。また、入出力コントローラ３０５は、記憶装置３０６と接続され、記憶装置３０６との間でデータを入出力する。
【００４１】
記憶装置３０６は、ファイル等のデータを管理する少なくとも一つのファイルシステム３０７を格納する。このファイルシステム３０７は、ファイルシステムプログラム２０３によって提供される。
【００４２】
図４は、本発明の第１の実施の形態の中間装置２００における構成情報管理プログラム（サーバ）４００ｓの構成を示す機能ブロック図であり、図５は、中間装置２００における構成情報管理プログラム（クライアント）４００ｃの構成を示す機能ブロック図である。
【００４３】
複数の中間装置２００の１台（代表ノード）では、構成情報管理プログラム（サーバ）４００ｓ（図４）が動作し、他の中間装置２００では、構成情報管理プログラム（クライアント）４００ｃ（図５）が動作している。
【００４４】
図４に示すように、第１の実施の形態の構成情報管理プログラム（サーバ）４００ｓは、ＧＮＳ構成情報管理サーバ部４０１ｓと、中間装置情報管理サーバ部４０３と、構成情報通信部４０４とを備える。また、構成情報管理プログラム（サーバ）４００ｓが動作する中間装置２００は、共有ＩＤ空き管理リスト４０２と、中間装置構成情報リスト４０５と、ＧＮＳ構成情報テーブル１２００ｓとを格納する。
【００４５】
ＧＮＳ構成情報管理サーバ部４０１ｓは、中間装置２００のファイルシステム２０７によって提供されるディレクトリ構造を、ＧＮＳ空間にマウントし、さらにＧＮＳツリー構造を管理する。共有ＩＤ空き管理リスト４０２は、使用可能な共有ＩＤをプールするリストである。ＧＮＳ構成情報テーブル１２００ｓは、ＧＮＳの構成の情報を保持するテーブルで、その詳細は、図１４を用いて後述する。
【００４６】
中間装置情報管理サーバ部４０３は、複数の中間装置２００を統合的に処理するための処理を行う。中間装置構成情報リスト４０５は、複数の中間装置２００の構成の情報を保持する。
【００４７】
構成情報通信部４０４は、ネットワーク１０１との間のプロトコルを制御する。
【００４８】
図５に示すように、第１の実施の形態の構成情報管理プログラム（クライアント）４００ｃは、ＧＮＳ構成情報管理クライアント部４０１ｃと、構成情報通信部４０４とを備える。また、構成情報管理プログラム（クライアント）４００ｃが動作する中間装置２００は、ＧＮＳ構成情報テーブルキャッシュ１２００ｃを格納する。
【００４９】
ＧＮＳ構成情報管理クライアント部４０１ｃは、中間装置２００のファイルシステム２０７によって提供されるディレクトリ構造を、ＧＮＳ空間にマウントし、さらにＧＮＳツリー構造を管理する。また、ＧＮＳ構成情報管理クライアント部４０１ｃは、ＧＮＳ構成情報テーブルキャッシュ１２００ｃに保持される情報を、構成情報管理プログラム（サーバ）４００ｓのＧＮＳ構成情報テーブル１２００ｓと同期する。
【００５０】
ＧＮＳ構成情報テーブルキャッシュ１２００ｃは、ＧＮＳ構成情報テーブル１２００ｓと同じ情報を格納する。すなわち、全ての中間装置２００が、ＧＮＳ構成情報テーブルに同じ情報を保持している。構成情報通信部４０４は、ネットワーク１０１との間のプロトコルを制御する。
【００５１】
図６は、本発明の第１の実施の形態の中間装置２００におけるスイッチプログラム６００の構成を示す機能ブロック図である。
【００５２】
図６に示すように、第１の実施の形態のスイッチプログラム６００は、クライアント通信部６０６と、中間・末端装置通信部６０５と、ファイルアクセス管理部７００（図７参照）と、オブジェクトＩＤ変換処理部６０４と、擬似ファイルシステム６０１とを備える。
【００５３】
クライアント通信部６０６は、クライアント１００からの要求を受信し、受信した要求をファイルアクセス管理部７００に出力する。また、クライアント通信部６０６は、ファイルアクセス管理部７００から出力されたデータを、クライアント１００への応答として送信する。
【００５４】
中間・末端装置通信部６０５は、ファイルアクセス管理部７００から出力されたデータ及びオブジェクトＩＤ変換処理部６０４から出力されたデータを、中間装置２００又は末端装置３００への要求として送信する。また、中間・末端装置通信部６０５は、中間装置２００及び末端装置３００からの応答を受信し、ファイルアクセス管理部７００又はオブジェクトＩＤ変換処理部６０４へ出力する。
【００５５】
ファイルアクセス管理部７００は、クライアント通信部６０６から出力されたデータを解析し、クライアント１００からの要求の処理方法を決定し、決定された処理方法を中間・末端装置通信部６０５又はオブジェクトＩＤ変換処理部６０４に出力する。また、ファイルアクセス管理部７００は、クライアント１００からの要求が自中間装置２００に備わるファイルシステム２０７（ローカルファイルシステム）に対する要求である場合、ファイルシステムプログラム２０３を通じて、記憶装置２０６に格納されたデータを取得し、取得したデータをクライアント通信部６０６へ出力する。さらに、ファイルアクセス管理部７００は、継承ＡＣＬ設定／削除プログラム５１００から、中間装置２００及び末端装置３００が管理するファイルシステムオブジェクトのＡＣＬの設定及び削除の要求を受け取る。そして、ＡＣＬの設定又は削除の要求を、中間・末端装置通信部６０５を通して、処理の対象となる中間装置２００又は末端装置３００へ送信する。
【００５６】
オブジェクトＩＤ変換処理部６０４は、クライアント１００から受信した要求メッセージに含まれるオブジェクトＩＤを末端装置３００が認識できる形式に変換する。また、オブジェクトＩＤ変換処理部６０４は、末端装置３００から受信した応答メッセージに含まれるオブジェクトＩＤをクライアント１００が認識できる形式に変換する。
【００５７】
ここで、オブジェクトＩＤは、ファイルシステムで管理されるファイルに付される識別子であり、例えば、ＮＦＳにおいてはファイルハンドルである。
【００５８】
擬似ファイルシステム６０１は、中間装置２００及び末端装置３００のファイルシステム２０７を、擬似ファイルシステム６０１のルートディレクトリより下位のディレクトリにマッピングすることによって作成される、仮想的なファイルシステムである。
【００５９】
図７は、本発明の第１の実施の形態におけるファイルアクセス管理部７００の構成を示す機能ブロック図である。
【００６０】
図７に示すように、ファイルアクセス管理部７００は、要求データ処理部７０１と、要求データ解析部７０２と、応答データ出力部７０３とを備える。また、ファイルアクセス管理部７００が動作する中間装置２００は、スイッチ情報管理テーブル８００（図１０参照）と、サーバ情報管理テーブル９００（図１１参照）と、アルゴリズム情報管理テーブル１０００（図１２参照）と、接続ポイント管理テーブル１１００（図１３参照）とを備える。
【００６１】
なお、スイッチ情報管理テーブル８００、サーバ情報管理テーブル９００、アルゴリズム情報管理テーブル１０００、及び接続ポイント管理テーブル１１００は、ファイルアクセス管理部７００中に図示したが、ファイルアクセス管理部７００とは別に構成されていてもよい。
【００６２】
要求データ解析部７０２は、クライアント通信部６０６から出力された要求データを解析し、要求されたデータに対応するファイルのオブジェクトＩＤを取得する。さらに、要求データ解析部７０２は、取得したオブジェクトＩＤから共有ＩＤを取得する。
【００６３】
要求データ処理部７０１は、要求データ解析部７０２が取得した共有ＩＤに基づいて、スイッチ情報管理テーブル８００と、サーバ情報管理テーブル９００と、アルゴリズム情報管理テーブル１０００と、接続ポイント管理テーブル１１００とを参照し、要求データを処理する。
【００６４】
応答データ出力部７０３は、要求データ処理部７０１から出力されたデータを、クライアント１００が理解可能な形式に変換して、変換されたデータをクライアント通信部６０６へ出力する。
【００６５】
図８は、本発明の第１の実施の形態における管理装置５０００の構成を示すブロック図である。
【００６６】
図８に示すように、管理装置５０００は、本実施形態の末端装置は、少なくとも一つのプロセッサ５０１と、メモリ５０２と、メモリ−入出力バス５０４と、入出力コントローラ５０５と、管理者ユーザインターフェース５０６とを備える。
【００６７】
メモリ５０２は、管理プログラム５００３を格納する。プロセッサ５０１が、これらのメモリ５０２に格納されたプログラムを実行することによって、管理装置５０００の各機能が実現される。
【００６８】
メモリ−入出力バス５０４は、プロセッサ５０１、メモリ５０２及び入出力コントローラ５０５を接続し、これらの構成間でデータを転送する。入出力コントローラ５０５は、ネットワーク１０１を介して、クライアント１００、中間装置２００及び末端装置３００と接続され、これらの装置との間でデータを入出力する。
【００６９】
なお、管理プログラム５００３は他の装置（例えば、中間装置２００）にあってもよい。この場合は、他の装置が管理装置５０００として動作する。
【００７０】
図９は、本発明の第１の実施の形態における継承ＡＣＬ設定／削除プログラム５１００の構成を示す機能ブロック図である。
【００７１】
図９に示すように、継承ＡＣＬ設定／削除プログラム５１００は、ＡＣＬ設定部５１０１と、ファイル検索部５１０２と、ＡＣＬ取得部５１０３と、継承ＡＣＬ設定／削除処理部５１０４と、継承ＡＣＬ情報５３００とを含む。なお、継承ＡＣＬ情報５３００は、継承ＡＣＬ設定／削除プログラム５１００中に図示したが、継承ＡＣＬ設定／削除プログラム５１００とは別に構成されていてもよい。
【００７２】
ＡＣＬ設定部５１０１は、ファイルシステムプログラム２０３又はスイッチプログラム６００へ、承継ＡＣＬ設定／削除要求を送信する。ファイル検索部５１０２は、仮想名前空間を構成する際に、継承ＡＣＬを付与又は削除する対象のファイルを検索する。
【００７３】
ＡＣＬ取得部５１０３は、ファイルシステムオブジェクトに付与されたＡＣＬを取得する。また、ＡＣＬ取得部５１０３は、スイッチプログラム６００又はファイルシステムプログラム２０３へ、ＡＣＬを取得するための要求を送信する。
【００７４】
継承ＡＣＬ設定／削除処理部５１０４は、仮想名前空間の構成変更時に、構成情報管理プログラム４００から、仮想名前空間の構成変更要求を受け取り、継承ＡＣＬを設定又は削除する。継承ＡＣＬ情報５３００は、ファイルシステムオブジェクトに設定される継承ＡＣＬ情報を保持する。なお、本実施の形態では、継承ＡＣＬ情報はテーブル形式で保持される。
【００７５】
図１０は、本発明の第１の実施の形態におけるスイッチ情報管理テーブル８００の構成を示す図である。
【００７６】
スイッチ情報管理テーブル８００は、共有ＩＤ８０１と、サーバＩＤ８０２と、アルゴリズム情報ＩＤ８０３との組によって構成されたエントリを格納するテーブルである。
【００７７】
共有ＩＤ８０１は、ファイルサービスの公開単位を特定する識別子であり、共有毎に一意に設定される。サーバＩＤ８０２は、サーバを識別するための識別子である。アルゴリズム情報ＩＤ８０３は、オブジェクトＩＤを変換するアルゴリズムを識別する識別子である。
【００７８】
スイッチ情報管理テーブル８００を参照することによって、サーバ情報及びアルゴリズム情報を特定するためのＩＤを取得することが可能になる。スイッチ情報管理テーブル８００では、同一の共有ＩＤに対して複数エントリを持つことが可能である。
【００７９】
また、一つのエントリに共有ＩＤ、サーバＩＤ、アルゴリズム情報ＩＤが一つずつ記録されるが、一つのエントリに一つの共有ＩＤと２組以上のサーバＩＤ及びアルゴリズム情報ＩＤの組が記録されてもよい。また、一組以上のサーバＩＤ及びアルゴリズム情報ＩＤがリスト形式で格納され、各組が共有ＩＤに関連付けられてもよい。
【００８０】
図１１は、本発明の第１の実施の形態におけるサーバ情報管理テーブル９００の構成を示す図である。
【００８１】
サーバ情報管理テーブル９００は、サーバＩＤ９０１と、サーバ情報９０２との組によって構成されたエントリを格納するテーブルである。サーバ情報９０２は、例えば、ＩＰアドレスやソケット構造体等である。スイッチ情報管理テーブル８００と、サーバ情報管理テーブル９００とを参照することによって、クライアント１００からの要求の処理先を特定することが可能になる。
【００８２】
図１２は、本発明の第１の実施の形態におけるアルゴリズム情報管理テーブル１０００の構成を示す図である。
【００８３】
アルゴリズム情報管理テーブル１０００は、アルゴリズム情報ＩＤ１００１と、アルゴリズム情報１００２との組によって構成されたエントリを格納するテーブルである。アルゴリズム情報１００２は、オブジェクトＩＤを変換する際に必要な情報であり、例えば、オブジェクトＩＤの変換規則、オブジェクトＩＤの変換規則の格納場所を示すポインタである。
【００８４】
スイッチ情報管理テーブル８００と、アルゴリズム情報管理テーブル１０００とを参照することによって、オブジェクトＩＤの変換方法を特定することが可能になる。
【００８５】
なお、第１の実施の形態では、スイッチ情報管理テーブル８００と、サーバ情報管理テーブル９００と、アルゴリズム情報管理テーブル１０００とは別々のテーブルで構成されているが、スイッチ情報管理テーブル８００にサーバ情報９０２及びアルゴリズム情報１００２を含めてもよい。
【００８６】
図１３は、本発明の第１の実施の形態における接続ポイント管理テーブル１１００の構成を示す図である。
【００８７】
接続ポイント管理テーブル１１００は、接続元オブジェクトＩＤ１１０１と、接続先共有ＩＤ１１０２と、接続先オブジェクトＩＤ１１０３との組によって構成されたエントリを格納するテーブルである。
【００８８】
接続ポイント管理テーブル１１００を参照することによって、中間装置２００は、ある共有から別の共有へ跨るアクセスの場合も、クライアント１００が単一の共有へのアクセス手順のみでアクセスを可能とするように、名前空間を仮想化できる。
【００８９】
なお、接続ポイント管理テーブル１１００に格納される接続元オブジェクトＩＤ１１０１及び接続先オブジェクトＩＤ１１０３は、クライアント１００と中間装置２００でやり取りされるものでもよい。また、それとは異なっていてもオブジェクトを特定できる識別子であればよい。
【００９０】
図１４は、本発明の第１の実施の形態におけるＧＮＳ構成情報テーブル１２００ｓの構成を示す図である。
【００９１】
ＧＮＳ構成情報テーブル１２００ｓは、共有ＩＤ１２０１と、ＧＮＳパス名１２０２と、サーバ名１２０３と、共有パス名１２０４と、共有設定情報１２０５と、アルゴリズム情報ＩＤ１２０６との組によって構成されたエントリを格納するテーブルである。
【００９２】
共有ＩＤ１２０１は、ファイルサービスの公開単位を特定するＩＤである。ＧＮＳパス名１２０２は、その共有ＩＤに対応する共有を単一名前空間に統合するパスである。サーバ名１２０３は、その共有ＩＤに対応する共有を保有するサーバ名である。共有パス名１２０４は、その共有ＩＤに対応する共有のサーバ上でのパス名である。
【００９３】
共有設定情報１２０５は、その共有ＩＤに対応する共有のトップディレクトリに設定する情報であり、具体的には読み込み専用を示す情報や、アクセス可能なホストの制限に関する情報等である。アルゴリズム情報ＩＤ１２０６は、その共有ＩＤに対応する共有のオブジェクトＩＤの変換方法を示す識別子である。
【００９４】
なお、ＧＮＳ構成情報テーブル１２００ｓは、一つの共有ＩＤに対して複数エントリを持っていてもよい。
【００９５】
なお、前述したように、ＧＮＳ構成情報テーブルキャッシュ１２００ｃは、ＧＮＳ構成情報テーブル１２００ｓと同じ構造を有し、同じ情報を格納する。
【００９６】
次に、アクセス制御リスト（ＡＣＬ：Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）について説明する。ＡＣＬは、継承ＡＣＬ情報５３００や既存ＡＣＬ情報５２００と同じ表形式の情報であり、継承ＡＣＬ情報５３００と既存ＡＣＬ情報５２００とはＡＣＬの一つである。このＡＣＬを構成する一つのエントリがアクセス制御エントリ（ＡＣＥ：Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｅｎｔｒｙ）である。
【００９７】
図１５は、本発明の第１の実施の形態における継承ＡＣＬ情報５３００の構成を示す図である。
【００９８】
継承ＡＣＬ情報５３００は、アカウント５３０１と、マスク５３０２と、拒否／許可５３０３と、継承先５３０４との組によって構成されたエントリを格納するテーブルである。
【００９９】
アカウント５３０１は、このエントリがアクセス制御の対象とするアカウントが記録される。例えば、アカウントはユーザ識別子である。
【０１００】
マスク５３０２は、アクセス制御対象操作を定めるフラグであり、例えば、「読み込み操作」や「書き込み操作」を示すフラグである。
【０１０１】
拒否／許可５３０３は、このエントリが許可を定めるエントリか、又は拒否を定めるエントリかを記録するフラグである。
【０１０２】
継承先５３０４は、このエントリが継承されるべきファイルシステムオブジェクトの種類を記録するフラグである。例えば、ファイルのみに継承される場合は、継承先５３０４にファイルを示すフラグが設定される。一方、いかなるファイルシステムオブジェクトにも継承されない場合は、このフラグは設定されない（値が”０”となる）。
【０１０３】
次に、既存ＡＣＬ情報５２００の構成について説明する、既存ＡＣＬ情報５２００は、  図１５に示した継承ＡＣＬ情報５３００と同じフィールドによって構成されたエントリを格納する。各フィールドは、継承ＡＣＬ情報５３００と同じ意味である。
【０１０４】
図１６Ａ及び図１６Ｂは、本発明の第１の実施の形態における、クライアント１００、中間装置２００、末端装置３００の間でやり取りされるオブジェクトＩＤのフォーマットを示す図である。
【０１０５】
クライアント１００と中間装置２００との間でやり取りされるオブジェクトＩＤのフォーマットは、共有ＩＤフォーマットでオブジェクトＩＤを生成できる装置のオブジェクトと、共有ＩＤフォーマットでオブジェクトＩＤを生成できない装置のオブジェクトで異なる。
【０１０６】
共有ＩＤフォーマットでオブジェクトを生成できる装置は、中間装置２００と一部の末端装置３００である。この場合、クライアント１００と中間装置２００との間、中間装置２００同士の間、及び中間装置２００と末端装置３００との間でやり取りされるオブジェクトＩＤフォーマットは不変である（変換されない）。
【０１０７】
共有ＩＤフォーマットでオブジェクトＩＤを生成できる装置のオブジェクトＩＤのフォーマットは、図１６Ａに示すように、オブジェクトＩＤ形式１３０１と、共有ＩＤ１３０２と、ファイルＩＤ１３０３とを含む。
【０１０８】
オブジェクトＩＤ形式フィールド１３０１には、オブジェクトＩＤのファーマットを示すフィールドで、共有ＩＤフォーマットであることを示す値が記録される。共有ＩＤフィールド１３０２には、共有を特定（共有は複数ある場合もある）するための共有ＩＤが記録される。ファイルＩＤフィールド１３０３には、そのオブジェクトを保有する装置がオブジェクトを特定するためのＩＤが記録される。
【０１０９】
一方、共有ＩＤフォーマットでオブジェクトＩＤを生成できない装置は、一部の末端装置３００である。例えば、オブジェクトＩＤのビット数が異なる末端装置３００（ファイルシステム３０７）は、共有ＩＤフォーマットでオブジェクトＩＤを生成できない。
【０１１０】
この場合、クライアント１００と中間装置２００との間でやり取りされるオブジェクトＩＤフォーマットと、中間装置２００と末端装置３００との間でやり取りされるオブジェクトＩＤフォーマットとは異なる。クライアント１００と中間装置２００との間でやり取りされるオブジェクトＩＤのフォーマットは、図１６Ｂに示すように、オブジェクトＩＤ形式フィールド１３０１、共有ＩＤフィールド１３０２、変換後の装置オブジェクトＩＤフィールド１３０４を含む。オブジェクトＩＤ形式フィールド１３０１、共有ＩＤフィールド１３０２は、先に図１６Ａで説明したとおりである。
【０１１１】
変換後の装置オブジェクトＩＤフィールド１３０４には、中間装置２００と末端装置３００との間でやり取りされるオブジェクトＩＤであるオリジナルの装置オブジェクトＩＤ１３０５を変換した値が記録される。オブジェクトＩＤフォーマットが可変で、その長さに余裕がある場合は、オリジナルの装置オブジェクトＩＤ１３０５をそのまま記録してもよい。中間装置２００と末端装置３００との間でやり取りされるオブジェクトＩＤから、クライアント１００と中間装置２００とのでやり取りされるオブジェクトＩＤへの変換を正変換といい、クライアント１００と中間装置２００との間でやり取りされるオブジェクトＩＤから、中間装置２００と末端装置３００との間でやり取りされるオブジェクトＩＤへの変換を逆変換といい。この変換はアルゴリズム情報で特定された規則に基づいて行われる。
【０１１２】
次に、第１の実施の形態の中間装置２００の動作について説明する。第１の実施の形態の中間装置２００は、複数の共有を単一の共有に仮想化したファイル共有サービスをクライアント１００に提供する。なお、以下に説明する処理は、プロセッサ２０１がメモリ２０２に格納されたプログラムを実行することによって、処理が行われる。
【０１１３】
図１７は、本発明の第１の実施の形態における、中間装置２００による共有の名前空間を仮想化する処理を示すフローチャートである。
【０１１４】
クライアント通信部６０６は、クライアント１００よりファイルアクセス要求を受信する。このファイルアクセス要求は、例えば、ＮＦＳプロトコルのリモートプロシージャーコール（ＲＰＣ）である。ファイルアクセス管理部７００は受信した要求からオブジェクトＩＤを抽出する。そして、抽出されたオブジェクトＩＤの形式が共有ＩＤ形式か否かを判定する（Ｓ１０１）。
【０１１５】
受信した要求から抽出されたオブジェクトＩＤが共有ＩＤ形式でなかった場合は、従来のファイルサービス処理を行い（Ｓ１０２）、処理を終了する。
【０１１６】
受信した要求から抽出されたオブジェクトＩＤが共有ＩＤ形式であった場合は、受信した要求の中のオブジェクトＩＤの共有ＩＤと一致する共有ＩＤを含むエントリがスイッチ情報管理テーブル８００にあるか否かを判定する。スイッチ情報管理テーブル８００中に、条件に合致する（同じ共有ＩＤを含む）エントリは、前述したように複数存在する場合がある。
【０１１７】
一致するエントリがない場合は（Ｓ１０５で”ＮＯ”）、この要求は、この要求を受信した中間装置２００が処理を行うべきであると判断し、ＧＮＳローカル処理を行う（Ｓ３００）。なお、ＧＮＳローカル処理（Ｓ３００）は、図１９を用いて後述する。
【０１１８】
一方、一致するエントリがある場合は（Ｓ１０５で”ＹＥＳ”）、この要求は、この要求を受信した中間装置２００以外の中間装置２００が処理を行うべきであると判断し、共有ＩＤが一致するエントリから一組のサーバＩＤとアルゴリズム情報ＩＤとの組を取得する（Ｓ１０６）。条件に合致するエントリが複数ある場合には、ラウンドロビンで取得する情報の組を決めたり、予め測定しておいた応答時間の早いサーバを含む組の情報を取得してもよい。
【０１１９】
次に、アルゴリズム情報管理テーブル１０００を参照し、取得した組のアルゴリズム情報ＩＤと一致するアルゴリズム情報を取得する。取得したアルゴリズム情報に基づいて、要求中に含まれるオブジェクトＩＤを逆変換する（Ｓ１０７）。図１２で示したように、アルゴリズム情報には、何も変換しないアルゴリズムや、オブジェクトＩＤ形式フィールド１３０１と共有ＩＤフィールド１３０２を削除するだけのアルゴリズムや、オブジェクトＩＤ形式フィールド１３０１と共有ＩＤフィールド１３０２を削除した後、変換後の装置オブジェクトＩＤフィールド１３０４等の情報に基づき、オリジナルの装置オブジェクトＩＤを復元するアルゴリズム等がある。
【０１２０】
次に、ファイルアクセス要求レベルでトランザクションを管理しているプロトコルで、要求中にトランザクションＩＤが含まれる場合は、そのトランザクションＩＤを保存し、これから要求を転送する宛先の装置に対するトランザクションＩＤを付与する（Ｓ１０８）。この場合、サーバ情報管理テーブル９００を参照し、取得した組のサーバＩＤと一致するサーバ情報９０２を取得することによって、転送先の装置を特定する。
【０１２１】
次に、サーバ情報９０２に基づいて定められた装置に、変換後のファイルアクセス要求を送信し（Ｓ１０９）、送信先装置からの応答メッセージを待つ（Ｓ１１０）。
【０１２２】
その後、ファイルアクセス要求を送信した装置から応答メッセージを受信したら、応答処理を行い（Ｓ２００）、処理を終了する。なお、応答処理（Ｓ２００）は、図１８を用いて後述する。
【０１２３】
図１８は、本発明の第１の実施の形態における、中間装置２００による他の装置から応答メッセージを受信した際の中間装置２００による応答処理（Ｓ２００）を示すフローチャートである。
【０１２４】
中間装置２００は、末端装置３００又は他の中間装置２００から応答メッセージを受信する（Ｓ２０１）。
【０１２５】
オブジェクトＩＤが応答メッセージ中に含まれている場合は、処理Ｓ１０７で使用されたアルゴリズム情報に基づき、メッセージ中に含まれるオブジェクトＩＤを正変換する（Ｓ２０２）。
【０１２６】
ファイルアクセス要求レベルでトランザクションを管理しているプロトコルで、応答メッセージ中にトランザクションＩＤが含まれる場合は、処理Ｓ１０８において保存されていたトランザクションＩＤを応答メッセージに上書きする（Ｓ２０３）。
【０１２７】
その後、共有を跨るアクセスの場合の特別の処理である接続ポイント処理を行い（Ｓ４００）、応答処理を終了する。なお、接続ポイント処理（Ｓ４００）は、図２０を用いて後述する。
【０１２８】
図１９は、本発明の第１の実施の形態における、ファイルアクセス要求を受信した中間装置２００が処理を行うべき要求であると判断した場合に実行されるＧＮＳローカル処理（Ｓ３００）を示すフローチャートである。
【０１２９】
まず、オブジェクトＩＤ中の共有ＩＤとファイルＩＤに基づいてファイルを特定する（Ｓ３０１）。
【０１３０】
次に、受信した要求中のオペレーション情報に基づいて、応答メッセージを作成する（Ｓ３０２）。なお、受信した要求が応答メッセージ中にオブジェクトＩＤを含めることが必要である場合には、オブジェクトＩＤは、受信した形式と同じ共有ＩＤ型フォーマットを用いる。
【０１３１】
その後、共有を跨るアクセスの場合の特別の処理である接続ポイント処理を行い（Ｓ４００）、ＧＮＳローカル処理を終了する。なお、接続ポイント処理（Ｓ４００）は、図２０を用いて後述する。
【０１３２】
図２０は、本発明の第１の実施の形態における、共有を跨るアクセスの場合の特別な処理である接続ポイント処理（Ｓ４００）を示すフローチャートである。
【０１３３】
まず、応答メッセージ中に、ファイルアクセス要求で指定されたオブジェクトから見て、子オブジェクト又は親オブジェクトのオブジェクトＩＤが含まれるか否かを判定する（Ｓ４０１）。例えば、これは、ＮＦＳでは、ＬＯＯＫＵＰプロシージャの応答メッセージや、ＲＥＡＤ  ＤＩＲプロシージャの応答メッセージや、ＲＥＡＤ  ＤＩＲ  ＰＬＵＳプロシージャの応答メッセージが、このようなオブジェクトＩＤを含む。応答メッセージ中に、このようなオブジェクトＩＤを含まない場合は、接続ポイント処理を終了する。
【０１３４】
子オブジェクト又は親オブジェクトのオブジェクトＩＤが、応答メッセージ中に含まれる場合、応答メッセージ中の最初の子オブジェクト又は親オブジェクトのオブジェクトＩＤを取得する（Ｓ４０２）。
【０１３５】
そして、接続ポイント管理テーブル１１００を参照して、取得したオブジェクトＩＤのオブジェクトが接続ポイントか否かを判定する（Ｓ４０３）。具体的には、取得したオブジェクトＩＤが、接続ポイント管理テーブル１１００の接続元オブジェクトＩＤフィールドに登録されたＩＤと一致するエントリがあるかを検索する。
【０１３６】
オブジェクトＩＤが一致するエントリがない場合は、取得したオブジェクトＩＤのオブジェクトは接続ポイントではないので、応答メッセージ中に他に子オブジェクト又は親オブジェクトのオブジェクトＩＤが含まれているか否かを判定する（Ｓ４０７）。さらに、他のオブジェクトＩＤが含まれてない場合は、接続ポイント処理を終了する。一方、他のオブジェクトＩＤが含まれている場合は、応答メッセージ中の次の子オブジェクト又は親オブジェクトのオブジェクトＩＤを取得する（Ｓ４０８）。そして、Ｓ４０３からの処理を繰り返す。
【０１３７】
一方、オブジェクトＩＤが一致するエントリがある場合は、取得したオブジェクトＩＤのオブジェクトは接続ポイントなので、その応答メッセージ中に含まれる接続元オブジェクトＩＤを接続先オブジェクトＩＤに置換する（Ｓ４０４）。
【０１３８】
次に、そのオブジェクトに関連する付随情報があるか否かを判定する（Ｓ４０５）。例えば、付随情報とは、そのオブジェクトの属性情報である。付随情報がない場合は、Ｓ４０７の処理へ進む。付随情報がある場合は、接続元オブジェクトの付随情報を接続先オブジェクトの付随情報に置換して（Ｓ４０６）、Ｓ４０７の処理へ進む。
【０１３９】
Ｓ４０７以降の処理は先に述べたとおりである。
【０１４０】
以上説明した第１の実施の形態によれば、共有ＩＤ形式でオブジェクトＩＤを生成できる装置ではオブジェクトＩＤ変換が不要なため、ファイルに対するアクセスの遅延（レイテンシ）を短縮できる効果がある。
【０１４１】
次に、管理者が、管理端末５０００の管理者ユーザインターフェース５０６を用いて、ＧＮＳを構成する共有の統合の処理手順について説明する。
【０１４２】
図２１は、本発明の第１の実施の形態の共有統合処理における管理装置５０００と中間装置２００との動作を示すフローチャートである。
【０１４３】
まず、管理者は、管理者ユーザインターフェース５０６から、統合したい共有のサーバ名、アルゴリズム情報ＩＤ、共有パス名、共有設定情報、ＧＮＳパス名を入力する（Ｓ５０１）。ここで、ＧＮＳパス名とは仮想化された一つの共有におけるパス名である。
【０１４４】
これらの入力された情報を、システム内の一つの中間装置２００で動作する構成情報管理プログラム（サーバ）４００ｓに転送する（Ｓ５０２）。
【０１４５】
構成情報管理プログラム（サーバ）４００ｓは、共有ＩＤ空き管理リスト４０２を参照して、システム内で一意の共有ＩＤを選択する（Ｓ５０３）。
【０１４６】
そして、受信した情報及び選択された共有ＩＤに基づいてエントリを生成し、生成されたエントリをＧＮＳ構成情報テーブル１２００ｓに追加する（Ｓ５０４）。
【０１４７】
各中間装置２００に対して、追加されたエントリについてＧＮＳ情報の統合を要求する（Ｓ５０５）。要求を受け取った中間装置２００（構成情報管理プログラム（クライアント）４００ｃが動作する中間装置２００）は、共有統合ローカル処理を行い（Ｓ６００）、その後、共有統合処理を終了する。なお、共有統合ローカル処理（Ｓ６００）は、図２２を用いて後述する。
【０１４８】
図２２は、共有統合処理（図２１）から呼び出される、共有統合ローカル処理（Ｓ６００）を示すフローチャートである。
【０１４９】
まず、追加したエントリと同じ内容を取得し、ＧＮＳ構成情報テーブルキャッシュ１２００ｃに登録する（Ｓ６０１）。次に、そのエントリのサーバ名が自装置であるか否かを判定する（Ｓ６０２）。
【０１５０】
サーバ名が自装置である場合（Ｓ６０２で”ＹＥＳ”）、エントリの情報に基づいて、ＧＮＳツリーの該当する箇所に、ｂｉｎｄマウントを実行する（Ｓ６０５）。そして、継承ＡＣＬ設定処理を実行する（Ｓ１０００）。その後、Ｓ６０６の処理へ進む。なお、継承ＡＣＬ設定処理（Ｓ１０００）は、図２３を用いて後述する。
【０１５１】
一方、サーバ名が自装置でない場合（Ｓ６０２で”ＮＯ”）、エントリの情報に基づいて、ＧＮＳツリーの該当する箇所に、ネットワークマウントを実行する（Ｓ６０３）。そして、スイッチ情報管理テーブル８００と接続ポイント管理テーブル１１００とにエントリを追加する（Ｓ６０４）。
【０１５２】
マウント完了後、共有情報をマウントディレクトリに設定して（Ｓ６０６）、共有統合ローカル処理を終了する。
【０１５３】
図２３は、共有統合ローカル処理（Ｓ６００）から呼び出される、継承ＡＣＬ設定処理（Ｓ１０００）を示すフローチャートである。
【０１５４】
まず、管理者が、管理装置５０００の管理プログラム５００３を通して、新たなファイルサーバをＧＮＳへ接続する要求をすると、中間装置２００の構成情報管理プログラム４００は継承ＡＣＬ設定／削除プログラム５１００へ要求を送る。
【０１５５】
継承ＡＣＬ設定／削除プログラム５１００は、ＧＮＳツリーのマウントポイントの一つ上位のディレクトリに付与されたＡＣＬの中から一つのＡＣＥを取得する（Ｓ１００１）。
【０１５６】
次に、処理がされていないＡＣＥがＡＣＬにあるか否かを判定する（Ｓ１００２）。Ｓ１００２で処理がされていないＡＣＥがあると判定された場合（Ｓ１００２で”ＹＥＳ”）、Ｓ１００１で取得したＡＣＥの継承先情報に基づいて、継承があるか否かを判定する（Ｓ１００３）。そして、抽出されたＡＣＥに継承がある場合（Ｓ１００４で”ＹＥＳ”）、継承ＡＣＬ情報５３００にそのＡＣＥを追加し（Ｓ１００５）、Ｓ１００１へ戻り、他のＡＣＥについてＳ１００１から処理を実行する。一方、抽出されたＡＣＥに継承がない場合（Ｓ１００４で”ＮＯ”）、そのＡＣＥについては何もせずにＳ１００１へ戻る。そして、他のＡＣＥについてＳ１００１から処理を実行する。
【０１５７】
一方、Ｓ１００２で処理がされていないＡＣＥがないと判定された場合（Ｓ１００２で”ＮＯ”）、継承設定メイン処理を実行し（Ｓ１１００）、最後に継承ＡＣＬ情報５３００を削除して（Ｓ１００６）、継承ＡＣＬ設定処理を終了する。なお、継承設定メイン処理（Ｓ１１００）は、図２４を用いて後述する。
【０１５８】
図２４は、継承ＡＣＬ設定処理（Ｓ１０００）から呼び出される、継承ＡＣＬ設定メイン処理（Ｓ１１００）を示すフローチャートである。
【０１５９】
継承ＡＣＬ設定／削除プログラム５１００は、継承ＡＣＬ設定処理（Ｓ１０００）で作成された継承ＡＣＬ情報５３００の継承先５２０４から、ディレクトリへの継承を含む全てのＡＣＥを選択して、マウントポイントのディレクトリへ設定する（Ｓ１１０１）。そして、継承ＡＣＬ設定／削除プログラム５１００は、マウントポイント以下のファイルシステムオブジェクトを一つ選択する（Ｓ１１０２）。
【０１６０】
そして、選択されたファイルシステムオブジェクトがファイルか否かを判定する（Ｓ１１０３）。その結果、選択されたファイルシステムオブジェクトがファイルである場合（Ｓ１１０３で”ＹＥＳ”）、継承ＡＣＬ情報５３００の継承先５２０４から、ファイルへの継承を含むＡＣＥをすべて選択する（Ｓ１１０４）。
【０１６１】
その後、選択されたＡＣＥが既にＡＣＬに設定されているか（設定すべきＡＣＥが重複しているか）否かを判定する（Ｓ１１１０）。その結果、選択されたＡＣＥがＡＣＬに設定されていなければ、選択されたＡＣＥをＡＣＬに設定する（Ｓ１１１１）。一方、選択されたＡＣＥがＡＣＬに設定されていれば、重複するＡＣＥを除き（Ｓ１１５０）、重複しないＡＣＥを設定する（Ｓ１１１１）。
【０１６２】
一方、選択されたファイルシステムオブジェクトがファイル以外（例えば、ディレクトリ）である場合（Ｓ１１０３で”ＮＯ”）、継承ＡＣＬ情報５３００の継承先５２０４から、ディレクトリへの継承を含む全てのＡＣＥを選択する（Ｓ１１０５）。
【０１６３】
その後、選択されたＡＣＥが既にＡＣＬに設定されているか（設定すべきＡＣＥが重複しているか）否かを判定する（Ｓ１１１２）。その結果、選択されたＡＣＥがＡＣＬに設定されていなければ、選択されたＡＣＥをＡＣＬに設定する（Ｓ１１１３）。一方、選択されたＡＣＥがＡＣＬに設定されていれば、重複するＡＣＥを除き（Ｓ１１５１）、重複しないＡＣＥを設定する（Ｓ１１１３）。
【０１６４】
さらに、ディレクトリに格納されているファイル又は下位のディレクトリを選択して、継承ＡＣＬ設定メイン処理（Ｓ１１００）を実行する（Ｓ１１０７）。
【０１６５】
このように、対象となるファイルシステムオブジェクトがディレクトリであれば、そのディレクトリに格納されているファイルシステムオブジェクトを選択し、継承ＡＣＬを設定する。そして、ディレクトリの配下のファイル及びディレクトリに対して、この処理を続けることによって、再帰的に継承ＡＣＬを設定することができ、全てのファイルシステムオブジェクトに継承ＡＣＬを設定できる。
【０１６６】
最後に、未選択のファイルシステムオブジェクトがあるか否かを判定し（Ｓ１１０６）、まだ未選択のものがある場合は（Ｓ１１０６で”ＹＥＳ”）、別のファイルシステムオブジェクトを一つ選択し（Ｓ１１０２）、以降の処理を実行する。一方、ファイルシステムオブジェクトがない場合（Ｓ１１０６で”ＮＯ”）、全てのファイルシステムオブジェクトに継承ＡＣＬの設定が完了しているので、継承ＡＣＬ設定メイン処理を終了する。
【０１６７】
図２５は、本発明の第１の実施の形態における共有分離処理の処理フローを示すフローチャートである。
【０１６８】
共有分離処理は、管理者が管理装置５０００の管理プログラム５００３を通して、ファイルサーバをＧＮＳから分離する要求をしたときに実行される。
【０１６９】
まず、管理者は、管理者ユーザインターフェース５０６から、分離したいディレクトリのＧＮＳパス名を入力する（Ｓ１２０１）。ここで、ＧＮＳパス名とは仮想化された一つの共有におけるパス名である。
【０１７０】
これらの入力された情報を、システム内の一つの中間装置２００で動作する構成情報管理プログラム（サーバ）４００ｓに転送する（Ｓ１２０２）。
【０１７１】
構成情報管理プログラム（サーバ）４００ｓは、Ｓ１２０２で受け取ったＧＮＳパスからＧＮＳ構成情報テーブル１２００ｓのエントリを特定し、ＧＮＳ構成情報テーブル１２００ｓからサーバ名及び共有パス名を取得する（Ｓ１２０３）。
【０１７２】
そして、各中間装置２００の構成情報管理プログラム（クライアント）４００ｃへ、ＧＮＳの分離要求を送信する。
【０１７３】
ＧＮＳの分離要求を受信した中間装置２００（構成情報管理プログラム（クライアント）４００ｃが動作する中間装置２００）は、共有分離ローカル処理１３００を実行する。なお、共有分離ローカル処理（Ｓ１３００）は、図２６を用いて後述する。
【０１７４】
さらに、構成情報管理プログラム（サーバ）４００ｓは、ＧＮＳ構成情報テーブル１２００の不要なエントリを削除する（Ｓ１２０６）。例えば、管理者が要求したＧＮＳパス名とＧＮＳ構成情報テーブル１２００ｓのＧＮＳパス名１２０２とが一致するエントリは不要なエントリである。
【０１７５】
最後に、共有統合処理（図２１のＳ５０３）で選択した共有ＩＤを、共有ＩＤ空き管理リスト４０２戻して（Ｓ１２０７）、共有分離処理を終了する（Ｓ１２０７）。
【０１７６】
図２６は、共有分離処理から呼び出される、共有分離ローカル処理（Ｓ１３００）を示すフローチャートである。
【０１７７】
各中間装置の構成情報管理プログラム（クライアント）４００ｃは、ＧＮＳ構成情報テーブル１２００ｃを調べ、管理者によって入力されたＧＮＳパス名からエントリを特定し、ＧＮＳ構成情報テーブル１２００ｃからサーバ名を抽出する（Ｓ１３０１）。次に、抽出されたサーバ名が自装置であるか否かを判定する（Ｓ１３０２）。
【０１７８】
サーバ名が自装置である場合（Ｓ１３０２で”ＹＥＳ”）、継承ＡＣＬ削除処理を実行し（Ｓ１４００）、その後ＧＮＳツリーからｂｉｎｄアンマウントを実行する（Ｓ１３０５）。なお、継承ＡＣＬ削除処理（Ｓ１４００）は、図２７を用いて後述する。
【０１７９】
一方、サーバ名が自装置でなかった場合（Ｓ１３０２で”ＮＯ”）、ＧＮＳツリーからＧＮＳツリーの該当するマウントポイントをネットワークアンマウントを実行する（Ｓ１３０７）。そして、構成情報管理プログラム（クライアント）４００ｃは、スイッチ情報管理テーブル８００と接続ポイント管理テーブル１１００とからエントリを削除する（Ｓ１３０３）。
【０１８０】
最後に、構成情報管理プログラム（クライアント）４００ｃは、ＧＮＳ構成テーブルキャッシュ１２００ｃを、ＧＮＳ構成情報テーブル（サーバ）１２００ｓと同期するように更新する（Ｓ１３０６）。例えば、ＧＮＳ構成情報テーブルキャッシュ１２００ｃのＧＮＳパス名と分離したいＧＮＳパス名とが一致するエントリを、ＧＮＳ構成情報テーブルキャッシュ１２００ｃから削除する。
【０１８１】
図２７は、共有分離ローカル処理（Ｓ１３００）から呼び出される、継承ＡＣＬ削除処理（Ｓ１４００）を示すフローチャートである。
【０１８２】
まず、ＧＮＳツリーのマウントポイントの上位ディレクトリのＡＣＬから、設定されている一つのＡＣＥを取得する（Ｓ１４０１）。
【０１８３】
次に、処理がされていないＡＣＥがＡＣＬにあるか否かを判定する（Ｓ１４０２）。Ｓ１４０２で処理がされていないＡＣＥがあると判定された場合（Ｓ１４０２で”ＹＥＳ”）、そのＡＣＥの継承先から継承有りか否かを判定する（Ｓ１４０３）。ここで、抽出されたＡＣＥに継承がない場合（Ｓ１４０４で”ＮＯ”）、ステップ１４０１へ戻り、他のＡＣＥについてＳ１４０１から処理を実行する。一方、抽出されたＡＣＥに継承がある場合（Ｓ１４０４で”ＹＥＳ”）、継承ＡＣＬ情報５３００にそのＡＣＥを追加する（Ｓ１４０５）。そして、ステップ１４０１へ戻り、他のＡＣＥについてＳ１４０１から処理を実行する。
【０１８４】
一方、Ｓ１４０２で処理がされていないＡＣＥがないと判定された場合（Ｓ１４０２で”ＮＯ”）、継承ＡＣＬ削除メイン処理を実行し（Ｓ１５００）、継承ＡＣＬ情報５３００を破棄して（Ｓ１４０６）、継承ＡＣＬ削除処理を終了する。なお、継承ＡＣＬ削除メイン処理（Ｓ１５００）は、図２８を用いて後述する。
【０１８５】
図２８は、継承ＡＣＬ削除処理（Ｓ１４００）から呼び出される、継承ＡＣＬ削除メイン処理（Ｓ１５００）を示すフローチャートである。
【０１８６】
継承ＡＣＬ削除処理（Ｓ１４００）で作成された継承ＡＣＬ情報５３００から、ディレクトリへの継承を含む全てのＡＣＥを選択し、マウントポイントのディレクトリに設定されているＡＣＬと一致する全てのＡＣＥを削除する（Ｓ１５０１）。そして、マウントポイント以下のファイルシステムオブジェクトを一つ選択する（Ｓ１５０２）。
【０１８７】
選択されたファイルシステムオブジェクトがファイルか否かを調べる（Ｓ１５０３）。ファイルシステムオブジェクトがファイルの場合（Ｓ１５０３で”ＹＥＳ”）、継承ＡＣＬ情報５３００の継承先からファイルへの継承を持つＡＣＥをすべて選択し、ファイルに設定されているＡＣＬのうち、マウントポイントのディレクトリに設定されているＡＣＬと一致する全てのＡＣＥを削除する（Ｓ１５０４）。
【０１８８】
一方、選択されたファイルシステムオブジェクトがファイル以外（例えば、ディレクトリ）である場合（Ｓ１５０３で”ＮＯ”）、継承ＡＣＬ情報５３００の継承先５２０４から、ディレクトリへの継承を含む全てのＡＣＥを選択し、そのファイルシステムオブジェクトに設定されているＡＣＬのうち、マウントポイントのディレクトリに設定されているＡＣＬと一致するＡＣＥをすべて削除する（Ｓ１５０５）。
【０１８９】
さらに、ディレクトリに格納されているファイル又は下位のディレクトリを選択して、継承ＡＣＬ削除メイン処理（Ｓ１５００）を実行する（Ｓ１５０７）。
【０１９０】
このように、対象となるファイルシステムオブジェクトがディレクトリであれば、そのディレクトリに格納されているファイルシステムオブジェクトを選択し、継承ＡＣＬを削除する。ディレクトリの配下のファイル及びディレクトリに対して、この処理を続けることによって、再帰的に継承ＡＣＬを削除することができ、全てのファイルシステムオブジェクトに継承ＡＣＬを削除できる。
【０１９１】
そして、未選択のファイルシステムオブジェクトがあるか否かを判定する（Ｓ１５０６）。未選択のファイルシステムオブジェクトがある場合は（Ｓ１５０６で”ＹＥＳ”）、ステップ１５０２で未選択のファイルシステムオブジェクトを選択して、以降の処理を実行する。一方、未選択のファイルシステムオブジェクトがない場合は（Ｓ１５０６で”ＮＯ”）、継承ＡＣＬ削除メイン処理を終了する。
【０１９２】
＜第２実施形態＞
次に、本発明の第２の実施の形態について説明する。第２の実施の形態は、第１の実施の形態のようにＧＮＳツリーへファイルサーバをマウントするときに継承ＡＣＬを設定するのではなく、中間装置２００がクライアント１００からファイルアクセス要求を受けた時に、動的に、継承ＡＣＬを設定した合成ＡＣＬを作成して、ファイルへのアクセス可否を判定する。
【０１９３】
第２の実施の形態では、仮想名前空間の構成変更時に、共有統合ローカル処理（Ｓ６００）から呼び出される継承ＡＣＬ設定処理（Ｓ１０００）は実行されない。また、同様に、共有分離ローカル処理１３００から呼び出される継承ＡＣＬ削除処理（Ｓ１４００）も実行されない。
【０１９４】
図２９は、本発明の第２の実施の形態における中間装置２００の構成を示すブロック図である。
【０１９５】
第２の実施の形態の中間装置２００は、前述した第１の実施の形態と異なり、継承ＡＣＬ設定／削除プログラム５１００を持たず、継承ＡＣＬ抽出プログラム５７００とアクセス判定プログラム５６００とを持つ。継承ＡＣＬ抽出プログラム５７００は、ファイルシステムオブジェクトに設定されているＡＣＬから継承ＡＣＬのみを抽出してメモリ等の記憶装置に保持する。また、アクセス判定プログラム５６００は、ファイルへのアクセス可否を判定する。
【０１９６】
図３０は、第２の実施の形態の中間装置２００におけるアクセス判定プログラム５６００の構成を示す機能ブロック図である。
【０１９７】
図３０に示すように、第２の実施の形態のアクセス判定プログラム５６００は、アクセス要求判定部５６０１と、ＡＣＬ合成処理部５６０２と、ＡＣＬ取得部５６０５とを備える。また、アクセス判定プログラム５６００が動作する中間装置２００は、合成ＡＣＬ情報５４００と、共有ＩＤ／継承ＡＣＬ対応表５５００とを格納する。
【０１９８】
アクセス要求判定部５６０１は、クライアント１００からのファイルのアクセスの要求の可否を判定する。ＡＣＬ合成処理部５６０２は、継承ＡＣＬとファイルシステムオブジェクトに設定されているＡＣＬとを合成する。
【０１９９】
ＡＣＬ取得部５６０５は、前述した第１の実施の形態のＡＣＬ取得部５１０３（図９参照）と同様に、ＡＣＬの取得のための要求を送信する。
【０２００】
合成ＡＣＬ情報５４００は、継承ＡＣＬとファイルシステムオブジェクトに設定されているＡＣＬとが合成されたＡＣＬである（図３２参照）。共有ＩＤ／継承ＡＣＬ対応表５５００は、共有ＩＤと継承ＡＣＬ情報５３００との対応を格納する（図３３参照）。
【０２０１】
なお、合成ＡＣＬ情報５４００及び共有ＩＤ／継承ＡＣＬ対応表５５００は、アクセス判定プログラム５６００中に図示したが、アクセス判定プログラム５６００とは別に構成されていてもよい。
【０２０２】
図３１は、第２の実施の形態の中間装置２００における継承ＡＣＬ抽出プログラム５７００の構成を示す機能ブロック図である。
【０２０３】
図３１に示すように、継承ＡＣＬ抽出プログラム５７００は、ファイル検索部５７０１と、ＡＣＬ取得部５７０２と、継承ＡＣＬ抽出処理部５７０３とを備える。また、継承ＡＣＬ抽出プログラム５７００が動作する中間装置２００は、継承ＡＣＬ情報５７０４を格納する。
【０２０４】
ファイル検索部５７０１は、前述した第１の実施の形態のファイル検索部５１０２（図９参照）と同様に、仮想名前空間を構成する際に、継承ＡＣＬを付与又は削除する対象のファイルを検索する。ＡＣＬ取得部５７０２は、前述した第１の実施の形態のＡＣＬ取得部５１０３（図９参照）と同様に、ファイルシステムオブジェクトに付与されたＡＣＬを取得する。
【０２０５】
継承ＡＣＬ抽出処理部５７０３は、継承ＡＣＬ抽出処理（Ｓ１７００、図３５）によって、継承設定されたＡＣＥを既存ＡＣＬから取り出す（図３５参照）。継承ＡＣＬ情報５７０４は、前述した第１の実施の形態の継承ＡＣＬ情報５３００（図１５）と同じ構成を有するテーブル形式の情報である。
【０２０６】
なお、継承ＡＣＬ情報５７０４は、継承ＡＣＬ抽出プログラム５７００中に図示したが、継承ＡＣＬ抽出プログラム５７００とは別に構成されていてもよい。
【０２０７】
第２の実施の形態の中間装置２００における構成情報管理プログラム（サーバ）４００ｓは、第１の実施の形態の構成情報管理プログラム（サーバ）４００ｓ（図４）と同様に、ＧＮＳ構成情報管理サーバ部４０１ｓと、中間装置情報管理サーバ部４０３と、構成情報通信部４０４とを備える。また、構成情報管理プログラム（サーバ）４００ｓが動作する中間装置２００は、共有ＩＤ空き管理リスト４０２と、中間装置構成情報リスト４０５と、ＧＮＳ構成情報テーブル１２００ｓとを格納する。
【０２０８】
但し、第２の実施の形態の中間装置２００は、継承ＡＣＬ設定／削除プログラム５１００を備えないので、ＧＮＳ構成情報管理サーバ部４０１ｓは、継承ＡＣＬ抽出プログラム５７００と接続され、継承ＡＣＬ抽出プログラム５７００との間でデータを受け渡す。
【０２０９】
第２の実施の形態の中間装置２００における構成情報管理プログラム（クライアント）４００ｃは、第１の実施の形態の構成情報管理プログラム（クライアント）４００ｃ（図５）と同様に、ＧＮＳ構成情報管理クライアント部４０１ｃと、構成情報通信部４０４とを備える。また、構成情報管理プログラム（クライアント）４００ｃが動作する中間装置２００は、ＧＮＳ構成情報テーブルキャッシュ１２００ｃを格納する。
【０２１０】
但し、第２の実施の形態の中間装置２００は、継承ＡＣＬ設定／削除プログラム５１００を備えないので、ＧＮＳ構成情報管理クライアント部４０１ｃは、継承ＡＣＬ抽出プログラム５７００と接続され、継承ＡＣＬ抽出プログラム５７００との間でデータを受け渡す。
【０２１１】
第２の実施の形態の中間装置２００におけるスイッチプログラム６００は、第１の実施の形態のスイッチプログラム６００（図６）と同様に、クライアント通信部６０６と、中間・末端装置通信部６０５と、ファイルアクセス管理部７００と、オブジェクトＩＤ変換処理部６０４と、擬似ファイルシステム６０１とを備える。
【０２１２】
但し、第２の実施の形態の中間装置２００は、継承ＡＣＬ設定／削除プログラム５１００を備えないので、ファイルアクセス管理部７００は、アクセス判定プログラム５６００及び継承ＡＣＬ抽出プログラム５７００と接続され、アクセス判定プログラム５６００と継承ＡＣＬ抽出プログラム５７００から、ＡＣＬの取得要求を受け取り、ファイルシステムオブジェクトに設定されているＡＣＬを取得する。
【０２１３】
第２の実施の形態の中間装置２００におけるファイルアクセス管理部７００は、第１の実施の形態のファイルアクセス管理部７００（図７）と同様に、要求データ処理部７０１と、要求データ解析部７０２と、応答データ出力部７０３とを備える。また、ファイルアクセス管理部７００が動作する中間装置２００は、スイッチ情報管理テーブル８００（図１０参照）と、サーバ情報管理テーブル９００（図１１参照）と、アルゴリズム情報管理テーブル１０００（図１２参照）と、接続ポイント管理テーブル１１００（図１３参照）とを備える。
【０２１４】
但し、第２の実施の形態の中間装置２００は、継承ＡＣＬ設定／削除プログラム５１００を備えないので、要求データ処理部７０１は、アクセス判定プログラム５６００及び継承ＡＣＬ抽出プログラム５７００と接続され、アクセス判定プログラム５６００と継承ＡＣＬ抽出プログラム５７００からのＡＣＬ取得要求を受け取り、ファイルシステムオブジェクトに設定されているＡＣＬを取得する。
【０２１５】
図３２は、本発明の第２の実施の形態における合成ＡＣＬ情報５４００の構成を示す図である。
【０２１６】
合成ＡＣＬ情報５４００は、継承ＡＣＬとファイルシステムオブジェクトに設定されているＡＣＬとを合わせたＡＣＬで、第２の実施の形態では、この合成ＡＣＬ情報５４００に基づいてアクセス可否を判定する。
【０２１７】
合成ＡＣＬ情報５４００は、アカウント５４０１と、マスク５４０２と、許否／許可５４０３と、継承先５４０４との組によって構成されたエントリを格納する表形式の情報である。
【０２１８】
アカウント５４０１と、マスク５４０２と、許否／許可５４０３と、継承先５４０４とは、各々、前述した第１の実施の形態の継承ＡＣＬ情報５３００（図１５）のアカウント５３０１と、マスク５３０２と、拒否／許可５３０３と、継承先５３０４と同じである。
【０２１９】
合成ＡＣＬ情報５４００には、既存ＡＣＬのエントリと、継承ＡＣＬのエントリとが含まれる。このとき、合成ＡＣＬ情報５４００には、既存ＡＣＬのエントリが上（先）に、継承ＡＣＬのエントリが下（後）に記録される。これは、矛盾したＡＣＥが合成ＡＣＬ情報５４００にある場合に、既存ＡＣＬのＡＣＥを優先してアクセス可否を判定するためである。
【０２２０】
図３３は、本発明の第２の実施の形態における共有ＩＤ／継承ＡＣＬ対応表５５００の構成を示す図である。
【０２２１】
共有ＩＤ／継承ＡＣＬ対応表５５００は、共有ＩＤ５５０１と、継承ＡＣＬ情報アドレス５５０２との組によって構成されたエントリを格納するテーブルである。
【０２２２】
共有ＩＤ５５０１は、ファイルサービスの公開単位を特定するＩＤである。継承ＡＣＬ情報アドレス５５０２は、継承ＡＣＬ情報５７０４へのポインタである。
【０２２３】
図３４は、本発明の第２の実施の形態における共有統合ローカル処理（Ｓ６００）を示すフローチャートである。共有統合ローカル処理（Ｓ６００）は、第１の実施の形態と同じ共有統合処理（図２１参照）から呼び出される。
【０２２４】
まず、追加したエントリと同じ内容を取得し、ＧＮＳ構成情報テーブルキャッシュ１２００ｃに登録する（Ｓ６０１）。次に、そのエントリのサーバ名が自装置であるか否かを判定する（Ｓ６０２）。
【０２２５】
サーバ名が自装置である場合（Ｓ６０２で”ＹＥＳ”）、エントリの情報に基づいて、ＧＮＳツリーの該当する箇所に、ｂｉｎｄマウントを実行する（Ｓ６０５）。その後、Ｓ６０６の処理へ進む。
【０２２６】
一方、サーバ名が自装置でない場合（Ｓ６０２で”ＮＯ”）、エントリの情報に基づいて、ＧＮＳツリーの該当する箇所に、ネットワークマウントを実行する（Ｓ６０３）。そして、スイッチ情報管理テーブル８００と接続ポイント管理テーブル１１００とにエントリを追加する（Ｓ６０４）。
【０２２７】
マウント完了後、共有情報をマウントディレクトリに設定して（Ｓ６０６）、継承ＡＣＬ抽出処理（Ｓ１７００）を実行した後に、共有統合ローカル処理を終了する。なお、継承ＡＣＬ抽出処理（Ｓ１７００）は、図３５を用いて後述する。
【０２２８】
図３５は、本発明の第２の実施の形態における継承ＡＣＬ抽出処理（Ｓ１７００）を示すフローチャートである。
【０２２９】
まず、継承ＡＣＬ情報５７０４を作成するか否か（作成するか、破棄するか）を判定する（Ｓ１７０６）。本処理が共有統合ローカル処理（Ｓ６００）から呼ばれる場合は、継承ＡＣＬ情報５７０４を作成する（Ｓ１７０６で”ＹＥＳ”）。一方、本処理が共有分離ローカル処理１８００から呼ばれる場合は、継承ＡＣＬ情報５７０４を破棄する（Ｓ１７０６で”ＮＯ”）。
【０２３０】
継承ＡＣＬ情報を作成する場合（Ｓ１７０６で”ＹＥＳ”）、ＧＮＳツリーのマウントポイントの一つ上位のディレクトリに付与されたＡＣＬの中から一つのＡＣＥを取得する（Ｓ１７０１）。
【０２３１】
次に、取得すべきＡＣＥがあるか否かを判定する（Ｓ１７０２）。Ｓ１７０２で取得すべきＡＣＥがあると判定された場合（Ｓ１７０２で”ＹＥＳ”）、Ｓ１７０１で取得したＡＣＥの継承先情報に基づいて、継承があるか否かを判定する（Ｓ１７０３）。そして、抽出されたＡＣＥに継承がある場合（Ｓ１７０４で”ＹＥＳ”）、継承ＡＣＬ情報５７０４にそのＡＣＥを追加する（Ｓ１７０５）。継承ＡＣＬ情報５７０４は、メモリ上でもストレージ上でもどこに存在してもよい。そして、Ｓ１７０１へ戻り、他のＡＣＥについてＳ１７０１から処理を実行する。一方、抽出されたＡＣＥに継承がない場合（Ｓ１７０４で”ＮＯ”）、そのＡＣＥについては何もせずにＳ１７０１へ戻る。そして、他のＡＣＥについてＳ１７０１から処理を実行する。
【０２３２】
一方、Ｓ１７０２で取得すべきＡＣＥがないと判定された場合（Ｓ１７０２で”ＮＯ”）、共有／継承ＡＣＬ対応表５５００の共有ＩＤ５５０１と継承ＡＣＬ情報アドレス５５０２を設定（Ｓ１７０８）して、継承ＡＣＬ抽出処理を終了する。
【０２３３】
Ｓ１７０６で継承ＡＣＬ情報５７０４を破棄すると判定された場合（Ｓ１７０６で”ＮＯ”）、継承ＡＣＬ情報５７０４をメモリ上（又は、ストレージ上等）から削除して、共有／継承ＡＣＬ対応表５５００のエントリを削除する（Ｓ１７０７）。
【０２３４】
図３６は、本発明の第２の実施の形態における共有分離ローカル処理（Ｓ１８００）を示すフローチャートである。共有分離ローカル処理（Ｓ６００）は、第１の実施の形態と同じ共有分離処理（図２５参照）から呼び出される、
各中間装置の構成情報管理プログラム（クライアント）４００ｃは、ＧＮＳ構成情報テーブル１２００ｃを調べ、管理者によって入力されたＧＮＳパス名からエントリを特定し、ＧＮＳ構成情報テーブル１２００ｃからサーバ名を抽出する（Ｓ１３０１）。次に、抽出されたサーバ名が自装置であるか否かを判定する（Ｓ１３０２）。
【０２３５】
サーバ名が自装置である場合（Ｓ１３０２で”ＹＥＳ”）、ＧＮＳツリーからｂｉｎｄアンマウントを実行する（Ｓ１３０５）。
【０２３６】
一方、サーバ名が自装置でなかった場合（Ｓ１３０２で”ＮＯ”）、ＧＮＳツリーからＧＮＳツリーの該当するマウントポイントをネットワークアンマウントを実行する（Ｓ１３０７）。そして、構成情報管理プログラム（クライアント）４００ｃは、スイッチ情報管理テーブル８００と接続ポイント管理テーブル１１００とからエントリを削除する（Ｓ１３０３）。
【０２３７】
その後、構成情報管理プログラム（クライアント）４００ｃは、継承ＡＣＬ抽出処理（Ｓ１７００、図３５参照）を呼び出す。
【０２３８】
最後に、構成情報管理プログラム（クライアント）４００ｃは、ＧＮＳ構成テーブルキャッシュ１２００ｃを、ＧＮＳ構成情報テーブル（サーバ）１２００ｓと同期するように更新する（Ｓ１３０６）。例えば、ＧＮＳ構成情報テーブルキャッシュ１２００ｃのＧＮＳパス名と分離したいＧＮＳパス名とが一致するエントリを、ＧＮＳ構成情報テーブルキャッシュ１２００ｃから削除する。
【０２３９】
図３７は、本発明の第２の実施の形態における、中間装置２００による共有の名前空間を仮想化する処理を示すフローチャートである。
【０２４０】
クライアント通信部６０６は、クライアント１００よりファイルアクセス要求を受信する。このファイルアクセス要求は、例えば、ＮＦＳプロトコルのリモートプロシージャーコール（ＲＰＣ）である。ファイルアクセス管理部７００は受信した要求からオブジェクトＩＤを抽出する。そして、抽出されたオブジェクトＩＤの形式が共有ＩＤ形式か否かを判定する（Ｓ３１０１）。
【０２４１】
受信した要求から抽出されたオブジェクトＩＤが共有ＩＤ形式でなかった場合は、従来のファイルサービス処理を行い（Ｓ３１０２）、処理を終了する。
【０２４２】
受信した要求から抽出されたオブジェクトＩＤが共有ＩＤ形式であった場合は、受信した要求の中のオブジェクトＩＤの共有ＩＤと一致する共有ＩＤを含むエントリがスイッチ情報管理テーブル８００にあるか否かを判定する。前述したように、スイッチ情報管理テーブル８００中に、条件に合致する（同じ共有ＩＤを含む）エントリは、複数存在する場合がある。
【０２４３】
一致するエントリがない場合は（Ｓ３１０５で”ＮＯ”）、要求を受信した中間装置２００が、この要求を処理すべきであると判断し、ＧＮＳローカル処理を行う（Ｓ４３００）。なお、ＧＮＳローカル処理（Ｓ４３００）は、図３８を用いて後述する。
【０２４４】
一方、一致するエントリがある場合は（Ｓ３１０５で”ＹＥＳ”）、要求を受信した中間装置２００以外の中間装置２００が、この要求を処理すべきであると判断し、ネットワークアクセス判定処理（Ｓ１９００）を実行する。なお、ネットワークアクセス判定処理（Ｓ１９００）は、図４０を用いて後述する。そして、アクセス許可が得られるか否かを判定する（Ｓ３１１１）。
【０２４５】
その結果、アクセス許可が得られない場合（Ｓ３１１１で”ＮＯ”）、クライアント１００へアクセス拒否を返信して（Ｓ３１１２）、処理を終了する。
【０２４６】
一方、ネットワークアクセス判定処理（Ｓ１９００）の結果、アクセス許可が得られた場合（Ｓ３１１１で”ＹＥＳ”）、共有ＩＤが一致するエントリから一組のサーバＩＤとアルゴリズム情報ＩＤとの組を取得する（Ｓ３１０６）。条件に合致するエントリが複数ある場合には、ラウンドロビンで取得する情報の組を決めたり、予め測定しておいた応答時間の早いサーバを含む組の情報を取得してもよい。
【０２４７】
次に、アルゴリズム情報管理テーブル１０００を参照し、取得した組のアルゴリズム情報ＩＤと一致するアルゴリズム情報を取得する。取得したアルゴリズム情報に基づいて、要求中に含まれるオブジェクトＩＤを逆変換する（Ｓ３１０７）。図１２で示したように、アルゴリズム情報には、何も変換しないアルゴリズムや、オブジェクトＩＤ形式フィールド１３０１と共有ＩＤフィールド１３０２を削除するだけのアルゴリズムや、オブジェクトＩＤ形式フィールド１３０１と共有ＩＤフィールド１３０２を削除した後、変換後の装置オブジェクトＩＤフィールド１３０４等の情報に基づき、オリジナルの装置オブジェクトＩＤを復元するアルゴリズム等がある。
【０２４８】
次に、ファイルアクセス要求レベルでトランザクションを管理しているプロトコルで、要求中にトランザクションＩＤが含まれる場合は、そのトランザクションＩＤを保存し、これから要求を転送する宛先の装置に対するトランザクションＩＤを付与する（Ｓ３１０８）。この場合、サーバ情報管理テーブル９００を参照し、取得した組のサーバＩＤと一致するサーバ情報９０２を取得することによって、転送先の装置を特定する。
【０２４９】
次に、サーバ情報９０２に基づいて定められた装置に、変換後のファイルアクセス要求を送信し（Ｓ３１０９）、送信先装置からの応答メッセージを待つ（Ｓ３１１０）。
【０２５０】
その後、ファイルアクセス要求を送信した装置から応答メッセージを受信したら、応答処理（Ｓ２００）を行い（図１８参照）、処理を終了する。
【０２５１】
図３８は、本発明の第２の実施の形態における、ファイルアクセス要求を受信した中間装置２００が処理を行うべき要求であると判断した場合に実行されるＧＮＳローカル処理（Ｓ４３００）を示すフローチャートである。
【０２５２】
まず、ローカルアクセス判定処理（Ｓ２１００）を実行する。ローカルアクセス判定処理（Ｓ２１００）によってアクセス許可が得られない場合（Ｓ４３０２で”ＮＯ”）、クライアント１００へアクセス拒否を送信して（Ｓ４３０５）、ＧＮＳローカル処理を終了する。なお、ローカルアクセス判定処理（Ｓ２１００）は、図３９を用いて後述する。
【０２５３】
一方、アクセス許可が得られた場合（Ｓ４３０２で”ＹＥＳ”）、オブジェクトＩＤ中の共有ＩＤとファイルＩＤに基づいてファイルを特定する（Ｓ４３０３）。
【０２５４】
次に、受信した要求中のオペレーション情報に基づいて、応答メッセージを作成する（Ｓ４３０４）。なお、受信した要求が応答メッセージ中にオブジェクトＩＤを含める必要がある場合には、オブジェクトＩＤは、受信した形式と同じ共有ＩＤ型フォーマットを用いる。
【０２５５】
その後、共有を跨るアクセスの場合の特別の処理である接続ポイント処理（Ｓ４００）を行い（図２０参照）、ＧＮＳローカル処理を終了する。
【０２５６】
図３９は、本発明の第２の実施の形態におけるローカルアクセス判定処理（Ｓ２１００）を示すフローチャートである。
【０２５７】
まず、ファイルアクセス管理部７００は、ファイルシステムプログラム２０３から、アクセス対象のファイルに設定されているＡＣＬを取得する（Ｓ２１０５）。
【０２５８】
次に、ＡＣＬ合成処理（Ｓ２０００）を実行し、合成ＡＣＬ情報５４００を作成する。なお、ＡＣＬ合成処理（Ｓ２０００）は、図４１を用いて後述する。
【０２５９】
そして、合成ＡＣＬ情報５４００に基づいて、アクセス可否を判定する（Ｓ２１０１）。具体的には、ＡＣＬの各エントリのうち、アクセス要求を送信したユーザのアカウントとアカウント５４０１とが一致するエントリを抽出し、アクセス要求の内容と、マスク５４０２及び拒否／許可５４０３とを比較して、アクセス可否を判定する。
【０２６０】
その結果、アクセス許可が得られた場合（Ｓ２１０２で”ＹＥＳ”）、本処理の戻り値（ローカルアクセス判定処理からＧＮＳローカル処理に返す値）に”ＯＫ”を設定して（Ｓ２１０４）、ローカルアクセス判定処理を終了する。
【０２６１】
一方、アクセス許可が得られなかった場合（Ｓ２１０２で”ＮＯ”）、本処理の戻り値に”ＮＧ”を設定して（Ｓ２１０３）、ローカルアクセス判定処理を終了する。
【０２６２】
図４０は、本発明の第２の実施の形態におけるネットワークアクセス判定処理（Ｓ１９００）を示すフローチャートである。
【０２６３】
まず、ファイルアクセス管理部７００は、オブジェクトＩＤを変換し、中間装置２００（又は、末端装置３００）へ、アクセス対象のＡＣＬの取得を要求し（Ｓ１９０６）、中間装置２００（又は、末端装置３００）からＡＣＬを受信する（Ｓ１９０１）。
【０２６４】
次に、ＡＣＬ合成処理（Ｓ２０００）を実行し、合成ＡＣＬ情報５４００を作成する。なお、ＡＣＬ合成処理（Ｓ２０００）は、図４１を用いて後述する。
【０２６５】
そして、合成ＡＣＬ情報５４００に基づいて、アクセス可否を判定する（Ｓ１９０２）。具体的には、ＡＣＬの各エントリのうち、アクセス要求を送信したユーザのアカウントとアカウント５４０１が一致するエントリを抽出し、アクセス要求の内容と、マスク５４０２と拒否／許可５４０３とを比較して、アクセス可否を判定する。
【０２６６】
判定の結果がアクセス許可である場合（Ｓ１９０６で”ＹＥＳ”）、本処理の戻り値（ネットワークアクセス判定処理からＧＮＳローカル処理に返す値）に”ＯＫ”を設定して（Ｓ２１０４）、ネットワークアクセス判定処理を終了する。
【０２６７】
一方、判定の結果がアクセス許否である場合（Ｓ１９０６で”ＮＯ”）、アクセス拒否をクライアント１００へ送信して（Ｓ１９０３）、本処理の戻り値に”ＮＧ”を設定（Ｓ１９０４）して、ネットワークアクセス判定処理を終了する。
【０２６８】
図４１は、本発明の第２の実施の形態におけるＡＣＬ合成処理（Ｓ２０００）を示すフローチャートである。
【０２６９】
まず、変換前のオブジェクトＩＤから共有ＩＤを取得して、共有ＩＤ／継承ＡＣＬ対応表５５００を参照して、継承ＡＣＬ情報５７０４を特定する（Ｓ２００１）。次に、クライアントから要求されたアクセス対象がファイルか否かを判定する（Ｓ２００２）。
【０２７０】
その結果、アクセス対象がファイルである場合（Ｓ２００２で”ＹＥＳ”）、継承ＡＣＬ情報の継承先がファイルであるＡＣＥのうち、合成ＡＣＬ情報に登録していないＡＣＥを一つ選択する（Ｓ２００３）。一方、アクセス対象がファイル以外（例えば、ディレクトリ）である場合（Ｓ２００２で”ＮＯ”）、継承ＡＣＬ情報の継承先がディレクトリであるＡＣＥのうち、合成ＡＣＬ情報に登録していないＡＣＥを一つ選択する（Ｓ２００４）。
【０２７１】
その後、選択された継承ＡＣＬ中のＡＣＥを、アクセス対象のファイルシステムオブジェクトに設定されている既存ＡＣＬの後に配置して、合成ＡＣＬ情報５４００を作成する（Ｓ２００５）。
【０２７２】
そして、継承ＡＣＬ情報５７０４に未処理のＡＣＥがあるか否かを判定する（Ｓ２００６）。その結果、未処理のＡＣＥがある場合（Ｓ２００６で”ＹＥＳ”）、ステップ２００２へ戻って、未処理のＡＣＥの処理を継続する。一方、継承ＡＣＬ情報５７０４に未処理のＡＣＥがない場合（Ｓ２００６で”ＮＯ”）、ＡＣＬ合成処理を終了する。
【０２７３】
以上説明したように、本発明の第２の実施の形態では、ファイルシステムのマウント時にＡＣＬの継承を判定せず、ファイルアクセス時にＡＣＬの継承を判定するので、迅速にファイルシステムをマウントすることができる。特に、ファイルシステムを頻繁につなぎ変える計算機システムにおいては、システムのダウンタイムを短くすることができる。
【０２７４】
また、前述した第１の実施の形態では、多くのファイルが含まれるファイルシステムにおいて、ファイルシステムをつなぎ変える際に、多くのＡＣＥを判定する必要があるため、システムのダウンタイムが長くなる。しかし、第２の実施の形態のようにファイルアクセス時に継承されるＡＣＬによってアクセス可否を判定すれば、迅速にファイルシステムをマウントすることができる。
【０２７５】
＜第３実施形態＞
次に、第３の実施の形態について説明する。
【０２７６】
第３の実施の形態は、前述した実施の形態と中間装置２００が異なる。第３の実施の形態の中間装置２００は、第１の実施の形態の中間装置２００とは異なり、ＧＮＳツリーへファイルサーバを接続するときに継承ＡＣＬを設定しない。さらに、第３の実施の形態の中間装置２００は、第２の実施の形態の中間装置と異なり、アクセス要求を受けた時に、継承ＡＣＬとファイルシステムオブジェクトに付与されたＡＣＬとを合成してアクセス可否を判定しない。
【０２７７】
第３の実施の形態では、中間装置２００がクライアント１００からファイルアクセス要求を受けた時に、まず継承ＡＣＬ情報を用いてプレアクセス判定処理を行い、プレアクセス判定処理によってアクセス判定（アクセス許否）が確定した場合、プレアクセス判定の結果のみを用いて、アクセスの可否を判定する。このようにすることによって、アクセス判定処理を高速化することができる。
【０２７８】
図４２は、本発明の第３の実施の形態における、中間装置２００による共有の名前空間を仮想化する処理を示すフローチャートである。
【０２７９】
クライアント通信部６０６は、クライアント１００よりファイルアクセス要求を受信する。このファイルアクセス要求は、例えば、ＮＦＳプロトコルのリモートプロシージャーコール（ＲＰＣ）である。ファイルアクセス管理部７００は受信した要求からオブジェクトＩＤを抽出する。そして、抽出されたオブジェクトＩＤの形式が共有ＩＤ形式か否かを判定する（Ｓ５１０１）。
【０２８０】
受信した要求から抽出されたオブジェクトＩＤが共有ＩＤ形式でなかった場合は、従来のファイルサービス処理を行い（Ｓ５１０２）、処理を終了する。
【０２８１】
受信した要求から抽出されたオブジェクトＩＤが共有ＩＤ形式であった場合は、プレアクセス判定処理を行う（Ｓ２２００）。なお、プレアクセス判定処理（Ｓ２２００）は、図４３を用いて後述する。
【０２８２】
プレアクセス判定処理（Ｓ２２００）の結果がアクセス拒否である場合（Ｓ５１１１で”ＮＯ”）、クライアント１００へアクセス拒否を送信して（Ｓ５１１２）、処理を終了する。一方、プレアクセス判定処理（Ｓ２２００）の結果がアクセス許可である場合（Ｓ５１１１で”ＹＥＳ”）、Ｓ５１０５の処理へ進む。
【０２８３】
その後、受信した要求の中のオブジェクトＩＤの共有ＩＤと一致する共有ＩＤを含むエントリがスイッチ情報管理テーブル８００にあるか否かを判定する。前述したように、スイッチ情報管理テーブル８００中に、条件に合致する（同じ共有ＩＤを含む）エントリは、複数存在する場合がある。
【０２８４】
一致するエントリがない場合は（Ｓ５１０５で”ＮＯ”）、要求を受信した中間装置２００が、この要求を処理すべきであると判断し、ＧＮＳローカル処理（Ｓ４３００）を行う（図３８参照）。ＧＮＳローカル処理（Ｓ４３００）では、初めにローカルアクセス判定処理が実行される。なお、第３の実施の形態では、ＧＮＳローカル処理（Ｓ４３００）から呼び出されるローカルアクセス判定処理は、図４５に示すローカルアクセス判定処理（Ｓ２４００）になる。
【０２８５】
一方、一致するエントリがある場合は（Ｓ５１０５で”ＹＥＳ”）、要求を受信した中間装置２００以外の中間装置２００が、この要求を処理すべきであると判断し、、共有ＩＤが一致するエントリから一組のサーバＩＤとアルゴリズム情報ＩＤとの組を取得する（Ｓ５１０６）。条件に合致するエントリが複数ある場合には、ラウンドロビンで取得する情報の組を決めたり、予め測定しておいた応答時間の早いサーバを含む組の情報を取得してもよい。
【０２８６】
次に、アルゴリズム情報管理テーブル１０００を参照し、取得した組のアルゴリズム情報ＩＤと一致するアルゴリズム情報を取得する。取得したアルゴリズム情報に基づいて、要求中に含まれるオブジェクトＩＤを逆変換する（Ｓ５１０７）。図１２で示したように、アルゴリズム情報には、何も変換しないアルゴリズムや、オブジェクトＩＤ形式フィールド１３０１と共有ＩＤフィールド１３０２を削除するだけのアルゴリズムや、オブジェクトＩＤ形式フィールド１３０１と共有ＩＤフィールド１３０２を削除した後、変換後の装置オブジェクトＩＤフィールド１３０４等の情報に基づき、オリジナルの装置オブジェクトＩＤを復元するアルゴリズム等がある。
【０２８７】
次に、ファイルアクセス要求レベルでトランザクションを管理しているプロトコルで、要求中にトランザクションＩＤが含まれる場合は、そのトランザクションＩＤを保存し、これから要求を転送する宛先の装置に対するトランザクションＩＤを付与する（Ｓ５１０８）。
【０２８８】
次に、ネットワークアクセス判定処理（Ｓ２３００）を実行する。なお、ネットワークアクセス判定処理（Ｓ２３００）は、図４４を用いて後述する。そして、アクセス許可が得られるか否かを判定する（Ｓ５１１３）。
。ネットワークアクセス判定処理（Ｓ２３００）の結果がアクセス拒否である場合（Ｓ５１１３で”ＮＯ”）、クライアント１００へアクセス拒否を送信して（Ｓ５１１４）、処理を終了する。
【０２８９】
一方、ネットワークアクセス判定処理（Ｓ２３００）の結果がアクセス許可である場合（Ｓ５１１２で”ＹＥＳ”）、Ｓ５１０９の処理へ進む。この場合、サーバ情報管理テーブル９００を参照し、取得した組のサーバＩＤと一致するサーバ情報９０２を取得することによって、転送先の装置を特定する。
【０２９０】
次に、サーバ情報９０２に基づいて定められた装置に、変換後のファイルアクセス要求を送信し（Ｓ５１０９）、送信先装置からの応答メッセージを待つ（Ｓ５１１０）。
【０２９１】
その後、ファイルアクセス要求を送信した装置から応答メッセージを受信したら、応答処理（Ｓ２００）を行い（図１８参照）、処理を終了する。
【０２９２】
図４３は、本発明の第３の実施の形態におけるプレアクセス判定処理（Ｓ２２００）を示すフローチャートである。
【０２９３】
まず、ファイルアクセス管理部７００は、変換前のオブジェクトＩＤを用いてＧＮＳ構成テーブル１２００から共有ＩＤを取得し、共有ＩＤ／継承ＡＣＬ対応表５５００を参照して、継承ＡＣＬ情報を特定する（Ｓ２２０１）。次に、クライアントから要求されたアクセス対象がファイルか否かを判定する（Ｓ２２０２）。
【０２９４】
その結果、アクセス対象がファイルである場合（Ｓ２２０２で”ＹＥＳ”）、継承ＡＣＬ情報５３００の継承先がファイルであるＡＣＥを一つ選択する（Ｓ２２０３）。一方、アクセス対象がファイル以外（例えば、ディレクトリ）である場合（Ｓ２２０２で”ＮＯ”）、継承ＡＣＬ情報の継承先がディレクトリであるＡＣＥを一つ選択する（Ｓ２２０４）。
【０２９５】
そして、選択されたＡＣＥとアクセスを要求したユーザのユーザ情報に基づいて、アクセス可否を判定する（Ｓ２２０５）。
【０２９６】
判定の結果がアクセス許可である場合は（Ｓ２２０６で”ＹＥＳ”）、ステップ２２０７の処理へ進む。一方、判定の結果がアクセス拒否である場合は（Ｓ２２０６で”ＮＯ”）、戻り値にアクセス拒否を設定して（Ｓ２２０８）、プレアクセス判定処理を終了する。
【０２９７】
ステップ２２０７で、継承ＡＣＬ情報に未処理のＡＣＥがあるか否かを判定する（Ｓ２２０７）。その結果、未処理のＡＣＥがある場合（Ｓ２２０７で”ＹＥＳ”）、ステップ２２０２へ戻って、未処理のＡＣＥの処理を継続する。一方、継承ＡＣＬ情報にに未処理のＡＣＥがない場合（Ｓ２２０７で”ＮＯ”）、戻り値にアクセス許可を設定し（Ｓ２２０９）、プレアクセス判定処理を終了する。
【０２９８】
図４４は、本発明の第３の実施の形態におけるネットワークアクセス判定処理（Ｓ２３００）を示すフローチャートである。
【０２９９】
まず、ファイルアクセス管理部７００は、オブジェクトＩＤを正変換し、中間装置２００（又は、末端装置３００）へ、アクセス対象のＡＣＬの取得を要求し（Ｓ２３０１）、中間装置２００（又は、末端装置３００）からＡＣＬを受信する（Ｓ２３０２）。
【０３００】
そして、受信したＡＣＬに基づいて、アクセスを要求したユーザのアクセス可否を判定する（Ｓ２３０３）。
【０３０１】
判定の結果がアクセス許可である場合（Ｓ２３０７で”ＹＥＳ”）、本処理の戻り値（ネットワークアクセス判定処理から呼び出し元の処理に返す値）に”ＯＫ”を設定して（Ｓ２３０６）、ネットワークアクセス判定処理を終了する。
【０３０２】
一方、判定の結果がアクセス許否である場合（Ｓ２３０７で”ＮＯ”）、アクセス拒否をクライアント１００へ送信して（Ｓ２３０４）、本処理の戻り値に”ＮＧ”を設定（Ｓ２３０５）して、ネットワークアクセス判定処理を終了する。
【０３０３】
図４５は、第３の実施の形態におけるローカルアクセス判定処理（Ｓ２４００）を示すフローチャートである。このローカルアクセス判定処理（Ｓ２４００）は、前述した第２の実施の形態と同じＧＮＳローカル処理（Ｓ４３００、図３８参照）から呼び出される。
【０３０４】
まず、ファイルアクセス管理部７００は、ファイルシステムプログラム２０３からアクセス対象のファイルシステムオブジェクトに付与されているＡＣＬを取得する（Ｓ２４０１）。そして、取得したＡＣＬに基づいて、アクセスを要求したユーザのアクセス可否を判定する（Ｓ２４０２）。
【０３０５】
判定の結果がアクセス許可である場合（Ｓ２４０３で”ＹＥＳ”）、本処理の戻り値（ローカルアクセス判定処理から呼び出し元の処理に返す値）に”ＯＫ”を設定して（Ｓ２４０５）、ローカルアクセス判定処理を終了する。一方、判定の結果がアクセス許否である場合（Ｓ２４０３で”ＮＯ”）、本処理の戻り値に”ＮＧ”を設定（Ｓ２４０４）して、ローカルアクセス判定処理を終了する。
【０３０６】
以上説明したように、本発明の第３の実施の形態では、ファイルシステムのマウント時にＡＣＬの継承を判定せず、ファイルアクセス時にＡＣＬの継承を判定するので、前述した第２の実施の形態と同様に、迅速にファイルシステムをマウントすることができる。さらに、第３の実施の形態では、ファイルアクセス時にプレアクセス処理によって、継承先のアクセス情報を取得し、取得した継承先のアクセス情報の少なくとも一つがアクセス拒否を示す場合にはアクセス要求を拒否するので、ファイルアクセス時のアクセス可否を迅速に判定することができる。
【図面の簡単な説明】
【０３０７】
【図１】本発明の第１の実施の形態のクライアント・サーバ型の計算機システムのシステム構成図である。
【図２】本発明の第１の実施の形態の中間装置の構成を示すブロック図である。
【図３】本発明の第１の実施の形態の末端装置の構成を示すブロック図である。
【図４】本発明の第１の実施の形態の中間装置の構成情報管理プログラム（サーバ）の構成を示す機能ブロック図である。
【図５】本発明の第１の実施の形態の構成情報管理プログラム（クライアント）の構成を示す機能ブロック図である。
【図６】本発明の第１の実施の形態のスイッチプログラムの構成を示す機能ブロック図である。
【図７】本発明の第１の実施の形態のファイルアクセス管理部の構成を示す機能ブロック図である。
【図８】本発明の第１の実施の形態の管理装置の構成を示すブロック図である。
【図９】本発明の第１の実施の形態の継承ＡＣＬ設定／削除プログラムの構成を示す機能ブロック図である。
【図１０】本発明の第１の実施の形態のスイッチ情報管理テーブルの構成を示す図である。
【図１１】本発明の第１の実施の形態のサーバ情報管理テーブルの構成を示す図である。
【図１２】本発明の第１の実施の形態のアルゴリズム情報管理テーブルの構成を示す図である。
【図１３】本発明の第１の実施の形態の接続ポイント管理テーブルの構成を示す図である。
【図１４】本発明の第１の実施の形態のＧＮＳ構成情報テーブルの構成を示す図である。
【図１５】本発明の第１の実施の形態の継承ＡＣＬ情報の構成を示す図である。
【図１６Ａ】本発明の第１の実施の形態の装置間でやり取りされるオブジェクトＩＤのフォーマットを示す図である。
【図１６Ｂ】本発明の第１の実施の形態の装置間でやり取りされるオブジェクトＩＤのフォーマットを示す図である。
【図１７】本発明の第１の実施の形態の共有の名前空間を仮想化する処理を示すフローチャートである。
【図１８】本発明の第１の実施の形態の応答処理を示すフローチャートである。
【図１９】本発明の第１の実施の形態のＧＮＳローカル処理を示すフローチャートである。
【図２０】本発明の第１の実施の形態の接続ポイント処理を示すフローチャートである。
【図２１】本発明の第１の実施の形態の共有統合処理における管理装置と中間装置との動作を示すフローチャートである。
【図２２】本発明の第１の実施の形態の共有統合ローカル処理を示すフローチャートである。
【図２３】本発明の第１の実施の形態の継承ＡＣＬ設定処理を示すフローチャートである。
【図２４】本発明の第１の実施の形態の継承ＡＣＬ設定メイン処理を示すフローチャートである。
【図２５】本発明の第１の実施の形態の共有分離処理の処理フローを示すフローチャートである。
【図２６】本発明の第１の実施の形態の共有分離ローカル処理を示すフローチャートである。
【図２７】本発明の第１の実施の形態の継承ＡＣＬ削除処理を示すフローチャートである。
【図２８】本発明の第１の実施の形態の継承ＡＣＬ削除メイン処理を示すフローチャートである。
【図２９】本発明の第２の実施の形態の中間装置の構成を示すブロック図である。
【図３０】本発明の第２の実施の形態のアクセス判定プログラムの構成を示す機能ブロック図である。
【図３１】本発明の第２の実施の形態継承ＡＣＬ抽出プログラムの構成を示す機能ブロック図である。
【図３２】本発明の第２の実施の形態の合成ＡＣＬ情報の構成を示す図である。
【図３３】本発明の第２の実施の形態の共有ＩＤ／継承ＡＣＬ対応表の構成を示す図である。
【図３４】本発明の第２の実施の形態の共有統合ローカル処理を示すフローチャートである。
【図３５】本発明の第２の実施の形態の継承ＡＣＬ抽出処理を示すフローチャートである。
【図３６】本発明の第２の実施の形態の共有分離ローカル処理を示すフローチャートである。
【図３７】本発明の第２の実施の形態の共有の名前空間を仮想化する処理を示すフローチャートである。
【図３８】本発明の第２の実施の形態のＧＮＳローカル処理を示すフローチャートである。
【図３９】本発明の第２の実施の形態のローカルアクセス判定処理を示すフローチャートである。
【図４０】本発明の第２の実施の形態のネットワークアクセス判定処理を示すフローチャートである。
【図４１】本発明の第２の実施の形態のＡＣＬ合成処理を示すフローチャートである。
【図４２】本発明の第３の実施形態の共有の名前空間を仮想化する処理を示すフローチャートである。
【図４３】本発明の第３の実施形態のプレアクセス判定処理を示すフローチャートである。
【図４４】本発明の第３の実施形態のネットワークアクセス判定処理を示すフローチャートである。
【図４５】本発明の第３の実施形態のローカルアクセス判定処理を示すフローチャートである。
【符号の説明】
【０３０８】
１００  クライアント
２００  中間装置
３００  末端装置
６００  スイッチプログラム
７００  ファイルアクセス管理部
８００  スイッチ情報管理テーブル
９００  サーバ情報管理テーブル
１０００  アルゴリズム情報管理テーブル
１１００  接続ポイント管理テーブル
１２００  ＧＮＳ構成情報テーブル
５０００  管理装置
５１００  継承ＡＣＬ設定／削除プログラム
５３００  継承ＡＣＬ情報
５２００  既存ＡＣＬ情報
５４００  合成ＡＣＬ情報
５５００  共有ＩＤ／継承ＡＣＬ対応表
【図１】
0004907482.tif 000002
【図２】
0004907482.tif 000003
【図３】
0004907482.tif 000004
【図４】
0004907482.tif 000005
【図５】
0004907482.tif 000006
【図６】
0004907482.tif 000007
【図７】
0004907482.tif 000008
【図８】
0004907482.tif 000009
【図９】
0004907482.tif 000010
【図１０】
0004907482.tif 000011
【図１１】
0004907482.tif 000012
【図１２】
0004907482.tif 000013
【図１３】
0004907482.tif 000014
【図１４】
0004907482.tif 000015
【図１５】
0004907482.tif 000016
【図１６Ａ】
0004907482.tif 000017
【図１６Ｂ】
0004907482.tif 000018
【図１７】
0004907482.tif 000019
【図１８】
0004907482.tif 000020
【図１９】
0004907482.tif 000021
【図２０】
0004907482.tif 000022
【図２１】
0004907482.tif 000023
【図２２】
0004907482.tif 000024
【図２３】
0004907482.tif 000025
【図２４】
0004907482.tif 000026
【図２５】
0004907482.tif 000027
【図２６】
0004907482.tif 000028
【図２７】
0004907482.tif 000029
【図２８】
0004907482.tif 000030
【図２９】
0004907482.tif 000031
【図３０】
0004907482.tif 000032
【図３１】
0004907482.tif 000033
【図３２】
0004907482.tif 000034
【図３３】
0004907482.tif 000035
【図３４】
0004907482.tif 000036
【図３５】
0004907482.tif 000037
【図３６】
0004907482.tif 000038
【図３７】
0004907482.tif 000039
【図３８】
0004907482.tif 000040
【図３９】
0004907482.tif 000041
【図４０】
0004907482.tif 000042
【図４１】
0004907482.tif 000043
【図４２】
0004907482.tif 000044
【図４３】
0004907482.tif 000045
【図４４】
0004907482.tif 000046
【図４５】
0004907482.tif 000047