説明

ネットワーク環境におけるスペースのカスタマイズ

【課題】PCが異なるユーザによって共有される場合、ユーザは、それらの基本的な個人設定をPCのユーザアカウント内に記憶させる。
【解決手段】モデルクライアントプラットフォームは、モデル記憶装置の第1のモデルブロックに格納された増分ファイルを含むファイルイメージを生成し、モデル記憶装置の第2のモデルブロックに格納されたファイル記述を含むファイル記述イメージを生成し、ファイルイメージおよびファイル記述イメージをモデルクライアントプラットフォームと接続するサーバにアップロードする。ファイル記述は、モデル記憶装置における第1のモデルブロックの位置を含む。通常のクライアントプラットフォームは、当該通常のクライアントプラットフォームの通常の記憶装置の各通常のブロックの使用状況を示す通常のブロックビットマップを生成し、通常のクライアントプラットフォームと接続するサーバからファイル記述イメージを受信する。

【発明の詳細な説明】
【背景技術】
【0001】
コンピュータをカスタマイズする能力は、プラットフォームの重要な機能である。一般的に、カスタマイズとは、コンピュータの設定を変更して特定のユーザに合わせることを含む。例えば、パソコン(PC)は、背景画像を変えること、テキストフォントを選ぶこと、または、オペレーティングシステムのカラースキームによってカスタマイズされうる。PCが異なるユーザによって共有される場合、個々のユーザは、それらの基本的な個人設定をPCのユーザアカウント内に記憶させうる。その後、ログインすることによって、それらの設定にアクセスしうる。
【図面の簡単な説明】
【0002】
添付の図面において本願明細書中に記載される発明が例示されるが、限定を意図しない。説明を簡潔かつ明確にすべく、図面中に示される構成要素は、必ずしも同じ尺度で描かれていない。例えば、いくつかの構成要素の寸法は、わかりやすくするために他の要素に比べて誇張されうる。さらに、適切だとみなされる場合は、図面を通じて参照符号が繰り返し用いられ、対応するかまたは同様の構成要素を示す。
【0003】
【図1】サーバプラットフォーム、および、サーバプラットフォームと接続する複数のクライアントプラットフォームを有するネットワーク環境の一実施形態を示す。
【0004】
【図2】ネットワーク環境における通常のクライアントプラットフォーム、モデルクライアントプラットフォーム、および、サーバプラットフォームの構造の一例を示す。
【0005】
【図3A】複数のブロックに分割される記憶装置の一実施形態を示す。
【0006】
【図3B】増分ファイルイメージおよび増分ファイル記述イメージの一実施形態を示す。
【0007】
【図3C】モデルクライアントプラットフォームにより生成されたモデルブロックビットマップの一実施形態を示す。
【0008】
【図3D】通常のクライアントプラットフォームにより生成された通常のブロックビットマップの一実施形態を示す。
【0009】
【図4】モデルクライアントプラットフォームをインストールする方法の一実施形態を示す。
【0010】
【図5】通常のクライアントプラットフォームを初期化する一実施形態を示す。
【0011】
【図6】通常のクライアントプラットフォームにおいて入出力要求を処理する一実施形態を示す。
【0012】
【図7】ネットワーク環境におけるクライアントプラットフォームのクライアントのための記憶装置空間をセーブする一実施形態を示す。
【0013】
【図8】一般のプラットフォームの一実施形態を示す。
【発明を実施するための形態】
【0014】
以下にネットワーク環境におけるスペースをカスタマイズする技術を説明する。以下の説明では、本発明の完全なる理解をさらに深めるべく、論理実装、擬似コード、オペランドを特定する手段、リソース区分/共有/複製の実装、システムコンポーネントのタイプおよび相互関連性、および、論理区分/統合の選択など、多数の特定の詳細が記載される。しかしながら、本発明は、そのような特定の詳細がなくとも実施されうる。他の例では、本発明をあいまいにすることを避けるべく、制御構造、ゲートレベル回路、および、完全なソフトウェア命令シーケンスは詳細に示されていない。記載を読んだ当業者であれば、何度も実験を繰り返さなくても適切な機能を実装できるであろう。
【0015】
明細書中に用いられる「1つの実施形態」、「一実施形態」、「一例」などは、説明される実施形態が特定の特徴、構造、または、特性を含みうるが、必ずしもその特定の特徴、構造、または、特性を含まなくてもよいことを示す。また、このような言い方は、必ずしも同じ実施形態を指すわけではない。さらに、特定の特徴、構造、または、特性が一実施形態に関連して記載された場合、他の実施形態に関連するそのような特徴、構造、または、特性にも、明確に記載されているか否かを問わず有効であることが当業者には明らかであろう。
【0016】
本発明の実施形態は、ハードウェア、ファームウェア、ソフトウェア、または、それらのいかなる組合せでも実装されうる。本発明の実施形態は、機械可読媒体に格納される命令としても実装されてよく、当該命令は、1つ以上のプロセッサにより読み取られて実行されうる。機械可読媒体は、機械(コンピュータなど)によって読み取り可能な形式で情報を格納または伝送するいかなる機構も含みうる。例えば、機械可読媒体は、ROM(リードオンリーメモリ)、RAM(ランダムアクセスメモリ)、磁気記憶装置の記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気、光、音響、または、他の形式の伝播信号(例えば、搬送波、赤外線信号、デジタル信号など)他を含みうる。
【0017】
図1にネットワーク環境10の一実施形態が示される。ネットワーク環境10は、サーバプラットフォーム12と、イーサネット(登録商標)、ファイバーチャンネル、または、他の通信リンクなどのネットワーク13を介してサーバプラットフォーム12と接続する複数のクライアントプラットフォーム11−11とを有してよい。本実施形態では、ネットワーク環境10は、いかなる数のクライアントプラットフォームおよびサーバプラットフォームを有してもよい。
【0018】
ネットワーク環境10は、それぞれのカスタマイズされた必要条件を満たすべく、異なるグループのクライアントに異なるコンテンツを提供してよい。例えば、若い学生は、教育的なコンテンツが必要かもしれないし、大人は、娯楽的なコンテンツを好むかもしれない。これらのニーズに応えるべく、各クライアントプラットフォーム11−11は、オペレーティングシステム、および、または、オペレーティングシステム上で動作するベースソフトウェアアプリケーションなどのベースソフトウェアイメージ、および/または、おそらく他のソフトウェアイメージもインストールされうる。
【0019】
クライアントプラットフォームの1つ(クライアントプラットフォーム11など)は、ベースファイルとは異ってよい増分ソフトウェアイメージがインストールされるモデルクライアントプラットフォームとして選択されうる。例えば、増分ファイルは、カスタマイズされたサービスをクライアントの特定のグループ(若い学生など)に提供しうるプログラム(教育的コンテンツなど)を含みうる。他の例では、増分ファイルは、ベースファイルのアップデートバージョンであってよい。その後、モデルクライアントプラットフォームは、増分ソフトウェアイメージと、サーバにアップロードされるそれらの記述情報とを含む増分パッケージを生成しうる。増分パッケージは、増分ソフトウェアイメージを格納するブロックを説明するブロック記述をさらに含んでよい。一実施形態では、ブロック記述は、モデルプラットフォームの記憶装置におけるブロックの位置を含みうる。
【0020】
モデルクライアントプラットフォームは、記憶装置のブロックに格納された増分ソフトウェアイメージがサーバから入手可能であるかどうかを示す情報をさらに生成し、当該情報をサーバ12にアップロードしてよい。一実施形態では、情報は、モデルクライアントプラットフォームの記憶装置の各ブロックの使用状況を示すモデルブロックビットマップでありうる。
【0021】
上記構成は、ネットワーク環境10における通常のクライアントプラットフォーム(クライアントプラットフォーム11)を実現しうる。当該クライアントプラットフォームは、予め増分ソフトウェアイメージがインストールされておらず、クライアントからの要求に応じてサーバから増分ソフトウェアイメージをダウンロードすることにより、そのグループのクライアントにカスタマイズされたコンテンツを提供する。
【0022】
ネットワーク環境10におけるモデルクライアントプラットフォーム(例えばクライアントプラットフォーム11)、通常のクライアントプラットフォーム(例えばクライアントプラットフォーム11)、および、サーバプラットフォーム12の構造の一実施形態が図2に示される。
【0023】
図に示すように、モデルクライアントプラットフォーム(例えばクライアントプラットフォーム11)は、ハードウェアマシン20と、ハードウェアマシン20上で動作するファームウェア21と、オペレーティングシステム22およびアプリケーション23を含む、ファームウェア21の上で動作するソフトウェアイメージとを含みうる。
【0024】
ハードウェアマシン20は、1つ以上のプロセッサ201、メモリ202、記憶装置203、および、ネットワークインターフェース204などをさらに含みうる。記憶装置203は、クライアントプラットフォーム内にある内部記憶装置(ハードディスクなど)、および、クライアントプラットフォームの外にある外部記憶装置(フロッピー(登録商標)ディスク、光ディスクなど)を含みうる。本実施形態では、記憶装置203は、データ記憶のための複数のブロックに分割されてよい。
【0025】
ファームウェア21は、システムスタートアップの間にプラットフォームが実行するBIOS(バイオス)ルーチン210、および、ファームウェア21とオペレーティングシステム22との間のインターフェースとなるEFI(拡張ファームウェアインターフェース)ルーチン211を格納し、オペレーティングシステム22をブートする標準環境を提供しうる。オペレーティングシステム22は、クライアントプラットフォームが実行するタスクを制御し、システム資源を管理してパフォーマンスを最適化しうる。オペレーティングシステム22は、ファイルおよびディクショナリのトラックを記憶装置203に保持するなどの基本的なタスクを実行しうる。
【0026】
本実施形態には、ベースファイルおよび増分ファイルの2種類のファイルが存在しうる。ベースファイルは、オペレーティングシステム22のためのプログラム、および/または、データベースプログラム、ワードプロセッサ、スプレッドシートなどの基本アプリケーションのためのプログラムを含みうる。増分ファイルは、ベースファイルとは異なってよい。例えば、増分ファイルは、若い学生用の教育プログラム、または、大人用のゲームなど、クライアントのグループに合わせて設計されたプログラムを含みうる。オペレーティングシステム22は、アプリケーション23からの呼び出しを受信して、記憶装置203から/にファイルを読み書きするI/Oハンドラ220、ファイルのトラックを整理して記憶装置203に保持するファイルシステム221、および、記憶装置203から/にファイルを出入力するドライバ222を有しうる。ドライバ222は、記憶装置のベースファイルが破壊されないようにするための記憶装置保護(SUP)ドライバ2220をさらに有しうる。
【0027】
アプリケーション23は、オペレーティングシステム22により提供されるソフトウェアプラットフォーム内で動作し、ユーザとのやりとりのためのユーザインターフェース230を提供するソフトウェアプログラムを含みうる。
【0028】
通常のクライアントプラットフォーム(例えばクライアントプラットフォーム11)は、ハードウェアマシン24、ハードウェアマシン24の上で動作するファームウェア25、および、オペレーティングシステム26およびアプリケーション27を含む、ファームウェア25の上で動作するソフトウェアイメージを含みうる。
【0029】
通常のクライアントプラットフォームの構成は、通常のクライアントプラットフォームのオペレーティングシステム26がクライアントの要求に応じて記憶装置243またはサーバ12からファイルを読み出すための供給オンデマンド(POD)ドライバ2621をさらに含む以外は、モデルクライアントプラットフォームの構成と同様である。
【0030】
サーバ12は、ハードウェアマシン120、アカウントサーバ121、パッケージサーバ122、および、イメージサーバ123を有しうる。ハードウェアマシン120は、1つ以上のプロセッサ1201、メモリ1202、記憶装置1203、ネットワークインターフェース1204などを有しうる。アカウントサーバ121は、クライアントプラットフォームから受信されたアカウント情報を確認しうる。パッケージサーバ122は、アカウントサーバ121からの確認結果に基づき、クライアントプラットフォームとの間で増分パッケージを送受信しうる。
【0031】
カスタマイズされたサービスをクライアントのグループに提供すべく、プレインストール期間において、オペレーティングシステムおよび/または基本アプリケーションを含むベースファイルが各クライアントプラットフォームの記憶装置にプレインストールされてよい。しかしながら、ベースファイルは、他の方法でインストールされてもかまわない。例えば、ベースファイルは、モデルクライアントプラットフォームの記憶装置203にプレインストールされてもよい。その後、モデルクライアントプラットフォームのEFI221は、ベースファイル、および、ベースファイル記述(ファイル名、ファイルサイズ、および、ファイル構成など)を含むベースパッケージを生成し、当該ベースパッケージをサーバ12のイメージサーバ123にアップロードしてよい。
【0032】
ベースパッケージは、モデルクライアントプラットフォームの記憶装置203内のブロックの位置など、ベースファイルを格納するブロックの説明をするブロック記述をさらに含みうる。そして、イメージサーバ123は、プレインストール期間において他のクライアントプラットフォームのそれぞれにベースパッケージをダウンロードすることにより、他のクライアントプラットフォームのそれぞれは、モデルクライアントプラットフォームと同じブロック位置にベースファイルをプレインストールしうる。
【0033】
教育的な素材またはゲームなどの、クライアントのグループに合わせて設計された増分ファイルは、モデルクライアントプラットフォームの記憶装置203にインストールされうる。インストール中、SUPドライバ2220は、ベースファイルが破壊されないように、ベースファイルが使用しない記憶装置203のブロックに増分ファイルを導く。SUPドライバ2220は、さらに、増分ファイルがベースファイルのアップデートバージョンかどうかを決定し、増分ファイルがアップデートされたベースファイルである場合、増分ファイルを格納するブロックを、ベースファイルを格納するブロックにマップすることを示すマッピング情報を記録してよい。
【0034】
そして、EFI211は、増分ファイル、および、入手可能なマッピング情報に基づき、増分パッケージを生成しうる。増分パッケージは、サーバにアップロードされてよい。パッケージは、増分ファイルのコンテンツを有する増分ファイルイメージ、および、増分ファイルのファイル記述を有する増分ファイル記述イメージを含みうる。ファイル記述の例は、ファイル名、ファイルサイズ、および、ファイル構成(ファイルシステムのツリー構造など)を含みうる。本実施形態では、ファイル記述は、記憶装置203内のブロック位置など、増分ファイルを格納しうる記憶装置203のブロックについての情報をさらに含んでよい。EFI211は、さらに、記憶装置203の各ブロックの使用状況を示すモデルブロックビットマップを生成し、当該モデルブロックビットマップをサーバ12にアップロードしうる。
【0035】
図3Aは、例えば、ブロック1....ブロックnなどの複数のブロックに分割されている記憶装置203の一実施形態を示す。
【0036】
図3Bは、増分ファイルイメージ301、および、増分ファイル記述イメージ302を有する増分パッケージ300の一実施形態を示す。増分ファイルイメージ301は、複数のエントリを有してよく、複数のエントリのそれぞれは、記憶装置203の1ブロックに対応する。増分ファイルイメージ301の各エントリは、2つの部分を含んでよく、1つは、ブロック内に格納された増分ファイルのコンテンツであり、もう1つは、当該ブロックに関連する記述情報である。
【0037】
例えば、増分ファイルイメージ301のエントリ1は、記憶装置203のブロック1に格納された増分ファイル1のコンテンツと、ブロック1に関する記述情報(例えば、記憶装置203内のブロック位置)とを含みうる。記憶のための複数のブロックを要しうる増分ファイルについては、それに対応する増分ファイルイメージは、複数のエントリを含みうる。
【0038】
同様に、増分ファイル記述イメージ302は、複数のエントリを有してよく、複数のエントリのそれぞれは、記憶装置203の1ブロックに対応する。増分ファイル記述イメージ302の各エントリは、2つの部分を有してよく、1つは、ブロック内に格納されたファイル記述情報であり、もう1つは、当該ブロックに関連する記述情報である。
【0039】
例えば、増分ファイル記述イメージ302のエントリ1'は、記憶装置203のブロック20に格納されたファイル記述情報と、ブロック20に関するブロック記述情報(例えば、記憶装置203内のブロック位置)とを含みうる。上述のごとく、ファイル記述情報は、ファイル名、ファイルサイズ、ファイル構成、および、増分ファイルを格納する記憶装置203のブロック(例えば増分ファイル1および2を格納するブロック4、5、10)などの増分ファイル(例えば増分ファイル1および2)に関する記述情報を含みうる。
【0040】
図3Cは、モデルブロックビットマップの一実施形態を示し、ビットマップの各ビットは、記憶装置203の各ブロックに対応し、ビット'1'またはビット'0'は、対応するブロックが用いられていること、および、用いられてないことを表してよい。しかしながら、モデルブロックビットマップには他の技術も適用しうることを理解されたい。例えば、モデルブロックビットマップは、記憶装置203の各ブロックに格納されたコンテンツがサーバにアップロードされているかどうかを示してよい。その場合、ビット'1'またはビット'0'は、対応するブロックのコンテンツがアップロードされていること、および、アップロードされていないことを表してよい。
【0041】
再び図2を参照すると、グループの中の1クライアント(例えば若い学生)がベースファイルをプレインストールしている通常のクライアントプラットフォームにログオンすると、EFI251は、ユーザインターフェース270を介してクライアントにより入力されたアカウント情報を受信しうる。その後、アカウント情報は、プラットフォームの初期化中、オペレーティングシステム26をブートする前に確認のためにアカウントサーバ121に送られてよい。
【0042】
確認後、アカウントサーバ121は、パッケージサーバ122を起動してアカウント情報と一致するモデルブロックビットマップをEFI251に送信してよい。モデルブロックビットマップは、モデルクライアントプラットフォームの記憶装置203の各ブロックの使用状況を示すモデルクライアントプラットフォームのEFI211により提供されうる。EFI251は、通常のクライアントプラットフォームの記憶装置243の各ブロックの使用状況を示す通常のブロックビットマップをさらに生成しうる。
【0043】
図3Dは、通常のブロックビットマップ304の一実施形態を示す。図に示すように、記憶装置243のブロック1から3は、通常のクライアントプラットフォームのプレインストール時にベースファイルを格納するために用いられうる。
【0044】
通常のクライアントプラットフォーム内でオペレーティングシステム26がブートアップされ、SUPドライバ2620およびPODドライバ2621を含むドライバ262がセットアップされた後、パッケージサーバ121は、クライアントに合わせて設計された増分ファイル記述イメージをPODドライバ2621に送信してよい。PODドライバ2621は、増分ファイル記述イメージからファイル記述情報およびブロック記述情報を取り出してよい。PODドライバ2621は、ブロック記述情報に記載されたブロック位置についてのファイル記述情報を格納し、EFI251から取り出された通常のブロックビットマップをアップデートしてよい。通常のブロックビットマップは、増分ファイル記述情報を格納する記憶装置243のブロックが用いられることを示すことによりアップデートされうる。
【0045】
サーバ12から読み出された増分ファイル記述情報、および、他の情報(例えばベースファイル記述情報)を利用することにより、オペレーティングシステム26は、ファイル構成を表すファイルシステム261を構築しうる。本実施形態では、ファイルシステム261は、ファイル、特に増分ファイルに対応するブロックに関する情報をさらに表してよい。増分ファイルのコンテンツが通常のプラットフォームの記憶装置243にインストールされていなくても、オペレーティングシステム26が増分ファイルおよび/またはベースファイルのアイコンをユーザインターフェース270のスクリーンに提示する手助けをファイルシステム261がしうる。例えば、ユーザスインターフェース270は、若い学生にはEラーンニング(e−class)のアイコンを、または、大人にはゲームのアイコンを提示しうる。
【0046】
ユーザインターフェース270上のファイルアイコンをクリックすることによりクライアントがファイルを開くと、I/Oハンドラ260がユーザインターフェース270からのI/O呼び出しを受信し、ファイルシステム261は、記憶装置243のどのブロックが選択されたファイルに対応しうるかを分析してよい。PODドライバ2621は、通常のブロックビットマップを参照することにより、選択されたファイルが記憶装置243に格納されているかどうかを決定してよい。対応するブロックが用いられていることを通常のブロックビットマップが示す場合、PODドライバ2621は、記憶装置243のブロックからファイルを読み出し、当該ファイルをユーザインターフェース270に出力してよい。しかしながら、対応するブロックが用いられていないことを通常のブロックビットマップが示す場合は、PODドライバ2621は、モデルブロックビットマップを参照することにより、選択されたファイルがサーバ12から入手可能かどうかを決定しうる。例えば、対応するブロックがモデルブロックビットマップ内で用いられていると示されるということは、選択されたファイルがサーバから入手可能であることを表しうる。
【0047】
選択されたファイルがサーバ12から入手可能であるとの決定に応じて、PODドライバ2621は、選択されたファイルをサーバ12にダウンロードする要求を送信する。パッケージサーバ122は、選択されたファイルを格納する増分ファイルイメージのエントリを読み出し、当該増分ファイルイメージのエントリをPODドライバ2621にダウンロードすることにより、PODドライバ2621は、増分ファイルイメージのエントリから取り出されたファイルを記憶装置243の対応するブロックに格納し、対応するブロックが用いられていることを示すことによって、通常のブロックビットマップをアップデートしてよい。最後に、PODドライバ2621は、選択されたファイルをユーザインターフェース270に出力してよい。
【0048】
新しいファイルを記憶装置243にダウンロードすることをクライアントが選択する場合、SUPドライバ2620は、ベースファイルを保護すべく、当該ベースファイルが用いない記憶装置243のブロックに新しいファイルを格納してよい。SUPドライバ2620は、新しいファイルがベースファイルのアップデートバージョンかどうかをさらに決定してよい。新しいファイルがアップデートされたベースファイルである場合、SUPドライバ2620は、新しいファイルを格納するブロックを、ベースファイルを格納するブロックにマップするためのマッピング情報を記録しうる。
【0049】
ログオフ前に、クライアントが現在の記憶装置構成をセーブすると決めた場合、通常のクライアントプラットフォームは、リブートし、EFI251は、通常のクライアントプラットフォームの記憶装置243に格納された増分ファイル、および/または、マッピング情報に基づき、増分パッケージを生成し、当該増分パッケージをサーバ12にアップロードしてよい。EFI251が通常のブロックビットマップをサーバにさらにアップロードすることにより、他の通常のクライアントプラットフォームにクライアントがログオンした場合に、同じ記憶装置環境を生成すべく、サーバ12からダウンロードされた通常のブロックビットマップ、および、増分パッケージが用いられてよい。
【0050】
他の実施形態は、図2に示されるような構造のための他の技術を実装しうる。例えば、クライアントの他のグループに合わせて設計された増分ファイルをインストールすべく、モデルプラットフォームがさらに用いられてよい。その場合、EFI211は、クライアントのそれぞれのグループに対して増分パッケージおよびブロックビットマップをそれぞれ生成してよい。他の例では、対応するファイル記述が通常のクライアントプラットフォームにプレインストールされていない場合、EFI211は、増分ファイル記述イメージをサーバ12にアップロードしなくてよい。さらに他の例では、モデルブロックビットマップは、省略されてよく、増分ファイルを格納するブロックに関する情報は、対応するブロックに格納された増分ファイルがサーバ12から入手可能かどうかを示すインジケータなどの増分ファイル記述イメージと統合されてよい。
【0051】
図4は、モデルクライアントプラットフォームをインストールする方法の一実施形態を示す。図に示すように、ブロック401において、ITアドミニストレータまたは適切なデバイスが1つ以上のクライアントプラットフォーム11−11にベースファイルをインストールしてよい。ベースファイルは、オペレーティングシステム、および/または、任意の基本アプリケーションファイルを含みうる。
【0052】
ブロック402において、ITアドミニストレータ、または、適切なデバイスは、新しいクライアントのグループに合わせて設計された増分ファイルがモデルクライアントプラットフォームにインストールされたかどうかを決定しうる。インストールされたと決定された場合、ITアドミニストレータ、または、適切なデバイスは、ブロック403において、ネットワーク環境10から、1つのクライアントプラットフォームをモデルクライアントプラットフォームとして選択し、ブロック404において、そのクライアントのグループに合わせて設計された増分ファイルを決定し、ブロック405において、当該増分ファイルを、選択されたモデルクライアントプラットフォームの記憶装置にインストールしてよい。
【0053】
増分ファイルをインストールする一方で、ブロック406において、モデルクライアントプラットフォームのSUPドライバ2220は、増分ファイルがモデルクライアントプラットフォームの記憶装置にインストールされているベースファイルのアップデートバージョンであるかどうかを決定してよい。増分ファイルがアップデートされたベースファイルであることの決定に応じて、ブロック407において、SUPドライバは、ベースファイルが使用しないブロックに増分ファイルを格納し、当該増分ファイルを格納するブロックを、ベースファイルを格納するブロックにマップしてよい。その後、ブロック408において、EFI211は、増分ファイルイメージおよび増分ファイル記述イメージを含む増分パッケージと、モデルクライアントプラットフォームの記憶装置203のブロックの使用状況を示すモデルブロックビットマップとを生成してよい。最後に、ブロック409において、モデルクライアントプラットフォームのEFI211、または、他の適切なデバイスは、増分パッケージおよびモデルブロックビットマップをサーバ12にアップロードしてよい。
【0054】
図5は、通常のクライアントプラットフォームを初期化する一実施形態を示す。ブロック501において、通常のクライアントプラットフォームが開始し、オペレーティングシステムをブートする前に、ファームウェアルーチンがBIOSプログラムを実行しうる。ブロック502において、EFI251は、ユーザインターフェース270を介して、アカウント情報を入力するようクライアントを促してよい。その後、ブロック503において、EFI251がアカウント情報をサーバ12に送信することにより、アカウントサーバ121は、アカウント情報を確認しうる。ブロック504において、確認に応じて、パッケージサーバ122は、アカウント情報と一致するモデルブロックビットマップをEFI251に送信してよい。モデルブロックビットマップは、クライアントに合わせて設計された増分ファイルがインストールされたモデルクライアントプラットフォームによって生成されてよい。
【0055】
ブロック505において、EFI251は、通常のクライアントプラットフォームの記憶装置243のブロックの使用状況を示す通常のブロックビットマップを生成してよい。その後、ブロック506におぃて、オペレーティングシステム26がブートされ、SUPドライバ2620およびPODドライバ2621を含むドライバがセットアップされる。ブロック507において、パッケージサーバ122は、モデルクライアントプラットフォームによりアップロードされた増分ファイル記述イメージをPODドライバ2621に送信してよい。当該増分ファイル記述イメージは、増分ファイルに関する記述情報、および、モデルプラットフォームにおける増分ファイルを格納するブロックに関するブロック記述を含んでよい。
【0056】
その後、ブロック508において、増分ファイルが通常のクライアントプラットフォームに実際にはロードされていない場合でも、通常のクライアントプラットフォームのオペレーティングシステム26は、増分ファイル記述イメージを利用することによってファイルシステムをセットアップし、増分ファイルのアイコンをユーザインターフェース270に表示しうる。
【0057】
図6は、通常のクライアントプラットフォームにより入出力要求を処理する一実施形態を示す。ブロック601において、通常のクライアントプラットフォームのI/Oハンドラ260は、I/O要求を受信して、記憶装置243から/にファイルを読み書きしてよい。ブロック602において、I/Oハンドラ260は、要求が読み取り要求か書き込み要求かを決定しうる。読み取り要求の場合、I/Oハンドラ260は、要求をPODドライバ2621へと転送する。その後、ブロック603において、PODドライバ2621は、ファイルシステム261を用いて、要求されたファイルをチェックすることにより、ファイルを格納するブロックに関する情報などのファイル関連情報を見つけうる。
【0058】
ブロック604において、PODドライバ2621は、EFI251から読み出された通常のブロックビットマップを参照することにより、要求されたファイルが記憶装置243のブロックにすでにロードされているかどうかを決定してよい。ファイルが記憶装置243のブロックにロードされている場合、PODドライバ2621は、記憶装置243からファイルを読み取ってユーザインターフェース270に出力し、I/O要求を終了してよい。ファイルが記憶装置243のブロックにロードされていない場合、PODドライバ2621は、モデルブロックビットマップを参照することにより、要求されたファイルがサーバ12から入手可能かどうかを決定しうる。
【0059】
要求されたファイルがサーバ12から入手可能であるという決定に応じて、PODドライバ2621は、ファイルイメージのダウンロード要求をサーバ12に送信してよく、パッケージサーバ122は、要求されたファイルを有する増分ファイルイメージのエントリを見つけ、当該増分ファイルイメージのエントリをPODドライバ2621に送信してよい。その後、PODドライバ2621は、ブロック606において、増分ファイルイメージエントリからファイルを読み出し、ブロック607において、当該ファイルを記憶装置243の対応するブロックにロードしてよい。ブロック608において、PODドライバ2621は、要求されたファイルを格納するブロックが用いられていることを示すことにより、通常のブロックビットマップをアップデートしてよい。ブロック609において、PODドライバ2621は、ファイルをユーザインターフェース270に出力し、I/O要求を終了してよい。
【0060】
ブロック602において、I/O要求は、新しいファイルを記憶装置243に書き込む要求であるという決定に応じて、I/Oハンドラ260は、要求をSUPドライバ2620に転送してよい。ブロック610において、SUPドライバ2620は、ベースファイルが使用しない記憶装置243のブロックに新しいファイルを格納してよい。ブロック611において、SUPドライバ2620は、新しいファイルを格納するブロックが用いられていること示すことにより、通常のブロックビットマップをアップデートしてよい。ブロック612において、SUPドライバ2620は、新しいファイルが記憶装置243に格納されたベースファイルのアップデートバージョンであるかどうかをさらに決定してよい。新しいバージョンであれば、ブロック613において、SUPドライバ2620は、新しいファイルを格納するブロックを、ベースファイルを格納するブロックにマップするマッピング情報を記録してよい。
【0061】
図7は、ネットワーク環境におけるクライアントプラットフォームのクライアントのための記憶装置スペースをセーブする一実施形態を示す。ブロック701において、クライアントは、クライアントプラットフォームをログアウトし、現在の記憶装置環境をセーブするオプションを与えられうる。記憶装置環境をセーブすべく、クライアントプラットフォームは、703においてプラットフォームをリブートしてよく、EFI251、または、クライアントプラットフォームの他の適切なデバイスは、増分パッケージ、および、ブロックビットマップを生成しうる。増分パッケージは、記憶装置に格納された増分ファイルに対応する増分ファイルイメージと、増分ファイルに関する情報を記述した増分ファイル記述イメージとを含みうる。ブロックビットマップは、記憶装置のブロックの使用状況を示し得る。上述のごとく、ブロックビットマップを省略し、ブロックに関連するそのような情報を増分ファイル記述イメージに統合してもよい。
【0062】
その後、ブロック705において、EFI251は、増分パッケージおよびブロックビットマップをサーバ12にアップロードしてよい。ブロック706において、EFI251は、クライアントプラットフォームの記憶装置から増分ファイルを消去し、ログアウトしてよい。
【0063】
他の実施形態は、図7に示された方法のための他の技術を実装しうる。例えば、クライアントプラットフォームは、記憶装置環境セーブ/リストアサービスを提供する前に、VIPクライアントだけがそのようなサービスを受ける資格があるとすれば、そのクライアントがVIPクライアントであるかどうかを決定しうる。
【0064】
図8は、図1のネットワーク環境10におけるクライアントプラットフォームまたはサーバとして機能しうる一般的なプラットフォームの一実施形態を示す。プラットフォームは、1つ以上のプロセッサ850、メモリ851、チップセット852、I/Oデバイス853、ファームウェア854、および、記憶装置855を含みうる。プロセッサ850は、プロセッサバスなどの1つ以上のバスを介して他の構成要素に通信可能に結合される。プロセッサ850は、例えば、カリフォルニア州サンタクララのインテル社から購入可能な、Intel(登録商標)Xeon(登録商標)、Intel(登録商標)Pentium(登録商標)、Intel(登録商標)Itanium(登録商標)アーキテクチャなどの適切なアーキテクチャの下でコードを実行しうる1つ以上の処理コアを有する集積回路(IC)として実装されうる。
【0065】
一実施形態では、メモリ851は、プロセッサ850により実行されうるコードを格納してよい。メモリ851のいくつかの例をあげると、これがすべてではないが、SDRAM(同期型随時書き込み読み出しメモリ)デバイス、RAMBUS RDRAM(ダイナミックランダムアクセスメモリ)デバイス、ダブルデータレート(DDR)メモリデバイス、SRAM(スタティックRAM)、および、フラッシュメモリデバイスなどの半導体デバイスの1つ、または、それらの組合せを含みうる。
【0066】
一実施形態では、チップセット852は、プロセッサ850、メモリ851、および、例えばI/Oデバイス853、ファームウェア854、および、記憶装置855などの他の構成要素間に1つ以上の通信経路を提供しうる。I/Oデバイス853の例は、キーボード、マウス、ネットワークインターフェース、記憶装置、カメラ、ブルートゥース、および、アンテナを含みうる。
【0067】
ファームウェア854は、プロセッサ850、チップセット852、および、プラットフォームの他の構成要素を初期化すべく、システムセットアップ中にプラットフォームが実行するBIOSルーチン、および/または、ファームウェア1054とプラットフォームのオペレーティングシステムとのインターフェースとなり、オペレーティングシステムをブートする標準環境を提供するEFIルーチンを格納しうる。
【0068】
記憶装置855は、プラットフォーム内にある内部記憶装置(ハードディスクなど)、および/または、クライアントプラットフォーム外にある外部記憶装置(例えば、フロッピー(登録商標)ディスク、光ディスクなど)を含みうる。図8に示されるようなクライアントプラットフォームがクライアントプラットフォームとして実行しうる場合、記憶装置855は、ベースファイル、増分ファイル、ファイル記述、または、おそらく他のデータも格納しうる。図8に示されるようなプラットフォームがサーバ12である場合、記憶装置855は、増分ファイルイメージ、増分ファイル記述イメージ、ブロックビットマップ、または、おそらく他のデータも格納しうる。
【0069】
これまで例示的実施例を参照して本発明の特定の特徴を説明してきたが、その記載は、限定の意味合いで解釈されることを意図しない。これらの例示的実施形態のさまざまな修正、および、本発明の他の実施形態も本発明の趣旨および範囲内にあることが当業者には明らかである。

