• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 5項独立特許用件 特許、登録しない。 G06F
審判 査定不服 2項進歩性 特許、登録しない。 G06F
管理番号 1349968
審判番号 不服2017-17624  
総通号数 233 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2019-05-31 
種別 拒絶査定不服の審決 
審判請求日 2017-11-29 
確定日 2019-03-11 
事件の表示 特願2014-552220「仮想マシンプールにおけるリソースの割り当て」拒絶査定不服審判事件〔平成25年 7月18日国際公開、WO2013/106257、平成27年 3月 5日国内公表、特表2015-507281〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1 手続の経緯

本願は,平成25年1月7日(パリ条約による優先権主張2012年1月9日(以下,「優先日」という。),米国)の出願であって,平成26年8月21日付けで翻訳文が提出され,平成27年12月28日に審査請求がなされ,平成29年2月3日付けの拒絶理由通知に対して平成29年4月17日付けで意見書が提出されるとともに手続補正がなされたが,平成29年8月8日付けで拒絶査定がなされ,これに対して平成29年11月29日に拒絶査定不服審判の請求がなされるとともに手続補正がなされたものである。


第2 平成29年11月29日付けの手続補正についての補正却下の決定

[補正却下の決定の結論]

平成29年11月29日付けの手続補正(以下,「本件補正」という。)を却下する。

[理由]

1 補正の内容

(1)本件補正後の特許請求の範囲の記載

本件補正により補正された特許請求の範囲の記載は次のとおりである。
(下線は,補正の個所を示すものとして審判請求人が付したものである。)

「 【請求項1】
クラウドコンピューティング環境においてリソースを提供するための,コンピュータにより実行される方法であって,
仮想マシンプールに関連付けられた仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の数を追跡するステップと,
ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンの数を第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数のスタンバイ仮想マシン確保の数を第2の量だけ増加させることを求める要求を受信するステップと,
前記仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変換するステップと,
前記1つ又は複数の変換された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップと,
を備え,
前記1つ又は複数のスタンバイ仮想マシン確保は,仮想マシンの割り当てではなく,前記1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保である,
方法。
【請求項2】
前記追跡される1つ又は複数のスタンバイ仮想マシン確保の数は,前記第1の量未満である請求項1記載の方法。
【請求項3】
前記変換するステップは,アイドルな仮想マシンを前記仮想マシンプールに割り当てられた前記専用の仮想マシンに変換するステップを含む請求項1に記載の方法。
【請求項4】
前記変換するステップは,プリエンプション可能な仮想マシンを前記仮想マシンプールに割り当てられた前記専用の仮想マシンに変換するステップを含む請求項1に記載の方法。
【請求項5】
前記変換するステップは,所定の時刻及び/又は日付に少なくとも一部は基づいて引き起こされる請求項1に記載の方法。
【請求項6】
前記変換するステップにより,別のユーザーから前記ユーザーに仮想マシンが前記専用の仮想マシンとして再割り当てされる請求項1に記載の方法。
【請求項7】
前記変換するステップは,前記ユーザーに関連付けられた負荷ベースの基準に少なくとも一部は基づいて引き起こされる請求項1に記載の方法。」

(2)本件補正前の特許請求の範囲の記載

本件補正前の特許請求の範囲の記載は次のとおりである。

「 【請求項1】
クラウドコンピューティング環境においてリソースを提供するためのコンピュータにより実行される方法であって,
仮想マシンプールに関連付けられた仮想マシンの1つ又は複数のスタンバイ仮想マシン確保を追跡するステップと,
ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンを第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数のスタンバイ仮想マシン確保を第2の量だけ増加させることを求める要求を受信するステップと,
前記仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変換するステップと,
前記1つ又は複数の変換された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップと,
を備える方法。
【請求項2】
前記追跡される1つ又は複数のスタンバイ仮想マシン確保は,前記第1の量未満である請求項1記載の方法。
【請求項3】
前記追跡される1つまたは複数のスタンバイ仮想マシン確保は,仮想マシンクラスターに対する親和性を有する少なくとも1つのスタンバイ仮想マシン確保を含む請求項1に記載の方法。
【請求項4】
前記仮想マシンクラスターに対する前記親和性は,前記仮想マシンプールに割り当てられた仮想マシン対する接続性に基づく親和性,またはストレージに対する接続性に基づく親和性の少なくとも1つを備える請求項3に記載の方法。
【請求項5】
前記変換するステップは,アイドルな仮想マシンを前記仮想マシンプールに割り当てられた前記専用の仮想マシンに変換するステップを含む請求項1に記載の方法。
【請求項6】
前記変換するステップは,プリエンプション可能な仮想マシンを前記仮想マシンプールに割り当てられた前記専用の仮想マシンに変換するステップを含む請求項1に記載の方法。
【請求項7】
前記変換するステップは,所定の時刻及び/又は日付に少なくとも一部は基づいて引き起こされる請求項1に記載の方法。
【請求項8】
前記変換するステップにより,別のユーザーから前記ユーザーに仮想マシンが前記専用の仮想マシンとして再割り当てされる請求項1に記載の方法。
【請求項9】
前記変換するステップは,前記ユーザーに関連付けられた負荷ベースの基準に少なくとも一部は基づいて引き起こされる請求項1に記載の方法。
【請求項10】
請求項1から9のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。」


2 補正の適否について

本件補正(以下,単に「補正」という。)は,少なくとも次の補正事項を含むものである。

(1)補正前の請求項1を限定して,補正後の請求項1とする補正(以下,「補正事項1」という)。

(2)補正前の請求項2を限定して,補正後の請求項2とする補正(以下,「補正事項2」という)。

(3)補正前の請求項3,4,10を削除して,補正前の請求項5?9を補正後の請求項3?7とする補正(以下,「補正事項3」という)。

上記補正事項1?補正事項3について検討する。


2-1 補正の目的要件

ア 補正事項1について
補正事項1は,
補正前の「クラウドコンピューティング環境においてリソースを提供するためのコンピュータにより実行される方法」を,補正後の「クラウドコンピューティング環境においてリソースを提供するための,コンピュータにより実行される方法」に修正し,
補正前の「スタンバイ仮想マシン確保」を,補正後の「スタンバイ仮想マシン確保の数」に限定し,
補正前の「専用の仮想マシン」を,補正後の「専用の仮想マシンの数」に限定し,
補正前の「スタンバイ仮想マシン確保」について,「前記1つ又は複数のスタンバイ仮想マシン確保は,仮想マシンの割り当てではなく,前記1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保である,」との限定を付加するものであるから,補正前の発明特定事項を限定的に減縮することを含むものである。

イ 補正事項2について
補正事項2は,補正前の「スタンバイ仮想マシン確保」を,補正後の「スタンバイ仮想マシン確保の数」に限定するものであるから,補正前の発明特定事項を限定的に減縮するものである。

ウ 補正事項3について
補正事項3は,補正前の請求項3,4,10を削除して,請求項の番号を整理したものであるから,請求項の削除を目的とするものに該当する。


2-2 独立特許要件

本件補正後の請求項1に係る発明(以下,「本件補正発明」という。)が,特許出願の際独立して特許を受けることができるものであるか(特許法第17条の2第6項において準用する同法第126条第7項の規定に適合するか)について以下に検討する。

2-2-1 本件補正発明を再掲すると以下のとおりである。

「クラウドコンピューティング環境においてリソースを提供するための,コンピュータにより実行される方法であって,
仮想マシンプールに関連付けられた仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の数を追跡するステップと,
ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンの数を第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数のスタンバイ仮想マシン確保の数を第2の量だけ増加させることを求める要求を受信するステップと,
前記仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変換するステップと,
前記1つ又は複数の変換された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップと,
を備え,
前記1つ又は複数のスタンバイ仮想マシン確保は,仮想マシンの割り当てではなく,前記1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保である,
方法。」

2-2-2 引用例

(1)引用例1

本願の優先日前に公開され,原査定の拒絶理由に引用された国際公開第2011/087982号(以下,「引用例1」という。)には,図面とともに,次の事項が記載されている。(下線は当審で付したものである。)

A 「MANAGING PRIVATE USE OF PROGRAM EXECUTION CAPACITY
BACKGROUND
[0001] Many companies and other organizations operate computer networks that interconnect numerous computing systems to support their operations, such as with the computing systems being co-located (e.g., as part of a local network) or instead located in multiple distinct geographical locations (e.g., connected via one or more private or public intermediate networks). For example, data centers housing significant numbers of interconnected computing systems have become commonplace, such as private data centers that are operated by and on behalf of a single organization, and public data centers that are operated by entities as businesses to provide computing resources to customers. Some public data center operators provide network access, power, and secure installation facilities for hardware owned by various customers, while other public data center operators provide "full service" facilities that also include hardware resources made available for use by their customers. However, as the scale and scope of typical data centers has increased, the task of provisioning, administering, and managing the physical computing resources has become increasingly complicated.
[0002] The advent of virtual ization technologies for commodity hardware has provided some benefits with respect to managing large-scale computing resources for many customers with diverse needs, allowing various computing resources to be efficiently and securely shared by multiple customers. For example, virtualization technologies such as those provided by VMWare, XEN, Linux's KVM ("Kernel-based Virtual Machine"), or User-Mode Linux may allow a single physical computing machine to be shared among multiple users by providing each user with one or more virtual machines hosted by the single physical computing machine, with each such virtual machine being a software simulation acting as a distinct logical computing system that provides users with the illusion that they are the sole operators and administrators of a given hardware computing resource, while also providing application isolation and security among the various virtual machines. 」
(ファミリである特表2013-517544号公報の対応する記載:
「【0001】
本願発明は,プログラム実行を管理する技術に関する。
【背景技術】
【0002】
多くの企業および他の組織において動作しているコンピュータネットワークは,多数のコンピューティングシステムの動作をサポートするために,前記コンピューティングシステムを相互接続する。このような相互接続は,(例えば,ローカルネットワークの一部として)共同設置されているかまたは複数の別個の地理的位置に配置されている(例えば,1つ以上の私的中間ネットワークまたは公的中間ネットワークを介して接続されている)コンピューティングシステムに対して用いられている。例えば,多数の相互接続されたコンピューティングシステムを収容したデータセンターが一般的になっている(例えば,単一の組織によってまたは単一の組織を代表するか,そのために動作される私的データセンターや,コンピューティングリソースを顧客へ提供する事業体によって動作される公的データセンター)。いくつかの公的データセンターオペレータからは,多様な顧客が所有しているハードウェアのためのネットワークアクセス,出力およびセキュアなインストール施設が提供されており,他の公的データセンターオペレータからは,「フルサービス」施設が提供されており,このサービスの中には,顧客が利用することが可能なハードウェアリソースも含まれる。しかし,典型的なデータセンターのスケールおよび範囲の増加と共に,物理的なコンピューティングリソースの提供,運営および管理もますます複雑化してきている。
【0003】
コモディティーハードウェアの仮想化技術の出現により,多様なニーズを抱えている多くの顧客のための大規模コンピューティングリソースの管理において一定の恩恵が得られており,その結果,複数の顧客間における多様なコンピューティングリソースの共有が効率化され,セキュアになっている。例えば,仮想化技術(例えば,VMWare,XEN,LinuxのKVM(「カーネル仮想化基盤」)またはユーザーモードLinuxによって提供されているもの)によれば,単一の物理的なコンピューティングマシンによってホストされる1つ以上の仮想マシンを各ユーザに提供することにより,単一の物理的なコンピューティングマシンを複数のユーザ間で共有することが可能となっている。このような仮想マシンはそれぞれソフトウェアシミュレーションであり,別個の論理コンピューティングシステムとして機能して,多様な仮想マシン間におけるアプリケーション隔離およびセキュリティを提供しつつ,ユーザが所与のハードウェアコンピューティングリソースの唯一のオペレータでありかつ運営管理者であるかのような幻想を付与する。」)

