JP2007521528A - ボリュームイメージを生成すること - Google Patents

ボリュームイメージを生成すること Download PDF

Info

Publication number
JP2007521528A
JP2007521528A JP2005508278A JP2005508278A JP2007521528A JP 2007521528 A JP2007521528 A JP 2007521528A JP 2005508278 A JP2005508278 A JP 2005508278A JP 2005508278 A JP2005508278 A JP 2005508278A JP 2007521528 A JP2007521528 A JP 2007521528A
Authority
JP
Japan
Prior art keywords
image
file data
file
software
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2005508278A
Other languages
English (en)
Inventor
コーエン ジェイソン
エル.グリーン ブルース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007521528A publication Critical patent/JP2007521528A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Abstract

ボリュームイメージから任意の1つまたは複数のイメージがリストアできるように、他のソフトウェアの他のイメージと結合することができる第1のソフトウェアの第1のイメージ、およびそれに関する方法(図1)。ボリュームイメージを生成する方法は、第1のソフトウェアから第1のイメージを生成するステップ、第2のソフトウェアから第2のイメージを生成するステップ、および第1のイメージおよび第2のイメージをボリュームイメージに結合するステップを含む。各イメージは、そのソフトウェアの記述的データに対応する第1の記述的データ(メタデータ)を備え、そのソフトウェアのファイルデータに対応するファイルデータを備える。

Description

