【手続補正書】
【提出日】平成24年9月26日(2012.9.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のプログラムの実行をプログラム実行サービスにより管理するコンピュータ実行方法であって、前記プログラム実行サービスは複数のコンピュータシステムを使用して複数のプログラムを実行し、当該複数のコンピュータシステムは、複数のグループの複数のコンピュータシステムを含み、各前記グループの複数のコンピュータシステムは物理的に近く、共通のグループデータ交換媒体を共有し、前記グループデータ交換媒体は前記グループに対して特定的であり、前記複数のグループのコンピュータシステムは、前記グループデータ交換媒体とは別個の１つまたは複数の他のデータ交換媒体を介して接続されている、コンピュータ実行方法において、
それぞれが、複数のプログラムの中の指示の１つのプログラムの実行の要求である複数の要求を受け取るステップであって、当該複数のプログラムは前以て前記プログラム実行サービスに支給されており、複数のプログラムの少なくともいくつかは、それぞれ、１つまたは複数のコピーを有し、当該１つまたは複数のコピーはローカルに１つまたは複数の前記コンピュータシステムに格納されている、受け取るステップと、
指示のプログラムの実行のために受け取った要求のそれぞれについて、前記指示のプログラムのインスタンスの実行において使用するための、複数のコンピュータシステムの少なくとも１つのコンピュータシステムを自動的に選択することにより、前記要求を自動的に満足させるステップであって、当該少なくとも１つのコンピュータシステムの選択は、少なくとも部分的に、１つまたは複数の他のシステムを持つ複数のグループ内にあるか否かに基づいており、当該１つまたは複数の他のシステムは前記指示のプログラムのローカルのコピーを格納している、満足させるステップと、
選択の複数のコンピュータシステムのそれぞれについて、当該選択のコンピュータシステムが、前記指示のプログラムのローカルのコピーを格納している１つまたは複数の他のシステムを持つ複数のグループ内にある場合には、前記選択のコンピュータシステムに対して前記指示のプログラムのコピーを、前記１つまたは複数の他のシステムから、前記グループのための共有の前記共通のグループデータ交換媒体を介して、獲得するように指示し、および当該獲得したプログラムのコピーの実行を開始するように指示するステップと、
前記選択のコンピュータシステムが、前記指示のプログラムのローカルのコピーを格納している１つまたは複数の他のシステムを持つ複数のグループ内にない場合には、前記選択のコンピュータシステムに対して前記指示のプログラムのコピーを、１つまたは複数のリモートのシステムから、１つまたは複数の別個のデータ交換媒体の１つを介して獲得するように指示し、および当該獲得したプログラムのコピーの実行を開始するように指示する、ステップであって、自動的な前記選択および当該指示は１つまたは複数のコンピュータシステムにより実行される、ステップと
を備えることを特徴とするコンピュータ実行方法。
【請求項２】
前記受け取った複数の要求の各々を自動的に満足させるステップは１つまたは複数の管理コンピュータシステムにより実行され、当該１つまたは複数の管理コンピュータシステムは前記プログラム実行サービスを管理し、１つのグループ内の少なくとも１つの他のシステムから１つの指示のプログラムを獲得するように指示することは、前記指示のプログラムのローカルのコピーを格納する、前記グループ内の他の複数のコンピュータシステムの選択のコンピュータシステムに対して指示を与えることを含み、さらに、
複数のコンピュータシステムの各々の制御の下に、指示のプログラムのコピーを、１つまたは複数の他の指示のシステムから獲得するために１つの管理コンピュータシステムから複数の命令を受け取る、ステップと、
前記指示のプログラムのコピーを獲得するステップと、
当該獲得したプログラムのコピーを実行するステップと
を備えることを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項３】
複数のコンピュータシステムの各グループは別個のネットワークスイッチに接続されており、該ネットワークスイッチは、前記グループのために、前記共通のグループデータ交換媒体を提供し、前記１つまたは複数の別個のデータ交換媒体は複数のネットワークスイッチの間の接続を含み、当該複数のネットワークスイッチは、１つのグループの複数のコンピュータシステムの間の高スピードデータ伝送よりも低いデータ伝送スピードを持ち、指示のプログラムのための少なくとも１つのコンピュータシステムを選択することは、複数のグループ内の複数のコンピュータシステムに対して優先権を与える方法により実行され、当該複数のグループは１つまたは複数の他のシステムを持ち、当該１つまたは複数の他のシステムは指示のプログラムについての複数のローカルのコピーを格納していることを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項４】
前記複数のコンピュータシステムの少なくともいくつかの各々は複数のプログラムのコピーを格納することが可能なローカルのストレージに関連付けられており、１つのコンピュータシステムを選択することは、少なくともいくつかのコンピュータシステムのいずれもが、そのコンピュータシステムを持つグループ内にあるか否か、および指示のプログラムのローカルのコピーを現在格納しているか否かを判定することを含み、さらに、
１つまたは複数の選択のコンピュータシステムの各々が、実行すべき指示のプログラムのコピーを獲得した後に、当該獲得したコピーを前記選択のコンピュータシステム内のストレージに格納するステップ
を含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項５】
前記複数のコンピュータシステムのいくつかのグループは、それぞれ、前記グループの他のコンピュータによる使用のために複数のプログラムのコピーを可能なローカルのストレージを有する１つまたは複数のデータストレージシステムを含み、１つのコンピュータシステムの選択は、当該１つまたは複数のデータストレージシステムのいずれかがそのコンピュータシステムを持つグループ内にあるか否かおよび指示のプログラムのローカルのコピーを格納しているか否かを判定することを含み、
さらに、１つまたは複数の選択のコンピュータシステムの各々が、実行すべき指示のプログラムを獲得した後に、当該獲得したコピーを、前記コンピュータシステムを持つグループ内の１つのデータストレージシステムのローカルのストレージに格納するステップをさらに含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項６】
前記複数の要求を受け取るステップの前に、複数のプログラムのうちの１つのプログラムの１つのコピーを受け取るステップと、
前記１つのプログラムを実行するための要求を満足させるステップにおいて後で使用するために、複数のグループ内のコンピュータシステム上に前記１つのプログラムの複数のコピーを格納するステップと
をさらに含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項７】
前記複数のコンピュータシステムは、前記プログラム実行サービスの顧客のプログラムを実行するための、分散ネットワークの複数のコンピュータシステムの一部分であり、前記プログラムサービスに対して前以て提供される当該プログラムは前記顧客により提供されるプログラムであり、前記複数のコンピュータシステムのいくつかは、それぞれ、複数の仮想マシンのノードをホストし、当該複数の仮想マシンのノードのそれぞれは前記複数のプログラムの少なくとも１つを実行することが可能であることを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項８】
指示の複数のプログラムを実行するための複数の要求の少なくともいくつかは、ぞれぞれ、実行するための、指示のプログラムの複数のインスタンスの中の少なくとも１つのインスタンス、当該指示のプログラムの複数のインスタンスの実行を開始する時間、前記指示のプログラムの複数のインスタンスの実行に使用する１つまたは複数のハードウェアリソースおよび指示のプログラムの複数のインスタンスに関連する地理的情報についての指示を含み、前記少なくともいくつかの要求のそれぞれを自動的に満足させるステップは、前記要求のための少なくとも１つの指示を適用することで実行されることを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項９】
前記指示の複数のプログラムの少なくともいくつかは、それぞれ、実行のための、関連のハードウェアリソース基準を有し、指示の少なくともいくつかのプログラムの各々の実行において使用の、少なくとも１つのコンピュータシステムを自動的に選択するステップが、さらに、実行され、その結果、当該選択された複数のコンピュータシステムのそれぞれが、当該指示のプログラムについての前記関連のハードウェアリソース基準を満足する複数のハードウェアリソースを提供することを特徴とする請求項８に記載のコンピュータ実行方法。
【請求項１０】
前記関連のハードウェアリソース基準は、メモリの指示容量、プロセッサの使用についての指示容量、ネットワークのバンド帯域幅について指示容量、ディスクスペースの指示容量およびスワップスペースの指示容量の少なくとも１つを含むことを特徴とする請求項９に記載のコンピュータ実行方法。
【請求項１１】
指示の少なくともいくつかのプログラムの各々の実行において使用の、少なくとも１つのコンピュータシステムを自動的に選択するステップは、さらに、選択のコンピュータシステムを持つグループ内の１つまたは複数の他のマシンが、指示のプログラムのコピーを現在実行しているか否かに、部分的に基づくことを特徴とする請求項９に記載のコンピュータ実行方法。
【請求項１２】
複数のプログラムの実行をプログラム実行サービスにより管理するコンピュータ実行方法であって、予め定められたグループの複数のコンピュータシステムの少なくとも１つのオンピュータシステム上で実行すべきプログラムの指示を受け取るステップであって、前記複数のコンピュータシステムは、プログラム実行サービスのための複数のプログラムを実行し、および共通データ交換媒体を共有する、受け取るステップと、
前記予め定められたグループの１つまたは複数のコンピュータシステムが指示のプログラムのコピーを格納しているか否かを判定するステップと、
もし予め定められたグループの１つまたは複数のコンピュータシステムが前記指示のプログラムのコピーを格納していると判定された場合には、前記ローカルのコピーを少なくとも１つまたは複数のコンピュータシステムから前記共通データ交換媒体を介して獲得し、
もし予め定められたグループの１つまたは複数のコンピュータシステムが前記指示のプログラムのコピーを格納していると判定されない場合には、前記予め定められたグループの外の１つまたは複数のコンピュータシステムから前記共通データ交換媒体とは別個の１つまたは複数のデータ交換媒体を介して前記ローカルのコピーを獲得する
ことによって前記指示のプログラムのローカルのコピーを実行のために獲得するステップであって１つまたは複数のプログラムされた１つまたは複数のコンピュータシステムにより実行される、獲得するステップと
を備えることを特徴とする方法。
【請求項１３】
前記予め定められたグループの複数のコンピュータシステムの１つのコンピュータシステム上で、前記指示のプログラムの獲得のローカルのコピーの実行を開始するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記方法は前記１つのコンピュータシステムで実行されることを特徴とする請求項１３に方法。
【請求項１５】
前記方法は前記予め定められたグループのためのマネージャーモジュールにより実行されることを特徴とする請求項１３に記載の方法。
【請求項１６】
前記予め定められたグループの複数のコンピュータシステム上で前記指示のプログラムの獲得のローカルのコピーの複数のインスタンスの実行を開始するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１７】
予め定められたグループの１つまたは複数のコンピュータシステムに関するステータス情報を、前記プログラム実行サービスを管理に使用するリモートシステムマネージャーに送るステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１８】
前記１つまたは複数のコンピュータシステム上に格納されている１つまたは複数のプログラムのコピーについての指示、前記指示のプログラムの実行が開始されたとの指示、前記１つまたは複数のコンピュータシステム上で、現在、実行している１つまたは複数のプログラムについての指示および前記１つまたは複数のコンピュータシステム上で実行されている１つまたは複数のプログラムを利用しているリソースについての指示の少なくとも１つを前記ステータス情報は含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記予め定められたグループの複数のコンピュータシステムは全て単一の物理的な場所に位置し、当該物理的な場所は単一のハードウェアラック、単一のデータセンター、単一のローカルエリアネットワークにより提供される１つのエリアおよび単一のネットワークスウィッチにより提供される１つのエリアの１つであることを特徴とする請求項１２に記載の方法。
【請求項２０】
前記プログラム実行サービスは、さらに、他の複数のグループを使用して複数のプログラムを実行し、前記他の複数のグループは、他の物理的な場所にある他の複数のコンピュータシステムを有することを特徴とする請求項１９に記載の方法。
【請求項２１】
前記予め定められたグループの外の、ローカルのコピーが取得される１つまたは複数のコンピュータシステムは、１つまたは複数の他のグループ内にあることを特徴とする請求項２０に記載の方法。
【請求項２２】
前記予め定められたグループの外の、ローカルのコピーが取得される１つまたは複数のコンピュータシステムは、リモートストレージシステムの一部であり、該リモートストレージシステムは、複数のプログラムを実行するための前記プログラム実行サービスにより使用される複数のグループとは別個であることを特徴とする請求項２０に記載の方法。
【請求項２３】
前記共通データ交換媒体は前記単一の物理的な場所内の複数のコンピュータシステムの間での物理的なデータ接続であることを特徴とする請求項１９に記載の方法。
【請求項２４】
前記共通データ根幹媒体は前記１つまたは複数の別個のデータ交換媒体よりも高いデータ交換帯域幅を提供することを特徴とする請求項１２に記載の方法。
【請求項２５】
前記予め定められたグループの複数のコンピュータシステムは互いが物理的に近いことを特徴とする請求項１２に記載の方法。
【請求項２６】
前記予め定められたグループの複数のコンピュータシステムは互いが論理的に近いことを特徴とする請求項１２に記載の方法。
【請求項２７】
実行すべきプログラムについての受け取った前記指示は、それぞれ、前記指示のプログラムのコピーを格納する、前記予め定められたグループの１つまたは複数のコンピュータについての指示を含み、前記予め定められたグループの１つまたは複数のコンピュータシステムが前記指示のプログラムのコピーを格納しているか否かを判定することは、当該受信の１つまたは複数のコンピュータシステムについての指示に、部分的に基づくことを特徴とする請求項１２に記載の方法。
【請求項２８】
前記予め定められたグループの１つまたは複数のコンピュータシステムが前記指示のプログラムのコピーを格納しているか否かを判定することは、要求を、前記予め定められたグループの１つまたは複数のコンピュータシステムに、前記指示のプログラムの複数の格納コピーに関連する情報として送ることを特徴とする請求項１２に記載の方法。
【請求項２９】
前記指示のプログラムのローカルのコピーを獲得することは当該獲得のローカルのコピーを、前記予め定められたグループの複数のコンピュータシステムの１つのコンピュータシステムのローカルのプログラムレジストリに格納することを含むことを特徴とする請求項１２に記載の方法。
【請求項３０】
前記ローカルのプログラムレジストリに前記指示のプログラムの獲得したローカルのコピーを格納することは、当該獲得したローカルのコピーのための格納スペースを与えるために別のプログラムの少なくとも１つの格納コピーを取り除くことを含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
複数の前記別のプログラムの取り除く複数のコピーは、当該コピーが、最近、どのように前記別のプログラムの実行のために使用されたかに基づいて、取り除きのために選択されることを特徴とする請求項３０に記載の方法。
【請求項３２】
前記指示のプログラムのローカルのコピーを獲得することは複数のコンピュータシステムの各々から前記ローカルのコピーの一部分を獲得することを含み、当該複数のコンピュータシステムの各々は前記指示のプログラムの格納コピーへのアクセスを有することを特徴とする請求項１２に記載の方法。
【請求項３３】
前記複数のコンピュータシステムの各々から前記ローカルのコピーの一部分を獲得することは、前記複数のコンピュータシステムの各々からの前記ローカルのコピーの一部分を要求することおよび前記複数のコンピュータシステムのサブセットからのローカルのコピーの追加の部分を、以前の１つまたは複数の要求に対して受け取った応答に基づいて要求する含むことを特徴とする請求項３２に記載の方法。
【請求項３４】
前記予めさめられたグループの複数のコンピュータシステムの少なくとも１つのコンピュータ上で実行すべきプログラムの指示を受け取ることは、前記プログラム実行サービスにより使用される複数のコンピュータシステムの複数のグループから前記予め定められたグループを選択することを含み、当該選択は当該の選択のグループの現在のコンディションに基づいていることを特徴とする請求項１２に記載の方法。
【請求項３５】
前記選択の現在のコンディションは、選択のグループの１つまたは複数のコンピュータシステムが前記指示のプログラムを実行可能か否か、当該選択のグループの１つまたは複数のコンピュータシステムが現在、前記指示のプログラムのコピーを実行しているか否か、および当該選択のグループの１つまたは複数のコンピュータシステムが前記指示のプログラムンの格納コピーを有しているか否かの少なくとも１つをコンディジョンを含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記予め定められたグループの複数のコンピュータシステムが前記指示のプログラムのコピーを必要としていることを判定するステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項３７】
前記複数のコンピュータシステムの全てに代わって前記共通データ交換媒体とは別個のデータ交換媒体を介して前記指示のプログラムの単一のコピーを獲得するステップ、および前記共通データ交換媒体を介して前記複数のコンピュータシステムの各々に、当該獲得した単一のコピーの複数のローカルのコピーを分配するステップをさらに備えることを特徴とする請求項３６に記載の方法。
【請求項３８】
前記指示のローカルのコピーを獲得した後に、
前記指示のローカルのコピーの１つのインスタンスを実行するステップと、
前記ローカルのコピーの格納の後に、前記指示のプログラムの新しいバージョンの実行の指示を受け取るステップと、
前記指示のプログラムの新しいバージョンの新しいローカルのコピーを自動的に獲得するステップと、
当該指示のブログラムの新しいバージョンの新しいローカルのコピーを、前記格納のローカルのコピーン代わり後で使用するために、格納するステップと
をさらに有することを特徴とする請求項１２に記載の方法。
【請求項３９】
前記予め定められたグループの複数のコンピュータシステムの少なくともいくつかのコンピュータシステムは、それぞれ、複数の仮想マシンをホストし、当該複数の仮想マシンは、それぞれ、少なくとも１つのプログラムを実行可能であり、前記指示のプログラムは、前記複数の仮想マシンの少なくとも１つの仮想マシンにより実行されるべき仮想マシンイメージであることを特徴とする請求項１２に記載の方法。
【請求項４０】
その複数のコンテンツが複数の命令を含む一過性コンピュータ読み取り可能媒体であって、前記複数の命令は、実行されたときに、１つのコンピュータシステムに、複数のプログラムの実行を、１つの方法を実行することにより管理させるように構成されており、前記方法は、
指示のプログラムの少なくとも１つのインスタンスを実行すると判定するステップと、
前記指示のプログラムの１つまたは複数のインスタンスの実行において使用する１つまたは複数のコンピュータマシンを自動的に選択するステップであって、当該選択された複数のコンピュータマシンは、それぞれ、複数のグループの１つのグループに属する複数のコンピュータマシンの１つであり、前記１つまたは複数のコンピュータマシンを選択することは、当該選択の複数のコンピュータマシンの各々が１つのグループのメンバーであるか否かに少なくとも部分的に基づいており、前記１つのグループは、前記指示のプログラムの格納コピーを有する少なくとも１つのマシンを含み、該マシンから前記格納コピーを獲得することが可能であり、および前記１つのグループは少なくとも１つのコンピュータマシンを含み、該コンピュータマシンは指示のプログラムを実行可能である、選択するステップと、
前記選択の複数のコンピュータマシンの少なくとも１つのコンピュータマシン上で前記指示のプログラムの実行の開始の指示を与えるステップと、
前記選択の複数のコンピュータマシンの少なくとも１つのコンピュータマシンが前記指示のプログラムのローカルのコピーを、
もし前記選択の複数のコンピュータマシンの少なくとも１つのコンピュータマシンが、前記指示のプログラムのコピーを格納している少なくとも１つのコンピュータマシンを持つグループ内にあると判定された場合には、前記ローカルのコピーを、前記指示のプログラムのコピーを格納している少なくとも１つのコンピュータマシンから獲得し、
もし前記選択の複数のコンピュータマシンの少なくとも１つのコンピュータマシンが、前記指示のプログラムのコピーを格納している少なくとも１つのコンピュータマシンを持つグループ内にあると判定されない場合には、前記グループの外の１つまたは複数のコンピュータマシンから前記ローカルのコピーを獲得する
ことにより獲得するステップと
を含むことを特徴とする一過性コンピュータ読み取り可能媒体。
【請求項４１】
前記１つまたは複数のコンピュータマシンを選択することは、前記複数のグループの１つのグループを選択することを含み、該１つのグループは複数のコンータマシンを含み、前記選択の１つまたは複数のコンピュータマシンは、それぞれ、選択の前記グループの複数のコンピュータマシンの１つであることを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項４２】
前記１つのグループを選択することは少なくとも部分的に、選択のグループが少なくとも１つのマシンを含むことに基づいており、該少なくとも１つのマシンは前記指示のプログラムの格納コピーを有しており、および前記選択のグループは前記指示のプログラムを実行可能な少なくとも１つのコンピュータマシンを含むことを特徴とする請求項４１に記載の一過性コンピュータ読み取り可能媒体。
【請求項４３】
１つまたは複数のコンピュータマシンを、それぞれ、選択することは前記指示のプログラムのコピーを実行可能な特定のグループの特定のコンピュータマシンを選択することを含むことを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項４４】
複数の前記特定のコンピュータマシンの各々を選択することは、部分的には、前記選択のコンピュータマシンが、前記指示のプログラムのローカルコピーを以前に格納していることに基づくことを特徴とする請求項４３に記載の一過性コンピュータ読み取り可能媒体。
【請求項４５】
前記指示のプログラムは実行時のメモリの指示容量を使用し、前記複数のコンピュータマシンの少なくともいくつかは、それぞれ、複数のプログラムを同時に実行するように構成されており、当該複数のプログラムは実行時にメモリ容量を変化させ、少なくとも１つのコンピュータマシンが前記指示のプログラムを実行可能なことに基づいて前記１つまたは複数のコンピュータマシンを選択することは、１つのプログラムを実行可能なメモリ容量を現在有するコンピュータマシンを選択することを含み、該１つのプログラムはメモリの指示容量にマッチするかあるいは超えないことを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項４６】
前記指示のプログラムは実行のための１つまたは複数の関連のリソース基準を有しており、前記指示のプログラムを実行可能なコンピュータマシンは、前記１つまたは複数の関連のリソース基準の各々を十分に満足する利用可能な複数のリソースを、有していることを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項４７】
前記１つまたは複数の関連のリソース基準はメモリ容量、プロセッサの使用量、ネットワークバンド幅の量、ディスクスペースの容量およびスワップスペースの容量の少なくとも１つを含むことを特徴とする請求項４６に記載の一過性コンピュータ読み取り可能媒体。
【請求項４８】
前記１つまたは複数のコンピュータマシンを自動的に選択することは、さらに、部分的に、前記１つまたは複数の選択のコンピュータマシンが１つまたは複数のグループのメンバーであることに基づいており、該１つまたは複数のグループは、それぞれ、前記指示のプログラムのコピーを、現在、実行している少なくとも１つのコンピュータマシンを含むことを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項４９】
前記プログラムの実行開始の指示は、前記少なくとも１つのコンピュータマシンの各々に与えられることを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項５０】
選択の１つのコンピュータマシンに与えられる前記指示のプログラムの実行開始の指示は、前記選択のコンピュータマシンのグループ内にある１つまたは複数のコンピュータマシンについての指示を含み、当該選択のコンピュータマシンが前記指示のプログラムの格納コピーを有することを特徴とする請求項４９に記載の一過性コンピュータ読み取り可能媒体。
【請求項５１】
プログラム実行サービスに代わって前記コンピュータシステムが稼動し、前記指示のプログラムは前記プログラム実行サービスの複数の顧客により前記プログラム実行サービスに関連付けられる複数のプログラムの１つであり、前記複数のコンピュータマシンは前記プログラム実行サービスにより使用されて前記複数の顧客に代わって前記複数のプログラムを実行することを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項５２】
前記複数のグループの各々は予め定められたグループであり、当該予め定められたグループはハードウェアラック上に位置するか、単一のローカルエリアネットワークエリアネットワーク上に位置するか単一のシングルネットワークスイッチに接続されるか、および／または単一のデータセンターに位置することを特徴とする請求項５１に記載の一過性コンピュータ読み取り可能媒体。
【請求項５３】
前記複数のグループの各々は別個のデータ交換媒体を含み、該別個のデータ交換媒体は、前記グループに属する複数のコンピュータマシンによって共有されるが、他のグループに属するコンピュータマシンによっては共有されないことを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項５４】
前記複数のコンピュータマシンの少なくともいくつかは、それぞれ、１つまたは複数のプログラムの複数のコピーを格納するために関連付けられるローカルの複数のプログラムリポジトリを有し、当該関連付けられるローカルの１つまたは複数のプログラムリポジトリから取り除くべき、１つのプログラムの少なくとも１つの格納コピーであって、および前記指示のプログラムのコピーと入れ替えるべき格納コピーを選択するステップをさらに有することを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項５５】
取り除きのために選択される少なくとも１つの格納コピーは、最近、複数のプログラムの他の格納コピーよりも使用されていないことを特徴とする請求項５４に記載の一過性コンピュータ読み取り可能媒体。
【請求項５６】
後の実行のために別のプログラムの指示を受けたことに応答して、後の実行のために前記別のプログラムのローカルのコピーを格納することの指示を１つまたは複数のコンピュータマシンに送るステップをさらに有することを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項５７】
前記複数のコンピュータマシンの少なくともいくつかに関するステータス情報を繰り返し受け取るステップをさらに有し、前記１つまたは複数のコンピュータマシンを自動的に選択することは、当該受け取ったステータス情報に少なくとも部分的に基づくことを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項５８】
前記ステータス情報は、複数のプログラムの格納されている複数のコピーについての指示、実行されている複数のプログラムの複数のインスタンスについての指示および実行されているプログラムのリソースの利用についての指示の少なくとも１つの指示を含むことを特徴とする請求項５７に記載の一過性コンピュータ読み取り可能媒体。
【請求項５９】
複数の第１のコンピュータマシンから複数の第２のコンピュータマシンに、現在、実行している少なくとも１つのプログラムを移動させることを決定するステップおよび前記第２のコンユータへ、実行中の少なくとも１つのプログラムへの移動を開始するステップとをさらに有することを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項６０】
前記複数のコンピュータマシンの少なくともいくつかは、それぞれ、複数のプログラムを同時に実行するように構成されていることを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項６１】
前記複数のコンピュータマシンの少なくともいくつかは、それぞれ、複数の仮想マシンをホストし、当該複数の仮想マシンは、それぞれ、少なくとも１つのプログラムを実行可能であり、前記指示のプログラムは前記少なくとも１つの仮想マシンにより実行されるべき仮想マシンイメージであることを特徴とする請求項６０に記載の一過性コンピュータ読み取り可能媒体。
【請求項６２】
前記指示のプログラムの少なくとも１つのインスタンスを実行することの判定は、ユーザから受け取る要求に基づいており、前記ユーザは実行したい複数のインスタンスの数を指示することを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項６３】
前記受け取る要求は、前記指示のプログラムの少なくとも１つのインスタンスの実行において使用する１つまたは複数のコンピュータマシンに関連する１つまたは複数の指示をさらに含み、前記１つまたは複数のコンピュータマシンを自動的に選択することは前記１つまたは複数の受け取る指示に基づくことを特徴とする請求項６２に記載の一過性コンピュータ読み取り可能媒体。
【請求項６４】
複数のユーザから複数の要求を受け取って複数のプログラムの複数のインスタンスを実行するステップと、前記複数の各々の要求で使用する１つまたは複数のコンピュータマシンを自動的に選択するステップとをさらに有することを特徴とする請求項６２に記載の一過性コンピュータ読み取り可能媒体。
【請求項６５】
関連のリソース基準の少なくともいくつかを前記プログラムの各インスタンスの実行の間使用するために、前記複数のプログラムは、それぞれ、前記関連のリソース基準を有し、前記複数の要求で使用する複数のコンピュータマシンを自動的に選択することは１つまたは複数のコンピュータマシン上で実行されるべき複数のプログラムインスタンスを関連付けることを含み、その結果、前記複数のプログラムインスタンスの関連付けられたリソース基準は前記１つまたは複数のコンピュータマシンの利用可能な複数のリソースを超えないことを特徴とする請求項６４に記載の一過性コンピュータ読み取り可能媒体。
【請求項６６】
前記指示のプログラムの複数のインスタンスは複数のコンピュータマシン上で同時に実行され、前記１つまたは複数のコンピュータマシンを自動的に選択することは、前記複数のインスタンスによる複数のリソースの使用をバランスさせるために、複数のグループから複数のコンピュータマシンを選択して、前記複数のインスタンスを実行することを含むことを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項６７】
前記コンピュータ読み取り可能媒体は前記コンピューティングシステムの１つのメモリであることを特徴とする請求項４０に記載の一過性コンピュータ読み取り可能媒体。
【請求項６８】
１つのメモリと、
１つのシステムマネージャーモジュールとを有し、
該システムマネージャーモジュールは、
指示のプログラム少なくとも１つのインスタンスを実行するとの判定に応答して、指示のプログラムの１つまたは複数のインスタンスを実行するための１つまたは複数のコンピュータマシンを自動的に選択し、
当該選択のコンピュータマシンは複数の１つまたは複数のグループから選択されたものであり、
１つのコンピュータマシンを選択することは前記選択のコンピュータマシンが１つのグループのメンバーであるか否かに少なくとも部分的に基づいており、
当該１つのグループは１つまたは複数のマシンを含み、
当該１つまたは複数のマシンは前記指示のプログラムの格納コピーを有し、
前記選択のコンピュータマシンは前記１つまたは複数のマシンから前記指示のコピーを獲得することが可能であり、
前記選択のコンピュータマシンは前記選択の時点では前記指示のプログラムの格納コピーを有しておらず、
複数の前記選択のコンピュータマシンの各々について、
もし選択のコンピュータマシンが、前記指示のプログラムのローカルのコピーを格納している１つまたは複数の他のマシンを持つグループ内にある場合には、前記選択のコンピュータマシンに、前記指示のプログラムのコピーを、前記グループの１つまたは複数の他のマシンから獲得するように指示し、
もし前記もし選択のコンピュータマシンが、前記指示のプログラムのローカルのコピーを格納している他のマシンがないグループ内にある場合には、前記選択のコンピュータマシンに、前記指示のプログラムのリモートのコピーを獲得するように指示する
ように構成されていることを特徴とするシステム。
【請求項６９】
複数のコンピュータマシンの複数のグループをさらに有し、それにより各グループは複数のコンピュータマシンを有し、当該複数のコンピュタマシンは１つのデータ接続を共有し、該共有接続は前記グループの外のコンピュータ接続マシンが共有せず、各グループの少なくとも１つのマシンは複数のプログラムの複数のコピーを格納するように構成されていることを特徴とする請求項６８に記載のシステム。
【請求項７０】
前記複数のグループの複数のコンピュータマシンにより共有される共通の物理的な複数のデータ接続は、それぞれ、別個のネットワークスイッチにより与えられることを特徴とする請求項６９に記載のシステム。
【請求項７１】
それぞれが前記複数のグループの１つに関連付けられている複数のマシンマネージャーモジュールであって、前記関連のグループの少なくとも１つのマシンが格納コピーを有している指示のプログラムの少なくとも１つのインスタンスを実行するとの判定に応答して、実行のための前記指示のプログラムのコピーを少なくとも１つのマシンの１つまたは複数から、前記関連のグループの複数のコンピュータマシンにより共有されている共通の物理的なデータ接続を介して獲得することを実行するように構成されている複数のマシンマネージャーモジュールをさらに含むことを特徴とする請求項６９に記載のシステム。
【請求項７２】
前記システムはプログラム実行サービスにより稼動され、複数のグループの複数のマシンに対してアクセス可能なリモートのストレージモジュールであって、前記プログラム実行サービスの顧客からの複数のプログラムのコピーを格納し、および受け取った要求に応答して複数のプログラムの１つのプログラムのコピーを提供するように構成されたストレージモジュールをさらに有することを特徴とする請求項７１に記載のシステム。
【請求項７３】
前記複数のマシンマネージャーモジュールは、それぞれ、前記複数のマシンマネージャーモジュールは、それぞれ、前記マシンマネージャーと関連するグループの複数のマシンが格納コピーを有していないプログラムの指示に応答して前記リモートのストレージモジュールからの前記指示のプログラムのコピーの獲得を実行するようにさらに構成されていることを特徴とする請求項７２に記載のシステム。
【請求項７４】
前記複数のマシンマネージャーモジュールは、それぞれ、前記マシンマネージャーと関連するグループの複数のマシンが格納コピーを有していないプログラムの指示の後、および前記指示のプログラムの少なくともインスタンス実行するとの判定に応答して前記複数のコンピュータマシンの複数のグループのいずれが前記指示のプログラムのコピーを格納している少なくとも１つのマシンを有しているか否かを判定し、およびいずれかが前記指示のコピーを格納していると判定された場合は、１つまたは複数のグループの１つまたは複数のマシンからの前記指示のプログラムの獲得を実行するように構成されていることを特徴とする請求項７３に記載のシステム。
【請求項７５】
前記リモートのストレージモジュールからの１つの指示のプログラムの１つのコピーの獲得を実行することは、複数のグループの複数のコンピュータマシンが前記指示のプログラムのコピーを格納する少なくとも１つのマシンを有していないと判定された場合にのみ実行されることを特徴とする請求項７４に記載のシステム。
【請求項７６】
前記複数のマシンマネージャーモジュールは、それぞれプログラムの獲得のコピーの実行を、前記マシンマネージャーモジュールのための、前記関連のグループの複数のコンピュータマシンの少なくとも１つのコンピュータマシン上で開始するようにさらに構成されていることを特徴とする請求項７１に記載のシステム。
【請求項７７】
前記システムマネージャーモジュールは、１つの指示のプログラムの１つのインスタンスを実行するための、複数のグループの中の１つのグループの１つのコンピュータマシンの選択の後、前記１つのグループに関連付けられた１つのマシンマネージャーモジュールに複数の命令を送って、前記指示のプログラムの少なくとも１つのインスタンスを実行するとの判定を与え、前記指示のプログラムの格納コピーを前記複数のマシンの少なくとも１つが有するか否かの判定を実行するための情報を与えるようにさらに構成されていることを特徴とする請求項７６に記載のシステム。
【請求項７８】
前記複数のコンピュータマシンの各々は前記複数のマシンマネージャーモジュールの１つを実行し、マシンマネージャーモジュールによる指示のプログラムのコピーの獲得を実行することは前記指示のプログラムのコピーを獲得することを含み、各マシンマネージャーモジュールは、さらに、獲得のプログラムのコピーの実行を、該マシンマネージャーモジュールを実行するコンピュータマシン上で開始するように構成されていることを特徴とする請求項７１に記載のシステム。
【請求項７９】
前記システムマネージャーモジュールおよび前記複数のマシンマネージャーモジュールは、それぞれ、前記システムの１つまたは複数のコンピュータマシンのメモリ中に、実行のための複数のソフトウェア命令を含むことを特徴とする請求項７１に記載のシステム。
【請求項８０】
前記システムマネージャーモジュールは、指示のプログラムの少なくとも１つのインスタンス実行するとの判定に応答して、前記指示のプログラムの１つまたは複数のインスタンスを実行するための１つまたは複数のコンピュータマシンを自動的に選択するための手段で構成され、当該選択の複数のコンピュータマシンは１つまたは複数のグループから選択されたものであり、１つのコンピュータマシンの前記選択は、選択のコンピュータマシンが１つのグループのメンバーであることに少なくとも部分的に基づいており、該グループは前記指示のプログラムの格納コピーを有する１つまたは複数のマシンを含み、当該１つまたは複数のマシンから、前記選択のコンピュータマシンは前記指示のプログラムのコピーを獲得することができることを特徴とする請求項６８に記載のシステム。
【請求項８１】
前記選択の複数のコンピュータマシンの少なくともいくつかは、それぞれ、複数の仮想マシンをホストし、当該複数の仮想マシンは、それぞれ、少なくとも１つのプログラムを実行可能であり、前記指示のプログラムは複数の仮想マシンの少なくとも１つにより実行されるべき仮想マシンイメージであることを特徴とする請求項６８に記載のシステム。