B 「DETAILED DESCRIPTION
[0010] Techniques are described for managing execution of programs. In at least some embodiments, the execution of programs is managed for multiple users using excess computing capacity of one or more computing systems. In particular, in at least some such embodiments, for each of one or more users, a private pool of excess computing capacity is maintained for and associated with that user, such as based on currently unused program execution capacity that has been allocated for dedicated use by that associated user, and with the private pool of excess computing capacity being available for priority use by the associated user. Such private excess computing capacity pools may further in some embodiments be provided in addition to a general, non-private excess computing capacity pool that is available for use by multiple users, optionally including the one or more users who are associated with the private excess computing capacity pool(s). The techniques may in some embodiments be used in conjunction with a program execution service (“PES”) that executes multiple programs on behalf of multiple customers or other users of the service, such as a program execution service that provides multiple computing nodes (e.g., multiple physical computing systems and/or virtual machines that are hosted on one or more physical computing systems) for executing user programs. In addition, in at least some embodiments, some or all of the techniques may be automatically performed by embodiments of a Program Execution Service System Manager module, as described in greater detail below.
[0011] In some embodiments, at least some excess or otherwise unused program execution capacity of a PES or other group of computing nodes may be made available to execute programs on behalf of users on a temporary or non- guaranteed basis, such that the excess program execution capacity may be available to execute such programs until a time that the program execution capacity is desired for other purposes (e.g., for preferential or reserved use to execute one or more other programs). Such excess program execution capacity may, for example, be made available as part of one or more general excess computing capacity pools that are available for use by various users (e.g., any customers of a PES that provides the general excess computing capacity pools), such as via a spot market with dynamically changing pricing to reflect supply and demand, or instead in other manners. In some cases, one or more programs may be executing on behalf of a user using excess program execution capacity at the time that the excess program execution capacity is desired for other purposes, and, in some such cases, the execution of those one or more programs may be automatically terminated (e.g., shut down, aborted, etc.) by the PES in order to make that excess program execution capacity available for the other purposes. In at least some such embodiments, programs that are automatically terminated may be automatically restarted on behalf of the user at a future time, such as a future time when a sufficient amount of excess program execution capacity again becomes available to execute the programs for the user. Alternatively, rather than terminating the one or more programs that are using excess program execution capacity that is desired for other purposes, in some embodiments and situations, other program execution capacity may be identified and used in place of the excess program execution capacity that is desired for the other purposes, so as to enable the one or more programs using the excess program execution capacity to continue to execute. Additional details related to using excess program execution capacity are included below.
・・・(中略)・・・
[0014] In addition, as previously noted, one or more users may each have an associated private pool of excess computing capacity for which the user has exclusive or priority access in at least some embodiments. For example, if a user has dedicated computing capacity of one or more computing nodes, but is not currently using some or all of that dedicated capacity, the user may be given priority access to use that unused dedicated capacity as a private pool of excess computing capacity in executing programs for the user. In some embodiments, such a private pool of excess computing capacity for a user may be established in response to explicit instructions from the user (e.g., for a fee from the user), while in other embodiments some or all such users that have unused dedicated computing capacity may each automatically receive a private pool of excess computing capacity based on their unused dedicated computing capacity.
Furthermore, if a user automatically receives a private pool of excess computing capacity using their own unused dedicated computing capacity, the user may in some embodiments be unaware of the private pool.
[0015] The use of such a private pool of excess computing capacity for a user may provide various benefits to the user in various embodiments and situations. For example, in some embodiments, the ongoing incremental cost for a user to make use of their dedicated computing capacity may be lower than the cost to the user to make use of a comparable amount of excess computing capacity from a general pool - if so, the cost to the user for using their own private pool of excess computing capacity may be set at a rate that is less than the cost of the use of the general pool (e.g., may be the same cost as the ongoing incremental cost for a user to make use of their dedicated computing capacity, may be between the ongoing incremental cost for a user to make use of their dedicated computing capacity and the higher cost of using excess computing capacity from the general pool, etc.). In addition, in some embodiments, a user may receive exclusive or priority access to the excess computing capacity in their own private pool, such that the user is able to immediately execute an excess computing capacity request using their private pool, even if that same request would not have sufficiently high priority to be immediately executed using a general excess computing capacity pool. Thus, use of such a private pool of excess computing capacity for a user to execute a program may provide beneficial program execution characteristics that differ from at least some other program execution characteristics occurring from use of a general excess computing capacity pool to execute the program, such as one or more of lower incremental cost of use of a specified amount of program execution capacity for a specified time interval, enhanced availability to obtain access to computing capacity from the private pool relative to the general pool, enhanced ability to continue execution of the program using computing capacity from the private pool relative to the general pool, etc.
[0016] As one specific example of use of a private excess computing capacity pool, a first user may initiate dedicated use of multiple computing nodes for a particular purpose, but maintain a portion of those multiple computing nodes in reserve (e.g., to reserve 20% of the total multiple computing nodes as backup for possible later use, such as to be able to automatically scale the computing nodes being used for the particular purpose in response to higher-than-expected computing load and/or to be able to replace any computing nodes being used for the particular purpose if they become unavailable) - in such situations, the computing nodes that are in reserve may be used as a first private pool of excess computing capacity for the first user while they are not being used for the particular purpose, but with those computing nodes that are in reserve being available to the first user for the particular purpose if they are later desired. As another specific example of use of a private excess computing capacity pool, a second user may initiate dedicated use of multiple computing nodes, but with all of the multiple computing nodes intended for use by the second user as a second private pool of excess computing capacity for the second user - the second private pool of excess computing capacity may then be used to fulfill requests from multiple entities associated with the second user (e.g., if the second user represents an organization, and the multiple entities are different groups or people within the organization; with the multiple entities being third-parties to which the second user sells access to the second private pool of excess computing capacity; etc.), such as in a manner similar to the techniques described herein for managing multiple requests from multiple users to use a general excess computing capacity pool. Furthermore, if the second private pool of excess computing capacity for the second user is used to fulfill requests from multiple entities, the management of those requests and that second private pool may in some embodiments be performed by a third-party operator of a PES and/or a Program Execution Service System Manager ("PESSM") module (e.g., for a fee charged to the second user), while in other embodiments the second user may obtain and use a PESSM module or otherwise be enabled to perform such actions on their own behalf. Moreover, in some embodiments, some or all of the dedicated capacity computing nodes that are used for a user may be provided by or otherwise managed by that user, such as, for example, if the first and/or second users noted above provide at least some of the computing nodes used for the first and second excess computing capacity pools, respectively.
・・・(中略)・・・
[0018] In addition to the types of dedicated and excess computing capacity capabilities that are discussed above, a PES may further include on-demand variable program execution capacity that is available to satisfy at least some dynamically received requests of users to execute programs (e.g., immediately upon request of those users, at an indicated future time, at some time during an indicated future time period, etc.) in some embodiments, such that the one or more programs indicated by such a request may be executed if computing resources sufficient to satisfy the requested execution are available at (or near) the requested time, but without such a request being guaranteed to be satisfied (i.e., without sufficient computing resources being guaranteed to be available). For example, after an on-demand variable program execution capacity request is received to dynamically execute one or more programs on behalf of a user (e.g., for immediate execution), the one or more programs may be executed for the user if an appropriate amount of on-demand program execution capacity is currently available for executing those programs (e.g., if it is determined that there is a sufficient number of available computing nodes with resources to satisfy the request), and otherwise the request may be denied (or in some cases, postponed). Thus, in some such embodiments, such a request for on-demand variable program execution capacity may be unsuccessful, such as if the appropriate amount of program execution capacity is not available to execute the one or more programs at the time of the requested execution (e.g., if it is determined that there are not enough currently available computing nodes with sufficient resources to satisfy a request for immediate execution). 」
(「【発明の概要】
【0004】
プログラム実行を管理する技術について説明する。少なくともいくつかの実施形態において,プログラム実行の管理を,1つ以上のコンピューティングシステムの余剰コンピューティング能力を用いている複数のユーザについて行う。詳細には,少なくともいくつかのこのような実施形態において,1人以上のユーザそれぞれについて,当該関連付けられたユーザによる専用使用のために割り当てられたプログラム実行能力のうち現在未使用状態であるプログラム実行能力などに基づいて,余剰コンピューティング能力の私的プールが,当該ユーザのために維持されかつ当該ユーザと関連付けられる。このような私的プールはまた,当該関連付けられたユーザによる優先使用のために利用可能である余剰コンピューティング能力の私的プールとも関連付けられる。いくつかの実施形態において,複数のユーザ(例を任意選択的に挙げると,私的余剰コンピューティング能力プール(単数または複数)と関連付けられた1人以上のユーザ)が利用可能な一般的な非私的余剰コンピューティング能力プールに加えて,このような私的余剰コンピューティング能力プールがさらに提供され得る。いくつかの実施形態において,これらの技術は,プログラム実行サービス(「PES」)と共に用いられ得る。プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客または他のユーザを代表するか,そを代表するか(当審注:「複数の顧客または他のユーザを代表するか,そを代表するか」は,「複数の顧客またはサービスの他のユーザを代表するか」の誤りであると解される。),そのために複数のプログラムを実行する。加えて,少なくともいくつかの実施形態において,上記技術のうちいくつかまたは全ては,以下により詳細に説明するように,プログラム実行サービスシステムマネージャモジュールの実施形態によって自動的に実行することができる。
【0005】
いくつかの実施形態において,PESまたは他のコンピューティングノード群の少なくともいくつかの余剰プログラム実行能力または他の場合において未使用状態であるプログラム実行能力が,ユーザを代表するか,そのために一時的様態または非保証様態でプログラム実行を行うために利用することが可能であり,これにより,前記余剰プログラム実行能力は,他の目的(例えば,1つ以上の他のプログラムの実行のための優先的使用または予約使用)のために当該プログラム実行能力が必要となるときまで,このようなプログラムの実行に利用することが可能である。このような余剰プログラム実行能力は,例えば,多様なユーザ(例えば,一般的な余剰コンピューティング能力プールを提供するPESの任意の顧客)によって利用可能な1つ以上の一般的な余剰コンピューティング能力プールの一部として利用可能であり,例えば,供給および需要を反映して価格が動的に変動するスポット市場を介してあるいは他の様態で利用することが可能である。いくつかの場合において,余剰プログラム実行能力が他の目的のために必要であるときに前記余剰プログラム実行能力を用いるユーザを代表するか,そのために1つ以上のプログラムが実行され得,いくつかのこのような場合において,余剰プログラム実行能力を他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了され得る(例えば,シャットダウン,アボートされ得る)。少なくともいくつかのこのような実施形態において,自動終了されたプログラムは,将来(例えば,将来において,十分な量の余剰プログラム実行能力が前記ユーザのためのプログラム実行のために再度利用可能となった場合)に前記ユーザを代表するか,そのために自動的に再開させることができる。あるいは,他の目的に必要な余剰プログラム実行能力を用いている1つ以上のプログラムを終了させる代わりに,いくつかの実施形態および状況において,他のプログラム実行能力を特定して,前記他の目的に必要な前記余剰プログラム実行能力の代わりにこのプログラム実行能力を用いることもでき,これにより,前記余剰プログラム実行能力を用いた前記1つ以上のプログラムの実行継続が可能となる。余剰プログラム実行能力の利用に関連するさらなる詳細について,以下に記載する。
・・・(中略)・・・
【0008】
加えて,上記したように,少なくともいくつかの実施形態において,1人以上のユーザはそれぞれ,当該ユーザに対して独占アクセスまたは優先アクセスが付与された余剰コンピューティング能力の関連付けられた私的プールを持ち得る。例えば,ユーザが1つ以上のコンピューティングノードの専用コンピューティング能力を持っているが当該専用能力のうち一部または全てを現在利用していない状態である場合,その未使用状態である専用能力への優先アクセスを,当該ユーザのためのプログラム実行のための余剰コンピューティング能力の私的プールとして当該ユーザに付与することができる。いくつかの実施形態において,このようなユーザのための余剰コンピューティング能力の私的プールは,当該ユーザからの明示的命令に応答して確立することができる(例えば,当該ユーザからの料金)。他の実施形態において,未使用状態である専用コンピューティング能力を持っているユーザのうち一部または全員は,当該ユーザの未使用状態である専用コンピューティング能力に基づいて,余剰コンピューティング能力の私的プールをそれぞれ自動的に受領し得る。さらに,いくつかの実施形態において,ユーザの未使用状態である専用コンピューティング能力を用いて当該ユーザが余剰コンピューティング能力の私的プールを自動的に受領した場合,当該ユーザは,当該私的プールの存在に気づかない場合がある。
【0009】
多様な実施形態および状況において,このように余剰コンピューティング能力の私的プールをユーザのために用いることにより,多様な恩恵を前記ユーザに付与することができる。例えば,いくつかの実施形態において,ユーザが専用コンピューティング能力を利用した場合に漸増していくコストを,前記ユーザが同程度の余剰コンピューティング能力を一般的プールから利用した場合のコストよりも低くすることができ,このような場合,前記ユーザが自分の余剰コンピューティング能力の私的プールを利用するためのコストを,一般的なプールを利用した場合のコストよりも低額に設定することができる(例えば,ユーザが専用コンピューティング能力を利用するための漸増していくコストと同一のコストにすることができるか,ユーザが専用コンピューティング能力を利用するための漸増していくコストと,前記一般的なプールから用いる際のより高いコストとの間のコストにすることができる)。加えて,いくつかの実施形態において,ユーザは,自分の私的プール中の余剰コンピューティング能力への独占アクセスまたは優先アクセスを得ることができ,これにより,前記ユーザは,一般的な余剰コンピューティング能力プールを用いた即時実行よりも当該余剰コンピューティング能力要求を十分に優先する必要が無い場合であっても,自分の私的プールを用いて当該要求を即座に実行することができる。よって,ユーザのプログラム実行の際にこのような余剰コンピューティング能力の私的プールを用いることで,プログラム実行の際の一般的な余剰コンピューティング能力プールの利用から発生する少なくともいくつかの他のプログラム実行特性と異なる有益なプログラム実行特性を得ることが可能となる(例えば,指定時間間隔での指定量のプログラム実行能力の使用の漸増的コストの低下,私的プールからのコンピューティング能力へのアクセスが利用可能となることによる,一般的なプールよりも高い利用可能性,私的プールからのコンピューティング能力を用いたプログラム実行の継続が可能なことによる,一般的なプールよりも高い能力のうちの1つ以上)。
【0010】
私的余剰コンピューティング能力プールの1つの特定の例として,第1のユーザは,特定の目的のための複数のコンピューティングノードの専用使用を開始することができる。その場合,第1のユーザは,これらの複数のコンピューティングノードの一部を備蓄として維持する必要がある(例えば,コンピューティング負荷が予想よりも高かった場合および/または特定の目的のために用いられている任意のコンピューティングノードが利用不可能となった場合に交換できるように特定の目的のために用いられているコンピューティングノードを自動的にスケールするために,複数のコンピューティングノードの合計のうち20%を後で利用できるようにバックアップとして備蓄しておく必要がある)。このような状況においては,備蓄として保存されているコンピューティングノードが特定の目的に用いられていない場合,当該コンピューティングノードを第1のユーザのための余剰コンピューティング能力の第1の私的プールとして利用することができる。しかし,これらの備蓄として保存されているコンピューティングノードが後で必要となった場合,第1のユーザは当該コンピューティングノードを特定の目的のために利用することができる。私的余剰コンピューティング能力プールの利用の別の特定の例として,第2のユーザは,複数のコンピューティングノードの専用使用を開始し得るが,前記複数のコンピューティングノードは全て,第2のユーザのための余剰コンピューティング能力の第2の私的プールとして第2のユーザによって利用されることを意図している。その後,複数のユーザが一般的な余剰コンピューティング能力プールを用いる際に発生する複数の要求を管理するための本明細書中に記載の技術と同様の様態で,余剰コンピューティング能力の第2の私的プールを,第2のユーザと関連付けられた複数のエンティティからの要求を満たすために用いることができる(例えば,第2のユーザが組織である場合,前記複数のエンティティは,前記組織内の異なるグループまたは人間であり,前記複数のエンティティは,余剰コ
ンピューティング能力の第2の私的プールへのアクセスが第2のユーザから販売されたサードパーティである)。さらに,第2のユーザのための余剰コンピューティング能力の第2の私的プールが複数のエンティティからの要求を満たすために用いられた場合,いくつかの実施形態において,これらの要求および第2の私的プールの管理は,PESのサードパーティオペレータおよび/またはプログラム実行サービスシステムマネージャ(「PESSM」)モジュールにより(例えば,第2のユーザへ課金された料金について)行われ得る。他の実施形態において,第2のユーザは,PESSMモジュールを入手および利用することができ,あるいは,他の場合において,第2のユーザは,このような行為を自身のために行うことができる。さらに,いくつかの実施形態において,例えば第1の余剰コンピューティング能力プールおよび第2の余剰コンピューティング能力プールそれぞれのために用いられているコンピューティングノードのうち少なくとも一部を上記した第1のユーザおよび/または第2のユーザが提供する場合,ユーザのために用いられている専用能力コンピューティングノードのうち一部または全てを当該ユーザが提供することができるかあるいは他の場合において当該ユーザが管理することができる。
・・・(中略)・・・
【0012】
上記した専用コンピューティング能力および余剰コンピューティング能力の種類に加えて,PESは,オンデマンド可変プログラム実行能力をさらに含み得る。前記オンデマンド可変プログラム実行能力は,ユーザのプログラム実行のための少なくともいくつかの動的に受信された要求を満たすために利用することができる(例えば,これらのユーザからの要求があった直後,指定された将来の時間,指定された将来の時間における一定時期)いくつかの実施形態において,このような要求によって示される1つ以上のプログラムが要求された実行を満たすのに十分なコンピューティングリソースが前記要求された時間(またはそれに近い時間において)利用可能であるが,このような要求が満たされる保証が無い(すなわち,十分なコンピューティングリソースが利用可能であることが保証されない)場合がある。例えば,ユーザを代表するか,そのために(例えば,即時実行のために)1つ以上のプログラムを動的に実行するようにとのオンデマンド可変プログラム実行能力要求が受信された後,適切な量のオンデマンドプログラム実行能力がこれらのプログラムの実行のために現在利用可能である場合(例えば,十分な数の利用可能なコンピューティングノードが前記要求を満たすためのリソースと共に存在すると決定された場合),前記1つ以上のプログラムを前記ユーザのために実行することができる。そうではない場合,前記要求は拒否され得る(あるいは,いくつかの場合においては延期され得る)。よって,いくつかのこのような実施形態において,このようなオンデマンド可変プログラム実行能力に関する要求は成功しない場合がある(例えば,適切な量のプログラム実行能力が1つ以上のプログラムの実行のために前記要求された実行時間において利用することができない場合(例えば,現在利用可能なコンピューティングノードが不十分であり,即時実行要求を満たすだけの十分なリソースを備えていないと決定された場合))。」)

