(57)【要約】【課題】  履歴上のファイル名およびロケーションをインデックス付きにすることによってファイル・サービスにおけるファイル・サーチを支援するためのシステム、方法、および、コンピュータを利用した方法を提供する。【解決手段】ファイル・システム内のファイルに対応する第１の名前を第２の名前に変更する要求を受け取ったことに応答して、ファイル・システム・マネージャが、第２の名前を第１の名前およびファイル・システム・データ構造内のファイルに関連付ける。ファイルを求める且つ第１の名前を含む要求を受けるとき、ファイル・システム・マネージャは、第１の名前に基づいてファイル・システムをそのファイルに関しサーチする。第１の名前に基づいたサーチが成功しなかったということを決定すると、ファイル・システム・マネージャは、第２の名前に基づいてファイル・システム・データ構造をファイルに関しサーチする。第２の名前がファイル・システム・データ構造内で見つかると、ファイル・システム・マネージャは、その要求を満たすためにファイルを戻す。【選択図】  図１
2008262561.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してファイルを見つけるための方法であって、
ファイル・システム内のファイルに対応する第１の名前を第２の名前に変更する要求を受け取ったことに応答して、前記第２の名前を前記第１の名前およびファイル・システム・データ構造内の前記ファイルに関連付けるステップと、
前記ファイルを求める要求であって前記第１の名前を含む要求を受け取ったことに応答して、前記第１の名前に基づいて前記ファイル・システムを前記ファイルに関しサーチするステップと、
前記サーチするステップが成功しなかったという決定に応答して、前記第２の名前に基づいて前記ファイル・システム・データ構造を前記ファイルに関しサーチするステップと、
前記ファイル・システム・データ構造において前記第２の名前を見つけたことに応答して、前記要求を満たすために前記ファイルを戻すステップと、
を含む、方法。
【請求項２】
前記ファイルを前記ファイル・システム内の第１のロケーションから第２のロケーションに置換する要求を受け取ったことに応答して、前記第２のロケーションを前記ファイル・システム・データ構造内の前記ファイルに関連付けるステップを更に含む、請求項１に記載の方法。
【請求項３】
前記ファイル・システム・データ構造を前記ファイルに関しサーチする前記ステップは別の名前フィールドのもとに前記ファイル・システム・データ構造をサーチするステップを更に含む、請求項１に記載の方法。
【請求項４】
前記第２の名前に基づいて前記ファイルに関し前記ファイル・システム・データ構造をサーチする前記ステップが成功しなかったという決定に応答して、ネットワークを介してリモート・サーバに前記要求を送るステップを更に含む、請求項１に記載の方法。
【請求項５】
ファイル保存要求を受け取ったことに応答して、前記ファイル・システムに新しいファイルを保存し、前記新しいファイに関連付けられた新しいレコードを前記ファイル・システム・データ構造内に作成するステップを更に含む、請求項１に記載の方法。
【請求項６】
ネットワークを介してファイルを見つけるためのシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続されたシステム相互接続体と、
前記システム相互接続体に接続され、前記少なくとも１つのプロセッサが実行し得る命令を含むコンピュータ・プログラム・コードを具体化するコンピュータ使用可能媒体と、  を含み、
前記コンピュータ・プログラム・コードは、
ファイル・システム内のファイルに対応する第１の名前を第２の名前に変更する要求を受け取ったことに応答して、前記第２の名前を前記第１の名前およびファイル・システム・データ構造内の前記ファイルに関連付けるように構成された命令と、
前記ファイルを求める要求であって前記第１の名前を含む要求を受け取ったことに応答して、前記第１の名前に基づいて前記ファイル・システムを前記ファイルに関しサーチするように構成された命令と、
前記サーチが成功しなかったという決定に応答して、前記第２の名前に基づいて前記ファイル・システム・データ構造を前記ファイルに関しサーチするように構成された命令と、
前記ファイル・システム・データ構造において前記第２の名前を見つけたことに応答して、前記要求を満たすために前記ファイルを戻すように構成された命令と、
を含む、システム。
【請求項７】
前記コンピュータ・プログラム・コードは、更に、前記ファイルを前記ファイル・システム内の第１のロケーションから第２のロケーションに置換する要求を受け取ったことに応答して、前記第２のロケーションを前記ファイル・システム・データ構造内の前記ファイルに関連付けるように構成された命令を更に含む、請求項６に記載のシステム。
【請求項８】
前記第２の名前に基づいて前記ファイル・システム・データ構造を前記ファイルに関しサーチするように構成された前記命令は、更に、別の名前フィールドのもとに前記ファイル・システム・データ構造をサーチする、請求項６に記載のシステム。
【請求項９】
前記コンピュータ・プログラム・コードは、前記第２の名前に基づいて前記ファイルに関し前記ファイル・システム・データ構造をサーチする操作が成功しなかったという決定に応答して、ネットワークを介してリモート・サーバに前記要求を送るように構成された命令を更に含む、請求項６に記載のシステム。
【請求項１０】
前記コンピュータ・プログラム・コードは、ファイル保存要求を受け取ったことに応答して、前記ファイル・システムに新しいファイルを保存し、前記新しいファイに関連付けられた新しいレコードを前記ファイル・システム・データ構造内に作成するように構成された命令を更に含む、請求項６に記載のシステム。
【請求項１１】
ネットワークを介してファイルを見つけるためのプログラムであって、前記プログラムは、コンピュータに、
ファイル・システム内のファイルに対応する第１の名前を第２の名前に変更する要求を受け取ったことに応答して、前記第２の名前を前記第１の名前およびファイル・システム・データ構造内の前記ファイルに関連付けるステップと、
前記ファイルを求める要求であって前記第１の名前を含む要求を受け取ったことに応答して、前記第１の名前に基づいて前記ファイル・システムを前記ファイルに関しサーチするステップと、
前記サーチが成功しなかったという決定に応答して、前記第２の名前に基づいて前記ファイル・システム・データ構造を前記ファイルに関しサーチするステップと、
前記ファイル・システム・データ構造において前記第２の名前を見つけたことに応答して、前記要求を満たすために前記ファイルを戻すステップと、
を実行させる、プログラム。
【請求項１２】
前記コンピュータ・プログラム・コードは、前記ファイルを前記ファイル・システム内の第１のロケーションから第２のロケーションに置換する要求を受け取ったことに応答して、前記第２のロケーションを前記ファイル・システム・データ構造内の前記ファイルに関連付けるステップを含む、請求項１１に記載のプログラム。
【請求項１３】
前記第２の名前に基づいて前記ファイル・システム・データ構造を前記ファイルに関しサーチするステップは、別の名前フィールドのもとに前記ファイル・システム・データ構造をサーチするステップを更に含む、請求項１１に記載のプログラム。
【請求項１４】
前記コンピュータ・プログラム・コードは、前記第２の名前に基づいて前記ファイルに関し前記ファイル・システム・データ構造をサーチするが成功しなかったという決定に応答して、ネットワークを介してリモート・サーバに前記要求を送るステップを更に含む、請求項１１に記載のプログラム。
【請求項１５】
前記コンピュータ・プログラム・コードは、ファイル保存要求を受け取ったことに応答して、前記ファイル・システムに新しいファイルを保存し、前記新しいファイに関連付けられた新しいレコードを前記ファイル・システム・データ構造内に作成するステップを更に含む、請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはデータ処理システムの分野に関し、特に、データ処理システムにいてデータを格納する分野に関するものである。更に具体的には、本発明は、データ処理システムに格納されたデータを編成するためのシステムおよび方法に関するものである。
【背景技術】
【０００２】
現代のコンピュータ・システムでは、ファイル・システムは、要求されたファイルをユーザが効率的に見つけてアクセスすることを可能にするように、コンピュータ・ファイルを格納および編成する。ファイル・システムは、ローカル・アクセスを行なうために或いはリモート・ファイル・サーバに格納されたデータへのアクセスを行なうために、ハードディスク・ドライブのような記憶装置を利用し得る。ファイル・システムは、データの格納、階層的編成、操作、ナビゲーション、アクセス、および検索のために具現化される抽象データ・タイプのセットとしても特徴付けることができる。
【０００３】
最もよく知られているファイル・システムは、「セクタ」と呼ばれる固定サイズのブロックのアレイにアクセスを行なう基本的なデータ記憶装置を利用する。ファイル・システムのソフトウェアは、これらのセクタを編成してファイルおよびディレクトリを形成する責任を負っている。ファイル・システムのソフトウェアは、更に、どのセクタが占有されているか、またはどのセクタが未使用であるかということの追跡も行なう。
【０００４】
しかし、ファイル・システムは記憶装置を全く利用する必要がない。データを格納するにしても、或いはデータを（例えば、ネットワーク接続から）動的に生成するにしても、任意のデータを編成するために及びそのデータへのアクセスを表わすために、ファイル・システムを利用することが可能である。ファイル・システムが基本的な記憶装置を有しても或いは有さなくても、一般に、ファイル・システムは、ファイル名をファイル割振りテーブル（例えば、ＭＳ−ＤＯＳファイル・システムにおけるＦＡＴ，或いはＵｎｉｘのようなファイル・システムにおけるｉノード）に対するインデックスに結び付けることによってファイル名をファイルに関連付けるディレクトリを有する。ディレクトリの構造はフラット構造であってもよく、或いは、ディレクトリがサブディレクトリを含み得る階層構造も可能である。或るファイル・システムでは、ファイル名が、ファイル名拡張子およびバージョン番号を用いて構造化される。別のファイル・システムでは、ファイル名は単純なストリングであり、ファイルごとのメタデータが他の場所に格納される。
【０００５】
他の記帳情報も、ファイル・システム内の各ファイルに関連付けられる。ファイルに含まれたデータの長さを、そのファイルに対して割り振られたブロックの数または正確なバイト・カウントとして格納することが可能である。ファイルが最後に修正された時間を、ファイルのタイムスタンプとして格納することも可能である。或るファイル・システムは、ファイル作成時間、ファイルが最後にアクセスされた時間、およびファイルのメタデータが変更された時間も格納する。別の情報が、ファイルの装置タイプ（例えば、ブロック、文字、ソケット、サブディレクトリ等）、ファイルの所有者のユーザＩＤおよびグループＩＤ、並びにファイルのアクセス権設定（例えば、ファイルが読取り専用であるか、実行可能であるか等）を含むことも可能である。
【０００６】
ファイル・システムは、ユーザがコンピュータ・システムまたはネットワーク内でファイルを保存すること、検出すること、および／またはアクセスすることを可能にするが、ディレクトリ構造の編成および個々のファイルの名前が変更されてもよい。単一のユーザしかコンピュータ内の特定のディレクトリ構造にアクセスしない場合、ディレクトリ構造およびファイル名の変更は、通常、管理し得るものである。しかし、２つ以上のユーザがディレクトリ構造にアクセスを行なう場合、ディレクトリ構造および／またはファイル名が特定のユーザによって変更されてしまった後、他のユーザがそのファイルを見つけることは難しいであろう。
【０００７】
従って、データ処理システムにおけるファイルへのアクセスの便宜を図るために、ディレクトリ構造に対して行なわれた変更を効率的に追跡するシステムおよび方法を求める要求が存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、履歴上のファイル名およびロケーションをインデックス付きにすることによってファイル・サービスにおけるファイル・サーチを支援するためのシステム、方法、および、コンピュータを利用した方法を提供することにある。
【課題を解決するための手段】
【０００９】
ファイル・システム内のファイルに対応する第１の名前を第２の名前に変更する要求を受け取ったことに応答して、ファイル・システム・マネージャが、第２の名前を第１の名前およびファイル・システム・データ構造内のファイルに関連付ける。ファイルを求める且つ第１の名前を含む要求を受けるとき、ファイル・システム・マネージャは、第１の名前に基づいてファイル・システムをそのファイルに関しサーチする。第１の名前に基づいたサーチが成功しなかったということを決定すると、ファイル・システム・マネージャは、第２の名前に基づいてファイル・システム・データ構造をファイルに関しサーチする。第２の名前がファイル・システム・データ構造内で見つかると、ファイル・システム・マネージャは、その要求を満たすために、ファイル・システム・データ構造においてリストされた第２の名前を利用してファイルを戻す。
【００１０】
本発明の上記の並びに更なる目的、特徴、および利点は、下記の詳細に記載された説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００１１】
図面、特に、図１を参照すると、本発明の実施例を具現化し得る例示的なネットワーク１０のブロック図が示される。図示のように、ネットワーク１０は、クライアント１４ａ〜１４ｎの集合体、インターネット１２、およびサーバ１６を含む。クライアント１４ａ〜１４ｎはインターネット１２を介してサーバ１６に接続される。インターネット１２はクライアント１４ａ〜１４ｎをサーバ１６に接続するために利用されるが、イーサネット（商標）、IEEE 802.11x、或いは他の任意の通信プロトコルを利用したローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）も利用可能であるということは当業者には明らかであろう。
【００１２】
本発明の実施例では、サーバ１６が、大容量記憶装置として作用するハードディスク・ドライブ２０に接続される。ハードディスク・ドライブ２０が、単一のハードディスク・ドライブ、ＲＡＩＤ（redundant array of independent array）、または他の任意の記憶装置構成によって具現化し得るものであるということも当業者には明らかであろう。ハードディスク・ドライブ２０には、ファイル・システム２２およびファイル・システム・データ構造２４が格納される。ファイル・システム２２は、サーバ１６によるアクセスおよびインターネット１２を介したクライアント１４ａ〜１４ｎによるアクセスのためのファイルを編成し、格納する。ファイル・システム・データ構造２４は、ファイル・システム２２内に格納されたファイルに関連付けられているレコードの集合体を含む。各レコードは、図４に関連して更に詳細に説明するように、ファイル・サーチを支援するために履歴上のファイル名および格納ロケーションを含む。ファイル・システム２２が、ファイル割当テーブル（FileAllocation Table : ＦＡＴ）、新技術ファイル・システム（New Technology File System : ＮＴＦＳ）、または高機能ファイル・システム（HighPerformance File System : ＨＰＦＳ）を含むがそれに限定されない任意のファイル・フォーマット利用し得るということも当業者には明らかであろう。クライアント１４ａ〜１４ｎおよびサーバ１６は、図２に関連して更に詳細に説明される。例示的なネットワーク１０がルータ、ファイアウォール等のような他のコンポーネントを含み得るということも当業者には明らかあろうが、これらは、本発明の説明に密接な関係がなく、本明細書ではこれ以上説明されないであろう。
【００１３】
本発明がクライアント（例えば、 クライアント１４ａ〜１４ｎ）に対するファイル・サービスを容易にするためにウェブサーバ（例えば、サーバ１６）において具現化されてもよいということも当業者には明らかであろう。例えば、クライアント（例えば、クライアント１４ａ）がウェブサーバから第１の名前を用いてファイルを要求する。そのファイルが第１名称によるサーチを通して見つからなかった場合、ウェブサーバは、そのファイルがリネームされたか、削除されたか、或いは再配置されたかを決定するためにファイル・システム・データ構造２４のサーチを実施することができる。そのファイルが削除されたか、リネームされたか、または再配置された場合、ウェブサーバは、第１の名前を利用したサーチの不成功の後に「ファイル未検出」（例えば、エラー）をクライアントに返答する代わりに、その要求されたファイルを新しいロケーションから単に検索する（または、エラーメッセージを返す）ことも可能である。
【００１４】
図２は、図１に示されたようなクライアント１４ａ〜１４ｎおよびサーバ１６を具現化するために利用し得る例示的なデータ処理システム１００を示すブロック図である。図示のように、データ処理システム１００は、システムバス１０４を介してシステム・メモリ１０６に接続されるプロセッサ１０２〜１０２ｎの集合体を含む。システム・メモリ１０６は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）・モジュールまたは他の任意のタイプのＲＡＭモジュールを用いて具現化することが可能である。メザニン・バス１０８がシステム・バス１０４を周辺バス１１０に接続する。周辺バス１１０には大容量記憶装置用のハードディスク・ドライブ１１２および周辺装置１１４ａ〜１１４ｎの集合体が接続される。周辺装置１１４ａ〜１１４ｎの集合体は、光学的ドライブ、他のハードディスク・ドライブ、プリンタ、入力装置等を含み得るがそれらに限定されない。ハードディスク・ドライブ１１２は図１において具現化されたハードディスク・ドライブ２０に利用し得るものであるということも当業者には明らかであろう。
【００１５】
データ処理システム１００が、図２には詳細に示されていない多くの更なるコンポーネントを含み得るということも当業者には明らかであろう。そのような更なるコンポーネントは本発明の理解にとって必要ではないので、図２には示されず、これ以上説明されない。しかし、本発明によって提供される環境変数およびプロセス・オプション起動の機能促進のために、データ処理システム１００に対する機能強化はいずれのシステム・アーキテクチャのデータ処理システムにも適用可能であり、図２に示された汎用マルチプロセッサ・アーキテクチャ或いは対称マルチプロセッサ（ＳＭＰ）アーキテクチャに全くに限定されないといことも明らかであろう。
【００１６】
図３は、本発明の好適な実施例に従って、データ処理システム１００のシステム・メモリ１０６の例示的な内容を示すブロック図である。図示のように、システム・メモリ１０６はオペレーティング・システム２０２を含み、更に、アプリケーション・プログラム２０８のような資源への透明なユーザ・アクセスを提供するためのシェル２０４（それはＵＮＩＸ（商標）において呼び出される）を含む。一般に、シェル２０４は、インタープリタ、およびユーザとオペレーティング・システムとの間のインターフェースを提供するプログラムである。更に詳しく云えば、シェル２０４は、コマンド・ライン・ユーザ・インターフェースまたはファイルに入力されるコマンドを実行する。従って、Windows（商標）ではコマンド・プロセッサとも呼ばれるシェル２０４は、一般に、最高レベルのオペレーティング・システム・ソフトウェア階層であり、コマンド・インタープリタとして働く。シェル２０４は、システム・プロンプトを提供し、キーボード、マウス、または他のユーザ入力媒体によって入力されたコマンドを解釈し、処理のためにその解釈されたコマンドをオペレーティング・システムの適切な低いレベルのもの（例えば、カーネル２０６）に送る。シェル２０４はテキストベースの回線指向のユーザ・インターフェースであるが、本発明はグラフィカル・インターフェース、音声インターフェース、ジェスチャ・インターフェース等のような他のユーザ・インターフェース・モードも同様に支援するであろうということに留意されたい。
【００１７】
図示のように、オペレーティング・システム２０２は、オペレーティング・システム２０２およびアプリケーション・プログラム２０８のための低レベルの機能（メモリ管理、プロセスおよびタスク管理、ディスク管理、並びに、マウスおよびキーボード管理を含む）を含むカーネル２０６も含む。アプリケーション・プログラム２０８は、インターネット１２（図１）、ワールド・プロセッサ、スプレッド・シート、および他のアプリケーション・プログラムへのアクセスのために利用されるブラウザを含み得る。更に、図３に示されるように、システム・メモリ１０６は、ファイル・システム２２（図１）内に格納されたファイルへのアクセスを制御し且つファイル・システム・データ構造２４（図１）を更新するファイル・システム・マネージャ２１２を含む。ファイル・システム・マネージャ２１２がファイル・システム２２の一部として、或いは外部アプリケーションまたはカーネル・モジュールとして具現化され得るということも当業者には明らかであろう。
【００１８】
図４は、図１に示されたファイル・システム・データ構造２４を示す更に詳細なブロック図である。ファイル・システム・データ構造２４は、ファイル・システム２１０内に保存されたファイルに対応するレコード３０６ａ〜３０６ｎの集合体を含む。図４に示されるように、レコード３０６ａ〜３０６ｎの各々は多数のフィールドを更に含む。例えば、レコード３０６ａは、現ファイル名３００ａ、現ロケーション３００ｂ、前ファイル名１ ３０２ａ、前ロケーション１３０２ｂ、前ファイル名ｎ ３０４ａ、および前ロケーションｎ ３０４ｂのフィールドを含む。ファイル・システム・マネージャ２１２（図３）がファイル・システム２２（図１）内にあるファイルの名前またはロケーションを修正するたびに、ファイル・システム・マネージャ２１２はその修正されたファイルに対応するレコードにおいて少なくとも１つのフィールドを追加または修正する。更に、ファイル・システム・データ構造２４は、レコードに関連したファイルが削除または破壊されたかどうか示すファイル破壊フィールド３０８を含む。ファイルが削除された場合（例えば、そのファイルのすべてのコピーが、代替の名前および／またはロケーションを有するファイルである場合）、ファイル破壊フィールド３０８は「イエス」を示すであろう。
【００１９】
図５および図６に関連して更に詳細に説明されるように、ファイル・システム・マネージャ２１２がファイル・システム２２内に新しいファイルを保存する時、ファイル・システム・マネージャ２１２はファイル・システム・データ構造２４内に新しいレコード（例えば、レコード３０６ａ〜３０６ｎ）を作成し、その新しいレコードを新しいファイルに関連付ける。例えば、ファイル・システム・マネージャ２１２は、その新しいファイルのファイル名を現ファイル名フィールド３００ａに挿入し、新しいファイルのロケーションを現ロケーション・フィールド３００ｂに挿入する。
【００２０】
ファイル・システム・マネージャ２１２がファイルの名前を変更する要求を受け取る場合、ファイル・システム・マネージャ２１２はファイル・システム２２内のファイルをリネームし、そのファイルのオリジナル名を前ファイル名フィールド（例えば、前ファイル名１フィールド３０２ａ）に挿入する。しかる後、ファイル・システム・マネージャ２１２は、そのファイルの新しい名前を現ファイル名フィールド３００ａに挿入する。ファイルがリネームされるたびに、前の名前がファイル・システム・データ構造２４内のレコードにおける前ファイル名フィールドに挿入される。必要に応じて、追加の前ファイル名フィールドを各レコードに加えることが可能である。
【００２１】
ファイル・システム・マネージャ２１２がファイルのロケーションを変更する要求を受け取る場合、ファイル・システム・マネージャ２１２はファイル・システム２２内のファイルを再配置し、オリジナル・ロケーションのパスを前ロケーション・フィールド（例えば、前ロケーション１フィールド３０２ｂ）に挿入する。しかる後、ファイル・システム・マネージャ２１２は、そのファイルの新しいパスを現ロケーション・フィールド３００ｂに挿入する。ファイルが再配置されるたびに、前のロケーションがファイル・システム・データ構造２４内のレコードにおける前ロケーション・フィールドに挿入される。必要に応じて、追加の前ロケーション・フィールドを各レコードに加えることも可能である。各レコード３０６ａ〜３０６ｎにおける多数のエントリが関連付けられるということは、ファイル・システム・マネージャ２１２がファイルの現在及び前の名前すべてのレコードを保持し得るので、ファイル・サーチを容易なものにする。
【００２２】
本発明は、前のファイル名／ロケーションをサーチするとき、フィールドのサーチを容易にするためにレコード内の前ファイル名／前ロケーション・フィールドの順序付けも可能にする。例えば、最近のファイル名／ロケーションが望まれる場合、最近のファイル名／ロケーションから始まるフィールドがソートされる。
【００２３】
図５および図６は、本発明の実施例に従って履歴上のファイル名およびロケーションをインデックス付きにすることによってファイル・サーチおよびファイル・サービスを支援するための例示的な方法を示す高レベルの論理的フローチャートである。プロセスはステップ４００で始まり、ステップ４０２に進む。ステップ４０２は、ファイル・システム２２（図１）に新しいファイルを保存する要求がアプリケーション・プログラム２０８からのアプリケーションから受け取られたかどうかをファイル・システム・マネージャ２１２（図３）が決定することを示す。ファイル・システム・マネージャ２１２がファイル・システム２２に新しいファイルを保存するリクエストを受け取ったとき、プロセスはステップ４０４に続く。ステップ４０４は、ファイル・システム・マネージャ２１２がファイル・システム２２内に新しいファイルを保存することを示す。プロセスはステップ４０６に進み、ステップ４０６は、ファイル・システム・マネージャ２１２がファイル・システム・データ構造２４（図１）内に新しいレコード（例えば、レコード３０６ａ〜３０６ｎ）を作成し、その新しいレコードを新しいファイルに関連付けることを示す。プロセスはステップ４０８に進む。プロセス４０８は、ファイル・システム・マネージャ２１２がその新たに作成されたレコードにおける現ファイル名フィールドおよび現ロケーション・フィールドにファイル名およびロケーションを挿入する。プロセスはステップ４１２に続く。ステップ４１２は、ファイル名によってファイル・システム２２をファイルに関しサーチする要求が受け取られたかどうかをファイル・システム・マネージャ２１２が判断することを示す。
【００２４】
ステップ４０２に戻ると、ファイル・システム・マネージャ２１２がファイル・システム２２に新しいファイルを保存する要求を受け取らなかった場合、プロセスはステップ４１２に続く。ステップ４１２は、ファイル名によってファイル・システム２２をサーチする要求が受け取られたかどうかをファイル・システム・マネージャ２１２が決定することを示す。ファイル・システム２２をサーチする要求が受け取られた場合、ファイル・システム・マネージャ２１２は、ステップ４２８に示されるように、ファイル・システム２２をサーチして、その要求されたファイルが見つかったかどうか決定する。要求されたファイルが見つかった場合、プロセスはステップ４４０に続く。ステップ４４０は、ファイル・システム・マネージャ２１２がファイル要求を満たすためにそのファイルを送ることを示す。しかる後、プロセスはステップ４１０に続く。プロセス４１０は、プロセスが終了するべきかどうかをファイル・システム・マネージャ２１２が決定することを示す。
【００２５】
ステップ４２８に戻ると、ファイルが見つからなかった場合、プロセスはステップ４３０に続く。ステップ４３０は、ファイル・システム・マネージャ２１２が前ファイル名のフィールド（例えば、前ファイル名１フィールド３０２ａ、前ファイル名ｎフィールド３０２ｎ等）を介してファイル・システム・データ構造２４をサーチすることを示す。前述のように、ファイル・システム・マネージャ２１２は、新しいファイル名および／または新しいロケーションの情報でもってファイル・システム・データ構造２４内のレコードを、そのレコードに関連するファイルがリネームおよび／または移動させられるたびに、更新する。前の名前／ロケーションが、そのレコードの前ファイル名フィールド／前ロケーション・フィールドに挿入される。ファイルがファイル・システム２２の初期サーチによって見つからなかったとき、ファイル・システム・マネージャ２１２は前ファイル名フィールドを調べることによってファイル・システム・データ構造２４におけるレコードをサーチするであろう。プロセスはステップ４３２に続く。ステップ４３２は、要求されたファイルが見つかったかどうかをファイル・システム・マネー２１２が検出することを示す。要求されたファイルが見つかった場合、プロセスはステップ４４０に続く。本発明が、要求されたファイル名に関してファイル・システム２２およびファイル・システム・データ構造２４の両方を同時にサーチすることを更に含み、ファイル・システム２２およびファイル・システム・データ構造２４のサーチが逐次的であることを必要としない、ということは当業者には明らかであろう。
【００２６】
ステップ４３２に戻ると、要求されたファイルが見つからなかった場合、プロセスは、ステップ４３４に続く。ステップ４３４は、インターネット１２に接続されたサーバまたはリモート・コンピュータのファイル・システムを利用して具現化されたサーチ・エンジンを含むがそれに限定されないリモート・サーバに、サーチ要求が送出されるべきかどうかをファイル・システム・マネージャ２１２が決定する。リモート・サーバにサーチ要求が送られるべき場合、ステップ４３６に示されるように、ファイル・システム・マネージャ２１２はサーチ要求を送出する。プロセスはステップ４３７に続く。ステップ４３７は、その要求されたファイルがリモート・サーバのサーチによって見つかったかどうかをファイル・システム・マネージャ２１２が決定することを示す。ファイルが見つかった場合、プロセスはステップ４４０に続く。ファイルが見つからなかった場合、プロセスはステップ４３８に続く。
【００２７】
ステップ４３４に戻ると、要求がリモート・コンピュータに送られるべきでないということをファイル・システム・マネージャ２１２が決定する場合、ファイルが依然としてリモート・コンピュータにおいて見つからなければ、プロセスはステップ４３８に続く。ステップ４３８は、ファイル・システム・マネージャ２１２が「ファイル未検出」メッセージを要求元のアプリケーションに返送することを示す。しかる後、プロセスはステップ４１０に続く。
【００２８】
ステップ４１２に戻ると、ファイル・システム・マネージャ２１２がファイル名によってファイル・システム２２を１つのファイルに関しサーチする要求を受け取らなかった場合、プロセスはステップ４１４に続く。ステップ４１４は、ファイル・システム２２内の既存のファイルをリネームする要求がアプリケーションから受け取られたかどうかをファイル・システム・マネージャ２１２が決定することを示す。既存のファイルをリネームする要求がアプリケーションから受け取られた場合、プロセスはステップ４１６に続く。プロセス４１６は、ファイル・システム・マネージャ２１２がファイルの古い名前を前ファイル名フィールド（例えば、前ファイル名１フィールド３０２ａ）にコピーすることを示す。プロセスはステップ４１８に続く。ステップ４１８は、ファイル・システム・マネージャ２１２がファイルの新しい名前を現ファイル名フィールド（例えば、現ファイル名３００ａ）に挿入することを示す。プロセスはステップ４１０に進む。
【００２９】
ステップ４１４に戻ると、ファイル・システム・マネージャ２１２がファイル・システム２１０内の既存のファイルをリネームする要求を受け取っていない場合、プロセスはステップ４２０に続く。ステップ４２０は、ファイル・システム２１０内の既存のファイルを再配置する要求をアプリケーションから受け取ったかどうかをファイル・システム・マネージャ２１２が決定することを示す。ファイル・システム２１０内の既存のファイルを再配置するためのアプリケーションからの要求をファイル・システム・マネージャ４１２が受け取った場合、プロセスはステップ４２２に続く。ステップ４２２は、ファイル・システム・マネージャ２１２が前ロケーション・フィールド（例えば、前ロケーション１  ３０２ｂ）にそのファイルの古いロケーションを挿入することを示す。プロセスはステップ４２４に続く。プロセス４２４は、ファイル・システム・マネージャ２１２が現ロケーション・フィールド（例えば、現ロケーション・フィールド３００ｂ）にそのファイルの新しいロケーションを挿入することを示す。プロセスはステップ４１０に続く。
【００３０】
プロセス４２０において、ファイル・システム・マネージャ２１２が、ファイル・システム２１０内の既存のファイルを再配置する要求を受け取っていない場合、プロセスはステップ４２６に続く。プロセス４２６は、ファイル・システム・マネージャ４１２が他の処理を行なうことを示す。そのプロセスはステップ４１０に続く。プロセス４１０は、プロセスが終了するかどうかをファイル・システム・マネージャ２１２が決定することを示す。プロセスが終了する場合、プロセスは、そのプロセスの終了を示すステップ４１１に進む。プロセスが続く場合、プロセスはステップ４０２に戻る。
【００３１】
上述のように、本発明は、履歴上のファイル名およびロケーションにインデックス付きにすることによりファイル・サービス内のファイル・サーチを支援するためのシステム、方法、またコンピュータを利用する方法を含む。ファイル・システム・マネージャは、ファイル・システム内のファイルに対応する第１の名前を第２の名前に変更する要求を受け取ったことに応答して、第２の名前を第１の名前およびファイル・システム・データ構造内のファイルに関連付ける。ファイル・システム・マネージャは、そのファイルを求める要求であって第１の名前を含む要求を受け取る場合、第１の名前に基づいてファイル・システムをそのファイルに関してサーチする。第１の名前に基づいたサーチが成功しなかったことが決定されるとき、ファイル・システム・マネージャは、第２の名前に基づいてファイル・システム・データ構造をそのファイルに関してサーチする。第２の名前がファイル・システム・データ構造内で見つかったとき、ファイル・システム・マネージャは、要求を満たすために、ファイル・システム・データ構造においてリストされる第２の名前を利用してファイルを戻す。
【００３２】
本発明の少なくとも幾つかの実施態様はプログラム製品を含むコンピュータ使用可能媒体において代替的に具現化することが可能である、ということは明らかであろう。本発明における機能を定義するプログラムは、書込み不能記憶媒体（例えば、ＣＤ−ＲＯＭ）、書込み可能記憶媒体（例えば、ハードディスク・ドライブ、読取り／書込みＣＤ−ＲＯＭ、光学的媒体）、ランダム・アクセス・メモリ（ＲＡＭ）のような、しかしそれに限定されないシステム・メモリ、並びに、イーサネット（商標）、インターネット、ワイヤレス・ネットワーク、および同様のネットワークを含むコンピュータ／電話ネットワークのような通信媒体、を含むがそれらに限定されない種々の信号保持媒体を介してデータ記憶システム或いはコンピュータ・システムに配布することが可能である。従って、そのような信号保持媒体は、本発明における方法機能に関するコンピュータ可読命令が搬送または符号化されるとき、本発明の別の実施例を表わすということも当然である。更に、本発明は、ハードウェア、ソフトウェア、或いは、本明細書で開示されたようなソフトウェアおよびハードウェアの組合せまたはそれらの均等物の形をした手段を有するシステムによって具現化することが可能であるということも明らかであろう。
【００３３】
本発明を好適な実施例に関連して詳細に示し且つ説明したが、本発明がその趣旨および範囲から逸脱することなく形式および細部において様々な変更を施し得るものであるということも当業者には明らかであろう。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施例を具現化し得る例示的なネットワークを示すブロック図である。
【図２】本発明の実施例を具現化し得る例示的なデータ処理システムを示すブロック図である。
【図３】本発明の実施例に従ってシステム・メモリの例示的な内容を示すブロック図である。
【図４】本発明の実施例に従ってファイル・システム・データ構造の例示的な内容を示すブロック図である。
【図５】本発明の実施例に従って履歴上のファイル名およびロケーションをインデックス付きにすることによってファイル・サービスにおけるファイル・サーチを支援するための例示的な方法を示す高レベルの論理的フローチャートである。
【図６】図５の下側に続く論理的フローチャートである。
【図１】
2008262561.tif 000003
【図２】
2008262561.tif 000004
【図３】
2008262561.tif 000005
【図４】
2008262561.tif 000006
【図５】
2008262561.tif 000007
【図６】
2008262561.tif 000008