(57)【要約】【課題】プロキシ・ファイル・システムを用いて共有ファイル・システムを表す方法およびシステムを提供する。【解決手段】本方法およびシステムは、共有ストレージ内にあるカウンターパート・データ・ファイルと関連付けられている、複数のプロキシ・ファイルを管理することができる。プロキシ・ファイルは、カウンターパート・データ・ファイルにアクセスするための情報を不生むことができる。本方法およびシステムは、プロキシ・ファイルを介した、共有ストレージ内にあるデータ・ファイルへのアクセスを、クライアントに与えることができる。【選択図】図１
2007533033.tif 000002
【特許請求の範囲】
【請求項１】
ファイル管理システムであって、
複数のプロキシ・ファイルを管理するプロキシ・ファイル・システムであって、前記複数のプロキシ・ファイルが、共有ストレージにおけるカウンターパート・データ・ファイルと関連付けられており、前記共有ストレージから前記カウンターパート・データ・ファイルにアクセスするための情報を含む、プロキシ・ファイル・システムと、
複数のクライアントによる前記共有ストレージ内のカウンターパート・データ・ファイルへのアクセスを、前記プロキシ・ファイル・システムを用いて制御するコントローラと、
を備えた、ファイル管理システム。
【請求項２】
請求項１記載のシステムにおいて、前記コントローラは、前記プロキシ・ファイルに含まれる前記アクセス情報を用いて、前記クライアントに、前記共有ストレージにおける前記カウンターパート・データ・ファイルへのアクセスを与えるように構成された、システム。
【請求項３】
請求項２記載のシステムにおいて、前記コントローラは、
前記共有ストレージ内の前記カウンターパート・データ・ファイルにアクセスする前記クライアントによる試行を認識し、
前記アクセスの試行に応答して前記共有ストレージから前記カウンターパート・データ・ファイルにアクセスするため、前記情報を前記プロキシ・ファイルから検索し、
前記プロキシ・ファイルから検索した前記アクセス情報を使用して、前記共有ストレージにおける前記カウンターパート・データ・ファイルへのアクセスを前記クライアントに与える、
ように構成された、システム。
【請求項４】
請求項１記載のシステムにおいて、前記共有ストレージは、前記複数のクライアントからネットワークを通じてアクセスを受信するためのポートを備えた、システム。
【請求項５】
請求項１記載のシステムにおいて、前記プロキシ・ファイル・システムは、前記コントローラに結合されたローカル・ディスク上で実行する共有不可能なファイル・システムを備えている、システム。
【請求項６】
請求項１記載のシステムにおいて、前記プロキシ・ファイル・システムは、
セキュリティ、施錠、ファイル共有、および変更通知、
の機能のうちの少なくとも１つをし易くするために、少なくとも１つのモジュールを備えた、システム。
【請求項７】
請求項１記載のシステムにおいて、前記プロキシ・ファイル・システムは、前記共有ストレージよりもサイズが小さい、システム。
【請求項８】
請求項１記載のシステムにおいて、前記コントローラはサーバを備えた、システム。
【請求項９】
請求項１記載のシステムにおいて、前記コントローラは、
前記共有ストレージの部分を前記カウンターパート・データ・ファイルに割り当てるおよび割り当てを解除する割り当てモジュールと、
前記複数のクライアントとの通信を容易にするネットワーク・インターフェース・モジュールと、
を備えた、システム。
【請求項１０】
請求項９記載のシステムにおいて、前記割り当てモジュールは、複数の割り当てユニットを管理するプログラム・コードを備えた、システム。
【請求項１１】
請求項１０記載のシステムにおいて、前記割り当てユニットは、前記カウンターパート・データ・ファイル内の情報に割り当てられる前記共有ストレージの部分の位置を示す、システム。
【請求項１２】
請求項１記載のシステムにおいて、前記カウンターパート・データ・ファイルにアクセスするための前記情報は、前記共有ストレージにおけるカウンターパート・ファイルの位置を示す情報を備えた、システム。
【請求項１３】
請求項１記載のシステムにおいて、前記複数のクライアントは、前記コントローラおよび前記共有ストレージと通信するためのソフトウェアを含む、システム。
【請求項１４】
請求項１記載のシステムであって、更に、前記コントローラをミラーリングし、該コントローラが動作不能となった場合に、前記コントローラの代用となるように構成した副コントローラを備える、システム。
【請求項１５】
請求項１４記載のシステムであって、更に、前記副コントローラに結合された副プロキシ・ファイル・システムを備えた、システム。
【請求項１６】
ファイル管理方法であって、
複数のプロキシ・ファイルを管理するステップであって、前記複数のプロキシ・ファイルが、共有ストレージにおけるカウンターパート・データ・ファイルと関連付けられており、前記共有ストレージから前記カウンターパート・データ・ファイルにアクセスするための情報を含む、ステップと、
前記プロキシ・ファイルを介しての前記共有ストレージ内の前記カウンターパート・データ・ファイルへの複数のクライアントによるアクセスを制御するステップと、
を備えた、ファイル管理方法。
【請求項１７】
請求項１６記載の方法において、アクセスを制御するステップは、前記プロキシ・ファイルに含まれる前記アクセス情報を用いて、前記クライアントに、前記共有ストレージにおける前記カウンターパート・データ・ファイルへのアクセスを与えるステップを含む、方法。
【請求項１８】
請求項１７記載のシステムにおいて、前記クライアントに前記カウンターパート・データ・ファイルへのアクセスを与えるステップは、前記共有ストレージ上にある前記カウンターパート・ファイルの位置を示す情報を前記クライアントに提供するステップを含む、システム。
【請求項１９】
請求項１６記載の方法において、前記カウンターパート・データ・ファイルへのアクセスを制御するステップは、
前記共有ストレージ内のカウンターパート・データ・ファイルにアクセスする前記クライアントによる試行を認識するステップと、
前記アクセスの試行に応答して前記プロキシ・ファイルから前記カウンターパート・データ・ファイルにアクセスするため、前記情報を前記プロキシ・ファイルから検索するステップと、
前記プロキシ・ファイルから検索した前記情報を用いて、前記共有ストレージにおける前記カウンターパート・データ・ファイルへのアクセスを前記クライアントに与えるステップと、
を含む、方法。
【請求項２０】
クライアントに応対するコントローラと共有ストレージ制御データ・ファイルとを有するシステムにおいて、情報を管理する方法であって、
前記共有ストレージ内にあるデータ・ファイルにアクセスするクライアントによる試行を、前記コントローラによって認識するステップと、
前記アクセスの試行に応答して、前記データ・ファイルに対応するプロキシ・ファイルにアクセスするステップと、
前記プロキシ・ファイルから、前記共有ストレージから前記データ・ファイルにアクセスするための情報を検索するステップと、
前記検索したアクセス情報を用いて、前記共有ストレージ内にある前記データ・ファイルへのアクセスを、前記クライアントに与えるステップと、
を備えた、方法。
【請求項２１】
請求項２０記載の方法において、データ・ファイルにアクセスする前記試行を認識するステップは、前記コントローラによって、前記データ・ファイルにアクアセスする要求を受信するステップを含む、方法。
【請求項２２】
請求項２０記載の方法において、プロキシ・ファイルにアクセスするステップは、前記コントローラに結合されたローカル・ディスクからの前記プロキシ・ファイルにアクセスするステップを含む、方法。
【請求項２３】
請求項２０記載の方法において、アクセスするための情報を検索するステップは、前記共有ストレージ内にある前記データ・ファイルの位置を示す情報を、前記プロキシ・ファイルから読み出すステップを含む、方法。
【請求項２４】
請求項２０記載の方法において、前記データ・ファイルへのアクセスを与えるステップは、前記共有ストレージ内にある前記データ・ファイルの位置を示す情報を、前記クライアントに提供するステップを含む、方法。
【請求項２５】
請求項２０記載の方法において、前記データ・ファイルへのアクセスを与えるステップは、前記共有ストレージ内にある前記データ・ファイルを開く方法を示す情報を、前記クライアントに提供するステップを含む、方法。
【請求項２６】
共有ストレージ内にあるデータ・ファイルから情報を読み出す方法であって、
前記共有ストレージ内にある前記データ・ファイルから読み出すクライアントからの要求を、コントローラによって受信するステップと、
前記要求に応答して、前記データ・ファイルに対応するプロキシ・ファイルから前記データ・ファイルを読み出すための情報を、前記コントローラによって獲得するステップと、
前記プロキシ・ファイルから獲得した前記情報を前記クライアントに提供するステップであって、前記プロキシ・ファイルからの前記情報が、前記クライアントが前記共有ストレージから前記データ・ファイルを読み出すことを可能にする、ステップと、
を備えた、方法。
【請求項２７】
請求項２６記載の方法において、前記データ・ファイルを読み出すための情報を獲得するステップは、前記データ・ファイルに割り当てられた前記共有ストレージの部分の位置を獲得するステップを含む、方法。
【請求項２８】
請求項２６記載の方法において、前記データ・ファイルを読み出すための情報を獲得するステップは、前記共有ストレージから前記データ・ファイルを読み出す方法を示す情報を獲得するステップを含む、方法。
【請求項２９】
請求項２６記載の方法において、クライアントから要求を受信するステップは、前記クライアントと前記コントローラとの間に介在するネットワークを通じて前記要求を受信するステップを含む、方法。
【請求項３０】
請求項２６記載の方法において、前記データ・ファイルを読み出すための情報を獲得するステップは、前記コントローラに直接結合されたストレージ内に位置する前記データ・ファイルに対応するプロキシ・ファイルから、前記共有ストレージ内にある前記データ・ファイルを読み出すための前記情報を獲得するステップを含む、方法。
【請求項３１】
共有ストレージ内にあるデータ・ファイルに情報を書き込む方法であって、
前記共有ストレージ内にあるデータ・ファイルに情報を書き込むクライアントからの要求を、コントローラによって受信するステップと、
前記要求に応答して、前記共有ストレージの利用可能な部分を、前記コントローラによって取得するステップと、
前記共有ストレージの前記取得した部分を特定する情報を、前記データ・ファイルに対応するプロキシ・ファイルに挿入するステップであって、前記プロキシ・ファイルが、前記コントローラに直接結合されたストレージ上に位置する、ステップと、
を備えた、方法。
【請求項３２】
請求項３１記載の方法において、クライアントから要求を受信するステップは、前記クライアントと前記コントローラとの間に介在するネットワークを通じて前記要求を受信するステップを含む、方法。
【請求項３３】
請求項３１記載の方法において、前記共有ストレージの利用可能な部分を取得するステップは、前記利用可能な部分を特定するステップを含む、方法。
【請求項３４】
請求項３３記載の方法において、前記利用可能な部分を特定するステップは、割り当てユニット番号のリストを検査するステップを含む、方法。
【請求項３５】
請求項３１記載の方法であって、更に、前記共有ストレージの前記取得した部分を前記データ・ファイルに割り当てるステップを含む、方法。
【請求項３６】
請求項３１記載の方法において、情報を挿入するステップは、割り当てユニット番号を前記プロキシ・ファイルに書き込むステップを含む、方法。
【請求項３７】
請求項３１記載の方法であって、更に、共有不可能なプロキシ・ファイル・システムによって前記プロキシ・ファイルを管理するステップを含む、方法。
【請求項３８】
請求項３７記載の方法において、前記プロキシ・ファイルを管理するステップは、前記コントローラに直接結合されたローカル・ディスク上で実行する共有不可能なプロキシ・ファイル・システムによって、前記プロキシ・ファイルを管理するステップを含む、方法。
【請求項３９】
ファイル管理システムであって、
複数のデータ・ファイルを格納する手段であって、複数のクライアントにアクセス可能な、格納手段と、
複数のプロキシ・ファイルを管理する手段であって、前記複数のプロキシ・ファイルの各々が、前記格納手段内にある前記複数のデータ・ファイルからのカウンターパート・データ・ファイルと関連付けられており、該カウンターパート・データ・ファイルにアクセスするための情報を含む、手段と、
前記管理手段を用いて、前記複数のクライアントによる前記複数のデータ・ファイルへのアクセスを制御する手段と、
を備えた、ファイル管理システム。
【請求項４０】
請求項３９記載のシステムであって、更に、前記制御手段が動作不能である場合、前記制御手段の代用となる副制御手段を備えた、システム。
【請求項４１】
請求項４０記載のシステムであって、更に、前記副制御手段に結合され、前記複数のプロキシ・ファイルを管理する副管理手段を備えた、システム。
【請求項４２】
方法を実行するために、ネットワークに結合されたコンピュータ・システムを制御する命令を収容したコンピュータ読み取り可能媒体であって、前記コンピュータ・システムが前記命令を実行するプロセッサを有し、前記方法が、
共有ストレージ内にあるデータ・ファイルにアクセスする前記クライアントによる試行を認識するステップと、
前記アクセスの試行に応答して、前記データ・ファイルに対応するプロキシ、ファイルにアクセスするステップと、
前記共有ストレージ内にあるデータ・ファイルにアクセスするための情報を、前記プロキシ・ファイルから検索するステップと、
前記検索したアクセス情報を用いて、前記共有ストレージ内にある前記データ・ファイルへのアクセスを、前記クライアントに与えるステップと、
を含む、コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、データ処理システムに関し、更に特定すれば、共有ファイル・システムのためにプロキシを設けるためのシステムおよび方法に関する。一例では、共有不可能なファイル・システムを、それよりも大きな共有可能なファイル・システムのためのプロキシとして役立てることができる。
【背景技術】
【０００２】
情報管理は、近年の業務分野(business landscape)では非常に重大である。特に、効果的に情報を格納しアクセスできることが、いずれの業務であっても、生き残りのためには必須である。業務が管理しなければならないデータ量は、インターネット、電子商取引、および従来からの業務作業の自動化の出現により劇的に増大した。業務アプリケーションおよびインテリジェント・システム、カストマ関係管理アプリケーション、ならびに企業リソース計画システムが、更に、増加しつつあるデータ量に加わり、堅牢で効率的な管理が必要となっている。情報管理、特に格納は、したがって、業務計画の避けられない一面である。
【０００３】
増々増大する業務関連情報の量に対処するために、会社(business)はその２台一組の計算リソースにストレージ・エリア・ネットワーク（ＳＡＮ）を実装することが多い。ＳＡＮは、種々のデータ記憶ストレージ・システムおよびサーバを相互接続する専用高速ネットワークである。ＳＡＮは、メインフレームおよびその他のリソースによってクラスタ化することができ、および／または記憶機能を備えるためにネットワーク技術を利用することもできる。典型的なＳＡＮは、ディスク・ミラーリング(disk mirroring)や復元、ならびにデータ補間、検索、移動(migration)および共有のような装備を設けることができる。
【０００４】
ＳＡＮの欠点の１つに、Windows NTオペレーティング・システムが用いる新技術ファイル・システム（ＮＴＦＳ）またはＯＳ２が用いる高性能ファイル・システム（ＨＰＦＳ）といった、ローカル・ファイル・システムのように振る舞えないことがあげられる。この弱点は、主に、必要となるコードの量、およびこのようなファイル・システムをエミュレートするために実行しなければならないテスト・ケースの数によるものである。ＳＡＮを用いてリアル・ファイル・システムをエミュレートしようとするとき、コードが管理できず低速となることが多い。加えて、高度ファイル・システムの装備（例えば、セキュリティ、施錠、共有、変化通知等）はＳＡＮでは殆ど実施されていない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明に係る方法、システム、および製造物は、より大きな共有ファイル・システムのためのプロキシ・ファイル・システムを提供することによって、前述の問題および／またはその他の問題の１つ以上を未然に防ぐことができる。
【課題を解決するための手段】
【０００６】
ある実現例では、本発明に係る方法およびシステムは、より大きな共有可能ファイル・システムを表すために、共有不可能なローカル・ファイル・システムを利用することができる。本発明は、ＳＡＮのパワー、速度、およびファイル共有能力を、ローカル・ファイル・システムの柔軟性およびコード互換性と組み合わせることができる。
【０００７】
本発明に係る方法およびシステムは、共有ストレージ内にあるカウンターパート・データ・ファイルと関連付けられている、複数のプロキシ・ファイルを管理することができる。プロキシ・ファイルは、カウンターパート・データ・ファイルにアクセスするための情報を含むことができる。本方法およびシステムは、プロキシ・ファイルを介しての共有ストレージ内にあるカウンターパート・データ・ファイルへの、クライアントによる、アクセスを制御することができる。
【０００８】
本発明に係る方法およびシステムは、共有ストレージ内にあるデータ・ファイルにアクセスする、クライアントによる試行を認識することができる。本方法およびシステムは、アクセスの試行に応答して、このデータ・ファイルに対応するプロキシ・ファイルにアクセスすることができる。本方法およびシステムは、共有ストレージからのデータ・ファイルにアクセスするための情報を、プロキシ・ファイルから検索し、この検索したアクセス情報を用いて、共有ストレージ内にあるデータ・ファイルへのアクセスを、クライアントに与えることができる。
【０００９】
前述の背景および摘要は、包括的であることを意図しているのではなく、逆に、当業者が、添付した特許請求の範囲に明記されている発明に係る以下の実現例を理解し易くするのに役立てるものである。加えて、前述の背景および摘要は、特許請求する発明には無関係の限定を加えることは意図していない。
【００１０】
添付図面は、本発明に係る実現例の特色を示し、対応する文面の説明と共に、本発明に関連する原理を説明するのに有効である。
【発明を実施するための最良の形態】
【００１１】
以下の説明は添付図面を引用し、添付図面では、異なる図面における同一の番号は、そうでないと明記されていない限り、同様の要素を表すものとする。以下の説明に明記する実現例は、特許請求する発明に係る実現例全てを表す訳ではない。逆に、これらは、単に、本発明に係るシステムおよび方法の少数の例に過ぎない。他の実現例も用いることができ、構造および手順の変更も、本発明の範囲から逸脱することなく、行うことができる。
【００１２】
本発明の形態によれば、方法およびシステムはプロキシ・ファイル・システムを提供することができる。プロキシ・ファイル・システムは、共有することができず、これよりも大きく高性能で共有可能なファイル・システムのための基準(basis)として役立つことができる。本発明に係る方法およびシステムは、ＮＴＦＳのようなファイル・システムを実行するローカル・ディスクを利用することにより、共有ファイル・システムを表す（即ち、そのためのプロキシを提供する）ことができる。ある構成では、プロキシ・ファイル・システムは、共有ファイル・システムと１対１の対応を有することができる。即ち、共有ファイル・システム上にあるあらゆるファイルは、プロキシ・ファイル・システム上に、それよりも小さい対応するプロキシ・ファイルを有することができる。ある構成では、ローカル・ディスク上の各プロキシ・ファイルは、共有ファイル・システム上にあるそのカウンターパート・ファイル(counterpart file)にアクセスするために必要な情報を収容することができる。動作において、ユーザが共有ファイル・システム上のファイルを開こうとすると、プロキシ・ファイル・システム上の対応するファイルが代わりに開くことができる。共有ファイルを読み取る方法を示す情報を、プロキシ・ファイルから読み取り、ユーザの要求にしたがって共有ファイル・システムからデータを読み取るために用いることができる。
【００１３】
以上の論述は、本発明に関連する形態の一部を紹介し、初めに明確にしておくことを意図している。これらの実施形態ならびに本発明の更に別の形態および実施形態の更なる詳細について、以下に説明する。
【００１４】
図１は、本発明に係る特色および形態と適合性のある、アーキテクチャ１００のブロック図である。アーキテクチャ１００は、共有ストレージ１１０、コントローラ１２０、副コントローラ１２３、プロキシ・ファイル・システム１２５、副プロキシ・ファイル・システム１２７、ネットワーク１３０、およびクライアント１４０Ａ〜１４０Ｎを含むことができる。アーキテクチャ１００における構成要素の数は、図示のものに限定されるのではなく、本発明の実施形態によれば、構成要素の数や配置にはその他の様々なものも可能である。
【００１５】
共有ストレージ１１０は、複数のユーザが情報を格納し、アクセスし、管理することができるいずれのストレージ・リソースでも代表することができる。共有ストレージ１１０は、種々の構成要素またはサブシステムで実施することができ、例えば、磁気および光ストレージ・エレメント、有機ストレージ・エレメント、オーディオ・ディスク、ならびにビデオ・ディスクを含む。共有ストレージ１１０は、ＳＡＮの１つ以上のエレメントを含むことができる。共有ストレージ１１０は、１つ以上のネットワーク系データ処理システム間で分散されている１つ以上の構造化データ・アーカイブを含むことができる。共有ストレージ１１０は、１つ以上のリレーショナル・データベース、分散データベース、オブジェクト指向プログラミング・データベース、および／またはデータの集成体を管理し、アクセスし、更新するためのその他のいずれの機構、デバイス、または構造でも含むことができる。共有ストレージ１１０は、例えば、数値情報、テキスト情報、可聴情報、グラフィカル情報等を格納することができる。
【００１６】
また、共有ストレージ１１０は、共有ストレージ１１０上に格納されている情報を管理するために、共有ファイル・システム（図１には示されていない）を含む、および／または利用することもできる。共有ファイル・システムは、クライアント１４０Ａ〜１４０Ｎが同時に共有ストレージ１１０内のファイルにアクセスすることを可能にすることができる。共有ファイル・システムは、クライアント１４０Ａ〜１４０Ｎが同時に異なるオペレーティング・システムを通じて、ファイルにアクセスすることを可能にすることができる。また、共有ファイル・システムは、大域的または中心的名称空間(namespace)を設けることもでき、これによってクライアント１４０Ａ〜１４０Ｎは共有ストレージ１１０においてファイルを突き止めることが可能となる。ある構成では、このような名称空間は、エレメント・タイプや属性タイプおよび／または識別子を含むことができる。
【００１７】
コントローラ１２０は、１つ以上のシステム、モジュール、および／または共有ストレージ１１０上のデータを制御するためのデバイスを代表することができる。コントローラ１２０は、共有ストレージ１１０へのクライアントのアクセスを制御することができる。ある構成では、コントローラ１２０は、共有ストレージ１１０上の空間を割り当てること、割り当てを解除すること、および管理することができる。また、コントローラ１２０は、共有ストレージ１４０上のデータ（例えば、ファイル）、ならびに共有ストレージ１１０内に位置するデータに関連する属性、許可、およびその他のシステム情報を追跡することもできる。本発明の実施形態によれば、コントローラ１２０は、１つ以上のハードウェア、ソフトウェア、および／またはファームウェア・コンポーネントを含むことができ、これらによってその機能をそれぞれ実行することが可能となる。一例では、コントローラ１２０は、サーバ・コンピュータ（例えば、Windows XPサーバ）のような、データ処理システムによって実施することができる。コントローラ１２０の実現例の一例について、図２と関連付けて以下で詳細に説明する。
【００１８】
プロキシ・ファイル・システム１２５は、１つ以上のハードウェア、ソフトウェア、および／またはファームウェア・コンポーネントによって実施することができ、コントローラ１２０がアーキテクチャ１００に種々の装備を設けるために利用することができる。プロキシ・ファイル・システム１２５は、情報（例えば、ファイル）を格納し検索するためのしかるべき機構および／またはモジュールであれば、いずれでも含むことができる。プロキシ・ファイル・システム１２５は、ＮＴＦＳ、ＦＡＴ、ＶＦＡＴ、ＨＰＦＳ、ＲｅｉｓｅｒＦＳ、ＸＦＳ、ＪＦＳ、および／またはＵＦＳのようなファイル・システムを代表することができる。プロキシ・ファイル・システム１２５は、共有ストレージ１１０よりもサイズが小さくてもよい。例えば、共有ストレージ１１０はプロキシ・ファイル・システム１２５よりも５００，０００倍大きい場合もある。一実現例では、プロキシ・ファイル・システム１２５は、コントローラ１２０に結合されているディスク上で実行する共有不可能なファイル・システムとすることができる。図１はプロキシ・ファイル・システム１２５をコントローラ１２０の外部にあるように示しているが、プロキシ・ファイル・システム１２５はコントローラ１２０内に位置するディスク上に常駐することもできる。
【００１９】
プロキシ・ファイル・システム１２５は、情報を追跡するために１つ以上のプロセスおよびディレクトリ方式を含む、または利用することができる。例えば、プロキシ・システム１２５は、１つ以上のツリー構造（例えば、Ｂ−ツリー、二進ツリー、スプレイ・ツリー(splay tree)、クアッド・ツリー(quad tree)、Ｍ−ツリー、Ｘ−ツリー等）を利用して、ファイルおよびファイル・クラスタを追跡することができる。また、プロキシ・ファイル・システム１２５は、このような構造に関連するファイル経路を指定することもできる。加えて、プロキシ・ファイル・システム１２５は、ファイルのための命名規則を指定することもできる。
【００２０】
プロキシ・ファイル・システム１２５は、共有ストレージ１１０と１：１の対応を有することができる。即ち、共有ストレージ１１０上のあらゆるファイルは、プロキシ・ファイル・システム１２５が管理する対応のプロキシ・ファイルを有することができる。プロキシ・ファイルは、コントローラ１２０に結合されているローカル・ファイル上に格納することができる。プロキシ・ファイルは、プロキシ・ファイル・システム１２５内に含ませることもできる。各プロキシ・ファイルは、共有ストレージ１１０におけるその対応するファイルよりもサイズが小さくてもよい。一例では、各プロキシ・ファイルは、共有ストレージにおけるそのカウンターパート・ファイルと同じ名称を有することもできる。
【００２１】
ある構成では、各プロキシ・ファイルは、共有ファイル・システムにおけるそのカウンターパート・ファイルにアクセスするために必要な情報（例えば、どのようにアクセスするかについての命令）を収容することができる。プロキシ・ファイル・システム１２５が管理するプロキシ・ファイルは、例えば、共有ストレージ１１０上の対応するファイルに対する割り当てユニット（ＡＵ）の１つ以上のリストを含むことができる。ある構成では、プロキシ・ファイルは、共有ストレージにおける対応するファイルにデータを含まない場合もある。ここで用いる場合、「ＡＵ」はストレージ空間の一部またはブロックのことを言う。「ＡＵ」は、共有ストレージ１１０上のどこに個々のファイルが常駐するかを示すことができる。本発明のある実現例では、共有ストレージ１１０のファイルにおける１から４Ｍバイト毎に、対応するプロキシ・ファイル内には８バイトがある場合もある。例えば、プロキシ・ファイル・システム１２５上に４メガバイトのＡＵがあると仮定すると、１ギガバイトのプロキシ・ファイル・システムは、５００テラバイトの共有ストレージ（例えば、ＳＡＮ）を表し、２５０，０００個よりも多いファイルを有することができる。このように、プロキシ・ファイル・システム１２５は、ファイル・システム「増幅器」として機能することができる。
【００２２】
本発明のある実現例では、プロキシ・ファイルは共有ファイルに関連する属性情報を含むことができる。このような属性情報は、共有ファイルを用いるアプリケーションにとって貴重／有用であり得る情報を含むことができる。属性情報は、例えば、他のプロキシ・ファイルとの１つ以上の関連またはリンクを含むことができる。動作において、このような関連を収容しているプロキシ・ファイルにアクセスすると、関連するプロキシ・ファイルに含まれている情報を検索し利用することができる。
【００２３】
プロキシ・ファイル・システム１２５は、例えば、アーキテクチャ１００のためにセキュリティ、施錠、共有、および変更通知機能を設けるための１つ以上のモジュール、プロセス、アプリケーション、および／またはデバイスを含むことができる。本発明に係るある実施形態では、プロキシ・ファイル・システム１２５は、共有ストレージ１１０における種々のボリュームの出現および消滅に関して、リアル・タイムでコントローラ１２０に動的に通知するように構成することができる。セキュリティ機能は、ＤＯＳに基づくライト・プロテクト装備、アクセス制御リスト（例えば、どのクライアントおよび／またはユーザがある情報にアクセスできるのかを指定するため）、ならびにその他の制御機構および方式を含むことができる。プロキシ・ファイル・システム１２５は、また、種々のユーザ有効性確認および認証機能も実行することができる。プロキシ・ファイル・システム１２５は、ファイル毎にセキュリティ装備を設けることができ、更にリムーバブルおよび／または固定ディスク上にセキュリティを設けることができる。
【００２４】
施錠(locking)機能は、アプリケーションが、所与のファイルの１つ以上の部分を施錠するように指定することを可能にし、これによって他のプロセス／アプリケーションがその部分にアクセスするのを防止する。変更通知を容易にするには、ファイル削除や作成のような、種々の変更をアプリケーションに通知することを含めばよい。変更通知を容易にするには、アプリケーションが特定のファイル、ディレクトリ、またはディレクトリ・ツリー内にプロキシ・ファイル・システム１２５を登録することを可能にする必要がある場合もある。そのツリー内において変更（例えば、ファイル作成、削除等）が生じた場合、アプリケーションに通知することができる。
【００２５】
副コントローラ１２３は、コントローラ１２０と構造が同様であってもよい。副コントローラ１２３は、副プロキシ・ファイル・システム１２７に結合することができ、副プロキシ・ファイル・システム１２７は、プロキシ・ファイル・システム１２５と構造および機能が同様であってもよい。ある実現例では、コントローラ１２０は、主コントローラとして構成することができ、副コントローラ１２３はコントローラ１２０のためのバックアップとして供することができる。副ファイル１２３は、現行の主コントローラ（例えば、コントローラ１２０）をミラーリング(mirror)することができ、それが動作不能になった場合に代用することができる。「主」および「副」という用語は、動作モードに言及していると考えるとよい。「主」動作モードでは、コントローラは、例えば、割り当て機能やプロキシ・ファイル修正を実行することができる。コントローラ１２０および副コントローラ１２３は、構造が同様でもよく、これらのコントローラの各々はいずれの所与の時点でも現行の「主」コントローラとして動作することができるとよい。したがって、現行の主コントローラ（即ち、コントローラ１２０）が故障するかまたは動作不能となったとき、副コントローラ１２３が主動作モードを引き継ぎ、現行の「主」コントローラとして供することができる。副コントローラ１２３は、自動的に、または受信した命令に応答して、動作不能となった主コントローラの代用となることができる。本発明のある実現例では、クライアント１４０Ａ〜１４０Ｎは、主および副コントローラを把握することができ、現行の主コントローラの切換を認識することができる。例えば、クライアント１４０Ａ〜１４０Ｎは、副コントローラ１２３がいつコントローラ１２０の代用となって現行の主コントローラとなるかを認識することができる。
【００２６】
図１に示すのは、対応する副プロキシ・ファイル・システム１２７を有する単一の副コントローラ１２３であるが、アーキテクチャ１００にはいずれの数の地理的に分散した副コントローラおよび対応する副プロキシ・ファイル・システム１２７を実施してもよい。更に、アーキテクチャ１００内に描かれているが、副コントローラ１２３および副プロキシ・ファイル・システム１２７は任意選択肢であり、本発明のある実現例ではなくてもよい。
【００２７】
コントローラ１２０および副コントローラ１２３は、ネットワーク１３０と結合することができる。ネットワーク１３０は、インターネット、仮想個人ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、ブロードバンド・ディジタル・ネットワーク、あるいは２箇所以上のノードまたは場所間の通信を可能にするその他のいずれの適した構造とすることもできる。ネットワーク１３０は、共有、公衆、または個人データ・ネットワークを含み、ワイド・エリアまたはローカル・エリアをその有効範囲とすることができる。ネットワーク１３０は、１つ以上の有線および／またはワイヤレス接続部を含むことができる。ネットワーク１３０は、ユーザ・データグラム・プロトコル（ＵＤＰ）、送信制御およびインターネット・プロトコル（ＴＣＰ／ＩＰ）、非同期転送モード（ＡＴＭ）、ＳＯＮＥＴ、イーサネット、またはネットワークの場所間で通信を制御するための手順のその他のいずれの編纂物といった通信プロトコルでも採用することができる。更に、ある実施形態では、ネットワーク１３０は、ボイス・オーバー・インターネット・プロトコル（「ＶｏＩＰ」）技術を利用することもできる。ある構成では、ネットワーク１３０は「フォールト・トレラント・ネットワーク」とすることもできる。したがって、ネットワーク１３０は、障害（例えば、回線の損傷）が生じた場合でも、中断のないデータ交換を容易にするように構成することができる。
【００２８】
アーキテクチャ１００は、１つ以上のクライアント１４０Ａ〜１４０Ｎを含むことができ、これらはネットワーク１３０に結合するか、またはその中に含ませることができる。クライアント１４０Ａ〜１４０Ｎは、ネットワーク１３０および共有ストレージ１１０にアクセスするために一人以上のユーザが用いる１つ以上のデバイスを表すことができる。また、いずれの数の地理的に分散したクライアント１４０でも、アーキテクチャ１００に含ませることができることも言うまでもない。一構成では、クライアント１４０Ａ〜１４０Ｎの各々は、汎用コンピュータ、パーソナル・コンピュータ（例えば、デスクトップ）、またはワークステーションを含むことができる。また、クライアント１４０Ａ〜１４０Ｎは、移動計算デバイス（例えば、ラップトップ、ＰＤＡ、ＢｌａｃｋｂｅｒｒｙＴＭ、Ｅｒｇｏ  ＡｕｄｒｅｙＴＭ等）、移動通信デバイス（例えば、セル・ホーン）、あるいはユーザが情報に遠方からアクセスすることを可能にするその他の構造も含むことができる。ある構成では、クライアント１４０Ａ〜１４０Ｎは、１つ以上の中央データ処理システムに結合されたキオスクまたは「ダム」端末(dumb terminal)を含むことができる。尚、クライアント１４０Ａ〜１４０Ｎの各々は、構造および能力が異なっていてもよいことは当業者にはお分かりであろう。例えば、クライアント１４０Ａはデスクトップ・コンピュータとすることができ、一方クライアント１４０Ｂは移動計算デバイスとすることができる。クライアント１４０の構成の一例について、図４と関連付けて以下で詳細に説明する。
【００２９】
アーキテクチャ１００内部にある種々の構成要素は、インターネット・サービス・プロバイダによって、またはインターネット・ゲートウェイの一部として一般的に採用されているような、当技術分野において周知の通信デバイスおよびソフトウェアによって、ネットワーク１３０に動作的に接続することができる。このような構成要素にはネットワーク識別子（ＩＤ）を割り当てることができる。ここで用いる場合、「ＩＤ」という用語は特定のエレメントにアドレスする、識別する、関係付ける、または参照するために用いられるシンボル、値、タグ、または識別子であればいずれでも意味する。ネットワークＩＤは、例えば、ＩＰアドレスを含むことができる。
【００３０】
クライアント１４０Ａ〜１４０Ｎは、１つ以上の通信プロトコルおよびデバイスを通じて、共有ストレージ１１０に動作的に接続することができる。本発明の実現例の一例では、クライアント１４０Ａ〜１４０Ｎは、光ファイバ、ファイバ・チャネル、ＳＣＳＩ（小型コンピュータ・システム・インターフェース）、および／またはｉＳＣＳＩ（インターネットＳＣＳＩ）技術によって、共有ストレージ１１０に結合することができる。例えば、ＥＳＣＯＮ（企業システム接続）技術、ＩＰ上ファイバ・チャネル（ＦＣＩＰ）、および／またはインターネット・ファイバ・チャネル・プロトコル（ｉＦＣＰ）を用いて、クライアント１４０Ａ〜１４０Ｎを共有ストレージ１１０に結合することができる。更に、種々のスイッチ、ルータ、およびその他の通信エレメントを利用して、クライアント１４０Ａ〜１４０Ｎが共有ストレージ１１０と通信できるようにすることもできる。ある構成では、ネットワーク１３０は、このような光ファイバ、ファイバ・チャネル、ＳＣＳＩ、および／またはｉＳＣＳＩ技術やデバイスも利用することができる。
【００３１】
図２は、本発明に係るコントローラ１２０の構成の一例を示すブロック図である。図２に示すように、コントローラ１２０は、ストレージ２２０、ソフトウェア・レイヤ２５０、およびプロセッサ２６０を備えることができる。システム・バス（図示せず）がこのような構成要素を相互接続することができる。例えば、別個のアドレス・ラインおよびデータ・ラインを内蔵することができる。あるいは、データおよびアドレス・ラインを多重化することもできる。
【００３２】
ストレージ２２０は、コントローラ１２０のために大容量ストレージおよび／またはキャッシュ・メモリを設けることができる。加えて、ストレージ２２０は、プログラム・コードのようなプロセッサ２６０のために主メモリを設けるためのエレメントを含むことができる。ストレージ２２０は、種々の構成要素またはサブシステムで実施することができ、例えば、ハード・ドライブ、光ドライブ、ＣＤ  ＲＯＭドライブ、ＤＶＤドライブ、汎用記憶装置、リムーバブル記憶装置、および／または情報を格納可能なその他のデバイスを含む。ストレージ２２０は、ランダム・アクセス・メモリ、リード・オンリ・メモリ、磁気および光記憶エレメント、有機記憶エレメント、オーディオ・ディスク、ならびにビデオ・ディスクを含むことができる。ストレージ２２０はコントローラ１２０内部に示されているが、ストレージ２２０はコントローラ１２０の外部に実装してもよい。更に、単一のストレージ・モジュールを示すが、いずれの数のモジュールでもコントローラ１２０内に含ませることができ、各々が別個の機能を果たすように構成することもできる。
【００３３】
ストレージ２２０は、種々のアプリケーション、オペレーティング・システム、アプリケーション・プログラミング・インターフェース、アプリケーション・ルーチン、および／またはその他の実行可能命令のためのプログラム・コードを含むことができる。また、ストレージ２２０は、通信、カーネル、デバイス・ドライバ、およびコンフィギュレーション情報についてのプログラム・コードおよび情報も含むことができる。コントローラ１２０の外部に示すが、本発明のある実現例では、プロキシ・ファイル・システム１２５をストレージ２２０内に位置付けてもよい。加えて、プロキシ・ファイル・システム１２５が管理するプロキシ・ファイルをストレージ２２０内に位置付けてもよい。
【００３４】
ソフトウェア・レイヤ２５０は、割り当てルーチン構成要素２５６およびネットワーク・インターフェース構成要素２５８を含むことができ、コントローラ１２０のストレージ２２０内に実装することができる。割り当てルーチン２５６は、ＡＵを割り当てるおよび割り当てを解除するため、ならびに共有ストレージ１１０に格納されているファイルを追跡するための実行可能プログラム・コードを含むことができる。割り当てルーチン２５６は、ＡＵ番号またはその他の識別子のリストを保持し、要求に応じてこれらをクライアント１４０Ａ〜１４０Ｎに与えることができる。割り当てルーチン２５６は、ファイルの削除に応答して、ＡＵの割り当てを解除することができる。一構成では、割り当てルーチン２５６は、ＲＡＭに基づく割り当て方式を含むおよび／または利用することができ、この場合割り当てるＡＵは、ストレージ２２０内にあるリンク・リストから得られる。
【００３５】
ネットワーク・インターフェース２５８は、コントローラ１２０とネットワーク１３０との間における情報交換を容易にするための実行可能なプログラム・コードを含むことができる。ネットワーク・インターフェース２５８は、ハードウェア、ソフトウェア、および／またはファームウェア・エレメントを利用することができる。一例では、ネットワーク・インターフェース２５８は、１つ以上のネットワーク・カードおよび／またはポートと相互作用することができる。
【００３６】
ある構成では、ソフトウェア・レイヤ２５０は、ハードウェア・インターフェース構成要素を含むまたは利用することができる。このようなハードウェア・インターフェース構成要素は、ブート実行可能ソフトウェアおよび／またはコントローラ１２０に結合されている１つ以上の構成要素を駆動するドライバ・ソフトウェアを含むことができる。
【００３７】
プロセッサ２６０は、命令を実行するために動作的に構成することができる。プロセッサ２６０は、構成要素およびデバイス間で情報を導出し、１つ以上のメモリからの命令を実行するために構成することができる。図２は単一のプロセッサを示すが、コントローラ１２０は、複数の汎用プロセッサおよび／または特殊目的プロセッサ（例えば、ＡＳＩＣＳ）を含むことができる。プロセッサ１２０は、例えば、以下の１つ以上、コプロセッサ、メモリ、レジスタ、ならびにその他の処理デバイスおよびシステムも適宜含むことができる。プロセッサ１２０は、例えば、Intel Corporationから供給されるPentiumTMプロセッサを用いて実施することができる。
【００３８】
図３は、クライアント１４０の一例のブロック図である。クライアント１４０は、Ｉ／Ｏデバイス３２２、ディスプレイ３２４、ストレージ３２６、ネットワーク・インターフェース３２８、およびプロセッサ３３０を備えることができる。コントローラ１２０に関して先に論じたように、システム・バス（図示せず）がこのような構成要素を相互接続することができる。
【００３９】
クライアント１４０は、１つ以上の入出力（Ｉ／Ｏ）デバイス３２２を通じて入力を受信することができる。Ｉ／Ｏデバイス３２２は、キーボード、マウス、ポインティング・デバイス、および／またはオーディオ−またはビデオ−取り込みデバイスのような、タッチ・スクリーンまたは情報−取り込みデバイスのような構成要素を含むことができる。例えば、Ｉ／Ｏデバイス３２２は、マイクロフォンを含み、発声を認識し解析するために音声認識ソフトウェアに結合することができる。Ｉ／Ｏデバイス３２２は、加えてまたは代わりに、１つ以上のデータ読み取りデバイスおよび／または入力ポートを含むことができる。
【００４０】
クライアント１４０は、ディスプレイ３２４を通じて、情報およびインターフェース（例えば、ＧＵＩ）を明示することができる。ディスプレイ３２４は、テキスト、画像、またはその他のあらゆる種類の情報でも公表するように構成することができる。ある構成では、ディスプレイ３２４は、陰極線管、液晶、発光ダイオード、ガス・プラズマ、またはその他の種類の表示機構によって、情報を表示することができる。ディスプレイ３２４は、加えてまたは代わりに、可聴的に情報を公表することができる。例えば、ディスプレイ３２４は、可聴サウンドをユーザに供給するために、スピーカまたはその他の何らかのオーディオ出力デバイスを含むことができる。実際、ディスプレイ３２４は、合成または予め記録した人の発声を生成するように構成されたオーディオ・ソフトウェアを含む、またはこれに結合することができる。このように、ディスプレイ３２４は、クライアント１４０とのユーザ双方向処理を容易にするために、Ｉ／Ｏデバイス３２２と共に用いることができる。
【００４１】
ストレージ３２６は、クライアント１４０のために大容量ストレージおよび／またはキャッシュ・メモリを設けることができる。ストレージ３２６は、ストレージ２２０に関して先に述べたものを含む種々の構成要素またはサブシステムによって実施することができる。ある構成では、ストレージ３２６は、ＥＰＲＯＭ（消去可能プログラム可能リード・オンリ・メモリ）およびＥＥＰＲＯＭ（消去可能プログラム可能リード・オンリ・メモリ）１つ以上のプログラム可能、消去可能、および／または再利用可能なストレージ構成要素を含むまたは利用することができる。また、ストレージ３２６は、フラッシュ・メモリ（即ち、フラッシュＲＡＭ）のように、ブロック単位で消去およびプログラムするように動作可能な、一定給電不揮発性メモリ(constantly-powered non-volatile memory)を含むまたは利用することもできる。ストレージ３２６はクライアント１４０の内部に示されているが、ストレージ３２６はクライアント１４０の外部に実装してもよい。更に、単一のストレージ・モジュールが示されているが、いずれの数のモジュールでもクライアント１４０に含ませることができ、各々を別個の機能を果たすように構成することができる。
【００４２】
ストレージ３２６は、種々のクライアント・アプリケーション、オペレーティング・システム、アプリケーション・プログラム・インターフェース、アプリケーション・ルーチン、および／またはその他の実行可能命令のためのプログラム・コードを含むことができる。ストレージ３２６は、また、通信、カーネル、およびデバイス・ドライバのためのプログラム・コードおよび情報、ならびにコンフィギュレーション情報も含むことができる。ストレージ３２６は、クライアント１４０が共有ストレージ１１０、コントローラ１２０、および副コントローラ１２３と通信するためにユーザが用いるプログラム・コードおよび／または情報（例えば、プログラム・コード３５０）を含むことができる。一例では、ストレージ３２６はWindowsをインストール可能なファイル・システム（ＩＦＳ）をプログラム・コード３５０として含むことができ、これをオペレーティング・システムのカーネル空間にインストールし、クライアント１４０上で実行するアプリケーションには見えないようにすることができる。プログラム・コード３５０は、共有ストレージ１１０のボリュームが所与のクライアントのディスク空間の一部として現れることを可能にすることができる。例えば、ボリュームは、Ｐのようなデバイス記号として、またはＣ：＼ｖｉｄｅｏｃｌｉｐｓのようなディレクトリ・マウントとして現れることもできる。
【００４３】
また、ストレージ３２６は、システム・コンフィギュレーションおよび変更を認識するためのプログラム・コードも含むことができる。このようなプログラム・コードは、例えば、クライアントに現主コントローラ（そして副コントローラ（複数の副コントローラ））の認識を与え、クライアントの要求が適正に導出されこれに回答が行われたことの確証を得ることができる。また、プログラム・コードは、主コントローラの変更を認識し反応することができる。例えば、コードは、コントローラ１２０および副コントローラ１２３を認識しており、いつ副コントローラ１２３が、現行の主コントローラとして、コントローラ１２０の代用となったかを検出することができる。
【００４４】
先に説明したように、プロキシ・ファイル・システム１２５は、共有ストレージ１１０における種々のボリュームの出現および消滅に関して、コントローラ１２０に動的に通知することができる。しかしながら、本発明のある実施形態によれば、プログラム・コード３５０は、このような機能性を、プロキシ・ファイル・システム１２５と共にまたは単独で(unilaterally)実行するように構成することができる。
【００４５】
また、ストレージ３２６は、プログラム・コードのために、というように、プロセッサ３３０に主メモリを設けることもできる。プロセッサ３３０は、前述のプロセッサ２６０と同様でもよい。クライアント１４０が、ストレージ３２６にインストールされているアプリケーションおよび／または命令を実行すると、プロセッサ３３０は、ストレージ３２６からプログラム・コードの少なくとも一部を、主プロセッサ・メモリ（図示せず）にダウンロードすることができる。プロセッサｓ３３０がプログラム・コードを実行すると、プロセッサ３３０はプログラム・コードの追加部分をストレージ３２６から検索することもできる。
【００４６】
ネットワーク・インターフェース３２８は、ネットワーク１３０、共有ストレージ１１０、および／または外付けイーサネットＬＡＮ、シリアル・ラインなどのようなその他のいずれのネットワークとの通信をも容易にするためのしかるべき機構および／またはモジュールであればいずれでもよい。ネットワーク・インターフェース３２８は、情報をネットワーク１３０に送出し、情報をネットワーク１３０から受信するために構成することができる。ネットワーク・インターフェース３２８は、１つ以上のネットワーク・カードおよびデータ・ポートを含むまたは利用することができる。
【００４７】
コントローラ１２０およびクライアント１４０Ａ〜１４０Ｎの構成は一例に過ぎない。ある構成では、クライアント１４０Ａ〜１４０Ｎは、コントローラ１２０に含まれている構成要素と同様のものを含むことができる。しかしながら、クライアント１４０Ａ〜１４０Ｎは、構造的にコントローラ１２０と異なっていてもよく、異なる構成要素または追加の構成要素を有してもよい。同様に、コントローラ１２０は、図３に示されているが図２には示されていない、ある構成要素を含むこともできる。加えて、クライアント１４０Ａ〜１４０Ｎの各々は構造が異なっていてもよい。
【００４８】
図４は、本発明の原理に係るシステム環境設定プロセス４００の一例を示すフローチャートである。プロセス４００を開始すると、所与の環境においてアーキテクチャ１００を実施し（例えば、クライアント・デバイスの環境設定を行い、ソフトウェアを実装する等）、環境設定セッションを始動する（段階４１０）。本発明のある実施形態では、システム・アドミニストレータまたはその他の指定ユーザが、環境設定アプリケーションを用いて、コントローラ１２０によって環境設定セッションを始動することもできる。環境設定アプリケーションは、ウェブに基づくアプリケーションであってもよい。
【００４９】
一旦環境設定セッションが確立したなら、アクティブなストレージ・エレメントを識別することができる（段階４２０）。一構成では、コントローラ１２０はクエリを発生し１つ以上のクライアント１４０Ａ〜１４０Ｎに送信して、アクティブなストレージ・エレメント（例えば、ファイバ・チャネルに取り付けられているディスク）を判定することができる。このクエリに応答して、受信したクライアント１４０は、アクティブ・ストレージ・エレメントを示すメッセージをコントローラ１２０に戻すことができる。本発明の原理によれば、コントローラ１２０は、単一のクライアントに質問することにより、ネットワーク全体で用いられているストレージを識別することができる。コントローラ１２０は環境設定セッションの間にストレージを識別することができるが、コントローラ１２０は初期環境設定の後にストレージを識別することもできる（例えば、クエリを種々のクライアントに所定の間隔で送ることにより）。前述のように、コントローラ１２０も、プロキシ・ファイル・システム１２５および／または所与のクライアント１４０におけるプログラム・コード３５０（例えば、ＩＦＳ）によるストレージ・エレメントの追加および除去に関して動的に更新することができる。
【００５０】
一旦アクティブなストレージ・エレメントを識別すると（段階４２０）、コントローラ１２０を始動することができる（段階４３０）。コントローラ１２０の始動は、割り当てルーチン２５６およびプロキシ・ファイル・システム１２５を始動し、識別したストレージに対応するボリュームを作成し、ＡＵを指定する等を含めばよい。
【００５１】
図４に示す環境設定プロセスは、アクセス設定値を確立すること（段階４４０）を含んでもよい。アクセス設定値の確立は、クライアント・デバイスおよびユーザを登録すること、パスワードを生成すること、パスワードをクライアントおよびユーザに供給すること、および／またはユーザ−および／またはデバイス−特定アクセス・レベルや制限（例えば、アクセス制御リストをプロキシ・ファイル・システム１２５内に構成する）を設定することを含めばよい。例えば、アクセス設定値の確立は、あるユーザおよび／またはクライアント・デバイスに対して、共有ストレージ１１０内のある情報にアクセスすることを制限することを含むとよい。加えて、図４に示すプロセス４００は、１つ以上の副コントローラ１２３をインストールしその環境設定を行うこと（段階４４０）も含むことができる。これは、どのようにそしていつ副コントローラ（複数の副コントローラ）がコントローラ１２０の代用となることができるかを制御する規則および設定値を指定することを含めばよい。先に示したように、副コントローラ１２３は任意選択肢であり、アーキテクチャ１００内に含めなくてもよい。したがって、プロセス４００は、本発明のある実現例では、段階４４０を含まなくてもよい。
【００５２】
図５は、本発明の原理に係るファイル・アクセス方法５００の一例を示すフローチャートである。方法５００は、ファイルにアクセスする試みが発生したとき（段階５１０）に開始するとよい。例えば、クライアント１４０Ａに随伴するユーザがクライアント１４０Ａ上に現れるドライブ飢えのファイルを開こうとする場合がある。クライアント（例えば、１４０Ａ）上で実行しているアプリケーションもファイルにアクセスしようとする場合がある。所望のファイルにアクセスする試みに応答して、所望のファイルに対応するプロキシ・ファイルを特定し、プロキシ・ファイル・システム１２５からアクセスすることができる（段階５２０）。コントローラ１２０は、プロキシ・ファイルにアクセスしようとすることができる。本発明のある実現例では、各プロキシ・ファイルは、共有ストレージ１１０上にあるその対応するファイルと同じ名称を有していてもよい。このような実現例では、共有ストレージ１１０上のファイルに対応するプロキシ・ファイルは、共有ストレージ・ファイルの名称をプロキシ・ファイルの名称と比較することによって特定することができる。
【００５３】
プロキシ・ファイルにアクセスすることに成功した場合（段階５２５−はい）、プロキシ・ファイルからアクセス情報を検索することができる（段階５３０）。このようなアクセス情報は、共有ストレージ１１０からの所望のファイルにどのようにしてアクセスするか（例えば、読み出す）、そして共有ストレージ１１０上のどこにそのファイルが位置するかに関する情報を含めるとよい。アクセス情報は１つ以上のＡＵを含むとよい。本発明の一実現例では、コントローラ１２０は、プロキシ・ファイルから情報を読み出すことによって、プロキシ・ファイルからアクセス情報を検索する。アクセス・ファイルの検索には、共有ストレージのハンドルをローカル・ハンドルにマッピングすることを含めればよい。プロキシ・ファイルにアクセスできない場合（段階５２５−いいえ）、要求元のクライアントにエラー・メッセージを戻せばよく（段階５２７）、ある実施形態では、ユーザに公表してもよい。一構成では、コントローラ１２０（例えば、プロキシ・ファイル・システム１２５を通じて）、１つ以上のアクティビティ・ログにおいて失敗したアクセス試行を追跡することもできる。
【００５４】
一旦共有ストレージ１１０上の所望のファイルに対応するプロキシ・ファイルからアクセス情報を検索したなら、所望のファイルを共有ストレージ１１０からアクセスすることができる（段階５４０）。一実現例では、コントローラ１２０は所望のファイルにどのようにアクセスするかを指定する情報（例えば、プロキシ・ファイルから検索したアクセス情報から得られる）を要求元クライアント（例えば、クライアント１４０Ａ）に送信することができ、要求元クライアントは、コントローラ１２０から受信した情報を用いて、共有ストレージ１１０からの所望のファイルにアクセスすることができる。
【００５５】
図５には示されていないが、ユーザ認証および有効性確認プロセスも、図示の方法に含めることができる。ファイルにアクセスしようとする前に（段階５１０）、ユーザはネットワーク１３０および共有ストレージ１１０にログインすることができる（例えば、クリデンシャル(credential)をクライアント１４０に入力することによって）。ユーザは、加えて、または代わりに、ファイル毎にまたは他の必要に応じて、クリデンシャルを入力することができる。ユーザは（例えば、催促に応答して）、ファイルにアクセスしようとするのと同時に、またはアクセスの試行の後に（例えば、試行の直後）クリデンシャルを入力することができる。また、ユーザに、所定の時間間隔でクリデンシャルを入力するように促してもよい。クリデンシャルは、ユーザ名、パスワード等を含むことができる。ある実現例では、ユーザが入力したクリデンシャルは、それぞれのクライアントからコントローラ１２０に導出することができる（そして、アーキテクチャ１００のある構成では、コントローラ１２０から副コントローラ１２３）。加えて、または代わりとして、クライアント１４０Ａ〜１４０Ｎは自動的にクリデンシャルをコントローラ１２０に導出することもできる。プロキシ・ファイル・システム１２５は、入力されたクリデンシャルを用いて、ユーザの有効性判断および認証機能を実行することができる。アーキテクチャ１００のある構成では、公開鍵暗号を採用した公開鍵インフラストラクチャ（ＰＫＩ）を利用して、ユーザ認証プロセスを実行することもできる。
【００５６】
図６は、本発明の原理にしたがって、ファイルを読み出し、ファイルに書き込む方法６００の一例を示すフローチャートである。方法６００は、要求元クライアント（例えば、クライアント１４０Ａ）がリードおよび／またはライト要求を発行したときに開始することができる（段階６１０）。クライアントは、クライアントがアクセスした共有ストレージ１１０上の１つ以上のファイルから読み出すおよび／またはこれらに書き込むために、リードまたはライト要求を発行することができる。クライアント１４０Ａ〜１４０Ｎは、リード／ライト要求を、ネットワーク１３０を通じてコントローラ１２０に発行することができる。クライアントは、図５に関連付けて先に説明したプロセス／イベントの１つ以上に応じて、共有ストレージ１１０上のファイルにアクセスすることができる。
【００５７】
要求元クライアントが、共有ストレージ１１０上のファイルから読み出す要求を発行した場合（６２０）、共有ストレージ・ファイルに対応するプロキシ・ファイルを特定して読み出す（段階６２２）。前述にように、プロキシ・ファイルは、その共有ストレージ・カウンターパートと同じ名称を有することができる。コントローラ１２０は、受信したリード要求に応答して、しかるべきプロキシ・ファイルを読み出すことができる。次いで、コントローラ１２０は要求元クライアントに、プロキシ・ファイルからのＡＵのリストを戻すことができる（段階６２４）。ＡＵのリストを受信した後、要求元クライアントは、ＡＵを用いて、共有ストレージ１１０上の対応するファイルから情報を読み出すことができる（段階６２６）。
【００５８】
要求元クライアントが共有ストレージ１１０上にデータ・ファイルを書き込んでおり、共有ストレージ上に書き込む空間を要求する場合（６３０）、コントローラ１２０は書き込みのために利用可能な空間を共有ストレージ１１０上に取得する（段階６３２）。利用可能な空間の取得には、利用可能な空間を識別することおよび／またはそれを取得／予約することを含めればよい。コントローラ１２０は、ソフトウェア・レイヤ２５０における割り当てルーチン２５６によって、共有ストレージ内に空間を取得する。一構成では、コントローラ１２０は、共有ストレージ上で取得した利用可能な空間を、書き込みのためにデータ・ファイルに割り当てる。次いで、コントローラ１２０は、書き込みのために取得した空間を識別する情報を、共有ストレージ・ファイルに対応するプロキシ・ファイル内に挿入することができる（段階６３４）。このように、プロキシ・ファイルを更新して、データ・ライトを、共有ファイル１１０におけるそのカウンターパート・データ・ファイルに反映する。例えば、コントローラ１２０は、利用可能な空間に関連するＡＵをプロキシ・ファイルに書き込むことができる。クライアントは、クライアントがファイルを閉じるまで、図示の方法にしたがって、ファイルの読み出しおよび書き込みを行うことができる（段階６４０）。
【００５９】
図４から図６は、本発明の実施形態の一例に係るものである。更に、図４から図６に記載するイベントのシーケンスは、一例であり、原点することを意図していない。したがって、他のステップを用いることもでき、図４から図６に示す方法であっても、本発明の範囲から逸脱することなく、イベントの特定の順序は様々に変化することも可能である。更に、図４から図６に示す方法では、あるステップがなくてもよく、追加のステップを実施してもよい。加えて、図４から図６の段階は、本発明の範囲から逸脱して修正してもよいことは言うまでもない。
【００６０】
説明の目的のみのために、図１から図３に示した別個の機能エレメントを参照して、本発明のある形態について説明した。しかしながら、図示したエレメントおよびモジュールの機能性は重複してもよく、および／またはエレメントおよびモジュールの数が減少または増大して表されてもよい。各システムのエレメントは、実現例に応じて、図示したある構成要素が不要になること、および／または図示しなかった追加のまたは種々の構成要素を内蔵するか、またはそれらの結合されている場合もあり得る。更に、図示したエレメントの機能性の全てまたは一部が共存すること、または地理的に分散した数箇所の間で分散されることも可能である。更に、本発明の実施形態、特色、形態および原理は、種々の環境において実施することができ、図示した環境およびアーキテクチャに限定されるのではない。加えて、ここに開示したプロセスは、いずれの特定の装置またはシステムにも本来関連せず、構成要素の適した組み合わせであればそのいずれによってでも実施することができる。
【００６１】
本発明によれば、可能な実現例についての以上の説明は、このような実現例全て、または記載した実現例の全ての変形の包括的なリストを表すものではない。一部の実現例のみを記載していることでもって、他の実現例を除外する意図があると解釈してはならない。添付した特許請求の範囲における発明を、他の多くの方法で、この特許請求の範囲から逸脱しない均等物および代替物を用いてどのように実施するかは、当業者には理解されよう。更に、前述の説明においては、実現例において説明した構成要素はどれも、そうではないと示していない限り本発明に必須のものではない。
【図面の簡単な説明】
【００６２】
【図１】図１は、本発明に係る特色および形態を示すアーキテクチャのブロック図である。
【図２】図２は、本発明に係るコントローラの一例のブロック図である。
【図３】図３は、本発明に係るクライアントの一例のブロック図である。
【図４】図４は、本発明に係る環境設定方法を示すフローチャートである。
【図５】図５は、本発明に係るファイル・アクセス方法を示すフローチャートである。
【図６】図６は、本発明に係るファイルから読み出し、ファイルに書き込む方法を示すフローチャートである。
【図１】
2007533033.tif 000003
【図２】
2007533033.tif 000004
【図３】
2007533033.tif 000005
【図４】
2007533033.tif 000006
【図５】
2007533033.tif 000007
【図６】
2007533033.tif 000008
【国際調査報告】
2007533033.tif 000009
2007533033.tif 000010
2007533033.tif 000011