【特許請求の範囲】
【請求項1】
モデルクライアントプラットフォームの方法であって、
前記モデルクライアントプラットフォームのモデル記憶装置の第1のモデルブロックに格納された増分ファイルを含むファイルイメージを生成する段階と、
前記モデル記憶装置の第2のモデルブロックに格納されたファイル記述を含むファイル記述イメージを生成する段階と、
前記ファイルイメージ、および、前記ファイル記述イメージをサーバにアップロードする段階と、
を備え、
前記ファイル記述は、前記モデル記憶装置における前記第1のモデルブロックの位置を含む、
方法。
【請求項2】
前記モデル記憶装置の各モデルブロックに格納されたデータが前記サーバから入手可能かどうかを示すモデルブロックビットマップを生成する段階をさらに備える、請求項1に記載の方法。
【請求項3】
前記モデル記憶装置の各モデルブロックの使用状況を示すモデルブロックビットマップを生成する段階をさらに備える、請求項1に記載の方法。
【請求項4】
前記ファイルイメージは、前記モデル記憶装置における前記第1のモデルブロックの前記位置をさらに含む、請求項1に記載の方法。
【請求項5】
前記ファイル記述イメージは、前記モデル記憶装置における前記第2のモデルブロックの位置をさらに含む、請求項1に記載の方法。
【請求項6】
前記モデル記憶装置の第3のモデルブロックに格納されたベースファイル、および、前記モデル記憶装置における前記第3のモデルブロックの位置を含む他のファイルイメージを生成する段階と、
前記他のファイルイメージを前記サーバにアップロードする段階と、
をさらに備える、請求項1に記載の方法。
【請求項7】
前記増分ファイルは、前記モデル記憶装置の第3のモデルブロックに格納されたベースファイルのアップデートバージョンであることを決定する段階と、
前記増分ファイルを格納する前記第1のモデルブロックを、前記ベースファイルを格納する前記第3のモデルブロックにマップするマッピング情報を記録する段階と、
前記マッピング情報を前記サーバにアップロードする段階と、
をさらに備える、請求項1に記載の方法。
【請求項8】
通常のクライアントプラットフォームの方法であって、
前記通常のクライアントプラットフォームの通常の記憶装置の各通常のブロックの使用状況を示す通常のブロックビットマップを生成する段階と、
ファイル記述を含むファイル記述イメージをサーバからダウンロードする段階と、
を備え、
前記ファイル記述は、モデルクライアントプラットフォームのモデル記憶装置における第1のモデルブロックの位置を含み、
前記第1のモデルブロックは、増分ファイルを格納する、
方法。
【請求項9】
前記サーバからモデルブロックビットマップをダウンロードする段階をさらに備え、
前記モデルブロックビットマップは、前記モデル記憶装置の各モデルブロックの使用状況を示す、請求項8に記載の方法。
【請求項10】
前記通常のブロックビットマップ、および、前記モデルブロックビットマップに基づき、前記増分ファイルが前記サーバから入手可能かどうかを決定する段階と、
前記サーバから前記増分ファイルをダウンロードする段階と、
前記モデル記憶装置における前記第1のモデルブロックの前記位置に対応する前記通常の記憶装置の第1の通常のブロックに前記増分ファイルを格納する段階と、
前記第1の通常のブロックが用いられていることを示すよう、前記通常のブロックビットマップをアップデートする段階と、
をさらに備える、請求項9に記載の方法。
【請求項11】
前記第1のモデルブロックの前記位置に基づき、前記サーバに格納されたファイルイメージから前記増分ファイルを読み出す段階をさらに備え、
前記ファイルイメージは、前記増分ファイルを前記第1のモデルブロックの前記位置にリンクさせる、請求項10に記載の方法。
【請求項12】
前記ファイル記述イメージは、前記モデル記憶装置における第2のモデルブロックの位置をさらに含み、前記第2のモデルブロックは、前記ファイル記述を格納する、請求項9に記載の方法。
【請求項13】
前記第2のモデルブロックの前記位置に対応する前記通常の記憶装置の第2の通常のブロックに、前記ファイル記述を格納する段階と、
前記第2の通常のブロックが用いられていることを示すよう、前記通常のブロックビットマップをアップデートする段階と、
をさらに備える、請求項12に記載の方法。
【請求項14】
ベースファイル、および、前記モデル記憶装置における前記ベースファイルを格納する第3のモデルブロックの位置を含むベースファイルイメージを前記サーバからダウンロードする段階と、
前記第3のモデルブロックの前記位置に対応する前記通常の記憶装置の第3の通常のブロックに、前記ベースファイルを格納する段階と、
をさらに備える請求項9に記載の方法。
【請求項15】
前記通常の記憶装置の第4の通常のブロックに新しいファイルを格納する段階と、
前記新しいファイルが前記ベースファイルのアップデートバージョンである場合、前記第4の通常のブロックを前記第3の通常のブロックにマップするマッピング情報を記録する段階と、
をさらに備える、請求項14に記載の方法。
【請求項16】
複数の命令を備える機械可読媒体であって、実行されると、クライアントプラットフォームにおいて、
前記クライアントプラットフォームの記憶装置の第1のブロックに増分ファイルを格納する段階と、
前記クライアントプラットフォームをリブートする段階と、
前記増分ファイルを含むファイルイメージ、および、前記増分ファイルのファイル記述を含むファイル記述イメージを生成する段階と、
を実行させ、
前記ファイル記述は、前記記憶装置における前記第1のブロックの位置を含む、機械可読媒体。
【請求項17】
前記複数の命令は、
前記ファイルイメージ、および、前記ファイル記述イメージをサーバにアップロードする段階と、
前記記憶装置から前記増分ファイルを削除する段階と、
前記クライアントプラットフォームをからログアウトする段階と、
をさらに実行させる、請求項16に記載の機械可読媒体。
【請求項18】
前記複数の命令は、
前記記憶装置の各ブロックの使用状況を示すブロックビットマップを生成する段階と、
前記ブロックビットマップをサーバにアップロードする段階と、
をさらに実行させる、請求項16に記載の機械可読媒体。
【請求項19】
増分ファイルを格納する第1のモデルブロック、および、前記増分ファイルのファイル記述を格納する第2のモデルブロックを有するモデル記憶装置と、
前記増分ファイルを含むファイルイメージ、および、前記ファイル記述を含むファイル記述イメージを生成するモデルファームウェア構成要素と、
を備え、
前記ファイル記述は、前記モデル記憶装置における前記第1のモデルブロックの位置を含む、モデルクライアントプラットフォーム。
【請求項20】
前記ファイルイメージおよびファイル記述イメージをサーバにアップロードするモデルネットワークインターフェースをさらに備える、請求項19に記載のモデルクライアントプラットフォーム。
【請求項21】
前記モデルファームウェア構成要素は、前記モデル記憶装置の各モデルブロックの使用状況を示すモデルブロックビットマップをさらに生成し、
前記モデルネットワークインターフェースは、前記モデルブロックビットマップを前記サーバにさらにアップロードする、請求項20に記載のモデルクライアントプラットフォーム。
【請求項22】
前記モデル記憶装置は、ベースファイルを格納する第3のモデルブロックをさらに有する、請求項19に記載のモデルクライアントプラットフォーム。
【請求項23】
前記モデルファームウェアは、ベースファイル、および、前記モデル記憶装置における第3のモデルブロックの位置を含む他のファイルイメージをさらに生成し、
前記モデルネットワークインターフェースは、前記他のファイルイメージを前記サーバにさらにアップロードする、請求項20に記載のモデルクライアントプラットフォーム。
【請求項24】
前記増分ファイルが前記ベースファイルのアップデートバージョンである場合、前記増分ファイルを格納する前記第1のモデルブロックを、前記ベースファイルを格納する前記第3のモデルブロックにマップするマッピング情報を記録するドライバをさらに備える、請求項23に記載のモデルクライアントプラットフォーム。
【請求項25】
複数の通常のブロックを有する通常の記憶装置と、
ファイル記述を含むファイル記述イメージをサーバからダウンロードするための通常のネットワークインターフェースと、
前記通常のブロックの使用状況を示す通常のブロックビットマップを生成する通常のファームウェア構成要素と、
を備え、
前記ファイル記述は、モデルクライアントプラットフォームのモデル記憶装置における第1のモデルブロックの位置を含み、
前記第1のモデルブロックは、増分ファイルを格納する、
通常のクライアントプラットフォーム。
【請求項26】
前記通常のネットワークインターフェースは、前記サーバからモデルブロックビットマップをさらにダウンロードし、前記モデルブロックビットマップは、前記モデル記憶装置の各モデルブロックの使用状況を示す、請求項25に記載の通常のクライアントプラットフォーム。
【請求項27】
第1のドライバをさらに備え、前記第1のドライバは、
前記通常のブロックビットマップ、および、モデルブロックビットマップに基づき、前記増分ファイルが前記サーバから入手可能かどうかを決定し、
前記サーバから前記増分ファイルをダウンロードし、
前記第1のモデルブロックの前記位置に対応する前記複数の通常のブロックの第1の通常のブロックに、前記増分ファイルを格納し、
前記第1の通常のブロックが使用されていることを示すよう、前記通常のブロックビットマップをアップデートする、請求項25に記載の通常のクライアントプラットフォーム。
【請求項28】
前記ファイル記述イメージは、前記モデル記憶装置における第2のモデルブロックの位置をさらに含み、前記第2のモデルブロックは、前記ファイル記述を格納し、
前記通常の記憶装置は、前記第2のモデルブロックの前記位置に対応する前記複数の通常のブロックの第2の通常のブロックに、前記ファイル記述をさらに格納する、請求項25に記載の通常のクライアントプラットフォーム。
【請求項29】
第2のドライバをさらに備え、前記第2のドライバは、
前記サーバから、ベースファイル、および、前記モデル記憶装置における前記ベースファイルを格納する第3のモデルブロックの位置を含むベースファイルイメージを受信し、
前記第3のモデルブロックの前記位置に対応する前記複数の通常のブロックの第3の通常のブロックに、前記ベースファイルを格納する請求項25に記載の通常のクライアントプラットフォーム。
【請求項30】
第2のドライバをさらに備え、前記第2のドライバは、
前記複数の通常のブロックの第4の通常のブロックに新しいファイルを格納し、
前記新しいファイルが前記ベースファイルのアップデートバージョンである場合、前記第4の通常のブロックを前記第3の通常のブロックにマップするマッピング情報を記録する、請求項29に記載の通常のクライアントプラットフォーム。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−104150(P2012−104150A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−9332(P2012−9332)
【出願日】平成24年1月19日(2012.1.19)
【分割の表示】特願2009−524063(P2009−524063)の分割
【原出願日】平成18年9月11日(2006.9.11)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】