C 「[0074] Figure 3 is a block diagram illustrating an example embodiment of a system suitable for performing techniques to manage use of computing nodes by multiple users. In particular, Figure 3 illustrates a server computing system 300 suitable for executing an embodiment of a Program Execution Service System Manager module, as well as various user computing systems 350, computing nodes 360, and other computing systems 380. In the illustrated embodiment, the server computing system 300 has components that include a CPU 305, various I/O components 310, storage 320, and memory 330. The illustrated I/O components include a display 31 1 , a network connection 312, a computer-readable media drive 313, and other I/O devices 315 (e.g., a keyboard, a mouse, speakers, etc.). In addition, the illustrated user computing systems 350 have components similar to those of server computing system 300, including a CPU 351 , I/O components 352, storage 354, and memory 357, although some details are not illustrated in this example for the sake of brevity. The other computing systems 380 and computing nodes 360 may also each include similar components to some or all of the components illustrated with respect to server computing system 300, but such components are not illustrated in this example for the sake of brevity.
[0075] An embodiment of a Program Execution Service System Manager module 340 is executing in memory 330, and it interacts with computing systems 350 and 380 and computing nodes 360 over the network 390 (e.g. , via the Internet and/or the World Wide Web, via a private cellular network, etc.). In this example embodiment, the PESSM 340 may, for example, include software instructions that when executed program one or more processors (e.g., CPU 305) to perform some or all of the described techniques, including functionality related to managing use of multiple computing nodes 360 by various users (not shown) interacting with user computing systems 350, such as in conjunction with a program execution service managed by the PESSM 340. The other computing systems 350 and 380 and computing nodes 360 may be executing various software as part of interactions with the PESSM. For example, user computing systems 350 may be executing software in memory 357 to interact with PESSM 340 (e.g., as part of a Web browser or specialized client-side application program), such as to configure and/or request execution of programs on behalf of the users of those systems on one or more computing nodes 360 in various ways, such as related to variable execution capacity use, dedicated execution capacity use, and/or excess execution capacity use. In addition, one or more users of the user computing systems 350 may interact with PESSM 340 to perform various other types of actions, as discussed in greater detail elsewhere. Various information related to the functionality of the PESSM module 340 may be stored in storage 320, such as information 324 related to private excess capacity pools (e.g., tracked current availability, user instructions related to configuration and/or other configuration information, etc.) and other information 322 (e.g., information related to configuration, execution and/or registration for executing programs on behalf of multiple users).
[0076] In this example, the PESSM module 340 includes three constituent modules, including a Dedicated Capacity Usage Manager module 342, an Excess Capacity Usage Manager module 344, and an On-Demand Variable Capacity Usage Manager module 346. The Dedicated Capacity Usage Manager module 342 manages the use of dedicated computing capacity by users, with Figure 6 illustrating a routine corresponding to operations of the module 342 in one example embodiment. The Excess Capacity Usage Manager module 344 manages the use of general and private excess computing capacity pools by users, with Figures 5A and 5B illustrating a routine corresponding to operations of the module 344 in one example embodiment. The On-Demand Variable Capacity Usage Manager module 346 manages the use of on-demand variable computing capacity by users, with Figure 7 illustrating a routine corresponding to operations of the module 346 in one example embodiment. In other embodiments, the functionality provided by the PESSM module 340 may be structured in other manners, including to optionally not include one or more of the constituent modules 342-346 (e.g., to not include the On-Demand Variable Capacity Usage Manager module 346 for an embodiment that does not provide on-demand variable capacity usage). 」
(「【0069】
図3はブロック図であり,複数のユーザによるコンピューティングノードの利用を管理するための技術を行うのに適したシステムの例示的実施形態を示す。詳細には,図3は,プログラム実行サービスシステムマネージャモジュールの実施形態の実行に適したサーバコンピューティングシステム300と,多様なユーザコンピューティングシステム350と,コンピューティングノード360と,他のコンピューティングシステム380とを示す。図示の実施形態において,サーバコンピューティングシステム300は,CPU305を含むコンポーネントと,多様なI/Oコンポーネント310と,記憶部320,メモリ330とを含む。例示のI/Oコンポーネントは,ディスプレイ311と,ネットワーク接続部312と,コンピュータによる読み出しが可能なメディアドライブ313と,他のI/Oデバイス315(例えば,キーボード,マウス,スピーカ)とを含む。加えて,この例において簡潔さのために詳細を例示していないものもあるものの,例示のユーザコンピューティングシステム350は,サーバコンピューティングシステム300と同様のコンポーネントを有する(例えば,CPU351,I/Oコンポーネント352,記憶部354,およびメモリ357)。その他のコンピューティングシステム380およびコンピューティングノード360もそれぞれ,サーバコンピューティングシステム300を参照して例示したコンポーネントのうちいくつかまたはその全てと同様のコンポーネントを含み得るが,このようなコンポーネントはこの例において簡潔さのために例示しない。
【0070】
プログラム実行サービスシステムマネージャモジュール340の実施形態は,メモリ330内において実行し,コンピューティングシステム350および380およびコンピューティングノード360との相互作用をネットワーク390を介して(例えば,インターネットおよび/またはワールドワイドウェブを介して,私的セルラーネットワークを介して)行う。この例示的実施形態において,PESSM340は,例えばソフトウェア命令を含み得る。これらのソフトウェア命令が実行されると,これらのソフトウェア命令は,上記した技術のうち一部または全体を行うように1つ以上のプロセッサ(例えば,CPU305)をプログラムする(上記した技術の例を挙げると,例えばPESSM340によって管理されるプログラム実行サービスと関連してユーザコンピューティングシステム350と相互作用している多様なユーザ(図示せず)による複数のコンピューティングノード360の利用の管理に関連する機能がある)。その他のコンピューティングシステム350および380およびコンピューティングノード360は,PESSMとの相互作用の一環として,多様なソフトウェアを実行し得る。例えば,ユーザコンピューティングシステム350は,メモリ357中のソフトウェアを実行して,(例えば,ウェブブラウザまたは特殊なクライアント側アプリケーションプログラムの一部として)PESSM340と相互作用し得,これにより,1つ以上のコンピューティングノード360上における多様な様態(例えば,可変実行能力の利用,専用実行能力の利用および/または余剰実行能力の利用に関連する様態)でのこれらのシステムのユーザのためのプログラム実行を構成および/または要求し得る。加えて,他にさらに詳述するように,ユーザコンピューティングシステム350の1人以上のユーザは,PESSM340と相互作用して,多様な他の種類の行為を行い得る。PESSMモジュール340の機能に関連する多様な情報は,記憶部320中に保存され得る(例えば,私的余剰能力プールに関連する情報324(例えば,現在の利用可能性の追跡,構成および/または他の構成情報に関連するユーザ命令)ならびに他の情報322(例えば,複数ユーザのためのプログラム実行のための構成,実行および/または登録に関連する情報)。
【0071】
この例において,PESSMモジュール340は,3つの構成モジュールを含む(例えば,専用能力使用量マネージャモジュール342,余剰能力使用量マネージャモジュール344,およびオンデマンド可変能力使用量マネージャモジュール346)。専用能力使用量マネージャモジュール342は,ユーザによる専用コンピューティング能力の利用を管理する。図6は,1つの例示的実施形態におけるモジュール342の動作に対応するルーチンを示す。余剰能力使用量マネージャモジュール344は,ユーザによる一般的な余剰コンピューティング能力プールおよび私的余剰コンピューティング能力プールの利用を管理し,図5Aおよび図5Bは,1つの例示的実施形態におけるモジュール344の動作に対応するルーチンを示す。オンデマンド可変能力使用量マネージャモジュール346は,ユーザによるオンデマンド可変コンピューティング能力の利用を管理する。図7は,1つの例示的実施形態におけるモジュール346の動作に対応するルーチンを示す。他の実施形態において,PESSMモジュール340によって提供される機能は,他の様態で構築することができる(例えば,構成モジュール342?346のうち1つ以上を任意選択的に含まないような構成(例えば,オンデマンド可変能力使用量を提供しない実施形態においてオンデマンド可変能力使用量マネージャモジュール346を含まない構成))。」)

D 「[0080] Figure 4 is a flow diagram of an example embodiment of a Program Execution Service System Manager routine 400. The routine may be provided by, for example, execution of the PESSM modules 1 10 and 180 of Figures 1 A and 1 B, respectively, a PESSM module (not shown) that performs operations corresponding to Figures 2A and 2B, and/or the PESSM module 340 of Figure 3, such as to assist in managing use of multiple computing nodes and/or other types of program execution capacity, as well as to perform other types of management operations in some situations. In this illustrated embodiment, the routine 400 manages various aspects of use of a program execution service that provides program execution capacity for executing programs on behalf of multiple users.
[0081] In the illustrated embodiment, the routine begins at block 405, where information or a request is received. The routine continues to block 410 to determine if the received request or information is related to dedicated capacity use. If so, the routine continues to block 415 to perform a routine related to managing dedicated computing capacity usage, with one example embodiment of such a routine being discussed in greater detail with respect to Figure 6. If it is instead determined at block 410 that the information or request of block 405 is not related to dedicated capacity use, the routine continues to block 430 to determine if the information or request is related to excess computing capacity use. If so, the routine continues to block 435 to perform a routine related to managing excess computing capacity usage, with one example embodiment of such a routine being discussed in greater detail with respect to Figures 5A-5B. If it is instead determined at block 430 that the information or request of block 405 is not related to excess capacity use, the routine continues to block 440 to determine if the information or request is related to on-demand variable computing capacity use. If so, the routine continues to block 445 to perform a routine related to managing on- demand variable computing capacity usage, with one example embodiment of such a routine being discussed in greater detail with respect to Figure 7. 」
(「【0075】
図4は,プログラム実行サービスシステムマネージャルーチン400の例示的実施形態のフロー図である。前記ルーチンは,例えば,図1Aおよび図1BのPESSMモジュール110および180それぞれ,図2Aおよび図2Bに対応する動作を行うPESSMモジュール(図示せず),ならびに/あるいは図3のPESSMモジュール340の実行によって得られ得る(例えば,複数のコンピューティングノードおよび/または他の種類のプログラム実行能力の利用の管理の支援や,いくつかの状況における他の種類の管理動作を実行するためのもの)。この図示の実施形態において,ルーチン400は,複数のユーザのためのプログラム実行を行うためのプログラム実行能力を提供するプログラム実行サービスの利用の多様な局面を管理する。
【0076】
図示の実施形態において,ルーチンはブロック405から開始する。ブロック405において,情報または要求が受信される。前記ルーチンはブロック410へと進んで,前記受信された要求または情報が専用能力の利用に関連するか否かを決定する。前記受信された要求または情報が専用能力の利用に関連する場合,前記ルーチンはブロック415へと進んで,専用コンピューティング能力使用量の管理に関連するルーチンを行う。このようなルーチンの1つの例示的実施形態について,図6を参照してより詳細に説明する。あるいは,ブロック410においてブロック405の情報または要求が専用能力の利用に関連しないと決定された場合,ルーチンはブロック430へと進んで,前記情報または要求が余剰コンピューティング能力の利用に関連するかを決定する。前記情報または要求余剰コンピューティング能力の利用に関連する場合,ルーチンはブロック435へと進んで,余剰コンピューティング能力使用量の管理に関連するルーチンを行う。このようなルーチンの1つの例示的実施形態について,図5A?図5Bを参照してより詳細に説明する。あるいは,ブロック405の情報または要求が余剰能力の利用に関連しないとブロック430において決定された場合,ルーチンはブロック440へと進んで,前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連するか否かを決定する。前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連する場合,ルーチンはブロック445へと進んで,オンデマンド可変コンピューティング能力使用量の管理に関連するルーチンを実行する。記載のこのようなルーチンの1つの例示的実施形態について,図7を参照してより詳細に説明する。」)

E 「[0086] Figure 6 is a flow diagram of an example embodiment of a Dedicated Capacity Usage Manager routine 600. The routine may be provided by, for example, execution of the Dedicated Capacity Usage Manager module 342 of the PESSM module 340 of Figure 3, or as part of the PESSM modules 1 10 and 180 of Figures 1A and 1 B, respectively, and/or a PESSM module (not shown) that performs operations corresponding to Figures 2A and 2B, and may be initiated from block 415 of routine 400 in Figure 4, or otherwise invoked.
[0087] In the illustrated embodiment, the routine 600 begins at block 605, where a request, information and/or other indication related to dedicated capacity use is received. At block 612, the routine then determines whether a request has been received from a user to subscribe for use of dedicated program execution capacity. If so, the routine continues to block 614 where corresponding information is obtained from a subscribing user, and various operations related to subscribing for use of dedicated program execution capacity are performed. For example, in some embodiments, a user may select and/or indicate one or more computing nodes to which the user would like dedicated access. As discussed elsewhere, in some embodiments, a user may select from one or more of various types of computing nodes and/or may otherwise specify various amounts and/or types of computing resources desired (e.g., processing unit type/amount, memory amount, platform specification, etc.). In addition, a subscribing user may also indicate a desired time period of use over which the user would like dedicated access (e.g. , a number of hours, weeks, months, years, etc.), and/or may provide other information (e.g., billing information, indications of programs to execute on behalf of the user, scheduling information for executing one or programs at one or more future times, etc.). After the subscriber provides information related to a type and/or amount of desired dedicated program execution capacity, the routine continues to block 616 where an appropriate amount of requested program execution capacity is allocated for dedicated use by the subscribing user if possible. As discussed elsewhere, program execution capacity (e.g., one or more computing nodes) may be allocated and/or assigned for use by a particular subscribing dedicated capacity user in various ways in various embodiments.
[0088] After block 616, the routine continues to block 618 to optionally determine whether to use at least some of the computing capacity allocated to the subscriber for dedicated use as part of a private pool of excess computing capacity for use by the subscriber (and/or by other designated users), and if so to store corresponding information to enable use of the private excess computing capacity pool. For example, in some embodiments, private excess computing capacity pools may be enabled and used for decided capacity subscriber users, such that all dedicated computing capacity that is allocated to such a user may be made available for possible later use in a private excess computing capacity pool for that user while that dedicated computing capacity is not otherwise being used by the user.
Alternatively, the PESSM module may in some embodiments create such private excess computing capacity pools for all dedicated capacity users by default unless otherwise instructed. In other embodiments, such a private excess computing capacity pool for a dedicated capacity user may not be created in block 618 unless the user provides explicit instructions to do so, and/or other predetermined criteria are satisfied. In yet other embodiments, the determination of whether to create such a private excess capacity pool for a user may instead be performed at other times, such as upon receiving a request from such a dedicated capacity user to use excess computing capacity resources. Furthermore, in at least some embodiments, the subscriber user may configure other aspects of such a private excess computing capacity pool for the user, such as how much of the dedicated capacity use is to be available as part of the private excess capacity pool (e.g., all, a specified percentage or specified number of computing nodes, etc.), to what users the private excess capacity pool is to be available, certain time periods and/or other criteria during which the private excess capacity pool is to be available or not available, etc.」
(「【0081】
図6は,専用能力使用量マネージャルーチン600の例示的実施形態のフロー図である。ルーチンは,例えば図3のPESSMモジュール340の専用能力使用量マネージャモジュール342の実行によって提供することもできるし,あるいは,図1Aおよび図1BのPESSMモジュール110および180それぞれおよび/または図2Aおよび図2Bに対応する動作を行うPESSMモジュール(図示せず)によって提供することもでき,図4中のルーチン400のブロック415から開始するかまたは他の場合において呼び出すことができる。
【0082】
図示の実施形態において,ルーチン600はブロック605から開始する。ブロック605において,要求,情報および/または他の専用能力の利用に関連する通知が受信される。その後,ブロック612において,ルーチンは,専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信されたかを決定する。専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信された場合,ルーチンはブロック614へと進み,ブロック614において,対応する情報が加入ユーザから得られ,専用プログラム実行能力の利用の加入に関連する多様な動作が行われる。例えば,いくつかの実施形態において,ユーザは,前記ユーザが専用アクセスを得ようとしている1つ以上のコンピューティングノードを選択および/または通知し得る。他に記載するように,いくつかの実施形態において,ユーザは,1つ以上の多様な種類のコンピューティングノードから選択し,かつ/または,他の場合において多様な量および/または種類の所望のコンピューティングリソース(例えば,処理ユニット種類/量,メモリ量,プラットフォーム仕様)を指定し得る。加えて,加入ユーザは,ユーザが専用アクセスを得ることを望む利用期間も通知し得る(例えば,複数の時間,複数の週,複数の月,複数の年)。上記に加えておよび/または上記に代えて,加入ユーザは,他の情報を提供し得る(例えば,課金情報,ユーザを代表するか,そのために実行されるプログラムの通知,1つ以上の将来の時間において1つ以上のプログラムを実行するためのスケジューリング情報)。加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,ルーチンはブロック616へと進んで,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられる。他に記載のように,プログラム実行能力(例えば,1つ以上のコンピューティングノード)は,特定の加入専用能力ユーザによって用いられるように,多様な実施形態において多様な様態で割り当てられかつ/またはあてがわれる。
【0083】
ブロック616の後,ルーチンはブロック618へと進んで,加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いるかを任意選択的に決定し,加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存する。例えば,いくつかの実施形態において,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能となり,これにより,このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能となる。あるいは,いくつかの実施形態において,PESSMモジュールは,他の場合において命令無き限り,全ての専用能力ユーザのためにこのような私的余剰コンピューティング能力プールをデフォルトで生成し得る。他の実施形態において,このような専用能力ユーザのための私的余剰コンピューティング能力プールは,命令生成せよとの明示的な命令をユーザが発行しない限りかつ/または他の事前決定された基準が満たされない限り,ブロック618において生成することができない。さらに他の実施形態において,このようなユーザのための私的余剰能力プールを生成するかについての決定は,他の時期においても行われ得る(例えば,このような専用能力ユーザからの余剰コンピューティング能力リソースの利用についての要求が受信されたとき)。さらに,少なくともいくつかの実施形態において,加入者ユーザは,このようなユーザのための私的余剰コンピューティング能力プールの他の局面を構成し得る(例えば,専用能力利用のうち私的余剰能力プールの一部として利用可能である量(例えば,全てのコンピューティングノード,指定されたパーセンテージまたは指定された数のコンピューティングノード),私的余剰能力プールを利用することが可能なユーザ,私的余剰能力プールを利用可能とするかまたは利用不可能とすべき特定の期間および/または他の基準)。」)

F 「[0092] Figures 5A-5B are a flow diagram of an example embodiment of an Excess Capacity Usage Manager routine 500. The routine may be provided by, for example, execution of the Excess Capacity Usage Manager module 344 of the PESSM module 340 of Figure 3, or as part of the PESSM modules 1 10 and 180 of Figures 1A and 1 B, respectively, and/or a PESSM module (not shown) that performs operations corresponding to Figures 2A and 2B, and may be initiated from block 435 of routine 400 in Figure 4 or otherwise invoked.
[0093] In the illustrated embodiment, upon invocation of the routine 500, a request, information and/or other indication related to excess capacity use is provided to the routine at block 502. At block 505, the routine then determines whether an indication is received to add program execution capacity to available excess program execution capacity, such as based on information obtained with respect to block 475 of Figure 4, or as triggered by the termination of use of dedicated computing capacity with respect to block 635 of Figure 6. If so, the routine continues to block 510 to add the indicated program execution capacity to available program execution capacity. In particular, if the excess program execution capacity corresponds to a private excess computing capacity pool, then that private pool is selected to receive the indicated excess capacity, and otherwise a general excess computing capacity pool is selected. In addition, in some embodiments requests to create new private excess capacity pools may be received and handled with respect to block 510, or instead with respect to block 595 as discussed below. For example, in some embodiments, the routine may add one or more indications of such indicated program execution capacity (e.g., one or more particular computing nodes, etc.) to the selected pool of available program execution capacity. In some embodiments, multiple pools may be provided, as previously discussed with respect to private and general excess capacity pools, and/or in other manners (e.g., various different types of program execution capacity may be available and grouped into corresponding private and/or general pools associated with the type of program execution capacity).
[0094] If it is instead determined at block 505 that an indication to add excess program execution capacity is not received, the routine continues to block 515 to determine whether an indication is received to remove program execution capacity from the available excess program execution capacity. If so, the routine continues to block 520 to select a corresponding private and/or general excess capacity pool from which the excess capacity is to be removed (e.g., based on particular program execution capacity that is indicated, such as for one or more programs currently executing using excess capacity). The routine then removes the indicated program execution capacity from the available excess program execution capacity for the selected capacity pool, such that the indicated program execution capacity (or an equivalent amount of program execution capacity) is no longer available as excess program execution capacity to execute programs on behalf of excess capacity users for the selected capacity pool.
[0095] If it is instead determined in block 515 that an indication to remove program execution capacity from available program execution capacity is not received, the routine continues instead to block 525 to determine whether a request to execute one or more programs on some amount of available excess program execution capacity on behalf of an excess capacity user is received (or a previously scheduled request for such execution has been triggered). If so, the routine continues to block 530 to select a corresponding private and/or general excess capacity pool from which the excess capacity is to be obtained for executing one or more programs for the request (e.g., based on the excess capacity user, or instead on another indication of particular program execution capacity to use), and to optionally obtain or receive additional information from a requesting excess capacity user related to requested execution. In some embodiments, such additional information may include configuration information, such as indications of an amount and/or type of program execution capacity requested (e.g., including minimum and maximum amounts), a bid amount (e.g., including minimum and maximum bid amounts), an expiration time, a particular excess capacity pool to use (e.g., only a particular private excess capacity pool associated with the user, or to use a particular private excess capacity pool if available but to otherwise use a general excess capacity pool), etc. In some embodiments, some or all such additional information may instead be included as part of the request received in block 502, or as part of a separate configuration and/or registration performed by the excess capacity user. In addition, in some embodiments, the routine may provide feedback to an excess capacity user of one or more types, such as indicating likely characteristics of the requested execution (e.g., a likely time that the request will be executed, a likely duration of execution, a likely excess capacity pool to be used, etc.) and/or optional other information (e.g., suggested configurations). After block 530, the routine continues to block 535 to add the request to a group of current requests for execution on excess program execution capacity for the selected excess capacity pool to be used. In other embodiments, rather than add the request to a group of other requests, the routine may instead attempt to immediately satisfy the request, such as by determining whether there is available excess program execution capacity to execute the request at that immediate time (e.g., in a particular private excess capacity pool), and initiating execution of the programs if so, or taking other action if not (e.g., moving the request from the unavailable private excess capacity pool to a general excess capacity pool, failing, etc.). 」
(「【0087】
図5A?図5Bは,余剰能力使用量マネージャルーチン500の例示的実施形態のフロー図である。ルーチンは,例えば図3のPESSMモジュール340の余剰能力使用量マネージャモジュール344の実行によって提供することもできるし,あるいは,図1Aおよび図1BのPESSMモジュール110および180それぞれおよび/または図2Aおよび図2Bに対応する動作を行うPESSMモジュール(図示せず)の一部として提供することもでき,図4中のルーチン400のブロック435から開始されるか他の場合において呼び出される。
【0088】
図示の実施形態において,ルーチン500が呼び出されると,余剰能力の利用に関連する要求,情報および/または他の通知がブロック502においてルーチンに提供される。その後,ブロック505において,ルーチンは,プログラム実行能力を利用可能な余剰プログラム実行能力へと付加すべきである旨の通知が受信されたかを決定する(この決定は,例えば,図4のブロック475について得られる情報に基づくか,または,図6のブロック635を参照した専用コンピューティング能力の利用の終了によってトリガされる)。そうである場合,ルーチンはブロック510へと進み,前記通知されたプログラム実行能力を利用可能なプログラム実行能力へと付加する。詳細には,前記余剰プログラム実行能力が私的余剰コンピューティング能力プールに対応する場合,前記私的プールは,前記指示された余剰能力を受信するように選択され,他の場合において,一般的な余剰コンピューティング能力プールが選択される。加えて,いくつかの実施形態において,新規私的余剰能力プールを生成せよとの要求がブロック510を参照してあるいは以下に説明するようなブロック595を参照して受信され,取り扱われ得る。例えば,いくつかの実施形態において,ルーチンは,このような指示されたプログラム実行能力(例えば,1つ以上の特定のコンピューティングノード)の1つ以上の通知を利用可能なプログラム実行能力の選択されたプールへと付加し得る。いくつかの実施形態において,私的余剰能力プールおよび一般的な余剰能力プールについて上述したような様態でかつ/または他の様態で複数のプールが提供され得る(例えば,多様な異なる種類のプログラム実行能力が利用可能とされ得,プログラム実行能力の種類と関連付けられた対応する私的プールおよび/または一般的なプールへとグループ分けされ得る)。
【0089】
あるいは,余剰プログラム実行能力への通知が受信されていないとブロック505において決定された場合,ルーチンはブロック515へと進んで,利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたかについて決定する。利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたと決定された場合,ルーチンはブロック520へと進んで,(例えば,例えば余剰能力を用いて現在実行している1つ以上のプログラムについての通知されている特定のプログラム実行能力に基づいて)余剰能力を除去すべき対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択する。その後,ルーチンは,前記通知されたプログラム実行能力を前記選択された能力プールについて利用可能な余剰プログラム実行能力から除去し,これにより,前記通知されたプログラム実行能力(または相当する量のプログラム実行能力)は,前記選択された能力プールの余剰能力ユーザのためのプログラム実行のための余剰プログラム実行能力として利用することができなくなる。
【0090】
あるいは,利用可能なプログラム実行能力からプログラム実行能力を除去せよとの通知が受信されていないとブロック515において決定された場合,ルーチンはこの場合はブロック525へと進んで,一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信されたか(またはこのような実行について以前に予定されていた要求がトリガされたか)を決定する。一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信された(あるいは,このような実行について以前に予定されていた要求がトリガされた)と決定された場合,ルーチンはブロック530へと進んで,前記要求に基づいて1つ以上のプログラムの実行を行う際に用いられるべき余剰能力の供給源となる,対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択する(このような決定は,例えば,余剰能力ユーザに基づいてあるいは利用されるべき特定のプログラム実行能力についての別の通知に基づいて,行われる)。そして,要求された実行に関連する要求側の余剰能力ユーザからさらなる情報を任意選択的に入手または受信する。いくつかの実施形態において,このようなさらなる情報を挙げると,構成情報がある(例えば,要求されるプログラム実行能力の量および/または種類についての通知(例えば,最小量および最大量),入札額(例えば,最小入札額および最大入札額),期限,利用すべき特定の余剰能力プール(例えば,ユーザと関連付けられた特定の私的余剰能力プールのみ,あるいは,利用可能な場合は特定の私的余剰能力プールを利用し,他の場合においては一般的な余剰能力プールを利用するなどの指示))。いくつかの実施形態において,このようなさらなる情報の一部または全体をブロック502において受信された要求の一部としてあるいは余剰能力ユーザによって行われた別個の構成および/または登録の一部として設けることができる。加えて,いくつかの実施形態において,ルーチンは,1つ以上の種類の余剰能力ユーザに対し,フィードバックを提供することができる(例えば,要求された実行の起こり得る特性の通知(例えば,要求実行が起こり得る時期,起こり得る実行期間,利用されるべき余剰能力プールとして可能性の高いもの)および/または任意選択的な他の情報(例えば,提案される構成))。ブロック530後において,ルーチンはブロック535へと進んで,利用対象として選択された余剰能力プールからの余剰プログラム実行能力上での実行についての要求を現在の要求グループへと付加する。他の実施形態において,他の要求のグループへと前記要求を付加する代わりに,ルーチンは,前記要求を即時的に満足しようとし得る(例えば,前記要求を前記即時的時間において実行するために利用することが可能な余剰プログラム実行能力が(例えば,特定の私的余剰能力プール中に)あるかを決定し,このような余剰プログラム実行能力がある場合,プログラム実行を開始するか,あるいは,このような余剰プログラム実行能力が無い場合,他の行動をとる(例えば,前記要求を利用不可能な私的余剰能力プールから一般的な余剰能力プールへと移動させる,失敗する,等)。」)

ここで,上記引用例1に記載されている事項について検討する。

(a)上記Aの「本願発明は,プログラム実行を管理する技術に関する。」との記載によれば,引用例1は,「プログラム実行を管理する技術」について記載されているものである。
そして,上記Bの「プログラム実行を管理する技術について説明する。少なくともいくつかの実施形態において,プログラム実行の管理を,1つ以上のコンピューティングシステムの余剰コンピューティング能力を用いている複数のユーザについて行う。詳細には,少なくともいくつかのこのような実施形態において,1人以上のユーザそれぞれについて,当該関連付けられたユーザによる専用使用のために割り当てられたプログラム実行能力のうち現在未使用状態であるプログラム実行能力などに基づいて,余剰コンピューティング能力の私的プールが,当該ユーザのために維持されかつ当該ユーザと関連付けられる。このような私的プールはまた,当該関連付けられたユーザによる優先使用のために利用可能である余剰コンピューティング能力の私的プールとも関連付けられる。いくつかの実施形態において,複数のユーザ(例を任意選択的に挙げると,私的余剰コンピューティング能力プール(単数または複数)と関連付けられた1人以上のユーザ)が利用可能な一般的な非私的余剰コンピューティング能力プールに加えて,このような私的余剰コンピューティング能力プールがさらに提供され得る。」との記載によれば,上記「プログラム実行を管理する技術」の実施形態として,
「プログラム実行の管理を,1つ以上のコンピューティングシステムの余剰コンピューティング能力を用いている複数のユーザについて行うものであり,1人以上のユーザそれぞれについて,当該関連付けられたユーザによる専用使用のために割り当てられたプログラム実行能力のうち現在未使用状態であるプログラム実行能力などに基づいて,余剰コンピューティング能力の私的プールが,当該ユーザのために維持されかつ当該ユーザと関連付けられ,このような私的プールはまた,当該関連付けられたユーザによる優先使用のために利用可能である余剰コンピューティング能力の私的プールとも関連付けられ,複数のユーザ(私的余剰コンピューティング能力プール(単数または複数)と関連付けられた1人以上のユーザ)が利用可能な一般的な非私的余剰コンピューティング能力プールに加えて,このような私的余剰コンピューティング能力プールがさらに提供され得」ることが記載されているといえる。

(b)同様に,上記Bの「いくつかの実施形態において,これらの技術は,プログラム実行サービス(「PES」)と共に用いられ得る。プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客またはサービスの他のユーザを代表するか,そのために複数のプログラムを実行する」との記載によれば,上記「プログラム実行を管理する技術」の実施形態として,
「これらの技術は,プログラム実行サービス(「PES」)と共に用いられ得,プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客またはサービスの他のユーザを代表するか,そのために複数のプログラムを実行」することが記載されているといえる。

(c)同様に,上記Bの「いくつかの実施形態において,PESまたは他のコンピューティングノード群の少なくともいくつかの余剰プログラム実行能力または他の場合において未使用状態であるプログラム実行能力が,ユーザを代表するか,そのために一時的様態または非保証様態でプログラム実行を行うために利用することが可能であり,これにより,前記余剰プログラム実行能力は,他の目的(例えば,1つ以上の他のプログラムの実行のための優先的使用または予約使用)のために当該プログラム実行能力が必要となるときまで,このようなプログラムの実行に利用することが可能である。このような余剰プログラム実行能力は,例えば,多様なユーザ(例えば,一般的な余剰コンピューティング能力プールを提供するPESの任意の顧客)によって利用可能な1つ以上の一般的な余剰コンピューティング能力プールの一部として利用可能であり,例えば,供給および需要を反映して価格が動的に変動するスポット市場を介してあるいは他の様態で利用することが可能である。いくつかの場合において,余剰プログラム実行能力が他の目的のために必要であるときに前記余剰プログラム実行能力を用いるユーザを代表するか,そのために1つ以上のプログラムが実行され得,いくつかのこのような場合において,余剰プログラム実行能力を他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了され得る(例えば,シャットダウン,アボートされ得る)。少なくともいくつかのこのような実施形態において,自動終了されたプログラムは,将来(例えば,将来において,十分な量の余剰プログラム実行能力が前記ユーザのためのプログラム実行のために再度利用可能となった場合)に前記ユーザを代表するか,そのために自動的に再開させることができる。」との記載によれば,上記「プログラム実行を管理する技術」の実施形態として,
「PESまたは他のコンピューティングノード群の少なくともいくつかの余剰プログラム実行能力または他の場合において未使用状態であるプログラム実行能力が,ユーザを代表するか,そのために一時的様態または非保証様態でプログラム実行を行うために利用することが可能であり,これにより,前記余剰プログラム実行能力は,他の目的(例えば,1つ以上の他のプログラムの実行のための優先的使用または予約使用)のために当該プログラム実行能力が必要となるときまで,このようなプログラムの実行に利用することが可能であり,このような余剰プログラム実行能力は,例えば,多様なユーザ(例えば,一般的な余剰コンピューティング能力プールを提供するPESの任意の顧客)によって利用可能な1つ以上の一般的な余剰コンピューティング能力プールの一部として利用可能であり,例えば,供給および需要を反映して価格が動的に変動するスポット市場を介してあるいは他の様態で利用することが可能であり,いくつかの場合において,余剰プログラム実行能力が他の目的のために必要であるときに,前記余剰プログラム実行能力を用いるユーザを代表するか,そのために1つ以上のプログラムが実行され得,そして,いくつかのこのような場合において,余剰プログラム実行能力を他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了され得(例えば,シャットダウン,アボートされ得る),自動終了されたプログラムは,将来(例えば,将来において,十分な量の余剰プログラム実行能力が前記ユーザのためのプログラム実行のために再度利用可能となった場合)に前記ユーザを代表するか,そのために自動的に再開させることができ」ることが記載されているといえる。

(d)同様に,上記Bの「加えて,上記したように,少なくともいくつかの実施形態において,1人以上のユーザはそれぞれ,当該ユーザに対して独占アクセスまたは優先アクセスが付与された余剰コンピューティング能力の関連付けられた私的プールを持ち得る。例えば,ユーザが1つ以上のコンピューティングノードの専用コンピューティング能力を持っているが当該専用能力のうち一部または全てを現在利用していない状態である場合,その未使用状態である専用能力への優先アクセスを,当該ユーザのためのプログラム実行のための余剰コンピューティング能力の私的プールとして当該ユーザに付与することができる。いくつかの実施形態において,このようなユーザのための余剰コンピューティング能力の私的プールは,当該ユーザからの明示的命令に応答して確立することができる」との記載によれば,上記「プログラム実行を管理する技術」の実施形態として,
「ユーザが1つ以上のコンピューティングノードの専用コンピューティング能力を持っているが当該専用能力のうち一部または全てを現在利用していない状態である場合,その未使用状態である専用能力への優先アクセスを,当該ユーザのためのプログラム実行のための余剰コンピューティング能力の私的プールとして当該ユーザに付与することができ,このようなユーザのための余剰コンピューティング能力の私的プールは,当該ユーザからの明示的命令に応答して確立することができ」ることが記載されているといえる。

(e)同様に,上記Bの「上記した専用コンピューティング能力および余剰コンピューティング能力の種類に加えて,PESは,オンデマンド可変プログラム実行能力をさらに含み得る。前記オンデマンド可変プログラム実行能力は,ユーザのプログラム実行のための少なくともいくつかの動的に受信された要求を満たすために利用することができる」との記載によれば,上記「プログラム実行を管理する技術」の実施形態として,
「上記した専用コンピューティング能力および余剰コンピューティング能力の種類に加えて,PESは,オンデマンド可変プログラム実行能力をさらに含み得,前記オンデマンド可変プログラム実行能力は,ユーザのプログラム実行のための少なくともいくつかの動的に受信された要求を満たすために利用することができる」ことが記載されているといえる。

(f)上記(a)?(e)から,引用例1には,
「プログラム実行を管理する技術であって,
プログラム実行の管理を,1つ以上のコンピューティングシステムの余剰コンピューティング能力を用いている複数のユーザについて行うものであり,1人以上のユーザそれぞれについて,当該関連付けられたユーザによる専用使用のために割り当てられたプログラム実行能力のうち現在未使用状態であるプログラム実行能力などに基づいて,余剰コンピューティング能力の私的プールが,当該ユーザのために維持されかつ当該ユーザと関連付けられ,このような私的プールはまた,当該関連付けられたユーザによる優先使用のために利用可能である余剰コンピューティング能力の私的プールとも関連付けられ,複数のユーザ(私的余剰コンピューティング能力プール(単数または複数)と関連付けられた1人以上のユーザ)が利用可能な一般的な非私的余剰コンピューティング能力プールに加えて,このような私的余剰コンピューティング能力プールがさらに提供され得,
これらの技術は,プログラム実行サービス(「PES」)と共に用いられ得,プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客またはサービスの他のユーザを代表するか,そのために複数のプログラムを実行し,
PESまたは他のコンピューティングノード群の少なくともいくつかの余剰プログラム実行能力または他の場合において未使用状態であるプログラム実行能力が,ユーザを代表するか,そのために一時的様態または非保証様態でプログラム実行を行うために利用することが可能であり,これにより,前記余剰プログラム実行能力は,他の目的(例えば,1つ以上の他のプログラムの実行のための優先的使用または予約使用)のために当該プログラム実行能力が必要となるときまで,このようなプログラムの実行に利用することが可能であり,このような余剰プログラム実行能力は,例えば,多様なユーザ(例えば,一般的な余剰コンピューティング能力プールを提供するPESの任意の顧客)によって利用可能な1つ以上の一般的な余剰コンピューティング能力プールの一部として利用可能であり,例えば,供給および需要を反映して価格が動的に変動するスポット市場を介してあるいは他の様態で利用することが可能であり,いくつかの場合において,余剰プログラム実行能力が他の目的のために必要であるときに前記余剰プログラム実行能力を用いるユーザを代表するか,そのために1つ以上のプログラムが実行され得,いくつかのこのような場合において,余剰プログラム実行能力を他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了され得(例えば,シャットダウン,アボートされ得る),自動終了されたプログラムは,将来(例えば,将来において,十分な量の余剰プログラム実行能力が前記ユーザのためのプログラム実行のために再度利用可能となった場合)に前記ユーザを代表するか,そのために自動的に再開させることができ,
ユーザが1つ以上のコンピューティングノードの専用コンピューティング能力を持っているが当該専用能力のうち一部または全てを現在利用していない状態である場合,その未使用状態である専用能力への優先アクセスを,当該ユーザのためのプログラム実行のための余剰コンピューティング能力の私的プールとして当該ユーザに付与することができ,このようなユーザのための余剰コンピューティング能力の私的プールは,当該ユーザからの明示的命令に応答して確立することができ,
上記した専用コンピューティング能力および余剰コンピューティング能力の種類に加えて,PESは,オンデマンド可変プログラム実行能力をさらに含み得,前記オンデマンド可変プログラム実行能力は,ユーザのプログラム実行のための少なくともいくつかの動的に受信された要求を満たすために利用することができる」ことが記載されているといえる。

(g)上記(f)で特定した技術のうち,特に上記(b)で特定した,
「これらの技術は,プログラム実行サービス(「PES」)と共に用いられ得,プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客またはサービスの他のユーザを代表するか,そのために複数のプログラムを実行」するとの点に関し,
上記Cの「図3はブロック図であり,複数のユーザによるコンピューティングノードの利用を管理するための技術を行うのに適したシステムの例示的実施形態を示す。詳細には,図3は,プログラム実行サービスシステムマネージャモジュールの実施形態の実行に適したサーバコンピューティングシステム300と,多様なユーザコンピューティングシステム350と,コンピューティングノード360と,他のコンピューティングシステム380とを示す。」との記載によれば,コンピューティングノードは,プログラム実行サービスシステムマネージャモジュールで実行される,プログラム実行サービス(「PES」)により提供されるものであり,また,当該コンピューティングノードを利用する複数のユーザのために,上記プログラム実行サービス(「PES」)は,複数のプログラムを実行することから,上記Cの「図3」に関する記載は,上記(f)で認定した技術(プログラム実行を管理する技術)を用いたプログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステムについて記載されているといえる。
そして,上記Cの「図3は,プログラム実行サービスシステムマネージャモジュールの実施形態の実行に適したサーバコンピューティングシステム300と,多様なユーザコンピューティングシステム350と,コンピューティングノード360と,他のコンピューティングシステム380とを示す。」との記載,同じく,上記Cの「プログラム実行サービスシステムマネージャモジュール340の実施形態は,メモリ330内において実行し,コンピューティングシステム350および380およびコンピューティングノード360との相互作用をネットワーク390を介して(例えば,インターネットおよび/またはワールドワイドウェブを介して,私的セルラーネットワークを介して)行う。この例示的実施形態において,PESSM340は,例えばソフトウェア命令を含み得る。これらのソフトウェア命令が実行されると,これらのソフトウェア命令は,上記した技術のうち一部または全体を行うように1つ以上のプロセッサ(例えば,CPU305)をプログラムする(上記した技術の例を挙げると,例えばPESSM340によって管理されるプログラム実行サービスと関連してユーザコンピューティングシステム350と相互作用している多様なユーザ(図示せず)による複数のコンピューティングノード360の利用の管理に関連する機能がある)。」との記載,及び,同じく,上記Cの「この例において,PESSMモジュール340は,3つの構成モジュールを含む(例えば,専用能力使用量マネージャモジュール342,余剰能力使用量マネージャモジュール344,およびオンデマンド可変能力使用量マネージャモジュール346)。専用能力使用量マネージャモジュール342は,ユーザによる専用コンピューティング能力の利用を管理する。図6は,1つの例示的実施形態におけるモジュール342の動作に対応するルーチンを示す。余剰能力使用量マネージャモジュール344は,ユーザによる一般的な余剰コンピューティング能力プールおよび私的余剰コンピューティング能力プールの利用を管理し,図5Aおよび図5Bは,1つの例示的実施形態におけるモジュール344の動作に対応するルーチンを示す。オンデマンド可変能力使用量マネージャモジュール346は,ユーザによるオンデマンド可変コンピューティング能力の利用を管理する。」との記載によれば,
上述の,プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステムは,
「プログラム実行サービスシステムマネージャモジュールの実行に適したサーバコンピューティングシステムと,多様なユーザコンピューティングシステムと,コンピューティングノードと,他のコンピューティングシステムとからなり,上記プログラム実行サービスシステムマネージャモジュールは,メモリ内において実行し,上記コンピューティングシステムおよび上記コンピューティングノードとの相互作用をネットワークを介して(例えば,インターネットおよび/またはワールドワイドウェブを介して,私的セルラーネットワークを介して)行い,上記プログラム実行サービスシステムマネージャモジュールは,例えばソフトウェア命令を含み得,これらのソフトウェア命令が実行されると,これらのソフトウェア命令は,上記した技術のうち一部または全体を行うように1つ以上のプロセッサをプログラムするものであり,上記プログラム実行サービスシステムマネージャモジュールは,3つの構成モジュールを含み(例えば,専用能力使用量マネージャモジュール,余剰能力使用量マネージャモジュール,およびオンデマンド可変能力使用量マネージャモジュール),専用能力使用量マネージャモジュールは,ユーザによる専用コンピューティング能力の利用を管理し,余剰能力使用量マネージャモジュールは,ユーザによる一般的な余剰コンピューティング能力プールおよび私的余剰コンピューティング能力プールの利用を管理し,オンデマンド可変能力使用量マネージャモジュールは,ユーザによるオンデマンド可変コンピューティング能力の利用を管理する」ものであることが記載されている。

(h)上記(g)で特定した,プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステムに関し,
上記Dの「図4は,プログラム実行サービスシステムマネージャルーチン400の例示的実施形態のフロー図である。前記ルーチンは,例えば,図1Aおよび図1BのPESSMモジュール110および180それぞれ,図2Aおよび図2Bに対応する動作を行うPESSMモジュール(図示せず),ならびに/あるいは図3のPESSMモジュール340の実行によって得られ得る」との記載によれば,上記Dの「図4」に関する記載は,上記(g)で特定したシステム(プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステム)のプログラム実行サービスシステムマネージャルーチンによる実行方法について記載されているといえる。
そして,上記Dの「図示の実施形態において,ルーチンはブロック405から開始する。ブロック405において,情報または要求が受信される。前記ルーチンはブロック410へと進んで,前記受信された要求または情報が専用能力の利用に関連するか否かを決定する。前記受信された要求または情報が専用能力の利用に関連する場合,前記ルーチンはブロック415へと進んで,専用コンピューティング能力使用量の管理に関連するルーチンを行う。このようなルーチンの1つの例示的実施形態について,図6を参照してより詳細に説明する。あるいは,ブロック410においてブロック405の情報または要求が専用能力の利用に関連しないと決定された場合,ルーチンはブロック430へと進んで,前記情報または要求が余剰コンピューティング能力の利用に関連するかを決定する。前記情報または要求余剰コンピューティング能力の利用に関連する場合,ルーチンはブロック435へと進んで,余剰コンピューティング能力使用量の管理に関連するルーチンを行う。このようなルーチンの1つの例示的実施形態について,図5A?図5Bを参照してより詳細に説明する。あるいは,ブロック405の情報または要求が余剰能力の利用に関連しないとブロック430において決定された場合,ルーチンはブロック440へと進んで,前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連するか否かを決定する。前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連する場合,ルーチンはブロック445へと進んで,オンデマンド可変コンピューティング能力使用量の管理に関連するルーチンを実行する」との記載によれば,上述の,プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステムの,プログラム実行サービスシステムマネージャルーチンによる実行方法は,
「情報または要求が受信され,
前記受信された要求または情報が専用能力の利用に関連するか否かを決定し,
前記受信された要求または情報が専用能力の利用に関連する場合,専用コンピューティング能力使用量の管理に関連するルーチンを行い,
上記情報または要求が専用能力の利用に関連しないと決定された場合,前記情報または要求が余剰コンピューティング能力の利用に関連するかを決定し,
前記情報または要求が余剰コンピューティング能力の利用に関連する場合,余剰コンピューティング能力使用量の管理に関連するルーチンを行い,
上記情報または要求が余剰能力の利用に関連しないと決定された場合,前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連するか否かを決定し,
前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連する場合,オンデマンド可変コンピューティング能力使用量の管理に関連するルーチンを実行する」ことを含むものであることが記載されている。

(i)上記(h)で特定した,プログラム実行サービスシステムマネージャルーチンによる実行方法のうち,「前記受信された要求または情報が専用能力の利用に関連する場合,専用コンピューティング能力使用量の管理に関連するルーチンを行い」に関し,
上記Eの「図6は,専用能力使用量マネージャルーチン600の例示的実施形態のフロー図である。」との記載によれば,上記Eの「図6」に関する記載は,上記(h)で特定した実行方法のうち,専用コンピューティング能力使用量の管理に関連するルーチンについて記載されている。
そして,上記Eの「図示の実施形態において,ルーチン600はブロック605から開始する。ブロック605において,要求,情報および/または他の専用能力の利用に関連する通知が受信される。その後,ブロック612において,ルーチンは,専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信されたかを決定する。専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信された場合,ルーチンはブロック614へと進み,ブロック614において,対応する情報が加入ユーザから得られ,専用プログラム実行能力の利用の加入に関連する多様な動作が行われる。例えば,いくつかの実施形態において,ユーザは,前記ユーザが専用アクセスを得ようとしている1つ以上のコンピューティングノードを選択および/または通知し得る。・・・(中略)・・・加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,ルーチンはブロック616へと進んで,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられる。他に記載のように,プログラム実行能力(例えば,1つ以上のコンピューティングノード)は,特定の加入専用能力ユーザによって用いられるように,多様な実施形態において多様な様態で割り当てられかつ/またはあてがわれる。」との記載,及び,同じく,上記Eの「ブロック616の後,ルーチンはブロック618へと進んで,加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いるかを任意選択的に決定し,加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存する。例えば,いくつかの実施形態において,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能となり,これにより,このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能となる。・・・(中略)・・・さらに他の実施形態において,このようなユーザのための私的余剰能力プールを生成するかについての決定は,他の時期においても行われ得る(例えば,このような専用能力ユーザからの余剰コンピューティング能力リソースの利用についての要求が受信されたとき)。さらに,少なくともいくつかの実施形態において,加入者ユーザは,このようなユーザのための私的余剰コンピューティング能力プールの他の局面を構成し得る(例えば,専用能力利用のうち私的余剰能力プールの一部として利用可能である量(例えば,全てのコンピューティングノード,指定されたパーセンテージまたは指定された数のコンピューティングノード),私的余剰能力プールを利用することが可能なユーザ,私的余剰能力プールを利用可能とするかまたは利用不可能とすべき特定の期間および/または他の基準)」との記載によれば,上述の,専用コンピューティング能力使用量の管理に関連するルーチンは,
「要求,情報および/または他の専用能力の利用に関連する通知が受信され,
その後,専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信されたかを決定し,
専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信された場合,対応する情報が加入ユーザから得られ,専用プログラム実行能力の利用の加入に関連する多様な動作が行われ,例えば,ユーザは,前記ユーザが専用アクセスを得ようとしている1つ以上のコンピューティングノードを選択および/または通知し得,
加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられ,
加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いるかを任意選択的に決定し,
加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能となり,これにより,このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能となり,
加入者ユーザは,このようなユーザのための私的余剰コンピューティング能力プールの他の局面を構成し得(例えば,専用能力利用のうち私的余剰能力プールの一部として利用可能である量(例えば,全てのコンピューティングノード,指定されたパーセンテージまたは指定された数のコンピューティングノード),私的余剰能力プールを利用することが可能なユーザ,私的余剰能力プールを利用可能とするかまたは利用不可能とすべき特定の期間および/または他の基準)」るものであることが記載されているといえる。

(j)上記(h)で特定した,プログラム実行サービスシステムマネージャルーチンによる実行方法のうち,「前記情報または要求が余剰コンピューティング能力の利用に関連する場合,余剰コンピューティング能力使用量の管理に関連するルーチンを行い」に関し,
上記Fの「図5A?図5Bは,余剰能力使用量マネージャルーチン500の例示的実施形態のフロー図である。」との記載によれば,上記Fの「図5A?図5B」に関する記載は,上記(h)で特定した実行方法のうち,余剰コンピューティング能力使用量の管理に関連するルーチンについて記載されているといえる。
そして,上記Fの「図示の実施形態において,ルーチン500が呼び出されると,余剰能力の利用に関連する要求,情報および/または他の通知がブロック502においてルーチンに提供される。その後,ブロック505において,ルーチンは,プログラム実行能力を利用可能な余剰プログラム実行能力へと付加すべきである旨の通知が受信されたかを決定する(この決定は,例えば,図4のブロック475について得られる情報に基づくか,または,図6のブロック635を参照した専用コンピューティング能力の利用の終了によってトリガされる)。そうである場合,ルーチンはブロック510へと進み,前記通知されたプログラム実行能力を利用可能なプログラム実行能力へと付加する。詳細には,前記余剰プログラム実行能力が私的余剰コンピューティング能力プールに対応する場合,前記私的プールは,前記指示された余剰能力を受信するように選択され,他の場合において,一般的な余剰コンピューティング能力プールが選択される。加えて,いくつかの実施形態において,新規私的余剰能力プールを生成せよとの要求がブロック510を参照してあるいは以下に説明するようなブロック595を参照して受信され,取り扱われ得る。例えば,いくつかの実施形態において,ルーチンは,このような指示されたプログラム実行能力(例えば,1つ以上の特定のコンピューティングノード)の1つ以上の通知を利用可能なプログラム実行能力の選択されたプールへと付加し得る。いくつかの実施形態において,私的余剰能力プールおよび一般的な余剰能力プールについて上述したような様態でかつ/または他の様態で複数のプールが提供され得る(例えば,多様な異なる種類のプログラム実行能力が利用可能とされ得,プログラム実行能力の種類と関連付けられた対応する私的プールおよび/または一般的なプールへとグループ分けされ得る)。」との記載,及び,同じく,上記Fの「あるいは,余剰プログラム実行能力への通知が受信されていないとブロック505において決定された場合,ルーチンはブロック515へと進んで,利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたかについて決定する。利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたと決定された場合,ルーチンはブロック520へと進んで,(例えば,例えば余剰能力を用いて現在実行している1つ以上のプログラムについての通知されている特定のプログラム実行能力に基づいて)余剰能力を除去すべき対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択する。その後,ルーチンは,前記通知されたプログラム実行能力を前記選択された能力プールについて利用可能な余剰プログラム実行能力から除去し,これにより,前記通知されたプログラム実行能力(または相当する量のプログラム実行能力)は,前記選択された能力プールの余剰能力ユーザのためのプログラム実行のための余剰プログラム実行能力として利用することができなくなる。」との記載,及び,同じく,上記Fの「あるいは,利用可能なプログラム実行能力からプログラム実行能力を除去せよとの通知が受信されていないとブロック515において決定された場合,ルーチンはこの場合はブロック525へと進んで,一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信されたか(またはこのような実行について以前に予定されていた要求がトリガされたか)を決定する。一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信された(あるいは,このような実行について以前に予定されていた要求がトリガされた)と決定された場合,ルーチンはブロック530へと進んで,前記要求に基づいて1つ以上のプログラムの実行を行う際に用いられるべき余剰能力の供給源となる,対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択する」との記載によれば,上述の,余剰コンピューティング能力使用量の管理に関連するルーチンは,
「余剰能力の利用に関連する要求,情報および/または他の通知が提供され,
その後,プログラム実行能力を利用可能な余剰プログラム実行能力へと付加すべきである旨の通知が受信されたかを決定し,
そうである場合,前記通知されたプログラム実行能力を利用可能なプログラム実行能力へと付加し,
加えて,新規私的余剰能力プールを生成せよとの要求が受信され,取り扱われ得,例えば,このような指示されたプログラム実行能力(例えば,1つ以上の特定のコンピューティングノード)の1つ以上の通知を利用可能なプログラム実行能力の選択されたプールへと付加し得,
余剰プログラム実行能力への通知が受信されていないと決定された場合,利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたかについて決定し,
利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたと決定された場合,余剰能力を除去すべき対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択し,
その後,前記通知されたプログラム実行能力を前記選択された能力プールについて利用可能な余剰プログラム実行能力から除去し,これにより,前記通知されたプログラム実行能力(または相当する量のプログラム実行能力)は,前記選択された能力プールの余剰能力ユーザのためのプログラム実行のための余剰プログラム実行能力として利用することができなくなり,
あるいは,利用可能なプログラム実行能力からプログラム実行能力を除去せよとの通知が受信されていないと決定された場合,一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信されたか(またはこのような実行について以前に予定されていた要求がトリガされたか)を決定し,
一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信された(あるいは,このような実行について以前に予定されていた要求がトリガされた)と決定された場合,前記要求に基づいて1つ以上のプログラムの実行を行う際に用いられるべき余剰能力の供給源となる,対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択す」るものであることが記載されているといえる。

(k)上記(g)のとおり,「プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステム」は,上記(f)で特定した「プログラム実行を管理する技術」を用いるものであり,また,上記(h)のとおり,「プログラム実行サービスシステムマネージャルーチンによる実行方法」は,上記「プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステム」において行われるものであるから,上記(a)?(j)において引用例1に記載されているとした事項は,「プログラム実行を管理する技術」を用いた実行方法,であるということができる。

以上の検討から,引用例1には,次のとおりの発明(以下,「引用発明」という。)が記載されていると認められる。

「プログラム実行を管理する技術を用いた実行方法であって,
プログラム実行の管理を,1つ以上のコンピューティングシステムの余剰コンピューティング能力を用いている複数のユーザについて行うものであり,1人以上のユーザそれぞれについて,当該関連付けられたユーザによる専用使用のために割り当てられたプログラム実行能力のうち現在未使用状態であるプログラム実行能力などに基づいて,余剰コンピューティング能力の私的プールが,当該ユーザのために維持されかつ当該ユーザと関連付けられ,このような私的プールはまた,当該関連付けられたユーザによる優先使用のために利用可能である余剰コンピューティング能力の私的プールとも関連付けられ,複数のユーザ(私的余剰コンピューティング能力プール(単数または複数)と関連付けられた1人以上のユーザ)が利用可能な一般的な非私的余剰コンピューティング能力プールに加えて,このような私的余剰コンピューティング能力プールがさらに提供され得,
これらの技術は,プログラム実行サービス(「PES」)と共に用いられ得,プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客またはサービスの他のユーザを代表するか,そのために複数のプログラムを実行し,
PESまたは他のコンピューティングノード群の少なくともいくつかの余剰プログラム実行能力または他の場合において未使用状態であるプログラム実行能力が,ユーザを代表するか,そのために一時的様態または非保証様態でプログラム実行を行うために利用することが可能であり,これにより,前記余剰プログラム実行能力は,他の目的(例えば,1つ以上の他のプログラムの実行のための優先的使用または予約使用)のために当該プログラム実行能力が必要となるときまで,このようなプログラムの実行に利用することが可能であり,このような余剰プログラム実行能力は,例えば,多様なユーザ(例えば,一般的な余剰コンピューティング能力プールを提供するPESの任意の顧客)によって利用可能な1つ以上の一般的な余剰コンピューティング能力プールの一部として利用可能であり,例えば,供給および需要を反映して価格が動的に変動するスポット市場を介してあるいは他の様態で利用することが可能であり,いくつかの場合において,余剰プログラム実行能力が他の目的のために必要であるときに前記余剰プログラム実行能力を用いるユーザを代表するか,そのために1つ以上のプログラムが実行され得,いくつかのこのような場合において,余剰プログラム実行能力を他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了され得(例えば,シャットダウン,アボートされ得る),自動終了されたプログラムは,将来(例えば,将来において,十分な量の余剰プログラム実行能力が前記ユーザのためのプログラム実行のために再度利用可能となった場合)に前記ユーザを代表するか,そのために自動的に再開させることができ,
ユーザが1つ以上のコンピューティングノードの専用コンピューティング能力を持っているが当該専用能力のうち一部または全てを現在利用していない状態である場合,その未使用状態である専用能力への優先アクセスを,当該ユーザのためのプログラム実行のための余剰コンピューティング能力の私的プールとして当該ユーザに付与することができ,このようなユーザのための余剰コンピューティング能力の私的プールは,当該ユーザからの明示的命令に応答して確立することができ,
上記した専用コンピューティング能力および余剰コンピューティング能力の種類に加えて,PESは,オンデマンド可変プログラム実行能力をさらに含み得,前記オンデマンド可変プログラム実行能力は,ユーザのプログラム実行のための少なくともいくつかの動的に受信された要求を満たすために利用することができる,ものであり,
上記,プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステムは,
プログラム実行サービスシステムマネージャモジュールの実行に適したサーバコンピューティングシステムと,多様なユーザコンピューティングシステムと,コンピューティングノードと,他のコンピューティングシステムとからなり,上記プログラム実行サービスシステムマネージャモジュールは,メモリ内において実行し,上記コンピューティングシステムおよび上記コンピューティングノードとの相互作用をネットワークを介して(例えば,インターネットおよび/またはワールドワイドウェブを介して,私的セルラーネットワークを介して)行い,上記プログラム実行サービスシステムマネージャモジュールは,例えばソフトウェア命令を含み得,これらのソフトウェア命令が実行されると,これらのソフトウェア命令は,上記した技術のうち一部または全体を行うように1つ以上のプロセッサをプログラムするものであり,上記プログラム実行サービスシステムマネージャモジュールは,3つの構成モジュールを含み(例えば,専用能力使用量マネージャモジュール,余剰能力使用量マネージャモジュール,およびオンデマンド可変能力使用量マネージャモジュール),専用能力使用量マネージャモジュールは,ユーザによる専用コンピューティング能力の利用を管理し,余剰能力使用量マネージャモジュールは,ユーザによる一般的な余剰コンピューティング能力プールおよび私的余剰コンピューティング能力プールの利用を管理し,オンデマンド可変能力使用量マネージャモジュールは,ユーザによるオンデマンド可変コンピューティング能力の利用を管理する,ものであり,
上記,プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステムのプログラム実行サービスシステムマネージャルーチンによる実行方法は,
情報または要求が受信され,
前記受信された要求または情報が専用能力の利用に関連するか否かを決定し,
前記受信された要求または情報が専用能力の利用に関連する場合,専用コンピューティング能力使用量の管理に関連するルーチンを行い,
上記情報または要求が専用能力の利用に関連しないと決定された場合,前記情報または要求が余剰コンピューティング能力の利用に関連するかを決定し,
前記情報または要求が余剰コンピューティング能力の利用に関連する場合,余剰コンピューティング能力使用量の管理に関連するルーチンを行い,
上記情報または要求が余剰能力の利用に関連しないと決定された場合,前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連するか否かを決定し,
前記情報または要求がオンデマンド可変コンピューティング能力の利用に関連する場合,オンデマンド可変コンピューティング能力使用量の管理に関連するルーチンを実行する,
ことを含み,
上記専用コンピューティング能力使用量の管理に関連するルーチンは,
要求,情報および/または他の専用能力の利用に関連する通知が受信され,
その後,専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信されたかを決定し,
専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信された場合,対応する情報が加入ユーザから得られ,専用プログラム実行能力の利用の加入に関連する多様な動作が行われ,例えば,ユーザは,前記ユーザが専用アクセスを得ようとしている1つ以上のコンピューティングノードを選択および/または通知し得,
加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられ,
加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いるかを任意選択的に決定し,
加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能となり,これにより,このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能となり,
加入者ユーザは,このようなユーザのための私的余剰コンピューティング能力プールの他の局面を構成し得(例えば,専用能力利用のうち私的余剰能力プールの一部として利用可能である量(例えば,全てのコンピューティングノード,指定されたパーセンテージまたは指定された数のコンピューティングノード),私的余剰能力プールを利用することが可能なユーザ,私的余剰能力プールを利用可能とするかまたは利用不可能とすべき特定の期間および/または他の基準)る,ものであり,
上記余剰コンピューティング能力使用量の管理に関連するルーチンは,
余剰能力の利用に関連する要求,情報および/または他の通知が提供され,
その後,プログラム実行能力を利用可能な余剰プログラム実行能力へと付加すべきである旨の通知が受信されたかを決定し,
そうである場合,前記通知されたプログラム実行能力を利用可能なプログラム実行能力へと付加し,
加えて,新規私的余剰能力プールを生成せよとの要求が受信され,取り扱われ得,例えば,このような指示されたプログラム実行能力(例えば,1つ以上の特定のコンピューティングノード)の1つ以上の通知を利用可能なプログラム実行能力の選択されたプールへと付加し得,
余剰プログラム実行能力への通知が受信されていないと決定された場合,利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたかについて決定し,
利用可能な余剰プログラム実行能力からプログラム実行能力を除去せよとの通知が受信されたと決定された場合,余剰能力を除去すべき対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択し,
その後,前記通知されたプログラム実行能力を前記選択された能力プールについて利用可能な余剰プログラム実行能力から除去し,これにより,前記通知されたプログラム実行能力(または相当する量のプログラム実行能力)は,前記選択された能力プールの余剰能力ユーザのためのプログラム実行のための余剰プログラム実行能力として利用することができなくなり,
あるいは,利用可能なプログラム実行能力からプログラム実行能力を除去せよとの通知が受信されていないと決定された場合,一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信されたか(またはこのような実行について以前に予定されていた要求がトリガされたか)を決定し,
一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信された(あるいは,このような実行について以前に予定されていた要求がトリガされた)と決定された場合,前記要求に基づいて1つ以上のプログラムの実行を行う際に用いられるべき余剰能力の供給源となる,対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択する,ものである,
実行方法。」

2-2-3 対比

本件補正発明と引用発明とを対比する。

(a)引用発明は,「プログラム実行を管理する技術を用いた実行方法」であり,「プログラム実行サービス(「PES」)と共に用いられ得,プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客またはサービスの他のユーザを代表するか,そのために複数のプログラムを実行」するものであって,この場合の「ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス」は,「複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)」というリソースを提供するものであり,また,当該「プログラム実行サービス」を実行するシステムは,「上記プログラム実行サービスシステムマネージャモジュールは,メモリ内において実行し,上記コンピューティングシステムおよび上記コンピューティングノードとの相互作用をネットワークを介して(例えば,インターネットおよび/またはワールドワイドウェブを介して,私的セルラーネットワークを介して)行」うものであって,コンピューティングシステムおよびコンピューティングノードとインターネットを介して実行される当該構成は,クラウドコンピューティング環境といいうるものであり,さらに,上記「プログラム実行サービス」を実行するシステムが,「プログラム実行サービスシステムマネージャモジュールの実行に適したサーバコンピューティングシステム」を含むことからして,上記「実行方法」はコンピュータにより実行されるものであるといえる。
してみると,引用発明である,「プログラム実行サービス(「PES」)と共に用いられ得,プログラム実行サービスは,サービス(例えば,ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)を提供するプログラム実行サービス)の複数の顧客またはサービスの他のユーザを代表するか,そのために複数のプログラムを実行」するものであり,「プログラム実行サービス(「PES」)が提供する,ユーザプログラム実行のための複数のコンピューティングノードの,複数のユーザによる利用を管理するために適したシステムは,プログラム実行サービスシステムマネージャモジュールの実行に適したサーバコンピューティングシステムと,多様なユーザコンピューティングシステムと,コンピューティングノードと,他のコンピューティングシステムとからなり,上記プログラム実行サービスシステムマネージャモジュールは,メモリ内において実行し,上記コンピューティングシステムおよび上記コンピューティングノードとの相互作用をネットワークを介して(例えば,インターネットおよび/またはワールドワイドウェブを介して,私的セルラーネットワークを介して)行」う,「プログラム実行を管理する技術を用いた実行方法」は,本件補正発明である,「クラウドコンピューティング環境においてリソースを提供するための,コンピュータにより実行される方法」に対応するといえる。

