(57)【要約】【課題】アーカイブファイルのインストール時間を短くすることができるアーカイブストリームベースインストールを提供する。【解決手段】アーカイブが解凍された際に、ファイルをアーカイブからファイルシステム内の１つ以上の最終的なファイル宛先へ直接的にストリームし、アーカイブファイルを、一時的な保存位置（例えば、システムの一時フォルダ）に一旦書き込んだ後に最終的な位置に書き込むのではなく、最終的なファイル宛先に一度で書き込むアーカイブストリームベースインストール。【選択図】図２
2009230758.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、
解凍処理を開始するステップと、
少なくとも１つのファイルを、アーカイブからコンピュータシステム上の少なくとも１つの最終的なファイル宛先へ直接的に解凍するステップとを含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
少なくとも１つのファイルを、アーカイブからコンピュータシステム上の少なくとも１つの最終的なファイル宛先へ直接的に解凍する前記ステップは、
コールバックを解凍エンジンに登録するステップと、
前記解凍エンジンを開始して、前記解凍エンジンに前記アーカイブから前記少なくとも１つのファイルについてのアーカイブ指定ファイル宛先を取得させてコールバックを生成し、生成されたコールバックを送信するステップと、
前記解凍エンジンから前記少なくとも１つのファイルについてのアーカイブ指定ファイル宛先を含む前記コールバックを受信するステップと、
前記少なくとも１つのファイルに関連するキーマップ指定ファイル宛先を、キーマップ・データーベースで検索するステップと、
前記アーカイブ指定ファイル宛先が前記キーマップ指定ファイル宛先と一致するか否かに基づいて、前記少なくとも１つのファイルの宛先を、前記アーカイブ指定ファイル宛先から前記キーマップ指定ファイル宛先に書き換えるか否かを判断するステップと、
前記少なくとも１つのファイルの宛先を書き換えると判断された場合は、前記キーマップ指定ファイル宛先を含む改変されたコールバック返答を生成するステップと、
前記改変されたコールバック返答を前記解凍エンジンに送信し、前記改変されたコールバック返答の受信に応答して前記解凍エンジンによってコンピュータシステム上で前記キーマップ指定ファイル宛先を開くステップと、
前記少なくとも１つのファイルを、前記アーカイブから前記キーマップ指定ファイル宛先に直接的に書き込むステップとを含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、
前記少なくとも１つのファイルの宛先を書き換えないと判断された場合は、前記アーカイブ指定ファイル宛先を含むコールバック返答を生成するステップと、
前記コールバック返答を前記解凍エンジンに送信し、前記コールバック返答の受信に応答して前記解凍エンジンによってコンピュータシステム上で前記アーカイブ指定ファイル宛先を開くステップと、
前記少なくとも１つのファイルを、前記アーカイブから前記アーカイブ指定ファイル宛先に直接的に書き込むステップとを含むことを特徴とする方法。
【請求項４】
請求項２に記載の方法であって、
前記解凍エンジンによって前記アーカイブから解凍すべき少なくとも１つのファイルが存在するか否かを判断するステップと、
前記解凍すべき少なくとも１つのファイルが存在すると判断された場合は、前記解凍エンジンが前記コールバックを生成して、生成された前記コールバックを送信するステップとをさらに含むことを特徴とする方法。
【請求項５】
請求項４に記載の方法であって、
前記解凍すべき少なくとも１つのファイルが存在しないと判断された場合は、処理を終了することを特徴とする方法。
【請求項６】
請求項２に記載の方法であって、
前記少なくとも１つのファイルは、固有キー識別子を有する前記アーカイブのフォルダ内に格納されており、
前記キーマップ・データーベースは、１つ以上のエントリを有し、
前記１つ以上のエントリはそれぞれ、少なくとも１つの固有キー識別子に基づいて、アーカイブ指定ファイル宛先をキーマップ指定ファイル宛先に関連付けるように構成されていることを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、
少なくとも１つのファイルを、アーカイブからコンピュータシステム上の少なくとも１つの最終的なファイル宛先へ直接的に解凍する前記ステップは、
コンピュータシステム上の１つ以上のファイルシステムのイベントをインターセプト又はストールするためのファイルシステムフックを前記コンピュータシステム上にインストールするステップと、
解凍エンジンを開始して、前記解凍エンジンによって前記少なくとも１つのファイルのアーカイブからの解凍を開始し、前記ファイルに関係するアーカイブ指定ファイル宛先を開くべくファイルシステムへの呼び出しを生成するステップと、
前記ファイルシステムフックによりインターセプトされた、前記アーカイブ指定ファイル宛先を指定するファイルハンドルを有する前記ファイルシステムの前記イベントを受信するステップと、
前記ファイルシステムの前記イベントをストールするステップと、
前記ファイルシステムの前記イベントが前記解凍エンジンに関連するか否かを判断するステップと、
前記ファイルシステムの前記イベントが前記解凍エンジンに関連すると判断された場合は、前記少なくとも１つのファイルの宛先を前記アーカイブ指定ファイル宛先からキーマップ指定ファイル宛先に書き換えるか否かを判断するステップと、
前記少なくとも１つのファイルの宛先を書き換えると判断された場合は、前記キーマップ指定ファイル宛先を含む改変されたファイルハンドルを生成するステップと、
前記改変されたファイルハンドルを前記解凍エンジンへ返信し、前記改変されたファイルハンドルの受信に応答して前記解凍エンジンが前記コンピュータシステム上で前記キーマップ指定ファイル宛先を開くステップと、
前記少なくとも１つのファイルを、前記アーカイブから前記キーマップ指定ファイル宛先に直接的に書き込むステップとを含むことを特徴とする方法。
【請求項８】
請求項７に記載の方法であって、
前記少なくとも１つのファイルの宛先を書き換える必要がないと判断された場合は、前記アーカイブ指定ファイル宛先を含む前記ファイルハンドルを前記解凍エンジンへ返信し、前記ファイルハンドルの受信に応答して前記解凍エンジンが前記アーカイブ指定ファイル宛先を開くステップと、
前記少なくとも１つのファイルを、前記アーカイブから前記アーカイブ指定ファイル宛先に直接的に書き込むステップとを含むことを特徴とする方法。
【請求項９】
請求項７に記載の方法であって、
前記少なくとも１つのファイルの宛先を前記アーカイブ指定ファイル宛先からキーマップ指定ファイル宛先に書き換えるか否かを判断する前記ステップは、
前記少なくとも１つのファイルに関連するキーマップ指定ファイル宛先を、キーマップ・データーベースで検索するステップと、
前記アーカイブ指定ファイル宛先が前記キーマップ指定ファイル宛先と一致するか否かに基づいて、前記少なくとも１つのファイルの宛先を前記アーカイブ指定ファイル宛先から前記キーマップ指定ファイル宛先に書き換えるか否かを判断するステップとを含むことを特徴とする方法。
【請求項１０】
請求項７に記載の方法であって、
前記少なくとも１つのファイルは、固有キー識別子を有する前記アーカイブのフォルダ内に格納されており、
前記キーマップ・データーベースは、１つ以上のエントリを有し、
前記１つ以上のエントリはそれぞれ、少なくとも１つの固有キー識別子に基づいて、アーカイブ指定ファイル宛先をキーマップ指定ファイル宛先に関連付けるように構成されていることを特徴とする方法。
【請求項１１】
コンピュータプログラムコードが記憶されたコンピュータ読み取り可能な有形記憶媒体を備えたコンピュータプログラム製品であって、
前記コンピュータプログラムコードが、少なくとも１つのファイルをアーカイブからファイルシステム内の１つ以上の最終的なファイル位置に直接的に解凍するように、前記少なくとも１つのファイルを前記アーカイブから直接的にストリームするためのアーカイブストリームベースインストール・アプリケーションを含み、
前記アーカイブストリームベースインストール・アプリケーションが、
前記少なくとも１つのファイルを前記アーカイブから解凍し、解凍された前記少なくとも１つのファイルを前記ファイルシステム内の前記１つ以上の最終的なファイル位置へ直接的に書き込む手段と、
前記少なくとも１つのファイルの宛先をアーカイブ指定ファイル宛先からキーマップ指定ファイル宛先へ書き換える手段と、
前記アーカイブ指定ファイル宛先と前記キーマップ指定ファイル宛先とを関連付ける手段とを含むことを特徴とするコンピュータプログラム製品。
【請求項１２】
請求項１１に記載のコンピュータプログラム製品であって、
前記アーカイブストリームベースインストール・アプリケーションが、
コンピュータシステム上にインストールするための前記少なくとも１つのファイルを含むアーカイブをさらに含むことを特徴とするコンピュータプログラム製品。
【請求項１３】
コンピュータプログラムコードが記憶されたコンピュータ読み取り可能な媒体を備えたコンピュータプログラム製品であって、
前記コンピュータプログラムコードが、
解凍処理を開始するステップと、
少なくとも１つのファイルを、アーカイブからコンピュータシステム上の少なくとも１つの最終的なファイル宛先へ直接的に解凍するステップとを含むことを特徴とするコンピュータプログラム製品。
【請求項１４】
請求項１３に記載のコンピュータプログラム製品であって、
少なくとも１つのファイルを、アーカイブからコンピュータシステム上の少なくとも１つの最終的なファイル宛先へ直接的に解凍する前記ステップが、
コールバックを解凍エンジンに登録するステップと、
前記解凍エンジンを開始して、前記解凍エンジンに前記アーカイブから前記少なくとも１つのファイルについてのアーカイブ指定ファイル宛先を取得させてコールバックを生成し、生成されたコールバックを送信するステップと、
前記解凍エンジンから前記少なくとも１つのファイルについてのアーカイブ指定ファイル宛先を含む前記コールバックを受信するステップと、
前記少なくとも１つのファイルに関連するキーマップ指定ファイル宛先を、キーマップ・データーベースで検索するステップと、
前記アーカイブ指定ファイル宛先が前記キーマップ指定ファイル宛先と一致するか否かに基づいて、前記少なくとも１つのファイルの宛先を、前記アーカイブ指定ファイル宛先から前記キーマップ指定ファイル宛先に書き換えるか否かを判断するステップと、
前記少なくとも１つのファイルの宛先を書き換えると判断された場合は、前記キーマップ指定ファイル宛先を含む改変されたコールバック返答を生成するステップと、
前記改変されたコールバック返答を前記解凍エンジンに送信し、前記改変されたコールバック返答の受信に応答して前記解凍エンジンによってコンピュータシステム上で前記キーマップ指定ファイル宛先を開くステップと、
前記少なくとも１つのファイルを、前記アーカイブから前記キーマップ指定ファイル宛先に直接的に書き込むステップとを含むことを特徴とするコンピュータプログラム製品。
【請求項１５】
請求項１４に記載のコンピュータプログラム製品であって、
前記少なくとも１つのファイルは、固有キー識別子を有する前記アーカイブのフォルダ内に格納されており、
前記キーマップ・データーベースは、１つ以上のエントリを有し、
前記１つ以上のエントリはそれぞれ、少なくとも１つの固有キー識別子に基づいて、アーカイブ指定ファイル宛先をキーマップ指定ファイル宛先に関連付けるように構成されていることを特徴とするコンピュータプログラム製品。
【請求項１６】
請求項１３に記載のコンピュータプログラム製品であって、
少なくとも１つのファイルを、アーカイブからコンピュータシステム上の少なくとも１つの最終的なファイル宛先へ直接的に解凍する前記ステップは、
前記コンピュータシステム上の１つ以上のファイルシステムのイベントをインターセプト又はストールするためのファイルシステムフックを前記コンピュータシステム上にインストールするステップと、
解凍エンジンを開始して、前記解凍エンジンによって前記アーカイブから前記少なくとも１つのファイルの解凍を開始し、前記少なくとも１つのファイルに関係するアーカイブ指定ファイル宛先を開くべくファイルシステムへの呼び出しを生成するステップと、
前記ファイルシステムフックによりインターセプトされた、前記アーカイブ指定ファイル宛先を指定するファイルハンドルを有する前記ファイルシステムの前記イベントを受信するステップと、
前記ファイルシステムの前記イベントをストールするステップと、
前記ファイルシステムの前記イベントが前記解凍エンジンに関連するか否かを判断するステップと、
前記ファイルシステムの前記イベントが前記解凍エンジンに関連すると判断された場合は、前記少なくとも１つのファイルの宛先を前記アーカイブ指定ファイル宛先からキーマップ指定ファイル宛先に書き換えるか否かを判断するステップと、
前記少なくとも１つのファイルの宛先を書き換えると判断された場合は、前記キーマップ指定ファイル宛先を含む改変されたファイルハンドルを生成するステップと、
前記改変されたファイルハンドルを前記解凍エンジンへ返信し、前記改変されたファイルハンドルの受信に応答して前記解凍エンジンが前記コンピュータシステム上で前記キーマップ指定ファイル宛先を開くステップと、
前記少なくとも１つのファイルを、前記アーカイブから前記キーマップ指定ファイル宛先に直接的に書き込むステップとを含むことを特徴とするコンピュータプログラム製品。
【請求項１７】
請求項１６に記載のコンピュータプログラム製品であって、
前記少なくとも１つのファイルは、固有キー識別子を有する前記アーカイブのフォルダ内に格納されており、
前記キーマップ・データーベースは、１つ以上のエントリを有し、
前記１つ以上のエントリはそれぞれ、少なくとも１つの固有キー識別子に基づいて、アーカイブ指定ファイル宛先をキーマップ指定ファイル宛先に関連付けるように構成されていることを特徴とするコンピュータプログラム製品。
【請求項１８】
アーカイブストリームベース・解凍エンジンであって、
アーカイブから少なくとも１つのファイルを解凍する手段と、
解凍された前記少なくとも１つのファイルを、前記アーカイブからコンピュータシステム内の１つ以上の最終的なファイル位置に直接的に書き込む手段とを含むことを特徴とする解凍エンジン。
【請求項１９】
請求項１８に記載のアーカイブストリームベース・解凍エンジンであって、
前記アーカイブ内の前記少なくとも１つのファイルのアーカイブ指定ファイル宛先を、前記コンピュータシステム上の前記少なくとも１つのファイルの最終的なファイル宛先を指定するキーマップ指定ファイル宛先に関連付ける手段を含むことを特徴とする解凍エンジン。
【請求項２０】
請求項１８に記載のアーカイブストリームベース・解凍エンジンであって、
前記少なくとも１つのファイルは、固有キー識別子を有する前記アーカイブのフォルダ内に格納されており、
前記キーマップ・データーベースは、１つ以上のエントリを有し、
前記１つ以上のエントリはそれぞれ、少なくとも１つの固有キー識別子に基づいて、アーカイブ指定ファイル宛先をキーマップ指定ファイル宛先に関連付けるように構成されていることを特徴とする解凍エンジン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム上へのソフトウエアのインストールに関する。詳細には、本発明は、アーカイブからコンピュータシステムへのファイルのインストールに関する。
【背景技術】
【０００２】
従来のソフトウエアインストール技術（一般にインストール技術と呼ばれる）の多くは、対象コンピュータシステム上にファイルをインストールするのに２段階の処理を実行する自己解凍型アーカイブを利用している。前記２段階の処理の第１の段階では、インストールするファイルが前記アーカイブから解凍され、前記システムの予め定められた一時フォルダにコピーされる。第２の段階では、インストール処理が開始され、前記システムの前記一時フォルダにコピーされた前記ファイルは、前記システムの前記一時フォルダから前記対象コンピュータシステム上の最終的な宛先に再びコピーされる。典型的には、データーベース、スクリプト、データファイル又はそれらの組み合わせを使用して、前記ファイルをコピーする命令と、前記ファイルを対象コンピュータシステム上に保存する位置の決定とが行われる。しかし、この２段階の処理には、時間がかかるという問題や、リソースを食うという問題があった。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明による実施形態によれば、ファイルは、アーカイブからコンピュータシステム上の１つ以上の最終ファイル宛先に直接的に解凍される。ある実施形態では、前記解凍処理はフックされ、前記ファイルの宛先を、アーカイブ指定ファイル宛先から前記コンピュータシステム上の最終的なファイル宛先に書き換える。前記ファイルは、その後、前記アーカイブから前記コンピュータシステム上の前記１つ以上の最終的なファイル宛先位置に直接的に書き込まれる。ある実施形態では、前記フックは、アーカイブ技術（例えば、７−Ｚｉｐ、ＲＡＲ、ＺＩＰ、ＣＡＢ）により提供されるコールバックにより実行されるコールバックフックである。他の実施形態では、前記フックは、前記解凍プロセスで開かれるファイルに関連するファイルイベントをインターセプトするファイルシステムフックである。
【０００４】
さらなる実施形態では、アーカイブストリームベースインストールの解凍エンジンは、最終的なファイル宛先位置を取得し、前記ファイルを前記アーカイブから前記コンピュータシステム上の前記１つ以上の最終的なファイル宛先位置へ直接的に書き込むように構成される。
【０００５】
本発明の実施形態は、添付図面を参照して行う以下の詳細な説明によって、より詳しく理解されるであろう。
【図面の簡単な説明】
【０００６】
【図１】本発明の一実施形態による、ホストコンピュータシステム１０２（例えば、第１のコンピュータシステム）上で実行されるアーカイブストリームベースインストール・アプリケーション１０６を含むコンピュータシステム１００の概略図である。
【図２】本発明の一実施形態による、１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法２００を説明するための概略的なフロー図である。
【図３】本発明の一実施形態による、コールバックフックを使用して行う１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法３００を説明するためのフロー図である。
【図４】図３の方法におけるコールバックフックの使用の一例を示すブロック図である。
【図５】本発明の一実施形態による、ファイルシステムフックを使用して行う１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法３００を説明するためのフロー図である。
【図６】図５の方法におけるファイルシステムフックの使用の一例を示すブロック図である。
【図７】本発明の一実施形態による、ホストコンピュータシステム７０２上で実行される、アーカイブストリームベースインストール・解凍エンジン７０６を含むコンピュータシステム７００の概略図である。
【図８】本発明の一実施形態による、図７に示したアーカイブストリームベース・解凍エンジン７０６を使用して行う１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法８００を説明するためのフロー図である。
【発明を実施するための形態】
【０００７】
本発明による実施形態では、アーカイブが解凍された際に、ファイルをアーカイブからファイルシステム内の１つ以上の最終的なファイル宛先へ直接的にストリームする。アーカイブファイルは、一時的な保存位置（例えば、システムの一時フォルダ）に一旦書き込んだ後に最終的な位置に書き込むのではなく、最終的なファイル宛先に一度で書き込まれる。したがって、アーカイブファイルのインストール時間を短くすることができる。
【０００８】
ある実施形態では、前記アーカイブはファイルを解凍する順序を決定し、前記アーカイブの解凍がインストール処理を開始させる。前記アーカイブからファイルを連続して処理することにより、オペレーティングシステムが先読みして要求前にメモリをバッファすることができるので、ファイルシステム上で又はアーカイブ内でランダムシークする場合よりも高い性能を提供することができる。
【０００９】
図１は、本発明の一実施形態による、ホストコンピュータシステム１０２（例えば、第１のコンピュータシステム）上で実行されるアーカイブストリームベースインストール・アプリケーション１０６を含むコンピュータシステム１００の概略図である。ホストコンピュータシステム１０２（クライアント又はユーザデバイスとも称する）は一般に、中央演算処理装置（ＣＰＵ）１０８（以降、プロセッサ１０８と称する）、入出力（Ｉ／Ｏ）インターフェース１１０、メモリ１１２、及びオペレーティングシステム１０４を備える。ある実施形態では、アーカイブストリームベースインストール・アプリケーション１０６は、ホストコンピュータシステム１０２のメモリ１１２に格納されており、ホストコンピュータシステム１０２上で実行される。
【００１０】
ある実施形態では、メモリ１１２は、ファイルを永久的に記憶する記憶媒体（図示せず）（不揮発性メモリ、非一時的記憶メモリ、非一時的記憶媒体、又は永久記憶メモリとも称する）を含む。例えば、ある実施形態では、前記記憶媒体は、ハードドライブ（例えば、磁気ハードドライブ、フレキシブルディスク、ＣＤ−ＲＯＭ、及び／又はＤＶＤ）である。一般的に、永久記憶メモリ（例えば、磁気ハードドライブ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ）に格納されたファイルは、ホストコンピュータシステム１０２の電源を切っても、その影響を受けずに保持される（すなわち、失われない）。
【００１１】
様々な実施形態では、メモリ１１２は、ファイルを永久的に記憶しない揮発性メモリ（一時的記憶メモリ、非永久記憶媒体、非永久記憶メモリとも称する）をさらに含む。一般的に、非永久記憶メモリに格納されたファイルは、ホストコンピュータシステム１０２の電源を切ると失われる。ある実施形態では、ホストコンピュータシステム１０２は、該システム上でのファイルの格納を管理するのに、ファイルシステム（図示せず）を利用する。
【００１２】
ホストコンピュータシステム１０２は、キーボード１１８、マウス１２６、プリンタ１２０及びディスプレイデバイス１２２などの標準的なデバイス、並びに、１つ以上の標準的な入出力（Ｉ／Ｏ）デバイス１２４をさらに備え得る。入出力（Ｉ／Ｏ）デバイス１２４としては、例えば、コンパクトディスク（ＣＤ）若しくはＤＶＤドライブ、フレキシブルディスクドライブ、又はホストコンピュータ１０２との間でデータの入出力を行うためのその他のデジタル信号若しくは波形信号用のポートなどがある。ある実施形態では、アーカイブストリームベースインストール・アプリケーション１０６は、アーカイブストリームベースインストール・アプリケーション１０６を記憶しているＣＤ、ＤＶＤ又はフレキシブルディスクなどからＩ／Ｏデバイス１２４を介してホストコンピュータシステム１０２にロードされる。
【００１３】
ある実施形態では、アーカイブストリームベースインストール・アプリケーション１０６は、アーカイブ１１４、解凍エンジン１４０、宛先書き換えエンジン１４２、及びキーマップ・データーベース１４４を含む。ある実施形態では、アーカイブ１１４は、対象コンピュータシステム（例えば、ホストコンピュータシステム１０２）上にインストールされる１つ以上のファイル及び／又はファイルフォルダを含む。ある実施形態では、アーカイブ１１４は、鍵がかけられたアーカイブであり、解凍すべき各フォルダはキー識別子によって識別される。
【００１４】
ある実施形態では、解凍エンジン１４０は、アーカイブ１１４からファイルを読み出して、読み出したアーカイブファイルをホストコンピュータシステム１０２に書き込むアプリケーション（例えば、プログラムコード）である。ある実施形態では、キーマップ・データーベース１４４は、アーカイブ１１４内のファイルに対応する最終的な宛先情報を含む情報データーベースである。ある実施形態では、キーマップ・データーベース１４４は、キー識別子とそれに対応する最終的な宛先パス（例えば、最終的な宛先位置）を有するエントリを含む。
【００１５】
ある実施形態では、宛先書き換えエンジン１４２は、解凍エンジン１４０によって行われるアーカイブ１１４からホストコンピュータシステム１０２上の最終的な宛先（例えば、ファイルシステム宛先１１６）へのファイルの解凍を、キーマップ・データーベース１４４の情報に従って実行するアプリケーション（例えば、プログラムコード）である。アーカイブストリームベースインストール・アプリケーション１０６の様々な構成要素は、図２〜６を参照しつつさらに詳細に説明される。
【００１６】
ある実施形態では、ホストコンピュータシステム１０２は、ネットワーク１２８によって、システム１００のサーバコンピュータシステム１３０に接続される。サーバコンピュータシステム１３０は一般に、プロセッサ１３４、メモリ１３２、及びネットワークインタフェース１３６を備える。
【００１７】
また、ホストコンピュータシステム１０２は、ネットワーク１２８によって、他のコンピュータシステム（例えば、コンピュータシステム１３８）とも接続可能である。ある実施形態では、コンピュータシステム１３８は、ホストコンピュータシステム１０２と同様であり、例えば、中央演算処理装置、入出力（Ｉ／Ｏ）インターフェース、及びメモリを備えている。コンピュータシステム１３８は、キーボード、マウス、プリンタ、ディスプレイデバイス、及びＩ／Ｏデバイスなどの標準的なデバイスをさらに備え得る。コンピュータシステム１３８のこれらの様々なハードウェア構成要素は、本発明の本質から逸脱するのを避けるために説明しない。
【００１８】
ネットワーク１２８は、ユーザが関心を持つあらゆるネットワーク又はネットワークシステムであり得る。様々な実施形態では、ネットワークインタフェース１３６及びＩ／Ｏインタフェース１１０は、アナログモデム、デジタルモデム、又はネットワークインタフェースカードなどを含む。ホストコンピュータシステム１０２、コンピュータシステム１３８、及びサーバコンピュータシステム１３０の特定の種類及び構成は、本実施形態に必須ではない。
【００１９】
図２は、本発明の一実施形態による、１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法２００を説明するための概略的なフロー図である。図１及び図２を参照して、ある実施形態では、プロセッサ１０８でアーカイブストリームベースインストール・アプリケーション１０６を実行することにより、方法２００が次のようにして実施される。
【００２０】
本実施形態では、アーカイブストリームベースインストール・アプリケーション１０６は、ホストコンピュータシステム１０２にインストールされている。ある実施形態では、方法２００は、開始ステップ２０２で開始され、その後フローは、アーカイブストリームベースインストール・アプリケーションを開始するステップ２０４へ進む。
【００２１】
アーカイブストリームベースインストール・アプリケーションを開始するステップ２０４では、ホストコンピュータシステム１０２上でアーカイブストリームベースインストール・アプリケーション１０６を開始する。アーカイブストリームベースインストール・アプリケーションを開始するステップ２０４からは、フローは、アーカイブから最終的な宛先へファイルを直接的に解凍するステップ２０６へ進む。
【００２２】
アーカイブから最終的な宛先へファイルを直接的に解凍するステップ２０６では、ホストコンピュータシステム１０２上にインストールすべきアーカイブファイルを、アーカイブ（例えば、アーカイブ１１４）から自動的に直接的に解凍し、ホストコンピュータシステム１０２上の１つ以上の最終的な宛先（例えば、最終的なファイル宛先１１６）に書き込む。アーカイブから最終的な宛先へファイルを直接的に解凍するステップ２０６からは、フローは、終了ステップ２０８へ進み、方法２００の処理を終了する。以下、アーカイブからホストコンピュータシステム１０２上の最終的な宛先へファイルを直接的に解凍するステップについての様々の実施形態を、図３〜６を参照しつつ詳細に説明する。
【００２３】
図３は、本発明の一実施形態による、コールバックフック（call back hook）を使用して行う１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法３００を説明するためのフロー図である。図４は、図３の方法におけるコールバックフックの使用の一例を示すブロック図である。
【００２４】
図４を参照して、ある実施形態では、アーカイブストリームベースインストール・アプリケーション１０６Ａは、宛先書き換えエンジン１４２Ａ、アーカイブ１１４Ａ、解凍エンジン１４０Ａ、及びキーマップ・データーベース１４４Ａを含む。ある実施形態では、キーマップ・データーベース１４４Ａは、アーカイブ１１４Ａのフォルダ及び／又はファイルと最終的なファイル宛先（例えば、ファイル宛先１１６Ａ）とを対応させた情報を含んでいる。詳しく説明すると、ある実施形態では、キーマップ・データーベース１４４Ａは、名前と数値とが対になったルックアップテーブルである。
【００２５】
図１〜４を参照して、ある実施形態では、プロセッサ１０８でアーカイブストリームベースインストール・アプリケーション１０６を実行することにより、方法３００が次のようにして実施される。アーカイブは１つ以上のフォルダを含むことがあり、各フォルダは１つ以上のファイルペイロード及び／又はサブフォルダを有して個々のファイルを含むことがあるので、本明細書中でのファイルへの言及はフォルダにも適用される。例えば、図４に示すように、アーカイブ１１４Ａは、アーカイブフォルダ４０２Ａ、４０２Ｂ及び４０２Ｃを含み、各フォルダは、個々のファイルペイロード（例えば、４０４Ａ、４０４Ｂ、４０４Ｃ）をそれぞれ有する。ある実施形態では、アーカイブ１１４Ａの各アーカイブフォルダは、キーマップ・データーベース１４４Ａの固有キーエントリに対応する埋込型キー（例えば、固有キー）を含む。ある実施形態では、方法３００は、開始ステップ３０２で開始され、その後フローは、コールバックを登録するステップ３０４へ進む。
【００２６】
コールバックを登録するステップ３０４では、宛先書き換えエンジン１４２Ａが、コールバックを解凍エンジン１４０Ａに登録する。コールバック及びコールバックの登録は、当業者には周知であるので、本発明の本質から逸脱するのを避けるためにこれ以上は説明しない。コールバックを登録するステップ３０４からは、フローは、解凍処理を開始するステップ３０６へ進む。
【００２７】
解凍処理を開始するステップ３０６では、解凍エンジン１４０Ａの解凍処理を開始する。ある実施形態では、宛先書き換えエンジン１４２Ａが、解凍エンジン１４０Ａの解凍処理を開始させる。解凍エンジンの開始は、当業者には周知であるので、本発明の本質から逸脱するのを避けるためにこれ以上は説明しない。解凍処理を開始するステップ３０６からは、フローは、解凍すべきファイルをチェックするステップ３０８へ進む。
【００２８】
解凍すべきファイルをチェックするステップ３０８では、アーカイブ１１４Ａから解凍すべきファイルが存在するか否かを判断する。詳しく説明すると、アーカイブストリームベースインストール・アプリケーション１０６Ａの解凍エンジン１４０がアーカイブ１１４へアクセスし、解凍すべきファイルがアーカイブ１１４Ａ内に存在するか否かを判断する。アーカイブ１１４Ａから解凍すべきファイルが存在しないと判断された場合（ＮＯ）、フローは、終了ステップ３２４へ進み、方法３００の処理を終了する。一方、アーカイブ１１４から解凍すべきファイルが存在すると判断された場合（ＹＥＳ）、フローは、コールバックを送信するステップ３１０へ進む。
【００２９】
コールバックを送信するステップ３１０では、解凍エンジンは、前記ファイルについてのアーカイブ指定ファイル宛先（archive specified file destination）を示すコールバックを生成し送信する。詳しく説明すると、ある実施形態では、解凍エンジン１４０Ａは、コールバックを生成し、宛先書き換えエンジン１４２Ａへ送信する。
【００３０】
ある実施形態では、前記コールバックは、前記ファイルの宛先を示す、現在のアーカイブファイルのアーカイブ指定パス（archive specified path）を含む。例えば、解凍エンジン１４０Ａが、アーカイブフォルダ４０２Ａが解凍されるべきだと判断した場合、解凍エンジン１４０Ａは、アーカイブフォルダ４０２Ａについてのアーカイブ指定ファイル宛先を含むコールバックを生成し、宛先書き換えエンジン１４２Ａへ送信する。ある実施形態では、アーカイブ指定パスは、アーカイブ（例えば、アーカイブ１１４Ａ）に指定されているパスである。コールバックを送信するステップ３１０からは、フローは、キーマップパスを検索するステップ３１２へ進む。
【００３１】
キーマップパスを検索するステップ３１２では、宛先書き換えエンジン１４２Ａが前記コールバックを受信し、前記アーカイブファイルについてのキーマップパスをキーマップ・データーベース１４４Ａで検索する。例えば、ある実施形態では、宛先書き換えエンジン１４２Ａは、前記コールバックを受信するとキーマップ・データーベース１４４Aにアクセスして、前記アーカイブファイルの前記識別子（例えば、固有キー）に対応するキーマップ宛先を取得する。
【００３２】
前述したように、ある実施形態では、キーマップ・データーベース１４４Ａは、名前と数値とが対になったルックアップテーブルである。例えば「固有キー／フォルダ／ファイル．ｅｘｔ」などのアーカイブファイルの名前を、キーマップ・データーベース１４４Ａで検索し、その名前に対応する数値がキーマップ指定パス（すなわち、最終的な宛先パス）となる。キーマップパスを検索するステップ３１２からは、フローは、宛先書き換えをチェックするステップ３１４へ進む。
【００３３】
宛先書き換えをチェックするステップ３１４では、前記アーカイブファイルの宛先を、アーカイブ指定パス宛先からキーマップパス宛先に書き換えるべきか否かを判断する。ある実施形態では、宛先書き換えエンジン１４２Ａは、前記コールバックに含まれる前記アーカイブ指定パスを、キーマップ・データーベース１４４Ａから取得したキーマップパスと比較する。
【００３４】
前記アーカイブファイルに対応するキーマップパスが前記アーカイブ指定パスと異なる場合は、前記ファイルの宛先を前記キーマップパスによって指定された最終的な宛先に書き換える必要がある。一方、前記アーカイブファイルに対応する前記キーマップパスが前記アーカイブ指定パスと異ならない場合は、両パスの最終的な宛先は同一となるので、前記ファイルの宛先を書き換える必要はない。
【００３５】
前記ファイルの宛先を書き換える必要がないと判断された場合（ＮＯ）、フローは、コールバック返答を送信するステップ３１８へ進む。一方、前記ファイルの宛先を書き換える必要があると判断された場合（ＹＥＳ）、フローは、ファイルの宛先を変更するステップ３１６へ進む。
【００３６】
ファイルの宛先を変更するステップ３１６では、前記アーカイブ指定パスを変更する（すなわち、キーマップ・データーベース１４４Ａで検索されたキーマップパスと置き換える）。詳しく説明すると、宛先書き換えエンジン１４２Ａは、前記アーカイブ指定パスではなく前記キーマップ指定パスを含むコールバック返答を生成する。ファイルの宛先を変更するステップ３１６からは、フローは、コールバック返答を送信するステップ３１８へ進む。
【００３７】
コールバック返答を送信するステップ３１８では、コールバックへの返答（ここではコールバック返答と称する）を、宛先書き換えエンジン１４２Ａから解凍エンジン１４０Ａへ送信する。ある実施形態では、例えば、宛先を書き換える必要がなく、アーカイブ指定パスが置き換えられない場合は、前記コールバック返答はアーカイブ指定パスを含む。
【００３８】
一方、ある実施形態では、ステップ３１６において前記アーカイブ指定パスが置き換えられた場合は、前記コールバック返答はアーカイブ指定パスではなくキーマップパスを含む。このようにして、解凍エンジン１４０Ａに、特定のアーカイブファイルについての最終的なファイル宛先が与えられる。コールバック返答を送信するステップ３１８からは、フローは、ファイル宛先を開くステップ３２０へ進む。
【００３９】
ファイル宛先を開くステップ３２０では、解凍エンジン１４０Ａが、前記コールバック返答に指定されているファイル宛先位置を開く。詳しく説明すると、ある実施形態では、前記ファイルのホストコンピュータシステム１０２上の最終的な宛先が開かれる。例えば、ある実施形態では、解凍エンジン１４０Ａは、宛先書き換えエンジン１４２Ａから前記コールバック返答を受信し、そのコールバック返答に指定されたファイル宛先を開く。
【００４０】
したがって、ある実施形態では、アーカイブ指定パスが置き換えられなかった場合は、最終的なファイル宛先は、アーカイブ指定パスによって指定されたファイル位置となる。一方、ステップ３１６においてアーカイブ指定パスが置き換えられた場合は、最終的なファイル宛先は、キーマップパスによって指定されたファイル位置となる。ファイル宛先を開くステップ３２０からは、フローは、ファイルを書き込むステップ３２２へ進む。
【００４１】
ファイルを書き込むステップ３２２では、前記アーカイブファイルを、アーカイブ１１４からステップ３２０において開かれたファイル宛先に直接的に書き込む。詳しく説明すると、ある実施形態では、解凍エンジン１４０Ａは、ファイル（例えば、アーカイブフォルダ４０２Ａ）を、アーカイブ１１４Ａから、コールバック返答によって指定された最終的なファイル宛先１１６に直接的に書き込む。このようにして、前記フォルダは、アーカイブ１１４Ａから、最終的なファイル宛先（例えば、ファイル宛先１１６Ａ）に直接的に書き込まれる。ファイルを書き込むステップ３２２からは、フローは、解凍すべきファイルをチェックするステップ３０８へ戻る。ステップ３０８では、前述したように、解凍すべきファイル（例えば、次のファイル）がアーカイブ１１４Ａ内に存在するか否かを判断する。アーカイブ１１４Ａから解凍すべきファイルが存在しなくなるまで、ステップ３０８〜３２２が繰り返される。解凍すべきファイルが存在しなくなると（ＮＯ）、フローは、ステップ３０８から終了ステップ３２４へ進み、方法３００の処理を終了する。
【００４２】
前述の実施形態は、解凍処理中に、ファイルの宛先を対象コンピュータシステム（例えば、ホストコンピュータシステム１０２）上の最終的なファイル宛先へ直接的に書き換えるのに、コールバックフックを使用した。他の実施形態では、解凍処理中に、ファイルの宛先を最終的なファイル宛先へ直接的に書き換えるのに、ファイルシステムフックが使用されることを、図５〜６を参照しつつ説明する。
【００４３】
図５は、本発明の一実施形態による、ファイルシステムフック（file system hook）を使用して行う１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法５００を説明するためのフロー図である。図６は、図５の方法におけるファイルシステムフックの使用の一例を示すブロック図である。
【００４４】
図６を参照して、ある実施形態では、アーカイブストリームベースインストール・アプリケーション１０６Ｂは、宛先書き換えエンジン１４２Ｂ、アーカイブ１１４Ｂ、解凍エンジン１４０Ｂ、及びキーマップ・データーベース１４４Ｂを含む。ある実施形態では、キーマップ・データーベース１４４Ｂは、アーカイブ１１４Ｂのフォルダ及び／又はファイルと最終的なファイル宛先（例えば、ファイル宛先１１６Ｂ）とを対応させた情報を含んでいる。詳しく説明すると、ある実施形態では、キーマップ・データーベース１４４Ｂは、名前と数値とが対になったルックアップテーブルである。
【００４５】
図１、２、５及び６を参照して、ある実施形態では、プロセッサ１０８でアーカイブストリームベースインストール・アプリケーション１０６Ｂを実行することにより、本発明に係る方法５００が以下のように実施される。アーカイブは１つ以上のフォルダを含むことがあり、各フォルダは１つ以上のファイルペイロード及び／又はサブフォルダを有し個々のファイルを含むことがあるので、本明細書中でのファイルへの言及はフォルダにも適用される。
【００４６】
例えば、図６に示すように、アーカイブ１１４Ｂは、アーカイブフォルダ６０２Ａ、６０２Ｂ及び６０２Ｃを含み、各フォルダは、別々のファイルペイロード（例えば、６０４Ａ、６０４Ｂ、６０４Ｃ）をそれぞれ有する。ある実施形態では、アーカイブ１１４Ｂの各アーカイブフォルダは、キーマップ・データーベース１４４Ｂ内の固有キーエントリに対応する埋込型キー（例えば、固有キー）を含む。ある実施形態では、方法５００は、開始ステップ５０２で開始され、その後フローは、ファイルシステムをフックするステップ５０４へ進む。
【００４７】
ファイルシステムをフックするステップ５０４では、ファイルシステムフックを、ホストコンピュータシステム１０２上にインストールする。詳しく説明すると、ある実施形態では、宛先書き換えエンジン１４２Ｂが、ファイルシステムフックをホストコンピュータシステム１０２上にインストールする。ある実施形態では、前記ファイルシステムフックは、選択されたファイルシステムのイベント（例えば、ホストコンピュータシステム１０２のファイルシステム（図示せず）からの呼び出しへの返答など）を、呼び出しモジュール（例えば、解凍エンジン１４０Ｂ）が受信する前にインターセプトする。
【００４８】
前記ファイルシステムフックは、様々なファイルシステムフック技術のうちのいずれかを使用して実施することができ、例えば、コールテーブル（図示せず）をファイルシステムにフックすることにより実施することができる。ファイルシステムフック技術は、当業者には周知であるので、本発明の本質から逸脱するのを避けるためにこれ以上は説明しない。ファイルシステムをフックするステップ５０４からは、フローは、解凍処理を開始するステップ５０６へ進む。
【００４９】
解凍処理を開始するステップ５０６では、解凍エンジン１４０Ｂの解凍処理を開始する。ある実施形態では、宛先書き換えエンジン１４２Ｂが、解凍エンジン１４０Ｂの解凍処理を開始させる。解凍エンジンの開始は、当業者には周知であるので、本発明の本質から逸脱するのを避けるためにこれ以上は説明しない。解凍処理を開始するステップ５０６からは、フローは、解凍すべきファイルをチェックするステップ５０８へ進む。
【００５０】
解凍すべきファイルをチェックするステップ５０８では、アーカイブ１１４Ｂから解凍すべきファイルが存在するか否かを判断する。詳しく説明すると、アーカイブストリームベースインストール・アプリケーション１０６Ｂの解凍エンジン１４０Ｂがアーカイブ１１４Ｂへアクセスし、解凍すべきファイルがアーカイブ１１４Ｂ内に存在するか否かを判断する。アーカイブ１１４Ｂから解凍すべきファイルが存在しないと判断された場合（ＮＯ）、フローは、終了ステップ５２６へ進み、方法５００の処理を終了する。一方、アーカイブ１１４Ｂから解凍すべきファイルが存在すると判断された場合（ＹＥＳ）、フローは、ファイルシステムを呼び出すステップ５１０へ進む。
【００５１】
ファイルシステムを呼び出すステップ５１０では、ホストコンピュータシステム１０２のファイルシステム（図示せず）を呼び出して、前記解凍すべきファイルのアーカイブ指定ファイル宛先を開く。詳しく説明すると、ある実施形態では、前記解凍すべきファイルについての前記アーカイブ指定パスによって指定された前記ファイル位置を開くために、解凍エンジン１４０Ｂは、前記ファイルシステムへの呼び出しを生成して送信する。ファイルシステムを呼び出すステップ５１０からは、フローは、呼び出しに対する返答をストールするステップ５１２へ進む。
【００５２】
呼び出しに対する返答をストールするステップ５１２では、ファイルシステムへの呼び出しをストールする。具体的には、ある実施形態では、前記ファイルシステムへの呼び出しに対する返答を前記ファイルシステム上の前記フックによってインターセプトし、前記返答の出力先を宛先書き換えエンジン１４２Ｂへ変更する。前記宛先書き換えエンジン１４２Ｂは、前記返答を受け取り、さらなる処理のためにストールする。ある実施形態では、前記呼び出しに対する返答は、前記呼び出しにより要求されたファイル位置を有するファイルハンドルを含む。呼び出しに対する返答をストールするステップ５１２からは、フローは、解凍処理に関連するか否かをチェックするステップ５１４へ進む。
【００５３】
解凍処理に関連するか否かをチェックするステップ５１４では、前記ストールされた返答が前記解凍エンジンからの呼び出しに応答したものであるか否かを判断する。前記返答が解凍エンジン１４０Ｂ以外の処理によって生成された呼び出しに応答したものである可能性もあるので、前記返答が解凍エンジン１４０Ｂに関連したものであるか否かを判断するためにチェックが行われる。
【００５４】
例えば、ある実施形態では、解凍エンジン１４０Ｂのパスが指定されているかどうかを調べるために、前記返答の呼び出し元パラメータがチェックされる。解凍エンジン１４０Ｂのパスが指定されている場合は、前記呼び出しは前記解凍処理に応答したものであり、そうでない場合は、前記呼び出しは前記解凍処理に応答したものではない。他の実施形態では、前記返答が解凍処理に応答したものかどうかを調べるのに、他の技術を使用することができる。
【００５５】
前記ファイルが解凍処理に応答したものではないと判断された場合（ＮＯ）、フローは、ファイルハンドルを返信するステップ５２０へ進む。一方、前記ファイルが解凍処理に応答したものであると判断された場合（ＹＥＳ）、フローは、宛先書き換えをチェックするステップ５１６へ進む。
【００５６】
宛先書き換えをチェックするステップ５１６では、前記ファイルの宛先を、前記ファイルハンドルに指定されているアーカイブ指定パス宛先からキーマップパス宛先に書き換えるべきか否かを判断する。例えば、ある実施形態では、宛先書き換えエンジン１４２Ｂは、コールバックを受信するとキーマップ・データーベース１４４Ｂにアクセスして、前記アーカイブファイルの前記識別子（例えば、固有キー）に対応するキーマップ宛先を取得する。
【００５７】
前述したように、ある実施形態では、キーマップ・データーベース１４４Ｂは、名前と数値とが対になったルックアップテーブルである。例えば「固有キー／フォルダ／ファイル．ｅｘｔ」などのアーカイブファイルの名前が、キーマップ・データーベース１４４Ｂで検索され、その名前に対応する数値がキーマップ指定パス（すなわち、最終的な宛先パス）となる。ある実施形態では、宛先書き換えエンジン１４２Ｂは、前記返信されたファイルハンドルに含まれる前記アーカイブ指定パスを、キーマップ・データーベース１４４Ｂから取得したキーマップパスと比較する。
【００５８】
前記アーカイブファイルに対応するキーマップパスが前記ファイルハンドルに含まれるアーカイブ指定パスと異なる場合は、前記ファイルの宛先を前記キーマップパスによって指定された最終的な宛先に書き換える必要がある。一方、前記アーカイブファイルに対応する前記キーマップパスが前記アーカイブ指定パスと異ならない場合は、両パスの最終的な宛先は同一となるので、前記ファイルの宛先を書き換える必要はない。
【００５９】
前記ファイルの宛先を書き換える必要がないと判断された場合（ＮＯ）、フローは、ファイルハンドルを返信するステップ５２０へ進む。一方、前記ファイルの宛先を書き換える必要があると判断された場合（ＹＥＳ）、フローは、ファイルの宛先を変更するステップ５１８へ進む。
【００６０】
ファイルの宛先を変更するステップ５１８では、前記ストールされたファイルハンドルに指定されているファイルの宛先を変更する（すなわち、キーマップパス宛先と置き換える）。ファイルの宛先を変更するステップ５１８からは、フローは、ファイルハンドルを返信するステップ５２０へ進む。
【００６１】
ファイルハンドルを返信するステップ５２０では、ステップ５１８において変更されたファイルハンドルを、呼び出し側に返信する。したがって、ある実施形態では、前記呼び出し側が解凍エンジン１４０Ｂである場合は、前記ファイルハンドルは解凍エンジン１４０Ｂに返信される。前記呼び出しが解凍処理に応答したものではない場合は、前記ファイルハンドルは、変更されずに前記呼び出し側に返信される。ファイルハンドルを返信するステップ５２０からは、フローは、ファイル宛先を開くステップ５２２へ進む。
【００６２】
ファイル宛先を開くステップ５２２では、解凍エンジン１４０Ｂが、前記返信されたファイルハンドルに指定されているファイル宛先位置を開く。詳しく説明すると、ある実施形態では、前記ファイルのホストコンピュータシステム１０２上の最終的な宛先が開かれる。
【００６３】
例えば、ある実施形態では、解凍エンジン１４０Ｂは、宛先書き換えエンジン１４２Ｂから返信されたファイルハンドルを受け取り、そのファイルハンドルに指定されているファイル宛先を開く。ある実施形態では、前記ファイルハンドルがキーマップ宛先に変更された場合は、キーマップ・データーベースに指定されたキーマップパス宛先が、解凍エンジン１４０Ｂによってファイルシステム内で開かれる。ファイル宛先を開くステップ５２２からは、フローは、ファイルを書き込むステップ５２４へ進む。
【００６４】
ファイルを書き込むステップ５２４では、前記アーカイブファイルを、アーカイブ１１４Ｂからステップ５２２において開かれたファイル宛先に直接的に書き込む。詳しく説明すると、ある実施形態では、解凍エンジン１４０Ｂは、ファイル（例えば、アーカイブフォルダ６０２A）を、アーカイブ１１４Ｂから、返信されたファイルハンドルに指定されている最終的なファイル宛先１１６Ｂに直接的に書き込む。このようにして、前記フォルダは、アーカイブ１１４Bから、最終的なファイル宛先（例えば、ファイル宛先１１６B）に直接的に書き込まれる。ファイルを書き込むステップ５２４からは、フローは、解凍すべきファイルをチェックするステップ５０８へ戻る。ステップ５０８では、前述したように、解凍すべきファイル（例えば、次のファイル）がアーカイブ１１４Ｂ内に存在するか否かを判断する。アーカイブ１１４Ｂに解凍すべきファイルが存在しなくなるまで、ステップ５０８〜５２４が繰り返される。解凍すべきファイルが存在しなくなると（ＮＯ）、ステップ５０８から終了ステップ５２６へ進み、方法５００の処理を終了する。
【００６５】
前述の実施形態では、解凍エンジンの解凍処理を、コールバックフック（方法３００）やファイルシステムフック（方法５００）を使用してフックした。さらなる実施形態では、アーカイブストリームベース・インストール方法を実施するように構成された新規のアーカイブ解凍エンジンを、図７〜８を参照しつつ説明する。
【００６６】
図７は、本発明の一実施形態による、ホストコンピュータシステム７０２上で実行される、アーカイブストリームベースインストールの解凍エンジン７０６を含むコンピュータシステム７００の概略図である。ある実施形態では、アーカイブストリームベースインストールの解凍エンジン７０６は、アーカイブ７１４とキーマップ・データーベース７４０を含む。
【００６７】
ある実施形態では、アーカイブ７１４は、対象コンピュータシステム（例えば、ホストコンピュータシステム７０２）にインストールすべき１つ以上のファイル及び／又はファイルフォルダを含む。ある実施形態では、アーカイブ７１４は鍵がかけられたアーカイブであり、解凍すべき各フォルダはキー識別子によって識別される。ある実施形態では、キーマップ・データーベース７４０は、アーカイブ７１４内のファイルに対応する最終的な宛先情報を含む情報データーベースである。ある実施形態では、キーマップ・データーベース７４０は、キー識別子とそれに対応する最終的な宛先パス（例えば、最終的な宛先位置）を有するエントリを含む。ある実施形態では、アーカイブストリームベース・解凍エンジン７０６は、例えばＩ／Ｏデバイス７２４を介して、ホストコンピュータシステム７０２上にロードされる。
【００６８】
図８は、本発明の一実施形態に係る、図７に示したアーカイブストリームベース・解凍エンジン７０６を使用して行う１つ以上のソフトウエアファイルのアーカイブストリームベースインストール方法８００を説明するためのフロー図である。図７及び図８を参照して、ある実施形態では、プロセッサ７０８でアーカイブストリームベース・解凍エンジン７０６を実行することにより、本発明に係る方法８００が次のようにして実施される。ある実施形態では、方法８００は、開始ステップ８０２で開始され、その後フローは、アーカイブストリームベース・解凍エンジンを開始するステップ８０４へ進む。
【００６９】
アーカイブストリームベース・解凍エンジンを開始するステップ８０４では、ホストコンピュータシステム７０２上でアーカイブ解凍エンジン７０６を開始する。アーカイブストリームベース・解凍エンジンを開始するステップ８０４からは、フローは、宛先書き換えパスを設定するステップ８０６へ進む。
【００７０】
宛先書き換えパスを設定するステップ８０６では、アーカイブストリームベース・解凍エンジン７０６はキーマップ・データーベース７４０にアクセスして、インストールすべき各アーカイブファイルに対応する宛先書き換え用のパスをそれぞれ検索し、各アーカイブファイルに対応する宛先書き換えパスをそれぞれ設定する。
【００７１】
したがって、前述した方法３００又は５００のように、コールバックフック又はファイルシステムフックによって解凍処理をフックし、宛先書き換えパスを検索するのではなく、アーカイブストリームベース・解凍エンジン７０６は、それ自身がキーマップ・データーベース７４０にアクセスして宛先書き換えパスを検索し、アーカイブファイルの宛先書き換えパスを設定する。宛先書き換えパスを設定するステップ８０６からは、フローは、解凍処理を開始するステップ８０８へ進む。
【００７２】
解凍処理を開始するステップ８０８では、アーカイブストリームベース・解凍エンジン７０６が解凍処理を開始する。解凍処理を開始するステップ８０８からは、フローは、解凍すべきファイルをチェックするステップ８１０へ進む。
【００７３】
解凍すべきファイルをチェックするステップ８１０では、アーカイブ７１４から解凍すべきファイルが存在するか否かを判断する。詳しく説明すると、アーカイブストリームベース・解凍エンジン７０６はアーカイブ７１４へアクセスし、解凍すべきファイルがアーカイブ７１４内に存在するか否かを判断する。アーカイブ７１４から解凍すべきファイルが存在しないと判断された場合（ＮＯ）、フローは、終了ステップ８２２へ進み、方法８００の処理を終了する。一方、アーカイブ７１４から解凍すべきファイルが存在すると判断された場合（ＹＥＳ）、フローは、アーカイブパスを取得するステップ８１２へ進む。
【００７４】
アーカイブパスを取得するステップ８１２では、アーカイブストリームベース・解凍エンジン７０６は、アーカイブ７１４から解凍すべき前記ファイルについてのアーカイブ指定パス（例えば「固有キー／フォルダ／ファイル．ｅｘｔ」など）へアクセスする。アーカイブパスを取得するステップ８１２からは、フローは、宛先書き換えをチェックするステップ８１４へ進む。
【００７５】
宛先書き換えをチェックするステップ８１４では、アーカイブストリームベース・解凍エンジン７０６は、アーカイブ指定パスを、キーマップ・データーベース７４０から取得したキーマップパスと比較する。前記アーカイブファイルに対応するキーマップパスが前記アーカイブ指定パスと異なる場合は、前記ファイルの宛先を、前記キーマップパスによって指定された最終的な宛先に書き換える必要がある。
【００７６】
一方、前記アーカイブファイルに対応するキーマップパスが前記アーカイブ指定パスと異ならない場合は、両パスの最終的なファイル宛先は同一となるので、前記ファイルの宛先を書き換える必要はない。ファイルの宛先を書き換える必要がないと判断された場合（ＮＯ）、フローは、ファイル宛先を開くステップ８１８へ進む。一方、ファイルの宛先を書き換える必要があると判断された場合（ＹＥＳ）、フローは、ファイルの宛先を変更するステップ８１６へ進む。
【００７７】
ファイルの宛先を変更するステップ８１６では、前記アーカイブ指定パスを変更する（例えば、前記アーカイブ指定パスを、キーマップパスすなわち宛先が書き換えられたパスに置き換える）。ファイルの宛先を変更するステップ８１６からは、フローは、ファイルの宛先を開くステップ８１８へ進む。
【００７８】
ファイルの宛先を開くステップ８１８では、最終的なファイル宛先位置を開く。詳しく説明すると、ある実施形態では、前記アーカイブファイルの前記最終的なファイル宛先は、ホストコンピュータシステム７０２上で開かれる。例えば、ある実施形態では、アーカイブ解凍エンジン７０６が、前記ファイル宛先を開く。
【００７９】
したがって、ある実施形態では、アーカイブ指定パスが置き換えられなかった場合は、前記最終的なファイル宛先は、前記アーカイブ指定パスによって指定されたファイル位置となる。一方、ステップ８１６においてアーカイブ指定パスが置き換えられた場合は、前記最終的なファイル宛先は、前記宛先書き換えパスによって指定されたファイル位置となる。ファイルの宛先を開くステップ８１８からは、フローは、ファイルを書き込むステップ８２０へ進む。
【００８０】
ファイルを書き込むステップ８２０では、前記アーカイブファイルを、アーカイブ７１４からステップ８１８において開かれた最終的なファイル宛先に直接的に書き込む。詳しく説明すると、ある実施形態では、アーカイブストリームベース・解凍エンジン７０６は、ファイルを、アーカイブ７１４から、ステップ８１８において開かれた最終的なファイル宛先７１６に直接的に書き込む。ファイルを書き込むステップ８２０からは、フローは、解凍すべきファイルをチェックするステップ８１０へ戻る。ステップ８１０では、前述したように、解凍すべきファイル（例えば、次のファイル）がアーカイブ７１４内に存在するか否かを判断する。アーカイブ７１４から解凍すべきファイルが存在しなくなるまで、ステップ８１０〜８２０が繰り返される。解凍すべきファイルが存在しなくなると（ＮＯ）、ステップ８１０から終了ステップ８２２へ進み、方法８００の処理を終了する。
【００８１】
図１を再び参照して、本発明のある実施形態では、アーカイブストリームベースインストール・アプリケーション１０６は、メモリ１１２に格納されている。本明細書中で使用されるコンピュータメモリという用語は、揮発性メモリ、不揮発性メモリ又はそれら２つの組み合わせを意味する。
【００８２】
アーカイブストリームベースインストール・アプリケーション１０６は、アプリケーションと称しているが、これは一例にすぎない。アーカイブストリームベースインストール・アプリケーション１０６は、或るアプリケーション又はオペレーティングシステムから呼び出し可能なものであるべきである。ある実施形態では、アプリケーションは一般に、任意の実行可能なコードと定義される。さらに、アプリケーション又はオペレーションがある動作を行ったとき、その動作はプロセッサが１つ以上の命令を実行した結果であることは、当業者には明らかであろう。
【００８３】
本発明の実施形態は、パーソナルコンピュータ、ワークステーション、ポータブル機器又はコンピュータ機器のネットワークを含む、任意の適切なハードウェア構成又は手段を使用して実施することができる。他の実施形態では、クライアントサーバ構成以外の他のネットワーク構成（例えば、ピアツーピア、ウェブベース、イントラネット、インターネットネットワーク構成など）が使用される。
【００８４】
ここで、コンピュータプログラム製品は、本発明の実施形態によるコンピュータが読み取り可能なコードを格納又は移植するべく構成された媒体を含む。コンピュータプログラム製品の例としては、ＣＤ−ＲＯＭディスク、ＤＶＤ、ＲＯＭカード、フレキシブルディスク、磁気テープ、コンピュータハードドライブ、ネットワーク上のサーバ、及び、ネットワークを介して伝送されるコンピュータが読み取り可能なコードを表す信号等がある。他の実施形態では、コンピュータプログラム製品は、ＣＤ−ＲＯＭディスク、ＤＶＤ、ＲＯＭカード、フレキシブルディスク、磁気テープ、コンピュータハードドライブ、ネットワーク上のサーバ等の、コンピュータが読み取り可能なコードを格納するように構成された有形記憶媒体を含む。
【００８５】
図１に示すように、この媒体は、コンピュータシステム自体に属するものであり得る。しかしながら、前記媒体は、コンピュータシステムから離間して配置されてもよい。例えば、アーカイブストリームベースインストール・アプリケーション１０６を、プロセッサ１０８とは物理的に異なる場所に存在するメモリ１３２に格納するようにすることもできる。プロセッサ１０８は、メモリ１３２に接続されていなければならない。このことは、クライアントサーバシステムによって実現することができる。或いは、モデム及びアナログライン、又はデジタルインタフェース及びデジタルキャリアラインを介した別のコンピュータとの接続によって実現することができる。
【００８６】
より具体的には、ある実施形態では、ホストコンピュータシステム１０２及び／又はサーバコンピュータシステム１３０は、ポータブルコンピュータ、ワークステーション、双方向ページャ、携帯電話、デジタル無線電話、携帯情報端末、サーバコンピュータ、インターネット機器、又は本明細書中で説明した実施形態の少なくとも１つに従ってアーカイブストリームベースインストール・アプリケーション１０６の機能を実行することができる構成要素を含む他の任意のデバイスである。同様に、他の実施形態では、ホストコンピュータシステム１０２及び／又はサーバコンピュータシステム１３０は、複数の異なるコンピュータ、無線装置、携帯電話、デジタル電話、双方向ページャ、携帯情報端末、サーバコンピュータ、又は本明細書中で説明した方法を実行するために相互接続されたこれらのデバイスの任意の所望の組み合わせから構成される。
【００８７】
上記開示内容に基づき、本発明の一実施形態によるアーカイブストリームベースインストール・アプリケーション１０６の機能を、幅広い種類のコンピュータシステム構成において実施することができる。加えて、アーカイブストリームベースインストール・アプリケーション１０６の機能を、異なるモジュールとして異なるデバイスのメモリに格納することもできる。
【００８８】
例えば、最初は、アーカイブストリームベースインストール・アプリケーション１０６をサーバコンピュータシステム１３０に格納しておき、その後、必要に応じて、アーカイブストリームベースインストール・アプリケーション１０６の一部をホストコンピュータシステム１０２へ転送して、ホストコンピュータシステム１０２上で実行させることもできる。その結果、アーカイブストリームベースインストール・アプリケーション１０６の機能の一部が、サーバコンピュータシステム１３０のプロセッサ１３４上で実行され、残り部分がホストコンピュータシステム１０２のプロセッサ１０８上で実行される。上記開示内容に基づき、当業者であれば、幅広い種類の物理的ハードウェア構成において、ユーザが関心のあるオペレーティングシステム及びコンピュータプログラム言語を用いて、本発明の様々な実施形態を実施することができる。
【００８９】
更なる他の実施形態では、アーカイブストリームベースインストール・アプリケーション１０６は、サーバコンピュータシステム１３０のメモリ１３２に格納される。アーカイブストリームベースインストール・アプリケーション１０６は、ネットワーク１２８を介してホストコンピュータシステム１０２のメモリ１１２に転送される。この実施形態では、ネットワークインタフェース１３６及びＩ／Ｏインタフェース１１０は、アナログモデム、デジタルモデム、又はネットワークインタフェースカードを含む。モデムを使用する場合、ネットワーク１２８は通信ネットワークを含み、アーカイブストリームベースインストール・アプリケーション１０６は前記通信ネットワークを介してダウンロードされる。
【００９０】
上記の開示内容は、本発明の例示的な実施形態を示すものである。本発明の範囲は、上記の例示的な実施形態に限定されるものではない。本明細書中に明示的に記載されている又は示唆されているか否かに関わらず、当業者であれば、本明細書の開示内容に基づいて本発明の実施形態に種々の改変を加えて実施し得るであろう。
【符号の説明】
【００９１】
２００  方法
２０２  開始ステップ
２０４  アーカイブストリームベースインストール・アプリケーションを開始するステップ
２０６  アーカイブから最終的なファイル宛先へファイルを直接的に解凍するステップ
２０８  終了ステップ
【図１】
2009230758.tif 000003
【図２】
2009230758.tif 000004
【図３】
2009230758.tif 000005
【図４】
2009230758.tif 000006
【図５】
2009230758.tif 000007
【図６】
2009230758.tif 000008
【図７】
2009230758.tif 000009
【図８】
2009230758.tif 000010