(57)【要約】【課題】ネットワーク環境において仮想マシン（ＶＭ）のリモート配備を管理する方法、システムおよびコンピュータ・プログラムを提供する。【解決手段】第２ストレージ媒体に保存されたＶＭイメージが第１ストレージ媒体へコピーされる。第１ストレージ媒体は、第１コンピュータ・システムに近接しており、第２ストレージ媒体は、第１コンピュータ・システムからリモートにあって第２コンピュータ・システムに近接している。ＶＭイメージがコピーされている最中に、第１ＶＭが、第１ストレージ媒体に保存されているＶＭイメージの部分的なコピーから第１コンピュータ・システムに配備され、第２ＶＭが、第２ストレージ媒体に保存されているＶＭイメージから第２コンピュータ・システムに配備される。第１コンピュータ・システムにサブミットされるサービス要求は、要求されているサービスのタイプに基づいて、第１ＶＭによってローカルに、あるいは第２ＶＭによってリモートに管理される。【選択図】図１
2011123891.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク環境において仮想マシン（ＶＭ）のリモート配備を管理する、コンピュータ実装された方法であって、前記方法は、
第２ストレージ媒体に保存されたＶＭイメージを第１ストレージ媒体へコピーするステップであって、前記第１ストレージ媒体は、第１コンピュータ・システムに近接しており、前記第２ストレージ媒体は、第２コンピュータ・システムに近接しており、前記第２ストレージ媒体は、前記第１コンピュータ・システムからリモートにある、コピーするステップと、
サービスの第１セットを提供する第１ＶＭを、前記第１ストレージ媒体に保存された前記ＶＭイメージの部分的なコピーから前記第１コンピュータ・システムに配備するステップであって、サービスの第２セットを提供する第２ＶＭは、前記第２ストレージ媒体に保存された前記ＶＭイメージから前記第２コンピュータ・システムに配備され、前記第１コンピュータ・システムにサブミットされるサービス要求は、要求されているサービスのタイプに基づいて、前記第１ＶＭによってローカルに、あるいは前記第２ＶＭによってリモートに管理される、配備するステップと、
を含む、方法。
【請求項２】
前記ＶＭイメージが前記第１ストレージ媒体へ完全にコピーされ、前記第１ＶＭが前記第１コンピュータ・システムに全面的に配備された後、サービス要求はもっぱら前記第１ＶＭによって管理される、請求項１に記載の方法。
【請求項３】
前記ＶＭイメージが前記第１ストレージ媒体へ完全にコピーされ、前記第１ＶＭが前記第１コンピュータ・システムに全面的に配備された後、サービス要求は引き続き、要求されているサービスのタイプに基づいて、前記第１ＶＭによってローカルに、あるいは前記第２ＶＭによってリモートに管理される、請求項１に記載の方法。
【請求項４】
１つ以上の仮想化コンポーネント間の通信ワークロードおよび強度を分析するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記第１コンピュータ・システムと前記第２コンピュータ・システムとの間のネットワークおよびストレージ接続性を分析するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記第２コンピュータ・システムは、前記仮想化コンポーネント、あるいは前記第１コンピュータ・システムと前記第２コンピュータ・システムとの間の前記ネットワークおよびストレージ接続性に関連する、１つ以上の要素に従って選択される、請求項５に記載の方法。
【請求項７】
前記第２コンピュータ・システムは、前記第２コンピュータ・システムと前記第２
ストレージ媒体との近接性に従って選択される、請求項６に記載の方法。
【請求項８】
前記第２ＶＭは、中央処理装置（ＣＰＵ）、メモリ、およびディスク・コンポーネントを仮想化する、請求項１に記載の方法。
【請求項９】
前記第１ＶＭは、ユーザ・インターフェースおよびネットワーク・コンポーネントを仮想化する、請求項８に記載の方法。
【請求項１０】
前記第２ＶＭの代わりとするべく仮想ネットワーク・エージェントを前記第１コンピュータ・システム上で実行するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
前記仮想ネットワーク・エージェントは、前記第２ＶＭによって管理されるべきサービス要求を、周辺コンポーネント相互接続（ＰＣＩ）を介して前記第２コンピュータ・システムへ転送する、請求項１０に記載の方法。
【請求項１２】
前記仮想ネットワーク・エージェントは、前記第２ＶＭによって管理されるべきサービス要求を、Ｅｔｈｅｒｎｅｔを介して前記第２コンピュータ・システムへ転送する、請求項１０に記載の方法。
【請求項１３】
前記仮想ネットワーク・エージェントは、前記サービスの第２セットと、前記第１ＶＭによって提供される前記サービスの第１セットとの結合を受けて終了する、請求項１０に記載の方法。
【請求項１４】
ストレージのミラー切り換えがＶＭ移行ハンドオフに同期するように、前記ＶＭイメージは、ミラーリング技術を用いて前記第１ストレージ媒体へコピーされる、請求項１に記載の方法。
【請求項１５】
ネットワーク環境において仮想マシン（ＶＭ）のリモート配備を管理するシステムであって、前記システムは、
第２ストレージ媒体に保存されたＶＭイメージを第１ストレージ媒体へコピーする論理ユニットであって、前記第１ストレージ媒体は、第１コンピュータ・システムに近接しており、前記第２ストレージ媒体は、第２コンピュータ・システムに近接しており、前記第２ストレージ媒体は、前記第１コンピュータ・システムからリモートにある、論理ユニットと、
サービスの第１セットを提供する第１ＶＭを、前記第１ストレージ媒体に保存された前記ＶＭイメージの部分的なコピーから前記第１コンピュータ・システムに配備する論理ユニットであって、サービスの第２セットを提供する第２ＶＭは、前記第２ストレージ媒体に保存された前記ＶＭイメージから前記第２コンピュータ・システムに配備され、前記第１コンピュータ・システムにサブミットされるサービス要求は、要求されているサービスのタイプに基づいて、前記第１ＶＭによってローカルに、あるいは前記第２ＶＭによってリモートに管理される、論理ユニットと、
を含む、システム。
【請求項１６】
前記ＶＭイメージが前記第１ストレージ媒体へ完全にコピーされ、前記第１ＶＭが前記第１コンピュータ・システムに全面的に配備された後、サービス要求はもっぱら前記第１ＶＭによって管理される、請求項１５に記載のシステム。
【請求項１７】
前記ＶＭイメージが前記第１ストレージ媒体に完全にコピーされ、前記第１ＶＭが前記第１コンピュータ・システムに全面的に配備された後、サービス要求は引き続き、要求されているサービスのタイプに基づいて、前記第１ＶＭによってローカルに、あるいは前記第２ＶＭによってリモートに管理される、請求項１５に記載のシステム。
【請求項１８】
前記第２コンピュータ・システムは、仮想化コンポーネント、あるいは前記第１コンピュータ・システムと前記第２コンピュータ・システムとの間のネットワークおよびストレージ接続性に関連する、１つ以上の要素に従って選択される、請求項１５に記載のシステム。
【請求項１９】
前記第２ＶＭの代わりとするべく仮想ネットワーク・エージェントを前記第１コンピュータ・システム上で実行することをさらに含む、請求項１５に記載のシステム。
【請求項２０】
コンピュータ可読プログラムを備えたコンピュータ可読媒体を含むコンピュータ・プログラムであって、前記コンピュータ可読プログラムは、コンピュータ上で実行されると、前記コンピュータに以下のこと：
第２ストレージ媒体に保存された仮想マシン（ＶＭ）イメージを第１ストレージ媒体へコピーすることであって、前記第１ストレージ媒体は、第１コンピュータ・システムに近接しており、前記第２ストレージ媒体は、第２コンピュータ・システムに近接しており、前記第２ストレージ媒体は、前記第１コンピュータ・システムからリモートにある、コピーすること；および
サービスの第１セットを提供する第１ＶＭを、前記第１ストレージ媒体に保存された前記ＶＭイメージの部分的なコピーから前記第１コンピュータ・システムに配備することであって、サービスの第２セットを提供する第２ＶＭは、前記第２ストレージ媒体に保存された前記ＶＭイメージから前記第２コンピュータ・システムに配備され、前記第１コンピュータ・システムにサブミットされるサービス要求は、要求されているサービスのタイプに基づいて、前記第１ＶＭによってローカルに、あるいは前記第２ＶＭによってリモートに管理される、配備すること、
を行わせる、コンピュータ・プログラム。
【請求項２１】
前記ＶＭイメージが前記第１ストレージ媒体へ完全にコピーされ、前記第１ＶＭが前記第１コンピュータ・システムに全面的に配備された後、サービス要求はもっぱら前記第１ＶＭによって管理される、請求項２０に記載のコンピュータ・プログラム。
【請求項２２】
前記ＶＭイメージが前記第１ストレージ媒体へ完全にコピーされ、前記第１ＶＭが前記第１コンピュータ・システムに全面的に配備された後、サービス要求は引き続き、要求されているサービスのタイプに基づいて、前記第１ＶＭによってローカルに、あるいは前記第２ＶＭによってリモートに管理される、請求項２０に記載のコンピュータ・プログラム。
【請求項２３】
前記第２コンピュータ・システムは、仮想化コンポーネント、あるいは前記第１コンピュータ・システムと前記第２コンピュータ・システムとの間のネットワークおよびストレージ接続性に関連する、１つ以上の要素に従って選択される、請求項２０に記載のコンピュータ・プログラム。
【請求項２４】
前記コンピュータ可読プログラムは、コンピュータ上で実行されると、前記コンピュータにさらに、記第２ＶＭの代わりとするべく仮想ネットワーク・エージェントを前記第１コンピュータ・システム上で実行させる、請求項２０に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
開示される主題は、全般的に仮想マシンに関し、特に、ネットワーク環境において仮想マシンのリモート配備（ｄｅｐｌｏｙｍｅｎｔ）を管理することに関する。
【背景技術】
【０００２】
仮想化環境では、１つ以上のソフトウェアまたはハードウェア基盤（すなわち、ホスト・マシン）上で動作しているホスト・ソフトウェア（例えば、ハイパーバイザ）が、そのホスト・マシンを、ゲスト・ソフトウェア用にエミュレートあるいは仮想化することができる。言い換えれば、ハイパーバイザは、仮想マシン（ＶＭ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ）を実現して、ゲスト・ソフトウェアへサービスを提供する。ハイパーバイザは、ＶＭを実現するのに利用されるデータ（すなわち、ＶＭイメージ）を、リポジトリからホスト・マシンのメモリへロードすることによって、ホスト・マシンにＶＭを配備する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＶＭイメージがリモートのリポジトリに保存されている場合、ハイパーバイザは、リモート・リポジトリからローカル・リポジトリへＶＭイメージをコピーし、ローカル・リポジトリにあるＶＭイメージを用いてＶＭを配備する。ＶＭの配備は、ＶＭイメージがローカル・リポジトリへ完全にコピーされるまで滞ることになる。別の実装では、ＶＭがネットワーク上でリモート・サーバに配備されるが、この実装は、待ち時間の問題を引き起こし、当該リモート・サーバにホスト・マシンが常時接続されていることを必要とし、さらにはそのリモート・サーバによるＶＭのサポートおよび更新の管理を必要とするものである。
【課題を解決するための手段】
【０００４】
一実施形態によれば、ネットワーク環境において仮想マシン（ＶＭ）のリモート配備を管理する方法が提供される。第２ストレージ媒体に保存されたＶＭイメージが、第１ストレージ媒体へコピーされる。第１ストレージ媒体は、第１コンピュータ・システムに近接しており、第２ストレージ媒体は、第１コンピュータ・システムからリモートにあって第２コンピュータ・システムに近接している。ＶＭイメージがコピーされている最中に、第１ＶＭが、第１ストレージ媒体に保存されたＶＭイメージの部分的なコピーから第１コンピュータ・システムに配備され、第２ＶＭが、第２ストレージ媒体に保存されたＶＭイメージから第２コンピュータ・システムに配備される。第１コンピュータ・システムにサブミットされるサービス要求は、要求されているサービスのタイプに基づいて、第１ＶＭによってローカルに、あるいは第２ＶＭによってリモートに管理される。
【０００５】
１つ以上の実施形態によれば、１つ以上の論理ユニットを含んだシステムが提供される。１つ以上の論理ユニットは、上記に開示された方法に関連する機能および動作を実施するように構成されている。さらに別の実施形態では、コンピュータ可読プログラムを備えたコンピュータ可読媒体を含むコンピュータ・プログラムが提供される。コンピュータ可読プログラムは、コンピュータ上で実行されると、上記に開示された方法に関連する機能および動作をコンピュータに実施させる。
【０００６】
いくつかの選択肢に加え上記に開示された１つ以上の実施形態について、添付の図面を参照しつつ以下により詳しく提示する。ただし、開示の主題は、開示されるいずれか特定の実施形態に限定されるものではない。
【図面の簡単な説明】
【０００７】
【図１】１つ以上の実施形態による、例示的なネットワーク環境を示す図である。
【図２】一実施形態による、リモート・リポジトリに保存されたＶＭイメージを用いるＶＭの配備を管理する方法のフロー図である。
【図３】一実施形態による、リモート・リポジトリに保存されたＶＭイメージを用いるＶＭの配備を管理する方法のフロー図である。
【図４】１つ以上の実施形態による、開示されるシステムおよび方法が動作可能なハードウェア環境のブロック図である。
【図５】１つ以上の実施形態による、開示されるシステムおよび方法が動作可能なソフトウェア環境のブロック図である。
【発明を実施するための形態】
【０００８】
請求される主題の実施形態は、上記に提示されたような添付図面の各図を参照することにより理解される。
【０００９】
別々の図面において同一の数字によって参照される特徴、要素および態様は、１つ以上の実施形態による同一の、同等のあるいは類似する特徴、要素および態様を示す。
【００１０】
以下の数々の具体的な詳細は、多様な実施形態を十分に説明するために示すものである。これらの特定の詳細を伴わずにあるいは詳細をいくらか変形させて、何らかの実施形態を実施することも可能である。一部の事例では、他の態様を分かりにくくしないように、或る特定の特徴についてあまり詳細には説明していない。各々の要素または特徴に関する詳細の程度は、１つの特徴が他の特徴よりも斬新であるまたは大切であることを示すものと解釈されるべきではない。
【００１１】
１つ以上の実施形態による図１を参照すると、例示的なネットワーク環境１００には、コンピュータ・システム１１０、コンピュータ・システム１２０、ネットワーク１３０、およびリモート・リポジトリ１４０が含まれる。コンピュータ・システム１１０は、ネットワーク１３０を介して、コンピュータ・システム１２０にリモートで接続されている。コンピュータ・システム１２０は、リモート・リポジトリ１４０にとってローカルな、あるいは近接するコンピュータ・システムである。コンピュータ・システム１１０上で実行されているソフトウェア・アプリケーションが、或るＶＭによってサービスを受けることになる要求を生成するとよい。そのＶＭのイメージがリモート・リポジトリ１４０に保存されている場合、要求にサービスを提供するのに、コンピュータ・システム１１０に近接する範囲内のストレージ媒体（例えば、ローカル・リポジトリ１５０）へ当該ＶＭイメージをコピーして、ローカルＶＭ１１４を配備することが望ましいと考えられる。
【００１２】
ＶＭイメージをリモート・リポジトリ１４０からローカル・リポジトリ１５０へコピーし、さらに、コンピュータ・システム１１０上で動作している移動先ホスト１１２にローカルＶＭ１１４を配備することは、利用可能なネットワーク帯域幅ならびにリモート・リポジトリ１４０とコンピュータ・システム１１０との間の距離によっては、長い時間がかかり得る。図１および図２を参照すると、リモート・リポジトリ１４０からのＶＭイメージのコピーおよび配備に関連する待ち時間を最小化するように、一実施形態に従い、リモートＶＭ１２４が、ＶＭイメージを利用して、コンピュータ・システム１２０上で動作している一時ホスト１２２に配備されている（Ｐ２００）。リモート・リポジトリ１４０はコンピュータ・システム１２０に近接しているため、ＶＭを一時ホスト１２２に配備することは、ＶＭを移動先ホスト１１２に配備するよりもはるかに高速である。
【００１３】
実装によっては、ＶＭイメージを一時ホスト１２２に配備する前、配備している間、あるいは配備した後に、ＶＭイメージをローカル・リポジトリ１５０へコピーすることもできる（Ｐ２１０）。ＶＭイメージがリモート・リポジトリ１４０からローカル・リポジトリ１５０へコピーされている間、ローカルＶＭ１１４が全面的に配備可能となる前であっても、ローカル・リポジトリ１５０に保存されたＶＭイメージの部分的なコピーを利用して、１つ以上の機能またはサービスを備えたローカルＶＭ１１４を、移動先ホスト１１２に配備することができる（Ｐ２２０）。従って、ローカルＶＭ１１４は、移動先ホスト１１２にサブミットされる１つ以上の要求に対し、ローカルにサービスを提供することができる。
【００１４】
ローカル・レベルで利用可能な機能またはサービスのレベルに応じて、移動先ホスト１１２にサブミットされるサービス要求を、ローカルＶＭ１１４とリモートＶＭ１２４との間で分割することもできる。或る特定の実施形態では、リモート・リポジトリ１４０からローカル・リポジトリ１５０へＶＭイメージが完全にコピーされ、ローカルＶＭ１１４が全面的に配備されるまで、上記の分割が続けられてもよい（Ｐ２３０）。ローカルＶＭ１１４が完全に配備され次第、移動先ホスト１１２は、ローカルＶＭ１１４とリモートＶＭ１２４との間におけるサービス要求の分割を中止し、そのサービス要求をローカルＶＭ１１４にサブミットすることが望ましい（Ｐ２４０）。実装および最適な性能に応じて、一部の実施形態では、ローカルＶＭ１１４が全面的に配備された後であっても、移動先ホスト１１２が、ローカルＶＭ１１４とリモートＶＭ１２４との間におけるサービス要求の分割を継続してもよい。
【００１５】
言い換えれば、イメージが全面的にローカル・リポジトリ１５０へ転送された後には、リモートＶＭ１２４の状態がローカルＶＭ１１４に転送され結合されており、ローカルＶＭ１１４があたかもローカル・リポジトリ１５０から通常のやり方で配備されたかのように全ての機能を引き継いで動作し続けるのに対し、リモートＶＭ１２４は無効化されている。上記の状態転送は、ＶＭのライブ移行で一般に使用される技術を用いて実施される。
【００１６】
以下にさらに詳しく提示するように、上記に提示されたプロセス利用すると、ＶＭを移動元環境から移動先環境へ透過的に移行させることができる。本明細書にて開示される例示的な実施形態の関連においては、移動元環境とは、リモート・リポジトリ１４０と、１つ以上の潜在的な一時ホストとを含む環境のことを指す。移動先環境とは、ローカル・リポジトリ１５０と、そこからサービス要求がサブミットされる移動先ホスト１１２とを含む環境のことを指す。
【００１７】
図１および図３を参照すると、一実施形態に従い、移動先ホスト１１２またはその他のコンピュータ・エンティティが、ＶＭによって仮想化される１つ以上のコンポーネント（例えば、中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、メモリ、ディスク、ユーザ・インターフェース、ネットワーク、またはその他のコンポーネント）間における通信ワークロードおよび強度を分析することができる（Ｐ３００）。ＶＭの移動元環境と移動先環境との間におけるネットワークおよびストレージ接続性（例えば、トポロジ、帯域幅、待ち時間、またはその他の経験則）も分析され得る（Ｐ３１０）。
【００１８】
上述の分析結果を利用すると、ＶＭイメージのコピーが移動先環境へダウンロードされている間に移動元環境および移動先環境のそれぞれによって提供可能な機能またはサービスの数およびタイプを判断することができる。さらに、コンピュータ・システム１１０および１２０に関するネットワーク１３０のトポロジ、リモート・リポジトリ１４０とコンピュータ・システム１２０との近接性などといった１つ以上の要素に従って、一時ホスト１２２が選択されるとよい（Ｐ３２０）。
【００１９】
ネットワークおよび帯域幅の関連要素に応じて、ローカルＶＭ１１４が、機能またはサービスの第１セットを提供するべく移動先ホスト１１２に配備されるとよく、さらにリモートＶＭ１２４が、機能またはサービスの第２セットを提供するべく一時ホスト１２２に配備されるとよい（Ｐ３３０）。例えば、リモートＶＭ１２４が、ＣＰＵ、メモリ、およびディスク・コンポーネントを仮想化するように配備され、ローカルＶＭ１１４が、ユーザ・インターフェース（例えば、キーボード、映像、マウスなど）およびネットワーク・コンポーネントを仮想化するのに利用されてもよい。
【００２０】
先に述べたように、ローカルＶＭ１１４およびリモートＶＭ１２４によってサポートされる機能またはサービスのレベルおよび数、ならびにそうしたサービスおよび機能がそれら２つのＶＭ間で分割されるやり方は、ＶＭイメージが移動先ホスト１１２および一時ホスト１２２のそれぞれによって配備されるやり方に基づけばよい。従って、移動先ホスト１１２にサブミットされるサービス要求は、要求されているサービスのタイプに基づいて、ローカルＶＭ１１４によってローカルに管理されてもよいし、あるいはリモートＶＭ１２４によってリモートに管理されてもよい（Ｐ３４０）。
【００２１】
移動先ホスト１１２が、ローカルＶＭ１１４およびリモートＶＭ１２４に向けられた通信に関し、ローカルＶＭ１１４のプロキシとして機能する仮想ネットワーク・エージェントを実行してもよいことは注目に値する。言い換えれば、移動先ホスト１１２には、例えば、周辺コンポーネント相互接続（ＰＣＩ：ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介して中央処理装置（ＣＰＵ）およびメモリと通信しさらに移動先ホスト１１２の外部にあるネットワーク・ブリッジまたはスイッチを介してネットワーク１３０と通信する、ネットワーク・アダプタが含まれ得る。このようなコンポーネント群を仮想ネットワーク・エージェントで置き換えることが可能であり、仮想ネットワーク・エージェントは、ネットワーク・スタックを下って（例えば、ＰＣＩからネットワーク・カードへ、ネットワーク・カードからブリッジまたはスイッチへ、ブリッジまたはスイッチからネットワーク１３０へ、のように）トラフィックを伝える代わりに、そのトラフィックを一時ホスト１２２へ転送する。
【００２２】
最も有利にするには、移動先ホスト１１２にサブミットされる要求の全てに対しローカルＶＭ１１４がサービスを与えるようにすることが望ましいと言える。そのようなシナリオでは、ミラーリング技術を用いて、ＶＭイメージをリモート・リポジトリ１４０からローカル・リポジトリ１５０へコピーするとよく、そうするとストレージのミラー切り換えがＶＭ移行ハンドオフに同期する。ミラーリングとは、アプリケーションが動作しているときにデータをバックアップ位置に複製（すなわちコピー）し、回復プロセスの間、バックアップ位置にあるデータを使用してアプリケーションを再開することを指す。一実装では、バックアップ・コピーが読み取り専用となるように構成し、その後回復プロセスの間は読み書きが可能になるよう許可を変更することによって、データの整合性を保つことができる。このようなミラーリングをＶＭライブ移行に適用してもよく、その場合ＶＭは、一時ホスト１２２から移動先ホスト１１２へと移行される。
【００２３】
要約すると、ＶＭを一時ホスト１２２（すなわち、当該ＶＭのイメージにとってローカルなあるいは近接するホスト）に配備することにより、望ましくは、リモートに位置する移動先ホストへＶＭがコピーされ配備されるのを待たずに済むＶＭの高速配備が可能になる。一時ホストがインスタント・配備をサポートしている場合であれば、配備は、即時に行われ得る。ＶＭを移動元環境（例えば、コンピュータ・システム１２０）から移動先環境（例えば、コンピュータ・システム１１０）へ移行することにより、望ましくは、ＶＭの高速配備に加え、移動先ホスト１１２によってサブミットされるサービス要求の高速処理もサポートされる。
【００２４】
別の実施形態では、開示される主題が、ハードウェア要素およびソフトウェア要素双方の組み合わせとして実現されてもよく、あるいは完全にハードウェアの形で実現されてもまたは完全にソフトウェアの形で実現されてもよい。さらに、本明細書に開示されるコンピュータ・システムおよびプログラム・ソフトウェアには、本明細書にて意図されている結果を達成する方法およびプロセスを実施するように実行されるハードウェア・コンポーネントまたは論理コードによって示され得る、制御されたコンピュータ環境を含めてもよい。上記の方法およびプロセスは、汎用コンピュータ・システムまたはマシンによって実施される場合には、その汎用マシンを特殊用途マシンにコンバートする。
【００２５】
図４および図５を参照すると、例示的な実施形態によるコンピュータ・システム環境は、ハードウェア環境１１１０およびソフトウェア環境１１２０で構成されるとよい。ハードウェア環境１１１０は、ソフトウェア環境１１２０のコンポーネント群に実行環境を提供する論理ユニット、回路またはその他の機械および機器を含むとよい。その結果としてソフトウェア環境１１２０が、ハードウェア環境１１１０の多様なコンポーネントに、基礎を成す動作設定および構成などが含まれた実行命令を提供するとよい。
【００２６】
図４を参照すると、本明細書にて開示されるアプリケーション・ソフトウェアおよび論理コードが、例示的なハードウェア環境１１１０によって表される１つ以上のコンピュータ・システム上で実行されるコンピュータ可読コードの形で実現され得る。図に示すように、ハードウェア環境１１１０は、システム・バス１１００を介して１つ以上のストレージ要素に連結されているプロセッサ１１０１を含むとよい。ストレージ要素には、例えば、ローカル・メモリ１１０２、ストレージ媒体１１０６、キャッシュ・メモリ１１０４またはその他のコンピュータ使用可能またはコンピュータ可読の媒体が含まれるとよい。本開示の関連においては、コンピュータ使用可能またはコンピュータ可読のストレージ媒体として、プログラム・コードの収容、保存、通信、伝搬または伝送に利用し得る、任意の記録可能な製品を挙げることができる。
【００２７】
コンピュータ可読ストレージ媒体は、電子、磁気、光、電磁気、赤外線、または半導体の媒体、システム、装置またはデバイスとすればよい。コンピュータ可読ストレージ媒体は同様に、そのような実装が合法な対象と見なされる範囲内では制限されることなく、伝搬媒体により実現することもできる。コンピュータ可読ストレージ媒体の例としては、半導体すなわちソリッド・ステートのメモリ、磁気テープ、着脱可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、固定型磁気ディスク、光ディスク、または適切な場合には搬送波などが挙げられる。光ディスクの現行の例には、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｋ−ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、コンパクト・ディスク読み／書き（ＣＤ−Ｒ／Ｗ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ／ｗｒｉｔｅ）、デジタル映像ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｋ）、高解像度映像ディスク（ＨＤ−ＤＶＤ：ｈｉｇｈ  ｄｅｆｉｎｉｔｉｏｎ  ｖｉｄｅｏ  ｄｉｓｋ）またはＢｌｕ−ｒａｙ（商標）ディスクが挙げられる。
【００２８】
一実施形態では、プロセッサ１１０１は、ストレージ媒体１１０６からローカル・メモリ１１０２へ、実行可能コードをロードする。キャッシュ・メモリ１１０４は、実行に向けてコードがロードされる回数を減らすのに役立つ一時ストレージを提供することによって、処理時間を最適化する。１つ以上のユーザ・インターフェース・デバイス１１０５（例えば、キーボード、ポインティング・デバイスなど）およびディスプレイ・スクリーン１１０７が、直接的に、あるいは、例えば介在するＩ／Ｏコントローラ１１０３を介して、ハードウェア環境１１１０内の他の要素に連結されているとよい。ハードウェア環境１１１０が、ローカルあるいはリモートにあるコンピュータ・システム、プリンタおよびストレージ・デバイスと、介在するプライベートまたはパブリックのネットワーク（例えば、インターネット）を介して通信することが可能になるように、ネットワーク・アダプタなどの通信インターフェース１１０８が提供されるとよい。有線のあるいはワイヤレスのモデムおよびＥｔｈｅｒｎｅｔ（Ｒ）カードは、ネットワーク・アダプタの例示的なタイプの一部である。
【００２９】
ハードウェア環境１１１０は、或る特定の実装においては、上述のコンポーネントの一部または全てを含まない場合も、あるいは補足的な機能または有用性をもたらすように追加的なコンポーネントを含む場合もあるということに注目すべきである。意図されている用途および構成に応じて、ハードウェア環境１１１０は、デスクトップもしくはラップトップ・コンピュータであってもよいし、または、セットトップ・ボックス、パーソナル・デジタル・アシスタント（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、パーソナル・メディア・プレーヤ、移動体通信ユニット（例えば、ワイヤレス電話）などの組み込みシステムに必要に応じて具現化されるその他のコンピュータ・デバイスであってもよいし、あるいは、情報処理またはデータ・ストレージ機能を有する同様のその他のハードウェア・プラットフォームであってもよい。
【００３０】
一部の実施形態では、通信インターフェース１１０８は、プログラム・コードなど、各種の情報を表現しているアナログまたはデジタルのデータ・ストリームを搬送するデジタル信号、電気信号、電磁気信号または光信号を送受信することによって、１つ以上のコンピュータ・システムとの通信手段をもたらすデータ通信ポートの機能を果たす。上記の通信は、ローカルまたはリモートのネットワークによって確立されてもよいし、あるいは別の方法として空気またはその他の媒体を介した伝達によって確立されてもよく、例えば搬送波による伝搬などが挙げられるが、これに限定されない。
【００３１】
本明細書に提示するように、図に示すハードウェア要素にて実行される開示のソフトウェア要素は、例示的な性質の論理的または機能的関係に従って定義される。一方、上記の例示的なソフトウェア要素によって実現されるそれぞれの方法も、例えば、構成されプログラムされたプロセッサ、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）およびデジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）などによって、同様に上述のハードウェア要素において符号化することが可能であることに留意する必要がある。
【００３２】
図５を参照すると、ソフトウェア環境１１２０は、１つ以上のハードウェア環境１１１０上で実行されるとき、概して、システム・ソフトウェア１１２１およびアプリケーション・ソフトウェア１１２２を備える２つのクラスに分かれると考えられる。一実施形態では、本明細書に開示される方法およびプロセスが、システム・ソフトウェア１１２１として、またはアプリケーション・ソフトウェア１１２２として、あるいはこれらの組み合わせとして実現され得る。システム・ソフトウェア１１２１は、ハードウェア環境１１１０にある１つ以上のプロセッサ１１０１（例えば、マイクロコントローラなど）に対してどのように機能し情報を処理するかについての指示を与える、オペレーティング・システム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）あるいは情報管理システムなどといった制御プログラムを含むとよい。アプリケーション・ソフトウェア１１２２には、プログラム・コード、データ構造、ファームウェア、常駐ソフトウェア、マイクロコード、またはプロセッサ１１０１によって読み取り、分析もしくは実行され得る情報またはルーチンの他の任意の形が含まれるとよいが、これらに限定するものではない。
【００３３】
言い換えれば、アプリケーション・ソフトウェア１１２２は、コンピュータまたは任意の命令実行システムによってあるいは関連して使用されるプログラム・コードを提供するコンピュータ使用可能もしくはコンピュータ可読のストレージ媒体の形でコンピュータ・プログラムに組み込まれた、プログラム・コードとして実現されるとよい。加えて、アプリケーション・ソフトウェア１１２２は、ストレージ媒体１１０６からローカル・メモリ１１０２へロードされてからシステム・ソフトウェア１１２１上で実行される、１つ以上のコンピュータ・プログラムを含んでもよい。クライアント−サーバ・アーキテクチャでは、アプリケーション・ソフトウェア１１２２は、クライアント・ソフトウェアおよびサーバ・ソフトウェアを含むとよい。例えば、一実施形態では、クライアント・ソフトウェアが、サーバ・ソフトウェアが実行されているサーバ・コンピュータ・システムとは別個であり独立しているクライアント・コンピュータ・システム上で実行されてもよい。
【００３４】
ソフトウェア環境１１２０はさらに、ローカルまたはリモートのコンピュータ・ネットワークで入手可能なデータにアクセスするブラウザ・ソフトウェア１１２６をも含むとよい。さらに、ソフトウェア環境１１２０は、ユーザのコマンドおよびデータを受信するユーザ・インターフェース１１２４（例えば、グラフィカル・ユーザ・インターフェース（ＧＵＩ：ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ））を含むとよい。上述したハードウェアおよびソフトウェアのアーキテクチャならびに環境は、例示を目的とするものであることは繰り返し述べるに値する。従って、１つ以上の実施形態を、任意のタイプのシステム・アーキテクチャ、機能または論理プラットフォーム、あるいは処理環境上で実現することも可能である。
【００３５】
さらに当然のことながら、論理コード、プログラム、モジュール、プロセス、方法、および各方法のそれぞれのプロセスが実施される順序は、単に例示的なものに過ぎない。実装に応じて、プロセスもしくは任意の潜在的なサブプロセスならびに方法は、本開示にて特に指定のない限り、任意の順序で実施することあるいは同時に実施することが可能である。さらに、特に具体的に述べられていない限り、本開示の関連における論理コードの記述は、いずれか特定のプログラミング言語に関係するあるいは限定されるものではなく、分散型環境、非分散型環境、単一または多重処理環境にて１つ以上のプロセッサ上で実行可能な１つ以上のモジュールを含めることもできる。
【００３６】
当業者には当然のことながら、ソフトウェアの実施形態には、ファームウェア、常駐ソフトウェア、マイクロコードなどを含めてもよい。ソフトウェアもしくはハードウェアを含んだ、あるいはソフトウェアおよびハードウェアの側面を組み合わせた何らかのコンポーネントは、本明細書において一般に、「回路」、「モジュール」または「システム」と称される場合がある。加えて、開示される主題は、具現化されたコンピュータ可読プログラム・コードを備えた１つ以上のコンピュータ可読ストレージ媒体（単数または複数）に具現化されたコンピュータ・プログラムとして実現されてもよい。１つ以上のコンピュータ可読ストレージ媒体（単数または複数）の任意の組み合わせを利用することもできる。コンピュータ可読ストレージ媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体とすればよい。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の適切な組み合わせとすればよいが、これらに限定されない。
【００３７】
本文書の関連においては、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによってあるいは関連して使用されるプログラムを収容または保存することのできる任意の有形の媒体であればよい。コンピュータ可読信号媒体は、例えばベースバンドで、または搬送波の一部として、具現化されたコンピュータ可読プログラム・コードを備えた伝搬データ信号を含むとよい。このような伝搬信号は、電磁気、光、またはこれらの任意の適切な組み合わせを含むがこれに限定されない多種多様な形のうちの任意の形をとることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではない、何らかのコンピュータ可読ストレージ媒体であって、命令実行システム、装置、またはデバイスによってあるいは関連して使用されるプログラムを通信、伝搬、または伝送可能なものであればよい。
【００３８】
コンピュータ可読ストレージ媒体上に具現化されたプログラム・コードは、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、ＲＦなどを含むがこれらに限定されない任意の適切な媒体、あるいは上記媒体の任意の適切な組み合わせを用いて伝送されればよい。開示された動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などといったオブジェクト指向プログラミング言語、ならびに「Ｃ」プログラミング言語または同様のプログラミング言語などの従来型手続きプログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれるとよい。
【００３９】
プログラム・コードは、完全にユーザのコンピュータ上で実行されてもよいし、スタンドアローン型ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されてもよいし、部分的にユーザのコンピュータ上で実行されてさらに部分的にリモート・コンピュータ上で実行されても、あるいは完全にリモート・コンピュータまたはサーバ上で実行されてもよい。後の方のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されていてもよいし、あるいはこの接続が、（例えば、インターネット・サービス・プロバイダを使ったインターネットを介して）外部コンピュータに対して設けられていてもよい。
【００４０】
一部の実施形態は、実施形態による方法、装置（システム）およびコンピュータ・プログラムのフローチャート説明図またはブロック図あるいはその両方に関連して開示される。当然のことながら、フローチャート説明図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート説明図またはブロック図あるいはその両方のブロック群の組み合わせは、コンピュータ・プログラム命令によって実現することができる。こうしたコンピュータ・プログラム命令は、汎用コンピュータ、特殊用途コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを形成してもよく、それにより、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の単数または複数のブロックに明示されている機能／作用を実現する手段をもたらすようになる。
【００４１】
上記のコンピュータ・プログラム命令は、さらに、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスを特定のやり方で機能するよう仕向けることができるコンピュータ可読ストレージ媒体に保存されてもよく、それにより、コンピュータ可読ストレージ媒体に保存された命令が、フローチャートまたはブロック図あるいはその両方の単数または複数のブロックに明示されている機能／作用を実現する命令を含んだ製品を形成するようになる。
【００４２】
コンピュータ・プログラム命令は、さらに、コンピュータ実装されたプロセスを生成するように、コンピュータ、その他のプログラム可能なデータ処理装置またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能なデータ処理装置またはその他のデバイスにて実施される一連の動作ステップを引き起こすこともでき、それにより、コンピュータまたはその他のプログラム可能なデータ処理装置にて実行される命令が、フローチャートまたはブロック図あるいはその両方の単数または複数のブロックに明示されている機能／作用を実現するプロセスをもたらすようになる。
【００４３】
図面のフローチャートまたはブロック図は、多様な実施形態によるシステム、方法およびコンピュータ・プログラムのあり得る実装のアーキテクチャ、機能、および動作を説明している。この関連で、フローチャートまたはブロック図の各ブロックが、特定の論理機能（単数または複数）を実現するための１つ以上の実行可能命令を含むモジュール、セグメントあるいはコードの一部に相当する場合もある。さらに、一部の代替的な実装では、ブロックに示された各機能が、図面に示された順序から外れて生じ得ることにも留意する必要がある。
【００４４】
例えば、必要な機能に応じて、連続して示された２つのブロックが実際にはほどんど同時に実行されることもあり、あるいは、それらのブロックが、ときには逆の順序で実行されることもある。さらに、ブロック図またはフローチャート説明図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート説明図あるいはその両方のブロック群の組み合わせは、明示されている機能または作用を実施する特殊用途ハードウェアベースのシステムによって実現すること、あるいは、特殊用途ハードウェアとコンピュータ命令との組み合わせによって実現することが可能であることも分かるであろう。
【００４５】
請求される主題について、１つ以上の特徴または実施形態に関連して本明細書に提示してきた。当業者には当然のことながら、本明細書にて提示された例示的な実施形態が本質的に詳細にわたるものであるにもかかわらず、全体として意図されている範囲を制限することあるいは逸脱することなく、上述の実施形態に対して変更および修正を加えることが可能である。本明細書に提示される実施形態の、上述のおよびその他様々な適応および組み合わせは、請求項によって定義される開示の主題およびその同等物一式の範囲内にある。
【符号の説明】
【００４６】
１００  ネットワーク環境
１１０、１２０  コンピュータ・システム
１１２  移動先ホスト
１１４  ローカルＶＭ
１２２  一時ホスト
１２４  リモートＶＭ
１３０  ネットワーク
１４０  リモート・リポジトリ
１５０  ローカル・リポジトリ
【図１】
2011123891.tif 000003
【図２】
2011123891.tif 000004
【図３】
2011123891.tif 000005
【図４】
2011123891.tif 000006
【図５】
2011123891.tif 000007