(b)引用発明である「プログラム実行を管理する技術を用いた実行方法」は,「プログラム実行サービスシステムマネージャルーチン」において,「受信された要求または情報が専用能力の利用に関連する場合,専用コンピューティング能力使用量の管理に関連するルーチンを行」い,当該「専用コンピューティング能力使用量の管理に関連するルーチン」では,「専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信された場合,対応する情報が加入ユーザから得られ,専用プログラム実行能力の利用の加入に関連する多様な動作が行われ,例えば,ユーザは,前記ユーザが専用アクセスを得ようとしている1つ以上のコンピューティングノードを選択および/または通知し得,加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられ」るものである。
この場合の「専用プログラム実行能力」とは,「プログラム実行能力」の一つであり,プログラム実行サービス(「PES」)によって提供される「コンピューティングノード」に相当し,また,「ユーザプログラム実行のための複数のコンピューティングノード(例えば,1つ以上の物理的なコンピューティングシステム上においてホストされる複数の物理的なコンピューティングシステムおよび/または仮想マシン)」として例示される「仮想マシン」に相当するといえることから,専用の仮想マシンといいうるものである。
そして,引用発明では,上記「専用プログラム実行能力」に対し,上記「専用コンピューティング能力使用量の管理に関連するルーチン」において,「加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後」に,「適切な量」だけ「割り当て」ているから,「適切な量」を測る上で「専用プログラム実行能力」の「量」を,上記「専用コンピューティング能力使用量の管理に関連するルーチン」の中で,当然に取得しているものと解される。

