(57)【要約】【課題】ストレージ装置に格納されている情報資源に対して、利用者の要求する分類条件で分類された情報資源のリストを迅速かつ最新の情報を反映させて提供する。【解決手段】１台以上のストレージ装置５００にネットワーク２を介して接続されている制御サーバ１００に、ストレージ装置５００に格納されているファイルの分類条件を受け付ける手段と、ストレージ装置５００に格納されているファイルの中から、受け付けた分類条件毎に、その分類条件を満たすファイルのファイル名および格納位置を対応付けた情報（仮想Ｖｉｅｗ情報）を生成して記憶する手段と、利用者からの仮想Ｖｉｅｗ情報の提示要求を受け付けて記憶している仮想Ｖｉｅｗ情報を提示する手段と、ストレージ装置５００に格納されたファイルに対するアクセス処理が行われた場合に、記憶している仮想Ｖｉｅｗ情報を更新する手段とを設ける。【選択図】図１
2006031608.tif 000002
【特許請求の範囲】
【請求項１】
１台以上のストレージ装置にネットワークを介して接続され、該ストレージ装置に対するアクセス制御を行う計算機であって、
前記ストレージ装置に格納されているファイルデータの分類条件を受け付ける手段と、
前記ストレージ装置に格納されているファイルデータの中から、前記分類条件を満たすファイルデータを検索して、分類条件毎に、該分類条件を満たすファイルデータのファイル名および格納位置を対応付けた情報（以下において「仮想Ｖｉｅｗ情報」という）を生成して記憶する手段と、
利用者からの仮想Ｖｉｅｗ情報の提示要求を受け付けて、前記記憶している仮想Ｖｉｅｗ情報を提示する手段と、
利用者からの前記ストレージ装置に格納されたファイルデータに対するアクセス要求を受け付けて、前記ストレージ装置のファイルデータに対するアクセス処理を行う手段と、
前記ファイルデータに対するアクセス処理が行われた場合、前記記憶している仮想Ｖｉｅｗ情報を更新する手段と、を有すること
を特徴とする計算機。
【請求項２】
請求項１に記載の計算機であって、
前記更新する手段は、
前記ファイルデータに対するアクセス処理が行われた場合、該アクセス処理が該ファイルデータの書き込み処理および削除処理のいずれかに該当するか否かを判定して、該書き込み処理および削除処理のいずれかに該当する場合に、前記記憶している仮想Ｖｉｅｗ情報を更新すること
を特徴とする計算機。
【請求項３】
請求項２に記載の計算機であって、
前記更新する手段は、
前記アクセス処理が該ファイルデータの書き込み処理と判定された場合であって、かつ前記記憶している仮想Ｖｉｅｗ情報の中に前記書き込み処理を行ったファイルデータに当てはまる分類条件の仮想Ｖｉｅｗ情報が在る場合、該仮想Ｖｉｅｗ情報の該分類条件に該書き込み処理を行ったファイルデータのファイル名および格納位置を対応づけて、
前記アクセス処理が該ファイルデータの削除処理と判定された場合であって、かつ前記記憶した仮想Ｖｉｅｗ情報の中に前記削除処理を行ったファイルデータのファイル名が対応付けられている仮想Ｖｉｅｗ情報が在る場合、該仮想Ｖｉｅｗ情報の該分類条件に対応付けられている該削除処理を行ったファイルデータのファイル名および格納位置を削除すること
を特徴とする計算機。
【請求項４】
１台以上のストレージ装置にネットワークを介して接続され、該ストレージ装置に対するアクセス制御を行う計算機であって、
前記ストレージ装置に格納されているファイルデータの分類条件を受け付けて該受け付けた該分類条件毎に該分類条件を含んだ情報（以下において「仮想Ｖｉｅｗ情報」という）を生成して記憶する手段と、
利用者からの前記ストレージ装置に格納されたファイルデータに対するアクセス要求を受け付けて、該要求されたファイルデータに対するアクセス処理を行う手段と、
前記ファイルデータに対するアクセス処理が行われた際に、前記記憶した仮想Ｖｉｅｗ情報の中に前記アクセスしたファイルデータに当てはまる分類条件を含む仮想Ｖｉｅｗ情報が在るか否かを判定して、該仮想Ｖｉｅｗ情報が在る場合には、前記アクセスしたファイルデータに当てはまる分類条件を含む仮想Ｖｉｅｗ情報に該アクセスしたファイルデータのファイル名および格納位置を対応付ける更新手段と、
利用者からの仮想Ｖｉｅｗ情報の提示要求を受け付けて、前記記憶している仮想Ｖｉｅｗ情報を提示する手段と、を有すること
を特徴とする計算機。
【請求項５】
請求項４に記載の計算機であって、
利用者からの仮想Ｖｉｅｗ更新要求を受ける手段を有し、
前記更新手段は、
前記仮想Ｖｉｅｗ更新要求を受けた場合に、前記記憶している仮想Ｖｉｅｗ情報の中に前記ストレージ装置に格納されているファイルデータに当てはまる分類条件の仮想Ｖｉｅｗ情報が在るか否かを判定して、該格納されているファイルデータに当てはまる分類条件の仮想Ｖｉｅｗ情報が在る場合、該仮想Ｖｉｅｗ情報に該当てはまるファイルデータのファイル名および格納位置を対応づけること
を特徴とする計算機。
【請求項６】
請求項１〜５のいずれか一項に記載の計算機であって、
前記ストレージ装置に格納されているファイルデータには、ファイル名、ファイル作成日、ファイル作成者、およびファイル格納位置を含む属性情報が含まれていて、
前記分類条件とは、前記属性情報のいずれか、或いは、該属性情報のいずれかを組合せたものであること
を特徴とする計算機。
【請求項７】
請求項６に記載の計算機であって、
前記ストレージ装置に格納されているファイルデータには、該ファイルデータのファイル実体情報が含まれていて、
前記分類条件とは、前記ファイル実体情報に含まれるキーワード、或いは、前記ファイル実体情報に含まれるキーワードおよび前記属性情報のいずれかを組み合わせたものであること
を特徴とする計算機。
【請求項８】
請求項１〜７のいずれか一項に記載の計算機であって、
利用者を示す利用者識別情報および該利用者識別情報に対応付けて該利用者に与えるアクセス権限情報を受け付ける手段を有し、
前記仮想Ｖｉｅｗ情報を提示する手段は、
前記利用者からの仮想Ｖｉｅｗ情報の提示要求を受け付ける際に、前記利用者識別情報の入力を受け付けて、前記利用者識別情報に対応付けられているアクセス権限情報により提示する仮想Ｖｉｅｗの内容を変更すること
を特徴とする計算機。
【請求項９】
請求項１〜８のいずれか一項に記載の計算機であって、
前記記憶している仮想Ｖｉｅｗ情報の一覧情報を作成する手段と、
利用者からの前記一覧情報の提示要求を受け付けて、該一覧情報を提示する手段と、を有すること
を特徴とする計算機。
【請求項１０】
１台以上のストレージ装置と、該ストレージ装置に対するアクセス制御を行う計算機とを有するストレージシステムであって、
前記ストレージ装置および前記計算機はネットワークを介して接続されていて、
前記ストレージ装置は、
ファイル名、ファイル作成日、ファイル作成者、およびファイル格納位置を含む属性情報を有するファイルデータを格納する記憶手段と、
前記計算機からのアクセス要求を受け付け、前記計算機に対して前記記憶しているファイルデータの入出力処理を行う手段と、を有し、
前記計算機は、
前記ストレージ装置に格納されているファイルデータの前記属性情報のいずれか、或いは該属性情報のいずれかを組合せた情報を分類条件として受け付ける手段と、
前記ストレージ装置に格納されているファイルデータの中から、前記受け付けた分類条件を満たすファイルデータを検索して、分類条件毎に、該分類条件を満たすファイルデータのファイル名および格納位置を対応付けた情報（以下「仮想Ｖｉｅｗ情報」という）を生成して記憶する手段と、
利用者からの前記仮想Ｖｉｅｗ情報の提示要求を受け付けて、前記記憶している仮想Ｖｉｅｗ情報を提示する手段と、
利用者からの前記ストレージ装置のファイルデータに対するアクセス要求を受け付けて、前記ストレージ装置のファイルデータに対するアクセス処理を行う手段と、
前記ファイルデータに対するアクセス処理が行われた場合、前記記憶している仮想Ｖｉｅｗ情報を更新する手段と、を有すること
を特徴とするストレージシステム。
【請求項１１】
請求項１０に記載のストレージシステムであって、
前記更新する手段は、
前記ファイルデータに対するアクセス処理が行われた場合、該アクセス処理が該ファイルデータの書き込み処理および削除処理のいずれかに該当するか否かを判定して、該書き込み処理および削除処理のいずれかに該当する場合には、前記記憶している仮想Ｖｉｅｗ情報を更新すること
を特徴とする計算機。
【請求項１２】
１台以上のストレージ装置にネットワークを介して接続され、該ストレージ装置に対するアクセス制御を行う計算機が行うファイル管理方法であって、
前記計算機は記憶装置を有していて、
前記計算機は、
前記ストレージ装置に格納されているファイルデータの分類条件を受け付けるステップと、
前記ストレージ装置に格納されているファイルデータの中から、前記分類条件を満たすファイルデータを検索して、分類条件毎に、該分類条件を満たすファイルデータのファイル名および格納位置を対応付けた情報（以下において「仮想Ｖｉｅｗ情報」という）を生成して前記記憶装置に記憶するステップと、
利用者からの仮想Ｖｉｅｗ情報の提示要求を受け付けて、前記記憶装置に記憶している仮想Ｖｉｅｗ情報を提示するステップと、
利用者からの前記ストレージ装置に格納されたファイルデータに対するアクセス要求を受け付けて、前記ストレージ装置のファイルデータに対するアクセス処理を行うステップと、
前記ファイルデータに対するアクセス処理が行われた場合、前記記憶装置に記憶している仮想Ｖｉｅｗ情報を更新するステップと、を実行すること
を特徴とする計算機が行うファイル管理方法。
【請求項１３】
請求項１２に記載の計算機が行うファイル管理方法であって、
前記更新するステップは、
前記ファイルデータに対するアクセス処理が行われた場合、該アクセス処理が該ファイルデータの書き込み処理および削除処理のいずれかに該当するか否かを判定して、該書き込み処理および削除処理のいずれかに該当する場合には、前記記憶装置に記憶している仮想Ｖｉｅｗ情報を更新すること
を特徴とする計算機が行うファイル管理方法。
【請求項１４】
１台以上のストレージ装置と、該ストレージ装置に対するアクセス制御を行う計算機とを有するストレージシステムにおいて、前記ストレージシステムに格納されているファイルデータを管理する処理を前記計算機に実行させるプログラムであって、
前記計算機は、記憶装置を有していて、
前記プログラムは、
前記ストレージ装置に格納されているファイルデータの分類条件を受け付けるステップと、
前記ストレージ装置に格納されているファイルデータの中から、前記分類条件を満たすファイルデータを検索して、分類条件毎に、該分類条件を満たすファイルデータのファイル名および格納位置を対応付けた情報（以下において「仮想Ｖｉｅｗ情報」という）を生成して、該仮想Ｖｉｅｗ情報を生成して前記記憶装置に格納するステップと、
利用者からの仮想Ｖｉｅｗ情報の提示要求を受け付けて、前記記憶装置に記憶している仮想Ｖｉｅｗ情報を提示するステップと、
利用者からの前記ストレージ装置に格納されたファイルデータに対するアクセス要求を受け付けて、前記ストレージ装置のファイルデータに対するアクセス処理を行うステップと、
前記ファイルデータに対するアクセス処理が行われた場合、前記記憶装置に記憶している仮想Ｖｉｅｗ情報を更新するステップと、を前記計算機に実行させること
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに保存された情報資源にアクセスするための技術に関し、特に、コンピュータシステムに保存された情報資源をグループ分けしたリストとして利用者に提示する技術に関する。
【背景技術】
【０００２】
近年、コンピュータシステムの高性能化ならびに低価格化により、様々な業種や用途においてコンピュータシステムの利用が広がっている。これに伴い、従来は紙媒体などで扱っていた情報資源についても電子化がなされ、コンピュータシステムにおいて電子的に保存されるようにもなってきている。さらに、コンピュータシステムの利用が急速に進むにつれて、コンピュータシステムに保存される情報資源も爆発的に増大している。
【０００３】
従来のコンピュータシステムには、予め定めた分類条件にしたがい情報資源を階層的に分類して格納する方式を採用したものがある（例えば特許文献１）。特許文献１には、複数のコンピュータシステムをクラスタ構成して、情報資源を分類して格納するための仮想的な単一の階層構造を持つＶｉｅｗを構築し、そのＶｉｅｗを利用者に対して提供する技術が開示されている。特許文献１では、このＶｉｅｗの技術を採用することにより、情報資源に対するアクセスの利便性を高めている。
【０００４】
また、従来から、ストレージシステムに保存されている情報資源の中から特定の分類条件に合致する情報資源を検索し、検索され情報資源のリストをＶｉｅｗとして利用者に提示する技術が知られている（例えば非特許文献１）。非特許文献１では、コンピュータシステムが利用者からの分類条件を受け付け、情報資源を格納している複数のストレージシステムに対して、それぞれ、受け付けた分類条件での検索要求を行う。コンピュータシステムは、複数のストレージシステムが検索した検索結果を受け取り、全ての検索結果を集約して分類条件に合致する情報リストを作成して利用者に提供する。非特許文献１によれば、検索を行う毎に分類条件を設定できるため、利用者は、自分が検索したい情報ごとに動的なＶｉｅｗを取得できる。すなわち、非特許文献１の技術によれば、利用者毎に柔軟な情報を提供することができる。
【０００５】
【特許文献１】特開２００３−３１６５２２号公報
【非特許文献１】“WinFS  API  Session２煤A２００３年１０月検索、インターネット＜URL: http://download.microsoft.com/download/6/6/9/669C56E3-12AF-48C5-AB2A-E7705F1BE37F/CLI321.ppt.>
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１では、予め規定されている分類条件にしたがい情報資源をコンピュータシステムに格納しておいて、その分類条件毎に格納されている情報資源のリストをＶｉｅｗとして提供している。そのため、上記特許文献１は、利用者ごとに任意の分類条件で分類したＶｉｅｗを構築することが困難であるという問題を有している。具体的には、特許文献１の技術を用いて、予め規定されている分類条件と別の条件で分類したＶｉｅｗを構築しようとした場合、コンピュータシステムに格納されているファイルの入替えを行う必要が生じる。そして、その作業には、多大な手間と時間を費やしてしまう。特に、コンピュータシステムが大規模である場合、ファイルの入替作業に費やす手間および時間に関する問題は、大きなものとなる。
【０００７】
また、非特許文献１は、以下の問題を有している。具体的には、非特許文献１記載の技術は、利用者の希望する分類条件に対応したＶｉｅｗの提示要求を受け付けるたびに、ストレージシステムに格納されている情報資源の検索処理を行っている。そのため、非特許文献１では、利用者からの要求を受け付けてから対応するＶｉｅｗを提供するまでに長時間を費やしてしまうという問題が生じる。特に、膨大な量の情報資源を保存しているストレージシステムの中から、希望する分類条件に対応した情報を検索しようとした場合、その検索処理時間が増加してしまい、利用者の業務効率を悪化させてしまう。
【０００８】
さらに、非特許文献１に記載の技術では、上述したように利用者が希望する分類条件に対応した情報を検索しようとした場合に長時間を要する。そのため、検索処理の間にストレージシステムに格納された情報資源の登録・更新がなされた場合、検索処理の結果得られたＶｉｅｗが情報資源への登録・更新の情報を反映したデータか否かが不明となる。すなわち、非特許文献１では、最新データを確実に反映させたＶｉｅｗを利用者に提供することができない。
【０００９】
そこで、本発明の目的は、コンピュータシステムに格納されている情報資源に対して、利用者の要求する分類条件で分類された情報資源のリストを迅速かつ最新の情報を反映させて提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明の一態様は、１台以上のストレージ装置にネットワークを介して接続され、該ストレージ装置に対するアクセス制御を行う計算機に適用される。
【００１１】
そして、前記計算機は、前記ストレージ装置に格納されているファイルデータの分類条件を受け付ける手段と、前記ストレージ装置に格納されているファイルデータの中から、前記分類条件を満たすファイルデータを検索して、分類条件毎に、該分類条件を満たすファイルデータのファイル名および格納位置を対応付けた情報（仮想Ｖｉｅｗ情報）を生成して記憶する手段と、利用者からの仮想Ｖｉｅｗ情報の提示要求を受け付けて、前記記憶している仮想Ｖｉｅｗ情報を提示する手段と、利用者からの前記ストレージ装置に格納されたファイルデータに対するアクセス要求を受け付けて、前記ストレージ装置のファイルデータに対するアクセス処理を行う手段と、前記ファイルデータに対するアクセス処理が行われた場合、前記記憶している仮想Ｖｉｅｗ情報を更新する手段と有する。
【発明の効果】
【００１２】
このように本発明によれば、計算機がストレージ装置に格納されたファイルデータについて、利用者から受け付けた分類条件毎に、その分類条件を満たすファイルデータのファイル名および格納位置を対応付けた仮想Ｖｉｅｗ情報を生成して、予め記憶するようにしている。そのため、本発明によれば、利用者の要求に応じた分類条件にしたがい分類された情報資源を柔軟に提供することができる。
【００１３】
また、本発明によれば、利用者が仮想Ｖｉｅｗ情報の提示を要求した場合、予め記憶している仮想Ｖｉｅｗ情報を提示するようにしているため、迅速に利用者の要求に対応することができる。
【００１４】
さらに、本発明によれば、計算機がファイルデータへのアクセス処理を行った場合に、記憶している仮想Ｖｉｅｗ情報を更新するようにしている。すなわち、本発明によれば、予め仮想Ｖｉｅｗ情報を記憶しておいて、ファイルデータへのアクセス処理が行われた場合にアクセス処理を契機として記憶している仮想Ｖｉｅｗ情報を更新している。したがって、本発明の計算機が記憶している仮想Ｖｉｅｗ情報は、アクセス処理が反映された状態で記憶されていることとなる。
【００１５】
そのため、本発明によれば、利用者が仮想Ｖｉｅｗ情報の提示を要求した場合に、最新の更新状態を反映させた仮想Ｖｉｅｗ情報を利用者に提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態が適用された仮想Ｖｉｅｗ提供システムを説明する。
〈第１実施形態〉
先ず、本発明の第１実施形態について説明する。
【００１７】
図１は、本発明の第１実施形態の仮想Ｖｉｅｗ提供システムのシステム構成を説明するための図である。
【００１８】
図示するように、仮想Ｖｉｅｗ提供システム１０００は、制御サーバ（計算機）１００、クライアントノード２００ａ〜ｎ、およびストレージノード５００ａ〜ｎを有する。制御サーバ１００は、各クライアントノード２００ａ〜ｎとネットワーク１を介して接続されている。また、制御サーバ１００は、各ストレージノード５００ａ〜ｎとネットワーク２を介して接続されている。
【００１９】
制御サーバ１００は、ストレージノード５００ａ〜ｎと連携して、ストレージノード５００ａ〜ｎに格納されている情報資源であるファイルデータ（ファイル）を管理する。具体的には、制御サーバ１００は、ストレージノード５００ａ〜ｎと連携して、ファイルを管理するファイルシステム機能をクライアントノード２００ａ〜ｎに対して提供する。
【００２０】
さらに、本実施形態の制御サーバ１００は、仮想Ｖｉｅｗ機能を有している。仮想Ｖｉｅｗ機能とは、ストレージノード５００ａ〜ｎに格納されているファイルデータのファイル名および格納位置を含む「ファイルデータを示す情報」を後述する分類条件毎にグループ分けして、その分類条件毎にグループ分けした情報（以下において「仮想Ｖｉｅｗ」という）を記憶して、かつ仮想Ｖｉｅｗをクライアントノード２００ａ〜ｎに対して提供する機能である。この仮想Ｖｉｅｗ機能により、クライアントノード２００ａ〜ｎに対して、単一のＶｉｅｗとしてファイルシステムの物理的なディレクトリ構成を提供するのではなく、クライアント個別の仮想Ｖｉｅｗを構築して提供することを可能にしている。
【００２１】
クライアントノード２００ａ〜ｎは、制御サーバ１００が提供するファイルシステム機能を利用してストレージノード１００に格納されているファイルデータの入出力処理を行う。具体的には、クライアントノード２００ａ〜ｎは、利用者からのストレージノード５００ａ〜ｎに格納されたファイルに対するアクセス要求を受け付ける。クライアントノード２００ａ〜ｎは、上記のアクセス要求を受け付けた場合、ファイルシステム機能を利用して、ストレージノード５００ａ〜ｎに格納されているファイルに対するアクセス処理を行う。例えば、受け付けたアクセス要求がファイルの読出し処理の場合、クライアントノード２００ａ〜ｎは、制御サーバ１００にストレージノード５００ａ〜ｎに格納されているファイルに対する読出し要求を行う。制御サーバ１００は、上記の読出し要求にしたがい、ストレージノード５００ａ〜ｎから要求されたファイルを読出す。制御サーバ１００は、上記の要求したクライアントノード２００ａ〜ｎに対して、読み出したファイルを出力する。このように、クライアントノード２００ａ〜ｎは、制御サーバ１００を介して、ストレージノード５００ａ〜ｎに格納されたファイルを利用することができる。
【００２２】
また、クライアントノード２００ａ〜ｎは、制御サーバ１００が提供する仮想Ｖｉｅｗ機能を利用して、分類条件毎にグループ分けされた仮想Ｖｉｅｗを取得する。具体的には、クライアントノード２００ａ〜ｎは、利用者からの分類条件を示す情報の入力を受け付ける。クライアントノード２００ａ〜ｎは、受け付けた分類条件を示す情報を制御サーバ１００に出力して、制御サーバ１００に対して、受け付けた分類条件の毎にグループ分けした「仮想Ｖｉｅｗ」を生成させる。また、クライアントノード２００ａ〜ｎは、利用者からの仮想Ｖｉｅｗの提示要求を受け付ける。クライアントノード２００ａ〜ｎは、受け付けた仮想Ｖｉｅｗの提示要求を制御サーバ１００に出力して、制御サーバ１００から仮想Ｖｉｅｗを取得する。クライアントノード２００ａ〜ｎは、取得した仮想Ｖｉｅｗを利用者に提示する。
【００２３】
なお、クライアントノード２００ａ〜ｎが仮想Ｖｉｅｗを利用者に提示する具体的な方法について特に限定しない。例えば、クライアントノード２００ａ〜ｎに表示装置（図示しない）を接続しておいて、仮想Ｖｉｅｗを表示装置に表示させるようにしてもよい。また、クライアントノード２００ａ〜ｎは、制御サーバ１００と一体となった構成でもよい。また、クライアントノード２００ａ〜ｎの数はいくつでもよい。
【００２４】
ストレージノード５００ａ〜ｎは、情報資源であるファイルを格納するための装置であり、制御サーバ１００を介してファイルを格納する。なお、ストレージノード５００ａ〜ｎは、制御サーバ１００と一体となった構成でもよい。また、ストレージノード５００ａ〜ｎの数はいくつでもよい。例えば、複数のストレージノードを用意し、格納するファイルを各ストレージノードに分散格納することにより、分散ファイルシステムを構築することも可能である。また、ＲＡＩＤ(Redundant Array of Independent Disks)方式に基づき、複数のストレージノードを利用して情報を冗長格納することも可能である。これにより、単一のストレージノードを利用する場合と比べて、より高信頼で高性能なファイルシステムを提供することも可能となる。また、ストレージノード５００ａ〜ｎは、ＲＡＩＤグループを構成する複数のディスク装置を有するディスクアレイシステムとして構成されていてもよい。
【００２５】
なお、本実施形態では、ネットワーク１およびネットワーク２の具体的構成について特に限定しない。また、ネットワーク１およびネットワーク２が同じネットワーク網として構成されていてもよい。また、例えば、ネットワーク１がＬＡＮ（Local Area Network）で構成されていて、ネットワーク２がＳＡＮ（Storage Area Network）で構成されているというように、ネットワーク１およびネットワーク２が別のネットワーク網として構成されていてもよい。
【００２６】
続いて、制御サーバの構成について図２を用いて説明する。
【００２７】
図２は、本実施形態の制御サーバ１００のハードウェア構成を例示する説明図である。
【００２８】
制御サーバ１００は、プログラムを実行するプロセッサ１１０と、プログラムならびにデータを一時的に格納するメモリ１２０と、プログラムならびにデータを永続的に格納可能な外部記憶装置１３０と、外部記憶装置１３０にアクセスするための外部記憶Ｉ/Ｆ１４０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ/Ｆ１５０と、それらを接続するバス１９９と
を有する。
【００２９】
外部記憶装置１３０およびメモリ１２０には、外部記憶Ｉ／Ｆ１４０を制御するための外部記憶Ｉ／Ｆ制御プログラム１６０、ネットワークＩ/Ｆ１５０を制御するためのネットワークＩ/Ｆ制御プログラム１７０、ファイルシステム機能を提供するためのファイルシステム制御プログラム１８０、および仮想Ｖｉｅｗ機能を提供するための仮想Ｖｉｅｗ制御プログラム１９０が格納されている。仮想Ｖｉｅｗ制御１９０プログラムには、仮想Ｖｉｅｗ管理プログラム１９１、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２、および仮想Ｖｉｅｗ更新制御プログラム１９３の３つのプログラムが含まれる。また、外部記憶装置１３０およびメモリ１２０には、後述する仮想Ｖｉｅｗ管理表２０００（図３参照）が格納されている。なお、上記各プログラムは、外部記憶装置１３０に格納されていて、プロセッサ１１０によりメモリ１２０の所定領域に読み出されるものとする。また、仮想Ｖｉｅｗ管理表２０００は、外部記憶装置１３０に格納されていて、プロセッサ１１０によりメモリ１２０の所定領域に読み出される。
【００３０】
なお、本実施形態では、上記各プログラムは、制御サーバ１００が有する外部記憶装置１３０に格納されている場合を例にしているが特にこれに限定されるものではない。上記各プログラムを記憶媒体に格納しておくようにしてもよい。この場合、例えば、制御サーバ１００に記憶媒体に格納された各プログラムを読出し可能な外部装置を接続しておく。そして、制御サーバ１００のプロセッサ１１０は、記憶媒体に格納された各プログラムを読出してメモリ１２０に格納するようにしてもよい。なお、記憶媒体には、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、パンチカード、バーコードなどの符号が印刷された印刷物等のコンピュータが読み取り可能な種々の揮発性記録媒体や不揮発性記憶媒体を利用できる。また、制御サーバ１００のプロセッサ１１０は、インターネット等のネットワークを介してメモリ１２０に上記各プログラムをダウンロードするようにしてもよい。
【００３１】
プロセッサ１１０は、上記各プログラムを実行することにより各種の処理を行う。具体的には、プロセッサ１１０は、外部記憶装置１３０に格納されている外部記憶Ｉ／Ｆ制御プログラム１６０をメモリ１２０の所定領域に読み出して実行することにより外部記憶装置１４０を制御する。また、プロセッサ１１０は、外部記憶装置１３０に格納されているネットワークＩ/Ｆ制御プログラム１７０をメモリ１２０の所定領域に読み出して実行することによりネットワークＩ/Ｆ１５０を制御する。同様に、プロセッサ１１０は、外部記憶装置１３０に格納されているファイルシステム制御プログラム１８０をメモリ１２０の所定領域に読み出して実行することによりファイルシステム機能を提供する。同様に、プロセッサ１１０は、外部記憶装置１３０に格納されている仮想Ｖｉｅｗ更新制御プログラム１９０をメモリ１２０の所定領域に読み出して実行することにより仮想Ｖｉｅｗ機能を提供する。なお、仮想Ｖｉｅｗ機能は、仮想Ｖｉｅｗ管理機能、仮想ＶｉｅｗＩ／Ｆ制御機能、および仮想Ｖｉｅｗ更新制御機能に分類される。
【００３２】
仮想Ｖｉｅｗ管理機能とは、プロセッサ１１０が仮想Ｖｉｅｗ管理プログラム１９１を実行することにより実現される機能で、後述する仮想Ｖｉｅｗ管理表２０００（図３）を管理する機能である。また、仮想ＶｉｅｗＩ／Ｆ制御機能とは、プロセッサ１１０が仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２を実行することにより実現される機能で、後述する仮想Ｖｉｅｗに対する操作要求をクライアントノード２００ａ〜ｎから受け付けて、その結果を要求元のクライアントノード２００ａ〜ｎに返す機能である。仮想Ｖｉｅｗ更新制御機能は、ストレージノード５００ａ〜ｎに格納されているファイルデータの更新等の処理を管理している仮想Ｖｉｅｗ管理表２０００に反映させる機能である。なお、仮想Ｖｉｅｗ管理機能、仮想ＶｉｅｗＩ／Ｆ制御機能、および仮想Ｖｉｅｗ更新制御機能については後段で詳細に説明する。
【００３３】
ネットワークＩ／Ｆ１５０には、クライアントノード２００ａ〜ｎと制御サーバ１００とを接続しているネットワーク１、ならびにストレージノード５００ａ〜ｎと制御サーバ１００とを接続しているネットワーク２とが接続されている。そして、制御サーバ１００は、ネットワークＩ/Ｆ制御プログラム１７０により、ネットワークＩ／Ｆ１５０を介して、クライアントノード２００ａ〜ｎならびにストレージノード５００ａ〜ｎとの間の通信を行う。
【００３４】
また、制御サーバ１００がファイルシステム機能を提供する処理を実行する場合、ネットワークＩ/Ｆ制御プログラム１７０によりネットワークＩ／Ｆ１５０を制御してクライアントノード２００ａ〜ｎからのファイルアクセス要求を受け付ける。また、制御サーバ１００がファイルシステム機能を提供する処理を実行する場合、ネットワークＩ/Ｆ制御プログラム１７０によりネットワークＩ／Ｆ１５０を制御してストレージノード５００ａ〜ｎに対してファイルアクセス要求を行う。なお、制御サーバ１００は、ストレージノード５００ａ〜ｎが対象データを識別できる要求形式でストレージノード５００ａ〜ｎに対してアクセス要求を行う。
【００３５】
続いて、仮想Ｖｉｅｗを格納するための仮想Ｖｉｅｗ管理表２０００について図３を用いて説明する。なお、この仮想Ｖｉｅｗ管理表２０００は、プロセッサ１１０が仮想Ｖｉｅｗ管理プログラム１９１を実行することにより管理されるリストもしくはデータベースである。
【００３６】
図３は、本実施形態の制御サーバ１００が保持する仮想Ｖｉｅｗ管理表２０００のデータ構造の一例を模擬的に示した図である。
【００３７】
図示するように、仮想Ｖｉｅｗ管理表２０００は、仮想Ｖｉｅｗを識別するための仮想Ｖｉｅｗ識別子を格納するエントリ２１００と、エントリ２１００に格納された仮想Ｖｉｅｗ識別子により特定される仮想Ｖｉｅｗの構築条件を格納するためのエントリ２２００と、エントリ２１００に格納された仮想Ｖｉｅｗ識別子により特定される仮想Ｖｉｅｗに登録されているファイル数を格納するエントリ２６００と、エントリ２１００に格納された仮想Ｖｉｅｗ識別子により特定される仮想Ｖｉｅｗに格納されているファイルの実際に格納されている登録ファイルの格納場所を格納するエントリ２７００ａ〜ｃと、を有する。また、構築条件を格納するためのエントリ２２００は、構築条件を設定するための構築条件論理式を格納するエントリ２３００、構築条件式を格納するエントリ２４００、２５００に分割されている。
【００３８】
エントリ２３００には、エントリ２４００およびエントリ２５００に格納する複数の構築条件式と、それら構築条件式間の関係を規定する構築条件論理式を登録することができる。エントリ２３００に格納する構築条件論理式の規定方法については、特に限定しない。構築条件論理式としては、例えば、条件式の否定や、条件式間の論理和ならびに論理積など、論理式で表現可能な方法を用いるとようにしてもよい。図示する例では、エントリ２４００およびエントリ２５００に格納された構築条件式の論理積が規定されている。
【００３９】
構築条件式を格納するエントリ２４００（２５００）は、属性を格納するエントリ２４１０（２５１０）、一致値を格納するエントリ２４２０（２５２０）、下限値を格納するエントリ２４３０（２５３０）、および上限値を格納するエントリ２４４０（２５４０）を有する。なお、下限値および上限値は、組で利用することとして、「一致値」および「下限値および上限値の組」は、どちらか一方を利用することとする。
【００４０】
図示する例では、エントリ２４００の構築条件式１には、属性を格納するエントリ２４１０に「ファイル作成者」が格納されていて、一致値を格納するエントリ２４２０に有効な値「Ｐ」が格納されていて、下限値および上限値を格納するエントリ２４３０および２４４０に無効な値を意味する「ＮＵＬＬ」が格納されている。すなわち、エントリ２４００に格納されている構築条件式１は、ファイル作成者が「Ｐ」である全てのファイルを当該仮想Ｖｉｅｗに対する構築条件として設定していることを示している。
【００４１】
また、構築条件式で上限値および下限値の組を利用する場合、双方に矛盾のない有効な値を設定する。ここで、上限値ならびに下限値のどちらか一方のみについては、無効な値を設定することにより、一方向に無限な範囲を指定することも可能である。
【００４２】
図示するエントリ２５００に格納されている構築条件式２には、属性を格納するエントリ２５１０に「ファイル作成日」が格納されていて、一致値を格納するエントリ２５２０に無効な値を意味する「ＮＵＬＬ」が格納されている。また、下限値を格納するエントリ２５３０に「２０００年１月１日」という有効な値が格納されていて、上限値を格納するエントリ２５４０に無効な値を意味する「ＮＵＬＬ」が格納されている。このエントリ２５００に格納されている構築条件式２では、「２０００年１月１日以降」に作成された全てファイルデータを当該仮想Ｖｉｅｗに対する構築条件として設定していることを示している。
【００４３】
なお、仮想Ｖｉｅｗの構築条件の設定方式には、図３で例示した方式に限定されるものではない。例えば、構築条件として、構築条件式と構築条件論理式を一体化させた論理式を登録するようにしてもよい。また、構築条件式で利用する属性には、ファイル属性情報や、ファイル実体情報など様々なものがある。例えば、構築条件としてファイル実態情報に含まれる「キーワード」を設定するようにしてもよい。また、構築条件としてファイル実態情報に含まれる「キーワード」と「ファイル属性情報」とを組合せるようにしてもよい。なお、ファイル属性情報とファイル実体情報については後述する。
【００４４】
エントリ２６００には、上述した通り、当該仮想Ｖｉｅｗの構築条件に合致した、当該仮想Ｖｉｅｗに登録されているファイルの個数が格納される。そして、仮想Ｖｉｅｗ管理表２０００のエントリ２７００ａ〜ｃの数は、登録ファイル数と同数確保する。図示する例では、登録ファイル数を格納するエントリ２６００に「３」が格納されている。そのため、仮想Ｖｉｅｗ管理表２０００には、登録ファイル格納場所として３エントリ（２７００ａ〜ｃ）が確保されている。
【００４５】
エントリ２７００ａ〜ｃに格納する登録ファイル格納場所には、登録ファイルの識別情報、すなわちそのファイルにアクセスするために必要な情報が格納される。具体的には、登録ファイルの識別情報として、制御サーバ１００のファイルシステム制御プログラムにより実現されるファイルシステム機能がストレージノード５００ａ〜ｎにアクセスする際に利用するパス名/ファイル名を登録するようにしてもよい。また、登録ファイルの識別情報として、ストレージノード５００ａ〜ｎがローカルファイルシステム制御プログラムを介してアクセスするパス名/ファイル名をストレージノードの識別情報として登録するようにしてもよい。図示する例では、前者の方式に従い、エントリ２７００ａ〜ｃに格納する登録ファイル格納場所に登録ファイルのパス名/ファイル名を格納している。具体的には、エントリ２７００ａには「/発明/発明Ａ/発明Ａ明細書」が格納され、エントリ２７００ｂには「/特許出願/発明Ａ出願書類」が格納され、エントリ２７００ｃには「/特許出願/発明Ｂ出願書類」が格納されている。
【００４６】
なお、上述した仮想Ｖｉｅｗ管理表２０００のデータ構造は例示に過ぎない。例えば、構築条件のエントリや登録ファイル格納場所のエントリを別表にして、仮想Ｖｉｅｗ管理表にはその別表への参照情報のみを登録するようにしてもよい。また、本実施形態では、制御サーバ１００が仮想Ｖｉｅｗ管理表２０００を保持する場合を例にするが、特にこれに限定するものではない。仮想Ｖｉｅｗ管理表２０００をストレージノード５００ａ〜ｎに保持させるようにしてもよい。
【００４７】
続いて、ストレージノード５００ａ〜ｎのハードウェア構成について図４を用いて説明する。
【００４８】
図４は、本実施形態のストレージノード５００ａのハードウェア構成を説明するための図である。なお、ストレージノード５００ｂ〜ｎは、ストレージノード５００ａと同様の構成を有するため説明を省略する。
【００４９】
ストレージノード５００ａは、プログラムを実行するプロセッサ５１０と、プログラムならびにデータを一時的に格納するメモリ５２０と、プログラムならびにデータを永続的に格納可能な外部記憶装置５３０と、外部記憶装置５２０にアクセスするための外部記憶Ｉ／Ｆ５４０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ５５０と、それらを接続するバス５９９とを有する。
【００５０】
外部記憶装置５３０およびメモリ５２０には、外部記憶Ｉ／Ｆ５４０を制御する外部記憶Ｉ／Ｆ制御５６０プログラムと、ネットワークＩ／Ｆ５５０を制御するネットワークＩ／Ｆ制御プログラム５７０と、ストレージノード５００ａにおけるファイルデータを制御するローカルファイルシステム制御プログラム５８０とが格納されている。具体的には、上記各プログラムは、外部記憶装置５３０に格納されていて、プロセッサ５１０によりメモリ５２０の所定領域に読み出される。
【００５１】
なお、本実施形態では、上記各プログラムは、ストレージノード５００ａが有する外部記憶装置５３０に格納されている場合を例にしているが特にこれに限定されるものではない。上記各プログラムを記憶媒体に格納しておくようにしてもよい。この場合、例えば、ストレージノード５００ａに記憶媒体に格納された各プログラムを読出し可能な外部装置を接続しておく。そして、ストレージノード５００ａのプロセッサ５１０は、記憶媒体に格納された各プログラムを読出してメモリ５２０に格納するようにしてもよい。なお、記憶媒体には、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、パンチカード、バーコードなどの符号が印刷された印刷物等のコンピュータが読み取り可能な種々の揮発性記録媒体や不揮発性記憶媒体を利用できる。また、制御サーバ５００ａのプロセッサ５１０は、インターネット等のネットワークを介してメモリ５２０に上記各プログラムをダウンロードするようにしてもよい。
【００５２】
プロセッサ５１０は、上記各プログラムを実行することにより各種の処理を行う。具体的には、プロセッサ５１０は、外部記憶装置５３０に格納されている外部記憶Ｉ／Ｆ制御プログラム５６０をメモリ５２０の所定領域に読み出して実行することにより外部記憶Ｉ／Ｆ５４０を制御する。また、プロセッサ５１０は、外部記憶装置５３０に格納されているネットワークＩ/Ｆ制御プログラム５７０をメモリ５２０の所定領域に読み出して実行することによりネットワークＩ/Ｆ５５０を制御する。また、プロセッサ５１０は、外部記憶装置５３０に格納されているローカルファイルシステム制御プログラム５８０をメモリ５２０の所定領域に読み出して実行することにより、自ストレージノード５００ａ上の外部記憶装置５３０を利用してファイルシステムを構築する。すなわち、プロセッサ５１０は、ローカルファイルシステム制御プログラム５８０により、自ストレージノード５００ａの外部記憶装置５３０に格納されているローカルファイルデータに対するアクセス処理を行う。
【００５３】
ネットワークＩ／Ｆ５５０は、制御サーバ１００と接続されているネットワーク２に接続されている。そして、ストレージノード５００ａは、ネットワークＩ/Ｆ制御プログラム５７０により、ネットワークＩ／Ｆ５５０を介して制御サーバ１００と通信を行う。
【００５４】
また、ストレージノード５００ａは、ローカルファイルデータに対するアクセス処理に際し、ネットワークＩ/Ｆ制御プログラム５７０により制御されるネットワークＩ／Ｆ５５０を介して制御サーバ１００からのアクセス要求を受け付ける。このアクセス要求は、ストレージノード５００ａ上のファイルデータが識別可能な形式で行われる。なお、このアクセス要求の具体な形式について特に限定しない。例えば、ストレージノード５００ａがローカルファイルデータにアクセス処理する際に用いるファイルのパス名／ファイル名を利用した形式でアクセス要求を受け付けるようにしてもよい。そして、このアクセス要求の結果は、当該ストレージノード５００ａから、要求された際の手順と逆の手順で制御サーバ１００に返される。
【００５５】
外部記憶装置５３０は、ローカルファイルシステム制御プログラム５８０により管理されるファイルデータを格納する装置である。なお、外部記憶装置５３０の具体的な構成については特に限定しないが、例えば、外部記憶装置５３０には、ディスク装置を用いることができる、また、外部記憶装置５３０は、複数のディスク装置により構成されていてもよい。
【００５６】
続いて、クライアントノード２００ａ〜ｎのハードウェア構成について図５を用いて説明する。
【００５７】
図５は、本実施形態のクライアントノード２００ａのハードウェア構成を説明するための図である。なお、クライアントノード２００ｂ〜ｎは、クライアントノード２００ａと同様の構成を有するため説明を省略する。
【００５８】
図示するように、クライアントノード２００ａは、プログラムを実行するプロセッサ２１０と、プログラムならびにデータを一時的に格納するメモリ２２０と、プログラムならびにデータを永続的に格納可能な外部記憶装置２３０と、外部記憶装置２３０にアクセスするための外部記憶Ｉ／Ｆ２４０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ２５０と、それらを接続するバス２９９とを有する。
【００５９】
外部記憶装置２３０およびメモリ２２０には、外部記憶Ｉ／Ｆ２４０を制御する外部記憶Ｉ／Ｆ制御２６０プログラムと、ネットワークＩ／Ｆ２５０を制御するネットワークＩ／Ｆ制御プログラム２７０と、制御サーバ１００が提供のファイルシステム機能へアクセスするためのファイルシステムアクセス制御プログラム２８０と、制御サーバ１００が提供する仮想Ｖｉｅｗ機能を利用するための仮想Ｖｉｅｗアクセス制御プログラム２９０とが格納されている。具体的には、上記各プログラムは、外部記憶装置２３０に格納されていて、プロセッサ２１０によりメモリ２２０の所定領域に読み出される。
【００６０】
なお、本実施形態では、上記各プログラムは、クライアントノード２００ａが有する外部記憶装置２３０に格納されている場合を例にしているが特にこれに限定されるものではない。上記各プログラムを記憶媒体に格納しておくようにしてもよい。この場合、例えば、クライアントノード２００ａに記憶媒体に格納された各プログラムを読出し可能な外部装置を接続しておく。そして、クライアントノード２００ａのプロセッサ２１０は、記憶媒体に格納された各プログラムを読出してメモリ２２０に格納するようにしてもよい。なお、記憶媒体には、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、パンチカード、バーコードなどの符号が印刷された印刷物等のコンピュータが読み取り可能な種々の揮発性記録媒体や不揮発性記憶媒体を利用できる。また、クライアントノード２００ａのプロセッサ２１０は、インターネット等のネットワークを介してメモリ２２０に上記各プログラムをダウンロードするようにしてもよい。
【００６１】
プロセッサ２１０は、上記各プログラムを実行することにより各種の処理を行う。具体的には、プロセッサ２１０は、外部記憶装置２３０に格納されている外部記憶Ｉ／Ｆ制御プログラム２６０をメモリ２２０の所定領域に読み出して実行することにより外部記憶Ｉ／Ｆ２４０を制御する。また、プロセッサ２１０は、外部記憶装置２３０に格納されているネットワークＩ/Ｆ制御プログラム２７０をメモリ２２０の所定領域に読み出して実行することによりネットワークＩ/Ｆ２５０を制御する。また、プロセッサ２１０は、外部記憶装置２３０に格納されているファイルシステムアクセス制御プログラム２８０をメモリ２２０の所定領域に読み出して実行することにより、制御サーバ１００が提供のファイルシステム機能を利用する。また、プロセッサ２１０は、外部記憶装置２３０に格納されている仮想Ｖｉｅｗアクセス制御プログラム２９０をメモリ２２０の所定領域に読み出して実行することにより、制御サーバ１００が提供する仮想Ｖｉｅｗ機能を利用する。
【００６２】
プロセッサ２１０は、ファイルシステムアクセス制御プログラム２８０により、制御サーバ１００を介してストレージノード５００ａ〜ｎのファイルにアクセスして、ファイルデータの読出し処理、書き込み処理、および削除処理等のアクセス処理を行う。また、プロセッサ２１０は、仮想Ｖｉｅｗアクセス制御プログラム２９０により、制御サーバ１００に対して、後述する仮想Ｖｉｅｗ管理表２０００（図３参照）の作成要求や仮想Ｖｉｅｗ取得要求等の各種要求を行う。また、プロセッサ２１０は、仮想Ｖｉｅｗアクセス制御プログラム２９０により、上記の要求に応じて制御サーバ１００が返信する情報を取得して利用者に提示する。
【００６３】
ネットワークＩ／Ｆ２５０は、制御サーバ１００と接続されているネットワーク１に接続されている。そして、クライアントノード２００ａは、ネットワークＩ/Ｆ制御プログラム２７０により、ネットワークＩ／Ｆ２５０を介して制御サーバ１００と通信を行う。ファイルシステムアクセス制御プログラム２８０により実行される制御サーバ１００へのアクセス処理は、ネットワークＩ/Ｆ制御プログラム２７０により制御されるネットワークＩ／Ｆ２５０を介して行われる。
【００６４】
続いて、本実施形態の仮想Ｖｉｅｗ提供システムが提供する仮想Ｖｉｅｗとストレージノード５００ａ〜ｎに格納されているファイルデータとの対応関係について図６を用いて説明する。
【００６５】
図６は、本実施形態の制御サーバが提供する仮想Ｖｉｅｗとストレージノードに格納されているファイルデータとの対応関係を説明するための図である。
【００６６】
図示するように、制御サーバ１００上に仮想Ｖｉｅｗ３０００があり、ストレージノード５００にファイルデータが格納されている。仮想Ｖｉｅｗ３０００とは、図３で仮想Ｖｉｅｗ管理表２０００として示した仮想Ｖｉｅｗを模式化したものである。制御サーバ１００は、クライアントノード２００ａ〜ｎからの仮想Ｖｉｅｗ取得要求を受け付けて、仮想Ｖｉｅｗ３０００の内容を示す情報をクライアントノード２００ａ〜ｎに出力する。クライアントノード２００ａ〜ｎは、仮想Ｖｉｅｗ３０００に示す情報を利用者に提示する。また、クライアントノード２００ａ〜ｎは、仮想Ｖｉｅｗアクセス制御プログラム２９０により、制御サーバ１００を介して仮想Ｖｉｅｗ３０００に示されているファイルにアクセスすることができる。具体的には、クライアントノード２００ａ〜ｎは、仮想Ｖｉｅｗアクセス制御プログラム２９０により、仮想Ｖｉｅｗ３０００に表示されたファイルを指定したアクセス要求を制御サーバ１００に送信する。制御サーバ１００は、ファイルシステム制御プログラム１８０により、仮想Ｖｉｅｗ管理表２０００内の登録ファイル格納場所２７００ａ〜ｃに登録されている情報を用いてアクセス要求されたファイルにアクセスする。
【００６７】
また、仮想Ｖｉｅｗ３０００は、制御サーバ１００に複数作成することが可能である。さらに、一つのファイルが複数の仮想Ｖｉｅｗに登録されてもよい。また、複数のストレージノードが存在する場合は、各ストレージノード上に保存されているファイルを対象にした仮想Ｖｉｅｗ３０００、すなわちストレージノードを跨った仮想Ｖｉｅｗを作成することも可能である。
【００６８】
図示する例では、ストレージノード５００ａ〜ｎ上で提供されるファイルシステム機能のディレクトリ構造は、ルートディレクトリ「／」４０００を頂点としている。ルートディレクトリ「／」４０００のサブディレクトリとして「発明」ディレクトリ４１００および「特許出願」ディレクトリ４２００がある。「発明」ディレクトリ４１００内には、さらにそのサブディレクトリとして「発明Ａ」ディレクトリ４３００および「発明Ｂ」ディレクトリ４４００がある。「発明Ａ」ディレクトリ４３００内には、「発明Ａアイデアメモ」４３１０、「発明Ａ明細書」４３２０、および「発明Ａ図面」４３３０の３つのファイルがある。同様に、「発明Ｂ」ディレクトリ４４００内には、「発明Ｂアイデアメモ」４４１０、「発明Ｂ明細書」４４２０、および「発明Ｂ図面」４４３０の３つのファイルがある。また、「特許出願」ディレクトリ４２００内には、「発明Ａ出願書類」４２１０、および「発明Ｂ出願書類」４２２０の２つのファイルがある。
【００６９】
図示する仮想Ｖｉｅｗ３０００は、仮想Ｖｉｅｗ識別子２１００が「１」であり、構築条件２２００に「ファイル作成者」が「Ｐ」であり、かつ「ファイル作成日」が「２０００年１月１日以降」のファイルであることを示している。また、仮想Ｖｉｅｗ３０００は、登録ファイル数２５００が「３」であり、登録ファイルに対応する登録ファイル格納場所２７００ａ〜ｃとして、３つのファイルに対する「パス名／ファイル名」がそれぞれ示されている。具体的には、ファイル名が「発明Ａ明細書」４３２０であるファイルの登録ファイル格納場所２７００ａは、「／発明／発明Ａ／発明Ａ明細書」であることを示している。ファイル名が「発明Ａ出願書類」４２１０であるファイルの登録ファイル格納場所２７００ｂは、「／特許出願／発明Ａ出願書類」であることを示している。ファイル名が「発明Ｂ出願書類」４２２０であるファイルの登録ファイル格納場所２７００ｃは、「／特許出願／発明Ｂ出願書類」であることを示している。
【００７０】
続いて、本実施形態の仮想Ｖｉｅｗ３０００を利用者に利用させるためのＩ／Ｆ（仮想Ｖｉｅｗ操作Ｉ／Ｆ）について図６を用いて説明する。
【００７１】
制御サーバ１００は、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２により、仮想Ｖｉｅｗ操作Ｉ／Ｆ３１００を、クライアントノード２００ａ〜ｎを介して利用者に提供する。仮想Ｖｉｅｗ操作Ｉ／Ｆ３１００により利用者から受け付ける操作処理には、仮想Ｖｉｅｗ作成要求３１１０、仮想Ｖｉｅｗ構築条件設定要求３１２０、仮想Ｖｉｅｗ更新要求３１３０、仮想Ｖｉｅｗ取得要求３１４０、および仮想Ｖｉｅｗ削除要求３１５０の５つの操作処理がある。なお、これらの５つの具体的な処理フローについては、後述する。
【００７２】
続いて、制御サーバ１００が仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２
により、利用者から受け付ける５つの操作処理（３１１０、３１２０、３１３０、３１４０、３１５０）で利用するパラメータについて説明する。
【００７３】
図７は、本実施形態の制御サーバが用いる入出力パラメータの一例を示した図である。
【００７４】
図示する入出力パラメータ５０００には、入力パラメータ５１００と出力パラメータ５２００とが含まれる。
【００７５】
入力パラメータ５１００には、どの仮想Ｖｉｅｗ操作を行うのかを識別するための操作種別５１１０、操作対象となる仮想Ｖｉｅｗを識別するための仮想Ｖｉｅｗ識別子５１２０、および各操作で必要な情報５１３０が含まれる。
【００７６】
操作種別５１１０には、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２により提供される５つの操作処理（３１１０、３１２０、３１３０、３１４０、３１５０）を識別するための情報が格納される。各操作で必要な情報５１３０は、各操作により異なる。例えば、各操作で必要な情報５１３０には、仮想Ｖｉｅｗ作成要求３１１０および仮想Ｖｉｅｗ構築条件設定要求３１２０の場合、仮想Ｖｉｅｗの構築条件が格納される。構築条件の格納形式は、仮想Ｖｉｅｗ管理表２０００にある構築条件２２００に沿った形式が考えられる。ただし、この形式のみにはよらず、他の形式を用いてもよい。
【００７７】
出力パラメータ５２００には、要求された操作の結果を知らせるための操作結果５２１０、および操作で得られた情報５２２０が含まれる。操作結果５２１０には、操作が成功したか失敗したかを示す情報が格納される。また、操作結果５２１０には、操作が失敗した場合はどのような理由でその操作が失敗したかを示す情報が格納される。操作で得られた情報５２２０は、各操作により異なる。例えば、操作で得られた情報５２２０には、仮想Ｖｉｅｗ作成３１１０の場合、作成した仮想Ｖｉｅｗの識別子が格納される。また、例えば、操作で得られた情報５２２０には、仮想Ｖｉｅｗ取得３１４０の場合、当該仮想Ｖｉｅｗの仮想Ｖｉｅｗ管理表２０００で管理されている情報が格納される。なお、この場合、仮想Ｖｉｅｗ管理表２０００内の全ての情報を格納されるようにしてもよいし、一部の情報のみを格納されるようにしてもよい。
【００７８】
続いて、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ（仮想Ｖｉｅｗ管理表２０００に格納されている情報）を更新する契機について説明する。仮想Ｖｉｅｗ更新の契機は、ストレージノード５００ａ〜ｎに対するファイルアクセス操作を契機（更新契機３２００）する場合、および、前述の仮想Ｖｉｅｗ更新要求３１３０を契機（更新契機３３００）とする場合の２通りの契機がある（図６参照）。そして、制御サーバ１００は、上記の２つの契機により保持する仮想Ｖｉｅｗ管理表２０００の内容を更新する。具体的には、制御サーバ１００は、ストレージノード５００ａ〜ｎのファイルデータへのアクセス処理を行った場合に仮想Ｖｉｅｗ管理表２０００を更新する処理を行う。また、制御サーバは、利用者からの仮想Ｖｉｅｗ更新要求３１３０をクライントノード２００ａ〜ｎを介して受け付けた場合に仮想Ｖｉｅｗ管理表２０００を更新する処理を行う。なお、これら２つの更新契機における仮想Ｖｉｅｗ管理表２０００を更新する具体的な処理フローについては、後述する。
【００７９】
続いて、ストレージノード５００ａ〜ｎに格納されたファイルに対するファイルアクセス操作を契機（更新契機３２００）として行う仮想Ｖｉｅｗの更新について説明する。
【００８０】
制御サーバ１００は、ストレージノード５００ａ〜ｎのファイルにアクセスした場合、そのアクセスの種類により仮想Ｖｉｅｗの更新の必要があるか否かを判断する。ここで、制御サーバ１００が仮想Ｖｉｅｗの更新の必要があるか否かを判断する基準について図８を用いて説明する。
【００８１】
図８は、仮想Ｖｉｅｗの更新・登録が必要であるか否かを判断するための基準を例示した図である。
【００８２】
一覧６０００では、仮想Ｖｉｅｗ更新において、仮想Ｖｉｅｗの更新が必要か否かの観点でファイルアクセス操作を分類している。
【００８３】
図示する一覧６０００において、仮想Ｖｉｅｗの更新が必要なファイルアクセス操作６１００として、ファイル書き込み操作６１１０およびファイル削除操作６１２０を挙げている。これらのファイル操作を更新の対象としたのは、これらのファイル操作がストレージノード５００ａ〜ｎに格納されているファイルの内容を変更する処理であるためである。なお、図示していないが、仮想Ｖｉｅｗ更新が必要なファイルアクセス操作６１００には、ファイル作成操作、ディレクトリ作成操作、ディレクトリ削除操作、ディレクトリ情報設定操作、ファイル名／ディレクトリ名改名操作、ファイル／ディレクトリ複製操作、ファイル／ディレクトリ移動操作、ファイルへのリンク作成操作、ファイルへのリンク削除操作、書き込み途中状態の情報を同期書き込みさせる同期操作、ファイルを閉じる操作などが含まれる。
【００８４】
また、仮想Ｖｉｅｗ更新が不要なファイルアクセス操作６２００として、ファイル読み出し操作６２１０を挙げている。これは、このファイル操作がストレージノード５００ａ〜ｎに格納されているファイルの内容を変更する処理ではなく、仮想Ｖｉｅｗを更新する必要がないためである。なお、図示していないが、仮想Ｖｉｅｗ更新が不要なファイルアクセス操作６２００には、ファイルを開く操作、ファイル属性取得操作、ディレクトリ情報取得操作、ファイルアクセス権限確認操作、ファイルへのリンク情報読み出し操作、ファイル情報取得操作などが含まれる。
【００８５】
続いて、本実施形態のストレージノード５００ａ〜ｎに格納されるファイルのデータ構成について説明する。
【００８６】
図９は、本実施形態のストレージノードに格納されるファイルのデータ構成を模擬的に示した図である。
【００８７】
図示するようにファイル７０００は、ファイル属性情報７１００とファイル実体情報７２００とを有する。ファイル属性情報７１００とは、このファイルのメタ情報に相当する。ファイル属性情報７１００には、ファイル名７１１０、ファイル作成日７１２０、ファイル作成者７１３０、およびファイル格納場所７１４０が含まれる。また、ファイル属性情報７１００には、図示しないが、このファイルの物理的な格納場所情報、アクセス制御情報、ファイル所有者、所属グループ、大きさ、最終アクセス時刻、最終更新時刻、最終変更時刻、物理的に利用している記憶領域の大きさ、キーワード等の情報が含まれていてもよい。
【００８８】
また、ファイル属性情報は、ファイルシステム制御１８０プログラムにより更新・管理される「システム属性」、および、利用者から受け付けた要求により登録・更新される属性であって、ファイルシステム制御プログラム１８０が管理だけ行う「ユーザ属性」の二つに分類できる。なお、システム属性として扱われる属性については、ファイルシステム制御プログラム１８０により決まる。ユーザ属性として扱われる属性については、利用者による拡張も可能なものにする。
【００８９】
ファイル実体情報７２００とは、当該ファイルの実データのバイトストリームに相当する。ファイル実体情報７２００は、ストレージノード５００上の外部記憶装置５３０に格納される。ファイル属性情報７１００は、ストレージノード５００上の外部記憶装置５３０に格納する方式の他、制御サーバ１００上の外部記憶装置１３０に格納する方式が考えられる。ここで、ストレージノード５００ａに格納する情報については、ストレージノード５００ｂ〜ｎについても同様に格納することができる。
【００９０】
なお、ファイル書き込み操作６１１０およびファイル読み出し操作６２１０は、図９で示すファイル属性情報７１００に対する操作ならびにファイル実体情報７２００に対する操作の両方に相当する。ファイル属性情報７１００に対するファイル書き込み操作６１１０としては、ファイル名７１１０の変更操作やファイル格納場所７１４０の変更操作などが相当する。ファイル実体情報７２００に対するファイル書き込み操作６１１０としては、実データに対する上書き更新などが相当する。一方で、ファイル読み出し操作６２１０としては、ファイル属性情報７１００あるいはファイル実体情報７２００への参照操作が相当する。
【００９１】
また、ファイル削除操作６１２０は、ファイル７０００に対する操作に相当する。すなわち、ファイル削除操作６１２０は、当該ファイル７０００のファイル属性情報７１００とファイル実体情報７２００とが共に削除されることを意味する。ファイル実体情報７２００の全削除、もしくはファイル属性情報７１００あるいはファイル実体情報７２００の一部分を削除する操作については、ファイル書き込み操作６１１０として考える。
【００９２】
本実施形態では、ファイル属性情報７１００ならびにファイル実体情報７２００に対して、ファイル書き込み操作６１１０が行われた場合と、ファイル削除操作６１２０が行われた場合に、仮想Ｖｉｅｗの更新を行うことにしている。なお、ファイル書き込み操作６１１０には、ファイル７０００を新規に格納した場合や、ファイル属性情報７１００の一部を変更した場合、例えば、ファイル格納場所７１４０を変更した場合などがある。
【００９３】
続いて、本実施形態のクライアントノード２００ａ〜ｎが制御サーバ１００に対して行う仮想Ｖｉｅｗ情報の操作処理について説明する。
【００９４】
図１０は、本実施形態のクライアントノードが行う仮想Ｖｉｅｗ情報の操作処理を説明するためのフローチャートである。
【００９５】
なお、以下の処理は、クライアントノード２００ａ〜ｎのプロセッサ２１０が仮想Ｖｉｅｗアクセス制御プログラム２９０を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため仮想Ｖｉｅｗアクセス制御プログラム２９０を動作主体として記載する。
【００９６】
仮想Ｖｉｅｗアクセス制御プログラム２９０は、利用者からの操作要求の入力を受け付ける。具体的には、仮想Ｖｉｅｗアクセス制御プログラム２９０は、利用者からの入力パラメータ５１００（図７参照）を受け付ける。仮想Ｖｉｅｗアクセス制御プログラム２９０は、受け付けた入力パラメータ５１００を引数として設定した仮想Ｖｉｅｗ操作要求を生成する。仮想Ｖｉｅｗアクセス制御プログラム２９０は、入力パラメータ５１００を設定した仮想Ｖｉｅｗ操作要求を制御サーバ１００に出力する（Ｓ１０）。
【００９７】
なお、本実施形態では、利用者からの操作要求の入力を受け付ける手段について特に限定しない。例えば、仮想Ｖｉｅｗアクセス制御プログラム２９０は、図示しない表示装置に操作メニュー画面を表示して、利用者からの操作要求の入力を受け付けるようにしてもよい。
【００９８】
上記の仮想Ｖｉｅｗ操作要求を受け付けた制御サーバ１００は、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２により、受け付けた仮想Ｖｉｅｗ操作要求に対応する処理を行い、その処理の結果を示す情報を仮想Ｖｉｅｗアクセス制御プログラム２９０に出力する。上記の結果を示す情報には出力パラメータ５２００（図７参照）が含まれているものとする。なお、制御サーバ１００が行う受け付けた仮想Ｖｉｅｗ操作要求に対する処理については後述する。
【００９９】
そして、仮想Ｖｉｅｗアクセス制御プログラム２９０は、制御サーバ１００からの結果を示す情報を受信して、その情報に含まれる出力パラメータ５２００を利用者に提示する（Ｓ１１）。
【０１００】
続いて、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗアクセス処理について図１１を用いて説明する。
【０１０１】
図１１は、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗアクセス処理を説明するためのフローチャートである。
【０１０２】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が各プログラム（仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２、仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため各プログラム（仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２、仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を動作主体として記載することとする。
【０１０３】
仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２は、クライアントノード２００ａ〜ｎが出力する仮想Ｖｉｅｗ操作要求を受け付ける。仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２は、受け付けた仮想Ｖｉｅｗ操作要求に引数として設定されている入力パラメータ５１００（図７）を参照して、受け付けた操作要求の操作種別を判定する（Ｓ２０）。
【０１０４】
判定の結果、受け付けた操作要求が仮想Ｖｉｅｗ作成要求３１１０であった場合、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２は、仮想Ｖｉｅｗ管理プログラム１９１を呼び出して、仮想Ｖｉｅｗ管理プログラム１９１に仮想Ｖｉｅｗ作成処理を実行させる（Ｓ２１）。なお、Ｓ２１の処理は、後述する図１２で説明する。
【０１０５】
判定の結果、受け付けた操作要求が仮想Ｖｉｅｗ構築条件設定要求３１２０であった場合、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２は、仮想Ｖｉｅｗ管理プログラム１９１を呼び出して、仮想Ｖｉｅｗ管理プログラム１９１に仮想Ｖｉｅｗ構築条件設定処理を実行させる（Ｓ２２）。なお、Ｓ２２の処理は、後述する図１３で説明する。
【０１０６】
判定の結果、受け付けた操作要求が仮想Ｖｉｅｗ更新要求３１３０であった場合、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２は、仮想Ｖｉｅｗ更新制御プログラム１９３を呼び出して、仮想Ｖｉｅｗ更新制御プログラム１９３に仮想Ｖｉｅｗ更新処理を実行させる（Ｓ２３）。なお、Ｓ２３の処理は、後述する図１４で説明する。
【０１０７】
判定の結果、受け付けた操作要求が仮想Ｖｉｅｗ取得要求３１４０であった場合、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２は、仮想Ｖｉｅｗ管理プログラム１９１を呼び出して、仮想Ｖｉｅｗ管理プログラム１９１に仮想Ｖｉｅｗ取得処理を実行させる（Ｓ２４）。なお、Ｓ２４の処理は、後述する図１６で説明する。
【０１０８】
また、判定の結果、受け付けた操作要求が仮想Ｖｉｅｗ削除要求３１５０であった場合、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２は、仮想Ｖｉｅｗ管理プログラム１９１を呼び出して、仮想Ｖｉｅｗ管理プログラム１９１に仮想Ｖｉｅｗ削除処理を実行させる（Ｓ２５）。なお、Ｓ２４の処理は、後述する図１７で説明する。
【０１０９】
上記Ｓ２１〜２５では、それぞれの処理が終わった場合、呼び出し元である仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２の処理に戻る。
【０１１０】
続いて、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ作成処理について図１２を用いて説明する。
【０１１１】
図１２は、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ作成処理を説明するためのフローチャートである。
【０１１２】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が仮想Ｖｉｅｗ管理プログラム１９１を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため仮想Ｖｉｅｗ管理プログラム１９１を動作主体として記載する。
【０１１３】
仮想Ｖｉｅｗ管理プログラム１９１は、上述した図１１のＳ２１において仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２に呼び出された後、はじめに、仮想Ｖｉｅｗ識別子を採番して、当該仮想Ｖｉｅｗが利用する仮想Ｖｉｅｗ管理表２０００用の領域をメモリ１２０上に確保する（Ｓ３０）。ここで、仮想Ｖｉｅｗ識別子は一意な識別子を採番するようにする。この仮想Ｖｉｅｗ識別子の一意性を保証する範囲については特に限定しない。例えば、一つの制御サーバの中で一意性を保証するようにしてもよい。また、例えば、複数の制御サーバをグループ化した制御サーバ群あるいは全世界を一つの一意性保証範囲としてもよい。
【０１１４】
続いて、仮想Ｖｉｅｗ管理プログラム１９１は、Ｓ３０で確保したメモリ１２０の領域上にある仮想Ｖｉｅｗ管理表２０００（図３参照）のエントリ２１００にＳ３０で採番した仮想Ｖｉｅｗ識別子を格納する（Ｓ３１）。
【０１１５】
その後、仮想Ｖｉｅｗ管理プログラム１９１は、上記Ｓ２０で受け付けた仮想Ｖｉｅｗ操作要求に引数として設定されている入力パラメータ５１００（図７参照）の「各操作で必要な情報５１３０」の中に構築条件が登録されている否かを判定する（Ｓ３２）。
【０１１６】
仮想Ｖｉｅｗ管理プログラム１９１は、上記判定の結果、上記入力パラメータ５１００の「各操作で必要な情報５１３０」の中に構築条件が登録されている場合、Ｓ３３の処理に進み、登録されていない場合にはＳ３５の処理に進む。
【０１１７】
Ｓ３３では、仮想Ｖｉｅｗ管理プログラム１９１は、上記の登録されている構築条件の中の構築条件論理式を仮想Ｖｉｅｗ管理表２０００のエントリ２３００に格納してＳ３４に進む。
【０１１８】
Ｓ３４では、仮想Ｖｉｅｗ管理プログラム１９１は、上記の登録されている構築条件の中の構築条件式を仮想Ｖｉｅｗ管理表２０００のエントリ２４００に格納してＳ３５に進む。なお、構築条件式が複数あれば、その数だけ構築条件式を対応するエントリ（例えばエントリ２５００）に格納する。
【０１１９】
Ｓ３５では、仮想Ｖｉｅｗ管理プログラム１９１は、出力パラメータ５２００（図７参照）を生成する。具体的には、仮想Ｖｉｅｗ管理プログラム１９１は、出力パラメータ５２００の「操作結果５２１０」に上記の操作結果、すなわち「仮想Ｖｉｅｗ作成処理が成功したこと、或いは、失敗したことを示す情報」を登録する。また、仮想Ｖｉｅｗ管理プログラム１９１は、出力パラメータ５２００の「操作で得られた情報５２２０」に、作成した仮想Ｖｉｅｗの仮想Ｖｉｅｗ識別子を登録する（仮想Ｖｉｅｗ管理表２０００に格納した仮想Ｖｉｅｗ識別子を登録する）。その後、仮想Ｖｉｅｗ管理プログラム１９１は、呼び出し元である仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２の処理に戻る。
【０１２０】
続いて、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ構築条件設定処理について図１３を用いて説明する。
【０１２１】
図１３は、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ構築条件設定処理を説明するためのフローチャートである。
【０１２２】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が仮想Ｖｉｅｗ管理プログラム１９１を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため仮想Ｖｉｅｗ管理プログラム１９１を動作主体として記載する。
【０１２３】
仮想Ｖｉｅｗ管理プログラム１９１は、上述した図１１のＳ２２において、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２に呼び出された後、仮想Ｖｉｅｗ操作要求に引数として設定されている入力パラメータ５１００（図７参照）の中の仮想Ｖｉｅｗ識別子５１２０と、メモリ１２０（または外部記憶装置１３０）に保持している仮想Ｖｉｅｗ管理表２０００とを照合する。そして、仮想Ｖｉｅｗ管理プログラム１９１は、入力パラメータ５１００で指定されている仮想Ｖｉｅｗ識別子５１２０を持つ仮想Ｖｉｅｗが存在しているか否かを調べる（Ｓ４０）。
【０１２４】
具体的には、仮想Ｖｉｅｗ管理プログラム１９１は、入力パラメータ５１００に指定されている仮想Ｖｉｅｗ識別子５１２０が格納された仮想Ｖｉｅｗ管理表２０００が在るか否かを調べる。仮想Ｖｉｅｗ管理プログラム１９１は、入力パラメータ５１００に指定された仮想Ｖｉｅｗ識別子５１２０が格納された仮想Ｖｉｅｗ管理表２０００が在る場合にＳ４１に進む。一方、仮想Ｖｉｅｗ管理プログラム１９１は、入力パラメータ５１００に指定された仮想Ｖｉｅｗ識別子５１２０が格納された仮想Ｖｉｅｗ管理表２０００が存在しない場合にＳ４４に進む。
【０１２５】
Ｓ４１では、仮想Ｖｉｅｗ管理プログラム１９１は、仮想Ｖｉｅｗ操作要求の引数として設定されている入力パラメータ５１００の中の「各操作で必要な情報４１３０」を調べ、対応する仮想Ｖｉｅｗに対する構築条件２２００が登録されているか否かを調べる（Ｓ４１）。そして、仮想Ｖｉｅｗ管理プログラム１９１は、上記の構築条件２２００が登録されている場合には、Ｓ４２の処理に進む。仮想Ｖｉｅｗ管理プログラム１９１は、上記の構築条件２２００が登録されていない場合には、Ｓ４４の処理に進む。
【０１２６】
Ｓ４２〜Ｓ４３では、仮想Ｖｉｅｗ管理プログラム１９１は、上述した図１２で示したＳ３３〜Ｓ３４と同様の処理を行い、Ｓ４４の処理に進む。なお、Ｓ４２〜Ｓ４３において、仮想Ｖｉｅｗ管理プログラム１９１が構築条件２２００を設定する際、既に仮想Ｖｉｅｗ管理表２０００の該当するエントリに構築条件が登録されている場合もある。このような場合、仮想Ｖｉｅｗ管理プログラム１９１は、既に登録されている情報に対して上書き処理を行う。なお、仮想Ｖｉｅｗ管理プログラム１９１は、構築条件２２００の上書きを行う際、対象となる全ての構築条件論理式や構築条件式のエントリを上書きしてしまうようにしてもよいし、一部のエントリのみを上書きするようにしてもよい。
【０１２７】
Ｓ４４では、仮想Ｖｉｅｗ管理プログラム１９１は、図１２のＳ３５と同様に、出力パラメータ５２００（図７参照）を生成する。例えば、仮想Ｖｉｅｗ管理プログラム１９１は、Ｓ４０において、操作要求の対処である仮想Ｖｉｅｗが存在しないと判定した場合には、出力パラメータ５２００の操作結果５２１０に「仮想Ｖｉｅｗが存在しないため要求する処理が失敗した旨」を示す情報を登録する。その後、仮想Ｖｉｅｗ管理プログラム１９１は、呼び出し元である仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２の処理に戻る。
【０１２８】
続いて、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ更新処理について図１４を用いて説明する。
【０１２９】
図１４は、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ更新処理を説明するためのフローチャートである。
【０１３０】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が各プログラム（仮想Ｖｉｅｗ更新制御プログラム１９３、ファイルシステム制御プログラム１８０、仮想Ｖｉｅｗ管理プログラム１９１）を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため各プログラム（仮想Ｖｉｅｗ更新制御プログラム１９３、ファイルシステム制御プログラム１８０、仮想Ｖｉｅｗ管理プログラム１９１）を動作主体として記載する。
【０１３１】
以下で行う処理ステップは、仮想Ｖｉｅｗ更新制御プログラム１９３が上述したＳ２３において仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２に呼び出された場合に開始される処理である。仮想Ｖｉｅｗ更新制御プログラム１９３は、ファイルシステム制御プログラム１８０にストレージノード５００ａ〜ｎに既に格納されているファイル群を調べさせる。そして、仮想Ｖｉｅｗ更新制御プログラム１９３は、仮想Ｖｉｅｗ管理プログラム１９１により管理されている仮想Ｖｉｅｗ管理表２０００のエントリ２２００の構築条件に合致しているファイルの情報を仮想Ｖｉｅｗ管理表２０００に反映させる処理を行う。すなわち、本ステップでは、利用者からの更新要求を契機とした仮想Ｖｉｅｗの更新処理を行う。
【０１３２】
ここで、ファイル群の調べ方は、全検索、部分検索などどのような方法でもよい。部分検索を行う場合は、当該操作要求の引数として設定されている入力パラメータ５１００の各操作で必要な情報５１３０の中に検索範囲を別途指定する必要がある。検索順序については任意でよいが、無限ループに陥らないようにする。
【０１３３】
はじめに、仮想Ｖｉｅｗ更新制御プログラム１９３は、ファイルシステム制御プログラム１８０に検索対象のファイル群の中から、まだ検索していないファイルがあるかどうかを調べさせる（Ｓ５０）。仮想Ｖｉｅｗ更新制御プログラム１９３は、ファイルシステム制御プログラム１８０に検索対象のファイル群を全て検索させ終えた場合に、Ｓ５４の処理に進む。一方、仮想Ｖｉｅｗ更新制御プログラム１９３は、ファイルシステム制御プログラム１８０が検索していないファイルを検出した場合にＳ５１の処理に進む。
【０１３４】
Ｓ５４において、仮想Ｖｉｅｗ更新制御プログラム１９３は、出力パラメータ５２００の操作結果５２１０に当該操作結果を登録して、呼び出し元である仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２の処理に戻る。
【０１３５】
Ｓ５１では、仮想Ｖｉｅｗ更新制御プログラム１９３は、更新する対象の仮想Ｖｉｅｗであって、かつ上記の検出したファイルと適合確認を行っていない仮想Ｖｉｅｗが在るか否かについて仮想Ｖｉｅｗ管理表２０００を利用して確認する（Ｓ５１）。なお、適合確認とは、上記の検出したファイルにより更新が必要な仮想Ｖｉｅｗが在るか否かの確認をいう。仮想Ｖｉｅｗ更新制御プログラム１９３は、上記の更新する対象の仮想Ｖｉｅｗであってかつ検出した対象ファイルとの適合確認を行っていない仮想Ｖｉｅｗを検出した場合、Ｓ５２の処理に進む。一方、仮想Ｖｉｅｗ更新制御プログラム１９３は、上記の検出した対象ファイルとの適合確認を行っていない仮想Ｖｉｅｗを検出しなかった場合、Ｓ５０の処理に戻る。ここで、更新する対象の仮想Ｖｉｅｗの調べ方は、ファイル群の調べ方同様、どのような方法、手順でもよい。
【０１３６】
Ｓ５２では、仮想Ｖｉｅｗ更新制御プログラム１９３は、Ｓ５１で検出された仮想Ｖｉｅｗの構築条件２２００に、対象ファイルが適合するのか否かの確認を行う（Ｓ５２）。そして、仮想Ｖｉｅｗ更新制御プログラム１９３は、対象ファイルが当該仮想Ｖｉｅｗの構築条件に適合する場合にＳ５３の処理に進む。仮想Ｖｉｅｗ更新制御プログラム１９３は、対象ファイルが当該仮想Ｖｉｅｗの構築条件に適合しない場合にＳ５１の処理に戻る。
【０１３７】
Ｓ５３では、仮想Ｖｉｅｗ更新制御プログラム１９３は、仮想Ｖｉｅｗ管理プログラム１９１に対して、仮想Ｖｉｅｗ管理表２０００に対象ファイルの情報を登録・更新する処理（処理Ａ）を要求する（Ｓ５３）。仮想Ｖｉｅｗ更新制御プログラム１９３は、「処理Ａ」を要求する際、処理対象となる仮想Ｖｉｅｗの仮想Ｖｉｅｗ識別子およびファイルの識別情報を入力パラメータとして仮想Ｖｉｅｗ管理プログラム１９１に渡す。ここで、ファイルの識別情報には、ファイルのファイル名および登録ファイルの格納場所が含まれていることとする。なお、「処理Ａ」のフローについては、後述する。「処理Ａ」が終了したら、仮想Ｖｉｅｗ更新制御プログラム１９３は、ステップＳ５１の処理に戻る。なお、上記の処理フローは、検索対象ファイルを調べ終えるまで繰り返し行われる。
【０１３８】
続いて、図１４のＳ５３で示した「処理Ａ」のフローについて図１５を用いて説明する。
【０１３９】
図１５は、本実施形態の制御サーバが行う仮想Ｖｉｅｗ管理表に対する情報登録処理ならびに更新処理を説明するためのフローチャートである。
【０１４０】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が各プログラム（仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため各プログラム（仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を動作主体として記載する。
【０１４１】
仮想Ｖｉｅｗ管理プログラム１９１は、図１４のＳ５３で仮想Ｖｉｅｗ更新制御プログラム１９３より呼び出されて以下の処理ステップを開始する。仮想Ｖｉｅｗ管理プログラム１９１は、以下の処理ステップにおいて、Ｓ５３で取得した入力パラメータの引数で指定された仮想Ｖｉｅｗ識別子が格納されている仮想Ｖｉｅｗ管理表２０００に、引数で指定されたファイルの情報を登録・更新する処理を行う。
【０１４２】
はじめに、仮想Ｖｉｅｗ管理プログラム１９１は、図１４のＳ５３で取得した入力パラメータの引数で指定された仮想Ｖｉｅｗ識別子が格納されている仮想Ｖｉｅｗ管理表２０００（図３参照）を特定する。仮想Ｖｉｅｗ管理プログラム１９１は、上記入力パラメータの引数で指定されたファイルの識別情報に含まれるファイル格納場所が、特定した仮想Ｖｉｅｗ管理表２０００のエントリ２７００ａ〜ｎに既に登録されているか否かを判定する（Ｓ６０）。
【０１４３】
Ｓ６０での判定により既に登録されていると判定した場合、仮想Ｖｉｅｗ管理プログラム１９１は、既に登録されているファイル格納場所を上書きすることで仮想Ｖｉｅｗ管理表２０００の更新を行う（Ｓ６１）。
【０１４４】
一方、Ｓ６０での判定により対象ファイルが登録されていないと判定された場合、対象ファイルの格納場所を対応する仮想Ｖｉｅｗ管理表２０００内の登録ファイル格納場所を格納する該当するエントリ（例えば、エントリ２７００）に登録し（Ｓ６２）、当該仮想Ｖｉｅｗ管理表２０００の登録ファイル数を格納するエントリ２６００の値をインクリメントする（Ｓ６３）。
【０１４５】
続いて、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ取得処理について図１６を用いて説明する。
【０１４６】
図１６は、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ取得処理を説明するためのフローチャートである。
【０１４７】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が仮想Ｖｉｅｗ管理プログラム１９１を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため仮想Ｖｉｅｗ管理プログラム１９１を動作主体として記載する。
【０１４８】
仮想Ｖｉｅｗ管理プログラム１９１は、上述した図１１のＳ２４において、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２に呼び出されて以下で説明する仮想Ｖｉｅｗ取得処理を開始する。仮想Ｖｉｅｗ取得処理では、入力パラメータで指定された仮想Ｖｉｅｗ識別子を持つ仮想Ｖｉｅｗ管理表２０００の情報を提供する処理を行う。ここで、情報の提供形式としては、当該仮想Ｖｉｅｗの仮想Ｖｉｅｗ管理表２０００の全データを提供する方式でもよいし、その一部のみを提供する方式でもよい。
【０１４９】
さて、仮想Ｖｉｅｗ管理プログラム１９１は、はじめに、仮想Ｖｉｅｗ操作要求に引数として設定されている入力パラメータ５１００（図７参照）の仮想Ｖｉｅｗ識別子５１２０を調べ、調べた仮想識別子５１２０および仮想Ｖｉｅｗ管理表２０００を利用して、当該仮想Ｖｉｅｗ識別子を持つ仮想Ｖｉｅｗが存在するのか否かを判定する（Ｓ７０）。
【０１５０】
仮想Ｖｉｅｗ管理プログラム１９１は、上記の仮想Ｖｉｅｗ識別子を持つ仮想Ｖｉｅｗが存在すると判定した場合、出力パラメータ５３００の「操作結果５３１０」に当該操作の操作結果を格納する。ここで、操作結果には、要求された仮想Ｖｉｅｗ取得処理が成功した旨、すなわち「仮想Ｖｉｅｗ操作要求で要求されていた仮想Ｖｉｅｗが見つかった旨」を示す情報が格納される。また、仮想Ｖｉｅｗ管理プログラム１９１は、出力パラメータ５３００の操作で得られた情報５３２０に当該仮想Ｖｉｅｗの仮想Ｖｉｅｗ管理表２０００に登録されている情報を格納して、呼び出し元である仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２の処理に戻る（Ｓ７１）。
【０１５１】
一方で、仮想Ｖｉｅｗ管理プログラム１９１は、上記の仮想Ｖｉｅｗ識別子を持つ仮想Ｖｉｅｗが存在しないと判定した場合、出力パラメータ５２００の操作結果５２１０に、要求された仮想Ｖｉｅｗ取得処理が失敗した旨、すなわち、「仮想Ｖｉｅｗ操作要求で要求されていた仮想Ｖｉｅｗが存在しない旨」を操作結果として格納して、呼び出し元である仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２の処理に戻る（Ｓ７２）。
【０１５２】
なお、上記では利用者から受け付けた仮想Ｖｉｅｗ操作要求に引数として設定されている入力パラメータ５１００に仮想Ｖｉｅｗ識別子が指定されている場合を例にしたが特にこれに限定するものではない。例えば、利用者から受け付ける仮想Ｖｉｅｗ操作要求に際して、仮想Ｖｉｅｗ識別子に代えて構築条件（仮想Ｖｉｅｗ管理表２０００のエントリ２２００の情報）を受け付けるようにしてもよい。そして、仮想Ｖｉｅｗ管理プログラム１９１は、受け付けた構築条件にしたがい該当する仮想Ｖｉｅｗを検索するようにしてもよい。
【０１５３】
続いて、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ削除処理について図１７を用いて説明する。
【０１５４】
図１７は、本実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ削除処理を説明するためのフローチャートである。
【０１５５】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が仮想Ｖｉｅｗ管理プログラム１９１を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため仮想Ｖｉｅｗ管理プログラム１９１を動作主体として記載する。
【０１５６】
仮想Ｖｉｅｗ管理プログラム１９１は、上述した図１１のＳ２５において、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２に呼び出されて以下で説明する仮想Ｖｉｅｗ削除処理を開始する。仮想Ｖｉｅｗ削除処理では、入力パラメータで指定された仮想Ｖｉｅｗの仮想Ｖｉｅｗ管理表２０００の領域を解放することで登録情報を削除し、当該仮想Ｖｉｅｗ識別子を解放する処理が行われる。
【０１５７】
さて、仮想Ｖｉｅｗ管理プログラム１９１は、はじめに、仮想Ｖｉｅｗ操作要求に引数として設定されている入力パラメータ５１００（図７参照）の仮想Ｖｉｅｗ識別子５１２０を調べ、調べた仮想識別子５１２０および仮想Ｖｉｅｗ管理表２０００を利用して、入力パラメータ５１００に含まれる仮想Ｖｉｅｗ識別子５１２を持つ仮想Ｖｉｅｗが存在するのか否かを判定する（Ｓ８０）。
【０１５８】
仮想Ｖｉｅｗ管理プログラム１９１は、入力パラメータ５１００に含まれる仮想Ｖｉｅｗ識別子５１２を持つ仮想Ｖｉｅｗが存在すると判定した場合、当該仮想Ｖｉｅｗの仮想Ｖｉｅｗ管理表２０００の領域を解放し（Ｓ８１）、当該仮想Ｖｉｅｗ識別子を解放してＳ８３の処理に進む（Ｓ８２）。
【０１５９】
一方、Ｓ８０において、仮想Ｖｉｅｗ管理プログラム１９１は、入力パラメータ５１００の仮想Ｖｉｅｗ識別子５１２を持つ仮想Ｖｉｅｗが存在しないと判定した場合、Ｓ８３の処理に進む。
【０１６０】
Ｓ８３では、仮想Ｖｉｅｗ管理プログラム１９１は、出力パラメータ５２０００の操作結果５２１０に当該操作結果を登録して呼び出し元である仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２の処理に戻る。
【０１６１】
続いて、本実施形態の制御サーバ１００が行うファイルアクセス操作を契機とした仮想Ｖｉｅｗ更新処理について図１８を用いて説明する。
【０１６２】
図１８は、本実施形態の制御サーバ１００が行うファイルアクセス操作を契機とした仮想Ｖｉｅｗ更新処理を説明するためのフローチャートである。
【０１６３】
さて、クライアントノード２００ａ〜ｎからストレージノード５００ａ〜ｎに格納されたファイルに対するファイルアクセス操作を要求する場合、クライアントノード２００ａ〜ｎは、ファイルシステムアクセス制御プログラム２８０により制御サーバ１００に対してファイルアクセス操作を要求する。制御サーバ１００は、クライアントノード２００ａ〜ｎからの要求を受けて、ストレージノード５００ａ〜ｎに格納されたファイルに対するアクセス操作を行い、アクセス処理の結果をクライアントノード２００ａ〜ｎに返信する。そして、制御サーバ１００は、ファイルアクセス操作を行った場合に仮想Ｖｉｅｗの更新する処理を行う。以下、制御サーバ１００における、仮想Ｖｉｅｗ更新処理を含むファイルアクセス操作を説明する。
【０１６４】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が各プログラム（ファイルシステム制御プログラム１８０、仮想Ｖｉｅｗ更新制御プログラム１９３）を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため各プログラム（ファイルシステム制御プログラム１８０、仮想Ｖｉｅｗ更新制御プログラム１９３）を動作主体として記載する。
【０１６５】
制御サーバ１００のファイルシステム制御プログラム１８０は、クライアントノード２００ａ〜ｎのファイルシステムアクセス制御プログラム２８０からのファイルアクセス操作要求を受け付ける。そして、ファイルシステム制御プログラム１８０は、受け付けたファイルアクセス操作を実行する（Ｓ９０）。
【０１６６】
ファイルシステム制御プログラム１８０は、このファイルアクセス操作が完了すると、対象ファイルを仮想Ｖｉｅｗに反映させるよう、仮想Ｖｉｅｗ更新制御プログラム１９３に対して処理（処理Ｂ）を要求する（Ｓ９１）。
【０１６７】
ファイルシステム制御プログラム１８０は、「処理Ｂ」を要求する際、処理対象となるファイルの識別情報および対象ファイルに対するファイルアクセス操作の識別情報を入力パラメータとして仮想Ｖｉｅｗ更新制御プログラム１９３に渡す。なお、「処理Ｂ」のフローについては後述する。「処理Ｂ」が完了したら、ファイルシステム制御プログラム１８０は、ファイルアクセス操作の結果を、クライアントノード２００のファイルシステムアクセス制御プログラム２８０に対して返す。
【０１６８】
続いて、図１８のＳ９１で示した「処理Ｂ」のフローについて図１９を用いて説明する。
【０１６９】
図１９は、本実施形態の制御サーバ１００が行うファイルアクセス操作を契機とした仮想Ｖｉｅｗ更新処理を説明するためのフローチャートである。
【０１７０】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が各プログラム（仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため各プログラム（仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を動作主体として記載する。
【０１７１】
仮想Ｖｉｅｗ更新制御プログラム１９３は、図１８のＳ９１において、ファイルシステム制御プログラム１８０から処理Ｂ（対象ファイルを仮想Ｖｉｅｗに反映させる処理）の要求を受け付けた場合、以下の処理ステップを開始する。処理Ｂでは、仮想Ｖｉｅｗ更新制御プログラム１９３は、Ｓ９１で取得した入力パラメータで指定された対象ファイルと合致する構築条件を持つ仮想Ｖｉｅｗを仮想Ｖｉｅｗ管理表２０００から抽出する。そして、仮想Ｖｉｅｗ更新制御プログラム１９３は、抽出された仮想Ｖｉｅｗに対し対象ファイルの情報を反映させる処理を行う。以下詳細に説明する。
【０１７２】
さて、仮想Ｖｉｅｗ更新制御プログラム１９３は、はじめに、上記のＳ９１で取得した入力パラメータで指定されたファイルアクセス処理の識別情報を用いて、当該識別情報が示すファイルアクセス操作が仮想Ｖｉｅｗへの更新が必要な処理か否かの判定を行う（Ｓ１００）。なお、Ｓ１００における判定は、図８で示した分類情報を基に行う。すなわち、仮想Ｖｉｅｗ更新制御プログラム１９３は、ファイルアクセス操作が「ファイル書き込み操作」または「ファイル削除操作」である場合に仮想Ｖｉｅｗの更新が必要であると判定する。一方、仮想Ｖｉｅｗ更新制御プログラム１９３は、ファイルアクセス操作が「ファイル読み出し操作」である場合に仮想Ｖｉｅｗの更新が必要ないと判定する。
【０１７３】
そして、仮想Ｖｉｅｗ更新制御プログラム１９３は、仮想Ｖｉｅｗの更新が必要と判定した場合にＳ１０１の処理に進む。一方、仮想Ｖｉｅｗ更新制御プログラム１９３は、仮想Ｖｉｅｗの更新の必要がないと判定した場合、当該処理を終了し、呼び出し元であるファイルシステム制御プログラム１８０の処理に戻る。
【０１７４】
Ｓ１０１〜Ｓ１０３では、仮想Ｖｉｅｗ更新制御プログラム１９３は、上記Ｓ９１で取得した入力パラメータで指定されたファイルを対象ファイルとした上で上述した図１４のＳ５１〜Ｓ５３と同様の処理を行う。
【０１７５】
具体的には、Ｓ１０１では、仮想Ｖｉｅｗ更新制御プログラム１９３は、更新する対象の仮想Ｖｉｅｗであって、かつ上記の入力パラメータにより指定されたアクセス操作の対象のファイル（対象ファイル）と適合確認を行っていない仮想Ｖｉｅｗが在るか否かについて仮想Ｖｉｅｗ管理表２０００を利用して確認する。ここで、対象仮想Ｖｉｅｗの調べ方は、どのような方法、手順でもよい。仮想Ｖｉｅｗ更新制御プログラム１９３は、上記の対象ファイルとの適合確認を行っていない仮想Ｖｉｅｗを検出した場合、Ｓ１０２の処理に進む。仮想Ｖｉｅｗ更新制御プログラム１９３は、上記の対象ファイルとの適合確認を行っていない仮想Ｖｉｅｗを検出しなかった場合、すなわち、全ての仮想Ｖｉｅｗと適合確認を行った場合にＳ１０４の処理に進む。
【０１７６】
Ｓ１０２では、仮想Ｖｉｅｗ更新制御プログラム１９３は、検出された仮想Ｖｉｅｗの構築条件に、ファイルアクセス操作の対象ファイルが適合するのか否かの判定を行う。仮想Ｖｉｅｗ更新制御プログラム１９３は、検出された仮想Ｖｉｅｗの構築条件に、ファイルアクセス操作の対象ファイルが適合する場合にＳ１０３に進む。一方、仮想Ｖｉｅｗ更新制御プログラム１９３は、上記適合しないと判定された場合にＳ１０１の処理に戻る。
【０１７７】
Ｓ１０３では、仮想Ｖｉｅｗ更新制御プログラム１９３は、仮想Ｖｉｅｗ管理プログラム１９１に対して、仮想Ｖｉｅｗ管理表２０００に対象ファイルの情報を登録・更新する処理（処理Ａ）を要求する（Ｓ１０３）。「処理Ａ」を要求する際、処理の対象となる仮想Ｖｉｅｗ識別子およびファイルの識別情報を入力パラメータとして仮想Ｖｉｅｗ管理プログラム１９１に渡す。なお、「処理Ａ」のフローは、図１５で示した通りである。「処理Ａ」が終了したら、仮想Ｖｉｅｗ更新制御プログラム１９３は、ステップＳ１０１の処理に戻る。なお、仮想Ｖｉｅｗ更新制御プログラム１９３は、上記の処理フロー（Ｓ１０１〜１０３）を保持している仮想Ｖｉｅｗの全てを調べ終えるまで繰り返し行う。
【０１７８】
続いて、仮想Ｖｉｅｗ更新制御プログラム１９３が、対象となる仮想Ｖｉｅｗの全てを調べ終えた場合に進むＳ１０４の処理を説明する。
【０１７９】
Ｓ１０４では、仮想Ｖｉｅｗ更新制御プログラム１９３は、上記のＳ９１で取得した入力パラメータおよび仮想Ｖｉｅｗ管理表２０００を用いてアクセス操作した対象ファイルを登録している仮想Ｖｉｅｗが存在するのか否かを調べる（Ｓ１０４）。
【０１８０】
仮想Ｖｉｅｗ更新制御プログラム１９３は、アクセス操作した対象ファイルを登録している仮想Ｖｉｅｗが存在している場合、上記入力パラメータで指定されたファイルアクセス処理の識別情報が「ファイル削除処理」であるか否かを判定する（Ｓ１０５）。
【０１８１】
上記Ｓ１０５における判定の結果、上記の識別情報が「ファイル削除処理」である場合、仮想Ｖｉｅｗ更新制御プログラム１９３は、仮想Ｖｉｅｗ管理プログラム１９１に対して、仮想Ｖｉｅｗ管理表２０００に対象ファイルの情報を削除する処理（処理Ｃ）を要求する（Ｓ１０６）。「処理Ｃ」を要求する際、処理対象となる仮想Ｖｉｅｗ識別子およびファイルの識別情報を入力パラメータとして仮想Ｖｉｅｗ管理プログラム１９１に渡す。なお、「処理Ｃ」のフローについては、後述する図２０で説明する。「処理Ｃ」が終了したら、Ｓ１０４の処理に戻る。
【０１８２】
上記Ｓ１０５における判定の結果、上記の識別情報が「ファイル削除処理」ではない場合、再度Ｓ１０４の処理を行う。なお、上記のＳ１０４〜Ｓ１０６の処理フローは、仮想Ｖｉｅｗが全てを調べ終えるまで繰り返し行われる。
【０１８３】
続いて、図１９のＳ１０６で示した「処理Ｃ」のフローについて図２０を用いて説明する。
【０１８４】
図２０は、本実施形態の制御サーバが行う仮想Ｖｉｅｗ管理表からの情報を削除する処理を説明するフローチャートである。
【０１８５】
なお、以下の処理は、制御サーバ１００のプロセッサ１１０が各プログラム（仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を実行することで実現されるものである。しかしながら、以下では、説明の簡略化のため各プログラム（仮想Ｖｉｅｗ管理プログラム１９１、仮想Ｖｉｅｗ更新制御プログラム１９３）を動作主体として記載する。
【０１８６】
仮想Ｖｉｅｗ管理プログラム１９１は、図１９のＳ１０６において、仮想Ｖｉｅｗ更新制御プログラム１９３に呼び出されて以下で説明する「処理Ｃ」を開始する。「処理Ｃ」では、Ｓ１０６で取得した入力パラメータの引数で指定された仮想Ｖｉｅｗ識別子を持つ仮想Ｖｉｅｗ管理表２０００から、同じく引数で指定されたファイルの情報を削除する処理が行われる。
【０１８７】
さて、仮想Ｖｉｅｗ管理プログラム１９１は、はじめに、入力パラメータの引数で指定された対象ファイルの格納場所情報を、同じく引数で指定された仮想Ｖｉｅｗ識別子を持つ仮想Ｖｉｅｗ管理表２０００内の登録ファイル格納場所における該当エントリ２７００から削除する（Ｓ１１０）。また、仮想Ｖｉｅｗ管理プログラム１９１は、該当する仮想Ｖｉｅｗ管理表２０００のエントリ２６００に格納されている登録ファイル数をデクリメントする（Ｓ１１１）。
【０１８８】
このように、本実施形態では、図１９で示したファイルアクセス操作を契機とした仮想Ｖｉｅｗ更新を行うことにより、常に最新状態の仮想Ｖｉｅｗを提供することが可能になる。
【０１８９】
また、ファイルアクセス操作が行われた際にだけ仮想Ｖｉｅｗを更新することとした場合、当該仮想Ｖｉｅｗの構築条件を設定する前にファイルシステムに保存・更新されたファイルに関する情報を反映させることができないことになる。そのため、本実施形態では、ファイルアクセス操作を契機とした仮想Ｖｉｅｗの更新に加えて、さらに、図１４に示したように利用者からの要求を契機とした仮想Ｖｉｅｗの更新を行うようにしている。これにより、仮想Ｖｉｅｗの構築条件を設定する前にストレージノードに保存・更新されているファイルに関する情報についても仮想Ｖｉｅｗに反映させることが可能となる。
【０１９０】
なお、本発明は、以上で説明した実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形が可能である。例えば、以下のような実施形態２〜５が可能である。
<第２実施形態>
上述した第１実施形態では、仮想Ｖｉｅｗ３０００には、当該仮想Ｖｉｅｗの構築条件に合致するファイル７０００の格納場所情報を登録できることとしたが、特にこれに限定するものではない。仮想Ｖｉｅｗの構築条件２２００に合致すれば、情報資源の格納場所以外の他の情報でもよい。例えば、複数の仮想Ｖｉｅｗを階層的に管理できるようにするために、情報資源の格納場所を登録するエントリ２７００に、当該仮想Ｖｉｅｗの構築条件２２００に合致する仮想Ｖｉｅｗ３０００に関する情報を登録する。具体的には、当該仮想Ｖｉｅｗ管理表２０００の登録ファイル場所情報を格納するエントリ２７００に登録対象となる仮想Ｖｉｅｗの仮想Ｖｉｅｗ識別子を登録する。この場合、登録ファイル数を格納するエントリ２６００には、当該仮想Ｖｉｅｗにだけ登録されているファイル数を登録するようにしてもよいし、当該仮想Ｖｉｅｗならびにその下位層の仮想Ｖｉｅｗに登録されている全てのファイル数を登録するようにしてもよい。
【０１９１】
このように仮想Ｖｉｅｗ３０００の階層化を実現することにより、利用者は、仮想Ｖｉｅｗ３０００を階層的に管理できるようになる。また、第２実施形態において、当該仮想Ｖｉｅｗの構築条件２２００に合致する仮想Ｖｉｅｗ３０００だけでなく、複数のファイルをグループ化したフォルダやディレクトリ等の情報資源を集合化しているもの全てを登録できるようにしてもよい。
<第３実施形態>
また、上述した第１実施形態では、制御サーバ１００は、仮想Ｖｉｅｗ制御プログラム１９０が提供する機能により仮想Ｖｉｅｗ３０００を提供するようにしたが、特にこれに限定するものではない。
【０１９２】
制御サーバ１００が有する情報資源にアクセスする機能を介して仮想Ｖｉｅｗ３０００を利用できるようにしてもよい。例えば、制御サーバ１００は、ファイルシステム制御プログラム１８０により利用者に仮想Ｖｉｅｗ３０００を提供するようにしてもよい。この場合、制御サーバ１００は、ファイルシステム制御プログラム１８０により、仮想Ｖｉｅｗ３０００の仮想Ｖｉｅｗ管理表２０００をファイルもしくはディレクトリとして管理した上で、仮想Ｖｉｅｗ管理表２０００にアクセスできるようにすればよい。
【０１９３】
これにより、ファイルシステム制御プログラム１８０が提供するファイル読み出し操作６１２０により当該仮想Ｖｉｅｗ管理表２０００に相当するファイルを読み出すこと、またはディレクトリ情報読み出し操作により当該仮想Ｖｉｅｗ管理表２０００に相当するディレクトリを読み出すことができる。
【０１９４】
このように、仮想Ｖｉｅｗ制御プログラム１９０が提供する仮想Ｖｉｅｗ専用の機能を利用する代わりに、他の汎用的な機能に仮想Ｖｉｅｗを利用する機能を付加することにより以下のような利点がある。すなわち、第３実施形態のように構成することにより、利用者は、通常の業務で利用するファイルアクセス機能の操作の中で仮想Ｖｉｅｗを利用できるため、利用者の操作負担を軽減することができる。
【０１９５】
なお、第３実施形態において、ファイルアクセス制御プログラム１８０が提供する機能により仮想Ｖｉｅｗを利用する方式に代えて、データベースへのアクセスを制御する機能等、他の情報資源に対するアクセス機能を介することで、仮想Ｖｉｅｗを利用できるようにしてもよい。
<第４実施形態>
上述した第１実施形態では、クライアントノード２００ａ〜ｎの利用者が仮想Ｖｉｅｗ３０００を利用することとしたが、特にこれに限定したものではない。ストレージノード５００ａ〜ｎを運用し管理するストレージ運用管理装置を設けて、そのストレージ運用管理装置が仮想Ｖｉｅｗ３０００を利用できるように構成してもよい。
【０１９６】
例えば、ストレージ運用管理装置に管理対象のストレージノードを登録しておく。ストレージ運用管理装置は、その登録情報を基に登録ストレージノードの個数分仮想Ｖｉｅｗを作成する。ストレージ運用管理装置は、仮想Ｖｉｅｗそれぞれの構築条件として、その仮想Ｖｉｅｗに対応するストレージノードに格納されたファイルを当該仮想Ｖｉｅｗへ登録するという条件を設定するようにしてもよい。すなわち、ストレージ運用管理装置は、ストレージノードごとに、そのストレージノードに格納されているファイルを仮想Ｖｉｅｗとして確認することができる。
【０１９７】
このような仮想Ｖｉｅｗをストレージ運用管理装置で利用できるようにすることにより、当該ストレージノードに格納されているファイルの一覧を仮想Ｖｉｅｗとしてストレージ運用管理装置が即座に取得可能となる。これにより、あるストレージノードを物理的に交換する必要性が生じた場合、別のストレージノードへのデータ移行やバックアップなどを行うための対象ファイルを即座に特定できるため、かかる処理に要する処理時間の高速化を図ることができる。
【０１９８】
また、上記の第４実施形態において、ストレージ運用管理装置に管理対象のストレージノードを登録しておく様態だけでなく、ストレージ運用管理に必要となる他の情報を登録できるようにしておいて、その情報を基に仮想Ｖｉｅｗを構築してストレージ運用管理に利用できるようにしてもよい。
<第５実施形態>
また、上記の第４実施形態のストレージノード５００ａ〜ｎを運用し管理するストレージ運用管理装置に対して環境設定作業を行い、その内容を仮想Ｖｉｅｗ３０００に反映させてもよい。例えば、ストレージ運用管理装置の操作端末上で、ユーザの情報（ユーザを識別する識別情報）を登録し、このユーザ情報を制御サーバ１００の仮想Ｖｉｅｗ管理処理で利用する。このことにより、上述した実施形態における仮想Ｖｉｅｗ提供システム１０００に、さらに、仮想Ｖｉｅｗ３０００に対するアクセス制御機能を付加することができる。具体的には、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２が提供する機能を基にして、仮想Ｖｉｅｗ作成要求３１１０に対する権限、仮想Ｖｉｅｗ構築条件設定要求３１２０に対する権限、仮想Ｖｉｅｗ更新要求３１３０に対する権限、仮想Ｖｉｅｗ取得要求３１４０に対する権限、および仮想Ｖｉｅｗ削除要求３１５０に対する権限を制御できる。さらに、当該のユーザ情報を各仮想Ｖｉｅｗ３０００に対応する仮想Ｖｉｅｗ管理表２０００にて管理することにより、仮想Ｖｉｅｗ毎に上述のアクセス制御を実現できる。
【０１９９】
例えば、制御サーバ１００は、利用者を示す利用者識別情報および該利用者識別情報に対応付けて該利用者に与えるアクセス権限情報の設定を受け付けて保持しておく。そして、制御サーバ１００は、クライアントノード２００を介して、利用者からの仮想Ｖｉｅｗ取得要求３１４０を受け付ける際、利用者を識別する識別情報を要求する。制御サーバ１００は、受け付けた利用者識別情報対応付けられているアクセス権限情報により提示する仮想Ｖｉｅｗの内容を変更するようにする。
【０２００】
上述では、アクセス制御のためにユーザの情報を登録することとしたが、特にこれに限定するものではない。例えば、アクセス制御情報として、グループの情報を登録するとしてもよいし、アクセスコントロールリストのように、対象者あるいは対象グループに対して許可する権限を記載したリスト情報を登録するとしてもよい。
【０２０１】
また、ストレージ運用管理装置の操作端末上で、仮想Ｖｉｅｗ作成数の上限値を登録し、当該の上限値を制御サーバ１００の仮想Ｖｉｅｗ管理プログラム１９１が提供する機能により管理するようにしてもよい。このことにより、制御サーバ１００にて提供する仮想Ｖｉｅｗ作成数の上限値を制御できる。さらに、上記の仮想Ｖｉｅｗ作成数の上限値を、各ユーザごとに操作端末にて設定し、仮想Ｖｉｅｗ管理プログラム１９１により管理することで、各ユーザが作成可能な仮想Ｖｉｅｗ数の上限値を制御できる。
【０２０２】
また、仮想ＶｉｅｗＩ／Ｆ制御プログラム１９２が提供する仮想Ｖｉｅｗ取得要求３１４０として、現状において存在する仮想Ｖｉｅｗの一覧情報を取得する機能を設けるようにしてもよい。そして、この機能をストレージ運用管理装置の操作端末上で利用することにより、ストレージ運用管理装置から、制御サーバ１００により作成されている仮想Ｖｉｅｗの一覧情報を取得することもできる。この仮想Ｖｉｅｗの一覧情報取得により、現状でいくつ仮想Ｖｉｅｗが作成されているのかといった情報や、上述の仮想Ｖｉｅｗ作成数の上限値と比べることにより、あといくつ仮想Ｖｉｅｗが作成可能なのかといった情報を運用利用者が把握できるようになる。
【図面の簡単な説明】
【０２０３】
【図１】本発明の実施形態の仮想Ｖｉｅｗ提供システムのシステム構成を説明するための図である。
【図２】本発明の実施形態の制御サーバのハードウェア構成を例示する説明図である。
【図３】本発明の実施形態の制御サーバが保持する仮想Ｖｉｅｗ管理表２０００のデータ構造の一例を模擬的に示した図である。
【図４】本発明の実施形態のストレージノードのハードウェア構成を例示する説明図である。
【図５】本発明の実施形態のクライアントノードのハードウェア構成を例示する説明図である。
【図６】本発明の実施形態が提供する仮想Ｖｉｅｗとストレージノードに格納されているファイルとの対応関係を説明するための図である。
【図７】本発明の実施形態の仮想ＶｉｅｗＩ／Ｆ制御処理で用いられる入出力パラメータの一例を示した図である。
【図８】本発明の実施形態の仮想Ｖｉｅｗの更新・登録が必要であるか否かを判断するための基準を例示した図である。
【図９】本発明の実施形態のストレージノードに格納されるファイルのデータ構成を模擬的に示した図である。
【図１０】本発明の実施形態のクライアントノードが行う仮想Ｖｉｅｗ情報の操作処理を説明するためのフローチャートである。
【図１１】本発明の実施形態の制御サーバが行う仮想Ｖｉｅｗアクセス処理を説明するためのフローチャートである。
【図１２】本発明の実施形態の制御サーバが行う仮想Ｖｉｅｗ作成処理のフローを説明するための図である。
【図１３】本発明の実施形態の制御サーバ１００が行う仮想Ｖｉｅｗ構築条件設定処理を説明するためのフローチャートである。
【図１４】本発明の実施形態の制御サーバ行う仮想Ｖｉｅｗ更新処理を説明するためのフローチャートである。
【図１５】本発明の実施形態の制御サーバ行う仮想Ｖｉｅｗ管理表に対する情報登録処理ならびに更新処理を説明するためのフローチャートである。
【図１６】本発明の実施形態の制御サーバが行う仮想Ｖｉｅｗ取得処理を説明するためのフローチャートである。
【図１７】本発明の実施形態の制御サーバが行う仮想Ｖｉｅｗ削除処理を説明するためのフローチャートである。
【図１８】本発明の実施形態の制御サーバが行うファイルアクセス操作を契機とした仮想Ｖｉｅｗ更新処理のフローを説明するための図である。
【図１９】本発明の実施形態の制御サーバが行うファイルアクセス操作を契機とした仮想Ｖｉｅｗ更新処理を説明するフローチャートである。
【図２０】本発明の実施形態の制御サーバが行う仮想Ｖｉｅｗ管理表からの情報削除処理を説明するフローチャートである。
【符号の説明】
【０２０４】
１００…制御サーバ、１１０…プロセッサ、１２０…メモリ、１３０…外部記憶装置、１４０…外部記憶Ｉ／Ｆ、１５０…ネットワークＩ／Ｆ、１６０…外部記憶Ｉ／Ｆ制御プログラム、１７０…ネットワークＩ／Ｆ制御プログラム、１８０…ファイルシステム制御プログラム、１９０…仮想Ｖｉｅｗ制御プログラム、１９１…仮想Ｖｉｅｗ管理プログラム、１９２…仮想ＶｉｅｗＩ／Ｆ制御プログラム、１９３…仮想Ｖｉｅｗ更新制御プログラム、２００…クライアントノード、２１０…プロセッサ、２２０…メモリ、２３０…外部記憶装置、２４０…外部記憶Ｉ／Ｆ、２５０…ネットワークＩ／Ｆ、２６０…外部記憶Ｉ／Ｆ制御プログラム、２７０…ネットワークＩ／Ｆ制御プログラム、２８０…ファイルシステムアクセス制御プログラム、２９０…仮想Ｖｉｅｗアクセス制御プログラム、５００…ストレージノード、５１０…プロセッサ、５２０…メモリ、５３０…外部記憶装置、５４０…外部記憶Ｉ／Ｆ、５５０…ネットワークＩ／Ｆ、５６０…外部記憶Ｉ／Ｆ制御プログラム、５７０…ネットワークＩ／Ｆ制御プログラム、５８０…ローカルファイルシステム制御プログラム、１０００…仮想Ｖｉｅｗ提供システム、２０００…仮想Ｖｉｅｗ管理表
【図１】
2006031608.tif 000003
【図２】
2006031608.tif 000004
【図３】
2006031608.tif 000005
【図４】
2006031608.tif 000006
【図５】
2006031608.tif 000007
【図６】
2006031608.tif 000008
【図７】
2006031608.tif 000009
【図８】
2006031608.tif 000010
【図９】
2006031608.tif 000011
【図１０】
2006031608.tif 000012
【図１１】
2006031608.tif 000013
【図１２】
2006031608.tif 000014
【図１３】
2006031608.tif 000015
【図１４】
2006031608.tif 000016
【図１５】
2006031608.tif 000017
【図１６】
2006031608.tif 000018
【図１７】
2006031608.tif 000019
【図１８】
2006031608.tif 000020
【図１９】
2006031608.tif 000021
【図２０】
2006031608.tif 000022