各々がマスメモリ145c内の対応するメモリアドレスを有する複数のメモリ位置を有する前記マスメモリを含むデータ処理エンティティ115中で複数のソフトウェアイメージを管理するための方法A201~A221、A301~A311、A401~A407であって、各ソフトウェアイメージは、各々が前記ソフトウェアイメージ内の対応するイメージアドレスを有する複数のメモリブロックを含み、前記方法は、各ソフトウェアイメージの前記メモリブロックの少なくとも部分を前記マスメモリの対応するイメージ部分225iに保存するステップA201~A221であって、各メモリブロックは前記対応するイメージアドレスに前記マスメモリ内の前記イメージ部分のオフセットを加えたものに等しい前記メモリアドレスを有する前記メモリ位置に保存される、ステップと、現在のイメージ部分に保存された現在のソフトウェアイメージを選択するステップA305と、前記現在のソフトウェアイメージのブート位置に保存された前記メモリブロックを前記マスメモリの再配置部分230に再配置するステップA307であって、前記現在のソフトウェアイメージの前記ブート位置は、前記現在のソフトウェアイメージにアクセスするために適合されるアクセス機能220をロードするまで前記データ処理エンティティをブートするために必要とされる前記メモリブロックを含む前記現在のソフトウェアイメージのブートブロック250iの前記イメージアドレスに等しい前記メモリアドレスを有する前記メモリ位置である、ステップと、前記現在のソフトウェアイメージの前記ブートブロックを前記対応するブート位置にコピーするステップA308と、前記対応するブート位置における前記現在のソフトウェアイメージの前記ブートブロックから前記データ処理エンティティをブートするA310ことによって前記アクセス機能をロードするステップと、前記アクセス機能によって、前記現在のソフトウェアイメージの選択されたメモリブロックにアクセスする各要求を提供するステップA311~A312であって、前記アクセス機能は、前記対応するイメージアドレスに前記現在のイメージ部分の前記オフセットを加えたものに等しい前記メモリアドレスを有する前記メモリ位置における前記選択されたメモリブロックにアクセスする、ステップとを含む、方法A201~A221、A301~A311、A401~A407。前記現在のソフトウェアイメージの前記ブート位置に保存された前記メモリブロックを前記再配置部分に再配置するステップA307の前に、前のソフトウェアイメージの前記ブート位置から前記再配置部分に再配置されていた前記メモリブロックを前記前のソフトウェアイメージの前記ブート位置に復元するステップA306をさらに含む、請求項1に記載の方法A301~A311。前記イメージ部分はゼロのオフセットを有する最初のイメージ部分を含み、前記最初のイメージ部分にはすべての前記イメージ部分の前記ブート位置が含まれ、前記現在のソフトウェアイメージの前記ブート位置に保存された前記メモリブロックを再配置するステップA307と、前記現在のソフトウェアイメージの前記ブートブロックをコピーするステップA308とは、前記現在のイメージ部分が前記最初のイメージ部分と異なるときにのみ行われる、請求項1または2に記載の方法A301~A311。スナップショットとなるためのソースイメージ部分に保存されたソースソフトウェアイメージを選択するステップA301と、前記ソースソフトウェアイメージの各メモリブロックをフリーであるイメージ部分にコピーするステップA302であって、前記ソースソフトウェアイメージの前記メモリブロックは、前記再配置部分に再配置されたときには前記再配置部分から、別様では前記ソース部分からコピーされる、ステップとをさらに含む、請求項1から3のいずれか1項に記載の方法A301~A311。削除されるべき古いイメージ部分に保存された古いソフトウェアイメージを選択するステップA303と、前記古いイメージ部分をフリーと設定するステップA304とをさらに含む、請求項1から4のいずれか1項に記載の方法A301~A311。各ソフトウェアイメージのすべての前記メモリブロックが前記対応するイメージ部分に保存される、請求項1から5のいずれか1項に記載の方法A301~A311。前記現在のソフトウェアイメージの前記ブートブロックから前記データ処理エンティティをブートする前記ステップA310は、前記現在のイメージ部分のサイズに従って前記アクセス機能によって前記現在のソフトウェアイメージのサイズ変更を行うステップA310を含む、請求項1から6のいずれか1項に記載の方法A301~A311。外部ソース110から前記データ処理エンティティの新しいイメージ部分への新しいソフトウェアイメージの配置を要求するステップA205、A207と、前記外部ソースから前記データ処理エンティティに前記新しいソフトウェアイメージの前記ブートブロックをダウンロードするステップA206、A208と、前記新しいソフトウェアイメージの前記ブート位置に保存された前記メモリブロックを前記再配置部分に再配置するステップA210と、前記新しいソフトウェアイメージの前記ブートブロックを前記対応するブート位置にコピーするステップA211と、前記対応するブート位置における前記新しいソフトウェアイメージの前記ブートブロックから前記データ処理エンティティをブートするA214ことによって前記アクセス機能をロードするステップと、前記アクセス機能によって、前記新しいソフトウェアイメージのさらに選択されたメモリブロックにアクセスする各要求を提供するステップA215~A218であって、前記アクセス機能は、前記さらに選択されたメモリブロックが前記マスメモリにないことに応答して、前記外部ソースから前記さらに選択されたメモリブロックをダウンロードしてA216a、前記さらに選択されたメモリブロックを、前記対応するイメージアドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリアドレスを有する前記メモリ位置に保存するA217か、または別様で前記対応するイメージアドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリアドレスを有する前記メモリ位置から前記さらに選択されたメモリブロックを検索するA216b、ステップとをさらに含む、請求項1から7のいずれか1項に記載の方法A201~A221。前記新しいソフトウェアイメージの前記ブート位置に保存された前記メモリブロックを再配置するステップA210の前に、現在のソフトウェアイメージの前記ブート位置から前記再配置部分に再配置されていた前記メモリブロックを前記現在のソフトウェアイメージの前記ブート位置に復元するステップA209をさらに含む、請求項8に記載の方法A201~A221。前記対応するイメージアドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリアドレスを有する前記メモリ位置に、前記新しいソフトウェアイメージの前記ブートブロックをコピーするステップA213をさらに含む、請求項8または9に記載の方法A201~A221。更新モードにおいて前記さらに選択されたメモリブロックにアクセスする各要求A215に対して、前記方法は前記対応するイメージアドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリアドレスを有する前記メモリ位置において前記さらに選択されたメモリブロックを更新するステップA217をさらに含む、請求項8から10のいずれか1項に記載の方法A201~A221。前記データ処理エンティティの作業負荷をモニタするステップA220と、前記作業負荷が閾値よりも低くなったことに応答して、前記外部ソースから前記マスメモリに保存されていない新しいメモリブロックの組をダウンロードしてA221、前記新しいメモリブロックを、前記対応するイメージアドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリアドレスを有する前記メモリ位置に保存するステップをさらに含む、請求項8から11のいずれか1項に記載の方法A201~A221。前記アクセス機能の前記ロードまでの前記ソフトウェアイメージからの補助データ処理エンティティのブートシーケンスをシミュレートするステップA404であって、前記ソフトウェアイメージの各メモリブロックは前記ブートシーケンスが追跡される際にアクセスされる、ステップと、前記追跡されたメモリブロックに従って前記ソフトウェアイメージの前記ブートブロックを識別するステップA405とによって各ソフトウェアイメージを準備するステップをさらに含む、請求項1から12のいずれか1項に記載の方法A401~A407。データ処理システム100上でコンピュータプログラムが実行されるときに、請求項1から13のいずれか1項に記載の前記方法A201~A221、A301~A311、A401~A407の各ステップを前記データ処理システムに実行させる、コンピュータプログラム200、300、400。請求項1から13のいずれか1項に記載の前記方法A201~A221、A301~A311、A401~A407の前記ステップを行うための手段200、300、400を含む、システム100。一般的な見地からみて、本発明の1つまたはそれ以上の実施形態に従う解決策は、複数のソフトウェアイメージをそのブートブロックを再配置することによって管理するという考えに基づいている。特に、本発明の特定の実施形態に従う解決策の1つまたはそれ以上の局面が独立請求項に示されており、同じ解決策の有利な特徴が従属請求項に示されており、その表現は本明細書において一語一句違わず引用により援用される本発明の実施形態に従う解決策の特定の局面を参照して提供されるあらゆる有利な特徴は、そのあらゆる他の局面に準用して適用される。より特定的には、本発明の実施形態に従う解決策の1局面は、データ処理エンティティたとえばスタンドアロンコンピュータなどの中で複数のソフトウェアイメージを管理するための方法を提供する。データ処理エンティティは、複数のメモリ位置を有するマスメモリを含む。各メモリ位置は、マスメモリ内に対応するメモリアドレスを有する。次に、各ソフトウェアイメージは複数のメモリブロックを含む。各メモリブロックはソフトウェアイメージ内に対応するイメージアドレスを有する。この方法は以下のステップを含む。各ソフトウェアイメージまたは少なくともその部分のメモリブロックが、マスメモリの対応するイメージ部分に保存される。特に、各メモリブロックは、対応するイメージアドレスにマスメモリ内のイメージ部分のオフセットを加えたものに等しいメモリアドレスを有するメモリ位置に保存される。たとえば、前にセーブされたスナップショットに切換えることなどによって現在のイメージ部分に保存された現在のソフトウェアイメージが選択される。現在のソフトウェアイメージのブート位置に保存されたメモリブロックが、マスメモリの再配置部分に再配置される。現在のソフトウェアイメージのブート位置は、現在のソフトウェアイメージのブートブロックのイメージアドレスに等しいメモリアドレスを有するメモリ位置であり、このブートブロックは現在のソフトウェアイメージにアクセスするために適合されるアクセス機能をロードするまでデータ処理エンティティをブートするために必要とされる現在のソフトウェアイメージのメモリブロックを含む。現在のソフトウェアイメージのブートブロックは、対応するブート位置にコピーされる。対応するブート位置にある現在のソフトウェアイメージのブートブロックからデータ処理エンティティがブートされることによって、アクセス機能がロードされる。現在のソフトウェアイメージの選択されたメモリブロックにアクセスする各要求は、アクセス機能によって提供される。アクセス機能は、対応するイメージアドレスに現在のイメージ部分のオフセットを加えたものに等しいメモリアドレスを有するメモリ位置にある選択されたメモリブロックにアクセスする。本発明の実施形態に従う解決策のさらなる局面は、データ処理システムにおいてコンピュータプログラムが実行されるときにデータ処理システムに本方法のステップを行わせるためのコード手段を含むコンピュータプログラムを提供する。本発明の実施形態に従う解決策のさらなる局面は、コンピュータプログラムを包含する持続性コンピュータ読取可能媒体を含むコンピュータプログラム製品を提供し、このコンピュータプログラムはデータ処理システムのワーキングメモリに直接ロード可能なコード手段を含むことによって、同方法を行うようにデータ処理システムを構成する。本発明の実施形態に従う解決策の別の局面は、前記方法のステップを行うための手段を含むシステムを提供する。本発明の1つまたはそれ以上の実施形態に従う解決策、ならびにそのさらなる特徴および利点は、添付の図面とともに読まれるべき、純粋に非制限的表示によって与えられる以下の詳細な説明を参照することによって最もよく理解されるだろうこの説明においては簡略化のため、対応する構成要素は同一または類似の参照によって示され、その説明は繰り返されず、さらに各エンティティの名前はそのタイプおよび属性の両方、たとえばその値、内容および表現などを示すために一般的に用いられる。特に図1を参照すると、本発明の実施形態に従う解決策を適用可能なデータ処理システムまたは単にシステム100の概略的ブロック図が示される。システム100は分散アーキテクチャを有し、これはたとえばローカルエリアネットワークLocalAreaNetwork:LANなどのネットワーク105に基づくものである。ネットワーク105を通じて複数のコンピュータが互いに接続される。特にサーバコンピュータ110は、簡略化のために図面に2つだけ示されているクライアントコンピュータ115へのソフトウェアイメージの配置を制御する。各ソフトウェアイメージは、1つまたはそれ以上のソフトウェアモジュールたとえば、オペレーティングシステム、アプリケーションプログラムまたはデータあるいはその組合わせなどを含む構造である。システム100の一般的なサーバまたはクライアントコンピュータは、システム100中のコンピュータの実際の機能に従って好適に調整された構造を有するシステムバス120に並列接続されたいくつかのユニットによって形成される。詳述すると、1つまたはそれ以上のマイクロプロセッサmicroprocessors:μP125はコンピュータの動作を制御する。RAM130はマイクロプロセッサ125によってワーキングメモリとして用いられ、ROM135はコンピュータの基本コードを保存する。ローカルバス140の周りにそれぞれのインタフェースによっていくつかの周辺ユニットが集まっている。特に、マスメモリは1つまたはそれ以上のハードディスク145と、光ディスク155たとえばDVDまたはCDなどを読取るためのドライブ150とを含む。さらに、コンピュータは入力ユニット160たとえばキーボードおよびマウスなどと、出力ユニット165たとえばモニタおよびプリンタなどとを含む。アダプタ170は、コンピュータをネットワーク105に接続するために用いられる。ブリッジユニット175は、システムバス120をローカルバス140にインタフェースする。各マイクロプロセッサ125およびブリッジユニット175は、情報を送信するためにシステムバス120へのアクセスを要求するマスタエージェントとして動作し得る。アービタ180は、システムバス120に対する相互排除によってアクセスの認可を管理する。本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図を図2~図12に示す。特に、これらの図面は全体として参照200によって示される対応の構成要素によってシステムの静的構造と、記号Aで始まる連続的なシーケンス番号によって示される、各々が対応の動作を表す一連の交換メッセージによってその動的挙動とを説明するものである。図2から始めると、それぞれ参照130sおよび145sによって示されるワーキングメモリおよびマスメモリを有するサーバコンピュータ110は、配置マネージャ205、たとえばIBM社によるIBMTivoliIBM社の登録商標ProvisioningManagerforOSDeploymentまたはTPMforOSDのIBMTivoliIBM社の登録商標ProvisioningManagerforImagesまたはTPMfIなどを実行するIBMおよびTivoliはIBM社の商標である。配置マネージャ205は、システムのクライアントコンピュータへのソフトウェアイメージ210ii=1...Nの配置を自動化するために用いられる。ソフトウェアイメージ210iは対応するリポジトリに保存される。各ソフトウェアイメージ210iは、ソフトウェアイメージ210i内の対応するアドレスイメージアドレスと呼ばれるを有する1組のメモリブロックを含む。メモリブロックはあらゆる種類の情報たとえば、オペレーティングシステムまたはアプリケーションプログラムのいずれかに関係する1つまたはそれ以上のセクタ、ファイル、ライブラリ、ディレクトリ、その組合わせまたは部分などを含んでもよい。特に、それぞれ参照130cおよび145cによって示されるワーキングメモリおよびマスメモリを有する特定のクライアントコンピュータ115に新しいソフトウェアイメージ210iたとえばソフトウェアイメージ2101を配置するときにはいつも、システムのオペレータ212がこれらのクライアントコンピュータ115および新しいソフトウェアイメージ2101を、配置マネージャ205を通じて、たとえば図面に示されない別のクライアントコンピュータ上で実行されるブラウザに接続することなどによって選択する動作A201.選択。それに応答して、配置マネージャ205はクライアントコンピュータ115をオンにする。その結果、クライアントコンピュータ115が何らかの機能するオペレーティングシステムを有さないと仮定すると、クライアントコンピュータ115は図面に示されないネットワーク上でブートする。特に、クライアントコンピュータ115のファームウェアに保存されてクライアントコンピュータ115をオンにすると実行されるブートローダ、たとえば基本入出力システムBasicInput/OutputSystem:BIOSなどが、何らかのブート可能な装置を見出さずに、次いでネットワークブートローダ、たとえばそのネットワークアダプタに組込まれたプリブート実行環境PrebootExecutionEnvironment:PXEなどを開始する。ネットワークブートローダは、たとえば動的ホスト構成プロトコルDynamicHostConfigurationProtocol:DHCPなどに基づく動的アドレスサービスを利用して、DHCPサーバとして動作するサーバコンピュータ110からクライアントコンピュータ115に対する動的アドレスを得、サーバコンピュータ110はクライアントコンピュータ115のRAMディスク、すなわちマスメモリとして扱われるそのワーキングメモリ130cの部分にダウンロードされてから開始されるネットワークブートストラッププログラムのアドレスも提供する。たとえばウィンドウズプレインストール環境WindowsPreinstallationEnvironment:WinPEウィンドウズはマイクロソフトMicrosoft社の商標などのネットワークブートストラッププログラムは最小オペレーティングシステム215を提供し、これは配置マネージャ205と対話するための配置エージェント220を含む動作A202.ネットワークブート。配置エージェント220は、マスメモリ145cを論理的に分割して複数のイメージ部分225jj=0...M、たとえばM=2~10およびサービス部分230にすることによって、マスメモリ145cを初期化する。各々がソフトウェアイメージを保存するためのイメージ部分225jは、すべてが同じサイズ少なくともそこにインストールされ得る最大のソフトウェアイメージのサイズに等しいを有し、マスメモリ145cの始めから連続して配置されるのに対し、サービス情報を保存するためのサービス部分230はそれより小さく、マスメモリ145cの終わりに配置される。特に、サービス部分230は、イメージ部分225jの状態情報を含むイメージテーブル235を保存する。たとえば、各イメージ部分225jに対して、イメージテーブル235はその利用可能性、すなわちフリーか使用中かを示すフラグを有する記録すべてのフラグが最初にデアサートされることによって、すべてのイメージ部分225jがフリーであることを示すと、イメージ部分225jのサイズに従って算出されたマスメモリ145c内のその始めからのイメージ部分225jの位置を示すオフセットとを含む。サービス部分230は、現在アクティブのイメージ部分225jのオフセットを示すオフセットインデックス240も保存する動作A203.初期化。配置エージェント220は、次いでサーバコンピュータ110から新しいソフトウェアイメージ2101のブートブロックの組をダウンロードする。この目的のために、配置エージェント220は、たとえばインターネットスモールコンピュータシステムインタフェースInternetSmallComputerSystemInterface:iSCSIプロトコルなどに基づいて、サーバコンピュータ110のリモートアクセスサーバ245と対話するリモートアクセスイニシエータとして動作する。ブートブロックは、配置エージェント220をロードするまで新しいソフトウェアイメージ2101のブートシーケンスを始動するために必要とされるメモリブロックを含む。たとえば、マイクロソフトウィンドウズにおいてブートブロックは、配置エージェント220に加えてマスタブート記録MasterBootRecord:MBRと、ブートセクタと、bootmgr.exeファイルと、boot\bcdファイルと、システムレジストリと、winload.exeファイルと、システムレジストリにおいて指定されるドライバファイルとを含む動作A204.ダウンロード。ここで配置エージェント220は、最初のイメージ部分2251が新しいソフトウェアイメージ2101を受取るためにフリーであることを識別するこれはイメージテーブル235においてデアサートされた対応のフラグを有する第1のイメージ部分であるため。その結果として、配置エージェント220はそれに従ってイメージテーブル235をイメージ部分2251のフラグをアサートしてそれが使用中であることを示すことによって更新し、オフセットインデックス240をイメージテーブル235に示される新しいイメージ部分2251のオフセット、この場合にはゼロに設定してこれが現在のものであることを示すことによって更新する。さらに配置エージェント220は、ブートブロックのイメージアドレスを、イメージテーブル235中の現在のイメージ部分2251に関連する記録にセーブする。配置エージェント220は、現在のイメージ部分2251その終わりの、新しいソフトウェアイメージ2101を保存するために確保された部分の後ろに、図面には示されない位置マップも作成する。ソフトウェアイメージ2101の各メモリブロックに対して、位置マップはマスメモリ145cにおけるその利用可能性を示すフラグを含む。すべてのフラグが最初にデアサートされることによって、マスメモリ145cにおけるどのメモリブロックもまだ利用可能でないことが示される動作A212.構成、以下に説明されるスキップされたシーケンス番号に対応する動作を伴う。次いで配置エージェント220は、新しいソフトウェアイメージ2101のブートブロックを、現在のイメージ部分2251に、すなわち対応のイメージアドレスに現在のイメージ部分2251のオフセットを加えたものに等しいマスメモリ145c中のアドレスメモリアドレスと呼ばれるを有するマスメモリ145cのメモリ位置に保存する。これらのブートブロックはグレーで示され、参照2501で表示されている。同時に、位置テーブル中の対応するフラグがアサートされるそれによって、マスメモリ145cにおいて現在そのブートブロックが利用可能であることが示される。この場合には現在のイメージ部分2251のオフセットがゼロであるため、ブートブロック2501はマスメモリ145c中で、ブートシーケンスの際に見出されることが期待されるまさにその場所に配置される動作A213.保存。ここで配置エージェント220はクライアントコンピュータ115をオフにしてからオンにする。したがって、図3に示されるとおり、クライアントコンピュータ115はマスメモリ145cから正常にブートする。実際に、クライアントコンピュータ115がオンになると実行されるクライアントコンピュータ115のブートローダが今、マスメモリ145cをブート可能な装置として識別するため、それは自身のブートブロック2501から局所的にブートする。このやり方で、ブートブロック2501に対応する新しいソフトウェアイメージ2101の実際のオペレーティングシステムの部分参照2551によって示されるおよび配置エージェント220がワーキングメモリ130cにロードされる。たとえば、マイクロソフトウィンドウズにおいてBIOSはMBRをロードし、MBRはブートセクタをロードし、ブートセクタはbootmgr.exeファイルを見出して始動し、bootmgr.exeはboot\bcdファイルを見出して読取ることによってメモリ位置を決定し、次いでシステムレジストリと、winload.exeファイルと、システムレジストリにおいて指定されるドライバファイルとをロードし、winload.exeは配置エージェント220を始動する。新しいソフトウェアイメージ2101のサイズが現在のイメージ部分2251のサイズと異なるすなわちそれより小さいとき、配置エージェント220はそのサイズ変更も行って、現在のイメージ部分2251全体が占有されるようにする。この動作は、オペレーティングシステム2551の図面には示されないファイル-システム構造の更新しか必要としないため、非常に速い動作A214.ローカルブート。ここで、クライアントコンピュータ115の動作中に新しいソフトウェアイメージ2101の選択されたメモリブロックにアクセスするすべての要求は、オペレーティングシステム2551の図面には示されない標準的なファイル-システムドライバをオーバーライドする配置エージェント220のストリーミングドライバによって提供される。特に、ファイル-システムドライバは、たとえば図面には示されないアプリケーションプログラムなどから、選択されたメモリブロックにアクセスするすなわちそれを読取るための要求を受取る動作A215.アクセス要求。この要求は配置エージェント220に送られ、配置エージェント220は選択されたメモリブロックが現在のイメージ部分2251において利用可能かどうかを確認する位置マップに示されるとおり。選択されたメモリブロックが現在のイメージ部分2251において利用可能でないときすなわち位置マップにおけるそのフラグがデアサートされているとき、配置エージェント220はその要求をオペレーティングシステム2551の図面には示されないリモートアクセスドライバ問題となる例におけるiSCSIイニシエータとして動作するに送る。リモートアクセスドライバは、リモートアクセスサーバ245を通じてサーバコンピュータ110上のソフトウェアイメージ2101から選択されたメモリブロックをダウンロードする。リモートアクセスドライバは、次いで選択されたメモリブロックを配置エージェント220に戻す動作A216a.ダウンロード。配置エージェント220はオペレーティングシステム255の図面には示されない物理的ディスクドライバを通じて現在のイメージ部分2251に選択されたメモリブロックを保存する。特に、選択されたメモリブロックは、そのイメージアドレスに現在のイメージ部分2251のオフセットを加えたものに等しいメモリアドレスを有するメモリ位置に保存されるこの場合にはゼロであるそのオフセットは、オフセットテーブル240から抽出される。さらに、配置エージェント220はそれに従って位置マップを更新し、すなわち対応するフラグをアサートすることによって、選択されたメモリブロックが利用可能であることを示す動作A217.保存。ここで配置エージェント220は選択されたメモリブロックをファイル-システムドライバに戻し、ファイル-システムドライバは次にそれをアプリケーションプログラムに戻す動作A218.戻す。逆に、図4に示されるとおり、もし選択されたメモリブロックが現在のイメージ部分2251においてすでに利用可能であればすなわち位置マップにおけるそのフラグがアサートされていれば、配置エージェント220はその要求を物理的ディスクドライバに送る。物理的ディスクドライバは、現在のイメージ部分2251から、すなわちそのイメージアドレスに現在のイメージ部分2251のオフセットこの場合はゼロを加えたものに等しいメモリアドレスを有するメモリ位置から選択されたメモリブロックを直接検索する。物理的ディスクドライバは、次いで選択されたメモリブロックを配置エージェント220に戻す動作A216b.検索。この場合にも、配置エージェント220は選択されたメモリブロックをファイル-システムドライバに戻し、ファイル-システムドライバは次にそれをアプリケーションプログラムに戻す同じ動作A218.戻す。上述のストリーミング技術は、クライアントコンピュータ115を非常に短時間のうちに使用可能にする。すなわち、たとえ配置プロセスがまだ進行中であっても、新しいソフトウェアイメージ2101のブートブロックがマスメモリ145cに保存された直後たとえば、10~200Mバイトの典型的なサイズのブートブロックに対しては1~2分後に使用可能になる。クライアントコンピュータ115の動作は完全に正常であり通常どおりマスメモリ145cから直接ブートする、それはマスメモリ145cにおけるソフトウェアイメージ2101の他のメモリブロックが利用可能かどうかには関係せず、サーバコンピュータ110からなおもダウンロードされるべきであるメモリブロックにアクセスするときにクライアントコンピュータ115の性能がわずかに効率低下するだけである。さらに、クライアントコンピュータ115を使用可能にするために必要な時間は、新しいソフトウェアイメージ2101のサイズに関係しない。ネットワークの使用量も時間とともにたとえば対数法則によって減少するが、これは一旦メモリブロックがアクセスされると、クライアントコンピュータ115においてより多くのメモリブロックがすでに利用可能となるからである。このことに関して、このストリーミング技術は、ソフトウェアイメージをオンデマンドで提供するために当該技術分野において公知であるものとは無関係であることに注意すべきである。実際のところ、公知のストリーミング技術において、ソフトウェアイメージのメモリブロックは即時使用のためにのみクライアントコンピュータにダウンロードされる。しかし、これらのメモリブロックはクライアントコンピュータに永続的に保存されないすなわちそれらは使用後、およびいずれの場合にもクライアントコンピュータがオフにされた後に消滅するため、それらを次に使用するためにはそれらを再びダウンロードする必要がある。その結果として、クライアントコンピュータをサーバコンピュータから切断することは決してできない。実際には、たとえメモリブロックが先取りされていても、それらは次の使用の可能性までしかクライアントコンピュータ上に存続しない。同様に、たとえメモリブロックに対するローカルキャッシュが実施されていても、再使用のためにローカルキャッシュに残るのはほんのわずかなメモリブロックだけであるいずれの場合にも、ローカルキャッシュ中の最も長時間使用されていないメモリブロックは、新しいメモリブロックを保存するために最終的に追い出される。図5を参照して、もし選択されたメモリブロックが書込のために要求されれば、配置エージェント220はその要求を物理的ディスクドライバに送る。物理的ディスクドライバは現在のイメージ部分2251において、すなわちそのイメージアドレスに現在のイメージ部分2251のオフセットこの場合はゼロを加えたものに等しいメモリアドレスを有するメモリ位置において、選択されたメモリブロックを直接更新し、その読取の後それは常時利用可能となる動作A219.更新。したがって、たとえ配置プロセスがまだ進行中であっても、現在のイメージ部分2251はあたかも新しいソフトウェアイメージ2101がクライアントコンピュータ115にすでに完全に配置されていたかのように正常に更新され得る。まったく非同期的に、配置エージェント220は、サーバコンピュータ110、クライアントコンピュータ115、またはそれらを接続するネットワーク、あるいはその組合わせの作業負荷を周期的に確認するたとえば10~100msごと。作業負荷が予め定められた閾値より低いたとえば、サーバコンピュータ110またはクライアントコンピュータ115あるいはその両方において何の動作も行われておらず、ネットワーク内のトラフィックが少ないために、この時点で対応するリソースの利用が少ないことを示すとき、配置エージェント220は上述と同じ動作を繰り返すことによって、現在のイメージ部分2251においてまだ利用可能でない新しいメモリブロックたとえば、位置マップにおけるそのフラグがデアサートされている最初のメモリブロックをダウンロードする動作A220.ダウンロード。上記と同様に、配置エージェント220はこの新しいメモリブロックを物理的ディスクドライバを通じて現在のイメージ部分2251に、すなわちそのイメージアドレスに現在のイメージ部分2251のオフセットこの場合はゼロを加えたものに等しいメモリアドレスを有するメモリ位置に保存する。さらに、配置エージェント220はそれに従って位置マップを更新して、新しいメモリブロックが利用可能であることを示す動作A221.保存。このやり方で、図6に示されるとおり、最後に新しいソフトウェアイメージ2101のすべてのメモリブロックがたとえそれらがまったく使用されなくてもダウンロードされることを確実にすることができる。あらゆる時点で、オペレータ212は、配置マネージャ205を通じて同じクライアントコンピュータ115に配置されるべき別の新しいソフトウェアイメージ210iたとえばソフトウェアイメージ2102を選択してもよい動作A205.選択。それに応答して、上記と同様に配置エージェント220は、リモートアクセスサーバ245を通じてサーバコンピュータ110から新しいソフトウェアイメージ2102のブートブロックをダウンロードする動作A206.ダウンロード。図7に移って、配置エージェント220は、新しいソフトウェアイメージ2102のブート位置すなわち新しいソフトウェアイメージ2102のブートブロックのイメージアドレスに等しいメモリアドレスを有するメモリ位置に保存される最初のイメージ部分2251のメモリブロックを再配置する。特に、これらのメモリブロックはサービス部分230の専用の再配置部分に移され、それらは再配置メモリブロック2602と呼ばれる動作A210.再配置。次いで配置エージェント220は、新しいソフトウェアイメージ2102のブートブロックをそれらのブート位置に保存する。それらのブートブロックは濃いグレーで示され、参照2502で表示されている。このやり方で、ここでもブートブロック2502は、マスメモリ145c中の、ブートシーケンスの際に見出されることが期待されるまさにその場所に配置される。しかし、このことは最初のイメージ部分2251におけるいかなる情報の損失ももたらさない。なぜなら、オーバーライドされた対応のメモリブロックはサービス部分230にセーブされているからである動作A211.保存。次いで、配置プロセスは上記とまったく同様に続く。特に、配置エージェント220は新しいソフトウェアイメージ2102を受取るためにフリーであるイメージ部分225iすなわち、問題となる例におけるイメージ部分2252を識別する。その結果、配置エージェント220はそれに従ってイメージ部分2252のフラグをアサートして使用中であることを示すことによってイメージテーブル235を更新し、イメージ部分2252のオフセットに設定してそれが現在のものであることを示すことによってオフセットインデックス240を更新する。さらに配置エージェント220は、ブートブロック2502のイメージアドレスを、イメージテーブル235中の現在のイメージ部分2252に関連する記録にセーブする。配置エージェント220は、現在のイメージ部分2252に図面には示されない対応する位置マップも作成する同じ動作A212.構成。次いで配置エージェント220は、新しいソフトウェアイメージ2102のブートブロックを、現在のイメージ部分2252に、すなわちそれらのイメージアドレスに現在のイメージ部分2252のオフセットを加えたものに等しいメモリアドレスを有するマスメモリ145cのメモリ位置に保存する。それらのブートブロックはグレーで示される同じ動作A213.保存。ここで配置エージェント220はクライアントコンピュータ115をオフにしてからオンにする。したがって、図8に示されるとおり、クライアントコンピュータ115のブートローダはそのブートブロック2502からブートする。このやり方で、ブートブロック2502に対応する新しいソフトウェアイメージ2102のオペレーティングシステムの部分参照2552で示されるおよび配置エージェント220がワーキングメモリ130cにロードされる同じ動作A214.ローカルブート。ここでも、クライアントコンピュータ115の動作中にソフトウェアイメージ2102の選択されたメモリブロックにアクセスするすべての要求は、配置エージェント220のストリーミングドライバによって提供される。特に、新しいソフトウェアイメージ2102の選択されたメモリブロックにアクセスするそれを読取るための要求同じ動作A215.アクセス要求に応答して、もし選択されたメモリブロックが現在のイメージ部分2252において利用可能でなければ、それはサーバコンピュータ110上のソフトウェアイメージ2102からダウンロードされ同じ動作A216a.ダウンロード、現在のイメージ部分2252に保存され同じ動作A217.保存、次いで戻される同じ動作A218.戻す。逆に、図9に示されるとおり、もし選択されたメモリブロックが現在のイメージ部分2252においてすでに利用可能であれば、それは直接検索され同じ動作A216b.検索、次いで戻される同じ動作A218.戻す。図10を参照して、選択されたメモリブロックが書込のために要求されたのであれば、それは現在のイメージ部分2252において更新される同じ動作A219.更新。作業負荷が低いとき、現在のイメージ部分2252においてまだ利用可能でない新しいメモリブロックがダウンロードされて同じ動作A220.ダウンロード、現在のイメージ部分2252に保存される同じ動作A221.保存。完全にダウンロードされたソフトウェアイメージ2102を示す図11を参照して、オペレータ212はあらゆる時点で、配置マネージャ205を通じて同じクライアントコンピュータ115に配置されるべき別の新しいソフトウェアイメージ210iたとえばソフトウェアイメージ2103を選択してもよい動作A207.選択。それに応答して、上記と同様に配置エージェント220は、リモートアクセスサーバ245を通じてサーバコンピュータ110から新しいソフトウェアイメージ2103のブートブロックをダウンロードする動作A208.ダウンロード。ここで配置エージェント220は、再配置されたメモリブロック2602をサービス部分230から最初のイメージ部分2251に、すなわち現在のイメージ部分2252のブート位置にイメージテーブル235の対応の記録に示されるとおり復元する。この動作は、オーバーライドされた現在のイメージ部分2252のブートブロック2502におけるいかなる情報の損失ももたらさない。なぜなら、上に説明したとおりにクライアントコンピュータ115の動作中に更新された可能性のあるそれらの最新の値が現在のイメージ部分2252に保存されているからである動作A209.復元。次いで、配置プロセスは上記とまったく同様に続く。特に、図12に示されるとおり、配置エージェント220は新しいソフトウェアイメージ2103のブート位置に保存される最初のイメージ部分2251のメモリブロックをサービス部分230に再配置し、これらのメモリブロックは参照2603で示される同じ動作A210.再配置。ここで配置エージェント220は、新しいソフトウェアイメージ2103のブートブロックをそれらのブート位置に保存する。それらのブートブロックは濃いグレーで示され、参照2503で表示されている同じ動作A211.保存。次いで配置エージェント220は、ソフトウェアイメージ2102を受取るためにフリーであるイメージ部分225iすなわちイメージ部分2253を識別する。その結果、配置エージェント220はそれに従ってイメージ部分2253のフラグをアサートして使用中であることを示すことによってイメージテーブル235を更新し、イメージ部分2253のオフセットに設定してそれが現在のものであることを示すことによってオフセットインデックス240を更新する。さらに配置エージェント220は、ブートブロック2503のイメージアドレスを、イメージテーブル235中の現在のイメージ部分2253に関連する記録にセーブする。配置エージェント220は、現在のイメージ部分2253に図面には示されない対応する位置マップも作成する同じ動作A212.構成。次いで配置エージェント220は、新しいソフトウェアイメージ2103のブートブロックを、現在のイメージ部分2253に保存する。それらのブートブロックはグレーで示される同じ動作A213.保存。ここで配置エージェント220は、クライアントコンピュータ115をオフにしてからオンにすることでそれを自身のブートブロック2503からブートさせ、それによってブートブロック2503に対応するソフトウェアイメージ2103のオペレーティングシステムの部分、および新しいソフトウェアイメージ2103のあらゆる選択されたメモリブロックにアクセスするすべての要求を提供する配置エージェントをワーキングメモリ130cにロードする同じ動作A214.ローカルブート。いずれの場合にも、クライアントコンピュータへの1つまたはそれ以上のソフトウェアイメージの配置が一旦完了すると、それはもはやサーバコンピュータを何ら必要とすることなく自律的に作業できる。しかし、配置プロセスの際に用いられたのと同じストリーミング技術を利用して、クライアントコンピュータのスナップショットを作成することもできる各スナップショットは、特定の時点におけるそのソフトウェアイメージの整合性のあるバックアップコピーによって形成される。特に、図13~図17は、本発明の実施形態に従うスナップショットプロセスを実施するために使用可能な主要ソフトウェア構成要素全体として参照300によって示されるの役割を表す協調図を示す。図13から始めて、たとえば、クライアントコンピュータ115においてイメージ部分2251および2252に2つのソフトウェアイメージが保存されているという状況を考えてみる。イメージ部分2252が現在のものであり、そのブートブロック2502は最初のイメージ部分2251におけるそのブート位置にも保存される最初のイメージ部分2251の対応の再配置メモリブロック2602はサービス部分230にセーブされている。クライアントコンピュータ115のユーザは、対応するソースイメージ部分225i、たとえばソースソフトウェアイメージ2101を保存するソースイメージ部分2251などにソースソフトウェアイメージの新しいスナップショットを作成するためのコマンドを提出してもよい動作A301.作成。それに応答して、配置エージェント220は最初にソースソフトウェアイメージ2101を受取るためにフリーである目標イメージ部分225iたとえば、問題となる例におけるイメージ部分2253を識別する。次いで配置エージェント220は、ソースソフトウェアイメージ2101全体を目標イメージ部分2253にコピーする。より具体的には、ソースソフトウェアイメージ2101の対応する現在のイメージアドレスを有する現在のメモリブロックすべてに対して、もしソースイメージ部分2251がこの場合のように最初のものであれば、配置エージェント220は現在のメモリブロックがサービス部分230に再配置されたすなわち、イメージテーブル235におけるその記録に示されるとおり、現在のイメージアドレスが現在のソフトウェアイメージ2252のブート位置の1つのイメージアドレスに等しいかどうかを確認する。もしそうであれば、対応する再配置メモリブロック2602が目標イメージ部分2253の、現在のイメージアドレスに目標イメージ部分2253のオフセットを加えたものに等しいメモリアドレスを有するメモリ位置にコピーされる。逆にすなわち、現在のメモリブロックが再配置されていないとき、またはソースイメージ部分が最初のものではないときは常に、現在のメモリブロックがソースイメージ部分2251から目標イメージ部分2253にコピーされる。すなわち、現在のイメージアドレスにソースイメージ部分2252のオフセットを加えたものに等しいメモリアドレスを有するメモリ位置から、現在のイメージアドレスに目標イメージ部分2253のオフセットを加えたものに等しいメモリアドレスを有するメモリ位置にコピーされる動作A302.コピー。一旦ソースソフトウェアイメージ2101全体が目標イメージ部分2253にコピーされると、配置エージェント220はそれに従って、目標イメージ部分2253のフラグをアサートして使用中であることを示し、ソースソフトウェアイメージ2101のブートブロックの同じイメージアドレスをセーブすることによって、イメージテーブル235を更新する動作A303.更新。したがって、ソフトウェアイメージのスナップショットを作成する動作はかなり遅いその長さはコピーされるソースソフトウェアイメージのサイズに比例する。図14に移って、クライアントコンピュータ115のユーザは、対応する古いイメージ部分225i中の古いソフトウェアイメージを削除するためのコマンドを配置エージェント220に提出してもよい。古いソフトウェアイメージの削除後のクライアントコンピュータ115の動作の継続性を確実にするために、古いイメージ部分225iは現在のイメージ部分2252とは異なる、たとえばイメージ部分2251などであるべきである動作A303.削除。それに応答して、配置エージェント220は古いイメージ部分2251のフラグをアサートし、それがフリーであることを示すことによってイメージテーブル235を単に更新する動作A304.更新。したがって、ソフトウェアイメージを削除する動作は非常に速いそのメモリブロックに対する実際の動作を何も必要としないため。さらに、たとえ削除されるイメージ部分が最初のものであっても、この動作は何の問題も起こさない現在のイメージ部分2252に保存されるブートブロックは影響されないため。図15を参照して、代わりにクライアントコンピュータ115のユーザは、現在のソフトウェアイメージ2252から別前のソフトウェアイメージ225iへ、たとえばソフトウェアイメージ2253などへ切換えるためのコマンドを提出してもよい動作A305.切換。それに応答して、上記と同様に配置エージェント220は再配置メモリブロック2602をサービス部分230から最初のイメージ部分2251に、すなわち現在のイメージ部分2252のブート位置に復元する動作A306.復元。図16に移って、配置エージェント220は、前のソフトウェアイメージ2103のブート位置に保存される最初のイメージ部分2251のメモリブロックをサービス部分230に再配置し、それらのメモリブロックは参照2603で示される動作A307.再配置。次いで配置エージェント220は前のソフトウェアイメージ2103のブートブロックをそれらのブート位置にコピーする。それらのブートブロックはグレーで示され、参照2503で表示されている動作A308.コピー。次いで配置エージェント220は、オフセットインデックス240を前のイメージ部分2253のオフセットに設定してそれが現在のものとなったことを示すことによって、オフセットインデックス240を更新できる動作A309.更新。ここで配置エージェント220は、クライアントコンピュータ115をオフにしてからオンにすることでそれを自身のブートブロック2503からブートさせ、それによってブートブロック2503に対応する前のソフトウェアイメージ2103のオペレーティングシステムの部分、および配置エージェントをワーキングメモリ130cにロードする動作A310.リブート。図17を考慮すると、いずれの場合にも、クライアントコンピュータ115の動作中に現在のソフトウェアイメージ2103の選択されたメモリブロックにアクセスするすべての要求は、ここでもオペレーティングシステム2553の図面には示されない標準的なファイル-システムドライバをオーバーライドする配置エージェント220のストリーミングドライバによって提供される。特に、ファイル-システムドライバは、たとえば図面には示されないアプリケーションプログラムなどから、選択されたメモリブロックにアクセスするそれを読取るかまたは書込むための要求を受取る動作A311.アクセス要求。この要求は配置エージェント220に送られ、配置エージェント220はオペレーティングシステム2553の図面には示されない物理的ディスクドライバを通じて現在のイメージ部分2253中の選択されたメモリブロックに、すなわち選択されたメモリブロックのイメージアドレスに現在のイメージ部分2253のオフセットを加えたものに等しいメモリアドレスを有するメモリ位置に直接アクセスする動作A312.アクセス。上述の技術は、クライアントコンピュータ上の複数のソフトウェアイメージを非常に簡単なやり方で管理することを可能にする。さらに、異なるソフトウェアイメージは互いに完全に分離される。実際のところ、各ソフトウェアイメージは対応するイメージ部分にしかアクセスできないそれによって他のイメージ部分を損なうあらゆる危険を防止する。この結果は、仮想化インフラストラクチャを何ら必要とせずに達成される。したがって、クライアントコンピュータの性能は悪影響を受けない。実際に、この場合にはソフトウェアイメージすなわちそれらが保存されるマスメモリのみが仮想化される。反対に、オペレーティングシステムはクライアントコンピュータ上でネイティブに実行され続ける。特に、このことによってスナップショットを非常に速く復元できるそれはすでにクライアントコンピュータ上で利用可能であるため。さらに、ネットワーク接続を何ら必要とせずに所望の結果が達成され得る。図18に移ると、本発明の実施形態に従う解決策において用いられる一般的なソフトウェアイメージの準備プロセスを実施するために使用可能な主要ソフトウェア構成要素全体として参照400によって示されるの役割を表す協調図が示される。特に、この準備プロセスは、上述の配置プロセスまたはスナップショットプロセスの際に用いられるソフトウェアイメージのブートブロックを識別することを目的とする。この目的のために、サーバコンピュータ110はマスタソフトウェアイメージまたは単にマスタイメージ405のリポジトリを含む。各マスタイメージ405は、たとえば、それが前にインストールされたドナークライアントコンピュータのハードディスクの内容を取込むことによって作成される対応するソフトウェアイメージの基本バージョンを提供し、そこではドナークライアントコンピュータのあらゆる構成に関する特定の内容たとえばドライバおよびレジストリ設定などが除去されている。サーバコンピュータ110はモデル410のリポジトリも含む。各モデル410は代わりにクライアントコンピュータの対応する構成に対して特定的な内容を含む。オペレータ212は、配置マネージャ205を通じて対応する補助クライアントコンピュータ115によって表されるクライアントコンピュータの特定のタイプに対するソフトウェアイメージ選択されたマスタイメージ405および選択されたモデル410を含むを選択する動作A401.選択。それに応答して、配置マネージャ205は選択されたソフトウェアイメージの識別子を送ることによって、補助クライアントコンピュータ115上の配置エージェント220をウェイクアップする動作A402.ウェイクアップ。その結果、配置エージェント220は、リモートアクセスサーバ245を通じて遠隔的にアクセスするためのリモートディスクとしてすなわち問題となる例におけるiSCSIイニシエータとして動作することによって選択されたソフトウェアイメージをマウントする。その結果、補助クライアントコンピュータ115による排他的アクセスのための一時的ソフトウェアイメージまたは単に一時的イメージ415が作成される。一時的イメージ415は、単に選択されたマスタイメージ405および選択されたモデル410のメモリブロックを指すインデックス構造によって、つまりその何らかのコピーを作成することなく定められる。一時的イメージ415は有効にされたブロック追跡機能とともにマウントされることによって、アクセスされる一時的イメージ415のあらゆるメモリブロックのイメージアドレスが追跡される動作A403.マウント。ここで配置エージェント220は、配置エージェントのロードまでの一時的イメージ415上の補助クライアントコンピュータ115のブートシーケンスをシミュレートする。たとえば、マイクロソフトウィンドウズにおいて配置エージェント220はMBRと、ブートセクタと、bootmgr.exeファイルと、boot\bcdファイルと、システムレジストリと、winload.exeファイルと、システムレジストリにおいて指定されるドライバファイルと、配置エージェントとを読取る動作A404.シミュレートされたブート。シミュレートされたブートシーケンスが完了すると、配置エージェント220は一時的イメージ415をアンマウントする動作A405.アンマウント。次いで配置エージェント220は一時的イメージ415を配置マネージャ205にコミットする動作A406.コミット。それに応答して、配置マネージャ205は単にそのインデックス構造によって定められる一時的イメージ415から新しいソフトウェアイメージまたは単に新しいイメージ420を構築する。さらに、新しいイメージ420はシミュレートされたブート手順の間にアクセスされたメモリブロックのリストに関連しており、このメモリブロックは対応するブートブロックを定める動作A407.構築。当然ながら、ローカルおよび特定の要求を満たすために、当業者は上述の解決策に多くの論理的または物理的あるいはその両方の修正および変更を適用してもよい。より特定的には、この解決策はその1つまたはそれ以上の実施形態を参照してある程度詳細に説明されているが、たとえば数値および構成に関してその形および詳細におけるさまざまな省略、置換および変更、ならびに他の実施形態が可能であることが理解されるべきである。特に、本発明のより完全な理解を提供するために先の記載に示されている特定の詳細なしに、本発明の異なる実施形態が実施されてもよい。反対に、不必要な詳細によって説明を曖昧にしないために、周知の特徴が省略または簡略化されていることがある。さらに、開示される解決策のあらゆる実施形態と関連して記載される特定の構成要素または方法ステップあるいはその両方は、一般的な設計選択の問題としてあらゆる他の実施形態に組込まれてもよいことが明確に意図されている。たとえば、より多くのステップもしくはその部分と同じ機能を有する類似のステップを用いること、必須でないいくつかのステップを除去すること、またはさらなる任意のステップを加えることによってもし同じ解決策が同等の方法によって実施されれば、類似の考察が適用される。さらに、これらのステップは少なくとも部分的に異なる順序で行われても、同時または交互に行われてもよい。ソフトウェアイメージは、あらゆるソフトウェアプログラムたとえば、何らかのアプリケーションプログラムを有さないオペレーティングシステムのみを含んでもよい。さらに、提案される技術は物理的コンピュータにおける使用のために特定的に設計されているが、仮想マシンにおけるその適用も除外されない。加えて、アクセス機能を提供するためにあらゆる同等の構造が用いられてもよい。いずれの場合にも、あらゆるブートシーケンスを有するあらゆるその他のオペレーティングシステムに同じ技術が適用されてもよい。たとえば、LinuxリーナストーバルズLinusTorvaldsの商標において、ブートブロックは配置エージェントに加えてGRBUブートローダを含むMBRと、カーネルおよびinitrdファイルシステムを含む/bootディレクトリとを含む。この場合、ブートシーケンスの際にBIOSがGRBUを含むMBRをロードし、GRBUは/bootディレクトリを見出してカーネルおよびinitrdファイルシステムをロードし、GRBUはカーネルをブートし、カーネルはinitrdファイルシステムを始動し、initrdファイルシステムは配置エージェントを始動する。クライアントコンピュータが別のソフトウェアイメージに切換えられたときに再配置メモリブロックを復元するステップは、厳密に必要なものではない。たとえば、最初のものと異なるすべてのソフトウェアイメージのブート位置のメモリブロックを再配置部分に再配置し、次いでクライアントコンピュータが最初のソフトウェアイメージに切換えられたときにのみそれらすべてを同時に復元することも可能であるそれによって切換動作が速くなるが、マスメモリスペースの無駄が生じる。いずれの場合にも、ブート位置はマスメモリ内のいずれの位置に配置されてもよい。イメージ部分は同等のやり方で管理されてもよい。たとえば、作成されるときに動的に定められる異なるサイズを有するイメージ部分を有することが可能である。さらに、イメージ部分の状態情報を管理するために同等の構造が用いられてもよいたとえば、その各イメージ区画がその利用可能性の標識を直接含む。先行する説明では、1つまたはそれ以上のソフトウェアイメージが完全にインストールされたすなわちネットワーク接続が必要でないときにクライアントコンピュータ上で実施されるスナップショットプロセスを参照したが、クライアントコンピュータがそこに復帰したときに再始動するソフトウェアイメージの配置を伴うクライアントコンピュータのマスメモリに部分的にのみ保存されたソフトウェアイメージにも同じ技術が適用されてもよい。代替的な実施においては、配置エージェントが、対応するオペレーションシステムにそのサイズが現在のソフトウェアイメージのサイズと等しいと信じさせることによって、現在のイメージ部分を管理するそのいかなるサイズ変更も伴わないが、対応するマスメモリスペースの無駄を伴う。ソフトウェアイメージは、あらゆる外部ソースたとえば取り外し可能な記憶装置などから上述のストリーミング技術によって配置されてもよい。加えて、マスメモリにおけるメモリブロックの利用可能性を管理するためにあらゆる同等の構造が用いられてもよいたとえば、位置マップをチャンクに分割してそれらがクライアントコンピュータのワーキングメモリにロードされることを可能にすることなどによる。代替的には、ソフトウェアイメージが完全にダウンロードされた後も常にストリーミングプロセスをアクティブに維持することも可能であるたとえば、位置マップ中の対応のフラグのリセットに応答してメモリブロックの最新バージョンをダウンロードするため。いずれの場合にも、提案される技術は、ソフトウェアイメージがいかにしてクライアントコンピュータに配置されたかにはまったく依存しないたとえば何らかのサーバコンピュータなしに手動で配置されてもよい。対応するソフトウェアイメージの配置の際にブートブロックをそれらのブート位置にのみコピーするクライアントコンピュータが別のソフトウェアイメージに切換えられるときにのみブートブロックがそのイメージ部分にセーブされる可能性も排除されない。代替的には、配置エージェントを何ら通すことなく物理的ディスクドライバによってメモリブロックの書込を直接管理することが可能である。作業負荷はあらゆる他の頻度でモニタされても、特定の期間たとえば夜間にのみモニタされてもよい。クライアントコンピュータ、サーバコンピュータ、ネットワーク、またはそのあらゆる組合わせに対してのみ作業負荷がモニタされるときにも類似の考察が適用される。さらに、作業負荷に対する閾値はあらゆるその他のやり方でたとえば、異なる重みによってその寄与を計量することによって定められてもよい。作業負荷が閾値よりも低くなるときに2つまたはそれ以上のメモリブロックが同時にダウンロードされるときにも類似の考察が適用される。いずれの場合にも、ストリーミングプロセスが常にアクティブのままであるときには、この特徴は除外されてもよい。ソフトウェアイメージは異なるやり方で準備されてもよいたとえば、補助クライアントコンピュータを実際にブートして、ブートシーケンスの間にアクセスされるメモリブロックを追跡することによってそのブートブロックを識別することによるものなど。本発明の各実施形態を実施するために用いられ得るプログラムが異なるやり方で構築されても、または付加的なモジュールもしくは機能が与えられても、類似の考察が適用される。同様に、メモリ構造は他のタイプのものであってもよいし、同等のエンティティ必ずしも物理的記憶媒体からなっていなくてもよいによって置換されてもよい。プログラムは、あらゆるデータ処理システムによって用いられるために好適であるか、またはそれに関連するあらゆる形を取ってもよいたとえば仮想マシン内など。特に、プログラムは外部もしくは常駐のソフトウェア、ファームウェア、またはマイクロコードたとえばコンパイルまたは解釈されるべきオブジェクトコードまたはソースコードの形であってもよい。さらに、あらゆるコンピュータ使用可能媒体において実施される製造品としてプログラムを提供することが可能である。その媒体は、プログラムを包含、保存、通信、伝搬、または転送するために好適なあらゆる構成要素であってもよい。たとえば、その媒体は電子、磁気、光学、電磁気、赤外、または半導体のタイプのものであってもよい。こうした媒体の例は、プログラムをプレロードできる固定ディスク、リムーバブルディスク、テープ、カード、ワイヤ、ファイバ、無線接続、ネットワーク、放送波などである。いずれの場合にも、本発明の実施形態に従う解決策は、ハードウェア構造たとえば半導体材料のチップに集積されたもの、または別様で構成されたものに好適にプログラムされたソフトウェアおよびハードウェアの組合わせによる実施にも適する。代替的には、このシステムは異なる構造を有するか、同等の構成要素を含むか、または他の動作特徴を有する。いずれの場合にも、そのあらゆる構成要素がもっと多くの構成要素に分割されてもよいし、2つまたはそれ以上の構成要素が組合わされて単一の構成要素になってもよい。さらに、対応する動作の並行した実行を支持するために、各構成要素が複製されてもよい。異なる構成要素間のあらゆる対話は別様に指定されない限り一般的に継続的である必要はなく、対話は直接的であっても、1つまたはそれ以上の仲介物を通じた間接的なものであってもよいことが指摘される。特に、このシステムは異なるアーキテクチャたとえば、広域ネットワーク、グローバルネットワーク、セルラーネットワーク、または衛星ネットワークなどに基づいていてもよく、あらゆるタイプの有線または無線あるいはその両方の接続を利用してもよい。いずれの場合にも、各コンピュータは別の構造を有してもよいし、類似の構成要素たとえばプログラムまたはその部分を一時的に保存するキャッシュメモリなどを含んでもよい。さらに、コンピュータをあらゆるコード実行エンティティたとえばPDA、携帯電話など、または複数のエンティティの組合わせによって置換することが可能である。