(c)同様に,引用発明の上記「専用コンピューティング能力使用量の管理に関連するルーチン」では,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いるかを任意選択的に決定し」,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能となり,これにより,このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能とな」るよう行っている。
この場合の,「ユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能とな」る,「少なくとも一部」の「専用コンピューティング能力」とは,「余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象」として決定し,「私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存」することで,「他の場合においてユーザによって利用されていないとき」に,「ユーザが後で利用することが可能とな」るものであって,これは,「プログラム実行を管理する技術」を示す,「関連付けられたユーザによる専用使用のために割り当てられたプログラム実行能力のうち現在未使用状態であるプログラム実行能力などに基づいて,余剰コンピューティング能力の私的プールが,当該ユーザのために維持されかつ当該ユーザと関連付けられ,このような私的プールはまた,当該関連付けられたユーザによる優先使用のために利用可能である余剰コンピューティング能力の私的プールとも関連付けられ」,「PESまたは他のコンピューティングノード群の少なくともいくつかの余剰プログラム実行能力または他の場合において未使用状態であるプログラム実行能力が,ユーザを代表するか,そのために一時的様態または非保証様態でプログラム実行を行うために利用することが可能であり,これにより,前記余剰プログラム実行能力は,他の目的(例えば,1つ以上の他のプログラムの実行のための優先的使用または予約使用)のために当該プログラム実行能力が必要となるときまで,このようなプログラムの実行に利用することが可能であり,このような余剰プログラム実行能力は,例えば,多様なユーザ(例えば,一般的な余剰コンピューティング能力プールを提供するPESの任意の顧客)によって利用可能な1つ以上の一般的な余剰コンピューティング能力プールの一部として利用可能であり」,「ユーザが1つ以上のコンピューティングノードの専用コンピューティング能力を持っているが当該専用能力のうち一部または全てを現在利用していない状態である場合,その未使用状態である専用能力への優先アクセスを,当該ユーザのためのプログラム実行のための余剰コンピューティング能力の私的プールとして当該ユーザに付与することができ,このようなユーザのための余剰コンピューティング能力の私的プールは,当該ユーザからの明示的命令に応答して確立することができ」るとされているところの,「余剰コンピューティング能力の私的プール」に関連付けられることで,関連付けられたユーザの優先使用を可能とする「余剰プログラム実行能力」に相当するといえ,そして,「余剰コンピューティング能力の私的プール」に関連付けられたユーザは,当該「余剰プログラム実行能力」が他の場合において利用されることを許容するとともに,上記ユーザにとって将来必要となった場合には優先的に利用することをユーザ自ら可能としているから,上記(b)で特定した専用の仮想マシンといいうる「専用プログラム実行能力」とは異なり,将来において専用の仮想マシンとして利用しうるものであり,そして,上記「余剰コンピューティング能力の私的プール」に関連付けられたユーザは,上記「余剰プログラム実行能力」を将来において専用の仮想マシンとして利用する権利を当然に確保しているといえる。
一方,本件補正発明の「スタンバイ仮想マシン確保」とは,「1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保」であって,「変換」された「専用の仮想マシン」は,その後,「複数のタスクを実行する」ために使用されることからして,将来において専用の仮想マシンとして利用する権利を確保すること,といいうるから,引用発明におけるユーザによる「余剰プログラム実行能力」の優先利用を可能とすることと,本件補正発明における「スタンバイ仮想マシン確保」とは,将来において専用の仮想マシンとして利用する権利を確保することである点で共通しているといえる。
そして,上述のとおり,引用発明の上記「余剰プログラム実行能力」は,「専用コンピューティング能力使用量の管理に関連するルーチン」において,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いるかを任意選択的に決定」した上で利用されるところ,上記「少なくとも一部」を「決定」する上で「余剰プログラム実行能力」の量の取得が当然必要であるし,また,上記「余剰コンピューティング能力の私的プール」の「余剰プログラム実行能力」の余剰能力としての利用についても,「プログラム実行サービスシステムマネージャルーチン」における「前記情報または要求が余剰コンピューティング能力の利用に関連する場合,余剰コンピューティング能力使用量の管理に関連するルーチンを行」うことで実行される「余剰コンピューティング能力使用量の管理に関連するルーチン」において,「利用可能なプログラム実行能力からプログラム実行能力を除去せよとの通知が受信されていないと決定された場合,一定量の利用可能な余剰プログラム実行能力上において余剰能力ユーザを代表するか,そのために1つ以上のプログラムを実行せよとの要求が受信されたか(またはこのような実行について以前に予定されていた要求がトリガされたか)を決定し」,「1つ以上のプログラムの実行を行う際に用いられるべき余剰能力の供給源となる,対応する私的余剰能力プールおよび/または一般的な余剰能力プールを選択」して行っているから,プログラムを実行する上で必要な「一定量の利用可能な余剰プログラム実行能力」における「量」を,上記「余剰コンピューティング能力使用量の管理に関連するルーチン」の中で,当然に取得しているものと解される。
また,上述のとおり,引用発明におけるユーザによる「余剰プログラム実行能力」の優先利用を可能とすることと,本件補正発明における「スタンバイ仮想マシン確保」とは,将来において専用の仮想マシンとして利用する権利を確保することである点で共通するところ,引用発明の,上記「余剰プログラム実行能力」の優先利用を可能とするよう関連付けられた「余剰コンピューティング能力の私的プール」は,本件補正発明の「スタンバイ仮想マシン確保」に関連付けられた「仮想マシンプール」に相当し,同様に,引用発明の,上記「余剰プログラム実行能力」の取得される「量」と,本件補正発明の「スタンバイ仮想マシン確保の数」とは,将来において専用の仮想マシンとして利用するよう権利を確保した数である点で共通し,さらに,本件補正発明において,「スタンバイ仮想マシン確保の数」を「追跡」する上で,当然に「スタンバイ仮想マシン確保の数」を取得していると解されることから,「スタンバイ仮想マシン確保の数」を“取得”していると捉えることができる。
そうすると,後記する点で相違するものの,本件補正発明の「仮想マシンプールに関連付けられた仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の数を追跡するステップ」と,引用発明の「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いるかを任意選択的に決定し」,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能となり,これにより,このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能とな」るよう行うところの専用コンピューティング能力である「余剰プログラム実行能力」について,使用量を管理する上で量を取得することとは,“仮想マシンプールに関連付けられた仮想マシンの1つ又は複数の将来において専用の仮想マシンとして利用するよう権利を確保した数を取得するステップ”である点で共通するといえる。

