(57)【要約】本発明は、ファイル管理方法に関する。本方法は、データファイルベースを構成する第１段階であって、Ｍを１より大きな整数とすると、各々Ｎ個のディレクトリから成るＭ階層のツリー構造のディレクトリを生成する第１段階と、データファイル記憶段階と、データファイル読み込み段階とを含む。データファイル記憶段階は、記憶されるデータファイルＦｉの識別名にハッシュ関数を適用する段階と、先行段階の結果に基づき、ツリー構造の幾つかの宛先階層におけるディレクトリＲｄｉの経路を決定する段階と、データファイルの識別名に依存する位置において、ハッシッ関数によって決定された前記Ｒｄｉディレクトリにデータファイルを記憶する段階とを含む。データファイル読み込み段階は、読み込まれるデータファイルＦｊの識別名に同じハッシング関数を適用する段階と、先行段階の結果に基づき、ツリー構造における宛先ディレクトリＲｃｊの経路を決定する段階と、データファイルの識別名に依存する位置において、ハッシング関数によって決定された前記ディレクトリＲｃｊのデータファイルを読み込む段階とを含む。
2010518501.tif 000002
【特許請求の範囲】
【請求項１】
ファイル管理方法であって、
Ｍが１より大きい整数である時、各々Ｎ個のディレクトリを有するＭ階層のディレクトリのツリーを生成する段階を含むデータファイルのベースを構成する第１段階と、
データファイルを記録する段階であって、
記録されるデータファイルＦｉの識別名にハッシュ関数を適用する段階と、
前記適用する段階の結果に従って、幾つかの階層の前記ツリーにおける宛先ディレクトリＲｄｉの経路を決定する段階と、
前記ハッシュ関数によって決定され、前記データファイルの前記識別名に依存する位置の前記ディレクトリＲｄｉに前記データファイルを記録する段階と
を含む前記記録する段階と、
データファイルを読み込む段階であって、
読み込まれるデータファイルＦｊの識別名に同じ前記ハッシュ関数を適用する段階と、
前記同じ前記ハッシュ関数を適用する段階の結果に従って、前記ツリーにおける対象ディレクトリＲｃｊの経路を決定する段階と、
データファイルの識別名に依存する位置において、前記ハッシュ関数によって決定された前記ディレクトリＲｃｊにおけるデータファイルを読み込む段階と、
を含む前記読み込む段階と
を備えるファイル管理方法。
【請求項２】
請求項１に記載のファイル管理方法であって、前記データファイルは、Ｎ個のディレクトリのうちのＰ個のディレクトリ階層に対応する、Ｑ個の記憶ユニットに分散されることを特徴とする、ファイル管理方法。
【請求項３】
請求項１又は２に記載のファイル管理方法であって、Ｎは、１６に等しく、前記ハッシュ関数は、ＳＨＡ−１関数であることを特徴とする、ファイル管理方法。
【請求項４】
請求項１〜３のいずれか１つに記載のファイル管理方法であって、各データファイルは、ヘッダ及び本体を含み、前記本体は、変更可能なファイルコンテンツを含み、前記本体の前には、ファイル管理システムにおいてファイルの状態パラメータを含むヘッダが配置され、前記方法は、一連の動作を実施するための処理動作によって対象ファイルを取得する事前ステップを含み、前記取得によって、前記ヘッダのパラメータの少なくとも１つの状態に変化が生じ、この状態変化により、解放までの間、他の処理動作による取得が防止されることを特徴とする、ファイル管理方法。
【請求項５】
請求項１〜４のいずれか１つに記載のファイル管理方法であって、前記取得、読み出し、及び解放動作は、クライアントソフトウェアによって制御され、前記対応する段階は、サーバソフトウェアによって実行されることを特徴とする、ファイル管理方法。
【請求項６】
請求項１〜５のいずれか１つに記載のファイル管理方法であって、前記既存のデータファイルの使用名から算出されたファイル名を入力（１５０）とする前記既存のデータファイルを取得する段階を含み、前記段階は、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを同時に試行し、ファイルのオープン及びロックを要求し、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含む第１タスク（１００）を含むことを特徴とする、ファイル管理方法。
【請求項７】
請求項１〜６のいずれか１つに記載のファイル管理方法であって、新しいデータファイルの使用名から算出されたファイル名を入力（２５０）とする前記新しいデータファイルを取得する段階を含み、第１タスク（２００）は、オペレーティングシステムのファイルシステム層において、新しいファイルの生成、オープン、及びロックを同時に試行し、ファイルの生成、オープン、及びロックを要求し、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含むことを特徴とする、ファイル管理方法。
【請求項８】
請求項１〜７のいずれか１つに記載のファイル管理方法であって、既存のデータファイルが存在しない場合、前記既存のファイルを生成して取得する段階を含み、前記既存のデータファイルの使用名から算出されたファイル名を入力（３５０）とする機能と、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを同時に試行し、それが存在しない場合、ファイルを生成し、ファイルのオープン及びロックを要求し、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含むタスク（３００）を含むことを特徴とする、ファイル管理方法。
【請求項９】
請求項１〜８のいずれか１つに記載のファイル管理方法であって、取得したデータファイルをデータ修正せずに解放する段階と、前記使用名から算出された前記ファイル名と以前データファイルを取得した際に返された取得識別名を入力（４５０）とする機能と、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを同時に試行し、ファイルのオープン及びロックを要求し、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含む第１タスク（４００）とを含むことを特徴とする、ファイル管理方法。
【請求項１０】
請求項１〜９のいずれか１つに記載のファイル管理方法であって、取得したデータファイルを、データ修正して解放する段階と、前記使用名から算出されたファイル名と以前データファイルを取得した際に返された取得識別名とを入力（５５０）とする機能と、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを同時に試行し、ファイルのオープン及びロックを要求し、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含む第１タスク（５００）とを含むことを特徴とするファイル管理方法。
【請求項１１】
請求項１〜１０のいずれか１つに記載のファイル管理方法であって、取得したデータファイルを削除して前記ファイルを解放する段階と、前記使用名から算出されたファイル名と以前データファイルを取得した際に返された取得識別名とを入力（６５０）とする機能と、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを同時に試行し、ファイルのオープン及びロックを要求し、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含む第１タスク（６００）とを含むことを特徴とする、ファイル管理方法。
【請求項１２】
請求項１〜１１のいずれか１つに記載のファイル管理方法であって、ファイルを取得することなく既存のデータファイルを単に読み込む段階と、前記使用名から算出されたファイル名を入力（７５０）とする機能と、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを同時に試行し、ファイルのオープン及びロックを要求し、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含む第１タスク（７００）とを含むことを特徴とする、ファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルファイル管理の分野に関し、特に、記録媒体上におけるその記録、再生、及び修正に関する。特に、コンピュータのオペレーティングシステムに特有のファイルシステムとやり取りするデータファイルを管理するための方法及びシステムに関する。
【背景技術】
【０００２】
通常、新しいデータファイルは、メモリ空間の可用性に従って、記憶装置、例えば、ハードディスクの或る位置に記録される。ハードディスクに記録する場合、後者は、フォーマット時に初期化されたブロック単位で構成される。これらのブロックは、フォーマット時にメモリの物理的なセクタ上に分散される。
【０００３】
コンピュータ上でのデータファイルの管理は、コンピュータのオペレーティングシステムにおけるファイルシステムによって実施される。
オペレーティングシステムのファイルシステムは、記録媒体上の１つ又は複数のパーティションを用いる。パーティションには、任意のデータファイル記録用の記憶空間と、記憶空間の特徴、特に、記憶空間におけるファイルのアドレスが記録される索引空間とが含まれる。
【０００４】
幾つかのファイルは、ディレクトリを構成し、同じパーティションに属するデータファイル及びディレクトリに関する特徴のリストをグループ化する。
例えば、数ギガバイトの大きなサイズの記憶容量を有する記録媒体の場合、１つの同じディレクトリにおいて、記録、再生、及び修正されるデータファイルの数が多くなると、ファイルシステムの索引システムの性能は、低下する。この理由は、ディレクトリであるファイルの構成には、極めて多くの処理すべき出来事を有するリストが含まれ、これにより、データファイルの数が数万に達すると、ファイルへのアクセス時間が異常なほど増加するためである。この性能低下は、ディレクトリであるファイルの断片化現象が、データファイルの名前変更又は削除を行わなければならない時に起こることによって、増大する。
【０００５】
リナックス（Ｌｉｎｕｘ）のＥＸＴ３ファイルシステムを通じて知られている他の構成形態は、多数のデータファイルを有するディレクトリにおける検索を加速するために、Ｂツリータイプの内部索引システムを含むディレクトリであるファイルの構成と、各データファイルについて、ハッシュ関数の結果からのデータファイル名の要録の算出と、を提言している。この解決策は、同一ディレクトリにおける数十万のデータファイルの利用を可能にする。しかしながら、或るしきい値を超えると、ハッシュ関数の限界によって、もはや衝突を回避できなくなり、別の名前を有する２つのデータファイルに同じ要録を配分することになる。ＥＸＴ３ファイルシステムでは、リナックス・カーネル２．６のバージョンの場合、この限界は、同じディレクトリにおいて、データファイル数が約５００，０００に達すると現れる。
【０００６】
従来技術では、米国特許第５７４２８１７号明細書が知られているが、これは、ファイルサーバについて記載しており、アドレス指定処理の簡素化を目的としたファイル参照方法を提言している。この文書は、ファイルシステムによって自動的に属性が付与されたＩノード（ＩＮＯＤＥ）識別子を処理することによってファイルへのアクセスを加速することを提言している。この処理には、ファイルシステムにおいてサブディレクトリが対応する３つの１６進数のデータ項目をこの識別子から抽出する段階が含まれる。
【０００７】
米国特許出願第２００４／０２３６７６１号明細書は、一連のディレクトリ及びサブディレクトリにファイルを記録するシステムについて記載している。ツリーの最下層において、前記ファイルが記録される「ハッシュスロット（ＨＡＳＨ  ＳＬＯＴ）」サブディレクトリを決定するために、ファイル名に依存する要録を算出する段階から成る処理を実行する。
【０００８】
言い換えると、メモリ空間は、従来のツリー形式で構成され、また、ツリーの最下層では、単一階層での集合のサブディレクトリが処理により決定される。
この解決策は、記録できるファイル数を限定する。サブディレクトリ数は、ファイルシステムのアドレス指定モードによって限定され、例えば、ＵＮＩＸタイプのファイルシステムでは、６５，５３６個である。
【０００９】
また、同じ制限が、前記各サブディレクトリ内のファイル数にも当てはまる。
要約すると、容量が限定されており、容量を最大限に用いるには、サブディレクトリ数の最大化が必要であるが、そのようにすると、この「熊手」に似た単一階層のサブディレクトリでは、ファイルシステムの性能が制限される。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、堅牢で高速なファイル管理方法を提言することによって、この欠点を改善することである。本方法によれば、データファイル名に対してファイルシステムによって実施される処理動作によるよりもメモリの利用可能な空間によってのみ限定される多数のデータファイルを用いることが可能になる。本発明による解決策は、従って、大容量記憶メモリを利用する能力によって限定されず、唯一の制限は、オペレーティングシステムによって提供される動作モードよりもこれらのメモリの物理的容量である。それにより、ファイルサーバ等の用途の場合、極めて多数のデータファイルを管理することが可能になる。
【課題を解決するための手段】
【００１１】
本発明は、その最も一般的な意味では、ファイル管理方法に関し、本方法には、データファイルベースを構成する第１段階であって、Ｍを１より大きい整数とすると、各々Ｎ個のディレクトリを有するＭ階層のディレクトリ・ツリーを生成する段階から成る第１段階と、データファイルを記録する段階であって、
記録されるデータファイルＦｉの識別名にハッシュ関数を適用する段階と、
幾つかの階層のツリーにおいて、先行段階の結果に従って、宛先ディレクトリＲｄｉの経路を決定する段階と、
データファイルの識別名に依存する位置において、前記ハッシュ関数によって決定した前記ディレクトリＲｄｉにデータファイルを記憶する段階と、が含まれるデータファイルを記録する段階と、
データファイルを読み込む段階であって、
読み込まれるデータファイルＦｊの識別名に、同じハッシュ関数を適用する段階と、
先行段階の結果に従って、ツリーにおける対象ディレクトリＲｃｊの経路を決定する段階と、
データファイルの識別名に依存する位置において、前記ハッシュ関数によって決定した前記ディレクトリＲｃｊのデータファイルを読み込む段階と、が含まれるデータファイルを読み込む段階とを備える。
【００１２】
記憶ユニットを並列に使用し、性能（アクセス速度及び／又は記憶容量）を改善するために、特定の実施形態によれば、本発明は、先行請求項に記載のファイル管理方法に関する。本ファイル管理方法は、データファイルがＮ個のディレクトリのＰ個のディレクトリ階層に対応する、Ｑ個の記憶ユニットに分散されることを特徴とする。
【００１３】
米国特許出願第２００４／０２３６７６１号明細書の教示内容とは対照的に、この解決策は、ツリーの各階層におけるディレクトリ数を制限することになり、これによって、性能、特に、二次元ツリーにおけるデータファイルへのアクセス速度を改善し、また、記録可能なデータファイルの数がほぼ無制限になる。これらの限界は、もはやファイルシステムの限界に依存するのではなく、記憶媒体の物理的な容量にのみ依存する。
【００１４】
従来技術による解決策とは対照的に、本発明は、ハッシュ関数を適用することによって、複数の階層を有するツリーの経路に属性を付与し、所定のディレクトリにおける位置には属性を付与しない。最下層のサブディレクトリにおける位置は、ハッシュ関数によってではなく、データファイルの識別名に関連付けた名前によって属性付与される。
【００１５】
利点として、Ｎは、１６に等しく、ハッシュ関数は、ＳＨＡ−１関数である。
ファイル管理の附属的問題は、２つのアプリケーションが同じデータファイルに同時にアクセスした場合、データの完全性を保護することに関する。
【００１６】
大多数のオペレーティングシステムでは、ファイルシステム層におけるデータファイルのロックを続行して、書き込み又は読み出しのプロセスにおいてデータファイルへのアクセスを所定の瞬間防止できることが知られている。これらの解決策は、ファイルシステムによって、一般的には、メモリに常駐するロック表から管理される。これらの解決策の欠点は、ネットワークを介してファイルにアクセスする場合、複数の遠隔のコンピュータによって同じファイルにアクセスした際、干渉又はエラーが起こり得ることである。
【００１７】
米国特許第６８５０９６９号明細書は、ロックの使用を回避するための特別な解決策を提言している。この特許は、アプリケーションが、開いたデータファイルに変更内容を記録する事後確率制御を提言し、また、このいわゆる原子操作中、他のアプリケーションが同じデータファイルに介入していないことを保証する。本特許の意味の範囲における「原子」は、いわゆる原子操作の全タスクが完了する前に、割り込みや第三者の動作による干渉の可能性無しに連続的に実行される一組の不可分タスクを意味する。
【００１８】
この解決策は、満足なものではない。この理由は、幾つかのアプリケーションが、共通の一組のファイルに同時に処理動作を実施する場合、この解決策が、幾つかの動作の完了を妨げるためである。それによって、確かに既存のデータファイルへの変更を回避できるが、安定した同時アクセス損失の原因となる。この理由は、本解決策では、各処理を直前の処理完了後に行うことが必要なためである。従って、本解決策は、例えば、ＸＭＬフォーマットのデータを含む異なる競合アプリケーションがいつでも用い得るファイルに対する処理動作には、それほど適していない。
【００１９】
この目的のために、本発明は、更に、各データファイルがヘッダ及び本体を有することを特徴とするファイル管理方法に関する。ヘッダには、ファイル管理システムにおけるデータファイルのＡ状態パラメータが含まれる。本体には、ファイルの修正可能なコンテンツが含まれる。本方法には、対象データファイルへアクセスし、前記状態パラメータの１つを新しいアクセスを防止する状態に修正する段階が含まれる。
【００２０】
これらのデータファイルの管理は、コンピュータのオペレーティングシステムのファイルシステムから独立している。
【図面の簡単な説明】
【００２１】
本発明は、添付図面を参照して、非限定的な例示の実施形態に対応する以下の説明の解釈からより良く理解される。
【図１】本発明によるファイル管理方法が用いるツリーの概略図である。
【図２】ファイル管理の機能図である。
【図３】ファイル管理の機能図である。
【図４】ファイル管理の機能図である。
【図５】ファイル管理の機能図である。
【図６】ファイル管理の機能図である。
【図７】ファイル管理の機能図である。
【図８】ファイル管理の機能図である。
【図９】クライアント／サーバ形態に対応するネットワークを介したファイル管理システムの使用方法を示す図である。
【発明を実施するための形態】
【００２２】
図１は、本発明によるファイル管理方法によって用いるツリーの概略図を示す。
データファイルは、上記の例では、Ｍ＝５階層（１乃至５）に更に分割された構造で構成される。各階層（１乃至４）の各ディレクトリは、最下層（５）は別として、Ｎ＝１６個のディレクトリ（１０乃至１２）、（２０乃至２５）、（３０乃至３５）、（４０乃至４５）を含む。１６個の各ディレクトリの名前は、０とｆとの間の１６進数の数値に対応する。本構造に含まれるディレクトリの総数は、１６＋１６２＋１６３…＋１６Ｍである。
【００２３】
上記の例において、ツリーには、
データファイルを含まずサブディレクトリだけを含む階層１乃至４の６９，９０４個のディレクトリと、
各ディレクトリがデータファイルを記憶するためのファイルを含む階層５の１，０４８，５７６個のディレクトリ（５０乃至５５）とが含まれる。
【００２４】
最下層（５）の各ディレクトリ（５０乃至５５）は、有限数Ｌ個のデータファイルを含み得るが、Ｌは、小さくなるように、例えば、約１，０００になるように選択され、これによって、コンピュータのオペレーティングシステムのファイルシステムが何であれ、アクセス時間が短縮される。
【００２５】
データファイルに対する記憶位置の属性
新しいデータファイルが生成され、文字列で形成された単一使用名によって指定される場合、本方法には、使用名を表すこの文字列にハッシュ関数Ｈｉを適用し、その結果を１６進数形式で表される値で構成する段階が含まれる。ハッシュ関数ＳＨＡ−１の場合、この１６進数形式の結果には、０とｆとの間の１６進数の数値が４０個含まれる。
【００２６】
本方法には、既に定義したディレクトリ・ツリーを使用し、ハッシュ関数の上記結果から前記ツリーのディレクトリ経路を決定する段階が含まれる。
ハッシュ関数の結果のうち最初のＭ個の各数値のランクは、ディレクトリ・ツリーの階層に対応する。
【００２７】
使用名「ｍｙｆｉｌｅ」を例にとると、ＳＨＡ−１関数のアプリケーションは、値「ｂ３５８０ａｂ４５ｃｂ０８８ｂａ４７ｆｆ０７０ａａ８１ｃ２ｄａｅ１ｂｅ５６ｃａ２」を返す。
【００２８】
階層１のディレクトリは、ＳＨＡ−１値の第１番目の文字に対応して、名前「ｂ」を持ち、階層２のディレクトリは、第２番目の文字に対応して、「３」になり、５つの階層（１乃至５）に対しても同様である。最後のディレクトリ（５）の位置は、使用名を構成する各文字のバイトの２桁の１６進数表現を含む。名前「ｍｙｆｉｌｅ」の場合、ファイルの位置及び名前は、「６ｄ７９６６６９６ｃ６５」となり、「６ｄ」は、文字「ｍ」の２桁の１６進数表現に対応し、「７９」は、文字「ｙ」の２桁の１６進数表現に対応し、「６６」は、文字「ｆ」の２桁の１６進数表現に対応する等である。
【００２９】
幾つかのバイトでのコード化が必要な文字の場合、全てのバイトをこの形式で連続的に表す。
データファイルの使用名は一意であるため、ファイルの指定は、ハッシュ関数から算出された位置と、使用名から一意的に算出されたデータファイル名の組合せから生じることから、必ず一意的になる。
【００３０】
この解決策により、同程度の確率で、また、最大の分散で、ディレクトリ・ツリーの階層Ｍのディレクトリにデータファイルを分散することが可能となる。階層Ｍだけがデータファイルを含み、中間階層は、データファイルを含まず、階層Ｍのディレクトリへのファイル分散にのみ役立つ。
【００３１】
階層Ｍの各ディレクトリ内において、データファイルの数は、適度に制限され、例えば、約１，０００個に制限され、これによって、アクセス時間が早くなる。階層Ｍのツリーに生成し得るデータファイルの最大数は、１，０００ｘ１６Ｍに等しい。例えば、Ｍ＝５の場合、階層Ｍのディレクトリ・ツリーにおいて、約１０億個のデータファイルの生成、読み出し、又は書き込みが可能である。
【００３２】
データファイルの生成、書き込み、読み出し、及び削除
第１段階には、上記のハッシュ関数を適用し、また、使用名からファイル名を算出することによって、ファイルの使用名から、ツリーにおけるそのアクセス経路及びその関連するファイル名を決定する段階が含まれる。この段階によって、階層Ｍの中のどのディレクトリにファイルが記録されるか、また、このディレクトリにおけるその位置を決定することが可能となる。
【００３３】
同じデータファイルへの競合アクセス
安定したアクセス管理をデータファイルに対して可能にするために、後者には、各々ヘッダ及び本体が含まれる。本体には、直接アクセス可能な形式又は圧縮もしくは暗号化形式で、修正可能なファイルコンテンツが含まれる。この本体には、ヘッダが先行し、ヘッダには、ファイル管理システムにおけるファイルの状態パラメータが含まれる。
【００３４】
体系的に、一連の任意の動作（書き込み、読み出し、修正、又は削除）のための処理によるファイルへのアクセスには、第１の取得段階が含まれ、この第１の取得段階には、ヘッダの前記状態パラメータの１つを、他の処理動作による更なるアクセスを防止する状態に修正する段階が含まれる。
【００３５】
当然、ファイルが処理動作によってアクセス又は使用される場合、この初期の取得段階中、他の処理動作には、禁止又は待機の通知が出される。
他の処理動作は、対象ファイルが再度アクセス可能状態になるまで、又は所定の時間遅延によってアクセスの試行が中断するまで、この初期の取得段階を繰り返す。
【００３６】
一旦、一連の動作が処理動作によって完了すると、最終の解放段階では、ヘッダの変更されたパラメータの初期状態が復元され、こうして、他の処理動作がデータファイルにアクセス出来るようになる。
【００３７】
図２乃至８は、本発明によって用いられる機能の構成を示す。
既存データファイルを取得する機能
図２は、既存のデータファイルを取得するために必要な一続きのタスクを示す。
【００３８】
本機能は、上記の使用名から算出されたファイル名を入力（１５０）とする。
第１タスク（１００）には、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを要求することにより、ファイルのオープン及びロックを同時に試行し、こうして、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階が含まれる。
【００３９】
次に、本機能は、ファイルのオープン及びロックを検証するための判別（１０１）に進み、ファイルがオープン及びロックされていない場合、判別（１０１）の結果は、否定であり、本機能は、第２の判別（１０２）に進み、試行（１００）中にファイルが存在したかどうかチェックする。否定応答の場合、本機能は、ファイルが存在しないことを示すエラー（１０３）を返す。
【００４０】
肯定応答の場合、判別（１０４）では、試行（１００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかチェックし、否定応答の場合、時間遅延（１４９）の後、新しい試行（１００）に取り掛かり、そうでない場合、本機能は、システムエラー（１０５）を返す。
【００４１】
判別（１０１）の結果が肯定の場合、本機能は、タスク（１０６）中、ファイルヘッダの状態パラメータにおけるファイルの利用可能状態を読み込む。
そして、本機能は、ファイル可用性に関して状態パラメータによる判別（１０７）に進む。
【００４２】
判別（１０７）の結果が、否定であり、利用不可状態に対応する場合、本機能は、タスク（１０８）に進み、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う。
【００４３】
次に、本機能は、判別（１０９）を実施し、試行（１００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかをチェックし、否定応答の場合、時間遅延（１４９）の後、新しい試行（１００）に取り掛かり、そうでない場合、本機能は、ファイルが現在の処理動作によって取得されたままであることを示すエラー（１１０）を返す。
【００４４】
判別（１０７）の結果が肯定の場合、本機能は、ファイルヘッダの状態パラメータにファイルの利用不可状態を書き込むタスク（１１１）、次に、ファイル取得識別名を算出するタスク（１１２）、この識別名をファイルヘッダの状態パラメータに書き込むタスク（１１３）、そして、ファイル本体を読み込むタスク（１１４）に進む。タスク（１１５）は、修正可能なファイルコンテンツを抽出するために、ファイル本体を処理する段階に対応する。この処理は、ファイルヘッダの状態パラメータに従って実行する。それは、例えば、修正可能なファイルコンテンツの解凍又は解読に対応する。最終タスク（１１６）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う段階が含まれる。
【００４５】
本機能は、その完了（１５１）時、データファイル取得確認、ファイル取得識別名、及び修正可能なファイルコンテンツを出力として返す。
新しいデータファイルを取得する機能
図３は、新しいデータファイルを取得するために必要な一続きのタスクを示す。
【００４６】
本機能は、上記の使用名から算出されたファイル名を入力（２５０）とする。
第１タスク（２００）には、オペレーティングシステムのファイルシステム層において、ファイルの生成、オープン、及びロックを要求することによって、新しいファイルの生成、オープン、及びロックを同時に試行し、これにより、そのクローズ及びロック解除まで、後続の処理動作によって、このファイルのオープン及びロックを防止する段階が含まれる。
【００４７】
そして、本機能は、ファイルの生成、オープン、及びロックを検証するための判別（２０１）に進み、ファイルが生成、オープン、又はロックされていない場合、判別（２０１）の結果は、否定であり、本機能は、第２の判別（２０２）に進み、試行（２００）中にファイルが存在したかどうかをチェックする。
【００４８】
肯定応答の場合、本機能は、ファイルが既に存在することを示すエラー（２０４）を返す。
否定応答の場合、本機能は、システムエラーを示すエラー（２０３）を返す。
【００４９】
判別（２０１）の結果が肯定である場合、本機能は、ファイル本体は空のままファイルヘッダを生成して書き込むタスク（２０５）、次に、ファイルヘッダの状態パラメータにファイルの利用不可状態を書き込むタスク（２０６）、そして、ファイル取得識別名を算出するタスク（２０７）、この識別名をファイルヘッダの状態パラメータに書き込むタスク（２０８）に進む。最終タスク（２０９）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う段階が含まれる。
【００５０】
本機能は、その完了（２５１）時、データファイル取得確認及びファイル取得識別名を出力として返す。
存在しない場合はファイルを生成して、既存のデータファイルを取得する機能
図４は、存在しない場合はファイルを生成して、既存のデータファイルを取得するために必要な一続きのタスクを示す。
【００５１】
本機能は、上記の使用名から算出されたファイル名を入力（３５０）とする。
第１タスク（３００）には、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを同時に試行する段階と、それが存在しない場合、ファイルのオープン及びロックを要求することによってファイルを生成する段階であって、これにより、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階と、が含まれる。
【００５２】
そして、本機能は、ファイルのオープン及びロックを検証するための判別（３０１）に進み、ファイルがオープン及びロックされていない場合、判別（３０１）の結果は、否定であり、本機能は、第２の判別（３０２）に進み、ファイルが、試行（３００）時に存在したかどうかチェックする。否定応答の場合、本機能は、システムエラー（３０３）を返す。
【００５３】
肯定応答の場合、判別（３０４）は、試行（３００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間を過ぎているかどうかをチェックして、否定応答の場合、時間遅延（３４９）の後、新しい試行（３００）に取り掛かり、そうでない場合、本機能は、システムエラー（３０５）を返す。
【００５４】
判別（３０１）の結果が肯定の場合、本機能は、ファイルが、試行（３００）時に生成されたかどうかをチェックするための判別（３０６）に進み、ファイルが生成されなかった場合、判別（３０６）の結果は、否定であり、本機能は、タスク（３０７）時、ファイルヘッダの状態パラメータにおけるファイルの利用可能状態を読み込む。
【００５５】
次に、本機能は、状態パラメータによるファイルの可用性に関する判別（３０８）に進む。
判別（３０８）の結果が、否定であり、利用不可状態に対応する場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（３０９）に進む。
【００５６】
そして、本機能は、判別（３１０）を実施し、試行（３００）の回数が、しきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかをチェックし、否定応答の場合、時間遅延（３４９）の後、新しい試行（３００）に取り掛かり、そうでない場合、本機能は、ファイルが現在の処理動作によって取得されたままであることを示すエラー（３１１）を返す。
【００５７】
判別（３０８）の結果が肯定である場合、本機能は、ファイルヘッダの状態パラメータにファイルの利用不可状態を書き込むタスク（３１２）、そして、ファイル取得識別名を算出するタスク（３１３）、この識別名をファイルヘッダの状態パラメータに書き込むタスク（３１４）、及びファイル本体を読み込むタスク（３１５）に進む。タスク（３１６）は、修正可能なファイルコンテンツを抽出するためのファイル本体の処理に対応する。この処理は、ファイルヘッダの状態パラメータに従って行う。それは、例えば、修正可能なファイルコンテンツの解凍又は解読に対応する。タスク（３１７）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う段階が含まれる。
【００５８】
本機能は、その完了（３５１）時、データファイル取得確認、ファイルが生成されなかったことを示す通知、ファイル取得識別名、及び修正可能なファイルコンテンツを出力として返す。
【００５９】
判別（３０６）の結果が肯定である場合、本機能は、ファイル本体が空のまま、ファイルヘッダを生成して書き込むタスク（３１８）、次に、ファイルヘッダの状態パラメータにファイルの利用不可状態を書き込むタスク（３１９）、そして、ファイル取得識別名を算出するタスク（３２０）、この識別名をファイルヘッダの状態パラメータに書き込むタスク（３２１）に進む。最終タスク（３２２）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う段階が含まれる。
【００６０】
本機能は、その完了（３５２）時、データファイル取得確認、ファイルが生成されたことを示す通知、及びファイル取得識別名を出力として返す。
取得したデータファイルをデータ修正せずに解放する機能
図５は、取得したデータファイルをデータ修正せずに解放するために必要な一続きのタスクを示す。
【００６１】
本機能は、上記の使用名から算出されたファイル名と、前回のデータファイル取得時返された取得識別名と、を入力（４５０）とする。
第１タスク（４００）には、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを要求し、ファイルのオープン及びロックを同時に試行し、これにより、そのクローズ及びロック解除まで、後続の処理動作によってこのファイルのオープン及びロックを防止する段階が含まれる。
【００６２】
そして、本機能は、ファイルのオープン及びロックをチェックするための判別（４０１）に進み、ファイルがオープン及びロックされていない場合、判別（４０１）の結果は、否定であり、本機能は、第２の判別（４０２）に進み、ファイルが、試行（４００）中に存在したかどうかチェックする。否定応答の場合、本機能は、ファイルが存在しないことを示すエラー（４０３）を返す。
【００６３】
肯定応答の場合、判別（４０４）は、試行（４００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかをチェックし、否定応答の場合、時間遅延（４４９）の後、新しい試行（４００）に取り掛かり、そうでない場合、本機能は、システムエラー（４０５）を返す。
【００６４】
判別（４０１）の結果が肯定の場合、本機能は、タスク（４０６）中、ファイルヘッダの状態パラメータにおけるファイルの利用可能状態を読み込む。
そして、本機能は、状態パラメータによるファイルの可用性に関する判別（４０７）に進む。
【００６５】
判別（４０７）の結果が肯定の場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（４０８）に進み、そして、ファイルが取得されていないことを示すエラー（４０９）を返す。
【００６６】
判別（４０７）の結果が、否定であり、利用不可状態に対応する場合、本機能は、タスク（４１０）中、ファイルヘッダにおける取得識別名を読み込む。
そして、本機能は、判別（４１１）を実施し、この識別名が、入力として提示された識別名と異なるかどうかチェックする。肯定応答の場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（４１２）に進み、そして、入力として提示された取得識別名が有効ではないことを示すエラー（４１３）を返す。
【００６７】
否定応答の場合、本機能は、ファイルヘッダの状態パラメータにおける取得識別名を削除するタスク（４１４）、次に、ファイルヘッダに利用可能状態を書き込むタスク（４１５）に進む。最終タスク（４１６）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う段階が含まれる。
【００６８】
本機能は、その完了（４５１）時、データファイル解放確認を出力として返す。
取得したデータファイルをデータ修正して解放する機能
図６は、取得したデータファイルをデータ修正して解放するために必要な一続きのタスクを示す。
【００６９】
本機能は、上記の使用名から算出されたファイル名、前回のデータファイル取得時返された取得識別名、及び修正可能なファイルコンテンツを入力（５５０）とする。
第１タスク（５００）には、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを要求し、ファイルのオープン及びロックを同時に試行し、これにより、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階が含まれる。
【００７０】
そして、本機能は、ファイルのオープン及びロックをチェックするための判別（５０１）に進み、ファイルがオープン及びロックされていない場合、判別（５０１）の結果は、否定であり、本機能は、第２の判別（５０２）に進み、ファイルが試行（５００）中に存在したかどうかチェックする。否定応答の場合、本機能は、ファイルが存在しないことを示すエラー（５０３）を返す。
【００７１】
肯定応答の場合、判別（５０４）は、試行（５００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかチェックし、そして、否定応答の場合、時間遅延（５４９）の後、新しい試行（５００）に取り掛かり、そうでない場合、本機能は、システムエラー（５０５）を返す。
【００７２】
判別（５０１）の結果が肯定の場合、本機能は、タスク（５０６）中、ファイルヘッダの状態パラメータにおけるファイルの利用可能状態を読み込む。
そして、本機能は、状態パラメータによるファイルの可用性に関する判別（５０７）に進む。
【００７３】
判別（５０７）の結果が肯定の場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（５０８）に進み、ファイルが取得されていないことを示すエラー（５０９）を返す。
【００７４】
判別（５０７）の結果が、否定であり、利用不可状態に対応する場合、本機能は、タスク（５１０）中、ファイルヘッダにおける取得識別名を読み込む。
そして、本機能は、判別（５１１）を実施し、この識別名が、入力として提示された識別名と異なるかどうかチェックする。肯定応答の場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（５１２）に進み、入力として提示された取得識別名が有効でないことを示すエラー（５１３）を返す。
【００７５】
否定応答の場合、本機能は、ファイルヘッダの状態パラメータにおける取得識別名を削除するタスク（５１４）、次に、ファイルヘッダに利用可能状態を書き込むタスク（５１５）、そして、修正可能なファイルコンテンツをファイル本体に挿入するためのファイル本体の処理に対応するタスク（５１６）に進む。この処理は、ファイルヘッダの状態パラメータに従って行われ、例えば、修正可能なファイルコンテンツの圧縮又は暗号化に対応する。そして、本機能は、ファイル本体を書き込むタスク（５１７）に進み、そして、最終タスク（５１８）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う段階が含まれる。
【００７６】
本機能は、その完了（５５１）時、データファイル解放及びファイルコンテンツ修正の確認を出力として返す。
取得したデータファイルをファイル削除して解放する機能
図７は、取得したデータファイルをファイル削除して解放するために必要な一続きのタスクを示す。
【００７７】
本機能は、上記の使用名から算出されたファイル名と、前回のデータファイル取得時返された取得識別名と、を入力（６５０）とする。
第１タスク（６００）は、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを要求し、ファイルのオープン及びロックを同時に試行し、これにより、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含む。
【００７８】
そして、本機能は、ファイルのオープン及びロックをチェックするための判別（６０１）に進み、ファイルがオープン及びロックされていない場合、判別（６０１）の結果は、否定であり、本機能は、第２の判別（６０２）に進み、ファイルが試行（６００）中に存在したかどうかチェックする。否定応答の場合、本機能は、ファイルが存在しないことを示すエラー（６０３）を返す。
【００７９】
肯定応答の場合、判別（６０４）において、試行（６００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかチェックし、否定応答の場合、時間遅延（６４９）の後、新しい試行（６００）に取り掛かり、そうでない場合、本機能は、システムエラー（６０５）を返す。
【００８０】
判別（６０１）の結果が肯定の場合、本機能は、タスク（６０６）中、ファイルヘッダの状態パラメータにおけるファイルの利用可能状態を読み込む。
そして、本機能は、状態パラメータによるファイルの可用性に関する判別（６０７）に進む。
【００８１】
判別（６０７）の結果が肯定の場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（６０８）に進み、そして、ファイルが取得されていないことを示すエラー（６０９）を返す。
【００８２】
判別（６０７）の結果が、否定であり、利用不可状態に対応する場合、本機能は、タスク（６１０）中、ファイルヘッダにおける取得識別名を読み込む。
そして、本機能は、判別（６１１）を実施し、この識別名が入力として提示された識別名と異なるかどうかチェックする。肯定応答の場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（６１２）に進み、入力として提示された取得識別名が有効でないことを示すエラー（６１３）を返す。
【００８３】
否定応答の場合、本機能は、ファイルヘッダの状態パラメータにおける取得識別名を削除するタスク（６１４）、そして、ファイルヘッダに利用可能状態を書き込むタスク（６１５）に進む。最終タスク（６１６）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ、ロック解除、及び削除を同時に行う段階が含まれる。
【００８４】
本機能は、その完了（６５１）時、データファイルの解放及びその削除の確認を出力として返す。
既存のデータファイルを取得せずにそのファイルを単に読み込む機能
図８は、既存のデータファイルを取得せずにそのファイルを単に読み込むために必要な一続きのタスクを示す。
【００８５】
本機能は、上記の使用名から算出されたファイル名を入力（７５０）とする。
第１タスク（７００）は、オペレーティングシステムのファイルシステム層において、ファイルのオープン及びロックを要求し、ファイルのオープン及びロックを同時に試行し、これにより、そのクローズ及びロック解除まで、後続の処理動作によるこのファイルのオープン及びロックを防止する段階を含む。
【００８６】
そして、本機能は、ファイルのオープン及びロックをチェックするための判別（７０１）に進み、ファイルがオープン及びロックされていない場合、判別（７０１）の結果は、否定であり、本機能は、第２の判別（７０２）に進み、ファイルが試行（７００）中に存在したかどうかチェックする。否定応答の場合、本機能は、ファイルが存在しないことを示すエラー（７０３）を返す。
【００８７】
肯定応答の場合、判別（７０４）では、試行（７００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかチェックし、否定応答の場合、時間遅延（７４９）の後、新しい試行（７００）に取り掛かり、そうでない場合、本機能は、システムエラー（７０５）を返す。
【００８８】
判別（７０１）の結果が肯定の場合、本機能は、タスク（７０６）中、ファイルヘッダの状態パラメータにおけるファイルの利用可能状態を読み込む。
そして、本機能は、状態パラメータによるファイルの可用性に関する判別（７０７）に進む。
【００８９】
判別（７０７）の結果が、否定であり、利用不可状態に対応する場合、本機能は、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行うタスク（７０８）に進む。
【００９０】
そして、本機能は、判別（７０９）を実施し、試行（７００）の回数がしきい値を超過しているかどうか、又はタイムアウト期間が過ぎているかどうかチェックし、そして、否定応答の場合、時間遅延（７４９）の後、新しい試行（７００）に取り掛かり、そうでない場合、本機能は、ファイルが現在の処理動作によって取得されたままであることを示すエラー（７１０）を返す。
【００９１】
判別（７０７）の結果が肯定の場合、本機能は、ファイル本体を読み込むタスク（７１１）、そして、修正可能なファイルコンテンツを抽出するためにファイル本体を処理するタスク（７１２）に進む。この処理は、ファイルヘッダの状態パラメータに従って行う。それは、例えば、修正可能なファイルコンテンツの解凍又は解読に対応する。最終タスク（７１３）には、オペレーティングシステムのファイルシステム層において、ファイルのクローズ及びロック解除を同時に行う段階が含まれる。
【００９２】
本機能は、その完了（７５１）時、データファイルの単なる読み出しの確認及び修正可能なファイルコンテンツを出力として返す。
他の機能、特に以下のものは、ツリー管理を容易にする。
【００９３】
ファイルの利用可能状態を含むデータファイルのヘッダの状態パラメータの読み込み
処理動作によって解放されていないデータファイルの強制解放
ツリーの部分集合毎でのツリーに含まれるデータファイルのリスト化
クライアント・サーバ形態
図９は、特定及び好適な用途の事例に関し、クライアント・サーバ形態に対応するネットワークを介した本発明によるファイル管理システムを用いるために必要な一続きのタスクを示す。
【００９４】
この場合、ファイル管理システムは、サーバソフトウェア（８０１）が含まれるサーバコンピュータ（８００）にインストールされる。サーバコンピュータは、各々クライアントソフトウェア（８０５乃至８０７）を含む複数のクライアントコンピュータ（８０２乃至８０４）によってアクセス可能である。クライアントソフトウェアとサーバソフトウェアとの間の交信には、既知のタイプのネットワーク・トランスポート・プロトコル、例えば、ＨＴＴＰ、又は好適には、ＨＴＴＰＳタイプのセキュリティ保護プロトコルを使用する。
【００９５】
この場合、本発明は、「ファイル取得」又は「ファイル解放」タイプの命令によって、本発明によるファイル管理システムの機能を呼び出すためのアプリケーションプロトコル（８０８）を用いる。ファイルは、サーバコンピュータの階層において、幾つかの部分集合（８０９乃至８１１）に分散し、各部分集合は、「表」と呼ばれる本発明によるツリーに対応する。データファイルの使用名は、プロトコルにおいて「キー」によって指定される。
【００９６】
第１タスク（８１２）は、クライアントソフトウェアによってクライアントコンピュータの１つにおいて実行される。それには、表及びキーに関して、取得、解放、又は単なる読み出し機能を呼び出す段階が含まれる。
【００９７】
第２タスク（８１３）は、サーバソフトウェアによってサーバコンピュータ上で実行される。それには、クライアントソフトウェアによって要求される機能を実行する段階が含まれる。
【００９８】
第３タスク（８１４）は、サーバソフトウェアによってサーバコンピュータ上で実行される。それには、要求された機能の結果をクライアントソフトウェアに返す段階が含まれる。オプションとして、システムには、データの記憶量及び負荷を分散するため幾つかのサーバが含まれる。この場合、クライアントソフトウェア（８０５乃至８０７）には、表及びキーによってサーバを選択するための規則が含まれる。
【００９９】
サーバソフトウェア（８０１）には、更に、実行した動作のログを記録する機能を含むが、これによって、バックアップコンピュータにツリーを完全にコピーせずに、バックアップコンピュータにサーバコンピュータのツリーを徐々に再構築することができる。
【図１】
2010518501.tif 000003
【図２】
2010518501.tif 000004
【図３】
2010518501.tif 000005
【図４】
2010518501.tif 000006
【図５】
2010518501.tif 000007
2010518501.tif 000008
【図６】
2010518501.tif 000009
【図７】
2010518501.tif 000010
2010518501.tif 000011
【図８】
2010518501.tif 000012
【図９】
2010518501.tif 000013
【国際調査報告】
2010518501.tif 000014
2010518501.tif 000015
2010518501.tif 000016
2010518501.tif 000017
2010518501.tif 000018
2010518501.tif 000019
2010518501.tif 000020
2010518501.tif 000021
2010518501.tif 000022
2010518501.tif 000023
2010518501.tif 000024
2010518501.tif 000025
2010518501.tif 000026
2010518501.tif 000027