(57)【特許請求の範囲】
【請求項１】
イメージを実行するのに最適なコンピューティング環境を判断するための、コンピュータで実装される方法であって、
個別のコンピューティング環境においてそれぞれ実行されている一組のイメージをレジストリ・サービスに登録するステップと、
現在のコンピューティング環境において実行されている現在のイメージの既存性能を測定するステップと、
前記一組のイメージから、前記現在のイメージに類似した少なくとも１つのイメージを特定するステップと、
前記少なくとも１つのイメージの個別のコンピューティング環境において実行されている、前記少なくとも１つのイメージの潜在性能を測定するステップと、
前記少なくとも１つのイメージの前記潜在性能と、前記現在のイメージの前記既存性能とを比較するステップと、
前記現在のイメージを実行するのに最適なコンピューティング環境を、前記比較するステップに基づき判断するステップと、
を含む方法。
【請求項２】
前記最適なコンピューティング環境は、クラウド・コンピューティング環境を含む、請求項１に記載の方法。
【請求項３】
前記登録するステップは、前記一組のイメージを含む一組のワークステーション上で実行されているエージェントによって実現される、請求項１に記載の方法。
【請求項４】
前記登録するステップに関連するデータを、リポジトリに記憶するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記既存性能および前記潜在性能は、一組の性能測定基準に基づき測定される、請求項１に記載の方法。
【請求項６】
前記判断するステップは、前記現在のイメージに関連するユーザ・プロファイルにさらに基づく、請求項１に記載の方法。
【請求項７】
前記ユーザ・プロファイルは、一組のプリファレンスを規定する、請求項６に記載の方法。
【請求項８】
イメージを実行するのに最適なコンピューティング環境を判断するシステムであって、前記システムは、
バスと、
前記バスに結合されたプロセッサと、
前記バスに結合されたメモリ媒体と、
を含み、前記メモリ媒体は、以下のこと：
個別のコンピューティング環境においてそれぞれ実行されている一組のイメージをレジストリ・サービスに登録すること、
現在のコンピューティング環境において実行されている現在のイメージの既存性能を測定すること、
前記一組のイメージから、前記現在のイメージに類似した少なくとも１つのイメージを特定すること、
前記少なくとも１つのイメージの個別のコンピューティング環境において実行されている、前記少なくとも１つのイメージの潜在性能を測定すること、
前記少なくとも１つのイメージの前記潜在性能と、前記現在のイメージの前記既存性能とを比較すること、および
前記現在のイメージを実行するのに最適なコンピューティング環境を、前記比較に基づき判断すること
を行う命令を含む、システム。
【請求項９】
前記最適なコンピューティング環境は、クラウド・コンピューティング環境を含む、請求項８に記載のシステム。
【請求項１０】
前記一組のイメージは、前記一組のイメージを含む一組のワークステーション上で実行されているエージェントを使用して登録される、請求項８に記載のシステム。
【請求項１１】
前記メモリ媒体は、前記登録に関連するデータをリポジトリに記憶する命令をさらに含む、請求項８に記載のシステム。
【請求項１２】
前記既存性能および前記潜在性能は、一組の性能測定基準に基づき測定される、請求項８に記載のシステム。
【請求項１３】
前記最適なコンピューティング環境はさらに、前記現在のイメージに関連するユーザ・プロファイルに基づき判断される、請求項８に記載のシステム。
【請求項１４】
前記ユーザ・プロファイルは、一組のプリファレンスを規定する、請求項１３に記載のシステム。
【請求項１５】
コンピュータ・プログラムであって、請求項１から７のいずれか一項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
【請求項１６】
イメージを実行するのに最適なコンピューティング環境を判断するシステムを展開する方法であって、前記方法は、
コンピュータ・インフラストラクチャを提供するステップ
を含み、前記コンピュータ・インフラストラクチャは、
個別のコンピューティング環境においてそれぞれ実行されている一組のイメージをレジストリ・サービスに登録し、
現在のコンピューティング環境において実行されている現在のイメージの既存性能を測定し、
前記一組のイメージから、前記現在のイメージに類似した少なくとも１つのイメージを特定し、
前記少なくとも１つのイメージの個別のコンピューティング環境において実行されている、前記少なくとも１つのイメージの潜在性能を測定し、
前記少なくとも１つのイメージの前記潜在性能と、前記現在のイメージの前記既存性能とを比較し、
前記現在のイメージを実行するのに最適なコンピューティング環境を、前記比較に基づき判断するよう動作可能である、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、環境最適化に関する。特に、本発明は、仮想マシン（ＶＭ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ）のイメージなどのイメージを実行するのに最適な環境を判断することに関する。
【背景技術】
【０００２】
クラウド・コンピューティング環境は、その前身であるグリッド環境に対する拡張であり、それによって、複数のグリッドおよびその他計算リソースをクラウド層によりさらに抽象化でき、その結果、末端の消費者に、異種のデバイスをシームレスなリソースの単一プールのように見せる。これらのリソースは、物理的または論理的な計算エンジン、サーバおよびデバイス、デバイス・メモリならびにストレージ・デバイスなどのものを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
仮想イメージ（例えばＶＭの）をローカルで実行しようとする場合、ユーザは、最適とはいえない性能（例えば、不十分なＣＰＵ性能、不十分なメモリなど）を被ることがあるため、望ましくない体験をすることもあると考えられる。さらに、ＶＭを実行するのに最適な環境を特定する現在の手法には、課題が存在する。
【課題を解決するための手段】
【０００４】
本発明の各側面は、ローカルで実行されているイメージ（例えば、仮想マシン（ＶＭ）のイメージなど）を評価して、別のコンピューティング環境（例えばクラウド・コンピューティング環境）において、当該イメージのより効率的な実行もしくはより効果的な実行、またはその両方が可能であると考えられるかどうかを判断する手法を提供する。具体的には、本発明の実施形態は、ローカル（既存／ターゲット）イメージの実性能および体感性能、ならびに、仮にイメージが別の環境にマイグレートされたとした場合の見込み／潜在性能（ｐｏｔｅｎｔｉａｌ  ｐｅｒｆｏｒｍａｎｃｅ）を評価する。見込み／潜在性能は、既存／ターゲット・イメージに類似した別のイメージに基づき、ただしそのイメージが異なるコンピューティング環境で実行されている場合に、測定可能である。いずれにせよ、システムは、別の環境でイメージがよりよく動作可能である（またはその逆）と判断されると、エンド・ユーザに提案を表示することになる。当然のことながら、性能は、システムが比較を実行する例示の測定基準の１つでしかない。コスト、信頼性、利用可能性などのほかの測定基準も使用され得るであろう。
【０００５】
本発明の第１の側面は、イメージを実行するのに最適なコンピューティング環境を判断するための方法を提供し、本方法は、個別のコンピューティング環境においてそれぞれ実行されている一組のイメージをレジストリ・サービス（ｒｅｇｉｓｔｒｙ  ｓｅｒｖｉｃｅ）に登録するステップと、現在のコンピューティング環境において実行されている現在のイメージの既存性能（ｅｘｉｓｔｉｎｇ  ｐｅｒｆｏｒｍａｎｃｅ）を測定するステップと、一組のイメージから、現在のイメージに類似した少なくとも１つのイメージを特定するステップと、該少なくとも１つのイメージの個別のコンピューティング環境において実行されている、該少なくとも１つのイメージの潜在性能を測定するステップと、該少なくとも１つのイメージの潜在性能と、現在のイメージの既存性能とを比較するステップと、現在のイメージを実行するのに最適なコンピューティング環境を、比較に基づき判断するステップとを含む。
【０００６】
本発明の第２の側面は、イメージを実行するのに最適なコンピューティング環境を判断するシステムを提供し、このシステムは、バスと、バスに結合されたプロセッサと、バスに結合されたメモリ媒体とを含み、メモリ媒体は、以下のこと：個別のコンピューティング環境においてそれぞれ実行されている一組のイメージをレジストリ・サービスに登録すること、現在のコンピューティング環境において実行されている現在のイメージの既存性能を測定すること、一組のイメージから、現在のイメージに類似した少なくとも１つのイメージを特定すること、該少なくとも１つのイメージの個別のコンピューティング環境において実行されている、該少なくとも１つのイメージの潜在性能を測定すること、該少なくとも１つのイメージの潜在性能と、現在のイメージの既存性能とを比較すること、および現在のイメージを実行するのに最適なコンピューティング環境を、比較に基づき判断することを行う命令を含む。
【０００７】
本発明の第３の側面は、イメージを実行するのに最適なコンピューティング環境を判断するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、コンピュータ可読ストレージ媒体と、コンピュータ可読ストレージ媒体に記憶され、以下のこと：個別のコンピューティング環境においてそれぞれ実行されている一組のイメージをレジストリ・サービスに登録すること、現在のコンピューティング環境において実行されている現在のイメージの既存性能を測定すること、一組のイメージから、現在のイメージに類似した少なくとも１つのイメージを特定すること、該少なくとも１つのイメージの個別のコンピューティング環境において実行されている、該少なくとも１つのイメージの潜在性能を測定すること、該少なくとも１つのイメージの潜在性能と、現在のイメージの既存性能とを比較すること、および現在のイメージを実行するのに最適なコンピューティング環境を、比較に基づき判断することを行うプログラム命令とを含む。
【０００８】
本発明の第４の側面は、イメージを実行するのに最適なコンピューティング環境を判断するシステムを展開する方法を提供し、本方法は、コンピュータ・インフラストラクチャを提供するステップを含み、コンピュータ・インフラストラクチャは、個別のコンピューティング環境においてそれぞれ実行されている一組のイメージをレジストリ・サービスに登録し、現在のコンピューティング環境において実行されている現在のイメージの既存性能を測定し、一組のイメージから、現在のイメージに類似した少なくとも１つのイメージを特定し、該少なくとも１つのイメージの個別のコンピューティング環境において実行されている、該少なくとも１つのイメージの潜在性能を測定し、該少なくとも１つのイメージの潜在性能と、現在のイメージの既存性能とを比較し、現在のイメージを実行するのに最適なコンピューティング環境を、比較に基づき判断するよう動作可能である。
【０００９】
添付の図面と併せて理解される、本発明の様々な側面についての以下の詳細な記載から、本発明のこれらの特徴およびほかの特徴が、より容易に理解される。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態による、クラウド・コンピューティング・ノードを示す。
【図２】本発明の実施形態による、クラウド・コンピューティング環境を示す。
【図３】本発明の実施形態による、抽象化モデル層を示す。
【図４】本発明の実施形態による、コンポーネント・フロー図を示す。
【図５】本発明の実施形態による、別のコンポーネント・フロー図を示す。
【図６】本発明の実施形態による、方法フロー図を示す。
【発明を実施するための形態】
【００１１】
図面は、必ずしも一定の縮尺ではない。図面は、単なる概略図であり、本発明の特定の要素を表現することを目的としてはいない。図面は、本発明の典型的な実施形態のみを示すことを目的としている。したがって、本発明の範囲を限定するものと見なされてはならない。図面では、同じ番号は同じ構成要素を表す。
【００１２】
本願明細書では、以下、例示実施形態が示されている添付の図面を参照しながら、例示の実施形態についてさらに詳しく記載する。なお、本開示は、異なる多数の形態で具現化でき、本願明細書に記載された例示実施形態に限定されると解釈されてはならない。むしろ、これらの例示実施形態は、本開示が、完全かつ完結したものとなり、本開示の範囲を十分に当業者に伝えるよう提供される。本記載では、提示される実施形態を不必要に不明瞭化するのを避けるために、周知の特徴および技術の詳細は省略されることもある。
【００１３】
本願明細書で使用される専門用語は、特定の実施形態を説明するためのものでしかなく、本開示の限定となることは目的としていない。さらに、当然のことながら、「含む」もしくは「含んでいる」という用語、またはその両方は、本明細書で使用される場合、記載された機能、範囲、完全体、ステップ、動作、構成要素もしくはコンポーネント、またはそのいずれかの組み合わせの存在を指定するが、１つ以上のほかの機能、範囲、完全体、ステップ、動作、構成要素、コンポーネントもしくはそのグループ、またはそのいずれかの組み合わせの存在または追加を除外するものではない。
【００１４】
本発明の各側面は、ローカルで実行されているイメージ（例えば、仮想マシン（ＶＭ）のイメージなど）を評価して、別のコンピューティング環境（例えばクラウド・コンピューティング環境）において、当該イメージのより効率的な実行もしくはより効果的な実行、またはその両方が可能であると考えられるかどうかを判断する手法を提供する。具体的には、本発明の実施形態は、ローカル（既存／ターゲット）イメージの実性能および体感性能、ならびに、仮にイメージが別の環境にマイグレートされたとした場合の見込み／潜在性能を評価する。見込み／潜在性能は、既存／ターゲット・イメージに類似した別のイメージに基づき、ただしそのイメージが異なるコンピューティング環境で実行されている場合に、測定可能である。いずれにせよ、システムは、別の環境でイメージがよりよく動作可能である（またはその逆）と判断されると、エンド・ユーザに提案を表示することになる。当然のことながら、性能は、システムが比較を実行する、例示の測定基準の１つでしかない。コスト、信頼性、利用可能性などのほかの測定基準も使用され得るであろう。
【００１５】
本開示は、クラウド・コンピューティングの詳細な記載を含むが、本願明細書に記載する教示の実装は、クラウド・コンピューティング環境に限定されないということをあらかじめ理解されたい。むしろ、本発明の実施形態は、現在既知の、または後に開発される、ほかの任意のタイプのコンピューティング環境に関連して実装することができる。
【００１６】
クラウド・コンピューティングは、最小限の管理作業またはサービスのプロバイダとの対話による、迅速なプロビジョニングおよび解放が可能な、構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス）の共用プールに対する、オンデマンドの便利なネットワーク・アクセスを実現するサービス供給のモデルである。このクラウド・モデルは、少なくとも５つの特徴と、少なくとも３つのサービス・モデルと、少なくとも４つの展開モデルとを含み得る。
【００１７】
特徴は以下のとおりである。
【００１８】
オンデマンド・セルフサービス：クラウド消費者は、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を、必要に応じて自動的に、サービスのプロバイダとの人的対話の必要なく、一方的にプロビジョニングできる。
【００１９】
広範なネットワーク・アクセス：各能力は、ネットワーク上で利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム（例えば移動電話、ラップトップおよびＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ：携帯情報端末））による使用を促進する標準のメカニズムを介してアクセスされる。
【００２０】
リソース・プーリング：プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用して複数の消費者にサービスを提供するようプールされ、種々の物理リソースおよび仮想リソースが要求に応じて動的に割り当ておよび再割り当てされる。一般に、消費者は、提供されるリソースの正確な場所についての制御または知識を有しないという点で、非場所依存の感覚があるが、より高い抽象化レベルで場所（例えば、国、州またはデータセンター）を指定できることもある。
【００２１】
迅速な伸縮性：各能力は、場合によっては自動的に、迅速かつ伸縮自在にプロビジョニングされて、素早くスケール・アウトすること、および迅速に解放されて素早くスケール・インすることができる。多くの場合、消費者には、プロビジョニングに利用可能な各能力は無制限であるように見え、任意の量をいつでも購入できる。
【００２２】
測定されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅およびアクティブな消費者アカウント）に適した何らかの抽象化レベルでの計測能力を活用することによって、リソースの使用を自動的に制御および最適化する。リソース使用量は、監視、制御およびレポート可能であり、利用されるサービスのプロバイダおよび消費者の両方に透明性が提供される。
【００２３】
サービス・モデルは以下のとおりである。
【００２４】
ソフトウェア・アズ・ア・サービス（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：消費者に提供される能力は、クラウド・インフラストラクチャ上で実行されているプロバイダのアプリケーションの使用である。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して、様々なクライアント・デバイスからアクセス可能である（例えば、ウェブ・ベースの電子メール）。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージを含む基礎をなすクラウド・インフラストラクチャも、個々のアプリケーションの能力さえも、管理または制御しないが、限られた消費者特有アプリケーション構成設定は例外とされることもある。
【００２５】
プラットフォーム・アズ・ア・サービス（ＰａａＳ：Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成されている、消費者が作成または入手したアプリケーションの、クラウド・インフラストラクチャ上への展開である。消費者は、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む基礎をなすクラウド・インフラストラクチャの管理または制御は行わないが、展開されたアプリケーション、さらに場合によってはアプリケーション・ホスティング環境構成を制御する。
【００２６】
インフラストラクチャ・アズ・ア・サービス（ＩａａＳ：Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）：消費者に提供される能力は、処理、ストレージ、ネットワーク、およびその他基本的なコンピューティング・リソースのプロビジョニングであり、消費者はそこで、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行できる。消費者は、基礎をなすクラウド・インフラストラクチャの管理または制御は行わないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選ばれたネットワーキング・コンポーネント（例えばホスト・ファイアウォール）を限定的に制御する。
【００２７】
展開モデルは以下のとおりである。
【００２８】
プライベート・クラウド：クラウド・インフラストラクチャは、１つの組織のみのために運用される。組織またはサード・パーティによって管理され得、構内または構外に存在し得る。
【００２９】
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共用され、共有される関心事（例えば、ミッション、セキュリティ要件、ポリシおよびコンプライアンス意識）を有する特定のコミュニティをサポートする。組織またはサード・パーティによって管理され得、構内または構外に存在し得る。
【００３０】
パブリック・クラウド：クラウド・インフラストラクチャは、公衆または大規模業界団体に利用可能にされ、クラウド・サービスを販売する組織によって所有される。
【００３１】
ハイブリッド・クラウド：クラウド・インフラストラクチャは、２つ以上のクラウド（プライベート、コミュニティまたはパブリック）の複合であり、各クラウドは一意のエンティティのままであるが、データおよびアプリケーションの移植性（例えば、クラウド間のロード・バランシングのためのクラウド・バースト）を実現する標準またはプロプライエタリ技術によってバインドされる。
【００３２】
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性、疎結合性、モジュール性および意味的相互運用性に焦点を合わせる。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【００３３】
以下、図１を参照する。クラウド・コンピューティング・ノードの例の略図が示されている。クラウド・コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードの一例でしかなく、本願明細書に記載される本発明の実施形態の用途または機能性の範囲について、いかなる制限を意味することも目的としていない。いずれにせよ、クラウド・コンピューティング・ノード１０は、上記に記載された機能性のいずれかの実装もしくは実行またはその両方が可能である。
【００３４】
クラウド・コンピューティング・ノード１０内には、多数のほかの汎用または専用のコンピューティング・システム環境または構成とともに動作可能な、コンピュータ・システム／サーバ１２がある。コンピュータ・システム／サーバ１２とともに使用されるのに適していると考えられる周知のコンピューティング・システム、環境もしくは構成、またはそのいずれかの組み合わせの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、ならびに同様のものがあるが、これらに限定はされない。
【００３５】
コンピュータ・システム／サーバ１２については、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈において記載することができる。一般に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含み得る。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモート両方のコンピュータ・システム・ストレージ媒体に位置し得る。
【００３６】
図１に示されているように、クラウド・コンピューティング・ノード１０内のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、１つ以上のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含む様々なシステム・コンポーネントをプロセッサ１６に結合するバス１８を含み得るが、これらに限定はされない。
【００３７】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサもしくはローカル・バスを含む、いくつかのタイプのバス構造の任意のもの１つ以上を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、拡張ＩＳＡ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカル・バスおよびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスがある。
【００３８】
コンピュータ・システム／サーバ１２は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセス可能な任意の利用可能な媒体としてよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方を含む。
【００３９】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）３０もしくはキャッシュ・メモリ３２またはその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２はさらに、その他リムーバブル／非リムーバブルの揮発性／不揮発性コンピュータ・システム・ストレージ媒体を含み得る。単なる例として、非リムーバブルの不揮発性磁気媒体（図示はしておらず、典型的には「ハード・ドライブ」と呼ばれる）に対する読み取りおよび書き込みのために、ストレージ・システム３４を提供することができる。図示してはいないが、リムーバブルの不揮発性磁気ディスク（例えば「フレキシブル・ディスク」）に対する読み取りおよび書き込みのための磁気ディスク・ドライブ、ならびにＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたはその他の光媒体などのリムーバブルの不揮発性光ディスクに対する読み取りまたは書き込みのための光ディスク・ドライブを提供することができる。そのような場合には、それぞれを、１つ以上のデータ媒体インターフェースによってバス１８に接続できる。以下でさらに示し、記載するように、メモリ２８は、本発明の実施形態の機能を実行するよう構成された一組（例えば少なくとも１つ）のプログラム・モジュールを有する少なくとも１つのプログラム製品を含むとよい。
【００４０】
本発明の実施形態は、コンピュータ可読プログラム・コードが（例えば、ベースバンドに、または搬送波の一部として）具現化された伝搬データ信号を含み得る、コンピュータ可読信号媒体として実装され得る。そのような伝搬信号は、電磁気、光学またはその任意の適切な組み合わせを含むがこれらに限定はされない、様々な形態のいずれかをとってよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体でなく、かつ命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムの伝達、伝搬または搬送をすることができる、任意のコンピュータ可読媒体としてよい。
【００４１】
コンピュータ可読媒体上に具現化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、無線周波数（ＲＦ：ｒａｄｉｏ−ｆｒｅｑｕｅｎｃｙ）など、または前述のものの任意の適切な組み合わせを含むがこれらに限定はされない、任意の適切な媒体を使用して送られてもよい。
【００４２】
限定ではなく例として、一組（少なくとも１つ）のプログラム・モジュール４２を有する環境最適化プログラム／ユーティリティ４０が、オペレーティング・システム、１つ以上のアプリケーション・プログラム、その他プログラム・モジュールおよびプログラム・データと同様にメモリ２８に記憶され得る。オペレーティング・システム、１つ以上のアプリケーション・プログラム、その他プログラム・モジュールおよびプログラム・データ、またはその何らかの組み合わせはそれぞれ、ネットワーキング環境の実装を含み得る。プログラム・モジュール４２は、概して、本願明細書に記載される本発明の実施形態の機能もしくは手順またはその両方を実行する。
【００４３】
コンピュータ・システム／サーバ１２はさらに、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つ以上の外部デバイス１４、もしくは消費者がコンピュータ・システム／サーバ１２と対話できるようにする１つ以上のデバイス、もしくはコンピュータ・システム／サーバ１２が１つ以上のほかのコンピューティング・デバイスと通信できるようにする任意のデバイス（例えばネットワーク・カード、モデムなど）、またはそのいずれかの組み合わせと通信するとよい。そのような通信は、Ｉ／Ｏインターフェース２２を介して生じることができる。さらに、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、一般的な広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）もしくはパブリック・ネットワーク（例えばインターネット）、またはそのいずれかの組み合わせなどの１つ以上のネットワークと、ネットワーク・アダプタ２０を介して通信できる。図示されているように、ネットワーク・アダプタ２０は、コンピュータ・システム／サーバ１２のほかのコンポーネントと、バス１８を介して通信する。図示されてはいないが、当然のことながら、ほかのハードウェアもしくはソフトウェアまたはその両方のコンポーネントが、コンピュータ・システム／サーバ１２とともに使用される可能性がある。例として、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブおよびデータ・アーカイブ・ストレージ・システムなどがあるが、これに限定はされない。
【００４４】
以下、図２を参照する。例示のクラウド・コンピューティング環境５０が示されている。図のように、クラウド・コンピューティング環境５０は、１つ以上のクラウド・コンピューティング・ノード１０を含み、例えば携帯情報端末（ＰＤＡ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、もしくは自動車用コンピュータ・システム５４Ｎ、またはそのいずれかの組み合わせなどの、クラウド消費者により使用されるローカル・コンピューティング・デバイスが、クラウド・コンピューティング・ノード１０と通信するとよい。ノード１０は、互いに通信することもできる。ノード１０は、上述のプライベート、コミュニティ、パブリックもしくはハイブリッド・クラウド、またはその組み合わせなどの１つ以上のネットワークに、物理的または仮想的にグループ化され得る（図示せず）。これにより、クラウド・コンピューティング環境５０は、インフラストラクチャ、プラットフォームもしくはソフトウェア、またはそのいずれかの組み合わせをサービスとして提供することができ、それらについてクラウド消費者がローカル・コンピューティング・デバイス上にリソースを保持する必要はない。当然のことながら、図２に示されているコンピューティング・デバイス５４Ａ〜Ｎのタイプは、説明のみを目的としており、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意のタイプのネットワークもしくはネットワーク・アドレス指定可能な接続（例えばウェブ・ブラウザを使用）またはその両方によって、任意のタイプのコンピュータ化デバイスと通信できる。
【００４５】
以下、図３を参照する。クラウド・コンピューティング環境５０（図２）によって提供される一組の機能抽象化層が示されている。図３に示されているコンポーネント、層および機能は、例示のみを目的としており、本発明の実施形態はそれに限定されないことをあらかじめ理解されたい。図示されているように、以下の層および対応する機能が提供される。
【００４６】
ハードウェアおよびソフトウェア層６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、ＩＢＭ（Ｒ）ｚＳｅｒｉｅｓ（Ｒ）システムが１つの例であるメインフレーム、およびＩＢＭ  ｐＳｅｒｉｅｓ（Ｒ）システムが１つの例であるＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ：縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ、ＩＢＭ  ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム、ストレージ・デバイス、ネットワークおよびネットワーキング・コンポーネントがある。ソフトウェア・コンポーネントの例には、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェアが１つの例であるネットワーク・アプリケーション・サーバ・ソフトウェア、およびＩＢＭ  ＤＢ２（Ｒ）データベース・ソフトウェアが１つの例であるデータベース・ソフトウェアがある。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅおよびＤＢ２は、世界中の多数の法域において登録されている、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標である）。
【００４７】
仮想化層６２は、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントを例とする、仮想エンティティが提供され得る抽象化層を提供する。
【００４８】
一例では、管理層６４は、下記の機能を提供するとよい。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよびその他のリソースの動的な調達を提供する。計測および価格決定は、クラウド・コンピューティング環境内でリソースが利用されるときのコストの追跡と、こうしたリソースの消費に対する請求またはインボイスの作成とを提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウド消費者およびタスクのアイデンティティ確認、ならびにデータおよびその他のリソースの保護を提供する。消費者ポータルは、消費者およびシステム管理者に、クラウド・コンピューティング環境に対するアクセスを提供する。サービス・レベル管理は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意（ＳＬＡ：Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）計画および達成は、ＳＬＡに従い将来の要求が予想されるクラウド・コンピューティング・リソースの事前準備および調達を提供する。
【００４９】
ワークロード層６６は、クラウド・コンピューティング環境が利用される目的となり得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ解析処理、トランザクション処理ならびに環境最適化がある。上記のように、図３を参照して記載された前述の例はすべて、例示のためのものでしかなく、本発明はこれらの例に限定はされない。
【００５０】
当然のことながら、本願明細書に記載された本発明のすべての機能は、典型的には、環境最適化プログラム／ユーティリティ４０（図１）のプログラム・コード４２のモジュールとして有形に具現化可能な環境最適化機能により実行され得る。なお、そうではなくてもよく、代わりに、本願明細書に記載の機能性は、図３に示されている層６０〜６６のうちのいずれかによって実行／実装されること、もしくは実現されること、またはその両方が可能であろう。
【００５１】
繰り返しになるが、本開示は、クラウド・コンピューティングについての詳細な記載を含むものの、本願明細書に記載する教示の実装は、クラウド・コンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在既知の、または後に開発される、任意のタイプのネットワーク化コンピューティング環境により実装されるよう意図されている。
【００５２】
一実施形態では、本発明は、仮想イメージ（例えばＶＭに対応する）を作動させる、もしくは実装する、またはその両方を行うクラウド・ベースの手法を活用して、仮想イメージをローカルで実行することにより得られる性能を上回る改善された性能を、ユーザに提供する。これらの概念は、仮想イメージを実行するための、最もコスト効率がよく最適に動作する実行時環境を判断する手法を実現する。本発明の実施形態は、いくつかある特徴の中でも特に、次のうちの１つ以上を提供することができる：エンド・ユーザの観点から、ローカルで実行される仮想マシンの実性能および体感性能を測定する手法；ローカルで実行されるイメージがクラウド・コンピューティング環境などの別の環境に移されたとした場合の、その実性能および体感性能を測定する手法；もしくは、まったく同じイメージおよび類似のイメージを評価し、ネットワーク・レイテンシ（例えばクラウド対ローカル実行）、体感性能の差、もしくはコストの差、もしくはそのいずれかの組み合わせなどの要因、ならびにほかの測定基準を取り入れる比較エンジン；またはそのいずれかの組み合わせ。
【００５３】
以下、図４を参照する。本発明の実施形態による、コンポーネント・フロー図が示されている。当然のことながら、典型的な実施形態では、「イメージ」という用語は、ＶＭに関連する。なお、そうではなくてもよい。いずれにせよ、図４に示されているように、一組のワークステーション７４Ａ〜Ｎ上に位置する一組（少なくとも１つ）のイメージ７２Ａ〜Ｎが、レジストリ・サービス７６に登録されており、かかる登録の対応する詳細が、リポジトリ／レジストリ７８に記憶されている。概して、一組のイメージ７２Ａ〜Ｎはそれぞれ、個別のコンピューティング環境内で実行されている。図４〜５に示されているコンポーネントは、イメージ８６が最適なコンピューティング環境内で実行されているかどうかを判断し、されていなければ、イメージ８６を、最適なコンピューティング環境にマイグレートするか、コピーするか、またはほかの方法で移す。典型的な実施形態では、レジストリ・サービス７６は、イメージまたはイメージ・プロファイルに関連付け可能な一意の識別子を作成する。ワークステーション７４Ａ〜Ｎおよび８４上で（それぞれ）実行されているイメージ・レジストリ・エージェント７０Ａ〜Ｎおよび８２が、イメージ・プロファイルをレジストリ・サービス７６に提供し、イメージ・プロファイルは、比較エンジン８０によって、さらに後述するように使用される。
【００５４】
イメージ・レジストリ・エージェント７０Ａ〜Ｎおよび８２は、固有のサービスまたは仮想環境の一部として実装され得る。これは、ローカル仮想環境ならびに本システムを利用するマルチテナント環境の両方で実行されることになる。仮想イメージを作成するとき、仮想イメージを実行するとき、またはユーザもしくは管理者によって実行される特定のアクションとして、エージェントは、レジストリ・サービスと協働して、イメージの一意の識別子を生成し、イメージ特有の情報をレジストリにロードする。
【００５５】
仮想イメージが起動されると、ユーザの特定のアクションにより、またはユーザのローカル仮想環境のアクションとして、イメージ・レジストリ・エージェント７０Ａ〜Ｎおよび８２は、レジストリ・サービス７６にクエリを行って、マルチテナント（パブリック／プライベート・クラウド）環境でホストされ得る同じまたは類似のイメージを発見することができる。環境が発見されると、イメージを実行する最良の環境についてのフィードバックを提供するよう、比較エンジン８０がリクエストされ得る（さらに詳しく後述するように）。ユーザのマシンの仕様が収集され、比較サービスにアップロードされる（これは、プロセスのこの時点で行われること、または登録プロセスの一部としてそれより前に行われることが可能であろう）。このサービスは、ユーザのマシン仕様と、別のコンピューティング環境（単数または複数）により提供される仕様とを比較する。
【００５６】
具体的には、比較エンジン８０は、現在のコンピューティング環境９０においてワークステーション８４上で実行されている現在の／ローカル・イメージ８６に関して、リポジトリ７８から利用可能なプロファイルを分析すること；現在のイメージ８６の既存性能を測定すること；一組のイメージ７２Ａ〜Ｎから、現在のイメージに類似した少なくとも１つのイメージを特定すること；該少なくとも１つのイメージの個別のコンピューティング環境において実行されている、該少なくとも１つのイメージの潜在性能を測定すること；該少なくとも１つのイメージの潜在性能と、現在のイメージ８６の既存性能とを比較すること；現在のイメージ８６を実行するのに最適なコンピューティング環境を、比較に基づき判断すること；もしくは、ユーザもしくは管理者もしくはその両方に対する出力８８などを生成すること；またはそのいずれかの組み合わせを行う。判断する際、比較エンジン８０は、現在のイメージ８６を実行する環境の順位を提供することができる。
【００５７】
当然のことながら、コンピューティング環境９０におけるイメージ８６の既存性能と、ほかの環境におけるイメージ８６の潜在性能とを測定する際、一組の性能測定基準を利用することが可能であろう（例えば、測定基準には特に、処理速度、ストレージ容量などが含まれ得る）。さらに、当然のことながら、比較エンジン８０は、判断する際、性能に加えて、ほかの要因／データを利用することができる。これには、特に以下が含まれ得る。
・アクティビティ（例えば、特定のアクションの実行）へのエンド・ユーザの応答時間。これは、リアルタイムで測定されること、または過去のデータから収集されることが可能であろう。クライアント・プログラムが、こうした一般的なアクションを実行し、この情報を収集して比較エンジンに記録することができるであろう。
・クラウド・プロバイダと、ユーザがイメージを実行する可能性があり得る場所との間のレイテンシ。なお、ユーザは、遠方の都市の顧客敷地から実行することを計画していることもあり得、その場合、それをユーザがリクエストの中で提供することができると考えられ、当該の場所により近い場所のクラウド・プロバイダが、よりよいレイテンシを提供し得る。
・比較サービスへの入力に対するユーザ指定の重み。ユーザは、計算能力そのものよりも高い優先順位としてネットワーク遅延を定義してもよい。
・比較エンジンにより使用される実性能統計に関して、ユーザ（またはソーシャル・ネットワーク内のほかのユーザ）によって入力される、イメージ（およびそのイメージの一意の識別子）に特有のデータ。
・ローカルもしくはクラウドまたはその両方での、特定のイメージに関するまたは全般的な経験に基づきユーザが提供する評価データ。このデータは、パラメータとして比較エンジンによって利用され得る。ユーザが比較要素に優先順位を付ける上記の能力を使用して、ユーザは、この要素を高、中または低（または何らかの同様のタイプの尺度）として優先順位付けすることを選んでもよい。
【００５８】
前述のとおり、ユーザのローカル・マシン上で、ローカルで実行するのに対して、クラウドにおいてイメージをリモートで実行することにより、どのようなタイプの性能利点を見込むことができるかをユーザに知らせる、レポートまたはその他の出力８８が、比較エンジン８０によって生成可能である。比較された環境の順位を提供することができる。オンボード／プロビジョニング・プロセスについての追加情報も提供できるであろう。
【００５９】
出力８８の一部として、エンド・ユーザに、イメージをローカルまたはリモートで実行するオプションを提供することができる。リモート・オプションが選ばれると、仮想イメージの適切なクローンをプロビジョニングでき、クラウド・ベースのイメージにリモート接続するのに必要な情報をユーザに提供することができる。あるいは、選択された環境が、ユーザが有するイメージそのもののインポート・バージョンであれば、そのイメージをクラウド・プロバイダに移し、インスタンスをユーザにプロビジョニングすることができる。
【００６０】
前述のとおり、比較エンジン８０はさらに、システムおよびその方法の様々な段階で利用されるユーザ・プリファレンス（ｐｒｅｆｅｒｅｎｃｅ）を定義する、システムに関連するユーザ・プロファイル（ｕｓｅｒ  ｐｒｏｆｉｌｅ）を考慮に入れることができる。プロファイルは、比較パラメータの優先順位（例えば、性能よりもコストを、メモリの利用可能性よりもネットワーク遅延を優先させるなど）もしくは環境プロバイダのプリファレンス、またはその両方、ならびに使用可能なほかのデータなどのデータを含み得る。このシステムは、レジストリ・サービス７６、もしくは比較エンジン８０の一部であってもよく、またはそれらサービスにより利用される別個のシステムであってもよい。
【００６１】
以下、図５を参照する。最適なコンピューティング環境における現在のイメージ８６の実装が示されている。具体的には、図のように、イメージ・マネージャが、選ばれた環境において、現在のイメージ８６のクローンを作ること、移すこと、もしくは構築すること、またはそのいずれかの組み合わせを行うことができる（ローカルが一番最適な環境でなければ）。この例では、イメージ・マネージャ９４によって、イメージ８６が、そのグリッド・コンピューティング環境９０からクラウド・コンピューティング環境９２にコピーされる。コピーされると、現在のイメージは、グリッド・コンピューティング環境において休止状態のままとされるか、またはイメージ・マネージャ９４により完全に削除されることが可能である。
【００６２】
当然のことながら、図４〜５に示されているコンポーネント（例えばレジストリ・サービス７６、比較エンジン８０およびイメージ・マネージャ９４）は、図１に示されている環境最適化プログラム４０の１つ以上のプログラム・モジュール４２として実装可能である。この点、上記のシステムおよび方法の可能な実装は複数ある。例えば、レジストリ・サービス７６および比較エンジン８０は、分散環境内の別々のエンティティとすること、または単一のプロセスとして構築することが可能であろう。その他のアーキテクチャも使用され得る。システムは、標準のウェブ・サービス・インターフェースおよびプログラミング技術を使用して実装することができるであろう。したがって、本願明細書に記載された教示は、特定の実装または展開アーキテクチャに限定されることを意図してはいない。
【００６３】
ただし、以下の説明のための例は、図４〜５に関連して記載された教示に基づく。
【００６４】
この例では、ユーザ「Ａ」が、そのシングル・コア、４ＧＢ  ＲＡＭのラップトップ・コンピュータ上で、オペレーティング・システム「Ｘ」を実行していると仮定する。さらに、ユーザ「Ａ」は、ＶＭプレイヤー「Ｚ」を使用してＶＭ「Ｙ」を実行していると仮定する。この例では、ＶＭ「Ｙ」は、ラップトップのＲＡＭが枯渇しそうになっているため、やや実行が遅く、実行されているリソースに対応するためにＶＭマッピング・スワップ・ファイルが増大している。システムは、ラップトップ上でのＶＭ「Ｙ」の実性能の低下を測定しており、約７０％速く実行するが０．２５ドル／時かかることになる類似したＶＭが、パブリック・クラウド「１」上で利用可能であることを発見した。これら（および場合によりその他）の詳細を示すダイアログ・ボックスがラップトップで示され、ＶＭ「Ｙ」をパブリック・クラウド「１」に移動させる提案を承認または拒否するオプションをユーザ「Ａ」に与える。
【００６５】
以下、図６を参照する。本発明の実施形態による、方法フロー図が示されている。ステップＳ１において、一組のイメージが、（例えば、イメージ登録エージェントを使用して）レジストリ・サービスに登録される（例えば、対応するデータをリポジトリに記憶することによって）。前述のとおり、一組のイメージはそれぞれ、個別のコンピューティング環境内で実行されている。ステップＳ２において、現在のコンピューティング環境において実行されている現在のイメージの既存性能が測定される（例えば、性能測定基準を使用して）。ステップＳ３において、一組のイメージから、現在のイメージに類似した少なくとも１つのイメージが特定される。ステップＳ４において、該少なくとも１つのイメージの個別のコンピューティング環境において実行されている、該少なくとも１つのイメージの潜在性能が測定される。ステップＳ５において、該少なくとも１つのイメージの潜在性能と、現在のイメージの既存性能とが比較される。ステップＳ６において、現在のイメージを実行するのに最適なコンピューティング環境（例えば、クラウド・コンピューティング環境）が、比較（および任意選択で、特にユーザ・プリファレンスを規定するとよい任意の適切なユーザ・プロファイル）に基づき判断される。
【００６６】
本発明は、イメージ環境最適化ソリューションとして本願明細書に示され記載されたが、当然のことながら、ほかの様々な実施形態をさらに提供する。例えば、一実施形態では、本発明は、本願明細書において説明されたイメージ環境最適化機能性をコンピュータ・インフラストラクチャが提供できるようにするコンピュータ・プログラム・コードを含む、コンピュータ可読／使用可能媒体を提供する。この点で、コンピュータ可読／使用可能媒体は、本発明の様々なプロセスのそれぞれを実装するプログラム・コードを含む。当然のことながら、コンピュータ可読媒体またはコンピュータ使用可能媒体という用語は、プログラム・コードの任意のタイプの物理的実施形態の１つ以上を含む。具体的には、コンピュータ可読／使用可能媒体は、１つ以上のポータブル・ストレージ製品（例えば、コンパクト・ディスク、磁気ディスク、テープなど）、メモリ２８（図１）もしくはストレージ・システム３４（図１）またはその両方など、コンピューティング・デバイスの１つ以上のデータ・ストレージ部（例えば、固定ディスク、読み取り専用メモリ、ランダム・アクセス・メモリ、キャッシュ・メモリなど）において具現化されたプログラム・コードを含むことができる。
【００６７】
別の実施形態では、本発明は、契約、宣伝もしくは手数料、またはそのいずれかの組み合わせに基づき本発明のプロセスを実行する方法を提供する。すなわち、ソリューション・インテグレータなどのサービス・プロバイダが、イメージ環境最適化機能性を提供することを提案することができるであろう。この場合、サービス・プロバイダは、１以上の消費者に対して本発明のプロセスを実行するコンピュータ・システム１２（図１）などのコンピュータ・インフラストラクチャの作成、維持、サポートなどを行うことができる。見返りとして、サービス・プロバイダは、契約または手数料の取り決めもしくはその両方に従って消費者（単数または複数）から支払いを受領すること、もしくは１以上のサード・パーティに対する宣伝コンテンツの販売からの支払いを受領すること、またはその両方を行うことができる。
【００６８】
さらに別の実施形態では、本発明は、イメージ環境最適化のための、コンピュータで実装される方法を提供する。この場合、コンピュータ・システム１２（図１）などのコンピュータ・インフラストラクチャが提供されて、本発明のプロセスを実行するための１つ以上のシステムが取得（例えば作成、購入、使用、変更など）され、コンピュータ・インフラストラクチャに展開されることが可能である。この点で、システムの展開は、（１）コンピュータ・システム１２（図１）などのコンピューティング・デバイス上に、コンピュータ可読媒体からプログラム・コードをインストールすること、（２）１つ以上のコンピューティング・デバイスをコンピュータ・インフラストラクチャに追加すること、および（３）コンピュータ・インフラストラクチャの１つ以上の既存システムの組み込みもしくは変更またはその両方を行い、コンピュータ・インフラストラクチャが本発明のプロセスを実行できるようにすることのうちの１つ以上を含むことができる。
【００６９】
当然のことながら、本願明細書で使用される「プログラム・コード」および「コンピュータ・プログラム・コード」という用語は、同義語であり、情報処理能力を有するコンピューティング・デバイスに直接、または（ａ）別の言語、コードもしくは表記法への変換および（ｂ）異なる有形形態での複製のうちのいずれかもしくは両方の後に、特定の機能を実行させることを目的とした一組の命令の、任意の言語、コードまたは表記法での任意の表現を意味する。この点で、プログラム・コードは、アプリケーション／ソフトウェア・プログラム、コンポーネント・ソフトウェア／関数のライブラリ、オペレーティング・システム、特定のコンピューティング・デバイスの基本デバイス・システム／ドライバ、および同様のもののうちの１つ以上として具現化することができる。
【００７０】
プログラム・コードの記憶もしくは実行またはその両方に適したデータ処理システムは、この記載に従って提供することができ、システム・バスを介して通信可能にメモリ要素に直接または間接的に結合された少なくとも１つのプロセッサを含むことができる。メモリ要素は、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、大容量ストレージ、および実行中にコードが大容量ストレージから読み出されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的なストレージとなるキャッシュ・メモリを含むことができるが、これらに限定はされない。入出力もしくはその他の外部デバイスまたはその両方（限定はされないがキーボード、ディスプレイ、ポインティング・デバイスなどを含む）を、直接、または介在するデバイス・コントローラを介して、システムに結合することができる。
【００７１】
ネットワーク・アダプタもシステムに結合されて、データ処理システムが、ほかのデータ処理システム、リモート・プリンタ、ストレージ・デバイスもしくは同様のもの、またはそのいずれかの組み合わせに、介在するプライベートまたはパブリック・ネットワークの任意の組み合わせを介して結合された状態となることを可能にしてもよい。例示のネットワーク・アダプタには、モデム、ケーブル・モデムおよびＥｔｈｅｒｎｅｔ（Ｒ）カードがあるが、これらに限定はされない。
【００７２】
本発明の様々な側面の前述の説明は、例証および説明のために提示された。包括的であることも、または本発明を開示されたとおりの形に限定することも意図されてはおらず、当然、多数の変更および変形が可能である。当業者には明らかであると考えられるそのような変更および変形は、添付の特許請求の範囲によって定義される本発明の範囲内に含まれるものとする。
【図１】
0005946468.tif 000002
【図２】
0005946468.tif 000003
【図３】
0005946468.tif 000004
【図４】
0005946468.tif 000005
【図５】
0005946468.tif 000006
【図６】
0005946468.tif 000007