(d)また,上記(b)における「専用プログラム実行能力」についても,引用発明の,「専用プログラム実行能力」の取得される「量」は,本件補正発明の「専用の仮想マシンの数」に相当し,また,引用発明は,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる」と決定した場合において,「コンピューティング能力のうち少なくとも一部」が上記(c)で示した「余剰プログラム実行能力」として優先利用されるものであるから,それとは異なる「専用プログラム実行能力」についてもユーザに関連付けられた上記「余剰コンピューティング能力の私的プール」に関連付けられているといえ,それが,本件補正発明の「専用の仮想マシン」に関連付けられた「仮想マシンプール」に相当するといえる。
そして,引用発明の「専用コンピューティング能力使用量の管理に関連するルーチン」では,「要求,情報および/または他の専用能力の利用に関連する通知が受信され」ており,これにより,「専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信された場合」に,「ユーザは,前記ユーザが専用アクセスを得ようとしている1つ以上のコンピューティングノードを選択および/または通知し得,加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられ」ていることから,当該ルーチンの中で,引用発明は,「専用プログラム実行能力」の量を所定の量(第1の量)だけ増加させることを求める要求を受信しているといえ,同様に,「余剰プログラム実行能力」についても,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能とな」るとともに,「余剰プログラム実行能力が他の目的のために必要であるときに,前記余剰プログラム実行能力を用いるユーザを代表するか,そのために1つ以上のプログラムが実行され得,そして,いくつかのこのような場合において,余剰プログラム実行能力を他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了され得(例えば,シャットダウン,アボートされ得る)」ることからして,「余剰コンピューティング能力の私的プール」に関連付けられたユーザが,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部」を自らのために利用せず,「余剰プログラム実行能力」として「他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了」されるようにすることは,「余剰プログラム実行能力」の量を所定の量(第2の量)だけ増加させていることに他ならず,また,当該増加を,「余剰プログラム実行能力が他の目的のために必要であるとき」を契機として求める信号を,上記「専用コンピューティング能力使用量の管理に関連するルーチン」において当然に受信しているものと解される。
そうすると,後記する点で相違するものの,本件補正発明の「ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンの数を第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数のスタンバイ仮想マシン確保の数を第2の量だけ増加させることを求める要求を受信するステップ」と,引用発明の「要求,情報および/または他の専用能力の利用に関連する通知が受信され,その後,専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信されたかを決定し,専用プログラム実行能力の利用について加入しようとしているユーザからの要求が受信された場合,対応する情報が加入ユーザから得られ,専用プログラム実行能力の利用の加入に関連する多様な動作が行われ,例えば,ユーザは,前記ユーザが専用アクセスを得ようとしている1つ以上のコンピューティングノードを選択および/または通知し得,加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられ」,及び,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能とな」るとともに,「余剰プログラム実行能力が他の目的のために必要であるときに,前記余剰プログラム実行能力を用いるユーザを代表するか,そのために1つ以上のプログラムが実行され得,そして,いくつかのこのような場合において,余剰プログラム実行能力を他の目的のために利用することができるよう,これらの1つ以上のプログラムの実行が自動的にPESによって終了され得(例えば,シャットダウン,アボートされ得る)」ることとは,“ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンの数を第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数の将来において専用の仮想マシンとして利用するよう権利を確保した数を第2の量だけ増加させることを求める要求を受信するステップ”である点で共通するといえる。