本発明は、ディスクイメージングの分野に関する。具体的には、本発明は、複数の個別のイメージを、イメージサイズを減少させるためのパッチングを用いて、個別のイメージのそれぞれを再生成することができる単一のボリュームイメージに縮小するシステムおよび方法に関する。
個別のソフトウェアイメージのそれぞれは大量のデータを含む。一般に、ソフトウェアイメージのサイズは大きくなっており、所与のコンピュータの永続的および/または非永続的ストレージスペースのますます大きな量を占める。歴史的に、このサイズは幾何級数的な割合で増加している。たとえば、ある場合には、インストールされたオペレーティングシステム、アプリケーション、ユーティリティ、または他のデータのコピーをキャプチャする必要がある(時々、「ボリュームをキャプチャすること」と言及される)。キャプチャされたコピーの1つの目的は、他のコンピュータへ再配布されることなどのように、後に再利用することができるデータを備えるイメージを生成することである。しばしば、キャプチャされたコピーおよびそのデータにより、膨大な量のスペースが占められる。通常、複数のイメージが単一のコンピュータ読み取り可能な記録媒体にコピーされる。同一のメディア上のこれらの複数のイメージは、典型的にはある点でのみ異なり、たとえば、インストールされたOSに基づいてどのアプリケーション(およびそれらのアプリケーションのどのバージョン)がそのイメージに含まれるかなどである。複数のイメージのいくつかは、単に同一プログラムの異なるSKUまたはエディションである。結果として、それらの複数のイメージ内のデータの大多数は厳密に同一ではないが非常に似ていて、したがって、同一のメディア上のイメージにわたって、他の情報のために用いることのできる大量の冗長なスペースを生成する。
これらの理由から、1つまたは複数のこれらおよび他の不都合に対して処置を取るために、冗長なスペースの量を減少させるためのシステムおよび方法が望まれる。キャプチャされたボリュームからのオリジナルデータのすべてを依然として維持する、可能な限り小さいイメージサイズを提供する必要がある。可能な限り小さいイメージサイズに対する必要は、コンパクトディスクおよびRAMベースのシナリオのためのメモリに大きなイメージを適合させることを可能にし、ネットワークストレージおよび帯域幅要件を減少させることを可能にする。可能な限り小さいイメージサイズを得ることの利点の1つは、イメージが、コンピュータおよび/またはソフトウェアプログラムの顧客に戦略的に有益であることである。
“COMBINED IMAGE VIEWS AND METHODS OF CREATING IMAGES”、米国特許出願第10/173,297号、2002年6月17日出願 米国特許第6216175号 米国特許第6243766号 米国特許第6449764号 米国特許第6496974号 米国特許第6466999号 米国特許第6493871号 米国特許第5745313号 米国特許第6381742号 “Method and System for Updating Software with Smaller Patch Files”、米国特許出願第09/561,447号、2000年4月18日出願
キャプチャされたボリュームからのオリジナルデータのすべてを依然として維持する、可能な限り小さいイメージサイズを提供する必要がある。可能な限り小さいイメージサイズに対する必要は、コンパクトディスクおよびRAMベースのシナリオのためのメモリに大きなイメージを適合させることを可能にし、ネットワークストレージおよび帯域幅要件を減少させることを可能にする。可能な限り小さいイメージサイズを得ることの利点の1つは、それが、ソフトウェアおよびハードウェアのエンドユーザに戦略的に有益であることである。
本発明は、一態様において、複数の個別のソフトウェアプログラム(イメージ)を、個別のイメージのそれぞれを再生成することができる操作可能なボリュームイメージファイルに縮小する、ソフトウェアイメージ結合方法を含む。もう1つの態様において、本発明は、単一の操作可能なボリュームイメージを複数の個別のイメージから生成することにより、従来技術の問題に対して解決策を提供し、単一の操作可能なボリュームイメージは、(1)各個別のイメージ内のファイルを記述する記述的データ(たとえば、メタデータ)をファイルそれら自体の実際のデータから分離すること、(2)複数のイメージにわたって共通である、各個別のイメージ内のデータを分離すること、および(3)類似したバイナリファイルを再構築するためのパッチを用いることにより生成される。各個別のイメージの記述的データは、それぞれボリュームイメージに含まれるが、ボリュームイメージには、共通のデータおよび/またはデルタファイルが1つのコピーのみ含まれる。このことはボリュームイメージのサイズを減少させる。というのは、パッチを除く共通のデータおよび類似のデータが重複していないためである。新しいボリュームイメージは、単一のイメージファイル内の各イメージを識別する記述的データ(メタデータ)、および共通のファイル、デルタファイル、および各イメージに固有なファイルを識別するビットの蓄積を中に含む。
本発明の一実装は、共通のオペレーティングシステムバージョンの上で走る、個別の異なるアプリケーションのストレージ要件を最小化することである。本発明によると、これらの個別の異なるアプリケーションは、単一のボリュームイメージに結合または縮小されることができる。ボリュームイメージは、あたかもそれぞれが個別に分離して格納されていたかのように、個別の異なるアプリケーションのそれぞれのイメージビューをマウントし、改変し、アップデートし、またはリストアすることを可能にする。本発明のソフトウェア機能は、類似のおよび/または共通のファイルを活用するために、複数の単一のファイルイメージを1つのイメージファイルに結合することを可能にする。
ある形において、本発明は、格納されたボリュームイメージを有するコンピュータ読み取り可能な記録媒体を含み、ボリュームイメージは、第1のソフトウェアのデータ構造の第1のイメージおよび第2ソフトウェアのデータ構造の第2のイメージを備え、ボリュームイメージの第1のイメージおよび/または第2のイメージをボリュームイメージからイメージングによりそれぞれ再生成できるように、第1および第2のイメージがボリュームイメージに縮小されている。当該ボリュームイメージは、
第1のソフトウェアの記述的データのイメージと、
第1のソフトウェアのファイルデータのイメージと、
第2のソフトウェアの記述的データのイメージと、
あるファイルデータを除く、第2のソフトウェアのファイルデータのイメージと、
1つまたは複数の第1のイメージのファイルデータと結合されたときに、第2のソフトウェアの除かれたあるファイルデータに対応するデルタファイルのイメージと
を備える。
もう1つの形において、本発明は、第1のソフトウェアの第1のイメージを備え、第2のソフトウェアの第2のイメージを備えるボリュームイメージを含む。当該ボリュームイメージは、
ボリュームイメージのヘッダと、
第1のイメージの第1のメタデータと、
第2のイメージの第2のメタデータと、
第2のイメージではなく第1のイメージのファイルデータの第1のファイルデータと、
第2のイメージと第1のイメージとの間の差異のファイルデータのデルタファイルデータと、
ボリュームイメージの署名と
を備え、第1のイメージおよび/または第2のイメージはボリュームイメージからイメージすることができ、ボリュームイメージのサイズは第1のイメージと第2のイメージのサイズの合計より小さい。
もう1つの形において、本発明は、第1のソフトウェアの第1のイメージを備え、第2のソフトウェアの第2のイメージを備えるボリュームイメージを有するコンピュータ読み取り可能な記録媒体を含む。当該ボリュームイメージは、
ボリュームイメージのヘッダと、
第1のイメージの第1のメタデータと、
第2のイメージの第2のメタデータと、
第2のイメージではなく第1のイメージのファイルデータの第1のファイルデータと、
第2のイメージと第1のイメージとの間の差異のファイルデータのデルタファイルデータと、
ボリュームイメージの署名と
を備え、第1のイメージおよび/または第2のイメージはボリュームイメージからイメージすることができ、ボリュームイメージのサイズは第1のイメージと第2のイメージのサイズの合計より小さい。
もう1つの形において、本発明は方法を含み、当該方法は、
第1のソフトウェアから第1のバイナリファイルを生成するステップであって、第1のバイナリファイルは第1のソフトウェアのファイルデータに対応する第1のバイナリファイルデータを備えるステップと、
第2のソフトウェアから第2のバイナリファイルを生成するステップであって、第2のバイナリファイルは第2のソフトウェアのファイルデータに対応する第2のバイナリファイルデータを備えるステップと、
第1のバイナリファイルと第2のバイナリファイルとの間の差異のデルタファイルを生成するステップと、
第1のバイナリファイルおよびデルタファイルをボリュームイメージに結合するステップと
を含む。
もう1つの形において、本発明は、第1のイメージの第1の複数のバイナリファイルおよび第2のイメージの第2の複数のバイナリファイルを、第1のイメージおよび第2のイメージをイメージングによりそれぞれ再生成することができる単一のボリュームイメージに結合する方法であって、第1および第2の複数のバイナリファイルは共通のファイルデータを備える方法を含む。当該方法は、
第1および第2の複数のバイナリファイルの両方に共通のファイルデータを特定するステップと、
第1のイメージを、第1のヘッダ、第1のメタデータ、第1のファイルデータ、共通のファイルデータ、および第1の署名に分離するステップと、
第2のイメージを、第2のヘッダ、第2のメタデータ、第2のファイルデータ、共通のファイルデータ、第2の署名、および第1の複数のバイナリファイルの1つまたは複数のファイルと第2の複数のバイナリファイルの1つまたは複数のファイルとの間の差異のデルタファイルに分離するステップと、
第1のメタデータ、第2のメタデータ、第1のファイルデータ、第2のファイルデータ、共通のファイルデータ、およびデルタファイルを、ヘッダおよび署名を有する単一のボリュームイメージを構成する単一のイメージに結合するステップと
を含む。
もう1つの形において、本発明は、第1のソフトウェアおよび第2のソフトウェアを、第1のソフトウェアの第1のイメージおよび第2のソフトウェアの第2のイメージをイメージングによりそれぞれ再生成することができる単一のボリュームイメージに結合する方法を含み、当該方法は、
第1のソフトウェアを、複数のファイルを指し示すメタデータを有するベースイメージに変換するステップと、
ベースイメージのすべてのファイルの結合された要約を生成するステップと、
第2のソフトウェアを、複数のファイルを指し示すオフセットテーブルを指し示すメタデータを有する第2のイメージに変換するステップと、
第2のイメージ内の1つまたは複数のファイルとの厳密なマッチについて、結合された要約を検索するステップと、
厳密にマッチしたファイルを指し示すように、第2のイメージのメタデータおよび結合されたイメージのオフセットテーブルをアップデートするステップと、
第2のイメージのメタデータとの類似したマッチについて、メタデータのメタデータを検索するするステップと、
結合されたイメージの一部として、類似的にマッチしたファイルのパッチを生成し、格納するステップと、
結合されたイメージの一部として、厳密にマッチせず、類似的にマッチしない第2のイメージのファイルを格納するステップと
を含む。
もう1つの形において、本発明は、第1のイメージおよび第2のイメージを有するボリュームイメージから第2のイメージをコンピュータ読み取り可能な記録媒体にリストアする方法を含み、当該ボリュームイメージは、第1のイメージおよび第2のイメージの両方に共通な共通のデータ、第1のイメージではなく第2のイメージに特有の第2のファイルデータ、第2のイメージの第2の類似のファイルデータに類似する第1のイメージの第1の類似のファイルデータ、および第1の類似のファイルデータと第2の類似のファイルデータとの間の差異を示すデルタファイルを備える。当該方法は、
共通のファイルデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第2のファイルデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第1の類似のファイルデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第2の類似のファイルデータを生成するために第1の類似のファイルデータにデルタファイルを適用するステップと
を含む。
もう1つの形において、本発明は、第1のイメージおよび第2のイメージを有するボリュームイメージから第2のイメージをコンピュータ読み取り可能な記録媒体にリストアする方法を含み、当該ボリュームイメージは、第1のイメージではなく第2のイメージに特有の第2のファイルデータ、第2のイメージの第2の類似のファイルデータに類似する第1のイメージの第1の類似のファイルデータ、および第1の類似のファイルデータと第2の類似のファイルデータとの間の差異を示すデルタファイルを備える。当該方法は、
第2のファイルデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第1の類似のファイルデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第2の類似のファイルデータを生成するために第1の類似のファイルデータにデルタファイルを適用するステップと
を含む。
もう1つの形において、本発明は、第1のイメージおよび第2のイメージを、コンピュータ読み取り可能な記録媒体の上へ、第1のイメージおよび/または第2のイメージを個別にリストアすることのできるボリュームイメージに結合する方法を含む。第1のイメージは、
第1のイメージおよび第2のイメージの両方に共通な共通のデータと、
第2のイメージの第2の類似のファイルデータに類似する第1の類似のファイルデータを備える、第2のイメージではなく第1のイメージに特有の第1のファイルデータと
を備え、第2のイメージは、
第1のイメージおよび第2のイメージの両方に共通な共通のデータと、
第1のイメージの第1の類似のファイルデータに類似する第2の類似のファイルデータを備える、第1のイメージではなく第2のイメージに特有の第2のファイルデータと
を備える。当該方法は、
共通のデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第1のファイルデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第2の類似のファイルデータを除く第2のファイルデータをコンピュータ読み取り可能な記録媒体にコピーするステップと、
第2の類似のファイルデータと第1の類似のファイルデータとの間の差異を示すデルタファイルを生成するステップと、
生成されたデルタファイルをコンピュータ読み取り可能な記録媒体にコピーするステップと
を含む。
もう1つの形において、本発明は、第1のソフトウェアおよび第2のソフトウェアを、第1のソフトウェアの第1のイメージおよび第2のソフトウェアの第2のイメージをイメージングによりそれぞれ再生成することができる単一のボリュームイメージに結合する方法を含み、方法は、
第1のソフトウェアを、複数のファイルを指し示すメタデータを有するベースイメージに変換するステップと、
ベースイメージのすべてのファイルの結合された要約を生成するステップと、
第2のソフトウェアを、複数のファイルを指し示すオフセットテーブルを指し示すメタデータを有する第2のイメージに変換するステップと、
第2のイメージのメタデータとの類似したマッチについて、メタデータのメタデータを検索するステップと、
結合されたイメージの一部として、類似的にマッチしたファイルのパッチを生成し、格納するステップと
を含む。
あるいは、本発明は、様々な他の方法および装置を含むことができる。
他の特徴は、以下において一部明らかになり、一部指摘される。
対応する参照番号は、諸図面を通して対応する部分を示している。
図1に示すように、特許文献1に従い結合されたイメージ300は、第1のソフトウェアの第1のイメージ302および第2のソフトウェアの第2のイメージ304を備える。結合されたイメージは、結合されたイメージ300のヘッダ306、第1のイメージ302に対応する第1のメタデータ308、第2のイメージ304に対応する第2のメタデータ310、第2のイメージ304ではなく第1のイメージ302のファイルデータの第1のファイルデータ312、第1のイメージ302ではなく第2のイメージ304のファイルデータの第2のファイルデータ314、(すべてのファイルデータが、結合されたイメージ内のどこにあるのかを記述する)オフセットテーブル320、および結合されたイメージ300の署名316を備える。第1のイメージ302と第2のイメージ304とがいくらかの同一のファイルデータを有する場合、そのような共通のデータ318は結合されたイメージに一度のみコピーされる。結果として、結合されたイメージ300のサイズは、第1のイメージ302および第2のイメージ304のサイズの合計よりも小さい。結合されたイメージ300の1つの利点は、以下に図5に関してより詳細に説明するように、結合されたイメージ300から第1のイメージ302および/または第2のイメージ304がリストアできることである。
図1に示すように、結合されたイメージ300を生成する方法は、まず、第1のソフトウェアから第1のイメージ302を生成し、次に、第2のソフトウェアから第2のイメージ304を生成し、そして、第1のイメージ302および第2のイメージ304を結合されたイメージ300に結合することを含む。上述し、図1に示すように、第1のイメージ302は、第1のソフトウェアのファイルデータに対応する第1のファイルデータを指し示すオフセットテーブル(オフセットテーブル1)を指し示す第1のソフトウェアの記述的データに対応する第1の記述的データ(メタデータ1)を備える。同様に、第2のイメージ304は、第2のソフトウェアのファイルデータに対応する第2のファイルデータを指し示すオフセットテーブル(オフセットテーブル2)を指し示す第2のソフトウェアの記述的データに対応する第2の記述的データ(メタデータ2)を備える。第1および第2のイメージが共に少なくともいくらかの共通のファイルデータ318を備える場合、結合されたイメージ300は共通のファイルデータを1つのコピーのみ備える。
2つのイメージまたは2つ以上のイメージが結合される場合で、イメージが共通のファイルデータを有することが知られているとき、次のアプローチを用いることができる。まず、第1および第2のイメージの両方に共通のファイルデータが特定される。第1のイメージ302は、第1のヘッダ、第1のメタデータ、第1のファイルデータ、共通のファイルデータ、第1のオフセットテーブル、および第1の署名に分離される。同様に、第2のイメージ304は、第2のヘッダ、第2のメタデータ、第2のファイルデータ、共通のファイルデータ、第2のオフセットテーブル、および第2の署名に分離される。結合されたイメージを生成するために、第1のメタデータ、第2のメタデータ、第1のファイルデータ、第2のファイルデータ、および共通のファイルデータが、単一の結合されたイメージを構成する単一のイメージに結合される。次に、ヘッダ、オフセットテーブル、および署名が結合されたイメージ300に追加される。結果として、結合されたイメージ300は、イメージ1に特有のファイルデータ312および共通のデータ318を指し示す結合されたイメージのオフセットテーブル320を指し示す第1のソフトウェアの記述的データに対応する記述的データ(メタデータ1)308を備える。ファイルデータ312および共通のデータ318は、第1のソフトウェアのファイルデータに対応する。加えて、結合されたイメージ300は、イメージ2に特有のファイルデータ314を指し示す結合されたイメージのオフセットテーブル320を指し示す第2のソフトウェアの記述的データに対応する記述的データ(メタデータ2)310を備える。ファイルデータ314および共通のデータ318は、第2のソフトウェアのファイルデータに対応する。
各ファイルのハッシュなどの識別子のリストを生成し、第1のイメージ302および第2のイメージ304を結合するプロセスにおいて使用することができることが企図されている。まず、結合されたイメージ300内のファイルの識別子(たとえば、ハッシュ)のリストが生成される。第1のイメージ302内の各ファイルデータについて第1のイメージ302のファイルデータが読まれ、当該ファイルデータの内容に基づいて、識別子が各読まれたファイルと関連付けられる。第2のイメージの各ファイルデータについて第2のイメージ304のファイルデータが読まれ、当該ファイルデータの内容に基づいて、識別子が各読まれたファイルと関連付けられる。この状況において、読まれたファイルデータは、読まれたファイルデータの識別子が結合されたイメージ300の識別子のリスト内にない場合、結合されたイメージ300に結合または追加される。結合されたイメージ300に新しいファイルが追加されるとき、記述的データ(メタデータ1および/またはメタデータ2)は、結合されたイメージ300に加えられた新しいファイルデータの識別情報を含めるためにアップデートされ、オフセットテーブルは、新しいファイルの新しい場所を含めるためにアップデートされる。各ファイルの識別情報は、他のファイルの識別情報と衝突しないように固有のものでなければならない。この観点から、ファイル識別情報のそれぞれは、メタデータがアップデートされる前に固有であることが検証され、固有でない場合はそうであるように改変される。
図1はイメージ1およびイメージ2を結合されたイメージに結合することを示すが、結合されたイメージ300のサイズは減少していないことがある。たとえば、イメージ間で極めて少ししか又はまったく共通のデータがない場合、結合されたイメージのサイズはイメージ1のサイズとイメージ2のサイズの合計とほぼ同じとなる。加えて、図1は、非常に類似し、わずかの差異しか有さない2つのバイナリファイルを結合することの可能性を考慮に入れていない。(QFE、サービスパック、または異なる言語の場合のように)ファイルがわずかに異なるのみである場合、イメージは依然として固有なファイルの合計サイズの分だけ増加する。一般に、第1および第2のファイルが、相当な量の第1および第2のファイルの両方に共通なデータを備えるが厳密には同一でないデータもいくらか備える場合に、第1のファイルは第2の格納されたファイルと類似するとみなされる。
本発明によると、類似物が一度のみ格納されるように、ボリュームイメージの2つまたは2つ以上の類似するファイルが特定される。加えて、格納されたファイルと他の類似するファイルとの差異が格納される。最初のステップは、異なるファイルがボリュームイメージ内の他のファイルに類似するかどうかを決定する。この決定は、数千のファイルをキャプチャし、比較するときに、スピードに不利な影響を与えないように迅速でなくてはならない。マッチングの基準のいくつかの例は、名前、生成日、類似するファイルサイズ、または他のマッチング基準が同一であるファイルである。潜在的なマッチが発見されると、パッチングテクノロジがデルタファイルを生成する。このデルタファイルは、オリジナルファイルよりも小さい場合、オリジナルファイルの代わりにイメージ内に格納される。複数のマッチが発見される場合、ベースファイルおよびデルタファイルの組み合わせのうち最小のものがイメージ内に格納される。結果として生じる、すべてのファイルインスタンスに対するイメージメタデータは、ファイルがパッチングを介して格納された場合、ベースファイル識別子および追加のデルタファイル識別子を内に含む。ファイルのリストアに当たり、パッチングを用いて格納されたファイルのいずれもが、ベースファイルと適当なデルタファイルとを結合することによってリストアされる。これらのデルタファイルも、1つまたは複数のイメージ内の重複するファイルに関して一度のみ(単一インスタンス)格納することができることに留意されたい。たとえば、デルタファイルは、アップデートおよびパッチングに関する特許文献2〜10に示すように生成することができる。
図2を参照すると、本発明により、2つの類似するファイルを結合する方法200が示されている。この方法200は、コンピュータ読み取り可能な記録媒体に格納されるプログラムの一部である命令として実装することができるが、当業者はこの方法200を実装するための他の方法を認知するだろう。特に、第1のソフトウェアの第1のイメージの一部であるバイナリファイルデータAは、第2のソフトウェアの第2のイメージの一部であるバイナリファイルデータBに類似する場合がある。第1および第2のイメージが単一のボリュームイメージ(図3を参照)に結合されることを仮定すると、ファイルAおよびBは同一のメディア上に存在することになる。これらのファイルは類似しておりわずかに異なるのみであるので、パッチングテクノロジを用いることができる。特に、バイナリファイルが圧縮された後、202で、パッチングアルゴリズムが用いられ、デルタファイルが生成される。デルタファイルを生成するために、任意のアルゴリズムを用いることができる。たとえば、上述の米国特許および米国特許出願に記述されるパッチング技法を用いることができる。
デルタファイルは、バイナリファイルデータAとバイナリファイルデータBとの間の差異を特定する。言い換えると、ファイルデータAにデルタファイルを適用するとファイルデータBが生成される(またはその逆)。204で、デルタバイナリファイルは圧縮される。206で、圧縮されたデルタバイナリファイルのサイズが、圧縮されたバイナリファイルデータBと比較される。この比較に基づいて、208で、デルタバイナリファイルが受取可能かどうかを決定する決定が下される。この決定は、デルタバイナリファイルが取り替えることを意図されているバイナリファイルデータBのサイズと比較されるとき、圧縮されたデルタバイナリファイルのサイズの比較を単に含むことができ、またはリストア時間などの他の比較を含むことができる。デルタバイナリファイルのサイズが小さい場合(たとえば、少なくとも25%小さい)、このことは、ファイルデータAとデルタバイナリファイルとの組み合わせがファイルデータAとファイルデータBとの組み合わせよりも小さくなることを意味する。したがって、デルタバイナリファイルは受取可能であり、210で、ファイルデータAおよびデルタファイルが、それらがファイルデータAおよびファイルデータBの合計よりも小さくなるため、ボリュームイメージの一部として格納される。デルタバイナリファイルのサイズがファイルデータBのサイズに近い又はそれより大きい場合、このことは、ファイルデータAおよびデルタバイナリファイルの組み合わせがファイルデータAおよびファイルデータBの組み合わせよりも大きくなることを意味する。したがって、デルタバイナリファイルは、受取不可であり、212で、ファイルデータAおよびファイルデータBが、それらがファイルデータAおよびデルタバイナリファイルの合計よりも小さくなるため、ボリュームイメージの一部として格納される。
図3に示すように、ボリュームイメージ301は、第1のソフトウェアの第1のイメージ303および第2のソフトウェアの第2のイメージ305を備える。ボリュームイメージは、ボリュームイメージ301のヘッダ306、第1のイメージ303に対応する第1のメタデータ308、第2のイメージ305に対応する第2のメタデータ310、第2のイメージ305ではなく第1のイメージ303に特有なファイルデータの第1のファイルデータ312、第1のイメージ303ではなく第2のイメージ305に特有なファイルデータの第2のファイルデータ2B 313、ファイルデータ1からファイルデータ2Aを生成するためのデルタファイル314、オフセットテーブル320、およびボリュームイメージ301の署名316を備える。第1のイメージ303および第2のイメージ305が同一のファイルデータをいくらか有する場合、そのような共通のデータ318は、ボリュームイメージに一度のみコピーされる。結果として、ボリュームイメージ301のサイズは、第1のイメージ303および第2のイメージ305のサイズの合計よりも小さい。ボリュームイメージ301の1つの利点は、以下に図5および6に関して説明されるように、第1のイメージ303および/または第2のイメージ305を、ボリュームイメージ301からリストアすることができることである。
図3に示すように、ボリュームイメージ301を生成する方法は、まず、第1のソフトウェアから第1のイメージ303を生成し、第2のソフトウェアから第2のイメージ305を生成して、そして第1のイメージ303および第2のイメージ305をボリュームイメージ301に結合することを含む。上述し、図3に示すように、第1のイメージ303は、第1のソフトウェアのファイルデータに対応する第1のファイルデータを指し示すオフセットテーブル(オフセットテーブル1)を指し示す第1のソフトウェアの記述的データに対応する第1の記述的データ(メタデータ1)を備える。同様に、第2のイメージ305は、第2のソフトウェアのファイルデータに対応する第2のファイルデータを指し示すオフセットテーブル(オフセットテーブル2)を指し示す第2のソフトウェアの記述的データに対応する第2の記述的データ(メタデータ2)を備える。第1および第2のイメージが共に少なくともいくらかの共通のファイルデータ318を備える場合、ボリュームイメージ301は、共通のファイルデータ318を1つのコピーのみ備える。
2つのイメージまたは2つ以上のイメージが結合される場合で、イメージが共通のファイルデータおよび/または類似するファイルデータを有することが知られているとき、次のアプローチを用いることができる。まず、第1および第2のイメージの両方の共通のファイルデータおよび類似するファイルデータが特定される。第1のイメージ303は、第1のヘッダ、第1のメタデータ、第1のファイルデータ、共通のファイルデータ、第1のオフセットテーブル、および第1の署名に分離される。同様に、第2のイメージ305は、第2のヘッダ、第2のメタデータ、第2のファイルデータ、共通のファイルデータ、類似するファイルデータ、第2のオフセットテーブル、および第2の署名に分離される。ボリュームイメージを生成するために、第1のメタデータ、第2のメタデータ、第1のファイルデータ、第2のファイルデータ、共通のファイルデータ、およびデルタファイルが、単一の結合されたイメージを構成する単一のイメージに結合される。デルタファイルは、パッチにより生成され、第2のイメージの類似するファイルデータと第1のイメージのファイルデータとの差異を定義する。次に、ヘッダ、オフセットテーブル、および署名がボリュームイメージ301に追加される。結果として、ボリュームイメージ301は、第1のソフトウェアのファイルデータに対応する第1のファイルデータおよび共通のファイルデータを指し示すオフセットテーブルを指し示す第1のソフトウェアの記述的データに対応する記述的データ(メタデータ1)を備える。加えて、ボリュームイメージ301は、第2のソフトウェアのファイルデータに対応する第2のファイルデータおよび共通のファイルデータを指し示すオフセットテーブルを指し示す第2のソフトウェアの記述的データに対応する記述的データ(メタデータ2)を備える。加えて、ボリュームイメージ301は、フラッグを、デルタファイルを指し示す第2の記述的データ(メタデータ2)内に含む。
図3には示されていないが、各ファイルのハッシュなどの識別子のリストを生成し、第1のイメージ303および第2のイメージ305を結合するプロセスにおいて使用することができることが企図されている。まず、ボリュームイメージ301内のファイルの識別子(たとえば、ハッシュ)のリストが生成される。第1のイメージ303内の各ファイルデータについて第1のイメージ303のファイルデータが読まれ、当該ファイルデータの内容に基づいて、識別子が各読まれたファイルと関連付けられる。第2のイメージの各ファイルデータについて第2のイメージ305のファイルデータが読まれ、当該ファイルデータの内容に基づいて、識別子が各読まれたファイルと関連付けられる。この状況において、読まれたファイルデータは、読まれたファイルデータの識別子がボリュームイメージ301の識別子のリスト内にない場合、ボリュームイメージ301に結合または追加される。ボリュームイメージ301に新しいファイルが追加されるとき、記述的データ(メタデータ1および/またはメタデータ2)は、ボリュームイメージ301に加えられた新しいファイルデータの識別情報を含めるためにアップデートされ、オフセットテーブルは、新しいファイルの新しい場所を含めるためにアップデートされる。各ファイルの識別子は、他のファイルの識別情報と衝突しないように固有のものでなければならない。この観点から、ファイル識別情報のそれぞれは、メタデータがアップデートされる前に固有であることが検証され、固有でない場合はそうであるように改変される。加えて、識別子は、デルタファイルの生成を検討することができるように、類似するファイルがマッチされることを許容しなければならない。たとえば、識別子は、(QFE、サービスパック、または異なる言語の場合のように)わずかにのみ異なるファイルが認識されることを許容すべきである。図4を参照すると、第1のソフトウェアおよび第2のソフトウェアを、第1のソフトウェアの第1のイメージ303および第2のソフトウェアの第2のイメージ305をイメージングによりそれぞれリストアすることができる単一のボリュームイメージ301に結合する方法が示されている。まず、402で、第1のソフトウェアは、バイナリファイルデータを指し示すメタデータを有するベースイメージに変換される。一般に、ベースイメージはそこにファイルが加えられるイメージであり、既存のイメージまたは新たに生成されたイメージとすることができる。たとえば、既存のイメージ303を、そこにイメージ305が加えられるベースイメージとみなすことができる。次に404で、ベースイメージのメタデータにより特定されるすべてのファイルのハッシュリスト(たとえば、結合された要約)を備える結合されたオフセットテーブルが生成される。次に406で、第2のソフトウェアは、第2のイメージのファイルを載せるオフセットテーブルを備える第2のイメージ305に変換される。
408で、ベースイメージのハッシュリストが、第2のイメージのオフセットテーブル内の1つまたは複数のファイルとの厳密なマッチについて検索される。判断ステップ410で、動作を実行するソフトウェアが、408での検索が厳密なマッチのいずれかを発見したかどうかを決定する。検索により厳密なマッチが発見される場合、当該ソフトウェアは412に進み、図1に示すように、厳密にマッチしたファイルを指し示すように第2のイメージのメタデータおよび結合されたイメージのオフセットテーブルをアップデートする。
410で厳密なマッチが発見されない場合、当該ソフトウェアは414に進み、第2のイメージのメタデータとの類似するマッチについてベースイメージのメタデータを検索する。判断ステップ416で、動作を実行するソフトウェアが、414での検索が類似するマッチのいずれかを発見したかどうかを決定する。検索により類似するマッチが発見される場合、当該ソフトウェアは418に進み、図2および3に示すように、結合されたイメージの一部としてパッチを生成し、格納する。416で類似するマッチが類似するマッチが発見されない場合、当該ソフトウェアは420に進み、結合されたイメージの一部として、第2のイメージを固有のファイルとして格納する。
次に図5を参照すると、この図は、本発明により、ボリュームイメージ500から第1のイメージ502がリストアでき、および/またはボリュームイメージ500から第2のイメージ504がリストアできるようにボリュームイメージ500を生成することの1つの利点を示している。この利点が当てはまる1つの例は、異なるオペレーティングシステムとの使用のための、異なるSKUおよび/またはエディションを有するソフトウェアアプリケーションである。多くの場合、ソフトウェアのこれらの様々なエディションは大量の類似するデータを有する。しかしながら、過去において、これらのエディションのそれぞれを別々にイメージすることが慣行としてなされてきた。したがって、これらの様々なエディションを販売していたベンダ(vendor)は、それぞれのエディションを別々のコンピュータ読み取り可能な記録媒体に別々にインベントリ(inventory)することが必要であった。本発明の一態様によると、ソフトウェアのこれらの様々なエディションは、エディション502、504のいずれも再生成することができる単一のボリュームイメージ500に結合することができる。また、ボリュームイメージ500が、外部セットアッププログラムまたはイメージを引き出すための他のツールの一部である実行可能ファイル506とともに使用することができることも企図されている。ファイル506は、実行されたときに、ボリュームイメージの生成に用いられたイメージの内の特定の1つを引き出す。さらに、実行可能ファイルが、ユーザにより入力されるソフトウェアと関連付けられたプロダクトキー(P.K.)または識別子(I.)に応えて動作することができることも企図されている。
図6を参照すると、フローチャートが、イメージ1 502およびイメージ2 504(図5を参照)を備えるボリュームイメージ500から、新しいコンピュータ読み取り可能な記録媒体(CRM)にイメージをリストアするプロセスを示している。新しいCRMにイメージ1をリストアするために、604で、共通のデータが新しいCRMにコピーされ、606で、イメージ1に特有のファイルデータが新しいCRMにコピーされる。608で、新しいCRM上のイメージ1のメタデータ、オフセットテーブル、ヘッダ、および署名が完成される。新しいCRMにイメージ2をリストアするために、610で、共通のデータが新しいCRMにコピーされ、612で、イメージ2に特有のファイルデータ2が新しいCRMにコピーされる。614で、イメージ1に特有であり、イメージ2のファイルデータに類似するファイルデータ1がCRMにコピーされる。この後者の、類似するファイルデータ1は、デルタファイルが適用されるファイルデータである。616で、デルタファイルが新しいCRMにコピーされ、618で、これらのファイルが類似するファイルデータ1に適用される。たとえば、イメージ2は、デルタファイルの別のファイルに対する適用を管理するフラグとともに生成されるだろう。一般に、メタデータエントリは、固有の識別子を有する(上述)。デルタパッチに対して、そのファイルについてのメタデータ内にもう1つの固有の識別子があるだろう。メタデータ内の、そのファイルの主な固有の識別子は、ベースファイルの固有の識別子であるだろう。「フラグ」は、オリジナルデータを取り戻すためにベースファイルと結合させるべきパッチファイルに対する固有の識別子であるだろう。ファイルがメタデータ内にパッチデータに対する固有の識別子を有さない(またはゼロである)場合、フラグは設定されずに、従来通りに動作するだろう。620で、新しいCRM上のイメージ2のメタデータ、オフセットテーブル、ヘッダ、および署名が完成される。
以下は、ボリュームイメージをキャプチャするための図7のプロセスの要約の一例である。このプロセスにおいて、702で、ボリュームイメージはイメージ1および2の結合であると仮定する。また、上述のように、イメージ1および2のファイルのいくらかは同一(たとえば、冗長なデータ、共通のデータ)であることと、イメージ1および2のファイルのいくらかは類似していてデルタファイルにより置き換えることができることも仮定する。
特に、図7は、CRM上に、第1のイメージおよび第2のイメージを、第1のイメージおよび/または第2のイメージを別々にリストアすることができるボリュームイメージに結合する方法を示している。第1のイメージは、第1のイメージおよび第2のイメージの両方に共通な共通のデータ、および第2のイメージではなく第1のイメージに特有な第1のファイルデータを備える。第2のイメージは、第1のイメージおよび第2のイメージの両方に共通な共通のデータ、および第1のイメージではなく第2のイメージに特有な第2のファイルデータを備える。第2のファイルデータは、第1のイメージの第1の類似するファイルデータに類似する第2の類似するファイルデータを備える。
704で、ボリュームイメージにキャプチャされる現在のファイルのそれぞれに対して、ファイルハッシュが生成され、現在のファイルがすでに格納されたかどうかを決定するために用いられる(たとえば、ボリュームイメージを生成するためにイメージ1またはイメージ2からCRMにコピーされるファイルは、すでにCRMにコピーされた)。ファイルがすでに格納されている場合、ファイルに対するメタデータは、現在格納されているファイルエントリを指し示すようにアップデートされる。このプロセスは、より詳細に先に示され、特に、先におよび図1に関して述べた特許文献1において詳細に示されている。したがって、当該方法は704で、CRMに共通のデータをコピーすることを含む。
706で、ファイルがまだ格納されていない場合、(たとえば、ファイル名、日付、または他の基準を用いて)類似するファイルの候補となるファイルのリストが生成され、そしてスキャンされ、合計サイズ(ベースファイルサイズとパッチサイズの合計)の最良の組み合わせが決定される。固有なファイルのすべて(第1のファイルデータ、および第2のファイルデータであるが、第2の類似するファイルデータは含まない)は、CRMに一度コピーされる。次に、ファイルインスタンスに対するメタデータが、固有のファイルに関連するようにアップデートされる。このプロセスは先に、特に図1および3〜5に関して、より詳細に示されている。したがって、当該方法は、第2の類似するファイルデータがCRMにコピーされないということを除いて、第1のファイルデータをCRMにコピーすること、および第2のファイルデータをCRMにコピーすることを含む。
708で、(CRMにコピーされていない)第2の類似するファイルデータと(CRMにコピーされた)第1の類似するファイルデータとの差異を示すデルタファイルが生成される。加えて、このデルタファイルはCRMにコピーされる。したがって、当該方法は、第2の類似するファイルデータと第1の類似するファイルデータとの差異を表すデルタファイル生成すること、および生成されたデルタファイルをCRMにコピーすることを含む。
図8に、コンピュータ130の形の汎用コンピューティングデバイスの一例を示す。本発明の一実施形態では、コンピュータ130などのコンピュータが、本明細書で示され、説明された他の図での使用に適する。コンピュータ130は、1つまたは複数のプロセッサまたは処理装置132およびシステムメモリ134を有する。システムメモリ134には、本発明によるボリュームイメージを格納することができ、および/またはボリュームイメージから再生成された個別のイメージを格納することができる。図示の実施形態では、システムバス136が、システムメモリ134を含むさまざまなシステムコンポーネントをプロセッサ132に結合する。バス136は、メモリバスまたはメモリコントローラ、周辺バス、AGP(accelerated graphics port)、および様々なバスアーキテクチャのいずれかを使用するプロセッサバスまたはローカルバスを含む複数のタイプのバス構造のいずれかのうちの1つまたは複数とすることができる。制限ではなく例として、そのようなアーキテクチャに、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architechture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとも称するPCI(Peripheral Component Interconnect)バスが含まれる。
コンピュータ130は、通常、少なくともなんらかの形のコンピュータ読み取り可能な記録媒体を有する。揮発性媒体および不揮発性媒体、リムーバブル媒体および非リムーバブル媒体の両方を含むコンピュータ読み取り可能な記録媒体は、コンピュータ130によってアクセスできる使用可能な媒体のいずれかとすることができる。制限ではなく例として、コンピュータ読み取り可能な記録媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の保管のための方法またはテクノロジのいずれかで実装された、揮発性および不揮発性、リムーバブルおよび非リムーバブルの媒体を含む。たとえば、コンピュータ記憶媒体に、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリテクノロジ、CD−ROM、ディジタル多用途ディスク(DVD)、または他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは所望の情報の保管に使用でき、コンピュータ130によってアクセスできる他のすべての媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他のトランスポート機構などの変調されたデータ信号内に具体化し、通信媒体には、すべての情報配布媒体が含まれる。当業者は、変調されたデータ信号に精通しているが、この変調されたデータ信号は、信号内に情報をエンコードする形でその特性の1つまたは複数が設定または変更されている。有線ネットワークまたは直接配線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体が、通信媒体の例である。上記のいずれかの組み合わせも、コンピュータ読み取り可能な記録媒体の範囲に含まれる。
システムメモリ134は、リムーバブルおよび/または非リムーバブルで揮発性および/または不揮発性のメモリの形のコンピュータ記憶媒体を含む。図示の実施形態では、システムメモリ134は、読取専用メモリ(ROM)138およびランダムアクセスメモリ(RAM)140を含む。起動中などにコンピュータ130内の要素の間での情報の転送を助ける基本ルーチンを含む基本入出力システム142(BIOS)が、通常はROM 138に保管される。RAM140には、通常は、処理装置132から即座にアクセス可能、および/または処理装置132によって現在操作中のデータおよび/またはプログラムモジュールが含まれる。制限ではなく例として、図8に、オペレーティングシステム144、アプリケーションプログラム146、他のプログラムモジュール148、およびプログラムデータ151を示す。
コンピュータ130に、他のリムーバブル/非リムーバブルで揮発性/不揮発性のコンピュータ記憶媒体も含めることができる。たとえば、図8に、非リムーバブル不揮発性磁気媒体から読み取るかこれに書き込むハードディスクドライブ154を示す。図8に、リムーバブル不揮発性磁気ディスク158から読み取るかこれに書き込む磁気ディスクドライブ156と、CD−ROMまたは他の光媒体などのリムーバブル不揮発性光ディスク162から読み取るかこれに書き込む光ディスクドライブ160も示す。例示的なオペレーティング環境で使用できる他のリムーバブル/非リムーバブルで揮発性/不揮発性のコンピュータ記憶媒体に、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これに制限はされない。ハードディスクドライブ144、磁気ディスクドライブ156、および光ディスクドライブ161は、通常は、インターフェース166などの不揮発性メモリインターフェースによってシステムバス136に接続される。
上で説明し、図8に示したドライブまたは他の大容量ストレージデバイスおよびそれに関連するコンピュータ記憶媒体は、コンピュータ130のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。図8では、たとえば、ハードディスクドライブ154が、オペレーティングシステム170、アプリケーションプログラム172、他のプログラムモジュール174、およびプログラムデータ176を保管するものとして図示されている。これらのコンポーネントを、オペレーティングシステム144、アプリケーションプログラム146、他のプログラムモジュール148、およびプログラムデータ151と同一のまたは異なるもののいずれかとすることができることに留意されたい。オペレーティングシステム170、アプリケーションプログラム172、他のプログラムモジュール174、およびプログラムデータ176は、少なくとも異なるコピーであることを示すために、異なる符号を与えられている。
ユーザは、キーボード180およびポインティングデバイス182(たとえば、マウス、トラックボール、ペン、またはタッチパッド)などの入力デバイスまたはユーザインターフェース選択デバイスを介してコンピュータ130にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ(satellite dish)、スキャナなどを含めることができる。上記および他の入力デバイスは、システムバス136に結合されたユーザ入力インターフェース184を介して処理ユニット132に接続されるが、パラレルポート、ゲームポート、またはUSB(Universal Serial Bus)などの他のインターフェースおよびバス構造によって接続することができる。モニタ188または他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス136に接続される。モニタ188の他に、コンピュータに、しばしば、プリンタおよびスピーカなどの他の周辺出力デバイス(図示せず)が含まれ、これらの周辺出力デバイスは、出力周辺インターフェース(図示せず)を介して接続することができる。
コンピュータ130は、リモートコンピュータ194などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ194は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常は、上でコンピュータ130に関して説明した要素の多くまたはすべてを含む。図8に示された論理接続に、ローカルエリアネットワーク(LAN)196および広域ネットワーク(WAN)198が含まれるが、他のネットワークも含めることができる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびグローバルコンピュータネットワーク(たとえば、インターネット)でありふれたものである。
ローカルエリアネットワーキング環境で使用されるときに、コンピュータ130は、ネットワークインターフェースまたはネットワークアダプタ186を介してLAN196に接続される。広域ネットワーキング環境で使用されるときに、コンピュータ130に、通常は、インターネットなどのWAN198を介する通信を確立する、モデム178または他の手段が含まれる。モデム178は、内蔵または外付けとすることができるが、ユーザ入力インターフェース194または他の適当な機構を介してシステムバス136に接続される。ネットワーク化された環境では、コンピュータ130に関して図示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイス(図示せず)に保管することができる。制限ではなく例として、図8に、メモリデバイスに常駐するものとしてリモートアプリケーションプログラム192を示す。図示のネットワーク接続は例示的であり、コンピュータの間の通信リンクを確立する他の手段を使用することができることが理解されるだろう。
一般に、コンピュータ130のデータプロセッサは、異なる時にコンピュータの様々なコンピュータ可読記憶媒体に保管される命令によってプログラムされる。プログラムおよびオペレーティングシステムは、通常、たとえばフロッピー(登録商標)ディスクまたはCD−ROMで配布される。そこから、これらが、コンピュータの副メモリにインストールまたはロードされる。実行時に、これらは、少なくとも部分的にコンピュータの主電子メモリにロードされる。本明細書に記載の発明には、これらおよび他の様々なタイプのコンピュータ可読記憶媒体にマイクロプロセッサまたは他のデータプロセッサに関連して以下で説明するステップを実装する命令またはプログラムが含まれるときに、そのような媒体が含まれる。本発明に、本明細書に記載の方法および技法に従ってプログラムされたときのコンピュータ自体も含まれる。
例示のために、オペレーティングシステムなどのプログラムおよび他の実行可能プログラムコンポーネントを、本明細書では別個のブロックとして図示した。しかし、そのようなプログラムおよびコンポーネントが、様々な時にコンピュータの異なるストレージコンポーネントに常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
コンピュータ130を含む例示的なコンピューティングシステム環境に関して説明したが、本発明は、多数の他の汎用のまたは特殊目的のコンピューティングシステム環境またはコンピューティングシステム構成と共に動作する。このコンピューティングシステム環境は、本発明の使用または機能性の範囲に関する制限を提案することを意図したものではない。さらに、このコンピューティングシステム環境を、この例示的なオペレーティング環境に示されたコンポーネントのいずれかまたはその組み合わせに対する依存性または要件を有すると解釈してはならない。本発明と共に使用するのに適する可能性がある周知のコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成の例に、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス、ラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに制限はされない。
本発明を、プログラムモジュールなど、1つまたは複数のコンピュータまたは他のデバイスによって実行されるコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造が含まれるが、これに制限はされない。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージデバイスを含むローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
動作において、コンピュータ130は、実行可能ファイル506などのコンピュータ実行可能命令を実行する。
以下の例は、本発明を説明する。Windows(登録商標)XP HomeとWindows(登録商標)XP Proは、非常に類似し、大量の共通のデータを共有するアプリケーションの異なるSKUナンバ(number)である。Homeバージョンは、およそ355MBであり、Proバージョンはおよそ375MBである。両方のエディションが別々に単一メディアにコピーされる場合、およそ730MBが必要である。一方、2つのエディションを単一のボリュームイメージとしてイメージすると、およそ390MBの単一のボリュームイメージとなる。したがって、ボリュームイメージは、300MBのディスク/メディアを節約できる。OEMシナリオの例として、HomeおよびProエディションは両方ともマイクロソフト(登録商標)オフィスを伴い、または伴わずに提供されることができる。当該エディションが別々にコピーされる場合、オフィスを伴わないHomeエディションは355MBを要し、オフィスを伴うHomeエディションは505MBを要し、オフィスを伴わないProエディションは375MBを要し、オフィスを伴うProエディションは525MBを要し、合計は1760MBである。一方、4つの異なる提要物を単一のボリュームイメージとしてイメージすると、540MBの単一のボリュームイメージとなる。したがって、ボリュームイメージは1100MB以上のディスク/メディアを節約する。
このディスク/メディアの節約は、上述したように、多くの利点につながる。たとえば、イメージの伝送もしくは複製またはネットワークもしくは他のリンクが、より少ない時間または減じられた帯域幅により達成できる。
本発明の要素、またはその諸実施形態について述べるときに、冠詞「ある」および「その」は、1つまたは複数の要素があることを意味するものである。用語「備える」「含む」および「有する」は、包含的なものであり、リストされた要素より追加の要素があり得ることを意味している。
上記内容に鑑みて、本発明の複数の目的が実現され、他の有利な結果が達成されることが理解されるだろう。
本発明の範囲から逸脱せずに、上記構成、製品および方法に様々な変更を加えることができるので、上記説明に含まれ、また添付の図面に示されたすべての事柄は、限定的ではなく、例示的な意味で解釈すべきである。
特許文献1において説明されているように、結合されたイメージに結合し、共通のファイルの単一インスタンスストレージを利用することのできる、イメージ1およびイメージ2のレイアウトを図式的に示した本発明の例示的実施形態である。 本発明による、2つのバイナリファイルを結合するための方法の動作を示す例示的流れ図である。 デルタファイルを備え、任意選択で共通のファイルのいずれかを備えるボリュームイメージに結合されることのできる、イメージ1およびイメージ2のレイアウトを図式的に示した本発明の例示的実施形態である。 本発明による、ボリュームイメージを生成するための方法の動作を示した例示的流れ図である。 本発明による、ボリュームイメージを格納することができ、したがってイメージ1を別のコンピュータ読み取り可能な記録媒体にイメージングすることによりリストアでき、またイメージ2をもう1つの別のコンピュータ読み取り可能な記録媒体にイメージングすることによりリストアできる、例示的コンピュータ読み取り可能な記録媒体を示すブロック図である。 本発明による、ボリュームイメージから中身を取り出す方法の動作を示す例示的流れ図である。 本発明による、共通のファイルおよびパッチファイルの両方を有するボリュームイメージを生成する方法の動作を示す例示的流れ図である。 本発明を実施するのに適したコンピュータシステム環境の一例を示すブロック図である。

