專利名稱:將因果律歸因于程序執(zhí)行能力修改和動態(tài)修改程序執(zhí)行能力的制作方法
將因果律歸因于程序執(zhí)行能力修改和動態(tài)修改程序執(zhí)行能
力
背景技術:
多家公司和其它機構對將許多計算系統(tǒng)互連以支持其操作的計算機網(wǎng)絡進行操作,其中例如所述計算系統(tǒng)協(xié)同定位(例如,作為局部網(wǎng)絡的一部分)或相反地位于多個不同的地理位置(例如,經(jīng)由一個或多個專用或公用中間網(wǎng)絡連接)。例如,容納大量互連計算系統(tǒng)的數(shù)據(jù)中心已變得司空見慣,諸如由單個機構操作且代表單個機構的私用數(shù)據(jù)中心以及由作為企業(yè)的實體操作以向顧客提供計算資源的共用數(shù)據(jù)中心。一些共用數(shù)據(jù)中心的操作員向各個顧客所擁有的硬件提供網(wǎng)絡訪問、權限和安全安裝設施,而其它公共數(shù)據(jù)中心的操作員則提供也包括其顧客可用的硬件資源的“全面服務(full service)”設施。然而,隨著典型數(shù)據(jù)中心的規(guī)模和范圍增加,提供、支配和管理物理計算資源的任務已變得日
M-^k ο商用硬件的虛擬化技術的出現(xiàn)已向具有不同需求的多個用戶提供了關于管理大規(guī)模計算資源的一些益處,從而使得各種計算資源可由多個用戶有效且安全地共享。例如, 諸如由VMWare、XEN、Linux' s KVM( “內(nèi)核級虛擬機”)或her-Mode Linux提供的那些虛擬化技術可通過向每個用戶提供一個或多個虛擬機(由單個物理計算機提供)使得單個物理計算機在多個用戶之間被共享,其中每臺此虛擬機均為作為不同邏輯計算系統(tǒng)的軟件模擬,該邏輯計算系統(tǒng)向用戶提供的錯覺是它們是給定硬件計算資源的唯一操作員和管理員,同時還在各個虛擬機之間提供應用程序隔離和安全。附圖
簡述圖IA和圖IB為示出對程序執(zhí)行服務的多個用戶可用的程序執(zhí)行能力進行管理的交互作用的示例性實施方案的網(wǎng)絡圖。圖2A和圖2B示出對用戶的一組多個計算節(jié)點的程序執(zhí)行能力進行管理,例如以在各個時間并以各種方式動態(tài)修改可用程序執(zhí)行能力的實例。圖3為示出用于管理向多個用戶提供的程序執(zhí)行能力的計算系統(tǒng)的示例性實施方案的框圖。圖4示出了程序執(zhí)行服務系統(tǒng)管理器程序的示例性實施方案的流程圖。圖5示出了遞歸能力協(xié)調(diào)程序的示例性實施方案的流程圖。圖6示出了能力修改歸因程序的示例性實施方案的流程圖。圖7示出了程序執(zhí)行服務能力維護管理器程序的示例性實施方案的流程圖。
具體實施例方式描述了對用于執(zhí)行一個或多個用戶的程序的程序執(zhí)行能力進行管理的技術。在至少一些實施方案中,所管理的程序執(zhí)行能力包括供用戶用于執(zhí)行一個或多個程序的一組一個或多個計算節(jié)點。另外,使用時可動態(tài)修改與用戶相關的該組計算節(jié)點,以便管理用戶可從該組計算節(jié)點中獲得的程序執(zhí)行能力的量。對與用戶相關的該組計算節(jié)點的修改在各個實施方案中可具有各種形式(例如,以修改該組中計算節(jié)點的數(shù)量,例如通過動態(tài)添加和/或刪除計算節(jié)點),并且在各個實施方案中可以各種方式引發(fā)(例如,基于由用戶指定的動態(tài)指令、基于用戶預定義的觸發(fā)器的滿足情況的自動確定、基于提供該組計算節(jié)點的服務的自動化操作等)。以下包括關于可從一組計算節(jié)點中獲得的程序執(zhí)行能力的動態(tài)修改的其它細節(jié)。另外,在至少一些實施方案中,這些技術可結合代表該服務的多個顧客或其他用戶來執(zhí)行多個程序的程序執(zhí)行服務(“PES")進行使用,諸如網(wǎng)絡訪問程序執(zhí)行服務,其提供了用于執(zhí)行遠程用戶的程序的多個計算節(jié)點(例如,在一個或多個物理計算系統(tǒng)上提供的多個物理計算系統(tǒng)和/或虛擬機)。這些技術中的一些或全部也可通過程序執(zhí)行服務系統(tǒng)管理器模塊和/或程序執(zhí)行服務能力維護管理器模塊的實施方案自動實施,如下文更詳細地描述。如前所述,在各個實施方案中,對用于執(zhí)行用戶的一個或多個程序的一組計算節(jié)點進行的動態(tài)修改可具有各種形式且可以各種方式引發(fā)。作為一個實例,該組計算節(jié)點的程序執(zhí)行能力可至少部分地通過為該組一部分的計算節(jié)點的數(shù)量來測量,并且可通過改變該組的計算節(jié)點數(shù)量來修改(例如,以通過增加計算節(jié)點數(shù)量來提高程序執(zhí)行能力,并通過減少計算節(jié)點數(shù)量來降低程序執(zhí)行能力)。此類計算節(jié)點數(shù)量修改可用于(例如)該組中的一些或所有計算節(jié)點提供或可獲得相同或類似數(shù)量的計算資源(例如,內(nèi)存量、硬盤空間、CPU執(zhí)行周期、網(wǎng)絡帶寬等)的情況中,使得計算節(jié)點數(shù)量的給定百分比變化對應于該組的總計算資源和程序執(zhí)行能力的相同或類似的百分比變化。在其它實施方案中,該組計算節(jié)點中的一些或全部可以一種或多種重要方式在其可獲得的計算資源的量方面有所不同(例如,如果使用兩種或更多種不同類型的計算節(jié)點配置,如果每個計算節(jié)點均獨立于其它計算節(jié)點配置等)或以其它方式在其提供的程序執(zhí)行能力的類型方面有所不同(例如,根據(jù)專用硬件、軟件程序的類型等),但該組的程序執(zhí)行能力動態(tài)修改確可至少部分地基于修改該組計算節(jié)點的數(shù)量,或相反可基于其它方式(例如,將一種類型的計算節(jié)點配置改變?yōu)榱硪环N類型),如其它地方更詳細地討論。此外,在至少一些實施方案和情況中,一組一個或多個計算節(jié)點的程序執(zhí)行能力可以不同于計算節(jié)點的數(shù)量的方式進行測量和修改,例如基于該組提供的一種或多種類型的計算資源的總量(例如,內(nèi)存量、硬盤空間、CPU執(zhí)行周期、網(wǎng)絡帶寬等)。另外,在至少一些實施方案中,在測量和指定一組計算節(jié)點的程序執(zhí)行能力中可考慮其它因素,諸如一些或所有計算節(jié)點的地理位置、一些或所有計算節(jié)點之間的相互關系(例如,由至多最大地理距離或至少最小地理距離分隔、由至多最大網(wǎng)絡延時或至少最小網(wǎng)絡延時分隔、分隔成兩個或更多個獨立的數(shù)據(jù)中心或不會同時失效的其它計算節(jié)點集合等)、專用硬件能力和 /或軟件能力的可用性等。以下包括關于測量和指定程序執(zhí)行能力的其它細節(jié)。對用于執(zhí)行用戶的一個或多個程序的一組計算節(jié)點進行管理的PES或其它系統(tǒng)可自動確定如何和何時以各種方式對該計算節(jié)點組進行程序執(zhí)行能力動態(tài)修改。例如,在至少一些實施方案和情況中,PES或其它系統(tǒng)可以直接方式進行某些類型的程序執(zhí)行能力修改,而其它類型的程序執(zhí)行能力修改可定期進行或者說是以反復的方式進行(例如,以便延遲和聚合在一段時間內(nèi)(例如自進行一次或多次聚合修改之前開始)待做出的經(jīng)請求或以其它方式確定的多次修改。如果在一段時間內(nèi)聚合多個程序執(zhí)行能力修改確定值, 則關于聚合修改確定值的信息可用于以各種方式來提高程序執(zhí)行能力修改的實施。例如, 如果兩次確定的程序執(zhí)行能力修改對應于相反類型的修改(例如,以增加和減少計算節(jié)點數(shù)量、增加和減少可用總內(nèi)存等),則兩次修改可以各種方式進行聚合,例如通過經(jīng)選擇來部分或完全相互抵消,或相反通過選擇待進行的兩次修改中的較高優(yōu)先級來代替另一次修改。另外,如果兩次或更多次確定的程序執(zhí)行能力修改對應于類似或互補類型的修改(例如,以使計算節(jié)點數(shù)量全面增加指定量、使可用總內(nèi)存全面增加指定量等),則那些確定的修改可以各種方式同樣地聚合(例如,以選擇符合某些指定標準的單次確定的修改,諸如最大修改、最小修改、具有最高優(yōu)先級的修改、首先確定的修改、最后確定的修改等;以累積各種確定的修改并使用累積的修改量;等)。以下包括關于確定如何和何時做出各類程序執(zhí)行能力修改的其它細節(jié)。另外,當PES或其它系統(tǒng)對代表用戶來執(zhí)行一個或多個程序的一組計算節(jié)點動態(tài)進行程序執(zhí)行能力修改時,PES或其它系統(tǒng)可進一步進行各種操作以將特定的程序執(zhí)行能力修改的因果律信息或其它責任歸因。責任歸因可包括(例如)識別已在相關時段內(nèi)發(fā)生的特定事件,其中每個事件均能夠引起程序執(zhí)行能力動態(tài)修改,并且將這些事件中的一件或多件歸因于在該時段期間或之后進行的程序執(zhí)行能力動態(tài)修改中的一些或全部。例如, 在至少一些實施方案和情況中,一些程序執(zhí)行能力動態(tài)修改各自可由單個特定事件引發(fā) (例如,如果該組計算節(jié)點失效或者說是變得不可用,則系統(tǒng)立即自動啟動向該組提供替代計算節(jié)點,同時計算節(jié)點不可用性成為直接引起系統(tǒng)自動動作以提供替代計算節(jié)點的單個事件)。在至少一些實施方案和情況中,其它程序執(zhí)行能力動態(tài)修改各自可歸因于多個事件的組合,這些事件中的每一件均有助于或可能有助于能力修改(例如,如果多個獨立事件各自在一段時間內(nèi)需要或指示該組的計算節(jié)點數(shù)量增加,并且這些事件經(jīng)聚合以在該時段結束時增加單個計算節(jié)點的數(shù)量,同時各獨立事件成為共同間接引起系統(tǒng)后續(xù)自動動作以增加計算節(jié)點數(shù)量的多個事件)。對與用戶相關的計算節(jié)點組進行的特定程序執(zhí)行能力動態(tài)修改的責任歸因在以下情況下可具有特別的益處,例如針對至少一些程序執(zhí)行能力修改而向用戶收費時(例如,如果PES或其它系統(tǒng)為由于提供該組的每個計算節(jié)點、程序執(zhí)行能力的每個其它度量和/或基于其它依據(jù)而向消費用戶收費的付費系統(tǒng))。在此類情況下,用戶可不僅能夠接收和查看關于與特定程序執(zhí)行能力動態(tài)修改相對應的費用的信息,而且能夠接收和查看相關的責任歸因信息,以便用戶能夠確認那些程序執(zhí)行能力動態(tài)修改的原因和適當性。在至少一些此類實施方案中,責任歸因信息可以人可讀格式產(chǎn)生以便向用戶顯示,以使用戶能夠理解各個自動動作為何由人可讀信息中所包括的PES或其它系統(tǒng)來采取的解釋。在其它實施方案中,也可以各種其它方式(包括通過自動啟動其它操作的PES或其它系統(tǒng))來使用此類責任歸因信息。另外,在至少一些實施方案中,可響應于從用戶或其它來源處接收的各類詢問來產(chǎn)生和/或使用責任歸因信息,這些詢問諸如關于識別哪些(多個)事件為引起一組一個或多個計算節(jié)點可用性發(fā)生指示的特定程序執(zhí)行能力修改或其它變化的原因的請求和/或關于哪些(多次)程序執(zhí)行能力修改或其它計算節(jié)點組的(多個)可用性變化由一個或多個指示的事件引起的請求。以下包括關于確定和使用程序執(zhí)行能力動態(tài)修改的責任歸因信息的其它細節(jié)。在各種情況下,用于自動管理程序執(zhí)行能力動態(tài)修改的所述技術可提供各種益處。例如,通過聚合多個經(jīng)請求或確定的程序執(zhí)行能力動態(tài)修改以進行綜合考慮,PES或其它系統(tǒng)也許能夠優(yōu)化如何進行聚合修改,以及將計算節(jié)點的反復變化最小化,這可使進行額外變化的一些或所有計算節(jié)點在一段時間內(nèi)暫時不可用。另外,用戶可預定義基于一組計算節(jié)點的性能特性的各類觸發(fā)器,同時在特定觸發(fā)器被滿足時,視情況自動提高或降低程序執(zhí)行能力(例如,以被動(reactively)提高一組計算節(jié)點的程序執(zhí)行能力,從而滿足計算節(jié)點組的計算負荷的暫時性增加;主動(proactively)提高或降低一組計算節(jié)點的程序執(zhí)行能力,從而滿足其它程序執(zhí)行能力的即將出現(xiàn)的預期需求和/或滿足現(xiàn)有程序執(zhí)行能力的即將出現(xiàn)的預期需求缺乏,例如根據(jù)關于特定性能特性和/或指示程序執(zhí)行能力的重復使用模式的歷史數(shù)據(jù)的隨時間變化的趨勢;等)?;蛘撸脩艨上M麑⒁唤M計算節(jié)點的程序執(zhí)行能力保持在指定水平或其附近(例如,計算節(jié)點的指定所需恒量),并且可對該組計算節(jié)點自動進行各種修改以將可用程序執(zhí)行能力保持在該指定水平(例如,以將已偏離指定所需量的實際計算節(jié)點數(shù)量恢復至該指定所需量)。例如當該組計算節(jié)點中的每個執(zhí)行相同程序的不同復本(例如,以用作該組中的總計算負荷的替代形式),并且修改計算節(jié)點的數(shù)量以管理由每個計算節(jié)點處理的工作量時,可使用此類技術,或者說是將這些技術用于一組中的各個計算節(jié)點并未各自執(zhí)行相同程序的不同復本的情況中(例如,如果該組計算節(jié)點的不同子集各自執(zhí)行不同程序的復本,例如以使某些計算節(jié)點執(zhí)行應用服務器程序且使其它計算節(jié)點執(zhí)行相關的數(shù)據(jù)庫服務器程序;如果這些計算節(jié)點中的一些或全部諸如以分布式方式實施單個程序的不同部分;等)。此外,當向組添加附加計算節(jié)點時,PES 或其它系統(tǒng)在至少某些情況中還可任選地采取其它動作,例如以提供所添加的計算節(jié)點來準備執(zhí)行一個或多個程序,或在所添加的計算節(jié)點上進一步自動引發(fā)一個或多個程序的執(zhí)行。 如前所述,用戶可預定義與動態(tài)修改多組計算節(jié)點的程序執(zhí)行能力相關的各類觸發(fā)器,并且那些觸發(fā)器隨后可用于引發(fā)用戶的計算節(jié)點組的相應程序執(zhí)行能力自動化動態(tài)修改。作為一個實例,可定義指定計算節(jié)點的特定所需量或一種或多種計算資源的所需總量的觸發(fā)器,例如其可用于將相應計算節(jié)點組自動保持在所需計算節(jié)點數(shù)量或所需計算資源總量,或相反用于改變指定的計算節(jié)點數(shù)量或計算資源總量(如果滿足指定標準)。在其它情況中,可定義指定一種或多種計算資源的計算節(jié)點數(shù)量或總量的特定絕對或相對變化的觸發(fā)器,例如如果計算節(jié)點組的一種或多種指示的性能特性達到指定閾值或者說是滿足指定標準,則其可被觸發(fā)(例如,保持在指定時段的指定范圍內(nèi);表示特定趨勢,諸如指定時段內(nèi)的指定變化量,或諸如特定“加速度(acceleration)”或變化速率;符合或?qū)谝环N或多種指定模式(例如來自表示程序執(zhí)行能力的重復使用模式的歷史數(shù)據(jù));滿足多種性能特性的指定邏輯或值的其它組合,例如可使用邏輯算子(諸如AND、N0T、0R等)和/或以其它方式將其組合;等)。在其它實施方案和情況中,預定義的觸發(fā)器可根據(jù)不屬于計算節(jié)點組的性能特性的信息以其它方式來被滿足(例如,基于符合一個或多個指定時間(為特定觸發(fā)器的標準的一部分或全部)的當前時間;基于在以不同于性能特性的方式測量的當前計算節(jié)點組上執(zhí)行的一個或多個程序的狀態(tài)信息,諸如正如由(例如)經(jīng)排列或者說是已知或期望由一個或多個程序完成的工作量表示的當前計算負荷;基于未由當前計算節(jié)點組執(zhí)行的一個或多個其它執(zhí)行程序的性能特性或其它狀態(tài)信息,例如如果當前計算節(jié)點組與其它執(zhí)行程序交互或者說是支持這些程序,以便在其它執(zhí)行程序上的計算負荷增加或減少時,例如提高當前計算節(jié)點組的程序執(zhí)行能力;等)。此類性能特性可基于該組計算節(jié)點中的一個或多個的任何可測量的屬性或與這些節(jié)點的操作相對應的其它尺度,包括以下非排他性清單項單個計算節(jié)點的一種或多種計算資源的絕對或相對使用量(例如,所使用的可用內(nèi)存的百分量或CPU周期利用率、所使用的網(wǎng)絡帶寬的絕對量等);所有該組計算節(jié)點的一種或多種計算資源的絕對或相對總使用量;響應于來自外部計算系統(tǒng)的通信中的絕對或相對延時(latency)或其它延遲(delay)量;計算節(jié)點在完成一個或多個所需動作中的絕對或相對失效量;等。此外,在至少一些實施方案和情況中,觸發(fā)器的滿足情況并非使該觸發(fā)器直接指定將在被滿足時發(fā)生的特定程序執(zhí)行能力修改,而是可使指定系統(tǒng)或模塊獲得通知,并且該系統(tǒng)或模塊可請求進行特定的程序執(zhí)行能力修改(例如,未改變的預定義的能力修改;例如基于當時的條件在通知時動態(tài)確定的能力修改;等)。另外,在一些實施方案中,PES或其它系統(tǒng)可進行各種操作以監(jiān)測一組計算節(jié)點,以便確定與該組相關的觸發(fā)器的一些或所有性能特性,或可以其它方式從另一個來源獲得此類監(jiān)測的性能特性 (例如,從監(jiān)測所述計算節(jié)點的第三方軟件、從在計算節(jié)點上執(zhí)行以監(jiān)測該計算節(jié)點和任選地報告監(jiān)測信息的軟件等)。此外,在一些實施方案中,PES或其它系統(tǒng)可具有在滿足觸發(fā)器的指示觸發(fā)標準時引發(fā)程序執(zhí)行能力動態(tài)修改的系統(tǒng)定義觸發(fā)器,或可在指定情況下以其它方式自動確定以對計算節(jié)點組做出某些類型的變化。當定義的觸發(fā)器指定一種或多種計算資源的計算節(jié)點數(shù)量或總量的特定絕對或相對變化,并且基于相應計算節(jié)點組的當前情況自動確定來滿足定義的觸發(fā)器的一個或多個指定標準時,PES或其它系統(tǒng)可自動確定是否和如何對觸發(fā)器進行指定的程序執(zhí)行能力修改。例如,可立即進行某些類型的指定程序執(zhí)行能力修改(例如,終止使用一個或多個計算節(jié)點的請求、基于用戶已指定用于立即實施的觸發(fā)器的請求等),而可將其它類型的指定程序執(zhí)行能力修改延遲到聚合時段結束時,以將其視為在該時段期間請求或者說是確定的聚合的多次程序執(zhí)行能力修改的一部分。類似地,例如基于程序執(zhí)行能力動態(tài)修改的類型、 基于來自用戶的立即或延遲實施的顯式請求等,可確定由用戶動態(tài)請求的程序執(zhí)行能力修改(例如,經(jīng)由⑶I,或者PES或其它系統(tǒng)的圖形用戶界面;通過經(jīng)由定義的API或者PES或其它系統(tǒng)的應用程序編程接口的用戶程序;等)以立即進行和/或以類似的方式暫時延遲和聚合。此外,當確定如何管理確定的多次程序執(zhí)行能力修改的組合時,在某些情況下,不同的優(yōu)先級可與確定的不同修改相關。如果如此,例如對于賦予與被滿足的觸發(fā)器不同的優(yōu)先級(例如,較高或較低優(yōu)先級)的動態(tài)指定的用戶請求或其它用戶指令、賦予不同優(yōu)先級的不同類型的經(jīng)確定修改而言(例如,對于與提高程序執(zhí)行能力的請求相比賦予較高優(yōu)先級的降低程序執(zhí)行能力的請求而言)等,可以各種方式來評估此類優(yōu)先級。以下包括關于使用用戶定義的觸發(fā)器且確定性能特性的其它細節(jié)。此外,在至少一些實施方案中,基于追蹤和使用相應計算節(jié)點組的多個屬性,或者說是基于各自均與該組中一個或多個計算節(jié)點相關的可控參數(shù),PES或其它系統(tǒng)可管理定期或者說是反復聚合的多次經(jīng)確定程序執(zhí)行能力修改。作為一個實例,將計算節(jié)點組的計算節(jié)點數(shù)量用作與該計算節(jié)點組的程序執(zhí)行能力相對應的尺度,PES或其它系統(tǒng)可針對該計算節(jié)點組而保持和使用至少三種相互關聯(lián)的度量,如下所述計算節(jié)點組的所需計算節(jié)點數(shù)量,例如在啟動該計算節(jié)點組時,相關用戶可對其進行初始設定,并且該數(shù)量可根據(jù)觸發(fā)器的滿足情況和/或動態(tài)指定的用戶請求來修改;該組中當前可用計算節(jié)點的實際計算節(jié)點數(shù)量(例如,通過對該組計算節(jié)點的連續(xù)或反復監(jiān)測來確定);和該組中當前可用計算節(jié)點的正式記錄的計算節(jié)點數(shù)量(例如,正如在最后一次引發(fā)一次或多次程序執(zhí)行能力動態(tài)修改時所確定,并且任選地不時通過連續(xù)或反復監(jiān)測來更新)。所述計算節(jié)點組的此類多個屬性可以各種方式用于(例如)連續(xù)或反復地測量實際數(shù)量并由此更新正式記錄的數(shù)量 (例如,基于對該組計算節(jié)點進行監(jiān)測),并且用于定期嘗試將最近正式記錄的數(shù)量更新以符合當前所需數(shù)量(例如,當考慮如何和是否要對多次聚合的經(jīng)確定修改進行組合時)。如前所述,PES或其它系統(tǒng)可進一步進行各種操作以將做出的特定程序執(zhí)行能力動態(tài)修改的因果律信息或其它責任歸因。例如,如前所述,可追蹤與計算節(jié)點組的程序執(zhí)行能力動態(tài)修改的請求相對應的事件,包括所接收的用戶指定的動態(tài)指令和經(jīng)自動確定被滿足的預定義的觸發(fā)器,以及在一些實施方案中由PES或其它系統(tǒng)自動采取的動作(例如,基于進行的監(jiān)測,例如如果確定計算節(jié)點已凍結或者說是不可用于進行所需活動,自動關閉或者說是終止將計算節(jié)點用作其當前計算節(jié)點組的一部分)。類似地,可同樣地追蹤計算節(jié)點組的程序執(zhí)行能力的實際變化,諸如與發(fā)生的事件和/或其它能力變化相對應的變化 (例如,計算節(jié)點失效或者說是變得不可用的例子)。作為一個實例,可將各種事件相關信息儲存在第一數(shù)據(jù)庫表中,并且可將關于能力變化或其它可用性變化的各種信息儲存在第二數(shù)據(jù)庫表中。如果識別特定事件和特定可用性變化之間的關系(例如,特定事件致使特定可用性變化立即發(fā)生),則可通過將相同的關結相關標識符與關于該事件和該可用性變化的其它信息一起保存來追蹤所述事件和可用性變化之間的相應關結。在多個事件可單獨或組合地引起特定可用性變化但因果律不歸因于單個事件的其它情況中,可將單個關結相關標識符與關于所述可用性變化和那些事件中的每個的其它信息一起儲存,并且還可與關于一個或多個其它可用性變化的其它信息一起保存(如果它們類似地可單獨或組合地歸因于那些相同的多個事件)。因此,例如如果給定計算節(jié)點組的多個事件發(fā)生在單個聚合時段期間并且一個或多個程序執(zhí)行能力變化發(fā)生在該相同的聚合時段期間或緊接其后發(fā)生 (例如,作為在該聚合時段結束時進行的協(xié)調(diào)活動的一部分),并且如果那些事件均不可直接歸因于所述一個或多個能力變化中的任一者,則所有這些多個事件的組合都可歸因于所述一個或多個能力變化中的每個。以下包括關于此因果律歸因的進一步細節(jié)(包括參照圖 2B)。另外,以類似的方式,多個此類所需、實際和正式屬性可被追蹤且用于與計算節(jié)點組的程序執(zhí)行能力相對應的一個或多個其它可控參數(shù),諸如所需的第一組、實際和正式量的CPU周期總平均利用率、所需的第二組、實際和正式量的網(wǎng)絡帶寬總平均利用率等。此外,當同時追蹤和使用與計算節(jié)點組的程序執(zhí)行能力相對應的多個參數(shù)時,PES或其它系統(tǒng)可嘗試管理所有參數(shù),例如以修改計算節(jié)點組,以便同時獲得所需的CPU周期總平均利用率和所需的網(wǎng)絡帶寬總平均利用率。作為另一個實例,計算節(jié)點組的多個參數(shù)可包括該組中各個計算節(jié)點的計算節(jié)點數(shù)量和指定地理位置(例如,介于第一數(shù)據(jù)中心的該組計算節(jié)點的15%和20%之間,剩余的該組計算節(jié)點位于一個或多個其它數(shù)據(jù)中心),同時PES或其它系統(tǒng)嘗試同時管理該組的計算節(jié)點數(shù)量和計算節(jié)點地理位置。以下包括關于使用多個屬性來追蹤和管理一個或多個程序執(zhí)行能力參數(shù)的其它細節(jié)。另外,在各個實施方案中,PES或其它系統(tǒng)可使用戶以各種方式訪問計算節(jié)點。例如,在一些實施方案中,可將可從用于執(zhí)行程序的PES處獲得的計算節(jié)點中的至少一些分配給一個或多個用戶,以便那些用戶可優(yōu)先使用,使得那些用戶中的每個相對于其他用戶可優(yōu)先使用那些計算節(jié)點。在一個此實施方案中,這些用戶的優(yōu)先訪問可基于可專有或?qū)偈褂弥付〞r段的那些計算節(jié)點(例如以類似于租用的方式)的每個用戶。另外,在一些實施方案中,例如當計算節(jié)點未被分配有這些計算節(jié)點的用戶使用時和/或當分配有計算節(jié)點的用戶明確地使已分配的計算節(jié)點可由其他用戶使用時,分配給一個或多個用戶以專有或優(yōu)先使用的計算節(jié)點中的至少一些有時可用作過量程序執(zhí)行能力供其他用戶使用。這樣,分配給第一組用戶的至少一些程序執(zhí)行能力有時可用于(例如在非保證的基礎上)代表其他用戶來暫時執(zhí)行程序(例如,如果需要該程序執(zhí)行能力來用于其它目的,諸如一個或多個其他用戶的優(yōu)先或保留使用,則使得過量程序執(zhí)行能力的使用權可被取消)。此外, 在一些實施方案中,PES可包括按需計算節(jié)點,其可用于滿足用戶執(zhí)行程序的動態(tài)接收請求 (例如,在那些用戶請求時、在指示的將來時間、在指示的將來時段內(nèi)的一段時間等執(zhí)行), 使得可執(zhí)行該請求所指示的一個或多個程序,其前提是足以滿足請求的執(zhí)行的計算節(jié)點在所請求的時間時(或附近)可用(但不保證會滿足該請求)時。另外,在一些實施方案中, 在立即(或預定)執(zhí)行的該按需請求被滿足且代表各個用戶來成功引發(fā)一個或多個程序的執(zhí)行之后,可保證繼續(xù)使用按需計算節(jié)點直到將來的某個時間,諸如各個用戶所選擇的某個時間,任選地受到某些限制的某個時間,(例如,應當保證PES不會先占用于其它目的的用途,但不保證執(zhí)行程序的計算節(jié)點會失效)。在一些實施方案中,用于提供按需可變程序執(zhí)行能力的計算節(jié)點可不同于用于提供專有程序執(zhí)行能力的計算節(jié)點和/或用于提供過量程序執(zhí)行能力的計算節(jié)點,因此如果未使用用于提供按需可變程序執(zhí)行能力的計算節(jié)點中的一些,則在一些實施方案中,這些節(jié)點可用于提供過量程序執(zhí)行能力,直到收到按需可變程序執(zhí)行能力請求,而在其它實施方案中,這些節(jié)點可能不會用于提供過量程序執(zhí)行能力。在其它實施方案中,僅可提供單一類型的程序執(zhí)行能力,和/或可提供其它類型的程序執(zhí)行能力。圖IA為示出對可用于提供程序執(zhí)行能力以執(zhí)行多個用戶的程序的計算節(jié)點進行管理的程序執(zhí)行服務的實例的網(wǎng)絡圖。為了進行說明性的目的,以下描述了一些實例和實施方案,其中以特定方式來提供和管理特定類型的程序執(zhí)行能力。另外,在下述實例和實施方案中的一些中,由一組計算節(jié)點提供的程序執(zhí)行能力可以特定方式(例如,基于計算節(jié)點的數(shù)量)來測量,可以特定方式(例如,通過追蹤所需、實際和正式屬性相對于一個或多個程序執(zhí)行能力尺度的用途)來管理,可通過相關用戶以各種方式(例如,基于預定義觸發(fā)器和/或動態(tài)指定指令的用途)進行控制,可以特定方式進行修改(例如,通過聚合在一段時間內(nèi)確定和延遲的至少一些程序執(zhí)行能力修改,然后在該時段結束時進行一次或多次相應的聚合修改,例如以修改一組中計算節(jié)點的數(shù)量)等。提供這些實例用于進行說明性的目的且為了簡潔起見而將其簡化,并且應當理解到,本發(fā)明的技術可用于各種其它情況中, 而下面僅描述了這些情況中的一些。在圖IA的實例中,各個用戶(未示出)正在將各個客戶計算系統(tǒng)130用于通過網(wǎng)絡100與由程序執(zhí)行服務提供實體105提供的PES進行交互,同時PES的一些功能通過程序執(zhí)行服務系統(tǒng)管理器(“PESSM“)模塊110的圖示實施方案提供于該實例中,而其它功能通過程序執(zhí)行服務能力維護管理器(“PESCMM“)模塊115的圖示實施方案提供于該實例中。PESSM模塊110可例如幫助特定用戶來配置待用于執(zhí)行這些用戶的程序的多組計算節(jié)點,包括為這些組指定初始所需計算節(jié)點數(shù)量并且指定用于隨后對計算節(jié)點數(shù)量自動做出動態(tài)修改的觸發(fā)器。在該實例中,PES使各個計算節(jié)點120可用于執(zhí)行用戶的程序,但在其它實施方案中,用于至少一些組中的計算節(jié)點中的至少一些可以其它方式來提供(例如,可通過用戶和/或第三方諸如外部計算系統(tǒng)140來提供,但由PES進行管理)。另外, PESCMM模塊115可有助于連續(xù)或反復監(jiān)測在使用中的計算節(jié)點組,并且任選地嘗試代替失效或者說是變得不可用的任何計算節(jié)點,以便將程序執(zhí)行能力保持在先前確定的水平。網(wǎng)絡100可例如為鏈接網(wǎng)絡的可公開訪問網(wǎng)絡,其可能由不同的各方(諸如因特網(wǎng))進行操作。在其它實施方案中,網(wǎng)絡100可為專用網(wǎng),諸如非特權用戶完全或部分地不可訪問的企業(yè)網(wǎng)或校園網(wǎng)。在其它實施方案中,網(wǎng)絡100可包括可訪問因特網(wǎng)和/或可通過因特網(wǎng)訪問的一個或多個專用網(wǎng)。在圖示實施方案中,PESSM模塊110和PESCMM模塊115 各自可包括在一個或多個計算系統(tǒng)(未示出)上執(zhí)行的軟件指令。另外,模塊110和115 以及各個計算節(jié)點120可以各種方式(諸如在單個數(shù)據(jù)中心)或者說是以使用一組協(xié)同定位的計算系統(tǒng)的方式,或相反以使用各個不同地理位置處的各種計算系統(tǒng)的分布式方式來提供。在一些實施方案中,圖示的計算節(jié)點120可包括在一個或多個物理計算系統(tǒng)上提供的多個物理計算系統(tǒng)和/或多個虛擬機(如參照圖IB更詳細地描述)。每個計算節(jié)點 120均具有一定量的可用于執(zhí)行一個或多個程序的計算資源,(例如)以提供特定量的程序執(zhí)行能力,例如所述程序執(zhí)行能力可例如通過一種或多種處理能力(例如,處理單元的數(shù)量和/或尺寸)、存儲容量、儲存容量、網(wǎng)絡帶寬容量等的組合來測量。在一些實施方案中, PES供應商105可提供預配置的計算節(jié)點,其中每個預配置的計算節(jié)點均具有相等或者說是類似量的可用于代表用戶來執(zhí)行程序的資源,而在其它實施方案中,PES供應商105可提供各種不同計算節(jié)點的選擇,用戶可從中選擇以代表該用戶來執(zhí)行程序,例如其中每項選擇均具有不同量和/或類型的計算資源(例如,處理單元的尺寸、速度和/或類型;處理單元的數(shù)量;內(nèi)存量和/或存儲量;平臺配置,諸如32位或64位;等)。在該圖示實施方案中,程序執(zhí)行服務提供用于管理多個用戶中每一者的多組一個或多個計算節(jié)點120的功能。如其它地方更詳細地討論,所述各個用戶可與PESSM模塊110 進行交互,以指定開始使用多組計算節(jié)點來代表用戶執(zhí)行程序的請求。在各個實施方案中, 可在代表用戶在一組計算節(jié)點上執(zhí)行一個或多個程序的請求時和/或在一個或多個其它時間(例如當用戶最初注冊和/或預訂使用PES的服務時)指定此類資源。在一些實施方案中,PESSM模塊110可向一個或多個用戶提供預訂和/或注冊服務,使得用戶可指定與代表用戶來執(zhí)行的一個或多個程序相關的信息(例如,一個或多個程序的程序、源代碼、可尋址位置等)、帳號信息(例如,用戶名、計費信息等)、使用條款等。在一些實施方案中,在用戶與PESSM模塊110進行交互以預訂和/或注冊來獲得服務之后,可向該用戶發(fā)布與該用戶相關且將結合代表用戶的執(zhí)行程序來使用的一個或多個標識符(例如,鍵碼、令牌、用戶名等)。在其它實施方案中,可提供與PESSM模塊110(未示出)不同的模塊,以進行與PES 的預訂和/或注冊服務相關的各種操作。從用戶接收使用一個或多個計算節(jié)點的請求之后,PESSMl模塊110可確定是否存在足夠數(shù)量的計算節(jié)點120(其具有滿足所述請求的可用資源),并且如果如此,PESSMl模塊110可代表用戶在適量的計算節(jié)點上開始執(zhí)行所述請求的一個或多個程序。在用戶預定將來在一組一個或多個計算節(jié)點上執(zhí)行一個或多個程序的請求的情況中,PESSM模塊110 可嘗試立即保留適量計算節(jié)點以在一個或多個將來時間執(zhí)行一個或多個程序,和/或可延遲將所述計算節(jié)點用于直到稍后的時間(例如,諸如當所述一個或多個將來時間發(fā)生時) 才執(zhí)行的決定。在圖示實施方案中,如果PESSM模塊110不能針對用戶請求來分配計算節(jié)點,則所述請求可能失效,使得程序無法執(zhí)行。在這些情況中,用戶可再次提交已失效的請求,以稍后執(zhí)行。如前所述,在一些實施方案中,例如根據(jù)所用計算節(jié)點的數(shù)量、所用計算節(jié)點的類型、使用計算節(jié)點的持續(xù)時間、計算節(jié)點進行的特定操作(例如,數(shù)據(jù)傳送和/或儲存)等,可向用戶收取與使用PES相關的各種費用。在提供一組一個或多個計算節(jié)點用于代表用戶來執(zhí)行一個或多個程序之后,可以各種方式來管理所述計算節(jié)點組。例如,如前所述,PESCMM模塊115可監(jiān)測該組計算節(jié)點, 例如以確定一些或所有計算節(jié)點的性能特性,包括實際計算節(jié)點數(shù)量或由該組計算節(jié)點提供的實際程序執(zhí)行能力的其它度量。如果(例如)一個或多個計算節(jié)點失效或者說是變得不可用,則可改變該組的實際程序執(zhí)行能力,并且在至少一些實施方案中,模塊115可進行各種操作來保持所述計算節(jié)點組在這些情況下的程序執(zhí)行能力(例如,通過向該組添加替代計算節(jié)點以取代不可用的計算節(jié)點)。另外,模塊115可使用關于所述計算節(jié)點組的經(jīng)確定的實際計算節(jié)點數(shù)量的信息,以例如在檢測實際計算節(jié)點數(shù)量發(fā)生變化時、定期地等更新所述計算節(jié)點組的正式記錄的計算節(jié)點數(shù)量。另外,PESSM模塊110也可有助于以各種方式來管理所述計算節(jié)點組。例如,如前所述,與該組相關的用戶可具有先前指定的一個或多個數(shù)量修改觸發(fā)器,其指定將向該組做出的計算節(jié)點數(shù)量變化的類型(如果滿足各個指定標準)。此外,在至少一些實施方案中,與該組相關的用戶可在各個時間動態(tài)指定對其相關計算節(jié)點組的操作變化,包括對該組計算節(jié)點的數(shù)量變化。作為管理所述計算節(jié)點組的一部分,模塊110可追蹤所述計算節(jié)點組的所需計算節(jié)點數(shù)量,并且定期將所述計算節(jié)點組的正式記錄的計算節(jié)點數(shù)量與所述計算節(jié)點組的所需計算節(jié)點數(shù)量進行協(xié)調(diào)。例如根據(jù)一個或多個用戶指定的預定義觸發(fā)器的滿足情況和/或一個或多個動態(tài)指定的用戶指令,此定期協(xié)調(diào)可包括追蹤和聚合在聚合時段期間發(fā)生的計算節(jié)點數(shù)量的經(jīng)請求的修改。在該時段結束時,模塊110然后可確定是否和如何進行聚合的計算節(jié)點數(shù)量修改,并且可根據(jù)聚合的計算節(jié)點數(shù)量修改來更新所需計算節(jié)點數(shù)量。然后,模塊110可通過啟動聚合的計算節(jié)點數(shù)量修改,以及更新正式記錄的計算節(jié)點數(shù)量以匹配將由聚合的計算節(jié)點數(shù)量修改引起的新的所需計算節(jié)點數(shù)量來對所需和正式記錄的計算節(jié)點數(shù)量進行協(xié)調(diào)。此外,在當前的實際計算節(jié)點數(shù)量在該時段結束時不同于正式記錄的計算節(jié)點數(shù)量的情況中,還可根據(jù)實際計算節(jié)點數(shù)量對所需和正式記錄的計算節(jié)點數(shù)量進行協(xié)調(diào),使得進行開始聚合的計算節(jié)點數(shù)量修改,以將當前的實際計算節(jié)點數(shù)量更新為當前所需的計算節(jié)點數(shù)量。模塊110還可反復地,諸如每次經(jīng)過指定時段時、每次已經(jīng)請求了最小量的計算節(jié)點數(shù)量變化時等進行此類定期協(xié)調(diào)活動。此外,PESSM模塊110可進行其它活動,以追蹤針對特定計算節(jié)點組發(fā)生的事件和特定程序執(zhí)行能力變化。至少一些程序執(zhí)行能力變化信息可與由模塊110引發(fā)以作為定期或反復協(xié)調(diào)活動的一部分的程序執(zhí)行能力動態(tài)修改相對應,并且任選地在某些情況下還可包括由PESCMM模塊115進行的監(jiān)測中的程序執(zhí)行能力變化信息(例如,以對應于失效或者說是變得不可用的計算節(jié)點,或計算節(jié)點組的程序執(zhí)行能力的其它類型的所檢測變化)。模塊110還可例如根據(jù)進行的定期或其它反復協(xié)調(diào)活動在各個時間(或相反在其它時間)進行自動確定,以將特定能力變化的因果律或其它責任歸因于特定事件。
雖然針對向各個用戶提供各類功能的PES描述了圖IA的上述示例性實施方案,但應當理解到可以存在各種其它實施方案。例如,在至少一些實施方案中,單個計算節(jié)點120 的未使用部分(例如,未使用的處理單元時鐘周期、內(nèi)存的未使用部分等)可供一個或多個用戶使用,使得第一用戶的一個或多個程序可與一個或多個其他用戶的那些程序共享單個計算節(jié)點的資源。另外,雖然針對程序執(zhí)行服務和程序執(zhí)行能力描述了一些實施方案,但應當理解到所述技術可用于管理各個其它組計算節(jié)點或其它類型的計算相關資源的使用權。 可經(jīng)管理以供多個用戶使用的其它類型的計算相關資源的實例的非排他性清單項可包括如下內(nèi)容持久性數(shù)據(jù)存儲能力(例如,在非易失性存儲設備,諸如硬盤驅(qū)動器上);臨時數(shù)據(jù)存儲能力(例如,在易失性存儲器,諸如RAM上);消息排隊和/或傳遞能力;其它類型的通信能力(例如,網(wǎng)絡插座、虛擬通信電路等);數(shù)據(jù)庫管理能力;專有帶寬或其它網(wǎng)絡相關資源;輸入裝置能力;輸出裝置能力;CPU周期或其它指令執(zhí)行能力;等。圖IB示出了其中可采用包括多個物理計算系統(tǒng)的一個或多個數(shù)據(jù)中心來提供程序執(zhí)行服務的實施方案。具體地講,圖IB為示出其中程序執(zhí)行服務的PESSM模塊180和 PESCMM模塊160采用所述一個或多個數(shù)據(jù)中心處的各個計算系統(tǒng)來管理代表用戶的一個或多個程序的執(zhí)行的示例性實施方案的網(wǎng)絡圖。圖示實例包括PES使用的數(shù)據(jù)中心170, 數(shù)據(jù)中心1 70連接至數(shù)據(jù)中心170外部的因特網(wǎng)196。在該實例中,因特網(wǎng)196提供訪問各種外部計算系統(tǒng)的權利,諸如經(jīng)由專用網(wǎng)194的計算系統(tǒng)190以及可直接訪問的計算系統(tǒng)192。專用網(wǎng)194可為例如從專用網(wǎng)194外部的非特權計算系統(tǒng)完全或部分地不可訪問的企業(yè)網(wǎng)。計算系統(tǒng)192可包括例如直接連接至因特網(wǎng)(例如,經(jīng)由電話或電纜調(diào)制解調(diào)器、數(shù)字用戶線路(“DSL")等)的家用計算系統(tǒng)。另外,示出了經(jīng)由因特網(wǎng)196連接至數(shù)據(jù)中心170的一個或多個其它數(shù)據(jù)中心198,例如數(shù)據(jù)中心198在至少一些實施方案中可被PES進一步使用。示例性數(shù)據(jù)中心170包括許多物理主機計算系統(tǒng)175、物理計算系統(tǒng)182、PES的 PESSM模塊180和PES的PESCMM模塊160。在該實例中,主機計算系統(tǒng)175各自提供多個虛擬機,并且具有管理那些虛擬機的虛擬機(“VM")管理器組件(例如,管理程序或其它虛擬機監(jiān)視器),例如針對具有多個虛擬機177a和VM管理器組件179a的主機計算系統(tǒng)17 所示出。其它主機計算系統(tǒng)17 可同樣地包括此類組件,為了簡潔起見,此處未示出那些其它組件,并且一些或所有計算系統(tǒng)182可任選地同樣具有一個或多個此類虛擬機和/或 VM管理器組件(未示出)。由主機計算系統(tǒng)提供的虛擬機中的每個均可作為不同的計算節(jié)點用于PES中,例如以使主機計算系統(tǒng)上的第一虛擬機計算節(jié)點成為第一用戶的第一計算節(jié)點組的一部分,并且使所述相同主機計算系統(tǒng)上的第二虛擬機計算節(jié)點成為第二用戶的第二計算節(jié)點組的一部分。或者,在其它實施方案中,所述數(shù)據(jù)中心處的物理主機計算系統(tǒng)中的一些或全部可能不提供任何虛擬機,例如相反直接作為代表PES的最終消費用戶來執(zhí)行一個或多個程序的計算節(jié)點。此外,在一些實施方案中,各個計算系統(tǒng)175和1 82均可具有不同的能力,可具有不同的相關使用費,可支持不同類型的用戶程序(例如,不同尺寸的虛擬機的軟件映像例子,或具有不同類型的資源標準和/或計算資源使用率,諸如不同模式的I/O和存儲器存取以及網(wǎng)絡使用率的程序)等。如果如此,則可根據(jù)一個或多個此類因素對特定用戶和/或其程序進行分組(例如自動地),這些因素還可用作選擇計算系統(tǒng)來執(zhí)行特定程序的約束條件和/或首選項。示例性數(shù)據(jù)中心170還包括可包括多個聯(lián)網(wǎng)裝置(未示出)(諸如轉(zhuǎn)換器、邊緣路由器和核心路由器)的內(nèi)部網(wǎng)絡172,以及連接至內(nèi)部網(wǎng)絡172的計算系統(tǒng)175和182、PESCMM模塊160和PESSM模塊180。各個主機計算系統(tǒng)175 和其它計算系統(tǒng)182均可以各種方式來設置,包括通過將其分組在共享共用底板或其它互連介質(zhì)的機架中。此外,可采用一個或多個計算系統(tǒng)(未示出)來執(zhí)行模塊160和180中的每個。圖示的PESSM模塊180和PESCMM模塊160實施所述技術中的至少一些,以便管理在采用計算系統(tǒng)175和182來提供的多組計算節(jié)點上執(zhí)行程序,如其它地方更詳細地描述。 當選擇特定計算節(jié)點來執(zhí)行用戶的一個或多個程序時,在一些實施方案中,PESSM模塊可通過與VM管理器組件或控制所述所選計算節(jié)點的程序的執(zhí)行的其它管理器組件進行交互來開始執(zhí)行那些程序,或者可在所選計算節(jié)點上直接執(zhí)行程序。PES的用戶可使用各種計算系統(tǒng),諸如計算系統(tǒng)190或192,或其它數(shù)據(jù)中心198之一處的計算系統(tǒng)以與PESSM模塊180 進行交互。應當理解到,圖IB的數(shù)據(jù)中心僅提供用于說明性的目的,并且在其它實施方案中可以其它方式來提供程序執(zhí)行服務和其它軟件執(zhí)行服務。例如,相反地可采用數(shù)據(jù)中心170 外部的一個或多個其它計算系統(tǒng),諸如計算系統(tǒng)190、192或者數(shù)據(jù)中心198處的計算系統(tǒng)來提供PESSM模塊180和/或PESCMM模塊160。圖2A示出了對提供用于執(zhí)行示例性用戶的一個或多個程序的一組示例性計算節(jié)點進行管理的技術的實例,諸如可由PESSM模塊和/或PESCMM模塊的實施方案自動實施的技術。具體地講,在該實例中,特定用戶(以下簡稱用戶UUU且在圖2A中未示出)已開始使用一組多個計算節(jié)點以代表該用戶各自執(zhí)行所指示的程序的復本,例如以用作替代計算節(jié)點來處理由所述執(zhí)行程序提供的服務所接收的請求(例如,以便平衡該服務在整個該組的多個計算節(jié)點中的計算負荷)。如時間線坐標圖210中所示出,用戶在時間Tl已請求提供計算節(jié)點組,并且已為該組的8個計算節(jié)點指定初始所需計算節(jié)點數(shù)量21fe。信息250 對各個用戶定義的觸發(fā)器指示,用戶已在例如初始請求時向計算節(jié)點組指定。另外,時間線坐標圖205示出了關于將被追蹤用于計算節(jié)點組且將用于確定觸發(fā)器250是否被滿足的性能特性的兩種實例類型的信息,所述信息在該實例中包括計算節(jié)點組的CPU總平均利用率 205a和計算節(jié)點組的網(wǎng)絡帶寬總平均利用率20恥。響應于與開始提供計算節(jié)點組的所接收的用戶請求相對應的時間Tl時的事件 E1,示例性PES(未示出)根據(jù)初始所需的計算節(jié)點數(shù)量向用戶啟動最初包括八個計算節(jié)點的計算節(jié)點組。另外,向八個計算節(jié)點同樣地設置計算節(jié)點組的正式記錄的計算節(jié)點數(shù)量 225。然而,如時間線坐標圖210中所示,所述八個計算節(jié)點實際上并未立即可用,因為需要一段時間來提供這些計算節(jié)點且使其可用作計算節(jié)點組的一部分,包括通過PES或用戶來使程序復本在這些計算節(jié)點中的每個上執(zhí)行。具體地講,在經(jīng)過時間Tl之后的初始時間后,計算節(jié)點組的程序執(zhí)行能力發(fā)生變化Cl 255,該變化在時間Tl時開始,在大約時間T2 時結束,并且與可用的八個計算節(jié)點中的前四個相對應。因此,追蹤用于計算節(jié)點組的實際計算節(jié)點數(shù)量220在所述時間從0增加至4。另外,同時或此后不久,時間線坐標圖205表明,根據(jù)該組中可用計算節(jié)點的操作而開始追蹤CPU總平均利用率20 和網(wǎng)絡帶寬總平均利用率20 的性能特性。在該實例中,PES(或其它第三方系統(tǒng))以大致連續(xù)的方式對該組計算節(jié)點進行監(jiān)測,使得以最新的方式來保持性能特性20 和20 以及實際計算節(jié)點數(shù)量220的信息。然而,在該實例中,僅定期對計算節(jié)點組的計算節(jié)點數(shù)量進行至少某些類型的動態(tài)修改,例如以在聚合時段260期間聚合至少某些類型的經(jīng)請求的修改,并且以在分別在所需、實際和正式記錄的計算節(jié)點數(shù)量215、220和225之間的聚合時段結束時進行協(xié)調(diào)活動。因此,在第一聚合時段260a期間,計算節(jié)點組的計算節(jié)點數(shù)量發(fā)生額外變化255。例如,在使前四個計算節(jié)點可用的變化Cl之后,在大約時間T3時結束的后續(xù)變化C2與可用作計算節(jié)點組的一部分的三個附加計算節(jié)點相對應。然而,在該實例中,例如由于最初選擇的計算節(jié)點存在的硬件問題(或相反在其它情況中,由于在時間Tl時僅7個計算節(jié)點可用于計算節(jié)點組中,其中一旦第八個計算節(jié)點隨后可用,便將其動態(tài)添加),最初請求的第八個計算節(jié)點不能及時可用。因此,示出了事件E2 265發(fā)生在變化C2之后不久(在大約時間T4時),其中PES終止原來的第八個計算節(jié)點(如果需要)(例如,如果其被凍結在中間狀態(tài)下),并且開始提供第八個替代計算節(jié)點。 如參照圖2B更詳細地討論,在該實例中,PES已引起與添加初始的第八個計算節(jié)點相對應的時間Tl時的變化ClOa,但該變化ClOa未能通過已添加且可用的實際第八個計算節(jié)點來完成,因此變化ClOa未在時間線坐標圖210的實際計算節(jié)點數(shù)量220中體現(xiàn),也未以其它方式在圖2A中示出。相反,在該實例中,事件E2被分成同時或接近同時發(fā)生的兩個不同的事件Eh和E2b (未單獨示出)。具體地講,在該實例中,PES記錄與未能正確初始化(例如在指定期限內(nèi))的第八個計算節(jié)點相對應的時間T4時的事件E2a,并且PES自動引發(fā)時間 T4時的變化ClOb (未示出)以終止未能正確初始化的初始的第八個計算節(jié)點。此外,在該實例中,初始的第八個計算節(jié)點由于事件Eh而發(fā)生的實際終止本身被視為時間T4時的個別事件E2b,個別事件E2b自動引發(fā)立即提供第八個替代計算節(jié)點。使得第一事件的變化引起的結果本身可被視為引起另一種變化的第二事件的此類鏈接事件和相應變化結果在追蹤事件和相應變化結果之間的相互關系中可提供各種益處,如其它地方更詳細地討論。隨后,根據(jù)事件E2b在時間T4時開始,并且在時間T5時結束的變化C3 255使實際計算節(jié)點數(shù)量從七個變?yōu)榘藗€,因為第八個替代計算節(jié)點可用作計算節(jié)點組的一部分。在計算節(jié)點組的八個計算節(jié)點以預期的方式操作聚合時段^Oa的一部分之后, 在大約時間T7,實際計算節(jié)點數(shù)量220發(fā)生另一種變化C4 255,該變化由失效或者說是變得不可用的計算節(jié)點中的一個促使。相應事件E3 265與變化C4大約同時發(fā)生,其中PES終止不可用計算節(jié)點(如果需要),并且任選地自動開始提供替代計算節(jié)點。具體地講,以類似于此前針對事件E2所討論的方式,事件E3在該實例中被分成同時或接近同時發(fā)生的兩個不同的事件E3a和E3b (未單獨示出)。因此,PES在該實例中記錄與經(jīng)檢測已變得不可用的計算節(jié)點相對應的時間T7時的事件E3a,并且PES自動引發(fā)時間T7時的活動以終止不可用計算節(jié)點,例如以直接引起變化C4。此外,在該實例中,不可用計算節(jié)點由于事件E3a 而發(fā)生的終止本身被視為在大約時間T7時自動引發(fā)以立即提供替代計算節(jié)點的個別事件 E3b,但在其它實施方案和情況中,替代計算節(jié)點的任何這種提供相反地將被延遲直到在聚合時段^Oa結束時進行的協(xié)調(diào)活動HI。隨后,在該實例中,變化C5 255在大約時間T9時結束,該變化將實際計算節(jié)點數(shù)量恢復至八個,這由事件E!3b直接引起,因為所述替代計算節(jié)點可用作計算節(jié)點組的一部分。在該實例中,暫時不更新正式記錄的計算節(jié)點數(shù)量225 以對應于變化C4和C5,也不更新以對應于先前的變化C1-C3,但在其它實施方案中,可更新
18正式記錄的計算節(jié)點數(shù)量225以反映一些或所有此類變化,例如以連續(xù)或反復地將正式記錄的計算節(jié)點數(shù)量225保持在與所更新的實際計算節(jié)點數(shù)量220 —致的狀態(tài)中。在該實例中,在聚合時段^Oa的其余時間內(nèi)未發(fā)生其它計算節(jié)點能力可用性變化或事件,包括所有指定的觸發(fā)器250不被滿足,并且未接收動態(tài)指定的用戶指令。因此,在所述時段^Oa結束時的時間Tll時,考慮了第一組協(xié)調(diào)活動H1,但無需任何活動,因為當前所需、實際和正式記錄的計算節(jié)點數(shù)量215、220和225分別在八個計算節(jié)點處均匹配。如果在聚合時段^Oa 期間未進行代替不可用計算節(jié)點的變化C5 (如該實例中所示),則在該聚合時段之后,該變化相反地會作為協(xié)調(diào)活動Hl的一部分被引起,以便代替所述時間處的不可用計算節(jié)點(例如,結合在聚合時段^Oa期間請求或引起的任何其它動態(tài)可用性變化)。然而,在第二聚合時段^Ob期間,發(fā)生了其它事件。具體地講,事件E5 265首先發(fā)生在大約時間T16時,從而與PES做出的自動確定相對應,即已通過提高CPU總平均利用率 205a來使觸發(fā)器TR-1250a被滿足,如時間線坐標圖205中通過CPU總平均利用率20 線上的第一個黑色橢圓所圖示。對于十二個經(jīng)請求的全部所需計算節(jié)點數(shù)量215c而言(或者無論當前所需的計算節(jié)點數(shù)量如何,可請求將所更新的所需計算節(jié)點數(shù)量設置為十二個), 觸發(fā)器TR-I的滿足情況引發(fā)了將所需計算節(jié)點數(shù)量215增加4個計算節(jié)點的請求。類似地,在經(jīng)過另外的額外時間之后,事件E6 265接下來發(fā)生在大約時間T18時,從而與確定已通過提高網(wǎng)絡帶寬總平均利用率20 來使觸發(fā)器TR-N 250c被滿足相對應,如時間線坐標圖205中通過網(wǎng)絡帶寬總平均利用率20 線上的黑色橢圓所圖示。對于十個經(jīng)請求的全部所需計算節(jié)點數(shù)量215d而言(或者無論當前所需的計算節(jié)點數(shù)量如何,可請求將所更新的所需計算節(jié)點數(shù)量設置為十個),觸發(fā)器TR-N的滿足情況引發(fā)了將所需計算節(jié)點數(shù)量215 增加2個計算節(jié)點的請求。在經(jīng)過較短的額外時間之后,事件E4 265發(fā)生在大約時間T19 時,其中對于十一個經(jīng)請求的全部所需計算節(jié)點數(shù)量21 而言(或者無論當前所需的計算節(jié)點數(shù)量如何,可請求將所更新的所需計算節(jié)點數(shù)量設置為十一個),與計算節(jié)點組相關的用戶提供了將所需計算節(jié)點數(shù)量215增加3個計算節(jié)點的動態(tài)指定請求。可例如根據(jù)注意到CPU總平均利用率20 為較高、計算節(jié)點組上的總計算負荷正在增加等的用戶來做出該請求。最后,在聚合時段^Ob結束之前不久,額外變化C6發(fā)生在大約時間T20時,該變化由失效或者說是變得不可用的該組計算節(jié)點中的一個促使。相應事件E9與變化C6大約同時發(fā)生,其中PES終止不可用計算節(jié)點(如果需要)。在該實例中,然而PES并非立即開始提供替代計算節(jié)點,而是決定等待直到即將進行的第二組協(xié)調(diào)活動H2在時間T21時開始(例如,根據(jù)時間T21之前所剩余的少量時間、根據(jù)替代計算節(jié)點的此類延遲提供等,所述延遲為在使用時變得不可用的任何計算節(jié)點的默認動作),因為可能的是將根據(jù)那些協(xié)調(diào)活動來減少計算節(jié)點組中計算節(jié)點的數(shù)量,并且無需所述替代計算節(jié)點。在其它實施方案中,PES相反地可立即開始提供替代計算節(jié)點(例如,基于在任何情況下未延遲不可用計算節(jié)點的替代;基于在該情況下未延遲不可用計算節(jié)點的替代(由于所需計算節(jié)點數(shù)量作為協(xié)調(diào)活動H2的一部分而可能增加而非減少);基于在該情況下未延遲不可用計算節(jié)點的替代(由于其它因素,諸如用戶在稍后的時間T3之前已對八個計算節(jié)點進行支付);等)。 具體地講,以類似于此前針對事件E2和E3所討論的方式,事件E9被分成同時或接近同時發(fā)生的兩個不同的事件E9a和E9b (未單獨示出)。因此,PES在該實例中記錄與經(jīng)檢測已變得不可用的計算節(jié)點相對應的時間T20時的事件E9a,并且PES自動引發(fā)時間T20時的活動以終止不可用計算節(jié)點,例如以直接引起變化C6。此外,在該實例中,不可用計算節(jié)點由于事件E9a而發(fā)生的終止本身被視為大約時間T20時的個別事件E9b,該事件引發(fā)將該組的附加計算節(jié)點用作替代計算節(jié)點的請求,例如以將所需計算節(jié)點數(shù)量215保持在八個計算節(jié)點的所需數(shù)量21fe。在該實例中,以類似于事件E4-E6的方式來處理事件E9b的請求,該請求被延遲直到將在當前聚合時段260b結束時進行的協(xié)調(diào)活動H2,但在其它實施方案和情況中,相反地可立即開始替代計算節(jié)點的這種提供。另外,在該實例中,未以類似于此前針對變化C4和C5描述的方式來更新正式記錄的計算節(jié)點數(shù)量225以對應于變化C6, 但在其它實施方案中,可更新正式記錄的計算節(jié)點數(shù)量225以反映此類變化。因此,在第二聚合時段^Ob結束時,開始協(xié)調(diào)活動H2,并且在該情況下會引起對計算節(jié)點組的動態(tài)修改。具體地講,PES在該實例中將與事件E4、E5、E6和E9b的各種經(jīng)請求的所需計算節(jié)點數(shù)量2Mb、215c、215d和21 相對應的經(jīng)請求的修改聚合,并且決定對八個先前所需計算節(jié)點數(shù)量21 做出聚合的動態(tài)數(shù)量修改,同時聚合的動態(tài)數(shù)量修改在該實例中增加了四個附加計算節(jié)點(例如,基于采用經(jīng)請求的數(shù)量修改中的最大值),以便對應于十二個所更新的當前所需計算節(jié)點數(shù)量2Ke。在其它實施方案中,可以其它方式來確定聚合的動態(tài)數(shù)量修改,例如以選擇聚合的動態(tài)數(shù)量修改以便根據(jù)事件E9b來保持先前所需計算節(jié)點數(shù)量215a(例如,從而導致從當前的實際計算節(jié)點數(shù)量增加一個計算節(jié)點), 以采用事件E4-E6的經(jīng)請求的數(shù)量修改中的最小值(例如,從而導致從當前所需的計算節(jié)點數(shù)量增加兩個計算節(jié)點),以采用事件E4-E6的經(jīng)請求的數(shù)量修改的平均值(例如,從而導致從當前所需的計算節(jié)點數(shù)量增加三個計算節(jié)點),以采用事件E4-E6的經(jīng)請求的數(shù)量修改的聚合值(例如,從而導致從當前所需的計算節(jié)點數(shù)量增加九個計算節(jié)點),以采用事件E4-E6的經(jīng)請求的數(shù)量修改的最高優(yōu)先級(例如,從而導致從當前所需的計算節(jié)點數(shù)量增加三個計算節(jié)點,其前提是例如相比事件E5和E6的觸發(fā)器滿足情況,E4的用戶指令被視為具有較高優(yōu)先級),以采用事件E4-E6的經(jīng)請求的數(shù)量修改中第一次請求的修改或最后一次請求的修改(例如,從而導致從當前所需的計算節(jié)點數(shù)量分別增加四個或三個計算節(jié)點)等。在其中用戶指令事件相比觸發(fā)器滿足事件具有較高優(yōu)先級的一些實施方案和情況中(例如,如果用戶指令始終會覆蓋來自觸發(fā)器滿足事件的任何經(jīng)請求的動態(tài)修改),PES 還可防止其它觸發(fā)器滿足事件發(fā)生在接收用戶指令事件之后的聚合時段期間,例如以在該實例中忽略(或絕不確定)發(fā)生在針對事件E4來接收用戶指令之后的任何觸發(fā)器滿足事件。此外,在該實例中,在協(xié)調(diào)活動H2時,當前實際和正式記錄的計算節(jié)點數(shù)量220和225 在七個和八個計算節(jié)點處分別不同。因此,作為協(xié)調(diào)活動H2的一部分,PES開始向計算節(jié)點組提供五個附加計算節(jié)點,以將七個當前的實際計算節(jié)點數(shù)量增加至十二個新更新的所需計算節(jié)點數(shù)量,并且進一步更新正式記錄的計算節(jié)點數(shù)量225以符合十二個新更新的所需計算節(jié)點數(shù)量。因此,在該實例中,5個計算節(jié)點的能力可用性變化間接地由以下方式引起根據(jù)事件E9b來代替由于變化C7而變得不可用的一個計算節(jié)點,以及增加與來自事件 E4、E5和E6的所確定的聚合數(shù)量修改相對應的4個附加計算節(jié)點。在第三聚合時段^Oc期間,進一步發(fā)生其它事件和計算節(jié)點能力可用性變化。具體地講,變化C7在大約時間T22時結束,其中當前可用的計算節(jié)點數(shù)量增加了五個至總共十二個計算節(jié)點,以反映其可用性在時間T21時開始的五個附加計算節(jié)點,并且實際計算節(jié)點數(shù)量220由此被更新。如時間線坐標圖205所示,CPU總平均利用率20 和網(wǎng)絡帶寬總平均利用率20 均在變化C7之后降低,其中CPU總平均利用率20 迅速下降。具體地講,在該實例中,CPU總平均利用率20 最終降至低于與觸發(fā)器250b的指定標準相對應的 20%的閾值,從而致使事件E8發(fā)生(包括確定觸發(fā)器TR-3 250b已被滿足),如時間線坐標圖205中通過CPU總平均利用率20 線上的第二個黑色橢圓所圖示。對于十個經(jīng)請求的全部所需計算節(jié)點數(shù)量215f而言(或者無論當前所需的計算節(jié)點數(shù)量如何,可請求將所更新的所需計算節(jié)點數(shù)量設置為十個),觸發(fā)器的滿足情況引發(fā)了將所需計算節(jié)點數(shù)量215 減少2個計算節(jié)點的請求。最后,在聚合時段^Oc結束之前,額外變化C8發(fā)生在大約時間D8時,該變化由失效或者說是變得不可用的該組計算節(jié)點中的一個促使。相應事件ElO與變化C8大約同時發(fā)生,其中PES終止不可用計算節(jié)點(如果需要)。以類似于針對變化C6的方式,PES在該實例中選擇等待直到第三組協(xié)調(diào)活動H3在時間T31時開始,而非立即開始替代不可用計算節(jié)點(例如,因為事件E8使得可能或很可能的是,計算節(jié)點組中計算節(jié)點的所需數(shù)量此后會減少),但在其它實施方案中,PES相反地可立即開始提供替代計算節(jié)點,具體地講,以類似于此前針對事件E2、E3和E9所述的方式,事件ElO在該實例中被分成同時或接近同時發(fā)生的兩個不同的事件ElOa和ElOb (未單獨示出)。因此,在該實例中,PES記錄與經(jīng)檢測已變得不可用的計算節(jié)點相對應的時間D8時的事件ElOa,并且PES自動引發(fā)時間D8時的活動以終止不可用計算節(jié)點,例如以直接引起變化C8。此外,在該實例中,不可用計算節(jié)點由于事件ElOa而發(fā)生的終止本身被視為大約時間D8時的個別事件ElOb,該事件引發(fā)將該組的附加計算節(jié)點用作替代計算節(jié)點的請求,例如以將所需計算節(jié)點數(shù)量215保持在十二個計算節(jié)點的所需數(shù)量215e。在該實例中,以類似于事件E9b的方式來處理事件ElOb的請求,該請求被延遲直到將在當前聚合時段260c結束時進行的協(xié)調(diào)活動H3,但在其它實施方案和情況中,相反地可立即開始替代計算節(jié)點的這種提供。另外,在該實例中,未以類似于此前針對變化C4-C6所述的方式來更新正式記錄的計算節(jié)點數(shù)量225以對應于變化C8,但在其它實施方案中,可更新正式記錄的計算節(jié)點數(shù)量225以反映此類變化。因此,在第三聚合時段^Oc結束時,開始協(xié)調(diào)活動H3,并且會導致計算節(jié)點組發(fā)生變化。具體地講,PES在該實例中將與已經(jīng)發(fā)生在時段^Ob期間的事件(在該實例中僅為事件E8和ElOb)相對應的經(jīng)請求的修改聚合,并且決定對十二個先前所需計算節(jié)點數(shù)量21 做出聚合的動態(tài)數(shù)量修改,所述修改在該實例中減少了兩個計算節(jié)點,以便對應于十個所更新的當前所需計算節(jié)點數(shù)量215g。此外,在協(xié)調(diào)活動H3時,當前實際和正式記錄的計算節(jié)點數(shù)量220和225在十一個和十二個計算節(jié)點處分別不同。因此,作為協(xié)調(diào)活動 H3的一部分,PES按照十一個計算節(jié)點的當前實際計算節(jié)點能力來引發(fā)十二個當前正式的計算節(jié)點數(shù)量發(fā)生變化,以達到十個當前所需的實際計算節(jié)點數(shù)量,以便將現(xiàn)有計算節(jié)點之一從計算節(jié)點組中移除(例如,以任選地在完成已開始的一些或所有動作之后終止在已移除的計算節(jié)點上執(zhí)行程序,并且以使該計算節(jié)點可供其他用戶將來使用)。因此,在該實例中,在時間T31時將現(xiàn)有計算節(jié)點之一移除的能力可用性變化間接地由以下方式引起 終止關于事件ElOb的一組計算節(jié)點,以及請求減少與事件E8相對應的2個計算節(jié)點。PES 進一步更新正式記錄的計算節(jié)點數(shù)量225以符合十個新更新的所需計算節(jié)點數(shù)量。在時間 T31之后不久,最終變化C9在大約時間T32時結束,其中當前可用的計算節(jié)點數(shù)量減少了一個至總共十個計算節(jié)點,以反映在時間T31時開始從計算節(jié)點組中移除的計算節(jié)點,并且實際計算節(jié)點數(shù)量220由此被更新,在其它實施方案中,在決定做出所述變化時,變化C9可基本上立即發(fā)生在時間T31,例如其前提是立即將待移除的計算節(jié)點從計算節(jié)點組的其它活動中退出,甚至在已移除的計算節(jié)點暫時執(zhí)行且可用于繼續(xù)進行操作時。另外,雖然在該實例中所示出的協(xié)調(diào)活動HI、H2和H3發(fā)生在單個時間點,但應當理解到一些或所有協(xié)調(diào)活動可實際上發(fā)生在一段時間內(nèi),并且還可具有持續(xù)一段時間的其它效果。例如,在至少一些實施方案中,由PES引發(fā)的對計算節(jié)點組的程序執(zhí)行能力的一些或所有變化可產(chǎn)生可能不允許至少一些其它類型的事件或變化的臨時鎖定期??梢鸫随i定的PES-指示的程序執(zhí)行能力變化可包括例如作為協(xié)調(diào)活動的一部分來引起的程序執(zhí)行能力增加和/或降低(例如,添加新計算節(jié)點、移除現(xiàn)有計算節(jié)點等),和/或響應于PES 決定(例如,計算節(jié)點失效、接收用戶指令、用戶指定的觸發(fā)器的滿足情況等)而立即引發(fā)的程序執(zhí)行能力變化。此類鎖定可具有各種類型的持續(xù)時間(例如,直至指定的結果或發(fā)生,例如直到所添加的計算節(jié)點已變得可用;指定的持續(xù)時間,諸如所添加的計算節(jié)點變得可用的平均或預期時間;等),并且在一些實施方案中可根據(jù)PES引發(fā)的變化的類型而有所不同。在此類鎖定期間,可能不允許至少某些類型的事件或變化,例如不允許在該鎖定持續(xù)時間期間用戶指定的觸發(fā)器被滿足(或通過忽略任何此類觸發(fā)器滿足情況),和/或不允許在該鎖定持續(xù)時間期間接受用戶指令(或通過忽略任何此類用戶指令)。此外,在一些實施方案中,與計算節(jié)點組相關的用戶可同樣地指定以與鎖定冷卻期類似的方式操作的冷卻期,諸如緊接鎖定或相反地發(fā)生在其它時間的指定時間量的冷卻期。如同鎖定,在冷卻期間,可能不允許至少某些類型的事件或變化,例如以不允許在冷卻期間用戶指定的觸發(fā)器被滿足(或通過忽略任何此類觸發(fā)器滿足情況)。應當理解到,在其它實施方案中,用戶和 /或PES可以其它方式來控制對計算節(jié)點組的修改。因此,這樣,PES操作以管理由一組計算節(jié)點提供給用戶的程序執(zhí)行能力,包括以根據(jù)各種情況對該計算節(jié)點組做出各種動態(tài)修改。應當理解到,圖2A中示出的事件和變化僅提供用于進行示意性的目的,并且PES的所述實際事件、變化和其它操作在其它實施方案和情況中可能不同。圖2B示出了用于將因果關系信息自動歸因于此前參照圖2A所討論的計算節(jié)點數(shù)量動態(tài)修改的技術的實例,諸如可由PESSM模塊的實施方案自動進行的技術。具體地講,圖 2B示出了儲存與圖2A所示信息中的一些相對應的信息的兩個實例數(shù)據(jù)庫表數(shù)據(jù)結構,其中圖2B的實例表280儲存與圖2A的示例性計算節(jié)點組(圖2B中稱為“第1組”)發(fā)生的示例性計算節(jié)點能力可用性變化有關的各種信息,并且圖2B的實例表290儲存與圖2A的示例性計算節(jié)點組(第1組)發(fā)生的示例性事件有關的各種信息。實例表280包括各自對應于參照圖2A所討論的示例性變化Cl-ClO中之一的各行或項^fe-285k,其中示出了各行的各欄或列^0a-280x。具體地講,在該實例中,各行包括唯一標識符("ID" ) 280a,與變化相對應的適用計算節(jié)點組的ID 280b、程序執(zhí)行能力變化的類型^0c、程序執(zhí)行能力變化的預期結果的指示280d、關于變化的各種詳情^0e、變化的開始和結束時間^Of和280g、發(fā)生變化或者說是與變化相關的聚合時段^Oh (在該實例中為基于在聚合時段結束時進行的協(xié)調(diào)活動所提及的聚合時段)、變化-事件關結ID 280x和任選的各種其它信息。作為一個示例性實例,行對應于第1組的變化Cl,變化Cl對應于第1組的計算節(jié)點數(shù)量的變化,該變化涉及增加4個計算節(jié)點并且在聚合時段Hl 期間于時間T02時結束。其它行包括類似的信息。實例表290包括各自對應于參照圖2A所述的示例性事件El-ElO中之一的各行或項^^i-295m,其中示出了各行的各欄或列^0a-290x。具體地講,在該實例中,各行包括唯一標識符(〃 ID" )290a、與事件相對應的適用計算節(jié)點的ID 290b、事件的類型^0c、 關于事件來源的信息290d、事件的時間290e、發(fā)生事件或者說是與事件相關的聚合時段 290f (在該實例中指基于在聚合時段結束時進行的協(xié)調(diào)活動)、變化-事件關結ID 290x和任選的各種其它信息(例如,與所接收的用戶指令相關的特定用戶)。作為一個示例性實例,行四證對應于第1組的事件E4,該事件E4對應于在聚合時段H2期間的時間T19時所接收的用戶指令,該指令請求第1組的所需計算節(jié)點數(shù)量增加3個計算節(jié)點。其它行包括類似的信息。在圖2B的實例中,表280和四0的變化-事件關結ID信息^Ox和^Ox反映了被歸因以反映變化和事件之間的關系的因果關系信息。具體地講,在該實例中,如果表280 和290中的行針對變化-事件關結ID信息^Ox和^Ox而共享共同的值,則其反映了相應事件和變化之間的被歸因的因果關系。作為一個實例,如此前參照圖2A所討論,事件E3b 對應于提供變?yōu)椴豢捎玫挠嬎愎?jié)點的替代計算節(jié)點,所述計算節(jié)點可直接歸因于對應于由此將計算節(jié)點添加至該組的變化C5。因此,行(對應于事件E3b)和行(對應于變化⑶)共享共同的關結標識符。相反地,與在協(xié)調(diào)活動H2期間開始的添加五個計算節(jié)點相對應的變化C7不具有可直接歸因于該變化的單個事件。具體地講,事件E4、E5和E6各自請求對第1組進行動態(tài)修改,這些動態(tài)修改經(jīng)聚合且共同用于促使針對變化C7而添加五個計算節(jié)點中的四個。 因而,(對應于事件E4-E6)和行(對應于變化C7)均共享共同的關結標識符。此外,在圖2A的實例中,被添加作為變化C7的一部分的五個計算節(jié)點之一為由于變化C6而變得不可用的計算節(jié)點的替代節(jié)點,同時開始對應于事件E9b的替代計算節(jié)點。因此,行(對應于事件E9b)和行(對應于變化C7)也共享相同的共同關結標識符。 在其它實施方案中,如果通過提供對應于事件E4-E6的四個附加計算節(jié)點以單獨地在事件 E9b中開始提供替代計算節(jié)點,例如以立即代替不可用計算節(jié)點,則所述替代計算節(jié)點的相應變化將在時段260b和由此進行的協(xié)調(diào)活動H2結束之前發(fā)生,并且將在表觀0中與事件 E9b和共享不同的相應關結標識符的所述額外變化單獨地示出。另外,雖然針對變化C7而添加的五個計算節(jié)點以聚合的方式在表觀0的單行中示出,但在其它實施方案中,所添加的每個計算節(jié)點均可在表280的單獨的行285中表示,并且如果如此,其各自共享相同的關結標識符N7,該關結標識符N7目前針對聚合變化C7的唯一行而示出。此外,在該實例中,在表觀0中追蹤了變化,這些變化不僅對應于基于動態(tài)用戶指令和/或被滿足的用戶觸發(fā)器的計算節(jié)點數(shù)量的動態(tài)修改,還基于計算節(jié)點數(shù)量的意外變化(例如,由于計算節(jié)點失效或者說是變得不可用)。此類變化基于監(jiān)測活動來檢測,并且被示為觸發(fā)額外變化的事件(例如提供替代計算節(jié)點),但在其它實施方案中,可以其它方式對其進行處理,例如不追蹤此類變化和/或不將系統(tǒng)啟動的替代活動視為事件。此外,雖然表280和四0中的變化-事件關結信息未對可直接歸因于一個或多個相應事件(例如, 立即引發(fā)那些變化的事件)的變化與可間接歸因于一個或多個相應事件(例如,例如在協(xié)調(diào)活動期間聚合在一起且共同引起那些變化的事件)的變化進行區(qū)分,但在其它實施方案中,可進一步追蹤此類信息。如前所述,對計算節(jié)點組的特定程序執(zhí)行能力動態(tài)修改的責任歸因可提供各種益處,包括向與計算節(jié)點組相關的用戶提供為何會發(fā)生變化的解釋。還可響應于從用戶或其它來源處接收的各類詢問來產(chǎn)生和/或使用此類責任歸因信息,這些詢問諸如關于識別哪些(多個)事件為引起一組一個或多個計算節(jié)點的可用性發(fā)生指示的特定程序執(zhí)行能力修改或其它變化的原因的請求和/或關于哪些(多次)程序執(zhí)行能力修改或其它計算節(jié)點組的(多個)可用性變化由一個或多個指示的事件引起的請求。參照圖2B所討論,表觀0 和四0中示出的關結信息提供了一種用于追蹤和提供責任歸因信息的機制。例如,對于圖 2A中與變化C7相對應的添加5個計算節(jié)點而言,用戶可能想知道為何添加了 5個計算節(jié)點(例如,特別是按照添加3個計算節(jié)點的事件E4的用戶指令)。通過采用圖2B中示出的關結信息,PES或其它系統(tǒng)可易于自動生成人可讀的解釋。例如,響應于關于與圖2A的變化Cl相對應的添加四個計算節(jié)點的原因的用戶請求,PES或其它系統(tǒng)可例如指示以下內(nèi)容“變化COl由時間Tl時的事件EOl直接引起。事件EOl為來自用戶UUU以開始提供一組8個計算節(jié)點的請求”。該信息可這樣產(chǎn)生通過采用行中對應于變化Cl的關結信息^Ox以識別表四0中對應于事件El的行四如,并且以所需方式從行和中提取和格式化信息(例如,以基于用戶請求或先前的用戶首選項的格式、以基于PES默認值的格式等)。類似地,響應于關于執(zhí)行用戶指令El以開始提供該組八個計算節(jié)點的用戶請求,PES或其它系統(tǒng)可例如指示以下內(nèi)容“時間Tl時的事件EOl直接引起變化C01、C02和 C03。變化COl為添加4個計算節(jié)點,其在時間Tl時開始并且在時間T2時結束。變化C02 為添加3個計算節(jié)點,其在時間Tl時開始并且在時間T3時結束。變化C03為添加1個計算節(jié)點,其在時間Tl時開始,但未結束”。作為另一個實例,響應于關于與圖2A的變化C7相對應的添加五個計算節(jié)點的原因的用戶請求,PES或其它系統(tǒng)可例如指示以下內(nèi)容“變化 C07由發(fā)生在時段Tll至T21期間的事件E05、E06、E04和E09b間接引起。事件E05為基于觸發(fā)器TR-I的滿足情況的4個附加計算節(jié)點的請求。事件E06為基于觸發(fā)器TR-N的滿足情況的2個附加計算節(jié)點的請求。事件E04為基于來自用戶UUU的用戶提供動態(tài)指令的 3個附加計算節(jié)點的請求。事件E09b為基于該組中不可用計算節(jié)點的自動終止的1個替代計算節(jié)點的請求”。作為對此類文本串的補充或替代,責任歸因信息還可以各種其它形式諸如自動報表(例如,以表格、圖表等)以及以定期或其它預定方式來產(chǎn)生。應當理解到,在其它實施方案中,此類責任歸因信息可以各種其它方式來產(chǎn)生和使用。應當理解到,關于圖2B中示出的事件和變化的信息僅提供用于進行示意性的目的,并且對于所儲存的信息而言,此類信息的儲存在其它實施方案中可以各種其它方式來進行。此外,在其它實施方案中,PES可儲存關于用戶和計算節(jié)點組的各種其它類型的信息,例如以提供儲存關于用戶定義的觸發(fā)器、關于監(jiān)測的性能測量信息、關于用戶賬號等的信息的附加表。另外,圖2A和2B的前述實例提供用于進行示意性的目的,并且其它實施方案可以各種方式不同于這些實例。例如,雖然在這些實例中,程序執(zhí)行能力根據(jù)計算節(jié)點的數(shù)量來測量和修改,例如其前提是各種可用計算節(jié)點被視為等效(例如,具有等效的計算資源),但可提供其它實施方案,其中各種可用計算節(jié)點可為具有不同特性(例如不同的處理能力、內(nèi)存量、平臺規(guī)格等)的不同類型,和/或其中以不同于計算節(jié)點數(shù)量的方式來追蹤程序執(zhí)行能力。在一些此類實施方案中,各種請求可包括一個或多個特定類型的計算節(jié)點的指示,所述計算節(jié)點用于被選擇來執(zhí)行與所述請求相關的程序的多組計算節(jié)點中,并且那些請求僅可在相應的指定類型的計算節(jié)點上實現(xiàn)。另外,在至少一些實施方案中,PES或其它系統(tǒng)還可進行作為管理多組計算節(jié)點的一部分的其它類型的活動。例如,如前所述,PES或其它系統(tǒng)可決定在各個時間從計算節(jié)點組中添加或移除計算節(jié)點,各個時間包括如下在聚合時段結束時進行的協(xié)調(diào)活動期間 (響應于在所述時段期間被滿足的一個或多個觸發(fā)器和/或在所述時段期間接收的用戶指令);在響應于經(jīng)指定或確定而具有瞬即效應的用戶指令或觸發(fā)器滿足情況的任何時間; 在響應于PES或其它系統(tǒng)的自動活動例如以代替失效的計算節(jié)點和/或終止并移除當前操作被禁止的計算節(jié)點的任何時間;等。在至少一些實施方案中,PES或其它系統(tǒng)還可在確定至少一些此類計算節(jié)點組修改的確切時間時考慮其它因素。例如,在用戶將負責針對給定時段使用給定數(shù)量的計算節(jié)點的情況中(例如,已經(jīng)收取了 X個計算節(jié)點在下一小時的費用),此類信息可用于確定關于計算節(jié)點組的至少某些類型的修改的時間。如果PES或其它系統(tǒng)決定將該組中計算節(jié)點的數(shù)量減少至低于X,則PES或其它系統(tǒng)可決定在實際上將計算節(jié)點數(shù)量減少至低于X之前,等待直到接近給定時段或給定時段結束時(例如,在已向用戶收取費用的小時結束時)。類似地,如果一組計算節(jié)點在接近進行新的協(xié)調(diào)活動時失效 (例如,在接近將經(jīng)請求的計算節(jié)點數(shù)量修改聚合期間的一段時間結束時),則PES或其它系統(tǒng)可決定對實際節(jié)點數(shù)量和任選的正式記錄的節(jié)點數(shù)量進行更新,以反映所述失效,但無需立即開始添加替代計算節(jié)點-這樣,如果已確定在協(xié)調(diào)活動期間聚合經(jīng)請求的計算節(jié)點數(shù)量修改可將該組的計算節(jié)點數(shù)量減少一個或多個計算節(jié)點,則失效的計算節(jié)點可用作一個減少的此類節(jié)點,而非終止該組的執(zhí)行計算節(jié)點。在一些實施方案中,PES或其它系統(tǒng)可同時管理對計算節(jié)點組進行的多次不同類型的修改。作為一個實例,可采用單個位置處的計算節(jié)點來將計算節(jié)點組管理在當前所需的計算節(jié)點數(shù)量,但用戶可決定為計算節(jié)點組指定第二類型的尺度,使得該組中計算節(jié)點的指定的所需子集位于不同的第二位置。如果如此,PES或其它系統(tǒng)可操作以通過各種方式來滿足第二尺度的期望值,各種方式包括通過將任何新計算節(jié)點逐步添加至第二位置處的組中并且從第一位置處的組中逐步移除任何現(xiàn)有計算節(jié)點直到實現(xiàn)第二尺度的期望值, 或者立即終止第一位置處的組中的現(xiàn)有計算節(jié)點以能夠使替代計算節(jié)點添加至第二位置處的組中。此類逐步添加和/或移除可以其它地方更詳細地討論的方式中的任何方式來觸發(fā),包括代替不可用計算節(jié)點、響應于動態(tài)指定的用戶指令和/或被滿足的用戶指定的觸發(fā)器來修改計算節(jié)點數(shù)量等。另外,雖然計算節(jié)點數(shù)量和位置在該實例中為同時均衡,但可以類似的方式來進行各種其它類型的變化(例如,例如根據(jù)具有不同相關數(shù)量的計算資源的不同類型將現(xiàn)有計算節(jié)點從第一種類型改變?yōu)榈诙N類型)。此外,雖然通過改變計算節(jié)點數(shù)量在一些實例中進行了程序執(zhí)行能力修改,但在其它實施方案中,此類能力修改可通過改變該組中一個或多個計算節(jié)點的程序執(zhí)行能力來進行(例如,通過用具有或多或少的一種或多種類型的相關計算資源的第二計算節(jié)點代替第一計算節(jié)點、通過對已成為該組的一部分的計算節(jié)點中的一個節(jié)點可用的一種或多種計算資源的量進行修改等)。如前所述,PES可在各個實施方案中提供和使用各類功能,并且這些功能可以各種方式提供。例如,在一些實施方案中,可從PES獲得的程序執(zhí)行能力可包括多個計算節(jié)點, 所述計算節(jié)點用于代表用戶來執(zhí)行程序,例如通過經(jīng)由一個或多個網(wǎng)絡或能夠在計算機之間傳輸數(shù)據(jù)的其它數(shù)據(jù)交換介質(zhì)互連的多個物理計算機。這些計算機中的至少一些可在一些實施方案中各自包括同時執(zhí)行多個程序的足夠的計算相關資源(例如,足夠的可寫內(nèi)存、非易失性存儲、CPU周期或其它CPU使用率度量、網(wǎng)絡帶寬、交換空間等),并且這些計算機中的至少一些在一些此類實施方案中可各自提供多個虛擬機計算節(jié)點,所述虛擬機計算節(jié)點各自可代表不同的用戶來執(zhí)行一個或多個程序。此外,在各個實施方案中,PES可代表多個用戶來執(zhí)行各類程序。例如,代表用戶來執(zhí)行的此類程序可包括一個或多個操作系統(tǒng)、 應用(例如,服務器和/或其它軟件應用)、實用程序、程序庫等。另外,在至少一些實施方案中,此類程序可包括可執(zhí)行的軟件映像,諸如虛擬機映像,其在一個或多個虛擬機計算節(jié)點上可啟動或者說是可受載,并且各自可包括操作系統(tǒng)軟件、用于一個或多個應用程序的軟件,和/或配置信息等。在至少一些實施方案中,通過PES在一組一個或多個計算節(jié)點上執(zhí)行一個或多個程序可響應于立即執(zhí)行那些程序的當前執(zhí)行請求來引發(fā)?;蛘?,所述引發(fā)可基于此前接收的程序執(zhí)行請求,該請求可對當前時間內(nèi)的那些程序預定或者說是保留日后執(zhí)行。程序執(zhí)行請求可以各種方式來接收,例如直接從用戶處接收(例如,經(jīng)由交互式控制臺或由程序執(zhí)行服務提供的其它GUI),或者從自動引發(fā)一個或多個其它程序或其它實例的自行執(zhí)行的用戶執(zhí)行程序處接收(例如,經(jīng)由程序執(zhí)行服務提供的API,諸如使用網(wǎng)絡服務的API)。程序執(zhí)行請求可包括用于引發(fā)一個或多個程序的執(zhí)行的各種信息,諸如可執(zhí)行的程序或待執(zhí)行的程序的其它復本、此前經(jīng)注冊或者說是提供用于執(zhí)行的程序的指示,和待同時執(zhí)行的許多程序?qū)嵗?例如,表示為單個所需數(shù)量的實例、最小和最大數(shù)量的所需實例等),以及用于執(zhí)行一個或多個程序的各種其它類型的首選項和/或要求(例如,資源分配、用于執(zhí)行的地理和/或邏輯位置、其它程序和/或計算節(jié)點的臨近執(zhí)行、時間相關標準等)。在接收用于在指示的時間執(zhí)行一個或多個程序?qū)嵗恼埱笾?,PES可決定將一個或多個計算節(jié)點用于執(zhí)行程序?qū)嵗囊唤M中。在一些實施方案中,使用計算節(jié)點(即使用于將來執(zhí)行)的決定在所述請求時進行。在其它實施方案中,將計算節(jié)點用于將來執(zhí)行一個或多個程序?qū)嵗臎Q定可基于當時可用的信息而被延遲至稍后的時間,諸如將來的執(zhí)行時間。在一些實施方案中,將哪些計算節(jié)點用于代表用戶來執(zhí)行一個或多個程序的決定在執(zhí)行請求之前做出,例如在用戶預訂和/或注冊以使用PES的時間和/或執(zhí)行用戶程序的請求之前的另一個時間。例如,在一些此類實施方案中,一個或多個計算節(jié)點在一段時間內(nèi)可與用戶相關,使得可在所述期間的任何時間(諸如接收在所述期間執(zhí)行所述用戶的軟件的請求的任何時間)代表該用戶在相關的計算節(jié)點上執(zhí)行程序。另外,在一些實施方案中,將哪些計算節(jié)點用于代表用戶來執(zhí)行程序的決定可在一個或多個計算節(jié)點和/或一個或多個計算節(jié)點的計算資源可用于執(zhí)行所述用戶的程序時做出,例如以在計算節(jié)點未被使用和/或可以其它方式用于執(zhí)行程序時,在一個或多個計算節(jié)點上執(zhí)行一個或多個待處理請求的程序。將哪些計算節(jié)點用于執(zhí)行各程序復本或?qū)嵗臎Q定可以各種方式做出,包括基于在請求中指定的或者說是為程序和/或相關用戶指定的任何首選項和/或要求(例如,在注冊時間等)。例如,如果確定了用于執(zhí)行程序?qū)嵗膬?yōu)選和/或所需資源(例如,內(nèi)存和/或存儲;CPU類型、周期或其它性能度量;網(wǎng)絡容量;平臺類型等)的標準,則將適當?shù)挠嬎愎?jié)點用于執(zhí)行程序?qū)嵗臎Q定可至少部分地基于計算節(jié)點是否具有可用于滿足那些資源標準的足夠資源。關于執(zhí)行和配置程序以在程序執(zhí)行服務上執(zhí)行的其它細節(jié)包括在2006 年 3 月 31 日提交的名稱為〃 Managing Execution of Programs by Multiple Computing Systems"的待審的美國專利申請No. 11/395,463中,該專利全文據(jù)此以引入的方式并入本文。在一些實施方案中,費用可與PES的使用相關,使得PES可代表用戶來執(zhí)行程序以交換該用戶對一項或多項費用的付款。例如,在一些實施方案中,根據(jù)分配用于代表用戶來執(zhí)行一個或多個程序的程序執(zhí)行能力的量和/或類型,例如根據(jù)分配用于執(zhí)行該用戶的程序的許多處理單元中的一個或多個、內(nèi)存量、存儲量、網(wǎng)絡資源量等,可以向該用戶收取費用。在一些實施方案中,費用可基于其它因素,諸如用于執(zhí)行程序的計算資源的各種特性, 例如基于CPU能力或性能、平臺類型(例如,32位、64位等)等。在一些實施方案中,費用可根據(jù)各種使用因素來收取,諸如每次使用服務的價格、使用計算服務的每個時間單位的價格、每個所用存儲量的價格、每個傳入和/或傳出的數(shù)據(jù)的價格等。在至少一些實施方案中,如下文更詳細地討論,費用可基于各種其它因素,諸如關于執(zhí)行程序的各種性質(zhì)(例如,執(zhí)行連續(xù)性、故障容差等)。在至少一些實施方案中,PES供應商可提供用于代表多個用戶來執(zhí)行程序的各種等級、類型和/或水平的服務或功能中的一種或多種,并且在一些此類實施方案中,各種費用可與各種等級、類型和/或水平的服務相關。另外,例如,等級可用于由PES提供的特定類型的功能,例如以針對第一數(shù)量的程序執(zhí)行能力功能收取第一等級的費用(例如,高達所用計算節(jié)點的指定的第一閾值)、針對第二數(shù)量的程序執(zhí)行能力功能收取第二等級的費用(例如,較低價格等級)(例如,高于所用計算節(jié)點的指定的第一閾值和高達所用計算節(jié)點的指定的第二閾值)等。關于與程序執(zhí)行服務相關的各種費用的其它細節(jié)包括在2007年12月21日提交的名稱為〃 Providing Configurable Pricing for Execution of Software Images"的待審的美國專利申請No. 11/963,331中,該專利全文據(jù)此以引入的方式并入本文。此外,PES可在各個實施方案中提供和使用各種其它類型的功能,如其它地方更詳細地討論。圖3為示出適用于對管理多個用戶的多組計算節(jié)點的技術進行實施的系統(tǒng)的示例性實施方案的框圖。具體地講,圖3示出了適用于提供程序執(zhí)行服務的至少一些功能的服務器計算系統(tǒng)300,以及程序執(zhí)行服務的用戶可以使用的各個客戶計算系統(tǒng)350、程序執(zhí)行服務可以使用的計算節(jié)點360、和其它計算系統(tǒng)380。在圖示實施方案中,服務器計算系統(tǒng)300具有以下部件,其包括CPU 305、各種1/0部件310、存儲裝置320和存儲器330。圖示的1/0部件包括顯示器311、網(wǎng)絡接線312、計算機可讀介質(zhì)驅(qū)動器313和其它1/0設備 315 (例如,鍵盤、鼠標、揚聲器等)。另外,圖示的用戶計算系統(tǒng)350具有與服務器計算系統(tǒng) 300的部件相類似的部件,其包括CPU 351、1/0部件352、存儲裝置3M和存儲器357。其它計算系統(tǒng)380和計算節(jié)點360各自也可包括與參照服務器計算系統(tǒng)300所示出的部件中的一些或全部相類似的部件,但為了簡潔起見,在該實例中未示出此類部件。程序執(zhí)行服務系統(tǒng)管理器模塊340的實施方案正在存儲器330中執(zhí)行,并且通過網(wǎng)絡390(例如,經(jīng)由因特網(wǎng)和/或萬維網(wǎng)、經(jīng)由私用蜂窩網(wǎng)絡等)與計算系統(tǒng)350和380以及計算節(jié)點360進行交互。在該示例性實施方案中,PESSM 340包括關于管理(例如結合由 PESSM340管理的程序執(zhí)行服務)與用戶計算系統(tǒng)350進行交互的各個用戶(未示出)對多個計算節(jié)點360的使用的功能。其它計算系統(tǒng)350和380以及計算節(jié)點360可將各種軟件作為與PESSM的交互作用的一部分來執(zhí)行。例如,用戶計算系統(tǒng)350可在存儲器357中執(zhí)行軟件以與PESSM 340進行交互(例如,作為萬維網(wǎng)瀏覽器或?qū)S每蛻舳藨贸绦虻囊徊糠?,例如以配置和/或請求代表那些系統(tǒng)的用戶在一個或多個計算節(jié)點360上以各種方式來執(zhí)行程序,以及以實施各種其它類型的動作,如其它地方更詳細地討論??蓪㈥P于PESSM 模塊340的功能的各種信息儲存在存儲裝置320中,諸如關于用于代表多個用戶來執(zhí)行程序的配置、執(zhí)行和/或注冊的信息322、關于計算節(jié)點組的程序執(zhí)行能力修改的信息324 (例如,關于用戶指定的預定義觸發(fā)器的信息;關于來自用戶的動態(tài)指定的能力修改指令的信息;關于計算節(jié)點性能測量的信息和關于確定指定的觸發(fā)器是否被滿足的其它信息;各組的所需、實際和正式記錄的計算節(jié)點數(shù)量的當前值;等),以及關于特定計算節(jié)點組的特定程序執(zhí)行能力修改的因果關系歸因的信息326(例如,通過列出所發(fā)生的至少一些事件和各組計算節(jié)點的至少一些變化,并且將特定事件與特定變化聯(lián)系起來,例如以類似于圖2B 和其它地方所討論的方式)。在PESSM模塊340接收在一組一個或多個計算節(jié)點360上執(zhí)行一個或多個程序的請求(或其它指示)之后,PESSM模塊340選擇該組的一個或多個計算節(jié)點,并且引發(fā)那些程序在那些計算節(jié)點360上的執(zhí)行。另外,PESSM模塊340可進一步與計算節(jié)點360進行交互,以隨后終止所引發(fā)的程序在所述計算節(jié)點上的執(zhí)行,將所述程序中的一個或多個移動至一個或多個其它計算節(jié)點360或計算系統(tǒng)380等。計算節(jié)點360在各個實施方案中可具有各種形式,例如以包括許多物理計算系統(tǒng)和/或在一個或多個物理計算系統(tǒng)上執(zhí)行的許多虛擬機。在一些實施方案中,服務器計算系統(tǒng)300和計算節(jié)點360可為數(shù)據(jù)中心或其它組的協(xié)同定位計算系統(tǒng)的一部分,或者可以其它方式為專用網(wǎng)的計算節(jié)點。另外,在一些實施方案中,PESSM模塊340可與一個或多個其它計算系統(tǒng)380進行交互,以啟動或終止一個或多個程序在那些計算系統(tǒng)上的執(zhí)行,例如其前提是計算系統(tǒng)380由提供計算節(jié)點以供其他用戶使用的一個或多個第三方參與者提供。在一些實施方案中,PESSM模塊340可進一步或相反地管理一種或多種類型的計算相關資源或服務(除程序執(zhí)行服務之外)(例如, 持久性或臨時數(shù)據(jù)存儲服務、消息服務、數(shù)據(jù)庫服務等)的使用權。另外,程序執(zhí)行服務能力維護管理器模塊345的實施方案正在存儲器330中執(zhí)行, 并且在該實施方案中通過網(wǎng)絡390與計算節(jié)點360進行交互。具體地講,在該示例性實施方案中,PESCMM模塊345包括關于監(jiān)測計算節(jié)點360中的一個或多個或者說是與其進行交互以追蹤那些計算節(jié)點的使用的功能,例如以確定計算節(jié)點組的當前實際程序執(zhí)行能力和 /或確定與計算節(jié)點組的一些或所有計算節(jié)點相對應的當前性能特性。如前所述,此類信息可儲存在存儲裝置320上和/或其它位置,并且可以各種方式被模塊340和345使用。例如,在一些實施方案中,如果模塊345發(fā)現(xiàn)計算節(jié)點已失效或者說是變得不可用(例如,作為提供或者說是初始化計算節(jié)點以用作計算節(jié)點組的一部分的過程中的一部分,在計算節(jié)點已用做計算節(jié)點組的一部分之后等),則模塊345可自動采取動作以將不可用計算節(jié)點用新計算節(jié)點來代替。在其它實施方案中,模塊345可能相反地不可對計算節(jié)點進行一些或所有監(jiān)測,例如其前提是模塊345相反地從另一個來源處獲得關于計算節(jié)點組的當前實際程序執(zhí)行能力和/或與計算節(jié)點組的一些或所有計算節(jié)點相對應的當前性能特性的信息,然后視情況將該信息用于維持計算節(jié)點組的程序執(zhí)行能力。應當理解到,計算系統(tǒng)300、350和380以及計算節(jié)點360僅為示例性的,并且并非旨在限定本發(fā)明的范圍。所述計算系統(tǒng)和/或節(jié)點相反地可各自包括多個交互計算系統(tǒng)或設備,并且所述計算系統(tǒng)/節(jié)點可包括通過一個或多個網(wǎng)絡(諸如因特網(wǎng))、經(jīng)由萬維網(wǎng)或經(jīng)由專用網(wǎng)(例如移動通信網(wǎng)絡等)連接至未示出的其它設備。更一般地說,計算節(jié)點或其它計算系統(tǒng)可包括可進行交互且執(zhí)行所述類型的功能的硬件或軟件的任何組合,包括但不限于臺式電腦或其它計算機、數(shù)據(jù)庫服務器、網(wǎng)絡存儲設備和其它網(wǎng)絡設備、PDA、手機、 無線電話、尋呼機、電子整理器、因特網(wǎng)設備、電視系統(tǒng)(例如,采用機頂盒和/或個人/數(shù)字視頻錄像機),以及包含適當通信能力的各種其它消費品。另外,由圖示的模塊340和/ 或345提供的功能可在一些實施方案中分配于其它模塊中。類似地,在一些實施方案中,可能不可提供模塊340和/或345的一些功能和/或其它附加功能可能是可用的。也應當理解到,雖然各個項目在使用時被示為儲存在存儲器中或存儲裝置上,但這些項目或其部分可在為了存儲管理和數(shù)據(jù)完整性的存儲器和其它存儲設備之間傳送?;蛘撸谄渌鼘嵤┓桨钢?,所述軟件模塊和/或系統(tǒng)中的一些或全部可在另一臺設備上的存儲器中執(zhí)行,并且經(jīng)由計算機之間通信與圖示的計算系統(tǒng)進行通信。此外,在一些實施方案中,所述系統(tǒng)和/或模塊中的一些或全部可以其它方式來實施或提供,這些方式諸如至少部分地以固件和/或硬件的方式,包括(但不限于)一個或多個專用集成電路(ASIC)、 標準集成電路、控制器(例如,通過執(zhí)行適當?shù)闹噶?,并且包括微控制器?或嵌入式控制器)、現(xiàn)場可編程門陣列(FPGA)、復雜可編程邏輯器件(CPLD)等。也可將所述模塊、系統(tǒng)和數(shù)據(jù)結構中的一些或全部(例如,作為軟件指令或結構化數(shù)據(jù))儲存在計算機可讀介質(zhì)上, 諸如硬盤、存儲器、網(wǎng)絡,或者通過適當?shù)尿?qū)動器或經(jīng)由適當?shù)倪B接件讀取的便攜式介質(zhì)物件。所述系統(tǒng)、模塊和數(shù)據(jù)結構也可作為產(chǎn)生的數(shù)據(jù)信號(例如,作為載波或者其它模擬或數(shù)字傳播信號的一部分)在各種計算機可讀傳輸介質(zhì)(包括無線和有線/電纜介質(zhì))上傳輸,并且可采取各種形式(例如,作為單一或多路模擬信號的一部分,或者作為多個離散數(shù)字包或幀)。在其它實施方案中,此類計算機程序產(chǎn)品也可采取其它形式。因此,本發(fā)明可通過其它計算機系統(tǒng)配置來實施。圖4為程序執(zhí)行服務系統(tǒng)管理器程序400的示例性實施方案的流程圖。所述程序可通過以下方式來提供,例如執(zhí)行圖IA和圖IB各自的PESSM模塊110和180,和/或圖3 的PESSM模塊340,例如以有助于管理用戶對多組計算節(jié)點的使用,以及在某些情況下進行其它類型的管理操作。在該圖示實施方案中,程序400管理程序執(zhí)行服務的各個使用方面, 該程序執(zhí)行服務提供了代表多個用戶來執(zhí)行程序的程序執(zhí)行能力。在圖示實施方案中,所述程序從接收信息或請求的圖框405處開始。所述程序繼續(xù)至圖框410,以確定所接收的請求或信息(諸如來自用戶的請求)是否是關于引發(fā)一個或多個程序在一組計算節(jié)點上的執(zhí)行。如果是,所述程序繼續(xù)至圖框415,以獲得關于經(jīng)請求的程序執(zhí)行的信息,諸如計算節(jié)點組的程序執(zhí)行能力的初始所需量(例如,所需計算節(jié)點數(shù)量)、任選地一個或多個待執(zhí)行的程序以及任選地一個或多個用戶指定的能力修改觸發(fā)器。如其它地方所討論,在一些實施方案中,用戶可從各類計算節(jié)點中的一個或多個中選擇和/或可以其它方式指定各種量和/或類型的所需計算資源(例如,處理單元類型/量、內(nèi)存量、平臺規(guī)格等)。在圖框420中,所述程序然后選擇計算節(jié)點以用于該組中,并且在圖框 425中,開始使那些所選計算節(jié)點可供用戶使用,例如通過提供所選計算節(jié)點并且任選地引發(fā)一個或多個待執(zhí)行的程序的執(zhí)行。所述程序也將該組中的所選計算節(jié)點的所需程序執(zhí)行能力指定為該組的正式記錄的初始程序執(zhí)行能力。當代表用戶可使用計算節(jié)點時,可以各種方式使該用戶獲知其可用性,或在其它實施方案中,計算節(jié)點可以自動方式進行操作,而無需用戶的進一步交互。所述程序然后繼續(xù)至圖框430,以儲存關于計算節(jié)點組的信息,包括該組的任何用戶指定的觸發(fā)器。如果相反地在圖框410處確定未接收到引發(fā)一組計算節(jié)點的執(zhí)行的請求,則所述程序相反地繼續(xù)至圖框440,以確定是否接收到關于修改現(xiàn)有計算節(jié)點組的程序執(zhí)行能力的請求。如果是,所述程序繼續(xù)至圖框445,以接收和儲存關于修改所指示的現(xiàn)有計算節(jié)點組的程序執(zhí)行能力的動態(tài)指定的用戶指令。在圖示實施方案中,用戶指令可與發(fā)生在當前聚合時段期間的其它可能的程序執(zhí)行能力修改請求聚合在一起,并且在下次進行協(xié)調(diào)活動期間進行進一步處理(例如參照圖框465-477),但在其它實施方案中,相反地可立即執(zhí)行至少一些此類用戶指定的修改請求。如果相反地在圖框440處確定未接收到修改一組計算節(jié)點的程序執(zhí)行能力的請求,則所述程序相反地繼續(xù)至圖框460,以確定是否當前要針對一個或多個計算節(jié)點組的程序執(zhí)行能力進行定期或者說是反復的協(xié)調(diào)活動,例如在此計算節(jié)點組的程序執(zhí)行能力修改請求的聚合時段結束時。如果是,所述程序繼續(xù)至圖框465,以確定當前進行協(xié)調(diào)活動的一個或多個計算節(jié)點組(例如,聚合時段已結束的計算節(jié)點組和一個或多個程序執(zhí)行能力動態(tài)修改已被聚合的計算節(jié)點組),并且在圖框467中,選擇下一個經(jīng)確定的計算節(jié)點組,從第一個開始。所述程序然后繼續(xù)至圖框470,以執(zhí)行進行反復能力協(xié)調(diào)活動的程序,其中此程序的一個實例將參照圖5更詳細地描述。所述程序接下來繼續(xù)至圖框475,以執(zhí)行進行關于程序執(zhí)行能力修改的因果關系歸因的活動(在圖框470中進行)的程序,其中此程序的一個實例將參照圖6更詳細地描述。在圖框475之后,所述程序繼續(xù)至圖框477,以確定是否要處理更多經(jīng)確定的計算節(jié)點組,并且如果是,所述程序返回至圖框467,以選擇下一個經(jīng)確定的此計算節(jié)點組。如果相反地在圖框460處確定當前未針對一個或多個計算節(jié)點組的程序執(zhí)行能力進行定期或者說是反復的協(xié)調(diào)活動,則所述程序相反地繼續(xù)至圖框480,以任選地進行一個或多個其它指示的操作。此類操作可包括例如以下中的一個或多個關于進行其它類型的程序執(zhí)行的用戶請求(如果所提供的程序執(zhí)行服務提供了此類其它程序執(zhí)行類型), 例如以在單個計算節(jié)點上執(zhí)行單個程序;未立即執(zhí)行的用戶指定的程序執(zhí)行能力修改請求(例如,終止執(zhí)行所指示的特定計算節(jié)點的用戶指令,例如如果該計算節(jié)點不能正常運行);指定附加觸發(fā)器或者說是修改所指示的計算節(jié)點組的配置信息的用戶請求;針對所指示的計算節(jié)點組立即進行協(xié)調(diào)活動的用戶請求,諸如作為反復的協(xié)調(diào)活動的補充或替代 (例如,如果僅在用戶請求時才進行協(xié)調(diào)活動);獲得關于與用戶相關的一個或多個計算節(jié)點組的各種狀態(tài)信息的用戶請求;向用戶進行管理相關活動(諸如預訂、注冊或付款操作) 的請求;等。在圖框430、445或480之后,或者如果相反地在圖框477中確定經(jīng)確定的附加計算節(jié)點組不可用,則所述程序繼續(xù)至圖框485,以根據(jù)圖框405中所接收的信息或請求或者
30以其它方式(例如定期地)引發(fā)的信息或請求,任選地進行任何用戶計費(或償付)活動, 例如以根據(jù)提供給這些用戶的程序執(zhí)行功能來從一個或多個用戶處收取和/或收集費用。 所述程序還可視情況任選地進行定期內(nèi)務操作。在圖框485之后,所述程序繼續(xù)至圖框495,以確定是否要繼續(xù),例如直到終止執(zhí)行所述程序的明確指示時。如果確定要繼續(xù),則所述程序返回至圖框405,否則,繼續(xù)至圖框 499并且結束。應當理解到,可在一些實施方案和情況中進行其它類型的活動,例如以確定用戶是否被授權進行經(jīng)請求的特定操作,以針對某些類型的經(jīng)請求的操作立即從用戶處獲得付款等。另外,雖然用戶請求且其它操作在圖示實施方案中被指示為以專門針對特定計算節(jié)點組和特定相關用戶的方式來進行,但在其它實施方案中,一些或所有此類操作相反地可以更普遍地例如應用于與單個用戶相關的多個計算節(jié)點組和/或從與一個或多個計算節(jié)點組相關的多個用戶處應用。圖5為遞歸能力協(xié)調(diào)程序500的示例性實施方案的流程圖。所述程序可通過以下方式來提供,例如執(zhí)行圖IA和圖IB各自的PESSM模塊110和180,和/或圖3的PESSM模塊340,例如該程序可從圖4中的程序400的圖框470處開始。在圖示實施方案中,所述程序開始于圖框505,其中其獲得了待進行的能力協(xié)調(diào)活動的當前所選計算節(jié)點組的指示。在圖框515中,所述程序然后檢索關于所選計算節(jié)點組的正式記錄的程序執(zhí)行能力的信息,例如根據(jù)先前針對所選計算節(jié)點組進行的協(xié)調(diào)活動 (或如果該活動為所進行的第一次協(xié)調(diào)活動,則為所選計算節(jié)點組的正式記錄的初始程序執(zhí)行能力),和/或根據(jù)可由PES能力維護管理器模塊對正式記錄的程序執(zhí)行能力進行的后續(xù)修改(例如,如參照圖7更詳細地描述)。所述程序然后繼續(xù)至圖框520和525,以分別確定所選計算節(jié)點組的當前實際和當前所需程序執(zhí)行能力。確定當前實際程序執(zhí)行能力可包括例如檢索此前由PES能力維護管理器模塊作為監(jiān)測所選計算節(jié)點組的一部分來儲存的信息,但在其它實施方案中,所述程序500可動態(tài)確定當前實際能力(例如,通過動態(tài)請求PES能力維護管理器模塊或其它監(jiān)測來源提供該信息)。在圖框525中確定當前所需程序執(zhí)行能力可包括例如檢索以下信息,關于在與協(xié)調(diào)活動相對應的當前聚合時段期間已針對所選計算節(jié)點組從相關用戶處接收的動態(tài)指定的任何能力修改指令的信息(例如,如此前參照圖4的圖框445所討論),以及關于先前已在當前聚合時段期間被確定為被滿足的所選計算節(jié)點組的任何用戶指定的觸發(fā)器的信息。 或者,在一些實施方案中,所述程序相反地可檢索所選計算節(jié)點組的所確定的性能特性信息(例如,此前由PES能力維護管理器模塊作為監(jiān)測所選計算節(jié)點組的一部分來儲存的信息,或通過請求PES能力維護管理器模塊或其它監(jiān)測來源提供該信息而動態(tài)獲得的信息), 以便當前確定是否所選計算節(jié)點組的任何用戶指定的觸發(fā)器目前被滿足和/或此前在當前聚合時段期間已被滿足。在檢索各種信息之后,當前所需程序執(zhí)行能力可通過聚合一個或多個經(jīng)請求的程序執(zhí)行能力修改來確定(如其它地方更詳細地討論),以便在做出任何此類聚合的能力修改之后,確定所得的所需程序執(zhí)行能力。在圖框525之后,所述程序繼續(xù)至圖框530,以確定將對所選計算節(jié)點組做出的實際變化,以便協(xié)調(diào)所選計算節(jié)點組的當前實際、所需和正式記錄的程序執(zhí)行能力,例如以將當前正式能力調(diào)整為當前所需能力。所述程序然后繼續(xù)至圖框535,以將由經(jīng)修改的所選計算節(jié)點組提供的當前所需程序執(zhí)行能力指定為所選計算節(jié)點組的所更新的當前正式記錄的程序執(zhí)行能力,并且進一步引發(fā)圖框530中確定的程序執(zhí)行能力修改。在圖框535之后, 所述程序繼續(xù)至圖框599并且返回。圖6為能力修改歸因程序600的示例性實施方案的流程圖。所述程序可通過以下方式來提供,例如執(zhí)行圖IA和圖IB各自的PESSM模塊110和1 80,和/或圖3的PESSM模塊340,例如該程序可從圖4中的程序400的圖框475處開始。在圖示實施方案中,所述程序開始于圖框605,其中其獲得了待進行的能力修改歸因活動的當前所選計算節(jié)點組的指示。在圖框625中,所述程序然后識別關于自先前的時間(諸如先前針對所選計算節(jié)點組進行的協(xié)調(diào)活動)以來發(fā)生的程序執(zhí)行能力可用性變化的信息。識別所述變化信息可包括例如檢索此前由PES能力維護管理器模塊作為監(jiān)測所選計算節(jié)點組的一部分來儲存的信息,但在其它實施方案中,所述程序600可動態(tài)確定該信息(例如,通過動態(tài)請求PES能力維護管理器模塊或其它監(jiān)測來源提供該信息)。在圖框625之后,所述程序繼續(xù)至圖框630,以確定是否已發(fā)生任何此類能力可用性變化,否則,繼續(xù)至圖框699。否則,所述程序繼續(xù)至圖框635,以識別關于自先前的時間 (諸如先前針對所選計算節(jié)點組進行的協(xié)調(diào)活動)以來發(fā)生的程序執(zhí)行能力修改請求事件的信息。識別所述事件信息可包括例如檢索此前由PES系統(tǒng)管理器模塊作為向所選計算節(jié)點組提供功能的一部分來儲存的信息,例如參照圖4和圖5更詳細地討論。在圖框640中, 例如根據(jù)事件的類型(例如代替不可用計算節(jié)點的自動化系統(tǒng)操作、指定相應的立即響應的所接收的用戶指令等),所述程序然后確定直接引起相應的可用性變化的所識別事件中的任何事件。在圖框640之后,所述程序繼續(xù)至圖框645,以選擇圖框625中所識別的下一個可用性變化,從第一個開始。在圖框650中,所述程序然后確定該變化是否可直接歸因于圖框 640中確定的個別事件之一,如果是,將該事件記錄為所選能力可用性變化的原因。否則,所述程序在圖框650中將所選能力可用性變化的原因歸因為圖框640中未確定的其它所識別事件的組合。在圖框660中,所述程序然后確定是否存在更多能力可用性變化,如果是,返回至圖框645以選擇下一個此能力可用性變化。否則,所述程序繼續(xù)至圖框699并且返回。圖7為程序執(zhí)行服務能力維護管理器程序700的示例性實施方案的流程圖。所述程序可通過以下方式來提供,例如執(zhí)行圖IA和圖IB各自的PESCMM模塊115和160,和/或圖3的PESCMM模塊345,例如以有助于監(jiān)測用戶的多組計算節(jié)點,包括確定可從計算節(jié)點組獲得的實際程序執(zhí)行能力。在該圖示實施方案中,所述程序700結合提供代表多個用戶來執(zhí)行程序的程序執(zhí)行能力的程序執(zhí)行服務進行操作,但在其它實施方案中,可以其它方式提供程序700的一些或所有功能。在圖示實施方案中,所述程序開始于圖框705,其中已接收到開始收集關于一個或多個計算節(jié)點組的計算節(jié)點的信息的指示(例如連續(xù)地或者說是以重復的方式),雖然此處未示出,但在一些實施方案中,其它模塊和/或程序可動態(tài)請求程序700以產(chǎn)生和提供特定的相關信息(例如關于特定的相關計算節(jié)點組的信息)。在圖框705中,所述程序收集一個或多個此類計算節(jié)點的性能特性信息,包括那些計算節(jié)點所屬的計算節(jié)點組的指示,以供以后用于產(chǎn)生所述計算節(jié)點組的聚合信息。所述信息可以各種方式產(chǎn)生,包括通過請求特定計算節(jié)點或相關模塊(例如,虛擬機計算節(jié)點的相關VM管理器組件)提供該信息來拖取此信息,通過此類計算節(jié)點和/或相關部件將該信息推送至程序700(例如定期地;在某些類型的事件時,諸如會使計算節(jié)點關閉或者說是變得不可用的檢測出的錯誤狀態(tài);等), 通過特定計算節(jié)點來監(jiān)測網(wǎng)絡流量和/或單個資源使用率;等。所述程序然后繼續(xù)至圖框710,以確定一個或多個所選計算節(jié)點組的聚合性能特性信息并且儲存該所確定的信息以供以后使用,例如用于所有計算節(jié)點組、恰好收集了單獨的計算節(jié)點信息的計算節(jié)點組、已請求或最近尚未產(chǎn)生的聚合性能特性信息的計算節(jié)點組、其中單獨的計算節(jié)點信息可用于計算節(jié)點組中的每個計算節(jié)點的計算節(jié)點組等。應當理解到,聚合性能特性信息可以各種方式產(chǎn)生,包括當僅部分信息可用于該組的計算節(jié)點時,諸如推斷或者說是估算不可用的單獨的性能特性信息。另外,收集和/或聚合的特定性能特性信息可以各種方式而有所不同,例如以在某些實施方案中始終收集所有計算節(jié)點組的某些類型的信息,以根據(jù)特定計算節(jié)點組的所確定觸發(fā)器的指定標準來收集某些類型的信息等。此外,雖然圖框705-785在該實例中被示為以連續(xù)的方式來實施,但應當理解到, 在一些實施方案中,各圖框相反地可以其它方式來實施。例如,在一些實施方案中,圖框705 的信息收集活動可在連續(xù)的基礎上或在接近連續(xù)的基礎上進行,但圖框710和/或其它圖框中的聚合信息產(chǎn)生僅可定期進行。在圖框710之后,所述程序繼續(xù)至圖框715,以確定和儲存一個或多個計算節(jié)點組中的每個的當前實際程序執(zhí)行能力信息,例如以反映當前可用的一組計算節(jié)點的當前數(shù)量和/或計算節(jié)點組的程序執(zhí)行能力的一種或多種其它度量,并且儲存所確定的信息以供以后使用。雖然此處未示出,但在一些實施方案和情況中,所述程序還可立即更新計算節(jié)點組的相應的正式記錄的程序執(zhí)行能力,以反映計算節(jié)點組的所確定的當前實際程序執(zhí)行能力,而在其它實施方案中,該程序會等待直到相應的下一組協(xié)調(diào)活動時才更新正式記錄的程序執(zhí)行能力。在圖框720中,所述程序然后任選地確定對于任何計算節(jié)點組而言已被滿足的任何計算節(jié)點組的任何能力修改觸發(fā)器(例如,根據(jù)圖框705中收集的和/或圖框710中聚合的性能特性信息,和/或根據(jù)圖框715中確定的實際程序執(zhí)行能力信息),但在其它實施方案中,此觸發(fā)器滿足情況確定相反地可在聚合時段結束時進行(諸如參考參照圖5更詳細地討論的相應協(xié)調(diào)活動)。如果任何觸發(fā)器經(jīng)確定被滿足,則然后儲存關于此類被滿足的觸發(fā)器的信息以供以后使用。在一些實施方案和情況中,特定觸發(fā)器被滿足還可立即弓丨發(fā)相關計算節(jié)點組的程序執(zhí)行能力修改,并且如果如此,則可引發(fā)此程序執(zhí)行能力修改活動, 并且所述程序還可記錄將該被滿足的觸發(fā)器與所述程序執(zhí)行能力修改活動關聯(lián)的因果關系信息,例如以供以后使用(參考圖6的程序600)。以類似的方式,所述程序在圖框725中確定是否已引發(fā)任何計算節(jié)點組的任何計算節(jié)點以可用于計算節(jié)點組,但該初始化已失效或者說是未在指定時段(例如10分鐘)之內(nèi)完成,如果是,所述程序的圖示實施方案開始立即提供任何此類計算節(jié)點的替代計算節(jié)點,并且所述程序還可記錄將該初始化計算節(jié)點不可用性作為所引發(fā)的替代活動的原因的因果關系信息。在其它實施方案中,此類替代活動相反地可能不以直接方式進行(例如,相反地可連同修改程序執(zhí)行能力的其它請求一起聚合)和/或相反地可由圖4的程序400進行。另外,作為引發(fā)此類不可用計算節(jié)點的替代活動的一部分,所述程序還可采取動作以終止不可用計算節(jié)點(例如,如果該節(jié)點仍在運行但無響應)。以類似的方式,所述程序在圖框730中任選地開始立即提供計算節(jié)點組中此前用作計算節(jié)點組的一部分但目前被確定為已失效或者說是變得不可用的任何計算節(jié)點的替代計算節(jié)點,并且如果如此,所述程序還可記錄將該計算節(jié)點不可用性作為所引發(fā)的替代活動的原因的因果關系信息。在其它實施方案中,此類替代活動相反地可能不以直接方式進行(例如,相反地可連同修改程序執(zhí)行能力的其它請求一起聚合)和/或可由圖4的程序400進行,和/或可進行可自動引發(fā)特定計算節(jié)點組的程序執(zhí)行能力的立即變化的其它類型的自動確定。另外,作為引發(fā)不可用計算節(jié)點的替代活動的一部分,所述程序還可采取動作以終止該不可用計算節(jié)點(例如,如果該節(jié)點仍在運行但無響應)。此外,如其它地方更詳細地討論,當確定是否要參照圖框725和/或730立即進行替代活動時,所述程序可在一些實施方案中考慮其它因素,諸如將向或已向相關用戶收取費用的時段、直至計劃進行可影響替代活動進行可取性的下一次協(xié)調(diào)活動之前的大量時間等。在圖框730之后,所述程序繼續(xù)至圖框785,以任選地進行任何內(nèi)務操作,包括視情況更新存儲信息。在圖框785之后,所述程序繼續(xù)至圖框795,以確定是否要繼續(xù),例如直到接收到終止的明確指示時。如果確定要繼續(xù),則所述程序返回至圖框705,否則,繼續(xù)至圖框799并且結束。雖然參照程序700所述的各種活動在該實施方案中被示為通過與執(zhí)行程序400的模塊不同的模塊進行,但在其它實施方案中,這兩個程序的一些或所有功能可由單個模塊執(zhí)行或者以其它方式組合。應當理解到,在一些實施方案中,由上述程序提供的功能可以替代方式來提供,諸如分配在更多程序之間或合并于較少的程序中。類似地,在一些實施方案中,例如當其它圖示的程序相反地分別缺乏或包括此類功能時,或者當改變所提供的功能數(shù)量時,圖示的程序可提供與所述功能相比更多或更少的功能。另外,雖然各種操作可以被示為以特定的方式(例如串行或并行)和/或以特定的順序進行,但本領域的技術人員將意識到,在其它實施方案中,這些操作可以其它順序和以其它方式進行。本領域的技術人員還將意識到,上述數(shù)據(jù)結構可以不同的方式結構化,諸如通過使單個數(shù)據(jù)結構分成多個數(shù)據(jù)結構或者通過使多個數(shù)據(jù)結構合并為單個數(shù)據(jù)結構。類似地,在一些實施方案中,例如當其它圖示的數(shù)據(jù)結構相反地分別缺乏或包括此類信息時,或者當改變所儲存的信息數(shù)量或類型時,圖示的數(shù)據(jù)結構可儲存與所述信息相比更多或更少的信息。第1條一種用于程序執(zhí)行服務的配置計算系統(tǒng)中以確定提供給用戶的程序執(zhí)行能力的動態(tài)修改的因果律的方法,所述方法包括在所述程序執(zhí)行服務的所述配置計算系統(tǒng)的控制下,所述程序執(zhí)行服務提供可被配置來執(zhí)行多個遠程用戶的程序以換取向所述用戶收取的費用的多個計算節(jié)點,并且針對多個所述用戶中的每個,從以下用戶處接收信息,所述用戶指定用于執(zhí)行所述用戶的指示程序的計算節(jié)點的初始所需數(shù)量并且指定用于隨后引發(fā)對供所述用戶使用的計算節(jié)點的數(shù)量的自動修改的多個數(shù)量修改觸發(fā)器,所述數(shù)量修改觸發(fā)器中的每個均包括用于確定所述數(shù)量修改觸發(fā)器是否被滿足的一個或多個標準,并且如果所述數(shù)量修改觸發(fā)器是被滿足的,則包括待請求的指定的計算節(jié)點數(shù)量變化;向所述用戶自動確定用于執(zhí)行所述用戶的所述指示程序的一組所述多個計算節(jié)點中的多個,所述多個計算節(jié)點具有初始所需計算節(jié)點數(shù)量,并且在第一時間提供所述多個計算節(jié)點以供所述用戶使用;
響應于來自所述用戶的指令,引發(fā)所述指示程序的復本在所述組計算節(jié)點中的每個上的執(zhí)行;并且在從所述第一時間至隨后的第二時間的一段時間期間,通過以下方式來自動管理所述組計算節(jié)點在所述時段期間,自動監(jiān)測所述組計算節(jié)點以通過那些計算節(jié)點的操作來確定性能度量,并且根據(jù)所述確定的性能度量來自動確定由所述用戶指定的所述數(shù)量修改觸發(fā)器中的至少一個被滿足;在所述時段期間,從所述用戶處接收各自指示所述組計算節(jié)點的數(shù)量變化的動態(tài)指定請求的一個或多個數(shù)量變化指令;在所述第二時間自動確定實際計算節(jié)點數(shù)量,所述數(shù)量反映了在所述第二時間實際上可用以執(zhí)行所述用戶的程序的所述組計算節(jié)點的數(shù)量,至少部分地根據(jù)所述時段期間的所述組計算節(jié)點的多個可用性變化,在所述第二時間確定的實際計算節(jié)點數(shù)量不同于所述第一時間處的計算節(jié)點的初始所需數(shù)量,所述多個可用性變化中的至少一些具有向所述用戶收取的一項或多項相關費用;對于所述多個可用性變化的至少一個中的每個而言,將所述可用性變化的單個原因自動歸因,所述單個原因為經(jīng)確定被滿足的所述至少一個數(shù)量修改觸發(fā)器之一或來自所述用戶的所述一個或多個數(shù)量變化指令之一;對于單個原因未自動歸因的所述多個可用性變化中的至少另一個中的每個而言, 所述至少另一個可用性變化不同于所述至少一個可用性變化,將多種可能原因的組合自動歸因于所述可用性變化,所述多種可能原因彼此獨立,并且包括經(jīng)確定被滿足的所述至少一個數(shù)量修改觸發(fā)器中的一個或多個且包括來自所述用戶的所述一個或多個數(shù)量變化指令中的至少一個;以及提供所述至少一個可用性變化中的每個的所歸因的單個原因的指示和所述至少另一個可用性變化中的每個的所歸因的多個原因組合的指示,以便能夠?qū)⑺鲋辽僖恍┛捎眯宰兓南嚓P費用歸于所述用戶。第2條根據(jù)第1條所述的方法,其中針對所述多個用戶之一,至少部分地根據(jù)所述一個用戶的所述組計算節(jié)點的數(shù)量的經(jīng)請求的增加,在所述第二時間確定的實際計算節(jié)點數(shù)量大于所述第一時間處的初始所需計算節(jié)點數(shù)量,所述經(jīng)請求的增加根據(jù)經(jīng)確定被滿足的所述至少一個數(shù)量修改觸發(fā)器的一個或多個中的每個和來自所述一個用戶的所述一個或多個數(shù)量變化指令中的至少一個,其中自動確定所述一個用戶的所述第二時間處的實際計算節(jié)點數(shù)量包括通過聚合所述一個或多個被滿足的數(shù)量修改觸發(fā)器的經(jīng)請求的增加和來自所述一個用戶的所述至少一個數(shù)量變化指令的經(jīng)請求的增加來確定待做出以增加所述一個用戶的所述組的計算節(jié)點數(shù)量的單次聚合修改,其中增加所述一個用戶的所述組的計算節(jié)點數(shù)量的所述確定的單次聚合修改為所述一個用戶的所述組的所述至少另一個可用性變化中的一個,其中所述一個或多個被滿足的數(shù)量修改觸發(fā)器和來自所述一個用戶的所述至少一個數(shù)量變化指令均未被歸因為所述一個用戶的所述組的所述至少一個可用性變化中任何一個的單個原因,并且其中所述一個用戶的所述組的所述至少另一個可用性變化中的每個的多種可能原因的組合包括在所述時段期間針對所述一個用戶的所述計算節(jié)點組的可用性變化確定的并且未被歸因為所述至少一個可用性變化之一的單個原因的所有可能原因。第3條根據(jù)第2條所述的方法,其中所述程序執(zhí)行服務為網(wǎng)絡訪問服務使得所述遠程用戶中的每個均通過一個或多個網(wǎng)絡來提供來自客戶計算設備的指令,其中具有所述相關費用的所述一個用戶的所述組的所述至少一些可用性變化包括所述一個用戶的所述組計算節(jié)點的數(shù)量的一次或多次增加,并且其中所述一個用戶為在所述第一時間提供由所述一個用戶使用的所述多個計算節(jié)點支付第一費用并且針對作為所述一個用戶的所述組的所述一次或多次數(shù)量增加的一部分來提供的每個附加計算節(jié)點支付一次或多次不同的第二費用。第4條一種用于確定提供給用戶的程序執(zhí)行能力的動態(tài)修改的因果律的計算機實現(xiàn)方法,所述方法包括在被配置來提供由多個用戶使用的程序執(zhí)行服務的一個或多個計算系統(tǒng)的控制下,所述程序執(zhí)行服務具有可被配置來執(zhí)行所述程序執(zhí)行服務的所述用戶的程序的多個計算節(jié)點,接收用于代表所述程序執(zhí)行服務的第一用戶來執(zhí)行一個或多個軟件程序的初始所需程序執(zhí)行能力的指示;確定用于隨后引發(fā)對提供給所述第一用戶的程序執(zhí)行能力的自動修改的多個能力修改觸發(fā)器,所述能力修改觸發(fā)器中的每個均包括用于確定所述能力修改觸發(fā)器是否被滿足的一個或多個標準,并且如果所述能力修改觸發(fā)器是被滿足的,則包括待請求的指定類型的程序執(zhí)行能力修改;自動確定用于提供所述第一用戶的所述初始所需程序執(zhí)行能力的第一組所述多個計算節(jié)點中的多個,并且使所述第一組的計算節(jié)點在第一時間可用以各自執(zhí)行所述第一用戶的一個或多個軟件程序;自動識別發(fā)生在所述第一時間和隨后的第二時間之間的一段時間期間并且各自能夠引起對所述第一組的多個計算節(jié)點提供的所述程序執(zhí)行能力的修改的多個獨立事件, 所述多個事件包括經(jīng)確定被滿足的所述指定的能力修改觸發(fā)器中的至少一個;在所述第二時間自動確定所述第一用戶可從所述第一組計算節(jié)點中獲得的實際程序執(zhí)行能力,至少部分地根據(jù)發(fā)生在所述第一時間和所述第二時間之間的時段期間的所述第一組的一個或多個計算節(jié)點的一個或多個可用性變化,所述第二時間處的實際程序執(zhí)行能力不同于在所述第一時間提供給所述第一用戶的所需程序執(zhí)行能力;對于所述第一組的所述一個或多個計算節(jié)點的所述可用性變化中的每個而言,將所識別事件中的一個或多個自動歸因為所述可用性變化的原因,所述可用性變化中的至少一個具有原因,所述原因為彼此獨立并且包括經(jīng)確定被滿足的所述至少一個指定的能力修改觸發(fā)器中的一個或多個的多個事件的組合;并且提供一個或多個所述可用性變化中的每個的所述歸因的原因的指示,以便能夠進行與所述歸因的原因相對應的一個或多個進一步動作。第5條根據(jù)第4條所述的方法,其中所述多個事件還包括由所述第一用戶動態(tài)指定以請求對所述第一組提供的所述程序執(zhí)行能力的指定修改的至少一個能力修改指令,并且其中被歸因為所述至少一個可用性變化之一的原因的多個事件的組合包括所述至少一個指定的能力修改指令中的一個或多個。
第6條根據(jù)第4條所述的方法,其中所述可用性變化中的至少另一個具有為所述多個事件中的單個事件的所歸因的原因,所述至少另一個可用性變化不同于所述至少一個
可用性變化。第7條根據(jù)第6條所述的方法,還包括自動確定所述單個事件為所述至少另一個可用性變化的所確定類型的原因,所述所確定類型的原因為直接原因或間接原因,并且提供所述單個事件為所述至少另一個可用性變化的所述所確定類型的原因的指示。第8條根據(jù)第4條所述的方法,其中自動確定所述實際程序執(zhí)行能力包括確定已發(fā)生的多個可用性變化,并且其中將所述一個或多個事件自動歸因為所述可用性變化中的每個的原因包括識別各自為所述多個可用性變化之一的單個原因的一個或多個所述多個事件,并且將不為所述多個可用性變化之一的單個原因的所有所述多個事件聚合為不具有單個原因的所述多個可用性變化彼此的組合的一部分。第9條根據(jù)第4條所述的方法,其中對于所述至少一個可用性變化之一而言,將所述多個事件的組合自動歸因為所述一個可用性變化的原因包括確定所述多個事件的組合為所述一個可用性變化的所確定類型的原因,所述所確定類型的原因為直接原因或間接原因,并且其中提供所述一個或多個可用性變化中的每個的所述歸因的原因的所述指示包括提供所述多個事件的組合為所述一個可用性變化的所述所確定類型的原因的指示。第10條根據(jù)第4條所述的方法,其中所述多個獨立事件各自請求對所述第一組提供的所述程序執(zhí)行能力的修改,并且其中所述方法還包括通過聚合所述多個事件的經(jīng)請求的修改并且在所述第二時間之前引發(fā)對所述第一組的所述確定的單次聚合修改來自動確定將對所述第一組的程序執(zhí)行能力做出的單次聚合修改。第11條根據(jù)第10條所述的方法,其中所述多個事件還包括由所述第一用戶動態(tài)指定以請求對所述第一組提供的所述程序執(zhí)行能力的指定修改的至少一個能力修改指令, 其中所述確定的多個能力修改觸發(fā)器由所述第一用戶在所述第一時間之前指定,并且其中被歸因為所述至少一個可用性變化之一的原因的多個事件的組合包括所述至少一個指定的能力修改指令中的一個或多個。第12條根據(jù)第11條所述的方法,其中所述確定的單次聚合修改為所述一個可用性變化,其所述一個或多個指定的能力修改指令包括在被歸因為所述原因的組合中。第13條根據(jù)第10條所述的方法,其中所述第一組的程序執(zhí)行能力根據(jù)為所述第一組的一部分的計算節(jié)點的數(shù)量來測量,使得所述初始所需程序執(zhí)行能力為計算節(jié)點的初始所需數(shù)量,并且使得在所述第二時間確定的實際程序執(zhí)行能力為在所述第二時間可用作所述第一組的一部分的計算節(jié)點的實際數(shù)量,其中所述第一組的所述一個或多個計算節(jié)點的所述一個或多個可用性變化各自包括為所述第一組中不可用部分的一個或多個計算節(jié)點中的至少一個和添加至所述第一組的一個或多個新計算節(jié)點中的至少一個,并且其中對所述第一組的所述確定的單次聚合修改為所述第一組計算節(jié)點的數(shù)量的所確定的變化。第14條根據(jù)第13條所述的方法,其中所述確定的單次聚合修改將通過指定數(shù)量的一個或多個計算節(jié)點來增加所述第一組計算節(jié)點的數(shù)量,其中所述確定的單次聚合修改為提供有所述歸因的原因的所述指示的所述一個或多個可用性變化中的一個,并且其中所述方法還包括至少部分地根據(jù)所述引發(fā)的所確定的單次聚合修改進行一個或多個進一步動作,所述動作包括開始向所述第一用戶收取一項或多項費用。
第15條根據(jù)第4條所述的方法,其中提供有所述歸因的原因的所述指示的所述一個或多個可用性變化中的一個包括作為所述一個可用性變化的原因的至少一部分的所述多個事件中的至少第一個,并且其中響應于所述事件中的至少一個引起所述一個可用性變化和所述可用性變化中的至少一個由所述第一事件引起的請求來提供所述一個可用性變化的所述歸因的原因的所述指示。第16條根據(jù)第15所述的方法,其中從用戶處接收所述請求,并且其中提供所述一個可用性變化的所述歸因的原因的所述指示包括產(chǎn)生所述一個可用性變化的所述歸因的原因的人可讀的解釋并且提供所述產(chǎn)生的人可讀的解釋以顯示給所述用戶。第17條根據(jù)第4條所述的方法,還包括對于發(fā)生在所述第二時間之后的一個或多個附加時段中的每個而言,將一個或多個附加所識別事件自動歸因為發(fā)生在所述附加時段期間的可用性變化的原因,并且其中,對于作為發(fā)生在所述一個或多個附加時段中的一個時段期間的所述可用性變化中的一個變化的原因的一個所述附加所識別事件而言,所述一個附加所識別事件為發(fā)生在所述第一時間和所述第二時間之間的時段期間的所述可用性變化中的一個變化的結果。第18條根據(jù)第4條所述的方法,其中使所述第一組計算節(jié)點在所述第一時間可用以各自執(zhí)行所述第一用戶的所述一個或多個軟件程序包括自動提供所述第一組計算節(jié)點中的每個,并且包括自動引發(fā)所述一個或多個軟件程序中的每個在所述第一組計算節(jié)點中的每個上的執(zhí)行。第19條根據(jù)第4條所述的方法,其中所述程序執(zhí)行服務為遠離所述第一用戶的收費性網(wǎng)絡訪問服務,其中所述程序執(zhí)行服務提供以下兩者中的至少一者用于遠程計算系統(tǒng)中以通過一個或多個網(wǎng)絡以編程方式與所述程序執(zhí)行服務進行交互的一個或多個應用程序編程接口(API)和遠程用戶通過所述一個或多個網(wǎng)絡來使用的圖形用戶界面,并且其中所述第一用戶至少部分地根據(jù)一個或多個所述可用性變化的所述歸因的原因來支付一項或多項費用。第20條根據(jù)第4條所述的方法,其中所述程序執(zhí)行服務采用虛擬化技術使得所述多個計算節(jié)點對于多個物理計算系統(tǒng)中的每個而言包括由所述物理計算系統(tǒng)提供的各自能夠執(zhí)行至少一個程序的多個虛擬機,其中所述第一組計算節(jié)點為裝載虛擬機,并且其中所述第一用戶的所述一個或多個程序為虛擬機映像的一部分。第21條一種計算機可讀介質(zhì),其內(nèi)容通過實施一種方法來配置計算系統(tǒng)以確定提供給用戶的程序執(zhí)行能力的動態(tài)修改的因果律,所述方法包括在所述配置計算系統(tǒng)的控制下,在第一時間接收與第一用戶相關的第一組多個計算節(jié)點的指示,以提供用于代表所述第一用戶來執(zhí)行一個或多個軟件程序的初始程序執(zhí)行能力;自動識別發(fā)生在所述第一時間和隨后的第二時間之間并且各自具有所述第一組的程序執(zhí)行能力的相關所需修改的多個獨立事件;在所述第二時間自動確定所述第一用戶可從所述第一組計算節(jié)點中獲得的實際程序執(zhí)行能力,至少部分地根據(jù)所述第一組的一個或多個計算節(jié)點的一個或多個可用性變化,所述第二時間處的實際程序執(zhí)行能力不同于在所述第一時間提供的初始程序執(zhí)行能力;
38
將一個或多個原因自動歸因于所述第一組的所述確定的可用性變化中的每個,歸因于所述可用性變化中的至少一個的所述一個或多個原因為多個所述所識別的獨立事件的組合;以及提供所述至少一個可用性變化中一個或多個的所述所歸因的一個或多個原因的指示。第22條根據(jù)第21條所述的計算機可讀介質(zhì),其中所述配置計算系統(tǒng)為提供多個計算節(jié)點的程序執(zhí)行服務的一部分,所述多個計算節(jié)點可被配置來執(zhí)行所述程序執(zhí)行服務的用戶的程序,其中所述第一組的多個計算節(jié)點為所述多個計算節(jié)點的子集,其中接收所述第一組的指示包括在所述第一時間之前從所述第一用戶處接收所述初始程序執(zhí)行能力的請求,并且在所述第一時間將所述第一組計算節(jié)點與所述第一用戶自動關聯(lián)以用于將所述初始程序執(zhí)行能力提供給所述第一用戶,其中所述第一用戶在所述第一時間之前還指示一個或多個能力修改觸發(fā)以用于隨后引發(fā)對所述第一組的程序執(zhí)行能力的自動修改,并且其中所述多個獨立事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個且包括由所述第一用戶動態(tài)指定的至少一個能力修改指令。第23條根據(jù)第22條所述的計算機可讀介質(zhì),其中每個所述多個獨立事件的所述程序執(zhí)行能力的所述所需修改為經(jīng)請求的修改,其中所述方法還包括通過聚合至少一個被滿足的能力修改觸發(fā)器的經(jīng)請求的修改和來自所述第一用戶的所述至少一個能力修改指令的經(jīng)請求的修改來自動確定待做出以提高所述第一組的程序執(zhí)行能力的單次聚合修改, 并且在所述第二時間之前引發(fā)所述確定的單次聚合修改,其中所述確定的單次聚合修改為所述至少一個可用性變化之一,并且其中被歸因為所述確定的單次聚合修改的所述一個或多個原因的所述多個獨立事件的組合包括所述至少一個被滿足的能力修改觸發(fā)器和來自所述第一用戶的至少一個能力修改指令。第24條根據(jù)第21條所述的計算機可讀介質(zhì),其中所述計算機可讀介質(zhì)為以下兩者中的至少一者儲存所述內(nèi)容的計算系統(tǒng)的存儲器和包括包含所述內(nèi)容的所產(chǎn)生的存儲數(shù)據(jù)信號的數(shù)據(jù)傳輸介質(zhì),并且其中所述內(nèi)容為在執(zhí)行時會使所述計算系統(tǒng)實施所述方法的指令。第25條一種被配置來確定用戶的程序執(zhí)行能力的動態(tài)修改的因果律的計算系統(tǒng),包括一個或多個處理器;和系統(tǒng)管理器模塊,在由所述一個或多個處理器中的至少一個執(zhí)行時,針對所述多個用戶中的每個,其被配置來通過以下方式管理網(wǎng)絡訪問服務的多個用戶的程序執(zhí)行能力確定待提供用于代表所述用戶來執(zhí)行一個或多個軟件程序的初始程序執(zhí)行能力, 并且確定用于隨后引發(fā)對向所述用戶提供的所述程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器;在第一時間將一組多個可用計算節(jié)點與所述用戶自動關聯(lián),以用于將所述初始所需程序執(zhí)行能力提供給所述用戶;以及在所述第一時間之后,自動識別發(fā)生在所述第一時間和隨后的第二時間之間并且各自具有所述組的所述程序執(zhí)行能力的相關所需修改的多個獨立事件,所述多個事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個;自動確定所述組的一個或多個計算節(jié)點的一個或多個可用性變化,所述可用性變化影響由所述組提供的所述程序執(zhí)行能力;將一個或多個原因自動歸因于所述組的所述確定的可用性變化中的每個,歸因于所述可用性變化中的至少一個的所述一個或多個原因為多個所述所識別的獨立事件的組合,并且歸因于所述可用性變化中的至少另一個的所述一個或多個原因為所述所識別的獨立事件中的單個事件;并且提供所述組的所述確定的可用性變化中的一個或多個的所述所歸因的一個或多個原因的指示。第26條根據(jù)第25條所述的計算系統(tǒng),其中所述多個用戶之一的所述多個獨立事件還包括由所述一個用戶動態(tài)指定的至少一個能力修改指令,其中所述系統(tǒng)管理器模塊還被配置來通過聚合所述至少一個被滿足的能力修改觸發(fā)器的所需修改和由所述一個用戶指定的所述至少一個能力修改指令的所需修改以自動確定待做出以提高所述一個用戶的所述組的所述程序執(zhí)行能力的單次聚合修改,并且在所述第二時間之前引發(fā)對所述一個用戶的所述組的所述確定的單次聚合修改,其中所述確定的單次聚合修改為所述一個用戶的所述至少一個可用性變化之一,并且其中被歸因為所述確定的單次聚合修改的所述一個或多個原因的所述多個獨立事件的組合包括所述至少一個被滿足的能力修改觸發(fā)器和由所述一個用戶指定的所述至少一個能力修改指令。第27條根據(jù)第沈條所述的計算系統(tǒng),其中所述一個用戶的所述確定的能力修改觸發(fā)器由所述一個用戶指定,其中所述網(wǎng)絡訪問服務為提供多個計算節(jié)點的程序執(zhí)行服務,所述多個計算節(jié)點可被配置來執(zhí)行所述程序執(zhí)行服務的遠程用戶的程序,并且其中所述多個用戶中的至少一個的每個的所述組的所述多個計算節(jié)點為所述多個計算節(jié)點的子集。第洲條根據(jù)第25條所述的計算系統(tǒng),其中所述系統(tǒng)管理器組件包括由所述計算系統(tǒng)執(zhí)行的軟件指令。第四條根據(jù)第25條所述的計算系統(tǒng),其中針對所述多個用戶中的每個,所述系統(tǒng)管理器組件由用于通過以下方式來管理所述網(wǎng)絡訪問服務的多個用戶的程序執(zhí)行能力的裝置組成確定待提供用于代表所述用戶來執(zhí)行一個或多個軟件程序的初始程序執(zhí)行能力, 并且確定用于隨后引發(fā)對向所述用戶提供的所述程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器;在第一時間將一組多個可用計算節(jié)點與所述用戶自動關聯(lián),以用于將所述初始所需程序執(zhí)行能力提供給所述用戶;以及在所述第一時間之后,自動識別發(fā)生在所述第一時間和隨后的第二時間之間并且各自具有所述組的所述程序執(zhí)行能力的相關所需修改的多個獨立事件,所述多個事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個;自動確定所述組的一個或多個計算節(jié)點的一個或多個可用性變化,所述可用性變化影響由所述組提供的所述程序執(zhí)行能力;將一個或多個原因自動歸因于所述組的所述確定的可用性變化中的每個,歸因于所述可用性變化中的至少一個的所述一個或多個原因為多個所述所識別的獨立事件的組合,并且歸因于所述可用性變化中的至少另一個的所述一個或多個原因為所述所識別的獨立事件中的單個事件;并且提供所述組的所述確定的可用性變化中的一個或多個的所述所歸因的一個或多個原因的指示。第30條一種用于程序執(zhí)行服務的配置計算系統(tǒng)中以動態(tài)修改用戶的程序執(zhí)行能力的方法,所述方法包括在所述程序執(zhí)行服務的所述配置計算系統(tǒng)的控制下,所述程序執(zhí)行服務提供可被配置來執(zhí)行多個遠程用戶的程序的多個計算節(jié)點,并且針對多個所述用戶中的每個,從以下用戶處接收信息,所述用戶指定用于執(zhí)行所述用戶的指示程序的計算節(jié)點的初始所需數(shù)量并且指定用于隨后引發(fā)對所述所需計算節(jié)點數(shù)量的自動修改的一個或多個數(shù)量修改觸發(fā)器,所述數(shù)量修改觸發(fā)器中的每個均包括用于確定所述數(shù)量修改觸發(fā)器是否被滿足的一個或多個標準,并且如果所述數(shù)量修改觸發(fā)器是被滿足的,則包括指定的計算節(jié)點數(shù)量變化;自動確定用于執(zhí)行所述用戶的所述指示程序的一組所述多個計算節(jié)點中的多個, 所述組的所述多個計算節(jié)點具有所述初始所需計算節(jié)點數(shù)量,并且在第一時間提供所述多個計算節(jié)點以供所述用戶使用;響應于來自所述用戶的一個或多個指令,引發(fā)所述指示程序的復本在所述組計算節(jié)點中的每個上的執(zhí)行,并且將所述初始所需計算節(jié)點數(shù)量指定為被記錄為所述用戶在所述第一時間可使用的正式的計算節(jié)點數(shù)量;以及在從所述第一時間至隨后的第二時間的一段時間期間,通過以下方式來自動管理所述組計算節(jié)點在所述時段期間,自動監(jiān)測所述組計算節(jié)點以通過所述計算節(jié)點的操作來確定性能特性,并且根據(jù)所述確定的性能特性來自動確定由所述用戶指定的所述數(shù)量修改觸發(fā)器中的至少一個被滿足;在所述時段期間,接收指示由所述用戶動態(tài)指定的所述組計算節(jié)點的用戶指示的計算節(jié)點數(shù)量變化的至少一個指令;在所述第二時間自動確定經(jīng)修改的所需計算節(jié)點數(shù)量,至少部分地根據(jù)來自所述至少一個被滿足的數(shù)量修改觸發(fā)器的所述指定的計算節(jié)點數(shù)量變化以及所述用戶指示的計算節(jié)點數(shù)量變化,所述經(jīng)修改的所需計算節(jié)點數(shù)量包括自所述第一時間對所述所需計算節(jié)點數(shù)量的變化;在所述第二時間自動確定實際計算節(jié)點數(shù)量,所述數(shù)量反映了在所述第二時間實際上可用以執(zhí)行所述用戶的程序的所述組計算節(jié)點的數(shù)量;在所述第二時間,將所述用戶的所述正式的計算節(jié)點數(shù)量與所述經(jīng)修改的所需計算節(jié)點數(shù)量自動協(xié)調(diào),所述協(xié)調(diào)包括通過采取動作來自動修改作為所述組的一部分的所述計算節(jié)點的數(shù)量,以將所述確定的實際計算節(jié)點數(shù)量改變?yōu)樗鼋?jīng)修改的所需計算節(jié)點數(shù)量;以及提供所述組計算節(jié)點的所述經(jīng)修改的數(shù)量以供所述用戶使用,并且將所述經(jīng)修改的所需計算節(jié)點數(shù)量指定為所述用戶在所述第二時間可使用的正式的計算節(jié)點數(shù)量。第31條根據(jù)第30條所述的方法,其中針對所述多個用戶之一,至少部分地根據(jù)在從所述第一時間至所述第二時間的時段期間的變得不可用的所述一個用戶的所述組計
41算節(jié)點中的一個或多個,在所述第二時間確定的實際計算節(jié)點數(shù)量小于所述第一時間處的正式的計算節(jié)點數(shù)量,其中在所述時段期間自動監(jiān)測所述一個用戶的所述組計算節(jié)點包括反復確定所述一個用戶的當前的實際計算節(jié)點數(shù)量,并且更新所述一個用戶的所述正式的計算節(jié)點數(shù)量以使所述更新的正式的計算節(jié)點數(shù)量與所述確定的當前的實際計算節(jié)點數(shù)量一致,其中所述一個用戶的所述至少一個被滿足的數(shù)量修改觸發(fā)器為以下觸發(fā)器,其指定以根據(jù)所述一個或多個不可用計算節(jié)點的數(shù)量來增加所述一個用戶的所述組計算節(jié)點, 以便將所述第二時間處的正式的計算節(jié)點數(shù)量保持在由所述一個用戶指定的計算節(jié)點的初始所需數(shù)量,其中由所述一個用戶動態(tài)指定的所述用戶指示的數(shù)量變化包括至少一個計算節(jié)點的計算節(jié)點初始所需數(shù)量的指示的減少量,其中在所述第二時間自動確定所述一個用戶的所述經(jīng)修改的所需計算節(jié)點數(shù)量包括用所述一個或多個不可用計算節(jié)點來至少部分地抵消所述指示的減少量,并且其中所述一個用戶在所述第二時間可使用的正式的計算節(jié)點數(shù)量為由所述一個用戶指定的計算節(jié)點初始所需數(shù)量減去由所述一個用戶指定的所述指示的減少量。第32條根據(jù)第31條所述的方法,其中所述程序執(zhí)行服務為收費性網(wǎng)絡訪問服務,使得所述多個用戶各自為在所述第一時間提供由所述用戶使用的所述多個計算節(jié)點支付第一費用,并且各自為在所述第二時間提供由所述用戶使用的所述組計算節(jié)點的經(jīng)修改的數(shù)量支付不同的第二費用,所述第一和第二費用各自至少部分地基于所述用戶的所述組計算節(jié)點的當前數(shù)量。第33條一種用于動態(tài)修改用戶的程序執(zhí)行能力的計算機實現(xiàn)方法,所述方法包括在被配置來提供由多個用戶使用的程序執(zhí)行服務的一個或多個計算系統(tǒng)的控制下,所述程序執(zhí)行服務具有可被配置來執(zhí)行所述程序執(zhí)行服務的所述用戶的程序的多個計算節(jié)點,接收指定用于代表所述程序執(zhí)行服務的第一用戶來執(zhí)行一個或多個軟件程序的初始所需程序執(zhí)行能力并且指定用于隨后引發(fā)對所述所需程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器的信息,所述能力修改觸發(fā)器中的每個均包括用于確定所述能力修改觸發(fā)器是否被滿足的一個或多個標準,并且如果所述能力修改觸發(fā)器是被滿足的,則包括待請求的對所需程序執(zhí)行能力的指定類型的修改;自動確定用于提供所述第一用戶的所述初始所需程序執(zhí)行能力的第一組所述多個計算節(jié)點中的多個,使所述第一組計算節(jié)點在第一時間可用以各自執(zhí)行所述第一用戶的一個或多個軟件程序,并且將所述初始所需程序執(zhí)行能力指定為被記錄為所述第一用戶在所述第一時間可使用的正式程序執(zhí)行能力。在所述第一時間之后,監(jiān)測所述第一組計算節(jié)點以確定關于執(zhí)行所述一個或多個軟件程序的那些計算節(jié)點的一種或多種類型的性能特性的當前值,所述監(jiān)測包括在所述第一時間之后的隨后的第二時間確定所述第一用戶可從所述第一組計算節(jié)點中獲得的實際程序執(zhí)行能力;自動確定以根據(jù)發(fā)生在所述第一時間和所述第二時間之間的一段時間期間的多個事件來修改所述第一用戶的所述所需程序執(zhí)行能力,所述多個事件至少部分地根據(jù)所述一種或多種性能特性類型的所述確定的當前值包括經(jīng)確定被滿足的所述指定的能力修改觸發(fā)器中的至少一個,并且包括由所述第一用戶動態(tài)指定的至少一個能力修改指令,所述至少一個指定的能力修改觸發(fā)器和所述至少一個能力修改指令中的每個指示對所述所需程序執(zhí)行能力的指定修改;以及將所述第一用戶可用的所述記錄的正式程序執(zhí)行能力與在所述第二時間確定的實際程序執(zhí)行能力和所述經(jīng)修改的所需程序執(zhí)行能力自動協(xié)調(diào),協(xié)調(diào)所述記錄的正式程序執(zhí)行能力包括根據(jù)所述確定的實際程序執(zhí)行能力和所述經(jīng)修改的所需程序執(zhí)行能力來自動修改作為所述第一組的一部分的計算節(jié)點,使得所述經(jīng)修改的計算節(jié)點可用于提供所述經(jīng)修改的所需程序執(zhí)行能力,并且使得所述記錄的正式程序執(zhí)行能力被更新以反映所述提供的經(jīng)修改的所需程序執(zhí)行能力。第34條根據(jù)第33條所述的方法,其中所述第一組的程序執(zhí)行能力根據(jù)作為所述第一組的一部分的計算節(jié)點的數(shù)量來測量,使得所述初始所需程序執(zhí)行能力為計算節(jié)點的初始所需數(shù)量,在所述第二時間確定的實際程序執(zhí)行能力為在所述第二時間可用作所述第一組的一部分的計算節(jié)點的實際數(shù)量,修改所述所需程序執(zhí)行能力的自動確定包括將所述經(jīng)修改的所需程序執(zhí)行能力確定為所述第一組計算節(jié)點的經(jīng)修改的所需數(shù)量,并且自動修改作為所述第一組的一部分的計算節(jié)點包括將作為所述第一組的一部分的計算節(jié)點的實際數(shù)量改變?yōu)樗鼋?jīng)修改的所需數(shù)量。第35條根據(jù)第34條所述的方法,其中對所述至少一個指定的能力修改觸發(fā)器和所述至少一個能力修改指令中的每個的所述所需程序執(zhí)行能力的指定修改反映了所述第一組計算節(jié)點的所需數(shù)量的指示的數(shù)量變化,并且其中確定所述第一組的所述經(jīng)修改的所需程序執(zhí)行能力包括聚合所述至少一個指定的能力修改觸發(fā)器和所述至少一個能力修改指令的所述指示的數(shù)量變化,并且根據(jù)所述聚合數(shù)量變化來修改計算節(jié)點的初始所需數(shù)量。第36條根據(jù)第34條所述的方法,其中當前值通過所述監(jiān)測確定的所述第一組計算節(jié)點的所述一種或多種類型的性能特性包括可用作所述第一組的一部分的計算節(jié)點的實際數(shù)量,其中所述監(jiān)測包括在所述第一和第二時間之間的時段期間的多個時間中的每個時間確定計算節(jié)點的當前實際數(shù)量,并且其中協(xié)調(diào)所述記錄的正式程序執(zhí)行能力還包括將所述第一組計算節(jié)點的所述經(jīng)修改的所需數(shù)量指定為所述第一用戶在所述第二時間可使用的當前正式程序執(zhí)行能力。第37條根據(jù)第33條所述的方法,其中所述第一組的程序執(zhí)行能力根據(jù)可從作為所述第一組的一部分的計算節(jié)點中獲得的多種類型的計算資源中的每一種來測量,并且其中自動修改作為所述第一組的一部分的計算節(jié)點包括改變所述多種類型的計算資源中至少一種的總量,所述計算資源在所述計算節(jié)點的自動修改之后可從作為所述第一組的一部分的計算節(jié)點中獲得。第38條根據(jù)第33條所述的方法,其中所述至少一個指定的能力修改觸發(fā)器中的每個的一個或多個標準基于所述一種或多種性能特性類型中至少一種的一個或多個給定值,并且其中所述方法還包括至少部分地根據(jù)所述至少一個指定的能力修改觸發(fā)器中的每個的一個或多個給定值與所述一種或多種性能特性類型的確定的當前值之間的匹配情況來自動確定所述至少一個指定的能力修改觸發(fā)器被滿足。第39條根據(jù)第38條所述的方法,其中所述至少一種性能特性類型對應于所述第一組計算節(jié)點上的計算負荷,其中所述至少一個指定的能力修改觸發(fā)器被滿足的確定基于所述第一組計算節(jié)點上處于暫時增加狀態(tài)的計算負荷,其中自動修改作為所述第一組的一部分的計算節(jié)點包括暫時增加可從所述第一組計算節(jié)點中獲得的實際程序執(zhí)行能力以便容納所述暫時增加狀態(tài)的計算負荷,并且其中所述方法還包括在所述實際程序執(zhí)行能力的暫時增加之后的隨后的第三時間自動確定以降低所述第一組計算節(jié)點的暫時增加的實際程序執(zhí)行能力,從而反映所述計算負荷的暫時增加狀態(tài)的結束。第40條根據(jù)第38條所述的方法,其中所述至少一個性能特性類型包括可用作所述第一組的一部分的計算節(jié)點的實際數(shù)量,其中所述至少一個指定的能力修改觸發(fā)器被滿足的確定基于所述第一組計算節(jié)點的實際數(shù)量,所述實際數(shù)量已偏離計算節(jié)點的指定所需量,并且其中自動修改作為所述第一組的一部分的計算節(jié)點包括所述第一組計算節(jié)點的已偏離的實際數(shù)量返回至計算節(jié)點的指定所需量。第41條根據(jù)第38條所述的方法,其中所述至少一個指定的能力修改觸發(fā)器之一的一個或多個標準基于以下中的一個或多個指示性能特性類型的確定的當前值的閾值、 指示性能特性類型的確定的當前值隨時間變化的度量和多種性能特性類型的確定的當前值的邏輯組合。第42條根據(jù)第33條所述的方法,其中所述多個事件還包括其中一個或多個標準基于一個或多個指定時間的被觸發(fā)的指定的能力修改觸發(fā)器之一,并且其中所述方法還包括至少部分地根據(jù)符合所述一個或多個指定時間的當前時間來自動確定所述一個指定的能力修改觸發(fā)器被滿足。第43條根據(jù)第33條所述的方法,其中所述多個事件還包括其中一個或多個標準基于由歷史數(shù)據(jù)確定的一種或多種模式的被觸發(fā)的指定的能力修改觸發(fā)器之一,并且其中所述方法還包括至少部分地根據(jù)與所述一種或多種模式中的至少一個相對應的一種或多種性能特性類型的確定的當前值來自動確定所述一個指定的能力修改觸發(fā)器被滿足。第44條根據(jù)第33條所述的方法,其中所述多個事件還包括其中一個或多個標準基于將由在所述第一組計算節(jié)點上執(zhí)行的所述一個或多個軟件程序完成的工作量的一個或多個指示的被觸發(fā)的指定的能力修改觸發(fā)器之一,并且其中所述方法還包括至少部分地根據(jù)所獲得的關于將由所述一個或多個軟件程序完成的實際工作量的信息來自動確定所述一個指定的能力修改觸發(fā)器被滿足。第45條根據(jù)第33條所述的方法,其中確定所述第一組的所述經(jīng)修改的所需程序執(zhí)行能力包括聚合對所述所需程序執(zhí)行能力的指示的修改,所述修改由所述至少一個指定的能力修改觸發(fā)器和所述至少一個能力修改指令中的每個指定,并且根據(jù)對所述所需程序執(zhí)行能力的聚合的指示修改來指定所述確定的經(jīng)修改的所需程序執(zhí)行能力。第46條根據(jù)第45條所述的方法,其中聚合對所述所需程序執(zhí)行能力的指示修改包括以下中的至少一個累積所述指示修改、用所述指示修改中的至少另一個修改來抵消所述指示修改中的至少一個、根據(jù)一個或多個選擇標準選擇所述指示修改中的一個并且采用與所述指示修改中的一個或多個相關的一個或多個優(yōu)先級。第47條根據(jù)第33條所述的方法,其中由所述第一用戶動態(tài)指定并且包括在所述多個事件中的至少一個能力修改指令包括由所述第一用戶指定的單個能力修改指令,其中由所述第一用戶指定的能力修改指令優(yōu)先于經(jīng)確定被滿足的指定的能力修改觸發(fā)器,并且其中確定所述第一組的所述經(jīng)修改的所需程序執(zhí)行能力包括選擇由所述單個能力修改指令指定的對所述所需程序執(zhí)行能力的指示修改以用于代替所述至少一個指定的能力修改觸發(fā)器的指示修改。第48條根據(jù)第33條所述的方法,還包括所述第一用戶接收多個不同地理位置的說明,根據(jù)位于所述地理位置的所述第一組計算節(jié)點中的一個或多個,所述地理位置各自需包括所述第一組計算節(jié)點的程序執(zhí)行能力的指示子集,并且其中自動修改作為所述第一組的一部分的計算節(jié)點還根據(jù)所述接收的說明來進行,使得所述經(jīng)修改的計算節(jié)點被修改以包括位于所述多個地理位置中每個位置處的第一組計算節(jié)點的程序執(zhí)行能力的指示子集。第49條根據(jù)第33條所述的方法,其中自動修改作為所述第一組的一部分的計算節(jié)點包括用一個或多個其它計算節(jié)點來代替所述第一組計算節(jié)點中的一個或多個,所述一個或多個其它計算節(jié)點各自具有與所述一個或多個替代的計算節(jié)點不同的量的可用程序執(zhí)行能力。第50條根據(jù)第33條所述的方法,其中使所述第一組計算節(jié)點在所述第一時間可用以各自執(zhí)行所述第一用戶的所述一個或多個軟件程序包括自動提供所述第一組計算節(jié)點中的每個,并且包括自動引發(fā)所述一個或多個軟件程序中的每個在所述第一組計算節(jié)點中的每個上的執(zhí)行。 第51條根據(jù)第33條所述的方法,其中所述程序執(zhí)行服務為遠離所述第一用戶的收費性網(wǎng)絡訪問服務,其中所述程序執(zhí)行服務提供以下兩者中的至少一者用于遠程計算系統(tǒng)中以通過一個或多個網(wǎng)絡以編程方式與所述程序執(zhí)行服務進行交互的一個或多個應用程序編程接口(API)和遠程用戶通過所述一個或多個網(wǎng)絡來使用的圖形用戶界面,并且其中作為所述自動協(xié)調(diào)的一部分,所述第一用戶為自動修改作為所述第一組的一部分的計算節(jié)點支付一項或多項費用。第52條根據(jù)第33條所述的方法,其中所述程序執(zhí)行服務采用虛擬化技術使得所述多個計算節(jié)點對于多個物理計算系統(tǒng)中的每個而言包括由所述物理計算系統(tǒng)提供的各自能夠執(zhí)行至少一個程序的多個虛擬機,其中所述第一組計算節(jié)點為裝載虛擬機,并且其中所述第一用戶的所述一個或多個程序為虛擬機映像的一部分。第53條一種計算機可讀介質(zhì),其內(nèi)容通過實施一種方法來配置計算系統(tǒng)以動態(tài)修改用戶的程序執(zhí)行能力,所述方法包括在所述配置計算系統(tǒng)的控制下,在第一時間接收與第一用戶相關的第一組多個計算節(jié)點的指示,以提供用于代表所述第一用戶來執(zhí)行一個或多個軟件程序的所需程序執(zhí)行能力;在所述第一時間之后的隨后的第二時間自動確定所述第一用戶可從所述第一組計算節(jié)點中獲得的實際程序執(zhí)行能力,至少部分地根據(jù)所述第一組的多個計算節(jié)點中的一個或多個的一個或多個可用性變化,所述第二時間處的實際程序執(zhí)行能力不同于在所述第一時間提供給所述第一用戶的所需程序執(zhí)行能力;根據(jù)各自發(fā)生在所述第一時間之后并且各自指定所述所需程序執(zhí)行能力的指示修改的多個獨立事件,在所述第二時間自動確定提供給所述第一用戶的經(jīng)修改的所需程序執(zhí)行能力,所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力基于對所述多個獨立事件的指定的指示修改的聚合并且不同于在所述第一時間提供的指示的所需程序執(zhí)行能力;以及在所述第二時間自動修改作為所述第一組的一部分的計算節(jié)點,以便將所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力與所述第二時間處的確定的實際程序執(zhí)行能力協(xié)調(diào), 所述經(jīng)修改的計算節(jié)點用于將所述經(jīng)修改的所需程序執(zhí)行能力提供給所述第一用戶。第M條根據(jù)第53條所述的計算機可讀介質(zhì),其中所述配置計算系統(tǒng)為提供多個計算節(jié)點的程序執(zhí)行服務的一部分,所述多個計算節(jié)點可被配置來執(zhí)行所述程序執(zhí)行服務的用戶的程序,其中所述第一組的多個計算節(jié)點為所述多個計算節(jié)點的子集,并且響應于在所述第一時間之前從所述第一用戶處接收的所述所需程序執(zhí)行能力的請求,通過所述程序執(zhí)行服務在所述第一時間與所述第一用戶自動相關,其中所述第一用戶還指示用于隨后引發(fā)對所述所需程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器,并且其中所述確定的經(jīng)修改的所需程序執(zhí)行能力基于其的多個獨立事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個并且包括由所述第一用戶動態(tài)指定的至少一個能力修改指令。第55條根據(jù)第M條所述的計算機可讀介質(zhì),其中所述一個或多個軟件程序在所述第一組的多個計算節(jié)點上執(zhí)行,以支持在并非所述第一組的一部分的至少一個計算系統(tǒng)上執(zhí)行的至少另一個軟件程序,并且其中經(jīng)確定被滿足的所述至少一個能力修改觸發(fā)器中的一個或多個各自具有基于所獲得的關于所述至少另一個軟件程序的執(zhí)行的狀態(tài)信息的一個或多個標準。第56條根據(jù)第M條所述的計算機可讀介質(zhì),其中所述程序執(zhí)行服務將在所述第一時間提供給所述第一用戶的指示的所需程序執(zhí)行能力記錄為所述第一用戶可在所述第一時間使用的初始正式程序執(zhí)行能力,其中所述方法還包括從所述第一時間至所述第二時間的一段時間期間監(jiān)測所述第一組計算節(jié)點以識別對所述第一組的一個或多個計算節(jié)點的一個或多個可用性變化,并且更新所述第一用戶可用的所述程序執(zhí)行服務的記錄的正式程序執(zhí)行能力以便反映所述一個或多個可用性變化,其中所述第一用戶可用的所述程序執(zhí)行服務的記錄的正式程序執(zhí)行能力未通過在所述第二時間自動確定所述經(jīng)修改的所需程序執(zhí)行能力進行更新,并且其中還在所述第二時間進行修改作為所述第一組的一部分的計算節(jié)點以便將所述第二時間處的記錄的正式程序執(zhí)行能力與所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力協(xié)調(diào),協(xié)調(diào)所述記錄的正式程序執(zhí)行能力包括將所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力確定為所述第一用戶可用的所述程序執(zhí)行服務的進一步更新的記錄的正式程序執(zhí)行能力。第57條根據(jù)第53條所述的計算機可讀介質(zhì),其中所述計算機可讀介質(zhì)為以下兩者中的至少一者儲存所述內(nèi)容的計算系統(tǒng)的存儲器和包括包含所述內(nèi)容的所產(chǎn)生的存儲數(shù)據(jù)信號的數(shù)據(jù)傳輸介質(zhì),并且其中所述內(nèi)容為在執(zhí)行時會使所述計算系統(tǒng)實施所述方法的指令。第58條一種被配置來動態(tài)修改用戶的程序執(zhí)行能力的計算系統(tǒng),包括一個或多個處理器;和系統(tǒng)管理器模塊,在由所述一個或多個處理器中的至少一個執(zhí)行時,針對所述多個用戶中的每個,其被配置來通過以下方式管理網(wǎng)絡訪問服務的多個用戶的程序執(zhí)行能力確定用于代表所述用戶來執(zhí)行一個或多個軟件程序的所需程序執(zhí)行能力,并且確定用于隨后引發(fā)對所述用戶的所述所需程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器;在第一時間將一組多個可用計算節(jié)點與所述用戶自動關聯(lián),以用于將所述確定的所需程序執(zhí)行能力提供給所述用戶;以及在所述第一時間之后,在所述第一時間之后的隨后的第二時間自動確定所述用戶可從所述組計算節(jié)點中獲得的實際程序執(zhí)行能力,所述第二時間處的實際程序執(zhí)行能力不同于在所述第一時間提供給所述用戶的所需程序執(zhí)行能力;根據(jù)各自發(fā)生在所述第一時間之后并且各自具有所述所需程序執(zhí)行能力的相關修改的多個獨立事件,在所述第二時間自動確定提供給所述用戶的經(jīng)修改的所需程序執(zhí)行能力,所述多個獨立事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個并且包括由所述用戶動態(tài)指定的至少一個能力修改指令,所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力基于對所述多個獨立事件的相關修改的聚合;以及在所述第二時間自動修改作為所述組的一部分的計算節(jié)點,以便將所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力與所述第二時間處的確定的實際程序執(zhí)行能力協(xié)調(diào),所述經(jīng)修改的計算節(jié)點用于將所述經(jīng)修改的所需程序執(zhí)行能力提供給所述用戶。第59條根據(jù)第58條所述的計算系統(tǒng),其中所述多個用戶之一的確定的所需程序執(zhí)行能力由所述一個用戶指示并且被確定為經(jīng)記錄為所述一個用戶在所述第一時間可使用的初始正式程序執(zhí)行能力,其中自動確定所述一個用戶在所述第二時間可使用的實際程序執(zhí)行能力至少部分地基于在從所述第一時間至所述第二時間的一段時間期間監(jiān)測所述一個用戶的所述組計算節(jié)點來進行以便識別一個或多個變化,監(jiān)測所述計算節(jié)點包括更新所述一個用戶可用的記錄的正式程序執(zhí)行能力以反映所述一個或多個變化,其中所述一個用戶可用的記錄的正式程序執(zhí)行能力未通過自動確定所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力進行更新,并且其中還在所述第二時間修改作為所述組的一部分的計算節(jié)點以便將所述第二時間處的記錄的正式程序執(zhí)行能力與所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力協(xié)調(diào),協(xié)調(diào)所述記錄的正式程序執(zhí)行能力包括將所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力確定為所述第一用戶可用的進一步更新的記錄的正式程序執(zhí)行能力。第60條根據(jù)第59條所述的計算系統(tǒng),其中所述一個用戶的所述確定的能力修改觸發(fā)器由所述一個用戶指定,其中所述網(wǎng)絡訪問服務為提供多個計算節(jié)點的程序執(zhí)行服務,所述多個計算節(jié)點可被配置來執(zhí)行所述程序執(zhí)行服務的遠程用戶的程序,并且其中所述多個用戶中的至少一個的每個的所述組的所述多個計算節(jié)點為所述多個計算節(jié)點的子集。第61條根據(jù)第58條所述的計算系統(tǒng),其中所述系統(tǒng)管理器模塊包括由所述計算系統(tǒng)執(zhí)行的軟件指令。第62條根據(jù)第58條所述的計算系統(tǒng),其中針對所述多個用戶中的每個,所述系統(tǒng)管理器模塊由用于通過以下方式來管理網(wǎng)絡訪問服務的多個用戶的程序執(zhí)行能力的裝置組成確定用于代表所述用戶來執(zhí)行一個或多個軟件程序的所需程序執(zhí)行能力,并且確定用于隨后引發(fā)對所述用戶的所述所需程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器;
在第一時間將一組多個可用計算節(jié)點與所述用戶自動關聯(lián),以用于將所述確定的所需程序執(zhí)行能力提供給所述用戶;以及在所述第一時間之后,在所述第一時間之后的隨后的第二時間自動確定所述用戶可從所述組計算節(jié)點中獲得的實際程序執(zhí)行能力,所述第二時間處的實際程序執(zhí)行能力不同于在所述第一時間提供給所述用戶的所需程序執(zhí)行能力;根據(jù)各自發(fā)生在所述第一時間之后并且各自具有所述所需程序執(zhí)行能力的相關修改的多個獨立事件,在所述第二時間自動確定提供給所述用戶的經(jīng)修改的所需程序執(zhí)行能力,所述多個獨立事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個并且包括由所述用戶動態(tài)指定的至少一個能力修改指令,所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力基于對所述多個獨立事件的相關修改的聚合;以及在所述第二時間自動修改作為所述組的一部分的計算節(jié)點,以便將所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力與所述第二時間處的確定的實際程序執(zhí)行能力協(xié)調(diào),所述經(jīng)修改的計算節(jié)點用于將所述經(jīng)修改的所需程序執(zhí)行能力提供給所述用戶。根據(jù)前述內(nèi)容,應當理解到,盡管出于說明目的在本文中描述了具體實施方案,但可在不脫離本發(fā)明的精神和范圍的情況下做出各種修改。因此,本發(fā)明僅受所附權利要求及本文所提及要求的限制。另外,雖然本發(fā)明的某些方面在下文以某些權利要求的形式示出,但發(fā)明人以任何可用權利要求的形式考慮到本發(fā)明的各個方面。例如,雖然只有本發(fā)明的某些方面目前可被提及為體現(xiàn)于計算機可讀介質(zhì)中,其它方面可同樣得到體現(xiàn)。
權利要求
1.一種用于確定提供給用戶的程序執(zhí)行能力的動態(tài)修改的因果律的計算機實現(xiàn)方法, 所述方法包括在被配置來提供由多個用戶使用的程序執(zhí)行服務的一個或多個計算系統(tǒng)的控制下,接收用于代表所述程序執(zhí)行服務的第一用戶來執(zhí)行一個或多個軟件程序的初始所需程序執(zhí)行能力的指示,所述程序執(zhí)行服務具有可被配置來執(zhí)行所述程序執(zhí)行服務的所述用戶的程序的多個計算節(jié)點;確定用于隨后引發(fā)對提供給所述第一用戶的程序執(zhí)行能力的自動修改的多個能力修改觸發(fā)器,所述能力修改觸發(fā)器中的每個均包括用于確定所述能力修改觸發(fā)器是否被滿足的一個或多個標準,并且包括當所述能力修改觸發(fā)器被滿足時將要請求的指定類型的程序執(zhí)行能力修改;自動確定所述多個計算節(jié)點中用于提供所述第一用戶的所述初始所需程序執(zhí)行能力的第一組多個計算節(jié)點,并且使所述第一組計算節(jié)點在第一時間可用以各自執(zhí)行所述第一用戶的一個或多個軟件程序;自動識別發(fā)生在所述第一時間和隨后的第二時間之間的一段時間期間并且各自能夠引起對所述第一組多個計算節(jié)點提供的所述程序執(zhí)行能力的修改的多個獨立事件,所述多個事件包括經(jīng)確定被滿足的指定的能力修改觸發(fā)器中的至少一個;自動確定在所述第二時間所述第一用戶可從所述第一組計算節(jié)點獲得的實際程序執(zhí)行能力,至少部分地根據(jù)發(fā)生在所述第一時間和所述第二時間之間的時段期間的所述第一組的一個或多個計算節(jié)點的一個或多個可用性變化,所述第二時間處的實際程序執(zhí)行能力不同于在所述第一時間提供給所述第一用戶的所需程序執(zhí)行能力;對于所述第一組的所述一個或多個計算節(jié)點的所述可用性變化中的每個而言,將所識別事件中的一個或多個自動歸因為所述可用性變化的原因,所述可用性變化中的至少一個具有原因,所述原因為彼此獨立并且包括經(jīng)確定被滿足的所述至少一個指定的能力修改觸發(fā)器中的一個或多個的多個事件的組合;并且提供對為一個或多個所述可用性變化中的每個所歸因的原因的指示,以便能夠進行與所述歸因的原因相對應的一個或多個進一步動作。
2.根據(jù)權利要求1所述的方法,其中所述多個事件還包括由所述第一用戶動態(tài)指定以請求對所述第一組提供的所述程序執(zhí)行能力的指定修改的至少一個能力修改指令,并且其中被歸因為所述至少一個可用性變化之一的原因的多個事件的組合包括所述至少一個指定的能力修改指令中的一個或多個。
3.根據(jù)權利要求1所述的方法,其中自動確定所述實際程序執(zhí)行能力包括確定已發(fā)生的多個可用性變化,并且其中將所述一個或多個事件自動歸因為所述可用性變化中的每個的原因包括識別所述多個事件中各自為所述多個可用性變化之一的單個原因的一個或多個事件,并且將所述多個事件中不為所述多個可用性變化中之一的單個原因的所有事件聚合為不具有單個原因的所述多個可用性變化彼此的組合的一部分。
4.根據(jù)權利要求1所述的方法,還包括對于發(fā)生在所述第二時間之后的一個或多個附加時段中的每個而言,將一個或多個附加所識別事件自動歸因為發(fā)生在所述附加時段期間的可用性變化的原因,并且其中,對于作為發(fā)生在所述一個或多個附加時段中的一個時段期間的所述可用性變化中的一個可用性變化的原因的一個所述附加所識別事件而言,所述一個附加所識別事件為發(fā)生在所述第一時間和所述第二時間之間的時段期間的所述可用性變化中的一個可用性變化的結果。
5.一種被配置來確定用戶的程序執(zhí)行能力的動態(tài)修改的因果律的計算系統(tǒng),其包括一個或多個處理器;和系統(tǒng)管理器模塊,其被配置為當由所述一個或多個處理器中的至少一個執(zhí)行時,針對多個用戶中的每個,通過以下方式管理網(wǎng)絡訪問服務的所述多個用戶的程序執(zhí)行能力確定被提供用于代表所述用戶來執(zhí)行一個或多個軟件程序的初始程序執(zhí)行能力,并且確定用于隨后引發(fā)對向所述用戶提供的所述程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器;在第一時間將一組多個可用計算節(jié)點與所述用戶自動關聯(lián),以用于將所述初始所需程序執(zhí)行能力提供給所述用戶;并且在所述第一時間之后,自動識別發(fā)生在所述第一時間和隨后的第二時間之間并且各自具有所述組的所述程序執(zhí)行能力的相關所需修改的多個獨立事件,所述多個事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個;自動確定所述組的一個或多個計算節(jié)點的一個或多個可用性變化,所述可用性變化影響由所述組提供的所述程序執(zhí)行能力;將一個或多個原因自動歸因于所述組的所確定的可用性變化中的每個,歸因于所述可用性變化中的至少一個的所述一個或多個原因為多個所識別的獨立事件的組合,并且歸因于所述可用性變化中的至少另一個的所述一個或多個原因為所述所識別的獨立事件中的單個事件;并且提供所述組的所述所確定的可用性變化中的一個或多個的所歸因的一個或多個原因的指示。
6.根據(jù)權利要求5所述的計算系統(tǒng),其中所述多個用戶之一的所述多個獨立事件還包括由所述一個用戶動態(tài)指定的至少一個能力修改指令,其中所述系統(tǒng)管理器模塊還被配置來通過聚合至少一個被滿足的能力修改觸發(fā)器的所需修改和由所述一個用戶指定的所述至少一個能力修改指令的所需修改以自動確定待做出以提高所述一個用戶的所述組的所述程序執(zhí)行能力的單次聚合修改,并且在所述第二時間之前引發(fā)對所述一個用戶的所述組的所確定的單次聚合修改,其中所述所確定的單次聚合修改為所述一個用戶的所述至少一個可用性變化之一,并且其中被歸因為所述所確定的單次聚合修改的所述一個或多個原因的所述多個獨立事件的組合包括所述至少一個被滿足的能力修改觸發(fā)器和由所述一個用戶指定的所述至少一個能力修改指令。
7.根據(jù)權利要求6所述的計算系統(tǒng),其中所述一個用戶的所確定的能力修改觸發(fā)器由所述一個用戶指定,其中所述網(wǎng)絡訪問服務為提供多個計算節(jié)點的程序執(zhí)行服務,所述多個計算節(jié)點可被配置來執(zhí)行所述程序執(zhí)行服務的遠程用戶的程序,并且其中所述多個用戶中的至少一個的每個的所述組的所述多個計算節(jié)點為所述多個計算節(jié)點的子集。
8.一種用于動態(tài)修改用戶的程序執(zhí)行能力的計算機實現(xiàn)方法,所述方法包括在被配置來提供由多個用戶使用的程序執(zhí)行服務的一個或多個計算系統(tǒng)的控制下,所述程序執(zhí)行服務具有可被配置來執(zhí)行所述程序執(zhí)行服務的所述用戶的程序的多個計算節(jié)占.^ \\\ 接收指定用于代表所述程序執(zhí)行服務的第一用戶來執(zhí)行一個或多個軟件程序的初始所需程序執(zhí)行能力并且指定用于隨后引發(fā)對所述所需程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器的信息,所述能力修改觸發(fā)器中的每個均包括用于確定所述能力修改觸發(fā)器是否被滿足的一個或多個標準,并且包括在所述能力修改觸發(fā)器是被滿足時將要請求的對所需程序執(zhí)行能力的指定類型的修改;自動確定所述多個計算節(jié)點中用于提供所述第一用戶的所述初始所需程序執(zhí)行能力的第一組多個計算節(jié)點,使所述第一組計算節(jié)點在第一時間可用以各自執(zhí)行所述第一用戶的一個或多個軟件程序,并且將所述初始所需程序執(zhí)行能力指定為被記錄為所述第一用戶在所述第一時間可使用的正式程序執(zhí)行能力;在所述第一時間之后,監(jiān)測所述第一組計算節(jié)點以確定與執(zhí)行所述一個或多個軟件程序有關的那些計算節(jié)點的一種或多種類型的性能特性的當前值,所述監(jiān)測包括確定在所述第一時間之后的隨后的第二時間所述第一用戶可從所述第一組計算節(jié)點中獲得的實際程序執(zhí)行能力;自動確定以根據(jù)發(fā)生在所述第一時間和所述第二時間之間的一段時間期間的多個事件來修改所述第一用戶的所述所需程序執(zhí)行能力,所述多個事件包括至少部分地根據(jù)一種或多種性能特性類型的所確定的當前值而經(jīng)確定被滿足的所述指定的能力修改觸發(fā)器中的至少一個,并且包括由所述第一用戶動態(tài)指定的至少一個能力修改指令,所述至少一個指定的能力修改觸發(fā)器和所述至少一個能力修改指令中的每個指示對所述所需程序執(zhí)行能力的指定修改;以及將所述第一用戶可用的記錄的正式程序執(zhí)行能力與所確定的所述第二時間的實際程序執(zhí)行能力和經(jīng)修改的所需程序執(zhí)行能力自動協(xié)調(diào),協(xié)調(diào)所述記錄的正式程序執(zhí)行能力包括根據(jù)所述確定的實際程序執(zhí)行能力和所述經(jīng)修改的所需程序執(zhí)行能力來自動修改作為所述第一組的一部分的計算節(jié)點,使得所述經(jīng)修改的計算節(jié)點可用于提供所述經(jīng)修改的所需程序執(zhí)行能力,并且使得所述記錄的正式程序執(zhí)行能力被更新以反映提供的所述經(jīng)修改的所需程序執(zhí)行能力。
9.根據(jù)權利要求8所述的方法,其中根據(jù)作為所述第一組的一部分的計算節(jié)點的數(shù)量來測量所述第一組的所述程序執(zhí)行能力,使得所述初始所需程序執(zhí)行能力為計算節(jié)點的初始所需數(shù)量,所確定的所述第二時間的實際程序執(zhí)行能力為在所述第二時間可用作所述第一組的一部分的計算節(jié)點的實際數(shù)量,自動確定修改所述所需程序執(zhí)行能力包括將經(jīng)修改的所需程序執(zhí)行能力確定為所述第一組計算節(jié)點的經(jīng)修改的所需數(shù)量,并且自動修改作為所述第一組的一部分的所述計算節(jié)點包括將作為所述第一組的一部分的所述計算節(jié)點的實際數(shù)量改變?yōu)樗鼋?jīng)修改的所需數(shù)量。
10.根據(jù)權利要求8所述的方法,其中基于對可從作為所述第一組的一部分的所述計算節(jié)點中獲得的多種類型的計算資源中的每一種的聚合來測量所述第一組的程序執(zhí)行能力,并且其中自動修改作為所述第一組的一部分的所述計算節(jié)點包括改變所述多種類型的計算資源中至少一種的聚合量,所述計算資源在所述計算節(jié)點的自動修改之后可從作為所述第一組的一部分的計算節(jié)點中獲得。
11.根據(jù)權利要求8所述的方法,其中所述至少一個指定的能力修改觸發(fā)器中的每個的一個或多個標準基于所述一種或多種性能特性類型中至少一種的一個或多個給定值,并且其中所述方法還包括至少部分地根據(jù)所述至少一個指定的能力修改觸發(fā)器中的每個的所述一個或多個給定值與所述一種或多種性能特性類型的確定的當前值之間的匹配情況來自動確定所述至少一個指定的能力修改觸發(fā)器被滿足。
12.根據(jù)權利要求8所述的方法,其中確定所述第一組的經(jīng)修改的所需程序執(zhí)行能力包括聚合對所述所需程序執(zhí)行能力的指示的修改,所述修改由所述至少一個指定的能力修改觸發(fā)器和所述至少一個能力修改指令中的每個指定,并且根據(jù)對所述所需程序執(zhí)行能力的聚合的指示修改來指定所確定的經(jīng)修改的所需程序執(zhí)行能力。
13.—種被配置來動態(tài)修改用戶的程序執(zhí)行能力的計算系統(tǒng),包括一個或多個處理器;和系統(tǒng)管理器模塊,其被配置為當由所述一個或多個處理器中的至少一個執(zhí)行時,針對所述多個用戶中的每個,通過以下方式管理網(wǎng)絡訪問服務的多個用戶的程序執(zhí)行能力確定用于代表所述用戶來執(zhí)行一個或多個軟件程序的所需程序執(zhí)行能力,并且確定用于隨后引發(fā)對所述用戶的所述所需程序執(zhí)行能力的自動修改的一個或多個能力修改觸發(fā)器;在第一時間將一組多個可用計算節(jié)點與所述用戶自動關聯(lián),以用于將所確定的所需程序執(zhí)行能力提供給所述用戶;以及在所述第一時間之后,在所述第一時間之后的隨后的第二時間自動確定所述用戶可從所述組計算節(jié)點中獲得的實際程序執(zhí)行能力,所述第二時間處的實際程序執(zhí)行能力不同于在所述第一時間提供給所述用戶的所述所需程序執(zhí)行能力;根據(jù)各自發(fā)生在所述第一時間之后并且各自具有所述所需程序執(zhí)行能力的相關修改的多個獨立事件,自動確定要在所述第二時間提供給所述用戶的經(jīng)修改的所需程序執(zhí)行能力,所述多個獨立事件包括經(jīng)確定被滿足的所述能力修改觸發(fā)器中的至少一個并且包括由所述用戶動態(tài)指定的至少一個能力修改指令,所述第二時間處的所述經(jīng)修改的所需程序執(zhí)行能力基于對所述多個獨立事件的相關修改的聚合;以及在所述第二時間自動修改作為所述組的一部分的計算節(jié)點,以便將所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力與所述第二時間處的所確定的實際程序執(zhí)行能力協(xié)調(diào),所述經(jīng)修改的計算節(jié)點用于將所述經(jīng)修改的所需程序執(zhí)行能力提供給所述用戶。
14.根據(jù)權利要求13所述的計算系統(tǒng),其中所述多個用戶之一的所確定的所需程序執(zhí)行能力由所述一個用戶指示并且被確定為經(jīng)記錄為所述一個用戶在所述第一時間可使用的初始正式程序執(zhí)行能力,其中自動確定所述一個用戶在所述第二時間可使用的所述實際程序執(zhí)行能力至少部分地通過在從所述第一時間至所述第二時間的一段時間期間監(jiān)測所述一個用戶的所述組計算節(jié)點以便識別一個或多個變化來進行,監(jiān)測所述計算節(jié)點包括更新所述一個用戶可用的記錄的正式程序執(zhí)行能力以反映所述一個或多個變化,其中所述一個用戶可用的記錄的正式程序執(zhí)行能力未通過自動確定所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力進行更新,并且其中還在所述第二時間處修改作為所述組的一部分的計算節(jié)點以便將所述第二時間處的記錄的正式程序執(zhí)行能力與所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力協(xié)調(diào),協(xié)調(diào)所述記錄的正式程序執(zhí)行能力包括將所述第二時間處的經(jīng)修改的所需程序執(zhí)行能力確定為所述第一用戶可用的進一步更新的記錄的正式程序執(zhí)行能力。
15.根據(jù)權利要求13所述的計算系統(tǒng),其中所述一個用戶的所述確定的能力修改觸發(fā)器由所述一個用戶指定,其中所述網(wǎng)絡訪問服務為提供多個計算節(jié)點的程序執(zhí)行服務,所述多個計算節(jié)點可被配置來執(zhí)行所述程序執(zhí)行服務的遠程用戶的程序,并且其中所述多個用戶中的至少一個的每個的所述組的所述多個計算節(jié)點為所述多個計算節(jié)點的子集。
全文摘要
本發(fā)明描述了用于管理程序執(zhí)行能力的技術,例如針對提供用于為用戶執(zhí)行一個或多個程序的一組計算節(jié)點。在某些情況下,使用中的計算節(jié)點組的程序執(zhí)行能力動態(tài)修改可定期進行或者說是以反復的方式進行,例如以聚合在一段時間內(nèi)待做出的經(jīng)請求或以其它方式確定的多次修改。所述技術可在某些情況下結合收費性程序執(zhí)行服務使用,所述收費性程序執(zhí)行服務代表多個服務用戶來執(zhí)行多個程序。
文檔編號G06F15/173GK102511041SQ201080041786
公開日2012年6月20日 申請日期2010年9月27日 優(yōu)先權日2009年9月29日
發(fā)明者喬弗里·S·派爾, 克里斯托夫·R·科馬萊迪, 布雷克·梅科, 扎科里·S·穆斯格雷夫, 撒米特·洛海亞, 約翰·W·海因特曼, 茨蘭吉布·伯拉格海因, 阿歷克斯·馬克林諾夫斯基, 陳靚 申請人:亞馬遜技術有限公司