(e)上記(c)のとおり,引用発明における,ユーザによる「余剰プログラム実行能力」の優先利用を可能とすることは,将来において専用の仮想マシンとして利用する権利を確保しているといえ,したがって,引用発明の「専用コンピューティング能力使用量の管理に関連するルーチン」における,「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能とな」るようにすることで,「このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能とな」ることは,「余剰コンピューティング能力の私的プール」に関連付けられたユーザが,関連付けられた「余剰プログラム実行能力」を変更して,専用の仮想マシンである「専用プログラム実行能力」として後で利用することに他ならない。
そうすると,後記する点で相違するものの,本件補正発明の「前記仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変換するステップ」と,引用発明の「加入者に割り当てられたコンピューティング能力のうち少なくとも一部を,加入者(および/または他の指定ユーザ)によって用いられる余剰コンピューティング能力の私的プールの一部としてかつ専用使用対象として,用いる場合,前記私的余剰コンピューティング能力プールの利用を可能化するための対応する情報を保存し,例えば,決定された能力加入者ユーザについて,私的余剰コンピューティング能力プールが可能化されて利用可能となり,これにより,このようなユーザへと割り当てられた専用コンピューティング能力が他の場合においてユーザによって利用されていないときに,前記割り当てられた専用コンピューティング能力全てを私的余剰コンピューティング能力プール中において前記ユーザが後で利用することが可能とな」るよう行うこととは,“前記仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数の将来において専用の仮想マシンとして利用する権利の確保の中の少なくとも1つの将来において専用の仮想マシンとして利用する権利の確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変更するステップ”である点で共通するといえる。

