(57)【特許請求の範囲】
【請求項１】
少なくとも１つのファイルを含むアーカイブがオペレーティング・システム・ファイル・システムに関連して存在することを判定するステップと、
前記アーカイブにアクセスするための追加ファイル・システムを生成するステップと、
前記生成された追加ファイル・システムを前記オペレーティング・システム・ファイル・システムに組み込むステップと、
アプリケーションが前記少なくとも１つのファイルに前記生成された追加ファイル・システムを介してアクセスすることを可能にするステップとを有し、
前記追加ファイル・システムが仮想アーカイブ・ファイル・システムであり、前記可能にするステップが、
前記仮想アーカイブ・ファイル・システムをディレクトリにマウントするステップと、
前記アーカイブを前記アーカイブに対応するアーカイブ操作モジュールの解凍モジュールを介して解凍することにより前記少なくとも１つのファイルを生成するステップと、
前記少なくとも１つのファイルを前記アプリケーションに公開するために、前記少なくとも１つのファイルを前記ディレクトリに保存するステップと、
前記少なくとも１つのファイルを前記仮想アーカイブ・ファイル・システムから提供される少なくとも１つのインターフェイスを介して、前記アプリケーションに公開するステップと、
前記アプリケーションによって前記ディレクトリにアクセスして前記少なくとも１つのファイルの操作を実施するステップと、
を有する方法。
【請求項２】
前記追加ファイル・システムによって、前記アプリケーションから前記少なくとも１つのファイルにアクセスすることを求める要求を受け取るステップと、
前記少なくとも１つのファイルが前記アーカイブの解凍を介して前記追加ファイル・システム内に既に保存されており、前記少なくとも１つのファイルにアクセスすることを求める前記要求を受け取る前に前記アーカイブの前記解凍が起こっている場合に、前記追加ファイル・システムによって前記少なくとも１つのファイルを前記アプリケーションに提供するステップと、
をさらに有する、請求項１に記載の方法。
【請求項３】
前記追加ファイル・システムは、当該オペレーティング・システム・ファイル・システムを支援するオペレーティング・システムから提供されるＩ／Ｏマネージャを介して前記アプリケーションにアクセスすることが可能であり、さらに前記追加ファイル・システムは、前記Ｉ／Ｏマネージャを介して、前記少なくとも１つのファイルの少なくとも読出し・書込みの操作を可能にする、請求項１に記載の方法。
【請求項４】
メモリと、
前記メモリに結合され、
（ｉ）少なくとも１つのファイルを含むアーカイブがオペレーティング・システム・ファイル・システムに関連して存在することを判定するステップと、
（ｉｉ）前記アーカイブにアクセスするための追加ファイル・システムを生成するステップと、
（ｉｉｉ）前記生成された追加ファイル・システムを前記オペレーティング・システム・ファイル・システムに組み込むステップと、
（ｉｖ）アプリケーションが、前記生成された追加ファイル・システムを介して前記少なくとも１つのファイルにアクセスすることを可能にするステップと、
を実施するプロセッサとを有し、
前記追加ファイル・システムが仮想アーカイブ・ファイル・システムであり、前記可能にするステップが、
前記仮想アーカイブ・ファイル・システムをディレクトリにマウントするステップと、
前記アーカイブを前記アーカイブに対応するアーカイブ処理モジュールの解凍モジュールを介して解凍することにより前記少なくとも１つのファイルを生成するステップと、
前記少なくとも１つのファイルを前記アプリケーションに公開するために、前記少なくとも１つのファイルを前記ディレクトリに保存するステップと、
前記少なくとも１つのファイルを前記仮想アーカイブ・ファイル・システムから提供される少なくとも１つのインターフェイスを介して、前記アプリケーションに公開するステップと、
前記アプリケーションによって前記ディレクトリにアクセスして前記少なくとも１つのファイルの操作を実施するステップと、
を有する、システム。
【請求項５】
前記プロセッサは、
前記追加ファイル・システムによって前記アプリケーションから前記少なくとも１つのファイルにアクセスすることを求める要求を受け取るステップと、
前記少なくとも１つのファイルが前記アーカイブの解凍を介して前記追加ファイル・システム内に既に保存されており、前記少なくとも１つのファイルにアクセスすることを求める前記要求を受け取る前に前記アーカイブの前記解凍が起こっている場合に、前記追加ファイル・システムによって前記少なくとも１つのファイルを前記アプリケーションに提供するステップと
をさらに実施する、請求項４に記載のシステム。
【請求項６】
前記追加ファイル・システムは、当該オペレーティング・システム・ファイル・システムを支援するオペレーティング・システムから提供されるＩ／Ｏマネージャを介して前記アプリケーションにアクセスすることが可能であり、さらに前記追加ファイル・システムは前記Ｉ／Ｏマネージャを介して、前記少なくとも１つのファイルの少なくとも読出し・書込みの操作を可能にする、請求項４に記載のシステム。
【請求項７】
コンピュータに、
少なくとも１つのファイルを含むアーカイブがオペレーティング・システム・ファイル・システムに関連して存在することを判定するステップと、
前記アーカイブにアクセスするための追加ファイル・システムを生成するステップと、
前記生成された追加ファイル・システムを前記オペレーティング・システム・ファイル・システムに組み込むステップと、
アプリケーションが前記少なくとも１つのファイルに前記生成された追加ファイル・システムを介してアクセスすることを可能にするステップとを実行させ、
前記追加ファイル・システムが仮想アーカイブ・ファイル・システムであり、前記可能にするステップが、
前記仮想アーカイブ・ファイル・システムをディレクトリにマウントするステップと、
前記アーカイブを前記アーカイブに対応するアーカイブ操作モジュールの解凍モジュールを介して解凍することにより前記少なくとも１つのファイルを生成するステップと、
前記少なくとも１つのファイルを前記アプリケーションに公開するために、前記少なくとも１つのファイルを前記ディレクトリに保存するステップと、
前記少なくとも１つのファイルを前記仮想アーカイブ・ファイル・システムから提供される少なくとも１つのインターフェイスを介して、前記アプリケーションに公開するステップと、
前記アプリケーションによって前記ディレクトリにアクセスして前記少なくとも１つのファイルの操作を実施するステップと、
を有する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はアーカイブ・ファイル・システムを管理する方法、システム及び製品に関するものである。
【背景技術】
【０００２】
ファイル・アーカイバは、一つ又は複数のファイルを１つのアーカイブ・ファイル又は一連のアーカイブ・ファイルに合体させることができるアプリケーションである。多くのファイル・アーカイバは、前記アーカイブ・ファイルのサイズを減少させるためにデータ圧縮を使用する。あるファイル・アーカイバは複数のファイルを取りあげ、前記複数のファイルの内容を順次前記アーカイブ・ファイルに統合させていく。アーカイブ・ファイルを生成する前記処理はアーカイビング又はパッキングと呼ばれる。元のファイルをアーカイブ・ファイルから再構築することはアンアーカイビング、アンパッキング又は抽出と呼ばれる。
【０００３】
一つ又は複数のファイル又はディレクトリを圧縮してアーカイブ内に保存することができる。前記アーカイブは、アプリケーションが圧縮され前記アーカイブ内に保存された前記ファイル又はディレクトリにアクセスできるようになる前に解凍しなければならないかもしれない。例えば、あるバージョンのＵｎｉｘ（The Open Groupの商標）オペレーティング・システムでは、「テープ・アーカイブ」（ＴＡＲ）ファイル・フォーマットが使用されることもある。あるＷｉｎｄｏｗｓ（Microsoft Corporationの商標）プラットフォーム上では、ＺＩＰアーカイブ・フォーマットを使用してファイルをアーカイブすることもできる。
【０００４】
様々なアーカイビング・ソフトウェアは様々な圧縮／解凍アルゴリズムを使用することができ、また様々な暗号化／復号化メカニズムを使用して前記アーカイブ内に保存された前記ファイル又はディレクトリへのアクセスを制限することができる。さらに様々なアーカイビング・ソフトウェアは、ファイルをアーカイブに追加し、前記ファイルを前記アーカイブから抽出して前記ファイルにアクセスする様々なインターフェイスを提供することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
アプリケーションがアーカイブ内に保存されているファイル又はディレクトリにアクセスする必要がある場合、前記アーカイブは前記アプリケーションが前記ファイル又は前記ディレクトリにアクセスできるようになる前に前記アーカイビング・ソフトウェアによって解凍又はアンアーカイブするか、あるいはその両方を行わなければならない場合もある。前記アーカイブ・ファイルは前記アプリケーションによっても、あるいはファイルをコピーしたり前記ファイルをディレクトリにリスト化する等のコマンドのようなファイル又はディレクトリを操作するオペレーティング・システム・コマンドによっても直接使用することはできない。
【課題を解決するための手段】
【０００６】
少なくとも１つのファイルを含むアーカイブがオペレーティング・システム・ファイル・システムに関連して存在することを判定する方法、システム及び製品が提供される。前記アーカイブにアクセスするために追加ファイル・システムが生成される。前記生成された追加ファイル・システムは、前記オペレーティング・システム・ファイル・システム内に組み込まれる。アプリケーションは前記生成された追加ファイル・システムを介して、前記少なくとも１つのファイルにアクセスすることが可能になる。
【０００７】
追加の実施形態では、前記追加ファイル・システムは仮想アーカイブ・ファイル・システムである。前記アーカイブは前記アーカイブに対応するアーカイブ処理モジュールの解凍モジュールを介して解凍されるが、前記アーカイブを解凍することによって少なくとも１つのファイルが生成される。前記少なくとも１つのファイルは、前記仮想アーカイブ・ファイル・システムから提供される少なくとも１つのインターフェイスを介して前記アプリケーションに公開される。
【０００８】
また別の実施形態では、前記仮想アーカイブ・ファイル・システムはディレクトリにマウントされる。前記少なくとも１つのファイルは前記少なくとも１つのファイルを前記アプリケーションに公開するために、前記ディレクトリ内に保存される。前記アプリケーションは、前記ディレクトリにアクセスして前記少なくとも１つのファイルの操作を実施する。
【０００９】
さらに他の実施形態では、前記追加ファイル・システムは前記アプリケーションから前記少なくとも１つのファイルにアクセスすることを求める要求を受け取る。前記追加ファイル・システムは、前記少なくとも１つのファイルが前記アーカイブの解凍を介して前記追加ファイル・システム内に既に保存されており、前記少なくとも１つのファイルにアクセスすることを求める前記要求を受け取る前に前記アーカイブの前記解凍が起こっている場合には、前記少なくとも１つのファイルを前記アプリケーションに提供する。
【００１０】
さらに別の実施形態では、前記追加ファイル・システムは、当該オペレーティング・システム・ファイル・システムを支援するオペレーティング・システムから提供される入力／出力（Ｉ／Ｏ）マネージャを介して前記アプリケーションにアクセス可能であり、その場合前記追加ファイル・システムは前記Ｉ／Ｏマネージャを介して、前記少なくとも１つのファイルの少なくとも読出し・書込みの操作を可能にする。
【００１１】
また、添付図面に関しては、図面全体を通して同じ参照符号は対応する部分を表している。
【発明を実施するための最良の形態】
【００１２】
以下の記述で、本明細書の一部を形成しいくつかの実施形態を示す添付図面について述べる。また、他の実施形態を利用することも、構造上、動作上の変更を加えることも可能なものとする。例えば、以下の記載ではデータのバックアップに関する実施形態を説明しているが、データのアーカイビングやデータのマイグレーション等に関する代わりの実施形態も利用できるものとする。
【００１３】
ある実施形態は、ウェブ・サーバ、ファイル転送プロトコル（ＦＴＰ）サーバ及びオペレーティング・システム・コマンドのようなアプリケーションがオペレーティング・システムの提供するＩ／Ｏシステム・コールを使用することによって、各々のアーカイブ内のファイルに直接アクセスできるようなオペレーティング・システム・ファイル・システムとしてアーカイブを仮想化する、ファイル・システムを提供する。
【００１４】
図１は、ある実施形態に係るコンピューティング環境１００のブロック図を示している。前記コンピューティング環境１００は、パーソナル・コンピュータ、ワークステーション、メインフレーム、中域コンピュータ、ネットワーク機器、パーム・トップ・コンピュータ、電話機器、ブレード・コンピュータ、携帯コンピュータ等のような当業界では現在周知のものを含む任意の適切なコンピューティング・プラットフォームを有するコンピューティング・プラットフォーム１０２を含む。前記コンピューティング・プラットフォーム１０２はネットワークに結合された形では図示されていないが、ある実施形態ではインターネット、イントラネット、ストレージ・エリア・ネットワーク、広域ネットワーク、ローカル・エリア・ネットワーク等のようなネットワークに結合されていてもよい。
【００１５】
前記コンピューティング・プラットフォーム１０２は、１つ又は複数のオペレーティング・システム・ファイル・システム１０４と、１つ又は複数のアーカイブ１０６と、少なくとも１つのアーカイブ処理モジュール１０８と、１つ又は複数のアプリケーション１１０と、Ｉ／Ｏマネージャ１１２とを含んでいる。
【００１６】
前記オペレーティング・システム・ファイル・システム１０４は、ネットワーク・ファイル・システム（ＮＦＳ）、ファイル・アロケーション・テーブル（ＦＡＴ）ファイル・システム、ジャーナル・ファイル・システム（ＪＦＳ）、ニュー・テクノロジ・ファイル・システム（ＮＴＦＳ）等のような当業界では現在周知のオペレーティング・システム・ファイル・システムを含む任意の適切なオペレーティング・システム・ファイル・システムを含んでいる。前記コンピューティング・プラットフォーム１０２内に含まれる前記オペレーティング・システム・ファイル・システム１０４は、前記コンピューティング・プラットフォーム１０２上で実行されるオペレーティング・システム（図示せず）から支援を受けてもよい。
【００１７】
前記アーカイブ１０６はＺＩＰアーカイブ、Ｊａｖａ（Sun Microsystemの商標）アーカイブ（ＪＡＲ）、テープ・アーカイブ（ＴＡＲ）、ＧＺＩＰアーカイブ等のような当業界では現在周知のものを含む任意の適切なアーカイブを含んでいてもよい。前記アーカイブ１０６はアーカイブされる前に圧縮を受けた１つ又は複数のファイルを含むこともある。
【００１８】
前記アーカイブ処理モジュール１０８はファイル・アーカイバとも呼ばれ、圧縮モジュール１１４と解凍モジュール１１６とを含むことができる。前記圧縮モジュール１１４は、前記アーカイブ１０６内にアーカイブされるファイルを圧縮することができる。例えばＺＩＰ圧縮モジュールは複数のファイルを圧縮して、結果として得られるＺＩＰアーカイブを前記アーカイブ１０６内に保存することができる。前記解凍モジュール１１６は、前記アーカイブ１０６内に保存されている前記ファイルを解凍することができる。例えば前記解凍モジュール１１６は、ＺＩＰアーカイブ内に保存されている圧縮ファイルを解凍することができる。実施形態はアーカイブの圧縮及び解凍とともに示されるが、一方代わりの実施形態はアーカイブの前記圧縮及び解凍に加えて又はそれらの代わりに、アーカイブのパッキング及びアンパッキングを利用することもできる。
【００１９】
前記アプリケーション１１０は、前記Ｉ／Ｏマネージャ１１２が前記コンピューティング・プラットフォーム１０２内で実行される前記オペレーティング・システムから提供される場合に、前記Ｉ／Ｏマネージャ１１２を介して前記オペレーティング・システム・ファイル・システム１０４とインターフェイス接続することができる、当業界で現在周知のものを含む任意の適切なアプリケーション又はコマンドを含むことができる。前記アプリケーション１１０は前記Ｉ／Ｏマネージャ１１２によって、前記オペレーティング・システム・ファイル・システム１０４内に保存されている非アーカイブ・ファイルに関するＩ／Ｏを実施することができるようになる。
【００２０】
ある実施形態では、前記オペレーティング・システム・ファイル・システム１０４は、ＮＦＳ、ＪＦＳ、ＦＡＴ、ＮＴＦＳ等のような他のオペレーティング・システム・ファイル・システム１２０に加えて仮想アーカイブ・ファイル・システム１１８をも含んでいる。前記仮想アーカイブ・ファイル・システム１１８により前記アプリケーション１１０は、前記仮想アーカイブ・ファイル・システム１１８が生成した前記公開アーカイブ・ファイル／ディレクトリ１２０を使用することによって、解凍を行うことなく、前記アーカイブ１０６内に保存されている前記ファイルにアクセスすることができる。
【００２１】
したがって図１は、ウェブ・サーバ、ファイル転送プロトコル（ＦＴＰ）サーバ及び他のオペレーティング・システム・コマンドのようなアプリケーション１１０が、前記Ｉ／Ｏマネージャ１１２内の前記オペレーティング・システム提供のＩ／Ｏシステム・コールを使用して直接アーカイブ１０６内の前記ファイルにアクセスできるように、前記アーカイブ１０６をオペレーティング・システム・ファイル・システム１０４として仮想化する仮想アーカイブ・ファイル・システム１１８を示している。
【００２２】
図２はある実施形態に係る、図１の前記コンピューティング環境１００内に含まれる追加要素を含むブロック図を示している。
【００２３】
前記コンピューティング環境１００の前記コンピューティング・プラットフォーム１０２内に含まれる前記アプリケーション１１０は、リスト・コマンド２００、コピー・コマンド２０２、取出しコマンド２０４、ウェブ・サーバ２０６のアプリケーション等のアプリケーションを含むことができるが、そこでは前記リスト・コマンド２００は前記ファイルをディレクトリにリスト化し、前記コピー・コマンド２０２はファイルを一つの位置から別の位置にコピーし、前記取出しコマンド２０４はディレクトリからファイルを取出すとともに、前記ウェブ・サーバ２０６のアプリケーションは前記コンピューティング・プラットフォーム１０２内に保存されているファイルに基いてＩ／Ｏを実施しようと試みる場合もある。
【００２４】
前記Ｉ／Ｏマネージャ１１２はオープン２０８やクローズ２１０や読出し２１２や書込み２１４のような様々なＩ／Ｏシステム・コールを含むことができるが、そこでは前記オープン・システム・コール２０８はファイルを開き、前記クローズ・システム・コール２１０はファイルを閉じ、前記読出しシステム・コール２１２はファイルからの読出しを行い、前記書込みシステム・コール２１４はファイルへの書込みを行う。前記ウェブ・サーバ２０６のようなアプリケーション１１０は、前記Ｉ／Ｏマネージャ１１２内の前記Ｉ／Ｏシステム・コールを使用して前記コンピューティング・プラットフォーム１０２内に保存されている前記ファイルにアクセスすることができる。
【００２５】
前記アーカイブ処理モジュール１０８は、ＧＺＩＰユーティリティ２１６とＴＡＲユーティリティ２１８とＪＡＲユーティリティ２２０とを含むことができ、前記ＧＺＩＰユーティリティ２１６は前記ＧＺＩＰフォーマットのアーカイブを生成でき、前記ＡＲユーティリティ２１８は前記ＴＡＲフォーマットのアーカイブを生成でき、前記ＪＡＲユーティリティ２２０は前記ＪＡＲフォーマットのアーカイブを生成することができる。
【００２６】
前記オペレーティング・システム・ファイル・システム１０４は、前記仮想アーカイブ・ファイル・システム１１８に加えて、ＮＴＦＳ２２２、ＪＦＳ２２４、ＦＡＴ２２６等のようなファイル・システムも含むことができる。前記仮想アーカイブ・ファイル・システム１１８は公開されたアーカイブ・ファイル／ディレクトリ１２０を含んでおり、そこでは前記公開されたアーカイブ・ファイル／ディレクトリ１２０が、前記アプリケーション１１０が前記アーカイブ１０６内の前記ファイルにアクセスするのに使用され、前記アーカイブ１０６はＧＺＩＰ、ＪＡＲ、ＴＡＲ等のような形式のアーカイブ・ファイルを保存している。しかしながら、前記アプリケーション１１０は、必ずしも前記アーカイブ処理モジュール１０８を実行して前記アーカイブ１０６内に保存されている前記アーカイブ・ファイルにアクセスしなくてもよく、代わりに前記仮想アーカイブ・ファイル・システム１１８の前記公開アーカイブ・ファイル／ディレクトリ１２０を介して、前記アーカイブ・ファイルに直接アクセスしてもよい。
【００２７】
図３は、ある実施形態に係る、前記仮想アーカイブ・ファイル・システム１１８のブロック図を示している。
【００２８】
前記仮想アーカイブ・ファイル・システム１１８は、前記オペレーティング・システム・ファイル・システムのカーネル・モジュールの１つとして実装されてもよい。前記仮想アーカイブ・ファイル・システム１１８は、マウント３００、アンマウント３０２、読出し３０４、書込み３０６、オープン３０８、リリース３１０、ディレクトリ読出し３１２及び他のファイル・システム特有のコール３１４等のようなカーネル・ファイル・システム特有のシステム・コールを実装している。例えば前記マウント・コマンド３００は、前記アーカイブ・ファイルを引数の１つとして前記仮想アーカイブ・ファイル・システム１１８にキャリーすることができるとともに、前記仮想アーカイブ・ファイル・システム１１８を、前記アーカイブの前記ファイル及び前記ディレクトリが他のファイル及びディレクトリと同様に設置される指定ファイル・ディレクトリにマウントすることもできる。
【００２９】
図４は、前記仮想アーカイブ・ファイル・システム１１８によって公開されるある実施形態に係る、例示的なアーカイブ及びそれに対応するファイル／ディレクトリを示すブロック図を示している。
【００３０】
図４では、「ｔｅｓｔｓｏｆｔｗａｒｅ．ｔａｒ」と名付けられた典型的なアーカイブ４００は、以下のファイル４０２を含んでいる。
／ｔｅｓｔｓｏｆｔｗａｒｅ／ｂｉｎ／ｔｅｓｔ．／ｅｘｅ
／ｔｅｓｔｓｏｆｔｗａｒｅ／ｌｉｂ／ｃｏｒｅ．ｌｉｂ
／ｔｅｓｔｓｏｆｔｗａｒｅ／ｂｉｎ／ｃｏｒｅ．ｓｏ
／ｔｅｓｔｓｏｆｔｗａｒｅ／ｄｏｃ／ｇｕｉｄｅ．ｐｄｆ．
【００３１】
前記アーカイブ「ｔｅｓｔｓｏｆｔｗａｒｅ．ｔａｒ」が仮想アーカイブ・ファイル・システム１１８として図４のディレクトリ／ｕｓｒ４０６にマウントされた場合（４０４）、前記アプリケーション１１０は以下の通り前記公開アーカイブ・ファイル／ディレクトリ４０８にアクセスすることになる。
／ｕｓｒ／ｔｅｓｔｓｏｆｔｗａｒｅ／ｂｉｎ／ｔｅｓｔ．ｅｘｅ
／ｕｓｒ／ｔｅｓｔｓｏｆｔｗａｒｅ／ｌｉｂ／ｃｏｒｅ．ｌｉｂ
／ｕｓｒ／ｔｅｓｔｓｏｆｔｗａｒｅ／ｂｉｎ／ｃｏｒｅ．ｓｏ
／ｕｓｒ／ｔｅｓｔｓｏｆｔｗａｒｅ／ｄｏｃ／ｇｕｉｄｅ．ｐｄｆ．
【００３２】
ある実施形態では、ユーザがＫｏｒｎシェルで「ｌｓ」というコマンドを打ち込んだ場合、前記ユーザには、「ｔｅｓｔｓｏｆｔｗａｒｅ」が／ｕｓｒ配下のディレクトリの１つとして示されることになり、同様に、「ｂｉｎ」、「ｌｉｂ」及び「ｄｏｃ」も／ｕｓｒ／ｔｅｓｔｓｏｆｔｗａｒｅ配下のディレクトリとして示されることになる。編集コマンドは、前記アプリケーション１１０内に含まれている前記編集アプリケーションの内のいずれかを使用することによって前記ファイルｇｕｉｄｅ．ｐｄｆを開くことができる。同様に、ｔｅｘｔ．ｅｘｅは、前記ディレクトリ／ｕｓｒ／ｔｅｓｔｓｏｆｔｗａｒｅ／ｂｉｎから実行することができ、サポート・ファイルは、前記オペレーティング・システム・ローダによって直接ロードすることができる。
【００３３】
したがって、図４は、複数のファイルがアーカイブ内に保存されていても、前記仮想アーカイブ・ファイル・システム１１８内に保存されている前記公開アーカイブ・ファイル／ディレクトリ１２０を使用することによって、前記複数のファイルに前記アプリケーション１１０から個々に直接アクセスすることができる、ある実施形態を示している。前記仮想アーカイブ・ファイル・システム１１８は、ＪＦＳ、ＮＦＳ、ＦＡＴ等のような前記他のオペレーティング・システム・ファイル・システム１２０を使用して実際のアーカイブを読出し、様々な圧縮モジュール１１４及び解凍モジュール１１６を使用して様々なタイプのアーカイブを処理する。前記仮想アーカイブ・ファイル・システム１１８は、前記仮想アーカイブ・ファイル・システム１１８がディレクトリにマウントされたとき、前記関連ファイル・システムを使用している記憶装置から前記アーカイブをロードする。前記仮想アーカイブ・ファイル・システム１１８は前記アプリケーション１１０から読出し、システム・コールを受け取った場合、アーカイブに対応する前記解凍モジュール１１６を呼び出すこともできる。さらに前記仮想アーカイブ・ファイル・システム１１８は、前記アプリケーション１１０から書込みシステム・コールを受け取った場合、アーカイブに対応する前記圧縮モジュール１１４を呼び出すこともできる。
【００３４】
したがって図４は、前記アプリケーション１１０が前記仮想アーカイブ・ファイル・システム１１８の前記マウントに応じて前記公開アーカイブ・ファイル／ディレクトリ４０８を用いることによって、いかなるアーカイブ処理モジュール１０８をも呼び出すことなく前記アーカイブ・ファイルに直接アクセスすることができるある実施形態を示している。
【００３５】
図５は、ある実施形態に従って前記コンピューティング環境１００内のアーカイブ・ファイルを管理するための第１の流れ図を示している。図５の前記流れ図に示されている操作の中には、前記仮想アーカイブ・ファイル・システム１１８によってコンピューティング・プラットフォーム１０２内に実装できるものもあれば、前記アプリケーション１１０によって実装できるものもある。
【００３６】
制御は、前記仮想アーカイブ・ファイル・システムが前記コンピューティング・プラットフォーム１０２にロードされるブロック５００からスタートする。前記オペレーティング・システムは、前記仮想アーカイブ・ファイル・システム１１８をディレクトリにマウントする（ブロック５０２）ことができる。
【００３７】
前記仮想アーカイブ・ファイル・システム１１８はディレクトリにマウントされると、アーカイブ１０６が関連付けられている前記対応のオペレーティング・システム・ファイル・システム１０４を使用して、アーカイブ１０６を記憶装置からロードする（ブロック５０４）ことができる。前記仮想アーカイブ・ファイル・システム１１８は、前記対応する解凍モジュール１１６を使用することによって前記アーカイブ１０６を解凍する（ブロック５０６）。
【００３８】
その後前記仮想アーカイブ・ファイル・システム１１８は、前記仮想アーカイブ・ファイル・システム１１８が生成した前記公開アーカイブ・ファイル／ディレクトリ１２０を介して、前記解凍されたアーカイブのファイル及びディレクトリとのインターフェイスをアプリケーション１１０に提供する（ブロック５０８）ことができる。
【００３９】
前記仮想アーカイブ・ファイル・システム１１８は、処理すべき別のアーカイブが存在するか否かを判定する（ブロック５１０）。そのようなアーカイブが存在する場合、制御はブロック５０４に戻る。そのようなアーカイブが存在しない場合、前記アプリケーション１１０は、前記アーカイブ１０６の解凍又はアンアーカイビングを必要としなくてもよいように、前記仮想アーカイブ・ファイル・システム１１８を介して前記アーカイブ１０６の前記ファイル及びディレクトリとインターフェイス接続する（ブロック５１２）。
【００４０】
したがって図５は、前記ユーザ・アプリケーション１１０が解凍又はアンアーカイビングを必要とすることなく前記アーカイブ・ファイルにアクセスできるように、仮想アーカイブ・ファイル・システム１１８がアーカイブ・ファイルを公開する、ある実施形態を示している。
【００４１】
図６は、ある実施形態に従って前記コンピューティング環境１００内に実装されたアーカイブ・ファイルを管理するための第２の流れ図を示している。
【００４２】
制御は、少なくとも１つのファイルを含むアーカイブ１０６がオペレーティング・システム・ファイル・システム１０４に関連して存在することを判定するブロック６００からスタートする。追加ファイル・システムは前記アーカイブにアクセスするために生成される（ブロック６０２）が、そこでは前記追加ファイル・システムが前記仮想アーカイブ・ファイル・システム１１８を含む場合がある。
【００４３】
制御は、前記生成された追加ファイル・システム１１８が前記オペレーティング・システム・ファイル・システム１０４内に含まれる、ブロック６０４に進む。アプリケーション１１０は、前記生成された追加ファイル・システム１１８を介して前記少なくとも１つのファイルにアクセスすることが可能になる（ブロック６０６）。
【００４４】
したがって図１乃至図６は各々、前記アーカイブ１０６を記憶装置として使用し、前記アーカイブ１０６をユーザ・アプリケーション１１０に対するファイル・システムとして仮想化する仮想アーカイブ・ファイル・システム１１８を提供する、ある実施形態を示している。前記ユーザ・アプリケーション１１０は前記アーカイブを分解することなく、オープン、クローズ、書込み、削除、リスト化等のような様々な種類のＩ／Ｏ操作を前記アーカイブに対して実施することができる。前記アーカイブが前記ユーザ・アプリケーション１１０に対するオペレーティング・システム・ファイル・システムとして仮想化されるので、前記ユーザ・アプリケーション１１０はＩ／Ｏシステム・コールを使用して前記アーカイブ１０６に直接アクセスする。
【００４５】
例えばユーザ・モードのウェブ・サーバ・アプリケーションによって管理されているウェブ・サイトは圧縮ユーティリティを使用してアーカイブし、デジタル・ビデオ・ディスク（ＤＶＤ）のような２次デバイスに記憶することもできる。前記アーカイブされたウェブ・サイトには、前記ウェブ・サイトが圧縮前にアクセスされるように、前記アーカイブを分解することなく前記アーカイブから直接アクセスすることができる。
【００４６】
したがってある実施形態は、前記オペレーティング・システムから提供される前記標準的なＩ／Ｏインターフェイスを使用してファイル及びディレクトリとしてアーカイブされた内容にアクセスできる仮想アーカイブ・ファイル・システム１１８を提供する。ユーザはファイル・システムを作成し前記ファイル・システムを前記仮想アーカイブ・ファイル・システム１１８（この場合前記仮想アーカイブ・ファイル・システム１１８は、前記アーカイブをオペレーティング・システム・ファイル・システムとして仮想化しているのであるが）にマウントされる一つ又は複数のアーカイブに割り当てることができるので、ディスク・スペースを節約することができる。
【００４７】
さらに前記仮想アーカイブ・ファイル・システム１１８がマウントされた場合、前記オペレーティング・システム・ローダは、前記実行可能なモジュールを前記アーカイブからメモリに直接ロードして前記モジュールを実行することができる。
【００４８】
（追加実施形態の詳細）
前述の技術はソフトウェア、ファームウェア、マイクロコード、ハードウェア又はそれらの任意の組合せ、あるいはそれらのすべてに関連する方法、装置、又は製品として実施することができる。本明細書で使用されている「製品（ａｒｔｉｃｌｅ  ｏｆ  ｍａｎｕｆａｃｔｕｒｅ）」という用語は、媒体に実装されるコード又はロジックを指し、そのような媒体はハードウェア・ロジック（例えば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）、あるいは、磁気記憶媒体（例えば、ハード・ディスク・ドライブ、フレキシブル・ディスク、テープ等）、光記憶装置（ＣＤ−ＲＯＭ、光ディスク等）、揮発性及び不揮発性メモリ・デバイス（例えば、電気的消去再書込可能読取り専用メモリ（ＥＥＰＲＯＭ）、読取り専用メモリ（ＲＯＭ）、再書込可能読取り専用メモリ（ＰＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、フラッシュ、ファームウェア、プログラマブル・ロジック等）のようなコンピュータ可読媒体を有するものであってもよい。前記コンピュータ可読媒体内のコードはプロセッサによってアクセスされ実行される。前記コード又はロジックがその内部でコード化される前記媒体はまた、空間内又は光ファイバや銅線等のような伝送媒体内を伝搬する伝送信号を有していてもよい。前記コード又はロジックがその内部でコード化される前記伝送信号はさらに、無線信号、衛星伝送、電波、赤外線信号、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ（Ｒ））等を有していてもよい。前記コード又はロジックがその内部でコード化される前記伝送信号は送信局が送信し受信局が受信することができるが、その場合前記伝送信号内でコード化された前記コード又はロジックは、復号化して前記送受信局すなわち送受信デバイスのハードウェア内又はコンピュータ可読媒体内に記憶することができる。さらに前記「製品」は、前記コードが組み入れられ操作され実行されるハードウェア構成要素とソフトウェア構成要素の組合せを有していてもよい。言うまでもなく当業者なら実施形態の範囲から逸脱することなく多くの修正を施すことができ、さらに前記製品が任意の情報保持媒体を有していてもよいことを理解するであろう。例えば前記製品は機械によって実行されるときに、操作を実施させる命令をその内部に記憶した記憶媒体を有するものである。
【００４９】
ある実施形態は、完全にハードウェアの実施形態の形式あるいは完全にソフトウェアの実施形態の形式あるいはハードウェア要素とソフトウェア要素の両方を含む一実施形態の形式を取ることもできる。好ましい一実施形態では、本発明は必ずしもそれだけに限定されるわけではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むソフトウェアで実施される。
【００５０】
さらにある実施形態はコンピュータ又は任意の命令実行システムによって、又はそれらと関連して使用されるプログラム・コードを備えるコンピュータ使用可能又はコンピュータ可読の媒体からアクセスできるコンピュータ・プログラムの形式を取ることもできる。前記記述を目的として、コンピュータ使用可能媒体又はコンピュータ可読の媒体は、前記命令実行システム、機器、又はデバイスによって又はそれらと関連して使用される前記プログラムを収容し、記憶し、通信し、伝搬し又は移送することができる任意の機器であってもよい。前記媒体は、電子、磁気、光学、電磁気、赤外線又は半導体（すなわち装置又はデバイス）のシステムであっても伝搬媒体であってもよい。コンピュータ可読媒体の例としては、半導体又は固体メモリ、磁気テープ、可撤性コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、固定磁気ディスク及び光ディスクがある。光ディスクの現行例としては、コンパクト・ディスク−読取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読出し／書込み（ＣＤ−Ｒ／Ｗ）及びＤＶＤがある。
【００５１】
「ある実施形態（ｃｅｒｔａｉｎ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「一実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔ）」、「複数の実施形態（ｅｍｂｏｄｉｍｅｎｔｓ）」、「前記実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「前記複数の実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「１つ又は複数の実施形態（ｏｎｅ  ｏｒ  ｍｏｒｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「一部の実施形態（ｓｏｍｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」及び「一つの実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」等の用語は、特に明記しない限り、一つ又は複数（ただし、全部ではない）の実施形態を意味する。「含む（ｉｎｃｌｕｄｉｎｇ）」、「有する（ｃｏｍｐｒｉｓｉｎｇ）」、「備える（ｈａｖｉｎｇ）」等の用語及びそれらの変化形は、特に明記しない限り、「〜を含むがこれに限定されるものではない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」ことを意味する。列挙した前記項目リストは特に明記しない限り、前記項目のいずれか、又はすべてが相互に排他的であることを意味するものではない。「ａ」、「ａｎ」及び「ｔｈｅ」等の語は特に明記しない限り、「一つ又は複数（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を意味する。
【００５２】
互いに通信し合っているデバイスは特に明記しない限り、必ずしも連続的に互いに通信し合う必要はない。さらに互いに通信し合うデバイスは、直接的にあるいは、一つ又は複数の媒介物を介して間接的に通信することができる。また、いくつかの構成要素が互いに通信し合っている一実施形態の記載は、そのような構成要素が必ずしもすべて必要であることを意味するものではない。それどころか、任意の多様な構成要素を記載ることにより、多岐に渡る可能な実施形態を説明するものである。
【００５３】
さらに処理ステップ、方法ステップ、アルゴリズム等は起こった順番で説明してもよいが、そのような処理、方法及びアルゴリズムは別の順番で機能するように構成されていてもよい。言い換えれば、記載されるステップのいかなる順序又は順番も、前記ステップがその順番で実施されなければならないという要件を必ずしも示唆しているわけではない。本明細書に記載されている処理の前記ステップは、任意の実用本位の順番で実施することができる。さらに一部のステップは同時に、並列的あるいは並行して実施することもできる。
【００５４】
本明細書に単一のデバイス又は物品が記載されている場合、単一のデバイス／物品の代わりに、２つ以上のデバイス／物品を（それらが協働するものであるか否かを問わず）使用できることが明らかであろう。同様に２つ以上のデバイス又は物品が（それらが協働するものであるか否かを問わず）本明細書に記載されている場合にも、前記２つ以上のデバイス又は物品の代わりに、単一のデバイス／物品を使用できることが明らかであろう。代わりに、デバイスの機能又は特徴あるいはその両方は、そのような機能／特徴を有すると明確に記載されていない一つ又は複数の他のデバイスによって実施することもできる。したがって他の実施形態は、必ずしも前記デバイス自体を含んでいる必要はない。
【００５５】
図７は１つの例示的なコンピュータ・システム７００を示しており、そこではある実施形態で、図１の前記コンピューティング環境１００の前記コンピューティング・プラットフォーム１０２が前記コンピュータ・システム７００のコンピュータ・アーキテクチャに従って実施される。前記コンピュータ・システム７００はシステム又は機械と呼ばれることもあり、ある実施形態においてはプロセッサ７０４を含む回路７０２を含むことができる。前記コンピュータ・システム７００はまたメモリ７０６（例えば、揮発性メモリ・デバイス）と記憶装置７０８とを含んでいてもよい。前記コンピュータ・システム７００のある要素の中には、前記コンピューティング・プラットフォーム１０２内で見られるものもあれば見られないものもある。前記記憶装置７０８は、不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ、ファームウェア、プログラマブル・ロジック等）、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等を含むことができる。前記記憶装置７０８は、内部記憶装置、付属記憶装置又はネットワーク・アクセス可能な記憶装置、あるいはそれらすべてを有していてもよい。前記コンピュータ・システム７００は、前記メモリ７０６にロードされて前記プロセッサ７０４又は回路７０２によって実行されるコード７１２を含んだプログラム・ロジック７１０を含んでいてもよい。ある実施形態において、コード７１２を含む前記プログラム・ロジック７１０は、前記記憶装置７０８に記憶される。また他の実施形態において、前記プログラム・ロジック７１０は、前記回路７０２内に実装される。したがって、図７は前記プログラム・ロジック７１０をその他の要素とは別に示しているのに対して、前記プログラム・ロジック７１０は、前記メモリ７０６内又は前記回路７０２内あるいはその両方に実装されていてもよい。
【００５６】
ある実施形態は、人間又は自動処理によってコンピュータ可読コードをコンピューティング・システムに統合するコンピューティング命令を展開する方法を対象としており、そこでは前記コードが前記コンピューティング・システムと結合して、前述の実施形態の前記操作を実施できるようになる。
【００５７】
図５及び図６に示される前記操作の内の少なくともいくつかは、並列的及び連続的に実施される。別の実施形態では、前記操作の一部を別の順番で実施したり、あるいは修正し、あるいは省略して実施することもできる。
【００５８】
さらに、前記ソフトウェア構成要素及びハードウェア構成要素の多くは、例証のために別のモジュールに記載されている。そのような構成要素は、より少ない数の構成要素に統合することも、より多くの数の構成要素に分割することもできる。さらに、特定の構成要素によって実施されると記載された一定の操作は、他の構成要素によって実施されてもよい。
【００５９】
図１乃至図７に図示され、又は言及されている前記データの構造及び構成要素は、特定のタイプの情報を有すると記載されている。他の実施形態では、前記データの構造及び構成要素とは別に構築化され、前記図面に図示され、又は言及されているものに比して、より少ない、又はより多い、又は異なるフィールドあるいは、異なる機能を有していてもよい。したがって前記諸実施形態についての前述の記載は、例示及び記述のために提示されてきた。前記実施形態を余すところのないものとし、あるいは開示と寸分違わぬ形に限定することは、意図するところではない。上記の教示に照らせば多くの修正及び変更は可能である。
【図面の簡単な説明】
【００６０】
【図１】ある実施形態に係るコンピューティング環境のブロック図である。
【図２】図１の前記コンピューティング環境内に含まれる、ある実施形態に係る追加要素を含むブロック図である。
【図３】ある実施形態に係る仮想アーカイブ・ファイル・システムのブロック図である。
【図４】前記仮想アーカイブ・ファイル・システムによって公開された、ある実施形態に係る例示的なアーカイブ及びそれに対応するファイル／ディレクトリを示すブロック図である。
【図５】ある実施形態に従ってアーカイブ・ファイルを管理する第１の流れ図である。
【図６】ある実施形態に従ってアーカイブ・ファイルを管理する第２の流れ図である。
【図７】ある実施形態ではそのコンピューティング・システムのコンピュータ・アーキテクチャに従って図１の前記コンピューティング環境を実装することができる、コンピューティング・システムのアーキテクチャを示す図である。
【符号の説明】
【００６１】
１００  コンピューティング環境
１０２  コンピューティング・プラットフォーム
１０４  オペレーティング・システム・ファイル・システム
１０６  アーカイブ
１０８  アーカイブ操作モジュール
１１０  アプリケーション
１１２  Ｉ／Ｏマネージャ
１１４  圧縮モジュール
１１６  解凍モジュール
１１８  仮想アーカイブ・ファイル・システム
１２０  公開アーカイブ・ファイル／ディレクトリ
１２０  他のオペレーティング・システム・ファイル・システム
２００  リスト・コマンド
２０２  コピー・コマンド
２０４  取出しコマンド
２０６  ウェブ・サーバ
２０８  オープン・システム・コール
２１０  クローズ・システム・コール
２１２  読出しシステム・コール
２１４  書込みシステム・コール
２１６  ＧＺＩＰユーティリティ
２１８  ＴＡＲユーティリティ
２２０  ＪＡＲユーティリティ
２２２  ＮＴＦＳ
２２４  ＪＦＳ
２２６  ＦＡＴ
３００  マウント
３０２  アンマウント
３０４  読出し
３０６  書込み
３０８  オープン
３１０  リリース
３１２  ディレクトリ読出し
３１４  他のファイル・システムに特有のコール
４００  アーカイブ
４０２  ファイル
４０６  ディレクトリ／ｕｓｒ
４０８  公開アーカイブ・ファイル／ディレクトリ
７００  コンピュータ・システム
７０２  回路
７０４  プロセッサ
７０６  メモリ
７０８  記憶装置
７１０  プログラム・ロジック
７１２  コード
【図１】
0005340535.tif 000002
【図２】
0005340535.tif 000003
【図３】
0005340535.tif 000004
【図４】
0005340535.tif 000005
【図５】
0005340535.tif 000006
【図６】
0005340535.tif 000007
【図７】
0005340535.tif 000008