Claims (52)

  1. 第1のソフトウェアのデータ構造の第1のイメージおよび第2のソフトウェアのデータ構造の第2のイメージを備えるボリュームイメージを格納しているコンピュータ読み取り可能な記録媒体であって、第1および第2のイメージは、前記ボリュームイメージの前記第1のイメージおよび/または前記第2のイメージを前記ボリュームイメージからイメージングによりそれぞれ再生成することができるように、前記ボリュームイメージに結合されていて、
    前記第1のソフトウェアの記述的データのイメージと、
    前記第1のソフトウェアのファイルデータのイメージと、
    前記第2のソフトウェアの記述的データのイメージと、
    あるファイルデータを除く、前記第2のソフトウェアのファイルデータのイメージと、
    1つまたは複数の前記第1のイメージのファイルデータと結合されたときに、前記第2のソフトウェアの除かれたあるファイルデータに対応する、デルタファイルのイメージと
    を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
  2. 前記記述的データは、ファイル名、属性、ファイル時間、圧縮形式、場所、およびストリームのうちの1つまたは複数を備えるメタデータを備えることを特徴とする請求項1に記載の媒体。
  3. 前記ファイルデータは、任意のバイナリファイルデータまたはメタデータ以外の任意のほかのデータを備えることを特徴とする請求項1に記載の媒体。
  4. 前記第1のイメージの前記ファイルデータの少なくとも一部は、前記第2のイメージの前記ファイルデータの少なくとも一部と同一であり、前記同一のファイルデータは、前記ボリュームイメージ内に一度のみ現れることを特徴とする請求項1に記載の媒体。
  5. ファイルデータを改変すること、アップデートすること、またはリストアすること、および/または前記記述的データを、改変、アップデートまたはリストアされた任意のファイルデータを指し示すように改変することをさらに備えることを特徴とする請求項1に記載の媒体。
  6. 前記第1のソフトウェアまたは前記第2のソフトウェアは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項1に記載の媒体。
  7. 前記第1のソフトウェアと前記第2のソフトウェアは類似したアプリケーションであり、前記第1のソフトウェアは第1のオペレーティングシステムとともに使われるもので、前記第2のソフトウェアは第2のオペレーティングシステムとともに使われるものであることを特徴とする請求項1に記載の媒体。
  8. 前記ファイルデータおよび前記デルタファイルは圧縮されていることを特徴とする請求項1に記載の媒体。
  9. 第1のソフトウェアの第1のイメージおよび第2のソフトウェアの第2のイメージを備えるボリュームイメージであって、
    前記ボリュームイメージのヘッダと、
    前記第1のイメージの第1のメタデータと、
    前記第2のイメージの第2のメタデータと、
    前記第2のイメージではなく、前記第1のイメージのファイルデータの第1のファイルデータと、
    前記第2のイメージと前記第1のイメージとの間の差異のファイルデータのデルタファイルデータと、
    前記ボリュームイメージの署名と
    を備え、前記第1のイメージおよび/または前記第2のイメージは前記ボリュームイメージからイメージすることができ、前記ボリュームイメージのサイズは前記第1のイメージおよび前記第2のイメージのサイズの合計より小さいことを特徴とするボリュームイメージ。
  10. 第1のイメージではなく、第2のイメージのファイルデータの第2のファイルデータをさらに備えることを特徴とする請求項9に記載のボリュームイメージ。
  11. 前記第1のイメージおよび前記第2のイメージの両方のファイルデータの共通のファイルデータをさらに備えることを特徴とする請求項9に記載のボリュームイメージ。
  12. 前記第1のメタデータおよび前記第2のメタデータのそれぞれは、ファイル名、属性、ファイル時間、圧縮形式、場所、およびストリームのうちの1つまたは複数を備えることを特徴とする請求項9に記載のボリュームイメージ。
  13. 前記第1および第2のファイルデータは、任意のバイナリファイルデータまたはメタデータ以外のほかのデータを備えることを特徴とする請求項9に記載のボリュームイメージ。
  14. ファイルデータを改変すること、アップデータすること、またはリストアすること、および/または改変、アップデート、またはリストアされた任意のファイルデータを指し示すようにオフセットテーブルを改変することをさらに備えることを特徴とする請求項9に記載のボリュームイメージ。
  15. 前記第1のソフトウェアまたは前記第2のソフトウェアは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項9に記載のボリュームイメージ。
  16. 前記第1のソフトウェアと前記第2のソフトウェアは類似したアプリケーションであり、前記第1のソフトウェアは第1のオペレーティングシステムとともに使われるもので、前記第2のソフトウェアは第2のオペレーティングシステムとともに使われるものであることを特徴とする請求項9に記載のボリュームイメージ。
  17. 前記第1のファイルデータおよび前記デルタファイルデータは、圧縮されたデータであることを特徴とする請求項9に記載のボリュームイメージ。
  18. 第1のソフトウェアの第1のイメージおよび第2のソフトウェアの第2のイメージを備えるボリュームイメージを有するコンピュータ読み取り可能な記録媒体であって、前記ボリュームイメージは、
    前記ボリュームイメージのヘッダと、
    前記第1のイメージの第1のメタデータと、
    前記第2のイメージの第2のメタデータと、
    前記第2のイメージではなく、前記第1のイメージのファイルデータの第1のファイルデータと、
    前記第2のイメージと前記第1のイメージとの間の差異のファイルデータのデルタファイルデータと、
    前記ボリュームイメージの署名と
    を備え、前記第1のイメージおよび/または前記第2のイメージは前記ボリュームイメージからイメージすることができ、前記ボリュームイメージのサイズは前記第1のイメージおよび前記第2のイメージのサイズの合計より小さいことを特徴とするコンピュータ読み取り可能な記録媒体。
  19. 第1のソフトウェアから第1のバイナリファイルを生成するステップであって、前記第1のバイナリファイルは、前記第1のソフトウェアのファイルデータに対応する第1のバイナリファイルデータを備えるステップと、
    第2のソフトウェアから第2のバイナリファイルを生成するステップであって、前記第2のバイナリファイルは、前記第2のソフトウェアのファイルデータに対応する第2のバイナリファイルデータを備えるステップと、
    前記第1のバイナリファイルと前記第2のバイナリファイルとの差異のデルタファイルを生成するするステップと、
    前記第1のバイナリファイルおよび前記デルタファイルをボリュームイメージに結合するステップと
    を含むことを特徴とする方法。
  20. ファイルデータを改変すること、アップデータすること、またはリストアすること、および/または改変、アップデート、またはリストアされた任意のファイルデータを指し示すように前記記述的データを改変することをさらに含むことを特徴とする請求項19に記載の方法。
  21. 前記第1および第2のソフトウェアの両方は、少なくともいくらかの共通のファイルを備え、前期ボリュームイメージは、少なくともいくらかの前記共通のファイルデータを1コピーのみ備えることを特徴とする請求項19に記載の方法。
  22. 前記ファイルデータは、任意のバイナリファイルデータまたはメタデータ以外の任意のほかのデータを備えることを特徴とする請求項19に記載の方法。
  23. 前記第1のソフトウェアまたは前記第2のソフトウェアは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項19に記載の方法。
  24. 前記第1のソフトウェアと前記第2のソフトウェアは類似したアプリケーションであり、前記第1のソフトウェアは第1のオペレーティングシステムとともに使われるもので、前記第2のソフトウェアは第2のオペレーティングシステムとともに使われるものであることを特徴とする請求項19に記載の方法。
  25. 前記第1のバイナリファイルおよび前記ボリュームイメージの前記デルタファイルは圧縮されていることを特徴とする請求項19に記載の方法。
  26. 第1の複数の第1のイメージのバイナリファイルおよび第2の複数の第2のイメージのバイナリファイルを、前記第1のイメージおよび前記第2のイメージのそれぞれがイメージングにより再生成されうる単一のボリュームイメージに結合する方法であって、前記第1および第2の複数のバイナリファイルは共通のファイルデータを備え、
    前記第1および第2の複数のバイナリファイルの両方の前記共通のファイルデータを識別するステップと、
    前記第1のイメージを、第1のヘッダ、第1のメタデータ、第1のファイルデータ、前記共通のファイルデータ、および第1の署名に分離するステップと、
    前記第2のイメージを、第2のヘッダ、第2のメタデータ、第2のファイルデータ、前記共通のファイルデータ、第2の署名,および前記第1の複数のバイナリファイルの1つまたは複数のファイルと、前記第2の複数のバイナリファイルの1つまたは複数のファイルとの間の差異のデルタファイルに分離するステップと、
    前記第1のメタデータ、前記第2のメタデータ、前記第1のファイルデータ、前記第2のファイルデータ、前記共通のファイルデータ、およびデルタファイルを、ヘッダおよび署名を有する単一のボリュームイメージを構成する単一のイメージに結合するステップと
    を含むことを特徴とする方法。
  27. 前記メタデータは、ファイル名、属性、ファイル時間、圧縮形式、場所、およびストリームのうちの1つまたは複数を備えることを特徴とする請求項26に記載の方法。
  28. 前記ファイルデータは、任意のバイナリファイルデータまたはメタデータ以外の任意のほかのデータを備えることを特徴とする請求項26に記載の方法。
  29. ファイルデータを改変すること、アップデートすること、またはリストアすること、および/または前記メタデータを、改変、アップデートまたはリストアされた任意のファイルデータを指し示すように改変することをさらに含むことを特徴とする請求項26に記載の方法。
  30. 前記第1のソフトウェアまたは前記第2のソフトウェアは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項26に記載の方法。
  31. 前記第1のソフトウェアと前記第2のソフトウェアは類似したアプリケーションであり、前記第1のソフトウェアは第1のオペレーティングシステムとともに使われるもので、前記第2のソフトウェアは第2のオペレーティングシステムとともに使われるものであることを特徴とする請求項26に記載の方法。
  32. 前記第1のイメージの前記ファイルデータの少なくとも一部は、前記第2のイメージの前記ファイルデータの少なくとも一部と同一であり、前記同一のファイルデータは、前記ボリュームイメージ内に一度のみ現れることを特徴とする請求項26に記載の方法。
  33. 前記単一のイメージの前記ファイルデータおよび前記デルタファイルは圧縮されていることを特徴とする請求項26に記載の方法。
  34. 第1のソフトウェアおよび第2のソフトウェアを、前記第1のソフトウェアの第1のイメージおよび前記第2のソフトウェアの第2のイメージのそれぞれがイメージングにより再生成されうる単一のボリュームイメージに結合する方法であって、
    前記第1のソフトウェアを複数のファイルを指し示すメタデータを有するベースイメージに変換するステップと、
    前記ベースイメージのすべてのファイルの結合された要約を生成するステップと、
    前記第2のソフトウェアを複数のファイルを指し示すオフセットテーブルを指し示すメタデータを有する第2のイメージに変換するステップと、
    前記第2のイメージの1つまたは複数のファイルとの厳密なマッチについて前記結合された要約を検索するステップと、
    厳密にマッチしたファイルを指し示すように、前記第2のイメージの前記メタデータおよび前記結合された要約の前記オフセットテーブルをアップデートするステップと、
    前記第2のイメージの前記メタデータとの類似したマッチについて前記メタデータの前記メタデータを検索するステップと、
    前記結合された要約の一部として、類似的にマッチしたファイルについてのパッチを生成し、格納するステップと、
    前記結合された要約の一部として、厳密にマッチせず、類似的にマッチしない前記第2のイメージのファイルを格納するステップと
    を含むことを特徴とする方法。
  35. 前記メタデータは、ファイル名、属性、ファイル時間、圧縮形式、場所、およびストリームのうちの1つまたは複数を備えることを特徴とする請求項34に記載の方法。
  36. 前記ファイルデータは、任意のバイナリファイルデータまたはメタデータ以外の任意の他のデータを備えることを特徴とする請求項34に記載の方法。
  37. ファイルデータを改変すること、アップデートすること、またはリストアすること、および/または前記第1のイメージの前記メタデータを、改変、アップデートまたはリストアされた任意のファイルデータを指し示すように改変することをさらに含むことを特徴とする請求項34に記載の方法。
  38. 前記第1のソフトウェアまたは前記第2のソフトウェアは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項34に記載の方法。
  39. 前記第1のソフトウェアと前記第2のソフトウェアは類似したアプリケーションであり、前記第1のソフトウェアは第1のオペレーティングシステムとともに使われるもので、前記第2のソフトウェアは第2のオペレーティングシステムとともに使われるものであることを特徴とする請求項34に記載の方法。
  40. 前記第1のイメージおよび前記第2のイメージは、類似するファイルデータおよび共通のファイルデータを備えることを特徴とする請求項34に記載の方法。
  41. 前記第1のイメージの前記ファイルデータの少なくとも一部は、前記第2のイメージの前記ファイルデータの少なくとも一部と同一であり、前記同一のファイルデータは、前記ボリュームイメージ内に一度のみ現れることを特徴とする請求項34に記載の方法。
  42. 前記結合されたイメージの前記ファイルおよび前記パッチは圧縮されていることを特徴とする請求項34に記載の方法。
  43. 第2のイメージを、第1のイメージおよび前記第2のイメージを有するボリュームイメージからコンピュータ読み取り可能な記録媒体にリストアする方法であって、前記ボリュームイメージは、前記第1のイメージおよび前記第2のイメージの両方に共通な共通のデータ、前記第1のイメージではなく、前記第2のイメージに特有な第2のファイルデータ、前記第2のイメージの第2の類似するファイルデータに類似する前記第1のイメージの第1の類似するファイルデータ、前記第1の類似するファイルデータと前記第2の類似するファイルデータとの間の差異を示すデルタファイルを備え、前記方法は、
    前記共通のファイルデータを前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記第2のファイルデータを前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記第1の類似するファイルデータを前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記デルタファイルを前記コピーされた第1の類似するファイルデータに適用し、前記第2の類似するファイルデータを生成するステップと
    を含むことを特徴とする方法。
  44. 前記ファイルデータは、任意のバイナリファイルデータまたはメタデータ以外の任意の他のデータを備えることを特徴とする請求項43に記載の方法。
  45. 前記第1のイメージまたは前記第2のイメージは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項43に記載の方法。
  46. 第2のイメージを、第1のイメージおよび前記第2のイメージを有するボリュームイメージからコンピュータ読み取り可能な記録媒体にリストアする方法であって、前記ボリュームイメージは、前記第1のイメージおよび前記第2のイメージの両方に共通な共通のデータ、前記第1のイメージではなく、前記第2のイメージに特有な第2のファイルデータ、前記第2のイメージの第2の類似するファイルデータに類似する前記第1のイメージの第1の類似するファイルデータ、前記第1の類似するファイルデータと前記第2の類似するファイルデータとの間の差異を示すデルタファイルを備え、前記方法は、
    前記第2のファイルデータを前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記第1の類似するファイルデータを前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記デルタファイルを前記コピーされた第1の類似するファイルデータに適用し、前記第2の類似するファイルデータを生成するステップと
    を含むことを特徴とする方法。
  47. 前記ファイルデータは、任意のバイナリファイルデータまたはメタデータ以外の任意の他のデータを備えることを特徴とする請求項46に記載の方法。
  48. 前記第1のイメージまたは前記第2のイメージは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項46に記載の方法。
  49. 第1のイメージおよび第2のイメージを、前記第1のイメージおよび/または前記第2のイメージを別々にリストアすることができるボリュームイメージにコンピュータ読み取り可能な記録媒体上に結合する方法であって、
    前記第1のイメージは、
    前記第1のイメージおよび前記第2のイメージの両方に共通な共通のデータと、
    前記第2のイメージではなく、前記第1のイメージに特有な第1のファイルデータであって、前記第2のイメージの第2の類似するファイルデータに類似する第1の類似するファイルデータを備える第1のファイルデータとを備え、
    前記第2のイメージは、
    前記第1のイメージおよび前記第2のイメージの両方に共通な共通のデータと、
    前記第1のイメージではなく、前記第2のイメージに特有な第2のファイルデータであって、前記第1のイメージの前記第1の類似するファイルデータに類似する第2の類似するファイルデータを備える第2のファイルデータとを備え、
    前記方法は、
    前記共通のデータを前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記第1のファイルデータを前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記第2のファイルデータを、前記第2の類似するファイルデータを除いて、前記コンピュータ読み取り可能な記録媒体にコピーするステップと、
    前記第2の類似するファイルデータと前記第1の類似するファイルデータとの間の差異を示すデルタファイルを生成するステップと、
    前記生成されたデルタファイルを前記コンピュータ読み取り可能な記録媒体にコピーするステップとを含むことを特徴とする方法。
  50. 前記ファイルデータは、任意のバイナリファイルデータまたはメタデータ以外の任意の他のデータを備えることを特徴とする請求項49に記載の方法。
  51. 前記第1のソフトウェアまたは前記第2のソフトウェアは、オペレーティングシステム、アプリケーションプログラム、または両方を備えることを特徴とする請求項49に記載の方法。
  52. 第1のソフトウェアおよび第2のソフトウェアを、前記第1のソフトウェアの第1のイメージおよび前記第2のソフトウェア第2のイメージのそれぞれがイメージングにより再生成されうる単一のボリュームイメージに結合する方法であって、
    前記第1のソフトウェアを複数のファイルを指し示すメタデータを有するベースイメージに変換するステップと、
    前記ベースイメージのすべてのファイルの結合された要約を生成するステップと、
    前記第2のソフトウェアを複数のファイルを指し示すオフセットテーブルを指し示すメタデータを有する第2のイメージに変換するステップと、
    前記第2のイメージの前記メタデータとの類似したマッチについて前記メタデータの前記メタデータを検索するステップと、
    前記結合された要約の一部として、類似的にマッチしたファイルについてのパッチを生成し、格納するステップと
    を含むことを特徴とする方法。