(f)引用発明は,「専用コンピューティング能力使用量の管理に関連するルーチン」において,「加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられ」,このように割り当てられた「専用プログラム実行能力」は,「プログラム実行サービス」の中で,「複数のプログラムを実行」するために用いられるから,引用発明の当該「複数のプログラム」の「実行」は,本件補正発明の「1つまたは複数のタスク」に相当し,また,引用発明の上記「複数のプログラム」の「実行」が,「余剰コンピューティング能力の私的プール」に関連付けられたユーザのものであることからして,「余剰コンピューティング能力の私的プール」に関するものであることも明らかである。
そうすると,後記する点で相違するものの,本件補正発明の「前記1つ又は複数の変換された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップ」と,引用発明の「加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報を提供した後,適切な量の要求されたプログラム実行能力が加入ユーザによる専用使用(可能な場合)のために割り当てられ」た「専用プログラム実行能力」を用いて,「プログラム実行サービス」の中で,「複数のプログラムを実行」することとは,“前記1つ又は複数の変更された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップ”である点で共通するといえる。

以上のことから,本件補正発明と引用発明との一致点及び相違点は,次のとおりである。

(一致点)
クラウドコンピューティング環境においてリソースを提供するための,コンピュータにより実行される方法であって,
仮想マシンプールに関連付けられた仮想マシンの1つ又は複数の将来において専用の仮想マシンとして利用するよう権利を確保した数を取得するステップと,
ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンの数を第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数の将来において専用の仮想マシンとして利用するよう権利を確保した数を第2の量だけ増加させることを求める要求を受信するステップと,
前記仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数の将来において専用の仮想マシンとして利用する権利の確保の中の少なくとも1つの将来において専用の仮想マシンとして利用する権利の確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変更するステップと,
前記1つ又は複数の変更された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップと,
を備える,
方法。

(相違点1)
仮想マシンプールに関連付けられた仮想マシンの1つ又は複数の将来において専用の仮想マシンとして利用するよう権利を確保した数を取得するステップに関し,
本件補正発明では,「スタンバイ仮想マシン確保」の数を「追跡」するものであるのに対して,
引用発明では,そのような特定はなされていない点。

(相違点2)
ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンの数を第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数の将来において専用の仮想マシンとして利用するよう権利を確保した数を第2の量だけ増加させることを求める要求を受信するステップに関し,
本件補正発明では,「スタンバイ仮想マシン確保」の数を増加するものであるのに対して,
引用発明では,そのような特定はなされていない点。

(相違点3)
仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数の将来において専用の仮想マシンとして利用する権利の確保の中の少なくとも1つの将来において専用の仮想マシンとして利用する権利の確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変更するステップに関し,
本件補正発明では,「スタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変換する」ものであるのに対して,
引用発明では,そのような特定はなされていない点。

(相違点4)
1つ又は複数の変更された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップに関し,
本件補正発明では,前記1つ又は複数の「変換」された専用の仮想マシンを使用しているのに対して,
引用発明では,そのような特定はなされていない点。

(相違点5)
本件補正発明では,「前記1つ又は複数のスタンバイ仮想マシン確保は,仮想マシンの割り当てではなく,前記1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保である」のに対して,
引用発明では,そのような特定はなされていない点。


2-2-4 当審の判断

上記相違点について検討する。

(相違点1)ないし(相違点5)は,主として「スタンバイ仮想マシン確保」と,それが意味する「複数の専用の仮想マシンに変換する権利」に関する事項であるので,まとめて検討する。

相違点5に係る請求項1の記載である「前記1つ又は複数のスタンバイ仮想マシン確保は,仮想マシンの割り当てではなく,前記1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保である」との記載によれば,「スタンバイ仮想マシン確保」とは,「仮想マシンの割り当てではな」いもので,かつ,「将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保」である,と読み取れるが,その中で,上記「スタンバイ仮想マシン確保」が「複数の専用の仮想マシンに変換」する対象についても,「スタンバイ仮想マシン確保」により確保された「1つ又は複数の仮想マシン」と規定されており,上記「スタンバイ仮想マシン確保」が,“何”を「複数の専用の仮想マシン」に「変換」するものであるのか,必ずしも明確に把握することはできないが,請求項1の従属項である請求項3に「前記変換するステップは,アイドルな仮想マシンを前記仮想マシンプールに割り当てられた前記専用の仮想マシンに変換するステップを含む」と,同様に,請求項4に「前記変換するステップは,プリエンプション可能な仮想マシンを前記仮想マシンプールに割り当てられた前記専用の仮想マシンに変換するステップを含む」と,また,関連する発明の詳細な説明の記載に【0024】「[0030]スタンバイ仮想マシン確保は,仮想マシンの割り振りでも,割り当てでもない。そうではなく,スタンバイ仮想マシン確保は,アイドルな仮想マシン,またはプリエンプション可能な仮想マシンが,スタンバイ確保に関連付けられたユーザーまたはプールに割り当てられた専用の仮想マシンに変換される将来における権利を確保する。プリエンプション可能なジョブは,スタンバイ確保に関連付けられたプールもしくはアカウント,異なる別のプール,または異なる別のアカウントに関連付けられたジョブであり得る。スタンバイ確保がプールまたはアカウントによって行われる際,仮想マシンクラスターからの仮想マシンが,そのプール,またはそのアカウントに割り当てられることはない。そうではなく,その仮想マシンクラスターに対応するスタンバイ確保の数のカウントが記録されて,十分な数のアイドルな仮想マシンまたはプリエンプション可能な仮想マシンが,その仮想マシンクラスターに対応するスタンバイ確保を満たすように利用可能であるようにされる。」と,それぞれ記載されていることを総合すると,上記「スタンバイ仮想マシン確保」が将来において専用の仮想マシンに変換する対象には,アイドルな仮想マシン,または,プリエンプション可能な仮想マシン,が含まれる,ものと認められる。

ここで,上記2-2-3の(e)のとおり,引用発明は,ユーザによる優先利用が可能であるが他の目的に利用できる「余剰プログラム実行能力」を,ユーザの専用の仮想マシンである「専用プログラム実行能力」に変更するものであるが,変更する対象である当該「余剰プログラム実行能力」については,「ユーザが1つ以上のコンピューティングノードの専用コンピューティング能力を持っているが当該専用能力のうち一部または全てを現在利用していない状態である場合,その未使用状態である専用能力への優先アクセスを,当該ユーザのためのプログラム実行のための余剰コンピューティング能力の私的プールとして当該ユーザに付与する」とされていることから,「現在利用していない状態」すなわちアイドル状態の仮想マシンであるといえ,そして,上記「余剰プログラム実行能力」から「専用プログラム実行能力」への変更を,引用発明では,提供された「加入者が所望の専用プログラム実行能力の種類および/または量に関連する情報」を,所望の「専用プログラム実行能力」に反映させることで実現していることからして,上記「余剰プログラム実行能力」に,上記「種類および/または量に関連する情報」を反映させることで,上記所望の「専用プログラム実行能力」へ「変換」するよう構成する程度のことは,格別なこととは認められない。
そして,引用発明の,アイドル状態の仮想マシンであるといえる上記「余剰プログラム実行能力」は,ユーザが現に使用しておらず,他の目的に利用可能になっているものであって,専用使用されていない場合では当該ユーザに割り当てられているとはいえないから,将来において専用の仮想マシンとして利用できるようユーザに対し何らかの関連付けがなされているとしても,本件補正発明の,「将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保」に係る「仮想マシンの割り当てではな」いこととの間に,関連付けとしての具体的な技術的差異を見出すことはできず,よって,相違点に係る本件補正発明の「スタンバイ仮想マシン確保」の「仮想マシンの割り当てではな」いとの特徴について特定を試みても,引用発明において,「スタンバイ仮想マシン確保」に係る構成を採用する程度のことは,当業者が容易に想到し得たことであるといわざるを得ない。

さらに,引用発明は,プログラムを実行する上で必要な「一定量の利用可能な余剰プログラム実行能力」における「量」を取得し,それをもとに,要求に応じてプログラムを実行しているから,プログラム実行要求に合わせて「余剰プログラム実行能力」の「量」を「追跡」するように構成することも,当業者が適宜なし得たことであるといえる。

そうすると,引用発明において,ユーザによる「余剰プログラム実行能力」の優先利用を可能とする際に,「前記1つ又は複数のスタンバイ仮想マシン確保は,仮想マシンの割り当てではなく,前記1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを将来において前記1つ又は複数の専用の仮想マシンに変換する権利の確保である」ところの「スタンバイ仮想マシン確保」の構成を採用し,当該「スタンバイ仮想マシン確保」の数を「追跡」するよう構成するとともに,要求により「スタンバイ仮想マシン確保」の数を増加させ,専用プログラム実行能力への「変換」を行い,「変換」した専用プログラム実行能力を利用して複数のプログラムを実行すること,すなわち,相違点1ないし相違点5に係る構成とすることは,当業者が容易に想到し得たことである。

そして,これらの相違点を総合的に勘案しても,本件補正発明の作用効果は,引用発明の奏する作用効果から予測される範囲のものにすぎず,格別顕著なものということはできない。

よって,本件補正発明は,引用発明に基づいて当業者が容易に発明をすることができたものであるから,特許法第29条第2項の規定により特許出願の際独立して特許を受けることができないものである。

2-2-5 小括

したがって,本件補正は,特許法第17条の2第6項において準用する同法第126条第7項の規定に違反するので,同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。
よって,上記の補正却下の決定の結論のとおり決定する。


第3 本願発明について

1 本願発明

平成29年11月29日付けの手続補正は,上記のとおり却下されたので,本願の請求項1に係る発明は,平成29年4月17日付けの手続補正によって補正された特許請求の範囲の請求項1に記載された事項により特定される次のとおりのものである。(以下,「本願発明」という。)

「クラウドコンピューティング環境においてリソースを提供するためのコンピュータにより実行される方法であって,
仮想マシンプールに関連付けられた仮想マシンの1つ又は複数のスタンバイ仮想マシン確保を追跡するステップと,
ユーザーからの,前記仮想マシンプールに関連付けられた専用の仮想マシンを第1の量だけ増加させることを求める要求,及び,前記仮想マシンプールに関連付けられた前記1つ又は複数のスタンバイ仮想マシン確保を第2の量だけ増加させることを求める要求を受信するステップと,
前記仮想マシンプールに関連付けられた前記仮想マシンの1つ又は複数のスタンバイ仮想マシン確保の中の少なくとも1つのスタンバイ仮想マシン確保により確保された1つ又は複数の仮想マシンを1つ又は複数の専用の仮想マシンに変換するステップと,
前記1つ又は複数の変換された専用の仮想マシンを使用して,前記仮想マシンプールに関する1つまたは複数のタスクを実行するステップと,
を備える方法。」

2 原査定の拒絶の理由

原査定の拒絶の理由は,この出願の請求項1-10に係る発明は,本願の優先権主張の日前に頒布された又は電気通信回線を通じて公衆に利用可能となった下記の引用例1に記載された発明及び引用例2に記載された事項に基づいて,その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから,特許法29条2項の規定により特許を受けることができない,というものである。

引用例1:国際公開第2011/087982号
引用例2:特開2011-90594号公報

3 引用例

原査定の拒絶の理由に引用された引用例1には,上記「第2 平成29年11月29日付けの手続補正についての補正却下の決定」の「2-2-2 引用例」に記載したとおりの事項が記載されている。

4 対比・判断

本願発明は,上記「第2 平成29年11月29日付けの手続補正についての補正却下の決定」で検討した本件補正発明から,補正事項1に対応する限定事項を省いたものである。

そうすると,本願発明の構成要件を全て含み,更に構成を限定したものに相当する本件補正発明が上記「第2 平成29年11月29日付けの手続補正についての補正却下の決定」の「2-2-4 当審の判断」に記載したとおり,引用発明に基づいて,当業者が容易に発明をすることができたものであるから,本願発明も,同様の理由により,引用発明に基づいて当業者が容易に発明をすることができたものである。


第4 むすび

以上のとおり,本願発明は,引用発明に基づいて,当業者が容易に発明をすることができたものであるから,特許法第29条第2項の規定により特許を受けることができない。
したがって,本願は他の請求項について検討するまでもなく拒絶されるべきものである。

よって,結論のとおり審決する。
 
別掲
 
審理終結日 2018-10-16 
結審通知日 2018-10-17 
審決日 2018-10-30 
出願番号 特願2014-552220(P2014-552220)
審決分類 P 1 8・ 121- Z (G06F)
P 1 8・ 575- Z (G06F)
最終処分 不成立  
前審関与審査官 田中 幸雄  
特許庁審判長 辻本 泰隆
特許庁審判官 仲間 晃
須田 勝巳
発明の名称 仮想マシンプールにおけるリソースの割り当て  
代理人 山本 修  
代理人 中西 基晴  
代理人 小野 新次郎  
代理人 上田 忠  
代理人 宮前 徹  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