(57)【要約】サーバーに共有されたイメージは複数のクライアントによって共有される。共有されたイメージは、各クライアントに対してコンピュータネットワークを介してダウンロードされ得るデータを含む。データをダウンロードするときには、ネットワークの帯域幅を維持するために、クライアントの１つからデータをダウンロードする要請を受信すると、サーバーは、共有イメージを共有する全てのクライアントに対して、データをマルチキャストする。
2008518324.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワークにおいてイメージを共有する方法であって、
サーバー上に共有イメージファイルを提供することと、
クライアントから、該サーバー上の該共有イメージファイルからのデータを要請することと、
クライアントからのデータの要請を受信すると、該イメージファイルを共有する全てのクライアントに対して該サーバーからデータをマルチキャストすることと
を包含する、方法。
【請求項２】
前記データはアプリケーションプログラムからのものである、請求項１に記載の方法。
【請求項３】
前記データはオペレーティングシステムからのものである、請求項１に記載の方法。
【請求項４】
前記データはデータベースからのものである、請求項１に記載の方法。
【請求項５】
前記データはイメージからのものである、請求項１に記載の方法。
【請求項６】
前記クライアントのそれぞれに前記マルチキャストされたデータを格納すること
をさらに包含する、請求項１に記載の方法。
【請求項７】
前記クライアントの１つからの前記データに対する次の要請は、該クライアントに格納された前記マルチキャストされたデータを検索する、請求項６に記載の方法。
【請求項８】
コンピュータであって、
共有イメージファイルを格納する持続性の格納デバイスと、
メモリに格納されるルーチンであって、該ルーチンは、コンピュータネットワークを介することにより、該共有イメージファイルからのデータに対するクライアントからの要請を受信すると、該コンピュータネットワークを介することにより、該イメージファイルを共有する全てのクライアントに対して該データをマルチキャストする、ルーチンと
を備える、コンピュータ。
【請求項９】
前記データはアプリケーションプログラムからのものである、請求項８に記載のコンピュータ。
【請求項１０】
前記データはオペレーティングシステムからのものである、請求項８に記載のコンピュータ。
【請求項１１】
前記データはデータベースからのものである、請求項８に記載のコンピュータ。
【請求項１２】
前記データはイメージからのものである、請求項８に記載のコンピュータ。
【請求項１３】
クライアントコンピュータであって、
コンピュータネットワークを介してクライアントからのデータに対する要請を受信すると、共有イメージファイルからのデータを格納するためのメモリ
を備える、クライアントコンピュータと、
サーバーコンピュータであって、
共有イメージファイルを格納する持続性の格納デバイスと、
該共有イメージからのデータをマルチキャストするためにルーチンを格納するメモリであって、該ルーチンは、該イメージファイルを共有する全てのクライアントに対して、コンピュータネットワークを介して該データをマルチキャストする、メモリと
を備える、サーバーコンピュータと
を備える、システム。
【請求項１４】
前記データはアプリケーションプログラムからのものである、請求項１３に記載のシステム。
【請求項１５】
前記データはオペレーティングシステムからのものである、請求項１３に記載のシステム。
【請求項１６】
前記サーバーにおける前記持続性の格納デバイスはハードドライブである、請求項１３に記載のシステム。
【請求項１７】
前記マルチキャストされたデータは前記クライアントのそれぞれにおける揮発性のメモリに格納される、請求項１３に記載のシステム。
【請求項１８】
前記クライアントの１つからの前記データに対する次の要請は、該クライアントにおける揮発性のメモリに格納される、前記マルチキャストされたデータを検索する、請求項１３に記載のシステム。
【請求項１９】
コンピュータネットワークにおいてイメージを共有するシステムであって、
サーバー上に共有イメージファイルを提供する手段と、
クライアントにおいて、該サーバー上にセーブされたイメージファイルからのデータ要請する手段と、
クライアントからのデータの要請を受信すると、該イメージファイルを共有する全てのクライアントに対して該サーバーから該データをマルチキャストする、手段と
を備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の引用）
本出願は、米国特許出願第１０／９７１，５６３号（２００４年１０月２２日出願）の継続出願である。上記出願の全教示が、本明細書において参考として援用される。
【背景技術】
【０００２】
クライアント‐サーバーシステムにおいて、クライアントコンピュータおよびサーバーコンピュータはコンピュータネットワークを介して通信する。サーバーからの処理をオフロードし、かつコンピュータネットワークにおけるトラフィックを低減するために、各クライアントは一般的に、クライアントコンピュータにおいてローカルで実行されるオペレーティングシステムおよびアプリケーションプログラムを格納するハードディスクドライブのような、持続性の格納装置を有する。
【０００３】
しかしながら、例えば教室環境のような、多数の環境において、各クライアントコンピュータにおいてオペレーティングシステムおよびアプリケーションプログラムの個々のコピーを管理しかつアップデートするコストは非常に高い。クライアントコンピュータのネットワークを管理するコストを削減する１つの方法は、「シン（ｔｈｉｎ）」クライアントの使用によることである。ローカルでアプリケーションプログラムを実行する代わりに、シンクライアントは、コンピュータネットワークを介してキーストロークを、サーバー上で実行するアプリケーションプログラムに伝達し、サーバー上でのアプリケーションの実行に基づき、コンピュータネットワークを介して受信される結果を表示する。多数のクライアントに対する処理がサーバーで行われ、コンピュータネットワークを介して伝達されるので、このことは顕著な性能の低下を生じさせる。
【０００４】
別の方法は「ディスクレス（ｄｉｓｋｌｅｓｓ）」クライアントの使用である。オペレーティングシステムのコピーがサーバーコンピュータに格納されている。最初に起動されたとき、クライアントにおける不揮発性のメモリに格納されたファームウェアに格納されている、オペレーティングシステムのローダーは、サーバーの中に格納されたオペレーティングシステムのコンポーネントのうちの必要とされるコンポーネントを、標準ブートプロトコルを使用して、クライアントの揮発性のメモリに遠隔的にロードする。オペレーティングシステムがロードされた後に、クライアントは、あたかもオペレーティングシステムがローカルディスクに格納されているかのように、オペレーティングシステムにアクセスする。オペレーティングシステムが作動した後で、クライアントは、アプリケーションプログラム、オペレーティングシステムまたはアプリケーションデータのような他のデータのダウンロード、および必要に応じて、サーバーに格納される追加のオペレーティングシステムのコンポーネントのダウンロードをさらに要求し、そのデータを揮発性のメモリに格納する。こうして各クライアントはオペレーティングシステムのローダーを格納するために、充分な持続性（不揮発性）の格納を要請するのみである。
【発明の開示】
【課題を解決するための手段】
【０００５】
ディスクレスのクライアントは、あたかもオペレーティングシステムがローカルディスクに格納されているかのように、オペレーティングシステムを実行し、アプリケーションプログラムおよびデータへのアクセスを要請し、またアプリケーションプログラムおよびデータがディスク上にローカルに格納されることを要求する。ネットワークされたコンピュータシステムは多数のディスクレスクライアントを含み得、多数のディスクレスクライアントは全て共有イメージからのデータを要求する。読み込まれたイメージデータに対する各要請はコンピュータネットワークの帯域幅を必要とするので、クライアントからのアクセスに応答することに先立つ、データを読み取るための応答時間は、進行中の要請の数に依存してローカルに格納されたデータの読み取りよりも長くなり得る。
【０００６】
一部の環境において、クライアントの大多数の全てが、同じデータを読み込むことを要請し得る。例えば教室において、全ての生徒がワードプロセッシングアプリケーションプログラムを起動すると、その結果、生徒全員が、アプリケーションプログラムおよび構成情報を含むデータを読み取ることが必要となり得る。コンピュータネットワークの帯域幅およびサーバー上の共有イメージからのデータへアクセスをするサーバーのＣＰＵ負荷は、データに対する最初の要請を受信すると、イメージを共有する全てのクライアントに対してデータをマルチキャストすることによって減少される。
【０００７】
コンピュータネットワークにおいてイメージを共有する方法が提供される。共有イメージはサーバー上に提供される。クライアントは、サーバー上のセーブされた共有イメージファイルからデータを要請する。クライアントからのデータに対する要請を受信すると、サーバーはイメージファイルを共有する全てのクライアントに対してデータをマルチキャストする。マルチキャストされるデータは、またすぐに同じデータを必要とし得る見込みの他のクライアントによって、キャッシュされる。
【０００８】
データはアプリケーションプログラム、オペレーティングシステム、アプリケーションデータ、イメージ、またはデータベースからのものであり得る。マルチキャストされたデータは、各クライアントのキャッシュメモリに格納され、クライアントの１つからのデータに対する次の要請は、クライアントのローカルのキャッシュの中に格納されるマルチキャストされるデータをすでに有し得、かつ検索し得る。時がたてば、各クライアントは、各クライアントがまたデータを必要とし得ると予測して、他の同様なクライアントによってアクセスされるデータを効果的に蓄積する。
【発明を実施するための最良の形態】
【０００９】
本発明の好ましい実施形態の記述が続く。
【００１０】
図１は、サーバー１０２に格納される共有イメージ１１０を示すブロック図である。共有のイメージ１１０はデータ（例えば、オペレーティングシステム、オペレーティングシステムのデータおよびアプリケーションのデータ、およびアプリケーションプログラム）を含み、データは、本発明の原理に従ったコンピュータネットワーク１０６を介してクライアントによってアクセスされる。
【００１１】
クライアントサーバーシステム１００は、少なくとも１つのサーバーコンピュータ１０２および複数のクライアントコンピュータ１０４を含み、サーバーコンピュータ１０２およびクライアントコンピュータ１０４はコンピュータネットワーク１０６を介して通信する。クライアントおよびサーバーは、パケットの形でネットワークを介して転送されるデータを用いるＴＣＰ／ＩＰのような当業者には周知の標準通信プロトコルを使用して、ネットワーク１０６を介してデータを転送する。パケット切り替えネットワークにおいて、パケットは一定の最大のサイズの転送ユニットであり、一定の最大のサイズはデータおよびヘッダの両方を表す２進数を含み、ヘッダは識別番号および送信元および宛先アドレスを含む。コンピュータネットワーク１０６は、クライアント１０４とサーバー１０２との間でデータを転送する、１つ以上のネットワークのルータ／スイッチを含む。クライアントとサーバーとの物理的なリンクはワイヤレスのリンクまたは有線のリンクを含み得る。
【００１２】
サーバー１０２およびクライアント１０４のそれぞれにおける１つ以上のＮｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ（ＮＩＣ）は、ネットワーク１０６を通じたデータの転送を制御する。ＮＩＣ１２０およびＮＩＣ１１２のそれぞれは、ネットワーク上のデータパケットの宛先を識別するのに使用される固有のデータリンク（Ｌａｙｅｒ２）宛先アドレスを、不揮発性のメモリに格納する。不揮発性のメモリはＲＯＭまたはＦｌａｓｈメモリまたは他の任意の不揮発性のメモリであり得る。一実施形態において、データリンクプロトコルはＥｔｈｅｒｎｅｔ（登録商標）であり得る。しかしながら、他の任意のデータリンクプロトコルが使用され得る。
【００１３】
サーバー１０２は中央処理装置（ＣＰＵ）１１６、メモリ１１８、および１つ以上の共有イメージ１１０を格納する、ハードディスクまたはコンパクトディスクドライブのような持続性の格納装置１０８を含む。共有イメージ１１０のそれぞれは、オペレーティングシステム、および１つ以上のクライアント１０４によって使用されるドライバおよびアプリケーションプログラムを含む。メモリ１１８はＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）およびＲＡＭＤＯＭ  ＡＣＣＥＳＳ  ＭＥＭＯＲＹ（ＲＡＭ）を含み得る。
【００１４】
サーバー１０２はまた、格納装置バス１２６を介したディスクドライバ１０８へのアクセスを制御するディスクコントローラ１１４を含む。一実施形態において、ディスクコントローラ１１４はＳｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）ホストアダプタであり、Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）ホストアダプタは標準ＳＣＳＩバスへ結合されるデバイスへのアクセスを制御する。ＳＣＳＩホストアダプタは当業者には周知である。一実施形態において、１つよりも多いサーバー１０２がネットワーク１０６へ接続され得、ネットワーク１０６を介して他の全てのサーバーおよびクライアント１０４と通信する。
【００１５】
各クライアント１０４はまた、ＣＰＵ１２４および揮発性および不揮発性のメモリ１２２を含む。クライアントは、例えばハードディスク、ブータブルコンパクトディスク、または大容量フラッシュメモリのような充分な（ｓｉｇｎｉｆｉｃａｎｔ）持続性の格納デバイスを使用することなく、作動する。
【００１６】
当業者には周知であるが、ハードディスクは複数のシリンダ、ヘッド、セクタを含む。ディスク上の物理的なブロックはシリンダの数字、ヘッドの数字、セクタの数字によって特定される。ヘッドはシリンダのトラックの中のトラックを特定する。セクタは特定のトラックの中のデータの物理的ブロックの位置を特定する。シリンダ、ヘッド、およびセクタへデータを書き込みまたは読み取る要請に応答して、ドライブはヘッドアクチュエータをシリンダの位置へ進ませ、適切なヘッドを選択する。そしてシリンダ、ヘッド、セクタ（ＣＨＳ）アドレスがドライブ上の物理的なセクタを特定する。物理的セクタはディスクドライブ上で最小の物理的格納ユニットであり、一般的に５１２バイトの一定のサイズである。データを読み取る要請はオペレーティングシステムによって、ディスクドライブ上の１つ以上の物理的なセクタの中に格納されるデータを読み取る要請へ変換される。
【００１７】
ハードディスクからセクタごと直接的にデータへアクセスする代わりに、クライアント１０２は、サーバー上で共有イメージからセクタごとにオンデマンドで読み取られ、クライアントの揮発性のメモリ１２２にローカルにロードされるオペレーティングシステムおよびアプリケーションプログラムを、あたかもローカルディスクから読み取られ得るように、実行する。
【００１８】
複数のクライアントがサーバー１０２において共有イメージ１１０を共有する。オペレーティングシステム、ドライバ、アプリケーションプログラムがオンデマンドで、クライアント１０４によって共有イメージ１１０から読み取られる。クライアント１０４は、内部メモリ１２２に格納される、共有イメージ１１０からの、ローカルにキャッシュされたオペレーティングシステム、ドライバ、およびアプリケーションプログラムに、あたかもそれらがローカルのハードドライブにローカルに記録されているかのように、アクセスする。
【００１９】
サーバーのオペレーティングシステムはメモリ１１８の部分をディスクドライバ１０８から読み取られるデータを格納するキャッシュメモリとして使用する。したがって共有イメージ１１０の部分は、共有イメージから１つ以上のクライアントへデータをダウンロードする性能を向上させるために、サーバー１０２のキャッシュメモリの中にローカルに格納され得る。
【００２０】
起動の後に、サーバーはディスクドライブ１０８に格納されたオペレーティングシステムをブートし、共有イメージ１１０の中に格納されたデータに対するクライアント１０４からのアクセスを待つ。クライアント１０２の中のメモリ１２２の部分は、例えば、コンピュータが最初に起動されたときに実行されるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）を格納するために使用される、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）またはＦｌａｓｈメモリのような、不揮発性のメモリである。ＢＩＯＳは、ハードウェアをテストするためにクライアントのＣＰＵ１２４によって実行される、１組のソフトウェアルーチン、およびオペレーティングシステムをロードするためにブートローダを開始する、１組のソフトウェアルーチンを含む。
【００２１】
一実施形態において、クライアントの中のＮＩＣ１２０は、Ｐｒｅ−Ｂｏｏｔ  ＥＸｅｃｕｔｉｏｎ（ＰＸＥ）エミュレーションコードを含む。ＰＸＥプロトコルはコンピュータをブートするネットワークの国際標準プロトコルである。ＰＸＥは、ネットワーク１０６を介してサーバー１０４に格納されるオペレーティングシステムをブートするために、クライアントにおいてＢＩＯＳによって利用され得る、共通で一貫したサービスの集合体を確立する。ＰＸＥプロトコルは、サーバー１０４と通信するために、Ｄｙｎａｍｉｃ  Ｈｏｓｔ  ＣｏｎｆｉｇｕｒａｔｉｏｎおよびＴｒｉｖｉａｌ  Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＴＦＴＰ）を使用する。Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（ＤＨＣＰ）は、Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔ（ＲＦＣ）２１３１によって定められる、インターネット上のｗｗｗ．ｉｅｔｆ．ｏｒｇ．において入手可能な標準ブートプロトコルである。代わりとして、静的ＩＰアドレスを有するＢＯＯＴＰが使用可能なクライアントもまた、ＤＨＣＰおよびＰＸＥの代わりに使用され得る。ＢＯＯＴＰは、Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔ（ＲＦＣ）９５１によって定められる、インターネット上のｗｗｗ．ｉｅｔｆ．ｏｒｇ．において入手可能な標準ブートプロトコルである。
【００２２】
セクタの中に格納されたデータが共有イメージ１１０から必要とされると、オペレーティングシステムがオンデマンドでクライアント１０４の中のメモリ１２２にロードされる。オペレーティングシステムはクライアントのメモリに格納され、ローカルのハードからセクタごとに直接読み取られるときに、アクセスされ得る方法と同一の方法で、アクセスされる。帯域幅を保存するために、データの１つ以上のセクタが、単一のクライアントからの読み取りの要請に応答して、共有イメージ１１０を共有する全てのクライアントに対して、マルチキャストまたはブロードキャストされる。オペレーティングシステムがブートされ、クライアントのメモリにおいて作動した後で、クライアントは共有イメージ１１０から、例えばアプリケーションプログラム、イメージ、テキストファイル、ビデオ、データベース、または任意の他のタイプのデータのような、他のデータを要請し得る。
【００２３】
図２は、オペレーティングシステムがロードされた後に、クライアント１０４の中のメモリに格納されるソフトウェアのコンポーネントを示す、ブロック図である。ネットワークフィルタドライバ２００は、共有イメージ１１０におけるデータへのアクセスに固有のパケットのために、ＮＩＣ１２０を介してネットワーク１０６を通して受信された全てのパケットをモニターする。ネットワークフィルタドライバ２００は、これらのパケットを格納ドライバ２０４へ送る。格納ドライバ２０４は、データの読み取り要請がクライアントによる直接的な要請かどうかを判断し、および／またはこのデータが更なる使用のためにクライアントのネットワークキャッシュ２１０に格納されるべきかどうかを判断する。格納ドライバ２０４は、オペレーティングシステム格納マネジャー２０６と通信し、オペレーティングシステム格納マネジャー２０６は、マウントマネジャー、ボリュームマネジャー、およびパーティションマネジャーを含む。共有イメージにおけるファイルに固有ではない任意のパケットは、オペレーティングシステムネットワークマネジャー２０２によって扱われる。例えば、電子メール、ウェブページおよび緊急のメッセージに関する任意のパケットがオペレーティングシステムネットワークマネジャー２０２に導かれる。
【００２４】
オペレーティングシステムがクライアントにおいてロードされた後で、各クライアントは、アプリケーションプログラムのような共有イメージの中に格納される他のデータに対する要請を開始し得る。一実施形態において、多数のクライアントが存在し得、それら全ては、同じデータのダウンロードを要請し得る。共有イメージを共有する各クライアントは同じデータに対して別個の要請を発し得る。
【００２５】
グループの中の単一のメンバーがコンピュータプログラムを要請する場合には、共有イメージ１１０を共有している他のクライアントはまた、将来同じコンピュータプログラムを要請し得ることが考えられる。よってマルチキャストグループが共有イメージ１１０を共有する全てのクライアントに対して作成される。共有イメージ１１０を共有するクライアントはマルチキャストグループのメンバーである。要請をしているクライアントのみにデータをユニキャストすることによってクライアントからの読み取り要請に応答する代わりに、サーバーは、他のクライアントがすぐに同じデータを要請し得るという仮定に基づき、サーバー１０２において共有イメージ１１０を共有するマルチキャストグループの全てのメンバーに読み取り応答をマルチキャストする。
【００２６】
要請されたデータをマルチキャストグループの全てのメンバーに対してマルチキャストすることにより、要請されたデータの単一のコピーのみがコンピュータネットワークを介してサーバー１０６から転送される。このことが、同じデータの複数のコピーを送信するために使用され得るネットワークの帯域幅を低減し、各コピーはクライアントからの別個の要請に応答して送信される。さらに、同じデータのダウンロードをするクライアントからの要請の低減のために、サーバーにおける利用可能なＣＰＵの帯域幅が増加する。
【００２７】
クライアントのコンピュータで実行されているアプリケーションまたはオペレーティングシステムからの読み取り要請を受信すると、クライアントコンピュータにおけるオペレーティングシステムのファイルシステムは、要求されたデータがロードされ得るように、要請されたデータを捜し、要求されたデータをクライアントのメモリ１２２へ読み込むように、格納ドライバ２０４に指示する。
【００２８】
他のクライアントに読まれた共有イメージからのデータは、クライアントのメモリ１２２の中のクライアントのネットワークキャッシュ２１０にすでに格納されている。データがクライアントのネットワークキャッシュ２１０にまだ格納されていない場合には、格納ドライバ２０４は、ファイルシステムインターフェイスからネットワークフィルタドライバ２００へ受信される読み取り要請に対する要請を、サーバー１０４に格納された共有イメージ１１０からデータを要請するように、再指示をする。
【００２９】
図３は、共有イメージにおいてネットワークでキャッシュ可能なデータへのアクセスを要請するために、クライアントに実装される方法を示すフローチャートである。図３は図２と関連して示されている。
【００３０】
ステップ３００において、データに対する読み取り要請は格納ドライバ２０４によって、マウントマネジャー２０６から受信される。
【００３１】
ステップ３０２において、格納ドライバ２０４は、「クライアントネットワークキャッシュ２１０」として参照される事前に割り当てられたメモリの範囲にデータがすでに格納されているかどうかをチェックする。要請されたデータがすでにクライアントネットワークキャッシュ２１０に格納されている場合には、処理はステップ３０８へと続く。そうでない場合には、処理はステップ３０４へと続く。
【００３２】
ステップ３０４において、データは共有イメージ１１０から事前に読み込まれてなく、格納ドライバ２０４は、読み取り要請をＮｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒドライバ２１２を経由してサーバー１０４へ読み取りリクエストを転送するために、ネットワークフィルタドライバ２００を経由して読み取りリクエストを発する。Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒドライバ２１２は、共有イメージ１１０から要請されたデータを検索するために、コンピュータネットワーク１０６を介して読み取り要請をサーバー１０４へ転送する。
【００３３】
ステップ３０６において、格納ドライバ２０４はデータに対する要請の完了を待つ。要請されたデータはＮＩＣ１１２を介して到着し、ネットワークフィルタドライバ２００によってクライアントネットワークキャッシュ２１０に格納される。
【００３４】
ステップ３０８において、格納ドライバ２０４は、要求されたデータが利用可能であり、クライアントネットワークキャッシュ２１０に格納されていることをマウントマネジャー２０６に、伝達する。
【００３５】
図４は、共有イメージ１１０を共有する１つ以上のクライアントに対して、コンピュータネットワーク１０６を介してサーバー１０２の中の共有イメージ１１０からデータを検索する方法を示す、サーバーに関するフローチャートである。
【００３６】
ステップ４００において、サーバー１０２は、共有イメージ１１０に格納されるデータを検索するために、クライアント１０４から要請を受信する。要請を受信すると、要請者に対してアプリケーションプログラムをユニキャストする代わりに、サーバーは共有イメージ１１０を共有する全てのクライアント１０４に対してアプリケーションプログラムを送信する準備をする。
【００３７】
Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＩＰ）  Ｍｕｌｔｉｃａｓｔは一対多の接続である。複数のクライアント、つまりマルチキャストグループのメンバーは、サーバーから同じデータストリームを受信する。各宛先に各個のデータパケットを送信する代わりに、単一のＩＰ宛先グループのアドレスによって識別される単一のデータパケットがマルチキャストグループに送信される。
【００３８】
特定のＭｕｌｔｉｃａｓｔグループのメンバーは特定の共有イメージ１１０のユーザーであり、ユーザーは共有イメージ１１０を一般的に使用している。マルチキャストグループのメンバーは、ユーザーとして、サーバー１０４からの接続および分断を変更する。一般的に、共有イメージ１１０は、ブート時に、読み取り専用として事前に確立され、固定される。こうして、共有イメージ１１０を使用するサーバーへ接続される全てのユーザーは同じマルチキャストグループのメンバーであり、共有イメージ１１０からデータを読み取るのみである。
【００３９】
ステップ４０４において、サーバー１０４は要請されたデータをＩＰ  Ｍｕｌｔｉｃａｓｔグループの全てのメンバーへマルチキャストする。各クライアントからの別個の要請に応答してデータの別個のコピーをユニキャストする代わりに、複数のクライアントへマルチキャストすることによって、共有イメージからディスクレスのクライアントへデータを送信するために使用されるネットワークの帯域幅は低減される。データを要請する第１のクライアントは、応答をユニキャストするのとは対照的に、応答をマルチキャストするときには明らかなペナルティ（ｐｅｎａｌｔｙ）がないので、マルチキャスト送信動作に起因する、遅れに気づき得ない。共有イメージ１１０を共有する全てのクライアントによる同じデータの次の要請は、ネットワークにキャッシュされたデータがすでに各クライアントのネットワークキャッシュ２１０に格納され得るので、迅速であり得る。
【００４０】
一実施形態において、サーバー１０２のＮＩＣ１１２およびクライアント１０４のＮＩＣ１２０は、Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ（ＵＤＰ）を使用して、通信する。当業者には周知であるように、Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ（ＯＳＩ）Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌは通信媒体を介して通信するために使用される７つのネットワークプロトコル層（Ｌ１〜Ｌ７）を定める。上位層（Ｌ４〜Ｌ７）はユーザー同士の通信を表し、下位層（Ｌ１〜Ｌ３）はローカルな通信を表す。ＵＤＰはトランスポート層（Ｌ３）のプロトコルである。
【００４１】
ＯＳＩモデルのトランスポート層はパケットの送信元とパケットの宛先との間のユーザー同士のトランスポートを処理する。ＵＳＤは各個のパケットを通信のためのＩＰ（ＯＳＩモデルの層３）に送る。
【００４２】
しかしながら、本発明はＵＤＰに限定されない。通信ネットワークは、データがマルチキャストグループのメンバーにマルチキャストされるのを可能にする、任意の通信プロトコルを使用し得る。代わりの実施形態において、通信プロトコルはファイバーチャンネルプロトコルであり得る。
【００４３】
クライアントのネットワークキャッシュ２１０に格納される、ダウンロードされたアプリケーションプログラムは、クライアントのローカルな処理能力を使用して、ローカルで実行される。このことは、全ての処理がサーバー上で実行され、結果的に顕著な性能の低下を引き起こすシンクライアントのような代わりのソルーションと比較すると、クライアントが効果的に作動することを可能にする。
【００４４】
本発明は、アプリケーションプログラムからのデータがサーバーにおける共有イメージファイルからダウンロードされる実施形態として示されてきた。しかしながら、本発明はアプリケーションプログラムをダウンロードすることに限定されない。本発明は、共有イメージファイルに格納される任意のデータに対するクライアントによる任意の要請に適用される。要請されたデータは、オペレーティングシステム、データベース、アプリケーションプログラム、イメージ、ビデオ、テキストファイル、または共有イメージファイルに格納される任意の他のタイプのデータからのものであり得る。
【００４５】
本発明は、好ましい実施形態を参照して詳細に描かれかつ示されてきたが、形式および詳細に関する様々な変更が、特許請求の範囲に包含される本発明の範囲と逸脱することなく行われ得ることが、当業者によって理解され得る。
【図面の簡単な説明】
【００４６】
前記のおよび他の対象、本発明の特性および利点は、添付の図面に示されるように、本発明の好ましい実施形態のさらに詳細な以下の記述から明らかになり得、同じ参照番号は異なる図面を通じて同じ部分を参照する。図面は、必ずしも一定の比率で拡大縮小されてはおらず、代わりに本発明の原理を示すことに重点が置かれている。
【図１】図１は、サーバーの中に格納される共有イメージを示すブロック図であり、共有イメージは、本発明の原理に従って、コンピュータネットワークを介してクライアントによってアクセスされるデータ（例えば、オペレーティングシステム、データ、およびアプリケーションプログラム）を含む。
【図２】図２は、オペレーティングシステムがロードされかつ実行（起動）された後で、クライアントの中のメモリに格納されるソフトウェアのコンポーネントを示す、ブロック図である。
【図３】図３は、共有イメージの中のデータにアクセスするために、クライアントの中に実装される方法を示すフローチャートである。
【図４】図４は、共有イメージを共有する１つ以上のクライアントに対して、コンピュータネットワークを介してサーバーの中の共有イメージにあるデータにアクセスするために、サーバーの中に実装される方法を示すフローチャートである。
【図１】
2008518324.tif 000003
【図２】
2008518324.tif 000004
【図３】
2008518324.tif 000005
【図４】
2008518324.tif 000006
【国際調査報告】
2008518324.tif 000007
2008518324.tif 000008