JP2005508278A 2003-08-15 2003-08-22 ボリュームイメージを生成すること Ceased JP2007521528A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/641,798 US20040034849A1 (en) 2002-06-17 2003-08-15 Volume image views and methods of creating volume images in which a file similar to a base file is stored as a patch of the base file
PCT/US2003/026348 WO2005020156A1 (en) 2003-08-15 2003-08-22 Creating volume images

Publications (1)

Publication Number Publication Date
JP2007521528A true JP2007521528A (ja) 2007-08-02

Family

ID=34216357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005508278A Ceased JP2007521528A (ja) 2003-08-15 2003-08-22 ボリュームイメージを生成すること

Country Status (6)

Country Link
US (1) US20040034849A1 (ja)
EP (1) EP1654708A1 (ja)
JP (1) JP2007521528A (ja)
KR (1) KR20070048638A (ja)
CN (1) CN100378648C (ja)
WO (1) WO2005020156A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008537209A (ja) * 2005-03-11 2008-09-11 ロックソフト リミテッド データ・クラスタを使用する冗長性の少ないデータを格納する方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050172280A1 (en) * 2004-01-29 2005-08-04 Ziegler Jeremy R. System and method for preintegration of updates to an operating system
US20050210462A1 (en) * 2004-03-11 2005-09-22 International Business Machines Corporation Systems and method for the incremental deployment of Enterprise Java Beans
US7809763B2 (en) * 2004-10-15 2010-10-05 Oracle International Corporation Method(s) for updating database object metadata
US7562347B2 (en) * 2004-11-04 2009-07-14 Sap Ag Reusable software components
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US7844820B2 (en) * 2005-10-10 2010-11-30 Yahoo! Inc. Set of metadata for association with a composite media item and tool for creating such set of metadata
US8161469B1 (en) * 2005-12-13 2012-04-17 Altera Corporation Method and apparatus for comparing programmable logic device configurations
US20070168535A1 (en) * 2005-12-22 2007-07-19 Ilmo Ikonen System and method for data communication between devices
US7496613B2 (en) * 2006-01-09 2009-02-24 International Business Machines Corporation Sharing files among different virtual machine images
US8055096B2 (en) * 2006-05-10 2011-11-08 Research In Motion Limited Method and system for incremental patching of binary files
US8296268B2 (en) * 2006-07-21 2012-10-23 Samsung Electronics Co., Ltd. System and method for change logging in a firmware over the air development environment
US8527660B2 (en) * 2006-12-22 2013-09-03 Palm, Inc. Data synchronization by communication of modifications
US8578332B2 (en) 2007-04-30 2013-11-05 Mark Murray Universal microcode image
CN101694624B (zh) * 2009-10-19 2015-05-20 中兴通讯股份有限公司 处理软件安装包光盘镜像文件的方法及装置
US20110113422A1 (en) 2009-11-09 2011-05-12 Bank Of America Corporation Programmatic Creation Of Task Sequences From Manifests
US9176898B2 (en) 2009-11-09 2015-11-03 Bank Of America Corporation Software stack building using logically protected region of computer-readable medium
US20110214105A1 (en) * 2010-02-26 2011-09-01 Macik Pavel Process for accepting a new build
JP5137995B2 (ja) * 2010-04-27 2013-02-06 京セラドキュメントソリューションズ株式会社 画像読取転送装置及び画像形成装置
US20140188949A1 (en) * 2013-01-03 2014-07-03 Dell Products L.P. Methods and systems for supply chain assurance of information handling system code
US20150169901A1 (en) * 2013-12-12 2015-06-18 Sandisk Technologies Inc. Method and Systems for Integrity Checking a Set of Signed Data Sections
US10223361B2 (en) * 2017-01-18 2019-03-05 Netapp, Inc. Methods and systems for restoring a data container archived at an object-based storage
CN108228227B (zh) * 2017-12-29 2021-07-02 北京元心科技有限公司 目录差分方法、装置及相应终端
US10963239B2 (en) 2018-10-18 2021-03-30 International Business Machines Corporation Operational file management and storage
US11070618B2 (en) * 2019-01-30 2021-07-20 Valve Corporation Techniques for updating files

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5267330A (en) * 1984-06-19 1993-11-30 Canon Kabushiki Kaisha Image processing apparatus
US5142680A (en) * 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
US5155594A (en) * 1990-05-11 1992-10-13 Picturetel Corporation Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
JP3660363B2 (ja) * 1992-05-28 2005-06-15 株式会社リコー 画像形成装置管理システムとその画像形成装置
EP0592079A2 (en) * 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
US5467441A (en) * 1993-07-21 1995-11-14 Xerox Corporation Method for operating on objects in a first image using an object-based model data structure to produce a second contextual image having added, replaced or deleted objects
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5634052A (en) * 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
US5782762A (en) * 1994-10-27 1998-07-21 Wake Forest University Method and system for producing interactive, three-dimensional renderings of selected body organs having hollow lumens to enable simulated movement through the lumen
TW313643B (ja) * 1994-12-14 1997-08-21 At & T Corp
US5842024A (en) * 1995-02-27 1998-11-24 Ast Research, Inc. Method of software installation
US5794052A (en) * 1995-02-27 1998-08-11 Ast Research, Inc. Method of software installation and setup
US5745313A (en) * 1995-03-23 1998-04-28 Microsoft Corporation Method and apparatus for expanding data storage capacity on a floppy diskette
US5732265A (en) * 1995-11-02 1998-03-24 Microsoft Corporation Storage optimizing encoder and method
GB2309104B (en) * 1996-01-11 2000-06-07 Ibm Preloading software onto a computer system
US6161218A (en) * 1996-01-16 2000-12-12 Sun Microsystems Inc. Software patch architecture
US6167562A (en) * 1996-05-08 2000-12-26 Kaneko Co., Ltd. Apparatus for creating an animation program and method for creating the same
US5933842A (en) * 1996-05-23 1999-08-03 Microsoft Corporation Method and system for compressing publication documents in a computer system by selectively eliminating redundancy from a hierarchy of constituent data structures
JP3763937B2 (ja) * 1996-06-28 2006-04-05 富士通株式会社 オブジェクト指向プログラミング装置、およびオブジェクト結合プログラム記憶媒体
US5813008A (en) * 1996-07-12 1998-09-22 Microsoft Corporation Single instance storage of information
JPH10295934A (ja) * 1997-04-25 1998-11-10 Sega Enterp Ltd ビデオゲーム装置及びモデルのテクスチャの変化方法
JP3496744B2 (ja) * 1997-06-13 2004-02-16 三洋電機株式会社 画像データ記録装置およびディジタルカメラ
JP3191922B2 (ja) * 1997-07-10 2001-07-23 松下電器産業株式会社 画像復号化方法
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6138179A (en) * 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6021415A (en) * 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US5983239A (en) * 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts
JP3232052B2 (ja) * 1997-10-31 2001-11-26 松下電器産業株式会社 画像復号化方法
JPH11143724A (ja) * 1997-11-13 1999-05-28 Sharp Corp 情報処理装置および情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体
US6080207A (en) * 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6216175B1 (en) * 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6377958B1 (en) * 1998-07-15 2002-04-23 Powerquest Corporation File system conversion
US6343265B1 (en) * 1998-07-28 2002-01-29 International Business Machines Corporation System and method for mapping a design model to a common repository with context preservation
US6262726B1 (en) * 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
TW408286B (en) * 1998-12-18 2000-10-11 Inventec Corp Software pre-installation method
US6188779B1 (en) * 1998-12-30 2001-02-13 L&H Applications Usa, Inc. Dual page mode detection
US6711624B1 (en) * 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
US6427236B1 (en) * 1999-03-03 2002-07-30 Microsoft Corporation Method for installing a patch based on patch criticality and software execution format
US6434744B1 (en) * 1999-03-03 2002-08-13 Microsoft Corporation System and method for patching an installed application program
US6466999B1 (en) * 1999-03-31 2002-10-15 Microsoft Corporation Preprocessing a reference data stream for patch generation and compression
US6782402B1 (en) * 1999-05-06 2004-08-24 Seiko Epson Corporation Network management system, computer system, copy server, file server, network copy file management method, and computer readable medium
US6385766B1 (en) * 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US6598223B1 (en) * 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6938211B1 (en) * 1999-11-24 2005-08-30 University of Pittsburgh of the Common Wealth System of Higher Education Methods and apparatus for an image transfer object
US6681323B1 (en) * 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data
JP4792686B2 (ja) * 2000-02-07 2011-10-12 ソニー株式会社 画像処理装置及び画像処理方法並びに記録媒体
US6772192B1 (en) * 2000-02-29 2004-08-03 Hewlett-Packard Development Company, L.P. Software download and distribution via image building and multicast
US6763150B1 (en) * 2000-08-29 2004-07-13 Freescale Semiconductor, Inc. Image processing system with multiple processing units
US20020188941A1 (en) * 2001-06-12 2002-12-12 International Business Machines Corporation Efficient installation of software packages
US7093132B2 (en) * 2001-09-20 2006-08-15 International Business Machines Corporation Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
TW563376B (en) * 2002-03-15 2003-11-21 Via Tech Inc Method for adjusting color value or related parameter of overlay image frame
US7260738B2 (en) * 2002-06-17 2007-08-21 Microsoft Corporation System and method for splitting an image across multiple computer readable media

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008537209A (ja) * 2005-03-11 2008-09-11 ロックソフト リミテッド データ・クラスタを使用する冗長性の少ないデータを格納する方法
JP4768009B2 (ja) * 2005-03-11 2011-09-07 ロックソフト リミテッド データ・クラスタを使用する冗長性の少ないデータを格納する方法

Also Published As

Publication number Publication date
EP1654708A1 (en) 2006-05-10
WO2005020156A8 (en) 2007-02-15
CN1839413A (zh) 2006-09-27
US20040034849A1 (en) 2004-02-19
WO2005020156A1 (en) 2005-03-03
KR20070048638A (ko) 2007-05-09
CN100378648C (zh) 2008-04-02

Similar Documents

Publication Publication Date Title
JP2007521528A (ja) ボリュームイメージを生成すること
US7017144B2 (en) Combined image views and method of creating images
US9787706B1 (en) Modular architecture for analysis database
US7395453B2 (en) System and method for splitting an image across multiple computer readable media
US6947954B2 (en) Image server store system and method using combined image views
US10025528B2 (en) Managing transformations of snapshots in a storage system
US10949405B2 (en) Data deduplication device, data deduplication method, and data deduplication program
US8380672B2 (en) Backup control apparatus and method eliminating duplication of information resources
EP2441002B1 (en) Source classification for performing deduplication in a backup operation
US7836053B2 (en) Apparatus and methods of identifying potentially similar content for data reduction
US7747582B1 (en) Surrogate hashing
US7917481B1 (en) File-system-independent malicious content detection
US8255366B1 (en) Segment-based method for efficient file restoration
US7814070B1 (en) Surrogate hashing
US20050210465A1 (en) Management system of difference data among servers and control method of information processing apparatus
JP2012093827A (ja) ファイルの重複を排除する装置及び方法
US8909606B2 (en) Data block compression using coalescion
US20220215386A1 (en) Transaction management device, non-transitory computer-readable recording medium having stored therein transaction management program, and transaction management method
JP4615010B2 (ja) 文書管理プログラムおよび文書管理方法
CN111488242B (zh) 将条带化备份加标签和路由到重复数据删除设备上的单个重复数据删除实例的方法和系统
JP7010538B2 (ja) ファイル管理装置、ファイル管理方法、及びプログラム
JP6631139B2 (ja) 検索制御プログラム、検索制御方法および検索サーバ装置
JP2022051517A (ja) 事業分割によって組職データを選別的に分離する方法およびシステム
CN115686754A (zh) 一种容器镜像迁移方法、装置、设备及存储介质
JP2005222434A (ja) アーカイブ配備管理装置およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091211

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20100423